<p>
To use most chrome.* APIs and extension capabilities,
your extension must declare its intent in the
-<a href="manifest.html">manifest</a>,
+<a href="manifest">manifest</a>,
often in the "permissions" field.
Some of these declarations
result in a warning when
<img src="{{static}}/images/perms-hw1.png"
width="490" height="193"
- alt="Permission warning: 'It can: Access your data on api.flickr.com'"
+ alt="Permission warning: 'It can: Read and modify your data on api.flickr.com'"
/>
<p>
<img src="{{static}}/images/perms-hw2.png"
width="490" height="193"
- alt="Permission warning: 'It can: Access your data on api.flickr.com and flickr.com; Read and modify your browsing history'"
+ alt="Permission warning: 'It can: Read and modify your data on api.flickr.com; Access your browsing activity'"
/>
<h2 id="warnings"> Warnings and their triggers </h2>
+{{^is_apps}}
<p>
It can be surprising when adding a permission such as "tabs"
results in the seemingly unrelated warning
might be used only to open new tabs,
it can also be used to see the URL that's associated
with every newly opened tab
-(using their $ref:tabs.Tab objects).
-</p>
-
-<p class="note">
-<b>Note:</b>
-As of Google Chrome 7,
-you no longer need to specify the "tabs" permission
-just to call <code>chrome.tabs.create()</code>
-or <code>chrome.tabs.update()</code>.
+(using their $(ref:tabs.Tab) objects).
</p>
+{{/is_apps}}
<p>
The following table lists the warning messages
<tr>
<td style="font-weight:bold">
<!-- IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS -->
- Access all data on your computer and the websites you visit
+ Read and modify all your data on your computer and the websites you visit
</td>
<td>
"plugins"
</td>
<td>
The "plugins" permission is required by
- <a href="npapi.html">NPAPI plugins</a>.
+ <a href="npapi">NPAPI plugins</a>.
</td>
</tr>
</td>
<td>
The "bookmarks" permission is required by the
- <a href="bookmarks.html"><code>chrome.bookmarks</code></a> module.
+ <a href="bookmarks"><code>chrome.bookmarks</code></a> module.
</td>
</tr>
<td>
<p>
The "history" permission is required by
- <a href="history.html"><code>chrome.history</code></a>.
+ <a href="history"><code>chrome.history</code></a>.
</p>
<p>
The "topSites" permission is required by
- <a href="topSites.html"><code>chrome.topSites</code></a>.
+ <a href="topSites"><code>chrome.topSites</code></a>.
</p>
</td>
</tr>
<tr>
<td style="font-weight:bold">
<!-- IDS_EXTENSION_PROMPT_WARNING_TABS -->
- Access your tabs and browsing activity
+ Access your browsing activity
</td>
<td>
<!-- HasEffectiveBrowsingHistoryPermission -->
<td>
<p>
The "tabs" permission is required by the
- <a href="tabs.html"><code>chrome.tabs</code></a> and
- <a href="windows.html"><code>chrome.windows</code></a> modules.
+ <a href="tabs"><code>chrome.tabs</code></a> and
+ <a href="windows"><code>chrome.windows</code></a> modules.
</p>
<p>
The "webNavigation" permission is required by the
- <a href="webNavigation.html"><code>chrome.webNavigation</code></a> module.
+ <a href="webNavigation"><code>chrome.webNavigation</code></a> module.
</p>
</td>
</tr>
<td>
<p>
The "contentSettings" permission is required by
- <a href="contentSettings.html"><code>chrome.contentSettings</code></a>.
+ <a href="contentSettings"><code>chrome.contentSettings</code></a>.
</p>
</td>
</tr>
<tr>
<td style="font-weight:bold">
<!-- IDS_EXTENSION_PROMPT_WARNING_ALL_HOSTS -->
- Access your data on all websites
+ Read and modify all your data on all websites you visit
</td>
<td>
<!-- HasEffectiveAccessToAllHosts() -->
<td>
<p>
The "debugger" permission is required by the
- <a href="debugger.html">debugger</a> module.
+ <a href="debugger">debugger</a> module.
</p>
<p>
The "proxy" permission is required by the
- <a href="proxy.html"><code>chrome.proxy</code></a> module.
+ <a href="proxy"><code>chrome.proxy</code></a> module.
</p>
<p>
<li> <code>*://*/*</code> </li>
<li> <code><all_urls></code> </li>
</ul>
- <strong>Note that you may be able to avoid declaring all host permissions using the <code><a href="activeTab.html">activeTab</a></code> permission.</strong>
+ <strong>Note that you may be able to avoid declaring all host permissions using the <code><a href="activeTab">activeTab</a></code> permission.</strong>
</td>
</tr>
<tr>
<td style="font-weight:bold">
<!-- IDS_EXTENSION_PROMPT_WARNING_?_HOST -->
<!-- IDS_EXTENSION_PROMPT_WARNING_4_OR_MORE_HOSTS -->
- Access your data on <em>{list of websites}</em>
+ Read and modify your data on <em>{list of websites}</em>
</td>
<td>
A match pattern in the "permissions" field
</td>
<td>
The "management" permission is required by the
- <a href="management.html"><code>chrome.management</code></a> module.
+ <a href="management"><code>chrome.management</code></a> module.
</td>
</tr>
</td>
<td>
The "privacy" permission is required by the
- <a href="privacy.html"><code>chrome.privacy</code></a> module.
+ <a href="privacy"><code>chrome.privacy</code></a> module.
</td>
</tr>
</td>
<td>
The "signedInDevices" permission is required by the
- <a href="signedInDevices.html"><code>chrome.signedInDevices</code></a>
+ <a href="signedInDevices"><code>chrome.signedInDevices</code></a>
module.
</td>
</tr>
</td>
<td>
The "ttsEngine" permission is required by the
- <a href="ttsEngine.html"><code>chrome.ttsEngine</code></a> module.
+ <a href="ttsEngine"><code>chrome.ttsEngine</code></a> module.
</td>
</tr>
</table>
<ul>
<li>"activeTab"</li>
{{?is_apps}}
- <li>"alwaysOnTopWindows"</li>
+ <li>"app.window.alwaysOnTop"</li>
+ <li>"app.window.fullscreen"</li>
+ <li>"app.window.fullscreen.overrideEsc"</li>
+ <li>"app.window.shape"</li>
{{/is_apps}}
<li>"browsingData"</li>
<li>"chrome://favicon/"</li>
<li>"contextMenus"</li>
<li>"cookies"</li>
<li>"experimental"</li>
-{{?is_apps}}
- <li>"fullscreen"</li>
-{{/is_apps}}
<li>"idle"</li>
<li>"notifications"</li>
{{?is_apps}}
<p>
If you'd like to see exactly which warnings your users will get,
-<a href="packaging.html">package your extension</a>
+<a href="packaging">package your extension</a>
into a <code>.crx</code> file,
and install it.
</p>
To do this, first create an update manifest
and point to it from your extension,
using the "update_url" key
-(see <a href="autoupdate.html">Autoupdating</a>).
-Next, <a href="packaging.html">package the extension</a>
+(see <a href="autoupdate">Autoupdating</a>).
+Next, <a href="packaging">package the extension</a>
into a new <code>.crx</code> file,
and install the app from this <code>.crx</code> file.
Now, change the extension's manifest to contain the new permissions,
-and <a href="packaging.html#update">repackage the extension</a>.
+and <a href="packaging#update">repackage the extension</a>.
Finally, update the extension
(and all other extensions that have outstanding updates)
by clicking the <b>chrome://extensions</b> page's
<p>
You can get a list of permission warnings for any manifest with
-$ref:management.getPermissionWarningsByManifest.
+$(ref:management.getPermissionWarningsByManifest).
</p>