Fix some typos, broken links and other issues in extension docs

This CL fixes some typos, broken links and other small issues in extension docs. 

Thanks for Sunny Jerry (ratsunny@gmail.com). Some of these mistakes were discovered by him and listed at https://code.google.com/p/chrome-documentation-chs/source/browse/documentation/error_list.txt .

BUG=173630,168952,119535,167355
TEST=none

Review URL: https://chromiumcodereview.appspot.com/12223068

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182168 0039d316-1c4b-4281-b951-d872f2087c98
parent b70ff014
......@@ -502,7 +502,7 @@
{
"name": "onImportBegan",
"type": "function",
"description": "Fired when a bookmark import session is begun. Expensive observers should ignore handleCreated updates until onImportEnded is fired. Observers should still handle other notifications immediately.",
"description": "Fired when a bookmark import session is begun. Expensive observers should ignore onCreated updates until onImportEnded is fired. Observers should still handle other notifications immediately.",
"parameters": []
},
{
......
......@@ -42,7 +42,7 @@
"type": "string",
"enum": ["regular", "incognito_session_only"],
"optional": true,
"description": "Where to set the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
"description": "Where to clear the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
}
}
},
......@@ -133,7 +133,7 @@
"type": "string",
"enum": ["regular", "incognito_session_only"],
"optional": true,
"description": "Where to clear the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
"description": "Where to set the setting (default: regular). One of<br><var>regular</var>: setting for regular profile (which is inherited by the incognito profile if not overridden elsewhere),<br><var>incognito_session_only</var>: setting for incognito profile that can only be set during an incognito session and is deleted when the incognito session ends (overrides regular settings)."
}
}
},
......
......@@ -191,8 +191,7 @@ namespace downloads {
// with a hyphen: '-startTime'.
DOMString? orderBy;
// The <code>id</code> of the $ref:DownloadItem
// that changed.
// The <code>id</code> of the $ref:DownloadItem to query.
long? id;
// Absolute URL.
......@@ -259,7 +258,8 @@ namespace downloads {
// Encapsulates a change in a DownloadItem.
[inline_doc] dictionary DownloadDelta {
// An identifier that is persistent across browser sessions.
// The <code>id</code> of the $ref:DownloadItem
// that changed.
long id;
// The change in <code>url</code>, if any.
......
......@@ -321,7 +321,7 @@
},
{
"name": "onDisabled",
"description": "Fired when an app or extension has been disabled",
"description": "Fired when an app or extension has been disabled.",
"type": "function",
"parameters": [{"name": "info", "$ref":"ExtensionInfo"}]
}
......
......@@ -50,7 +50,7 @@
{
"name": "getTitle",
"type": "function",
"description": "Gets the title of the browser action.",
"description": "Gets the title of the page action.",
"parameters": [
{
"name": "details",
......@@ -149,7 +149,7 @@
{
"name": "getPopup",
"type": "function",
"description": "Gets the html document set as the popup for this browser action.",
"description": "Gets the html document set as the popup for this page action.",
"parameters": [
{
"name": "details",
......
......@@ -285,7 +285,7 @@
{
"name": "onSuspendCanceled",
"type": "function",
"description": "Sent after onSuspend() to indicate that the app won't be unloaded after all."
"description": "Sent after onSuspend to indicate that the app won't be unloaded after all."
},
{
"name": "onUpdateAvailable",
......
......@@ -598,7 +598,7 @@
{
"name": "captureVisibleTab",
"type": "function",
"description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='manifest.html#permissions'>host permission</a> for the URL displayed by the tab.",
"description": "Captures the visible area of the currently active tab in the specified window. You must have <a href='declare_permissions.html'>host permission</a> for the URL displayed by the tab.",
"parameters": [
{
"type": "integer",
......@@ -913,7 +913,7 @@
"type": "object",
"name": "removeInfo",
"properties": {
"windowId": {"type": "integer", "minimum": 0, "description": "the window whose tab is closed." },
"windowId": {"type": "integer", "minimum": 0, "description": "The window whose tab is closed." },
"isWindowClosing": {"type": "boolean", "description": "True when the tab is being closed because its window is being closed." }
}
}
......
......@@ -25,7 +25,7 @@ E.g. window.open(someUrl). --></dd>
<dd>
Use <a href="xhr.html">XMLHttpRequest</a>
to request data from one or more servers.
The <a href="manifest.html#permissions">permissions</a> field
The <a href="declare_permissions.html">permissions</a> field
of the manifest specifies
which hosts the extension can send requests to.
</dd>
......@@ -84,4 +84,4 @@ you can bundle that library's JavaScript files with your extension.
Bundled libraries work in extensions
just as they do in other web pages.
</dd>
</dl>
\ No newline at end of file
</dl>
......@@ -89,7 +89,7 @@ to get you started:
<tr>
<td>Installation</td>
<td>User chooses to install the app and explicitly accepts the
<a href="manifest.html#permissions">permissions</a>.
<a href="declare_permissions.html">permissions</a>.
</td>
</tr>
<tr>
......
......@@ -79,7 +79,7 @@ property instead:
If you need the browser to start up early&mdash;so
you can display notifications, for example&mdash;then
you might also want to specify the
<a href="manifest.html#permissions">"background" permission</a>.
<a href="declare_permissions.html#bg">"background" permission</a>.
</p>
......
......@@ -2,7 +2,7 @@
<p>
In order to mitigate a large class of potental cross-site scripting issues,
In order to mitigate a large class of potential cross-site scripting issues,
Chrome's extension system has incorporated the general concept of
<a href="http://dvcs.w3.org/hg/content-security-policy/raw-file/tip/csp-specification.dev.html">
<strong>Content Security Policy (CSP)</strong>
......@@ -18,7 +18,7 @@
extension enables you to carefully consider the resources that your extension
requires, and to ask the browser to ensure that those are the only resources
your extension has access to. These policies provide security over and above
the <a href="manifest.html#permissions">host permissions</a> your extension
the <a href="declare_permissions.html">host permissions</a> your extension
requests; they're an additional layer of protection, not a replacement.
</p>
......@@ -50,7 +50,7 @@
Packages that do not define a <a href="manifestVersion.html">
<code>manifest_version</code>
</a> have no default content security policy. Those that select
<code>manifest_version</code></a> 2, have a default content security policy
<code>manifest_version</code> 2, have a default content security policy
of:
</p>
......@@ -68,7 +68,7 @@
<pre>
alert(eval("foo.bar.baz"));
window.setTimeout("alert('hi')", 10);
window.setInteral("alert('hi')", 10);
window.setInterval("alert('hi')", 10);
new Function("return foo.bar.baz");
</pre>
......
......@@ -82,7 +82,7 @@ as in the following example.
<p>
If you want to inject the code only sometimes,
use the
<a href="manifest.html#permissions"><code>permissions</code></a> field instead,
<a href="declare_permissions.html"><code>permissions</code></a> field instead,
as described in <a href="#pi">Programmatic injection</a>.
</p>
......@@ -246,7 +246,7 @@ for the page.
It also must be able to use the <code>chrome.tabs</code> module.
You can get both kinds of permission
using the manifest file's
<a href="manifest.html#permissions">permissions</a> field.
<a href="declare_permissions.html">permissions</a> field.
</p>
<p>
......@@ -367,7 +367,7 @@ document.getElementById("theButton").addEventListener("click", function() {
First, be careful not to introduce security vulnerabilities into the web site
your content script is injected into. For example, if your content script
receives content from another web site (for example, by making an <a
href="messaging.html">XMLHttpRequest</a>),
href="xhr.html">XMLHttpRequest</a>),
be careful to filter that content for <a
href="http://en.wikipedia.org/wiki/Cross-site_scripting">cross-site
scripting</a> attacks before injecting the content into the current page.
......
......@@ -239,7 +239,7 @@ table.
<td> "pointerLock" </td>
<td> Required to use
<a href="http://www.w3.org/TR/pointerlock/">Pointer Lock</a> via calls to
<code>webkitRequestPointerLock</code></a> or Pepper's
<code>webkitRequestPointerLock</code> or Pepper's
<a href="https://developers.google.com/native-client/peppercpp/classpp_1_1_mouse_lock">
Mouse Lock API</a>. </td>
</tr>
......
......@@ -88,7 +88,7 @@ upload items that use experimental APIs.
{{/is_apps}}
<li>
Specify the "experimental"
<a href="manifest.html#permissions">permission</a>
<a href="declare_permissions.html">permission</a>
in your manifest, like this:
<pre>
"permissions": [
......
......@@ -38,7 +38,7 @@ installing external extensions:
Both ways support installing an extension from a <code>.crx</code> extension
file on the user's computer. The preferences JSON file also supports installing
an extension hosted at an
<a href="autoupdate.html#H2-1">update URL</a>.
<a href="autoupdate.html#update_url">update URL</a>.
See <a href="hosting.html">hosting</a> for details on hosting an extension.
</p>
......@@ -51,7 +51,7 @@ and make sure that it installs successfully.
</p>
<p>
If you wish to install from an
<a href="autoupdate.html#H2-1">update URL</a>, ensure that the extension
<a href="autoupdate.html#update_url">update URL</a>, ensure that the extension
is properly <a href="hosting.html">hosted</a>.
</p>
......@@ -255,7 +255,7 @@ This section answers common questions about external extensions.
<p>Yes, if you use a <a href="#preferences">preferences JSON</a> file. The
extension must be hosted as explained in <a href="hosting.html">hosting</a>.
Use the "external_update_url" property to point to an
<a href="autoupdate.html#H2-2">update manifest</a> that has the URL for your
<a href="autoupdate.html#update_manifest">update manifest</a> that has the URL for your
extension.</p>
<br>
......@@ -311,4 +311,4 @@ decision. However, if you (the developer) accidentally uninstalled
your extension through the UI,
you can remove the blacklist tag
by installing the extension normally
through the UI, and then uninstalling it. </p>
\ No newline at end of file
through the UI, and then uninstalling it. </p>
......@@ -77,8 +77,8 @@ try the
<img src="{{static}}/images/hotdogmenu.png" height="29" width="29" alt=""
class="nomargin" />
and select <b>Extensions</b> from the <b>Tools</b> menu.
If there's a "+" next to "Developer mode",
click the "+" so it turns into a "-".
Ensure that the "Developer mode" checkbox in the top right-hand corner
is checked.
Now you can reload extensions,
load an unpacked directory of files as if it were a packaged extension,
and more. For a complete tutorial, see
......@@ -230,7 +230,7 @@ cros,beta,#.#.###.#,#.#.###.#,mm/dd/yy,mm/dd/yy,#####,#####,#####</pre>
<p>
Yes, since extensions are built just like websites, they can use
<a href="http://www.google.com/analytics/">Google Analytics</a> to track
usage. However, we strongly advise you to modify the tracking code to pull
usage. However, you must modify the tracking code to pull
an HTTPS version of the Google Analytics library. See
<a href="tut_analytics.html">this tutorial</a> for more information on doing
this.
......
......@@ -183,7 +183,7 @@
</li>
<li>
<p>
Ensure that the <strong>Developer Mode</strong> checkbox in the top
Ensure that the <strong>Developer mode</strong> checkbox in the top
right-hand corner is checked.
</p>
</li>
......
......@@ -199,14 +199,14 @@
can no longer be specified as an object. It must be a string.
</p>
</li>
<li>
<p>
The <code>chrome.self</code> API has been removed. Use
<a href="extension.html"><code>chrome.extension</code></a> instead.
</p>
</li>
</ul>
</li>
<li>
<p>
The <code>chrome.self</code> API has been removed. Use
<a href="extension.html"><code>chrome.extension</code></a> instead.
</p>
</li>
<li>
<p>
<code>chrome.extension.getTabContentses</code> (!!!) and
......
......@@ -154,10 +154,10 @@ chrome.runtime.onConnect.addListener(function(port) {
<p>
You may want to find out when a connection is closed, for example if you are
maintaining separate state for each open port. For this you can listen to the
$ref:runtime.Port
$ref:runtime.Port.onDisconnect
event. This event is fired either when the other side of the channel manually
calls
$ref:runtime.Port, or when the page
$ref:runtime.Port.disconnect, or when the page
containing the port is unloaded (for example if the tab is navigated).
onDisconnect is guaranteed to be fired only once for any given port.
......
......@@ -186,14 +186,14 @@ The following table shows your options for saving data locally
<td> Structured data </td>
<td> Enables fast searches on data.
Use with the
<a href="manifest.html#permissions">unlimitedStorage permission</a>. </td>
<a href="declare_permissions.html">unlimitedStorage permission</a>. </td>
</tr>
<tr>
<td> Filesystem API </td>
<td> Anything else </td>
<td> Provides a sandboxed area where you can store files.
Use with the
<a href="manifest.html#permissions">unlimitedStorage permission</a>. </td>
<a href="declare_permissions.html">unlimitedStorage permission</a>. </td>
</tr>
</table>
......
......@@ -46,8 +46,8 @@ your extensions!
</li>
<li>
If <b>Developer mode</b> has a + by it,
click the +.
Ensure that the "Developer mode" checkbox in the top right-hand corner
is checked.
</li>
<li>
......
......@@ -8,7 +8,7 @@ extension.</p>
<p>
This tutorial expects that you have some familiarity writing extensions for
Google Chrome. If you need information on how to write an extension, please
read the <a href="gettingstarted.html">Getting Started tutorial</a>.
read the <a href="getstarted.html">Getting Started tutorial</a>.
</p>
<p>
......@@ -211,4 +211,4 @@ popup.html:
<blockquote>
<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/tutorials/analytics/">.../examples/tutorials/analytics/</a>
</blockquote>
\ No newline at end of file
</blockquote>
......@@ -40,7 +40,7 @@ in the Extensions page.
extract them from this
<a href="examples/tutorials/getstarted.zip" download="getstarted.zip">ZIP file</a>.
See Getting Started if you need
<a href="getstarted.html#load-ext">instructions
<a href="getstarted.html#unpacked">instructions
for loading the extension</a>.
</p>
</li>
......@@ -257,6 +257,6 @@ here are suggestions for what to do next:
<p>
For more ideas,
see the <a href="getstarted.html#summary">Now what?</a> section
see the <a href="getstarted.html#next-steps">Now what?</a> section
of Getting Started.
</p>
......@@ -3,7 +3,7 @@
<p>
Manifest version 1 was deprecated in Chrome 18,
and support will be phased out according to the
<a href="manifestVersion.html">manifest version 1 support schedule</a>.
<a href="manifestVersion.html#manifest-v1-support-schedule">manifest version 1 support schedule</a>.
The changes from version 1 to version 2
fall under two broad categories:
API changes and Security changes.
......
......@@ -162,7 +162,7 @@ made in recent releases.
<li>The <a href="devtools.html">developer tools APIs</a>
provide support for extending Chrome Developer Tools.
The inspected window API lets you interact with the inspected window.
The network API lets you retrive information about network requests.
The network API lets you retrieve information about network requests.
The panels API lets you add panels and sidebars.
<li>The <a href="pageCapture.html">page capture API</a>
lets you save a tab as MHTML.
......@@ -196,8 +196,6 @@ made in recent releases.
<h4> Additions to existing APIs </h4>
<ul>
<li>The $ref:windows.WINDOW_ID_CURRENT
now has a <code>WINDOW_ID_CURRENT</code> property.
<li>The <code>chrome.tabs</code>
$ref:tabs.create and
$ref:tabs.update methods
......@@ -301,13 +299,13 @@ made in recent releases.
to specify the <code>tabID</code> for the
$ref:tabs.update method.
When not provided,
the <code>tabID</code> defaults
the <code>tabId</code> defaults
to the selected tab of the current window.
<li>External extension files on Mac OS can now be owned by users
within a wheel group (or an admin group).
<li>The "experimental" permission is no longer required
for the
$ref:windows.Window type.
$ref:[windows.Window "panel"] type.
By default, the "panel" type creates a popup
unless the <code>--enable-panels</code> flag is set.
</ul>
......@@ -426,7 +424,7 @@ made in recent releases.
For details, see
<a href="content_scripts.html#match-patterns-globs">Match patterns and globs</a>.
<li>New "clipboardRead" and "clipboardWrite"
<a href="manifest.html#permissions">permissions</a>
<a href="declare_permissions.html">permissions</a>
specify capabilities for <code>document.execCommand()</code>.
</ul>
......@@ -482,7 +480,7 @@ made in recent releases.
$ref:tabs.captureVisibleTab
on just any tab.
Instead, you now must have
<a href="manifest.html#permissions">host permission</a>
<a href="declare_permissions.html">host permission</a>
for the URL displayed by that tab.
To get the previous behavior,
specify <code>&lt;all_urls></code> for the host permission.
......@@ -508,7 +506,7 @@ made in recent releases.
<h4> Manifest changes </h4>
<ul>
<li>The new <a href="manifest.html#bg">background</a> permission
<li>The new <a href="declare_permissions.html#bg">background</a> permission
extends the life of Chrome,
allowing your extension or app
to run even when Chrome has no windows open.
......
......@@ -35,7 +35,7 @@ unless the extension has requested the appropriate cross-origin permissions.
<h2 id="requesting-permission">Requesting cross-origin permissions</h2>
<p>By adding hosts or host match patterns (or both) to the
<a href="manifest.html#permissions">permissions</a> section of the
<a href="declare_permissions.html">permissions</a> section of the
<a href="manifest.html">manifest</a> file, the extension can request access to
remote servers outside of its origin.</p>
......
......@@ -171,7 +171,7 @@ $ref:browserAction.setPopup method.
Browser action icons should seem a little bigger
and heavier than page action icons.
<li><b>Don't</b> attempt to mimic
Google Chrome's monochrome "wrench" icon.
Google Chrome's monochrome menu icon.
That doesn't work well with themes, and anyway,
extensions should stand out a little.
<li><b>Do</b> use alpha transparency
......
......@@ -154,5 +154,5 @@ chrome.browsingData.remove({
<h2 id="samples">Examples</h2>
<p>
Samples for the <code>browsingData</code> API are available
<a href="http://code.google.com/chrome/extensions/trunk/samples.html#chrome.browsingData">on the samples page</a>.
<a href="samples.html#browsingData">on the samples page</a>.
</p>
......@@ -2,7 +2,7 @@
<p>To use the cookies API,
you must declare the "cookies" permission in your manifest,
along with <a href="manifest.html#permissions">host permissions</a>
along with <a href="declare_permissions.html">host permissions</a>
for any hosts whose cookies
you want to access.
For example:</p>
......@@ -27,4 +27,4 @@ directory.
For other examples
and for help in viewing the source code,
see <a href="samples.html">Samples</a>.
</p>
\ No newline at end of file
</p>
......@@ -14,7 +14,7 @@ efficiency.
<p>
You must declare the "declarativeWebRequest" permission in the
<a href="manifest.html">extension manifest</a> to use this API,
along with <a href="manifest.html#permissions">host permissions</a> for any
along with <a href="declare_permissions.html">host permissions</a> for any
hosts whose network requests you want to access.
</p>
......
......@@ -5,7 +5,7 @@ manipulate, and search for downloads.</p>
<p> You must declare the 'downloads' permission in the <a
href='manifest.html'>extension manifest</a> to use this API, along with <a
href='manifest.html#permissions'>host permissions</a> for any hosts that you
href='declare_permissions.html'>host permissions</a> for any hosts that you
may pass to $ref:downloads.download.</p>
<pre>{
......@@ -30,4 +30,4 @@ hostname.</p>
<p>You can find simple examples of using the downloads module in the <a
href='http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/downloads/'>examples/api/downloads</a>
directory. For other examples and for help in viewing the source code, see <a
href='samples.html'>Samples</a>.</p>
\ No newline at end of file
href='samples.html'>Samples</a>.</p>
......@@ -18,7 +18,7 @@ system and that it can only be loaded in the main frame.
<p>You must declare the "pageCapture" permission
in the <a href="manifest.html">extension manifest</a>
to use the history API.
to use the pageCapture API.
For example:</p>
<pre>{
"name": "My extension",
......@@ -27,4 +27,4 @@ For example:</p>
"pageCapture"
]</b>,
...
}</pre>
\ No newline at end of file
}</pre>
......@@ -58,7 +58,7 @@
<p>
Declare optional permissions in your <a href="manifest.html">extension
manifest</a> with the <code>optional_permissions</code> key, using the
same format as the <a href="manifest.html#permissions">permissions</a>
same format as the <a href="declare_permissions.html">permissions</a>
field:
<pre>{
......@@ -170,4 +170,4 @@ chrome.permissions.remove({
// required permissions).
}
});
</pre>
\ No newline at end of file
</pre>
......@@ -102,108 +102,3 @@
<a href="samples.html#privacy">Privacy API samples</a>.
</p>
<p id="classSummary">
Use the <code>chrome.privacy</code> module to control usage of the features in
Chrome that can affect a user's privacy. This module relies on the
<a href="types.html#ChromeSetting">ChromeSetting prototype of the type API</a>
for getting and setting Chrome's configuration.
</p>
<p class="note">
The <a href="http://www.google.com/intl/en/landing/chrome/google-chrome-privacy-whitepaper.pdf">Chrome Privacy Whitepaper</a>
gives background detail regarding the features which this API can control.
</p>
<h2 id="manifest">Manifest</h2>
<p>
You must declare the "privacy" permission in your extension's
<a href="manifest.html">manifest</a> to use the API. For example:
</p>
<pre>{
"name": "My extension",
...
<b>"permissions": [
"privacy"
]</b>,
...
}</pre>
<h2 id="usage">Usage</h2>
<p>
Reading the current value of a Chrome setting is straightforward. You'll first
need to find the property you're interested in, then you'll call
<code>get()</code> on that object in order to retrieve its current value and
your extension's level of control. For example, to determine if Chrome's
Autofill feature is enabled, you'd write:
</p>
<pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.value)
console.log('Autofill is on!');
else
console.log('Autofill is off!');
});</pre>
<p>
Changing the value of a setting is a little bit more complex, simply because
you first must verify that your extension can control the setting. The user
won't see any change to her settings if you extension toggles a setting that
is either locked to a specific value by enterprise policies
(<code>levelOfControl</code> will be set to "not_controllable"), or if another
extension is controlling the value (<code>levelOfControl</code> will be set to
"controlled_by_other_extensions"). The <code>set()</code> call will succeed,
but the setting will be immediately overridden. As this might be confusing, it
is advisable to warn the user when the settings they've chosen aren't
practically applied.
</p>
<p class="note">
Full details about extensions' ability to control <code>ChromeSetting</code>s
can be found under
<a href="types.html#ChromeSetting">
<code>chrome.types.ChromeSetting</code></a>.
</p>
<p>
This means that you ought to use the <code>get()</code> method to determine
your level of access, and then only call <code>set()</code> if your extension
can grab control over the setting (in fact if your extension can't control the
setting it's probably a good idea to visibly disable the functionality to
reduce user confusion):
</p>
<pre>chrome.privacy.services.autofillEnabled.get({}, function(details) {
if (details.levelOfControl === 'controllable_by_this_extension') {
chrome.privacy.services.autofillEnabled.set({ value: true }, function() {
if (chrome.runtime.lastError === undefined)
console.log("Hooray, it worked!");
else
console.log("Sadness!", chrome.runtime.lastError);
}
}
});</pre>
<p>
If you're interested in changes to a setting's value, add a listener to its
<code>onChange</code> event. Among other uses, this will allow you to warn the
user if a more recently installed extension grabs control of a setting, or if
enterprise policy overrides your control. To listen for changes to Autofill's
status, for example, the following code would suffice:
</p>
<pre>chrome.privacy.services.autofillEnabled.onChange.addListener(
function (details) {
// The new value is stored in `details.value`, the new level of control
// in `details.levelOfControl`, and `details.incognitoSpecific` will be
// `true` if the value is specific to Incognito mode.
});</pre>
<h2 id="examples">Examples</h2>
<p>
For example code, see the
<a href="samples.html#privacy">Privacy API samples</a>.
</p>
......@@ -6,7 +6,7 @@ or modify requests in-flight and to observe and analyze traffic.
<h2 id="manifest">Manifest</h2>
<p>You must declare the "webRequest" permission in the <a
href="manifest.html">extension manifest</a> to use the web request
API, along with <a href="manifest.html#permissions">host permissions</a>
API, along with <a href="declare_permissions.html">host permissions</a>
for any hosts whose network requests you want to access. If you want to
use the web request API in a blocking fashion, you need to request
the "webRequestBlocking" permission in addition.
......@@ -119,7 +119,7 @@ complete nor stable.
<p>
The webRequest API only exposes requests that the extension has
permission to see, given its
<a href="manifest.html#permissions">host permissions</a>.
<a href="declare_permissions.html">host permissions</a>.
Moreover, only the following schemes are accessible:
<code>http://</code>,
<code>https://</code>,
......
......@@ -3,8 +3,8 @@
available for Chrome users on the
<span>
<strong>dev</strong>
<a href="http://www.chromium.org/getting-involved/beta-channel">early
<a href="http://www.chromium.org/getting-involved/dev-channel">early
release channel</a> and <strong>beta</strong>
<a href="https://www.google.com/landing/chrome/beta/"> release channel.
<a href="https://www.google.com/landing/chrome/beta/"> release channel</a>.
</span>
</p>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment