blob: 85d416953e9c7fee700548a04e77f7d9b71a715a [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This features file defines extension APIs implemented under src/extensions.
// See chrome/common/extensions/api/_features.md to understand this file, as
// well as feature.h, simple_feature.h, and feature_provider.h.
//
// Note that specifying "web_page", "privileged_web_page", or "all" as a context
// type will require manually updating extensions/renderer/extension_bindings_system.cc.
{
"alarms": {
"dependencies": ["permission:alarms"],
"contexts": ["privileged_extension"]
},
"app.runtime": [{
"channel": "stable",
"contexts": ["privileged_extension", "lock_screen_extension"],
"extension_types": ["platform_app"],
"noparent": true
}, {
"channel": "stable",
"component_extensions_auto_granted": false,
"contexts": ["privileged_extension"],
"extension_types": ["extension"],
"noparent": true,
"allowlist": [
"2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
"3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
"12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension
]
}],
"app.window": [{
"channel": "stable",
"contexts": ["privileged_extension", "lock_screen_extension"],
"extension_types": ["platform_app"],
"noparent": true
}, {
"channel": "stable",
"contexts": ["privileged_extension"],
"extension_types": ["extension"],
"noparent": true,
"component_extensions_auto_granted": false,
"allowlist": [
"B9EF10DDFEA11EF77873CC5009809E5037FC4C7A", // Google input tools
"06BE211D5F014BAB34BC22D9DDA09C63A81D828E", // Official xkb extension
"F94EE6AB36D6C6588670B2B01EB65212D9C64E33" // Open source xkb extension
]
}],
"app.currentWindowInternal": {
"noparent": true,
"internal": true,
"channel": "stable",
"contexts": ["privileged_extension", "lock_screen_extension"]
},
"app.currentWindowInternal.setShape": {
"dependencies": ["permission:app.window.shape"],
"contexts": ["privileged_extension"]
},
// The API for the *embedder* of appview. Appview has both an embedder and
// guest API, which are different.
"appViewEmbedderInternal": {
"internal": true,
"contexts": ["privileged_extension"],
"dependencies": ["permission:appview"]
},
// Note that exposing this doesn't necessarily expose AppView,
// appViewEmbedderInternal is required for that.
// See http://crbug.com/437891.
"appViewGuestInternal": {
"internal": true,
"channel": "stable",
"contexts": ["privileged_extension"]
},
"audio": {
"dependencies": ["permission:audio"],
"contexts": ["privileged_extension"]
},
"automationInternal": {
"internal": true,
"dependencies": ["manifest:automation"],
"contexts": ["privileged_extension"]
},
"automation": {
"dependencies": ["manifest:automation"],
"contexts": ["privileged_extension"]
},
"bluetooth": [{
"dependencies": ["manifest:bluetooth"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bluetooth-pairing/*",
"chrome://os-settings/*"
]
}],
"bluetoothLowEnergy": {
"dependencies": ["manifest:bluetooth"],
"contexts": ["privileged_extension"],
"platforms": ["chromeos", "lacros", "linux"]
},
"bluetoothPrivate": [{
"dependencies": ["permission:bluetoothPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bluetooth-pairing/*",
"chrome://os-settings/*"
]
}],
"bluetoothSocket": {
"dependencies": ["manifest:bluetooth"],
"contexts": ["privileged_extension"]
},
"cecPrivate": {
"dependencies": ["permission:cecPrivate"],
"contexts": ["privileged_extension"]
},
"clipboard": {
"dependencies": ["permission:clipboard"],
"contexts": ["privileged_extension"]
},
"clipboard.onClipboardDataChanged": {
"dependencies": ["permission:clipboardRead"]
},
"clipboard.setImageData": {
"dependencies": ["permission:clipboardWrite"]
},
"declarativeNetRequest": [{
"dependencies": ["permission:declarativeNetRequest"],
"contexts": ["privileged_extension"],
"default_parent": true
}, {
"dependencies": ["permission:declarativeNetRequestWithHostAccess"],
"contexts": ["privileged_extension"]
}],
"declarativeNetRequest.onRuleMatchedDebug": [{
"dependencies": ["permission:declarativeNetRequestFeedback", "permission:declarativeNetRequest"],
"location": "unpacked"
}, {
"dependencies": ["permission:declarativeNetRequestFeedback", "permission:declarativeNetRequestWithHostAccess"],
"location": "unpacked"
}],
"declarativeNetRequest.testMatchOutcome": {
"dependencies": ["permission:declarativeNetRequest"],
"location": "unpacked"
},
"declarativeWebRequest": {
"dependencies": ["permission:declarativeWebRequest"],
"contexts": ["privileged_extension"]
},
"diagnostics": {
"dependencies": ["permission:diagnostics"],
"extension_types": ["platform_app"],
"contexts": ["privileged_extension"]
},
"dns": {
"dependencies": ["permission:dns"],
"contexts": ["privileged_extension"]
},
// This is not a real API, only here for documentation purposes.
// See http://crbug.com/275944 for background.
"extensionTypes": {
"internal": true,
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"contexts": ["privileged_extension"]
},
"events": {
"internal": true,
"channel": "stable",
"extension_types": ["platform_app", "extension"],
"contexts": "all",
"matches": ["<all_urls>"]
},
"feedbackPrivate": [
{
"dependencies": ["permission:feedbackPrivate"],
"contexts": ["privileged_extension"],
"default_parent": true
},
{
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://feedback/*",
"chrome://cast-feedback/*",
"chrome://os-feedback/*"
]
}
],
"feedbackPrivate.openFeedback": {
"dependencies": [],
"channel": "stable",
"contexts": ["privileged_extension"],
"extension_types": ["extension"],
"allowlist": [
"2FC374607C2DF285634B67C64A2E356C607091C3", // http://crbug.com/1352358
"3727DD3E564B6055387425027AD74C58784ACC15", // http://crbug.com/1352358
"12E618C3C6E97495AAECF2AC12DEB082353241C6" // http://crbug.com/1352358
]
},
"feedbackPrivate.readLogSource": [
{
"platforms": ["chromeos", "lacros"],
"session_types": ["kiosk"]
},
{
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://feedback/*"
]
}
],
"fileSystem": {
"dependencies": ["permission:fileSystem"],
"contexts": ["privileged_extension"],
"disallow_for_service_workers": true
},
"guestViewInternal": [
{
"internal": true,
"channel": "stable",
"contexts": ["privileged_extension"]
}, {
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://add-supervision/*",
"chrome://assistant-optin/*",
"chrome://discards/*",
"chrome://extensions/*",
"chrome://home/*",
"chrome://chrome-signin/*",
"chrome://mobilesetup/*",
"chrome://oobe/*",
"chrome://os-settings/*",
"chrome://parent-access/*",
"chrome://password-change/*",
"chrome://lock-reauth/*"
]
}, {
// This feature is used by the Controlled Frame API and is specifically
// enabled by //chrome.
"internal": true,
"channel": "stable",
"contexts": ["web_page"],
// This feature is only enabled if the embedder's delegated check returns
// true.
"requires_delegated_availability_check": true
}
],
"hid": {
"dependencies": ["permission:hid"],
"contexts": ["privileged_extension"]
},
"i18n": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app",
"login_screen_extension"],
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script",
"lock_screen_extension"
]
},
"idle": {
"dependencies": ["permission:idle"],
"contexts": ["privileged_extension"]
},
"idle.getAutoLockDelay": {
"platforms": ["chromeos", "lacros"]
},
"lockScreen.data": {
"dependencies": ["permission:lockScreen"],
"contexts": ["privileged_extension", "lock_screen_extension"]
},
"lockScreen.data.create": {
"contexts": ["lock_screen_extension"]
},
"management": [{
"dependencies": ["permission:management"],
"contexts": ["privileged_extension"],
"default_parent": true
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://extensions/*",
"chrome://settings/*"
]
}, {
"channel": "stable",
"contexts": ["web_page"],
"matches": ["https://chromewebstore.google.com/*"],
"feature_flag": "NewWebstoreDomain"
}],
"management.getPermissionWarningsByManifest": {
"dependencies": [],
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"]
},
"management.getSelf": {
"dependencies": [],
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"]
},
"management.installReplacementWebApp": {
"dependencies": ["manifest:replacement_web_app"],
"channel": "stable",
"extension_types": ["extension", "platform_app"]
},
"management.uninstallSelf": {
"dependencies": [],
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"]
},
"mediaPerceptionPrivate": {
"dependencies": ["permission:mediaPerceptionPrivate"],
"contexts": ["privileged_extension"]
},
"metricsPrivate": [{
"dependencies": ["permission:metricsPrivate"],
"contexts": ["privileged_extension"],
"alias": "metricsPrivateIndividualApis",
"default_parent": true
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://apps/*",
"chrome://bookmarks/*",
"chrome://bookmarks-side-panel.top-chrome/*",
"chrome://customize-chrome-side-panel.top-chrome/*",
"chrome://shopping-insights-side-panel.top-chrome/*",
"chrome://download-shelf.top-chrome/*",
"chrome://eche-app/*",
"chrome://extensions/*",
"chrome://file-manager/*",
"chrome://help-app/*",
"chrome://history/*",
"chrome://new-tab-page/*",
"chrome://os-settings/*",
"chrome://password-manager/*",
"chrome://personalization/*",
"chrome://profile-picker/*",
"chrome://read-later.top-chrome/*",
"chrome://settings/*",
"chrome://sync-confirmation/*",
"chrome://tab-search.top-chrome/*",
"chrome://tab-strip.top-chrome/*",
"chrome://welcome/*",
"chrome://vc-background/*",
"chrome://app-settings/*",
"chrome://search-engine-choice/*"
]
}, {
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://compose/*",
"chrome-untrusted://help-app/*",
"chrome-untrusted://media-app/*",
"chrome-untrusted://mako/*",
"chrome-untrusted://projector/*",
"chrome-untrusted://read-anything-side-panel.top-chrome/*"
]
}],
"metricsPrivateIndividualApis": {
"contexts": [],
"channel": "stable",
"source": "metricsPrivate"
},
"metricsPrivate.getIsCrashReportingEnabled": {
"allowlist": [
// This function inherits the extension restrictions of metricsPrivate,
// but also requires allowlisting. New uses of this function should get
// /tools/metrics/OWNERS approval of the usage before adding entries
// below. See crbug.com/374199.
"2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
"3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
"12E618C3C6E97495AAECF2AC12DEB082353241C6", // QO component extension
"3727DD3E564B6055387425027AD74C58784ACC15", // Editor
"C41AD9DCD670210295614257EF8C9945AD68D86E", // Google Now
"D7986543275120831B39EF28D1327552FC343960", // http://crbug.com/378067
"A291B26E088FA6BA53FFD72F0916F06EBA7C585A", // http://crbug.com/378067
"07BD6A765FFC289FF755D7CAB2893A40EC337FEC", // http://crbug.com/456214
"896B85CC7E913E11C34892C1425A093C0701D386", // http://crbug.com/456214
"11A01C82EF355E674E4F9728A801F5C3CB40D83F", // http://crbug.com/456214
"F410C88469990EE7947450311D24B8AF2ADB2595", // http://crbug.com/456214
// TODO (ntang) Remove the following 2 hashes by 12/31/2017.
"B620CF4203315F9F2E046EDED22C7571A935958D", // http://crbug.com/510270
"B206D8716769728278D2D300349C6CB7D7DE2EF9", // http://crbug.com/510270
"2B6C6A4A5940017146F3E58B7F90116206E84685", // http://crbug.com/642141
"B6C2EFAB3EC3BF6EF03701408B6B09A67B2D0069", // http://crbug.com/642141
"96FF2FFA5C9173C76D47184B3E86D267B37781DE", // http://crbug.com/642141
"0136FCB13DB29FD5CD442F56E59E53B61F1DF96F", // http://crbug.com/642141
"46578A13607D38F1DC8E280C4F499FB0A2F9565C", // http://crbug.com/819404
"898FB5A39687D210766B8998BA4530B99C9E6586", // http://crbug.com/819404
"82F30B65397BC3E4ADE627BBD857AB8A58210648", // http://crbug.com/819404
"C74B2AF138F9EDECD04D0965AB36CA66C8290466", // http://crbug.com/957772
"754A9CB3C8623093180E10CF4C3AB64837179E68", // https://crbug.com/1201800
"CF6B19571334F49878327D557597D23B1458AA39" // https://crbug.com/1201800
]
},
"metricsPrivateIndividualApis.recordUserAction": {
"dependencies": [],
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome://apps/*",
"chrome-untrusted://demo-mode-app/*"
]
},
"metricsPrivateIndividualApis.recordMediumTime": {
"dependencies": [],
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://demo-mode-app/*"
]
},
"metricsPrivateIndividualApis.recordEnumerationValue": {
"dependencies": [],
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://demo-mode-app/*"
]
},
"mimeHandlerPrivate": {
"dependencies": ["manifest:mime_types_handler"],
"contexts": ["privileged_extension"]
},
"mojoPrivate": {
"contexts": ["privileged_extension"],
"dependencies": ["behavior:imprivata_in_session_extension"],
"extension_types": ["extension"],
"location": "policy",
"platforms": ["chromeos", "lacros"]
},
"networking.onc": {
"dependencies": ["permission:networking.onc"],
"contexts": ["privileged_extension"],
"source": "networkingPrivate"
},
"networkingPrivate": [{
"dependencies": ["permission:networkingPrivate"],
"contexts": ["privileged_extension"],
// TODO(tbarzic): networkingPrivate is being renamed to networking.onc.
// The goal is to eventually remove networkingPrivate API in favour of
// networking.onc, but until current usages are migrated to the new
// name, use API aliasing to expose the API under both names.
// (http://crbug.com/672186).
"alias": "networking.onc"
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://network/*",
"chrome://oobe/*",
"chrome://internet-config-dialog/*",
"chrome://internet-detail-dialog/*",
"chrome://os-settings/*"
]
}],
"odfsConfigPrivate": {
"dependencies": ["permission:odfsConfigPrivate"],
"contexts": ["privileged_extension"],
"feature_flag": "ApiOdfsConfigPrivate"
},
"offscreen": {
"dependencies": ["permission:offscreen"],
"contexts": ["privileged_extension"]
},
"power": {
"dependencies": ["permission:power"],
"contexts": ["privileged_extension"]
},
"power.reportActivity": {
"platforms": ["chromeos", "lacros"]
},
"printerProvider": {
"dependencies": ["permission:printerProvider"],
"contexts": ["privileged_extension"]
},
"printerProviderInternal": {
"internal": true,
"dependencies": ["permission:printerProvider"],
"contexts": ["privileged_extension"]
},
"runtime": {
"channel": "stable",
"extension_types": [
"extension",
"legacy_packaged_app",
"platform_app",
"login_screen_extension",
"chromeos_system_extension"
],
"contexts": [
"privileged_extension",
"lock_screen_extension"
]
},
"runtime.getBackgroundPage": {
"disallow_for_service_workers": true
},
"runtime.getPackageDirectoryEntry": {
"disallow_for_service_workers": true
},
"runtime.getManifest": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"unprivileged_extension",
"content_script"
]
},
"runtime.connect": [{
// Everything except WebUI.
"contexts": [
"privileged_web_page",
"content_script",
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"user_script",
"web_page"
],
"matches": ["<all_urls>"]
},{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
// Allow only terminal_ssh.html in Terminal System Web App.
"chrome-untrusted://terminal/html/terminal_ssh.html*"
]
}],
"runtime.connectNative": {
"dependencies": ["permission:nativeMessaging"],
"contexts": ["privileged_extension"]
},
"runtime.getContexts": {
"min_manifest_version": 3,
"contexts": ["privileged_extension"]
},
"runtime.getURL": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"content_script"
]
},
"runtime.id": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"content_script"
]
},
"runtime.lastError": {
"contexts": "all",
"extension_types": "all",
"matches": ["<all_urls>"]
},
"runtime.onConnect": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"user_script",
"content_script"
]
},
"runtime.onConnectExternal": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension"
]
},
"runtime.onConnectNative": {
"dependencies": ["permission:nativeMessaging"],
"contexts": ["privileged_extension"]
},
"runtime.onUserScriptConnect": {
// NOTE: We can readily open this up to offscreen extensions and
// lockscreen extensions, if there's desire. For now, limit it.
"contexts": ["privileged_extension"],
"min_manifest_version": 3
},
"runtime.onMessage": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"user_script",
"content_script"
]
},
"runtime.onMessageExternal": {
"contexts": [
"privileged_extension",
"lock_screen_extension",
"offscreen_extension"
]
},
"runtime.onUserScriptMessage": {
// NOTE: We can readily open this up to offscreen extensions and
// lockscreen extensions, if there's desire. For now, limit it.
"contexts": ["privileged_extension"],
"min_manifest_version": 3
},
"runtime.sendMessage": [{
// Everything except WebUI.
"contexts": [
"privileged_web_page",
"content_script",
"privileged_extension",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"user_script",
"web_page"
],
"matches": ["<all_urls>"]
},{
"contexts": ["webui"],
"matches": [
"chrome://password-change/*",
"chrome://file-manager/*"
]
},{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
]
}],
"runtime.sendNativeMessage": {
"dependencies": ["permission:nativeMessaging"],
"contexts": ["privileged_extension"]
},
"serial": {
"dependencies": ["permission:serial"],
"contexts": ["privileged_extension"]
},
"socket": {
"dependencies": ["permission:socket"],
"contexts": ["privileged_extension"]
},
"sockets.tcp": [{
"dependencies": ["manifest:sockets"],
"contexts": ["privileged_extension"]
},{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
]
}],
"sockets.tcpServer": [{
"dependencies": ["manifest:sockets"],
"contexts": ["privileged_extension"]
},{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
]
}],
"sockets.udp": [{
"dependencies": ["manifest:sockets"],
"contexts": ["privileged_extension"]
},{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
]
}],
"storage": {
"dependencies": ["permission:storage"],
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
]
},
"storage.session": {
"min_manifest_version": 3
},
"system.cpu": {
"dependencies": ["permission:system.cpu"],
"contexts": ["privileged_extension"]
},
"system.display": [{
"dependencies": ["permission:system.display"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://os-settings/*"
]
}],
"system.memory": {
"dependencies": ["permission:system.memory"],
"contexts": ["privileged_extension"]
},
"system.network": {
"dependencies": ["permission:system.network"],
"contexts": ["privileged_extension"]
},
"system.storage": {
"dependencies": ["permission:system.storage"],
"contexts": ["privileged_extension"]
},
"system.storage.getAvailableCapacity": {
"channel": "dev"
},
"test": [{
"channel": "stable",
"extension_types": "all",
// Everything except web pages and WebUI. WebUI is declared in a separate
// rule to keep the "matches" property isolated.
"contexts": [
"privileged_extension",
"privileged_web_page",
"content_script",
"lock_screen_extension",
"offscreen_extension",
"unprivileged_extension",
"user_script"
]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://extensions/*",
// System Web App version of File Manager.
"chrome://file-manager/*",
"chrome://webui-test/*"
]
}, {
"channel": "stable",
"contexts": [ "webui_untrusted" ],
"matches": [ "chrome-untrusted://api-test/*" ]
}],
"types": {
"internal": true,
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"contexts": ["privileged_extension"]
},
"usb": {
"dependencies": ["permission:usb"],
"contexts": ["privileged_extension"]
},
"userScripts": {
"dependencies": [ "permission:userScripts" ],
"contexts": [ "privileged_extension" ],
"developer_mode_only": true,
"feature_flag": "ApiUserScripts"
},
"userScripts.getWorldConfigurations": {
"dependencies": [ "permission:userScripts" ],
"contexts": [ "privileged_extension" ],
"developer_mode_only": true,
"feature_flag": "ApiUserScriptsMultipleWorlds"
},
"userScripts.resetWorldConfiguration": {
"dependencies": [ "permission:userScripts" ],
"contexts": [ "privileged_extension" ],
"developer_mode_only": true,
"feature_flag": "ApiUserScriptsMultipleWorlds"
},
"virtualKeyboard": {
"dependencies": ["permission:virtualKeyboard"],
"contexts": ["privileged_extension"]
},
"vpnProvider": {
"dependencies": ["permission:vpnProvider"],
"contexts": ["privileged_extension"]
},
"webRequest": {
"dependencies": ["permission:webRequest"],
"contexts": ["privileged_extension"]
},
"webRequestInternal": [{
"internal": true,
"channel": "stable",
"contexts": ["privileged_extension"]
}, {
// webview uses webRequestInternal API.
"channel": "stable",
"internal": true,
"contexts": ["webui"],
"matches": [
"chrome://add-supervision/*",
"chrome://assistant-optin/*",
"chrome://chrome-signin/*",
"chrome://discards/*",
"chrome://home/*",
"chrome://mobilesetup/*",
"chrome://oobe/*",
"chrome://os-settings/*",
"chrome://parent-access/*",
"chrome://password-change/*",
"chrome://lock-reauth/*"
]
}, {
// This feature is used by the Controlled Frame API and is specifically
// enabled by //chrome.
"internal": true,
"channel": "stable",
"contexts": ["web_page"],
// This feature is only enabled if the embedder's delegated check returns
// true.
"requires_delegated_availability_check": true
}],
"webViewInternal": [{
"internal": true,
"dependencies": ["permission:webview"],
"contexts": ["privileged_extension"]
}, {
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://add-supervision/*",
"chrome://assistant-optin/*",
"chrome://chrome-signin/*",
"chrome://discards/*",
"chrome://home/*",
"chrome://mobilesetup/*",
"chrome://oobe/*",
"chrome://os-settings/*",
"chrome://parent-access/*",
"chrome://password-change/*",
"chrome://lock-reauth/*"
]
}, {
// This feature is used by the Controlled Frame API and is specifically
// enabled by //chrome.
"internal": true,
"channel": "stable",
"contexts": ["web_page"],
// This feature is only enabled if the embedder's delegated check returns
// true.
"requires_delegated_availability_check": true
}],
"webViewRequest": [{
"dependencies": ["permission:webview"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://add-supervision/*",
"chrome://assistant-optin/*",
"chrome://chrome-signin/*",
"chrome://discards/*",
"chrome://home/*",
"chrome://mobilesetup/*",
"chrome://oobe/*",
"chrome://os-settings/*",
"chrome://parent-access/*"
]
}]
}