summaryrefslogtreecommitdiff
path: root/chromium/chrome/common/extensions
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/common/extensions')
-rw-r--r--chromium/chrome/common/extensions/api/PRESUBMIT.py35
-rw-r--r--chromium/chrome/common/extensions/api/_api_features.json23
-rw-r--r--chromium/chrome/common/extensions/api/_manifest_features.json2
-rw-r--r--chromium/chrome/common/extensions/api/_permission_features.json101
-rw-r--r--chromium/chrome/common/extensions/api/accessibility_features.json6
-rw-r--r--chromium/chrome/common/extensions/api/accessibility_private.json25
-rw-r--r--chromium/chrome/common/extensions/api/api_sources.gni11
-rw-r--r--chromium/chrome/common/extensions/api/autofill_assistant_private.idl2
-rw-r--r--chromium/chrome/common/extensions/api/autofill_private.idl3
-rw-r--r--chromium/chrome/common/extensions/api/autotest_private.idl26
-rw-r--r--chromium/chrome/common/extensions/api/braille_display_private.idl2
-rw-r--r--chromium/chrome/common/extensions/api/cast_streaming_receiver_session.idl70
-rw-r--r--chromium/chrome/common/extensions/api/cast_streaming_rtp_stream.idl145
-rw-r--r--chromium/chrome/common/extensions/api/cast_streaming_session.idl39
-rw-r--r--chromium/chrome/common/extensions/api/cast_streaming_udp_transport.idl42
-rw-r--r--chromium/chrome/common/extensions/api/chrome_web_view_internal.json2
-rw-r--r--chromium/chrome/common/extensions/api/chromeos_info_private.json13
-rw-r--r--chromium/chrome/common/extensions/api/context_menus.json6
-rw-r--r--chromium/chrome/common/extensions/api/cookies.json4
-rw-r--r--chromium/chrome/common/extensions/api/developer_private.idl3
-rw-r--r--chromium/chrome/common/extensions/api/enterprise_networking_attributes.idl33
-rw-r--r--chromium/chrome/common/extensions/api/enterprise_reporting_private.idl10
-rw-r--r--chromium/chrome/common/extensions/api/extension_action/action_info_test_util.cc16
-rw-r--r--chromium/chrome/common/extensions/api/file_manager_private.idl27
-rw-r--r--chromium/chrome/common/extensions/api/generated_externs_list.txt24
-rw-r--r--chromium/chrome/common/extensions/api/input_ime.json223
-rw-r--r--chromium/chrome/common/extensions/api/input_method_private.json51
-rw-r--r--chromium/chrome/common/extensions/api/login.idl4
-rw-r--r--chromium/chrome/common/extensions/api/passwords_private.idl38
-rw-r--r--chromium/chrome/common/extensions/api/platform_keys.idl38
-rw-r--r--chromium/chrome/common/extensions/api/platform_keys_internal.idl11
-rw-r--r--chromium/chrome/common/extensions/api/printing_metrics.idl3
-rw-r--r--chromium/chrome/common/extensions/api/settings_private.idl11
-rw-r--r--chromium/chrome/common/extensions/api/tab_capture.idl4
-rw-r--r--chromium/chrome/common/extensions/api/tts.json2
-rw-r--r--chromium/chrome/common/extensions/api/webstore_private.json5
-rw-r--r--chromium/chrome/common/extensions/api/webview_tag.json4
-rw-r--r--chromium/chrome/common/extensions/extension_constants.cc11
-rw-r--r--chromium/chrome/common/extensions/extension_constants.h12
-rw-r--r--chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.cc14
-rw-r--r--chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.h2
-rw-r--r--chromium/chrome/common/extensions/permissions/chrome_api_permissions.cc3
-rw-r--r--chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc9
-rw-r--r--chromium/chrome/common/extensions/permissions/permission_set_unittest.cc5
44 files changed, 518 insertions, 602 deletions
diff --git a/chromium/chrome/common/extensions/api/PRESUBMIT.py b/chromium/chrome/common/extensions/api/PRESUBMIT.py
index 88e6835d021..64d017e6b84 100644
--- a/chromium/chrome/common/extensions/api/PRESUBMIT.py
+++ b/chromium/chrome/common/extensions/api/PRESUBMIT.py
@@ -13,46 +13,15 @@ import sys
def _CheckExterns(input_api, output_api):
original_sys_path = sys.path
-
join = input_api.os_path.join
- api_root = input_api.PresubmitLocalPath()
- src_root = join(api_root, '..', '..', '..', '..')
+ src_root = input_api.change.RepositoryRoot()
try:
sys.path.append(join(src_root, 'extensions', 'common', 'api'))
from externs_checker import ExternsChecker
finally:
sys.path = original_sys_path
- externs_root = join(src_root, 'third_party', 'closure_compiler', 'externs')
-
- api_pair_names = {
- 'accessibility_private.json': 'accessibility_private.js',
- 'activity_log_private.json': 'activity_log_private.js',
- 'autofill_private.idl': 'autofill_private.js',
- 'developer_private.idl': 'developer_private.js',
- 'bookmark_manager_private.json': 'bookmark_manager_private.js',
- 'command_line_private.json': 'command_line_private.js',
- 'file_manager_private.idl': 'file_manager_private.js',
- 'file_system_provider.idl': 'file_system_provider.js',
- 'input_method_private.json': 'input_method_private.js',
- 'language_settings_private.idl': 'language_settings_private.js',
- 'media_player_private.json': 'media_player_private.js',
- 'passwords_private.idl': 'passwords_private.js',
- 'quick_unlock_private.idl': 'quick_unlock_private.js',
- 'resources_private.idl': 'resources_private.js',
- 'safe_browsing_private.idl': 'safe_browsing_private.js',
- 'settings_private.idl': 'settings_private.js',
- 'system_private.json': 'system_private.js',
- 'users_private.idl': 'users_private.js',
- # TODO(rdevlin.cronin): Add more!
- }
- normpath = input_api.os_path.normpath
- api_pairs = {
- normpath(join(api_root, k)):
- normpath(join(externs_root, v)) for k, v in api_pair_names.items()
- }
-
- return ExternsChecker(input_api, output_api, api_pairs).RunChecks()
+ return ExternsChecker(input_api, output_api).RunChecks()
def CheckChangeOnUpload(input_api, output_api):
diff --git a/chromium/chrome/common/extensions/api/_api_features.json b/chromium/chrome/common/extensions/api/_api_features.json
index 5f7d5bf1dcc..ea4b1fa0be1 100644
--- a/chromium/chrome/common/extensions/api/_api_features.json
+++ b/chromium/chrome/common/extensions/api/_api_features.json
@@ -61,9 +61,6 @@
"dependencies": ["manifest:action"],
"contexts": ["blessed_extension"]
},
- "action.setIcon": {
- "disallow_for_service_workers": true
- },
"activityLogPrivate": [{
"dependencies": ["permission:activityLogPrivate"],
"contexts": ["blessed_extension"]
@@ -189,22 +186,6 @@
"dependencies": ["permission:cast"],
"contexts": ["blessed_extension"]
},
- "cast.streaming.rtpStream": {
- "dependencies": ["permission:cast.streaming"],
- "contexts": ["blessed_extension"]
- },
- "cast.streaming.receiverSession": {
- "dependencies": ["permission:cast.streaming"],
- "contexts": ["blessed_extension"]
- },
- "cast.streaming.session": {
- "dependencies": ["permission:cast.streaming"],
- "contexts": ["blessed_extension"]
- },
- "cast.streaming.udpTransport": {
- "dependencies": ["permission:cast.streaming"],
- "contexts": ["blessed_extension"]
- },
"certificateProvider": {
"dependencies": ["permission:certificateProvider"],
"contexts": ["blessed_extension"]
@@ -357,6 +338,10 @@
"dependencies": ["permission:enterprise.deviceAttributes"],
"contexts": ["blessed_extension"]
},
+ "enterprise.networkingAttributes": {
+ "dependencies": ["permission:enterprise.networkingAttributes"],
+ "contexts": ["blessed_extension"]
+ },
"enterprise.platformKeys": {
"dependencies": ["permission:enterprise.platformKeys"],
"contexts": ["blessed_extension"],
diff --git a/chromium/chrome/common/extensions/api/_manifest_features.json b/chromium/chrome/common/extensions/api/_manifest_features.json
index 5e06b7a2e39..7ff07461a19 100644
--- a/chromium/chrome/common/extensions/api/_manifest_features.json
+++ b/chromium/chrome/common/extensions/api/_manifest_features.json
@@ -12,7 +12,7 @@
"extension_types": ["shared_module"]
},
"action": {
- "channel": "trunk",
+ "channel": "canary",
"extension_types": ["extension"]
},
"app.icon_color": {
diff --git a/chromium/chrome/common/extensions/api/_permission_features.json b/chromium/chrome/common/extensions/api/_permission_features.json
index a821970237b..f2fcf969cb5 100644
--- a/chromium/chrome/common/extensions/api/_permission_features.json
+++ b/chromium/chrome/common/extensions/api/_permission_features.json
@@ -59,6 +59,7 @@
"channel": "stable",
"extension_types": ["extension"],
"whitelist": [
+ "05D1DBD6E8B9C4690FFA7D50E6F60C5290DC662A", // http://crbug.com/941107
"0D209B5E4401BB8E7873B5AB5B1346A1CB067015", // http://crbug.com/654525
"93CFDA3681E923AD7AB291CEDD98248396B5496C" // http://crbug.com/803543
]
@@ -82,17 +83,6 @@
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
- "cast.streaming": [{
- "channel": "dev",
- "extension_types": ["extension"]
- }, {
- "channel": "stable",
- "extension_types": ["extension"],
- "whitelist": [
- "63ED55E43214C211F82122ED56407FF1A807F2A3", // Media Router Dev
- "226CF815E39A363090A1E547D53063472B8279FA" // Media Router Stable
- ]
- }],
"certificateProvider": {
"channel": "stable",
"platforms": ["chromeos"],
@@ -284,6 +274,31 @@
"320857126E2180A5751AA384B7B7332A4964BD8C" // Imprivata (login screen) crbug.com/1065112
]
}],
+ "enterprise.networkingAttributes": [{
+ "channel": "stable",
+ "platforms": ["chromeos"],
+ "extension_types": ["extension"],
+ "location": "policy"
+ }, {
+ "channel": "stable",
+ "extension_types": ["login_screen_extension"],
+ "location": "policy",
+ "platforms": ["chromeos"],
+ "whitelist": [
+ "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) crbug.com/1065112
+ "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) crbug.com/1065112
+ "CDA6A10BE50CE65C59B766D0CE6A27E8E0A1533F", // Imprivata (login screen) crbug.com/1065112
+ "D85454743B32D9F5ABF3E5F18DF78809F3A0ABD4", // Imprivata (login screen) crbug.com/1065112
+ "04569B963251EB28C0906099668D98EE65ECA2D8", // Imprivata (login screen) crbug.com/1065112
+ "7BF5B69C3ACA9E6ACA5C480661B8073EB9FA32A9", // Imprivata (login screen) crbug.com/1065112
+ "5F2EF8E9F7E975090278D6A0AD039860430C5684", // Imprivata (login screen) crbug.com/1065112
+ "97A4DC8AFC1FCF665C71B624A55675C297AB256C", // Imprivata (login screen) crbug.com/1065112
+ "A00EB72B456C374F1EA86C09833C7DBB6CD95CAE", // Imprivata (login screen) crbug.com/1065112
+ "51DDBADA37EF4D25AD03CB1BB6451799456FE183", // Imprivata (login screen) crbug.com/1065112
+ "DD97CAE4D8658003658140109BC119188A19A5B8", // Imprivata (login screen) crbug.com/1065112
+ "320857126E2180A5751AA384B7B7332A4964BD8C" // Imprivata (login screen) crbug.com/1065112
+ ]
+ }],
"enterprise.hardwarePlatform": {
"channel": "stable",
"extension_types": ["extension"],
@@ -294,7 +309,28 @@
"platforms": ["chromeos"],
"extension_types": ["extension", "platform_app", "legacy_packaged_app"],
"location": "policy"
- }, {
+ },
+ {
+ "channel": "stable",
+ "extension_types": ["login_screen_extension"],
+ "location": "policy",
+ "platforms": ["chromeos"],
+ "whitelist": [
+ "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) crbug.com/1065112
+ "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) crbug.com/1065112
+ "CDA6A10BE50CE65C59B766D0CE6A27E8E0A1533F", // Imprivata (login screen) crbug.com/1065112
+ "D85454743B32D9F5ABF3E5F18DF78809F3A0ABD4", // Imprivata (login screen) crbug.com/1065112
+ "04569B963251EB28C0906099668D98EE65ECA2D8", // Imprivata (login screen) crbug.com/1065112
+ "7BF5B69C3ACA9E6ACA5C480661B8073EB9FA32A9", // Imprivata (login screen) crbug.com/1065112
+ "5F2EF8E9F7E975090278D6A0AD039860430C5684", // Imprivata (login screen) crbug.com/1065112
+ "97A4DC8AFC1FCF665C71B624A55675C297AB256C", // Imprivata (login screen) crbug.com/1065112
+ "A00EB72B456C374F1EA86C09833C7DBB6CD95CAE", // Imprivata (login screen) crbug.com/1065112
+ "51DDBADA37EF4D25AD03CB1BB6451799456FE183", // Imprivata (login screen) crbug.com/1065112
+ "DD97CAE4D8658003658140109BC119188A19A5B8", // Imprivata (login screen) crbug.com/1065112
+ "320857126E2180A5751AA384B7B7332A4964BD8C" // Imprivata (login screen) crbug.com/1065112
+ ]
+ },
+ {
"channel": "stable",
"platforms": ["chromeos"],
"extension_types": ["extension"],
@@ -622,6 +658,25 @@
"channel": "stable",
"extension_types": ["platform_app"],
"session_types": ["kiosk"]
+ },
+ {
+ "channel": "stable",
+ "extension_types": ["login_screen_extension"],
+ "min_manifest_version": 2,
+ "whitelist": [
+ "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) crbug.com/1065112
+ "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) crbug.com/1065112
+ "CDA6A10BE50CE65C59B766D0CE6A27E8E0A1533F", // Imprivata (login screen) crbug.com/1065112
+ "D85454743B32D9F5ABF3E5F18DF78809F3A0ABD4", // Imprivata (login screen) crbug.com/1065112
+ "04569B963251EB28C0906099668D98EE65ECA2D8", // Imprivata (login screen) crbug.com/1065112
+ "7BF5B69C3ACA9E6ACA5C480661B8073EB9FA32A9", // Imprivata (login screen) crbug.com/1065112
+ "5F2EF8E9F7E975090278D6A0AD039860430C5684", // Imprivata (login screen) crbug.com/1065112
+ "97A4DC8AFC1FCF665C71B624A55675C297AB256C", // Imprivata (login screen) crbug.com/1065112
+ "A00EB72B456C374F1EA86C09833C7DBB6CD95CAE", // Imprivata (login screen) crbug.com/1065112
+ "51DDBADA37EF4D25AD03CB1BB6451799456FE183", // Imprivata (login screen) crbug.com/1065112
+ "DD97CAE4D8658003658140109BC119188A19A5B8", // Imprivata (login screen) crbug.com/1065112
+ "320857126E2180A5751AA384B7B7332A4964BD8C" // Imprivata (login screen) crbug.com/1065112
+ ]
}
],
"mediaPlayerPrivate": {
@@ -678,11 +733,31 @@
"extension_types": ["extension", "platform_app"],
"location": "component"
},
- "platformKeys": {
+ "platformKeys": [{
"channel": "stable",
"platforms": ["chromeos"],
"extension_types": ["extension", "platform_app"]
},
+ {
+ "channel": "stable",
+ "extension_types": ["login_screen_extension"],
+ "location": "policy",
+ "platforms": ["chromeos"],
+ "whitelist": [
+ "E219EE36A3B40612FD2A8CD6937B03EF0C97D3FE", // Imprivata (login screen) crbug.com/1065112
+ "4DBFC1C52D6660DD90791976DF7FEF7B3D360509", // Imprivata (login screen) crbug.com/1065112
+ "CDA6A10BE50CE65C59B766D0CE6A27E8E0A1533F", // Imprivata (login screen) crbug.com/1065112
+ "D85454743B32D9F5ABF3E5F18DF78809F3A0ABD4", // Imprivata (login screen) crbug.com/1065112
+ "04569B963251EB28C0906099668D98EE65ECA2D8", // Imprivata (login screen) crbug.com/1065112
+ "7BF5B69C3ACA9E6ACA5C480661B8073EB9FA32A9", // Imprivata (login screen) crbug.com/1065112
+ "5F2EF8E9F7E975090278D6A0AD039860430C5684", // Imprivata (login screen) crbug.com/1065112
+ "97A4DC8AFC1FCF665C71B624A55675C297AB256C", // Imprivata (login screen) crbug.com/1065112
+ "A00EB72B456C374F1EA86C09833C7DBB6CD95CAE", // Imprivata (login screen) crbug.com/1065112
+ "51DDBADA37EF4D25AD03CB1BB6451799456FE183", // Imprivata (login screen) crbug.com/1065112
+ "DD97CAE4D8658003658140109BC119188A19A5B8", // Imprivata (login screen) crbug.com/1065112
+ "320857126E2180A5751AA384B7B7332A4964BD8C" // Imprivata (login screen) crbug.com/1065112
+ ]
+ }],
"plugin": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
diff --git a/chromium/chrome/common/extensions/api/accessibility_features.json b/chromium/chrome/common/extensions/api/accessibility_features.json
index 499a89a3e91..b6dac608602 100644
--- a/chromium/chrome/common/extensions/api/accessibility_features.json
+++ b/chromium/chrome/common/extensions/api/accessibility_features.json
@@ -61,6 +61,12 @@
"value": ["cursorHighlight", {"type": "boolean"}],
"platforms": ["chromeos"]
},
+ "cursorColor": {
+ "$ref": "types.ChromeSetting",
+ "description": "<p><strong>ChromeOS only.</strong></p><p>Cursor color. The value indicates whether the feature is enabled or not. <code>get()</code> requires <code>accessibilityFeatures.read</code> permission. <code>set()</code> and <code>clear()</code> require <code>accessibilityFeatures.modify</code> permission.</p>",
+ "value": ["cursorColor", {"type": "boolean"}],
+ "platforms": ["chromeos"]
+ },
"focusHighlight": {
"$ref": "types.ChromeSetting",
"description": "<p><strong>ChromeOS only.</strong></p><p>Focus highlighting. The value indicates whether the feature is enabled or not. <code>get()</code> requires <code>accessibilityFeatures.read</code> permission. <code>set()</code> and <code>clear()</code> require <code>accessibilityFeatures.modify</code> permission.</p>",
diff --git a/chromium/chrome/common/extensions/api/accessibility_private.json b/chromium/chrome/common/extensions/api/accessibility_private.json
index c4d778f0fd3..205c2e5b65e 100644
--- a/chromium/chrome/common/extensions/api/accessibility_private.json
+++ b/chromium/chrome/common/extensions/api/accessibility_private.json
@@ -278,29 +278,6 @@
]
},
{
- "name": "setSwitchAccessMenuState",
- "type": "function",
- "description": "Shows or hides the Switch Access menu. If shown, it is at the indicated location.\nTODO(anastasi): Remove this function once the menu refactor is complete.",
- "parameters": [
- {
- "name": "show",
- "type": "boolean",
- "description": "If true, show the menu. If false, hide the menu."
- },
- {
- "name": "element_bounds",
- "$ref": "ScreenRect",
- "description": "Position of an element, in global screen coordinates, to place the menu next to."
- },
- {
- "name": "item_count",
- "type": "integer",
- "description": "The number of items that need to be shown in the menu."
- }
- ],
- "platforms": ["chromeos"]
- },
- {
"name": "forwardKeyEventsToSwitchAccess",
"type": "function",
"description": "When enabled, forwards key events to the Switch Access extension",
@@ -410,7 +387,7 @@
{
"name": "onScrollableBoundsForPointFound",
"type": "function",
- "description": "Called by the Autoclick extension when findScrollableBoundsForPoint has found a scrolling container. |rect| will be the bounds of the nearest scrollable ancestor of the node at the point requested using findScrollableBoundsForPoint.",
+ "description": "Called by the Accessibility Common extension when findScrollableBoundsForPoint has found a scrolling container. |rect| will be the bounds of the nearest scrollable ancestor of the node at the point requested using findScrollableBoundsForPoint.",
"parameters": [
{
"name": "rect",
diff --git a/chromium/chrome/common/extensions/api/api_sources.gni b/chromium/chrome/common/extensions/api/api_sources.gni
index 6cc8b9297ce..b8f3326d699 100644
--- a/chromium/chrome/common/extensions/api/api_sources.gni
+++ b/chromium/chrome/common/extensions/api/api_sources.gni
@@ -11,10 +11,6 @@ schema_sources_ = [
"accessibility_features.json",
"accessibility_private.json",
"activity_log_private.json",
- "cast_streaming_receiver_session.idl",
- "cast_streaming_rtp_stream.idl",
- "cast_streaming_session.idl",
- "cast_streaming_udp_transport.idl",
"autofill_private.idl",
"autotest_private.idl",
"bookmark_manager_private.json",
@@ -86,6 +82,7 @@ if (is_chromeos) {
"certificate_provider_internal.idl",
"echo_private.json",
"enterprise_device_attributes.idl",
+ "enterprise_networking_attributes.idl",
"enterprise_platform_keys.idl",
"enterprise_platform_keys_internal.idl",
"enterprise_platform_keys_private.json",
@@ -103,7 +100,6 @@ if (is_chromeos) {
"login_state.idl",
"platform_keys.idl",
"platform_keys_internal.idl",
- "printing_metrics.idl",
"quick_unlock_private.idl",
"terminal_private.json",
"users_private.idl",
@@ -111,7 +107,10 @@ if (is_chromeos) {
"wallpaper_private.json",
]
if (use_cups) {
- schema_sources_ += [ "printing.idl" ]
+ schema_sources_ += [
+ "printing.idl",
+ "printing_metrics.idl",
+ ]
}
} else if (is_linux || is_win) {
schema_sources_ += [ "input_ime.json" ]
diff --git a/chromium/chrome/common/extensions/api/autofill_assistant_private.idl b/chromium/chrome/common/extensions/api/autofill_assistant_private.idl
index 08ebb415a00..95a2492d19c 100644
--- a/chromium/chrome/common/extensions/api/autofill_assistant_private.idl
+++ b/chromium/chrome/common/extensions/api/autofill_assistant_private.idl
@@ -12,7 +12,7 @@
// and can be executed via <code>performAction</code>.
namespace autofillAssistantPrivate {
// Success or error of a function call will be communicated by setting
- // chrome.runtime.lastError.
+ // $(ref:runtime.lastError).
callback VoidCallback = void ();
dictionary ActionObject {
diff --git a/chromium/chrome/common/extensions/api/autofill_private.idl b/chromium/chrome/common/extensions/api/autofill_private.idl
index 5d00acd41b0..d7980c99df9 100644
--- a/chromium/chrome/common/extensions/api/autofill_private.idl
+++ b/chromium/chrome/common/extensions/api/autofill_private.idl
@@ -161,6 +161,9 @@ namespace autofillPrivate {
// Year as a 4-character string (as in "2015").
DOMString? expirationYear;
+ // Credit card's nickname.
+ DOMString? nickname;
+
AutofillMetadata? metadata;
};
diff --git a/chromium/chrome/common/extensions/api/autotest_private.idl b/chromium/chrome/common/extensions/api/autotest_private.idl
index 06d005ecb8e..3eb6e5ce052 100644
--- a/chromium/chrome/common/extensions/api/autotest_private.idl
+++ b/chromium/chrome/common/extensions/api/autotest_private.idl
@@ -692,6 +692,7 @@ namespace autotestPrivate {
// |callback|: Called when the operation has completed.
static void importCrostini(DOMString path, VoidCallback callback);
+ // TODO(b/156566782): Remove this after M85 branches.
// Installs Plugin VM via the installer and then launches the VM.
// |imageUrl|: URL to the image to install.
// |imageHash|: Hash for the provided image.
@@ -702,6 +703,17 @@ namespace autotestPrivate {
DOMString licenseKey,
VoidCallback callback);
+ // Sets mock Plugin VM policy.
+ // |imageUrl|: URL to the image to install.
+ // |imageHash|: Hash for the provided image.
+ // |licenseKey|: License key for Plugin VM.
+ static void setPluginVMPolicy(DOMString imageUrl,
+ DOMString imageHash,
+ DOMString licenseKey);
+
+ // Shows the Plugin VM installer. Does not start installation.
+ static void showPluginVMInstaller();
+
// Register a component with CrOSComponentManager.
// |name|: The name of the component.
// |path|: Path to the component.
@@ -1012,6 +1024,20 @@ namespace autotestPrivate {
// the display specified by the display id is used.
static void stopSmoothnessTracking(optional DOMString displayId,
StopSmoothnessTrackingCallback callback);
+
+ // When neccesary, disables showing the dialog when Switch Access is disabled.
+ static void disableSwitchAccessDialog();
+
+ // Waits for the completion of photo transition animation in ambient mode.
+ // |photoRefreshInterval|: photo refresh interval in seconds.
+ // |numCompletions|: number of completions of the animation.
+ // |timeout|: the timeout in seconds.
+ // |callback|: Called when the operation has completed.
+ static void waitForAmbientPhotoAnimation(
+ long photoRefreshInterval,
+ long numCompletions,
+ long timeout,
+ VoidCallback callback);
};
interface Events {
diff --git a/chromium/chrome/common/extensions/api/braille_display_private.idl b/chromium/chrome/common/extensions/api/braille_display_private.idl
index 7e5a8956ede..0a7415f5ae6 100644
--- a/chromium/chrome/common/extensions/api/braille_display_private.idl
+++ b/chromium/chrome/common/extensions/api/braille_display_private.idl
@@ -56,6 +56,8 @@ namespace brailleDisplayPrivate {
long? textRowCount;
// Number of columns of braille cells on the currently connected display.
long? textColumnCount;
+ // The number of dots in a braille cell on the currently connected display.
+ long? cellSize;
};
callback DisplayStateCallback = void(DisplayState result);
diff --git a/chromium/chrome/common/extensions/api/cast_streaming_receiver_session.idl b/chromium/chrome/common/extensions/api/cast_streaming_receiver_session.idl
deleted file mode 100644
index 15a7f0a7f49..00000000000
--- a/chromium/chrome/common/extensions/api/cast_streaming_receiver_session.idl
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The <code>chrome.cast.streaming.receiverSession</code> API creates a Cast
-// receiver session and adds the resulting audio and video tracks to a
-// MediaStream.
-namespace cast.streaming.receiverSession {
- // The UDP socket address and port.
- dictionary IPEndPoint {
- DOMString address;
- long port;
- };
-
- // RTP receiver parameters.
- dictionary RtpReceiverParams {
- // Maximum latency in milliseconds. This parameter controls the logic
- // of flow control. Implementation can adjust latency adaptively and
- // tries to keep it under this threshold. A larger value allows smoother
- // playback at the cost of higher latency.
- long maxLatency;
-
- DOMString codecName;
-
- // Synchronization source identifier for incoming data.
- long senderSsrc;
-
- // The SSRC used to send RTCP reports back to the sender.
- long receiverSsrc;
-
- // RTP time units per second, defaults to 48000 for audio
- // and 90000 for video.
- long? rtpTimebase;
-
- // 32 bytes hex-encoded AES key.
- DOMString? aesKey;
-
- // 32 bytes hex-encoded AES IV (Initialization vector) mask.
- DOMString? aesIvMask;
- };
-
- callback ErrorCallback = void (DOMString error);
-
- interface Functions {
- // Creates a Cast receiver session which receives data from a UDP
- // socket. The receiver will decode the incoming data into an audio
- // and a video track which will be added to the provided media stream.
- // The |audioParams| and |videoParams| are generally provided by the
- // sender through some other messaging channel.
- //
- // |audioParams| : Audio stream parameters.
- // |videoParams| : Video stream parameters.
- // |localEndpoint| : Local IP and port to bind to.
- // |height| : Video height.
- // |width| : Video width.
- // |maxFrameRate| : Max video frame rate.
- // |mediaStreamURL| : URL of MediaStream to add the audio and video to.
- // |transport_options| : Optional transport settings.
- [nocompile] static void createAndBind(
- RtpReceiverParams audioParams,
- RtpReceiverParams videoParams,
- IPEndPoint localEndpoint,
- long maxWidth,
- long maxHeight,
- double maxFrameRate,
- DOMString mediaStreamURL,
- ErrorCallback error_callback,
- optional object transport_options);
- };
-};
diff --git a/chromium/chrome/common/extensions/api/cast_streaming_rtp_stream.idl b/chromium/chrome/common/extensions/api/cast_streaming_rtp_stream.idl
deleted file mode 100644
index 8425609f3f5..00000000000
--- a/chromium/chrome/common/extensions/api/cast_streaming_rtp_stream.idl
+++ /dev/null
@@ -1,145 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The <code>chrome.cast.streaming.rtpStream</code> API allows configuration
-// of encoding parameters and RTP parameters used in a Cast streaming
-// session.
-//
-// Valid stream IDs are positive and non-zero.
-namespace cast.streaming.rtpStream {
- // Params for audio and video codec.
- dictionary CodecSpecificParams {
- DOMString key;
- DOMString value;
- };
-
- // RTP payload param.
- dictionary RtpPayloadParams {
- long payloadType;
-
- // Maximum latency in milliseconds. This parameter controls the logic
- // of flow control. Implementation can adjust latency adaptively and
- // tries to keep it under this threshold. A larger value allows smoother
- // playback at the cost of higher latency.
- long maxLatency;
-
- // Minimum latency in milliseconds. Defaults to |maxLatency|.
- long? minLatency;
-
- // Starting latency for animated content in milliseconds.
- // Defaults to |maxLatency|.
- long? animatedLatency;
-
- DOMString codecName;
-
- // Synchronization source identifier.
- long ssrc;
-
- long feedbackSsrc;
-
- long? clockRate;
-
- // Minimum bitrate in kilobits per second.
- long? minBitrate;
-
- // Maximum bitrate in kilobits per second.
- long? maxBitrate;
-
- // The number of channels.
- long? channels;
-
- // The maximum frame rate.
- double? maxFrameRate;
-
- // 32 bytes hex-encoded AES key.
- DOMString? aesKey;
-
- // 32 bytes hex-encoded AES IV (Initialization vector) mask.
- DOMString? aesIvMask;
-
- // A list of codec specific params.
- CodecSpecificParams[] codecSpecificParams;
- };
-
- // Cast RTP parameters.
- dictionary RtpParams {
- // RTP payload params.
- RtpPayloadParams payload;
-
- DOMString[] rtcpFeatures;
- };
-
- // Callback from the <code>create</code> method.
- // |id| : The ID for the RTP stream.
- callback CreateCallback = void (long streamId);
-
- // Callback from the <code>getRawEvents</code> method.
- // |rawEvents|: compressed serialized raw bytes containing raw events
- // recorded for a stream.
- // The compression is in gzip format.
- // The serialization format can be found at
- // media/cast/logging/log_serializer.cc.
- callback GetRawEventsCallback = void (ArrayBuffer rawEvents);
-
- // Callback from the <code>getStats</code> method.
- // |rawEvents|: dictionary object containing stats recorded for a stream.
- // The format can be found at
- // media/cast/logging/stats_event_subscriber.cc.
- callback GetStatsCallback = void (object stats);
-
- interface Functions {
- // Destroys a Cast RTP stream.
- // |streamId| : The RTP stream ID.
- [nocompile] static void destroy(long streamId);
-
- // Returns an array of supported parameters with default values.
- // This includes a list of supported codecs on this platform and
- // corresponding encoding and RTP parameters.
- // |streamId| : The RTP stream ID.
- [nocompile] static RtpParams[] getSupportedParams(long streamId);
-
- // Activates the RTP stream by providing the parameters.
- // |streamId| : The RTP stream ID.
- // |params| : Parameters set for this stream.
- [nocompile] static void start(long streamId, RtpParams params);
-
- // Stops activity on the specified stream.
- // |streamId| : The RTP stream ID.
- [nocompile] static void stop(long streamId);
-
- // Enables / disables logging for a stream.
- // |enable|: If true, enables logging. Otherwise disables logging.
- [nocompile] static void toggleLogging(long streamId, boolean enable);
-
- // Get raw events for a stream in the current session.
- // |streamId|: Stream to get events for.
- // |extraData|: Extra data to attach to the log, e.g. system info or
- // experiment tags, in key-value JSON string format.
- // |callback|: Called with the raw events.
- [nocompile] static void getRawEvents(
- long streamId, optional DOMString extraData,
- GetRawEventsCallback callback);
-
- // Get stats for a stream in the current session.
- // |streamId|: Stream to get stats for.
- // |callback|: Called with the stats.
- [nocompile] static void getStats(
- long streamId, GetStatsCallback callback);
- };
-
- interface Events {
- // Event fired when a Cast RTP stream has started.
- // |streamId| : The ID of the RTP stream.
- static void onStarted(long streamId);
-
- // Event fired when a Cast RTP stream has stopped.
- // |streamId| : The ID of the RTP stream.
- static void onStopped(long streamId);
-
- // Event fired when a Cast RTP stream has error.
- // |streamId| : The ID of the RTP stream.
- // |errorString| : The error info.
- static void onError(long streamId, DOMString errorString);
- };
-};
diff --git a/chromium/chrome/common/extensions/api/cast_streaming_session.idl b/chromium/chrome/common/extensions/api/cast_streaming_session.idl
deleted file mode 100644
index 29d43d9e8a6..00000000000
--- a/chromium/chrome/common/extensions/api/cast_streaming_session.idl
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The <code>chrome.cast.streaming.session</code> API creates a Cast
-// session using WebMediaStreamTrack as sources. The session is composed
-// by RTP streams and a network transport.
-//
-// Calling this API will generate corresponding resources for use with
-// chrome.cast.streaming.rtpStream and chrome.cast.streaming.udpTransport
-// APIs.
-//
-// Valid resource IDs are positive and non-zero.
-namespace cast.streaming.session {
- // Callback from the <code>create</code> method.
- // |audioStreamId| : The audio RTP stream ID.
- // |videoStreamId| : The video RTP stream ID.
- // |udpTransportId| : The UDP transport ID.
- callback CreateCallback = void (long audioStreamId,
- long videoStreamId,
- long udpTransportId);
-
- interface Functions {
- // Creates a Cast session using the provided audio and video track as
- // source. The tracks must be of type MediaStreamTrack. This will
- // create two RTP streams and a UDP transport that builds the session.
- // Either |audioTrack| or |videoTrack| can be null but not both. This
- // means creating a session with only audio or video. If a given
- // track is null then the created stream ID will be null.
- //
- // |audioTrack| : the source audio track.
- // |videoTrack| : the source video track.
- // |callback| : Called when the sesion has been created.
- [nocompile,allowAmbiguousOptionalArguments] static void create(
- [instanceOf=MediaStreamTrack] optional object audioTrack,
- [instanceOf=MediaStreamTrack] optional object videoTrack,
- CreateCallback callback);
- };
-};
diff --git a/chromium/chrome/common/extensions/api/cast_streaming_udp_transport.idl b/chromium/chrome/common/extensions/api/cast_streaming_udp_transport.idl
deleted file mode 100644
index 8106a58f639..00000000000
--- a/chromium/chrome/common/extensions/api/cast_streaming_udp_transport.idl
+++ /dev/null
@@ -1,42 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The <code>chrome.webrtc.castUdpTransport</code> API represents a UDP
-// transport for Cast RTP streams. This API is not useful when standalone
-// since it does not have send and receive methods.
-// It is used to configure the UDP transport used in Cast session.
-//
-// Valid transport IDs are positive and non-zero.
-namespace cast.streaming.udpTransport {
- // The UDP socket address and port.
- dictionary IPEndPoint {
- DOMString address;
- long port;
- };
-
- interface Functions {
- // Destroys a UDP transport.
- // |transportId| : The transport ID.
- [nocompile] static void destroy(long transportId);
-
- // Sets parameters for this UDP transport. This can only be called
- // once per transport.
- // |transportId| : The transport ID.
- // |destination| : The address and port to send packets to.
- [nocompile] static void setDestination(long transportId,
- IPEndPoint destination);
-
- // Sets the options.
- // Attributes of this object will be used to activate optional
- // behaviours in the transport. Normally this is only used for
- // experimentation. Must be called before setDestination.
- // |transportId| : The transport ID that is created by
- // chrome.cast.streaming.session.create().
- // |options| : A dictionary of key-value pairs of options.
- // See media/cast/net/cast_transport_sender_impl.h for supported
- // options.
- [nocompile] static void setOptions(long transportId,
- object options);
- };
-};
diff --git a/chromium/chrome/common/extensions/api/chrome_web_view_internal.json b/chromium/chrome/common/extensions/api/chrome_web_view_internal.json
index de404476af0..6b25a26a2a9 100644
--- a/chromium/chrome/common/extensions/api/chrome_web_view_internal.json
+++ b/chromium/chrome/common/extensions/api/chrome_web_view_internal.json
@@ -127,7 +127,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the item has been created in the browser. If there were any problems creating the item, details will be available in chrome.runtime.lastError.",
+ "description": "Called when the item has been created in the browser. If there were any problems creating the item, details will be available in $(ref:runtime.lastError).",
"parameters": []
}
]
diff --git a/chromium/chrome/common/extensions/api/chromeos_info_private.json b/chromium/chrome/common/extensions/api/chromeos_info_private.json
index 85b85e4e966..6aac013c587 100644
--- a/chromium/chrome/common/extensions/api/chromeos_info_private.json
+++ b/chromium/chrome/common/extensions/api/chromeos_info_private.json
@@ -26,8 +26,8 @@
"a11yFocusHighlightEnabled",
"a11ySelectToSpeakEnabled",
"a11ySwitchAccessEnabled",
- "sendFunctionKeys",
- "cameraMediaConsolidated"],
+ "a11yCursorColorEnabled",
+ "sendFunctionKeys"],
"description": "Chrome OS system property name"
},
{
@@ -107,10 +107,15 @@
"a11ySpokenFeedbackEnabled" : {"type": "boolean", "optional": true, "description": "If enabled, ChromeOS text-to-speech feature is turned on."},
"a11yHighContrastEnabled" : {"type": "boolean", "optional": true, "description": "If true, all displays have high contrast mode turned on."},
"a11yScreenMagnifierEnabled" : {"type": "boolean", "optional": true, "description": "If true, all displays have screen magnifier turned on."},
- "a11yAutoClickEnabled" : {"type": "boolean", "optional": true, "description": "If true, auto mouse click accessibility feature is turned on."},
+ "a11yAutoClickEnabled" : {"type": "boolean", "optional": true, "description": "If true, autoclick accessibility feature is turned on."},
"a11yVirtualKeyboardEnabled" : {"type": "boolean", "optional": true, "description": "If true, virtual keyboard will be enabled."},
+ "a11yCaretHighlightEnabled" : {"type": "boolean", "optional": true, "description": "If true, caret highlighting will be enabled."},
+ "a11yCursorHighlightEnabled" : {"type": "boolean", "optional": true, "description": "If true, cursor highlighting will be enabled."},
+ "a11yFocusHighlightEnabled" : {"type": "boolean", "optional": true, "description": "If true, focus highlighting will be enabled."},
+ "a11ySelectToSpeakEnabled" : {"type": "boolean", "optional": true, "description": "If true, select to speak will be enabled."},
+ "a11ySwitchAccessEnabled" : {"type": "boolean", "optional": true, "description": "If true, switch access will be enabled."},
+ "a11yCursorColorEnabled" : {"type": "boolean", "optional": true, "description": "If true, colorized cursor will be enabled."},
"sendFunctionKeys" : {"type": "boolean", "optional": true, "description": "If true, the ChromeOS top row keys send function keys."},
- "cameraMediaConsolidated" : {"type": "boolean", "optional": true, "description": "True if camera photos and videos have been consolidated to one place."},
"supportedTimezones" : {
"type": "array",
"items": {
diff --git a/chromium/chrome/common/extensions/api/context_menus.json b/chromium/chrome/common/extensions/api/context_menus.json
index fe2f7a1d674..348cba6ae3a 100644
--- a/chromium/chrome/common/extensions/api/context_menus.json
+++ b/chromium/chrome/common/extensions/api/context_menus.json
@@ -16,7 +16,7 @@
{
"id": "ContextType",
"type": "string",
- "enum": ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", "launcher", "browser_action", "page_action"],
+ "enum": ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", "launcher", "browser_action", "page_action", "action"],
"description": "The different contexts a menu can appear in. Specifying 'all' is equivalent to the combination of all other contexts except for 'launcher'. The 'launcher' context is only supported by apps and is used to add menu items to the context menu that appears when clicking the app icon in the launcher/taskbar/dock/etc. Different platforms might put limitations on what is actually supported in a launcher context menu."
},
{
@@ -30,7 +30,7 @@
{
"name": "create",
"type": "function",
- "description": "Creates a new context menu item. If an error occurs during creation, it may not be detected until the creation callback fires; details will be in <code>chrome.runtime.lastError</code>.",
+ "description": "Creates a new context menu item. If an error occurs during creation, it may not be detected until the creation callback fires; details will be in $(ref:runtime.lastError).",
"returns": {
"choices": [
{ "type": "integer" },
@@ -125,7 +125,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the item has been created in the browser. If an error occurs during creation, details will be available in <code>chrome.runtime.lastError</code>.",
+ "description": "Called when the item has been created in the browser. If an error occurs during creation, details will be available in $(ref:runtime.lastError).",
"parameters": []
}
]
diff --git a/chromium/chrome/common/extensions/api/cookies.json b/chromium/chrome/common/extensions/api/cookies.json
index a0ba8097915..544d75c0a6b 100644
--- a/chromium/chrome/common/extensions/api/cookies.json
+++ b/chromium/chrome/common/extensions/api/cookies.json
@@ -133,7 +133,7 @@
"min_version": "11.0.674.0",
"parameters": [
{
- "name": "cookie", "$ref": "Cookie", "optional": true, "description": "Contains details about the cookie that's been set. If setting failed for any reason, this will be \"null\", and \"chrome.runtime.lastError\" will be set."
+ "name": "cookie", "$ref": "Cookie", "optional": true, "description": "Contains details about the cookie that's been set. If setting failed for any reason, this will be \"null\", and $(ref:runtime.lastError) will be set."
}
]
}
@@ -163,7 +163,7 @@
{
"name": "details",
"type": "object",
- "description": "Contains details about the cookie that's been removed. If removal failed for any reason, this will be \"null\", and \"chrome.runtime.lastError\" will be set.",
+ "description": "Contains details about the cookie that's been removed. If removal failed for any reason, this will be \"null\", and $(ref:runtime.lastError) will be set.",
"optional": true,
"properties": {
"url": {"type": "string", "description": "The URL associated with the cookie that's been removed."},
diff --git a/chromium/chrome/common/extensions/api/developer_private.idl b/chromium/chrome/common/extensions/api/developer_private.idl
index b8029a0cf91..2a58e11650d 100644
--- a/chromium/chrome/common/extensions/api/developer_private.idl
+++ b/chromium/chrome/common/extensions/api/developer_private.idl
@@ -162,8 +162,7 @@ namespace developerPrivate {
};
enum ControllerType {
- POLICY,
- SUPERVISED_USER_CUSTODIAN
+ POLICY
};
enum HostAccess {
diff --git a/chromium/chrome/common/extensions/api/enterprise_networking_attributes.idl b/chromium/chrome/common/extensions/api/enterprise_networking_attributes.idl
new file mode 100644
index 00000000000..9e7fffcf16e
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/enterprise_networking_attributes.idl
@@ -0,0 +1,33 @@
+// Copyright 2020 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Use the <code>chrome.enterprise.networkingAttributes</code> API to read
+// information about your current network.
+// Note: This API is only available to extensions force-installed by enterprise
+// policy.
+[platforms = ("chromeos"),
+ implemented_in = "chrome/browser/extensions/api/enterprise_networking_attributes/enterprise_networking_attributes_api.h"]
+namespace enterprise.networkingAttributes {
+ [noinline_doc] dictionary NetworkDetails {
+ // The device's MAC address.
+ DOMString macAddress;
+
+ // The device's local IPv4 address (undefined if not configured).
+ DOMString? ipv4;
+
+ // The device's local IPv6 address (undefined if not configured).
+ DOMString? ipv6;
+ };
+
+ callback GetNetworkDetailsCallback = void(NetworkDetails networkAddresses);
+
+ interface Functions {
+ // Retrieves the network details of the device's default network.
+ // If the user is not affiliated or the device is not connected to a
+ // network, $(ref:runtime.lastError) will be set with a failure reason.
+ // |callback| : Called with the device's default network's
+ // $(ref:NetworkDetails).
+ void getNetworkDetails(GetNetworkDetailsCallback callback);
+ };
+};
diff --git a/chromium/chrome/common/extensions/api/enterprise_reporting_private.idl b/chromium/chrome/common/extensions/api/enterprise_reporting_private.idl
index 04e83aedd0f..98ffaabb3b7 100644
--- a/chromium/chrome/common/extensions/api/enterprise_reporting_private.idl
+++ b/chromium/chrome/common/extensions/api/enterprise_reporting_private.idl
@@ -39,7 +39,7 @@ namespace enterprise.reportingPrivate {
interface Functions {
// Uploads the status of Chrome browser to the admin console by sending
- // request to the DMServer. Sets runtime.lastError on failure.
+ // request to the DMServer. Sets $(ref:runtime.lastError) on failure.
static void uploadChromeDesktopReport(
object report,
optional DoneCallback callback);
@@ -52,12 +52,12 @@ namespace enterprise.reportingPrivate {
// can be used to encrypt the data stored with |setDeviceData|.
static void getPersistentSecret(GetPersistentSecretCallback callback);
- // Gets the device data for |id|. Sets runtime.lastError on failure.
+ // Gets the device data for |id|. Sets $(ref:runtime.lastError) on failure.
static void getDeviceData(DOMString id, GetDeviceDataCallback callback);
- // Sets the device data for |id|. Sets runtime.lastError on failure. If the
- // |data| parameter is undefined and there is already data associated with
- // |id| it will be cleared.
+ // Sets the device data for |id|. Sets $(ref:runtime.lastError) on failure.
+ // If the |data| parameter is undefined and there is already data
+ // associated with |id| it will be cleared.
static void setDeviceData(DOMString id,
optional ArrayBuffer data,
optional DoneCallback callback);
diff --git a/chromium/chrome/common/extensions/api/extension_action/action_info_test_util.cc b/chromium/chrome/common/extensions/api/extension_action/action_info_test_util.cc
index a869245fba8..f3ef0aa3029 100644
--- a/chromium/chrome/common/extensions/api/extension_action/action_info_test_util.cc
+++ b/chromium/chrome/common/extensions/api/extension_action/action_info_test_util.cc
@@ -54,13 +54,19 @@ const ActionInfo* GetActionInfoOfType(const Extension& extension,
std::unique_ptr<ScopedCurrentChannel> GetOverrideChannelForActionType(
ActionInfo::Type action_type) {
std::unique_ptr<ScopedCurrentChannel> channel;
- // The "action" key is currently restricted to trunk. Use a fake channel iff
- // we're testing that key, so that we still get multi-channel coverage for
- // browser and page actions.
+ // The "action" key is currently restricted to canary. Use a fake channel iff
+ // it would be restricted otherwise. This way, we still get all-channel
+ // coverage for browser and page actions, and cover all channels that "action"
+ // is supported in.
+ constexpr version_info::Channel kMaxChannelForActionKey =
+ version_info::Channel::CANARY;
+
switch (action_type) {
case ActionInfo::TYPE_ACTION:
- channel = std::make_unique<ScopedCurrentChannel>(
- version_info::Channel::UNKNOWN);
+ if (GetCurrentChannel() > kMaxChannelForActionKey) {
+ channel =
+ std::make_unique<ScopedCurrentChannel>(kMaxChannelForActionKey);
+ }
break;
case ActionInfo::TYPE_PAGE:
case ActionInfo::TYPE_BROWSER:
diff --git a/chromium/chrome/common/extensions/api/file_manager_private.idl b/chromium/chrome/common/extensions/api/file_manager_private.idl
index 6c44f5153be..0945e90f5b1 100644
--- a/chromium/chrome/common/extensions/api/file_manager_private.idl
+++ b/chromium/chrome/common/extensions/api/file_manager_private.idl
@@ -146,7 +146,8 @@ enum DriveSyncErrorType {
misc
};
-// Result of task execution.
+// Result of task execution. If changing, update the strings used in
+// ui/file_manager/file_manager/foreground/js/file_tasks.js
enum TaskResult {
// The task execution succeeded and a new window/tab was opened.
opened,
@@ -156,7 +157,11 @@ enum TaskResult {
// The task execution failed.
failed,
// No URL is specified.
- empty
+ empty,
+ // The task was a |plugin_vm| task, and the file was in a unshared directory
+ failed_plugin_vm_task_directory_not_shared,
+ // The task was a |plugin_vm| task, and the file was in an external drive.
+ failed_plugin_vm_task_external_drive
};
// Drive share type.
@@ -1099,23 +1104,23 @@ interface Functions {
// Returns list of available providers.
static void getProviders(GetProvidersCallback callback);
- // Requests adding a new provided file system. If not possible, then an error
- // via chrome.runtime.lastError is returned.
+ // Requests adding a new provided file system. On failure, sets
+ // $(ref:runtime.lastError).
static void addProvidedFileSystem(DOMString provider_id,
SimpleCallback callback);
- // Requests configuring an existing volume. If not possible, then returns
- // an error via chrome.runtime.lastError.
+ // Requests configuring an existing volume. On failure, sets
+ // $(ref:runtime.lastError).
static void configureVolume(DOMString volumeId, SimpleCallback callback);
- // Requests list of custom actions for the specified entries. If not possible,
- // then an error via chrome.runtime.lastError is returned.
+ // Requests list of custom actions for the specified entries. On failure, sets
+ // $(ref:runtime.lastError).
[nocompile]
static void getCustomActions([instanceof=Entry] object[] entries,
GetCustomActionsCallback callback);
- // Executes a custom action for a set of entries. If not possible, then an
- // error via chrome.runtime.lastError is returned.
+ // Executes a custom action for a set of entries. On failure, sets
+ // $(ref:runtime.lastError).
[nocompile]
static void executeCustomAction([instanceof=Entry] object[] entries,
DOMString actionId,
@@ -1181,7 +1186,7 @@ interface Functions {
[nocompile]
static void importCrostiniImage([instanceof=Entry] object entry);
- // For a file in DriveFS, retrieves its thumbnail. If |cropToSquare| is true,
+ // For a given file entry, retrieves its thumbnail. If |cropToSquare| is true,
// returns a thumbnail appropriate for file list or grid views; otherwise,
// returns a thumbnail appropriate for quickview.
[nocompile]
diff --git a/chromium/chrome/common/extensions/api/generated_externs_list.txt b/chromium/chrome/common/extensions/api/generated_externs_list.txt
new file mode 100644
index 00000000000..4da5bd1f7ff
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/generated_externs_list.txt
@@ -0,0 +1,24 @@
+# All APIs that have their externs generated.
+# TODO(rdevlin.cronin): Add more!
+accessibility_private.json
+activity_log_private.json
+autofill_private.idl
+bookmark_manager_private.json
+chromeos_info_private.json
+command_line_private.json
+developer_private.idl
+file_manager_private.idl
+file_system_provider.idl
+input_method_private.json
+language_settings_private.idl
+login_state.idl
+media_player_private.json
+passwords_private.idl
+quick_unlock_private.idl
+resources_private.idl
+safe_browsing_private.idl
+settings_private.idl
+system_private.json
+terminal_private.json
+users_private.idl
+webview_tag.json
diff --git a/chromium/chrome/common/extensions/api/input_ime.json b/chromium/chrome/common/extensions/api/input_ime.json
index 93339e6fd43..bac699f0bd9 100644
--- a/chromium/chrome/common/extensions/api/input_ime.json
+++ b/chromium/chrome/common/extensions/api/input_ime.json
@@ -104,34 +104,40 @@
"enum": ["left", "middle", "right"]
},
{
- "id": "WindowType",
+ "id": "AssistiveWindowType",
"type": "string",
- "description": "The IME window types.",
- "platforms": ["win", "linux"],
- "enum": ["normal", "followCursor"]
+ "description": "Type of assistive window.",
+ "enum": [
+ "undo"
+ ]
},
{
- "id": "Bounds",
+ "id": "AssistiveWindowProperties",
"type": "object",
- "description": "Describes the screen coordinates of a rect.",
- "platforms": ["win", "linux"],
+ "description": "Properties of the assistive window.",
"properties": {
- "left": {"type": "integer", "description": "The left of the bounds."},
- "top": {"type": "integer", "description": "The top of the bounds."},
- "width": {"type": "integer", "description": "The width of the bounds." },
- "height": {"type": "integer", "description": "The height of the bounds ."}
+ "type": {
+ "$ref": "AssistiveWindowType"
+ },
+ "visible": {
+ "type": "boolean",
+ "description": "Sets true to show AssistiveWindow, sets false to hide."
+ },
+ "announceString" : {
+ "optional": true,
+ "type": "string",
+ "description": "Strings for ChromeVox to announce."
+ }
}
},
{
- "id": "CreateWindowOptions",
- "type": "object",
- "description": "The options to create an IME window",
- "platforms": ["win", "linux"],
- "properties": {
- "windowType": {"$ref": "WindowType"},
- "url": {"type": "string", "optional": true},
- "bounds": {"$ref": "Bounds", "optional": true}
- }
+ "id": "AssistiveWindowButton",
+ "type": "string",
+ "description": "ID of buttons in assistive window.",
+ "enum": [
+ "undo",
+ "addToDictionary"
+ ]
}
],
"functions": [
@@ -139,7 +145,7 @@
"name": "setComposition",
"type": "function",
"description": "Set the current composition. If this extension does not own the active IME, this fails.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"name": "parameters",
@@ -195,7 +201,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, chrome.runtime.lastError is set.",
+ "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, $(ref:runtime.lastError) is set.",
"parameters": [
{
"name": "success",
@@ -225,7 +231,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, chrome.runtime.lastError is set.",
+ "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, $(ref:runtime.lastError) is set.",
"parameters": [
{
"name": "success",
@@ -239,7 +245,7 @@
"name": "commitText",
"type": "function",
"description": "Commits the provided text to the current input.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"name": "parameters",
@@ -259,7 +265,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, chrome.runtime.lastError is set.",
+ "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, $(ref:runtime.lastError) is set.",
"parameters": [
{
"name": "success",
@@ -273,7 +279,7 @@
"name": "sendKeyEvents",
"type": "function",
"description": "Sends the key events. This function is expected to be used by virtual keyboards. When key(s) on a virtual keyboard is pressed by a user, this function is used to propagate that event to the system.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"name": "parameters",
@@ -476,6 +482,40 @@
]
},
{
+ "name": "setAssistiveWindowProperties",
+ "type": "function",
+ "description": "Shows/Hides an assistive window with the given properties.",
+ "platforms": ["chromeos"],
+ "parameters": [
+ {
+ "name": "parameters",
+ "type": "object",
+ "properties": {
+ "contextID": {
+ "description": "ID of the context owning the assistive window.",
+ "type": "integer"
+ },
+ "properties": {
+ "$ref": "AssistiveWindowProperties",
+ "description": "Properties of the assistive window."
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "description": "Called when the operation completes.",
+ "parameters": [
+ {
+ "name": "success",
+ "type": "boolean"
+ }
+ ]
+ }
+ ]
+ },
+ {
"name": "setMenuItems",
"type": "function",
"description": "Adds the provided menu items to the language menu when this IME is active.",
@@ -581,107 +621,11 @@
"name": "keyEventHandled",
"type": "function",
"description": "Indicates that the key event received by onKeyEvent is handled. This should only be called if the onKeyEvent listener is asynchronous.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{"type": "string", "name": "requestId", "description": "Request id of the event that was handled. This should come from keyEvent.requestId"},
{"type": "boolean", "name": "response", "description": "True if the keystroke was handled, false if not"}
]
- },
- {
- "name": "createWindow",
- "type": "function",
- "description": "Creates IME window.",
- "platforms": ["win", "linux"],
- "parameters": [
- {
- "$ref": "CreateWindowOptions",
- "name": "options",
- "description": "The options of the newly created IME window."
- },
- {
- "type": "function",
- "name": "callback",
- "description": "Called when the operation completes.",
- "parameters": [
- {
- "name": "windowObject",
- "type": "object",
- "isInstanceOf": "Window",
- "description": "The JavaScript 'window' object of the newly created IME window. It contains the additional 'id' property for the parameters of the other functions like showWindow/hideWindow."
- }
- ]
- }
- ]
- },
- {
- "name": "showWindow",
- "type": "function",
- "description": "Shows the IME window. This makes the hidden window visible.",
- "platforms": ["win", "linux"],
- "parameters": [
- {
- "type": "integer",
- "name": "windowId",
- "description": "The ID of the IME window."
- },
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called when the operation completes.",
- "parameters": []
- }
- ]
- },
- {
- "name": "hideWindow",
- "type": "function",
- "description": "Hides the IME window. This doesn't close the window. Instead, it makes the window invisible. The extension can cache the window and show/hide it for better performance.",
- "platforms": ["win", "linux"],
- "parameters": [
- {
- "type": "integer",
- "name": "windowId",
- "description": "The ID of the IME window."
- },
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called when the operation completes.",
- "parameters": []
- }
- ]
- },
- {
- "name": "activate",
- "type": "function",
- "description": "Activates the IME extension so that it can receive events.",
- "platforms": ["win", "linux"],
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called when the operation completes.",
- "parameters": []
- }
- ]
- },
- {
- "name": "deactivate",
- "type": "function",
- "description": "Deactivates the IME extension so that it cannot receive events.",
- "platforms": ["win", "linux"],
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "description": "Called when the operation completes.",
- "parameters": []
- }
- ]
}
],
"events": [
@@ -689,7 +633,7 @@
"name": "onActivate",
"type": "function",
"description": "This event is sent when an IME is activated. It signals that the IME will be receiving onKeyPress events.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"type": "string",
@@ -707,7 +651,7 @@
"name": "onDeactivated",
"type": "function",
"description": "This event is sent when an IME is deactivated. It signals that the IME will no longer be receiving onKeyPress events.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"type": "string",
@@ -720,7 +664,7 @@
"name": "onFocus",
"type": "function",
"description": "This event is sent when focus enters a text box. It is sent to all extensions that are listening to this event, and enabled by the user.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"$ref": "InputContext",
@@ -733,7 +677,7 @@
"name": "onBlur",
"type": "function",
"description": "This event is sent when focus leaves a text box. It is sent to all extensions that are listening to this event, and enabled by the user.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"type": "integer",
@@ -759,7 +703,7 @@
"name": "onKeyEvent",
"type": "function",
"description": "Fired when a key event is sent from the operating system. The event will be sent to the extension if this extension owns the active IME. The listener function should return true if the event was handled false if it was not. If the event will be evaluated asynchronously, this function must return undefined and the IME must later call keyEventHandled() with the result.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"options": {
"supportsFilters": false,
"supportsListeners": true,
@@ -870,7 +814,7 @@
"name": "onReset",
"type": "function",
"description": "This event is sent when chrome terminates ongoing text input session.",
- "platforms": ["chromeos", "win", "linux"],
+ "platforms": ["chromeos"],
"parameters": [
{
"type": "string",
@@ -880,16 +824,23 @@
]
},
{
- "name": "onCompositionBoundsChanged",
+ "name": "onAssistiveWindowButtonClicked",
"type": "function",
- "description": "Triggered when the bounds of the IME composition text or cursor are changed. The IME composition text is the instance of text produced in the input method editor.",
- "platforms": ["win", "linux"],
+ "description": "This event is sent when a button in an assistive window is clicked.",
"parameters": [
{
- "type": "array",
- "name": "boundsList",
- "description": "List of bounds information for each character on IME composition text. If there's no composition text in the editor, this array contains the bound information of the cursor.",
- "items": { "$ref": "Bounds" }
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "buttonID": {
+ "$ref": "AssistiveWindowButton",
+ "description": "The ID of the button clicked."
+ },
+ "windowType": {
+ "$ref": "AssistiveWindowType",
+ "description": "The type of the assistive window."
+ }
+ }
}
]
}
diff --git a/chromium/chrome/common/extensions/api/input_method_private.json b/chromium/chrome/common/extensions/api/input_method_private.json
index 13e2d37f371..f1d7b9f7e48 100644
--- a/chromium/chrome/common/extensions/api/input_method_private.json
+++ b/chromium/chrome/common/extensions/api/input_method_private.json
@@ -571,7 +571,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, chrome.runtime.lastError is set.",
+ "description": "Called when the operation completes with a boolean indicating if the text was accepted or not. On failure, $(ref:runtime.lastError) is set.",
"parameters": [
{
"name": "success",
@@ -581,6 +581,41 @@
}
]
}, {
+ "name": "setAutocorrectRange",
+ "type": "function",
+ "description": "Set the autocorrect range and autocorrect word. If this extension does not own the active IME, this fails.",
+ "parameters": [
+ {
+ "name": "parameters",
+ "type": "object",
+ "properties": {
+ "contextID": {
+ "description": "ID of the context to autocorrect.",
+ "type": "integer"
+ },
+ "autocorrectString": {
+ "description": "Autocorrect suggestion to display.",
+ "type": "string"
+ },
+ "selectionStart": {
+ "description": "Start of the selection range.",
+ "type": "integer"
+ },
+ "selectionEnd": {
+ "description": "End of the selection range.",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "description": "Called when the operation completes. On failure, chrome.runtime.lastError is set.",
+ "parameters": []
+ }
+ ]
+ }, {
"name": "reset",
"type": "function",
"description": "Resets the current engine to its initial state. Fires an OnReset event.",
@@ -728,6 +763,20 @@
"description": "Whether the screen is projected."
}
]
+ }, {
+ "name": "onSuggestionsChanged",
+ "type": "function",
+ "description": "This event is sent when a new set of suggestions has been generated",
+ "parameters": [
+ {
+ "name": "suggestions",
+ "type": "array",
+ "description": "List of suggestions to display, in order of relevance",
+ "items": {
+ "type": "string"
+ }
+ }
+ ]
}
]
}
diff --git a/chromium/chrome/common/extensions/api/login.idl b/chromium/chrome/common/extensions/api/login.idl
index 83ab63eda4a..256ae873fa9 100644
--- a/chromium/chrome/common/extensions/api/login.idl
+++ b/chromium/chrome/common/extensions/api/login.idl
@@ -19,7 +19,7 @@ namespace login {
// |callback|: Note: If the function succeeds, the callback is not
// guaranteed to be called as the extension will be disabled when the
// session starts. Use this callback only to handle the failure case by
- // checking <code>chrome.runtime.lastError</code>.
+ // checking $(ref:runtime.lastError).
static void launchManagedGuestSession(optional DOMString password,
optional VoidCallback callback);
@@ -48,7 +48,7 @@ namespace login {
// |callback|: Note: If the function succeeds, the callback is not
// guaranteed to be called as the extension will be disabled when the
// session starts. Use this callback only to handle the failure case by
- // checking <code>chrome.runtime.lastError</code>.
+ // checking $(ref:runtime.lastError).
static void unlockManagedGuestSession(DOMString password,
optional VoidCallback callback);
};
diff --git a/chromium/chrome/common/extensions/api/passwords_private.idl b/chromium/chrome/common/extensions/api/passwords_private.idl
index 1887a605224..e028805f801 100644
--- a/chromium/chrome/common/extensions/api/passwords_private.idl
+++ b/chromium/chrome/common/extensions/api/passwords_private.idl
@@ -82,6 +82,10 @@ namespace passwordsPrivate {
// An index to refer back to a unique password entry record.
long id;
+ // An index to refer to an entry displayed by the UI. May correspond to
+ // multiple entries in the backend.
+ long frontendId;
+
// If true, the entry came from the Gaia-account-scoped password store
// rather than from the profile-scoped one.
boolean fromAccountStore;
@@ -94,6 +98,10 @@ namespace passwordsPrivate {
// An id to refer back to a unique exception entry record.
long id;
+ // An index to refer to an exception entry displayed by the UI. May
+ // correspond to multiple entries in the backend.
+ long frontendId;
+
// If true, the entry came from the Gaia-account-scoped password store
// rather than from the profile-scoped one.
boolean fromAccountStore;
@@ -206,12 +214,24 @@ namespace passwordsPrivate {
// password entry being removed.
static void removeSavedPassword(long id);
- // Removes the saved password exception corresponding to |exceptionUrl|. If
- // no exception with this URL exists, this function is a no-op.
+ // Removes the saved password corresponding to |ids|. If no saved password
+ // exists for a certain id, that id is ignored. Undoing this operation via
+ // undoRemoveSavedPasswordOrException will restore all the removed passwords
+ // in the batch.
+ static void removeSavedPasswords(long[] ids);
+
+ // Removes the saved password exception corresponding to |id|. If
+ // no exception with this id exists, this function is a no-op.
// |id|: The id for the exception url entry being removed.
static void removePasswordException(long id);
- // Undoes the last removal of a saved password or exception.
+ // Removes the saved password exceptions corresponding to |ids|. If
+ // no exception exists for a certain id, that id is ignored. Undoing this
+ // operation via undoRemoveSavedPasswordOrException will restore all the
+ // removed exceptions in the batch.
+ static void removePasswordExceptions(long[] ids);
+
+ // Undoes the last removal of saved password(s) or exception(s).
static void undoRemoveSavedPasswordOrException();
// Returns the plaintext password corresponding to |id|. Note that on
@@ -232,14 +252,22 @@ namespace passwordsPrivate {
// |callback|: Called with the list of password exceptions.
static void getPasswordExceptionList(ExceptionListCallback callback);
+ // Moves a password currently stored on the device to being stored in the
+ // signed-in, non-syncing Google Account. The result is a no-op if any of
+ // these is true: |id| is invalid; |id| corresponds to a password already
+ // stored in the account; or the user is not using the account-scoped
+ // password storage.
+ // |id|: The id for the password entry being moved.
+ static void movePasswordToAccount(long id);
+
// Triggers the Password Manager password import functionality.
static void importPasswords();
// Triggers the Password Manager password export functionality. Completion
// Will be signaled by the onPasswordsFileExportProgress event.
// |callback| will be called when the request is started or rejected. If
- // rejected <code>chrome.runtime.lastError</code> will be set to
- // 'in-progress' or 'reauth-failed'.
+ // rejected $(ref:runtime.lastError) will be set to
+ // <code>'in-progress'</code> or <code>'reauth-failed'</code>.
static void exportPasswords(VoidCallback callback);
// Requests the export progress status. This is the same as the last value
diff --git a/chromium/chrome/common/extensions/api/platform_keys.idl b/chromium/chrome/common/extensions/api/platform_keys.idl
index b184c7b474e..b0d280faecd 100644
--- a/chromium/chrome/common/extensions/api/platform_keys.idl
+++ b/chromium/chrome/common/extensions/api/platform_keys.idl
@@ -97,7 +97,7 @@ namespace platformKeys {
// $(ref:platformKeys.subtleCrypto).
// |privateKey|: Might be <code>null</code> if this extension does not have
// access to it.
- callback GetKeyPairCallback = void (object publicKey,
+ callback GetKeyPairCallback = void (object publicKey,
optional object privateKey);
callback VerificationCallback = void (VerificationResult result);
@@ -124,16 +124,40 @@ namespace platformKeys {
// accepted as by WebCrypto's <a
// href="http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-importKey">importKey</a>
// function, e.g. <code>RsaHashedImportParams</code> for a RSASSA-PKCS1-v1_5
- // key. For RSASSA-PKCS1-v1_5 keys, additionally the parameters <code>{
- // "hash": { "name": "none" } }</code> are supported. The sign function will
- // then apply PKCS#1 v1.5 padding and but not hash the given data.
- // <p>Currently, this function only supports the "RSASSA-PKCS1-v1_5"
- // algorithm with one of the hashing algorithms "none", "SHA-1", "SHA-256",
- // "SHA-384", and "SHA-512".</p>
+ // key and <code>EcKeyImportParams</code> for EC key.
+ // Additionally for RSASSA-PKCS1-v1_5 keys, hashing algorithm name parameter
+ // can be specified with one of the following values: "none", "SHA-1",
+ // "SHA-256", "SHA-384", or "SHA-512", e.g.
+ // <code>{"hash": { "name": "none" } }</code>. The sign function will then
+ // apply PKCS#1 v1.5 padding but not hash the given data.
+ // <p>Currently, this function only supports the "RSASSA-PKCS1-v1_5" and
+ // "ECDSA" algorithms.</p>
[nocompile] static void getKeyPair(ArrayBuffer certificate,
object parameters,
GetKeyPairCallback callback);
+ // Passes the key pair identified by <code>publicKeySpkiDer</code> for
+ // usage with $(ref:platformKeys.subtleCrypto) to <code>callback</code>.
+ // |publicKeySpkiDer|: A DER-encoded X.509 SubjectPublicKeyInfo, obtained
+ // e.g. by calling WebCrypto's exportKey function with format="spki".
+ // |parameters|: Provides signature and hash algorithm parameters, in
+ // addition to those fixed by the key itself. The same parameters are
+ // accepted as by WebCrypto's <a
+ // href="http://www.w3.org/TR/WebCryptoAPI/#SubtleCrypto-method-importKey">importKey</a>
+ // function, e.g. <code>RsaHashedImportParams</code> for a RSASSA-PKCS1-v1_5
+ // key. For RSASSA-PKCS1-v1_5 keys, we need to also pass a "hash" parameter
+ // <code>{ "hash": { "name": string } }</code>. The "hash" parameter
+ // represents the name of the hashing algorithm to be used in the digest
+ // operation before a sign. It is possible to pass "none" as the hash name,
+ // in which case the sign function will apply PKCS#1 v1.5 padding and but
+ // not hash the given data.
+ // <p>Currently, this function only supports the "RSASSA-PKCS1-v1_5"
+ // algorithm with one of the hashing algorithms "none", "SHA-1", "SHA-256",
+ // "SHA-384", and "SHA-512".</p>
+ [nocompile] static void getKeyPairBySpki(ArrayBuffer publicKeySpkiDer,
+ object parameters,
+ GetKeyPairCallback callback);
+
// An implementation of WebCrypto's
// <a href="http://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface">
// SubtleCrypto</a>
diff --git a/chromium/chrome/common/extensions/api/platform_keys_internal.idl b/chromium/chrome/common/extensions/api/platform_keys_internal.idl
index 81784fb683f..3f4ae2fa40a 100644
--- a/chromium/chrome/common/extensions/api/platform_keys_internal.idl
+++ b/chromium/chrome/common/extensions/api/platform_keys_internal.idl
@@ -59,5 +59,16 @@ namespace platformKeysInternal {
static void getPublicKey(ArrayBuffer certificate,
DOMString algorithmName,
GetPublicKeyCallback callback);
+
+ // Takes as arguments a <code>publicKeySpkiDer</code> and
+ // <code>algorithmName</code>. Checks if <code>publicKeySpkiDer</code> is
+ // not empty and if the <code>algorithmName</code> specified is supported.
+ // If so, calls back <code>callback</code> with the key info and a WebCrypto
+ // <code>KeyAlgorithm</code> dictionary describing the key's algorithm. The
+ // <code>name</code> property will equal <code>algorithmName</code>.
+ // Otherwise, calls back with an error.
+ static void getPublicKeyBySpki(ArrayBuffer publicKeySpkiDer,
+ DOMString algorithmName,
+ GetPublicKeyCallback callback);
};
};
diff --git a/chromium/chrome/common/extensions/api/printing_metrics.idl b/chromium/chrome/common/extensions/api/printing_metrics.idl
index b8f09393562..e22b66982cf 100644
--- a/chromium/chrome/common/extensions/api/printing_metrics.idl
+++ b/chromium/chrome/common/extensions/api/printing_metrics.idl
@@ -133,6 +133,9 @@ namespace printingMetrics {
// The number of pages in the document.
long numberOfPages;
+
+ // The status of the printer.
+ printing.PrinterStatus printer_status;
};
callback GetPrintJobsCallback = void(PrintJobInfo[] jobs);
diff --git a/chromium/chrome/common/extensions/api/settings_private.idl b/chromium/chrome/common/extensions/api/settings_private.idl
index b4a1848df5a..1d9a244262e 100644
--- a/chromium/chrome/common/extensions/api/settings_private.idl
+++ b/chromium/chrome/common/extensions/api/settings_private.idl
@@ -60,6 +60,17 @@ namespace settingsPrivate {
// The recommended value if enforcement == RECOMMENDED.
any? recommendedValue;
+ // If enforcement == ENFORCED this optionally specifies preference values
+ // that are still available for selection by the user. If set, must contain
+ // at least 2 distinct values, as must contain |value| and
+ // |recommendedValue| (if present).
+ any[]? userSelectableValues;
+
+ // If true, user control of the preference is disabled for reasons unrelated
+ // to controlledBy (e.g. no signed-in profile is present). A false value is
+ // a no-op.
+ boolean? userControlDisabled;
+
// The extension ID if controlledBy == EXTENSION.
DOMString? extensionId;
diff --git a/chromium/chrome/common/extensions/api/tab_capture.idl b/chromium/chrome/common/extensions/api/tab_capture.idl
index 5dd0e6c25d2..d0210c064b1 100644
--- a/chromium/chrome/common/extensions/api/tab_capture.idl
+++ b/chromium/chrome/common/extensions/api/tab_capture.idl
@@ -89,7 +89,7 @@ namespace tabCapture {
// |options| : Configures the returned media stream.
// |callback| : Callback with either the tab capture MediaStream or
// <code>null</code>. <code>null</code> indicates an error has occurred
- // and the client may query chrome.runtime.lastError to access the error
+ // and the client may query $(ref:runtime.lastError) to access the error
// details.
static void capture(CaptureOptions options,
GetTabMediaCallback callback);
@@ -126,7 +126,7 @@ namespace tabCapture {
// |options| : Constraints for the capture and returned MediaStream.
// |callback| : Callback with either the tab capture MediaStream or
// <code>null</code>. <code>null</code> indicates an error has occurred
- // and the client may query chrome.runtime.lastError to access the error
+ // and the client may query $(ref:runtime.lastError) to access the error
// details.
static void captureOffscreenTab(DOMString startUrl,
CaptureOptions options,
diff --git a/chromium/chrome/common/extensions/api/tts.json b/chromium/chrome/common/extensions/api/tts.json
index e639a304892..5b43290bdd3 100644
--- a/chromium/chrome/common/extensions/api/tts.json
+++ b/chromium/chrome/common/extensions/api/tts.json
@@ -195,7 +195,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called right away, before speech finishes. Check chrome.runtime.lastError to make sure there were no errors. Use options.onEvent to get more detailed feedback.",
+ "description": "Called right away, before speech finishes. Check $(ref:runtime.lastError) to make sure there were no errors. Use options.onEvent to get more detailed feedback.",
"parameters": []
}
]
diff --git a/chromium/chrome/common/extensions/api/webstore_private.json b/chromium/chrome/common/extensions/api/webstore_private.json
index 94b82e4da12..f1418484d41 100644
--- a/chromium/chrome/common/extensions/api/webstore_private.json
+++ b/chromium/chrome/common/extensions/api/webstore_private.json
@@ -396,6 +396,11 @@
"name": "id",
"type": "string",
"description": "The id of the extension"
+ }, {
+ "name": "manifest",
+ "type": "string",
+ "optional": true,
+ "description": "The manifest of the extension"
},
{
"name": "callback",
diff --git a/chromium/chrome/common/extensions/api/webview_tag.json b/chromium/chrome/common/extensions/api/webview_tag.json
index cf62c9d6eee..dcfebced2c3 100644
--- a/chromium/chrome/common/extensions/api/webview_tag.json
+++ b/chromium/chrome/common/extensions/api/webview_tag.json
@@ -288,7 +288,7 @@
{
"name": "create",
"type": "function",
- "description": "Creates a new context menu item. Note that if an error occurs during creation, you may not find out until the creation callback fires (the details will be in <code>chrome.runtime.lastError</code>).",
+ "description": "Creates a new context menu item. Note that if an error occurs during creation, you may not find out until the creation callback fires (the details will be in $(ref:runtime.lastError)).",
"returns": {
"choices": [
{ "type": "integer" },
@@ -307,7 +307,7 @@
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called when the item has been created in the browser. If there were any problems creating the item, details will be available in <code>chrome.runtime.lastError</code>.",
+ "description": "Called when the item has been created in the browser. If there were any problems creating the item, details will be available in $(ref:runtime.lastError).",
"parameters": []
}
]
diff --git a/chromium/chrome/common/extensions/extension_constants.cc b/chromium/chrome/common/extensions/extension_constants.cc
index 1cbfd911811..7cbe3d42723 100644
--- a/chromium/chrome/common/extensions/extension_constants.cc
+++ b/chromium/chrome/common/extensions/extension_constants.cc
@@ -71,7 +71,7 @@ const char* const kBuiltInFirstPartyExtensionIds[] = {
kMediaRouterStableExtensionId,
#if defined(OS_CHROMEOS)
kAssessmentAssistantExtensionId,
- kAutoclickExtensionId,
+ kAccessibilityCommonExtensionId,
kSelectToSpeakExtensionId,
kSwitchAccessExtensionId,
kFilesManagerAppId,
@@ -87,8 +87,13 @@ const char* const kBuiltInFirstPartyExtensionIds[] = {
#if defined(OS_CHROMEOS)
const char kAssessmentAssistantExtensionId[] =
"gndmhdcefbhlchkhipcnnbkcmicncehk";
-const char kAutoclickExtensionId[] = "egfdjlfmgnehecnclamagfafdccgfndp";
-const char kAutoclickExtensionPath[] = "chromeos/accessibility/autoclick";
+const char kAccessibilityCommonExtensionId[] =
+ "egfdjlfmgnehecnclamagfafdccgfndp";
+const char kAccessibilityCommonExtensionPath[] = "chromeos/accessibility";
+const char kAccessibilityCommonManifestFilename[] =
+ "accessibility_common_manifest.json";
+const char kAccessibilityCommonGuestManifestFilename[] =
+ "accessibility_common_manifest_guest.json";
const char kChromeVoxExtensionPath[] = "chromeos/accessibility";
const char kChromeVoxManifestFilename[] = "chromevox_manifest.json";
const char kChromeVoxGuestManifestFilename[] = "chromevox_manifest_guest.json";
diff --git a/chromium/chrome/common/extensions/extension_constants.h b/chromium/chrome/common/extensions/extension_constants.h
index 9d0940a4691..1858e695dd5 100644
--- a/chromium/chrome/common/extensions/extension_constants.h
+++ b/chromium/chrome/common/extensions/extension_constants.h
@@ -188,11 +188,15 @@ enum AppLaunchBucket {
#if defined(OS_CHROMEOS)
// The extension id of the Assessment Assistant extension.
extern const char kAssessmentAssistantExtensionId[];
-// The extension id of the Automatic Clicks extension.
-extern const char kAutoclickExtensionId[];
-// Path to preinstalled Automatic Clicks extension (relative to
+// The extension id of the Accessibility Common extension.
+extern const char kAccessibilityCommonExtensionId[];
+// Path to preinstalled Accessibility Common extension (relative to
// |chrome::DIR_RESOURCES|).
-extern const char kAutoclickExtensionPath[];
+extern const char kAccessibilityCommonExtensionPath[];
+// The manifest filename of the Accessibility Common extension.
+extern const char kAccessibilityCommonManifestFilename[];
+// The guest manifest filename of the Accessibility Common extension.
+extern const char kAccessibilityCommonGuestManifestFilename[];
// Path to preinstalled ChromeVox screen reader extension (relative to
// |chrome::DIR_RESOURCES|).
extern const char kChromeVoxExtensionPath[];
diff --git a/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.cc b/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
index 79a6f4e5148..effeaec82b0 100644
--- a/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
+++ b/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.cc
@@ -24,19 +24,17 @@ static base::LazyInstance<LinkedAppIcons>::DestructorAtExit
} // namespace
-LinkedAppIcons::IconInfo::IconInfo() {
-}
+constexpr int LinkedAppIcons::kAnySize;
-LinkedAppIcons::IconInfo::~IconInfo() {
-}
+LinkedAppIcons::IconInfo::IconInfo() = default;
-LinkedAppIcons::LinkedAppIcons() {
-}
+LinkedAppIcons::IconInfo::~IconInfo() = default;
+
+LinkedAppIcons::LinkedAppIcons() = default;
LinkedAppIcons::LinkedAppIcons(const LinkedAppIcons& other) = default;
-LinkedAppIcons::~LinkedAppIcons() {
-}
+LinkedAppIcons::~LinkedAppIcons() = default;
// static
const LinkedAppIcons& LinkedAppIcons::GetLinkedAppIcons(
diff --git a/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.h b/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.h
index 32845384e44..82f06970332 100644
--- a/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.h
+++ b/chromium/chrome/common/extensions/manifest_handlers/linked_app_icons.h
@@ -15,6 +15,8 @@ namespace extensions {
// A structure to hold the parsed linked app icon data.
struct LinkedAppIcons : public Extension::ManifestData {
+ static constexpr int kAnySize = 0;
+
struct IconInfo {
IconInfo();
~IconInfo();
diff --git a/chromium/chrome/common/extensions/permissions/chrome_api_permissions.cc b/chromium/chrome/common/extensions/permissions/chrome_api_permissions.cc
index c6a72f2ce8e..ec06f67d656 100644
--- a/chromium/chrome/common/extensions/permissions/chrome_api_permissions.cc
+++ b/chromium/chrome/common/extensions/permissions/chrome_api_permissions.cc
@@ -77,6 +77,9 @@ constexpr APIPermissionInfo::InitInfo permissions_to_register[] = {
APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning},
{APIPermission::kEnterpriseHardwarePlatform, "enterprise.hardwarePlatform",
APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning},
+ {APIPermission::kEnterpriseNetworkingAttributes,
+ "enterprise.networkingAttributes",
+ APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning},
{APIPermission::kEnterprisePlatformKeys, "enterprise.platformKeys",
APIPermissionInfo::kFlagDoesNotRequireManagedSessionFullLoginWarning},
{APIPermission::kFileBrowserHandler, "fileBrowserHandler",
diff --git a/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc b/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
index 26bf88f800f..8385bc2f259 100644
--- a/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
+++ b/chromium/chrome/common/extensions/permissions/chrome_permission_message_rules.cc
@@ -670,6 +670,15 @@ ChromePermissionMessageRule::GetAllRules() {
{IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_HARDWARE_PLATFORM,
{APIPermission::kEnterpriseHardwarePlatform},
{}},
+ {IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_DEVICE_ATTRIBUTES,
+ {APIPermission::kEnterpriseDeviceAttributes},
+ {}},
+ {IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_NETWORKING_ATTRIBUTES,
+ {APIPermission::kEnterpriseNetworkingAttributes},
+ {}},
+ {IDS_EXTENSION_PROMPT_WARNING_ENTERPRISE_PLATFORMKEYS,
+ {APIPermission::kEnterprisePlatformKeys},
+ {}},
{IDS_EXTENSION_PROMPT_WARNING_LOGIN, {APIPermission::kLogin}, {}},
{IDS_EXTENSION_PROMPT_WARNING_LOGIN_SCREEN_UI,
{APIPermission::kLoginScreenUi},
diff --git a/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc b/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc
index 55ff95f2e81..1284ab87161 100644
--- a/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc
+++ b/chromium/chrome/common/extensions/permissions/permission_set_unittest.cc
@@ -781,11 +781,6 @@ TEST(PermissionsTest, PermissionMessages) {
skip.insert(APIPermission::kWebView);
skip.insert(APIPermission::kWindowShape);
- // These permissions are restricted to extensions force-installed by policy
- // and don't require a prompt, i.e. they're restricted to location 'policy'.
- skip.insert(APIPermission::kEnterprisePlatformKeys);
- skip.insert(APIPermission::kEnterpriseDeviceAttributes);
-
// TODO(erikkay) add a string for this permission.
skip.insert(APIPermission::kBackground);