summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcduvall@chromium.org <cduvall@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-08 22:28:04 +0000
committercduvall@chromium.org <cduvall@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-10-08 22:28:04 +0000
commit7fb52118c8cde6963c6e727e60abe4c37bb502a7 (patch)
treed2a5bc3b600554ec749799c4096c2aebcbbf1868
parent7aebad368e2441bc25114370d6f59c37aa3bfc71 (diff)
downloadchromium_src-7fb52118c8cde6963c6e727e60abe4c37bb502a7.zip
chromium_src-7fb52118c8cde6963c6e727e60abe4c37bb502a7.tar.gz
chromium_src-7fb52118c8cde6963c6e727e60abe4c37bb502a7.tar.bz2
Revert 160710 - Improvements to permissions and permission warnings docs:
* Created new file for permission content that previously was nested in manifest file. Filtered apps and extensions content. * Added topSites (extensions-only) permission to permissions and permission warnings docs. Also added fileSystem permission (apps-only). * Previous versions of this cl had fixes to table rendering; I've removed the table fixes as I was getting merge conflicts. Also, Kalman is resolving these in a separate cl and makes sense to handle the table fixes there. Review URL: https://codereview.chromium.org/10964056 TBR=mkearney@google.com Review URL: https://codereview.chromium.org/11098006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160726 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/common/extensions/docs/static/css/site.css456
-rw-r--r--chrome/common/extensions/docs/templates/articles/declare_permissions.html306
-rw-r--r--chrome/common/extensions/docs/templates/articles/manifest.html266
-rw-r--r--chrome/common/extensions/docs/templates/articles/permission_warnings.html19
-rw-r--r--chrome/common/extensions/docs/templates/intros/permissions.html11
-rw-r--r--chrome/common/extensions/docs/templates/private/standard_apps_article.html1
-rw-r--r--chrome/common/extensions/docs/templates/private/standard_extensions_article.html1
-rw-r--r--chrome/common/extensions/docs/templates/public/apps/declare_permissions.html1
-rw-r--r--chrome/common/extensions/docs/templates/public/extensions/declare_permissions.html1
-rw-r--r--chrome/common/extensions/docs/templates/public/extensions/index.html4
10 files changed, 733 insertions, 333 deletions
diff --git a/chrome/common/extensions/docs/static/css/site.css b/chrome/common/extensions/docs/static/css/site.css
new file mode 100644
index 0000000..eeba6aa
--- /dev/null
+++ b/chrome/common/extensions/docs/static/css/site.css
@@ -0,0 +1,456 @@
+/* Copyright (c) 2012 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+.hidden {
+ display: none;
+}
+
+body {
+ color: #333;
+ font: 13px/22px 'Open Sans',arial,sans-serif;
+ font-weight: 400;
+ background-color: white;
+ margin: auto;
+ padding: 0;
+}
+
+p {
+ margin: 1em 0 0 0;
+ color: #767676;
+ font-size: 14px;
+}
+
+p.note,
+p.caution,
+p.warning {
+ margin: 1em 0 0 0;
+ padding: .2em .5em .2em .9em;
+ background-color: #F5F5F5;
+ border-top: 1px solid;
+ border-bottom: 1px solid;
+ overflow: hidden;
+}
+
+p.note {
+ border-color: #36C;
+}
+p.caution {
+ border-color: #FC3;
+}
+p.warning {
+ border-color: #A03;
+}
+
+p.warning em,
+p.warning strong {
+ color: #A03;
+}
+
+a, a:link {
+ text-decoration: none;
+ color: #39F;
+ font-weight: 600;
+}
+
+a:visited {
+ color: #236bb2;
+}
+
+a:active,
+a:hover {
+ color: #3bf;
+}
+
+#toc a {
+ color: black;
+}
+
+ol, ul {
+ color: #767676;
+}
+
+#header {
+ margin: auto;
+ max-width: 1160px;
+ padding: 0 50px;
+ position: relative;
+ height: 60px;
+}
+
+#logo {
+ position: relative;
+ padding-top: 10px;
+ z-index: 2;
+}
+
+#logo img {
+ padding: 10px 0;
+}
+
+#cse {
+ width: 400px;
+ padding-top: 5px;
+ z-index: 1;
+ position: absolute;
+ right: 50px;
+}
+
+/*
+ * Without a border, the results from the custom search are hard to tell apart
+ * from the rest of the content
+ */
+.gsc-resultsbox-visible {
+ border-left: 1px solid #E9E9E9;
+ border-right: 1px solid #E9E9E9;
+ border-bottom: 1px solid #E9E9E9;
+}
+
+li {
+ margin: .3em 0 0 1.5em;
+ padding: 0;
+}
+
+ol li {
+ margin-top: 1em;
+}
+
+img {
+ border: none;
+ padding: 10px 0;
+}
+
+code,
+pre {
+ font-family: monospace;
+ color: #080;
+}
+
+code {
+ font-size: 10pt;
+}
+
+pre {
+ font-size: 10pt;
+ background-color: #F5F5F5;
+ margin: 1em 0 0 0;
+ padding: .99em;
+ overflow: auto;
+ word-wrap: break-word;
+}
+
+pre a {
+ text-decoration: underline!important;
+}
+
+pre b {
+ background: yellow;
+}
+
+dt {
+ font-weight: bold;
+ margin: .75em 0 0 0;
+}
+
+dl {
+ margin: 0;
+}
+
+dd {
+ margin: .4em 0 0 2em;
+ padding: 0;
+ font-weight: normal;
+}
+
+.displayModeWarning {
+ background-color: #FF7735;
+ color: white;
+ font-weight: bold;
+ padding: 6px 8px;
+}
+
+span.displayModeWarning {
+ margin-right: 2px;
+}
+
+#gc-container {
+ margin: auto;
+ max-width: 1160px;
+ padding: 0 50px;
+ position: relative;
+ height: auto;
+}
+
+#gc-topnav {
+ font-size: 1em;
+ margin: auto;
+ max-width: 1160px;
+ padding: 0;
+ white-space: nowrap;
+ background-color: white;
+ border-top: 1px solid #E5E5E5;
+ border-bottom: 1px solid #E5E5E5;
+}
+
+#gc-topnav h1 {
+ font-size: 1.5em;
+ line-height: 1.3em;
+ font-weight: bold;
+ background-color: transparent;
+ border: 0;
+ margin: 0;
+ padding: 0 0 0 14px;
+ float: left;
+ border-top: 10px solid white;
+}
+
+#gc-topnav li {
+ font-weight: 600;
+ height: 45px;
+ text-transform: uppercase;
+ white-space: nowrap;
+ display: inline-block;
+ margin: 0;
+ padding: 0;
+}
+
+#gc-topnav ul {
+ font-size: 12px;
+ height: 45px;
+ text-align: right;
+ list-style: none;
+ margin: 0;
+}
+
+#gc-topnav li a {
+ color: #333;
+}
+#gc-topnav li a:hover {
+ color: #39f;
+}
+
+#gc-topnav div {
+ border-top: 10px solid white;
+ margin: 0 30px;
+ position: relative;
+ height: 29px;
+}
+
+.pageData {
+ display: none;
+}
+
+#gc-pagecontent {
+ margin: 30px 0 100px 250px;
+}
+
+#gc-pagecontent h2 {
+ border-top: 1px solid #CCC;
+ font-size: 170%;
+ font-weight: normal;
+ margin: 2em 0 0 0;
+ padding: 40px 0;
+}
+
+#gc-pagecontent h3 {
+ font-size: 130%;
+ font-weight: bold;
+ margin: 1.5em 0 0 0;
+ top: 0em;
+}
+
+#gc-pagecontent h4 {
+ font-size: 110%;
+ margin: .7em 0 0 0;
+ position: relative;
+ top: .4em;
+}
+
+#gc-pagecontent h1.page_title,
+#gc-pagecontent h2.page_title {
+ line-height: 130%;
+ font-size: 320%;
+ margin: 0;
+ padding: .8em 0 0;
+ border: none;
+ background: none;
+ font-weight: normal;
+}
+
+#gc-footer {
+ clear: both;
+ margin: auto;
+ color: #666;
+ max-width: 1160px;
+ padding: 0 50px;
+}
+
+#gc-footer .text {
+ text-align: center;
+ padding: 30px 0;
+ margin: 0 0 0 0;
+}
+
+#gc-sidebar {
+ margin: 0;
+ margin-top: 2.5em;
+ width: 180px;
+ float: left;
+}
+
+/* Sidebar link/button styling. */
+#gc-sidebar span,
+#gc-sidebar a {
+ color: #767676;
+ display: block;
+ position: relative;
+ font-weight: normal;
+}
+#gc-sidebar a:visited {
+ color: #767676;
+}
+#gc-sidebar a:hover,
+#gc-sidebar a.selected {
+ color: #39F;
+}
+#gc-sidebar a.button {
+ color: #767676;
+}
+#gc-sidebar span.level2,
+#gc-sidebar a.level2 {
+ font-weight: bold;
+}
+
+#gc-sidebar .toggleIndicator {
+ position: absolute;
+ right: 0;
+ top: 3px;
+ background: url(../images/toggle_sprite.png) no-repeat 0 0;
+ height: 8px;
+ width: 8px;
+}
+#gc-sidebar .toggleIndicator.toggled {
+ background-position: 0 -9px;
+}
+
+/* Sidebar list styling. */
+#gc-sidebar ul {
+ list-style: none;
+ padding: 0;
+}
+#gc-sidebar ul.level2 {
+ margin-left: 10px;
+ padding-top: 10px;
+}
+#gc-sidebar ul.level3 {
+ margin-left: 20px;
+ padding-top: 10px;
+ list-style: url(../images/sidearrow.png);
+}
+
+/* Sidebar list element styling. */
+#gc-sidebar li {
+ margin: 0;
+ padding: 8px 0;
+ line-height: 120%;
+}
+#gc-sidebar li.level2 {
+ border-top: 1px solid #E5E5E5;
+}
+
+#gc-toc div.line {
+ border-top: thin solid #FAFAFA;
+ height: 1px;
+ margin: 1.3em 1em 0 0;
+ padding: 0;
+}
+
+#toc {
+ background-color: #F5F5F5;
+ float: right;
+ margin: 5px 0px 0px 0px;
+ padding: 5px;
+ width: 250px;
+ word-break: break-word;
+ /* We want this element to have a visual left-margin of 20px, but margins on
+ floated elements don't affect the borders and background of the elements
+ they float over. So we add this border to force the issue. */
+ border-left: 20px solid white;
+ border-bottom: 20px solid white;
+ z-index: 3;
+ position: relative;
+}
+
+#toc * {
+ padding: 0;
+ list-style: none;
+ font-weight: 600;
+}
+
+#toc h2 {
+ font-weight: bold;
+ font-size: 100%;
+ margin: 0;
+ border: none;
+ padding: 0;
+}
+
+#toc ol {
+ margin: 1em 0 0 0;
+}
+
+#toc ol li {
+ margin: .5em 0 .5em 1em;
+ line-height: 1.2em;
+}
+
+#toc ol li ol {
+ margin: 0;
+}
+
+#toc ol li ol li {
+ margin: .5em 0 .5em 1em;
+}
+
+.filtered_item {
+ line-height: 6px;
+}
+
+#filtered_apis {
+ margin-top: 5px;
+}
+
+#skipto {
+ display: none;
+}
+
+input.gsc-search-button.gsc-search-button-v2 {
+ padding: 8px 30px;
+ margin-top: 5px;
+}
+
+div.gsc-control-cse {
+ margin: 0;
+ padding: 0;
+ position: relative;
+ z-index: 2;
+}
+
+td.gsc-input {
+ padding: 0 0;
+}
+
+div.gsc-input-box {
+ height: 30px;
+ width: 250px;
+ float: right;
+}
+
+#known_issues {
+ background: #F5F5F5;
+ padding-top: 1px;
+ padding-bottom: 16px;
+ padding-right: 16px;
+ padding-left: 16px;
+}
diff --git a/chrome/common/extensions/docs/templates/articles/declare_permissions.html b/chrome/common/extensions/docs/templates/articles/declare_permissions.html
deleted file mode 100644
index 92c3ef9..0000000
--- a/chrome/common/extensions/docs/templates/articles/declare_permissions.html
+++ /dev/null
@@ -1,306 +0,0 @@
-<h1>Declare Permissions</h1>
-
-<p>
-To use most chrome.* APIs,
-your extension or app must declare its intent in the
-"permissions" field of the
-<a href="manifest.html">manifest</a>.
-Each permission can be either one of a list of known strings
-(such as "geolocation")
-or a <a href="match_patterns.html">match pattern</a>
-that gives access to one or more hosts.
-Permissions help to limit damage
-if your extension or app is compromised by malware.
-Some permissions are also displayed to users before installation,
-as detailed in
-<a href="permission_warnings.html">Permission Warnings</a>.
-</p>
-
-<p>
-If an API requires you to declare a permission in the manifest,
-then its documentation tells you how to do so.
-For example,
-the <a href="storage.html">Storage</a> page
-shows you how to
-declare the "storage" permission.
-</p>
-
-<p>
-Here's an example of the permissions part of a manifest file:
-</p>
-
-{{^is_apps}}
-<pre>
-"permissions": [
- "tabs",
- "bookmarks",
- "http://www.blogger.com/",
- "http://*.google.com/",
- "unlimitedStorage"
-],
-</pre>
-{{/is_apps}}
-
-{{?is_apps}}
-<pre>
-"permissions": [
- "serial",
- "storage",
- "videoCapture"
-],
-</pre>
-{{/is_apps}}
-
-<p>
-The following table lists the currently available permissions:
-</p>
-
-{{?is_apps}}
-<p class="note">
-<strong>Note:</strong>
-Hosted apps can use the
-"background", "clipboardRead", "clipboardWrite", "geolocation", "notifications",
-and "unlimitedStorage" permissions, but not any other permissions listed in this
-table.
-</p>
-{{/is_apps}}
-
-<table>
-<tr>
- <th> Permission </th> <th> Description </th>
-</tr>
-<tr>
- <td> <em>match pattern</em> </td>
- <td> Specifies a <em>host permission</em>.
- Required if the extension or app wants to interact
- with the code running on pages.
- Many capabilities, such as
- <a href="xhr.html">cross-origin XMLHttpRequests</a>,
- <a href="content_scripts.html#pi">programmatically injected
- content scripts</a>, and
- <a href="cookies.html">the extension's cookies API</a>
- require host permissions. For details on the syntax, see
- <a href="match_patterns.html">Match Patterns</a>.
- </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "activeTab" </td>
- <td> Requests that the extension be granted permissions according to the
- <a href="activeTab.html">activeTab</a> specification.
- </td>
-</tr>
-{{/is_apps}}
-<tr id="bg">
- <td> "background" </td>
- <td> <p>
- Makes Chrome start up early and and shut down late,
- so that apps and extensions can have a longer life.
- </p>
-
- <p>
- When any installed hosted app, packaged app, or extension
- has "background" permission, Chrome runs (invisibly)
- as soon as the user logs into their computer&mdash;before
- the user launches Chrome.
- The "background" permission also makes Chrome continue running
- (even after its last window is closed)
- until the user explicitly quits Chrome.
- </p>
-
- <p class="note">
- <b>Note:</b>
- Disabled apps and extensions
- are treated as if they aren't installed.
- </p>
-
- <p>
- You typically use the "background" permission with a
- <a href="background_pages.html">background page</a>,
- <a href="event_pages.html">event page</a>
- or (for hosted apps) a
- <a href="http://code.google.com/chrome/apps/docs/background.html">background window</a>.
- </p>
- </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "bookmarks" </td>
- <td> Required if the extension uses the
- <a href="bookmarks.html">chrome.bookmarks</a> module. </td>
-</tr>
-<tr>
- <td> "chrome://favicon/" </td>
- <td> Required if the extension uses the
- "chrome://favicon/<em>url</em>" mechanism
- to display the favicon of a page.
- For example, to display the favicon of http://www.google.com/,
- you declare the "chrome://favicon/" permission
- and use HTML code like this:
- <pre>&lt;img src="chrome://favicon/http://www.google.com/"></pre>
- </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "clipboardRead" </td>
- <td> Required if the extension or app uses
- <code>document.execCommand('paste')</code>. </td>
-</tr>
-<tr>
- <td> "clipboardWrite" </td>
- <td> Indicates the extension or app uses
- <code>document.execCommand('copy')</code> or
- <code>document.execCommand('cut')</code>. This permission is <b>required
- for hosted apps</b>; it's recommended for extensions and packaged apps.
- </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "contentSettings" </td>
- <td> Required if the extension uses the
- <a href="contentSettings.html">chrome.contentSettings</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "contextMenus" </td>
- <td> Required if the extension or app uses the
- <a href="contextMenus.html">chrome.contextMenus</a> module. </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "cookies" </td>
- <td> Required if the extension uses the
- <a href="cookies.html">chrome.cookies</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "experimental" </td>
- <td> Required if the extension or app uses any
- <a href="http://code.google.com/chrome/extensions/dev/experimental.html">chrome.experimental.* APIs</a>.</td>
-</tr>
-{{^is_apps}}
-<tr>
- <td id="fileBrowserHandler"> "fileBrowserHandler" </td>
- <td> Required if the extension uses the
- <a href="fileBrowserHandler.html">fileBrowserhandler</a> module. </td>
-</tr>
-{{/is_apps}}
-{{?is_apps}}
-<tr>
- <td id="fileSystem"> "fileSystem": ["write"] </td>
- <td> Required if the app uses the
- <a href="fileSystem.html">fileSystem API</a> to write files.</td>
-</tr>
-{{/is_apps}}
-<tr>
- <td id="geolocation"> "geolocation" </td>
- <td> Allows the extension or app to use the proposed HTML5
- <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation API</a>
- without prompting the user for permission. </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "history" </td>
- <td> Required if the extension uses the
- <a href="history.html">chrome.history</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "idle" </td>
- <td> Required if the extension or app uses the
- <a href="idle.html">chrome.idle</a> module. </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "management" </td>
- <td> Required if the extension uses the
- <a href="management.html">chrome.management</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "notifications" </td>
- <td> Allows the extension or app to use the proposed HTML5
- <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a>
- without calling permission methods
- (such as <code>checkPermission()</code>).
- For more information see
- <a href="notifications.html">Desktop Notifications</a>.</td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "privacy" </td>
- <td> Required if the extension uses the
- <a href="privacy.html">chrome.privacy</a> module. </td>
-</tr>
-<tr>
- <td> "proxy" </td>
- <td> Required if the extension uses the
- <a href="proxy.html">chrome.proxy</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "storage" </td>
- <td> Required if the extension or app uses the
- <a href="storage.html">chrome.storage</a> module. </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "tabs" </td>
- <td> Required if the extension uses the
- <a href="tabs.html">chrome.tabs</a> or
- <a href="windows.html">chrome.windows</a> module. </td>
-</tr>
-<tr>
- <td> "topSites" </td>
- <td> Required if the extension uses the
- <a href="topSites.html">chrome.topSites</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "tts" </td>
- <td> Required if the extension or app uses the
- <a href="tts.html">chrome.tts</a> module. </td>
-</tr>
-{{^is_apps}}
-<tr>
- <td> "ttsEngine" </td>
- <td> Required if the extension uses the
- <a href="ttsEngine.html">chrome.ttsEngine</a> module. </td>
-</tr>
-{{/is_apps}}
-<tr>
- <td> "unlimitedStorage"</td>
- <td> Provides an unlimited quota for storing HTML5 client-side data,
- such as databases and local storage files.
- Without this permission, the extension or app is limited to
- 5 MB of local storage.
-
- <p class="note">
- <b>Note:</b>
- This permission applies only to Web SQL Database and application cache
- (see issue <a href="http://crbug.com/58985">58985</a>).
- Also, it doesn't currently work with wildcard subdomains such as
- <code>http://*.example.com</code>.
- </p>
- </td>
-<tr>
-{{^is_apps}}
-<tr>
- <td> "webNavigation" </td>
- <td> Required if the extension uses the
- <a href="webNavigation.html">chrome.webNavigation</a> module. </td>
-</tr>
-<tr>
- <td> "webRequest" </td>
- <td> Required if the extension uses the
- <a href="webRequest.html">chrome.webRequest</a> module. </td>
-</tr>
-<tr>
- <td> "webRequestBlocking" </td>
- <td> Required if the extension uses the
- <a href="webRequest.html">chrome.webRequest</a> module in a blocking
- fashion. </td>
-</tr>
-{{/is_apps}}
-</tr>
-</table> \ No newline at end of file
diff --git a/chrome/common/extensions/docs/templates/articles/manifest.html b/chrome/common/extensions/docs/templates/articles/manifest.html
index 7228160..a19f7f4 100644
--- a/chrome/common/extensions/docs/templates/articles/manifest.html
+++ b/chrome/common/extensions/docs/templates/articles/manifest.html
@@ -52,7 +52,7 @@ are <b>name</b> and <b>version</b>.
"<a href="#offline_enabled">offline_enabled</a>": true,
"<a href="omnibox.html">omnibox</a>": { "keyword": "<em>aString</em>" },
"<a href="options.html">options_page</a>": "<em>aFile</em>.html",
- "<a href="declare_permissions.html">permissions</a>": [...],
+ "<a href="#permissions">permissions</a>": [...],
"<a href="npapi.html">plugins</a>": [...],
"<a href="#requirements">requirements</a>": {...},
"<a href="autoupdate.html">update_url</a>": "http://<em>path/to/updateInfo</em>.xml",
@@ -389,6 +389,270 @@ that it is offline, apps with this field set to true will be highlighted
on the New Tab page.
</p>
+<h3 id="permissions">permissions</h3>
+
+<p>
+An array of permissions that the extension or app might use.
+Each permission can be either one of a list of known strings
+(such as "geolocation")
+or a match pattern
+that gives access to one or more hosts.
+Permissions can help to limit damage
+if your extension or app is attacked.
+Some permissions are also displayed to users before installation,
+as detailed in
+<a href="permission_warnings.html">Permission Warnings</a>.
+</p>
+
+<p>
+If an extension API requires you to declare a permission in the manifest,
+then its documentation tells you how to do so.
+For example,
+the <a href="tabs.html">Tabs</a> page
+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:
+</p>
+
+<pre>
+"permissions": [
+ "tabs",
+ "bookmarks",
+ "http://www.blogger.com/",
+ "http://*.google.com/",
+ "unlimitedStorage"
+],
+</pre>
+
+<p>
+The following table lists the permissions an extension
+or packaged app can use.
+</p>
+
+<p class="note">
+<strong>Note:</strong>
+Hosted apps can use the
+"background", "clipboardRead", "clipboardWrite", "geolocation", "notifications",
+and "unlimitedStorage" permissions, but not any other permissions listed in this
+table.
+</p>
+
+<table>
+<tr>
+ <th> Permission </th> <th> Description </th>
+</tr>
+<tr>
+ <td> <em>match pattern</em> </td>
+ <td> Specifies a <em>host permission</em>.
+ Required if the extension wants to interact
+ with the code running on pages.
+ Many extension capabilities, such as
+ <a href="xhr.html">cross-origin XMLHttpRequests</a>,
+ <a href="content_scripts.html#pi">programmatically injected
+ content scripts</a>, and <a href="cookies.html">the cookies API</a>
+ require host permissions. For details on the syntax, see
+ <a href="match_patterns.html">Match Patterns</a>.
+ </td>
+</tr>
+<tr>
+ <td> "activeTab" </td>
+ <td> Requests that the extension be granted permissions according to the
+ <a href="activeTab.html">activeTab</a> specification.
+ </td>
+</tr>
+<tr id="bg">
+ <td> "background" </td>
+ <td> <p>
+ Makes Chrome start up early and and shut down late,
+ so that apps and extensions can have a longer life.
+ </p>
+
+ <p>
+ When any installed hosted app, packaged app, or extension
+ has "background" permission, Chrome runs (invisibly)
+ as soon as the user logs into their computer&mdash;before
+ the user launches Chrome.
+ The "background" permission also makes Chrome continue running
+ (even after its last window is closed)
+ until the user explicitly quits Chrome.
+ </p>
+
+ <p class="note">
+ <b>Note:</b>
+ Disabled apps and extensions
+ are treated as if they aren't installed.
+ </p>
+
+ <p>
+ You typically use the "background" permission with a
+ <a href="background_pages.html">background page</a>,
+ <a href="event_pages.html">event page</a>
+ or (for hosted apps) a
+ <a href="http://code.google.com/chrome/apps/docs/background.html">background window</a>.
+ </p>
+ </td>
+</tr>
+<tr>
+ <td> "bookmarks" </td>
+ <td> Required if the extension uses the
+ <a href="bookmarks.html">chrome.bookmarks</a> module. </td>
+</tr>
+<tr>
+ <td> "chrome://favicon/" </td>
+ <td> Required if the extension uses the
+ "chrome://favicon/<em>url</em>" mechanism
+ to display the favicon of a page.
+ For example, to display the favicon of http://www.google.com/,
+ you declare the "chrome://favicon/" permission
+ and use HTML code like this:
+ <pre>&lt;img src="chrome://favicon/http://www.google.com/"></pre>
+ </td>
+</tr>
+<tr>
+ <td> "clipboardRead" </td>
+ <td> Required if the extension uses
+ <code>document.execCommand('paste')</code>. </td>
+</tr>
+<tr>
+ <td> "clipboardWrite" </td>
+ <td> Indicates the app or extension uses
+ <code>document.execCommand('copy')</code> or
+ <code>document.execCommand('cut')</code>. This permission is <b>required
+ for hosted apps</b>; it's recommended for extensions and packaged apps.
+ </td>
+</tr>
+<tr>
+ <td> "contentSettings" </td>
+ <td> Required if the extension uses the
+ <a href="contentSettings.html">chrome.contentSettings</a> module. </td>
+</tr>
+<tr>
+ <td> "contextMenus" </td>
+ <td> Required if the extension uses the
+ <a href="contextMenus.html">chrome.contextMenus</a> module. </td>
+</tr>
+<tr>
+ <td> "cookies" </td>
+ <td> Required if the extension uses the
+ <a href="cookies.html">chrome.cookies</a> module. </td>
+</tr>
+<tr>
+ <td> "experimental" </td>
+ <td> Required if the extension uses any
+ <a href="http://code.google.com/chrome/extensions/dev/experimental.html">chrome.experimental.* APIs</a>.</td>
+</tr>
+<tr>
+ <td id="fileBrowserHandler"> "fileBrowserHandler" </td>
+ <td> Required if the extension uses the
+ <a href="fileBrowserHandler.html">fileBrowserhandler</a> module. </td>
+</tr>
+<tr>
+ <td id="geolocation"> "geolocation" </td>
+ <td> Allows the extension to use the proposed HTML5
+ <a href="http://dev.w3.org/geo/api/spec-source.html">geolocation API</a>
+ without prompting the user for permission. </td>
+</tr>
+<tr>
+ <td> "history" </td>
+ <td> Required if the extension uses the
+ <a href="history.html">chrome.history</a> module. </td>
+</tr>
+<tr>
+ <td> "idle" </td>
+ <td> Required if the extension uses the
+ <a href="idle.html">chrome.idle</a> module. </td>
+</tr>
+<tr>
+ <td> "management" </td>
+ <td> Required if the extension uses the
+ <a href="management.html">chrome.management</a> module. </td>
+</tr>
+<tr>
+ <td> "notifications" </td>
+ <td> Allows the extension to use the proposed HTML5
+ <a href="http://www.chromium.org/developers/design-documents/desktop-notifications/api-specification">notification API</a>
+ without calling permission methods
+ (such as <code>checkPermission()</code>).
+ For more information see
+ <a href="notifications.html">Desktop Notifications</a>.</td>
+</tr>
+<tr>
+ <td> "privacy" </td>
+ <td> Required if the extension uses the
+ <a href="privacy.html">chrome.privacy</a> module. </td>
+</tr>
+<tr>
+ <td> "proxy" </td>
+ <td> Required if the extension uses the
+ <a href="proxy.html">chrome.proxy</a> module. </td>
+</tr>
+<tr>
+ <td> "storage" </td>
+ <td> Required if the extension uses the
+ <a href="storage.html">chrome.storage</a> module. </td>
+</tr>
+<tr>
+ <td> "tabs" </td>
+ <td> Required if the extension uses the
+ <a href="tabs.html">chrome.tabs</a> or
+ <a href="windows.html">chrome.windows</a> module. </td>
+</tr>
+<tr>
+ <td> "tts" </td>
+ <td> Required if the extension uses the
+ <a href="tts.html">chrome.tts</a> module. </td>
+</tr>
+<tr>
+ <td> "ttsEngine" </td>
+ <td> Required if the extension uses the
+ <a href="ttsEngine.html">chrome.ttsEngine</a> module. </td>
+</tr>
+<tr>
+ <td> "unlimitedStorage"</td>
+ <td> Provides an unlimited quota for storing HTML5 client-side data,
+ such as databases and local storage files.
+ Without this permission, the extension is limited to
+ 5 MB of local storage.
+
+ <p class="note">
+ <b>Note:</b>
+ This permission applies only to Web SQL Database and application cache
+ (see issue <a href="http://crbug.com/58985">58985</a>).
+ Also, it doesn't currently work with wildcard subdomains such as
+ <code>http://*.example.com</code>.
+ </p>
+ </td>
+<tr>
+<tr>
+ <td> "webNavigation" </td>
+ <td> Required if the extension uses the
+ <a href="webNavigation.html">chrome.webNavigation</a> module. </td>
+</tr>
+<tr>
+ <td> "webRequest" </td>
+ <td> Required if the extension uses the
+ <a href="webRequest.html">chrome.webRequest</a> module. </td>
+</tr>
+<tr>
+ <td> "webRequestBlocking" </td>
+ <td> Required if the extension uses the
+ <a href="webRequest.html">chrome.webRequest</a> module in a blocking
+ fashion. </td>
+</tr>
+</tr>
+</table>
+
<h3 id="requirements">requirements</h3>
<p>
diff --git a/chrome/common/extensions/docs/templates/articles/permission_warnings.html b/chrome/common/extensions/docs/templates/articles/permission_warnings.html
index b115654..42ddf80 100644
--- a/chrome/common/extensions/docs/templates/articles/permission_warnings.html
+++ b/chrome/common/extensions/docs/templates/articles/permission_warnings.html
@@ -135,11 +135,10 @@ that trigger them.
<p>
<table>
- <tr>
- <th> Warning message </th>
- <th> Manifest entry that caused it </th>
- <th> Notes </th>
- </tr>
+<tr>
+ <th>Warning&nbsp;message</th> <th>Manifest&nbsp;entry&nbsp;that&nbsp;causes&nbsp;it</th> <th>Notes</th>
+</tr>
+
<tr>
<td style="font-weight:bold">
<!-- IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS -->
@@ -175,21 +174,13 @@ that trigger them.
</td>
<td>
<!-- HasEffectiveBrowsingHistoryPermission -->
- Any of the following:
- <ul>
- <li> "history" permission </li>
- <li> "topSites" permission </li>
- </ul>
+ "history" permission
</td>
<td>
<p>
The "history" permission is required by
<a href="history.html"><code>chrome.history</code></a>.
</p>
- <p>
- The "topSites" permission is required by
- <a href="topSites.html"><code>chrome.topSites</code></a>.
- </p>
</td>
</tr>
diff --git a/chrome/common/extensions/docs/templates/intros/permissions.html b/chrome/common/extensions/docs/templates/intros/permissions.html
index b6b8e08..a4f49d3 100644
--- a/chrome/common/extensions/docs/templates/intros/permissions.html
+++ b/chrome/common/extensions/docs/templates/intros/permissions.html
@@ -1,10 +1,9 @@
<p id="classSummary">
- Use the <code>chrome.permissions</code> module
- to implement optional permissions.
- As of Chrome 16, 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.
+ 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>
diff --git a/chrome/common/extensions/docs/templates/private/standard_apps_article.html b/chrome/common/extensions/docs/templates/private/standard_apps_article.html
index df4ee20..3509d34 100644
--- a/chrome/common/extensions/docs/templates/private/standard_apps_article.html
+++ b/chrome/common/extensions/docs/templates/private/standard_apps_article.html
@@ -2,7 +2,6 @@
<html>
<head>
{{+partials.header_head}}
- <link href="{{static}}/css/api.css" rel="stylesheet" type="text/css">
<title>{{article.title}} - Google Chrome</title>
</head>
<body>
diff --git a/chrome/common/extensions/docs/templates/private/standard_extensions_article.html b/chrome/common/extensions/docs/templates/private/standard_extensions_article.html
index 8d83e29..7959f36 100644
--- a/chrome/common/extensions/docs/templates/private/standard_extensions_article.html
+++ b/chrome/common/extensions/docs/templates/private/standard_extensions_article.html
@@ -2,7 +2,6 @@
<html>
<head>
{{+partials.header_head}}
- <link href="{{static}}/css/api.css" rel="stylesheet" type="text/css">
<title>{{article.title}} - Google Chrome</title>
</head>
<body>
diff --git a/chrome/common/extensions/docs/templates/public/apps/declare_permissions.html b/chrome/common/extensions/docs/templates/public/apps/declare_permissions.html
deleted file mode 100644
index 998bb68..0000000
--- a/chrome/common/extensions/docs/templates/public/apps/declare_permissions.html
+++ /dev/null
@@ -1 +0,0 @@
-{{+partials.standard_apps_article article:intros.declare_permissions}}
diff --git a/chrome/common/extensions/docs/templates/public/extensions/declare_permissions.html b/chrome/common/extensions/docs/templates/public/extensions/declare_permissions.html
deleted file mode 100644
index 910cc34..0000000
--- a/chrome/common/extensions/docs/templates/public/extensions/declare_permissions.html
+++ /dev/null
@@ -1 +0,0 @@
-{{+partials.standard_extensions_article article:intros.declare_permissions}}
diff --git a/chrome/common/extensions/docs/templates/public/extensions/index.html b/chrome/common/extensions/docs/templates/public/extensions/index.html
index 69ee86b..f7a0f84 100644
--- a/chrome/common/extensions/docs/templates/public/extensions/index.html
+++ b/chrome/common/extensions/docs/templates/public/extensions/index.html
@@ -11,7 +11,7 @@
<div id="gc-pagecontent">
<table id="index">
<tr>
- <td style="border:none">
+ <td>
<h3>What are extensions?</h3>
<p>
Extensions are small software programs that
@@ -59,7 +59,7 @@
<a href="http://code.google.com/chrome/webstore">store developer documentation</a>.
</p>
</td>
- <td id="howDoIStart" style="border:none">
+ <td id="howDoIStart">
<h3>How do I start?</h3>
<p></p>
<ol>