summaryrefslogtreecommitdiffstats
path: root/chromium/chrome/common/extensions
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-08 14:30:41 +0200
committerJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-08-12 13:49:54 +0200
commitab0a50979b9eb4dfa3320eff7e187e41efedf7a9 (patch)
tree498dfb8a97ff3361a9f7486863a52bb4e26bb898 /chromium/chrome/common/extensions
parent4ce69f7403811819800e7c5ae1318b2647e778d1 (diff)
Update Chromium to beta version 37.0.2062.68
Change-Id: I188e3b5aff1bec75566014291b654eb19f5bc8ca Reviewed-by: Andras Becsi <andras.becsi@digia.com>
Diffstat (limited to 'chromium/chrome/common/extensions')
-rw-r--r--chromium/chrome/common/extensions/api/_api_features.json295
-rw-r--r--chromium/chrome/common/extensions/api/_manifest_features.json233
-rw-r--r--chromium/chrome/common/extensions/api/_permission_features.json467
-rw-r--r--chromium/chrome/common/extensions/api/accessibility_features.json48
-rw-r--r--chromium/chrome/common/extensions/api/accessibility_private.json (renamed from chromium/chrome/common/extensions/api/experimental_accessibility.json)16
-rw-r--r--chromium/chrome/common/extensions/api/activity_log_private.json14
-rw-r--r--chromium/chrome/common/extensions/api/adview.json12
-rw-r--r--chromium/chrome/common/extensions/api/api.gyp328
-rw-r--r--chromium/chrome/common/extensions/api/bluetooth_private.json190
-rw-r--r--chromium/chrome/common/extensions/api/bookmark_manager_private.json157
-rw-r--r--chromium/chrome/common/extensions/api/bookmarks.json93
-rw-r--r--chromium/chrome/common/extensions/api/browser_action.json2
-rw-r--r--chromium/chrome/common/extensions/api/chromeos_info_private.json38
-rw-r--r--chromium/chrome/common/extensions/api/content_settings.json6
-rw-r--r--chromium/chrome/common/extensions/api/context_menus.json87
-rw-r--r--chromium/chrome/common/extensions/api/context_menus_internal.json98
-rw-r--r--chromium/chrome/common/extensions/api/debugger.json20
-rw-r--r--chromium/chrome/common/extensions/api/declarative_content.json2
-rw-r--r--chromium/chrome/common/extensions/api/declarative_web_request.json6
-rw-r--r--chromium/chrome/common/extensions/api/devtools/experimental_audits.json4
-rw-r--r--chromium/chrome/common/extensions/api/devtools/panels.json15
-rw-r--r--chromium/chrome/common/extensions/api/events.json6
-rw-r--r--chromium/chrome/common/extensions/api/extension.json16
-rw-r--r--chromium/chrome/common/extensions/api/gcm.json38
-rw-r--r--chromium/chrome/common/extensions/api/guest_view_internal.json31
-rw-r--r--chromium/chrome/common/extensions/api/history.json2
-rw-r--r--chromium/chrome/common/extensions/api/i18n.json15
-rw-r--r--chromium/chrome/common/extensions/api/input_ime.json12
-rw-r--r--chromium/chrome/common/extensions/api/input_method_private.json49
-rw-r--r--chromium/chrome/common/extensions/api/management.json121
-rw-r--r--chromium/chrome/common/extensions/api/manifest_types.json166
-rw-r--r--chromium/chrome/common/extensions/api/metrics_private.json16
-rw-r--r--chromium/chrome/common/extensions/api/networking_private.json164
-rw-r--r--chromium/chrome/common/extensions/api/page_capture.json2
-rw-r--r--chromium/chrome/common/extensions/api/permissions.json10
-rw-r--r--chromium/chrome/common/extensions/api/preferences_private.json23
-rw-r--r--chromium/chrome/common/extensions/api/privacy.json2
-rw-r--r--chromium/chrome/common/extensions/api/processes.json13
-rw-r--r--chromium/chrome/common/extensions/api/proxy.json4
-rw-r--r--chromium/chrome/common/extensions/api/reading_list_private.json96
-rw-r--r--chromium/chrome/common/extensions/api/runtime.json474
-rw-r--r--chromium/chrome/common/extensions/api/sessions.json28
-rw-r--r--chromium/chrome/common/extensions/api/storage.json219
-rw-r--r--chromium/chrome/common/extensions/api/streams_private.json48
-rw-r--r--chromium/chrome/common/extensions/api/tabs.json69
-rw-r--r--chromium/chrome/common/extensions/api/test.json376
-rw-r--r--chromium/chrome/common/extensions/api/test_presubmit/invalid_json_1.json8
-rw-r--r--chromium/chrome/common/extensions/api/test_presubmit/invalid_json_2.json8
-rw-r--r--chromium/chrome/common/extensions/api/test_presubmit/invalid_json_3.json8
-rw-r--r--chromium/chrome/common/extensions/api/test_presubmit/invalid_json_4.json8
-rw-r--r--chromium/chrome/common/extensions/api/test_presubmit/valid_json.json11
-rw-r--r--chromium/chrome/common/extensions/api/tts.json4
-rw-r--r--chromium/chrome/common/extensions/api/tts_engine.json2
-rw-r--r--chromium/chrome/common/extensions/api/types.json2
-rw-r--r--chromium/chrome/common/extensions/api/virtual_keyboard_private.json41
-rw-r--r--chromium/chrome/common/extensions/api/web_navigation.json6
-rw-r--r--chromium/chrome/common/extensions/api/web_request.json2
-rw-r--r--chromium/chrome/common/extensions/api/web_request_internal.json3
-rw-r--r--chromium/chrome/common/extensions/api/webstore.json36
-rw-r--r--chromium/chrome/common/extensions/api/webstore_private.json45
-rw-r--r--chromium/chrome/common/extensions/api/webview.json476
-rw-r--r--chromium/chrome/common/extensions/api/webview_request.json2
-rw-r--r--chromium/chrome/common/extensions/api/webview_tag.json247
-rw-r--r--chromium/chrome/common/extensions/api/windows.json28
-rw-r--r--chromium/chrome/common/extensions/docs/examples/api/fontSettings/manifest.json2
-rw-r--r--chromium/chrome/common/extensions/docs/examples/api/infobars/sandwichbar/manifest.json5
-rw-r--r--chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_content/manifest.json27
-rw-r--r--chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/manifest.json7
-rw-r--r--chromium/chrome/common/extensions/docs/examples/apps/calculator/app/manifest.json5
-rw-r--r--chromium/chrome/common/extensions/docs/examples/extensions/benchmark/manifest.json19
-rw-r--r--chromium/chrome/common/extensions/docs/server2/known_broken_links.json41
-rw-r--r--chromium/chrome/common/extensions/docs/server2/test_data/branch_utility/second.json1113
-rw-r--r--chromium/chrome/common/extensions/docs/server2/test_data/file_system/stat_result.json1
-rw-r--r--chromium/chrome/common/extensions/docs/server2/test_data/github_file_system/expected_list.json2
-rw-r--r--chromium/chrome/common/extensions/docs/server2/test_data/test_json/fake_data_source.json112
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/apps_sidenav.json88
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/chrome_sidenav.json1085
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/content_providers.json42
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/extensions_sidenav.json84
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/intro_tables.json72
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/manifest.json27
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/permissions.json7
-rw-r--r--chromium/chrome/common/extensions/docs/templates/json/whats_new.json367
-rw-r--r--chromium/chrome/common/extensions/docs/templates/public/apps/redirects.json19
-rw-r--r--chromium/chrome/common/extensions/docs/templates/public/extensions/redirects.json17
-rw-r--r--chromium/chrome/common/extensions/docs/templates/public/redirects.json7
86 files changed, 4028 insertions, 4189 deletions
diff --git a/chromium/chrome/common/extensions/api/_api_features.json b/chromium/chrome/common/extensions/api/_api_features.json
index 681b3c68d02..1c1d22fd653 100644
--- a/chromium/chrome/common/extensions/api/_api_features.json
+++ b/chromium/chrome/common/extensions/api/_api_features.json
@@ -2,19 +2,38 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// See c/c/e/features/* to understand this file, in particular feature.h,
-// simple_feature.h, and base_feature_provider.h.
+// This features file defines extension APIs implemented under src/chrome.
+// See extensions/common/features/* to understand this file, in particular
+// feature.h, simple_feature.h, and base_feature_provider.h.
//
// Note that specifying "web_page", "blessed_web_page", or "all" as a context
// type will require manually updating chrome/renderer/resources/dispatcher.cc.
+// To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
+//
+// $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
+// sha1sum | tr '[:lower:]' '[:upper:]'
+// 9A0417016F345C934A1A88F55CA17C05014EEEBA -
+//
+// Google employees: please update http://go/chrome-api-whitelist to map
+// hashes back to ids.
+
{
- "activityLogPrivate": {
- "dependencies": ["permission:activityLogPrivate"],
+ "accessibilityFeatures": [{
+ "platforms": ["chromeos"],
+ "dependencies": ["permission:accessibilityFeatures.modify"],
+ "contexts": ["blessed_extension"]
+ }, {
+ "platforms": ["chromeos"],
+ "dependencies": ["permission:accessibilityFeatures.read"],
+ "contexts": ["blessed_extension"]
+ }],
+ "accessibilityPrivate": {
+ "dependencies": ["permission:accessibilityPrivate"],
"contexts": ["blessed_extension"]
},
- "adview": {
- "dependencies": ["permission:adview"],
+ "activityLogPrivate": {
+ "dependencies": ["permission:activityLogPrivate"],
"contexts": ["blessed_extension"]
},
"alarms": {
@@ -22,6 +41,11 @@
"contexts": ["blessed_extension"]
},
"app": {
+ "blacklist": [
+ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
+ "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension
+ ],
"channel": "stable",
"extension_types": ["hosted_app", "extension", "legacy_packaged_app"],
"contexts": [
@@ -35,15 +59,28 @@
"http://*/*", "https://*/*", "chrome-extension://*/*", "file://*/*"
]
},
- "app.runtime": {
- "noparent": true,
+ "app.runtime": [{
+ "channel": "stable",
"contexts": ["blessed_extension"],
- "dependencies": ["permission:app.runtime"]
- },
- "app.window": {
+ "extension_types": ["platform_app"],
+ "noparent": true
+ }, {
+ "channel": "stable",
+ "component_extensions_auto_granted": false,
+ "contexts": ["blessed_extension"],
+ "extension_types": ["extension"],
"noparent": true,
+ "whitelist": [
+ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
+ "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension
+ ]
+ }],
+ "app.window": {
+ "channel": "stable",
"contexts": ["blessed_extension"],
- "dependencies": ["permission:app.window"]
+ "extension_types": ["platform_app"],
+ "noparent": true
},
"app.currentWindowInternal": {
"noparent": true,
@@ -51,6 +88,10 @@
"channel": "stable",
"contexts": ["blessed_extension", "unblessed_extension", "content_script"]
},
+ "app.currentWindowInternal.setShape": {
+ "dependencies": ["permission:app.window.shape"],
+ "contexts": ["blessed_extension"]
+ },
"app.getDetails": {
"contexts": ["blessed_extension", "unblessed_extension", "content_script"],
"matches": []
@@ -75,12 +116,33 @@
"dependencies": ["permission:audio"],
"contexts": ["blessed_extension"]
},
+ "automationInternal": {
+ "internal": true,
+ "dependencies": ["manifest:automation"],
+ "contexts": ["blessed_extension"]
+ },
+ "automation": {
+ "dependencies": ["manifest:automation"],
+ "contexts": ["blessed_extension"]
+ },
"autotestPrivate": {
"dependencies": ["permission:autotestPrivate"],
"contexts": ["blessed_extension"]
},
"bluetooth": {
- "dependencies": ["permission:bluetooth"],
+ "dependencies": ["manifest:bluetooth"],
+ "contexts": ["blessed_extension"]
+ },
+ "bluetoothLowEnergy": {
+ "dependencies": ["manifest:bluetooth"],
+ "contexts": ["blessed_extension"]
+ },
+ "bluetoothPrivate": {
+ "dependencies": ["permission:bluetoothPrivate"],
+ "contexts": ["blessed_extension"]
+ },
+ "bluetoothSocket": {
+ "dependencies": ["manifest:bluetooth"],
"contexts": ["blessed_extension"]
},
"bookmarkManagerPrivate": {
@@ -103,6 +165,10 @@
"dependencies": ["permission:brailleDisplayPrivate"],
"contexts": ["blessed_extension"]
},
+ "browser": {
+ "dependencies": ["permission:browser"],
+ "contexts": ["blessed_extension"]
+ },
"browserAction": {
"dependencies": ["manifest:browser_action"],
"contexts": ["blessed_extension"]
@@ -118,12 +184,11 @@
"channel": "stable",
"dependencies": ["manifest:browser_action"],
"whitelist": [
- "enhhojjnijigcajfphajepfemndkmdlo", // Dev
- "pkedcjkdefgpdelpbcmbmeomcjbeemfm", // Trusted Tester
- "fmfcbgogabcbclcofgocippekhfcmgfj", // Staging
- "hfaagokkkhdbgiakmmlclaapfelnkoah", // Canary
- "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
- "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Release
+ "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
+ "B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
],
"contexts": ["blessed_extension"]
}],
@@ -172,6 +237,11 @@
"dependencies": ["permission:contextMenus"],
"contexts": ["blessed_extension"]
},
+ "contextMenusInternal": {
+ "internal": true,
+ "channel": "stable",
+ "contexts": ["blessed_extension"]
+ },
"cookies": {
"dependencies": ["permission:cookies"],
"contexts": ["blessed_extension"]
@@ -217,10 +287,6 @@
"dependencies": ["permission:dial"],
"contexts": ["blessed_extension"]
},
- "dns": {
- "dependencies": ["permission:dns"],
- "contexts": ["blessed_extension"]
- },
"downloads": {
"dependencies": ["permission:downloads"],
"contexts": ["blessed_extension"]
@@ -235,6 +301,15 @@
"dependencies": ["permission:echoPrivate"],
"contexts": ["blessed_extension"]
},
+ "enterprise.platformKeys": {
+ "dependencies": ["permission:enterprise.platformKeys"],
+ "contexts": ["blessed_extension"]
+ },
+ "enterprise.platformKeysInternal": {
+ "dependencies": ["permission:enterprise.platformKeys"],
+ "internal": true,
+ "contexts": ["blessed_extension"]
+ },
"enterprise.platformKeysPrivate": {
"platforms": ["chromeos"],
"dependencies": ["permission:enterprise.platformKeysPrivate"],
@@ -247,22 +322,12 @@
"contexts": "all",
"matches": ["<all_urls>"]
},
- "experimental.accessibility": {
- "dependencies": ["permission:experimental"],
- "contexts": ["blessed_extension"]
- },
"experimental.devtools.audits": {
"dependencies": ["permission:experimental", "manifest:devtools_page"],
- "extension_types": ["platform_app"],
"contexts": ["blessed_extension"]
},
"experimental.devtools.console": {
"dependencies": ["permission:experimental", "manifest:devtools_page"],
- "extension_types": ["platform_app"],
- "contexts": ["blessed_extension"]
- },
- "experimental.discovery": {
- "dependencies": ["permission:experimental"],
"contexts": ["blessed_extension"]
},
"extension": {
@@ -273,6 +338,22 @@
"extension.getURL": {
"contexts": ["blessed_extension", "unblessed_extension", "content_script"]
},
+ "extension.getViews": [
+ {
+ "channel": "stable",
+ "contexts": ["blessed_extension"],
+ "extension_types": ["extension", "legacy_packaged_app"]
+ },
+ {
+ // TODO(yoz): Eliminate this usage.
+ "channel": "stable",
+ "contexts": ["blessed_extension"],
+ "extension_types": ["platform_app"],
+ "whitelist": [
+ "A948368FC53BE437A55FEB414106E207925482F5" // File manager
+ ]
+ }
+ ],
"extension.inIncognitoContext": {
"contexts": ["blessed_extension", "unblessed_extension", "content_script"]
},
@@ -288,6 +369,13 @@
"extension.sendRequest": {
"contexts": ["blessed_extension", "unblessed_extension", "content_script"]
},
+ // This is not a real API, only here for documentation purposes.
+ // See http://crbug.com/275944 for background.
+ "extensionsManifestTypes": {
+ "internal": true,
+ "channel": "stable",
+ "contexts": ["blessed_extension"]
+ },
"feedbackPrivate": {
"dependencies": ["permission:feedbackPrivate"],
"contexts": ["blessed_extension"]
@@ -304,7 +392,6 @@
"contexts": ["blessed_extension", "unblessed_extension", "content_script"]
},
"screenlockPrivate": {
- "platforms": ["chromeos"],
"dependencies": ["permission:screenlockPrivate"],
"extension_types": ["platform_app"],
"contexts": ["blessed_extension", "unblessed_extension"]
@@ -314,6 +401,12 @@
"dependencies": ["permission:fileBrowserPrivate"],
"contexts": ["blessed_extension"]
},
+ "fileBrowserPrivateInternal": {
+ "internal": true,
+ "platforms": ["chromeos"],
+ "dependencies": ["permission:fileBrowserPrivate"],
+ "contexts": ["blessed_extension"]
+ },
"fileSystem": {
"dependencies": ["permission:fileSystem"],
"contexts": ["blessed_extension"]
@@ -322,6 +415,11 @@
"dependencies": ["permission:fileSystemProvider"],
"contexts": ["blessed_extension"]
},
+ "fileSystemProviderInternal": {
+ "internal": true,
+ "dependencies": ["permission:fileSystemProvider"],
+ "contexts": ["blessed_extension"]
+ },
"firstRunPrivate": {
"platforms": ["chromeos"],
"dependencies": ["permission:firstRunPrivate"],
@@ -331,10 +429,19 @@
"dependencies": ["permission:fontSettings"],
"contexts": ["blessed_extension"]
},
+ "gcdPrivate": {
+ "dependencies": ["permission:gcdPrivate"],
+ "contexts": ["blessed_extension"]
+ },
"gcm": {
"dependencies": ["permission:gcm"],
"contexts": ["blessed_extension"]
},
+ "guestViewInternal": {
+ "internal": true,
+ "channel": "stable",
+ "contexts": ["blessed_extension", "unblessed_extension"]
+ },
"hangoutsPrivate": {
"channel": "stable",
"contexts": ["blessed_extension"],
@@ -343,13 +450,23 @@
"nckgahadagoaajjgafhacjanaoiihapd",
"ljclpkphhpbpinifbeabbhlfddcpfdde",
"ppleadejekpmccmnpjdimmlfljlkdfej",
- "eggnbpckecmjlblplehfpjjdhhidfdoj"
+ "eggnbpckecmjlblplehfpjjdhhidfdoj",
+ "jfjjdfefebklmdbmenmlehlopoocnoeh",
+ "knipolnnllmklapflnccelgolnpehhpl"
]
},
+ "hid": {
+ "dependencies": ["permission:hid"],
+ "contexts": ["blessed_extension"]
+ },
"history": {
"dependencies": ["permission:history"],
"contexts": ["blessed_extension"]
},
+ "hotwordPrivate": {
+ "dependencies": ["permission:hotwordPrivate"],
+ "contexts": ["blessed_extension"]
+ },
"i18n": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
@@ -359,6 +476,11 @@
"dependencies": ["permission:identity"],
"contexts": ["blessed_extension"]
},
+ "identity.getAccounts": {
+ "channel": "dev",
+ "dependencies": ["permission:identity"],
+ "contexts": ["blessed_extension"]
+ },
"identityPrivate": {
"dependencies": ["permission:identityPrivate"],
"contexts": ["blessed_extension"]
@@ -385,6 +507,11 @@
"dependencies": ["permission:inputMethodPrivate"],
"contexts": ["blessed_extension"]
},
+ "ledger": {
+ "platforms": ["chromeos"],
+ "dependencies": ["permission:ledger"],
+ "contexts": ["blessed_extension"]
+ },
"location": {
"dependencies": ["permission:location"],
"contexts": ["blessed_extension"]
@@ -394,6 +521,10 @@
"extension_types": ["extension", "legacy_packaged_app"],
"contexts": ["blessed_extension"]
},
+ "webcamPrivate": {
+ "dependencies": ["permission:webcamPrivate"],
+ "contexts": ["blessed_extension"]
+ },
"management": {
"dependencies": ["permission:management"],
"contexts": ["blessed_extension"]
@@ -446,7 +577,7 @@
"contexts": ["blessed_extension"]
},
"networkingPrivate": {
- "platforms": ["chromeos", "win"],
+ "platforms": ["chromeos", "mac", "win"],
"dependencies": ["permission:networkingPrivate"],
"contexts": ["blessed_extension"]
},
@@ -508,53 +639,14 @@
"extension_types": ["platform_app"],
"contexts": ["blessed_extension"]
},
- "rtcPrivate": {
- "dependencies": ["permission:rtcPrivate"],
+ "readingListPrivate": {
+ "dependencies": ["permission:readingListPrivate"],
"contexts": ["blessed_extension"]
},
- "runtime": {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+ "rtcPrivate": {
+ "dependencies": ["permission:rtcPrivate"],
"contexts": ["blessed_extension"]
},
- "runtime.connect": {
- "contexts": "all",
- "matches": ["<all_urls>"]
- },
- "runtime.getManifest": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.getURL": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.id": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.lastError": {
- "contexts": "all",
- "extension_types": "all",
- "matches": ["<all_urls>"]
- },
- "runtime.onConnect": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.onMessage": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.reload": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.requestUpdateCheck": {
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
- "runtime.sendMessage": {
- "contexts": "all",
- "matches": ["<all_urls>"]
- },
- "runtime.setUninstallUrl": {
- "channel": "dev",
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
"scriptBadge": {
"dependencies": ["manifest:script_badge"],
"contexts": ["blessed_extension"]
@@ -571,26 +663,6 @@
"dependencies": ["permission:signedInDevices"],
"contexts": ["blessed_extension"]
},
- "socket": {
- "dependencies": ["permission:socket"],
- "contexts": ["blessed_extension"]
- },
- "sockets.tcp": {
- "dependencies": ["manifest:sockets"],
- "contexts": ["blessed_extension"]
- },
- "sockets.tcpServer": {
- "dependencies": ["manifest:sockets"],
- "contexts": ["blessed_extension"]
- },
- "sockets.udp": {
- "dependencies": ["manifest:sockets"],
- "contexts": ["blessed_extension"]
- },
- "storage": {
- "dependencies": ["permission:storage"],
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
"streamsPrivate": {
"dependencies": ["permission:streamsPrivate"],
"contexts": ["blessed_extension"]
@@ -599,6 +671,10 @@
"dependencies": ["permission:syncFileSystem"],
"contexts": ["blessed_extension"]
},
+ "syncedNotificationsPrivate": {
+ "contexts": ["blessed_extension"],
+ "dependencies": ["permission:syncedNotificationsPrivate"]
+ },
"systemIndicator": {
"dependencies": ["manifest:system_indicator"],
"contexts": ["blessed_extension"]
@@ -644,11 +720,6 @@
"dependencies": ["permission:terminalPrivate"],
"contexts": ["blessed_extension"]
},
- "test": {
- "channel": "stable",
- "extension_types": "all",
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
- },
"topSites": {
"dependencies": ["permission:topSites"],
"contexts": ["blessed_extension"]
@@ -661,20 +732,6 @@
"dependencies": ["permission:ttsEngine"],
"contexts": ["blessed_extension"]
},
- "types": {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
- "contexts": ["blessed_extension"]
- },
- "types.private": {
- "channel": "dev",
- "extension_types": ["extension"],
- "location": "component"
- },
- "usb": {
- "dependencies": ["permission:usb"],
- "contexts": ["blessed_extension"]
- },
"virtualKeyboardPrivate": {
"platforms": ["chromeos"],
"dependencies": ["permission:virtualKeyboardPrivate"],
@@ -701,7 +758,7 @@
"webRequestInternal": {
"internal": true,
"channel": "stable",
- "contexts": ["blessed_extension", "unblessed_extension", "content_script"]
+ "contexts": ["blessed_extension", "unblessed_extension"]
},
"webrtcAudioPrivate": {
"dependencies": ["permission:webrtcAudioPrivate"],
diff --git a/chromium/chrome/common/extensions/api/_manifest_features.json b/chromium/chrome/common/extensions/api/_manifest_features.json
index 853b46cb645..d03c7798206 100644
--- a/chromium/chrome/common/extensions/api/_manifest_features.json
+++ b/chromium/chrome/common/extensions/api/_manifest_features.json
@@ -2,35 +2,27 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// See c/c/e/features/* to understand this file, in particular feature.h,
-// simple_feature.h, and base_feature_provider.h.
+// This features file defines manifest keys implemented under src/chrome.
+// See extensions/common/features/* to understand this file, in particular
+// feature.h, simple_feature.h, and base_feature_provider.h.
+
+// To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
+//
+// $ echo -n "aaaabbbbccccddddeeeeffffgggghhhh" | \
+// sha1sum | tr '[:lower:]' '[:upper:]'
+// 9A0417016F345C934A1A88F55CA17C05014EEEBA -
+//
+// Google employees: please update http://go/chrome-api-whitelist to map
+// hashes back to ids.
{
- "app": {
- "channel": "stable",
- "extension_types": ["legacy_packaged_app", "hosted_app", "platform_app"]
- },
- // The default platform app CSP can only be overridden by whitelisted apps.
- // This is a separate key from the top-level content_security_policy one since
- // we can't combine type restrictions with whitelisted ID restrictions. If
- // there is a need for additional whitelisted entries, the feature system
- // should instead be extended to support OR-ing of restrictions.
- "app.content_security_policy": {
+ "about_page": {
"channel": "stable",
- "extension_types": ["platform_app"],
- "min_manifest_version": 2,
- "whitelist": [
- "nckgahadagoaajjgafhacjanaoiihapd", // Google Talk prod
- "eggnbpckecmjlblplehfpjjdhhidfdoj", // Google Talk beta
- "ppleadejekpmccmnpjdimmlfljlkdfej", // Google Talk alpha
- "ljclpkphhpbpinifbeabbhlfddcpfdde", // Google Talk debug
- "lphgohfeebnhcpiohjndkgbhhkoapkjc" // Apps Debugger
- ]
+ "extension_types": ["shared_module"]
},
- "app.background": {
+ "app": {
"channel": "stable",
- "extension_types": ["platform_app"],
- "min_manifest_version": 2
+ "extension_types": ["legacy_packaged_app", "hosted_app", "platform_app"]
},
"app.isolation": {
"channel": "stable",
@@ -42,36 +34,35 @@
"channel": "stable",
"extension_types": ["legacy_packaged_app", "hosted_app"]
},
+ "app.service_worker": {
+ "channel": "trunk", // When changing update tests: http://crbug.com/353209
+ "extension_types": ["platform_app"]
+ },
"author": {
"channel": "stable",
"extension_types": "all"
},
- "background": {
- "channel": "stable",
- "extension_types": [
- // Platform apps specify their background page via app.background.
- "extension", "legacy_packaged_app", "hosted_app"
- ]
- },
- "background.persistent": {
- "channel": "stable",
- "extension_types": [
- "extension", "legacy_packaged_app"
- ],
- "min_manifest_version": 2
+ "automation": {
+ "channel": "trunk",
+ "extension_types": ["extension", "legacy_packaged_app"]
},
- "background_page": {
+ "bluetooth": {
+ // Note: The "bluetooth" manifest permission is used by the
+ // chrome.bluetooth, chrome.bluetoothSocket and chrome.bluetoothLowEnergy
+ // APIs.
"channel": "stable",
- "extension_types": [
- "extension", "legacy_packaged_app", "hosted_app"
- ],
- "max_manifest_version": 1
+ "extension_types": ["platform_app"]
},
"browser_action": {
"channel": "stable",
"extension_types": ["extension"]
},
- "chrome_settings_overrides": [{
+ "chrome_settings_overrides": {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "platforms": ["win"]
+ },
+ "chrome_ui_overrides": [{
"channel": "dev",
"extension_types": ["extension"]
}, {
@@ -80,42 +71,23 @@
"whitelist": [
"CB2E4E7174A398FCB3AFA6840500C2E1D22DA7B2", // Bookmark Manager
"D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
- "D57DE394F36DC1C3220E7604C575D29C51A6C495" // http://crbug.com/319444
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
]
}],
"chrome_url_overrides": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
- "commands": [
- {
- "channel": "dev",
- "extension_types": ["platform_app"],
- "min_manifest_version": 2
- }, {
- "channel": "stable",
- "extension_types": ["extension"],
- "min_manifest_version": 2
- }
- ],
- "commands.global": [
- {
- "channel": "dev",
- "extension_types": ["extension", "platform_app"],
- "min_manifest_version": 2
- }
- ],
+ "commands": {
+ "channel": "stable",
+ "extension_types": ["extension", "platform_app"],
+ "min_manifest_version": 2
+ },
"content_pack": {
"channel": "dev",
"extension_types": ["extension"]
},
- "content_security_policy": {
- "channel": "stable",
- // Platform apps have a restricted content security policy that cannot be
- // overriden (except for a whitelist of exceptions, see the
- // app.content_security_policy whitelist).
- "extension_types": ["extension", "legacy_packaged_app"]
- },
"content_scripts": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -146,7 +118,7 @@
"display_in_launcher": [
{
"channel": "stable",
- "extension_types": ["legacy_packaged_app", "platform_app"],
+ "extension_types": ["legacy_packaged_app", "platform_app", "hosted_app"],
"location": "component"
},
{
@@ -160,7 +132,7 @@
"display_in_new_tab_page": [
{
"channel": "stable",
- "extension_types": ["legacy_packaged_app", "platform_app"],
+ "extension_types": ["legacy_packaged_app", "platform_app", "hosted_app"],
"location": "component"
},
{
@@ -177,7 +149,12 @@
"extension_types": ["shared_module"],
"whitelist": [
"6EAED1924DB611B6EEF2A664BD077BE7EAD33B8F",
- "4EB74897CB187C7633357C2FE832E0AD6A44883A"
+ "4EB74897CB187C7633357C2FE832E0AD6A44883A",
+ // Next four: http://crbug.com/357213
+ "mafeflapfdfljijmlienjedomfjfmhpd",
+ "ajchadodoajkaojdidnbblnfcdipbple",
+ "47F838F58D2A3B585DE50F29E3585D94999921D1",
+ "8EBAFB8DEB647EA2FC887A5E01EBD9BDC0FDC536"
]
},
{
@@ -191,14 +168,30 @@
"extension", "hosted_app", "legacy_packaged_app", "platform_app"
]
},
- "file_browser_handlers": {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"]
- },
- "file_handlers": {
+ "file_browser_handlers": [
+ {
+ "channel": "stable",
+ "extension_types": ["extension", "legacy_packaged_app"]
+ },
+ {
+ "channel": "stable",
+ "extension_types": ["platform_app"],
+ "location": "component"
+ }
+ ],
+ "file_handlers": [
+ {
"channel": "stable",
"extension_types": ["platform_app"]
- },
+ }, {
+ "channel": "stable",
+ "extension_types": [ "extension"],
+ "whitelist": [
+ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
+ "12E618C3C6E97495AAECF2AC12DEB082353241C6" // QO component extension
+ ]
+ }],
"homepage_url": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -211,10 +204,6 @@
"channel": "stable",
"extension_types": "all"
},
- "incognito": {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"]
- },
"input_components": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -223,26 +212,10 @@
"channel": "stable",
"extension_types": "all"
},
- "kiosk_enabled": {
- "channel": "stable",
- "extension_types": [
- "platform_app"
- ]
- },
- "kiosk_only": {
- "channel": "dev",
- "extension_types": [
- "platform_app"
- ]
- },
"manifest_version": {
"channel": "stable",
"extension_types": "all"
},
- "media_galleries_handlers": {
- "channel": "dev",
- "extension_types": ["platform_app"]
- },
"mime_types": {
"channel": "stable",
"extension_types": [ "extension", "legacy_packaged_app", "platform_app" ],
@@ -255,6 +228,18 @@
"mhjfbmdgcfjbbpaeojofohoefgiehjai" // PDF
]
},
+ "mime_types_handler": {
+ "channel": "stable",
+ "extension_types": [ "extension", "legacy_packaged_app", "platform_app" ],
+ "whitelist": [
+ "oickdpebdnfbgkcaoklfcdhjniefkcji", // browser_tests
+ "gbkeegbaiigmenfmjfclcdgdpimamgkj", // QuickOffice
+ "ionpfmkccalenbmnddpbmocokhaknphg", // QuickOffice Dev
+ "bpmcpldpdmajfigpchkicefoigmkfalc", // Quickoffice component extension
+ "ehibbfinohgbchlgdbfpikodjaojhccn", // Editor
+ "mhjfbmdgcfjbbpaeojofohoefgiehjai" // PDF
+ ]
+ },
"minimum_chrome_version": {
"channel": "stable",
"extension_types": [
@@ -285,7 +270,6 @@
"whitelist": [
"mdbihdcgjmagbcapkhhkjbbdlkflmbfo", // unit_tests
"pafkbggdmjlpgkdkcbjmhmfcdpncadgh", // Google Now
- "hkhhlkdconhgemhegnplaldnmnmkaemd", // Get Started App
"nmmhkkegccagdldgiimedpiccmgmieda", // In-app payments support app.
"4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C",
"F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA",
@@ -293,12 +277,6 @@
"E61F841D8210B6A9891E5384CB665FBED31FCD7B" // http://crbug.com/281715
]
},
- "offline_enabled": {
- "channel": "stable",
- "extension_types": [
- "extension", "legacy_packaged_app", "hosted_app", "platform_app"
- ]
- },
"omnibox": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -344,13 +322,6 @@
"extension", "legacy_packaged_app", "hosted_app", "platform_app"
]
},
- "sandbox": {
- "channel": "stable",
- "extension_types": [
- "extension", "platform_app", "legacy_packaged_app"
- ],
- "min_manifest_version": 2
- },
"script_badge": {
"channel": "trunk",
"extension_types": ["extension"]
@@ -363,10 +334,6 @@
"channel": "stable",
"extension_types": "all"
},
- "sockets": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
"spellcheck": {
"channel": "dev",
"extension_types": ["extension"]
@@ -376,10 +343,25 @@
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"min_manifest_version": 2
},
- "system_indicator": {
- "channel": "dev",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
- },
+ "system_indicator": [
+ {
+ "channel": "dev",
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
+ },
+ {
+ "channel": "stable",
+ "whitelist": [
+ "F29716B08705C9D3C12CDFE3F638BAE709570C31", // browser_tests
+ // See crbug.com/245730 for details on the Hangouts whitelist.
+ "53041A2FA309EECED01FFC751E7399186E860B2C", // Hangouts
+ "312745D9BF916161191143F6490085EEA0434997", // Hangouts beta
+ "A74A4D44C7CFCD8844830E6140C8D763E12DD8F3", // Hangouts alpha
+ "E7E2461CE072DF036CF9592740196159E2D7C089", // Hangouts debug
+ "49DA0B9CCEEA299186C6E7226FD66922D57543DC" // Hangouts dev
+ ],
+ "extension_types": ["extension", "platform_app"]
+ }
+ ],
"theme": {
"channel": "stable",
"extension_types": ["theme"]
@@ -399,16 +381,5 @@
"version": {
"channel": "stable",
"extension_types": "all"
- },
- "web_accessible_resources": {
- "channel": "stable",
- "extension_types": [
- "extension", "legacy_packaged_app", "hosted_app"
- ]
- },
- "webview": {
- "channel": "dev",
- "extension_types": ["platform_app"],
- "min_manifest_version": 2
}
}
diff --git a/chromium/chrome/common/extensions/api/_permission_features.json b/chromium/chrome/common/extensions/api/_permission_features.json
index 05f5ad7b2a1..0d89f625194 100644
--- a/chromium/chrome/common/extensions/api/_permission_features.json
+++ b/chromium/chrome/common/extensions/api/_permission_features.json
@@ -2,8 +2,10 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-// See c/c/e/features/* to understand this file, in particular feature.h,
-// simple_feature.h, and base_feature_provider.h.
+// This features file defines permissions for extension APIs implemented
+// under src/chrome.
+// See extensions/common/features/* to understand this file, in particular
+// feature.h, simple_feature.h, and base_feature_provider.h.
// To add a new whitelisted ID, SHA-1 it and force it to uppercase. In Bash:
//
@@ -14,7 +16,23 @@
// Google employees: please update http://go/chrome-api-whitelist to map
// hashes back to ids.
+// If you add a new platform_app permission please update the "stubs_app" test:
+// chrome/test/data/extensions/api_test/stubs_app/manifest.json
+
{
+ "accessibilityFeatures.modify": {
+ "channel": "stable",
+ "extension_types": ["extension", "platform_app"]
+ },
+ "accessibilityFeatures.read": {
+ "channel": "stable",
+ "extension_types": ["extension", "platform_app"]
+ },
+ "accessibilityPrivate": {
+ "channel": "stable",
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
+ "whitelist": [ "2FCBCE08B34CCA1728A85F1EFBD9A34DD2558B2E" ]
+ },
"activeTab": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"],
@@ -26,40 +44,78 @@
"whitelist": [
"EE17C698905F7F2E6DDC87C9C30F11E164C829F4", // Watchdog release
"90113DA9516526D24DAF156C629CC41C049E8882", // Watchdog testing
- "A9EFD71948A480C87D3B7C758FD938215F445F00" // Obsolete
+ "A9EFD71948A480C87D3B7C758FD938215F445F00", // Obsolete
+ "AE27D69DBE571F4B1694F05C89B710C646792231", // Published ADT.
+ "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool Dev.
]
},
- "adview": {
- "channel": "dev",
- "extension_types": ["platform_app"]
- },
"alarms": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"min_manifest_version": 2
},
- "alwaysOnTopWindows": [
+ "app.window.alwaysOnTop": {
+ "channel": "stable",
+ "extension_types": ["platform_app"]
+ },
+ "app.window.fullscreen": {
+ "channel": "stable",
+ "extension_types": ["platform_app"]
+ },
+ "app.window.fullscreen.overrideEsc": {
+ "channel": "stable",
+ "extension_types": ["platform_app"]
+ },
+ "app.window.shape": [
{
- "channel": "dev",
+ "channel": "beta",
"extension_types": ["platform_app"]
},
{
"channel": "stable",
"extension_types": ["platform_app"],
"whitelist": [
- "0F42756099D914A026DADFA182871C015735DD95",
- "2D22CDB6583FD0A13758AEBE8B15E45208B4E9A7"
+ "0F42756099D914A026DADFA182871C015735DD95", // http://crbug.com/323773
+ "2D22CDB6583FD0A13758AEBE8B15E45208B4E9A7",
+ "E7E2461CE072DF036CF9592740196159E2D7C089", // http://crbug.com/356200
+ "A74A4D44C7CFCD8844830E6140C8D763E12DD8F3",
+ "312745D9BF916161191143F6490085EEA0434997",
+ "53041A2FA309EECED01FFC751E7399186E860B2C",
+ "EBA908206905323CECE6DC4B276A58A0F4AC573F",
+ "2775E568AC98F9578791F1EAB65A1BF5F8CEF414",
+ "4AA3C5D69A4AECBD236CAD7884502209F0F5C169",
+ "E410CDAB2C6E6DD408D731016CECF2444000A912",
+ "9E930B2B5EABA6243AE6C710F126E54688E8FAF6",
+ "FAFE8EFDD2D6AE2EEB277AFEB91C870C79064D9E", // http://crbug.com/327507
+ "3B52D273A271D4E2348233E322426DBAE854B567",
+ "5DF6ADC8708DF59FCFDDBF16AFBFB451380C2059",
+ "1037DEF5F6B06EA46153AD87B6C5C37440E3F2D1",
+ "F5815DAFEB8C53B078DD1853B2059E087C42F139",
+ "6A08EFFF9C16E090D6DCC7EC55A01CADAE840513",
+ "C32D6D93E12F5401DAA3A723E0C3CC5F25429BA4", // http://crbug.com/354258
+ "9099782647D39C778E15C8C6E0D23C88F5CDE170",
+ "B7D5B52D1E5B106288BD7F278CAFA5E8D76108B0",
+ "89349DBAA2C4022FB244AA50182AB60934EB41EE",
+ "CB593E510640572A995CB1B6D41BD85ED51E63F8",
+ "1AD1AC86C87969CD3434FA08D99DBA6840AEA612",
+ "9C2EA21D7975BDF2B3C01C3A454EE44854067A6D",
+ "D2C488C80C3C90C3E01A991112A05E37831E17D0",
+ "6EEC061C0E74B46C7B5BE2EEFA49436368F4988F",
+ "8B344D9E8A4C505EF82A0DBBC25B8BD1F984E777",
+ "E06AFCB1EB0EFD237824CC4AC8FDD3D43E8BC868",
+ "F76F43EFFF56BF17A9868A5243F339BA28746632", // http://crbug.com/386324
+ "C6EA52B92F80878515F94137020F01519357E5B5",
+ "E466389F058ABD73FF6FDD06F768A351FCBF8532",
+ "40063F1CF7B68BA847A26FA6620DDF156171D23C",
+ "A6FD8E15353CF1F5C3D0A7B20E1D10AEA4DD3E6A",
+ "57AC4D9E6BD8A2D0A70056B5FAC2378CAA588912",
+ "02037314DA4D913640DCF0E296A7D01F4FD793EC",
+ "B6EC0809BC63E10B431C5E4AA3645232CA86B2A5",
+ "48CA541313139786F056DBCB504A1025CFF5D2E3",
+ "05106136AE7F08A3C181D4648E5438350B1D2B4F"
]
}
],
- "app.runtime": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
- "app.window": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
"audio": [
{
"channel": "dev",
@@ -70,7 +126,10 @@
"extension_types": ["platform_app"],
"whitelist": [
"8C3741E3AF0B93B6E8E0DDD499BB0B74839EA578",
- "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB"
+ "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB",
+ "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/335729
+ "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/335729
+ "307E96539209F95A1A8740C713E6998A73657D96" // http://crbug.com/335729
]
}
],
@@ -112,17 +171,22 @@
"3F596D221126DCDFD115CFAA2E5A3141806358AD", // http://crbug.com/286542
"F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA", // http://crbug.com/320952
"4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C", // http://crbug.com/320952
- "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A" // http://crbug.com/320952
+ "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A", // http://crbug.com/320952
+ "3D14248405B8A59043420AAC160077C99E7788A9", // http://crbug.com/398585
+ "A6C87307BBE5886CC5F1393025000E2FE8060BF2", // http://crbug.com/398585
+ "3407516021EA3669C0EC8E65E6B9837E5A521B9C" // http://crbug.com/398585
]
}
],
- "bluetooth": {
- "channel": "dev",
- "extension_types": ["platform_app"]
- },
- "bluetoothDevices": {
- "channel": "dev",
- "extension_types": ["platform_app"]
+ "bluetoothPrivate": {
+ "channel": "stable",
+ "extension_types": ["platform_app"],
+ "whitelist": [
+ "1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/387169
+ "A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/387169
+ "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB", // http://crbug.com/387169
+ "307E96539209F95A1A8740C713E6998A73657D96" // http://crbug.com/387169
+ ]
},
"bookmarkManagerPrivate": {
"channel": "stable",
@@ -130,7 +194,8 @@
"whitelist": [
"CB2E4E7174A398FCB3AFA6840500C2E1D22DA7B2", // Bookmark Manager
"D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
- "D57DE394F36DC1C3220E7604C575D29C51A6C495" // http://crbug.com/319444
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
]
},
"bookmarks": {
@@ -142,6 +207,10 @@
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"location": "component"
},
+ "browser": {
+ "channel": "dev",
+ "extension_types": ["platform_app"]
+ },
"browsingData": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -151,17 +220,26 @@
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"whitelist": [
"63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
- "226CF815E39A363090A1E547D53063472B8279FA", // Trusted Tester
- "FA01E0B81978950F2BC5A50512FD769725F57510", // Staging
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
"B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
- "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
- "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Release
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
]
},
- "cast.streaming": {
+ "cast.streaming": [{
"channel": "dev",
"extension_types": ["extension"]
- },
+ }, {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
+ "B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
+ ]
+ }],
"chromePrivate": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"],
@@ -179,8 +257,17 @@
"A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/293683
"8C3741E3AF0B93B6E8E0DDD499BB0B74839EA578", // http://crbug.com/234235
"E703483CEF33DEC18B4B6DD84B5C776FB9182BDB", // http://crbug.com/234235
- "314B0FC37CAE989AF42887E5303BD1E98BF12DDE", // http://crbug.com/329088
- "D7986543275120831B39EF28D1327552FC343960" // http://crbug.com/329088
+ "307E96539209F95A1A8740C713E6998A73657D96", // http://crbug.com/329690
+ "A291B26E088FA6BA53FFD72F0916F06EBA7C585A", // http://crbug.com/341258
+ "D7986543275120831B39EF28D1327552FC343960", // http://crbug.com/329088
+ // http://crbug.com/343701
+ // TODO(tbarzic): Remove the following six when http://crbug.com/346572
+ // gets fixed.
+ "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
+ "B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
]
},
"clipboardRead": {
@@ -197,7 +284,7 @@
},
"cloudPrintPrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
+ "extension_types": ["extension", "legacy_packaged_app", "hosted_app"],
// CloudPrint
"whitelist": ["99060B01DE911EB85FD630C8BA6320C9186CA3AB"]
},
@@ -244,7 +331,7 @@
"whitelist": [
"AE27D69DBE571F4B1694F05C89B710C646792231", // Published ADT.
// TODO(grv): clean up once Apps developer tool is published.
- "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool.
+ "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool.
]
}
],
@@ -274,52 +361,11 @@
{
"channel": "beta",
"extension_types": ["extension", "legacy_packaged_app"]
- },
- {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
- // Legacy Browser Support (remove once this API hits stable).
- "whitelist": ["BC3A0F8D5AE0DE6454D74AB376EBCC59E10CDD5A"]
- }
- ],
- "desktopCapture": [
- {
- "channel": "beta",
- "extension_types": ["extension", "platform_app"]
- },
- {
- "channel": "stable",
- "extension_types": ["extension", "platform_app"],
- "whitelist": [
- "80B9DC58E5210749F052F5B4DB239C50CF72AEB6",
- // Hangout Services component extension.
- "DF84F03F9B960409CCDE0D895B9650EBE81C0A8E"
- ]
- }
- ],
- "dns": [
- {
- "channel": "dev",
- "extension_types": ["extension", "platform_app"]
- },
- {
- "channel": "stable",
- "extension_types": ["extension", "platform_app"],
- "whitelist": [
- "7AE714FFD394E073F0294CFA134C9F91DB5FBAA4", // CCD Development
- "C7DA3A55C2355F994D3FDDAD120B426A0DF63843", // CCD Testing
- "75E3CFFFC530582C583E4690EF97C70B9C8423B7" // CCD Release
- ]
}
],
- "screenlockPrivate": {
- "channel": "dev",
- "extension_types":["platform_app"],
- "whitelist": [
- "lkegkdgachcnekllcdfkijonogckdnjo", // API test
- "190C131D270994E7330E9A3CD48224061CB10E2D", // dogfood 1
- "7FDDD1C0CB0052596657FDEC92841D509DC8D404" // dogfood 2
- ]
+ "desktopCapture": {
+ "channel": "stable",
+ "extension_types": ["extension", "platform_app"]
},
"downloads": {
"channel": "stable",
@@ -337,13 +383,19 @@
"channel": "stable",
"extension_types": ["extension"],
"whitelist": [
- "226CF815E39A363090A1E547D53063472B8279FA", // Trusted Tester
- "FA01E0B81978950F2BC5A50512FD769725F57510", // Staging
+ "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
"B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
- "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
- "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Release
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
]
},
+ "enterprise.platformKeys": {
+ "channel": "stable",
+ "platforms": ["chromeos"],
+ "extension_types": ["extension", "legacy_packaged_app"],
+ "location": "policy"
+ },
"enterprise.platformKeysPrivate": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"],
@@ -366,7 +418,8 @@
"1C93BD3CF875F4A73C0B2A163BB8FBDA8B8B3D80", // http://crbug.com/293683
"A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/293683
"8C3741E3AF0B93B6E8E0DDD499BB0B74839EA578", // http://crbug.com/234235
- "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB" // http://crbug.com/234235
+ "E703483CEF33DEC18B4B6DD84B5C776FB9182BDB", // http://crbug.com/234235
+ "307E96539209F95A1A8740C713E6998A73657D96" // http://crbug.com/329690
]
},
"fileBrowserHandler": {
@@ -375,7 +428,7 @@
},
"fileBrowserPrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"location": "component"
},
"fileSystem": [{
@@ -384,7 +437,14 @@
},{
"channel": "stable",
"extension_types": ["extension"],
- "whitelist": [ "2FC374607C2DF285634B67C64A2E356C607091C3" ]
+ "whitelist": [
+ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
+ "12E618C3C6E97495AAECF2AC12DEB082353241C6", // QO component extension
+ "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
+ ]
}],
"fileSystem.directory": [{
"channel": "stable",
@@ -400,7 +460,14 @@
},{
"channel": "stable",
"extension_types": ["extension"],
- "whitelist": [ "2FC374607C2DF285634B67C64A2E356C607091C3" ]
+ "whitelist": [
+ "2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
+ "12E618C3C6E97495AAECF2AC12DEB082353241C6", // QO component extension
+ "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
+ ]
}],
"fileSystemProvider": {
"channel": "trunk",
@@ -415,12 +482,12 @@
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
- "fullscreen": {
- "channel": "stable",
- "extension_types": ["platform_app"]
+ "gcdPrivate": {
+ "channel": "trunk",
+ "extension_types": ["extension", "platform_app"]
},
"gcm": {
- "channel": "dev",
+ "channel": "stable",
"extension_types": ["extension", "platform_app"]
},
"geolocation": {
@@ -429,18 +496,44 @@
"extension", "legacy_packaged_app", "hosted_app", "platform_app"
]
},
+ "hid": [
+ {
+ "channel": "dev",
+ "extension_types": ["platform_app"]
+ },
+ {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "496B6890097EB6E19809ADEADD095A8721FBB2E0", // FIDO U2F APIs
+ "E24F1786D842E91E74C27929B0B3715A4689A473" // CryptoToken
+ ]
+ }
+ ],
"history": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
+ "hotwordPrivate": {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "8CE39F175D076AD6BDF7CBF418F2409558B367E3", // hotword_helper
+ "09FDCB5851B8F3378DB630D06E316076E89C95A6" // hotword nacl
+ ]
+ },
"identity": {
"channel": "stable",
"extension_types": ["extension", "platform_app"]
},
+ "identity.email": {
+ "channel": "stable",
+ "extension_types": ["extension", "platform_app"]
+ },
"identityPrivate": {
"channel": "stable",
"extension_types": [
- "legacy_packaged_app"
+ "legacy_packaged_app", "platform_app"
],
"location": "component"
},
@@ -476,6 +569,10 @@
"extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"location": "component"
}],
+ "ledger": {
+ "channel": "trunk",
+ "extension_types": ["extension", "platform_app"]
+ },
"location": [
{
"channel": "dev",
@@ -496,6 +593,10 @@
"extension_types": ["extension", "legacy_packaged_app"],
"location": "component"
},
+ "webcamPrivate": {
+ "channel": "dev",
+ "extension_types": ["extension", "platform_app"]
+ },
"management": [
{
"channel": "stable",
@@ -511,7 +612,16 @@
"8C0B1873FFFB65E4D0F4D772879F7304CEF125C2", // Apps Editor old.
"FA0501B579070BB9CBD4FCAEC8CB0EDF22BA2F04", // Apps Editor published.
"EE17C698905F7F2E6DDC87C9C30F11E164C829F4", // Watchdog (Activity Log)
- "90113DA9516526D24DAF156C629CC41C049E8882" // Watchdog Test Version
+ "90113DA9516526D24DAF156C629CC41C049E8882", // Watchdog Test Version
+ "4A4EA121622FCA3D78ED2AB534197F43D7189EE0", // Spark nightly build
+ "9FDE6E7F06FCFA11D9A05041C7FF6D8AE662F5D1" // Spark release
+ ]
+ },
+ {
+ "channel": "stable",
+ "extension_types": ["hosted_app"],
+ "whitelist": [
+ "B44D08FD98F1523ED5837D78D0A606EA9D6206E5" // Web Store
]
}
],
@@ -523,6 +633,10 @@
"channel": "stable",
"extension_types": [ "platform_app" ]
},
+ "mediaGalleries.scan": {
+ "channel": "dev",
+ "extension_types": [ "platform_app" ]
+ },
"mediaGalleries.read": {
"channel": "stable",
"extension_types": [ "platform_app" ]
@@ -535,22 +649,22 @@
"channel": "stable",
"extension_types": [ "platform_app" ]
},
- // TODO(thestig) Remove this as part of http://crbug.com/144496
+ // TODO(thestig) Remove this as part of http://crbug.com/166950
"mediaGalleriesPrivate": {
"channel": "stable",
"extension_types": [ "platform_app" ],
"whitelist": [
"4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C",
- "5B5DA6D054D10DB917AF7D9EAE3C56044D1B0B03", // http://crbug.com/286542
- "2843C1E82A9B6C6FB49308FDDF4E157B6B44BC2B", // http://crbug.com/286542
- "3F596D221126DCDFD115CFAA2E5A3141806358AD", // http://crbug.com/286542
"F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA",
- "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A"
+ "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A",
+ "3D14248405B8A59043420AAC160077C99E7788A9",
+ "A6C87307BBE5886CC5F1393025000E2FE8060BF2",
+ "3407516021EA3669C0EC8E65E6B9837E5A521B9C"
]
},
"mediaPlayerPrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"location": "component"
},
"metricsPrivate": {
@@ -564,7 +678,7 @@
// also doesn't hurt anything.
"A948368FC53BE437A55FEB414106E207925482F5", // File manager
"2FC374607C2DF285634B67C64A2E356C607091C3", // Quickoffice
- "5D3851BEFF680AB6D954B76678EFCCE834465C23", // Quickoffice dev
+ "3727DD3E564B6055387425027AD74C58784ACC15", // Quickoffice internal
"12E618C3C6E97495AAECF2AC12DEB082353241C6", // QO component extension
"3727DD3E564B6055387425027AD74C58784ACC15", // Editor
"C41AD9DCD670210295614257EF8C9945AD68D86E", // Google Now
@@ -573,7 +687,16 @@
"C7DA3A55C2355F994D3FDDAD120B426A0DF63843", // CCD Testing
"75E3CFFFC530582C583E4690EF97C70B9C8423B7", // CCD Release
"D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900.
- "D57DE394F36DC1C3220E7604C575D29C51A6C495" // http://crbug.com/319444.
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444.
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9", // http://crbug.com/371562.
+ "06BE211D5F014BAB34BC22D9DDA09C63A81D828E", // Official XKB virtual kbd
+ "CFBF7EE448FA48960FFDA7CEB30F7A21B26AA981", // Official m17n virtual kbd
+ "B9EF10DDFEA11EF77873CC5009809E5037FC4C7A", // Google input tools
+ "7D7A4B147FE39908A5AF13F85E38989C54BBE41C", // http://crbug.com/374955
+ "0EEDFC0EED87871237213F34EBC7B4982A195C95", // http://crbug.com/374955
+ "D2DAA9362153E8A5E3CF593E6DF4666421ABAD21", // http://crbug.com/374965
+ "D7986543275120831B39EF28D1327552FC343960", // http://crbug.com/378067
+ "A291B26E088FA6BA53FFD72F0916F06EBA7C585A" // http://crbug.com/378067
]
},
"mdns": {
@@ -581,11 +704,10 @@
"extension_types": ["extension"],
"whitelist": [
"63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
- "226CF815E39A363090A1E547D53063472B8279FA", // Trusted Tester
- "FA01E0B81978950F2BC5A50512FD769725F57510", // Staging
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
"B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
- "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
- "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Release
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264" // Google Cast Stable
]
},
"musicManagerPrivate": {
@@ -595,7 +717,10 @@
"4B1D0E19C6C43C008C44A8278C8B5BFE15ABEB3C", // Music Manager
"B8F61FD1B25DE03706DBB8906A73261E4DBB992A", // Test
"F7FA7ABC1ECB89BA8EE6656847EFABBF43BB9BCA",
- "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A"
+ "4FE45FA56EF6A25FDE8C302C44045CA9CE8A605A",
+ "3D14248405B8A59043420AAC160077C99E7788A9",
+ "A6C87307BBE5886CC5F1393025000E2FE8060BF2",
+ "3407516021EA3669C0EC8E65E6B9837E5A521B9C"
]
},
"nativeMessaging": {
@@ -612,11 +737,16 @@
"A3BC37E2148AC4E99BE4B16AF9D42DD1E592BBBE", // http://crbug.com/293683
"8C3741E3AF0B93B6E8E0DDD499BB0B74839EA578", // http://crbug.com/234235
"E703483CEF33DEC18B4B6DD84B5C776FB9182BDB", // http://crbug.com/234235
- "226CF815E39A363090A1E547D53063472B8279FA", // Trusted Tester
- "FA01E0B81978950F2BC5A50512FD769725F57510", // Staging
+ "307E96539209F95A1A8740C713E6998A73657D96", // http://crbug.com/329690
+ "11B478CEC461C766A2DC1E5BEEB7970AE06DC9C2", // http://crbug.com/380890
+ "0EFB879311E9EFBB7C45251F89EC655711B1F6ED", // http://crbug.com/380890
+ "9193D3A51E2FE33B496CDA53EA330423166E7F02", // http://crbug.com/380890
+ "F9119B8B18C7C82B51E7BC6FF816B694F2EC3E89", // http://crbug.com/380890
+ "63ED55E43214C211F82122ED56407FF1A807F2A3", // Dev
+ "FA01E0B81978950F2BC5A50512FD769725F57510", // Beta
"B11A93E7E5B541F8010245EBDE2C74647D6C14B9", // Canary
- "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Trusted Tester (public)
- "16CA7A47AAE4BE49B1E75A6B960C3875E945B264", // Release
+ "F155646B5D1CA545F7E1E4E20D573DFDD44C2540", // Google Cast Beta
+ "16CA7A47AAE4BE49B1E75A6B960C3875E945B264", // Google Cast Stable
"7AE714FFD394E073F0294CFA134C9F91DB5FBAA4", // CCD Development
"C7DA3A55C2355F994D3FDDAD120B426A0DF63843", // CCD Testing
"75E3CFFFC530582C583E4690EF97C70B9C8423B7" // CCD Release
@@ -634,13 +764,9 @@
"extension", "legacy_packaged_app", "hosted_app", "platform_app"
]
},
- "overrideEscFullscreen": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
"echoPrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
+ "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
"location": "component"
},
"pageCapture": {
@@ -661,12 +787,17 @@
"extension", "legacy_packaged_app", "platform_app"
]
},
- "preferencesPrivate": {
- "channel": "dev",
+ "preferencesPrivate": {
+ "channel": "stable",
"extension_types": [
"extension"
],
- "location": "component"
+ "whitelist": [
+ "C41AD9DCD670210295614257EF8C9945AD68D86E", // Google Now
+ "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
+ ]
},
"principalsPrivate": {
"channel": "stable",
@@ -679,10 +810,26 @@
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
- "processes": {
+ "processes": [{
"channel": "dev",
"extension_types": ["extension"]
- },
+ }, {
+ "channel": "beta",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "7D7A4B147FE39908A5AF13F85E38989C54BBE41C", // http://crbug.com/370700
+ "0EEDFC0EED87871237213F34EBC7B4982A195C95" // http://crbug.com/370700
+ ]
+ }, {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "DF84F03F9B960409CCDE0D895B9650EBE81C0A8E", // Hangout Services
+ "80B9DC58E5210749F052F5B4DB239C50CF72AEB6", // Hangouts test extension
+ "7D7A4B147FE39908A5AF13F85E38989C54BBE41C", // http://crbug.com/370700
+ "0EEDFC0EED87871237213F34EBC7B4982A195C95" // http://crbug.com/370700
+ ]
+ }],
"proxy": {
"channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
@@ -695,8 +842,18 @@
"channel": "stable",
"extension_types": ["platform_app"],
"whitelist": [
- "314B0FC37CAE989AF42887E5303BD1E98BF12DDE", // Chrome OS Recovery Tool Dev
- "D7986543275120831B39EF28D1327552FC343960" // Chrome OS Recovery Tool
+ "A291B26E088FA6BA53FFD72F0916F06EBA7C585A", // http://crbug.com/329088
+ "D7986543275120831B39EF28D1327552FC343960", // http://crbug.com/329088
+ "BCC85C0D7F85897F2699974421EA402144C35C0C" // API Test
+ ]
+ },
+ "readingListPrivate": {
+ "channel": "stable",
+ "extension_types": ["extension"],
+ "whitelist": [
+ "D5736E4B5CF695CB93A2FB57E4FDC6E5AFAB6FE2", // http://crbug.com/312900
+ "D57DE394F36DC1C3220E7604C575D29C51A6C495", // http://crbug.com/319444
+ "3F65507A3B39259B38C8173C6FFA3D12DF64CCE9" // http://crbug.com/371562
]
},
"rtcPrivate": {
@@ -709,11 +866,15 @@
"312745D9BF916161191143F6490085EEA0434997" // Google Talk debug
]
},
- // Note: runtime is not actually a permission, but some systems check these
- // values to verify restrictions.
- "runtime": {
+ "screenlockPrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
+ "extension_types": ["platform_app"],
+ "whitelist": [
+ "lkegkdgachcnekllcdfkijonogckdnjo", // API test
+ "190C131D270994E7330E9A3CD48224061CB10E2D", // dogfood 1
+ "7FDDD1C0CB0052596657FDEC92841D509DC8D404", // dogfood 2
+ "E13990DC5440B6E270503DA27A35762F423725C3" // dogfood 3
+ ]
},
"screensaver": {
"channel": "stable",
@@ -724,7 +885,7 @@
"extension_types": ["platform_app"]
},
"sessions": {
- "channel": "dev",
+ "channel": "stable",
"extension_types": ["extension", "legacy_packaged_app"]
},
"signedInDevices": {
@@ -743,31 +904,13 @@
"CBCC42ABED43A4B58FE3810E62AFFA010EB0349F" // PDF
]
},
- "socket": [{
- "channel": "stable",
- "extension_types": ["platform_app"]
- }, {
- "channel": "stable",
- "extension_types": ["extension"],
- "whitelist": [
- // The connectivity diagnostic utility is a component extension that is
- // used to try to provide suggestions on how to fix connection issues. It
- // should be the only non-app allowed to use the socket API.
- "32A1BA997F8AB8DE29ED1BA94AAF00CF2A3FEFA7"
- ]
- }],
"syncFileSystem": {
"channel": "stable",
"extension_types": ["platform_app"]
},
- "systemIndicator": {
- "channel": "dev",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"]
- },
- "storage": {
- "channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app", "platform_app"],
- "min_manifest_version": 2
+ "syncedNotificationsPrivate": {
+ "channel": "trunk",
+ "extension_types": ["platform_app"]
},
"system.cpu": {
"channel": "stable",
@@ -805,7 +948,7 @@
"whitelist": [
"AE27D69DBE571F4B1694F05C89B710C646792231", // Published ADT.
// TODO(grv): clean up once Apps developer tool is published.
- "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool.
+ "5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool.
]
}
],
@@ -839,14 +982,6 @@
"extension", "legacy_packaged_app", "hosted_app", "platform_app"
]
},
- "usb": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
- "usbDevices": {
- "channel": "stable",
- "extension_types": ["platform_app"]
- },
"videoCapture": [
{
"channel": "stable",
@@ -866,7 +1001,11 @@
"virtualKeyboardPrivate": {
"channel": "stable",
"whitelist": [
- "3F50C3A83839D9C76334BCE81CDEC06174F266AF" // System-level virtual kbd
+ "3F50C3A83839D9C76334BCE81CDEC06174F266AF", // System-level virtual kbd
+ "06BE211D5F014BAB34BC22D9DDA09C63A81D828E", // Official XKB virtual kbd
+ "CFBF7EE448FA48960FFDA7CEB30F7A21B26AA981", // Official m17n virtual kbd
+ "F94EE6AB36D6C6588670B2B01EB65212D9C64E33", // Public XKB virtual kbd
+ "3E03D9B67FDD31B2438D1CF5070573415DCB3CBA" // Public m17n virtual kbd
],
"extension_types": ["extension"]
},
@@ -887,6 +1026,7 @@
"channel": "stable",
"extension_types": ["extension"],
"whitelist": [
+ // Hangouts test extension
"80B9DC58E5210749F052F5B4DB239C50CF72AEB6",
// Hangout Services component extension.
"DF84F03F9B960409CCDE0D895B9650EBE81C0A8E",
@@ -898,6 +1038,7 @@
"channel": "stable",
"extension_types": ["extension"],
"whitelist": [
+ // Hangouts test extension
"80B9DC58E5210749F052F5B4DB239C50CF72AEB6",
// Hangout Services component extension.
"DF84F03F9B960409CCDE0D895B9650EBE81C0A8E"
@@ -905,7 +1046,7 @@
},
"webstorePrivate": {
"channel": "stable",
- "extension_types": ["extension", "legacy_packaged_app"],
+ "extension_types": ["extension", "legacy_packaged_app", "hosted_app"],
"whitelist": [
"B44D08FD98F1523ED5837D78D0A606EA9D6206E5", // Web Store
"2653F6F6C39BC6EEBD36A09AFB92A19782FF7EB4", // Enterprise Web Store
diff --git a/chromium/chrome/common/extensions/api/accessibility_features.json b/chromium/chrome/common/extensions/api/accessibility_features.json
new file mode 100644
index 00000000000..9e14bb89f31
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/accessibility_features.json
@@ -0,0 +1,48 @@
+// Copyright 2014 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.
+
+[
+ {
+ "namespace": "accessibilityFeatures",
+ "platforms": ["chromeos"],
+ "description": "Use the <code>chrome.accessibilityFeatures</code> API to manage Chrome's accessibility features. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting individual accessibility features. In order to get feature states the extension must request <code>accessibilityFeatures.read</code> permission. For modifying feature state, the extension needs <code>accessibilityFeatures.modify</code> permission. Note that <code>accessibilityFeatures.modify</code> does not imply <code>accessibilityFeatures.read</code> permission.",
+ "properties": {
+ "spokenFeedback": {
+ "$ref": "types.ChromeSetting",
+ "description": "Spoken feedback (text-to-speech). 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.",
+ "value": ["spokenFeedback", {"type": "boolean"}]
+ },
+ "largeCursor": {
+ "$ref": "types.ChromeSetting",
+ "description": "Enlarged cursor. 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.",
+ "value": ["largeCursor", {"type": "boolean"}]
+ },
+ "stickyKeys": {
+ "$ref": "types.ChromeSetting",
+ "description": "Sticky modifier keys (like shift or alt). 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.",
+ "value": ["stickyKeys", {"type": "boolean"}]
+ },
+ "highContrast": {
+ "$ref": "types.ChromeSetting",
+ "description": "High contrast rendering mode. 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.",
+ "value": ["highContrast", {"type": "boolean"}]
+ },
+ "screenMagnifier": {
+ "$ref": "types.ChromeSetting",
+ "description": "Full screen magnification. 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.",
+ "value": ["screenMagnifier", {"type": "boolean"}]
+ },
+ "autoclick": {
+ "$ref": "types.ChromeSetting",
+ "description":"Auto mouse click after mouse stops moving. 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.",
+ "value": ["autoclick", {"type": "boolean"}]
+ },
+ "virtualKeyboard": {
+ "$ref": "types.ChromeSetting",
+ "description": "Virtual on-screen keyboard. 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.",
+ "value": ["virtualKeyboard", {"type": "boolean"}]
+ }
+ }
+ }
+]
diff --git a/chromium/chrome/common/extensions/api/experimental_accessibility.json b/chromium/chrome/common/extensions/api/accessibility_private.json
index 97bd69be478..bdc352024b8 100644
--- a/chromium/chrome/common/extensions/api/experimental_accessibility.json
+++ b/chromium/chrome/common/extensions/api/accessibility_private.json
@@ -1,10 +1,10 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2014 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.
[
{
- "namespace": "experimental.accessibility",
+ "namespace": "accessibilityPrivate",
"compiler_options": {
"implemented_in": "chrome/browser/accessibility/accessibility_extension_api.h"
},
@@ -280,6 +280,18 @@
]
},
{
+ "name": "onControlHover",
+ "type": "function",
+ "description": "Fired when a control is hovered over with the mouse, or hit with accessible touch exploration.",
+ "parameters": [
+ {
+ "$ref": "AccessibilityObject",
+ "name": "control",
+ "description": "Details of the control that was hovered over."
+ }
+ ]
+ },
+ {
"name": "onTextChanged",
"type": "function",
"description": "Fired when text changes in an editable text control.",
diff --git a/chromium/chrome/common/extensions/api/activity_log_private.json b/chromium/chrome/common/extensions/api/activity_log_private.json
index e912874bcaf..39b30868825 100644
--- a/chromium/chrome/common/extensions/api/activity_log_private.json
+++ b/chromium/chrome/common/extensions/api/activity_log_private.json
@@ -12,6 +12,7 @@
"type": "object",
"description": "This corresponds to a row from the ActivityLog database. Fields will be blank if they were specified precisely in a lookup filter.",
"properties": {
+ "activityId": {"type": "string", "optional": true, "description": "An ID of a row in the ActivityLog database that corresponds to the activity. ID is set only on activities retrieved from the database."},
"extensionId": {"type": "string", "optional": true},
"activityType": {"type": "string", "enum": ["api_call", "api_event", "content_script", "dom_access", "dom_event", "web_request"]},
"time": {"type": "number", "optional": true},
@@ -79,6 +80,19 @@
]
},
{
+ "name": "deleteActivities",
+ "type": "function",
+ "description": "Deletes activities in the ActivityLog database specified in the array of activity IDs.",
+ "parameters": [
+ {
+ "name": "activityIds",
+ "type": "array",
+ "items": { "type": "string" },
+ "description": "Erases only the activities which IDs are listed in the array."
+ }
+ ]
+ },
+ {
"name": "deleteDatabase",
"type": "function",
"description": "Deletes the entire ActivityLog database.",
diff --git a/chromium/chrome/common/extensions/api/adview.json b/chromium/chrome/common/extensions/api/adview.json
deleted file mode 100644
index 68d88022b60..00000000000
--- a/chromium/chrome/common/extensions/api/adview.json
+++ /dev/null
@@ -1,12 +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.
-
-[
- {
- "namespace": "adview",
- "description": "none",
- "nodoc": true
- }
-]
-
diff --git a/chromium/chrome/common/extensions/api/api.gyp b/chromium/chrome/common/extensions/api/api.gyp
index 0724879d8e7..a72785ab768 100644
--- a/chromium/chrome/common/extensions/api/api.gyp
+++ b/chromium/chrome/common/extensions/api/api.gyp
@@ -3,9 +3,173 @@
# found in the LICENSE file.
{
+ # All files are stored in these lists which are referenced in the target
+ # below so that the GN build of this target can read in this dictionary and
+ # duplicate the same logic without the lists getting out-of-sync. The GN
+ # .gypi reader can not process conditions and does not know about targets,
+ # etc., it just reads Python dictionaries.
+ #
+ # If you add a new category, also add it to the BUILD.gn file in this
+ # directory.
+ 'variables': {
+ # These duplicate other lists and are the only ones used on Android. They
+ # should be eliminated. See crbug.com/305852.
+ 'android_schema_files': [
+ 'activity_log_private.json',
+ 'events.json',
+ 'file_system.idl',
+ 'manifest_types.json',
+ 'permissions.json',
+ 'sync_file_system.idl',
+ 'tab_capture.idl',
+ 'tabs.json',
+ 'types.json',
+ 'web_navigation.json',
+ 'webview.json',
+ 'windows.json',
+ ],
+
+ # These are used everywhere except Android.
+ 'main_schema_files': [
+ 'accessibility_private.json',
+ 'activity_log_private.json',
+ 'alarms.idl',
+ 'app_current_window_internal.idl',
+ 'app_window.idl',
+ 'audio.idl',
+ 'automation.idl',
+ 'automation_internal.idl',
+ 'autotest_private.idl',
+ 'bluetooth.idl',
+ 'bluetooth_low_energy.idl',
+ 'bluetooth_private.json',
+ 'bluetooth_socket.idl',
+ 'bookmark_manager_private.json',
+ 'bookmarks.json',
+ 'braille_display_private.idl',
+ 'browser.idl',
+ 'cast_channel.idl',
+ 'cloud_print_private.json',
+ 'command_line_private.json',
+ 'content_settings.json',
+ 'context_menus_internal.json',
+ 'context_menus.json',
+ 'cookies.json',
+ 'debugger.json',
+ 'desktop_capture.json',
+ 'developer_private.idl',
+ 'dial.idl',
+ 'downloads.idl',
+ 'downloads_internal.idl',
+ 'echo_private.json',
+ 'enterprise_platform_keys_private.json',
+ 'events.json',
+ 'feedback_private.idl',
+ 'file_browser_private.idl',
+ 'file_browser_private_internal.idl',
+ 'file_system.idl',
+ 'file_system_provider.idl',
+ 'file_system_provider_internal.idl',
+ 'font_settings.json',
+ 'gcd_private.idl',
+ 'gcm.json',
+ 'guest_view_internal.json',
+ 'hangouts_private.idl',
+ 'hid.idl',
+ 'history.json',
+ 'hotword_private.idl',
+ 'i18n.json',
+ 'identity.idl',
+ 'identity_private.idl',
+ 'idle.json',
+ 'image_writer_private.idl',
+ 'input_ime.json',
+ 'location.idl',
+ 'management.json',
+ 'manifest_types.json',
+ 'mdns.idl',
+ 'media_galleries.idl',
+ 'media_galleries_private.idl',
+ 'metrics_private.json',
+ 'networking_private.json',
+ 'notifications.idl',
+ 'omnibox.json',
+ 'page_capture.json',
+ 'permissions.json',
+ 'power.idl',
+ 'preferences_private.json',
+ 'push_messaging.idl',
+ 'reading_list_private.json',
+ 'screenlock_private.idl',
+ 'serial.idl',
+ 'sessions.json',
+ 'signed_in_devices.idl',
+ 'streams_private.idl',
+ 'synced_notifications_private.idl',
+ 'sync_file_system.idl',
+ 'system_cpu.idl',
+ 'system_display.idl',
+ 'system_indicator.idl',
+ 'system_memory.idl',
+ 'system_network.idl',
+ 'system_private.json',
+ 'system_storage.idl',
+ 'tab_capture.idl',
+ 'tabs.json',
+ 'terminal_private.json',
+ 'types.json',
+ 'virtual_keyboard_private.json',
+ 'web_navigation.json',
+ 'web_request.json',
+ # Despite the name, this API does not rely on any
+ # WebRTC-specific bits and as such does not belong in
+ # the enable_webrtc=0 section below.
+ 'webrtc_audio_private.idl',
+ 'webrtc_logging_private.idl',
+ 'webstore_private.json',
+ 'webview.json',
+ 'windows.json',
+ ],
+ 'main_non_compiled_schema_files': [
+ 'browsing_data.json',
+ 'chromeos_info_private.json',
+ 'extension.json',
+ 'idltest.idl',
+ 'infobars.json',
+ 'media_player_private.json',
+ 'music_manager_private.idl',
+ 'principals_private.idl',
+ 'top_sites.json',
+ 'web_request_internal.json',
+ ],
+
+ # ChromeOS-specific schemas.
+ 'chromeos_schema_files': [
+ 'accessibility_features.json',
+ 'diagnostics.idl',
+ 'enterprise_platform_keys.idl',
+ 'enterprise_platform_keys_internal.idl',
+ 'file_browser_handler_internal.json',
+ 'first_run_private.json',
+ 'log_private.idl',
+ 'wallpaper.json',
+ 'wallpaper_private.json',
+ 'webcam_private.idl',
+ ],
+ 'chromeos_branded_schema_files': [
+ 'ledger/ledger.idl',
+ ],
+
+ 'webrtc_schema_files': [
+ 'cast_streaming_rtp_stream.idl',
+ 'cast_streaming_session.idl',
+ 'cast_streaming_udp_transport.idl',
+ ],
+ },
'targets': [
{
- 'target_name': 'api',
+ # GN version: //chrome/common/extensions/api:api
+ 'target_name': 'chrome_api',
'type': 'static_library',
'sources': [
'<@(schema_files)',
@@ -20,156 +184,35 @@
'chromium_code': 1,
# Disable schema compiler to generate model extension API code.
# Only register the extension functions in extension system.
- 'non_compiled_schema_files': [
- 'adview.json',
- 'browsing_data.json',
- 'chromeos_info_private.json',
- 'extension.json',
- 'idltest.idl',
- 'infobars.json',
- 'media_player_private.json',
- 'music_manager_private.idl',
- 'preferences_private.json',
- 'principals_private.idl',
- 'top_sites.json',
- ],
'conditions': [
['OS!="android"', {
+ 'non_compiled_schema_files': [
+ '<@(main_non_compiled_schema_files)',
+ ],
'schema_files': [
- 'activity_log_private.json',
- 'alarms.idl',
- 'app_current_window_internal.idl',
- 'app_runtime.idl',
- 'app_window.idl',
- 'audio.idl',
- 'autotest_private.idl',
- 'bluetooth.idl',
- 'bookmark_manager_private.json',
- 'bookmarks.json',
- 'braille_display_private.idl',
- 'cast_channel.idl',
- 'cloud_print_private.json',
- 'command_line_private.json',
- 'content_settings.json',
- 'context_menus.json',
- 'cookies.json',
- 'debugger.json',
- 'desktop_capture.json',
- 'developer_private.idl',
- 'dial.idl',
- 'dns.idl',
- 'downloads.idl',
- 'downloads_internal.idl',
- 'echo_private.json',
- 'enterprise_platform_keys_private.json',
- 'events.json',
- 'experimental_accessibility.json',
- 'experimental_discovery.idl',
- 'feedback_private.idl',
- 'file_browser_private.idl',
- 'file_system.idl',
- 'file_system_provider.idl',
- 'font_settings.json',
- 'gcm.json',
- 'hangouts_private.idl',
- 'history.json',
- 'i18n.json',
- 'identity.idl',
- 'identity_private.idl',
- 'idle.json',
- 'image_writer_private.idl',
- 'input_ime.json',
- 'location.idl',
- 'management.json',
- 'manifest_types.json',
- 'mdns.idl',
- 'media_galleries.idl',
- 'media_galleries_private.idl',
- 'metrics_private.json',
- 'networking_private.json',
- 'notifications.idl',
- 'omnibox.json',
- 'page_capture.json',
- 'permissions.json',
- 'power.idl',
- 'push_messaging.idl',
- 'runtime.json',
- 'serial.idl',
- 'sessions.json',
- 'signed_in_devices.idl',
- 'socket.idl',
- 'sockets_tcp.idl',
- 'sockets_tcp_server.idl',
- 'sockets_udp.idl',
- 'storage.json',
- 'sync_file_system.idl',
- 'system_cpu.idl',
- 'system_display.idl',
- 'system_indicator.idl',
- 'system_memory.idl',
- 'system_network.idl',
- 'system_private.json',
- 'system_storage.idl',
- 'tab_capture.idl',
- 'tabs.json',
- 'terminal_private.json',
- 'test.json',
- 'types.json',
- 'usb.idl',
- 'virtual_keyboard_private.json',
- 'web_navigation.json',
- 'web_request.json',
- # Despite the name, this API does not rely on any
- # WebRTC-specific bits and as such does not belong in
- # the enable_webrtc=0 section below.
- 'webrtc_audio_private.idl',
- 'webstore_private.json',
- 'webview.json',
- 'windows.json',
+ '<@(main_schema_files)',
],
}, { # OS=="android"
- 'schema_files': [
- # These should be eliminated. See crbug.com/305852.
- 'activity_log_private.json',
- 'alarms.idl',
- 'app_runtime.idl',
- 'app_window.idl',
- 'context_menus.json',
- 'downloads.idl',
- 'events.json',
- 'feedback_private.idl',
- 'file_system.idl',
- 'manifest_types.json',
- 'omnibox.json',
- 'permissions.json',
- 'runtime.json',
- 'storage.json',
- 'sync_file_system.idl',
- 'tab_capture.idl',
- 'tabs.json',
- 'types.json',
- 'web_navigation.json',
- 'web_request.json',
- 'windows.json',
- ],
+ 'non_compiled_schema_files': [
+ ],
+ 'schema_files': [
+ # These should be eliminated. See crbug.com/305852.
+ '<@(android_schema_files)',
+ ],
}],
['chromeos==1', {
'schema_files': [
- 'diagnostics.idl',
- 'file_browser_handler_internal.json',
- 'first_run_private.json',
- 'log_private.idl',
- 'screenlock_private.idl',
- 'wallpaper.json',
- 'wallpaper_private.json',
+ '<@(chromeos_schema_files)',
],
}],
['enable_webrtc==1', {
'schema_files': [
- 'cast_streaming_rtp_stream.idl',
- 'cast_streaming_session.idl',
- 'cast_streaming_udp_transport.idl',
- 'webrtc_logging_private.idl',
+ '<@(webrtc_schema_files)',
+ ],
+ }],
+ ['branding=="Chrome" and chromeos==1', {
+ 'schema_files': [
+ '<@(chromeos_branded_schema_files)',
],
}],
],
@@ -177,6 +220,13 @@
'root_namespace': 'extensions::api',
},
'dependencies': [
+ # Different APIs include some headers crom chrome/common that in turn
+ # include generated headers from these targets.
+ # TODO(brettw) this should be made unnecessary if possible.
+ '<(DEPTH)/components/components.gyp:component_metrics_proto',
+ '<(DEPTH)/device/serial/serial.gyp:device_serial',
+
+ '<(DEPTH)/content/content.gyp:content_browser',
'<(DEPTH)/skia/skia.gyp:skia',
'<(DEPTH)/sync/sync.gyp:sync',
],
diff --git a/chromium/chrome/common/extensions/api/bluetooth_private.json b/chromium/chrome/common/extensions/api/bluetooth_private.json
new file mode 100644
index 00000000000..d8057245716
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/bluetooth_private.json
@@ -0,0 +1,190 @@
+[
+ {
+ "namespace": "bluetoothPrivate",
+ "description": " Use the <code>chrome.bluetoothPrivate</code> API to control the Bluetooth\n adapter state and handle device pairing.",
+ "compiler_options": {
+ "implemented_in": "chrome/browser/extensions/api/bluetooth/bluetooth_private_api.h"
+ },
+ "functions": [
+ {
+ "name": "setAdapterState",
+ "type": "function",
+ "description": "Changes the state of the Bluetooth adapter.",
+ "parameters": [
+ {
+ "name": "adapterState",
+ "$ref": "NewAdapterState"
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "setPairingResponse",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "options",
+ "$ref": "SetPairingResponseOptions"
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": []
+ }
+ ]
+ }
+ ],
+ "events": [
+ {
+ "name": "onPairing",
+ "type": "function",
+ "description": "Fired when a pairing event occurs.",
+ "parameters": [
+ {
+ "name": "pairingEvent",
+ "description": "A pairing event.",
+ "$ref": "PairingEvent"
+ }
+ ],
+ "options":
+ {
+ "maxListeners": 1
+ }
+ }
+ ],
+ "types": [
+ {
+ "type": "string",
+ "id": "PairingEventType",
+ "description": "Events that can occur during pairing. The method used for pairing varies depending on the capability of the two devices.",
+ "enum": [
+ {
+ "name": "requestPincode",
+ "description": "An alphanumeric PIN code is required to be entered by the user."
+ },
+ {
+ "name": "displayPincode",
+ "description": "Display a PIN code to the user."
+ },
+ {
+ "name": "requestPasskey",
+ "description": "A numeric passkey is required to be entered by the user."
+ },
+ {
+ "name": "displayPasskey",
+ "description": "Display a zero padded 6 digit numeric passkey that the user entered on the remote device. This event may occur multiple times during pairing to update the entered passkey."
+ },
+ {
+ "name": "keysEntered",
+ "description": "The number of keys inputted by the user on the remote device when entering a passkey. This event may be called multiple times during pairing to update the number of keys inputted."
+ },
+ {
+ "name": "confirmPasskey",
+ "description": "Requests that a 6 digit passkey be displayed and the user confirms that both devies show the same passkey."
+ },
+ {
+ "name": "requestAuthorization",
+ "description": "Requests authorization for a pairing under the just-works model. It is up to the app to ask for user confirmation."
+ },
+ {
+ "name": "complete",
+ "description": "Pairing is completed"
+ }
+ ]
+ },
+ {
+ "type": "string",
+ "id": "PairingResponse",
+ "description": "Valid pairing responses.",
+ "enum": [ "confirm", "reject", "cancel"]
+ },
+ {
+ "type": "object",
+ "id": "PairingEvent",
+ "description": "A pairing event received from a Bluetooth device.",
+ "properties": {
+ "pairing": {
+ "name": "pairing",
+ "$ref": "PairingEventType"
+ },
+ "device": {
+ "name": "device",
+ "$ref": "bluetooth.Device"
+ },
+ "pincode": {
+ "optional": true,
+ "name": "pincode",
+ "type": "string"
+ },
+ "passkey": {
+ "optional": true,
+ "name": "passkey",
+ "type": "integer"
+ },
+ "enteredKey": {
+ "optional": true,
+ "name": "enteredKey",
+ "type": "integer"
+ }
+ }
+ },
+ {
+ "type": "object",
+ "id": "NewAdapterState",
+ "properties": {
+ "name": {
+ "optional": true,
+ "name": "name",
+ "type": "string",
+ "description": "The human-readable name of the adapter."
+ },
+ "powered": {
+ "optional": true,
+ "name": "powered",
+ "type": "boolean",
+ "description": "Whether or not the adapter has power."
+ },
+ "discoverable": {
+ "optional": true,
+ "name": "discoverable",
+ "type": "boolean",
+ "description": "Whether the adapter is discoverable by other devices."
+ }
+ }
+ },
+ {
+ "type": "object",
+ "id": "SetPairingResponseOptions",
+ "properties": {
+ "device": {
+ "name": "device",
+ "$ref": "bluetooth.Device",
+ "description": "The remote device to send the pairing response."
+ },
+ "response": {
+ "optional": true,
+ "name": "response",
+ "$ref": "PairingResponse",
+ "description": "The response type"
+ },
+ "pincode": {
+ "optional": true,
+ "name": "pincode",
+ "type": "string",
+ "description": "A 1-16 character alphanumeric set in response to <code>requestPincode</code>."
+ },
+ "passkey": {
+ "optional": true,
+ "name": "passkey",
+ "type": "integer",
+ "description": "An integer between 0-999999 set in response to <code>requestPasskey</code>."
+ }
+ }
+ }
+ ]
+ }
+]
diff --git a/chromium/chrome/common/extensions/api/bookmark_manager_private.json b/chromium/chrome/common/extensions/api/bookmark_manager_private.json
index 992c63f1416..c536041065b 100644
--- a/chromium/chrome/common/extensions/api/bookmark_manager_private.json
+++ b/chromium/chrome/common/extensions/api/bookmark_manager_private.json
@@ -6,11 +6,9 @@
{
"namespace": "bookmarkManagerPrivate",
"description": "none",
- "nodoc": true,
"types": [
{
"id": "BookmarkNodeDataElement",
- "nodoc": true,
"type": "object",
"properties": {
"id": {
@@ -36,7 +34,6 @@
},
{
"id": "BookmarkNodeData",
- "nodoc": true,
"type": "object",
"description": "Information about the drag and drop data for use with drag and drop events.",
"properties": {
@@ -46,6 +43,12 @@
"items": {"$ref": "BookmarkNodeDataElement"}
}
}
+ },
+ {
+ "id": "MetaInfoFields",
+ "type": "object",
+ "description": "Collection of meta info fields.",
+ "additionalProperties": {"type": "string"}
}
],
"functions": [
@@ -53,7 +56,6 @@
"name": "copy",
"type": "function",
"description": "Copies the given bookmarks into the clipboard",
- "nodoc": "true",
"parameters": [
{
"name": "idList",
@@ -69,7 +71,6 @@
"name": "cut",
"type": "function",
"description": "Cuts the given bookmarks into the clipboard",
- "nodoc": "true",
"parameters": [
{
"name": "idList",
@@ -85,7 +86,6 @@
"name": "paste",
"type": "function",
"description": "Pastes bookmarks from the clipboard into the parent folder after the last selected node",
- "nodoc": "true",
"parameters": [
{"type": "string", "name": "parentId"},
{
@@ -103,7 +103,6 @@
"name": "canPaste",
"type": "function",
"description": "Whether there are any bookmarks that can be pasted",
- "nodoc": "true",
"parameters": [
{"type": "string", "name": "parentId", "description": "The ID of the folder to paste into"},
{"type": "function", "name": "callback", "parameters": [
@@ -115,7 +114,6 @@
"name": "sortChildren",
"type": "function",
"description": "Sorts the children of a given folder",
- "nodoc": "true",
"parameters": [
{"type": "string", "name": "parentId", "description": "The ID of the folder to sort the children of"}
]
@@ -124,7 +122,6 @@
"name": "getStrings",
"type": "function",
"description": "Gets the i18n strings for the bookmark manager",
- "nodoc": "true",
"parameters": [
{
"type": "function",
@@ -143,7 +140,6 @@
"name": "startDrag",
"type": "function",
"description": "Begins dragging a set of bookmarks",
- "nodoc": "true",
"parameters": [
{
"name": "idList",
@@ -151,6 +147,11 @@
"type": "array",
"items": {"type": "string"},
"minItems": 1
+ },
+ {
+ "name": "isFromTouch",
+ "type": "boolean",
+ "description": "True if the drag was initiated from touch"
}
]
},
@@ -158,7 +159,6 @@
"name": "drop",
"type": "function",
"description": "Performs the drop action of the drag and drop session",
- "nodoc": "true",
"parameters": [
{
"name": "parentId",
@@ -178,7 +178,6 @@
"name": "getSubtree",
"type": "function",
"description": "Retrieves a bookmark hierarchy from the given node. If the node id is empty, it is the full tree. If foldersOnly is true, it will only return folders, not actual bookmarks.",
- "nodoc": "true",
"parameters": [
{
"name": "id",
@@ -203,7 +202,6 @@
"name": "canEdit",
"type": "function",
"description": "Whether bookmarks can be modified",
- "nodoc": "true",
"parameters": [
{"type": "function", "name": "callback", "parameters": [
{"name": "result", "type": "boolean"}
@@ -214,7 +212,6 @@
"name": "canOpenNewWindows",
"type": "function",
"description": "Whether bookmarks can be opened in new windows",
- "nodoc": "true",
"parameters": [
{"type": "function", "name": "callback", "parameters": [
{"name": "result", "type": "boolean"}
@@ -225,7 +222,6 @@
"name": "removeTrees",
"type": "function",
"description": "Recursively removes list of bookmarks nodes.",
- "nodoc": "true",
"parameters": [
{
"name": "idList",
@@ -241,23 +237,50 @@
"name": "recordLaunch",
"type": "function",
"description": "",
- "nodoc": "true",
"parameters": []
},
{
+ "name": "createWithMetaInfo",
+ "type": "function",
+ "description": "Mimics the functionality of bookmarks.create, but will additionally set the given meta info fields.",
+ "parameters": [
+ {
+ "name": "bookmark",
+ "$ref": "bookmarks.CreateDetails"
+ },
+ {
+ "name": "metaInfo",
+ "$ref": "MetaInfoFields"
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "name": "result",
+ "$ref": "bookmarks.BookmarkTreeNode"
+ }
+ ]
+ }
+ ]
+ },
+ {
"name": "getMetaInfo",
"type": "function",
- "description": "Gets a meta info field from a bookmark node",
- "nodoc": "true",
+ "description": "Gets meta info from a bookmark node",
+ "allowAmbiguousOptionalArguments": true,
"parameters": [
{
"name": "id",
- "description": "The id of the bookmark to retrieve meta info from",
+ "description": "The id of the bookmark to retrieve meta info from. If omitted meta info for all nodes is returned.",
+ "optional": true,
"type": "string"
},
{
"name": "key",
- "description": "The key for the meta info to retrieve",
+ "description": "The key for the meta info to retrieve. If omitted, all fields are returned",
+ "optional": true,
"type": "string"
},
{
@@ -266,9 +289,12 @@
"parameters": [
{
"name": "value",
- "description": "The value of the meta info, if present",
+ "description": "If a key was given, the value of the specified field, if present. Otherwise an object containing all meta info fields for the node. If id is not given then meta info for all nodes as an object with node id to meta info.",
"optional": true,
- "type": "string"
+ "choices": [
+ {"type": "string"},
+ {"type": "object", "additionalProperties": {"type": "any"}}
+ ]
}
]
}
@@ -278,7 +304,6 @@
"name": "setMetaInfo",
"type": "function",
"description": "Sets a meta info value for a bookmark node",
- "nodoc": "true",
"parameters": [
{
"name": "id",
@@ -302,6 +327,83 @@
"parameters": []
}
]
+ },
+ {
+ "name": "updateMetaInfo",
+ "type": "function",
+ "description": "Updates a set of meta info values for a bookmark node.",
+ "parameters": [
+ {
+ "name": "id",
+ "description": "The id of the bookmark node to update the meta info of.",
+ "type": "string"
+ },
+ {
+ "name": "metaInfoChanges",
+ "description": "A set of meta info key/value pairs to update.",
+ "$ref": "MetaInfoFields"
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "undo",
+ "type": "function",
+ "description": "Performs an undo of the last change to the bookmark model",
+ "parameters": []
+ },
+ {
+ "name": "redo",
+ "type": "function",
+ "description": "Performs a redo of last undone change to the bookmark model",
+ "parameters": []
+ },
+ {
+ "name": "getUndoInfo",
+ "type": "function",
+ "description": "Gets the information for the undo if available",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "result",
+ "type": "object",
+ "properties": {
+ "enabled" : {"type": "boolean", "description": "Whether there is an action to undo"},
+ "label" : {"type": "string", "description": "The i18n label to use for the undo action"}
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getRedoInfo",
+ "type": "function",
+ "description": "Gets the information for the redo if available",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "result",
+ "type": "object",
+ "properties": {
+ "enabled" : {"type": "boolean", "description": "Whether there is an action to redo"},
+ "label" : {"type": "string", "description": "The i18n label to use for the redo action"}
+ }
+ }
+ ]
+ }
+ ]
}
],
"events": [
@@ -328,6 +430,15 @@
"parameters": [
{"name": "bookmarkNodeData", "$ref": "BookmarkNodeData"}
]
+ },
+ {
+ "name": "onMetaInfoChanged",
+ "type": "function",
+ "description": "Fired when the meta info of a node changes.",
+ "parameters": [
+ {"name": "id", "type": "string"},
+ {"name": "metaInfoChanges", "$ref": "MetaInfoFields"}
+ ]
}
]
}
diff --git a/chromium/chrome/common/extensions/api/bookmarks.json b/chromium/chrome/common/extensions/api/bookmarks.json
index e16836298db..e6a82a76aa4 100644
--- a/chromium/chrome/common/extensions/api/bookmarks.json
+++ b/chromium/chrome/common/extensions/api/bookmarks.json
@@ -5,7 +5,7 @@
[
{
"namespace": "bookmarks",
- "description": "Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. Also see <a href='override.html'>Override Pages</a>, which you can use to create a custom Bookmark Manager page.",
+ "description": "Use the <code>chrome.bookmarks</code> API to create, organize, and otherwise manipulate bookmarks. Also see <a href='override'>Override Pages</a>, which you can use to create a custom Bookmark Manager page.",
"properties": {
"MAX_WRITE_OPERATIONS_PER_HOUR": {
"value": 100,
@@ -57,6 +57,12 @@
"optional": true,
"description": "When the contents of this folder last changed, in milliseconds since the epoch."
},
+ "unmodifiable": {
+ "type": "string",
+ "enum": ["managed"],
+ "optional": true,
+ "description": "Indicates the reason why this node is unmodifiable. The <var>managed</var> value indicates that this node was configured by the system administrator. Omitted if the node can be modified by the user and the extension (default)."
+ },
"children": {
"type": "array",
"optional": true,
@@ -64,6 +70,33 @@
"description": "An ordered list of children of this node."
}
}
+ },
+ {
+ "id": "CreateDetails",
+ "description": "Object passed to the create() function.",
+ "inline_doc": true,
+ "type": "object",
+ "properties": {
+ "parentId": {
+ "type": "string",
+ "serialized_type": "int64",
+ "optional": true,
+ "description": "Defaults to the Other Bookmarks folder."
+ },
+ "index": {
+ "type": "integer",
+ "minimum": 0,
+ "optional": true
+ },
+ "title": {
+ "type": "string",
+ "optional": true
+ },
+ "url": {
+ "type": "string",
+ "optional": true
+ }
+ }
}
],
"functions": [
@@ -195,11 +228,38 @@
{
"name": "search",
"type": "function",
- "description": "Searches for BookmarkTreeNodes matching the given query.",
+ "description": "Searches for BookmarkTreeNodes matching the given query. Queries specified with an object produce BookmarkTreeNodes matching all specified properties.",
"parameters": [
{
- "type": "string",
- "name": "query"
+ "name": "query",
+ "description": "Either a string of words and quoted phrases that are matched against bookmark URLs and titles, or an object. If an object, the properties <code>query</code>, <code>url</code>, and <code>title</code> may be specified and bookmarks matching all specified properties will be produced.",
+ "choices": [
+ {
+ "type": "string",
+ "description": "A string of words and quoted phrases that are matched against bookmark URLs and titles."
+ },
+ {
+ "type": "object",
+ "description": "An object specifying properties and values to match when searching. Produces bookmarks matching all properties.",
+ "properties": {
+ "query": {
+ "type": "string",
+ "optional": true,
+ "description": "A string of words and quoted phrases that are matched against bookmark URLs and titles."
+ },
+ "url": {
+ "type": "string",
+ "optional": true,
+ "description": "The URL of the bookmark; matches verbatim. Note that folders have no URL."
+ },
+ "title": {
+ "type": "string",
+ "optional": true,
+ "description": "The title of the bookmark; matches verbatim."
+ }
+ }
+ }
+ ]
},
{
"type": "function",
@@ -220,29 +280,8 @@
"description": "Creates a bookmark or folder under the specified parentId. If url is NULL or missing, it will be a folder.",
"parameters": [
{
- "type": "object",
- "name": "bookmark",
- "properties": {
- "parentId": {
- "type": "string",
- "serialized_type": "int64",
- "optional": true,
- "description": "Defaults to the Other Bookmarks folder."
- },
- "index": {
- "type": "integer",
- "minimum": 0,
- "optional": true
- },
- "title": {
- "type": "string",
- "optional": true
- },
- "url": {
- "type": "string",
- "optional": true
- }
- }
+ "$ref": "CreateDetails",
+ "name": "bookmark"
},
{
"type": "function",
diff --git a/chromium/chrome/common/extensions/api/browser_action.json b/chromium/chrome/common/extensions/api/browser_action.json
index e08851be3aa..d7ff7438db6 100644
--- a/chromium/chrome/common/extensions/api/browser_action.json
+++ b/chromium/chrome/common/extensions/api/browser_action.json
@@ -5,7 +5,7 @@
[
{
"namespace": "browserAction",
- "description": "Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its <a href='#icon'>icon</a>, a browser action can also have a <a href='#tooltip'>tooltip</a>, a <a href='#badge'>badge</a>, and a <a href = '#popups'>popup</a>.",
+ "description": "Use browser actions to put icons in the main Google Chrome toolbar, to the right of the address bar. In addition to its <a href='browserAction#icon'>icon</a>, a browser action can also have a <a href='browserAction#tooltip'>tooltip</a>, a <a href='browserAction#badge'>badge</a>, and a <a href='browserAction#popups'>popup</a>.",
"types": [
{
"id": "ColorArray",
diff --git a/chromium/chrome/common/extensions/api/chromeos_info_private.json b/chromium/chrome/common/extensions/api/chromeos_info_private.json
index f39c8973d4c..65604a06b72 100644
--- a/chromium/chrome/common/extensions/api/chromeos_info_private.json
+++ b/chromium/chrome/common/extensions/api/chromeos_info_private.json
@@ -32,19 +32,29 @@
"type": "object",
"description": "Dictionary which contains all requested properties",
"properties": {
- "board" : {"type": "string", "optional": "true", "description": "Board name"},
- "homeProvider" : {"type": "string", "optional": "true", "description": "Home provider which is used by the cellular device"},
- "hwid": {"type": "string", "optional": "true", "description": "Hardware ID"},
- "initialLocale" : {"type": "string", "optional": "true", "description": "Initial locale for the device"},
- "isOwner" : {"type": "boolean", "optional": "true", "description": "True if current logged in user is device owner"},
- "timezone" : {"type": "string", "optional": "true", "description": "Timezone"},
+ "board" : {"type": "string", "optional": true, "description": "Board name"},
+ "customizationId": {"type": "string", "optional": true, "description": "Customization ID"},
+ "homeProvider" : {"type": "string", "optional": true, "description": "Home provider which is used by the cellular device"},
+ "hwid": {"type": "string", "optional": true, "description": "Hardware ID"},
+ "initialLocale" : {"type": "string", "optional": true, "description": "Initial locale for the device"},
+ "isOwner" : {"type": "boolean", "optional": true, "description": "True if current logged in user is device owner"},
+ "clientId" : {"type": "string", "optional": true, "description": "Device client id"},
+ "timezone" : {"type": "string", "optional": true, "description": "Timezone"},
+ "a11yLargeCursorEnabled" : {"type": "boolean", "optional": true, "description": "If true, ChromeOS is showing enlarged cursor."},
+ "a11yStickyKeysEnabled" : {"type": "boolean", "optional": true, "description": "If true, sticky keys are turned on."},
+ "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."},
+ "a11yVirtualKeyboardEnabled" : {"type": "boolean", "optional": true, "description": "If true, virtual keyboard will be enabled."},
+ "sendFunctionKeys" : {"type": "boolean", "optional": true, "description": "If true, the ChromeOS top row keys send function keys."},
"supportedTimezones" : {
"type": "array",
"items": {
"type": "array",
"items": {"type": "string"}
},
- "optional": "true",
+ "optional": true,
"description": "List of supported timezones definitions."
}
}
@@ -61,12 +71,20 @@
{
"name": "propertyName",
"type": "string",
- "enum": ["timezone"],
+ "enum": ["timezone",
+ "a11yLargeCursorEnabled",
+ "a11yStickyKeysEnabled",
+ "a11ySpokenFeedbackEnabled",
+ "a11yHighContrastEnabled",
+ "a11yScreenMagnifierEnabled",
+ "a11yAutoClickEnabled",
+ "a11yVirtualKeyboardEnabled",
+ "sendFunctionKeys"],
"description": "Chrome OS system property name"
},
{
- "name": "propertyVame",
- "type": "string",
+ "name": "propertyValue",
+ "type": "any",
"description": "Chrome OS system property value"
}
]
diff --git a/chromium/chrome/common/extensions/api/content_settings.json b/chromium/chrome/common/extensions/api/content_settings.json
index 2a0b86a1d1b..5d21a7030eb 100644
--- a/chromium/chrome/common/extensions/api/content_settings.json
+++ b/chromium/chrome/common/extensions/api/content_settings.json
@@ -24,7 +24,7 @@
"description": "A human readable description of the resource."
}
},
- "description": "The only content type using resource identifiers is $ref:contentSettings.plugins. For more information, see <a href=\"contentSettings.html#resource-identifiers\">Resource Identifiers</a>."
+ "description": "The only content type using resource identifiers is $(ref:contentSettings.plugins). For more information, see <a href=\"contentSettings#resource-identifiers\">Resource Identifiers</a>."
},
{
"id": "ContentSetting",
@@ -115,11 +115,11 @@
"properties": {
"primaryPattern": {
"type": "string",
- "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>."
+ "description": "The pattern for the primary URL. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>."
},
"secondaryPattern": {
"type": "string",
- "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings.html#patterns'>Content Setting Patterns</a>.",
+ "description": "The pattern for the secondary URL. Defaults to matching all URLs. For details on the format of a pattern, see <a href='contentSettings#patterns'>Content Setting Patterns</a>.",
"optional": true
},
"resourceIdentifier": {
diff --git a/chromium/chrome/common/extensions/api/context_menus.json b/chromium/chrome/common/extensions/api/context_menus.json
index a96bbaeeff3..33279d8e8a7 100644
--- a/chromium/chrome/common/extensions/api/context_menus.json
+++ b/chromium/chrome/common/extensions/api/context_menus.json
@@ -6,74 +6,6 @@
{
"namespace": "contextMenus",
"description": "Use the <code>chrome.contextMenus</code> API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages.",
- "types": [
- {
- "id": "OnClickData",
- "type": "object",
- "description": "Information sent when a context menu item is clicked.",
- "properties": {
- "menuItemId": {
- "choices": [
- { "type": "integer" },
- { "type": "string" }
- ],
- "description": "The ID of the menu item that was clicked."
- },
- "parentMenuItemId": {
- "choices": [
- { "type": "integer" },
- { "type": "string" }
- ],
- "optional": true,
- "description": "The parent ID, if any, for the item clicked."
- },
- "mediaType": {
- "type": "string",
- "optional": true,
- "description": "One of 'image', 'video', or 'audio' if the context menu was activated on one of these types of elements."
- },
- "linkUrl": {
- "type": "string",
- "optional": true,
- "description": "If the element is a link, the URL it points to."
- },
- "srcUrl": {
- "type": "string",
- "optional": true,
- "description": "Will be present for elements with a 'src' URL."
- },
- "pageUrl": {
- "type": "string",
- "optional": true,
- "description": "The URL of the page where the menu item was clicked. This property is not set if the click occured in a context where there is no current page, such as in a launcher context menu."
- },
- "frameUrl": {
- "type": "string",
- "optional": true,
- "description": " The URL of the frame of the element where the context menu was clicked, if it was in a frame."
- },
- "selectionText": {
- "type": "string",
- "optional": true,
- "description": "The text for the context selection, if any."
- },
- "editable": {
- "type": "boolean",
- "description": "A flag indicating whether the element is editable (text input, textarea, etc.)."
- },
- "wasChecked": {
- "type": "boolean",
- "optional": true,
- "description": "A flag indicating the state of a checkbox or radio item before it was clicked."
- },
- "checked": {
- "type": "boolean",
- "optional": true,
- "description": "A flag indicating the state of a checkbox or radio item after it is clicked."
- }
- }
- }
- ],
"functions": [
{
"name": "create",
@@ -129,7 +61,7 @@
"parameters": [
{
"name": "info",
- "$ref": "OnClickData",
+ "$ref": "contextMenusInternal.OnClickData",
"description": "Information about the item clicked and the context where the click happened."
},
{
@@ -151,7 +83,7 @@
"type": "array",
"items": {"type": "string"},
"optional": true,
- "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns.html'>Match Patterns</a>."
+ "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns'>Match Patterns</a>."
},
"targetUrlPatterns": {
"type": "array",
@@ -293,20 +225,7 @@
{
"name": "onClicked",
"type": "function",
- "description": "Fired when a context menu item is clicked.",
- "parameters": [
- {
- "name": "info",
- "$ref": "OnClickData",
- "description": "Information about the item clicked and the context where the click happened."
- },
- {
- "name": "tab",
- "$ref": "tabs.Tab",
- "description": "The details of the tab where the click took place. If the click did not take place in a tab, this parameter will be missing.",
- "optional": true
- }
- ]
+ "$ref": "contextMenusInternal.onClicked"
}
]
}
diff --git a/chromium/chrome/common/extensions/api/context_menus_internal.json b/chromium/chrome/common/extensions/api/context_menus_internal.json
new file mode 100644
index 00000000000..da2a49f7a31
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/context_menus_internal.json
@@ -0,0 +1,98 @@
+// Copyright 2014 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.
+
+[
+ {
+ "namespace": "contextMenusInternal",
+ "description": "Use the <code>chrome.contextMenus</code> API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages.",
+ "types": [
+ {
+ "id": "OnClickData",
+ "type": "object",
+ "description": "Information sent when a context menu item is clicked.",
+ "properties": {
+ "menuItemId": {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "description": "The ID of the menu item that was clicked."
+ },
+ "parentMenuItemId": {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "optional": true,
+ "description": "The parent ID, if any, for the item clicked."
+ },
+ "mediaType": {
+ "type": "string",
+ "optional": true,
+ "description": "One of 'image', 'video', or 'audio' if the context menu was activated on one of these types of elements."
+ },
+ "linkUrl": {
+ "type": "string",
+ "optional": true,
+ "description": "If the element is a link, the URL it points to."
+ },
+ "srcUrl": {
+ "type": "string",
+ "optional": true,
+ "description": "Will be present for elements with a 'src' URL."
+ },
+ "pageUrl": {
+ "type": "string",
+ "optional": true,
+ "description": "The URL of the page where the menu item was clicked. This property is not set if the click occured in a context where there is no current page, such as in a launcher context menu."
+ },
+ "frameUrl": {
+ "type": "string",
+ "optional": true,
+ "description": " The URL of the frame of the element where the context menu was clicked, if it was in a frame."
+ },
+ "selectionText": {
+ "type": "string",
+ "optional": true,
+ "description": "The text for the context selection, if any."
+ },
+ "editable": {
+ "type": "boolean",
+ "description": "A flag indicating whether the element is editable (text input, textarea, etc.)."
+ },
+ "wasChecked": {
+ "type": "boolean",
+ "optional": true,
+ "description": "A flag indicating the state of a checkbox or radio item before it was clicked."
+ },
+ "checked": {
+ "type": "boolean",
+ "optional": true,
+ "description": "A flag indicating the state of a checkbox or radio item after it is clicked."
+ }
+ }
+ }
+ ],
+ "events": [
+ {
+ "name": "onClicked",
+ "type": "function",
+ "description": "Fired when a context menu item is clicked.",
+ "parameters": [
+ {
+ "name": "info",
+ "$ref": "OnClickData",
+ "description": "Information about the item clicked and the context where the click happened."
+ },
+ {
+ "name": "tab",
+ "$ref": "tabs.Tab",
+ "description": "The details of the tab where the click took place. If the click did not take place in a tab, this parameter will be missing.",
+ "optional": true
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/chromium/chrome/common/extensions/api/debugger.json b/chromium/chrome/common/extensions/api/debugger.json
index 8b656ef5dc8..c7a41fd8c9d 100644
--- a/chromium/chrome/common/extensions/api/debugger.json
+++ b/chromium/chrome/common/extensions/api/debugger.json
@@ -5,7 +5,7 @@
[
{
"namespace": "debugger",
- "description": "The <code>chrome.debugger</code> API serves as an alternate transport for Chrome's <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>. Use <code>chrome.debugger</code> to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the Debuggee <code>tabId</code> to target tabs with sendCommand and route events by <code>tabId</code> from onEvent callbacks.",
+ "description": "The <code>chrome.debugger</code> API serves as an alternate transport for Chrome's <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>. Use <code>chrome.debugger</code> to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the Debuggee <code>tabId</code> to target tabs with sendCommand and route events by <code>tabId</code> from onEvent callbacks.",
"types": [
{
"id": "Debuggee",
@@ -13,7 +13,7 @@
"description": "Debuggee identifier. Either tabId or extensionId must be specified",
"properties": {
"tabId": { "type": "integer", "optional": true, "description": "The id of the tab which you intend to debug." },
- "extensionId": { "type": "string", "optional": true, "description": "The id of the extension which you intend to debug. Attaching to an extension background page is only possible when 'enable-silent-debugging' flag is enabled on the target browser." },
+ "extensionId": { "type": "string", "optional": true, "description": "The id of the extension which you intend to debug. Attaching to an extension background page is only possible when 'silent-debugger-extension-api' flag is enabled on the target browser." },
"targetId": { "type": "string", "optional": true, "description": "The opaque id of the debug target." }
}
},
@@ -51,14 +51,14 @@
{
"type": "string",
"name": "requiredVersion",
- "description": "Required debugging protocol version (\"0.1\"). One can only attach to the debuggee with matching major version and greater or equal minor version. List of the protocol versions can be obtained <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>here</a>."
+ "description": "Required debugging protocol version (\"0.1\"). One can only attach to the debuggee with matching major version and greater or equal minor version. List of the protocol versions can be obtained <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>here</a>."
},
{
"type": "function",
"name": "callback",
"optional": true,
"parameters": [],
- "description": "Called once the attach operation succeeds or fails. Callback receives no arguments. If the attach fails, $ref:runtime.lastError will be set to the error message."
+ "description": "Called once the attach operation succeeds or fails. Callback receives no arguments. If the attach fails, $(ref:runtime.lastError) will be set to the error message."
}
]
},
@@ -77,7 +77,7 @@
"name": "callback",
"optional": true,
"parameters": [],
- "description": "Called once the detach operation succeeds or fails. Callback receives no arguments. If the detach fails, $ref:runtime.lastError will be set to the error message."
+ "description": "Called once the detach operation succeeds or fails. Callback receives no arguments. If the detach fails, $(ref:runtime.lastError) will be set to the error message."
}
]
},
@@ -94,7 +94,7 @@
{
"type": "string",
"name": "method",
- "description": "Method name. Should be one of the methods defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>."
+ "description": "Method name. Should be one of the methods defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>."
},
{
"type": "object",
@@ -113,10 +113,10 @@
"name": "result",
"optional": true,
"additionalProperties": { "type": "any" },
- "description": "JSON object with the response. Structure of the response varies depending on the method and is defined by the remote debugging protocol."
+ "description": "JSON object with the response. Structure of the response varies depending on the method name and is defined by the 'returns' attribute of the command description in the remote debugging protocol."
}
],
- "description": "Response body. If an error occurs while posting the message, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message."
+ "description": "Response body. If an error occurs while posting the message, the callback will be called with no arguments and $(ref:runtime.lastError) will be set to the error message."
}
]
},
@@ -154,14 +154,14 @@
{
"type": "string",
"name": "method",
- "description": "Method name. Should be one of the notifications defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging.html'>remote debugging protocol</a>."
+ "description": "Method name. Should be one of the notifications defined by the <a href='http://code.google.com/chrome/devtools/docs/remote-debugging'>remote debugging protocol</a>."
},
{
"type": "object",
"name": "params",
"optional": true,
"additionalProperties": { "type": "any" },
- "description": "JSON object with the response. Structure of the response varies depending on the method and is defined by the remote debugging protocol."
+ "description": "JSON object with the parameters. Structure of the parameters varies depending on the method name and is defined by the 'parameters' attribute of the event description in the remote debugging protocol."
}
]
},
diff --git a/chromium/chrome/common/extensions/api/declarative_content.json b/chromium/chrome/common/extensions/api/declarative_content.json
index 7d227ec4a6a..7c383b58e24 100644
--- a/chromium/chrome/common/extensions/api/declarative_content.json
+++ b/chromium/chrome/common/extensions/api/declarative_content.json
@@ -40,7 +40,7 @@
},
{
"id": "ShowPageAction",
- "description": "Declarative event action that shows the extension's $ref:[pageAction page action] while the corresponding conditions are met. This action can be used without <a href=\"declare_permissions.html#host-permissions\">host permissions</a>, but the extension must have a page action. If the extension takes the <a href=\"activeTab.html\">activeTab</a> permission, a click on the page action will grant access to the active tab.",
+ "description": "Declarative event action that shows the extension's $(ref:pageAction page action) while the corresponding conditions are met. This action can be used without <a href=\"declare_permissions#host-permissions\">host permissions</a>, but the extension must have a page action. If the extension takes the <a href=\"activeTab.html\">activeTab</a> permission, a click on the page action will grant access to the active tab.",
"type": "object",
"properties": {
"instanceType": {
diff --git a/chromium/chrome/common/extensions/api/declarative_web_request.json b/chromium/chrome/common/extensions/api/declarative_web_request.json
index 2c37c74eb2d..e9ea8a24866 100644
--- a/chromium/chrome/common/extensions/api/declarative_web_request.json
+++ b/chromium/chrome/common/extensions/api/declarative_web_request.json
@@ -5,7 +5,7 @@
[
{
"namespace": "declarativeWebRequest",
- "description": "Use the <code>chrome.declarativeWebRequest</code> API to intercept, block, or modify requests in-flight. It is significantly faster than the <a href='webRequest.html'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency.",
+ "description": "<em><strong>Note:</strong> this API is currently on hold, without concrete plans to move to stable.</em> Use the <code>chrome.declarativeWebRequest</code> API to intercept, block, or modify requests in-flight. It is significantly faster than the <a href='webRequest'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency.",
"types": [
{
"id": "HeaderFilter",
@@ -297,7 +297,7 @@
},
{
"id": "declarativeWebRequest.SendMessageToExtension",
- "description": "Triggers the $ref:declarativeWebRequest.onMessage event.",
+ "description": "Triggers the $(ref:declarativeWebRequest.onMessage) event.",
"type": "object",
"properties": {
"instanceType": {
@@ -570,7 +570,7 @@
{
"name": "onMessage",
"type": "function",
- "description": "Fired when a message is sent via $ref:declarativeWebRequest.SendMessageToExtension from an action of the declarative web request API.",
+ "description": "Fired when a message is sent via $(ref:declarativeWebRequest.SendMessageToExtension) from an action of the declarative web request API.",
"parameters": [
{
"type": "object",
diff --git a/chromium/chrome/common/extensions/api/devtools/experimental_audits.json b/chromium/chrome/common/extensions/api/devtools/experimental_audits.json
index d359496fa02..2864c4c312f 100644
--- a/chromium/chrome/common/extensions/api/devtools/experimental_audits.json
+++ b/chromium/chrome/common/extensions/api/devtools/experimental_audits.json
@@ -41,7 +41,7 @@
"id": "FormattedValue",
"type": "object",
"additionalProperties": { "type": "any" },
- "description": "A value returned from one of the formatters (a URL, code snippet etc), to be passed to <code>createResult()</code> or <code>addChild()</code>. See $ref:AuditResults.createSnippet and $ref:AuditResults.createURL."
+ "description": "A value returned from one of the formatters (a URL, code snippet etc), to be passed to <code>createResult()</code> or <code>addChild()</code>. See $(ref:AuditResults.createSnippet) and $(ref:AuditResults.createURL)."
},
{
"id": "AuditResults",
@@ -134,7 +134,7 @@
"description": "Children of this node."
},
"expanded": {
- "optional": "true",
+ "optional": true,
"type": "boolean",
"description": "Whether the node is expanded by default."
}
diff --git a/chromium/chrome/common/extensions/api/devtools/panels.json b/chromium/chrome/common/extensions/api/devtools/panels.json
index 31ee936d3d0..0fec13a830c 100644
--- a/chromium/chrome/common/extensions/api/devtools/panels.json
+++ b/chromium/chrome/common/extensions/api/devtools/panels.json
@@ -99,8 +99,10 @@
"parameters": [
{
"name": "window",
- "$ref": "windows.Window",
- "description": "The <code>window</code> object of panel's page."
+ "type": "object",
+ "isInstanceOf": "global",
+ "additionalProperties": { "type": "any" },
+ "description": "The JavaScript <code>window</code> object of panel's page."
}
]
},
@@ -197,9 +199,10 @@
"parameters": [
{
"name": "window",
- "$ref": "windows.Window",
- "optional": true,
- "description": "The <code>window</code> object of the sidebar page, if one was set with the <code>setPage()</code> method."
+ "type": "object",
+ "isInstanceOf": "global",
+ "additionalProperties": { "type": "any" },
+ "description": "The JavaScript <code>window</code> object of the sidebar page, if one was set with the <code>setPage()</code> method."
}
]
},
@@ -305,7 +308,7 @@
{
"name": "resource",
"$ref": "devtools.inspectedWindow.Resource",
- "description": "A $ref:devtools.inspectedWindow.Resource object for the resource that was clicked."
+ "description": "A $(ref:devtools.inspectedWindow.Resource) object for the resource that was clicked."
}
]
}
diff --git a/chromium/chrome/common/extensions/api/events.json b/chromium/chrome/common/extensions/api/events.json
index ac11987c8ee..b09dba7582e 100644
--- a/chromium/chrome/common/extensions/api/events.json
+++ b/chromium/chrome/common/extensions/api/events.json
@@ -5,7 +5,7 @@
[
{
"namespace": "events",
- "description": "Use the <code>chrome.events</code> API to notify you when something interesting happens.",
+ "description": "The <code>chrome.events</code> namespace contains common types used by APIs dispatching events to notify you when something interesting happens.",
"compiler_options": {
"implemented_in": "chrome/browser/extensions/api/declarative/declarative_api.h"
},
@@ -159,7 +159,7 @@
},
{
"name": "ruleIdentifiers",
- "optional": "true",
+ "optional": true,
"type": "array",
"items": {"type": "string"},
"description": "If an array is passed, only rules with identifiers contained in this array are returned."
@@ -198,7 +198,7 @@
},
{
"name": "ruleIdentifiers",
- "optional": "true",
+ "optional": true,
"type": "array",
"items": {"type": "string"},
"description": "If an array is passed, only rules with identifiers contained in this array are unregistered."
diff --git a/chromium/chrome/common/extensions/api/extension.json b/chromium/chrome/common/extensions/api/extension.json
index e12c87e4c04..03767fbd22e 100644
--- a/chromium/chrome/common/extensions/api/extension.json
+++ b/chromium/chrome/common/extensions/api/extension.json
@@ -5,7 +5,7 @@
[
{
"namespace": "extension",
- "description": "The <code>chrome.extension</code> API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in <a href='messaging.html'>Message Passing</a>.",
+ "description": "The <code>chrome.extension</code> API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in <a href='messaging'>Message Passing</a>.",
"compiler_options": {
"implemented_in": "chrome/browser/extensions/api/module/module.h"
},
@@ -28,10 +28,10 @@
{
"name": "sendRequest",
"nocompile": true,
- "deprecated": "Please use $ref:runtime.sendMessage.",
+ "deprecated": "Please use $(ref:runtime.sendMessage).",
"type": "function",
"allowAmbiguousOptionalArguments": true,
- "description": "Sends a single request to other listeners within the extension. Similar to $ref:runtime.connect, but only sends a single request with an optional response. The $ref:onRequest event is fired in each page of the extension.",
+ "description": "Sends a single request to other listeners within the extension. Similar to $(ref:runtime.connect), but only sends a single request with an optional response. The $(ref:extension.onRequest) event is fired in each page of the extension.",
"parameters": [
{"type": "string", "name": "extensionId", "optional": true, "description": "The extension ID of the extension you want to connect to. If omitted, default is your own extension."},
{ "type": "any", "name": "request" },
@@ -43,7 +43,7 @@
{
"name": "response",
"type": "any",
- "description": "The JSON response object sent by the handler of the request. If an error occurs while connecting to the extension, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message."
+ "description": "The JSON response object sent by the handler of the request. If an error occurs while connecting to the extension, the callback will be called with no arguments and $(ref:runtime.lastError) will be set to the error message."
}
]
}
@@ -119,7 +119,7 @@
{
"name": "getExtensionTabs",
"nocompile": true,
- "deprecated": "Please use $ref:getViews <code>{type: \"tab\"}</code>.",
+ "deprecated": "Please use $(ref:extension.getViews) <code>{type: \"tab\"}</code>.",
"type": "function",
"maximumManifestVersion": 1,
"description": "Returns an array of the JavaScript 'window' objects for each of the tabs running inside the current extension. If <code>windowId</code> is specified, returns only the 'window' objects of tabs attached to the specified window.",
@@ -187,7 +187,7 @@
"events": [
{
"name": "onRequest",
- "deprecated": "Please use $ref:runtime.onMessage.",
+ "deprecated": "Please use $(ref:runtime.onMessage).",
"type": "function",
"options": {
"unmanaged": true
@@ -201,7 +201,7 @@
},
{
"name": "onRequestExternal",
- "deprecated": "Please use $ref:runtime.onMessageExternal.",
+ "deprecated": "Please use $(ref:runtime.onMessageExternal).",
"type": "function",
"options": {
"unmanaged": true
@@ -215,4 +215,4 @@
}
]
}
-] \ No newline at end of file
+]
diff --git a/chromium/chrome/common/extensions/api/gcm.json b/chromium/chrome/common/extensions/api/gcm.json
index cd814128ef6..9885a1d5c6b 100644
--- a/chromium/chrome/common/extensions/api/gcm.json
+++ b/chromium/chrome/common/extensions/api/gcm.json
@@ -5,7 +5,7 @@
[
{
"namespace": "gcm",
- "description": "Use <code>chrome.gcm</code> to enable apps and extensions to send and receive messages through <a href='http://developer.android.com/google/gcm/index.html'>Google Cloud Messaging for Android</a>.",
+ "description": "Use <code>chrome.gcm</code> to enable apps and extensions to send and receive messages through <a href='http://developer.android.com/google/gcm/'>Google Cloud Messaging</a>.",
"properties": {
"MAX_MESSAGE_SIZE": {
"value": 4096,
@@ -21,7 +21,7 @@
{
"name": "senderIds",
"type": "array",
- "items": {
+ "items": {
"type": "string",
"minLength": 1
},
@@ -32,9 +32,9 @@
{
"name": "callback",
"type": "function",
- "description": "Function called when registration completes. It should check $ref:runtime.lastError for error when <code>registrationId</code> is empty.",
+ "description": "Function called when registration completes. It should check $(ref:runtime.lastError) for error when <code>registrationId</code> is empty.",
"parameters": [
- {
+ {
"name": "registrationId",
"type": "string",
"description": "A registration ID assigned to the application by the GCM."
@@ -44,6 +44,19 @@
]
},
{
+ "name": "unregister",
+ "type": "function",
+ "description": "Unregisters the application from GCM.",
+ "parameters": [
+ {
+ "name": "callback",
+ "type": "function",
+ "description": "A function called after the unregistration completes. Unregistration was successful if $(ref:runtime.lastError) is not set.",
+ "parameters": []
+ }
+ ]
+ },
+ {
"name": "send",
"type": "function",
"description": "Sends a message according to its contents.",
@@ -61,14 +74,14 @@
"messageId": {
"type": "string",
"minLength": 1,
- "description": "The ID of the message. It must be unique for each message."
+ "description": "The ID of the message. It must be unique for each message in scope of the applications. See the <a href='cloudMessagingV2#send_messages'>Cloud Messaging documentation</a> for advice for picking and handling an ID."
},
"timeToLive": {
"type": "integer",
"minimum": 0,
"maximum": 2419200,
"optional": true,
- "description": "Time-to-live of the message in seconds. If it is not possible to send the message wihtin that time an error will be raised. A time-to-live of 0 indicates that the message should be sent immediately or fail if it's not possible. The maximum and a default value of time-to-live is 2419200 seconds (4 weeks)."
+ "description": "Time-to-live of the message in seconds. If it is not possible to send the message within that time, an onSendError event will be raised. A time-to-live of 0 indicates that the message should be sent immediately or fail if it's not possible. The maximum and a default value of time-to-live is 2419200 seconds (4 weeks)."
},
"data": {
"type": "object",
@@ -77,14 +90,14 @@
"type": "string",
"minLength": 1
},
- "description": "Message data to send to the server. <code>goog.</code> and <code>google</code> are disallowed as key prefixes. Sum of all key/value pairs should not exceed $ref:MAX_MESSAGE_SIZE."
+ "description": "Message data to send to the server. Case-insensitive <code>goog.</code> and <code>google</code>, as well as case-sensitive <code>collapse_key</code> are disallowed as key prefixes. Sum of all key/value pairs should not exceed $(ref:gcm.MAX_MESSAGE_SIZE)."
}
}
},
{
"name": "callback",
"type": "function",
- "description": "A function called after the message is successfully queued for sending. $ref:runtime.lastError should be checked, to ensure a message was sent without problems.",
+ "description": "A function called after the message is successfully queued for sending. $(ref:runtime.lastError) should be checked, to ensure a message was sent without problems.",
"parameters": [
{
"name": "messageId",
@@ -102,7 +115,7 @@
"type": "function",
"description": "Fired when a message is received through GCM.",
"parameters": [
- {
+ {
"name": "message",
"type": "object",
"description": "A message received from another party via GCM.",
@@ -114,6 +127,11 @@
"type": "string"
},
"description": "The message data."
+ },
+ "collapseKey": {
+ "type": "string",
+ "optional": true,
+ "desctription": "The collapse key of a message. See <a href='cloudMessagingV2#collapsible_messages'>Collapsible Messages</a> section of Cloud Messaging documentation for details."
}
}
}
@@ -122,7 +140,7 @@
{
"name": "onMessagesDeleted",
"type": "function",
- "description": "Fired when a GCM server had to delete messages to the application from its queue in order to manage its size. The app is expected to handle that case gracefully, e.g. by running a full sync with its server."
+ "description": "Fired when a GCM server had to delete messages sent by an app server to the application. See <a href='cloudMessagingV2#messages_deleted_event'>Messages deleted event</a> section of Cloud Messaging documentation for details on handling this event."
},
{
"name": "onSendError",
diff --git a/chromium/chrome/common/extensions/api/guest_view_internal.json b/chromium/chrome/common/extensions/api/guest_view_internal.json
new file mode 100644
index 00000000000..d677ae7b086
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/guest_view_internal.json
@@ -0,0 +1,31 @@
+// Copyright 2014 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.
+
+[
+ {
+ "namespace": "guestViewInternal",
+ "compiler_options": {
+ "implemented_in": "chrome/browser/extensions/api/guest_view/guest_view_internal_api.h"
+ },
+ "description": "none",
+ "functions": [
+ {
+ "name": "allocateInstanceId",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/chromium/chrome/common/extensions/api/history.json b/chromium/chrome/common/extensions/api/history.json
index b73e3e32d50..c4e11cc8385 100644
--- a/chromium/chrome/common/extensions/api/history.json
+++ b/chromium/chrome/common/extensions/api/history.json
@@ -5,7 +5,7 @@
[
{
"namespace": "history",
- "description": "Use the <code>chrome.history</code> API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see <a href='override.html'>Override Pages</a>.",
+ "description": "Use the <code>chrome.history</code> API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see <a href='override'>Override Pages</a>.",
"types": [
{
"id": "HistoryItem",
diff --git a/chromium/chrome/common/extensions/api/i18n.json b/chromium/chrome/common/extensions/api/i18n.json
index 510256ce2a9..d29c0e69cf8 100644
--- a/chromium/chrome/common/extensions/api/i18n.json
+++ b/chromium/chrome/common/extensions/api/i18n.json
@@ -11,7 +11,7 @@
{
"name": "getAcceptLanguages",
"type": "function",
- "description": "Gets the accept-languages of the browser. This is different from the locale used by the browser; to get the locale, use <code>window.navigator.language</code>.",
+ "description": "Gets the accept-languages of the browser. This is different from the locale used by the browser; to get the locale, use $(ref:i18n.getUILanguage).",
"parameters": [
{
"type": "function",
@@ -31,7 +31,7 @@
{
"type": "string",
"name": "messageName",
- "description": "The name of the message, as specified in the <a href='i18n-messages.html'><code>messages.json</code></a> file."
+ "description": "The name of the message, as specified in the <a href='i18n-messages'><code>messages.json</code></a> file."
},
{
"type": "any",
@@ -44,6 +44,17 @@
"type": "string",
"description": "Message localized for current locale."
}
+ },
+ {
+ "name": "getUILanguage",
+ "type": "function",
+ "nocompile": true,
+ "description": "Gets the browser UI language of the browser. This is different from $(ref:i18n.getAcceptLanguages) which returns the preferred user languages.",
+ "parameters": [],
+ "returns": {
+ "type": "string",
+ "description": "The browser UI language code such as en-US or fr-FR."
+ }
}
],
"events": []
diff --git a/chromium/chrome/common/extensions/api/input_ime.json b/chromium/chrome/common/extensions/api/input_ime.json
index 7254776ece7..aa324eb2fcb 100644
--- a/chromium/chrome/common/extensions/api/input_ime.json
+++ b/chromium/chrome/common/extensions/api/input_ime.json
@@ -15,8 +15,10 @@
"properties": {
"type": {"type": "string", "description": "One of keyup or keydown.", "enum": ["keyup", "keydown"]},
"requestId": {"type": "string", "description": "The ID of the request."},
+ "extensionId": {"type": "string", "optional": true, "description": "The extension ID of the sender of this keyevent."},
"key": {"type": "string", "description": "Value of the key being pressed"},
"code": {"type": "string", "description": "Value of the physical key being pressed. The value is not affected by current keyboard layout or modifier state."},
+ "keyCode": {"type": "integer", "optional": true, "description": "The deprecated HTML keyCode, which is system- and implementation-dependent numerical code signifying the unmodified identifier associated with the key pressed."},
"altKey": {"type": "boolean", "optional": true, "description": "Whether or not the ALT key is pressed."},
"ctrlKey": {"type": "boolean", "optional": true, "description": "Whether or not the CTRL key is pressed."},
"shiftKey": {"type": "boolean", "optional": true, "description": "Whether or not the SHIFT key is pressed."},
@@ -29,7 +31,7 @@
"description": "Describes an input Context",
"properties": {
"contextID": {"type": "integer", "description": "This is used to specify targets of text field operations. This ID becomes invalid as soon as onBlur is called."},
- "type": {"type": "string", "description": "Type of value this text field edits, (Text, Number, URL, etc)", "enum": ["text", "search", "tel", "url", "email", "number"]}
+ "type": {"type": "string", "description": "Type of value this text field edits, (Text, Number, URL, etc)", "enum": ["text", "search", "tel", "url", "email", "number", "password"]}
}
},
{
@@ -194,7 +196,7 @@
"type": "object",
"properties": {
"contextID": {
- "description": "ID of the context where the key events will be sent",
+ "description": "ID of the context where the key events will be sent, or zero to send key events to non-input field.",
"type": "integer"
},
"keyData": {
@@ -216,6 +218,12 @@
]
},
{
+ "name": "hideInputView",
+ "type": "function",
+ "description": "Hides the input view window, which is popped up automatically by system. If the input view window is already hidden, this function will do nothing.",
+ "parameters": []
+ },
+ {
"name": "setCandidateWindowProperties",
"type": "function",
"description": "Sets the properties of the candidate window. This fails if the extension doesn't own the active IME",
diff --git a/chromium/chrome/common/extensions/api/input_method_private.json b/chromium/chrome/common/extensions/api/input_method_private.json
index 9b40b62abb9..0d11f640cf0 100644
--- a/chromium/chrome/common/extensions/api/input_method_private.json
+++ b/chromium/chrome/common/extensions/api/input_method_private.json
@@ -9,7 +9,34 @@
"description": "none",
"functions": [
{
- "name": "get",
+ "name": "getInputMethods",
+ "type": "function",
+ "description": "Gets all whitelisted input methods.",
+ "parameters": [
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": false,
+ "description": "Callback which is called with the input method objects.",
+ "parameters": [
+ {
+ "name": "inputMethods",
+ "type": "array",
+ "description": "Whitelisted input method objects.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "id": {"type": "string"},
+ "name": {"type": "string"},
+ "indicator": {"type": "string"}
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }, {
+ "name": "getCurrentInputMethod",
"type": "function",
"description": "Gets the current input method.",
"parameters": [
@@ -28,10 +55,24 @@
}
]
}, {
- "name": "startIme",
+ "name": "setCurrentInputMethod",
"type": "function",
- "description": "Notify to input method engine to be ready to accept events.",
- "parameters" : []
+ "description": "Sets the current input method.",
+ "parameters": [
+ {
+ "name": "inputMethodId",
+ "type": "string",
+ "optional": false,
+ "description": "The input method ID to be set as current input method."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
+ "description": "Callback which is called once the current input method is set or error occurs.",
+ "parameters": []
+ }
+ ]
}
],
"events": [
diff --git a/chromium/chrome/common/extensions/api/management.json b/chromium/chrome/common/extensions/api/management.json
index f2a35d956d2..97319a6fb66 100644
--- a/chromium/chrome/common/extensions/api/management.json
+++ b/chromium/chrome/common/extensions/api/management.json
@@ -5,7 +5,7 @@
[
{
"namespace":"management",
- "description": "The <code>chrome.management</code> API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that <a href='override.html'>override</a> the built-in New Tab page.",
+ "description": "The <code>chrome.management</code> API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that <a href='override'>override</a> the built-in New Tab page.",
"types": [
{
"id": "IconInfo",
@@ -17,6 +17,12 @@
}
},
{
+ "id": "LaunchType",
+ "type": "string",
+ "enum": ["OPEN_AS_REGULAR_TAB", "OPEN_AS_PINNED_TAB", "OPEN_AS_WINDOW", "OPEN_FULL_SCREEN"],
+ "description": "These are all possible app launch types."
+ },
+ {
"id": "ExtensionInfo",
"description": "Information about an installed extension, app, or theme.",
"type": "object",
@@ -38,7 +44,7 @@
"type": "string"
},
"version": {
- "description": "The <a href='manifest/version.html'>version</a> of this extension, app, or theme.",
+ "description": "The <a href='manifest/version'>version</a> of this extension, app, or theme.",
"type": "string"
},
"mayDisable": {
@@ -58,7 +64,7 @@
"isApp": {
"description": "True if this is an app.",
"type": "boolean",
- "deprecated": "Please use $ref:ExtensionInfo.type."
+ "deprecated": "Please use $(ref:management.ExtensionInfo.type)."
},
"type": {
"description": "The type of this extension, app, or theme.",
@@ -89,7 +95,7 @@
"type": "string"
},
"icons": {
- "description": "A list of icon information. Note that this just reflects what was declared in the manifest, and the actual image at that url may be larger or smaller than what was declared, so you might consider using explicit width and height attributes on img tags referencing these images. See the <a href='manifest/icons.html'>manifest documentation on icons</a> for more details.",
+ "description": "A list of icon information. Note that this just reflects what was declared in the manifest, and the actual image at that url may be larger or smaller than what was declared, so you might consider using explicit width and height attributes on img tags referencing these images. See the <a href='manifest/icons'>manifest documentation on icons</a> for more details.",
"type": "array",
"optional": true,
"items": {
@@ -114,6 +120,19 @@
"description": "How the extension was installed. One of<br><var>admin</var>: The extension was installed because of an administrative policy,<br><var>development</var>: The extension was loaded unpacked in developer mode,<br><var>normal</var>: The extension was installed normally via a .crx file,<br><var>sideload</var>: The extension was installed by other software on the machine,<br><var>other</var>: The extension was installed by other means.",
"type": "string",
"enum": ["admin", "development", "normal", "sideload", "other"]
+ },
+ "launchType": {
+ "description": "The app launch type (only present for apps). This property is new in Chrome 37.",
+ "$ref": "LaunchType",
+ "optional": true
+ },
+ "availableLaunchTypes": {
+ "description": "The currently available launch types (only present for apps). This property is new in Chrome 37.",
+ "type": "array",
+ "optional": true,
+ "items": {
+ "$ref": "LaunchType"
+ }
}
}
}
@@ -146,12 +165,12 @@
{
"name": "id",
"type": "string",
- "description": "The ID from an item of $ref:ExtensionInfo."
+ "description": "The ID from an item of $(ref:management.ExtensionInfo)."
},
{
"type": "function",
"name": "callback",
- "optional": "true",
+ "optional": true,
"parameters": [
{
"name": "result",
@@ -163,7 +182,7 @@
},
{
"name": "getPermissionWarningsById",
- "description": "Returns a list of <a href='permission_warnings.html'>permission warnings</a> for the given extension id.",
+ "description": "Returns a list of <a href='permission_warnings'>permission warnings</a> for the given extension id.",
"parameters": [
{ "name": "id",
"type": "string",
@@ -172,7 +191,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": [
{
"name": "permissionWarnings",
@@ -185,7 +204,7 @@
},
{
"name": "getPermissionWarningsByManifest",
- "description": "Returns a list of <a href='permission_warnings.html'>permission warnings</a> for the given extension manifest string. Note: This function can be used without requesting the 'management' permission in the manifest.",
+ "description": "Returns a list of <a href='permission_warnings'>permission warnings</a> for the given extension manifest string. Note: This function can be used without requesting the 'management' permission in the manifest.",
"parameters": [
{
"name": "manifestStr",
@@ -195,7 +214,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": [
{
"name": "permissionWarnings",
@@ -213,7 +232,7 @@
{
"name": "id",
"type": "string",
- "description": "This should be the id from an item of $ref:ExtensionInfo."
+ "description": "This should be the id from an item of $(ref:management.ExtensionInfo)."
},
{
"name": "enabled",
@@ -223,7 +242,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -235,12 +254,12 @@
{
"name": "id",
"type": "string",
- "description": "This should be the id from an item of $ref:ExtensionInfo."
+ "description": "This should be the id from an item of $(ref:management.ExtensionInfo)."
},
{
"type": "object",
"name": "options",
- "optional": "true",
+ "optional": true,
"properties": {
"showConfirmDialog": {
"type": "boolean",
@@ -252,7 +271,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -264,7 +283,7 @@
{
"type": "object",
"name": "options",
- "optional": "true",
+ "optional": true,
"properties": {
"showConfirmDialog": {
"type": "boolean",
@@ -276,7 +295,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -293,10 +312,76 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "createAppShortcut",
+ "description": "Display options to create shortcuts for an app. On Mac, only packaged app shortcuts can be created. This function is new in Chrome 37.",
+ "parameters": [
+ {
+ "name": "id",
+ "type": "string",
+ "description": "This should be the id from an app item of $(ref:management.ExtensionInfo)."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "setLaunchType",
+ "description": "Set the launch type of an app. This function is new in Chrome 37.",
+ "parameters": [
+ {
+ "name": "id",
+ "type": "string",
+ "description": "This should be the id from an app item of $(ref:management.ExtensionInfo)."
+ },
+ {
+ "name": "launchType",
+ "$ref": "LaunchType",
+ "description": "The target launch type. Always check and make sure this launch type is in $(ref:ExtensionInfo.availableLaunchTypes), because the available launch types vary on different platforms and configurations."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
"parameters": []
}
]
+ },
+ {
+ "name": "generateAppForLink",
+ "description": "Generate an app for a URL. Returns the generated bookmark app. This function is new in Chrome 37.",
+ "parameters": [
+ {
+ "name": "url",
+ "type": "string",
+ "description": "The URL of a web page. The scheme of the URL can only be \"http\" or \"https\"."
+ },
+ {
+ "name": "title",
+ "type": "string",
+ "description": "The title of the generated app."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
+ "parameters": [
+ {
+ "name": "result",
+ "$ref": "ExtensionInfo"
+ }
+ ]
+ }
+ ]
}
],
"events": [
diff --git a/chromium/chrome/common/extensions/api/manifest_types.json b/chromium/chrome/common/extensions/api/manifest_types.json
index a2cc9d3bda1..cd1aafc6d22 100644
--- a/chromium/chrome/common/extensions/api/manifest_types.json
+++ b/chromium/chrome/common/extensions/api/manifest_types.json
@@ -13,48 +13,10 @@
},
"types": [
{
- "id": "ExternallyConnectable",
- "type": "object",
- // Note: description commented out because externally_connectable.html
- // already describes it, and the repetition looks odd.
- // "description": "The <code>externally_connectable</code> manifest property declares which extensions, apps, and web pages can connect to your extension via $ref:runtime.connect and $ref:runtime.sendMessage.",
- "properties": {
- "ids": {
- "description": "<p>The IDs of extensions or apps that are allowed to connect. If left empty or unspecified, no extensions or apps can connect.</p><p>The wildcard <code>\"*\"</code> will allow all extensions and apps to connect.</p>",
- "optional": true,
- "type": "array",
- "items": {"type": "string"}
- },
- "matches": {
- "description": "<p>The URL patterns for <em>web pages</em> that are allowed to connect. <em>This does not affect content scripts.</em> If left empty or unspecified, no web pages can connect.</p><p>Patterns cannot include wildcard domains nor subdomains of (effective) top level domains; <code>*://google.com/*</code> and <code>http://*.chromium.org/*</code> are valid, while <code>&lt;all_urls&gt;</code>, <code>http://*/*</code>, <code>*://*.com/*</code>, and even <code>http://*.appspot.com/*</code> are not.</p>",
- "optional": true,
- "type": "array",
- "items": {"type": "string"}
- },
- "accepts_tls_channel_id": {
- "description": "If <code>true</code>, messages sent via $ref:runtime.connect or $ref:runtime.sendMessage will set $ref:runtime.MessageSender.tlsChannelId if those methods request it to be. If <code>false</code>, $ref:runtime.MessageSender.tlsChannelId will never be set under any circumstance.",
- "optional": true,
- "type": "boolean"
- }
- }
- },
- {
"id": "ChromeSettingsOverrides",
"type": "object",
"description": "Chrome settings which can be overriden by an extension.",
"properties": {
- "bookmarks_ui": {
- "type": "object",
- "description": "Settings to permit bookmarks user interface customization by extensions.",
- "optional": true,
- "properties": {
- "hide_bookmark_button": {
- "type": "boolean",
- "description": "If <code>true</code>, the built-in bookmark button will be hidden within the user interface.",
- "optional": true
- }
- }
- },
"homepage": {
"description": "New value for the homepage.",
"optional": true,
@@ -67,15 +29,18 @@
"properties": {
"name": {
"type": "string",
- "description": "Name of the search engine displayed to user."
+ "optional": true,
+ "description": "Name of the search engine displayed to user. This may only be ommitted if <em>prepopulated_id</em> is set."
},
"keyword": {
"type": "string",
- "description": "Omnibox keyword for the search engine."
+ "optional": true,
+ "description": "Omnibox keyword for the search engine. This may only be ommitted if <em>prepopulated_id</em> is set."
},
"favicon_url": {
"type": "string",
- "description": "An icon URL for the search engine."
+ "optional": true,
+ "description": "An icon URL for the search engine. This may only be ommitted if <em>prepopulated_id</em> is set."
},
"search_url": {
"type": "string",
@@ -83,7 +48,8 @@
},
"encoding": {
"type": "string",
- "description": "Encoding of the search term."
+ "optional": true,
+ "description": "Encoding of the search term. This may only be ommitted if <em>prepopulated_id</em> is set."
},
"suggest_url": {
"type": "string",
@@ -126,6 +92,11 @@
"optional": true,
"description": "A list of URL patterns that can be used, in addition to |search_url|."
},
+ "prepopulated_id": {
+ "type": "integer",
+ "optional": true,
+ "description": "An ID of the built-in search engine in Chrome."
+ },
"is_default": {
"type": "boolean",
"description": "Specifies if the search provider should be default."
@@ -133,7 +104,7 @@
}
},
"startup_pages": {
- "description": "A new startup page to be added to the list.",
+ "description": "An array of length one containing a URL to be used as the startup page.",
"optional": true,
"type": "array",
"items": {"type": "string"}
@@ -141,65 +112,88 @@
}
},
{
- "id": "SocketHostPatterns",
- "description": "<p>A single string or a list of strings representing host:port patterns.</p>",
- "choices": [
- { "type": "string" },
- { "type": "array", "items": { "type": "string" } }
- ]
- },
- {
- "id": "sockets",
+ "id": "ChromeUIOverrides",
"type": "object",
- "description": "The <code>sockets</code> manifest property declares which sockets operations an app can issue.",
+ "description": "Chrome user interface features which can be overriden by an extension.",
"properties": {
- "udp": {
- "description": "The <code>udp</code> manifest property declares which sockets.udp operations an app can issue.",
- "optional": true,
+ "bookmarks_ui": {
"type": "object",
+ "description": "Settings to permit bookmarks user interface customization by extensions.",
+ "optional": true,
"properties": {
- "bind": {
- "description": "<p>The host:port pattern for <code>bind</code> operations.</p>",
- "optional": true,
- "$ref": "SocketHostPatterns"
+ "remove_button": {
+ "type": "boolean",
+ "description": "If <code>true</code>, the built-in bookmark button will be removed from the user interface.",
+ "optional": true
},
- "send": {
- "description": "<p>The host:port pattern for <code>send</code> operations.</p>",
- "optional": true,
- "$ref": "SocketHostPatterns"
+ "remove_bookmark_shortcut": {
+ "type": "boolean",
+ "description": "If <code>true</code>, the built-in \"Bookmark this page...\" shortcut key is removed and the extension is permitted to override the shortcut by binding it in the commands section of the manifest.",
+ "optional": true
},
- "multicastMembership": {
- "description": "<p>The host:port pattern for <code>joinGroup</code> operations.</p>",
- "optional": true,
- "$ref": "SocketHostPatterns"
+ "remove_bookmark_open_pages_shortcut": {
+ "type": "boolean",
+ "nodoc": true,
+ "description": "[Private] If <code>true</code>, the built-in \"Bookmark open pages...\" shortcut key and corresponding menu item is removed.",
+ "optional": true
}
}
- },
- "tcp": {
- "description": "The <code>tcp</code> manifest property declares which sockets.tcp operations an app can issue.",
+ }
+ }
+ },
+ {
+ "id": "bluetooth",
+ "type": "object",
+ "description": "The <code>bluetooth</code> manifest property give permission to an app to use the $(ref:bluetooth) API. A list of UUIDs can be optionally specified to enable communication with devices.",
+ "properties": {
+ "uuids": {
+ "description": "The <code>uuids</code> manifest property declares the list of protocols, profiles and services that an app can communicate using.",
"optional": true,
- "type": "object",
- "properties": {
- "connect": {
- "description": "<p>The host:port pattern for <code>connect</code> operations.</p>",
- "optional": true,
- "$ref": "SocketHostPatterns"
- }
+ "type": "array",
+ "items": {
+ "description": "<p>The list specified as UUID strings.</p>",
+ "type": "string"
}
},
- "tcpServer": {
- "description": "The <code>tcpServer</code> manifest property declares which sockets.tcpServer operations an app can issue.",
- "optional": true,
- "type": "object",
+ "socket": {
+ "type": "boolean",
+ "description": "If <code>true</code>, gives permission to an app to use the $(ref:bluetoothSocket) API",
+ "optional": true
+ },
+ "low_energy": {
+ "type": "boolean",
+ "description": "If <code>true</code>, gives permission to an app to use the $(ref:bluetoothLowEnergy) API",
+ "optional": true
+ }
+ }
+ },
+ {
+ "id": "automation",
+ "description": "This API provides programmatic access to the user interface elements of Chrome. This includes everything in the web view, and optionally Chrome's full user interface.",
+ "choices": [
+ { "type": "boolean",
+ "description": "If true, enables non-interactive access to the automation tree only for the sites for which the extension has a <a href='https://developer.chrome.com/extensions/declare_permissions#host-permissions'>host permission</a> or <a href='https://developer.chrome.com/extensions/declare_permissions#activeTab'>activeTab permission</a>)." },
+ { "type": "object",
"properties": {
- "listen": {
- "description": "<p>The host:port pattern for <code>listen</code> operations.</p>",
+ "desktop": {
+ "description": "Whether to request permission to the whole ChromeOS desktop. If granted, this gives the extension access to every aspect of the desktop, and every site and app. If this permission is requested, all other permissions are implicitly included and do not need to be requested separately.",
"optional": true,
- "$ref": "SocketHostPatterns"
+ "type": "boolean"
+ },
+ "matches": {
+ "description": "A list of URL patterns for which this extension may request an automation tree. If not specified, automation permission will be granted for the sites for which the extension has a <a href='https://developer.chrome.com/extensions/declare_permissions#host-permissions'>host permission</a> or <a href='https://developer.chrome.com/extensions/declare_permissions#activeTab'>activeTab permission</a>).",
+ "optional": true,
+ "type": "array",
+ "items": { "type": "string" }
+ },
+ "interact": {
+ "description": "Whether the extension is allowed interactive access (true) or read-only access (false; default) to the automation tree.",
+ "optional": true,
+ "type": "boolean"
}
}
}
- }
+ ]
}
]
}
diff --git a/chromium/chrome/common/extensions/api/metrics_private.json b/chromium/chrome/common/extensions/api/metrics_private.json
index 06e52740a5b..0778440b325 100644
--- a/chromium/chrome/common/extensions/api/metrics_private.json
+++ b/chromium/chrome/common/extensions/api/metrics_private.json
@@ -33,7 +33,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{ "name": "is_enabled", "type": "boolean" }
]
@@ -49,7 +49,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{ "name": "group", "type": "string" }
]
@@ -65,10 +65,11 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{
"name": "params",
+ "optional": true,
"type": "object",
"additionalProperties": { "type": "string" }
}
@@ -148,6 +149,15 @@
]
},
{
+ "name": "recordSparseValue",
+ "type": "function",
+ "description": "Increments the count associated with |value| in the sparse histogram defined by the |metricName|.",
+ "parameters": [
+ {"name": "metricName", "type": "string"},
+ {"name": "value", "type": "integer"}
+ ]
+ },
+ {
"name": "recordValue",
"type": "function",
"description": "Adds a value to the given metric.",
diff --git a/chromium/chrome/common/extensions/api/networking_private.json b/chromium/chrome/common/extensions/api/networking_private.json
index 1cdf358d7c4..7bad1a27458 100644
--- a/chromium/chrome/common/extensions/api/networking_private.json
+++ b/chromium/chrome/common/extensions/api/networking_private.json
@@ -9,7 +9,7 @@
"compiler_options": {
"implemented_in": "chrome/browser/extensions/api/networking_private/networking_private_api.h"
},
- "platforms": ["chromeos", "win"],
+ "platforms": ["chromeos", "win", "mac"],
"types" : [
{
"id": "NetworkProperties",
@@ -58,7 +58,12 @@
{
"id": "NetworkType",
"type": "string",
- "enum": ["Ethernet", "WiFi", "Cellular"]
+ "enum": ["All", "Bluetooth", "Cellular", "Ethernet", "VPN", "Wireless", "WiFi", "Wimax"]
+ },
+ {
+ "id": "CaptivePortalStatus",
+ "type": "string",
+ "enum": ["Unknown", "Offline", "Online", "Portal", "ProxyAuthRequired"]
}
],
"functions": [
@@ -108,7 +113,7 @@
},
{
"name": "getState",
- "description": "Gets the cached read-only properties of the network with id networkGuid. This is meant to be a higher performance function than getProperties, which requires a round trip to query the networking subsystem. It only returns a subset of the properties returned by getProperties.",
+ "description": "Gets the cached read-only properties of the network with id networkGuid. This is meant to be a higher performance function than getProperties, which requires a round trip to query the networking subsystem. The following properties are returned for all networks: GUID, Type, Name, WiFi.Security. Additional properties are provided for visible networks: ConnectionState, ErrorState, WiFi.SignalStrength, Cellular.NetworkTechnology, Cellular.ActivationState, Cellular.RoamingState, Cellular.OutOfCredits.",
"parameters": [
{
"name": "networkGuid",
@@ -122,7 +127,7 @@
{
"name": "properties",
"$ref": "NetworkProperties",
- "description": "Results of the query for network properties."
+ "description": "Results of the query for network state properties."
}
]
}
@@ -151,7 +156,7 @@
},
{
"name": "createNetwork",
- "description": "Creates a new network configuration from propeties. If a matching configured network already exists, this will fail. Otherwise returns the guid of the new network.",
+ "description": "Creates a new network configuration from properties. If a matching configured network already exists, this will fail. Otherwise returns the guid of the new network.",
"parameters": [
{
"name": "shared",
@@ -168,7 +173,7 @@
"type": "function",
"parameters": [
{
- "name": "guid",
+ "name": "networkGuid",
"type": "string"
}
]
@@ -176,13 +181,56 @@
]
},
{
+ "name": "getNetworks",
+ "description": "Returns a list of network objects with the same properties provided by getState. A filter is provided to specify the type of networks returned and to limit the number of networks. Networks are ordered by the system based on their priority, with connected or connecting networks listed first.",
+ "parameters": [
+ {
+ "name": "filter",
+ "type": "object",
+ "properties": {
+ "networkType": {
+ "$ref": "NetworkType",
+ "description": "The type of networks to return."
+ },
+ "visible": {
+ "type": "boolean",
+ "optional": true,
+ "description": "If true, only include visible (physically connected or in-range) networks. Defaults to 'false'."
+ },
+ "configured": {
+ "type": "boolean",
+ "optional": true,
+ "description": "If true, only include configured (saved) networks. Defaults to 'false'."
+ },
+ "limit": {
+ "type": "integer",
+ "optional": true,
+ "description": "Maximum number of networks to return. Defaults to 1000. Use 0 for no limit."
+ }
+ }
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "optional": true,
+ "parameters": [
+ {
+ "name": "networkList",
+ "type": "array",
+ "items": { "$ref": "NetworkProperties" }
+ }
+ ]
+ }
+ ]
+ },
+ {
"name": "getVisibleNetworks",
- "description": "Gets the list of visible networks, and returns a list of cached, read-only network properties for each.",
+ "deprecated": "Please use $(ref:networkingPrivate.getNetworks) with filter.visble = true.",
+ "description": "Returns a list of visible network objects with the same properties provided by getState.",
"parameters": [
{
- "name": "type",
- "type": "string",
- "enum": ["Ethernet", "WiFi", "Bluetooth", "Cellular", "VPN", "All"],
+ "name": "networkType",
+ "$ref": "NetworkType",
"description": "The type of networks to return."
},
{
@@ -201,7 +249,7 @@
},
{
"name": "getEnabledNetworkTypes",
- "description": "Returns a list of the enabled network type.",
+ "description": "Returns a list of the enabled network types. Note: this only returns discrete types that can be enabled or disabled: Cellular, Ethernet, WiFi, Wimax.",
"parameters": [
{
"name": "callback",
@@ -209,7 +257,7 @@
"optional": true,
"parameters": [
{
- "name": "networkList",
+ "name": "enabledTypes",
"type": "array",
"items": { "$ref": "NetworkType" }
}
@@ -219,7 +267,7 @@
},
{
"name": "enableNetworkType",
- "description": "Enable the specified network type.",
+ "description": "Enable the specified network type. Note, the type might represent multiple network types (e.g. 'Wireless').",
"parameters": [
{
"name": "networkType",
@@ -229,7 +277,7 @@
},
{
"name": "disableNetworkType",
- "description": "Disable the specified network type.",
+ "description": "Disable the specified network type. See note for $(ref:networkingPrivate.enableNetworkType).",
"parameters": [
{
"name": "networkType",
@@ -310,7 +358,7 @@
"description": "Properties of the destination to use in verifying that it is a trusted device."
},
{
- "name": "guid",
+ "name": "networkGuid",
"type": "string",
"description": "A string containing the unique identifier of the network to get credentials for."
},
@@ -353,6 +401,77 @@
"description": "A callback function that receives base64-encoded encrypted data to send to a trusted device."
}
]
+ },
+ {
+ "name": "setWifiTDLSEnabledState",
+ "description": "Enables TDLS for wifi traffic with a specified peer if available.",
+ "parameters": [
+ {
+ "name": "ip_or_mac_address",
+ "type": "string",
+ "description": "The IP or MAC address of the peer with which to enable a TDLS connection."
+ },
+ {
+ "name": "enabled",
+ "type": "boolean",
+ "description": "If true, enable TDLS, otherwise disable TDLS."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "status",
+ "type": "string"
+ }
+ ],
+ "description": "A callback function that receives a string with an error or the current TDLS status. 'Failed' indicates that the request failed (e.g. MAC address lookup failed). 'Timeout' indicates that the lookup timed out. Otherwise a valid status is returned (see getWifiTDLSStatus)."
+ }
+ ]
+ },
+ {
+ "name": "getWifiTDLSStatus",
+ "description": "Returns the current TDLS status for the specified peer.",
+ "parameters": [
+ {
+ "name": "ip_or_mac_address",
+ "type": "string",
+ "description": "The IP or MAC address of the peer."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "status",
+ "type": "string"
+ }
+ ],
+ "description": "A callback function that receives a string with the current TDLS status which can be 'Connected', 'Disabled', 'Disconnected', 'Nonexistent', or 'Unknown'"
+ }
+ ]
+ },
+ {
+ "name": "getCaptivePortalStatus",
+ "description": "Returns captive portal status for the network matching 'guid'.",
+ "parameters": [
+ {
+ "name": "networkGuid",
+ "type": "string",
+ "description": "The guid of the network to get captive portal status."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "status",
+ "$ref": "CaptivePortalStatus",
+ "description": "Results of the query for network captive portal status."
+ }
+ ]
+ }
+ ]
}
],
"events": [
@@ -379,6 +498,21 @@
"items": { "type": "string" }
}
]
+ },
+ {
+ "name": "onPortalDetectionCompleted",
+ "type": "function",
+ "description": "Fired when a portal detection for a network completes. Sends the guid of the network and the corresponding captive portal status.",
+ "parameters": [
+ {
+ "name": "networkGuid",
+ "type": "string"
+ },
+ {
+ "name": "status",
+ "$ref": "CaptivePortalStatus"
+ }
+ ]
}
]
}
diff --git a/chromium/chrome/common/extensions/api/page_capture.json b/chromium/chrome/common/extensions/api/page_capture.json
index f796d693d41..e0fd86b7739 100644
--- a/chromium/chrome/common/extensions/api/page_capture.json
+++ b/chromium/chrome/common/extensions/api/page_capture.json
@@ -31,7 +31,7 @@
{
"name": "mhtmlData",
"type": "binary",
- "optional": "true",
+ "optional": true,
"description": "The MHTML data as a Blob."
}
]
diff --git a/chromium/chrome/common/extensions/api/permissions.json b/chromium/chrome/common/extensions/api/permissions.json
index 3ce74b43352..a504746024e 100644
--- a/chromium/chrome/common/extensions/api/permissions.json
+++ b/chromium/chrome/common/extensions/api/permissions.json
@@ -5,7 +5,7 @@
[
{
"namespace": "permissions",
- "description": "Use the <code>chrome.permissions</code> API to request <a href=\"#manifest\">declared optional permissions</a> at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary.",
+ "description": "Use the <code>chrome.permissions</code> API to request <a href='permissions#manifest'>declared optional permissions</a> at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary.",
"types": [
{
"id": "Permissions",
@@ -15,13 +15,13 @@
"type": "array",
"items": {"type": "string"},
"optional": true,
- "description": "List of named permissions (does not include hosts or origins)."
+ "description": "List of named permissions (does not include hosts or origins). Anything listed here must appear in the <code>optional_permissions</code> list in the manifest."
},
"origins": {
"type": "array",
"items": {"type": "string"},
"optional": true,
- "description": "List of origin permissions."
+ "description": "List of origin permissions. Anything listed here must be a subset of a host that appears in the <code>optional_permissions</code> list in the manifest. For example, if <code>http://*.example.com/</code> or <code>http://*/</code> appears in <code>optional_permissions</code>, you can request an origin of <code>http://help.example.com/</code>. Any path is ignored."
}
}
}
@@ -96,7 +96,7 @@
{
"name": "request",
"type": "function",
- "description": "Requests access to the specified permissions. These permissions must be defined in the optional_permissions field of the manifest. If there are any problems requesting the permissions, $ref:runtime.lastError will be set.",
+ "description": "Requests access to the specified permissions. These permissions must be defined in the optional_permissions field of the manifest. If there are any problems requesting the permissions, $(ref:runtime.lastError) will be set.",
"parameters": [
{
"name": "permissions",
@@ -119,7 +119,7 @@
{
"name": "remove",
"type": "function",
- "description": "Removes access to the specified permissions. If there are any problems removing the permissions, $ref:runtime.lastError will be set.",
+ "description": "Removes access to the specified permissions. If there are any problems removing the permissions, $(ref:runtime.lastError) will be set.",
"parameters": [
{
"name": "permissions",
diff --git a/chromium/chrome/common/extensions/api/preferences_private.json b/chromium/chrome/common/extensions/api/preferences_private.json
index 4ceeb5fafe3..3660bee6bf8 100644
--- a/chromium/chrome/common/extensions/api/preferences_private.json
+++ b/chromium/chrome/common/extensions/api/preferences_private.json
@@ -8,10 +8,31 @@
"description": "none",
"properties": {
"googleGeolocationAccessEnabled": {
+ "nocompile": true,
"$ref": "types.private.ChromeDirectSetting",
"value": ["googlegeolocationaccess.enabled", {"type":"boolean"}],
"description": "If enabled, Google services can access the user's location. This preference's value is a boolean, defaulting to <code>false</code>."
}
- }
+ },
+ "functions": [
+ {
+ "name": "getSyncCategoriesWithoutPassphrase",
+ "description": "Returns a list of sync categories the user has enabled without using a custom passphrase for encryption. The possible values are those that can be returned from syncer::ModelTypeToString in sync/syncable/model_type.cc.",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "callback",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "categories",
+ "type": "array",
+ "items": {"type": "string"}
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
]
diff --git a/chromium/chrome/common/extensions/api/privacy.json b/chromium/chrome/common/extensions/api/privacy.json
index 03845c9424a..f14a5f745da 100644
--- a/chromium/chrome/common/extensions/api/privacy.json
+++ b/chromium/chrome/common/extensions/api/privacy.json
@@ -5,7 +5,7 @@
[
{
"namespace": "privacy",
- "description": "Use the <code>chrome.privacy</code> API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting Chrome's configuration.",
+ "description": "Use the <code>chrome.privacy</code> API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting Chrome's configuration.",
"properties": {
"network": {
"type": "object",
diff --git a/chromium/chrome/common/extensions/api/processes.json b/chromium/chrome/common/extensions/api/processes.json
index 77b1ad77fb6..ea875b758ae 100644
--- a/chromium/chrome/common/extensions/api/processes.json
+++ b/chromium/chrome/common/extensions/api/processes.json
@@ -20,6 +20,10 @@
"type": "integer",
"description": "The ID of the process, as provided by the OS."
},
+ "title": {
+ "type": "string",
+ "description": "The title of the process as seen in the task manager."
+ },
"type": {
"type": "string",
"enum": ["browser", "renderer", "extension", "notification", "plugin", "worker", "nacl", "utility", "gpu", "other"],
@@ -29,6 +33,10 @@
"type": "string",
"description": "The profile which the process is associated with."
},
+ "naclDebugPort": {
+ "type": "integer",
+ "description": "The debugging port for Native Client processes. Zero for other process types and for NaCl processes that do not have debugging enabled."
+ },
"tabs": {
"type": "array", "items": {"type": "integer", "minimum": 0},
"description": "Array of Tab IDs that have a page rendered by this process. The list will be non-empty for renderer processes only."
@@ -63,11 +71,6 @@
"optional": true,
"description": "The most recent measurement of the process’s SQLite memory usage, in bytes. Only available when receiving the object as part of a callback from onUpdated or onUpdatedWithMemory."
},
- "fps": {
- "type": "number",
- "optional": true,
- "description": "The most recent measurement of the process frames per second. Only available when receiving the object as part of a callback from onUpdated or onUpdatedWithMemory."
- },
"imageCache": {
"$ref": "Cache",
"optional": true,
diff --git a/chromium/chrome/common/extensions/api/proxy.json b/chromium/chrome/common/extensions/api/proxy.json
index 2d28bb631b1..4604dc2e5a4 100644
--- a/chromium/chrome/common/extensions/api/proxy.json
+++ b/chromium/chrome/common/extensions/api/proxy.json
@@ -5,14 +5,14 @@
[
{
"namespace": "proxy",
- "description": "Use the <code>chrome.proxy</code> API to manage Chrome's proxy settings. This API relies on the <a href='types.html#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting the proxy configuration.",
+ "description": "Use the <code>chrome.proxy</code> API to manage Chrome's proxy settings. This API relies on the <a href='types#ChromeSetting'>ChromeSetting prototype of the type API</a> for getting and setting the proxy configuration.",
"types": [
{
"id": "ProxyServer",
"type": "object",
"description": "An object encapsulating a single proxy server's specification.",
"properties": {
- "scheme": {"type": "string", "optional": true, "enum": ["http", "https", "socks4", "socks5"], "description": "The scheme (protocol) of the proxy server itself. Defaults to 'http'."},
+ "scheme": {"type": "string", "optional": true, "enum": ["http", "https", "quic", "socks4", "socks5"], "description": "The scheme (protocol) of the proxy server itself. Defaults to 'http'."},
"host": {"type": "string", "description": "The URI of the proxy server. This must be an ASCII hostname (in Punycode format). IDNA is not supported, yet."},
"port": {"type": "integer", "optional": true, "description": "The port of the proxy server. Defaults to a port that depends on the scheme."}
}
diff --git a/chromium/chrome/common/extensions/api/reading_list_private.json b/chromium/chrome/common/extensions/api/reading_list_private.json
new file mode 100644
index 00000000000..7e1979d0981
--- /dev/null
+++ b/chromium/chrome/common/extensions/api/reading_list_private.json
@@ -0,0 +1,96 @@
+// Copyright 2014 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.
+
+[
+ {
+ "namespace": "readingListPrivate",
+ "description": "none",
+ "types": [
+ {
+ "id": "Entry",
+ "type": "object",
+ "description": "An article entry from the reading list. May contain one or more pages.",
+ "properties": {
+ "id": {
+ "description": "A unique id for referring to the entry.",
+ "type": "string"
+ }
+ }
+ }
+ ],
+ "functions": [
+ {
+ "name": "addEntry",
+ "type": "function",
+ "description": "Adds an entry to the reading list. The callback is invoked only once article distillation is complete.",
+ "parameters": [
+ {
+ "type": "object",
+ "name": "entry",
+ "properties": {
+ "url": {
+ "description": "The url of the entry.",
+ "type": "string"
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [
+ {
+ "name": "result",
+ "$ref": "Entry",
+ "description": "The entry that was added."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "removeEntry",
+ "type": "function",
+ "description": "Removes an entry with the given entry id.",
+ "parameters": [
+ {
+ "name": "id",
+ "type": "string",
+ "description": "A string containing an entry id."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "result",
+ "$ref": "Entry",
+ "optional": true,
+ "description": "The entry that was removed or null if removal failed."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getEntries",
+ "type": "function",
+ "description": "Gets all the entries currently stored in the reading list.",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "parameters": [
+ {
+ "name": "result",
+ "type": "array",
+ "items": {"$ref": "Entry"}
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/chromium/chrome/common/extensions/api/runtime.json b/chromium/chrome/common/extensions/api/runtime.json
deleted file mode 100644
index e67323afc93..00000000000
--- a/chromium/chrome/common/extensions/api/runtime.json
+++ /dev/null
@@ -1,474 +0,0 @@
-// Copyright (c) 2012 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.
-
-[
- {
- "namespace": "runtime",
- "description": "Use the <code>chrome.runtime</code> API to retrieve the background page, return details about the manifest, and listen for and respond to events in the app or extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs.",
- "types": [
- {
- "id": "Port",
- "type": "object",
- "nocompile": true,
- "description": "An object which allows two way communication with other pages.",
- "properties": {
- "name": {"type": "string"},
- "disconnect": { "type": "function" },
- "onDisconnect": { "$ref": "events.Event" },
- "onMessage": { "$ref": "events.Event" },
- "postMessage": {"type": "function"},
- "sender": {
- "$ref": "MessageSender",
- "optional": true,
- "description": "This property will <b>only</b> be present on ports passed to onConnect/onConnectExternal listeners."
- }
- },
- "additionalProperties": { "type": "any"}
- },
- {
- "id": "MessageSender",
- "type": "object",
- "description": "An object containing information about the script context that sent a message or request.",
- "properties": {
- "tab": {"$ref": "tabs.Tab", "optional": true, "description": "The $ref:tabs.Tab which opened the connection, if any. This property will <strong>only</strong> be present when the connection was opened from a tab (including content scripts), and <strong>only</strong> if the receiver is an extension, not an app."},
- "id": {"type": "string", "optional": true, "description": "The ID of the extension or app that opened the connection, if any."},
- "url": {"type": "string", "optional": true, "description": "The URL of the page or frame that opened the connection, if any. This property will <strong>only</strong> be present when the connection was opened from a tab or content script."},
- "tlsChannelId": {"type": "string", "optional": true, "description": "The TLS channel ID of the web page that opened the connection, if requested by the extension or app, and if available."}
- }
- }
- ],
- "properties": {
- "lastError": {
- "type": "object",
- "optional": true,
- "description": "This will be defined during an API method callback if there was an error",
- "properties": {
- "message": {
- "optional": true,
- "type": "string",
- "description": "Details about the error which occurred."
- }
- }
- },
- "id": {
- "type": "string",
- "description": "The ID of the extension/app."
- }
- },
- "functions": [
- {
- "name": "getBackgroundPage",
- "type": "function",
- "description": "Retrieves the JavaScript 'window' object for the background page running inside the current extension/app. If the background page is an event page, the system will ensure it is loaded before calling the callback. If there is no background page, an error is set.",
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "parameters": [
- {
- "name": "backgroundPage",
- // Note: Only optional because we don't support validation
- // for custom callbacks.
- "optional": true,
- "type": "object",
- "isInstanceOf": "Window",
- "additionalProperties": { "type": "any" },
- "description": "The JavaScript 'window' object for the background page."
- }
- ]
- }
- ]
- },
- {
- "name": "getManifest",
- "description": "Returns details about the app or extension from the manifest. The object returned is a serialization of the full <a href=\"manifest.html\">manifest file</a>.",
- "type": "function",
- "nocompile": true,
- "parameters": [],
- "returns": {
- "type": "object",
- "properties": {},
- "additionalProperties": { "type": "any" },
- "description": "The manifest details."
- }
- },
- {
- "name": "getURL",
- "type": "function",
- "nocompile": true,
- "description": "Converts a relative path within an app/extension install directory to a fully-qualified URL.",
- "parameters": [
- {
- "type": "string",
- "name": "path",
- "description": "A path to a resource within an app/extension expressed relative to its install directory."
- }
- ],
- "returns": {
- "type": "string",
- "description": "The fully-qualified URL to the resource."
- }
- },
- {
- "name": "setUninstallUrl",
- "type": "function",
- "unpriviledged": true,
- "description": "Sets the URL to be visited upon uninstallation. This may be used to clean up server-side data, do analytics, and implement surveys. Maximum 255 characters.",
- "parameters": [
- {
- "type": "string",
- "name": "url",
- "maxLength": 255
- }
- ]
- },
- {
- "name": "reload",
- "description": "Reloads the app or extension.",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "requestUpdateCheck",
- "type": "function",
- "description": "Requests an update check for this app/extension.",
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "parameters": [
- {
- "name": "status",
- "type": "string",
- "enum": ["throttled", "no_update", "update_available"],
- "description": "Result of the update check."
- },
- {
- "name": "details",
- "type": "object",
- "optional": true,
- "properties": {
- "version": {
- "type": "string",
- "description": "The version of the available update."
- }
- },
- "description": "If an update is available, this contains more information about the available update."
- }
- ]
- }
- ]
- },
- {
- "name": "restart",
- "description": "Restart the ChromeOS device when the app runs in kiosk mode. Otherwise, it's no-op.",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "connect",
- "type": "function",
- "nocompile": true,
- "description": "Attempts to connect to other listeners within the extension/app (such as the background page), or other extensions/apps. This is useful for content scripts connecting to their extension processes. Note that this does not connect to any listeners in a content script. Extensions may connect to content scripts embedded in tabs via $ref:tabs.connect.",
- "parameters": [
- {"type": "string", "name": "extensionId", "optional": true, "description": "The ID of the extension/app you want to connect to. If omitted, default is your own extension."},
- {
- "type": "object",
- "name": "connectInfo",
- "properties": {
- "name": { "type": "string", "optional": true, "description": "Will be passed into onConnect for processes that are listening for the connection event." },
- "includeTlsChannelId": { "type": "boolean", "optional": true, "description": "Whether the TLS channel ID will be passed into onConnectExternal for processes that are listening for the connection event." }
- },
- "optional": true
- }
- ],
- "returns": {
- "$ref": "Port",
- "description": "Port through which messages can be sent and received. The port's $ref:[runtime.Port onDisconnect] event is fired if the extension/app does not exist. "
- }
- },
- {
- "name": "connectNative",
- "type": "function",
- "nocompile": true,
- "description": "Connects to a native application in the host machine.",
- "parameters": [
- {
- "type": "string",
- "name": "application",
- "description": "The name of the registered application to connect to."
- }
- ],
- "returns": {
- "$ref": "Port",
- "description": "Port through which messages can be sent and received with the application"
- }
- },
- {
- "name": "sendMessage",
- "type": "function",
- "nocompile": true,
- "allowAmbiguousOptionalArguments": true,
- "description": "Sends a single message to onMessage event listeners within the extension (or another extension/app). Similar to chrome.runtime.connect, but only sends a single message with an optional response. The $ref:runtime.onMessage event is fired in each extension page of the extension. Note that extensions cannot send messages to content scripts using this method. To send messages to content scripts, use $ref:tabs.sendMessage.",
- "parameters": [
- {"type": "string", "name": "extensionId", "optional": true, "description": "The extension ID of the extension you want to connect to. If omitted, default is your own extension."},
- { "type": "any", "name": "message" },
- {
- "type": "object",
- "name": "options",
- "properties": {
- "includeTlsChannelId": { "type": "boolean", "optional": true, "description": "Whether the TLS channel ID will be passed into onMessageExternal for processes that are listening for the connection event." }
- },
- "optional": true
- },
- {
- "type": "function",
- "name": "responseCallback",
- "optional": true,
- "parameters": [
- {
- "name": "response",
- "type": "any",
- "description": "The JSON response object sent by the handler of the message. If an error occurs while connecting to the extension, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message."
- }
- ]
- }
- ]
- },
- {
- "name": "sendNativeMessage",
- "type": "function",
- "nocompile": true,
- "description": "Send a single message to a native application.",
- "parameters": [
- {
- "name": "application",
- "description": "The name of the native messaging host.",
- "type": "string"
- },
- {
- "name": "message",
- "description": "The message that will be passed to the native messaging host.",
- "type": "object",
- "additionalProperties": {
- "type": "any"
- }
- },
- {
- "type": "function",
- "name": "responseCallback",
- "optional": true,
- "parameters": [
- {
- "name": "response",
- "type": "any",
- "description": "The response message send by the native messaging host. If an error occurs while connecting to the native messaging host, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message.",
- "additionalProperties": {
- "type": "any"
- }
- }
- ]
- }
- ]
- },
- {
- "name": "getPlatformInfo",
- "type": "function",
- "description": "Returns information about the current platform.",
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "description": "Called with results",
- "parameters": [
- {
- "name": "platformInfo",
- "type": "object",
- "properties": {
- "os": {
- "type": "string",
- "description": "The operating system chrome is running on.",
- "enum": ["mac", "win", "android", "cros", "linux", "openbsd"]
- },
- "arch": {
- "type": "string",
- "enum": ["arm", "x86-32", "x86-64"],
- "description": "The machine's processor architecture."
- },
- "nacl_arch" : {
- "description": "The native client architecture. This may be different from arch on some platforms.",
- "type": "string",
- "enum": ["arm", "x86-32", "x86-64"]
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name": "getPackageDirectoryEntry",
- "type": "function",
- "description": "Returns a DirectoryEntry for the package directory.",
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "parameters": [
- {
- "name": "directoryEntry",
- "type": "object",
- "additionalProperties": { "type": "any" },
- "isInstanceOf": "DirectoryEntry"
- }
- ]
- }
- ]
- }
- ],
- "events": [
- {
- "name": "onStartup",
- "type": "function",
- "description": "Fired when a profile that has this extension installed first starts up. This event is not fired when an incognito profile is started, even if this extension is operating in 'split' incognito mode."
- },
- {
- "name": "onInstalled",
- "type": "function",
- "description": "Fired when the extension is first installed, when the extension is updated to a new version, and when Chrome is updated to a new version.",
- "parameters": [
- {
- "type": "object",
- "name": "details",
- "properties": {
- "reason": {
- "type": "string",
- "enum": ["install", "update", "chrome_update"],
- "description": "The reason that this event is being dispatched."
- },
- "previousVersion": {
- "type": "string",
- "optional": true,
- "description": "Indicates the previous version of the extension, which has just been updated. This is present only if 'reason' is 'update'."
- }
- }
- }
- ]
- },
- {
- "name": "onSuspend",
- "type": "function",
- "description": "Sent to the event page just before it is unloaded. This gives the extension opportunity to do some clean up. Note that since the page is unloading, any asynchronous operations started while handling this event are not guaranteed to complete. If more activity for the event page occurs before it gets unloaded the onSuspendCanceled event will be sent and the page won't be unloaded. "
- },
- {
- "name": "onSuspendCanceled",
- "type": "function",
- "description": "Sent after onSuspend to indicate that the app won't be unloaded after all."
- },
- {
- "name": "onUpdateAvailable",
- "type": "function",
- "description": "Fired when an update is available, but isn't installed immediately because the app is currently running. If you do nothing, the update will be installed the next time the background page gets unloaded, if you want it to be installed sooner you can explicitly call chrome.runtime.reload().",
- "parameters": [
- {
- "type": "object",
- "name": "details",
- "properties": {
- "version": {
- "type": "string",
- "description": "The version number of the available update."
- }
- },
- "additionalProperties": { "type": "any" },
- "description": "The manifest details of the available update."
- }
- ]
- },
- {
- // TODO(xiyuan): onBrowserUpdateAvailable is deprecated in favor of
- // onRestartRequired. We should remove it when we are sure it is unused.
- "name": "onBrowserUpdateAvailable",
- "type": "function",
- "description": "Fired when a Chrome update is available, but isn't installed immediately because a browser restart is required.",
- "deprecated": "Please use $ref:onRestartRequired.",
- "parameters": []
- },
- {
- "name": "onConnect",
- "type": "function",
- "nocompile": true,
- "options": {
- "unmanaged": true
- },
- "description": "Fired when a connection is made from either an extension process or a content script.",
- "parameters": [
- {"$ref": "Port", "name": "port"}
- ]
- },
- {
- "name": "onConnectExternal",
- "type": "function",
- "nocompile": true,
- "options": {
- "unmanaged": true
- },
- "description": "Fired when a connection is made from another extension.",
- "parameters": [
- {"$ref": "Port", "name": "port"}
- ]
- },
- {
- "name": "onMessage",
- "type": "function",
- "options": {
- "unmanaged": true
- },
- "description": "Fired when a message is sent from either an extension process or a content script.",
- "parameters": [
- {"name": "message", "type": "any", "optional": true, "description": "The message sent by the calling script."},
- {"name": "sender", "$ref": "MessageSender" },
- {"name": "sendResponse", "type": "function", "description": "Function to call (at most once) when you have a response. The argument should be any JSON-ifiable object. If you have more than one <code>onMessage</code> listener in the same document, then only one may send a response. This function becomes invalid when the event listener returns, unless you return true from the event listener to indicate you wish to send a response asynchronously (this will keep the message channel open to the other end until <code>sendResponse</code> is called)." }
- ],
- "returns": {
- "type": "boolean",
- "optional": "true",
- "description": "Return true from the event listener if you wish to call <code>sendResponse</code> after the event listener returns."
- }
- },
- {
- "name": "onMessageExternal",
- "type": "function",
- "options": {
- "unmanaged": true
- },
- "description": "Fired when a message is sent from another extension/app. Cannot be used in a content script.",
- "parameters": [
- {"name": "message", "type": "any", "optional": true, "description": "The message sent by the calling script."},
- {"name": "sender", "$ref": "MessageSender" },
- {"name": "sendResponse", "type": "function", "description": "Function to call (at most once) when you have a response. The argument should be any JSON-ifiable object. If you have more than one <code>onMessage</code> listener in the same document, then only one may send a response. This function becomes invalid when the event listener returns, unless you return true from the event listener to indicate you wish to send a response asynchronously (this will keep the message channel open to the other end until <code>sendResponse</code> is called)." }
- ],
- "returns": {
- "type": "boolean",
- "optional": "true",
- "description": "Return true from the event listener if you wish to call <code>sendResponse</code> after the event listener returns."
- }
- },
- {
- "name": "onRestartRequired",
- "type": "function",
- "description": "Fired when an app or the device that it runs on needs to be restarted. The app should close all its windows at its earliest convenient time to let the restart to happen. If the app does nothing, a restart will be enforced after a 24-hour grace period has passed. Currently, this event is only fired for Chrome OS kiosk apps.",
- "parameters": [
- {
- "type": "string",
- "name": "reason",
- "description": "The reason that the event is being dispatched. 'app_update' is used when the restart is needed because the application is updated to a newer version. 'os_update' is used when the restart is needed because the browser/OS is updated to a newer version. 'periodic' is used when the system runs for more than the permitted uptime set in the enterprise policy.",
- "enum": ["app_update", "os_update", "periodic"]
- }
- ]
- }
- ]
- }
-]
diff --git a/chromium/chrome/common/extensions/api/sessions.json b/chromium/chrome/common/extensions/api/sessions.json
index 48c09e90012..1776796893f 100644
--- a/chromium/chrome/common/extensions/api/sessions.json
+++ b/chromium/chrome/common/extensions/api/sessions.json
@@ -16,7 +16,7 @@
"minimum": 0,
"maximum": 25,
"optional": true,
- "description": "The maximum number of entries to be fetched in the requested list. Omit this parameter to fetch the maximum number of entries ($ref:MAX_SESSION_RESULTS)."
+ "description": "The maximum number of entries to be fetched in the requested list. Omit this parameter to fetch the maximum number of entries ($(ref:sessions.MAX_SESSION_RESULTS))."
}
}
},
@@ -25,15 +25,16 @@
"type": "object",
"properties": {
"lastModified": {"type": "integer", "description": "The time when the window or tab was closed or modified, represented in milliseconds since the epoch."},
- "tab": {"$ref": "tabs.Tab", "optional": true, "description": "The $ref:tabs.Tab, if this entry describes a tab. Either this or $ref:Session.window will be set."},
- "window": {"$ref": "windows.Window", "optional": true, "description": "The $ref:windows.Window, if this entry describes a window. Either this or $ref:Session.tab will be set."}
+ "tab": {"$ref": "tabs.Tab", "optional": true, "description": "The $(ref:tabs.Tab), if this entry describes a tab. Either this or $(ref:sessions.Session.window) will be set."},
+ "window": {"$ref": "windows.Window", "optional": true, "description": "The $(ref:windows.Window), if this entry describes a window. Either this or $(ref:sessions.Session.tab) will be set."}
}
},
{
"id": "Device",
"type": "object",
"properties": {
- "info": {"type": "string", "description": "Represents all information about a foreign device."},
+ "info": {"type": "string", "nodoc": true},
+ "deviceName": {"type": "string", "description": "The name of the foreign device."},
"sessions": {"type": "array", "items": {"$ref": "Session"}, "description": "A list of open window sessions for the foreign device, sorted from most recently to least recently modified session."}
}
}
@@ -54,7 +55,7 @@
"name": "callback",
"parameters": [
{
- "name": "sessions", "type": "array", "items": { "$ref": "Session" }, "description": "The list of closed entries in reverse order that they were closed (the most recently closed tab or window will be at index <code>0</code>).The entries may contain either tabs or windows."
+ "name": "sessions", "type": "array", "items": { "$ref": "Session" }, "description": "The list of closed entries in reverse order that they were closed (the most recently closed tab or window will be at index <code>0</code>). The entries may contain either tabs or windows."
}
]
}
@@ -75,7 +76,7 @@
"name": "callback",
"parameters": [
{
- "name": "devices", "type": "array", "items": { "$ref": "Device" }, "description": "The list of $ref:Device objects for each synced session, sorted in order from device with most recently modified session to device with least recently modified session. $ref:tabs.Tab objects are sorted by recency in the $ref:windows.Window of the $ref:Session objects."
+ "name": "devices", "type": "array", "items": { "$ref": "Device" }, "description": "The list of $(ref:sessions.Device) objects for each synced session, sorted in order from device with most recently modified session to device with least recently modified session. $(ref:tabs.Tab) objects are sorted by recency in the $(ref:windows.Window) of the $(ref:sessions.Session) objects."
}
]
}
@@ -84,13 +85,13 @@
{
"name": "restore",
"type": "function",
- "description": "Reopens a $ref:windows.Window or $ref:tabs.Tab, with an optional callback to run when the entry has been restored.",
+ "description": "Reopens a $(ref:windows.Window) or $(ref:tabs.Tab), with an optional callback to run when the entry has been restored.",
"parameters": [
{
"type": "string",
"name": "sessionId",
"optional": true,
- "description": "The $ref:windows.Window.sessionId, or $ref:tabs.Tab.sessionId to restore."
+ "description": "The $(ref:windows.Window.sessionId), or $(ref:tabs.Tab.sessionId) to restore. If this parameter is not specified, the most recently closed session is restored."
},
{
"type": "function",
@@ -100,17 +101,24 @@
{
"$ref": "Session",
"name": "restoredSession",
- "description": "A $ref:Session containing the restored $ref:windows.Window or $ref:tabs.Tab object."
+ "description": "A $(ref:sessions.Session) containing the restored $(ref:windows.Window) or $(ref:tabs.Tab) object."
}
]
}
]
}
],
+ "events": [
+ {
+ "name": "onChanged",
+ "description": "Fired when recently closed tabs and/or windows are changed. This event does not monitor synced sessions changes.",
+ "type": "function"
+ }
+ ],
"properties": {
"MAX_SESSION_RESULTS": {
"value": 25,
- "description": "The maximum number of $ref:Session that will be included in a requested list."
+ "description": "The maximum number of $(ref:sessions.Session) that will be included in a requested list."
}
}
}
diff --git a/chromium/chrome/common/extensions/api/storage.json b/chromium/chrome/common/extensions/api/storage.json
deleted file mode 100644
index 8f32f68c4e7..00000000000
--- a/chromium/chrome/common/extensions/api/storage.json
+++ /dev/null
@@ -1,219 +0,0 @@
-// Copyright (c) 2012 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.
-
-[
- {
- "namespace": "storage",
- "description": "Use the <code>chrome.storage</code> API to store, retrieve, and track changes to user data.",
- "unprivileged": true,
- "types": [
- {
- "id": "StorageChange",
- "type": "object",
- "properties": {
- "oldValue": {
- "type": "any",
- "description": "The old value of the item, if there was an old value.",
- "optional": true
- },
- "newValue": {
- "type": "any",
- "description": "The new value of the item, if there is a new value.",
- "optional": true
- }
- }
- },
- {
- "id": "StorageArea",
- "type": "object",
- "js_module": "StorageArea",
- "functions": [
- {
- "name": "get",
- "type": "function",
- "description": "Gets one or more items from storage.",
- "parameters": [
- {
- "name": "keys",
- "choices": [
- { "type": "string" },
- { "type": "array", "items": { "type": "string" } },
- {
- "type": "object",
- "description": "Storage items to return in the callback, where the values are replaced with those from storage if they exist.",
- "additionalProperties": { "type": "any" }
- }
- ],
- "description": "A single key to get, list of keys to get, or a dictionary specifying default values (see description of the object). An empty list or object will return an empty result object. Pass in <code>null</code> to get the entire contents of storage.",
- "optional": true
- },
- {
- "name": "callback",
- "type": "function",
- "description": "Callback with storage items, or on failure (in which case $ref:runtime.lastError will be set).",
- "parameters": [
- {
- "name": "items",
- "type": "object",
- "additionalProperties": { "type": "any" },
- "description": "Object with items in their key-value mappings."
- }
- ]
- }
- ]
- },
- {
- "name": "getBytesInUse",
- "type": "function",
- "description": "Gets the amount of space (in bytes) being used by one or more items.",
- "parameters": [
- {
- "name": "keys",
- "choices": [
- { "type": "string" },
- { "type": "array", "items": { "type": "string" } }
- ],
- "description": "A single key or list of keys to get the total usage for. An empty list will return 0. Pass in <code>null</code> to get the total usage of all of storage.",
- "optional": true
- },
- {
- "name": "callback",
- "type": "function",
- "description": "Callback with the amount of space being used by storage, or on failure (in which case $ref:runtime.lastError will be set).",
- "parameters": [
- {
- "name": "bytesInUse",
- "type": "integer",
- "description": "Amount of space being used in storage, in bytes."
- }
- ]
- }
- ]
- },
- {
- "name": "set",
- "type": "function",
- "description": "Sets multiple items.",
- "parameters": [
- {
- "name": "items",
- "type": "object",
- "additionalProperties": { "type": "any" },
- "description": "<p>An object which gives each key/value pair to update storage with. Any other key/value pairs in storage will not be affected.</p><p>Primitive values such as numbers will serialize as expected. Values with a <code>typeof</code> <code>\"object\"</code> and <code>\"function\"</code> will typically serialize to <code>{}</code>, with the exception of <code>Array</code> (serializes as expected), <code>Date</code>, and <code>Regex</code> (serialize using their <code>String</code> representation).</p>"
- },
- {
- "name": "callback",
- "type": "function",
- "description": "Callback on success, or on failure (in which case $ref:runtime.lastError will be set).",
- "parameters": [],
- "optional": true
- }
- ]
- },
- {
- "name": "remove",
- "type": "function",
- "description": "Removes one or more items from storage.",
- "parameters": [
- {
- "name": "keys",
- "choices": [
- {"type": "string"},
- {"type": "array", "items": {"type": "string"}}
- ],
- "description": "A single key or a list of keys for items to remove."
- },
- {
- "name": "callback",
- "type": "function",
- "description": "Callback on success, or on failure (in which case $ref:runtime.lastError will be set).",
- "parameters": [],
- "optional": true
- }
- ]
- },
- {
- "name": "clear",
- "type": "function",
- "description": "Removes all items from storage.",
- "parameters": [
- {
- "name": "callback",
- "type": "function",
- "description": "Callback on success, or on failure (in which case $ref:runtime.lastError will be set).",
- "parameters": [],
- "optional": true
- }
- ]
- }
- ]
- }
- ],
- "events": [
- {
- "name": "onChanged",
- "type": "function",
- "description": "Fired when one or more items change.",
- "parameters": [
- {
- "name": "changes",
- "type": "object",
- "additionalProperties": { "$ref": "StorageChange" },
- "description": "Object mapping each key that changed to its corresponding $ref:StorageChange for that item."
- },
- {
- "name": "areaName",
- "type": "string",
- "description": "The name of the storage area (<code>\"sync\"</code>, <code>\"local\"</code> or <code>\"managed\"</code>) the changes are for."
- }
- ]
- }
- ],
- "properties": {
- "sync": {
- "$ref": "StorageArea",
- "description": "Items in the <code>sync</code> storage area are synced using Chrome Sync.",
- "value": [ "sync" ],
- "properties": {
- "QUOTA_BYTES": {
- "value": 102400,
- "description": "The maximum total amount (in bytes) of data that can be stored in sync storage, as measured by the JSON stringification of every value plus every key's length. Updates that would cause this limit to be exceeded fail immediately and set $ref:runtime.lastError."
- },
- "QUOTA_BYTES_PER_ITEM": {
- "value": 4096,
- "description": "The maximum size (in bytes) of each individual item in sync storage, as measured by the JSON stringification of its value plus its key length. Updates containing items larger than this limit will fail immediately and set $ref:runtime.lastError."
- },
- "MAX_ITEMS": {
- "value": 512,
- "description": "The maximum number of items that can be stored in sync storage. Updates that would cause this limit to be exceeded will fail immediately and set $ref:runtime.lastError."
- },
- "MAX_WRITE_OPERATIONS_PER_HOUR": {
- "value": 1000,
- "description": "The maximum number of <code>set</code>, <code>remove</code>, or <code>clear</code> operations that can be performed each hour. Updates that would cause this limit to be exceeded fail immediately and set $ref:runtime.lastError."
- },
- "MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE": {
- "value": 10,
- "description": "The maximum number of <code>set</code>, <code>remove</code>, or <code>clear</code> operations that can be performed each minute, sustained over 10 minutes. Updates that would cause this limit to be exceeded fail immediately and set $ref:runtime.lastError."
- }
- }
- },
- "local": {
- "$ref": "StorageArea",
- "description": "Items in the <code>local</code> storage area are local to each machine.",
- "value": [ "local" ],
- "properties": {
- "QUOTA_BYTES": {
- "value": 5242880,
- "description": "The maximum amount (in bytes) of data that can be stored in local storage, as measured by the JSON stringification of every value plus every key's length. This value will be ignored if the extension has the <code>unlimitedStorage</code> permission. Updates that would cause this limit to be exceeded fail immediately and set $ref:runtime.lastError."
- }
- }
- },
- "managed": {
- "$ref": "StorageArea",
- "description": "Items in the <code>managed</code> storage area are set by the domain administrator, and are read-only for the extension; trying to modify this namespace results in an error.",
- "value": [ "managed" ]
- }
- }
- }
-]
diff --git a/chromium/chrome/common/extensions/api/streams_private.json b/chromium/chrome/common/extensions/api/streams_private.json
deleted file mode 100644
index f24834565d5..00000000000
--- a/chromium/chrome/common/extensions/api/streams_private.json
+++ /dev/null
@@ -1,48 +0,0 @@
-// Copyright (c) 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.
-
-[
- {
- "namespace":"streamsPrivate",
- "description": "none",
- "events": [
- {
- "name": "onExecuteMimeTypeHandler",
- "type": "function",
- "description": "Fired when a resource is fetched which matches a mime type handled by this extension. The resource request is cancelled, and the extension is expected to handle the request. The event is restricted to a small number of white-listed extensions.",
- "parameters": [
- {
- "name": "mimeType",
- "type": "string",
- "description": "The MIME type of the intercepted URL request."
- },
- {
- "name": "originalUrl",
- "type": "string",
- "description": "The original URL that was intercepted."
- },
- {
- "name": "streamUrl",
- "type": "string",
- "description": "The URL that the stream can be read from."
- },
- {
- "name": "tabId",
- "type": "integer",
- "description": "The ID of the tab that opened the stream. If the stream is not opened in a tab, it will be -1."
- },
- {
- "name": "expectedContentSize",
- "type": "integer",
- "description": "The amount of data the Stream should contain, if known. If there is no information on the size it will be -1."
- }
- ]
- }
- ],
-
- "functions": [
- ]
- }
-]
-
diff --git a/chromium/chrome/common/extensions/api/tabs.json b/chromium/chrome/common/extensions/api/tabs.json
index ea96bc37b1c..992535af637 100644
--- a/chromium/chrome/common/extensions/api/tabs.json
+++ b/chromium/chrome/common/extensions/api/tabs.json
@@ -11,12 +11,12 @@
"id": "Tab",
"type": "object",
"properties": {
- "id": {"type": "integer", "minimum": 0, "optional": true, "description": "The ID of the tab. Tab IDs are unique within a browser session. Under some circumstances a Tab may not be assigned an ID, for example when querying foreign tabs using the $ref:sessions API, in which case a session ID may be present."},
+ "id": {"type": "integer", "minimum": 0, "optional": true, "description": "The ID of the tab. Tab IDs are unique within a browser session. Under some circumstances a Tab may not be assigned an ID, for example when querying foreign tabs using the $(ref:sessions) API, in which case a session ID may be present."},
// TODO(kalman): Investigate how this is ending up as -1 (based on window type? a bug?) and whether it should be optional instead.
"index": {"type": "integer", "minimum": -1, "description": "The zero-based index of the tab within its window."},
"windowId": {"type": "integer", "minimum": 0, "description": "The ID of the window the tab is contained within."},
"openerTabId": {"type": "integer", "minimum": 0, "optional": true, "description": "The ID of the tab that opened this tab, if any. This property is only present if the opener tab still exists."},
- "selected": {"type": "boolean", "description": "Whether the tab is selected.", "deprecated": "Please use $ref:Tab.highlighted."},
+ "selected": {"type": "boolean", "description": "Whether the tab is selected.", "deprecated": "Please use $(ref:tabs.Tab.highlighted)."},
"highlighted": {"type": "boolean", "description": "Whether the tab is highlighted."},
"active": {"type": "boolean", "description": "Whether the tab is active in its window. (Does not necessarily mean the window is focused.)"},
"pinned": {"type": "boolean", "description": "Whether the tab is pinned."},
@@ -27,7 +27,7 @@
"incognito": {"type": "boolean", "description": "Whether the tab is in an incognito window."},
"width": {"type": "integer", "optional": true, "description": "The width of the tab in pixels."},
"height": {"type": "integer", "optional": true, "description": "The height of the tab in pixels."},
- "sessionId": {"type": "string", "optional": true, "description": "The session ID used to uniquely identify a Tab obtained from the $ref:sessions API."}
+ "sessionId": {"type": "string", "optional": true, "description": "The session ID used to uniquely identify a Tab obtained from the $(ref:sessions) API."}
}
},
{
@@ -35,9 +35,10 @@
"type": "object",
"description": "Details of the script or CSS to inject. Either the code or the file property must be set, but both may not be set at the same time.",
"properties": {
- "code": {"type": "string", "optional": true, "description": "JavaScript or CSS code to inject."},
+ "code": {"type": "string", "optional": true, "description": "JavaScript or CSS code to inject.<br><br><b>Warning:</b><br>Be careful using the <code>code</code> parameter. Incorrect use of it may open your extension to <a href=\"https://en.wikipedia.org/wiki/Cross-site_scripting\">cross site scripting</a> attacks."},
"file": {"type": "string", "optional": true, "description": "JavaScript or CSS file to inject."},
"allFrames": {"type": "boolean", "optional": true, "description": "If allFrames is <code>true</code>, implies that the JavaScript or CSS should be injected into all frames of current page. By default, it's <code>false</code> and is only injected into the top frame."},
+ "matchAboutBlank": {"type": "boolean", "optional": true, "description": "If matchAboutBlank is true, then the code is also injected in about:blank and about:srcdoc frames if your extension has access to its parent document. Code cannot be inserted in top-level about:-frames. By default it is <code>false</code>."},
"runAt": {
"type": "string",
"optional": true,
@@ -89,7 +90,7 @@
"name": "connect",
"nocompile": true,
"type": "function",
- "description": "Connects to the content script(s) in the specified tab. The $ref:runtime.onConnect event is fired in each content script running in the specified tab for the current extension. For more details, see <a href='messaging.html'>Content Script Messaging</a>.",
+ "description": "Connects to the content script(s) in the specified tab. The $(ref:runtime.onConnect) event is fired in each content script running in the specified tab for the current extension. For more details, see <a href='messaging'>Content Script Messaging</a>.",
"parameters": [
{
"type": "integer",
@@ -107,15 +108,15 @@
],
"returns": {
"$ref": "runtime.Port",
- "description": "A port that can be used to communicate with the content scripts running in the specified tab. The port's $ref:runtime.Port event is fired if the tab closes or does not exist. "
+ "description": "A port that can be used to communicate with the content scripts running in the specified tab. The port's $(ref:runtime.Port) event is fired if the tab closes or does not exist. "
}
},
{
"name": "sendRequest",
- "deprecated": "Please use $ref:runtime.sendMessage.",
+ "deprecated": "Please use $(ref:runtime.sendMessage).",
"nocompile": true,
"type": "function",
- "description": "Sends a single request to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The $ref:extension.onRequest event is fired in each content script running in the specified tab for the current extension.",
+ "description": "Sends a single request to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The $(ref:extension.onRequest) event is fired in each content script running in the specified tab for the current extension.",
"parameters": [
{
"type": "integer",
@@ -134,7 +135,7 @@
{
"name": "response",
"type": "any",
- "description": "The JSON response object sent by the handler of the request. If an error occurs while connecting to the specified tab, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message."
+ "description": "The JSON response object sent by the handler of the request. If an error occurs while connecting to the specified tab, the callback will be called with no arguments and $(ref:runtime.lastError) will be set to the error message."
}
]
}
@@ -144,7 +145,7 @@
"name": "sendMessage",
"nocompile": true,
"type": "function",
- "description": "Sends a single message to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The $ref:runtime.onMessage event is fired in each content script running in the specified tab for the current extension.",
+ "description": "Sends a single message to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The $(ref:runtime.onMessage) event is fired in each content script running in the specified tab for the current extension.",
"parameters": [
{
"type": "integer",
@@ -163,7 +164,7 @@
{
"name": "response",
"type": "any",
- "description": "The JSON response object sent by the handler of the message. If an error occurs while connecting to the specified tab, the callback will be called with no arguments and $ref:runtime.lastError will be set to the error message."
+ "description": "The JSON response object sent by the handler of the message. If an error occurs while connecting to the specified tab, the callback will be called with no arguments and $(ref:runtime.lastError) will be set to the error message."
}
]
}
@@ -171,7 +172,7 @@
},
{
"name": "getSelected",
- "deprecated": "Please use $ref:query <code>{active: true}</code>.",
+ "deprecated": "Please use $(ref:tabs.query) <code>{active: true}</code>.",
"type": "function",
"description": "Gets the tab that is selected in the specified window.",
"parameters": [
@@ -180,7 +181,7 @@
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -194,7 +195,7 @@
{
"name": "getAllInWindow",
"type": "function",
- "deprecated": "Please use $ref:query <code>{windowId: windowId}</code>.",
+ "deprecated": "Please use $(ref:tabs.query) <code>{windowId: windowId}</code>.",
"description": "Gets details about all tabs in the specified window.",
"parameters": [
{
@@ -202,7 +203,7 @@
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -226,7 +227,7 @@
"type": "integer",
"minimum": -2,
"optional": true,
- "description": "The window to create the new tab in. Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "The window to create the new tab in. Defaults to the <a href='windows#current-window'>current window</a>."
},
"index": {
"type": "integer",
@@ -242,7 +243,7 @@
"active": {
"type": "boolean",
"optional": true,
- "description": "Whether the tab should become the active tab in the window. Does not affect whether the window is focused (see $ref:windows.update). Defaults to <var>true</var>."
+ "description": "Whether the tab should become the active tab in the window. Does not affect whether the window is focused (see $(ref:windows.update)). Defaults to <var>true</var>."
},
"selected": {
"deprecated": "Please use <em>active</em>.",
@@ -296,7 +297,7 @@
{
"name": "tab",
"optional": true,
- "description": "Details about the duplicated tab. The $ref:tabs.Tab object doesn't contain <code>url</code>, <code>title</code> and <code>favIconUrl</code> if the <code>\"tabs\"</code> permission has not been requested.",
+ "description": "Details about the duplicated tab. The $(ref:tabs.Tab) object doesn't contain <code>url</code>, <code>title</code> and <code>favIconUrl</code> if the <code>\"tabs\"</code> permission has not been requested.",
"$ref": "Tab"
}
]
@@ -330,7 +331,7 @@
"currentWindow": {
"type": "boolean",
"optional": true,
- "description": "Whether the tabs are in the <a href='windows.html#current-window'>current window</a>."
+ "description": "Whether the tabs are in the <a href='windows#current-window'>current window</a>."
},
"lastFocusedWindow": {
"type": "boolean",
@@ -351,13 +352,13 @@
"url": {
"type": "string",
"optional": true,
- "description": "Match tabs against a <a href='match_patterns.html'>URL pattern</a>. Note that fragment identifiers are not matched."
+ "description": "Match tabs against a <a href='match_patterns'>URL pattern</a>. Note that fragment identifiers are not matched."
},
"windowId": {
"type": "integer",
"optional": true,
"minimum": -2,
- "description": "The ID of the parent window, or $ref:windows.WINDOW_ID_CURRENT for the <a href='windows.html#current-window'>current window</a>."
+ "description": "The ID of the parent window, or $(ref:windows.WINDOW_ID_CURRENT) for the <a href='windows#current-window'>current window</a>."
},
"windowType": {
"type": "string",
@@ -435,7 +436,7 @@
"name": "tabId",
"minimum": 0,
"optional": true,
- "description": "Defaults to the selected tab of the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the selected tab of the <a href='windows#current-window'>current window</a>."
},
{
"type": "object",
@@ -449,7 +450,7 @@
"active": {
"type": "boolean",
"optional": true,
- "description": "Whether the tab should be active. Does not affect whether the window is focused (see $ref:windows.update)."
+ "description": "Whether the tab should be active. Does not affect whether the window is focused (see $(ref:windows.update))."
},
"highlighted": {
"type": "boolean",
@@ -484,7 +485,7 @@
"name": "tab",
"$ref": "Tab",
"optional": true,
- "description": "Details about the updated tab. The $ref:tabs.Tab object doesn't contain <code>url</code>, <code>title</code> and <code>favIconUrl</code> if the <code>\"tabs\"</code> permission has not been requested."
+ "description": "Details about the updated tab. The $(ref:tabs.Tab) object doesn't contain <code>url</code>, <code>title</code> and <code>favIconUrl</code> if the <code>\"tabs\"</code> permission has not been requested."
}
]
}
@@ -584,7 +585,7 @@
"name": "tabId",
"minimum": 0,
"optional": true,
- "description": "Defaults to the active tab of the <a href='windows.html#current-window'>current window</a>."
+ "description": "Defaults to the active tab of the <a href='windows#current-window'>current window</a>."
},
{
"type": "function",
@@ -602,14 +603,14 @@
{
"name": "captureVisibleTab",
"type": "function",
- "description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='declare_permissions.html'>host permission</a> for the URL displayed by the tab.",
+ "description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='declare_permissions'>&lt;all_urls&gt;</a> permission to use this method.",
"parameters": [
{
"type": "integer",
"name": "windowId",
"minimum": -2,
"optional": true,
- "description": "The target window. Defaults to the <a href='windows.html#current-window'>current window</a>."
+ "description": "The target window. Defaults to the <a href='windows#current-window'>current window</a>."
},
{
"$ref": "types.ImageDetails",
@@ -626,7 +627,7 @@
{
"name": "executeScript",
"type": "function",
- "description": "Injects JavaScript code into a page. For details, see the <a href='content_scripts.html#pi'>programmatic injection</a> section of the content scripts doc.",
+ "description": "Injects JavaScript code into a page. For details, see the <a href='content_scripts#pi'>programmatic injection</a> section of the content scripts doc.",
"parameters": [
{"type": "integer", "name": "tabId", "minimum": 0, "optional": true, "description": "The ID of the tab in which to run the script; defaults to the active tab of the current window."},
{
@@ -654,7 +655,7 @@
{
"name": "insertCSS",
"type": "function",
- "description": "Injects CSS into a page. For details, see the <a href='content_scripts.html#pi'>programmatic injection</a> section of the content scripts doc.",
+ "description": "Injects CSS into a page. For details, see the <a href='content_scripts#pi'>programmatic injection</a> section of the content scripts doc.",
"parameters": [
{"type": "integer", "name": "tabId", "minimum": 0, "optional": true, "description": "The ID of the tab in which to insert the CSS; defaults to the active tab of the current window."},
{
@@ -728,7 +729,7 @@
{
"name": "onMoved",
"type": "function",
- "description": "Fired when a tab is moved within a window. Only one move event is fired, representing the tab the user directly moved. Move events are not fired for the other tabs that must move in response. This event is not fired when a tab is moved between windows. For that, see $ref:onDetached.",
+ "description": "Fired when a tab is moved within a window. Only one move event is fired, representing the tab the user directly moved. Move events are not fired for the other tabs that must move in response. This event is not fired when a tab is moved between windows. For that, see $(ref:tabs.onDetached).",
"parameters": [
{"type": "integer", "name": "tabId", "minimum": 0},
{
@@ -744,7 +745,7 @@
},
{
"name": "onSelectionChanged",
- "deprecated": "Please use $ref:onActivated.",
+ "deprecated": "Please use $(ref:tabs.onActivated).",
"type": "function",
"description": "Fires when the selected tab in a window changes.",
"parameters": [
@@ -769,9 +770,9 @@
},
{
"name": "onActiveChanged",
- "deprecated": "Please use $ref:onActivated.",
+ "deprecated": "Please use $(ref:tabs.onActivated).",
"type": "function",
- "description": "Fires when the selected tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to $ref:onUpdated events to be notified when a URL is set.",
+ "description": "Fires when the selected tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to $(ref:tabs.onUpdated) events to be notified when a URL is set.",
"parameters": [
{
"type": "integer",
@@ -817,7 +818,7 @@
},
{
"name": "onHighlightChanged",
- "deprecated": "Please use $ref:onHighlighted.",
+ "deprecated": "Please use $(ref:tabs.onHighlighted).",
"type": "function",
"description": "Fired when the highlighted or selected tabs in a window changes.",
"parameters": [
diff --git a/chromium/chrome/common/extensions/api/test.json b/chromium/chrome/common/extensions/api/test.json
deleted file mode 100644
index 285c497013a..00000000000
--- a/chromium/chrome/common/extensions/api/test.json
+++ /dev/null
@@ -1,376 +0,0 @@
-// Copyright (c) 2012 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.
-
-[
- {
- "namespace": "test",
- "description": "none",
- "functions": [
- {
- "name": "getConfig",
- "type": "function",
- "description": "Gives configuration options set by the test.",
- "parameters": [
- {
- "type": "function", "name": "callback", "parameters": [
- {
- "type": "object",
- "name": "testConfig",
- "properties": {
- "customArg": {
- "type": "string",
- "optional": true,
- "description": "Additional string argument to pass to test."
- },
- "testServer": {
- "type": "object",
- "optional": true,
- "description": "Details on the test server used to mock network responses. Will be set only if test calls ExtensionApiTest::StartTestServer().",
- "properties": {
- "port": {
- "type": "integer",
- "description": "The port on which the test server is listening.",
- "minimum": 1024,
- "maximum": 65535
- }
- }
- },
- "spawnedTestServer": {
- "type": "object",
- "optional": true,
- "description": "Details on the spawned test server used to mock network responses. Will be set only if test calls ExtensionApiTest::StartSpawnedTestServer().",
- "properties": {
- "port": {
- "type": "integer",
- "description": "The port on which the test server is listening.",
- "minimum": 1024,
- "maximum": 65535
- }
- }
- },
- "testDataDirectory": {
- "type": "string",
- "description": "file:/// URL for the API test data directory."
- },
- "testWebSocketPort": {
- "type": "integer",
- "description": "The port on which the test WebSocket server is listening.",
- "minimum": 0,
- "maximum": 65535
- }
- }
- }
- ]
- }
- ]
- },
- {
- "name": "notifyFail",
- "type": "function",
- "description": "Notifies the browser process that test code running in the extension failed. This is only used for internal unit testing.",
- "parameters": [
- {"type": "string", "name": "message"}
- ]
- },
- {
- "name": "notifyPass",
- "type": "function",
- "description": "Notifies the browser process that test code running in the extension passed. This is only used for internal unit testing.",
- "parameters": [
- {"type": "string", "name": "message", "optional": true}
- ]
- },
- {
- "name": "resetQuota",
- "type": "function",
- "description": "Resets all accumulated quota state for all extensions. This is only used for internal unit testing.",
- "parameters": []
- },
- {
- "name": "log",
- "type": "function",
- "description": "Logs a message during internal unit testing.",
- "parameters": [
- {"type": "string", "name": "message"}
- ]
- },
- {
- "name": "createIncognitoTab",
- "type": "function",
- "description": "Creates an incognito tab during internal testing. Succeeds even if the extension is not enabled in incognito mode.",
- "parameters": [
- {"type": "string", "name": "url"}
- ]
- },
- {
- "name": "sendMessage",
- "type": "function",
- "description": "Sends a string message to the browser process, generating a Notification that C++ test code can wait for.",
- "parameters": [
- {"type": "string", "name": "message"},
- {
- "type": "function",
- "name": "callback",
- "optional": true,
- "parameters": [
- {"type": "string", "name": "response"}
- ]
- }
- ]
- },
- {
- "name": "callbackAdded",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "runNextTest",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "fail",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "any", "name": "message", "optional": true}
- ]
- },
- {
- "name": "succeed",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "any", "name": "message", "optional": true}
- ]
- },
- {
- "name": "assertTrue",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "name": "test",
- "choices": [
- {"type": "string"},
- {"type": "boolean"}
- ]
- },
- {"type": "string", "name": "message", "optional": true}
- ]
- },
- {
- "name": "assertFalse",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "name": "test",
- "choices": [
- {"type": "string"},
- {"type": "boolean"}
- ]
- },
- {"type": "string", "name": "message", "optional": true}
- ]
- },
- {
- "name": "assertBool",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "name": "test",
- "choices": [
- {"type": "string"},
- {"type": "boolean"}
- ]
- },
- {"type": "boolean", "name": "expected"},
- {"type": "string", "name": "message", "optional": true}
- ]
- },
- {
- "name": "checkDeepEq",
- "type": "function",
- "nocompile": true,
- "allowAmbiguousOptionalArguments": true,
- "parameters": [
- // These need to be optional because they can be null.
- {"type": "any", "name": "expected", "optional": true},
- {"type": "any", "name": "actual", "optional": true}
- ]
- },
- {
- "name": "assertEq",
- "type": "function",
- "nocompile": true,
- "allowAmbiguousOptionalArguments": true,
- "parameters": [
- // These need to be optional because they can be null.
- {"type": "any", "name": "expected", "optional": true},
- {"type": "any", "name": "actual", "optional": true},
- {"type": "string", "name": "message", "optional": true}
- ]
- },
- {
- "name": "assertNoLastError",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "assertLastError",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "string", "name": "expectedError"}
- ]
- },
- {
- "name": "assertThrows",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "function", "name": "fn"},
- {
- "type": "object",
- "name": "self",
- "additionalProperties": {"type": "any"},
- "optional": true
- },
- {"type": "array", "items": {"type": "any"}, "name": "args"},
- {"choices": [ {"type": "string"}, {"type": "object", "isInstanceOf": "RegExp"} ], "name": "message", "optional": true}
- ]
- },
- {
- "name": "callback",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "function", "name": "func", "optional": true},
- {"type": "string", "name": "expectedError", "optional": true}
- ]
- },
- {
- "name": "listenOnce",
- "type": "function",
- "nocompile": true,
- "parameters": [
- // TODO(cduvall): Make this a $ref to events.Event.
- {"type": "any", "name": "event"},
- {"type": "function", "name": "func"}
- ]
- },
- {
- "name": "listenForever",
- "type": "function",
- "nocompile": true,
- "parameters": [
- // TODO(cduvall): Make this a $ref to events.Event.
- {"type": "any", "name": "event"},
- {"type": "function", "name": "func"}
- ]
- },
- {
- "name": "callbackPass",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "function", "name": "func", "optional": true}
- ]
- },
- {
- "name": "callbackFail",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {"type": "string", "name": "expectedError"},
- {"type": "function", "name": "func", "optional": true}
- ]
- },
- {
- "name": "runTests",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "type": "array",
- "name": "tests",
- "items": {"type": "function"}
- }
- ]
- },
- {
- "name": "getApiFeatures",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "getApiDefinitions",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "type": "array",
- "name": "apiNames",
- "optional": true,
- "items": {"type": "string"}
- }
- ]
- },
- {
- "name": "isProcessingUserGesture",
- "type": "function",
- "nocompile": true,
- "parameters": []
- },
- {
- "name": "runWithUserGesture",
- "type": "function",
- "description": "Runs the callback in the context of a user gesture.",
- "nocompile": true,
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "parameters": []
- }
- ]
- },
- {
- "name": "runWithoutUserGesture",
- "type": "function",
- "nocompile": true,
- "parameters": [
- {
- "type": "function",
- "name": "callback",
- "parameters": []
- }
- ]
- }
- ],
- "events": [
- {
- "name": "onMessage",
- "type": "function",
- "description": "Used to test sending messages to extensions.",
- "parameters": [
- {
- "type": "object",
- "name": "info",
- "properties": {
- "data": { "type": "string", "description": "Additional information." },
- "lastMessage": { "type": "boolean", "description": "True if this was the last message for this test" }
- }
- }
- ]
- }
- ]
- }
-]
diff --git a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_1.json b/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_1.json
deleted file mode 100644
index fcaa875056c..00000000000
--- a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_1.json
+++ /dev/null
@@ -1,8 +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.
-
-// Tests an invalid JSON file.
-
-// Expecting property name: line 8 column 3 (char 9).
-{ x }
diff --git a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_2.json b/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_2.json
deleted file mode 100644
index d157424da57..00000000000
--- a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_2.json
+++ /dev/null
@@ -1,8 +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.
-
-// Tests an invalid JSON file.
-
-// Invalid control character at: line 8 column 19 (char 25).
-{ "hello": "world }
diff --git a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_3.json b/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_3.json
deleted file mode 100644
index 9dd3500844f..00000000000
--- a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_3.json
+++ /dev/null
@@ -1,8 +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.
-
-// Tests an invalid JSON file.
-
-// Expecting property name: line 8 column 23 (char 29).
-{ "a": "b", "c": "d", }
diff --git a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_4.json b/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_4.json
deleted file mode 100644
index af6a1a6ce05..00000000000
--- a/chromium/chrome/common/extensions/api/test_presubmit/invalid_json_4.json
+++ /dev/null
@@ -1,8 +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.
-
-// Tests an invalid JSON file.
-
-// Expecting , delimiter: line 8 column 12 (char 18).
-{ "a": "b" "c": "d" }
diff --git a/chromium/chrome/common/extensions/api/test_presubmit/valid_json.json b/chromium/chrome/common/extensions/api/test_presubmit/valid_json.json
deleted file mode 100644
index 615ea28d4be..00000000000
--- a/chromium/chrome/common/extensions/api/test_presubmit/valid_json.json
+++ /dev/null
@@ -1,11 +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.
-
-// Tests a valid IDL file.
-
-// This is a comment.
-{
- "key1": ["value1", "value2"],
- "key2": 3 // This is an inline comment.
-}
diff --git a/chromium/chrome/common/extensions/api/tts.json b/chromium/chrome/common/extensions/api/tts.json
index 995968ca8e0..8bc8a08198e 100644
--- a/chromium/chrome/common/extensions/api/tts.json
+++ b/chromium/chrome/common/extensions/api/tts.json
@@ -5,7 +5,7 @@
[
{
"namespace": "tts",
- "description": "Use the <code>chrome.tts</code> API to play synthesized text-to-speech (TTS). See also the related <a href='http://developer.chrome.com/extensions/ttsEngine.html'>ttsEngine</a> API, which allows an extension to implement a speech engine.",
+ "description": "Use the <code>chrome.tts</code> API to play synthesized text-to-speech (TTS). See also the related <a href='http://developer.chrome.com/extensions/ttsEngine'>ttsEngine</a> API, which allows an extension to implement a speech engine.",
"types": [
{
"id": "TtsEvent",
@@ -231,7 +231,7 @@
"type": "array",
"name": "voices",
"items": { "$ref": "TtsVoice" },
- "description": "Array of $ref:TtsVoice objects representing the available voices for speech synthesis."
+ "description": "Array of $(ref:tts.TtsVoice) objects representing the available voices for speech synthesis."
}
]
}
diff --git a/chromium/chrome/common/extensions/api/tts_engine.json b/chromium/chrome/common/extensions/api/tts_engine.json
index ff8d7b04db3..7f0e24eae7a 100644
--- a/chromium/chrome/common/extensions/api/tts_engine.json
+++ b/chromium/chrome/common/extensions/api/tts_engine.json
@@ -5,7 +5,7 @@
[
{
"namespace": "ttsEngine",
- "description": "Use the <code>chrome.ttsEngine</code> API to implement a text-to-speech(TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or Chrome App uses the <a href='tts.html'>tts</a> API to generate speech. Your extension can then use any available web technology to synthesize and output the speech, and send events back to the calling function to report the status.",
+ "description": "Use the <code>chrome.ttsEngine</code> API to implement a text-to-speech(TTS) engine using an extension. If your extension registers using this API, it will receive events containing an utterance to be spoken and other parameters when any extension or Chrome App uses the <a href='tts'>tts</a> API to generate speech. Your extension can then use any available web technology to synthesize and output the speech, and send events back to the calling function to report the status.",
"functions": [
{
"name": "sendTtsEvent",
diff --git a/chromium/chrome/common/extensions/api/types.json b/chromium/chrome/common/extensions/api/types.json
index c5cc5fd0a72..824425622aa 100644
--- a/chromium/chrome/common/extensions/api/types.json
+++ b/chromium/chrome/common/extensions/api/types.json
@@ -12,7 +12,7 @@
"type": "object",
"js_module": "ChromeSetting",
"customBindings": "ChromeSetting",
- "description": "An interface that allows access to a Chrome browser setting. See $ref:proxy.settings for an example.",
+ "description": "An interface that allows access to a Chrome browser setting. See $(ref:proxy.settings) for an example.",
"functions": [
{
"name": "get",
diff --git a/chromium/chrome/common/extensions/api/virtual_keyboard_private.json b/chromium/chrome/common/extensions/api/virtual_keyboard_private.json
index 3d535e5be00..a14b10aac3d 100644
--- a/chromium/chrome/common/extensions/api/virtual_keyboard_private.json
+++ b/chromium/chrome/common/extensions/api/virtual_keyboard_private.json
@@ -115,6 +115,47 @@
"parameters": []
}
]
+ },
+ {
+ "name": "getKeyboardConfig",
+ "type": "function",
+ "description": "Gets the virtual keyboard configuration.",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "description": "Called when querying virtual keyboard configuration is complete.",
+ "parameters": [
+ {
+ "type": "object",
+ "name": "config",
+ "properties": {
+ "layout": {
+ "type": "string",
+ "minLength": 1,
+ "description": "Virtual keyboard layout string."
+ },
+ "a11ymode": {
+ "type": "boolean",
+ "description": "True if accessbility virtual keyboard is enabled."
+ },
+ "experimental": {
+ "type": "boolean",
+ "description": "True if experimental features are enabled."
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "openSettings",
+ "type": "function",
+ "description": "Opens chrome://settings/languages page.",
+ "parameters": [
+ ]
}
],
"events": [
diff --git a/chromium/chrome/common/extensions/api/web_navigation.json b/chromium/chrome/common/extensions/api/web_navigation.json
index 783ecdddee0..e27fb7c7477 100644
--- a/chromium/chrome/common/extensions/api/web_navigation.json
+++ b/chromium/chrome/common/extensions/api/web_navigation.json
@@ -149,7 +149,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
@@ -283,7 +283,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
@@ -327,7 +327,7 @@
"url": {"type": "string"},
"processId": {"type": "integer", "description": "The ID of the process runs the renderer for this tab."},
"frameId": {"type": "integer", "description": "0 indicates the navigation happens in the tab content window; a positive value indicates navigation in a subframe. Frame IDs are unique within a tab."},
- "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used."},
+ "transitionType": {"type": "string", "enum": ["link", "typed", "auto_bookmark", "auto_subframe", "manual_subframe", "generated", "start_page", "form_submit", "reload", "keyword", "keyword_generated"], "description": "Cause of the navigation. The same transition types as defined in the history API are used. These are the same transition types as defined in the <a href=\"history#transition_types\">history API</a> except with <code>\"start_page\"</code> in place of <code>\"auto_toplevel\"</code> (for backwards compatibility)."},
"transitionQualifiers": {"type": "array", "description": "A list of transition qualifiers.", "items": {"type": "string", "enum": ["client_redirect", "server_redirect", "forward_back", "from_address_bar"]}},
"timeStamp": {"type": "number", "description": "The time when the navigation was committed, in milliseconds since the epoch."}
}
diff --git a/chromium/chrome/common/extensions/api/web_request.json b/chromium/chrome/common/extensions/api/web_request.json
index 51a161edbf2..5d279c76b32 100644
--- a/chromium/chrome/common/extensions/api/web_request.json
+++ b/chromium/chrome/common/extensions/api/web_request.json
@@ -66,7 +66,7 @@
"redirectUrl": {
"type": "string",
"optional": true,
- "description": "Only used as a response to the onBeforeRequest event. If set, the original request is prevented from being sent and is instead redirected to the given URL."
+ "description": "Only used as a response to the onBeforeRequest and onHeadersReceived events. If set, the original request is prevented from being sent/completed and is instead redirected to the given URL. Redirections to non-HTTP schemes such as data: are allowed. Redirects initiated by a redirect action use the original request method for the redirect, with one exception: If the redirect is initiated at the onHeadersReceived stage, then the redirect will be issued using the GET method."
},
"requestHeaders": {
"$ref": "HttpHeaders",
diff --git a/chromium/chrome/common/extensions/api/web_request_internal.json b/chromium/chrome/common/extensions/api/web_request_internal.json
index 4c56b5d1181..4bb0540436e 100644
--- a/chromium/chrome/common/extensions/api/web_request_internal.json
+++ b/chromium/chrome/common/extensions/api/web_request_internal.json
@@ -6,6 +6,9 @@
{
"namespace": "webRequestInternal",
"description": "none",
+ "compiler_options": {
+ "implemented_in": "chrome/browser/extensions/api/web_request/web_request_api.h"
+ },
"functions": [
{
"name": "addEventListener",
diff --git a/chromium/chrome/common/extensions/api/webstore.json b/chromium/chrome/common/extensions/api/webstore.json
index 31cbd2d0123..38d6de3867c 100644
--- a/chromium/chrome/common/extensions/api/webstore.json
+++ b/chromium/chrome/common/extensions/api/webstore.json
@@ -6,6 +6,40 @@
{
"namespace": "webstore",
"description": "Use the <code>chrome.webstore</code> API to initiate app and extension installations \"inline\" from your site.",
+ "types": [
+ {
+ "id": "InstallStage",
+ "type": "string",
+ "enum": ["installing", "downloading"],
+ "description": "Enum used to indicate the stage of the installation process. 'downloading' indicates that the necessary files are being downloaded, and 'installing' indicates that the files are downloaded and are being actively installed."
+ }
+ ], // types
+ "events": [
+ {
+ "name": "onInstallStageChanged",
+ "description": "Fired when an inline installation enters a new InstallStage. In order to receive notifications about this event, listeners must be registered before the inline installation begins.",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "stage",
+ "$ref": "InstallStage",
+ "description": "The InstallStage that just began."
+ }
+ ]
+ }, // onInstallStageChanged
+ {
+ "name": "onDownloadProgress",
+ "description": "Fired periodically with the download progress of an inline install. In order to receive notifications about this event, listeners must be registered before the inline installation begins.",
+ "type": "function",
+ "parameters": [
+ {
+ "name": "percentDownloaded",
+ "type": "number",
+ "description": "The progress of the download, between 0 and 1. 0 indicates no progress; 1.0 indicates complete."
+ }
+ ]
+ } // onDownloadProgress
+ ], // events
"functions": [
{
"name": "install",
@@ -39,6 +73,6 @@
}
]
} // install
- ]
+ ] // functions
} // webstore
]
diff --git a/chromium/chrome/common/extensions/api/webstore_private.json b/chromium/chrome/common/extensions/api/webstore_private.json
index f80ff335a23..b6f2f7346b5 100644
--- a/chromium/chrome/common/extensions/api/webstore_private.json
+++ b/chromium/chrome/common/extensions/api/webstore_private.json
@@ -20,7 +20,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -58,7 +58,7 @@
"name": "callback",
"type": "function",
"description": "Called when the install process completes. Upon failures, chrome.runtime.lastError will be set to 'user_canceled' or 'unknown_error'.",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -111,6 +111,11 @@
"type": "boolean",
"optional": true,
"description": "A flag to cause the app launcher to be installed before installing the extension, if it isn't installed already."
+ },
+ "authuser": {
+ "type": "string",
+ "optional": true,
+ "description": "The authuser index to be included with CRX download requests in multi-login sessions."
}
},
"additionalProperties": { "type": "any" }
@@ -119,7 +124,7 @@
"name": "callback",
"type": "function",
"description": "Called when the user has either accepted/rejected the dialog, or some error occurred (such as invalid manifest or icon image data).",
- "optional": "true",
+ "optional": true,
"parameters": [
{
"name": "result",
@@ -143,7 +148,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -155,7 +160,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -167,7 +172,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{
"name": "info",
@@ -187,7 +192,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{ "name": "login", "type": "string" }
]
@@ -202,7 +207,7 @@
{
"name": "callback",
"type": "function",
- "optional": "true",
+ "optional": true,
"parameters": []
}
]
@@ -214,7 +219,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{
"name": "webgl_status",
@@ -232,7 +237,7 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{ "name": "is_enabled", "type": "boolean" }
]
@@ -246,12 +251,30 @@
{
"name": "callback",
"type": "function",
- "optional": "false",
+ "optional": false,
"parameters": [
{ "name": "is_incognito", "type": "boolean" }
]
}
]
+ },
+ {
+ "name": "signIn",
+ "description": "Signs the user into Chrome.",
+ "parameters": [
+ {
+ "name": "continue_url",
+ "type": "string",
+ "description": "The continue URL to navigate to once sign-in completes."
+ },
+ {
+ "name": "callback",
+ "type": "function",
+ "description": "Called if the user is already signed in or if the sign-in method was invoked incorrectly (e.g. with an invalid continue URL), sign-in is unavailable (e.g. in Incognito), or the API was not called in response to a user gesture. Upon such a failure, chrome.runtime.lastError will be set to 'invalid_continue_url', 'signin_is_disallowed', 'signin_failed', 'merge_session_failed', or 'user_gesture_required'.",
+ "optional": true,
+ "parameters": []
+ }
+ ]
}
]
}
diff --git a/chromium/chrome/common/extensions/api/webview.json b/chromium/chrome/common/extensions/api/webview.json
index fbb467ff145..63278aebc8d 100644
--- a/chromium/chrome/common/extensions/api/webview.json
+++ b/chromium/chrome/common/extensions/api/webview.json
@@ -6,6 +6,7 @@
{
"namespace": "webview",
"description": "none",
+ "dependencies": ["contextMenusInternal"],
"types": [
{
"id": "DataTypeSet",
@@ -45,6 +46,22 @@
}
},
{
+ "id": "ContextMenuItem",
+ "type": "object",
+ "description": "An item in the context menu.",
+ "properties": {
+ "label": {
+ "type": "string",
+ "description": "label of the item",
+ "optional": true
+ },
+ "commandId": {
+ "type": "integer",
+ "description": "id of the input item"
+ }
+ }
+ },
+ {
"id": "RemovalOptions",
"type": "object",
"description": "Options that determine exactly what data will be removed.",
@@ -59,6 +76,235 @@
],
"functions": [
{
+ "name": "contextMenusCreate",
+ "type": "function",
+ "returns": {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "description": "The ID of the newly created item."
+ },
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "nodoc": true
+ },
+ {
+ "type": "object",
+ "name": "createProperties",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["normal", "checkbox", "radio", "separator"],
+ "optional": true,
+ "description": "The type of menu item. Defaults to 'normal' if not specified."
+ },
+ "id": {
+ "type": "string",
+ "optional": true,
+ "description": "The unique ID to assign to this item. Cannot be the same as another ID for this webview."
+ },
+ "title": {
+ "type": "string",
+ "optional": true,
+ "description": "The text to be displayed in the item; this is <em>required</em> unless <em>type</em> is 'separator'. When the context is 'selection', you can use <code>%s</code> within the string to show the selected text. For example, if this parameter's value is \"Translate '%s' to Pig Latin\" and the user selects the word \"cool\", the context menu item for the selection is \"Translate 'cool' to Pig Latin\"."
+ },
+ "checked": {
+ "type": "boolean",
+ "optional": true,
+ "description": "The initial state of a checkbox or radio item: true for selected and false for unselected. Only one radio item can be selected at a time in a given group of radio items."
+ },
+ "contexts": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ // |launcher| isn't actually supported, this is listed here so that we can build |contexts| using the same code from chrome.contextMenus API.
+ "enum": ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", "launcher"]
+ },
+ "minItems": 1,
+ "optional": true,
+ "description": "List of contexts this menu item will appear in. Defaults to ['page'] if not specified. Specifying ['all'] is equivalent to the combination of all other contexts except for 'launcher'. The 'launcher' context is not supported for <webview>."
+ },
+ "onclick": {
+ "type": "function",
+ "optional": true,
+ "description": "A function that will be called back when the menu item is clicked.",
+ "parameters": [
+ {
+ "name": "info",
+ "$ref": "contextMenusInternal.OnClickData",
+ "description": "Information about the item clicked and the context where the click happened."
+ }
+ ]
+ },
+ "parentId": {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "optional": true,
+ "description": "The ID of a parent menu item; this makes the item a child of a previously added item."
+ },
+ "documentUrlPatterns": {
+ "type": "array",
+ "items": {"type": "string"},
+ "optional": true,
+ "description": "Lets you restrict the item to apply only to documents whose URL matches one of the given patterns. (This applies to frames as well.) For details on the format of a pattern, see <a href='match_patterns'>Match Patterns</a>."
+ },
+ "targetUrlPatterns": {
+ "type": "array",
+ "items": {"type": "string"},
+ "optional": true,
+ "description": "Similar to documentUrlPatterns, but lets you filter based on the src attribute of img/audio/video tags and the href of anchor tags."
+ },
+ "enabled": {
+ "type": "boolean",
+ "optional": true,
+ "description": "Whether this context menu item is enabled or disabled. Defaults to true."
+ }
+ }
+ },
+ {
+ "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.",
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "contextMenusUpdate",
+ "type": "function",
+ "description": "Updates a previously created context menu item.",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "nodoc": true
+ },
+ {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "name": "id",
+ "description": "The ID of the item to update."
+ },
+ { "type": "object",
+ "name": "updateProperties",
+ "description": "The properties to update. Accepts the same values as the create function.",
+ "properties": {
+ "type": {
+ "type": "string",
+ "enum": ["normal", "checkbox", "radio", "separator"],
+ "optional": true
+ },
+ "title": {
+ "type": "string",
+ "optional": true
+ },
+ "checked": {
+ "type": "boolean",
+ "optional": true
+ },
+ "contexts": {
+ "type": "array",
+ "items": {
+ "type": "string",
+ // |launcher| isn't actually supported, this is listed here so that we can build |contexts| using the same code from chrome.contextMenus API.
+ "enum": ["all", "page", "frame", "selection", "link", "editable", "image", "video", "audio", "launcher"]
+ },
+ "minItems": 1,
+ "optional": true,
+ "description": "List of contexts this menu item will appear in. Defaults to ['page'] if not specified. Specifying ['all'] is equivalent to the combination of all other contexts except for 'launcher'. The 'launcher' context is not supported for <webview>."
+ },
+ "onclick": {
+ "type": "function",
+ "optional": true
+ },
+ "parentId": {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "optional": true,
+ "description": "Note: You cannot change an item to be a child of one of its own descendants."
+ },
+ "documentUrlPatterns": {
+ "type": "array",
+ "items": {"type": "string"},
+ "optional": true
+ },
+ "targetUrlPatterns": {
+ "type": "array",
+ "items": {"type": "string"},
+ "optional": true
+ },
+ "enabled": {
+ "type": "boolean",
+ "optional": true
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [],
+ "description": "Called when the context menu has been updated."
+ }
+ ]
+ },
+ {
+ "name": "contextMenusRemove",
+ "type": "function",
+ "description": "Removes a context menu item.",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "nodoc": true
+ },
+ {
+ "choices": [
+ { "type": "integer" },
+ { "type": "string" }
+ ],
+ "name": "menuItemId",
+ "description": "The ID of the context menu item to remove."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [],
+ "description": "Called when the context menu has been removed."
+ }
+ ]
+ },
+ {
+ "name": "contextMenusRemoveAll",
+ "type": "function",
+ "description": "Removes all context menu items added by this webview.",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "nodoc": true
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": [],
+ "description": "Called when removal is complete."
+ }
+ ]
+ },
+ {
"name": "clearData",
"type": "function",
"description": "Clears various types of browsing data stored in a storage partition of a <webview>.",
@@ -97,6 +343,11 @@
"description": "The instance ID of the guest <webview> process."
},
{
+ "type": "string",
+ "name": "src",
+ "description": "The src of the guest <webview> tag."
+ },
+ {
"$ref": "tabs.InjectDetails",
"name": "details",
"description": "Details of the script to run."
@@ -121,7 +372,7 @@
{
"name": "insertCSS",
"type": "function",
- "description": "Injects JavaScript code into a <webview> page.",
+ "description": "Injects CSS into a <webview> page. For details, see the <a href='/extensions/content_scripts#pi'>programmatic injection</a> section of the content scripts doc.",
"parameters": [
{
"type": "integer",
@@ -129,24 +380,21 @@
"description": "The instance ID of the guest <webview> process."
},
{
+ "type": "string",
+ "name": "src",
+ "description": "The src of the guest <webview> tag."
+ },
+ {
"$ref": "tabs.InjectDetails",
"name": "details",
- "description": "Details of the script to run."
+ "description": "Details of the CSS text to insert."
},
{
"type": "function",
"name": "callback",
"optional": true,
- "description": "Called after all the JavaScript has been executed.",
- "parameters": [
- {
- "name": "result",
- "optional": true,
- "type": "array",
- "items": {"type": "any", "minimum": 0},
- "description": "The result of the script in every injected frame."
- }
- ]
+ "description": "Called when all the CSS has been inserted.",
+ "parameters": []
}
]
},
@@ -173,6 +421,150 @@
]
},
{
+ "name": "setZoom",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "description": "The instance ID of the guest <webview> process."
+ },
+ {
+ "type": "number",
+ "name": "zoomFactor",
+ "description" : "The new zoom factor."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after the zoom message has been sent to the guest process.",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "name": "getZoom",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "description": "The instance ID of the guest <webview> process."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after the current zoom factor is retreived.",
+ "parameters": [
+ {
+ "type": "number",
+ "name": "zoomFactor",
+ "description": "The current zoom factor."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "type": "function",
+ "description": "Initiates a find-in-page request.",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "description": "The instance ID of the guest <webview> process."
+ },
+ {
+ "type": "string",
+ "name": "searchText",
+ "description": "The string to find in the page."
+ },
+ {
+ "type": "object",
+ "name": "options",
+ "optional": true,
+ "properties": {
+ "backward": {
+ "type": "boolean",
+ "description": "Flag to find matches in reverse order.",
+ "optional": true
+ },
+ "matchCase": {
+ "type": "boolean",
+ "description": "Flag to match |searchText| with case-sensitivity.",
+ "optional": true
+ }
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after all find results have been returned for this find request.",
+ "optional": true,
+ "parameters": [
+ {
+ "type": "object",
+ "name": "results",
+ "optional": true,
+ "properties": {
+ "numberOfMatches": {
+ "type": "integer",
+ "description": "The number of times |searchText| was matched on the page."
+ },
+ "activeMatchOrdinal": {
+ "type": "integer",
+ "description": "The ordinal number of the current match."
+ },
+ "selectionRect": {
+ "type": "object",
+ "description": "Describes a rectangle around the active match.",
+ "properties": {
+ "left": {
+ "type": "integer"
+ },
+ "top": {
+ "type": "integer"
+ },
+ "width": {
+ "type": "integer"
+ },
+ "height": {
+ "type": "integer"
+ }
+ }
+ },
+ "canceled": {
+ "type": "boolean",
+ "description": "Indicates whether this find request was canceled."
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stopFinding",
+ "type": "function",
+ "description": "Ends the current find session (clearing all highlighting) and cancels all find requests in progress.",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "description": "The instance ID of the guest <webview> process."
+ },
+ {
+ "type": "string",
+ "name": "action",
+ "description": "Determines what to do with the active match after the find session has ended. 'clear' will clear the highlighting over the active match; 'keep' will keep the active match highlighted; 'activate' will keep the active match highlighted and simulate a user click on that match.",
+ "optional": true,
+ "enum": ["clear", "keep", "activate"]
+ }
+ ]
+ },
+ {
"name": "go",
"type": "function",
"parameters": [
@@ -211,6 +603,20 @@
]
},
{
+ "name": "setName",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId"
+ },
+ {
+ "type": "string",
+ "name": "frameName"
+ }
+ ]
+ },
+ {
"name": "setPermission",
"type": "function",
"parameters": [
@@ -246,6 +652,43 @@
]
},
{
+ "name": "navigate",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId"
+ },
+ {
+ "type": "string",
+ "name": "src"
+ }
+ ]
+ },
+ {
+ "name": "showContextMenu",
+ "type": "function",
+ "parameters": [
+ {
+ "type": "integer",
+ "name": "instanceId",
+ "description": "The instance ID of the guest &lt;webview&gt; process. This not exposed to developers through the API."
+ },
+ {
+ "type": "integer",
+ "name": "requestId",
+ "description": "The strictly increasing request counter that serves as ID for the context menu. This not exposed to developers through the API."
+ },
+ {
+ "type": "array",
+ "name": "itemsToShow",
+ "items": {"$ref": "ContextMenuItem"},
+ "description": "Items to be shown in the context menu. These are top level items as opposed to children items.",
+ "optional": true
+ }
+ ]
+ },
+ {
"name": "stop",
"type": "function",
"parameters": [
@@ -265,7 +708,14 @@
}
]
}
+ ],
+ "events": [
+ {
+ "name": "onClicked",
+ "type": "function",
+ "nodoc": true,
+ "$ref": "contextMenusInternal.onClicked"
+ }
]
}
]
-
diff --git a/chromium/chrome/common/extensions/api/webview_request.json b/chromium/chrome/common/extensions/api/webview_request.json
index 966014265d6..653e19557db 100644
--- a/chromium/chrome/common/extensions/api/webview_request.json
+++ b/chromium/chrome/common/extensions/api/webview_request.json
@@ -5,6 +5,6 @@
[
{
"namespace": "webViewRequest",
- "description": "Use the <code>chrome.webViewRequest</code> API to intercept, block, or modify requests in-flight. It is potentially faster than the <a href='webRequest.html'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency."
+ "description": "Use the <code>chrome.webViewRequest</code> API to intercept, block, or modify requests in-flight. It is potentially faster than the <a href='webRequest'><code>chrome.webRequest</code> API</a> because you can register rules that are evaluated in the browser rather than the JavaScript engine with reduces roundtrip latencies and allows higher efficiency."
}
]
diff --git a/chromium/chrome/common/extensions/api/webview_tag.json b/chromium/chrome/common/extensions/api/webview_tag.json
index cfbe2fe3a92..858fe091d76 100644
--- a/chromium/chrome/common/extensions/api/webview_tag.json
+++ b/chromium/chrome/common/extensions/api/webview_tag.json
@@ -8,7 +8,8 @@
"description": "Use the <code>webview</code> tag to actively load live content from the web over the network and embed it in your Chrome App. Your app can control the appearance of the <code>webview</code> and interact with the web content, initiate navigations in an embedded web page, react to error events that happen within it, and more (see <a href=\"#usage\">Usage</a>).",
"documentation_options": {
"title": "<webview> Tag",
- "namespace": "<webview>"
+ "namespace": "<webview>",
+ "documented_in": "tags/webview"
},
"types": [
{
@@ -29,17 +30,10 @@
"description": "A set of data types. Missing properties are interpreted as <code>false</code>.",
"properties": {
"appcache": { "type": "boolean", "optional": true, "description": "Websites' appcaches." },
- "cache": { "type": "boolean", "optional": true, "description": "The partition's cache. Note: This clears the entire cache regardless of the age passed to <code>clearData</code>." },
"cookies": { "type": "boolean", "optional": true, "description": "The partition's cookies." },
- "downloads": { "type": "boolean", "optional": true, "description": "The partition's download list." },
"fileSystems": { "type": "boolean", "optional": true, "description": "Websites' filesystems." },
- "formData": { "type": "boolean", "optional": true, "description": "The partition's stored form data." },
- "history": { "type": "boolean", "optional": true, "description": "The partition's history." },
"indexedDB": { "type": "boolean", "optional": true, "description": "Websites' IndexedDB data." },
"localStorage": { "type": "boolean", "optional": true, "description": "Websites' local storage data." },
- "serverBoundCertificates": { "type": "boolean", "optional": true, "description": "Server-bound certificates." },
- "pluginData": { "type": "boolean", "optional": true, "description": "Plugins' data." },
- "passwords": { "type": "boolean", "optional": true, "description": "Stored passwords." },
"webSQL": { "type": "boolean", "optional": true, "description": "Websites' WebSQL data." }
}
},
@@ -51,7 +45,7 @@
"code": {
"type": "string",
"optional": true,
- "description": "JavaScript or CSS code to inject."
+ "description": "JavaScript or CSS code to inject.<br><br><b>Warning:</b><br>Be careful using the <code>code</code> parameter. Incorrect use of it may open your app to <a href=\"https://en.wikipedia.org/wiki/Cross-site_scripting\">cross site scripting</a> attacks."
},
"file": {
"type": "string",
@@ -107,6 +101,46 @@
]
},
{
+ "id": "FindCallbackResults",
+ "type": "object",
+ "description": "Contains all of the results of the find request.",
+ "properties": {
+ "numberOfMatches": {
+ "type": "integer",
+ "description": "The number of times <code>searchText</code> was matched on the page."
+ },
+ "activeMatchOrdinal": {
+ "type": "integer",
+ "description": "The ordinal number of the current match."
+ },
+ "selectionRect": {
+ "$ref": "SelectionRect",
+ "description": "Describes a rectangle around the active match in screen coordinates."
+ },
+ "canceled": {
+ "type": "boolean",
+ "description": "Indicates whether this find request was canceled."
+ }
+ }
+ },
+ {
+ "id": "FindOptions",
+ "type": "object",
+ "description": "Options for the find request.",
+ "properties": {
+ "backward": {
+ "type": "boolean",
+ "description": "Flag to find matches in reverse order. The default value is <code>false</code>.",
+ "optional": true
+ },
+ "matchCase": {
+ "type": "boolean",
+ "description": "Flag to match with case-sensitivity. The default value is <code>false</code>.",
+ "optional": true
+ }
+ }
+ },
+ {
"id": "NewWindow",
"type": "object",
"description": "Interface attached to <code>newwindow</code> DOM events.",
@@ -202,6 +236,21 @@
]
},
{
+ "id": "FileSystemPermissionRequest",
+ "type": "object",
+ "description": "The type of <code>request</code> object which accompanies a <code>filesystem</code> <a href=\"#event-permissionrequest\">permissionrequest</a></code> DOM event.",
+ "properties": {
+ "url": {
+ "description": "The URL of the frame requesting access to local file system.",
+ "type": "string"
+ }
+ },
+ "functions": [
+ { "name": "allow", "description": "Allow the permission request." },
+ { "name": "deny", "description": "Deny the permission request." }
+ ]
+ },
+ {
"id": "LoadPluginPermissionRequest",
"type": "object",
"description": "The type of <code>request</code> object which accompanies a <code>loadplugin</code> <a href=\"#event-permissionrequest\">permissionrequest</a> DOM event.<p>",
@@ -221,9 +270,32 @@
]
},
{
+ "id": "SelectionRect",
+ "type": "object",
+ "description": "<p>Describes a rectangle in screen coordinates.</p><p>The containment semantics are array-like; that is, the coordinate <code>(left, top)</code> is considered to be contained by the rectangle, but the coordinate <code>(left + width, top)</code> is not.</p>",
+ "properties": {
+ "left": {
+ "type": "integer",
+ "description": "Distance from the left edge of the screen to the left edge of the rectangle."
+ },
+ "top": {
+ "type": "integer",
+ "description": "Distance from the top edge of the screen to the top edge of the rectangle."
+ },
+ "width": {
+ "type": "integer",
+ "description": "Width of the rectangle."
+ },
+ "height": {
+ "type": "integer",
+ "description": "Height of the rectangle."
+ }
+ }
+ },
+ {
"id": "WebRequestEventInteface",
"type": "object",
- "description": "Interface which provides access to webRequest events on the guest page. See the <a href=\"http://developer.chrome.com/extensions/webRequest.html\">chrome.webRequest</a> extensions API for details on webRequest life cycle and related concepts.<p>To illustrate how usage differs from the extensions webRequest API, consider the following example code which blocks any guest requests for URLs which match <code>*://www.evil.com/*</code>:</p><pre>webview.request.onBeforeRequest.addListener(\r function(details) { return {cancel: true}; },\r {urls: [\"*://www.evil.com/*\"]},\r [\"blocking\"]);</pre><p>Additionally, this interface supports declarative webRequest rules through <code>onRequest</code> and <code>onMessage</code> events. See <a href=\"http://developer.chrome.com/extensions/declarativeWebRequest.html\">declarativeWebRequest</a> for API details.</p>Note that conditions and actions for declarative webview webRequests should be instantiated from their <code>chrome.webViewRequest.*</code> counterparts. The following example code declaratively blocks all requests to <code>\"example.com\"</code> on the webview <code>myWebview</code>:</p><pre>var rule = {\r conditions: [\r new chrome.webViewRequest.RequestMatcher({ url: { hostSuffix: 'example.com' } })\r ],\r actions: [ new chrome.webViewRequest.CancelRequest() ]\r};\rmyWebview.request.onRequest.addRules([rule]);</pre>",
+ "description": "Interface which provides access to webRequest events on the guest page. See the <a href=\"http://developer.chrome.com/extensions/webRequest\">chrome.webRequest</a> extensions API for details on webRequest life cycle and related concepts.<p>To illustrate how usage differs from the extensions webRequest API, consider the following example code which blocks any guest requests for URLs which match <code>*://www.evil.com/*</code>:</p><pre>webview.request.onBeforeRequest.addListener(\r function(details) { return {cancel: true}; },\r {urls: [\"*://www.evil.com/*\"]},\r [\"blocking\"]);</pre><p>Additionally, this interface supports declarative webRequest rules through <code>onRequest</code> and <code>onMessage</code> events. See <a href=\"http://developer.chrome.com/extensions/declarativeWebRequest.html\">declarativeWebRequest</a> for API details.</p>Note that conditions and actions for declarative webview webRequests should be instantiated from their <code>chrome.webViewRequest.*</code> counterparts. The following example code declaratively blocks all requests to <code>\"example.com\"</code> on the webview <code>myWebview</code>:</p><pre>var rule = {\r conditions: [\r new chrome.webViewRequest.RequestMatcher({ url: { hostSuffix: 'example.com' } })\r ],\r actions: [ new chrome.webViewRequest.CancelRequest() ]\r};\rmyWebview.request.onRequest.addRules([rule]);</pre>",
"properties": {}
}
],
@@ -272,7 +344,7 @@
{
"name": "executeScript",
"type": "function",
- "description": "<p>Injects JavaScript code into the guest page.</p><p>The following sample code uses script injection to set the guest page's background color to red:</p><pre>webview.executeScript({ code: \"document.body.bgColor = 'red'\" });</pre>",
+ "description": "<p>Injects JavaScript code into the guest page.</p><p>The following sample code uses script injection to set the guest page's background color to red:</p><pre>webview.executeScript({ code: \"document.body.style.backgroundColor = 'red'\" });</pre>",
"parameters": [
{
"$ref": "InjectDetails",
@@ -297,6 +369,38 @@
]
},
{
+ "name": "find",
+ "type": "function",
+ "description": "Initiates a find-in-page request.",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "searchText",
+ "description": "The string to find in the page."
+ },
+ {
+ "$ref": "FindOptions",
+ "name": "options",
+ "optional": true,
+ "description": "Options for the find request."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after all find results have been returned for this find request.",
+ "optional": true,
+ "parameters": [
+ {
+ "$ref": "FindCallbackResults",
+ "name": "results",
+ "description": "Contains all of the results of the find request. <code>results</code> can be omitted if it is not utilized in the callback function body; for example, if the callback is only used to discern when the find request has completed.",
+ "optional": true
+ }
+ ]
+ }
+ ]
+ },
+ {
"name": "forward",
"type": "function",
"description": "Navigates forward one history entry if possible. Equivalent to <code>go(1)</code>.",
@@ -317,6 +421,25 @@
"parameters": []
},
{
+ "name": "getZoom",
+ "type": "function",
+ "description": "Gets the current zoom factor.",
+ "parameters": [
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after the current zoom factor is retreived.",
+ "parameters": [
+ {
+ "type": "number",
+ "name": "zoomFactor",
+ "description": "The current zoom factor."
+ }
+ ]
+ }
+ ]
+ },
+ {
"name": "go",
"type": "function",
"description": "Navigates to a history entry using a history index relative to the current navigation. If the requested navigation is impossible, this method has no effect.",
@@ -350,7 +473,7 @@
{
"name": "isUserAgentOverridden",
"type": "function",
- "description": "Indicates whether or not the webview's user agent string has been overridden by $ref:setUserAgentOverride"
+ "description": "Indicates whether or not the webview's user agent string has been overridden by $(ref:webviewTag.setUserAgentOverride)"
},
{
"name": "reload",
@@ -371,12 +494,45 @@
]
},
{
+ "name": "setZoom",
+ "type": "function",
+ "description": "Changes the zoom factor of the page. This zoom will persist for the page's origin, even after navigation.",
+ "parameters": [
+ {
+ "type": "number",
+ "name": "zoomFactor",
+ "description" : "The new zoom factor."
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "description": "Called after the page has been zoomed.",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ },
+ {
"name": "stop",
"type": "function",
"description": "Stops loading the current &lt;webview> navigation if in progress.",
"parameters": []
},
{
+ "name": "stopFinding",
+ "type": "function",
+ "description": "Ends the current find session (clearing all highlighting) and cancels all find requests in progress.",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "action",
+ "description": "Determines what to do with the active match after the find session has ended. <code>clear</code> will clear the highlighting over the active match; <code>keep</code> will keep the active match highlighted; <code>activate</code> will keep the active match highlighted and simulate a user click on that match. The default action is <code>keep</code>.",
+ "optional": true,
+ "enum": ["clear", "keep", "activate"]
+ }
+ ]
+ },
+ {
"name": "terminate",
"type": "function",
"description": "Forcibly kills the guest web page's renderer process. This may affect multiple <code>webview</code> tags in the current app if they share the same process, but it will not affect <code>webview</code> tags in other apps.",
@@ -420,7 +576,7 @@
{
"name": "contentload",
"options": { "supportsDom": true },
- "description": "Fired when the guest window fires a <code>load</code> event.<p>The following example code modifies the default font size of the guest's <code>body</code> element after the page loads:</p><pre>webview.addEventListener('contentload', function() {\r webview.executeScript({ code: 'document.body.style.fontSize = \"42px\"' });\r});</pre>",
+ "description": "Fired when the guest window fires a <code>load</code> event, i.e., when a new document is loaded. This does <em>not</em> include page navigation within the current document or asynchronous resource loads. <p>The following example code modifies the default font size of the guest's <code>body</code> element after the page loads:</p><pre>webview.addEventListener('contentload', function() {\r webview.executeScript({ code: 'document.body.style.fontSize = \"42px\"' });\r});</pre>",
"parameters": []
},
{
@@ -465,9 +621,46 @@
]
},
{
+ "name": "findupdate",
+ "options": { "supportsDom": true },
+ "description": "Fired when new find results are available for an active find request. This might happen multiple times for a single find request as matches are found.",
+ "parameters": [
+ {
+ "name": "searchText",
+ "type": "string",
+ "description": "The string that is being searched for in the page."
+ },
+ {
+ "name": "numberOfMatches",
+ "type": "integer",
+ "description": "The number of matches found for <code>searchText</code> on the page so far."
+ },
+ {
+ "name": "activeMatchOrdinal",
+ "type": "integer",
+ "description": "The ordinal number of the current active match, if it has been found. This will be <code>0</code> until then."
+ },
+ {
+ "name": "selectionRect",
+ "$ref": "SelectionRect",
+ "description": "Describes a rectangle around the active match, if it has been found, in screen coordinates."
+ },
+ {
+ "name": "canceled",
+ "type": "boolean",
+ "description": "Indicates whether the find request was canceled."
+ },
+ {
+ "name": "finalUpdate",
+ "type": "string",
+ "description": "Indicates that all find requests have completed and that no more <code>findupdate</code> events will be fired until more find requests are made."
+ }
+ ]
+ },
+ {
"name": "loadabort",
"options": { "supportsDom": true },
- "description": "Fired when a top-level load has aborted without committing.",
+ "description": "Fired when a top-level load has aborted without committing. <p class=\"note\"><strong>Note:</strong> When a resource load is aborted, a <code>loadabort</code> event will eventually be followed by a <code>loadstop</code> event, even if all committed loads since the last <code>loadstop</code> event (if any) were aborted.</p>",
"parameters": [
{
"name": "url",
@@ -490,7 +683,7 @@
{
"name": "loadcommit",
"options": { "supportsDom": true },
- "description": "Fired when a load has committed.",
+ "description": "Fired when a load has committed. This includes navigation within the current document as well as subframe document-level loads, but does <em>not</em> include asynchronous resource loads.",
"parameters": [
{
"name": "url",
@@ -546,7 +739,7 @@
{
"name": "loadstop",
"options": { "supportsDom": true },
- "description": "Fired when all loads in the guest page (including all subframes) have completed. Fires in addition to any related <code>loadcommit</code> or <code>loadabort</code> events, which occur per-frame.",
+ "description": "Fired when all frame-level loads in a guest page (including all its subframes) have completed. This includes navigation within the current document as well as subframe document-level loads, but does <em>not</em> include asynchronous resource loads. This event fires every time the number of document-level loads transitions from one (or more) to zero. For example, if a page that has already finished loading (i.e., <code>loadstop</code> already fired once) creates a new iframe which loads a page, then a second <code>loadstop</code> will fire when the iframe page load completes. This pattern is commonly observed on pages that load ads. <p class=\"note\"><strong>Note:</strong> When a committed load is aborted, a <code>loadstop</code> event will eventually follow a <code>loadabort</code> event, even if all committed loads since the last <code>loadstop</code> event (if any) were aborted.</p>",
"parameters": []
},
{
@@ -596,7 +789,7 @@
"name": "permission",
"description": "The type of permission being requested.",
"type": "string",
- "enum": ["media", "geolocation", "pointerLock", "download", "loadplugin"]
+ "enum": ["media", "geolocation", "pointerLock", "download", "loadplugin", "filesystem"]
},
{
"name": "requestId",
@@ -607,7 +800,7 @@
"name": "request",
"type": "object",
"properties": {},
- "description": "An object which holds details of the requested permission. Depending on the type of permission requested, this may be a $ref:MediaPermissionRequest, $ref:GeolocationPermissionRequest, $ref:PointerLockPermissionRequest, $ref:DownloadPermissionRequest, or $ref:LoadPluginPermissionRequest."
+ "description": "An object which holds details of the requested permission. Depending on the type of permission requested, this may be a $(ref:webviewTag.MediaPermissionRequest), $(ref:webviewTag.GeolocationPermissionRequest), $(ref:webviewTag.PointerLockPermissionRequest), $(ref:webviewTag.DownloadPermissionRequest), or $(ref:webviewTag.LoadPluginPermissionRequest)."
}
]
},
@@ -661,6 +854,23 @@
"type": "integer"
}
]
+ },
+ {
+ "name": "zoomchange",
+ "options": { "supportsDom": true },
+ "description": "Fired when the page's zoom changes.",
+ "parameters": [
+ {
+ "name": "oldZoomFactor",
+ "type": "number",
+ "description": "The page's previous zoom factor."
+ },
+ {
+ "name": "newZoomFactor",
+ "type": "number",
+ "description": "The new zoom factor that the page was zoomed to."
+ }
+ ]
}
],
"properties": {
@@ -675,4 +885,3 @@
}
}
]
-
diff --git a/chromium/chrome/common/extensions/api/windows.json b/chromium/chrome/common/extensions/api/windows.json
index 8ef02ac85b7..9d8bab2f369 100644
--- a/chromium/chrome/common/extensions/api/windows.json
+++ b/chromium/chrome/common/extensions/api/windows.json
@@ -14,28 +14,28 @@
"id": "Window",
"type": "object",
"properties": {
- "id": {"type": "integer", "optional": true, "minimum": 0, "description": "The ID of the window. Window IDs are unique within a browser session. Under some circumstances a Window may not be assigned an ID, for example when querying windows using the $ref:sessions API, in which case a session ID may be present."},
+ "id": {"type": "integer", "optional": true, "minimum": 0, "description": "The ID of the window. Window IDs are unique within a browser session. Under some circumstances a Window may not be assigned an ID, for example when querying windows using the $(ref:sessions) API, in which case a session ID may be present."},
"focused": {"type": "boolean", "description": "Whether the window is currently the focused window."},
- "top": {"type": "integer", "optional": true, "description": "The offset of the window from the top edge of the screen in pixels. Under some circumstances a Window may not be assigned top property, for example when querying closed windows from the $ref:sessions API."},
- "left": {"type": "integer", "optional": true, "description": "The offset of the window from the left edge of the screen in pixels. Under some circumstances a Window may not be assigned left property, for example when querying closed windows from the $ref:sessions API."},
- "width": {"type": "integer", "optional": true, "description": "The width of the window, including the frame, in pixels. Under some circumstances a Window may not be assigned width property, for example when querying closed windows from the $ref:sessions API."},
- "height": {"type": "integer", "optional": true, "description": "The height of the window, including the frame, in pixels. Under some circumstances a Window may not be assigned height property, for example when querying closed windows from the $ref:sessions API."},
- "tabs": {"type": "array", "items": { "$ref": "tabs.Tab" }, "optional": true, "description": "Array of $ref:tabs.Tab objects representing the current tabs in the window."},
+ "top": {"type": "integer", "optional": true, "description": "The offset of the window from the top edge of the screen in pixels. Under some circumstances a Window may not be assigned top property, for example when querying closed windows from the $(ref:sessions) API."},
+ "left": {"type": "integer", "optional": true, "description": "The offset of the window from the left edge of the screen in pixels. Under some circumstances a Window may not be assigned left property, for example when querying closed windows from the $(ref:sessions) API."},
+ "width": {"type": "integer", "optional": true, "description": "The width of the window, including the frame, in pixels. Under some circumstances a Window may not be assigned width property, for example when querying closed windows from the $(ref:sessions) API."},
+ "height": {"type": "integer", "optional": true, "description": "The height of the window, including the frame, in pixels. Under some circumstances a Window may not be assigned height property, for example when querying closed windows from the $(ref:sessions) API."},
+ "tabs": {"type": "array", "items": { "$ref": "tabs.Tab" }, "optional": true, "description": "Array of $(ref:tabs.Tab) objects representing the current tabs in the window."},
"incognito": {"type": "boolean", "description": "Whether the window is incognito."},
"type": {
"type": "string",
"optional": true,
- "description": "The type of browser window this is. Under some circumstances a Window may not be assigned type property, for example when querying closed windows from the $ref:sessions API.",
+ "description": "The type of browser window this is. Under some circumstances a Window may not be assigned type property, for example when querying closed windows from the $(ref:sessions) API.",
"enum": ["normal", "popup", "panel", "app"]
},
"state": {
"type": "string",
"optional": true,
- "description": "The state of this browser window. Under some circumstances a Window may not be assigned state property, for example when querying closed windows from the $ref:sessions API.",
+ "description": "The state of this browser window. Under some circumstances a Window may not be assigned state property, for example when querying closed windows from the $(ref:sessions) API.",
"enum": ["normal", "minimized", "maximized", "fullscreen"]
},
"alwaysOnTop": {"type": "boolean", "description": "Whether the window is set to be always on top."},
- "sessionId": {"type": "string", "optional": true, "description": "The session ID used to uniquely identify a Window obtained from the $ref:sessions API."}
+ "sessionId": {"type": "string", "optional": true, "description": "The session ID used to uniquely identify a Window obtained from the $(ref:sessions) API."}
}
}
],
@@ -46,7 +46,7 @@
},
"WINDOW_ID_CURRENT": {
"value": -2,
- "description": "The windowId value that represents the <a href='windows.html#current-window'>current window</a>."
+ "description": "The windowId value that represents the <a href='windows#current-window'>current window</a>."
}
},
"functions": [
@@ -62,7 +62,7 @@
"optional": true,
"description": "",
"properties": {
- "populate": {"type": "boolean", "optional": true, "description": "If true, the $ref:windows.Window object will have a <var>tabs</var> property that contains a list of the $ref:tabs.Tab objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
+ "populate": {"type": "boolean", "optional": true, "description": "If true, the $(ref:windows.Window) object will have a <var>tabs</var> property that contains a list of the $(ref:tabs.Tab) objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
}
},
{
@@ -87,7 +87,7 @@
"optional": true,
"description": "",
"properties": {
- "populate": {"type": "boolean", "optional": true, "description": "If true, the $ref:windows.Window object will have a <var>tabs</var> property that contains a list of the $ref:tabs.Tab objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
+ "populate": {"type": "boolean", "optional": true, "description": "If true, the $(ref:windows.Window) object will have a <var>tabs</var> property that contains a list of the $(ref:tabs.Tab) objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
}
},
{
@@ -112,7 +112,7 @@
"optional": true,
"description": "",
"properties": {
- "populate": {"type": "boolean", "optional": true, "description": "If true, the $ref:windows.Window object will have a <var>tabs</var> property that contains a list of the $ref:tabs.Tab objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
+ "populate": {"type": "boolean", "optional": true, "description": "If true, the $(ref:windows.Window) object will have a <var>tabs</var> property that contains a list of the $(ref:tabs.Tab) objects. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
}
},
{
@@ -137,7 +137,7 @@
"optional": true,
"description": "",
"properties": {
- "populate": {"type": "boolean", "optional": true, "description": "If true, each $ref:windows.Window object will have a <var>tabs</var> property that contains a list of the $ref:tabs.Tab objects for that window. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
+ "populate": {"type": "boolean", "optional": true, "description": "If true, each $(ref:windows.Window) object will have a <var>tabs</var> property that contains a list of the $(ref:tabs.Tab) objects for that window. The <code>Tab</code> objects only contain the <code>url</code>, <code>title</code> and <code>favIconUrl</code> properties if the extension's manifest file includes the <code>\"tabs\"</code> permission." }
}
},
{
diff --git a/chromium/chrome/common/extensions/docs/examples/api/fontSettings/manifest.json b/chromium/chrome/common/extensions/docs/examples/api/fontSettings/manifest.json
index edb7559c809..2829fecb424 100644
--- a/chromium/chrome/common/extensions/docs/examples/api/fontSettings/manifest.json
+++ b/chromium/chrome/common/extensions/docs/examples/api/fontSettings/manifest.json
@@ -1,6 +1,6 @@
{
"name": "Advanced Font Settings",
- "version": "0.66",
+ "version": "0.67",
"manifest_version": 2,
"description": "Customize per-script font settings.",
"options_page": "options.html",
diff --git a/chromium/chrome/common/extensions/docs/examples/api/infobars/sandwichbar/manifest.json b/chromium/chrome/common/extensions/docs/examples/api/infobars/sandwichbar/manifest.json
index f14c8ad5006..0ebfe5cef4a 100644
--- a/chromium/chrome/common/extensions/docs/examples/api/infobars/sandwichbar/manifest.json
+++ b/chromium/chrome/common/extensions/docs/examples/api/infobars/sandwichbar/manifest.json
@@ -13,7 +13,10 @@
},
"content_scripts" : [
{
- "matches" : [ "http://*/*" ],
+ "matches" : [
+ "http://*/*",
+ "https://*/*"
+ ],
"js" : [ "contentscript.js" ],
"run_at" : "document_idle",
"all_frames" : false
diff --git a/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_content/manifest.json b/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_content/manifest.json
index 2b09d279021..79134a72efa 100644
--- a/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_content/manifest.json
+++ b/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_content/manifest.json
@@ -1,29 +1,20 @@
{
"name" : "Page action by content",
"version" : "1.1",
- "description" : "Shows a page action for HTML pages containing the word 'sandwich'",
+ "description" : "Shows a page action for HTML pages containing a video",
"background" : {
- "scripts": ["background.js"]
+ "scripts": ["background.js"],
+ "persistent": false
},
"page_action" :
{
- "default_icon" : "sandwich-19.png",
- "default_title" : "There's a 'sandwich' in this page!"
+ "default_icon" : "video-19.png",
+ "default_title" : "There's a <video> in this page!"
},
- "content_scripts" : [
- {
- "matches" : [
- "http://*/*",
- "https://*/*"
- ],
- "js" : ["contentscript.js"],
- "run_at" : "document_idle",
- "all_frames" : false
- }
- ],
+ "permissions": [ "declarativeContent" ],
"icons" : {
- "48" : "sandwich-48.png",
- "128" : "sandwich-128.png"
+ "48" : "video-48.png",
+ "128" : "video-128.png"
},
"manifest_version": 2
-} \ No newline at end of file
+}
diff --git a/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/manifest.json b/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/manifest.json
index 631ed9e0795..5c20902fd4e 100644
--- a/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/manifest.json
+++ b/chromium/chrome/common/extensions/docs/examples/api/pageAction/pageaction_by_url/manifest.json
@@ -2,14 +2,17 @@
"name": "Page action by URL",
"version": "1.0",
"description": "Shows a page action for urls which have the letter 'g' in them.",
- "background": { "scripts": ["background.js"] },
+ "background": {
+ "scripts": ["background.js"],
+ "persistent": false
+ },
"page_action" :
{
"default_icon" : "icon-19.png",
"default_title" : "There's a 'G' in this URL!"
},
"permissions" : [
- "tabs"
+ "declarativeContent"
],
"icons" : {
"48" : "icon-48.png",
diff --git a/chromium/chrome/common/extensions/docs/examples/apps/calculator/app/manifest.json b/chromium/chrome/common/extensions/docs/examples/apps/calculator/app/manifest.json
index 76c570d8c7c..09b249e0d8c 100644
--- a/chromium/chrome/common/extensions/docs/examples/apps/calculator/app/manifest.json
+++ b/chromium/chrome/common/extensions/docs/examples/apps/calculator/app/manifest.json
@@ -3,11 +3,10 @@
"description": "A simple calculator.",
"manifest_version": 2,
"minimum_chrome_version": "23",
- "version": "1.3.2",
+ "version": "1.3.3",
"app": {"background": {"scripts": ["model.js", "view.js", "controller.js"]}},
"icons": {
"16": "images/icon-16x16.png",
"128": "images/icon-128x128.png"
- },
- "permissions": ["storage"]
+ }
}
diff --git a/chromium/chrome/common/extensions/docs/examples/extensions/benchmark/manifest.json b/chromium/chrome/common/extensions/docs/examples/extensions/benchmark/manifest.json
deleted file mode 100644
index bff719b3a22..00000000000
--- a/chromium/chrome/common/extensions/docs/examples/extensions/benchmark/manifest.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "Page Benchmarker",
- "version": "1.3.4.0",
- "manifest_version": 2,
- "content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
- "description": "Chromium Page Benchmarker.",
- "background": {
- "page": "background.html",
- "persistent": false
- },
- "browser_action": {
- "default_title": "Benchmark page load time",
- "default_icon": "stopwatch.jpg"
- },
- "options_page": "options.html",
- "permissions": [
- "tabs", "https://*/*", "http://*/*"
- ]
-}
diff --git a/chromium/chrome/common/extensions/docs/server2/known_broken_links.json b/chromium/chrome/common/extensions/docs/server2/known_broken_links.json
index 468fe3c095d..37827912ee7 100644
--- a/chromium/chrome/common/extensions/docs/server2/known_broken_links.json
+++ b/chromium/chrome/common/extensions/docs/server2/known_broken_links.json
@@ -560,7 +560,6 @@
[
404,
"apps/declare_permissions.html",
- "apps/adview.html",
"target page not found"
],
[
@@ -662,7 +661,6 @@
[
404,
"apps/private_apis.html",
- "apps/adview.html",
"target page not found"
],
[
@@ -1628,7 +1626,6 @@
[
404,
"extensions/private_apis.html",
- "extensions/adview.html",
"target page not found"
],
[
@@ -2026,5 +2023,41 @@
"extensions/declarativeContent.html",
"#type-Rule",
"target anchor not found"
+ ],
+ [
+ 200,
+ "extensions/whats_new.html",
+ "#badge",
+ "target anchor not found"
+ ],
+ [
+ 200,
+ "extensions/whats_new.html",
+ "#icon",
+ "target anchor not found"
+ ],
+ [
+ 200,
+ "extensions/whats_new.html",
+ "#manifest",
+ "target anchor not found"
+ ],
+ [
+ 200,
+ "apps/whats_new.html",
+ "#manifest",
+ "target anchor not found"
+ ],
+ [
+ 200,
+ "extensions/whats_new.html",
+ "#popups",
+ "target anchor not found"
+ ],
+ [
+ 200,
+ "extensions/whats_new.html",
+ "#tooltip",
+ "target anchor not found"
]
-] \ No newline at end of file
+]
diff --git a/chromium/chrome/common/extensions/docs/server2/test_data/branch_utility/second.json b/chromium/chrome/common/extensions/docs/server2/test_data/branch_utility/second.json
index 73264879175..f14fd588a8f 100644
--- a/chromium/chrome/common/extensions/docs/server2/test_data/branch_utility/second.json
+++ b/chromium/chrome/common/extensions/docs/server2/test_data/branch_utility/second.json
@@ -1,1112 +1 @@
-{
- "dateTimeFormat": "Gregorian",
- "events": [
- {
- "durationEvent": false,
- "start": "Fri Apr 05 2013 18:19:28 PST-0800",
- "title": "win\ndev - 28.0.1500.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 02 2013 17:53:25 PST-0800",
- "title": "win\ndev - 27.0.1453.12"
- },
- {
- "durationEvent": false,
- "start": "Fri Mar 29 2013 18:16:49 PST-0800",
- "title": "win\ndev - 27.0.1453.9"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 28 2013 18:59:48 PST-0800",
- "title": "win\ndev - 27.0.1453.6"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 27 2013 01:53:23 PST-0800",
- "title": "win\ndev - 27.0.1453.3"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 21 2013 21:49:11 PST-0800",
- "title": "win\ndev - 27.0.1448.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Mar 19 2013 00:30:49 PST-0800",
- "title": "win\ndev - 27.0.1444.3"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 13 2013 17:35:03 PST-0800",
- "title": "win\ndev - 27.0.1438.7"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 06 2013 18:32:27 PST-0800",
- "title": "win\ndev - 27.0.1430.3"
- },
- {
- "durationEvent": false,
- "start": "Tue Mar 05 2013 23:32:37 PST-0800",
- "title": "win\ndev - 27.0.1430.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Mar 01 2013 01:11:51 PST-0800",
- "title": "win\ndev - 27.0.1425.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Feb 26 2013 22:03:01 PST-0800",
- "title": "win\ndev - 27.0.1423.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Feb 22 2013 00:09:52 PST-0800",
- "title": "win\ndev - 26.0.1410.12"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 20 2013 00:15:47 PST-0800",
- "title": "win\ndev - 26.0.1410.10"
- },
- {
- "durationEvent": false,
- "start": "Thu Feb 14 2013 20:18:49 PST-0800",
- "title": "win\ndev - 26.0.1410.5"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 13 2013 01:49:23 PST-0800",
- "title": "win\ndev - 26.0.1410.3"
- },
- {
- "durationEvent": false,
- "start": "Tue Feb 05 2013 00:43:13 PST-0800",
- "title": "win\ndev - 26.0.1403.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Jan 30 2013 21:11:13 PST-0800",
- "title": "win\ndev - 26.0.1397.2"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 17 2013 22:44:44 PST-0800",
- "title": "win\ndev - 26.0.1386.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Jan 16 2013 01:48:57 PST-0800",
- "title": "win\ndev - 26.0.1384.2"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 10 2013 23:07:12 PST-0800",
- "title": "win\ndev - 25.0.1364.29"
- },
- {
- "durationEvent": false,
- "start": "Tue Jan 08 2013 00:05:42 PST-0800",
- "title": "win\ndev - 25.0.1364.26"
- },
- {
- "durationEvent": false,
- "start": "Thu Dec 20 2012 22:09:26 PST-0800",
- "title": "win\ndev - 25.0.1364.5"
- },
- {
- "durationEvent": false,
- "start": "Wed Dec 19 2012 02:42:39 PST-0800",
- "title": "win\ndev - 25.0.1364.2"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 14 2012 02:37:09 PST-0800",
- "title": "win\ndev - 25.0.1359.3"
- },
- {
- "durationEvent": false,
- "start": "Mon Dec 10 2012 22:13:57 PST-0800",
- "title": "win\ndev - 25.0.1354.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 07 2012 00:16:59 PST-0800",
- "title": "win\ndev - 25.0.1349.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Nov 28 2012 23:28:57 PST-0800",
- "title": "win\ndev - 25.0.1337.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Nov 13 2012 00:52:33 PST-0800",
- "title": "win\ndev - 25.0.1323.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Nov 06 2012 19:47:19 PST-0800",
- "title": "win\ndev - 24.0.1312.5"
- },
- {
- "durationEvent": false,
- "start": "Thu Nov 01 2012 19:24:01 PST-0800",
- "title": "win\ndev - 24.0.1312.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 31 2012 00:02:11 PST-0800",
- "title": "win\ndev - 24.0.1312.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 24 2012 19:15:16 PST-0800",
- "title": "win\ndev - 24.0.1305.3"
- },
- {
- "durationEvent": false,
- "start": "Tue Oct 16 2012 21:19:13 PST-0800",
- "title": "win\ndev - 24.0.1297.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Oct 09 2012 21:43:57 PST-0800",
- "title": "win\ndev - 24.0.1290.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 03 2012 00:26:19 PST-0800",
- "title": "win\ndev - 24.0.1284.2"
- },
- {
- "durationEvent": false,
- "start": "Thu Sep 27 2012 18:02:10 PST-0800",
- "title": "win\ndev - 23.0.1271.10"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 25 2012 21:21:48 PST-0800",
- "title": "win\ndev - 23.0.1271.6"
- },
- {
- "durationEvent": false,
- "start": "Thu Sep 20 2012 19:44:35 PST-0800",
- "title": "win\ndev - 23.0.1271.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 18 2012 22:20:03 PST-0800",
- "title": "win\ndev - 23.0.1270.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 11 2012 00:20:53 PST-0800",
- "title": "win\ndev - 23.0.1262.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 04 2012 22:21:13 PST-0800",
- "title": "win\ndev - 23.0.1255.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Aug 31 2012 18:17:38 PST-0800",
- "title": "win\ndev - 23.0.1251.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 28 2012 00:25:54 PST-0800",
- "title": "win\ndev - 23.0.1246.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 23 2012 23:54:55 PST-0800",
- "title": "win\ndev - 23.0.1243.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 21 2012 23:18:47 PST-0800",
- "title": "win\ndev - 22.0.1229.12"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 16 2012 23:21:39 PST-0800",
- "title": "win\ndev - 22.0.1229.8"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 14 2012 23:47:34 PST-0800",
- "title": "win\ndev - 22.0.1229.6"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 09 2012 20:31:55 PST-0800",
- "title": "win\ndev - 22.0.1229.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Aug 08 2012 00:27:15 PST-0800",
- "title": "win\ndev - 22.0.1229.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Jul 30 2012 23:47:10 PST-0800",
- "title": "win\ndev - 22.0.1221.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Jul 25 2012 18:00:05 PST-0800",
- "title": "win\ndev - 22.0.1215.3"
- },
- {
- "durationEvent": false,
- "start": "Wed Jul 25 2012 17:44:05 PST-0800",
- "title": "win\ndev - 22.0.1207.1"
- },
- {
- "durationEvent": false,
- "start": "Mon Jul 23 2012 23:56:27 PST-0800",
- "title": "win\ndev - 22.0.1215.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Jul 17 2012 00:55:20 PST-0800",
- "title": "win\ndev - 22.0.1207.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Jul 10 2012 00:02:30 PST-0800",
- "title": "win\ndev - 22.0.1201.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Jun 29 2012 02:43:02 PST-0800",
- "title": "win\ndev - 21.0.1180.15"
- },
- {
- "durationEvent": false,
- "start": "Tue Jun 26 2012 02:18:28 PST-0800",
- "title": "win\ndev - 21.0.1180.11"
- },
- {
- "durationEvent": false,
- "start": "Fri Jun 22 2012 00:00:03 PST-0800",
- "title": "win\ndev - 21.0.1180.4"
- },
- {
- "durationEvent": false,
- "start": "Tue Jun 19 2012 23:29:49 PST-0800",
- "title": "win\ndev - 21.0.1180.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Jun 11 2012 23:44:12 PST-0800",
- "title": "win\ndev - 21.0.1171.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Jun 05 2012 00:47:31 PST-0800",
- "title": "win\ndev - 21.0.1163.0"
- },
- {
- "durationEvent": false,
- "start": "Wed May 30 2012 00:52:58 PST-0800",
- "title": "win\ndev - 21.0.1155.2"
- },
- {
- "durationEvent": false,
- "start": "Tue May 22 2012 00:44:35 PST-0800",
- "title": "win\ndev - 21.0.1145.0"
- },
- {
- "durationEvent": false,
- "start": "Thu May 17 2012 23:34:11 PST-0800",
- "title": "win\ndev - 20.0.1132.11"
- },
- {
- "durationEvent": false,
- "start": "Wed May 16 2012 00:34:12 PST-0800",
- "title": "win\ndev - 20.0.1132.8"
- },
- {
- "durationEvent": false,
- "start": "Fri May 11 2012 20:57:40 PST-0800",
- "title": "win\ndev - 20.0.1132.3"
- },
- {
- "durationEvent": false,
- "start": "Wed May 09 2012 01:08:05 PST-0800",
- "title": "win\ndev - 20.0.1130.1"
- },
- {
- "durationEvent": false,
- "start": "Fri May 04 2012 01:43:59 PST-0800",
- "title": "win\ndev - 20.0.1123.4"
- },
- {
- "durationEvent": false,
- "start": "Wed May 02 2012 06:26:54 PST-0800",
- "title": "win\ndev - 20.0.1123.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Apr 25 2012 00:17:05 PST-0800",
- "title": "win\ndev - 20.0.1115.1"
- },
- {
- "durationEvent": false,
- "start": "Thu Apr 19 2012 19:17:27 PST-0800",
- "title": "win\ndev - 20.0.1105.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Apr 18 2012 00:32:32 PST-0800",
- "title": "win\ndev - 20.0.1105.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 10 2012 22:39:50 PST-0800",
- "title": "win\ndev - 20.0.1096.1"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 06 2012 00:24:37 PST-0800",
- "title": "win\ndev - 19.0.1084.15"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 03 2012 22:45:44 PST-0800",
- "title": "win\ndev - 19.0.1084.9"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 29 2012 23:53:38 PST-0800",
- "title": "win\ndev - 19.0.1084.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 28 2012 20:19:37 PST-0800",
- "title": "win\ndev - 19.0.1081.2"
- },
- {
- "durationEvent": false,
- "start": "Fri Mar 23 2012 22:11:16 PST-0800",
- "title": "win\ndev - 19.0.1077.3"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 15 2012 15:39:24 PST-0800",
- "title": "win\ndev - 19.0.1068.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Mar 13 2012 23:14:16 PST-0800",
- "title": "win\ndev - 19.0.1068.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 07 2012 02:29:03 PST-0800",
- "title": "win\ndev - 19.0.1061.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 29 2012 00:35:00 PST-0800",
- "title": "win\ndev - 19.0.1055.1"
- },
- {
- "durationEvent": false,
- "start": "Fri Feb 24 2012 00:15:03 PST-0800",
- "title": "win\ndev - 19.0.1049.3"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 15 2012 01:26:52 PST-0800",
- "title": "win\ndev - 19.0.1041.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Feb 10 2012 22:28:43 PST-0800",
- "title": "win\ndev - 19.0.1036.7"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 08 2012 02:11:36 PST-0800",
- "title": "win\ndev - 18.0.1025.7"
- },
- {
- "durationEvent": false,
- "start": "Fri Feb 03 2012 02:05:01 PST-0800",
- "title": "win\ndev - 18.0.1025.3"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 01 2012 00:50:43 PST-0800",
- "title": "win\ndev - 18.0.1025.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Jan 25 2012 01:52:32 PST-0800",
- "title": "win\ndev - 18.0.1017.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Jan 18 2012 02:18:21 PST-0800",
- "title": "win\ndev - 18.0.1010.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Jan 11 2012 04:43:37 PST-0800",
- "title": "win\ndev - 18.0.1003.1"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 05 2012 00:02:51 PST-0800",
- "title": "win\ndev - 17.0.963.26"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 16 2011 02:56:07 PST-0800",
- "title": "win\ndev - 17.0.963.12"
- },
- {
- "durationEvent": false,
- "start": "Tue Dec 13 2011 00:20:16 PST-0800",
- "title": "win\ndev - 17.0.963.6"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 09 2011 00:45:52 PST-0800",
- "title": "win\ndev - 17.0.963.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Dec 06 2011 23:45:11 PST-0800",
- "title": "win\ndev - 17.0.963.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Nov 18 2011 00:13:13 PST-0800",
- "title": "win\ndev - 17.0.942.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Nov 15 2011 00:36:36 PST-0800",
- "title": "win\ndev - 17.0.938.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Nov 08 2011 00:01:54 PST-0800",
- "title": "win\ndev - 17.0.932.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Nov 03 2011 23:38:13 PST-0800",
- "title": "win\ndev - 17.0.928.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Nov 01 2011 23:05:53 PST-0800",
- "title": "win\ndev - 16.0.912.21"
- },
- {
- "durationEvent": false,
- "start": "Thu Oct 27 2011 23:08:29 PST-0800",
- "title": "win\ndev - 16.0.912.15"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 26 2011 00:33:00 PST-0800",
- "title": "win\ndev - 16.0.912.12"
- },
- {
- "durationEvent": false,
- "start": "Thu Oct 20 2011 23:31:54 PST-0800",
- "title": "win\ndev - 16.0.912.4"
- },
- {
- "durationEvent": false,
- "start": "Tue Oct 18 2011 23:21:28 PST-0800",
- "title": "win\ndev - 16.0.912.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Oct 10 2011 23:51:01 PST-0800",
- "title": "win\ndev - 16.0.904.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Oct 04 2011 00:00:02 PST-0800",
- "title": "win\ndev - 16.0.899.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 27 2011 00:01:19 PST-0800",
- "title": "win\ndev - 16.0.891.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Sep 23 2011 00:00:04 PST-0800",
- "title": "win\ndev - 16.0.889.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Sep 21 2011 00:29:45 PST-0800",
- "title": "win\ndev - 15.0.874.21"
- },
- {
- "durationEvent": false,
- "start": "Thu Sep 15 2011 23:35:15 PST-0800",
- "title": "win\ndev - 15.0.874.15"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 13 2011 23:00:02 PST-0800",
- "title": "win\ndev - 15.0.874.12"
- },
- {
- "durationEvent": false,
- "start": "Fri Sep 09 2011 01:15:01 PST-0800",
- "title": "win\ndev - 15.0.874.5"
- },
- {
- "durationEvent": false,
- "start": "Wed Sep 07 2011 23:28:26 PST-0800",
- "title": "win\ndev - 15.0.874.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 30 2011 00:53:44 PST-0800",
- "title": "win\ndev - 15.0.865.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Aug 24 2011 23:45:01 PST-0800",
- "title": "win\ndev - 15.0.861.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Aug 17 2011 17:50:57 PST-0800",
- "title": "win\ndev - 15.0.854.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 16 2011 23:32:55 PST-0800",
- "title": "win\ndev - 15.0.849.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 16 2011 23:17:42 PST-0800",
- "title": "win\ndev - 15.0.854.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 11 2011 23:58:00 PST-0800",
- "title": "win\ndev - 15.0.849.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Aug 10 2011 23:45:12 PST-0800",
- "title": "win\ndev - 14.0.835.35"
- },
- {
- "durationEvent": false,
- "start": "Mon Aug 08 2011 23:39:27 PST-0800",
- "title": "win\ndev - 14.0.835.29"
- },
- {
- "durationEvent": false,
- "start": "Fri Aug 05 2011 00:20:22 PST-0800",
- "title": "win\ndev - 14.0.835.18"
- },
- {
- "durationEvent": false,
- "start": "Mon Aug 01 2011 23:30:39 PST-0800",
- "title": "win\ndev - 14.0.835.15"
- },
- {
- "durationEvent": false,
- "start": "Fri Jul 29 2011 00:07:02 PST-0800",
- "title": "win\ndev - 14.0.835.8"
- },
- {
- "durationEvent": false,
- "start": "Wed Jul 27 2011 00:29:22 PST-0800",
- "title": "win\ndev - 14.0.835.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Jul 19 2011 00:18:39 PST-0800",
- "title": "win\ndev - 14.0.825.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Jul 12 2011 00:19:19 PST-0800",
- "title": "win\ndev - 14.0.814.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Jun 28 2011 00:25:51 PST-0800",
- "title": "win\ndev - 14.0.803.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Jun 20 2011 23:31:21 PST-0800",
- "title": "win\ndev - 14.0.797.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 16 2011 23:24:40 PST-0800",
- "title": "win\ndev - 14.0.794.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 16 2011 00:50:32 PST-0800",
- "title": "win\ndev - 13.0.782.24"
- },
- {
- "durationEvent": false,
- "start": "Tue Jun 14 2011 01:22:42 PST-0800",
- "title": "win\ndev - 13.0.782.20"
- },
- {
- "durationEvent": false,
- "start": "Fri Jun 10 2011 00:54:02 PST-0800",
- "title": "win\ndev - 13.0.782.14"
- },
- {
- "durationEvent": false,
- "start": "Wed Jun 08 2011 21:28:42 PST-0800",
- "title": "win\ndev - 13.0.782.13"
- },
- {
- "durationEvent": false,
- "start": "Wed Jun 08 2011 00:42:42 PST-0800",
- "title": "win\ndev - 13.0.782.11"
- },
- {
- "durationEvent": false,
- "start": "Mon Jun 06 2011 05:45:01 PST-0800",
- "title": "win\ndev - 13.0.782.10"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 02 2011 00:18:23 PST-0800",
- "title": "win\ndev - 13.0.782.1"
- },
- {
- "durationEvent": false,
- "start": "Tue May 24 2011 00:23:25 PST-0800",
- "title": "win\ndev - 13.0.772.0"
- },
- {
- "durationEvent": false,
- "start": "Tue May 17 2011 21:36:01 PST-0800",
- "title": "win\ndev - 13.0.767.1"
- },
- {
- "durationEvent": false,
- "start": "Thu May 12 2011 21:30:02 PST-0800",
- "title": "win\ndev - 13.0.761.0"
- },
- {
- "durationEvent": false,
- "start": "Sat May 07 2011 00:26:42 PST-0800",
- "title": "win\ndev - 12.0.742.30"
- },
- {
- "durationEvent": false,
- "start": "Fri May 06 2011 00:50:01 PST-0800",
- "title": "win\ndev - 12.0.742.21"
- },
- {
- "durationEvent": false,
- "start": "Tue May 03 2011 01:32:45 PST-0800",
- "title": "win\ndev - 12.0.742.16"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 29 2011 00:47:01 PST-0800",
- "title": "win\ndev - 12.0.742.12"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 26 2011 00:48:15 PST-0800",
- "title": "win\ndev - 12.0.742.9"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 22 2011 21:52:40 PST-0800",
- "title": "win\ndev - 12.0.742.5"
- },
- {
- "durationEvent": false,
- "start": "Thu Apr 21 2011 01:07:21 PST-0800",
- "title": "win\ndev - 12.0.742.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Apr 13 2011 00:18:03 PST-0800",
- "title": "win\ndev - 12.0.733.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Apr 06 2011 01:25:31 PST-0800",
- "title": "win\ndev - 12.0.725.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 24 2011 23:56:50 PST-0800",
- "title": "win\ndev - 12.0.712.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Mar 21 2011 23:12:14 PST-0800",
- "title": "win\ndev - 11.0.696.16"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 17 2011 23:35:19 PST-0800",
- "title": "win\ndev - 11.0.696.14"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 16 2011 00:37:36 PST-0800",
- "title": "win\ndev - 11.0.696.12"
- },
- {
- "durationEvent": false,
- "start": "Fri Mar 11 2011 02:25:22 PST-0800",
- "title": "win\ndev - 11.0.696.3"
- },
- {
- "durationEvent": false,
- "start": "Wed Mar 09 2011 02:42:49 PST-0800",
- "title": "win\ndev - 11.0.696.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Mar 03 2011 22:40:08 PST-0800",
- "title": "win\ndev - 11.0.686.3"
- },
- {
- "durationEvent": false,
- "start": "Tue Mar 01 2011 20:35:16 PST-0800",
- "title": "win\ndev - 11.0.686.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Mar 01 2011 02:36:12 PST-0800",
- "title": "win\ndev - 11.0.686.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Feb 17 2011 23:15:13 PST-0800",
- "title": "win\ndev - 11.0.672.2"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 16 2011 23:02:09 PST-0800",
- "title": "win\ndev - 10.0.648.82"
- },
- {
- "durationEvent": false,
- "start": "Wed Feb 09 2011 01:08:19 PST-0800",
- "title": "win\ndev - 10.0.648.45"
- },
- {
- "durationEvent": false,
- "start": "Fri Feb 04 2011 01:31:33 PST-0800",
- "title": "win\ndev - 10.0.648.18"
- },
- {
- "durationEvent": false,
- "start": "Tue Feb 01 2011 04:02:58 PST-0800",
- "title": "win\ndev - 10.0.648.11"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 27 2011 01:58:03 PST-0800",
- "title": "win\ndev - 10.0.648.6"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 20 2011 20:34:10 PST-0800",
- "title": "win\ndev - 10.0.642.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Jan 11 2011 20:29:22 PST-0800",
- "title": "win\ndev - 10.0.634.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jan 06 2011 06:16:24 PST-0800",
- "title": "win\ndev - 10.0.628.0"
- },
- {
- "durationEvent": false,
- "start": "Mon Dec 20 2010 19:43:27 PST-0800",
- "title": "win\ndev - 10.0.612.3"
- },
- {
- "durationEvent": false,
- "start": "Thu Dec 16 2010 23:09:02 PST-0800",
- "title": "win\ndev - 10.0.612.1"
- },
- {
- "durationEvent": false,
- "start": "Tue Dec 14 2010 01:51:30 PST-0800",
- "title": "win\ndev - 9.0.597.19"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 10 2010 17:40:35 PST-0800",
- "title": "win\ndev - 9.0.597.16"
- },
- {
- "durationEvent": false,
- "start": "Fri Dec 10 2010 02:13:57 PST-0800",
- "title": "win\ndev - 9.0.597.15"
- },
- {
- "durationEvent": false,
- "start": "Tue Dec 07 2010 02:02:57 PST-0800",
- "title": "win\ndev - 9.0.597.10"
- },
- {
- "durationEvent": false,
- "start": "Wed Dec 01 2010 22:58:13 PST-0800",
- "title": "win\ndev - 9.0.597.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Nov 19 2010 01:08:11 PST-0800",
- "title": "win\ndev - 9.0.587.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Nov 10 2010 00:46:46 PST-0800",
- "title": "win\ndev - 9.0.576.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Nov 05 2010 01:20:03 PST-0800",
- "title": "win\ndev - 9.0.570.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Nov 03 2010 01:02:56 PST-0800",
- "title": "win\ndev - 9.0.570.0"
- },
- {
- "durationEvent": false,
- "start": "Sat Oct 30 2010 01:11:40 PST-0800",
- "title": "win\ndev - 8.0.552.23"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 27 2010 01:07:18 PST-0800",
- "title": "win\ndev - 8.0.552.18"
- },
- {
- "durationEvent": false,
- "start": "Thu Oct 21 2010 23:21:07 PST-0800",
- "title": "win\ndev - 8.0.552.11"
- },
- {
- "durationEvent": false,
- "start": "Tue Oct 19 2010 03:29:35 PST-0800",
- "title": "win\ndev - 8.0.552.5"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 13 2010 00:03:39 PST-0800",
- "title": "win\ndev - 8.0.552.0"
- },
- {
- "durationEvent": false,
- "start": "Wed Oct 06 2010 22:51:53 PST-0800",
- "title": "win\ndev - 7.0.544.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Sep 30 2010 20:34:16 PST-0800",
- "title": "win\ndev - 7.0.536.2"
- },
- {
- "durationEvent": false,
- "start": "Tue Sep 28 2010 22:49:52 PST-0800",
- "title": "win\ndev - 7.0.517.24"
- },
- {
- "durationEvent": false,
- "start": "Fri Sep 24 2010 23:15:18 PST-0800",
- "title": "win\ndev - 7.0.517.17"
- },
- {
- "durationEvent": false,
- "start": "Fri Sep 17 2010 01:02:24 PST-0800",
- "title": "win\ndev - 7.0.517.8"
- },
- {
- "durationEvent": false,
- "start": "Mon Sep 13 2010 21:15:08 PST-0800",
- "title": "win\ndev - 7.0.517.5"
- },
- {
- "durationEvent": false,
- "start": "Thu Sep 09 2010 01:03:59 PST-0800",
- "title": "win\ndev - 7.0.517.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 26 2010 00:05:03 PST-0800",
- "title": "win\ndev - 7.0.503.0"
- },
- {
- "durationEvent": false,
- "start": "Tue Aug 17 2010 22:28:45 PST-0800",
- "title": "win\ndev - 6.0.495.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Aug 13 2010 14:23:58 PST-0800",
- "title": "win\ndev - 6.0.490.1"
- },
- {
- "durationEvent": false,
- "start": "Fri Aug 06 2010 22:53:12 PST-0800",
- "title": "win\ndev - 6.0.472.25"
- },
- {
- "durationEvent": false,
- "start": "Thu Aug 05 2010 00:22:02 PST-0800",
- "title": "win\ndev - 6.0.472.22"
- },
- {
- "durationEvent": false,
- "start": "Fri Jul 30 2010 23:14:34 PST-0800",
- "title": "win\ndev - 6.0.472.14"
- },
- {
- "durationEvent": false,
- "start": "Wed Jul 28 2010 23:49:30 PST-0800",
- "title": "win\ndev - 6.0.472.11"
- },
- {
- "durationEvent": false,
- "start": "Thu Jul 22 2010 00:09:53 PST-0800",
- "title": "win\ndev - 6.0.472.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jul 15 2010 22:58:14 PST-0800",
- "title": "win\ndev - 6.0.466.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Jul 09 2010 14:18:49 PST-0800",
- "title": "win\ndev - 6.0.458.1"
- },
- {
- "durationEvent": false,
- "start": "Fri Jul 02 2010 23:12:13 PST-0800",
- "title": "win\ndev - 6.0.453.1"
- },
- {
- "durationEvent": false,
- "start": "Fri Jun 25 2010 01:37:06 PST-0800",
- "title": "win\ndev - 6.0.447.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Jun 18 2010 19:49:04 PST-0800",
- "title": "win\ndev - 6.0.437.3"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 17 2010 23:02:50 PST-0800",
- "title": "win\ndev - 6.0.427.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 17 2010 18:31:39 PST-0800",
- "title": "win\ndev - 6.0.437.1"
- },
- {
- "durationEvent": false,
- "start": "Wed Jun 09 2010 17:42:14 PST-0800",
- "title": "win\ndev - 6.0.427.0"
- },
- {
- "durationEvent": false,
- "start": "Thu Jun 03 2010 18:37:41 PST-0800",
- "title": "win\ndev - 6.0.422.0"
- },
- {
- "durationEvent": false,
- "start": "Thu May 20 2010 21:03:10 PST-0800",
- "title": "win\ndev - 6.0.408.1"
- },
- {
- "durationEvent": false,
- "start": "Fri May 14 2010 03:19:25 PST-0800",
- "title": "win\ndev - 6.0.401.1"
- },
- {
- "durationEvent": false,
- "start": "Fri May 07 2010 01:36:38 PST-0800",
- "title": "win\ndev - 5.0.396.0"
- },
- {
- "durationEvent": false,
- "start": "Tue May 04 2010 01:31:54 PST-0800",
- "title": "win\ndev - 5.0.375.29"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 30 2010 22:08:37 PST-0800",
- "title": "win\ndev - 5.0.375.28"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 27 2010 20:56:13 PST-0800",
- "title": "win\ndev - 5.0.375.23"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 23 2010 00:30:19 PST-0800",
- "title": "win\ndev - 5.0.375.17"
- },
- {
- "durationEvent": false,
- "start": "Sat Apr 17 2010 01:18:06 PST-0800",
- "title": "win\ndev - 5.0.375.9"
- },
- {
- "durationEvent": false,
- "start": "Wed Apr 14 2010 23:39:10 PST-0800",
- "title": "win\ndev - 5.0.375.7"
- },
- {
- "durationEvent": false,
- "start": "Tue Apr 13 2010 01:11:37 PST-0800",
- "title": "win\ndev - 5.0.375.3"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 09 2010 01:12:39 PST-0800",
- "title": "win\ndev - 5.0.371.0"
- },
- {
- "durationEvent": false,
- "start": "Fri Apr 02 2010 18:16:57 PST-0800",
- "title": "win\ndev - 5.0.366.2"
- }
- ],
- "wiki-section": "A brief history of Chrome",
- "wiki-url": "http://simile.mit.edu/shelf/"
-}
+[{"timestamp": "2014-06-03 14:20:11.466940", "version": "37.0.2024.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-28 17:34:14.640050", "version": "37.0.2017.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-23 00:42:16.974880", "version": "37.0.2008.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-20 18:31:15.985070", "version": "36.0.1985.18", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-15 23:55:15.924940", "version": "36.0.1985.5", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-13 17:00:10.004960", "version": "36.0.1985.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-05-06 22:39:01.402240", "version": "36.0.1976.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-30 21:51:18.067990", "version": "36.0.1964.4", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-29 17:35:11.397850", "version": "36.0.1964.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-24 22:42:37.461710", "version": "36.0.1951.5", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-15 23:55:39.012960", "version": "36.0.1941.0", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-10 21:26:42.836030", "version": "36.0.1933.0", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-08 17:40:09.919590", "version": "35.0.1916.27", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-04 14:24:42.078490", "version": "35.0.1916.17", "os": "win", "channel": "dev"}, {"timestamp": "2014-04-03 16:34:05.903530", "version": "35.0.1916.14", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-31 20:24:18.562490", "version": "35.0.1916.6", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-27 19:12:14.284860", "version": "35.0.1912.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-25 22:12:43.934170", "version": "35.0.1908.4", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-18 19:12:45.029430", "version": "35.0.1897.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-11 15:52:03.062480", "version": "35.0.1883.0", "os": "win", "channel": "dev"}, {"timestamp": "2014-03-04 17:08:05.147800", "version": "35.0.1870.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-27 20:15:24.982930", "version": "35.0.1862.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-25 18:56:50.835670", "version": "34.0.1847.11", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-20 01:00:09.105560", "version": "34.0.1847.3", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-14 01:02:31.857440", "version": "34.0.1838.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-12 08:09:51.218870", "version": "34.0.1833.5", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-06 16:16:44.348590", "version": "34.0.1825.4", "os": "win", "channel": "dev"}, {"timestamp": "2014-02-05 20:10:09.511680", "version": "34.0.1820.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-28 20:49:26.805000", "version": "34.0.1809.0", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-21 21:34:21.385560", "version": "34.0.1797.2", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-16 20:06:23.869950", "version": "34.0.1788.0", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-14 15:52:46.003690", "version": "33.0.1750.29", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-13 16:52:00.486800", "version": "33.0.1750.27", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-09 16:13:53.961450", "version": "33.0.1750.22", "os": "win", "channel": "dev"}, {"timestamp": "2014-01-08 05:33:56.762720", "version": "33.0.1750.18", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-19 19:49:09.574590", "version": "33.0.1750.5", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-18 01:33:20.112740", "version": "33.0.1750.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-12 20:48:25.292070", "version": "33.0.1736.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-11 18:37:56.569580", "version": "33.0.1734.5", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-06 21:42:30.823000", "version": "33.0.1729.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-12-03 16:28:07.934720", "version": "33.0.1726.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-11-21 18:52:48.991750", "version": "33.0.1712.4", "os": "win", "channel": "dev"}, {"timestamp": "2013-11-20 02:16:12.385330", "version": "33.0.1712.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-11-12 16:40:15.159270", "version": "33.0.1707.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-11-07 14:51:35.231580", "version": "32.0.1700.6", "os": "win", "channel": "dev"}, {"timestamp": "2013-11-05 23:25:13.273680", "version": "32.0.1700.4", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-31 19:34:38.528860", "version": "32.0.1687.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-29 20:22:29.668330", "version": "32.0.1685.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-22 19:47:38.530570", "version": "32.0.1678.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-17 18:06:15.765170", "version": "32.0.1671.4", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-15 20:08:18.091540", "version": "32.0.1671.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-09 14:25:52.405750", "version": "32.0.1664.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-04 00:12:16.636970", "version": "32.0.1659.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-10-02 00:52:42.386520", "version": "31.0.1650.8", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-26 14:40:17.476110", "version": "31.0.1650.4", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-25 03:12:18.996600", "version": "31.0.1650.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-19 22:59:22.657090", "version": "31.0.1636.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-19 01:37:49.821160", "version": "31.0.1632.7", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-12 22:32:48.501310", "version": "31.0.1626.5", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-10 22:35:15.246280", "version": "31.0.1626.1", "os": "win", "channel": "dev"}, {"timestamp": "2013-09-06 02:43:36.410970", "version": "31.0.1622.7", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-28 20:56:45.395210", "version": "31.0.1612.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-28 01:32:03.681630", "version": "31.0.1612.1", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-20 13:28:08.161490", "version": "30.0.1599.14", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-15 22:36:45.696890", "version": "30.0.1599.10", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-13 16:11:10.052430", "version": "30.0.1599.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-08-06 18:52:06.791740", "version": "30.0.1588.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-30 20:08:35.055580", "version": "30.0.1581.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-23 19:29:24.547040", "version": "30.0.1573.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-18 23:01:29.276420", "version": "30.0.1568.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-16 22:24:11.526890", "version": "30.0.1566.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-15 22:00:12.802300", "version": "29.0.1547.22", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-11 21:05:36.722350", "version": "29.0.1547.18", "os": "win", "channel": "dev"}, {"timestamp": "2013-07-08 22:38:42.088720", "version": "29.0.1547.15", "os": "win", "channel": "dev"}, {"timestamp": "2013-06-25 20:46:46.536100", "version": "29.0.1547.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-06-18 22:59:55.045240", "version": "29.0.1541.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-06-12 01:26:30.924470", "version": "29.0.1535.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-06-06 22:41:06.770150", "version": "29.0.1530.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-29 17:58:53.665720", "version": "29.0.1521.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-24 17:57:59.583870", "version": "29.0.1516.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-21 20:39:44.712530", "version": "28.0.1500.20", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-13 19:30:30.489720", "version": "28.0.1500.11", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-09 19:58:41.813520", "version": "28.0.1500.5", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-07 23:38:18.617460", "version": "28.0.1500.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-05-02 23:41:18.903620", "version": "28.0.1496.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-30 23:25:13.544170", "version": "28.0.1490.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-22 22:59:15.937080", "version": "28.0.1485.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-16 00:48:20.258500", "version": "28.0.1478.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-09 02:46:07.932850", "version": "28.0.1469.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-05 18:19:28.047880", "version": "28.0.1464.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-04-02 17:53:25.145500", "version": "27.0.1453.12", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-29 18:16:49.135440", "version": "27.0.1453.9", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-28 18:59:48.314880", "version": "27.0.1453.6", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-27 01:53:23.549490", "version": "27.0.1453.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-21 21:49:11.673003", "version": "27.0.1448.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-19 00:30:49.325001", "version": "27.0.1444.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-13 17:35:03.840143", "version": "27.0.1438.7", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-06 18:32:27.534513", "version": "27.0.1430.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-05 23:32:37.811235", "version": "27.0.1430.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-03-01 01:11:51.636345", "version": "27.0.1425.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-26 22:03:01.937236", "version": "27.0.1423.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-22 00:09:52.181335", "version": "26.0.1410.12", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-20 00:15:47.421613", "version": "26.0.1410.10", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-14 20:18:49.043086", "version": "26.0.1410.5", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-13 01:49:23.707966", "version": "26.0.1410.3", "os": "win", "channel": "dev"}, {"timestamp": "2013-02-05 00:43:13.792515", "version": "26.0.1403.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-01-30 21:11:13.672237", "version": "26.0.1397.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-01-17 22:44:44.632486", "version": "26.0.1386.0", "os": "win", "channel": "dev"}, {"timestamp": "2013-01-16 01:48:57.646407", "version": "26.0.1384.2", "os": "win", "channel": "dev"}, {"timestamp": "2013-01-10 23:07:12.859265", "version": "25.0.1364.29", "os": "win", "channel": "dev"}, {"timestamp": "2013-01-08 00:05:42.205853", "version": "25.0.1364.26", "os": "win", "channel": "dev"}, {"timestamp": "2012-12-20 22:09:26.410205", "version": "25.0.1364.5", "os": "win", "channel": "dev"}, {"timestamp": "2012-12-19 02:42:39.891241", "version": "25.0.1364.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-12-14 02:37:09.422238", "version": "25.0.1359.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-12-10 22:13:57.477126", "version": "25.0.1354.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-12-07 00:16:59.533106", "version": "25.0.1349.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-11-28 23:28:57.174249", "version": "25.0.1337.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-11-13 00:52:33.199907", "version": "25.0.1323.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-11-06 19:47:19.447099", "version": "24.0.1312.5", "os": "win", "channel": "dev"}, {"timestamp": "2012-11-01 19:24:01.894562", "version": "24.0.1312.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-10-31 00:02:11.721761", "version": "24.0.1312.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-10-24 19:15:16.032706", "version": "24.0.1305.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-10-16 21:19:13.934724", "version": "24.0.1297.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-10-09 21:43:57.388586", "version": "24.0.1290.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-10-03 00:26:19.358696", "version": "24.0.1284.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-27 18:02:10.613799", "version": "23.0.1271.10", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-25 21:21:48.349277", "version": "23.0.1271.6", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-20 19:44:35.978350", "version": "23.0.1271.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-18 22:20:03.359033", "version": "23.0.1270.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-11 00:20:53.369165", "version": "23.0.1262.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-09-04 22:21:13.241591", "version": "23.0.1255.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-31 18:17:38.950756", "version": "23.0.1251.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-28 00:25:54.509043", "version": "23.0.1246.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-23 23:54:55.732357", "version": "23.0.1243.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-21 23:18:47.854439", "version": "22.0.1229.12", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-16 23:21:39.455435", "version": "22.0.1229.8", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-14 23:47:34.092347", "version": "22.0.1229.6", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-09 20:31:55.344300", "version": "22.0.1229.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-08-08 00:27:15.391271", "version": "22.0.1229.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-07-30 23:47:10.355043", "version": "22.0.1221.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-07-25 18:00:05.742833", "version": "22.0.1215.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-07-25 17:44:05.066159", "version": "22.0.1207.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-07-23 23:56:27.699693", "version": "22.0.1215.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-07-10 00:02:30.417237", "version": "22.0.1201.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-29 02:43:02.275037", "version": "21.0.1180.15", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-26 02:18:28.893003", "version": "21.0.1180.11", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-22 00:00:03.686656", "version": "21.0.1180.4", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-19 23:29:49.503880", "version": "21.0.1180.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-11 23:44:12.497616", "version": "21.0.1171.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-06-05 00:47:31.436958", "version": "21.0.1163.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-30 00:52:58.227015", "version": "21.0.1155.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-22 00:44:35.275578", "version": "21.0.1145.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-17 23:34:11.088684", "version": "20.0.1132.11", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-16 00:34:12.839658", "version": "20.0.1132.8", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-11 20:57:40.039867", "version": "20.0.1132.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-09 01:08:05.596451", "version": "20.0.1130.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-04 01:43:59.271464", "version": "20.0.1123.4", "os": "win", "channel": "dev"}, {"timestamp": "2012-05-02 06:26:54.601413", "version": "20.0.1123.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-25 00:17:05.365861", "version": "20.0.1115.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-19 19:17:27.858190", "version": "20.0.1105.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-18 00:32:32.752429", "version": "20.0.1105.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-10 22:39:50.903181", "version": "20.0.1096.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-06 00:24:37.313690", "version": "19.0.1084.15", "os": "win", "channel": "dev"}, {"timestamp": "2012-04-03 22:45:44.162647", "version": "19.0.1084.9", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-29 23:53:38.806929", "version": "19.0.1084.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-28 20:19:37.578118", "version": "19.0.1081.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-23 22:11:16.748494", "version": "19.0.1077.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-15 15:39:24.417446", "version": "19.0.1068.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-13 23:14:16.841667", "version": "19.0.1068.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-03-07 02:29:03.087025", "version": "19.0.1061.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-29 00:35:00.361479", "version": "19.0.1055.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-24 00:15:03.802307", "version": "19.0.1049.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-15 01:26:52.693277", "version": "19.0.1041.0", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-10 22:28:43.002042", "version": "19.0.1036.7", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-08 02:11:36.342233", "version": "18.0.1025.7", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-03 02:05:01.992245", "version": "18.0.1025.3", "os": "win", "channel": "dev"}, {"timestamp": "2012-02-01 00:50:43.302643", "version": "18.0.1025.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-01-25 01:52:32.852157", "version": "18.0.1017.2", "os": "win", "channel": "dev"}, {"timestamp": "2012-01-18 02:18:21.471775", "version": "18.0.1010.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-01-11 04:43:37.274858", "version": "18.0.1003.1", "os": "win", "channel": "dev"}, {"timestamp": "2012-01-05 00:02:51.015231", "version": "17.0.963.26", "os": "win", "channel": "dev"}, {"timestamp": "2011-12-16 02:56:07.709380", "version": "17.0.963.12", "os": "win", "channel": "dev"}, {"timestamp": "2011-12-13 00:20:16.966016", "version": "17.0.963.6", "os": "win", "channel": "dev"}, {"timestamp": "2011-12-09 00:45:52.579935", "version": "17.0.963.2", "os": "win", "channel": "dev"}, {"timestamp": "2011-12-06 23:45:11.121224", "version": "17.0.963.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-11-18 00:13:13.547951", "version": "17.0.942.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-11-15 00:36:36.682142", "version": "17.0.938.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-11-08 00:01:54.107311", "version": "17.0.932.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-11-03 23:38:13.871933", "version": "17.0.928.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-11-01 23:05:53.469821", "version": "16.0.912.21", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-27 23:08:29.273571", "version": "16.0.912.15", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-26 00:33:00.645906", "version": "16.0.912.12", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-20 23:31:54.410987", "version": "16.0.912.4", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-18 23:21:28.765917", "version": "16.0.912.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-10 23:51:01.411375", "version": "16.0.904.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-10-04 00:00:02.368667", "version": "16.0.899.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-27 00:01:19.501162", "version": "16.0.891.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-23 00:00:04.600297", "version": "16.0.889.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-21 00:29:45.279457", "version": "15.0.874.21", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-15 23:35:15.396772", "version": "15.0.874.15", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-13 23:00:02.220450", "version": "15.0.874.12", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-09 01:15:01.462271", "version": "15.0.874.5", "os": "win", "channel": "dev"}, {"timestamp": "2011-09-07 23:28:26.943667", "version": "15.0.874.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-30 00:53:44.167535", "version": "15.0.865.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-24 23:45:01.557603", "version": "15.0.861.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-17 17:50:57.766559", "version": "15.0.854.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-16 23:32:55.862838", "version": "15.0.849.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-10 23:45:12.449065", "version": "14.0.835.35", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-08 23:39:27.586298", "version": "14.0.835.29", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-05 00:20:22.656768", "version": "14.0.835.18", "os": "win", "channel": "dev"}, {"timestamp": "2011-08-01 23:30:39.166312", "version": "14.0.835.15", "os": "win", "channel": "dev"}, {"timestamp": "2011-07-29 00:07:02.915730", "version": "14.0.835.8", "os": "win", "channel": "dev"}, {"timestamp": "2011-07-27 00:29:22.495411", "version": "14.0.835.2", "os": "win", "channel": "dev"}, {"timestamp": "2011-07-19 00:18:39.510135", "version": "14.0.825.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-07-12 00:19:19.815197", "version": "14.0.814.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-28 00:25:51.373550", "version": "14.0.803.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-20 23:31:21.882224", "version": "14.0.797.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-16 23:24:40.782210", "version": "14.0.794.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-16 00:50:32.462022", "version": "13.0.782.24", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-14 01:22:42.462647", "version": "13.0.782.20", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-10 00:54:02.498892", "version": "13.0.782.14", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-08 21:28:42.336949", "version": "13.0.782.13", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-08 00:42:42.523798", "version": "13.0.782.11", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-06 05:45:01.690681", "version": "13.0.782.10", "os": "win", "channel": "dev"}, {"timestamp": "2011-06-02 00:18:23.923209", "version": "13.0.782.1", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-24 00:23:25.417993", "version": "13.0.772.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-17 21:36:01.649909", "version": "13.0.767.1", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-12 21:30:02.816615", "version": "13.0.761.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-07 00:26:42.381502", "version": "12.0.742.30", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-06 00:50:01.184756", "version": "12.0.742.21", "os": "win", "channel": "dev"}, {"timestamp": "2011-05-03 01:32:45.837483", "version": "12.0.742.16", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-29 00:47:01.978221", "version": "12.0.742.12", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-26 00:48:15.791589", "version": "12.0.742.9", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-22 21:52:40.866321", "version": "12.0.742.5", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-21 01:07:21.274640", "version": "12.0.742.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-13 00:18:03.352933", "version": "12.0.733.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-04-06 01:25:31.730658", "version": "12.0.725.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-24 23:56:50.353141", "version": "12.0.712.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-21 23:12:14.929546", "version": "11.0.696.16", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-17 23:35:19.195017", "version": "11.0.696.14", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-16 00:37:36.670682", "version": "11.0.696.12", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-11 02:25:22.766989", "version": "11.0.696.3", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-09 02:42:49.254367", "version": "11.0.696.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-03 22:40:08.703552", "version": "11.0.686.3", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-01 20:35:16.946853", "version": "11.0.686.1", "os": "win", "channel": "dev"}, {"timestamp": "2011-03-01 02:36:12.261887", "version": "11.0.686.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-02-17 23:15:13.205432", "version": "11.0.672.2", "os": "win", "channel": "dev"}, {"timestamp": "2011-02-16 23:02:09.686153", "version": "10.0.648.82", "os": "win", "channel": "dev"}, {"timestamp": "2011-02-09 01:08:19.428149", "version": "10.0.648.45", "os": "win", "channel": "dev"}, {"timestamp": "2011-02-04 01:31:33.914043", "version": "10.0.648.18", "os": "win", "channel": "dev"}, {"timestamp": "2011-02-01 04:02:58.551081", "version": "10.0.648.11", "os": "win", "channel": "dev"}, {"timestamp": "2011-01-27 01:58:03.833503", "version": "10.0.648.6", "os": "win", "channel": "dev"}, {"timestamp": "2011-01-20 20:34:10.485114", "version": "10.0.642.2", "os": "win", "channel": "dev"}, {"timestamp": "2011-01-11 20:29:22.440018", "version": "10.0.634.0", "os": "win", "channel": "dev"}, {"timestamp": "2011-01-06 06:16:24.266016", "version": "10.0.628.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-20 19:43:27.003393", "version": "10.0.612.3", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-16 23:09:02.613656", "version": "10.0.612.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-14 01:51:30.028630", "version": "9.0.597.19", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-10 17:40:35.218863", "version": "9.0.597.16", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-10 02:13:57.432350", "version": "9.0.597.15", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-07 02:02:57.524983", "version": "9.0.597.10", "os": "win", "channel": "dev"}, {"timestamp": "2010-12-01 22:58:13.664530", "version": "9.0.597.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-11-19 01:08:11.505390", "version": "9.0.587.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-11-10 00:46:46.659929", "version": "9.0.576.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-11-05 01:20:03.009405", "version": "9.0.570.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-11-03 01:02:56.557176", "version": "9.0.570.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-30 01:11:40.679688", "version": "8.0.552.23", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-27 01:07:18.524939", "version": "8.0.552.18", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-21 23:21:07.362399", "version": "8.0.552.11", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-19 03:29:35.380392", "version": "8.0.552.5", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-13 00:03:39.843245", "version": "8.0.552.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-10-06 22:51:53.761849", "version": "7.0.544.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-30 20:34:16.449689", "version": "7.0.536.2", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-28 22:49:52.102607", "version": "7.0.517.24", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-24 23:15:18.317542", "version": "7.0.517.17", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-17 01:02:24.580776", "version": "7.0.517.8", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-13 21:15:08.408742", "version": "7.0.517.5", "os": "win", "channel": "dev"}, {"timestamp": "2010-09-09 01:03:59.649612", "version": "7.0.517.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-08-26 00:05:03.192544", "version": "7.0.503.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-08-17 22:28:45.281781", "version": "6.0.495.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-08-13 14:23:58.981512", "version": "6.0.490.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-08-06 22:53:12.693314", "version": "6.0.472.25", "os": "win", "channel": "dev"}, {"timestamp": "2010-08-05 00:22:02.989672", "version": "6.0.472.22", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-30 23:14:34.906503", "version": "6.0.472.14", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-28 23:49:30.339032", "version": "6.0.472.11", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-22 00:09:53.631080", "version": "6.0.472.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-15 22:58:14.785376", "version": "6.0.466.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-09 14:18:49.147870", "version": "6.0.458.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-07-02 23:12:13.572119", "version": "6.0.453.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-06-25 01:37:06.165522", "version": "6.0.447.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-06-18 19:49:04.312351", "version": "6.0.437.3", "os": "win", "channel": "dev"}, {"timestamp": "2010-06-17 23:02:50.189680", "version": "6.0.427.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-06-17 18:31:39.466049", "version": "6.0.437.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-06-03 18:37:41.545861", "version": "6.0.422.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-05-20 21:03:10.341977", "version": "6.0.408.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-05-14 03:19:25.209091", "version": "6.0.401.1", "os": "win", "channel": "dev"}, {"timestamp": "2010-05-07 01:36:38.203980", "version": "5.0.396.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-05-04 01:31:54.330134", "version": "5.0.375.29", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-30 22:08:37.591885", "version": "5.0.375.28", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-27 20:56:13.817069", "version": "5.0.375.23", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-23 00:30:19.613747", "version": "5.0.375.17", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-17 01:18:06.570807", "version": "5.0.375.9", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-14 23:39:10.591308", "version": "5.0.375.7", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-13 01:11:37.789960", "version": "5.0.375.3", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-09 01:12:39.670401", "version": "5.0.371.0", "os": "win", "channel": "dev"}, {"timestamp": "2010-04-02 18:16:57.406165", "version": "5.0.366.2", "os": "win", "channel": "dev"}] \ No newline at end of file
diff --git a/chromium/chrome/common/extensions/docs/server2/test_data/file_system/stat_result.json b/chromium/chrome/common/extensions/docs/server2/test_data/file_system/stat_result.json
index a6c93703063..3e85bb2e714 100644
--- a/chromium/chrome/common/extensions/docs/server2/test_data/file_system/stat_result.json
+++ b/chromium/chrome/common/extensions/docs/server2/test_data/file_system/stat_result.json
@@ -52,7 +52,6 @@
"top_sites.json": "136747",
"page_actions.json": "136747",
"page_action.json": "137065",
- "experimental_discovery.idl": "149243",
"history.json": "129086",
"bookmarks.json": "149307",
"permissions.json": "124878",
diff --git a/chromium/chrome/common/extensions/docs/server2/test_data/github_file_system/expected_list.json b/chromium/chrome/common/extensions/docs/server2/test_data/github_file_system/expected_list.json
index 78ef29670b4..eee9d7f4f26 100644
--- a/chromium/chrome/common/extensions/docs/server2/test_data/github_file_system/expected_list.json
+++ b/chromium/chrome/common/extensions/docs/server2/test_data/github_file_system/expected_list.json
@@ -1,5 +1,5 @@
{
- "/": [
+ "": [
".gitignore",
"README.md",
"analytics/",
diff --git a/chromium/chrome/common/extensions/docs/server2/test_data/test_json/fake_data_source.json b/chromium/chrome/common/extensions/docs/server2/test_data/test_json/fake_data_source.json
deleted file mode 100644
index 49a4b1ce5a5..00000000000
--- a/chromium/chrome/common/extensions/docs/server2/test_data/test_json/fake_data_source.json
+++ /dev/null
@@ -1,112 +0,0 @@
-{
- "baz": {
- "events": [
- { "name": "baz_e1" },
- { "name": "baz_e2" },
- { "name": "baz_e3" }
- ],
- "functions": [
- { "name": "baz_f1" },
- { "name": "baz_f2" },
- { "name": "baz_f3" }
- ],
- "types": [
- { "name": "baz_t1" },
- { "name": "baz_t2" },
- { "name": "baz_t3" }
- ],
- "properties": [
- { "name": "baz_p1" },
- { "name": "baz_p2" },
- { "name": "baz_p3" }
- ]
- },
- "bar.bon": {
- "events": [
- { "name": "bar_bon_e1" },
- { "name": "bar_bon_e2" },
- { "name": "bar_bon_e3" }
- ],
- "functions": [
- { "name": "bar_bon_f1" },
- { "name": "bar_bon_f2" },
- { "name": "bar_bon_f3" }
- ],
- "types": [
- { "name": "bar_bon_t1" },
- { "name": "bar_bon_t2" },
- { "name": "bar_bon_t3" }
- ],
- "properties": [
- { "name": "bar_bon_p1" },
- { "name": "bar_bon_p2" },
- { "name": "bar_bon_p3" }
- ]
- },
- "bar": {
- "events": [
- { "name": "bar_e1" },
- { "name": "bar_e2" },
- { "name": "bar_e3" }
- ],
- "functions": [
- { "name": "bar_f1" },
- { "name": "bar_f2" },
- { "name": "bar_f3" }
- ],
- "types": [
- {
- "name": "bar_t1",
- "properties": [
- { "name": "bar_t1_p1" }
- ]
- },
- {
- "name": "bar_t2",
- "properties": [
- { "name": "bar_t2_p1" }
- ]
- },
- { "name": "bar_t3" },
- { "name": "bon" }
- ],
- "properties": [
- { "name": "bar_p1" },
- { "name": "bar_p2" },
- {
- "name": "bar_p3",
- "link": { "name": "bar_t1" }
- }
- ]
- },
- "foo": {
- "events": [
- { "name": "foo_e1" },
- { "name": "foo_e2" },
- { "name": "foo_e3" }
- ],
- "functions": [
- { "name": "foo_f1" },
- { "name": "foo_f2" },
- { "name": "foo_f3" }
- ],
- "types": [
- { "name": "foo_t1" },
- { "name": "foo_t2" },
- {
- "name": "foo_t3",
- "events": [
- { "name": "foo_t3_e1" }
- ]
- }
- ],
- "properties": [
- {
- "name": "foo_p1",
- "link": { "name": "foo_t3" }
- },
- { "name": "foo_p2" },
- { "name": "foo_p3" }
- ]
- }
-}
diff --git a/chromium/chrome/common/extensions/docs/templates/json/apps_sidenav.json b/chromium/chrome/common/extensions/docs/templates/json/apps_sidenav.json
index 0d6d1cdecbd..0ee5ac7896d 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/apps_sidenav.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/apps_sidenav.json
@@ -4,7 +4,7 @@
"items": [
{
"title": "What Are Chrome Apps?",
- "href": "/apps/about_apps.html"
+ "href": "/apps/about_apps"
}
]
},
@@ -13,7 +13,7 @@
"items": [
{
"title": "Create Your First App",
- "href": "/apps/first_app.html"
+ "href": "/apps/first_app"
},
{
"title": "Tutorials",
@@ -25,39 +25,39 @@
"items": [
{
"title": "About this Codelab",
- "href": "/apps/app_codelab.html"
+ "href": "/apps/app_codelab"
},
{
"title": "1 - Set Up Development Environment",
- "href": "/apps/app_codelab1_setup.html"
+ "href": "/apps/app_codelab1_setup"
},
{
"title": "2 - Create Basic App",
- "href": "/apps/app_codelab2_basic.html"
+ "href": "/apps/app_codelab2_basic"
},
{
"title": "3 - Create MVC",
- "href": "/apps/app_codelab3_mvc.html"
+ "href": "/apps/app_codelab3_mvc"
},
{
"title": "4 - Save and Fetch Data",
- "href": "/apps/app_codelab5_data.html"
+ "href": "/apps/app_codelab5_data"
},
{
"title": "5 - Manage App Lifecycle",
- "href": "/apps/app_codelab6_lifecycle.html"
+ "href": "/apps/app_codelab6_lifecycle"
},
{
"title": "6 - Access User's Data",
- "href": "/apps/app_codelab7_useridentification.html"
+ "href": "/apps/app_codelab7_useridentification"
},
{
"title": "7 - Access Web Resources",
- "href": "/apps/app_codelab8_webresources.html"
+ "href": "/apps/app_codelab8_webresources"
},
{
"title": "8 - Publish App",
- "href": "/apps/app_codelab_10_publishing.html"
+ "href": "/apps/app_codelab_10_publishing"
}
]
},
@@ -67,15 +67,19 @@
"items": [
{
"title": "About MVC Architecture",
- "href": "/apps/app_frameworks.html"
+ "href": "/apps/app_frameworks"
},
{
"title": "Build Apps with AngularJS",
- "href": "/apps/angular_framework.html"
+ "href": "/apps/angular_framework"
},
{
"title": "Build Apps with Sencha Ext JS",
- "href": "/apps/sencha_framework.html"
+ "href": "/apps/sencha_framework"
+ },
+ {
+ "title": "Game Engines",
+ "href": "/apps/game_engines"
}
]
}
@@ -91,19 +95,19 @@
"items": [
{
"title": "App Architecture",
- "href": "/apps/app_architecture.html"
+ "href": "/apps/app_architecture"
},
{
"title": "App Lifecycle",
- "href": "/apps/app_lifecycle.html"
+ "href": "/apps/app_lifecycle"
},
{
"title": "Offline First",
- "href": "/apps/offline_apps.html"
+ "href": "/apps/offline_apps"
},
{
"title": "External Content",
- "href": "/apps/app_external.html"
+ "href": "/apps/app_external"
}
]
},
@@ -113,7 +117,7 @@
"items": [
{
"title": "Content Security Policy",
- "href": "/apps/contentSecurityPolicy.html"
+ "href": "/apps/contentSecurityPolicy"
}
]
},
@@ -127,19 +131,19 @@
"items": [
{
"title": "About Cloud Messaging",
- "href": "/apps/cloudMessaging.html"
+ "href": "/apps/cloudMessaging"
},
{
"title": "Client Reference",
- "href": "/apps/pushMessaging.html"
+ "href": "/apps/pushMessaging"
},
{
"title": "Service Reference",
- "href": "/apps/gcm_server.html"
+ "href": "/apps/gcm_server"
},
{
"title": "Terms of Service",
- "href": "/apps/gcm_tos.html"
+ "href": "/apps/gcm_tos"
}
]
},
@@ -149,13 +153,13 @@
"items": [
{
"title": "chrome.storage",
- "href": "/apps/storage.html"
+ "href": "/apps/storage"
}
]
},
{
"title": "User Authentication",
- "href": "/apps/app_identity.html"
+ "href": "/apps/app_identity"
}
]
},
@@ -165,7 +169,7 @@
"items": [
{
"title": "Storage APIs",
- "href": "/apps/app_storage.html"
+ "href": "/apps/app_storage"
}
]
},
@@ -175,15 +179,19 @@
"items": [
{
"title": "USB",
- "href": "/apps/app_usb.html"
+ "href": "/apps/app_usb"
},
{
"title": "Serial",
- "href": "/apps/app_serial.html"
+ "href": "/apps/app_serial"
},
{
"title": "Network Communications",
- "href": "/apps/app_network.html"
+ "href": "/apps/app_network"
+ },
+ {
+ "title": "Bluetooth",
+ "href": "/apps/app_bluetooth"
}
]
},
@@ -193,7 +201,7 @@
"items": [
{
"title": "Rich Notifications",
- "href": "/apps/desktop_notifications.html"
+ "href": "/apps/desktop_notifications"
}
]
}
@@ -206,7 +214,7 @@
"items": [
{
"title": "Publish Your App",
- "href": "/apps/publish_app.html"
+ "href": "/apps/publish_app"
},
{
"title": "Monetize Your App",
@@ -214,13 +222,13 @@
"items": [
{
"title": "Google Wallet for Digital Goods",
- "href": "/apps/google_wallet.html"
+ "href": "/apps/google_wallet"
}
]
},
{
"title": "Analytics",
- "href": "/apps/analytics.html"
+ "href": "/apps/analytics"
}
]
},
@@ -229,23 +237,23 @@
"items": [
{
"title": "Chrome Platform APIs",
- "href": "/apps/api_index.html"
+ "href": "/apps/api_index"
},
{
"title": "Webview Tag",
- "href": "/apps/tags/webview.html"
+ "href": "/apps/tags/webview"
},
{
"title": "Web APIs",
- "href": "/apps/api_other.html"
+ "href": "/apps/api_other"
},
{
"title": "Manifest File Format",
- "href": "/apps/manifest.html"
+ "href": "/apps/manifest"
},
{
"title": "Disabled Web Features",
- "href": "/apps/app_deprecated.html"
+ "href": "/apps/app_deprecated"
}
]
},
@@ -254,7 +262,7 @@
"items": [
{
"title": "Sample Apps",
- "href": "/apps/samples.html"
+ "href": "/apps/samples"
}
]
},
@@ -263,7 +271,7 @@
"items": [
{
"title": "FAQ",
- "href": "/apps/faq.html"
+ "href": "/apps/faq"
},
{
"title": "Google Groups",
diff --git a/chromium/chrome/common/extensions/docs/templates/json/chrome_sidenav.json b/chromium/chrome/common/extensions/docs/templates/json/chrome_sidenav.json
index bc7b1e31d8c..eb933290824 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/chrome_sidenav.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/chrome_sidenav.json
@@ -1,225 +1,184 @@
[
{
- "title": "DEVTOOLS",
+ "title": "Devtools",
"items": [
{
- "title": "OVERVIEW",
+ "title": "Learn Basics",
"items": [
{
- "title": "Getting Started",
- "items": [
- {
- "title": "What Are Chrome DevTools?",
- "href": "/devtools/index.html"
- },
- {
- "title": "Authoring & Development Workflow",
- "href": "/devtools/index.html"
- },
- {
- "title": "Using the Console",
- "href": "/devtools/index.html"
- },
- {
- "title": "Tips & Tricks",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Overview",
+ "href": "/devtools/index"
},
{
- "title": "Inspecting & Tweaking",
- "items": [
- {
- "title": "Editing Styles & DOM",
- "href": "/devtools/index.html"
- },
- {
- "title": "Editing Styles",
- "href": "/devtools/index.html"
- },
- {
- "title": "Working with CSS Preprocessors",
- "href": "/devtools/index.html"
- },
- {
- "title": "Managing Application Storage",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Development Workflow",
+ "href": "/devtools/docs/authoring-development-workflow"
},
{
- "title": "Network Performance & Profiling",
- "items": [
- {
- "title": "Evaluating Network Performance",
- "href": "/devtools/index.html"
- },
- {
- "title": "Performance Profiling with Timeline",
- "href": "/devtools/index.html"
- },
- {
- "title": "Demo: Finding Forced Synchronoush Layouts",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Using the Console",
+ "href": "/devtools/docs/console"
},
{
- "title": "Working with Mobile",
- "items": [
- {
- "title": "Mobile Emulation",
- "href": "/devtools/index.html"
- },
- {
- "title": "Remote Debugging on Android",
- "href": "/devtools/index.html"
- },
- {
- "title": "Remote Debugging Protocol",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Tips & Tricks",
+ "href": "/devtools/docs/tips-and-tricks"
},
{
"title": "Additional Resources",
+ "href": "/devtools/docs/videos",
"items": [
{
- "title": "Creating Clean Testing Environment",
- "href": "/devtools/index.html"
- },
- {
"title": "Videos",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/videos"
},
{
- "title": "Blogposts",
- "href": "/devtools/index.html"
+ "title": "Blog Posts",
+ "href": "/devtools/docs/blog-posts"
},
{
"title": "Mailing List",
- "href": "/devtools/index.html"
+ "href": "https://groups.google.com/forum/?fromgroups#!forum/google-chrome-developer-tools"
},
{
"title": "Contributing to DevTools",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/contributing"
}
]
}
]
},
{
- "title": "WORKING WITH JAVASCRIPT",
+ "title": "Use Tools",
"items": [
{
- "title": "Debugging & Profiling",
+ "title": "Inspecting & Tweaking",
+ "href": "/devtools/docs/dom-and-styles",
"items": [
{
- "title": "Debugging JavaScript",
- "href": "/devtools/index.html"
+ "title": "Editing Styles and the DOM",
+ "href": "/devtools/docs/dom-and-styles"
},
{
- "title": "Profiling JavaScript Performance",
- "href": "/devtools/index.html"
+ "title": "Working with CSS Preprocessors",
+ "href": "/devtools/docs/css-preprocessors"
},
{
- "title": "JavaScript Memory Profiling",
- "href": "/devtools/index.html"
+ "title": "Managing Application Storage",
+ "href": "/devtools/docs/resource-panel"
}
]
},
- {
- "title": "Heap Profiler Demos",
- "items": [
- {
- "title": "Gathering Scattered Objects",
- "href": "/devtools/index.html"
- },
- {
- "title": "Verifying Action Cleanness",
- "href": "/devtools/index.html"
- },
- {
- "title": "Exploring the Heap Contents",
- "href": "/devtools/index.html"
- },
- {
- "title": "Uncovering DOM Leaks",
- "href": "/devtools/index.html"
- },
- {
- "title": "Finding Accumulation Points",
- "href": "/devtools/index.html"
- }
- ]
+ {
+ "title": "Debugging JavaScript",
+ "href": "/devtools/docs/javascript-debugging"
+ },
+ {
+ "title": "Mobile Emulation",
+ "href": "/devtools/docs/mobile-emulation"
+ },
+ {
+ "title": "Remote Debugging on Android",
+ "href": "/devtools/docs/remote-debugging"
+ },
+ {
+ "title": "Saving Changes with Workspaces",
+ "href": "/devtools/docs/workspaces"
}
]
},
{
- "title": "INTEGRATING WITH DEVTOOLS",
+ "title": "Performance & Profiling",
"items": [
{
- "title": "DevTools Extensions",
+ "title": "Evaluating Network Performance",
+ "href": "/devtools/docs/network"
+ },
+ {
+ "title": "Using the Timeline",
+ "href": "/devtools/docs/timeline"
+ },
+ {
+ "title": "Timeline Demo: Layout Thrashing",
+ "href": "/devtools/docs/demos/too-much-layout/index"
+ },
+ {
+ "title": "Profiling JavaScript Performance",
+ "href": "/devtools/docs/cpu-profiling"
+ },
+ {
+ "title": "JavaScript Memory Profiling",
+ "href": "/devtools/docs/javascript-memory-profiling",
"items": [
{
- "title": "Sample DevTools Extensions",
- "href": "/devtools/index.html"
+ "title": "JavaScript Memory Profiling",
+ "href": "/devtools/docs/javascript-memory-profiling"
},
{
- "title": "Sample Debugging Protocol Clients",
- "href": "/devtools/index.html"
+ "title": "Demos",
+ "href": "/devtools/docs/heap-profiling-summary"
}
]
}
]
},
{
- "title": "REFERENCE",
+ "title": "Reference",
"items": [
{
- "title": "API",
- "items": [
- {
- "title": "Console API Reference",
- "href": "/devtools/index.html"
- },
- {
- "title": "Command Line API Reference",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Console API Reference",
+ "href": "/devtools/docs/console-api"
+ },
+ {
+ "title": "Command Line API Reference",
+ "href": "/devtools/docs/commandline-api"
},
{
- "title": "Shortcuts & Settings",
+ "title": "DevTools Extensions API",
+ "href": "/devtools/docs/integrating",
"items": [
{
- "title": "Console API Reference",
- "href": "/devtools/index.html"
+ "title": "Integrating with DevTools",
+ "href": "/devtools/docs/integrating"
+ },
+ {
+ "title": "Sample DevTools Extensions",
+ "href": "/devtools/docs/sample-extensions"
},
{
- "title": "Command Line API Reference",
- "href": "/devtools/index.html"
+ "title": "Sample DevTools Protocol Clients",
+ "href": "/devtools/docs/debugging-clients"
}
]
},
{
+ "title": "Keyboard Shortcuts",
+ "href": "/devtools/docs/shortcuts"
+ },
+ {
+ "title": "Settings",
+ "href": "/devtools/docs/settings"
+ },
+ {
"title": "Remote Debugging Protocol",
+ "href": "/devtools/docs/debugger-protocol",
"items": [
{
+ "title": "Remote Debugging Protocol",
+ "href": "/devtools/docs/debugger-protocol"
+ },
+ {
"title": "Version 1.1",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/protocol/1.1/index"
},
{
"title": "Version 1.0",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/protocol/1.0/index"
},
{
"title": "Version .1",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/protocol/0.1/index"
},
{
"title": "Tip-of-tree",
- "href": "/devtools/index.html"
+ "href": "/devtools/docs/protocol/tot/index"
}
]
}
@@ -228,125 +187,106 @@
]
},
{
- "title": "MULTIDEVICE",
+ "title": "Multi-device",
"items": [
{
- "title": "OVERVIEW",
+ "title": "Getting Started",
"items": [
{
- "title": "Getting Started",
- "items": [
- {
- "title": "Develop Apps for Chrome Mobile Browsers",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Data Compression Proxy",
- "href": "/multidevice/index.html"
- },
- {
- "title": "User Agents",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Develop Apps for Chrome Mobile Browsers",
- "href": "/multidevice/index.html"
- }
- ]
+ "title": "Chrome for a Multi-Device World",
+ "href": "/multidevice/index"
},
{
- "title": "Chrome for Android",
- "items": [
- {
- "title": "Overview",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Android Intents with Chrome",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Add to Hoomescreen",
- "href": "/multidevice/index.html"
- }
- ]
+ "title": "Data Compression Proxy",
+ "href": "/multidevice/data-compression"
},
{
- "title": "Chrome for iOS",
- "items": [
- {
- "title": "Overview",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Opening Links in Chrome",
- "href": "/multidevice/index.html"
- }
- ]
+ "title": "User Agents",
+ "href": "/multidevice/user-agent"
},
{
- "title": "Case Studies",
- "items": [
- {
- "title": "Overview",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Pocket",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Feedly",
- "href": "/multidevice/index.html"
- }
- ]
+ "title": "Mobile Emulation",
+ "href": "/devtools/docs/mobile-emulation"
},
{
- "title": "Related DevTools Content",
- "items": [
- {
- "title": "Mobile Emulation",
- "href": "/devtools/index.html"
- },
- {
- "title": "Remote Debugging",
- "href": "/devtools/index.html"
- }
- ]
+ "title": "Remote Debugging",
+ "href": "/devtools/docs/remote-debugging"
+ },
+ {
+ "title": "FAQ",
+ "href": "/multidevice/faq"
}
]
},
- {
- "title": "CHROME WEBVIEW",
+ {
+ "title": "Chrome for Android",
"items": [
{
"title": "Overview",
- "items": [
- {
- "title": "WebView for Android",
- "href": "/multidevice/index.html"
- },
- {
- "title": "Getting Started",
- "href": "/multidevice/index.html"
- }
- ]
+ "href": "/multidevice/android/overview"
+ },
+ {
+ "title": "Android Intents with Chrome",
+ "href": "/multidevice/android/intents"
+ },
+ {
+ "title": "Add to Homescreen",
+ "href": "/multidevice/android/installtohomescreen"
+ }
+ ]
+ },
+ {
+ "title": "Chrome WebView",
+ "items": [
+ {
+ "title": "WebView for Android",
+ "href": "/multidevice/webview/overview"
+ },
+ {
+ "title": "Getting Started",
+ "href": "/multidevice/webview/gettingstarted"
+ },
+ {
+ "title": "Pixel-Perfect UI",
+ "href": "/multidevice/webview/pixelperfect"
+ },
+ {
+ "title": "WebView Workflow",
+ "href": "/multidevice/webview/workflow"
},
{
- "title": "Design & Develop",
+ "title": "Tips & Tricks",
+ "href": "/multidevice/webview/tipsandtricks"
+ }
+ ]
+ },
+ {
+ "title": "Chrome for iOS",
+ "items": [
+ {
+ "title": "Overview",
+ "href": "/multidevice/ios/overview"
+ },
+ {
+ "title": "Opening Links in Chrome",
+ "href": "/multidevice/ios/links"
+ },
+ {
+ "title": "Case Studies",
+ "href": "/multidevice/ios/case-studies",
"items": [
{
- "title": "Pixel-Perfect UI",
- "href": "/multidevice/index.html"
+ "title": "Case Studies",
+ "href": "/multidevice/ios/case-studies"
},
{
- "title": "WebView Workflow",
- "href": "/multidevice/index.html"
+ "title": "Pocket",
+ "href": "/multidevice/ios/pocket"
},
{
- "title": "Tips & Tricks",
- "href": "/multidevice/index.html"
- }
+ "title": "Feedly",
+ "href": "/multidevice/ios/feedly"
+ }
]
}
]
@@ -354,192 +294,208 @@
]
},
{
- "title": "PLATFORM",
+ "title": "Platform",
"items": [
{
- "title": "APPS",
+ "title": "Apps",
"items": [
{
- "title": "Discover",
+ "title": "Learn Basics",
+ "href": "/apps/about_apps",
"items": [
{
- "title": "What are Chrome Apps?",
- "href": "/apps/about_apps.html"
+ "title": "What Are Chrome Apps?",
+ "href": "/apps/about_apps"
},
{
"title": "Create Your First App",
- "href": "/apps/first_app.html"
+ "href": "/apps/first_app"
},
{
"title": "App Architecture",
- "href": "/apps/app_architecture.html"
+ "href": "/apps/app_architecture"
},
{
"title": "App Lifecycle",
- "href": "/apps/app_lifecycle.html"
+ "href": "/apps/app_lifecycle"
},
{
- "title": "Samples",
- "href": "/apps/samples.html"
+ "title": "Content Security Policy",
+ "href": "/apps/contentSecurityPolicy"
}
]
},
{
- "title": "Chrome Apps Codelab",
+ "title": "Learn with Codelab",
+ "href": "/apps/app_codelab1_setup",
"items": [
{
- "title": "Learn with a Codelab",
- "href": "/apps/app_codelab.html"
- },
- {
"title": "1 - Set Up Development Environment",
- "href": "/apps/app_codelab1_setup.html"
+ "href": "/apps/app_codelab1_setup"
},
{
"title": "2 - Create Basic App",
- "href": "/apps/app_codelab2_basic.html"
+ "href": "/apps/app_codelab2_basic"
},
{
"title": "3 - Create MVC",
- "href": "/apps/app_codelab3_mvc.html"
+ "href": "/apps/app_codelab3_mvc"
},
{
"title": "4 - Save & Fetch Data",
- "href": "/apps/app_codelab5_data.html"
+ "href": "/apps/app_codelab5_data"
},
{
"title": "5 - Manage App Lifecycle",
- "href": "/apps/app_codelab6_lifecycle.html"
+ "href": "/apps/app_codelab6_lifecycle"
},
{
"title": "6 - Access User's Data",
- "href": "/apps/app_codelab7_useridentification.html"
+ "href": "/apps/app_codelab7_useridentification"
},
{
"title": "7 - Access Web Resources",
- "href": "/apps/app_codelab8_webresources.html"
+ "href": "/apps/app_codelab8_webresources"
},
{
"title": "8 - Publish App",
- "href": "/apps/app_codelab_10_publishing.html"
+ "href": "/apps/app_codelab_10_publishing"
}
]
},
{
- "title": "Develop",
+ "title": "Samples",
+ "href": "/apps/samples"
+ },
+ {
+ "title": "Develop in the Cloud",
+ "href": "/apps/offline_apps",
"items": [
{
"title": "Offline First",
- "href": "/apps/offline_apps.html"
+ "href": "/apps/offline_apps"
},
{
"title": "Handling External Content",
- "href": "/apps/app_external.html"
+ "href": "/apps/app_external"
},
{
- "title": "Content Security Policy",
- "href": "/apps/contentSecurityPolicy.html"
- },
- {
- "title": "User Authentication",
- "href": "/apps/app_identity.html"
- },
- {
- "title": "Storing Data in the Cloud",
- "href": "/apps/app_storage.html"
+ "title": "Storing Data",
+ "href": "/apps/app_storage"
},
{
"title": "Cloud Messaging",
- "href": "/apps/cloudMessaging.html"
+ "href": "/apps/cloudMessaging"
},
{
- "title": "Rich Notifications",
- "href": "/apps/desktop_notifications.html"
+ "title": "User Authentication",
+ "href": "/apps/app_identity"
}
]
- },
+ },
{
"title": "User Low-Level System Services",
+ "href": "/apps/app_usb",
"items": [
{
"title": "USB",
- "href": "/apps/app_usb.html"
+ "href": "/apps/app_usb"
},
{
"title": "Serial",
- "href": "/apps/app_serial.html"
+ "href": "/apps/app_serial"
},
{
"title": "Network Communications",
- "href": "/apps/app_network.html"
+ "href": "/apps/app_network"
+ },
+ {
+ "title": "Bluetooth",
+ "href": "/apps/app_bluetooth"
}
]
},
{
"title": "MVC Architecture & Frameworks",
+ "href": "/apps/app_frameworks",
"items": [
{
"title": "About MVC Architecture",
- "href": "/apps/app_frameworks.html"
+ "href": "/apps/app_frameworks"
},
{
"title": "Build Apps with AngularJS",
- "href": "/apps/angular_framework.html"
+ "href": "/apps/angular_framework"
},
{
"title": "Build Apps with SenchaJS",
- "href": "/apps/sencha_framework.html"
+ "href": "/apps/sencha_framework"
+ },
+ {
+ "title": "Game Engines",
+ "href": "/apps/game_engines"
}
]
},
- {
- "title": "Distribute",
+ {
+ "title": "Distribute Apps",
+ "href": "/apps/publish_app",
"items": [
{
"title": "Publish Your App",
- "href": "/apps/publish_app.html"
+ "href": "/apps/publish_app"
+ },
+ {
+ "title": "Run Chrome Apps on Mobile",
+ "href": "/apps/chrome_apps_on_mobile"
},
{
"title": "Monetize Your App",
- "href": "/apps/google_wallet.html"
+ "href": "/apps/google_wallet"
+ },
+ {
+ "title": "One-Time Payments",
+ "href": "/webstore/one_time_payments"
},
{
"title": "Analytics",
- "href": "/apps/analytics.html"
+ "href": "/apps/analytics"
}
]
},
{
- "title": "Reference",
+ "title": "Chrome Platform APIs",
+ "href": "/apps/api_index",
"items": [
{
- "title": "Chrome Platform APIs",
- "href": "/apps/api_index.html"
+ "title": "JavaScript APIs",
+ "href": "/apps/api_index"
},
{
- "title": "Webview Tag",
- "href": "/apps/webview.html"
+ "title": "Manifest File Format",
+ "href": "/apps/manifest"
},
{
- "title": "Web APIs",
- "href": "/apps/api_other.html"
+ "title": "Webview Tag",
+ "href": "/apps/tags/webview"
},
{
- "title": "Manifest File Format",
- "href": "/apps/manifest.html"
+ "title": "Web APIs",
+ "href": "/apps/api_other"
},
{
"title": "Disabled Web Features",
- "href": "/apps/app_deprecated.html"
+ "href": "/apps/app_deprecated"
}
]
},
{
"title": "Help",
+ "href": "/apps/faq",
"items": [
{
"title": "FAQ",
- "href": "/apps/faq.html"
+ "href": "/apps/faq"
},
{
"title": "Google Groups",
@@ -554,208 +510,164 @@
]
},
{
- "title": "EXTENSIONS",
+ "title": "Extensions",
"items": [
{
- "title": "Discover",
+ "title": "Learn Basics",
+ "href": "/extensions/overview",
"items": [
{
- "title": "Getting Started",
- "href": "/extensions/getstarted.html"
+ "title": "Overview",
+ "href": "/extensions/overview"
},
{
- "title": "Overview",
- "href": "/extensions/overview.html"
+ "title": "Hosting Changes",
+ "href": "/extensions/hosting_changes"
+ },
+ {
+ "title": "Extension Quality Guidelines FAQ",
+ "href": "/extensions/single_purpose"
},
+
{
"title": "Event Pages",
- "href": "/extensions/event_pages.html"
+ "href": "/extensions/event_pages"
},
{
"title": "Content Scripts",
- "href": "/extensions/content_scripts.html"
+ "href": "/extensions/content_scripts"
},
{
"title": "activeTab Permission",
- "href": "/extensions/activeTab.html"
+ "href": "/extensions/activeTab"
},
{
- "title": "What's New",
- "href": "/extensions/whats_new.html"
- },
- {
- "title": "Samples",
- "href": "/extensions/samples.html"
+ "title": "What's New?",
+ "href": "/extensions/whats_new"
}
]
},
{
- "title": "Browser UI",
- "items": [
- {
- "title": "Browser Actions",
- "href": "/extensions/browserAction.html"
- },
- {
- "title": "Context Menus",
- "href": "/extensions/contextMenus.html"
- },
- {
- "title": "Desktop Notifications",
- "href": "/extensions/desktop_notifications.html"
- },
- {
- "title": "Omnibox",
- "href": "/extensions/omnibox.html"
- },
- {
- "title": "Options Pages",
- "href": "/extensions/options.html"
- },
- {
- "title": "Override Pages",
- "href": "/extensions/override.html"
- },
- {
- "title": "Page Actions",
- "href": "/extensions/pageAction.html"
- }
- ]
+ "title": "Getting Started Tutorial",
+ "href": "/extensions/getstarted"
},
{
- "title": "Browser Interaction",
- "items": [
- {
- "title": "Bookmarks",
- "href": "/extensions/bookmarks.html"
- },
- {
- "title": "Cookies",
- "href": "/extensions/cookies.html"
- },
- {
- "title": "Events",
- "href": "/extensions/events.html"
- },
- {
- "title": "History",
- "href": "/extensions/history.html"
- },
- {
- "title": "Management",
- "href": "/extensions/management.html"
- },
- {
- "title": "Tabs",
- "href": "/extensions/tabs.html"
- },
- {
- "title": "Windows",
- "href": "/extensions/windows.html"
- }
- ]
+ "title": "Samples",
+ "href": "/extensions/samples"
},
{
- "title": "Develop",
+ "title": "Develop Extensions",
+ "href": "/extensions/tut_migration_to_manifest_v2",
"items": [
{
"title": "Accessibility",
- "href": "/extensions/a11y.html"
+ "href": "/extensions/a11y"
},
{
"title": "Content Security Policy",
- "href": "/extensions/contentSecurityPolicy.html"
+ "href": "/extensions/contentSecurityPolicy"
},
{
"title": "Cross-Origin XHR",
- "href": "/extensions/xhr.html"
+ "href": "/extensions/xhr"
},
{
"title": "Debugging",
- "href": "/extensions/tut_debugging.html"
- },
- {
- "title": "Extending DevTools",
- "href": "/extensions/devtools.html"
- },
- {
- "title": "Google Analytics",
- "href": "/extensions/tut_analytics.html"
+ "href": "/extensions/tut_debugging"
},
{
"title": "Internationalization",
- "href": "/extensions/i18n.html"
+ "href": "/extensions/i18n"
},
{
"title": "Message Passing",
- "href": "/extensions/messaging.html"
+ "href": "/extensions/messaging"
+ },
+ {
+ "title": "Migrate to Manifest 2",
+ "href": "/extensions/tut_migration_to_manifest_v2"
},
{
"title": "OAuth",
- "href": "/extensions/tut_oauth.html"
+ "href": "/extensions/tut_oauth"
}
]
},
{
- "title": "Distribute",
+ "title": "Distribute Extensions",
+ "href": "/extensions/hosting",
"items": [
{
"title": "Hosting",
- "href": "/extensions/hosting.html"
+ "href": "/extensions/hosting"
},
{
"title": "Packaging",
- "href": "/extensions/packaging.html"
+ "href": "/extensions/packaging"
+ },
+ {
+ "title": "One-Time Payments",
+ "href": "/webstore/one_time_payments"
},
{
"title": "Autoupdating",
- "href": "/extensions/autoupdate.html"
+ "href": "/extensions/autoupdate"
},
{
"title": "Other Deployment Options",
- "href": "/extensions/external_extensions.html"
+ "href": "/extensions/external_extensions"
+ },
+ {
+ "title": "Google Analytics",
+ "href": "/extensions/tut_analytics"
+ },
+ {
+ "title": "Publishing Themes",
+ "href": "/extensions/themes"
}
]
},
{
- "title": "Reference",
+ "title": "Chrome Platform APIs",
+ "href": "/extensions/api_index",
"items": [
{
- "title": "Chrome Platform APIs",
- "href": "/extensions/api_index.html"
- },
- {
- "title": "Web APIs",
- "href": "/extensions/api_other.html"
+ "title": "JavaScript APIs",
+ "href": "/extensions/api_index"
},
{
"title": "Manifest File Format",
- "href": "/extensions/manifest.html"
+ "href": "/extensions/manifest"
},
{
- "title": "Migrate to Manifest 2",
- "href": "/extensions/tut_migration_to_manifest_v2.html"
+ "title": "Web APIs",
+ "href": "/extensions/api_other"
},
{
"title": "Permission Warnings",
- "href": "/extensions/permission_warnings.html"
+ "href": "/extensions/permission_warnings"
},
{
"title": "Optional Permissions",
- "href": "/extensions/permissions.html"
+ "href": "/extensions/permissions"
},
{
"title": "Match Patterns",
- "href": "/extensions/match_patterns.html"
+ "href": "/extensions/match_patterns"
}
]
},
{
"title": "Help",
+ "href": "/extensions/faq",
"items": [
{
"title": "FAQ",
- "href": "/extensions/faq.html"
+ "href": "/extensions/faq"
+ },
+ {
+ "title": "Google Groups",
+ "href": "https://groups.google.com/a/chromium.org/forum/#!forum/chromium-extensions"
},
{
"title": "Stack Overflow",
@@ -766,341 +678,328 @@
]
},
{
- "title": "STORE",
+ "title": "Native Client",
"items": [
{
- "title": "Discover",
- "items": [
- {
- "title": "What Is the Chrome Web Store?",
- "href": "/webstore/index.html"
- },
- {
- "title": "What Can You Publish?",
- "href": "/webstore/index.html"
- },
- {
- "title": "Tutorial: Getting Started",
- "href": "/webstore/index.html"
- },
- {
- "title": "Best Practices",
- "href": "/webstore/index.html"
- },
- {
- "title": "Samples",
- "href": "/webstore/index.html"
- }
- ]
- },
- {
- "title": "Branding",
- "items": [
- {
- "title": "Branding Guidelines",
- "href": "/webstore/index.html"
- },
- {
- "title": "Supplying Images",
- "href": "/webstore/index.html"
- }
- ]
- },
- {
- "title": "Monetizing",
- "items": [
- {
- "title": "Seller Options",
- "href": "/webstore/index.html"
- },
- {
- "title": "Using Google Accounts",
- "href": "/webstore/index.html"
- },
- {
- "title": "Checking for Payment",
- "href": "/webstore/index.html"
- },
- {
- "title": "Payments: Regions, Fees, & Tiers",
- "href": "/webstore/index.html"
- }
- ]
- },
- {
- "title": "Publishing",
+ "title": "Learn Basics",
+ "href": "/native-client/overview",
"items": [
{
- "title": "Step-by-step Tutorial",
- "href": "/webstore/index.html"
- },
- {
- "title": "Using Inline Installation",
- "href": "/webstore/index.html"
- },
- {
- "title": "Terms of Service",
- "href": "/webstore/index.html"
- }
- ]
- },
- {
- "title": "Help",
- "items": [
- {
- "title": "FAQ",
- "href": "/webstore/index.html"
- },
- {
- "title": "Google Groups",
- "href": "/webstore/index.html"
+ "title": "What Is Native Client?",
+ "href": "/native-client/overview"
},
{
- "title": "Articles",
- "href": "/webstore/index.html"
+ "title": "NaCl and PNaCl",
+ "href": "/native-client/nacl-and-pnacl"
}
]
},
{
- "title": "Related Content",
+ "title": "SDK",
+ "href": "/native-client/sdk/download",
"items": [
{
- "title": "Develop Chrome Apps",
- "href": "/webstore/index.html"
- },
- {
- "title": "Develop Chrome Extensions",
- "href": "/webstore/index.html"
- },
- {
- "title": "Develop Chrome Themes",
- "href": "/webstore/index.html"
- }
- ]
- }
- ]
- },
- {
- "title": "NATIVE CLIENT",
- "items": [
- {
- "title": "Discover",
- "items": [
- {
- "title": "What Is Native Client?",
- "href": "/nacl/index.html"
- },
- {
- "title": "NaCl and PNaCl",
- "href": "/nacl/index.html"
- },
- {
- "title": "Demos",
- "href": "/nacl/index.html"
- },
- {
"title": "Download SDK",
- "href": "/nacl/index.html"
+ "href": "/native-client/sdk/download"
},
{
- "title": "SDK Examples",
- "href": "/nacl/index.html"
+ "title": "Examples",
+ "href": "/native-client/sdk/examples"
},
{
"title": "SDK Release Notes",
- "href": "/nacl/index.html"
+ "href": "/native-client/sdk/release-notes"
}
]
},
{
- "title": "Getting Started Tutorial",
+ "title": "Tutorial",
+ "href": "/native-client/devguide/tutorial/tutorial-part1",
"items": [
{
"title": "Part 1: Simple PNaCl Web App",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/tutorial/tutorial-part1"
},
{
"title": "Part 2: SDK Build System and Chrome Apps",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/tutorial/tutorial-part2"
}
]
},
{
"title": "Development Cycle",
+ "href": "/native-client/devguide/devcycle/building",
"items": [
{
"title": "Building",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/devcycle/building"
},
{
"title": "Running",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/devcycle/running"
},
{
"title": "Debugging",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/devcycle/debugging"
},
{
"title": "Debugging with Visual Studio",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/devcycle/vs-addin"
},
{
- "title": "Dynamic Linking and Loading with glibc",
- "href": "/nacl/index.html"
+ "title": "Dynamic Linking and Loading with GlibC",
+ "href": "/native-client/devguide/devcycle/dynamic-loading"
}
]
},
{
"title": "Coding Your Application",
+ "href": "/native-client/devguide/coding/application-structure",
"items": [
{
"title": "Application Structure",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/application-structure"
},
{
"title": "Native Client Modules",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/native-client-modules"
},
{
"title": "3D Graphics",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/3D-graphics"
},
{
"title": "Audio",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/audio"
},
{
"title": "File I/O",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/file-io"
},
{
"title": "The nacl_io Library",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/nacl_io"
},
{
"title": "Messaging System",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/message-system"
},
{
"title": "Progress Events",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/progress-events"
},
{
"title": "URL Loading",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/url-loading"
},
{
"title": "View Change, Focus, & Input Events",
- "href": "/nacl/index.html"
+ "href": "/native-client/devguide/coding/view-focus-input-events"
}
]
},
{
- "title": "Distribute",
- "items": [
- {
- "title": "Portable Native Client",
- "href": "/nacl/index.html"
- },
- {
- "title": "Non-portable Native Client",
- "href": "/nacl/index.html"
- }
- ]
+ "title": "Distribute Your Apps",
+ "href": "/native-client/devguide/distributing"
},
{
"title": "Pepper API Reference",
+ "href": "/native-client/pepper_stable/index",
"items": [
{
- "title": "Structures",
- "href": "/nacl/index.html"
+ "title": "Pepper C Interfaces",
+ "href": "/native-client/pepper_stable/c/group___interfaces"
},
{
- "title": "Functions",
- "href": "/nacl/index.html"
+ "title": "Pepper C Structures",
+ "href": "/native-client/pepper_stable/c/group___structs"
},
{
- "title": "Enums",
- "href": "/nacl/index.html"
+ "title": "Pepper C Functions",
+ "href": "/native-client/pepper_stable/c/group___functions"
},
{
- "title": "Typedefs",
- "href": "/nacl/index.html"
+ "title": "Pepper C Enums",
+ "href": "/native-client/pepper_stable/c/group___enums"
},
{
- "title": "Macros",
- "href": "/nacl/index.html"
+ "title": "Pepper C Typedefs",
+ "href": "/native-client/pepper_stable/c/group___typedefs"
},
{
- "title": "Files",
- "href": "/nacl/index.html"
+ "title": "Pepper C Macros",
+ "href": "/native-client/pepper_stable/c/global_defs"
},
{
"title": "Pepper C++ Classes",
- "href": "/nacl/index.html"
- },
- {
- "title": "Pepper C++ Files",
- "href": "/nacl/index.html"
+ "href": "/native-client/pepper_stable/cpp/inherits"
}
]
},
{
- "title": "Additional Reference",
+ "title": "Additional Reference & Versions",
+ "href": "/native-client/glossary",
"items": [
{
"title": "Glossary",
- "href": "/nacl/index.html"
+ "href": "/native-client/glossary"
},
{
"title": "Native Client Manifest (nmf) Format",
- "href": "/nacl/index.html"
+ "href": "/native-client/reference/nacl-manifest-format"
},
{
"title": "PNaCl Bitcode Reference Manual",
- "href": "/nacl/index.html"
+ "href": "/native-client/reference/pnacl-bitcode-abi"
},
{
"title": "PNaCl C/C++ Language Support",
- "href": "/nacl/index.html"
+ "href": "/native-client/reference/pnacl-c-cpp-language-support"
+ },
+ {
+ "title": "Sandbox Internals",
+ "href": "/native-client/reference/sandbox_internals/index",
+ "items": [
+ {
+ "title": "ARM 32-bit Sandbox",
+ "href": "/native-client/reference/sandbox_internals/arm-32-bit-sandbox"
+ }
+ ]
}
]
},
{
"title": "Help",
+ "href": "/native-client/faq",
"items": [
{
"title": "FAQ",
- "href": "/nacl/index.html"
+ "href": "/native-client/faq"
},
{
"title": "Forums & Issues Tracker",
- "href": "/nacl/index.html"
+ "href": "/native-client/help"
},
{
"title": "Publications & Presentations",
- "href": "/nacl/index.html"
+ "href": "/native-client/publications-and-presentations"
},
{
"title": "Security Contest Archive",
- "href": "/nacl/index.html"
+ "href": "/native-client/community/security-contest/index"
}
]
+ }
+ ]
+ },
+ {
+ "title": "Store",
+ "items": [
+ {
+ "title": "What Is the Chrome Web Store?",
+ "href": "/webstore/index"
+ },
+ {
+ "title": "What Can You Publish?",
+ "href": "/webstore/overview"
},
{
- "title": "Previous Versions",
+ "title": "Tutorial: Getting Started",
+ "href": "/webstore/get_started_simple"
+ },
+ {
+ "title": "Samples",
+ "href": "/webstore/samples"
+ },
+ {
+ "title": "Branding",
+ "href": "/webstore/branding",
"items": [
{
- "title": "Beta (Pepper 30)",
- "href": "/nacl/index.html"
+ "title": "Branding Guidelines",
+ "href": "/webstore/branding"
},
{
- "title": "Stable (Pepper 29)",
- "href": "/nacl/index.html"
+ "title": "Supplying Images",
+ "href": "/webstore/images"
+ }
+ ]
+ },
+ {
+ "title": "Monetizing",
+ "href": "/webstore/money",
+ "items": [
+ {
+ "title": "Monetizing Your App",
+ "href": "/webstore/money"
+ },
+ {
+ "title": "Using Google Accounts",
+ "href": "/webstore/identify_user"
+ },
+ {
+ "title": "Checking for Payment",
+ "href": "/webstore/check_for_payment"
+ },
+ {
+ "title": "One-Time Payments",
+ "href": "/webstore/one_time_payments"
+ },
+ {
+ "title": "Pricing",
+ "href": "/webstore/pricing"
+ }
+ ]
+ },
+ {
+ "title": "Publishing",
+ "href": "/webstore/publish",
+ "items": [
+ {
+ "title": "Publishing Tutorial",
+ "href": "/webstore/publish"
+ },
+ {
+ "title": "Internationalizing Your App",
+ "href": "/webstore/i18n"
},
{
- "title": "Deprecated",
- "href": "/nacl/index.html"
+ "title": "Using Inline Installation",
+ "href": "/webstore/inline_installation"
+ },
+ {
+ "title": "Rating Guidelines",
+ "href": "/webstore/rating"
+ },
+ {
+ "title": "Program Policies",
+ "href": "/webstore/program_policies"
+ },
+ {
+ "title": "Terms of Service",
+ "href": "/webstore/terms"
+ }
+ ]
+ },
+ {
+ "title": "Help",
+ "href": "/webstore/best_practices",
+ "items": [
+ {
+ "title": "Best Practices",
+ "href": "/webstore/best_practices"
+ },
+ {
+ "title": "FAQ",
+ "href": "/webstore/faq"
+ },
+ {
+ "title": "Google Groups",
+ "href": "https://groups.google.com/a/chromium.org/forum/#!forum/chromium-apps"
+ },
+ {
+ "title": "Articles",
+ "href": "/webstore/articles"
}
]
}
diff --git a/chromium/chrome/common/extensions/docs/templates/json/content_providers.json b/chromium/chrome/common/extensions/docs/templates/json/content_providers.json
index fc003a408c3..a1448d00826 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/content_providers.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/content_providers.json
@@ -41,6 +41,14 @@
// this to true. Otherwise, it's safer and more efficient to omit it.
{
+ "cr-chrome-docs-home": {
+ "chromium": {
+ "dir": "chrome/docs"
+ },
+ "defaultExtensions": [".html", ".md"],
+ "serveFrom": "home",
+ "supportsTemplates": true
+ },
"cr-extensions-examples": {
"chromium": {
"dir": "chrome/common/extensions/docs/examples"
@@ -52,6 +60,7 @@
"chromium": {
"dir": "chrome/common/extensions/docs/templates/public"
},
+ "defaultExtensions": [".html", ".md"],
"serveFrom": "",
"supportsTemplates": true
},
@@ -63,31 +72,32 @@
},
"cr-native-client": {
"chromium": {
- "dir": "components/nacl/docs/dev"
+ "dir": "native_client_sdk/doc_generated"
+ },
+ "defaultExtensions": [".html", ".md"],
+ "serveFrom": "native-client",
+ "supportsTemplates": true
+ },
+ "devtools-docs": {
+ "defaultExtensions": [".html", ".md"],
+ "gcs": {
+ "bucket": "gs://chromedocs-devtools"
},
- "serveFrom": "nacl",
+ "serveFrom": "devtools",
"supportsTemplates": true
},
- //"devtools-docs": {
- // "github": {
- // "owner": "GoogleChrome",
- // "repo": "devtools-docs-migration"
- // },
- // "serveFrom": "devtools",
- // "supportsTemplates": true
- //},
"multidevice-docs": {
- "github": {
- "owner": "GoogleChrome",
- "repo": "multi-device"
+ "defaultExtensions": [".html", ".md"],
+ "gcs": {
+ "bucket": "gs://chromedocs-multidevice"
},
"serveFrom": "multidevice",
"supportsTemplates": true
},
"webstore-docs": {
- "github": {
- "owner": "GoogleChrome",
- "repo": "webstore-docs"
+ "defaultExtensions": [".html", ".md"],
+ "gcs": {
+ "bucket": "gs://chromedocs-webstore"
},
"serveFrom": "webstore",
"supportsTemplates": true
diff --git a/chromium/chrome/common/extensions/docs/templates/json/extensions_sidenav.json b/chromium/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
index 5ec43b7f02f..75ad47c1053 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/extensions_sidenav.json
@@ -1,19 +1,19 @@
[
{
"title": "Getting Started",
- "href": "/extensions/getstarted.html"
+ "href": "/extensions/getstarted"
},
{
"title": "Overview",
- "href": "/extensions/overview.html"
+ "href": "/extensions/overview"
},
{
"title": "What's New?",
- "href": "/extensions/whats_new.html"
+ "href": "/extensions/whats_new"
},
{
"title": "Developer's Guide",
- "href": "/extensions/devguide.html",
+ "href": "/extensions/devguide",
"items": [
{
"title": "Browser UI",
@@ -21,31 +21,31 @@
"items": [
{
"title": "Browser Actions",
- "href": "/extensions/browserAction.html"
+ "href": "/extensions/browserAction"
},
{
"title": "Context Menus",
- "href": "/extensions/contextMenus.html"
+ "href": "/extensions/contextMenus"
},
{
"title": "Desktop Notifications",
- "href": "/extensions/desktop_notifications.html"
+ "href": "/extensions/desktop_notifications"
},
{
"title": "Omnibox",
- "href": "/extensions/omnibox.html"
+ "href": "/extensions/omnibox"
},
{
"title": "Options Pages",
- "href": "/extensions/options.html"
+ "href": "/extensions/options"
},
{
"title": "Override Pages",
- "href": "/extensions/override.html"
+ "href": "/extensions/override"
},
{
"title": "Page Actions",
- "href": "/extensions/pageAction.html"
+ "href": "/extensions/pageAction"
}
]
},
@@ -55,35 +55,35 @@
"items": [
{
"title": "Bookmarks",
- "href": "/extensions/bookmarks.html"
+ "href": "/extensions/bookmarks"
},
{
"title": "Cookies",
- "href": "/extensions/cookies.html"
+ "href": "/extensions/cookies"
},
{
"title": "Extending DevTools",
- "href": "/extensions/devtools.html"
+ "href": "/extensions/devtools"
},
{
"title": "Events",
- "href": "/extensions/events.html"
+ "href": "/extensions/events"
},
{
"title": "History",
- "href": "/extensions/history.html"
+ "href": "/extensions/history"
},
{
"title": "Management",
- "href": "/extensions/management.html"
+ "href": "/extensions/management"
},
{
"title": "Tabs",
- "href": "/extensions/tabs.html"
+ "href": "/extensions/tabs"
},
{
"title": "Windows",
- "href": "/extensions/windows.html"
+ "href": "/extensions/windows"
}
]
},
@@ -93,39 +93,39 @@
"items": [
{
"title": "Accessibility",
- "href": "/extensions/a11y.html"
+ "href": "/extensions/a11y"
},
{
"title": "Event Pages",
- "href": "/extensions/event_pages.html"
+ "href": "/extensions/event_pages"
},
{
"title": "Content Security Policy",
- "href": "/extensions/contentSecurityPolicy.html"
+ "href": "/extensions/contentSecurityPolicy"
},
{
"title": "Content Scripts",
- "href": "/extensions/content_scripts.html"
+ "href": "/extensions/content_scripts"
},
{
"title": "Cross-Origin XHR",
- "href": "/extensions/xhr.html"
+ "href": "/extensions/xhr"
},
{
"title": "Internationalization",
- "href": "/extensions/i18n.html"
+ "href": "/extensions/i18n"
},
{
"title": "Message Passing",
- "href": "/extensions/messaging.html"
+ "href": "/extensions/messaging"
},
{
"title": "Optional Permissions",
- "href": "/extensions/permissions.html"
+ "href": "/extensions/permissions"
},
{
"title": "NPAPI Plugins",
- "href": "/extensions/npapi.html"
+ "href": "/extensions/npapi"
}
]
},
@@ -135,11 +135,11 @@
"items": [
{
"title": "Hosting",
- "href": "/extensions/hosting.html"
+ "href": "/extensions/hosting"
},
{
"title": "Other Deployment Options",
- "href": "/extensions/external_extensions.html"
+ "href": "/extensions/external_extensions"
}
]
}
@@ -147,23 +147,23 @@
},
{
"title": "Tutorials",
- "href": "/extensions/tutorials.html",
+ "href": "/extensions/tutorials",
"items": [
{
"title": "Manifest V2",
- "href": "/extensions/tut_migration_to_manifest_v2.html"
+ "href": "/extensions/tut_migration_to_manifest_v2"
},
{
"title": "Debugging",
- "href": "/extensions/tut_debugging.html"
+ "href": "/extensions/tut_debugging"
},
{
"title": "Google Analytics",
- "href": "/extensions/tut_analytics.html"
+ "href": "/extensions/tut_analytics"
},
{
"title": "OAuth",
- "href": "/extensions/tut_oauth.html"
+ "href": "/extensions/tut_oauth"
}
]
},
@@ -176,25 +176,25 @@
"items": [
{
"title": "Manifest Files",
- "href": "/extensions/manifest.html"
+ "href": "/extensions/manifest"
},
{
"title": "Match Patterns",
- "href": "/extensions/match_patterns.html"
+ "href": "/extensions/match_patterns"
}
]
},
{
"title": "Permission Warnings",
- "href": "/extensions/permission_warnings.html"
+ "href": "/extensions/permission_warnings"
},
{
"title": "chrome.* APIs",
- "href": "/extensions/api_index.html"
+ "href": "/extensions/api_index"
},
{
"title": "Other APIs",
- "href": "/extensions/api_other.html"
+ "href": "/extensions/api_other"
}
]
},
@@ -203,7 +203,7 @@
"items": [
{
"title": "FAQ",
- "href": "/extensions/faq.html"
+ "href": "/extensions/faq"
},
{
"title": "Chrome Web Store",
@@ -215,7 +215,7 @@
},
{
"title": "Themes",
- "href": "/extensions/themes.html"
+ "href": "/extensions/themes"
}
]
}
diff --git a/chromium/chrome/common/extensions/docs/templates/json/intro_tables.json b/chromium/chrome/common/extensions/docs/templates/json/intro_tables.json
index 47485f9e0dd..36919566682 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/intro_tables.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/intro_tables.json
@@ -2,7 +2,7 @@
"alarms": {
"Learn More": [
{
- "link": "event_pages.html",
+ "link": "event_pages",
"text": "Event Pages"
}
]
@@ -10,7 +10,7 @@
"app_runtime": {
"Learn More": [
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
@@ -22,11 +22,11 @@
"app_window": {
"Learn More": [
{
- "link": "about_apps.html#look",
+ "link": "about_apps#look",
"text": "How they look"
},
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
@@ -38,8 +38,24 @@
"bluetooth": {
"Learn More": [
{
- "link": "app_usb.html",
- "text": "Accessing Hardware Devices"
+ "link": "app_bluetooth",
+ "text": "Bluetooth"
+ }
+ ]
+ },
+ "bluetoothLowEnergy": {
+ "Learn More": [
+ {
+ "link": "app_bluetooth.html",
+ "text": "Bluetooth"
+ }
+ ]
+ },
+ "bluetoothSocket": {
+ "Learn More": [
+ {
+ "link": "app_bluetooth.html",
+ "text": "Bluetooth"
}
]
},
@@ -50,7 +66,7 @@
"text": "\"cookies\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
@@ -58,11 +74,11 @@
"declarativeContent": {
"Learn More": [
{
- "link": "events.html",
+ "link": "events",
"text": "Declarative Events"
},
{
- "link": "activeTab.html",
+ "link": "activeTab",
"text": "activeTab"
}
]
@@ -74,7 +90,7 @@
"text": "\"declarativeWebRequest\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
@@ -104,11 +120,11 @@
],
"Learn More": [
{
- "link": "app_storage.html",
+ "link": "app_storage",
"text": "Manage Data"
},
{
- "link": "angular_framework.html",
+ "link": "angular_framework",
"text": "Build Apps with AngularJS"
},
{
@@ -117,10 +133,18 @@
}
]
},
+ "gcm": {
+ "Learn More": [
+ {
+ "link": "cloudMessagingV2",
+ "text": "Google Cloud Messaging"
+ }
+ ]
+ },
"identity": {
"Learn More": [
{
- "link": "app_identity.html",
+ "link": "app_identity",
"text": "Identify User"
}
]
@@ -157,7 +181,7 @@
"permissions": {
"Learn More": [
{
- "link": "declare_permissions.html",
+ "link": "declare_permissions",
"text": "Declaring permissions"
}
]
@@ -165,11 +189,11 @@
"pushMessaging": {
"Learn More": [
{
- "link": "cloudMessaging.html",
+ "link": "cloudMessaging",
"text": "Google Cloud Messaging for Chrome"
},
{
- "link": "gcm_server.html",
+ "link": "gcm_server",
"text": "API Reference for GCM service"
}
]
@@ -177,11 +201,11 @@
"runtime": {
"Learn More": [
{
- "link": "app_lifecycle.html",
+ "link": "app_lifecycle",
"text": "Manage App Lifecycle"
},
{
- "link": "event_pages.html",
+ "link": "event_pages",
"text": "Event Pages"
}
]
@@ -189,7 +213,7 @@
"serial": {
"Learn More": [
{
- "link": "app_usb.html",
+ "link": "app_usb",
"text": "Accessing Hardware Devices"
}
]
@@ -206,11 +230,11 @@
],
"Learn More": [
{
- "link": "app_network.html",
+ "link": "app_network",
"text": "Network Communications"
},
{
- "link": "sencha_framework.html",
+ "link": "sencha_framework",
"text": "Build Apps with Sencha ExtJS"
},
{
@@ -238,7 +262,7 @@
"syncFileSystem": {
"Learn More": [
{
- "link": "app_storage.html",
+ "link": "app_storage",
"text": "Manage Data"
},
{
@@ -265,7 +289,7 @@
"usb": {
"Learn More": [
{
- "link": "app_usb.html",
+ "link": "app_usb",
"text": "Accessing Hardware Devices"
}
]
@@ -277,7 +301,7 @@
"text": "\"webRequest\""
},
{
- "link": "declare_permissions.html#host-permissions",
+ "link": "declare_permissions#host-permissions",
"text": "host permissions"
}
]
diff --git a/chromium/chrome/common/extensions/docs/templates/json/manifest.json b/chromium/chrome/common/extensions/docs/templates/json/manifest.json
index 4564d9ad71d..18c94b03118 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/manifest.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/manifest.json
@@ -16,11 +16,30 @@
"example": false,
"level": "recommended"
},
- "browser_action": {
+ "bluetooth": {
+ "documentation": "manifest/bluetooth.html",
+ "example": {
+ "uuids": [ "1105", "1006" ]
+ }
+ },
+ "browser_action": {
"documentation": "browserAction.html",
"example": {},
"level": "only_one"
},
+ "chrome_settings_overrides": {
+ "documentation": "settings_override.html",
+ "example": {}
+ },
+ "chrome_ui_overrides": {
+ "documentation": "ui_override.html",
+ "example": {
+ "bookmarks_ui": {
+ "remove_button": true,
+ "remove_bookmark_shortcut": true
+ }
+ }
+ },
"chrome_url_overrides": {
"documentation": "override.html",
"example": {}
@@ -139,6 +158,12 @@
"documentation": "manifest/name.html#short_name",
"example": "Short Name"
},
+ "sockets": {
+ "documentation": "manifest/sockets.html",
+ "example": {
+ "tcp": { "connect": "*" }, "udp": { "send": "*" }
+ }
+ },
"storage": {
"documentation": "manifest/storage.html",
"example": {
diff --git a/chromium/chrome/common/extensions/docs/templates/json/permissions.json b/chromium/chrome/common/extensions/docs/templates/json/permissions.json
index a95a2991095..5d3a415c9bd 100644
--- a/chromium/chrome/common/extensions/docs/templates/json/permissions.json
+++ b/chromium/chrome/common/extensions/docs/templates/json/permissions.json
@@ -20,9 +20,9 @@
},
"chrome://favicon/": {
"anchor": "favicon",
+ "extension_types": ["extension"],
"name": "chrome://favicon/",
- "partial": "permissions/favicon.html",
- "platforms": ["extension"]
+ "partial": "permissions/favicon.html"
},
"clipboardRead": {
"partial": "permissions/clipboard_read.html"
@@ -39,6 +39,9 @@
"geolocation": {
"partial": "permissions/geolocation.html"
},
+ "nativeMessaging": {
+ "partial": "permissions/nativeMessaging.html"
+ },
"notifications": {
"partial": "permissions/notifications.html"
},
diff --git a/chromium/chrome/common/extensions/docs/templates/json/whats_new.json b/chromium/chrome/common/extensions/docs/templates/json/whats_new.json
new file mode 100644
index 00000000000..4975419e8b5
--- /dev/null
+++ b/chromium/chrome/common/extensions/docs/templates/json/whats_new.json
@@ -0,0 +1,367 @@
+{
+ "backgroundpages.to-be-non-persistent": {
+ "type": "additionsToExistingApis",
+ "description": "Background pages can optionally be non-persistent, using a feature we call <code>event pages</code>. Event pages run only while they're being used, and will unload when idle to save resources.",
+ "version": 22
+ },
+ "chromeSetting.set-regular-only-scope": {
+ "type": "additionsToExistingApis",
+ "description": "The types.ChromeSetting.set method now has a <code>regular_only</code> scope.",
+ "version": 21
+ },
+ "browsingData.RemovalOptions.set-originTypes-property": {
+ "type": "additionsToExistingApis",
+ "description": "The browsingData.RemovalOptions now has an <code>originTypes</code> property.",
+ "version": 21
+ },
+ "management.uninstall.set-showConfirmDialog": {
+ "type": "additionsToExistingApis",
+ "description": "The management.uninstall method now has a <code>showConfirmDialog</code> parameter.",
+ "version": 21
+ },
+ "contextMenus.create.set-unique-IDs": {
+ "type": "additionsToExistingApis",
+ "description": "The contextMenus.create method now allows you to specify unique IDs for each item. This is intended to be used with the new <code>contextMenus.onClicked</code> event, to distinguish the clicked item.",
+ "version": 21
+ },
+ "browserAction.setIcon-and-pageAction.setIcon": {
+ "type": "additionsToExistingApis",
+ "description": "The browserAction.setIcon and pageAction.setIcon methods now accept optional callbacks.",
+ "version": 21
+ },
+ "privacy.websites.has-protectedContentEnabled-property": {
+ "type": "additionsToExistingApis",
+ "description": "The privacy.websites namespace now has a <code>protectedContentEnabled</code> property.",
+ "version": 21
+ },
+ "tabs.move.index.accept--1": {
+ "type": "additionsToExistingApis",
+ "description": "The <code>index</code> parameter to the tabs.move method now accepts -1 to indicate that the tab should be placed at the end.",
+ "version": 21
+ },
+ "tabs.highlight.windowId.be-optional": {
+ "type": "additionsToExistingApis",
+ "description": "The <code>windowId</code> parameter to the tabs.highlight method is now optional.",
+ "version": 21
+ },
+ "manifest-v1-deprecated": {
+ "type": "manifestChanges",
+ "description": "Manifest version 1 was deprecated in Chrome 18 and will be phased out according to the Manifest version 1 support",
+ "version": 20
+ },
+ "chrome.contextMenus.create-and-update-has-enabled-parameter": {
+ "type": "additionsToExistingApis",
+ "description": "The chrome.contextMenus contextMenus.create and contextMenus.update methods now have an <code>enabled</code> parameter.",
+ "version": 20
+ },
+ " privacy.services.has-spellingServiceEnabled-setting": {
+ "type": "additionsToExistingApis",
+ "description": "The privacy API's privacy.services object now has a <code>spellingServiceEnabled</code> setting.",
+ "version": 20
+ },
+ "chrome.tabs.executeScript-and-insertCSS-has-runAt-parameter": {
+ "type": "additionsToExistingApis",
+ "description": "The chrome.tabs tabs.executeScript and tabs.insertCSS now accept a runAt parameter.",
+ "version": 20
+ },
+ "sendRequest.deprecated-for-runtime-and-sendMessage": {
+ "type": "additionsToExistingApis",
+ "description": "The <code>sendRequest()</code> method has been deprecated in favor of the <code>sendMessage()</code> method for both the runtime.sendMessage and tabs.sendMessage.",
+ "version": 20
+ },
+ "window.window.support-fullscreen-state": {
+ "type": "additionsToExistingApis",
+ "description": "The window API's windows.Window object now has an <code>alwaysOnTop</code> property and supports the fullscreen state.",
+ "version": 19
+ },
+ "chrome.tabs.query.has-currentWindow-and-lastFocusedWindow-parameter": {
+ "type": "additionsToExistingApis",
+ "description": "The <code>chrome.tabs</code> tabs.query method now has the <code>currentWindow</code> and <code>lastFocusedWindow</code> parameters.",
+ "version": 19
+ },
+ "browser.action.api.has-new-getter-fucntions": {
+ "type": "additionsToExistingApis",
+ "description": "The browser action API has the following new getter functions: browserAction.getTitle, browserAction.getBadgeText, browserAction.getBadgeBackgroundColor, and browserAction.getPopup.",
+ "version": 19
+ },
+ "page.action.has-new-getter-functions": {
+ "type": "additionsToExistingApis",
+ "description": "The page action API has the following new getter functions: pageAction.getTitle and pageAction.getPopup.",
+ "version": 19
+ },
+ "chrome.tabs.create-update-methods-has-openerTabId-parameter": {
+ "type": "additionsToExistingApis",
+ "description": "The chrome.tabs tabs.create and tabs.update methods now have an <code>openerTabId</code> parameter",
+ "version": 18
+ },
+ "new-manifest-version-field-specifies-the-version": {
+ "type": "manifestChanges",
+ "description": "The new manifest version field specifies the version of the manifest that your package requires. As of Chrome 18, you should use manifest version 2.",
+ "version": 18
+ },
+ "new-CSP-field-define-extensions-policies": {
+ "type": "manifestChanges",
+ "description": "The new Content Security Policy (CSP) field is used to define an extension's policies towards the types of content that can be loaded and executed by the extension.",
+ "version": 18
+ },
+ "background-pages-includes-scripts-property": {
+ "type": "manifestChanges",
+ "description": "Most background pages only include a list of script files. For these background pages, you can use the new background.scripts property and Chrome will generate a background page for you.",
+ "version": 18
+ },
+ "new-web-accessible-resources-field": {
+ "type": "manifestChanges",
+ "description": "The new web_accessible_resources field specifies the paths of packaged resources that are expected to be usable in the context of a web page.",
+ "version": 18
+ },
+ "permission-be-optional-for-some-apis": {
+ "type": "manifestChanges",
+ "description": "Permissions can be optional for the content setting API, the web navigation API, and the new web request API.",
+ "version": 17
+ },
+ "management.ExtensionInfo.object.has-disabledReason-property": {
+ "type": "additionsToExistingApis",
+ "description": "The management API's management.ExtensionInfo object now has a <code>disabledReason</code> property.",
+ "version": 17
+ },
+ "omnibox.api.works-in-split-incognito-mode": {
+ "type": "additionsToExistingApis",
+ "description": "The omnibox API now works in split incognito mode.",
+ "version": 17
+ },
+ "new-requirements-field-declare-extension-requirements": {
+ "type": "manifestChanges",
+ "description": "The new requirements field allows you to declare extension requirements up front. For example, you can use this field to specify that your app requires 3D graphics support in order to use features such as CSS 3D Tranforms or WebGL.",
+ "version": 16
+ },
+ "tabs.query.gets-all-tabs": {
+ "type": "additionsToExistingApis",
+ "description": "The new tabs.query method gets all tabs that have the specified properties or all tabs if no properties are specified.",
+ "version": 16
+ },
+ "tabs.reload.preserve-local-cache": {
+ "type": "additionsToExistingApis",
+ "description": "The new tabs.reload method reloads a tab and includes the option to preserve the local cache of the reloaded tab.",
+ "version": 16
+ },
+ "management.ExtensionInfo.has-updateURL-property": {
+ "type": "additionsToExistingApis",
+ "description": "The management API's management.ExtensionInfo object now has an <code>updateURL</code> property.",
+ "version": 16
+ },
+ "external_extensions.json.limit-supported-locals": {
+ "type": "additionsToExistingApis",
+ "description": "You can now limit the supported locales for an external extension by adding the <code>supported_locales</code> attribute to the <code>external_extensions.json</code>.",
+ "version": 16
+ },
+ "getAllInWindow-getSelected.deprecated": {
+ "type": "additionsToExistingApis",
+ "description": "The methods <code>getAllInWindow()</code> and <code>getSelected()</code> have been deprecated. To get details about all tabs in the specified window, use tabs.query with the argument {'windowId': windowId}. To get the tab that is selected in the specified window, use <code>chrome.tabs.query()</code> with the argument <code>{'active': true}</code>.",
+ "version": 16
+ },
+ "tabs.upate-doesnot-need-tabId": {
+ "type": "additionsToExistingApis",
+ "description": "You are no longer required to specify the <code>tabId</code> for the tabs.update method. When not provided, the tabId defaults to the selected tab of the current window.",
+ "version": 16
+ },
+ "external-files-be-owned-by-users-in-wheel-group": {
+ "type": "additionsToExistingApis",
+ "description": "External extension files on Mac OS can now be owned by users within a wheel group (or an admin group).",
+ "version": 16
+ },
+ "experimental-permission-no-longer-required-for-panel-type": {
+ "type": "additionsToExistingApis",
+ "description": "The experimental permission is no longer required for the panel type. By default, the panel type creates a popup unless the <code>--enable-panels</code> flag is set.",
+ "version": 16
+ },
+ "offline_enabled.field-specify-without-connection": {
+ "type": "manifestChanges",
+ "description": "The new offline_enabled field lets you specify that your app works well even without an internet connection.",
+ "version": 15
+ },
+ "management.getPermissionWarningsById.retrieve-permission-warning": {
+ "type": "additionsToExistingApis",
+ "description": "You can retrieve permission warnings using the new management API methods management.getPermissionWarningsById and management.getPermissionWarningsByManifest.",
+ "version": 15
+ },
+ "management.ExtensionInfo.has-offlineEnabled": {
+ "type": "additionsToExistingApis",
+ "description": "The management API’s management.ExtensionInfo object has a new field, offlineEnabled.",
+ "version": 15
+ },
+ "internationalize.using-placeholders": {
+ "type": "additionsToExistingApis",
+ "description": "You can now internationalize content script CSS files by using __MSG_messagename__ placeholders.",
+ "version": 15
+ },
+ "tabs.update.callback-passed-null": {
+ "type": "additionsToExistingApis",
+ "description": "The callback for the tabs.update method is passed null instead of the tab details if the extension does not have the tabs permission.",
+ "version": 15
+ },
+ "content_security_policy-prevent-xss-attack": {
+ "type": "manifestChanges",
+ "description": "The new content_security_policy field can help prevent cross-site scripting vulnerabilities in your extension.",
+ "version": 14
+ },
+ "nacl_modules.register-native-client-modules": {
+ "type": "manifestChanges",
+ "description": "The new nacl_modules field lets you register Native Client modules as content handlers for MIME types.",
+ "version": 14
+ },
+ "context.menu.items-appear-in-documents": {
+ "type": "additionsToExistingApis",
+ "description": "Context menu items can now appear even in documents that have file:// or chrome:// URLs. Previously, they were restricted to documents with http:// or https:// URLs.",
+ "version": 14
+ },
+ "drawAttention-field-specify-that-window": {
+ "type": "additionsToExistingApis",
+ "description": "An optional drawAttention field in windows.update's updateInfo object lets you specify that the window should entice the user to change focus to it.",
+ "version": 14
+ },
+ "bookmarks.getSubTree-retrieve-bookmarks-hierarchy": {
+ "type": "additionsToExistingApis",
+ "description": "The new bookmarks.getSubTree function lets you retrieve just part of the Bookmarks hierarchy",
+ "version": 14
+ },
+ "tabs.permission.no-longer-required-for-tabs-remove": {
+ "type": "additionsToExistingApis",
+ "description": "The tabs permission is no longer required for tabs.remove and tabs.onRemoved.",
+ "version": 14
+ },
+ "exclude_matches-targets-content-script-precisely": {
+ "type": "manifestChanges",
+ "description": "A new <code>exclude_matches</code> item in the content_scripts field lets you target your content script more precisely. For details, see Match patterns and globs.",
+ "version": 13
+ },
+ "new-clipboardRead-specify-capabilities-for-document.execCommand": {
+ "type": "manifestChanges",
+ "description": "New clipboardRead and clipboardWrite permissions specify capabilities for <code>document.execCommand()</code>.",
+ "version": 13
+ },
+ "content-scripts-make-cross-origin-requests": {
+ "type": "additionsToExistingApis",
+ "description": "Content scripts can now make cross-origin XMLHttpRequests to the same sites that their parent extension can, eliminating the need to relay these requests through a background page.",
+ "version": 13
+ },
+ "use-runat-in-greasemonkey-script": {
+ "type": "additionsToExistingApis",
+ "description": "You can now use <code>@run-at</code> in an imported Greasemonkey script to control when the script is injected. It works the same way as <code>run_at</code> in content scripts.",
+ "version": 13
+ },
+ "two-new-chrome-extension-methods": {
+ "type": "additionsToExistingApis",
+ "description": "Two new <code>chrome.extension</code> methods—extension.isAllowedFileSchemeAccess and extension.isAllowedIncognitoAccess—let you determine whether your extension has increased access, which the user specifies using the extensions management page (chrome://extensions).",
+ "version": 12
+ },
+ "window.create.takes-focused-value": {
+ "type": "additionsToExistingApis",
+ "description": "The windows.create method can now take a <code>focused</code> value. Previously, all new windows had the keyboard focus; now you can create windows without interrupting the user's typing.",
+ "version": 12
+ },
+ "manifest-specifies-experimental-permission": {
+ "type": "additionsToExistingApis",
+ "description": "If the manifest specifies experimental permission, your extension can specify panel as the value of the <code>type</code> field in the windows.create method or the windows.Window type.",
+ "version": 12
+ },
+ "cookies.onChanged.event-has-a-cause-parameter": {
+ "type": "additionsToExistingApis",
+ "description": "The cookies.onChanged event of <code>chrome.cookies</code> now has a <code>cause</code> parameter.",
+ "version": 12
+ },
+ "chrome.contextMenus.create.specifies-frame-value": {
+ "type": "additionsToExistingApis",
+ "description": "The <code>chrome.contextMenus</code> contextMenus.create and contextMenus.update methods now let you specify a context value of frame",
+ "version": 12
+ },
+ "host-permission-for-tabs-operation": {
+ "type": "additionsToExistingApis",
+ "description": "For security reasons, you can no longer call tabs.captureVisibleTab on just any tab. Instead, you now must have host permission for the URL displayed by that tab. To get the previous behavior, specify <code><all_urls></code> for the host permission.",
+ "version": 11
+ },
+ "management.ExtensionInfo.has-homepageUrl-property": {
+ "type": "additionsToExistingApis",
+ "description": "The management API's management.ExtensionInfo object now has a <code>homepageUrl</code> property.",
+ "version": 11
+ },
+ "management.has-homepageUrl-property": {
+ "type": "additionsToExistingApis",
+ "description": "The management API now lets you get the icons of disabled apps and extensions. Also, you can now modify the regular icon's URL to get its disabled equivalent. See management.IconInfo for details.",
+ "version": 11
+ },
+ "cookies.set-take-callbacks": {
+ "type": "additionsToExistingApis",
+ "description": "The cookies API cookies.set and cookies.remove methods can now take callbacks.",
+ "version": 11
+ },
+ "new.background-permission-extends-life-of-chrome": {
+ "type": "manifestChanges",
+ "description": "The new background permission extends the life of Chrome, allowing your extension or app to run even when Chrome has no windows open.",
+ "version": 10
+ },
+ "windows.create.has-tabId-field": {
+ "type": "additionsToExistingApis",
+ "description": "The windows.create method now has a <code>tabId</code> field. You can use it to move a tab or panel into a new window.",
+ "version": 10
+ },
+ "homepage-url-field-specify-extension-homepage": {
+ "type": "manifestChanges",
+ "description": "The homepage_url field lets you specify the extension or app's homepage.",
+ "version": 9
+ },
+ "tabs.Tab.has-pinned-property": {
+ "type": "additionsToExistingApis",
+ "description": "The tabs.Tab object now has a <code>pinned</code> property that's reflected in various <code>chrome.tabs</code> methods. For example, you can tabs.create a pinned tab.",
+ "version": 9
+ },
+ "windows.create.takes-urls": {
+ "type": "additionsToExistingApis",
+ "description": "The windows.create method can now take a list of URLs, letting you create multiple tabs in the new window.",
+ "version": 9
+ },
+ "management.get.specified-apps": {
+ "type": "additionsToExistingApis",
+ "description": "The new management.get method lets you get information about the specified extension or app.",
+ "version": 9
+ },
+ "introduce-split-incognito-mode": {
+ "type": "manifestChanges",
+ "description": "Introduced split incognito mode as the default for installable web apps (also available to extensions).",
+ "version": 7
+ },
+ "tabs.create-and-update-no-longer-require-tabs-permission": {
+ "type": "manifestChanges",
+ "description": "The tabs API <code>create()</code> and <code>update()</code> methods no longer require the tabs permission, removing one common cause of scary dialogs.",
+ "version": 7
+ },
+ "geolocation-permission-access-users-location": {
+ "type": "manifestChanges",
+ "description": "The geolocation permission gives an extension access to the user's physical location.",
+ "version": 6
+ },
+ "match-patterns-select-all-schemes": {
+ "type": "manifestChanges",
+ "description": "Match patterns can now select all schemes or all URLs.",
+ "version": 6
+ },
+ "access-file-urls-triggers-access-warning": {
+ "type": "manifestChanges",
+ "description": "Access to file:/// URLs no longer triggers the access to your machine security warning, but now requires user opt-in from the extensions management page.",
+ "version": 6
+ },
+ "extension.getViews.return-popup-views": {
+ "type": "additionsToExistingApis",
+ "description": "The extension.getViews method can now return popup views.",
+ "version": 6
+ },
+ "windows.WINDOW_ID_NONE.identifies": {
+ "type": "additionsToExistingApis",
+ "description": "A new windows.WINDOW_ID_NONE constant identifies when focus shifts away from the browser.",
+ "version": 6
+ },
+ "tabs.getCurrent-returns-tab": {
+ "type": "additionsToExistingApis",
+ "description": "The new tabs.getCurrent method returns the tab associated with the currently executing script.",
+ "version": 6
+ }
+}
diff --git a/chromium/chrome/common/extensions/docs/templates/public/apps/redirects.json b/chromium/chrome/common/extensions/docs/templates/public/apps/redirects.json
index e689f8f5bdd..c393f100ce0 100644
--- a/chromium/chrome/common/extensions/docs/templates/public/apps/redirects.json
+++ b/chromium/chrome/common/extensions/docs/templates/public/apps/redirects.json
@@ -1,11 +1,12 @@
{
- "": "about_apps.html",
- "app_csp.html": "contentSecurityPolicy.html",
- "experimental_systemInfo_storage.html": "system_storage.html",
- "in_app_payments.html": "google_wallet.html",
- "index.html": "about_apps.html",
- "systemInfo_cpu.html": "system_cpu.html",
- "systemInfo_display.html": "system_display.html",
- "systemInfo_memory.html": "system_memory.html",
- "webview_tag.html": "tags/webview.html"
+ "": "about_apps",
+ "app_csp": "contentSecurityPolicy",
+ "experimental_systemInfo_storage": "system_storage",
+ "in_app_payments": "google_wallet",
+ "index": "about_apps",
+ "systemInfo_cpu": "system_cpu",
+ "systemInfo_display": "system_display",
+ "systemInfo_memory": "system_memory",
+ "webview": "tags/webview",
+ "webview_tag": "tags/webview"
}
diff --git a/chromium/chrome/common/extensions/docs/templates/public/extensions/redirects.json b/chromium/chrome/common/extensions/docs/templates/public/extensions/redirects.json
index 4f5e9a56971..700b73b91f5 100644
--- a/chromium/chrome/common/extensions/docs/templates/public/extensions/redirects.json
+++ b/chromium/chrome/common/extensions/docs/templates/public/extensions/redirects.json
@@ -1,11 +1,10 @@
{
- "": "index.html",
- "experimental.debugger.html": "debugger.html",
- "experimental_debugger.html": "debugger.html",
- "experimental.infobars.html": "infobars.html",
- "experimental_infobars.html": "infobars.html",
- "experimental.systemInfo_storage.html": "system_storage.html",
- "experimental_systemInfo_storage.html": "system_storage.html",
- "systemInfo_cpu.html": "system_cpu.html",
- "systemInfo_memory.html": "system_memory.html"
+ "experimental.debugger": "debugger",
+ "experimental_debugger": "debugger",
+ "experimental.infobars": "infobars",
+ "experimental_infobars": "infobars",
+ "experimental.systemInfo_storage": "system_storage",
+ "experimental_systemInfo_storage": "system_storage",
+ "systemInfo_cpu": "system_cpu",
+ "systemInfo_memory": "system_memory"
}
diff --git a/chromium/chrome/common/extensions/docs/templates/public/redirects.json b/chromium/chrome/common/extensions/docs/templates/public/redirects.json
index e5b0c4c0f7e..6c724a291fe 100644
--- a/chromium/chrome/common/extensions/docs/templates/public/redirects.json
+++ b/chromium/chrome/common/extensions/docs/templates/public/redirects.json
@@ -1,7 +1,4 @@
{
- "": "//developers.google.com/chrome",
- "apps.html": "/apps/about_apps.html",
- "apps": "/apps/about_apps.html",
- "extensions": "/extensions/index.html",
- "index.html": "//developers.google.com/chrome"
+ "": "/home",
+ "apps": "/apps/about_apps"
}