summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xchrome/common/extensions/docs/api_index.html2
-rwxr-xr-xchrome/common/extensions/docs/api_other.html26
-rwxr-xr-xchrome/common/extensions/docs/background_pages.html1
-rwxr-xr-xchrome/common/extensions/docs/bookmarks.html43
-rwxr-xr-xchrome/common/extensions/docs/content_scripts.html19
-rwxr-xr-xchrome/common/extensions/docs/devguide.html40
-rwxr-xr-xchrome/common/extensions/docs/devtools.html1
-rwxr-xr-xchrome/common/extensions/docs/events.html1
-rwxr-xr-xchrome/common/extensions/docs/extension.html1
-rwxr-xr-xchrome/common/extensions/docs/getstarted.html24
-rwxr-xr-xchrome/common/extensions/docs/index.html1
-rwxr-xr-xchrome/common/extensions/docs/manifest.html10
-rwxr-xr-xchrome/common/extensions/docs/match_patterns.html1
-rwxr-xr-xchrome/common/extensions/docs/npapi.html1
-rwxr-xr-xchrome/common/extensions/docs/overview.html19
-rwxr-xr-xchrome/common/extensions/docs/packaging.html3
-rwxr-xr-xchrome/common/extensions/docs/pageActions.html1
-rwxr-xr-xchrome/common/extensions/docs/tabs.html10
-rwxr-xr-xchrome/common/extensions/docs/test.html1
-rwxr-xr-xchrome/common/extensions/docs/themes.html1
-rwxr-xr-xchrome/common/extensions/docs/toolstrip.html1
-rwxr-xr-xchrome/common/extensions/docs/tut_debugging.html5
-rwxr-xr-xchrome/common/extensions/docs/tutorials.html1
-rwxr-xr-xchrome/common/extensions/docs/windows.html26
-rwxr-xr-xchrome/common/extensions/docs/xhr.html75
25 files changed, 186 insertions, 128 deletions
diff --git a/chrome/common/extensions/docs/api_index.html b/chrome/common/extensions/docs/api_index.html
index 1c45019..ad4bfda 100755
--- a/chrome/common/extensions/docs/api_index.html
+++ b/chrome/common/extensions/docs/api_index.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -160,7 +161,6 @@ Here are the supported chrome.* APIs:
<li jstcache="0"><a href="bookmarks.html" jstcache="0">bookmarks</a></li>
<li jstcache="0"><a href="extension.html" jstcache="0">extension</a></li>
<li jstcache="0"><a href="pageActions.html" jstcache="0">pageActions</a></li>
- <li jstcache="0">self</li>
<li jstcache="0"><a href="tabs.html" jstcache="0">tabs</a></li>
<li jstcache="0"><a href="toolstrip.html" jstcache="0">toolstrip</a></li>
<li jstcache="0"><a href="windows.html" jstcache="0">windows</a></li>
diff --git a/chrome/common/extensions/docs/api_other.html b/chrome/common/extensions/docs/api_other.html
index 1790a0e..b01a31c 100755
--- a/chrome/common/extensions/docs/api_other.html
+++ b/chrome/common/extensions/docs/api_other.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -163,15 +164,19 @@ you can bundle additional API libraries into your extension.
<dl jstcache="0">
<dt jstcache="0"><strong jstcache="0"> Standard JavaScript APIs </strong></dt>
-<dd jstcache="0"> <span class="comment" jstcache="0">[PENDING: define, explain; link to complete list]</span>
+<dd jstcache="0"> These are the same core JavaScript and DOM APIs
+ that you can use in ordinary web apps.
+ <span class="comment" jstcache="0">[PENDING: check! should link to complete list]</span>
<!-- Use onclick in your toolbar div to add click behavior.
E.g. window.open(someUrl). --></dd>
<dt jstcache="0"><strong jstcache="0"> XMLHttpRequest </strong></dt>
<dd jstcache="0">
- Lets the extension request data from one or more servers.
- The manifest specifies
- which domains the extension can send requests to.
- <span class="comment" jstcache="0">[PENDING: link to doc]</span></dd>
+ Use <a href="xhr.html" jstcache="0">XMLHttpRequest</a>
+ to request data from one or more servers.
+ The <a href="manifest.html#permissions" jstcache="0">permissions</a> field
+ of the manifest specifies
+ which hosts the extension can send requests to.
+ </dd>
<dt jstcache="0"><strong jstcache="0"> WebKit APIs </strong></dt>
<dd jstcache="0">
Because Google Chrome is built upon WebKit,
@@ -190,10 +195,13 @@ E.g. window.open(someUrl). --></dd>
<p class="comment" jstcache="0">[PENDING: link to complete list of webkit apis]</p>
</dd>
<dt jstcache="0"><strong jstcache="0"> V8 APIs</strong>, such as<strong jstcache="0"> JSON </strong></dt>
-<dd jstcache="0"> JSON is in V8, so you don't need to include a JSON library to use JSON functions. <span class="comment" jstcache="0">[PENDING: what other APIs are in v8? link to complete list]</span></dd>
-<dt jstcache="0"> <strong jstcache="0">HTML5</strong> <strong jstcache="0">APIs</strong>, such as <strong jstcache="0">localStorage</strong> and <strong jstcache="0">Web Workers</strong></dt>
-<dd jstcache="0"> HTML5 is still being defined and implemented, but one crucial feature it will provide is local storage... <!--
-localStorage.setItem(&quot;foo&quot;, &quot;bar&quot;); ... localStorage.getItem(&quot;foo&quot;); --> <span class="comment" jstcache="0">[PENDING: mention Web Workers, too. Other important API? link to complete list]</span></dd>
+<dd jstcache="0"> Because JSON is in V8, you don't need to include a JSON library to use JSON functions. <span class="comment" jstcache="0">[PENDING: what other APIs are in v8? link to complete list]</span></dd>
+<dt jstcache="0"> <strong jstcache="0">HTML5</strong> <strong jstcache="0">APIs</strong>, such as <strong jstcache="0">localStorage</strong></dt>
+<dd jstcache="0"> HTML5 is still being defined and implemented,
+ but Google Chrome already supports local storage,
+ which extensions can use to store data.
+<!--
+localStorage.setItem(&quot;foo&quot;, &quot;bar&quot;); ... localStorage.getItem(&quot;foo&quot;); --> <span class="comment" jstcache="0">[PENDING: Other important API? link to complete list]</span></dd>
<dt jstcache="0"><strong jstcache="0">APIs in bundled libraries</strong></dt>
<dd jstcache="0"> If you want to use a library that the browser doesn't provide
(for example, jQuery),
diff --git a/chrome/common/extensions/docs/background_pages.html b/chrome/common/extensions/docs/background_pages.html
index 60cd730..a41e7ef 100755
--- a/chrome/common/extensions/docs/background_pages.html
+++ b/chrome/common/extensions/docs/background_pages.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/bookmarks.html b/chrome/common/extensions/docs/bookmarks.html
index f5b3c6e..9ed7aa3 100755
--- a/chrome/common/extensions/docs/bookmarks.html
+++ b/chrome/common/extensions/docs/bookmarks.html
@@ -64,6 +64,7 @@
<li jstcache="0" class="leftNavSelected">Bookmarks</li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -96,6 +97,13 @@
<p jstcache="0">Contents</p>
<ol jstcache="0">
<li jsselect="getStaticTOC()" jstcache="9" jsinstance="0">
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#manifest">Manifest</a>
+ <ol jstcache="0">
+ <li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
+ </li>
+ </ol>
+ </li><li jsselect="getStaticTOC()" jstcache="9" jsinstance="*1">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#description">Description</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="0">
@@ -104,13 +112,6 @@
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#overview-examples">Examples</a>
</li>
</ol>
- </li><li jsselect="getStaticTOC()" jstcache="9" jsinstance="*1">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#permissions">Permissions</a>
- <ol jstcache="0">
- <li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
- </li>
- </ol>
</li>
<div jsselect="apiDefinition" jstcache="3">
<li jstcache="0">
@@ -188,6 +189,18 @@ Use the <code jstcache="0">chrome.bookmarks</code> module to create, organize,
and otherwise manipulate bookmarks.
</p>
+<h2 id="manifest" jstcache="0">Manifest</h2>
+<p jstcache="0">You must declare the "bookmarks" permission
+in your extension's manifest to use the bookmarks API.
+For example:</p>
+<pre jstcache="0">{
+ "name": "My extension that uses bookmarks",
+ "version": "0.1",
+<b jstcache="0"> "permissions": [
+ "bookmarks"
+ ]</b>
+}</pre>
+
<h2 id="description" jstcache="0">Description</h2>
<p jstcache="0">
@@ -199,7 +212,7 @@ either a URL or a group of bookmarks, as you can see in the following figure.
<img alt="2 kinds of bookmark objects" width="415" height="123" src="images/bookmarks.png" jstcache="0">
<br jstcache="0">
-<span class="comment" jstcache="0">
+<span class="tbd" jstcache="0">
[PENDING: this figure needs to be updated]
</span>
@@ -291,21 +304,9 @@ Here's how those bookmarks might be represented with bookmark objects:</p>
<p jstcache="0">
Here's some code you could use to create that hierarchy:</p>
-<pre class="example comment" jstcache="0">[PENDING: ...code goes here...]
+<pre class="example tbd" jstcache="0">[PENDING: ...code goes here...]
</pre>
-<h2 id="permissions" jstcache="0">Permissions</h2>
-<p jstcache="0">You must declare the <var jstcache="0">bookmarks</var> permission
-in your extension's manifest to use the bookmarks API.</p>
-<p jstcache="0">Example:</p>
-<pre jstcache="0">{
- "name": "My extension that uses bookmarks",
- "version": "0.1",
-<b jstcache="0"> "permissions": [
- "bookmarks"
- ]</b>
-}</pre>
-
<!-- PENDING: we could have links to source code and sample extensions. E.g.:
<div class="exampleLink">
diff --git a/chrome/common/extensions/docs/content_scripts.html b/chrome/common/extensions/docs/content_scripts.html
index 63ad9df..270190c 100755
--- a/chrome/common/extensions/docs/content_scripts.html
+++ b/chrome/common/extensions/docs/content_scripts.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -103,7 +104,7 @@
</li>
</ol>
</li><li jsselect="getStaticTOC()" jstcache="9" jsinstance="1">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#execution_environment">Execution environment</a>
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#extecution-environment">Execution environment</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
@@ -117,14 +118,14 @@
</li>
</ol>
</li><li jsselect="getStaticTOC()" jstcache="9" jsinstance="3">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#hostPageCommuncation">Communication with the embedding page</a>
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#host-page-communication">Communication with the embedding page</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
</li>
</ol>
</li><li jsselect="getStaticTOC()" jstcache="9" jsinstance="*4">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#extensionFiles">Referring to extension files</a>
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#extension-files">Referring to extension files</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
@@ -240,7 +241,7 @@
</tbody></table>
-<h2 id="execution_environment" jstcache="0">Execution environment</h2>
+<h2 id="extecution-environment" jstcache="0">Execution environment</h2>
<p jstcache="0">Content scripts execute in a special environment called an <em jstcache="0">isolated world</em>. They have access to the DOM of the page they are injected into, but not to any JavaScript variables or functions created by the page. It looks to each content script as if there is no other JavaScript executing on the page it is running on. The same is true in reverse: JavaScript running on the page cannot call any functions or access any variables defined by content scripts.
@@ -272,15 +273,15 @@ document.getElementById("button").onclick = function() {
<p jstcache="0">Now, if the button is pressed, you will see both greetings.
-</p><p jstcache="0">Isolated worlds allow each content script to make changes to its JavaScript environment without worrying about conflicting with the page or with other contnet scripts. For example, a content script could include JQuery v1 and the page could include JQuery v2, and they wouldn't conflict with each other.
+</p><p jstcache="0">Isolated worlds allow each content script to make changes to its JavaScript environment without worrying about conflicting with the page or with other content scripts. For example, a content script could include JQuery v1 and the page could include JQuery v2, and they wouldn't conflict with each other.
</p><p jstcache="0">Another important benefit of isolated worlds is that they completely separate the JavaScript on the page from the JavaScript in extensions. This allows us to offer extra functionality to content scripts that should not be accessible from web pages without worrying about web pages accessing it.
</p><h2 id="messaging" jstcache="0">Messaging</h2>
-<p jstcache="0">Content scripts can communicate with their parent extension using message passing. A message channel can be opened by either the content script or an extension page. Each side of the channel has a <a href="extension.html#port" jstcache="0">Port</a> object which can be used to send messages to the other side. The messages can contain any valid JSON object (null, boolean, number, string, array, or object).
+<p jstcache="0">Content scripts can communicate with their parent extension using message passing. A message channel can be opened by either the content script or an extension page. Each side of the channel has a <a href="extension.html#type-Port" jstcache="0">Port</a> object which can be used to send messages to the other side. The messages can contain any valid JSON object (null, boolean, number, string, array, or object).
-</p><p jstcache="0">The content script opens a channel to the extension using the <a href="extension.html#connect" jstcache="0">chrome.extension.connect()</a> method. The parent extension can also open a channel to a content script in a given tab by calling <a href="tabs.html#connect" jstcache="0">chrome.tabs.connect(tabId)</a>. In either case, the <a href="extension.html#onConnect" jstcache="0">onConnect</a> event is fired in the targeted page(s), and a connection is established.
+</p><p jstcache="0">The content script opens a channel to the extension using the <a href="extension.html#method-connect" jstcache="0">chrome.extension.connect()</a> method. The parent extension can also open a channel to a content script in a given tab by calling <a href="tabs.html#method-connect" jstcache="0">chrome.tabs.connect(tabId)</a>. In either case, the <a href="extension.html#event-onConnect" jstcache="0">onConnect</a> event is fired in the targeted page(s), and a connection is established.
</p><p jstcache="0">When a channel is opened from a content script to an extension, the event is
fired in all views in the extension. Any view can receive the event.
@@ -337,7 +338,7 @@ function onClick() {
&lt;/script&gt;
</pre>
-<h2 id="hostPageCommuncation" jstcache="0">Communication with the embedding page</h2>
+<h2 id="host-page-communication" jstcache="0">Communication with the embedding page</h2>
<p jstcache="0">Although the execution environments of content scripts and the pages that host them are isolated from each other, they share access to the page's DOM. If the page wishes to communicate with the content script (or with the extension via the content script), it must do so through the shared DOM.</p>
@@ -365,7 +366,7 @@ document.getElementById('myCustomEventDiv').addEventListener('myCustomEvent', fu
<p jstcache="0">In the above example, example.html (which is not a part of the extension) creates a custom event and then can decide to fire the event by setting the event data to a known location in the DOM and then dispatching the custom event. The content script listens for the name of the custom event on the known element and handles the event by inspecting the data of the element, and turning around to post the message to the extension process. In this way the page establishes a line of communication to the extension. The reverse is possible through similar means.</p>
-<h2 id="extensionFiles" jstcache="0">Referring to extension files</h2>
+<h2 id="extension-files" jstcache="0">Referring to extension files</h2>
<p jstcache="0">
Get the URL of an extension's file using
diff --git a/chrome/common/extensions/docs/devguide.html b/chrome/common/extensions/docs/devguide.html
index 025b438..e8829d9 100755
--- a/chrome/common/extensions/docs/devguide.html
+++ b/chrome/common/extensions/docs/devguide.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -149,13 +150,42 @@
<!-- STATIC CONTENT PLACEHOLDER -->
<div id="static" jstcache="0"><div id="pageData-title" class="pageData" jstcache="0">Developer's Guide</div>
-<p class="comment" jstcache="0">
-[PENDING: This page needs to be written.
-At the very least,
-it should link to each important page
-that's in the Developer's Guide.]
+<p jstcache="0">
+We're still building this guide,
+but here's what we have, so far:
</p>
+<ul jstcache="0">
+ <li jstcache="0"> Changing the Google Chrome chrome
+ <ul jstcache="0">
+ <li jstcache="0"><a href="pageActions.html" jstcache="0">Page Actions</a></li>
+ <li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
+ <li jstcache="0"><a href="toolstrip.html" jstcache="0">Toolstrips</a></li>
+ </ul>
+ </li>
+ <li jstcache="0"> Interacting with Google Chrome in other ways
+ <ul jstcache="0">
+ <li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
+ <li jstcache="0"><a href="events.html" jstcache="0">Events</a></li>
+ <li jstcache="0"><a href="tabs.html" jstcache="0">Tabs</a></li>
+ <li jstcache="0"><a href="windows.html" jstcache="0">Windows</a></li>
+ </ul>
+ </li>
+ <li jstcache="0"> Implementing the innards of your extension
+ <ul jstcache="0">
+ <li jstcache="0"><a href="background_pages.html" jstcache="0">Background Pages</a></li>
+ <li jstcache="0"><a href="content_scripts.html" jstcache="0">Content Scripts</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XmlHttpRequest</a></li>
+ <li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ </ul>
+ </li>
+ <li jstcache="0"> Finishing and distributing your extension
+ <ul jstcache="0">
+ <li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
+ <li jstcache="0">Autoupdate</li>
+ </ul>
+ </li>
+</ul>
</div>
diff --git a/chrome/common/extensions/docs/devtools.html b/chrome/common/extensions/docs/devtools.html
index 82fd011..ec24ccb 100755
--- a/chrome/common/extensions/docs/devtools.html
+++ b/chrome/common/extensions/docs/devtools.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/events.html b/chrome/common/extensions/docs/events.html
index 3036be6..05985f1 100755
--- a/chrome/common/extensions/docs/events.html
+++ b/chrome/common/extensions/docs/events.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/extension.html b/chrome/common/extensions/docs/extension.html
index 4fc003a..24f0b1b 100755
--- a/chrome/common/extensions/docs/extension.html
+++ b/chrome/common/extensions/docs/extension.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/getstarted.html b/chrome/common/extensions/docs/getstarted.html
index f2d5bc1..0193b27 100755
--- a/chrome/common/extensions/docs/getstarted.html
+++ b/chrome/common/extensions/docs/getstarted.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -179,23 +180,13 @@ To complete this tutorial, you must have Windows.
<h2 id="browser" jstcache="0">Get your browser ready</h2>
-<p jstcache="0">
-To develop extensions for Google Chrome, you need to set up your browser:
-</p>
+<p jstcache="0">To develop extensions for Google Chrome,
+you'll need to <a href="http://dev.chromium.org/getting-involved/dev-channel" jstcache="0">subscribe
+to the dev channel</a> of Google Chrome for Windows.
-<ol jstcache="0">
- <li jstcache="0"><a href="http://dev.chromium.org/getting-involved/dev-channel" jstcache="0">Subscribe
- to the Dev channel</a> of Google Chrome for Windows. </li>
- <li jstcache="0"><a href="http://dev.chromium.org/developers/creating-and-using-profiles" jstcache="0">Create
- a separate profile</a> for testing
- <em jstcache="0">(optional but highly recommended)</em>.
- Having a testing profile means that you can use Google Chrome
- (with your default profile)
- for everyday browsing,
- even if your extension has horrible bugs.</li>
-</ol>
+</p><p jstcache="0"><b jstcache="0">Note:</b> This tutorial requires Windows. You can try it on Linux and OS X, and it may work, but in general the extensions support is quite a bit less stable on those platforms. We're working hard to bring them up to speed.
-<h2 id="load" jstcache="0">Create and load an extension</h2>
+</p><h2 id="load" jstcache="0">Create and load an extension</h2>
<p jstcache="0">
In this section, you'll write a <em jstcache="0">toolstrip</em> —
an extension
@@ -234,8 +225,7 @@ at the bottom of the Google Chrome window.
<li jstcache="0"> Load the extension.
<ol type="a" jstcache="0">
<li jstcache="0">
- Bring up the Extensions page
- by going to this URL:
+ Bring up the Extensions management page by going to this URL:
<blockquote jstcache="0">
<b jstcache="0">chrome://extensions</b>
</blockquote>
diff --git a/chrome/common/extensions/docs/index.html b/chrome/common/extensions/docs/index.html
index 736619b..9fa7ed4 100755
--- a/chrome/common/extensions/docs/index.html
+++ b/chrome/common/extensions/docs/index.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/manifest.html b/chrome/common/extensions/docs/manifest.html
index d688a37..b4791ba 100755
--- a/chrome/common/extensions/docs/manifest.html
+++ b/chrome/common/extensions/docs/manifest.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -289,11 +290,10 @@ Here's an example of the permissions part of a manifest file:
<p jstcache="0">
For more information, see
-<a href="match_patterns.html" jstcache="0">Match Patterns</a>.
-Note, however, that the match pattern in the <b jstcache="0">permissions</b> field
-specifies only the hosts —
-not the paths —
-to which the extension can make XMLHttpRequests.
+<a href="xhr.html" jstcache="0">Cross-Origin XMLHttpRequest</a>,
+<a href="windows.html" jstcache="0">Windows</a>,
+<a href="tabs.html" jstcache="0">Tabs</a>, and
+<a href="bookmarks.html" jstcache="0">Bookmarks</a>.
</p>
</div>
diff --git a/chrome/common/extensions/docs/match_patterns.html b/chrome/common/extensions/docs/match_patterns.html
index ebb6895..f0a8b6b 100755
--- a/chrome/common/extensions/docs/match_patterns.html
+++ b/chrome/common/extensions/docs/match_patterns.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/npapi.html b/chrome/common/extensions/docs/npapi.html
index 3a448cbc..ab9d235 100755
--- a/chrome/common/extensions/docs/npapi.html
+++ b/chrome/common/extensions/docs/npapi.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0" class="leftNavSelected">NPAPI Plugins</li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/overview.html b/chrome/common/extensions/docs/overview.html
index d9924ae..4ea2eac 100755
--- a/chrome/common/extensions/docs/overview.html
+++ b/chrome/common/extensions/docs/overview.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -291,7 +292,7 @@ the ID <b jstcache="0">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</b>
and the files shown in the following figure:
</p>
-<pre jstcache="0"><span class="comment" jstcache="0">[PENDING: convert this into a figure]</span>
+<pre jstcache="0"><span class="tbd" jstcache="0">[PENDING: someday this will be a real figure]</span>
toolstrip.html
styles.css
images:
@@ -345,7 +346,7 @@ no matter whether it's being used by
</tr>
</tbody></table>
-<p class="comment" jstcache="0">
+<p class="tbd" jstcache="0">
[PENDING: Mention/reflect/link to
<a href="http://dev.chromium.org/developers/design-documents/extensions/i18n" jstcache="0">internationalization</a>]
</p>
@@ -385,7 +386,7 @@ The first figure shows what an extension might look like
when there's a single browser window.
</p>
-<p class="comment" jstcache="0"> [PENDING: image goes here] </p>
+<p class="tbd" jstcache="0"> [PENDING: image goes here] </p>
<p jstcache="0">
The next figure shows that all the code in the extension's main HTML file
@@ -394,7 +395,7 @@ In other words, each window has its own widgets for the extension,
which means each window adds another web page for that extension.
</p>
-<p class="comment" jstcache="0"> [PENDING: image goes here] </p>
+<p class="tbd" jstcache="0"> [PENDING: image goes here] </p>
<p jstcache="0">
To more easily coordinate all these web pages and to avoid duplication,
@@ -405,9 +406,7 @@ is in a <em jstcache="0">background page</em>,
as shown in the following figure.
</p>
-<p class="comment" jstcache="0">
-[PENDING: image goes here.]
-</p>
+<p class="tbd" jstcache="0"> [PENDING: image goes here] </p>
<h3 id="background" jstcache="0">The background page</h3>
@@ -485,7 +484,7 @@ Two kinds of communication happen within an extension:
Communication <b jstcache="0">between content scripts and the extension</b>.
<br jstcache="0">
For example,
- <span class="comment" jstcache="0">[PENDING: typical use case goes here]</span>.
+ <span class="tbd" jstcache="0">[PENDING: typical use case goes here]</span>.
See <a href="content_scripts.html" jstcache="0">Content Scripts</a>
for information about this type of communication.
</li>
@@ -548,9 +547,9 @@ A good summary of communication mechanisms is at
<a name="H2-8" jstcache="0"></a><h2 jstcache="0"> Summary </h2>
-<p jstcache="0">
+<p class="tbd" jstcache="0">
[
-PENDING: wrap it up. suggest where to go next. Probably:
+PENDING: summarize, suggest where to go next. Probably:
<a href="getstarted.html" jstcache="0">Getting Started</a>,
<a href="tut_debugging.html" jstcache="0">Debugging</a>,
<a href="devguide.html" jstcache="0">Developer's Guide</a>.
diff --git a/chrome/common/extensions/docs/packaging.html b/chrome/common/extensions/docs/packaging.html
index 25df0dd..b418b41 100755
--- a/chrome/common/extensions/docs/packaging.html
+++ b/chrome/common/extensions/docs/packaging.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0" class="leftNavSelected">Packaging</li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -285,7 +286,7 @@ to specify the location of the extension's private key file.
For example:
</p>
-<pre jstcache="0">chrome.exe --pack-extension=<em jstcache="0">ext-folder-path</em> --pack-extension-key=<em jstcache="0">ext-key-path</em>
+<pre jstcache="0">chrome.exe --pack-extension=c:\myext --pack-extension-key=c:\myext.pem
</pre>
<p jstcache="0">
diff --git a/chrome/common/extensions/docs/pageActions.html b/chrome/common/extensions/docs/pageActions.html
index 8bf50fb..9f1bc62 100755
--- a/chrome/common/extensions/docs/pageActions.html
+++ b/chrome/common/extensions/docs/pageActions.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/tabs.html b/chrome/common/extensions/docs/tabs.html
index ee0d2bb..b0b3467 100755
--- a/chrome/common/extensions/docs/tabs.html
+++ b/chrome/common/extensions/docs/tabs.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -96,7 +97,7 @@
<p jstcache="0">Contents</p>
<ol jstcache="0">
<li jsselect="getStaticTOC()" jstcache="9" jsinstance="*0">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#permissions">Permissions</a>
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#manifest">Manifest</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
@@ -187,9 +188,10 @@ You can use this module to
create, modify, and rearrange tabs in the browser.
</p>
-<h2 id="permissions" jstcache="0">Permissions</h2>
-<p jstcache="0">You must declare the <var jstcache="0">tabs</var> permission in your extension's manifest to use the tabs API.</p>
-<p jstcache="0">Example:</p>
+<h2 id="manifest" jstcache="0">Manifest</h2>
+<p jstcache="0">You must declare the "tabs" permission in your extension's manifest to use the tabs API.
+For example:
+</p>
<pre jstcache="0">{
"name": "My extension that uses tabs",
"version": "0.1",
diff --git a/chrome/common/extensions/docs/test.html b/chrome/common/extensions/docs/test.html
index 31c659d..035096f 100755
--- a/chrome/common/extensions/docs/test.html
+++ b/chrome/common/extensions/docs/test.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/themes.html b/chrome/common/extensions/docs/themes.html
index 7b9c033..2c07abd 100755
--- a/chrome/common/extensions/docs/themes.html
+++ b/chrome/common/extensions/docs/themes.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0" class="leftNavSelected">Themes</li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/toolstrip.html b/chrome/common/extensions/docs/toolstrip.html
index 3dc8999..fd08372 100755
--- a/chrome/common/extensions/docs/toolstrip.html
+++ b/chrome/common/extensions/docs/toolstrip.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/tut_debugging.html b/chrome/common/extensions/docs/tut_debugging.html
index d67fdad..ce08ba6 100755
--- a/chrome/common/extensions/docs/tut_debugging.html
+++ b/chrome/common/extensions/docs/tut_debugging.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -149,7 +150,7 @@
<!-- STATIC CONTENT PLACEHOLDER -->
<div id="static" jstcache="0"><div id="pageData-title" class="pageData" jstcache="0">Tutorial: Debugging</div>
-<p jstcache="0">
+<p class="tbd" jstcache="0">
[PENDING: intro goes here.
This tutorial starts where
<a href="getstarted.html" jstcache="0">Getting Started</a> ends.
@@ -275,7 +276,7 @@ You now know how to debug an extension!</p>
<h2 id="summary" jstcache="0">What next?</h2>
-<p jstcache="0">
+<p class="tbd" jstcache="0">
[PENDING: Summarize what we did,
what it means,
and where to find more information.
diff --git a/chrome/common/extensions/docs/tutorials.html b/chrome/common/extensions/docs/tutorials.html
index 129a220..4c984bd 100755
--- a/chrome/common/extensions/docs/tutorials.html
+++ b/chrome/common/extensions/docs/tutorials.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
diff --git a/chrome/common/extensions/docs/windows.html b/chrome/common/extensions/docs/windows.html
index 9a452b3..03d4cec 100755
--- a/chrome/common/extensions/docs/windows.html
+++ b/chrome/common/extensions/docs/windows.html
@@ -14,7 +14,7 @@
etc...) can be generated with a build step.
--><!-- <html> must retain id="template --><html xmlns="http://www.w3.org/1999/xhtml" jstcache="0"><!-- <head> data is significant and loads the needed libraries and styles --><head jstcache="0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" jstcache="0">
- <title jscontent="getPageTitle()" jstcache="1">chrome.windows</title>
+ <title jscontent="getPageTitle()" jstcache="1">Windows</title>
<link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css" jstcache="0">
<script type="text/javascript" src="../../../third_party/jstemplate/jstemplate_compiled.js" jstcache="0">
</script>
@@ -41,7 +41,7 @@
<script type="text/javascript" src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en" jstcache="0"></script>
</div>
<div id="pageTitle" jstcache="0">
- <h1 jscontent="getPageTitle()" jstcache="1">chrome.windows</h1>
+ <h1 jscontent="getPageTitle()" jstcache="1">Windows</h1>
</div>
</div> <!-- /pageHeader -->
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0"><a href="xhr.html" jstcache="0">Cross-Origin XHR</a></li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -96,7 +97,7 @@
<p jstcache="0">Contents</p>
<ol jstcache="0">
<li jsselect="getStaticTOC()" jstcache="9" jsinstance="0">
- <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#permissions">Permissions</a>
+ <a jscontent="name" jsvalues=".href:'#' + href" jstcache="14" href="#manifest">Manifest</a>
<ol jstcache="0">
<li jsselect="$this.children" jstcache="22" jsinstance="*0" style="display: none; ">
<a jscontent="name" jsvalues=".href:'#' + href" jstcache="14">h3Name</a>
@@ -170,7 +171,9 @@
<!-- /TABLE OF CONTENTS -->
<!-- STATIC CONTENT PLACEHOLDER -->
- <div id="static" jstcache="0"><!-- BEGIN AUTHORED CONTENT -->
+ <div id="static" jstcache="0"><div id="pageData-title" class="pageData" jstcache="0">Windows</div>
+
+<!-- BEGIN AUTHORED CONTENT -->
<p id="classSummary" jstcache="0">
Use the <code jstcache="0">chrome.windows</code> module
to interact with browser windows.
@@ -178,12 +181,15 @@ You can use this module to
create, modify, and rearrange windows in the browser.
</p>
-<h2 id="permissions" jstcache="0">Permissions</h2>
-<p jstcache="0">You must declare the <var jstcache="0">tabs</var> permission
-(no, that isn't a typo -- the window and tabs modules interact so closely we
-decided to just share one permission between them)
-in your extension's manifest to use the windows API.</p>
-<p jstcache="0">Example:</p>
+<h2 id="manifest" jstcache="0">Manifest</h2>
+<p jstcache="0">
+You must declare the "tabs" permission
+in your extension's manifest to use the windows API.
+(No, that isn't a typo —
+the window and tabs modules interact so closely we
+decided to just share one permission between them.)
+For example:
+</p>
<pre jstcache="0">{
"name": "My extension that uses windows",
"version": "0.1",
diff --git a/chrome/common/extensions/docs/xhr.html b/chrome/common/extensions/docs/xhr.html
index 110397c..772b48e 100755
--- a/chrome/common/extensions/docs/xhr.html
+++ b/chrome/common/extensions/docs/xhr.html
@@ -64,6 +64,7 @@
<li jstcache="0"><a href="bookmarks.html" jstcache="0">Bookmarks</a></li>
<li jstcache="0"><a href="themes.html" jstcache="0">Themes</a></li>
<li jstcache="0"><a href="npapi.html" jstcache="0">NPAPI Plugins</a></li>
+ <li jstcache="0" class="leftNavSelected">Cross-Origin XHR</li>
<li jstcache="0"><a href="packaging.html" jstcache="0">Packaging</a></li>
<li jstcache="0">Autoupdate</li>
</ul>
@@ -151,20 +152,21 @@
<!-- BEGIN AUTHORED CONTENT -->
<p id="classSummary" jstcache="0">
-In regular web pages, the
+Regular web pages can use the
<a href="http://www.w3.org/TR/XMLHttpRequest/" jstcache="0">XMLHttpRequest</a>
-object can be used to send and receive data from remote servers, but is
-constrained by the
+object to send and receive data from remote servers,
+but they're limited by the
<a href="http://en.wikipedia.org/wiki/Same_origin_policy" jstcache="0">same origin policy</a>.
-Extensions are allowed to access remote servers outside of their origin,
-but they must first declare their intent to do so.</p>
-
-<h2 id="extension-origin" jstcache="0">Extension Origin</h2>
-<p jstcache="0">Each running extension exists within it's own seperate security origin. Without
-requesting additional priviliges, the extension can use
-the XMLHttpRequest to access resources within it's installation. For example, if
-the extension contains a JSON configuration file called <var jstcache="0">config.json</var>,
-in a <var jstcache="0">config_resources</var> folder, it could retrieve it's contents like
+Extensions aren't so limited.
+An extension can talk to remote servers outside of its origin,
+as long as it first requests cross-origin permissions.</p>
+
+<h2 id="extension-origin" jstcache="0">Extension origin</h2>
+<p jstcache="0">Each running extension exists within its own separate security origin. Without
+requesting additional privileges, the extension can use
+XMLHttpRequest to get resources within its installation. For example, if
+an extension contains a JSON configuration file called <code jstcache="0">config.json</code>,
+in a <code jstcache="0">config_resources</code> folder, the extension can retrieve the file's contents like
this:</p>
<pre jstcache="0">var xhr = new XMLHttpRequest();
@@ -173,44 +175,49 @@ xhr.open("GET", chrome.extension.getURL('/config_resources/config.json'), true);
xhr.send();
</pre>
-<p jstcache="0">If the extension attempted to access a security origin other than itself,
-say</p>
+<p jstcache="0">If the extension attempts to use a security origin other than itself,
+say http://www.google.com,
+the browser disallows it
+unless the extension has requested the appropriate cross-origin permissions.
+</p>
-<pre jstcache="0">xhr.open("GET", "http://www.google.com", true);
-</pre>
-
-<p jstcache="0">The browser would disallow it.</p>
-
-<h2 id="requesting-permission" jstcache="0">Requesting Cross-Origin Permissions</h2>
+<h2 id="requesting-permission" jstcache="0">Requesting cross-origin permissions</h2>
-<p jstcache="0">By adding hosts and/or host match patterns to the
+<p jstcache="0">By adding hosts or host match patterns (or both) to the
<a href="manifest.html#permissions" jstcache="0">permissions</a><a jstcache="0"> section of the
</a><a href="manifest.html" jstcache="0">manifest</a> file, the extension can request access to
-remote servers outside of it's origin.</p>
+remote servers outside of its origin.</p>
<pre jstcache="0">"permissions": [
"http://www.google.com/",
],
</pre>
-<p jstcache="0">Cross-origin permission values can be either fully qualified host names,
-like</p>
+<p jstcache="0">Cross-origin permission values can be fully qualified host names,
+like these:</p>
-<pre jstcache="0">"http://www.google.com/" or
-"http://www.gmail.com/"</pre>
+<ul jstcache="0">
+ <li jstcache="0"> "http://www.google.com/" </li>
+ <li jstcache="0"> "http://www.gmail.com/" </li>
+</ul>
-<p jstcache="0">or match patterns, like</p>
+<p jstcache="0">Or they can be match patterns, like these:</p>
-<pre jstcache="0">"http://*.google.com/" or
-"http://*/"</pre>
+<ul jstcache="0">
+ <li jstcache="0"> "http://*.google.com/" </li>
+ <li jstcache="0"> "http://*/" </li>
+</ul>
-<p jstcache="0">which would allow http access to all reachable domains. Note that here,
+<p jstcache="0">
+A match pattern of "http://*/" allows HTTP access to all reachable domains.
+Note that here,
match patterns are similar to <a href="match_patterns.html" jstcache="0">content script
-match patterns</a>, but any path information following the host is ignored.</p>
+match patterns</a>,
+but any path information following the host is ignored.</p>
-<p jstcache="0">Also, note that access is granted both by host and scheme. If an extension
-wants secure and non-secure http access to a given host or set
-of hosts, it must declare the permissions seperately:</p>
+<p jstcache="0">Also note that access is granted both by host and by scheme. If an extension
+wants both secure and non-secure HTTP access to a given host or set
+of hosts, it must declare the permissions separately:</p>
<pre jstcache="0">"permissions": [
"http://www.google.com/",