blob: b5212a4d43f980fa8f7b68c5a89621dc2b52c0b5 [file] [log] [blame]
// Copyright 2012 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/chrome.
// 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 javascript bindings code in the
// renderer.
{
"accessibilityFeatures": [{
"dependencies": ["permission:accessibilityFeatures.modify"],
"contexts": ["privileged_extension"]
}, {
"dependencies": ["permission:accessibilityFeatures.read"],
"contexts": ["privileged_extension"]
}],
"accessibilityPrivate": {
"dependencies": ["permission:accessibilityPrivate"],
"contexts": ["privileged_extension"]
},
"accessibilityServicePrivate": {
"dependencies": ["permission:accessibilityServicePrivate"],
"channel": "stable",
"contexts": ["privileged_extension"],
"platforms": ["chromeos", "lacros"]
},
"action": {
"dependencies": ["manifest:action"],
"contexts": ["privileged_extension"]
},
"action.openPopup": [{
// TODO(crbug.com/40057101): Upgrade to stable channel.
"channel": "dev"
}, {
"channel": "stable",
"location": "policy"
}],
"action.isEnabled": {
"channel": "stable"
},
"action.getBadgeTextColor": {
"channel": "stable"
},
"action.setBadgeTextColor": {
"channel": "stable"
},
"activityLogPrivate": [{
"dependencies": ["permission:activityLogPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://extensions/*"
]
}],
"app": {
"blocklist": [
"2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
"3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
"12E618C3C6E97495AAECF2AC12DEB082353241C6", // QO component extension
"06BE211D5F014BAB34BC22D9DDA09C63A81D828E", // Official xkb extension
"F94EE6AB36D6C6588670B2B01EB65212D9C64E33", // Open source xkb extension
"B9EF10DDFEA11EF77873CC5009809E5037FC4C7A" // Google input tools
],
"channel": "stable",
"extension_types": ["hosted_app", "extension", "legacy_packaged_app"],
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script",
"web_page",
"privileged_web_page"
],
"disallow_for_service_workers": true,
"max_manifest_version": 2,
// Any webpage can use the app API.
"matches": ["<all_urls>"]
},
"appviewTag": {
"internal": true,
"dependencies": ["permission:appview"],
"contexts": ["privileged_extension"]
},
"autofillPrivate": [{
"dependencies": ["permission:autofillPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://settings/*"
]
}],
"autotestPrivate": {
"dependencies": ["permission:autotestPrivate"],
"contexts": ["privileged_extension"]
},
"bookmarkManagerPrivate": {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bookmarks/*",
"chrome://bookmarks-side-panel.top-chrome/*",
"chrome://read-later.top-chrome/*"
]
},
"bookmarks": [{
"dependencies": ["permission:bookmarks"],
"contexts": ["privileged_extension"],
"default_parent": true
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bookmarks/*",
"chrome://bookmarks-side-panel.top-chrome/*",
"chrome://read-later.top-chrome/*",
"chrome://welcome/*"
]
}],
"bookmarks.export": {
"channel": "stable",
"contexts": ["webui"],
"dependencies": [],
"matches": [
"chrome://bookmarks/*"
]
},
"bookmarks.import": {
"channel": "stable",
"contexts": ["webui"],
"dependencies": [],
"matches": [
"chrome://bookmarks/*"
]
},
"brailleDisplayPrivate": {
"dependencies": ["permission:brailleDisplayPrivate"],
"contexts": ["privileged_extension"]
},
"browserAction": {
"dependencies": ["manifest:browser_action"],
"contexts": ["privileged_extension"]
},
// This API is allowlisted on stable and should not be enabled for a wider
// audience without resolving security issues raised in API proposal and
// review (https://codereview.chromium.org/25305002).
"browserAction.openPopup": [{
"channel": "dev",
"dependencies": ["manifest:browser_action"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"dependencies": ["manifest:browser_action"],
"allowlist": [
// The extensions below here only use openPopup on a user action,
// so are safe, and can be removed when the allowlist on that
// capability is lifted. See crbug.com/436489 for context.
"A4577D8C2AF4CF26F40CBCA83FFA4251D6F6C8F8", // http://crbug.com/497301
"A8208CCC87F8261AFAEB6B85D5E8D47372DDEA6B", // http://crbug.com/497301
"EFCF5358672FEE04789FD2EC3638A67ADEDB6C8C" // http://crbug.com/514696
],
"contexts": ["privileged_extension"]
}],
"browsingData": {
"dependencies": ["permission:browsingData"],
"contexts": ["privileged_extension"]
},
"certificateProvider": {
"dependencies": ["permission:certificateProvider"],
"contexts": ["privileged_extension"]
},
"certificateProvider.onCertificatesRequested": {
"max_manifest_version": 2
},
"certificateProvider.onSignDigestRequested": {
"max_manifest_version": 2
},
"certificateProviderInternal": {
"internal": true,
"dependencies": ["permission:certificateProvider"],
"contexts": ["privileged_extension"]
},
"chromeosInfoPrivate": [{
"dependencies": ["permission:chromeosInfoPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://version/*"
],
"platforms": ["chromeos", "lacros"]
}],
// This feature controls the availability of the <webview> tag itself. This
// is separate from the chromeWebViewInternal API, which is needed by other
// elements that are built atop <webview> (like Controlled Frame).
"chromeWebViewTag": [{
"internal": true,
"dependencies": ["permission:webview"],
"contexts": ["privileged_extension"]
}, {
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://assistant-optin/*",
"chrome://add-supervision/*",
"chrome://chrome-signin/*",
"chrome://discards/*",
"chrome://mobilesetup/*",
"chrome://oobe/*",
"chrome://os-settings/*",
"chrome://parent-access/*",
"chrome://password-change/*",
"chrome://lock-reauth/*"
]
}],
"chromeWebViewInternal": [{
"internal": true,
"dependencies": ["api:chromeWebViewTag"],
"contexts": ["privileged_extension"]
}, {
"internal": true,
"dependencies": ["api:chromeWebViewTag"],
"contexts": ["webui"],
// Note: The dependency above effectively restricts where this can be used
// to the specified set of URLs, so this could even be <all_urls>. Just to
// be extra-cautious, we restrict to the chrome scheme.
"matches": [ "chrome://*/*" ]
}, {
// 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
}],
"commandLinePrivate": {
"dependencies": ["permission:commandLinePrivate"],
"contexts": ["privileged_extension"]
},
"commands": {
"dependencies": ["manifest:commands"],
"contexts": ["privileged_extension"]
},
"contentSettings": {
"dependencies": ["permission:contentSettings"],
"contexts": ["privileged_extension"]
},
"contentSettings.clipboard": {
"feature_flag": "ApiContentSettingsClipboard"
},
"contextMenus": {
"dependencies": ["permission:contextMenus"],
"contexts": ["privileged_extension"]
},
"cookies": {
"dependencies": ["permission:cookies"],
"contexts": ["privileged_extension"]
},
"crashReportPrivate": [{
"dependencies": ["permission:crashReportPrivate"],
"contexts": ["privileged_extension"],
"default_parent": true
},
{
"channel": "stable",
"contexts": [
"webui"
],
"matches": [
"chrome://camera-app/*",
"chrome://media-app/*"
]
},
{
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://camera-app/*",
"chrome-untrusted://help-app/*",
"chrome-untrusted://media-app/*",
"chrome-untrusted://projector/*",
"chrome-untrusted://projector-annotator/*"
]
}],
"dashboardPrivate": {
"channel": "stable",
"contexts": ["privileged_extension"],
"allowlist": [
"B44D08FD98F1523ED5837D78D0A606EA9D6206E5" // Web Store
]
},
"debugger": {
"dependencies": ["permission:debugger"],
"contexts": ["privileged_extension"]
},
"declarativeContent": {
"dependencies": ["permission:declarativeContent"],
"contexts": ["privileged_extension"]
},
"desktopCapture": {
"dependencies": ["permission:desktopCapture"],
"contexts": ["privileged_extension"]
},
"developerPrivate": [{
"dependencies": ["permission:developerPrivate", "permission:management"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": ["chrome://extensions/*"]
}],
// All devtools APIs are implemented by hand, so don't compile them.
"devtools.inspectedWindow": {
"nocompile": true,
"dependencies": ["manifest:devtools_page"],
"contexts": ["privileged_extension"]
},
"devtools.network": {
"nocompile": true,
"dependencies": ["manifest:devtools_page"],
"contexts": ["privileged_extension"]
},
"devtools.panels": {
"nocompile": true,
"dependencies": ["manifest:devtools_page"],
"contexts": ["privileged_extension"]
},
"documentScan": {
"dependencies": ["permission:documentScan"],
"contexts": ["privileged_extension"]
},
"dom": {
"channel": "stable",
"contexts": ["privileged_extension", "content_script"]
},
"downloads": [
{
"dependencies": ["permission:downloads"],
"contexts": ["privileged_extension"]
},
{
"channel": "stable",
"contexts": ["webui"],
"matches": ["chrome://download-shelf.top-chrome/*"]
}
],
"downloadsInternal": [
{
"internal": true,
"channel": "stable",
"contexts": ["privileged_extension"],
"dependencies": ["permission:downloads"]
},
{
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": ["chrome://download-shelf.top-chrome/*"]
}
],
"echoPrivate": {
"dependencies": ["permission:echoPrivate"],
"contexts": ["privileged_extension"]
},
"enterprise.hardwarePlatform": {
"dependencies": ["permission:enterprise.hardwarePlatform"],
"contexts": ["privileged_extension"]
},
"enterprise.deviceAttributes": {
"dependencies": ["permission:enterprise.deviceAttributes"],
"contexts": ["privileged_extension"]
},
"enterprise.kioskInput": {
"dependencies": ["permission:enterprise.kioskInput"],
"contexts": ["privileged_extension"]
},
"enterprise.networkingAttributes": {
"dependencies": ["permission:enterprise.networkingAttributes"],
"contexts": ["privileged_extension"]
},
"enterprise.platformKeys": {
"dependencies": ["permission:enterprise.platformKeys"],
"contexts": ["privileged_extension"]
},
"enterprise.platformKeysInternal": {
"dependencies": ["permission:enterprise.platformKeys"],
"internal": true,
"contexts": ["privileged_extension"]
},
"enterprise.platformKeysPrivate": {
"dependencies": ["permission:enterprise.platformKeysPrivate"],
"contexts": ["privileged_extension"]
},
"enterprise.reportingPrivate": {
"dependencies": ["permission:enterprise.reportingPrivate"],
"contexts": ["privileged_extension"]
},
"enterprise.reportingPrivate.getFileSystemInfo": {
"platforms": ["win", "mac", "linux"]
},
"enterprise.reportingPrivate.getSettings": {
"platforms": ["win", "mac"]
},
"enterprise.reportingPrivate.getAvInfo": {
"platforms": ["win"]
},
"enterprise.reportingPrivate.getHotfixes": {
"platforms": ["win"]
},
"experimental.devtools.audits": {
"nocompile": true,
"dependencies": ["permission:experimental", "manifest:devtools_page"],
"contexts": ["privileged_extension"]
},
"experimental.devtools.console": {
"nocompile": true,
"dependencies": ["permission:experimental", "manifest:devtools_page"],
"contexts": ["privileged_extension"]
},
"extension": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"],
"contexts": ["privileged_extension"]
},
"extension.getBackgroundPage": {
"contexts": ["privileged_extension"],
"disallow_for_service_workers": true
},
"extension.getExtensionTabs": {
"contexts": ["privileged_extension"],
"disallow_for_service_workers": true,
"max_manifest_version": 2
},
"extension.getURL": {
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
],
"max_manifest_version": 2
},
"extension.getViews": {
"channel": "stable",
"contexts": ["privileged_extension"],
"extension_types": ["extension", "legacy_packaged_app"],
"disallow_for_service_workers": true
},
"extension.inIncognitoContext": {
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
]
},
"extension.lastError": {
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
],
"max_manifest_version": 2
},
"extension.onRequest": {
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
],
"max_manifest_version": 2
},
"extension.onRequestExternal": {
"max_manifest_version": 2
},
"extension.sendRequest": {
"contexts": [
"privileged_extension",
"unprivileged_extension",
"content_script"
],
"max_manifest_version": 2
},
"extensionOptionsInternal": {
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": ["chrome://extensions/*"]
},
// This is not a real API, only here for documentation purposes.
// See http://crbug.com/275944 for background.
"extensionsManifestTypes": {
"internal": true,
"channel": "stable",
"contexts": []
},
"fileBrowserHandler": {
"dependencies": ["permission:fileBrowserHandler"],
"contexts": ["privileged_extension"],
"disallow_for_service_workers": true
},
"fileBrowserHandlerInternal": {
"internal": true,
"dependencies": ["permission:fileBrowserHandler"],
"contexts": ["privileged_extension"],
"disallow_for_service_workers": true
},
"fileManagerPrivate": [{
"dependencies": ["permission:fileManagerPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://file-manager/*",
"chrome://webui-test/*"
]
}],
"fileManagerPrivateInternal": [{
"internal": true,
"dependencies": ["permission:fileManagerPrivate"],
"contexts": ["privileged_extension"]
}, {
"internal": true,
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://file-manager/*",
"chrome://webui-test/*"
]
}],
"fileSystemProvider": [{
"dependencies": ["permission:fileSystemProvider"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
],
"platforms": ["chromeos"]
}],
"fileSystemProviderInternal": [{
"internal": true,
"dependencies": ["permission:fileSystemProvider"],
"contexts": ["privileged_extension"]
}, {
"internal": true,
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://terminal/*"
],
"platforms": ["chromeos"]
}],
"fontSettings": {
"dependencies": ["permission:fontSettings"],
"contexts": ["privileged_extension"]
},
"gcm": {
"dependencies": ["permission:gcm"],
"contexts": ["privileged_extension"]
},
"sharedStoragePrivate": {
"dependencies": ["permission:sharedStoragePrivate"],
"contexts": ["privileged_extension"]
},
"history": {
"dependencies": ["permission:history"],
"contexts": ["privileged_extension"]
},
"identity": {
"dependencies": ["permission:identity"],
"contexts": ["privileged_extension"]
},
"identity.getAccounts": {
"channel": "dev",
"dependencies": ["permission:identity"],
"contexts": ["privileged_extension"]
},
"idltest": {
"dependencies": ["permission:idltest"],
"contexts": ["privileged_extension"]
},
"imageLoaderPrivate": {
"dependencies": ["permission:imageLoaderPrivate"],
"contexts": ["privileged_extension"]
},
"input.ime": {
"dependencies": ["permission:input"],
"contexts": ["privileged_extension"]
},
"inputMethodPrivate": [{
"dependencies": ["permission:inputMethodPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
// TODO(maybelle): Audit and remove chrome://settings or
// chrome://os-settings as appropriate
"chrome://os-settings/*",
"chrome://settings/*"
]
}],
"instanceID": {
"dependencies": ["permission:gcm"],
"contexts": ["privileged_extension"]
},
"languageSettingsPrivate": [{
"dependencies": ["permission:languageSettingsPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
// TODO(maybelle): Audit and remove chrome://settings or
// chrome://os-settings as appropriate
"chrome://os-settings/*",
"chrome://settings/*"
]
}],
"login": [{
"dependencies": ["behavior:imprivata_extension", "permission:login"],
"contexts": ["privileged_extension"],
"default_parent": true
}, {
"dependencies": ["permission:login"],
"contexts": ["privileged_extension"],
"allowlist": [
"93B7178E8C275515C38D4F43D9DF4648F0EA9B03", // Identity Card Connector
"7FE4A999359A456C4B0FB7B7AD85CEA29CA50519", // Login screen APIs test extension
"3F5995FE79A861F019C6F093BEF98D73FA9D3A5F" // Login screen APIs in-session test extension
]
}],
"login.exitCurrentSession": [{
"dependencies": ["behavior:imprivata_extension", "permission:login"],
"contexts": ["privileged_extension"]
}, {
"dependencies": ["permission:login"],
"allowlist": [
"93B7178E8C275515C38D4F43D9DF4648F0EA9B03", // Identity Card Connector
"7FE4A999359A456C4B0FB7B7AD85CEA29CA50519", // Login screen APIs test extension
"3F5995FE79A861F019C6F093BEF98D73FA9D3A5F", // Login screen APIs in-session test extension
// Only has access to login.exitCurrentSession
"8ECFC754A70BE499325FA4BB705E62EFEEC1BC80", // b/314208017
"ECD28F2B60BDB3B4E566D6C60BD88BE0774044C1" // b/314208017
]
}],
"loginScreenStorage": {
"dependencies": ["permission:loginScreenStorage"],
"contexts": ["privileged_extension"]
},
"loginScreenUi": {
"dependencies": ["permission:loginScreenUi"],
"contexts": ["privileged_extension"]
},
"loginState": {
"dependencies": ["permission:loginState"],
"contexts": ["privileged_extension"]
},
"webcamPrivate": {
"dependencies": ["permission:webcamPrivate"],
"contexts": ["privileged_extension"]
},
// This is not a real API, only here for documentation purposes.
// See http://crbug.com/275944 for background.
"manifestTypes": {
"internal": true,
"channel": "stable",
"contexts": []
},
"mediaPlayerPrivate": {
"dependencies": ["permission:mediaPlayerPrivate"],
"contexts": ["privileged_extension"]
},
"mdns": {
"dependencies": ["permission:mdns"],
"contexts": ["privileged_extension"]
},
"mimeHandlerViewGuestInternal": {
"internal": true,
"contexts": "all",
"channel": "stable",
"matches": ["<all_urls>"]
},
"notifications": {
"dependencies": ["permission:notifications"],
"contexts": ["privileged_extension"]
},
"omnibox": {
"dependencies": ["manifest:omnibox"],
"contexts": ["privileged_extension"]
},
"pageAction": {
"dependencies": ["manifest:page_action"],
"contexts": ["privileged_extension"]
},
"pageCapture": {
"dependencies": ["permission:pageCapture"],
"contexts": ["privileged_extension"]
},
"passwordsPrivate": [{
"dependencies": ["permission:passwordsPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://settings/*",
"chrome://password-manager/*"
]
}],
"permissions": {
"channel": "stable",
"extension_types": [
"extension",
"legacy_packaged_app",
"platform_app",
"chromeos_system_extension"
],
"contexts": ["privileged_extension"]
},
"platformKeys": {
"dependencies": ["permission:platformKeys"],
"contexts": ["privileged_extension"]
},
"platformKeysInternal": [{
"dependencies": ["permission:platformKeys"],
"internal": true,
"contexts": ["privileged_extension"]
},{
"dependencies": ["permission:enterprise.platformKeys"],
"internal": true,
"contexts": ["privileged_extension"]
}],
"pdfViewerPrivate": {
"dependencies": ["permission:pdfViewerPrivate"],
"contexts": ["privileged_extension"]
},
"printing": {
"dependencies": ["permission:printing"],
"contexts": ["privileged_extension"],
"required_buildflags": ["use_cups"]
},
"printingMetrics": {
"dependencies": ["permission:printingMetrics"],
"contexts": ["privileged_extension"],
"required_buildflags": ["use_cups"]
},
"privacy": {
"dependencies": ["permission:privacy"],
"contexts": ["privileged_extension"]
},
"processes": {
"dependencies": ["permission:processes"],
"contexts": ["privileged_extension"]
},
"proxy": {
"dependencies": ["permission:proxy"],
"contexts": ["privileged_extension"]
},
"imageWriterPrivate": {
"dependencies": ["permission:imageWriterPrivate"],
"contexts": ["privileged_extension"]
},
"quickUnlockPrivate": {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://multidevice-setup/*",
"chrome://os-settings/*",
"chrome://settings/*",
"chrome://oobe/*"
],
"platforms": ["chromeos", "lacros"]
},
"readingList": {
"dependencies": ["permission:readingList"],
"contexts": ["privileged_extension"],
"feature_flag": "ApiReadingList"
},
"resourcesPrivate": [{
"dependencies": ["permission:resourcesPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://print/*"
]
}],
"rtcPrivate": {
"dependencies": ["permission:rtcPrivate"],
"contexts": ["privileged_extension"]
},
"safeBrowsingPrivate": {
"dependencies": ["permission:safeBrowsingPrivate"],
"contexts": ["privileged_extension"]
},
"scripting": {
"dependencies": ["permission:scripting"],
"contexts": ["privileged_extension"]
},
"scripting.globalParams": {
"channel": "trunk",
"dependencies": ["permission:scripting"],
"contexts": ["content_script"]
},
"search": {
"dependencies": ["permission:search"],
"contexts": ["privileged_extension"]
},
"sessions": {
"dependencies": ["permission:sessions"],
"contexts": ["privileged_extension"]
},
"settingsPrivate": [{
"dependencies": ["permission:settingsPrivate"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://os-settings/*",
"chrome://settings/*",
"chrome://password-manager/*"
]
}],
"sidePanel": {
"dependencies": ["permission:sidePanel"],
"contexts": ["privileged_extension"]
},
"smartCardProviderPrivate": {
"dependencies": ["permission:smartCardProviderPrivate"],
"contexts": ["privileged_extension"]
},
"speechRecognitionPrivate": {
"dependencies": ["permission:speechRecognitionPrivate"],
"contexts": ["privileged_extension"]
},
"systemIndicator": {
"dependencies": ["manifest:system_indicator"],
"contexts": ["privileged_extension"]
},
"systemLog": {
"dependencies": ["permission:systemLog"],
"contexts": ["privileged_extension"]
},
"systemPrivate": {
"dependencies": ["permission:systemPrivate"],
"contexts": ["privileged_extension"]
},
"tabCapture": {
"dependencies": ["permission:tabCapture"],
"contexts": ["privileged_extension"]
},
"tabCapture.capture": {
"disallow_for_service_workers": true
},
"tabGroups": {
"dependencies": ["permission:tabGroups"],
"contexts": ["privileged_extension"]
},
"tabs": [{
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"],
"contexts": ["privileged_extension"],
"default_parent": true
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bookmarks/*",
"chrome://bookmarks-side-panel.top-chrome/*",
"chrome://read-later.top-chrome/*",
"chrome://tab-strip.top-chrome/*"
]
}, {
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://crosh/*",
"chrome-untrusted://terminal/*"
],
"platforms": ["chromeos"]
}],
"tabs.executeScript": {
"max_manifest_version": 2
},
"tabs.getAllInWindow": {
"max_manifest_version": 2
},
"tabs.getSelected": {
"max_manifest_version": 2
},
"tabs.insertCSS": {
"max_manifest_version": 2
},
"tabs.removeCSS": {
"max_manifest_version": 2
},
"tabs.onActiveChanged": {
"max_manifest_version": 2
},
"tabs.onHighlightChanged": {
"max_manifest_version": 2
},
"tabs.onSelectionChanged": {
"max_manifest_version": 2
},
"tabs.sendRequest": {
"max_manifest_version": 2
},
// chrome.terminalPrivate allowed for nassh extensions,
// chrome-untrusted://crosh, and chrome-untrusted://terminal.
"terminalPrivate": [{
"dependencies": ["permission:terminalPrivate"],
"contexts": ["privileged_extension"],
"default_parent": true,
"platforms": ["chromeos"]
}, {
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://crosh/*",
"chrome-untrusted://terminal/*"
],
"platforms": ["chromeos"]
}],
// terminalPrivate.openTerminalProcess allowed for nassh extensions,
// and chrome-untrusted://crosh, but NOT for chrome-untrusted://terminal.
"terminalPrivate.openTerminalProcess": [{
"contexts": ["privileged_extension"]
}, {
"dependencies": [],
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://crosh/*"
]
}],
"topSites": {
"dependencies": ["permission:topSites"],
"contexts": ["privileged_extension"]
},
"tts": [{
"dependencies": ["permission:tts"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://oobe/*"
]
}],
"ttsEngine": {
"dependencies": ["permission:ttsEngine"],
"contexts": ["privileged_extension"]
},
"usersPrivate": [{
"dependencies": ["permission:usersPrivate"],
"contexts": ["privileged_extension"],
"platforms": ["chromeos"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://os-settings/*"
]
}],
"virtualKeyboardPrivate": {
"dependencies": ["permission:virtualKeyboardPrivate"],
"contexts": ["privileged_extension"]
},
"wallpaper": [{
"dependencies": ["permission:wallpaper"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://file-manager/*"
]
}],
"webAuthenticationProxy": {
"dependencies": ["permission:webAuthenticationProxy"],
"contexts": ["privileged_extension"]
},
"webNavigation": {
"dependencies": ["permission:webNavigation"],
"contexts": ["privileged_extension"]
},
"webrtcAudioPrivate": {
"dependencies": ["permission:webrtcAudioPrivate"],
"contexts": ["privileged_extension"]
},
"webrtcDesktopCapturePrivate": {
"dependencies": ["permission:webrtcDesktopCapturePrivate"],
"contexts": ["privileged_extension"]
},
"webrtcLoggingPrivate": {
"dependencies": ["permission:webrtcLoggingPrivate"],
"contexts": ["privileged_extension"]
},
"webrtcLoggingPrivate.getLogsDirectory": {
"component_extensions_auto_granted": false,
"allowlist": [
// Extension used for API test.
"ADFA45434ABA2F1A4647E673F53FF37F8F6047A3",
"4F25792AF1AA7483936DE29C07806F203C7170A0", // http://crbug.com/775961
"BD8781D757D830FC2E85470A1B6E8A718B7EE0D9", // http://crbug.com/775961
"4AC2B6C63C6480D150DFDA13E4A5956EB1D0DDBB", // http://crbug.com/775961
"81986D4F846CEDDDB962643FA501D1780DD441BB" // http://crbug.com/775961
]
},
"webstorePrivate": [{
"dependencies": ["permission:webstorePrivate"],
// NOTE: even though this is only used by the webstore hosted app, which
// normally would mean privileged_web_page, component hosted apps are
// actually given the privileged_extension denomination. Confusing.
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["web_page"],
"matches": ["https://chromewebstore.google.com/*"],
"feature_flag": "NewWebstoreDomain"
}],
"webviewTag": {
"internal": true,
"channel": "stable",
"dependencies": ["permission:webview"],
"contexts": ["privileged_extension"]
},
"windows": [{
"dependencies": ["api:tabs"],
"contexts": ["privileged_extension"]
}, {
"channel": "stable",
"contexts": ["webui"],
"matches": [
"chrome://bookmarks/*",
"chrome://tab-strip.top-chrome/*"
]
}, {
"channel": "stable",
"contexts": ["webui_untrusted"],
"matches": [
"chrome-untrusted://crosh/*",
"chrome-untrusted://terminal/*"
],
"platforms": ["chromeos"]
}],
"wmDesksPrivate": {
"dependencies": ["permission:wmDesksPrivate"],
"contexts": ["privileged_extension"]
}
}