Index: chrome/common/extensions/docs/server2/templates/private/webNavigation_intro.html |
diff --git a/chrome/common/extensions/docs/server2/templates/private/webNavigation_intro.html b/chrome/common/extensions/docs/server2/templates/private/webNavigation_intro.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..063693f2e155601ec35b318e519ca4563a37ec42 |
--- /dev/null |
+++ b/chrome/common/extensions/docs/server2/templates/private/webNavigation_intro.html |
@@ -0,0 +1,121 @@ |
+<!-- BEGIN AUTHORED CONTENT --> |
+<p id="classSummary"> |
+Use the <code>chrome.webNavigation</code> module to receive |
+notifications about the status of navigations requests in-flight. |
+</p> |
+<h2>Manifest</h2> |
+<p> |
+All <code>chrome.webNavigation</code> methods and events require you to declare |
+the "webNavigation" permission in the <a href="manifest.html">extension |
+manifest</a>. |
+For example: |
+</p> |
+<pre>{ |
+ "name": "My extension", |
+ ... |
+ <b>"permissions": [ |
+ "webNavigation" |
+ ]</b>, |
+ ... |
+}</pre> |
+<h2>Examples</h2> |
+<p> |
+You can find simple examples of using the tabs module in the |
+<a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/api/webNavigation/">examples/api/webNavigation</a> |
+directory. |
+For other examples and for help in viewing the source code, see |
+<a href="samples.html">Samples</a>. |
+</p> |
+<h2>Event order</h2> |
+<p> |
+For a navigation that is successfully completed, events are fired in the |
+following order: |
+<pre> |
+onBeforeNavigate -> onCommitted -> onDOMContentLoaded -> onCompleted |
+</pre> |
+</p> |
+<p> |
+Any error that occurs during the process results in an |
+<code>onErrorOccurred</code> event. For a specific navigation, there are no |
+further events fired after <code>onErrorOccurred</code>. |
+</p> |
+<p> |
+If a navigating frame contains subframes, its <code>onCommitted</code> is fired |
+before any of its children's <code>onBeforeNavigate</code>; while |
+<code>onCompleted</code> is fired after all of its children's |
+<code>onCompleted</code>. |
+</p> |
+<p> |
+If the reference fragment of a frame is changed, a |
+<code>onReferenceFragmentUpdated</code> event is fired. This event can fire any |
+time after <code>onDOMContentLoaded</code>, even after |
+<code>onCompleted</code>. |
+</p> |
+<h2>Relation to webRequest events</h2> |
+<p> |
+There is no defined ordering between events of the <a |
+href="webRequest.html">webRequest API</a> and the events of the |
+webNavigation API. It is possible that webRequest events are still received for |
+frames that already started a new navigation, or that a navigation only |
+proceeds after the network resources are already fully loaded. |
+</p> |
+<p> |
+In general, the webNavigation events are closely related to the navigation |
+state that is displayed in the UI, while the webRequest events correspond to |
+the state of the network stack which is generally opaque to the user. |
+</p> |
+<h2>A note about timestamps</h2> |
+<p> |
+It's important to note that some technical oddities in the OS's handling |
+of distinct Chrome processes can cause the clock to be skewed between the |
+browser itself and extension processes. That means that WebNavigation's events' |
+<code>timeStamp</code> property is only guaranteed to be <i>internally</i> |
+consistent. Comparing one event to another event will give you the correct |
+offset between them, but comparing them to the current time inside the |
+extension (via <code>(new Date()).getTime()</code>, for instance) might give |
+unexpected results. |
+</p> |
+<h2>Transition types and qualifiers</h2> |
+<p> |
+The webNavigation API's <code>onCommitted</code> event has a |
+<code>transitionType</code> and a <code>transitionQualifiers</code> property. |
+The <em>transition type</em> is the same as used in the <a |
+href="history.html#transition_types">history API</a> describing how the browser |
+navigated to this particular URL. In addition, several <em>transition |
+qualifiers</em> can be returned that further define the navigation. |
+</p> |
+<p> |
+The following transition qualifiers exist: |
+</p> |
+<table> |
+<tr> |
+ <th> Transition qualifier </th> <th> Description </th> |
+</tr> |
+<tr> |
+ <td>"client_redirect"</td> |
+ <td> |
+ One or more redirects caused by JavaScript or meta refresh tags on the page |
+ happened during the navigation. |
+ </td> |
+</tr> |
+<tr> |
+ <td>"server_redirect"</td> |
+ <td> |
+ One or more redirects caused by HTTP headers sent from the server happened |
+ during the navigation. |
+ </td> |
+</tr> |
+<tr> |
+ <td>"forward_back"</td> |
+ <td> |
+ The user used the Forward or Back button to initiate the navigation. |
+ </td> |
+</tr> |
+<tr> |
+ <td>"from_address_bar"</td> |
+ <td> |
+ The user initiated the navigation from the address bar (aka Omnibox). |
+ </td> |
+</tr> |
+</table> |
+<!-- END AUTHORED CONTENT --> |