summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 14:49:25 +0000
committerjstritar@chromium.org <jstritar@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-14 14:49:25 +0000
commitfdacba32736298fa743c670d8146c736d41394b1 (patch)
treec9bbaf4fdb58d9664fc5b148e5575bb2c7e34dfd /chrome
parenta690bb054931ce7405f4f2ab96fe5cb35d4c595c (diff)
downloadchromium_src-fdacba32736298fa743c670d8146c736d41394b1.zip
chromium_src-fdacba32736298fa743c670d8146c736d41394b1.tar.gz
chromium_src-fdacba32736298fa743c670d8146c736d41394b1.tar.bz2
Move extension permissions API out of experimental.
BUG=84507 TEST=*Extension* Review URL: http://codereview.chromium.org/8277004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105491 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/extensions/extension_permissions_api.cc4
-rw-r--r--chrome/browser/extensions/extension_permissions_api.h8
-rw-r--r--chrome/browser/extensions/permissions_apitest.cc8
-rw-r--r--chrome/common/extensions/api/extension_api.json2
-rw-r--r--chrome/common/extensions/docs/a11y.html1
-rw-r--r--chrome/common/extensions/docs/api_index.html3
-rw-r--r--chrome/common/extensions/docs/api_other.html1
-rw-r--r--chrome/common/extensions/docs/apps.html1
-rw-r--r--chrome/common/extensions/docs/autoupdate.html1
-rw-r--r--chrome/common/extensions/docs/background_pages.html1
-rw-r--r--chrome/common/extensions/docs/bookmarks.html1
-rw-r--r--chrome/common/extensions/docs/browserAction.html1
-rw-r--r--chrome/common/extensions/docs/contentSettings.html1
-rw-r--r--chrome/common/extensions/docs/content_scripts.html1
-rw-r--r--chrome/common/extensions/docs/contextMenus.html1
-rw-r--r--chrome/common/extensions/docs/cookies.html1
-rw-r--r--chrome/common/extensions/docs/crx.html1
-rw-r--r--chrome/common/extensions/docs/devguide.html6
-rw-r--r--chrome/common/extensions/docs/docs.html1
-rw-r--r--chrome/common/extensions/docs/events.html1
-rw-r--r--chrome/common/extensions/docs/examples/api/permissions/extension-questions.zipbin12010 -> 11906 bytes
-rw-r--r--chrome/common/extensions/docs/examples/api/permissions/extension-questions/options.js14
-rw-r--r--chrome/common/extensions/docs/examples/api/permissions/extension-questions/popup.js2
-rw-r--r--chrome/common/extensions/docs/experimental.app.html1
-rw-r--r--chrome/common/extensions/docs/experimental.clear.html1
-rw-r--r--chrome/common/extensions/docs/experimental.contextMenus.html1
-rw-r--r--chrome/common/extensions/docs/experimental.cookies.html1
-rw-r--r--chrome/common/extensions/docs/experimental.debugger.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.audits.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.console.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.inspectedWindow.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.network.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.panels.html1
-rw-r--r--chrome/common/extensions/docs/experimental.devtools.resources.html1
-rw-r--r--chrome/common/extensions/docs/experimental.history.html1
-rw-r--r--chrome/common/extensions/docs/experimental.html2
-rw-r--r--chrome/common/extensions/docs/experimental.infobars.html1
-rw-r--r--chrome/common/extensions/docs/experimental.inputUI.html1
-rw-r--r--chrome/common/extensions/docs/experimental.privacy.html1
-rw-r--r--chrome/common/extensions/docs/experimental.savePage.html1
-rw-r--r--chrome/common/extensions/docs/experimental.settings.html1
-rw-r--r--chrome/common/extensions/docs/experimental.speechInput.html1
-rw-r--r--chrome/common/extensions/docs/experimental.webInspector.audits.html1
-rw-r--r--chrome/common/extensions/docs/experimental.webInspector.html1
-rw-r--r--chrome/common/extensions/docs/experimental.webInspector.panels.html1
-rw-r--r--chrome/common/extensions/docs/experimental.webInspector.resources.html1
-rw-r--r--chrome/common/extensions/docs/experimental.webRequest.html1
-rw-r--r--chrome/common/extensions/docs/extension.html1
-rw-r--r--chrome/common/extensions/docs/external_extensions.html1
-rw-r--r--chrome/common/extensions/docs/faq.html1
-rw-r--r--chrome/common/extensions/docs/fileBrowserHandler.html1
-rw-r--r--chrome/common/extensions/docs/getstarted.html1
-rw-r--r--chrome/common/extensions/docs/history.html1
-rw-r--r--chrome/common/extensions/docs/hosting.html1
-rw-r--r--chrome/common/extensions/docs/i18n-messages.html1
-rw-r--r--chrome/common/extensions/docs/i18n.html1
-rw-r--r--chrome/common/extensions/docs/idle.html1
-rw-r--r--chrome/common/extensions/docs/index.html1
-rw-r--r--chrome/common/extensions/docs/management.html1
-rw-r--r--chrome/common/extensions/docs/manifest.html8
-rw-r--r--chrome/common/extensions/docs/match_patterns.html1
-rw-r--r--chrome/common/extensions/docs/messaging.html1
-rw-r--r--chrome/common/extensions/docs/notifications.html1
-rw-r--r--chrome/common/extensions/docs/npapi.html1
-rw-r--r--chrome/common/extensions/docs/omnibox.html1
-rw-r--r--chrome/common/extensions/docs/options.html1
-rw-r--r--chrome/common/extensions/docs/override.html1
-rw-r--r--chrome/common/extensions/docs/overview.html1
-rw-r--r--chrome/common/extensions/docs/packaging.html1
-rw-r--r--chrome/common/extensions/docs/pageAction.html1
-rw-r--r--chrome/common/extensions/docs/permission_warnings.html1
-rw-r--r--chrome/common/extensions/docs/permissions.html (renamed from chrome/common/extensions/docs/experimental.permissions.html)49
-rw-r--r--chrome/common/extensions/docs/proxy.html1
-rw-r--r--chrome/common/extensions/docs/samples.html15
-rw-r--r--chrome/common/extensions/docs/samples.json26
-rw-r--r--chrome/common/extensions/docs/static/devguide.html5
-rw-r--r--chrome/common/extensions/docs/static/manifest.html7
-rw-r--r--chrome/common/extensions/docs/static/permissions.html (renamed from chrome/common/extensions/docs/static/experimental.permissions.html)16
-rw-r--r--chrome/common/extensions/docs/tabs.html1
-rw-r--r--chrome/common/extensions/docs/template/api_template.html1
-rw-r--r--chrome/common/extensions/docs/themes.html1
-rw-r--r--chrome/common/extensions/docs/tts.html1
-rw-r--r--chrome/common/extensions/docs/ttsEngine.html1
-rw-r--r--chrome/common/extensions/docs/tut_analytics.html1
-rw-r--r--chrome/common/extensions/docs/tut_debugging.html1
-rw-r--r--chrome/common/extensions/docs/tut_oauth.html1
-rw-r--r--chrome/common/extensions/docs/tutorials.html1
-rw-r--r--chrome/common/extensions/docs/types.html1
-rw-r--r--chrome/common/extensions/docs/webNavigation.html1
-rw-r--r--chrome/common/extensions/docs/whats_new.html1
-rw-r--r--chrome/common/extensions/docs/windows.html1
-rw-r--r--chrome/common/extensions/docs/xhr.html1
-rw-r--r--chrome/common/extensions/extension.cc4
-rw-r--r--chrome/renderer/resources/extensions/renderer_process_bindings.js2
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional/background.html84
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional/manifest.json1
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional_deny/background.html4
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json2
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional_gesture/background.html2
-rw-r--r--chrome/test/data/extensions/api_test/permissions/optional_gesture/manifest.json2
101 files changed, 232 insertions, 120 deletions
diff --git a/chrome/browser/extensions/extension_permissions_api.cc b/chrome/browser/extensions/extension_permissions_api.cc
index 0972ef8..6cfb43a 100644
--- a/chrome/browser/extensions/extension_permissions_api.cc
+++ b/chrome/browser/extensions/extension_permissions_api.cc
@@ -37,8 +37,8 @@ const char kUserGestureRequiredError[] =
const char kInvalidOrigin[] =
"Invalid value for origin pattern *: *";
-const char kOnAdded[] = "experimental.permissions.onAdded";
-const char kOnRemoved[] = "experimental.permissions.onRemoved";
+const char kOnAdded[] = "permissions.onAdded";
+const char kOnRemoved[] = "permissions.onRemoved";
enum AutoConfirmForTest {
DO_NOT_SKIP = 0,
diff --git a/chrome/browser/extensions/extension_permissions_api.h b/chrome/browser/extensions/extension_permissions_api.h
index 2d660ea..a844065 100644
--- a/chrome/browser/extensions/extension_permissions_api.h
+++ b/chrome/browser/extensions/extension_permissions_api.h
@@ -66,21 +66,21 @@ class ExtensionPermissionsManager {
class ContainsPermissionsFunction : public SyncExtensionFunction {
virtual ~ContainsPermissionsFunction() {}
virtual bool RunImpl() OVERRIDE;
- DECLARE_EXTENSION_FUNCTION_NAME("experimental.permissions.contains")
+ DECLARE_EXTENSION_FUNCTION_NAME("permissions.contains")
};
// chrome.permissions.getAll
class GetAllPermissionsFunction : public SyncExtensionFunction {
virtual ~GetAllPermissionsFunction() {}
virtual bool RunImpl() OVERRIDE;
- DECLARE_EXTENSION_FUNCTION_NAME("experimental.permissions.getAll")
+ DECLARE_EXTENSION_FUNCTION_NAME("permissions.getAll")
};
// chrome.permissions.remove
class RemovePermissionsFunction : public SyncExtensionFunction {
virtual ~RemovePermissionsFunction() {}
virtual bool RunImpl() OVERRIDE;
- DECLARE_EXTENSION_FUNCTION_NAME("experimental.permissions.remove")
+ DECLARE_EXTENSION_FUNCTION_NAME("permissions.remove")
};
// chrome.permissions.request
@@ -105,7 +105,7 @@ class RequestPermissionsFunction : public AsyncExtensionFunction,
scoped_ptr<ExtensionInstallUI> install_ui_;
scoped_refptr<ExtensionPermissionSet> requested_permissions_;
const Extension* extension_;
- DECLARE_EXTENSION_FUNCTION_NAME("experimental.permissions.request")
+ DECLARE_EXTENSION_FUNCTION_NAME("permissions.request")
};
#endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_PERMISSIONS_API_H__
diff --git a/chrome/browser/extensions/permissions_apitest.cc b/chrome/browser/extensions/permissions_apitest.cc
index c1234fd..e0bd632 100644
--- a/chrome/browser/extensions/permissions_apitest.cc
+++ b/chrome/browser/extensions/permissions_apitest.cc
@@ -64,7 +64,7 @@ IN_PROC_BROWSER_TEST_F(ExtensionApiTest, AlwaysAllowed) {
}
// Tests that the optional permissions API works correctly.
-IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsGranted) {
+IN_PROC_BROWSER_TEST_F(ExtensionApiTest, OptionalPermissionsGranted) {
// Mark all the tested APIs as granted to bypass the confirmation UI.
ExtensionAPIPermissionSet apis;
apis.insert(ExtensionAPIPermission::kTab);
@@ -87,7 +87,7 @@ IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsGranted) {
}
// Tests that the optional permissions API works correctly.
-IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsAutoConfirm) {
+IN_PROC_BROWSER_TEST_F(ExtensionApiTest, OptionalPermissionsAutoConfirm) {
// Rather than setting the granted permissions, set the UI autoconfirm flag
// and run the same tests.
RequestPermissionsFunction::SetAutoConfirmForTests(true);
@@ -98,7 +98,7 @@ IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsAutoConfirm) {
}
// Test that denying the optional permissions confirmation dialog works.
-IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsDeny) {
+IN_PROC_BROWSER_TEST_F(ExtensionApiTest, OptionalPermissionsDeny) {
RequestPermissionsFunction::SetAutoConfirmForTests(false);
RequestPermissionsFunction::SetIgnoreUserGestureForTests(true);
host_resolver()->AddRule("*.com", "127.0.0.1");
@@ -108,7 +108,7 @@ IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsDeny) {
// Tests that the permissions.request function must be called from within a
// user gesture.
-IN_PROC_BROWSER_TEST_F(ExperimentalApiTest, OptionalPermissionsGesture) {
+IN_PROC_BROWSER_TEST_F(ExtensionApiTest, OptionalPermissionsGesture) {
RequestPermissionsFunction::SetIgnoreUserGestureForTests(false);
host_resolver()->AddRule("*.com", "127.0.0.1");
ASSERT_TRUE(StartTestServer());
diff --git a/chrome/common/extensions/api/extension_api.json b/chrome/common/extensions/api/extension_api.json
index 54b8bed..4dcd8a6 100644
--- a/chrome/common/extensions/api/extension_api.json
+++ b/chrome/common/extensions/api/extension_api.json
@@ -1343,7 +1343,7 @@
]
},
{
- "namespace": "experimental.permissions",
+ "namespace": "permissions",
"types": [
{
"id": "Permissions",
diff --git a/chrome/common/extensions/docs/a11y.html b/chrome/common/extensions/docs/a11y.html
index 075a339b..87565ed 100644
--- a/chrome/common/extensions/docs/a11y.html
+++ b/chrome/common/extensions/docs/a11y.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/api_index.html b/chrome/common/extensions/docs/api_index.html
index 2c36a53..5c1e64c 100644
--- a/chrome/common/extensions/docs/api_index.html
+++ b/chrome/common/extensions/docs/api_index.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -341,7 +342,7 @@ Here are the supported chrome.* APIs:
</p>
<ul>
- <li><a href="bookmarks.html" js="">bookmarks</a></li><li><a href="browserAction.html" js="">browserAction</a></li><li><a href="contentSettings.html" js="">contentSettings</a></li><li><a href="contextMenus.html" js="">contextMenus</a></li><li><a href="cookies.html" js="">cookies</a></li><li><a href="extension.html" js="">extension</a></li><li><a href="fileBrowserHandler.html" js="">fileBrowserHandler</a></li><li><a href="history.html" js="">history</a></li><li><a href="i18n.html" js="">i18n</a></li><li><a href="idle.html" js="">idle</a></li><li><a href="management.html" js="">management</a></li><li><a href="omnibox.html" js="">omnibox</a></li><li><a href="pageAction.html" js="">pageAction</a></li><li><a href="proxy.html" js="">proxy</a></li><li><a href="tabs.html" js="">tabs</a></li><li><a href="tts.html" js="">tts</a></li><li><a href="ttsEngine.html" js="">ttsEngine</a></li><li><a href="types.html" js="">types</a></li><li><a href="webNavigation.html" js="">webNavigation</a></li><li><a href="windows.html" js="">windows</a></li>
+ <li><a href="bookmarks.html" js="">bookmarks</a></li><li><a href="browserAction.html" js="">browserAction</a></li><li><a href="contentSettings.html" js="">contentSettings</a></li><li><a href="contextMenus.html" js="">contextMenus</a></li><li><a href="cookies.html" js="">cookies</a></li><li><a href="extension.html" js="">extension</a></li><li><a href="fileBrowserHandler.html" js="">fileBrowserHandler</a></li><li><a href="history.html" js="">history</a></li><li><a href="i18n.html" js="">i18n</a></li><li><a href="idle.html" js="">idle</a></li><li><a href="management.html" js="">management</a></li><li><a href="omnibox.html" js="">omnibox</a></li><li><a href="pageAction.html" js="">pageAction</a></li><li><a href="permissions.html" js="">permissions</a></li><li><a href="proxy.html" js="">proxy</a></li><li><a href="tabs.html" js="">tabs</a></li><li><a href="tts.html" js="">tts</a></li><li><a href="ttsEngine.html" js="">ttsEngine</a></li><li><a href="types.html" js="">types</a></li><li><a href="webNavigation.html" js="">webNavigation</a></li><li><a href="windows.html" js="">windows</a></li>
</ul>
<h2 id="experimental">Experimental APIs</h2>
diff --git a/chrome/common/extensions/docs/api_other.html b/chrome/common/extensions/docs/api_other.html
index 27e4e72..b19724a 100644
--- a/chrome/common/extensions/docs/api_other.html
+++ b/chrome/common/extensions/docs/api_other.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/apps.html b/chrome/common/extensions/docs/apps.html
index 4633375..9b15fa9 100644
--- a/chrome/common/extensions/docs/apps.html
+++ b/chrome/common/extensions/docs/apps.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/autoupdate.html b/chrome/common/extensions/docs/autoupdate.html
index cda7e3c..5245d95 100644
--- a/chrome/common/extensions/docs/autoupdate.html
+++ b/chrome/common/extensions/docs/autoupdate.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/background_pages.html b/chrome/common/extensions/docs/background_pages.html
index b91fe73..4bce426 100644
--- a/chrome/common/extensions/docs/background_pages.html
+++ b/chrome/common/extensions/docs/background_pages.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/bookmarks.html b/chrome/common/extensions/docs/bookmarks.html
index 520d42c..953518e 100644
--- a/chrome/common/extensions/docs/bookmarks.html
+++ b/chrome/common/extensions/docs/bookmarks.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/browserAction.html b/chrome/common/extensions/docs/browserAction.html
index 2753342e..a1899b7 100644
--- a/chrome/common/extensions/docs/browserAction.html
+++ b/chrome/common/extensions/docs/browserAction.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/contentSettings.html b/chrome/common/extensions/docs/contentSettings.html
index aa469d9..0a71540 100644
--- a/chrome/common/extensions/docs/contentSettings.html
+++ b/chrome/common/extensions/docs/contentSettings.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/content_scripts.html b/chrome/common/extensions/docs/content_scripts.html
index 0205c9d..f6d2307 100644
--- a/chrome/common/extensions/docs/content_scripts.html
+++ b/chrome/common/extensions/docs/content_scripts.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/contextMenus.html b/chrome/common/extensions/docs/contextMenus.html
index 546b307..8fc751a 100644
--- a/chrome/common/extensions/docs/contextMenus.html
+++ b/chrome/common/extensions/docs/contextMenus.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/cookies.html b/chrome/common/extensions/docs/cookies.html
index e65e39a..22c09db 100644
--- a/chrome/common/extensions/docs/cookies.html
+++ b/chrome/common/extensions/docs/cookies.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/crx.html b/chrome/common/extensions/docs/crx.html
index b1a5b9d..6e80b86 100644
--- a/chrome/common/extensions/docs/crx.html
+++ b/chrome/common/extensions/docs/crx.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/devguide.html b/chrome/common/extensions/docs/devguide.html
index 4d1c510..b90d9b3 100644
--- a/chrome/common/extensions/docs/devguide.html
+++ b/chrome/common/extensions/docs/devguide.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -421,6 +422,10 @@ applies to packaged apps, as well as extensions.
or vice versa</td>
</tr>
<tr>
+ <td> <a href="permissions.html">Optional Permissions</a> </td>
+ <td> Modify your extension's permissions </td>
+ </tr>
+ <tr>
<td> <a href="npapi.html">NPAPI&nbsp;Plugins</a> </td>
<td> Load native binary code </td>
</tr>
@@ -448,7 +453,6 @@ applies to packaged apps, as well as extensions.
<td> Create a <code>.crx</code> file so you can distribute your extension </td>
</tr>
</tbody></table>
-
</div>
<!-- API PAGE -->
diff --git a/chrome/common/extensions/docs/docs.html b/chrome/common/extensions/docs/docs.html
index 1198aad..fed345e 100644
--- a/chrome/common/extensions/docs/docs.html
+++ b/chrome/common/extensions/docs/docs.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/events.html b/chrome/common/extensions/docs/events.html
index 94c8e3a..2d8ce9c 100644
--- a/chrome/common/extensions/docs/events.html
+++ b/chrome/common/extensions/docs/events.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/examples/api/permissions/extension-questions.zip b/chrome/common/extensions/docs/examples/api/permissions/extension-questions.zip
index 4d45615..f4ae341 100644
--- a/chrome/common/extensions/docs/examples/api/permissions/extension-questions.zip
+++ b/chrome/common/extensions/docs/examples/api/permissions/extension-questions.zip
Binary files differ
diff --git a/chrome/common/extensions/docs/examples/api/permissions/extension-questions/options.js b/chrome/common/extensions/docs/examples/api/permissions/extension-questions/options.js
index fb292e3..9ff8f7e 100644
--- a/chrome/common/extensions/docs/examples/api/permissions/extension-questions/options.js
+++ b/chrome/common/extensions/docs/examples/api/permissions/extension-questions/options.js
@@ -7,22 +7,22 @@ var YES = 'ENABLED';
var NO = 'DISABLED';
var $status = document.querySelector('#status');
-chrome.experimental.permissions.onAdded.addListener(function(permissions) {
+chrome.permissions.onAdded.addListener(function(permissions) {
$status.innerText = YES;
});
-chrome.experimental.permissions.onRemoved.addListener(function(permissions) {
+chrome.permissions.onRemoved.addListener(function(permissions) {
$status.innerText = NO;
});
-chrome.experimental.permissions.contains(PERMISSIONS, function(contains) {
+chrome.permissions.contains(PERMISSIONS, function(contains) {
$status.innerText = contains ? YES : NO;
});
document.querySelector('button#enable').addEventListener('click', function() {
- chrome.experimental.permissions.contains(PERMISSIONS, function(allowed) {
+ chrome.permissions.contains(PERMISSIONS, function(allowed) {
if (allowed) {
alert('You already have SO host permission!');
} else {
- chrome.experimental.permissions.request(PERMISSIONS, function(result) {
+ chrome.permissions.request(PERMISSIONS, function(result) {
if (result) {
console.log('SO host permission granted!' +
'Open the browser action again.');
@@ -33,9 +33,9 @@ document.querySelector('button#enable').addEventListener('click', function() {
});
document.querySelector('button#disable').addEventListener('click', function() {
- chrome.experimental.permissions.contains(PERMISSIONS, function(allowed) {
+ chrome.permissions.contains(PERMISSIONS, function(allowed) {
if (allowed) {
- chrome.experimental.permissions.remove(PERMISSIONS, function(result) {
+ chrome.permissions.remove(PERMISSIONS, function(result) {
console.log('Revoked SO host permission.');
});
} else {
diff --git a/chrome/common/extensions/docs/examples/api/permissions/extension-questions/popup.js b/chrome/common/extensions/docs/examples/api/permissions/extension-questions/popup.js
index 588de2c..46c74d9 100644
--- a/chrome/common/extensions/docs/examples/api/permissions/extension-questions/popup.js
+++ b/chrome/common/extensions/docs/examples/api/permissions/extension-questions/popup.js
@@ -6,7 +6,7 @@ var PERMISSIONS = {origins: ['http://api.stackoverflow.com/']};
var URL = 'http://api.stackoverflow.com/1.1/questions?max=10&sort=votes&tagged=google-chrome-extension';
var ROOT = 'http://stackoverflow.com';
-chrome.experimental.permissions.contains(PERMISSIONS, function(result) {
+chrome.permissions.contains(PERMISSIONS, function(result) {
if (!result) {
// Open options page to request permissions.
document.querySelector('#title').innerText =
diff --git a/chrome/common/extensions/docs/experimental.app.html b/chrome/common/extensions/docs/experimental.app.html
index bdb8e74..25c6d58 100644
--- a/chrome/common/extensions/docs/experimental.app.html
+++ b/chrome/common/extensions/docs/experimental.app.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.clear.html b/chrome/common/extensions/docs/experimental.clear.html
index de91464..5f03783 100644
--- a/chrome/common/extensions/docs/experimental.clear.html
+++ b/chrome/common/extensions/docs/experimental.clear.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.contextMenus.html b/chrome/common/extensions/docs/experimental.contextMenus.html
index e15b735..166f9fc 100644
--- a/chrome/common/extensions/docs/experimental.contextMenus.html
+++ b/chrome/common/extensions/docs/experimental.contextMenus.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.cookies.html b/chrome/common/extensions/docs/experimental.cookies.html
index 2634941..f2401e7 100644
--- a/chrome/common/extensions/docs/experimental.cookies.html
+++ b/chrome/common/extensions/docs/experimental.cookies.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.debugger.html b/chrome/common/extensions/docs/experimental.debugger.html
index 0591ff1..6413dc1 100644
--- a/chrome/common/extensions/docs/experimental.debugger.html
+++ b/chrome/common/extensions/docs/experimental.debugger.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.audits.html b/chrome/common/extensions/docs/experimental.devtools.audits.html
index 7f5a1fa..520a5a6 100644
--- a/chrome/common/extensions/docs/experimental.devtools.audits.html
+++ b/chrome/common/extensions/docs/experimental.devtools.audits.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.console.html b/chrome/common/extensions/docs/experimental.devtools.console.html
index c9bca05..cea1618 100644
--- a/chrome/common/extensions/docs/experimental.devtools.console.html
+++ b/chrome/common/extensions/docs/experimental.devtools.console.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.html b/chrome/common/extensions/docs/experimental.devtools.html
index 8141f1f..e3bb3bd 100644
--- a/chrome/common/extensions/docs/experimental.devtools.html
+++ b/chrome/common/extensions/docs/experimental.devtools.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.inspectedWindow.html b/chrome/common/extensions/docs/experimental.devtools.inspectedWindow.html
index d8ba038..a633b27 100644
--- a/chrome/common/extensions/docs/experimental.devtools.inspectedWindow.html
+++ b/chrome/common/extensions/docs/experimental.devtools.inspectedWindow.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.network.html b/chrome/common/extensions/docs/experimental.devtools.network.html
index fef73d1..4bbc3d6 100644
--- a/chrome/common/extensions/docs/experimental.devtools.network.html
+++ b/chrome/common/extensions/docs/experimental.devtools.network.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.panels.html b/chrome/common/extensions/docs/experimental.devtools.panels.html
index 2f0568d..b043323 100644
--- a/chrome/common/extensions/docs/experimental.devtools.panels.html
+++ b/chrome/common/extensions/docs/experimental.devtools.panels.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.devtools.resources.html b/chrome/common/extensions/docs/experimental.devtools.resources.html
index 34ddd17..2673234 100644
--- a/chrome/common/extensions/docs/experimental.devtools.resources.html
+++ b/chrome/common/extensions/docs/experimental.devtools.resources.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.history.html b/chrome/common/extensions/docs/experimental.history.html
index 67841b9..6035b17 100644
--- a/chrome/common/extensions/docs/experimental.history.html
+++ b/chrome/common/extensions/docs/experimental.history.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.html b/chrome/common/extensions/docs/experimental.html
index 2c3aa0a..f26882e 100644
--- a/chrome/common/extensions/docs/experimental.html
+++ b/chrome/common/extensions/docs/experimental.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -368,7 +369,6 @@ on the following experimental APIs:
<a href="experimental.devtools.network.html">experimental.devtools.network</a></li><li>
<a href="experimental.devtools.panels.html">experimental.devtools.panels</a></li><li>
<a href="experimental.infobars.html">experimental.infobars</a></li><li>
- <a href="experimental.permissions.html">experimental.permissions</a></li><li>
<a href="experimental.privacy.html">experimental.privacy</a></li><li>
<a href="experimental.savePage.html">experimental.savePage</a></li><li>
<a href="experimental.settings.html">experimental.settings</a></li><li>
diff --git a/chrome/common/extensions/docs/experimental.infobars.html b/chrome/common/extensions/docs/experimental.infobars.html
index 7f7c033..8c5aaec 100644
--- a/chrome/common/extensions/docs/experimental.infobars.html
+++ b/chrome/common/extensions/docs/experimental.infobars.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.inputUI.html b/chrome/common/extensions/docs/experimental.inputUI.html
index bcf8373..5ee7bdf 100644
--- a/chrome/common/extensions/docs/experimental.inputUI.html
+++ b/chrome/common/extensions/docs/experimental.inputUI.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.privacy.html b/chrome/common/extensions/docs/experimental.privacy.html
index 12be1d5..70aaa6b 100644
--- a/chrome/common/extensions/docs/experimental.privacy.html
+++ b/chrome/common/extensions/docs/experimental.privacy.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.savePage.html b/chrome/common/extensions/docs/experimental.savePage.html
index e6aae1d..be66d6d 100644
--- a/chrome/common/extensions/docs/experimental.savePage.html
+++ b/chrome/common/extensions/docs/experimental.savePage.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.settings.html b/chrome/common/extensions/docs/experimental.settings.html
index 82992d9..f5371b6 100644
--- a/chrome/common/extensions/docs/experimental.settings.html
+++ b/chrome/common/extensions/docs/experimental.settings.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.speechInput.html b/chrome/common/extensions/docs/experimental.speechInput.html
index 2cfe7fd..ca7b7ab 100644
--- a/chrome/common/extensions/docs/experimental.speechInput.html
+++ b/chrome/common/extensions/docs/experimental.speechInput.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.webInspector.audits.html b/chrome/common/extensions/docs/experimental.webInspector.audits.html
index 3bcad27..c09975f 100644
--- a/chrome/common/extensions/docs/experimental.webInspector.audits.html
+++ b/chrome/common/extensions/docs/experimental.webInspector.audits.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.webInspector.html b/chrome/common/extensions/docs/experimental.webInspector.html
index 0b4d740..f300296 100644
--- a/chrome/common/extensions/docs/experimental.webInspector.html
+++ b/chrome/common/extensions/docs/experimental.webInspector.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.webInspector.panels.html b/chrome/common/extensions/docs/experimental.webInspector.panels.html
index 05845c7..88bc645 100644
--- a/chrome/common/extensions/docs/experimental.webInspector.panels.html
+++ b/chrome/common/extensions/docs/experimental.webInspector.panels.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.webInspector.resources.html b/chrome/common/extensions/docs/experimental.webInspector.resources.html
index 69f6929..f26db7c 100644
--- a/chrome/common/extensions/docs/experimental.webInspector.resources.html
+++ b/chrome/common/extensions/docs/experimental.webInspector.resources.html
@@ -202,6 +202,7 @@ API - Google Chrome Extensions - Google Code</title></head>
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.webRequest.html b/chrome/common/extensions/docs/experimental.webRequest.html
index 23650dd..5108d69 100644
--- a/chrome/common/extensions/docs/experimental.webRequest.html
+++ b/chrome/common/extensions/docs/experimental.webRequest.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/extension.html b/chrome/common/extensions/docs/extension.html
index 4e46f8b..ca77e2b 100644
--- a/chrome/common/extensions/docs/extension.html
+++ b/chrome/common/extensions/docs/extension.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/external_extensions.html b/chrome/common/extensions/docs/external_extensions.html
index f39c91d..3bcd7e7 100644
--- a/chrome/common/extensions/docs/external_extensions.html
+++ b/chrome/common/extensions/docs/external_extensions.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/faq.html b/chrome/common/extensions/docs/faq.html
index 29fd305..3b4843e 100644
--- a/chrome/common/extensions/docs/faq.html
+++ b/chrome/common/extensions/docs/faq.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/fileBrowserHandler.html b/chrome/common/extensions/docs/fileBrowserHandler.html
index ad9b598..7f92807 100644
--- a/chrome/common/extensions/docs/fileBrowserHandler.html
+++ b/chrome/common/extensions/docs/fileBrowserHandler.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/getstarted.html b/chrome/common/extensions/docs/getstarted.html
index 692e3d3..cd5a574 100644
--- a/chrome/common/extensions/docs/getstarted.html
+++ b/chrome/common/extensions/docs/getstarted.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/history.html b/chrome/common/extensions/docs/history.html
index 46855d8..9bad6b3 100644
--- a/chrome/common/extensions/docs/history.html
+++ b/chrome/common/extensions/docs/history.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/hosting.html b/chrome/common/extensions/docs/hosting.html
index 83742c4..a676c79 100644
--- a/chrome/common/extensions/docs/hosting.html
+++ b/chrome/common/extensions/docs/hosting.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/i18n-messages.html b/chrome/common/extensions/docs/i18n-messages.html
index 72ec607..b01d79a 100644
--- a/chrome/common/extensions/docs/i18n-messages.html
+++ b/chrome/common/extensions/docs/i18n-messages.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/i18n.html b/chrome/common/extensions/docs/i18n.html
index 1ed507a..e03fb663 100644
--- a/chrome/common/extensions/docs/i18n.html
+++ b/chrome/common/extensions/docs/i18n.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li class="leftNavSelected">Internationalization</li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/idle.html b/chrome/common/extensions/docs/idle.html
index bb61d17..0389e7b 100644
--- a/chrome/common/extensions/docs/idle.html
+++ b/chrome/common/extensions/docs/idle.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/index.html b/chrome/common/extensions/docs/index.html
index 56423ea..791be0e 100644
--- a/chrome/common/extensions/docs/index.html
+++ b/chrome/common/extensions/docs/index.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/management.html b/chrome/common/extensions/docs/management.html
index cf7004d..5bbc6f5 100644
--- a/chrome/common/extensions/docs/management.html
+++ b/chrome/common/extensions/docs/management.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/manifest.html b/chrome/common/extensions/docs/manifest.html
index b7eb249..d56aaad 100644
--- a/chrome/common/extensions/docs/manifest.html
+++ b/chrome/common/extensions/docs/manifest.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -724,6 +725,13 @@ shows you how to
declare the "tabs" permission.
</p>
+<p class="note">
+<b>Note:</b>
+As of Chrome 16, some permissions can be optional.
+For details, see
+<a href="permissions.html">Optional Permissions</a>.
+</p>
+
<p>
Here's an example of the permissions part of a manifest file
for an extension:
diff --git a/chrome/common/extensions/docs/match_patterns.html b/chrome/common/extensions/docs/match_patterns.html
index 87d7ce4..e0a8fb0 100644
--- a/chrome/common/extensions/docs/match_patterns.html
+++ b/chrome/common/extensions/docs/match_patterns.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/messaging.html b/chrome/common/extensions/docs/messaging.html
index eb860ab..1c7c5b1 100644
--- a/chrome/common/extensions/docs/messaging.html
+++ b/chrome/common/extensions/docs/messaging.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li class="leftNavSelected">Message Passing</li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/notifications.html b/chrome/common/extensions/docs/notifications.html
index 306aad5..88abca6 100644
--- a/chrome/common/extensions/docs/notifications.html
+++ b/chrome/common/extensions/docs/notifications.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/npapi.html b/chrome/common/extensions/docs/npapi.html
index d0a6012..61f43db 100644
--- a/chrome/common/extensions/docs/npapi.html
+++ b/chrome/common/extensions/docs/npapi.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li class="leftNavSelected">NPAPI Plugins</li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/omnibox.html b/chrome/common/extensions/docs/omnibox.html
index b626047..fd43073 100644
--- a/chrome/common/extensions/docs/omnibox.html
+++ b/chrome/common/extensions/docs/omnibox.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/options.html b/chrome/common/extensions/docs/options.html
index 48b94e8..3865002 100644
--- a/chrome/common/extensions/docs/options.html
+++ b/chrome/common/extensions/docs/options.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/override.html b/chrome/common/extensions/docs/override.html
index 5540c0d..ca0fdc4 100644
--- a/chrome/common/extensions/docs/override.html
+++ b/chrome/common/extensions/docs/override.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/overview.html b/chrome/common/extensions/docs/overview.html
index 6c1507a..0ddb63c 100644
--- a/chrome/common/extensions/docs/overview.html
+++ b/chrome/common/extensions/docs/overview.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/packaging.html b/chrome/common/extensions/docs/packaging.html
index e89c7fb..22432c1 100644
--- a/chrome/common/extensions/docs/packaging.html
+++ b/chrome/common/extensions/docs/packaging.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/pageAction.html b/chrome/common/extensions/docs/pageAction.html
index 62afc0d..eae3fa6 100644
--- a/chrome/common/extensions/docs/pageAction.html
+++ b/chrome/common/extensions/docs/pageAction.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/permission_warnings.html b/chrome/common/extensions/docs/permission_warnings.html
index 09cd95d..9a3ac34 100644
--- a/chrome/common/extensions/docs/permission_warnings.html
+++ b/chrome/common/extensions/docs/permission_warnings.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/experimental.permissions.html b/chrome/common/extensions/docs/permissions.html
index 3c2d097..24a1d61 100644
--- a/chrome/common/extensions/docs/experimental.permissions.html
+++ b/chrome/common/extensions/docs/permissions.html
@@ -16,7 +16,7 @@
<script type="text/javascript" src="js/api_page_generator.js"></script>
<script type="text/javascript" src="js/bootstrap.js"></script>
<script type="text/javascript" src="js/sidebar.js"></script>
- <title>Permissions - Google Chrome Extensions - Google Code</title></head>
+ <title>Optional Permissions - Google Chrome Extensions - Google Code</title></head>
<body> <div id="gc-container" class="labs">
<div id="devModeWarning">
You are viewing extension docs in chrome via the 'file:' scheme: are you expecting to see local changes when you refresh? You'll need run chrome with --allow-file-access-from-files.
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li class="leftNavSelected">Optional Permissions</li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -250,7 +251,7 @@
<div class="g-unit" id="gc-pagecontent">
<div id="pageTitle">
- <h1 class="page_title">Permissions</h1>
+ <h1 class="page_title">Optional Permissions</h1>
</div>
<!-- TABLE OF CONTENTS -->
<div id="toc">
@@ -275,7 +276,7 @@
</ol>
</li>
<li>
- <a href="#apiReference">API reference: chrome.experimental.permissions</a>
+ <a href="#apiReference">API reference: chrome.permissions</a>
<ol>
<li style="display: none; ">
<a href="#properties">Properties</a>
@@ -329,17 +330,23 @@
</p>
<!-- STATIC CONTENT PLACEHOLDER -->
- <div id="static"><div id="pageData-name" class="pageData">Permissions</div>
+ <div id="static"><div id="pageData-name" class="pageData">Optional Permissions</div>
<!-- BEGIN AUTHORED CONTENT -->
<p id="classSummary">
- Use the <code>chrome.experimental.permissions</code> module to implement
+ Use the <code>chrome.permissions</code> module to implement
optional permissions. You can request optional permissions during your
extension's regular application flow rather than at install time, so users
understand why the permissions are needed and use only those that are
necessary.
</p>
+<p>
+ For general information about permissions and details about each permission,
+ see the <a href="manifest.html#permissions">permissions</a> section of the
+ manifest documentation.
+</p>
+
<h2 id="howto"> Implementing optional permissions </h2>
<h3 id="types">
@@ -428,7 +435,7 @@ You can specify any of the following as optional permissions:
</p><pre>document.querySelector('#my-button').addEventListener('click', function(event) {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
- chrome.experimental.permissions.request({
+ chrome.permissions.request({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(granted) {
@@ -460,7 +467,7 @@ You can specify any of the following as optional permissions:
permissions, use <code>permission.contains()</code>:
</p>
-<pre>chrome.experimental.permissions.contains({
+<pre>chrome.permissions.contains({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(result) {
@@ -480,7 +487,7 @@ You can specify any of the following as optional permissions:
prompting the user.
</p>
-<pre>chrome.experimental.permissions.remove({
+<pre>chrome.permissions.remove({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(removed) {
@@ -499,7 +506,7 @@ You can specify any of the following as optional permissions:
<!-- API PAGE -->
<div class="apiPage">
<a name="apiReference"></a>
- <h2>API reference: chrome.experimental.permissions</h2>
+ <h2>API reference: chrome.permissions</h2>
<!-- PROPERTIES -->
<div class="apiGroup" style="display: none; ">
@@ -531,7 +538,7 @@ You can specify any of the following as optional permissions:
<div class="summary"><span style="display: none; ">void</span>
<!-- Note: intentionally longer 80 columns -->
- <span>chrome.experimental.permissions.contains</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
+ <span>chrome.permissions.contains</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
<var><span>permissions</span></var></span><span class="null"><span>, </span><span>function</span>
<var><span>callback</span></var></span>)</div>
@@ -555,7 +562,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
@@ -798,7 +805,7 @@ You can specify any of the following as optional permissions:
<div class="summary"><span style="display: none; ">void</span>
<!-- Note: intentionally longer 80 columns -->
- <span>chrome.experimental.permissions.getAll</span>(<span class="null"><span style="display: none; ">, </span><span>function</span>
+ <span>chrome.permissions.getAll</span>(<span class="null"><span style="display: none; ">, </span><span>function</span>
<var><span>callback</span></var></span>)</div>
<div class="description">
@@ -919,7 +926,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
@@ -994,7 +1001,7 @@ You can specify any of the following as optional permissions:
<div class="summary"><span style="display: none; ">void</span>
<!-- Note: intentionally longer 80 columns -->
- <span>chrome.experimental.permissions.remove</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
+ <span>chrome.permissions.remove</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
<var><span>permissions</span></var></span><span class="optional"><span>, </span><span>function</span>
<var><span>callback</span></var></span>)</div>
@@ -1018,7 +1025,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
@@ -1261,7 +1268,7 @@ You can specify any of the following as optional permissions:
<div class="summary"><span style="display: none; ">void</span>
<!-- Note: intentionally longer 80 columns -->
- <span>chrome.experimental.permissions.request</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
+ <span>chrome.permissions.request</span>(<span class="null"><span style="display: none; ">, </span><span>Permissions</span>
<var><span>permissions</span></var></span><span class="optional"><span>, </span><span>function</span>
<var><span>callback</span></var></span>)</div>
@@ -1285,7 +1292,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
@@ -1537,7 +1544,7 @@ You can specify any of the following as optional permissions:
<div class="summary">
<!-- Note: intentionally longer 80 columns -->
- <span class="subdued">chrome.experimental.permissions.</span><span>onAdded</span><span class="subdued">.addListener</span>(function(<span>Permissions permissions</span>) <span class="subdued">{...}</span><span></span>);
+ <span class="subdued">chrome.permissions.</span><span>onAdded</span><span class="subdued">.addListener</span>(function(<span>Permissions permissions</span>) <span class="subdued">{...}</span><span></span>);
</div>
<div class="description">
@@ -1561,7 +1568,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
@@ -1647,7 +1654,7 @@ You can specify any of the following as optional permissions:
<div class="summary">
<!-- Note: intentionally longer 80 columns -->
- <span class="subdued">chrome.experimental.permissions.</span><span>onRemoved</span><span class="subdued">.addListener</span>(function(<span>Permissions permissions</span>) <span class="subdued">{...}</span><span></span>);
+ <span class="subdued">chrome.permissions.</span><span>onRemoved</span><span class="subdued">.addListener</span>(function(<span>Permissions permissions</span>) <span class="subdued">{...}</span><span></span>);
</div>
<div class="description">
@@ -1671,7 +1678,7 @@ You can specify any of the following as optional permissions:
<span class="enum" style="display: none; ">enumerated</span>
<span id="typeTemplate">
<span>
- <a href="experimental.permissions.html#type-Permissions">Permissions</a>
+ <a href="permissions.html#type-Permissions">Permissions</a>
</span>
<span style="display: none; ">
<span>
diff --git a/chrome/common/extensions/docs/proxy.html b/chrome/common/extensions/docs/proxy.html
index a623b0b..58b5352 100644
--- a/chrome/common/extensions/docs/proxy.html
+++ b/chrome/common/extensions/docs/proxy.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/samples.html b/chrome/common/extensions/docs/samples.html
index aa6391a..6c02d93 100644
--- a/chrome/common/extensions/docs/samples.html
+++ b/chrome/common/extensions/docs/samples.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
@@ -370,7 +371,7 @@
"230463f2d5c3d4d0ca13c230e1f00f2aae0a8a64": "TAB INSPECTOR UTILITY FOR WORKING WITH THE EXTENSION TABS API BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.TABS.CREATE CHROME.TABS.GET CHROME.TABS.GETALLINWINDOW CHROME.TABS.GETSELECTED CHROME.TABS.MOVE CHROME.TABS.ONATTACHED CHROME.TABS.ONCREATED CHROME.TABS.ONDETACHED CHROME.TABS.ONMOVED CHROME.TABS.ONREMOVED CHROME.TABS.ONSELECTIONCHANGED CHROME.TABS.ONUPDATED CHROME.TABS.REMOVE CHROME.TABS.UPDATE CHROME.WINDOWS.CREATE CHROME.WINDOWS.GET CHROME.WINDOWS.GETALL CHROME.WINDOWS.GETCURRENT CHROME.WINDOWS.GETLASTFOCUSED CHROME.WINDOWS.ONCREATED CHROME.WINDOWS.ONFOCUSCHANGED CHROME.WINDOWS.ONREMOVED CHROME.WINDOWS.REMOVE CHROME.WINDOWS.UPDATE",
"04f5d2ddea95746b0200be1ea223ccb7a748a771": "TALKING ALARM CLOCK A CLOCK WITH TWO CONFIGURABLE ALARMS THAT WILL PLAY A SOUND AND SPEAK A PHRASE OF YOUR CHOICE. BACKGROUND BACKGROUND_PAGE BROWSER_ACTION TTS CHROME.BROWSERACTION.SETICON CHROME.EXTENSION.CONNECT CHROME.EXTENSION.ONCONNECT CHROME.TTS.GETVOICES CHROME.TTS.SPEAK CHROME.TTS.STOP",
"e1697cacebad05218798bf3e8a0f724517f0e8c3": "TEST SCREENSHOT EXTENSION DEMONSTRATE SCREENSHOT FUNCTIONALITY IN THE CHROME.TABS API. NOTE: ONLY WORKS FOR CODE.GOOGLE.COM BACKGROUND_PAGE BROWSER_ACTION TABS CHROME.BROWSERACTION.ONCLICKED CHROME.EXTENSION.GETURL CHROME.EXTENSION.GETVIEWS CHROME.TABS.CAPTUREVISIBLETAB CHROME.TABS.CREATE CHROME.TABS.ONUPDATED",
- "e8ac89b4015052cf11436985399129c927f972aa": "TOP CHROME EXTENSION QUESTIONS SAMPLE DEMONSTRATION OF THE OPTIONAL PERMISSIONS API. BROWSER_ACTION EXPERIMENTAL OPTIONS_PAGE CHROME.EXPERIMENTAL.PERMISSIONS.CONTAINS CHROME.EXPERIMENTAL.PERMISSIONS.ONADDED CHROME.EXPERIMENTAL.PERMISSIONS.ONREMOVED CHROME.EXPERIMENTAL.PERMISSIONS.REMOVE CHROME.EXPERIMENTAL.PERMISSIONS.REQUEST CHROME.TABS.CREATE",
+ "e8ac89b4015052cf11436985399129c927f972aa": "TOP CHROME EXTENSION QUESTIONS SAMPLE DEMONSTRATION OF THE OPTIONAL PERMISSIONS API. BROWSER_ACTION EXPERIMENTAL OPTIONS_PAGE CHROME.PERMISSIONS.CONTAINS CHROME.PERMISSIONS.ONADDED CHROME.PERMISSIONS.ONREMOVED CHROME.PERMISSIONS.REMOVE CHROME.PERMISSIONS.REQUEST CHROME.TABS.CREATE",
"1d192cce77438e1a90383a6a3a6b28f29961ffa4": "TTS DEBUG TOOL FOR DEVELOPERS OF CHROME TTS ENGINE EXTENSIONS TO HELP THEM TEST THEIR ENGINES ARE IMPLEMENTING THE API CORRECTLY. TTS CHROME.TTS.GETVOICES CHROME.TTS.SPEAK CHROME.TTS.STOP",
"3a1baf15462bdae4d886c2da4ff8f35f4e8ce02f": "TTS DEMO DEMO CHROMES SYNTHESIZED TEXT-TO-SPEECH CAPABILITIES. TTS CHROME.TTS.GETVOICES CHROME.TTS.ISSPEAKING CHROME.TTS.SPEAK CHROME.TTS.STOP",
"b3de91ab04b7d7a2670ca7ee9d740eb42cead0b6": "TYPED URL HISTORY READS YOUR HISTORY, AND SHOWS THE TOP TEN PAGES YOU GO TO BY TYPING THE URL. BROWSER_ACTION HISTORY TABS CHROME.HISTORY.GETVISITS CHROME.HISTORY.SEARCH CHROME.TABS.CREATE",
@@ -421,6 +422,8 @@
</span><span>
<a href="javascript:void(0);" onclick="setFilter('chrome.pageAction', this)">chrome.pageAction</a><span>, </span>
</span><span>
+ <a href="javascript:void(0);" onclick="setFilter('chrome.permissions', this)">chrome.permissions</a><span>, </span>
+ </span><span>
<a href="javascript:void(0);" onclick="setFilter('chrome.proxy', this)">chrome.proxy</a><span>, </span>
</span><span>
<a href="javascript:void(0);" onclick="setFilter('chrome.tabs', this)">chrome.tabs</a><span>, </span>
@@ -3918,15 +3921,15 @@
<div class="apicalls"><strong>Calls:</strong>
<ul>
<li>
- <code><a href="experimental.permissions.html#method-contains">chrome.experimental.permissions.contains</a></code>
+ <code><a href="permissions.html#method-contains">chrome.permissions.contains</a></code>
</li><li>
- <code><a href="experimental.permissions.html#event-onAdded">chrome.experimental.permissions.onAdded</a></code>
+ <code><a href="permissions.html#event-onAdded">chrome.permissions.onAdded</a></code>
</li><li>
- <code><a href="experimental.permissions.html#event-onRemoved">chrome.experimental.permissions.onRemoved</a></code>
+ <code><a href="permissions.html#event-onRemoved">chrome.permissions.onRemoved</a></code>
</li><li>
- <code><a href="experimental.permissions.html#method-remove">chrome.experimental.permissions.remove</a></code>
+ <code><a href="permissions.html#method-remove">chrome.permissions.remove</a></code>
</li><li>
- <code><a href="experimental.permissions.html#method-request">chrome.experimental.permissions.request</a></code>
+ <code><a href="permissions.html#method-request">chrome.permissions.request</a></code>
</li><li>
<code><a href="tabs.html#method-create">chrome.tabs.create</a></code>
</li>
diff --git a/chrome/common/extensions/docs/samples.json b/chrome/common/extensions/docs/samples.json
index a9fc2f5..d5f6dea 100644
--- a/chrome/common/extensions/docs/samples.json
+++ b/chrome/common/extensions/docs/samples.json
@@ -67,12 +67,6 @@
"chrome.experimental.devtools.panels.create": "experimental.devtools.panels.html#method-create",
"chrome.experimental.devtools.panels.setOpenResourceHandler": "experimental.devtools.panels.html#method-setOpenResourceHandler",
"chrome.experimental.infobars.show": "experimental.infobars.html#method-show",
- "chrome.experimental.permissions.contains": "experimental.permissions.html#method-contains",
- "chrome.experimental.permissions.getAll": "experimental.permissions.html#method-getAll",
- "chrome.experimental.permissions.onAdded": "experimental.permissions.html#event-onAdded",
- "chrome.experimental.permissions.onRemoved": "experimental.permissions.html#event-onRemoved",
- "chrome.experimental.permissions.remove": "experimental.permissions.html#method-remove",
- "chrome.experimental.permissions.request": "experimental.permissions.html#method-request",
"chrome.experimental.savePage.saveAsMHTML": "experimental.savePage.html#method-saveAsMHTML",
"chrome.experimental.settings.clear": "experimental.settings.html#method-clear",
"chrome.experimental.settings.get": "experimental.settings.html#method-get",
@@ -147,6 +141,12 @@
"chrome.pageAction.setPopup": "pageAction.html#method-setPopup",
"chrome.pageAction.setTitle": "pageAction.html#method-setTitle",
"chrome.pageAction.show": "pageAction.html#method-show",
+ "chrome.permissions.contains": "permissions.html#method-contains",
+ "chrome.permissions.getAll": "permissions.html#method-getAll",
+ "chrome.permissions.onAdded": "permissions.html#event-onAdded",
+ "chrome.permissions.onRemoved": "permissions.html#event-onRemoved",
+ "chrome.permissions.remove": "permissions.html#method-remove",
+ "chrome.permissions.request": "permissions.html#method-request",
"chrome.proxy.onProxyError": "proxy.html#event-onProxyError",
"chrome.tabs.captureVisibleTab": "tabs.html#method-captureVisibleTab",
"chrome.tabs.connect": "tabs.html#method-connect",
@@ -2157,11 +2157,11 @@
},
{
"api_calls": [
- "chrome.experimental.permissions.contains",
- "chrome.experimental.permissions.onAdded",
- "chrome.experimental.permissions.onRemoved",
- "chrome.experimental.permissions.remove",
- "chrome.experimental.permissions.request",
+ "chrome.permissions.contains",
+ "chrome.permissions.onAdded",
+ "chrome.permissions.onRemoved",
+ "chrome.permissions.remove",
+ "chrome.permissions.request",
"chrome.tabs.create"
],
"crx_path": "examples\/api\/permissions\/extension-questions.crx",
@@ -2177,7 +2177,7 @@
"packaged_app": false,
"path": "examples\/api\/permissions\/extension-questions\/",
"protocols": [],
- "search_string": "TOP CHROME EXTENSION QUESTIONS SAMPLE DEMONSTRATION OF THE OPTIONAL PERMISSIONS API. BROWSER_ACTION EXPERIMENTAL OPTIONS_PAGE CHROME.EXPERIMENTAL.PERMISSIONS.CONTAINS CHROME.EXPERIMENTAL.PERMISSIONS.ONADDED CHROME.EXPERIMENTAL.PERMISSIONS.ONREMOVED CHROME.EXPERIMENTAL.PERMISSIONS.REMOVE CHROME.EXPERIMENTAL.PERMISSIONS.REQUEST CHROME.TABS.CREATE",
+ "search_string": "TOP CHROME EXTENSION QUESTIONS SAMPLE DEMONSTRATION OF THE OPTIONAL PERMISSIONS API. BROWSER_ACTION EXPERIMENTAL OPTIONS_PAGE CHROME.PERMISSIONS.CONTAINS CHROME.PERMISSIONS.ONADDED CHROME.PERMISSIONS.ONREMOVED CHROME.PERMISSIONS.REMOVE CHROME.PERMISSIONS.REQUEST CHROME.TABS.CREATE",
"source_files": [
"manifest.json",
"options.html",
@@ -2185,7 +2185,7 @@
"popup.html",
"popup.js"
],
- "source_hash": "ea002a57e21073801c7ac2906e6c513337584d0a",
+ "source_hash": "100ad15bc7e23dc43bfa967ed7ab993fb9c93c6a",
"zip_path": "examples\/api\/permissions\/extension-questions.zip"
},
{
diff --git a/chrome/common/extensions/docs/static/devguide.html b/chrome/common/extensions/docs/static/devguide.html
index 79545ff..c2e2c9f 100644
--- a/chrome/common/extensions/docs/static/devguide.html
+++ b/chrome/common/extensions/docs/static/devguide.html
@@ -108,6 +108,10 @@ applies to packaged apps, as well as extensions.
or vice versa</td>
</tr>
<tr>
+ <td> <a href="permissions.html">Optional Permissions</a> </td>
+ <td> Modify your extension's permissions </td>
+ </tr>
+ <tr>
<td> <a href="npapi.html">NPAPI&nbsp;Plugins</a> </td>
<td> Load native binary code </td>
</tr>
@@ -135,4 +139,3 @@ applies to packaged apps, as well as extensions.
<td> Create a <code>.crx</code> file so you can distribute your extension </td>
</tr>
</table>
-
diff --git a/chrome/common/extensions/docs/static/manifest.html b/chrome/common/extensions/docs/static/manifest.html
index 90d50f0..11327dc 100644
--- a/chrome/common/extensions/docs/static/manifest.html
+++ b/chrome/common/extensions/docs/static/manifest.html
@@ -382,6 +382,13 @@ shows you how to
declare the "tabs" permission.
</p>
+<p class="note">
+<b>Note:</b>
+As of Chrome 16, some permissions can be optional.
+For details, see
+<a href="permissions.html">Optional Permissions</a>.
+</p>
+
<p>
Here's an example of the permissions part of a manifest file
for an extension:
diff --git a/chrome/common/extensions/docs/static/experimental.permissions.html b/chrome/common/extensions/docs/static/permissions.html
index 27a8e3c..54719e1 100644
--- a/chrome/common/extensions/docs/static/experimental.permissions.html
+++ b/chrome/common/extensions/docs/static/permissions.html
@@ -1,14 +1,20 @@
-<div id="pageData-name" class="pageData">Permissions</div>
+<div id="pageData-name" class="pageData">Optional Permissions</div>
<!-- BEGIN AUTHORED CONTENT -->
<p id="classSummary">
- Use the <code>chrome.experimental.permissions</code> module to implement
+ Use the <code>chrome.permissions</code> module to implement
optional permissions. You can request optional permissions during your
extension's regular application flow rather than at install time, so users
understand why the permissions are needed and use only those that are
necessary.
</p>
+<p>
+ For general information about permissions and details about each permission,
+ see the <a href="manifest.html#permissions">permissions</a> section of the
+ manifest documentation.
+</p>
+
<h2 id="howto"> Implementing optional permissions </h2>
<h3 id="types">
@@ -98,7 +104,7 @@ You can specify any of the following as optional permissions:
document.querySelector('#my-button').addEventListener('click', function(event) {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
- chrome.experimental.permissions.request({
+ chrome.permissions.request({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(granted) {
@@ -133,7 +139,7 @@ document.querySelector('#my-button').addEventListener('click', function(event) {
</p>
<pre>
-chrome.experimental.permissions.contains({
+chrome.permissions.contains({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(result) {
@@ -154,7 +160,7 @@ chrome.experimental.permissions.contains({
</p>
<pre>
-chrome.experimental.permissions.remove({
+chrome.permissions.remove({
permissions: ['tabs'],
origins: ['http://www.google.com/']
}, function(removed) {
diff --git a/chrome/common/extensions/docs/tabs.html b/chrome/common/extensions/docs/tabs.html
index ba812f9..92d52ea 100644
--- a/chrome/common/extensions/docs/tabs.html
+++ b/chrome/common/extensions/docs/tabs.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/template/api_template.html b/chrome/common/extensions/docs/template/api_template.html
index aea03be9..79f494c 100644
--- a/chrome/common/extensions/docs/template/api_template.html
+++ b/chrome/common/extensions/docs/template/api_template.html
@@ -192,6 +192,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/themes.html b/chrome/common/extensions/docs/themes.html
index 5f7f16b..d3d58f6 100644
--- a/chrome/common/extensions/docs/themes.html
+++ b/chrome/common/extensions/docs/themes.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/tts.html b/chrome/common/extensions/docs/tts.html
index e32cc65..e7da600 100644
--- a/chrome/common/extensions/docs/tts.html
+++ b/chrome/common/extensions/docs/tts.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/ttsEngine.html b/chrome/common/extensions/docs/ttsEngine.html
index 9b91c2f..7ff401d 100644
--- a/chrome/common/extensions/docs/ttsEngine.html
+++ b/chrome/common/extensions/docs/ttsEngine.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/tut_analytics.html b/chrome/common/extensions/docs/tut_analytics.html
index 4b6ad0c..34dedf4 100644
--- a/chrome/common/extensions/docs/tut_analytics.html
+++ b/chrome/common/extensions/docs/tut_analytics.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/tut_debugging.html b/chrome/common/extensions/docs/tut_debugging.html
index 75f00c32..5f83597 100644
--- a/chrome/common/extensions/docs/tut_debugging.html
+++ b/chrome/common/extensions/docs/tut_debugging.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/tut_oauth.html b/chrome/common/extensions/docs/tut_oauth.html
index 6751269..f3e25c6 100644
--- a/chrome/common/extensions/docs/tut_oauth.html
+++ b/chrome/common/extensions/docs/tut_oauth.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/tutorials.html b/chrome/common/extensions/docs/tutorials.html
index 65612cb..e5b580a 100644
--- a/chrome/common/extensions/docs/tutorials.html
+++ b/chrome/common/extensions/docs/tutorials.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/types.html b/chrome/common/extensions/docs/types.html
index 29d3663..ed8ef60 100644
--- a/chrome/common/extensions/docs/types.html
+++ b/chrome/common/extensions/docs/types.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/webNavigation.html b/chrome/common/extensions/docs/webNavigation.html
index a2a0065..080b2e2 100644
--- a/chrome/common/extensions/docs/webNavigation.html
+++ b/chrome/common/extensions/docs/webNavigation.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/whats_new.html b/chrome/common/extensions/docs/whats_new.html
index 022da61..5383826 100644
--- a/chrome/common/extensions/docs/whats_new.html
+++ b/chrome/common/extensions/docs/whats_new.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/windows.html b/chrome/common/extensions/docs/windows.html
index a438b2eb..f72b29e 100644
--- a/chrome/common/extensions/docs/windows.html
+++ b/chrome/common/extensions/docs/windows.html
@@ -201,6 +201,7 @@
<li><a href="xhr.html">Cross-Origin XHR</a></li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/docs/xhr.html b/chrome/common/extensions/docs/xhr.html
index 6ab1c93..cbe54b0 100644
--- a/chrome/common/extensions/docs/xhr.html
+++ b/chrome/common/extensions/docs/xhr.html
@@ -201,6 +201,7 @@
<li class="leftNavSelected">Cross-Origin XHR</li>
<li><a href="i18n.html">Internationalization</a></li>
<li><a href="messaging.html">Message Passing</a></li>
+ <li><a href="permissions.html">Optional Permissions</a></li>
<li><a href="npapi.html">NPAPI Plugins</a></li>
</ul>
</li>
diff --git a/chrome/common/extensions/extension.cc b/chrome/common/extensions/extension.cc
index 4ed4d10..94112ba 100644
--- a/chrome/common/extensions/extension.cc
+++ b/chrome/common/extensions/extension.cc
@@ -1975,9 +1975,7 @@ bool Extension::InitFromValue(const DictionaryValue& source, int flags,
// Initialize the optional permissions (optional).
ExtensionAPIPermissionSet optional_api_permissions;
URLPatternSet optional_host_permissions;
- if (CommandLine::ForCurrentProcess()->HasSwitch(
- switches::kEnableExperimentalExtensionApis) &&
- !ParsePermissions(&source,
+ if (!ParsePermissions(&source,
keys::kOptionalPermissions,
flags,
error,
diff --git a/chrome/renderer/resources/extensions/renderer_process_bindings.js b/chrome/renderer/resources/extensions/renderer_process_bindings.js
index e934bf3..f22b764 100644
--- a/chrome/renderer/resources/extensions/renderer_process_bindings.js
+++ b/chrome/renderer/resources/extensions/renderer_process_bindings.js
@@ -333,7 +333,6 @@ var chrome = chrome || {};
"experimental.input",
"experimental.inputUI",
"experimental.metrics",
- "experimental.permissions",
"experimental.settings",
"experimental.popup",
"experimental.processes",
@@ -354,6 +353,7 @@ var chrome = chrome || {};
"omnibox",
"pageAction",
"pageActions",
+ "permissions",
"proxy",
"tabs",
"test",
diff --git a/chrome/test/data/extensions/api_test/permissions/optional/background.html b/chrome/test/data/extensions/api_test/permissions/optional/background.html
index d4dacb9..cd1d602 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional/background.html
+++ b/chrome/test/data/extensions/api_test/permissions/optional/background.html
@@ -25,17 +25,17 @@ var UNKNOWN_PERMISSIONS_ERROR =
var emptyPermissions = {permissions: [], origins: []};
var initialPermissions = {
- permissions: ['experimental', 'management'],
+ permissions: ['management'],
origins: ['http://a.com/*']
};
var permissionsWithTabs = {
- permissions: ['experimental', 'management', 'tabs'],
+ permissions: ['management', 'tabs'],
origins: ['http://a.com/*']
}
var permissionsWithOrigin = {
- permissions: ['experimental', 'management'],
+ permissions: ['management'],
origins: ['http://a.com/*', 'http://*.c.com/*']
}
@@ -83,29 +83,29 @@ chrome.test.getConfig(function(config) {
chrome.test.runTests([
function contains() {
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{permissions: ['management'], origins: ['http://a.com/*']},
pass(function(result) { assertTrue(result); }));
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{permissions: ['devtools'], origins: ['http://a.com/*']},
pass(function(result) { assertFalse(result); }));
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{permissions: ['management']},
pass(function(result) { assertTrue(result); }));
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{permissions: ['management']},
pass(function(result) { assertTrue(result); }));
},
function getAll() {
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(initialPermissions, permissions));
}));
},
// Nothing should happen if we request permission we already have
function requestNoOp() {
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions:['management'], origins:['http://a.com/*']},
pass(function(granted) { assertTrue(granted); }));
},
@@ -113,11 +113,11 @@ chrome.test.getConfig(function(config) {
// We should get an error when requesting permissions that haven't been
// defined in "optional_permissions".
function requestNonOptional() {
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['debugger']}, fail(NOT_OPTIONAL_ERROR));
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{origins: ['http://*.b.com/*']}, fail(NOT_OPTIONAL_ERROR));
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['tabs'], origins: ['http://*.b.com/*']},
fail(NOT_OPTIONAL_ERROR));
},
@@ -132,19 +132,19 @@ chrome.test.getConfig(function(config) {
} catch (e) {
assertTrue(e.message.indexOf(NO_TABS_PERMISSION) == 0);
}
- listenOnce(chrome.experimental.permissions.onAdded,
+ listenOnce(chrome.permissions.onAdded,
function(permissions) {
assertTrue(permissions.permissions.length == 1);
assertTrue(permissions.permissions[0] == 'tabs');
});
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions:['tabs']},
pass(function(granted) {
assertTrue(granted);
chrome.windows.getAll({populate: true}, pass(function(windows) {
assertTrue(true);
}));
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(permissionsWithTabs, permissions));
}));
}));
@@ -152,24 +152,24 @@ chrome.test.getConfig(function(config) {
// You can't remove required permissions.
function removeRequired() {
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions: ['management']}, fail(REQUIRED_ERROR));
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{origins: ['http://a.com/*']}, fail(REQUIRED_ERROR));
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions: ['tabs'], origins: ['http://a.com/*']},
fail(REQUIRED_ERROR));
},
// You can remove permissions you don't have (nothing happens).
function removeNoOp() {
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions:['background']},
pass(function(removed) { assertTrue(removed); }));
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{origins:['http://*.c.com/*']},
pass(function(removed) { assertTrue(removed); }));
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions:['background'], origins:['http://*.c.com/*']},
pass(function(removed) { assertTrue(removed); }));
},
@@ -178,15 +178,15 @@ chrome.test.getConfig(function(config) {
chrome.windows.getAll({populate: true}, pass(function(windows) {
assertTrue(true);
}));
- listenOnce(chrome.experimental.permissions.onRemoved,
+ listenOnce(chrome.permissions.onRemoved,
function(permissions) {
assertTrue(permissions.permissions.length == 1);
assertTrue(permissions.permissions[0] == 'tabs');
});
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions:['tabs']},
pass(function() {
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(initialPermissions, permissions));
}));
try {
@@ -201,13 +201,13 @@ chrome.test.getConfig(function(config) {
// The user shouldn't have to approve permissions that have no warnings.
function noPromptForNoWarnings() {
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['notifications']},
pass(function(granted) {
assertTrue(granted);
// Remove the notifications permission to return to normal.
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions: ['notifications']},
pass(function(removed) { assertTrue(removed); }));
}));
@@ -216,39 +216,39 @@ chrome.test.getConfig(function(config) {
// Make sure you can only access the white listed permissions.
function whitelist() {
var error_msg = NOT_WHITE_LISTED_ERROR.replace('*', 'chromeAuthPrivate');
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['chromeAuthPrivate']}, fail(error_msg));
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions: ['chromeAuthPrivate']}, fail(error_msg));
},
function unknownPermission() {
var error_msg = UNKNOWN_PERMISSIONS_ERROR.replace('*', 'asdf');
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['asdf']}, fail(error_msg));
},
function requestOrigin() {
doReq('http://c.com', pass(function(success) { assertFalse(success); }));
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(initialPermissions, permissions));
}));
- listenOnce(chrome.experimental.permissions.onAdded,
+ listenOnce(chrome.permissions.onAdded,
function(permissions) {
assertTrue(permissions.permissions.length == 0);
assertTrue(permissions.origins.length == 1);
assertTrue(permissions.origins[0] == 'http://*.c.com/*');
});
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{origins: ['http://*.c.com/*']},
pass(function(granted) {
assertTrue(granted);
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(permissionsWithOrigin, permissions));
}));
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{origins:['http://*.c.com/*']},
pass(function(result) { assertTrue(result); }));
doReq('http://c.com', pass(function(result) { assertTrue(result); }));
@@ -258,20 +258,20 @@ chrome.test.getConfig(function(config) {
function removeOrigin() {
doReq('http://c.com', pass(function(result) { assertTrue(result); }));
- listenOnce(chrome.experimental.permissions.onRemoved,
+ listenOnce(chrome.permissions.onRemoved,
function(permissions) {
assertTrue(permissions.permissions.length == 0);
assertTrue(permissions.origins.length == 1);
assertTrue(permissions.origins[0] == 'http://*.c.com/*');
});
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{origins: ['http://*.c.com/*']},
pass(function(removed) {
assertTrue(removed);
- chrome.experimental.permissions.getAll(pass(function(permissions) {
+ chrome.permissions.getAll(pass(function(permissions) {
assertTrue(checkPermSetsEq(initialPermissions, permissions));
}));
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{origins:['http://*.c.com/*']},
pass(function(result) { assertFalse(result); }));
doReq('http://c.com', pass(function(result) { assertFalse(result); }));
@@ -281,13 +281,13 @@ chrome.test.getConfig(function(config) {
// Tests that the changed permissions have taken effect from inside the
// onAdded and onRemoved event listeners.
function eventListenerPermissions() {
- listenOnce(chrome.experimental.permissions.onAdded,
+ listenOnce(chrome.permissions.onAdded,
function(permissions) {
chrome.windows.getAll({populate: true}, pass(function() {
assertTrue(true);
}));
});
- listenOnce(chrome.experimental.permissions.onRemoved,
+ listenOnce(chrome.permissions.onRemoved,
function(permissions) {
try {
chrome.windows.getAll({populate: true}, function() {
@@ -298,10 +298,10 @@ chrome.test.getConfig(function(config) {
}
});
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['tabs']}, pass(function(granted) {
assertTrue(granted);
- chrome.experimental.permissions.remove(
+ chrome.permissions.remove(
{permissions: ['tabs']}, pass(function() {
assertTrue(true);
}));
diff --git a/chrome/test/data/extensions/api_test/permissions/optional/manifest.json b/chrome/test/data/extensions/api_test/permissions/optional/manifest.json
index cac13a3..aa3e83a 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional/manifest.json
+++ b/chrome/test/data/extensions/api_test/permissions/optional/manifest.json
@@ -5,7 +5,6 @@
"version": "0.1",
"background_page": "background.html",
"permissions": [
- "experimental",
"management",
"http://a.com/*"
],
diff --git a/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html b/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html
index d514785..c9ea307 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html
+++ b/chrome/test/data/extensions/api_test/permissions/optional_deny/background.html
@@ -34,7 +34,7 @@ chrome.test.getConfig(function(config) {
chrome.test.runTests([
function denyRequest() {
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['tabs'], origins: ['http://*.c.com/*']},
pass(function(granted) {
// They were not granted, and there should be no error.
@@ -42,7 +42,7 @@ chrome.test.getConfig(function(config) {
assertTrue(chrome.extension.lastError === undefined);
// Make sure they weren't granted...
- chrome.experimental.permissions.contains(
+ chrome.permissions.contains(
{permissions: ['tabs'], origins:['http://*.c.com/*']},
pass(function(result) { assertFalse(result); }));
diff --git a/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json b/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json
index 402eb21..4a856e5 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json
+++ b/chrome/test/data/extensions/api_test/permissions/optional_deny/manifest.json
@@ -3,6 +3,6 @@
"description": "permissions/optional_deny",
"version": "0.1",
"background_page": "background.html",
- "permissions": ["experimental", "http://a.com/*"],
+ "permissions": ["http://a.com/*"],
"optional_permissions": ["tabs", "management", "http://*.c.com/*"]
}
diff --git a/chrome/test/data/extensions/api_test/permissions/optional_gesture/background.html b/chrome/test/data/extensions/api_test/permissions/optional_gesture/background.html
index b670a05..63bb44e4 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional_gesture/background.html
+++ b/chrome/test/data/extensions/api_test/permissions/optional_gesture/background.html
@@ -7,7 +7,7 @@ var GESTURE_ERROR = "This function must be called during a user gesture";
chrome.test.getConfig(function(config) {
chrome.test.runTests([
function testGesture() {
- chrome.experimental.permissions.request(
+ chrome.permissions.request(
{permissions: ['tabs']},
fail(GESTURE_ERROR));
}
diff --git a/chrome/test/data/extensions/api_test/permissions/optional_gesture/manifest.json b/chrome/test/data/extensions/api_test/permissions/optional_gesture/manifest.json
index 00b86f2..61db297 100644
--- a/chrome/test/data/extensions/api_test/permissions/optional_gesture/manifest.json
+++ b/chrome/test/data/extensions/api_test/permissions/optional_gesture/manifest.json
@@ -3,6 +3,6 @@
"description": "permissions/optional_gesture",
"version": "0.1",
"background_page": "background.html",
- "permissions": ["experimental", "permissions"],
+ "permissions": ["permissions"],
"optional_permissions": ["tabs"]
}