OLD | NEW |
| (Empty) |
1 <!-- BEGIN AUTHORED CONTENT --> | |
2 <p id="classSummary"> | |
3 Use the <code>chrome.webNavigation</code> module to receive | |
4 notifications about the status of navigations requests in-flight. | |
5 </p> | |
6 <h2>Manifest</h2> | |
7 <p> | |
8 All <code>chrome.webNavigation</code> methods and events require you to declare | |
9 the "webNavigation" permission in the <a href="manifest.html">extension | |
10 manifest</a>. | |
11 For example: | |
12 </p> | |
13 <pre>{ | |
14 "name": "My extension", | |
15 ... | |
16 <b>"permissions": [ | |
17 "webNavigation" | |
18 ]</b>, | |
19 ... | |
20 }</pre> | |
21 <h2>Examples</h2> | |
22 <p> | |
23 You can find simple examples of using the tabs module in the | |
24 <a href="http://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extension
s/docs/examples/api/webNavigation/">examples/api/webNavigation</a> | |
25 directory. | |
26 For other examples and for help in viewing the source code, see | |
27 <a href="samples.html">Samples</a>. | |
28 </p> | |
29 <h2>Event order</h2> | |
30 <p> | |
31 For a navigation that is successfully completed, events are fired in the | |
32 following order: | |
33 <pre> | |
34 onBeforeNavigate -> onCommitted -> onDOMContentLoaded -> onCompleted | |
35 </pre> | |
36 </p> | |
37 <p> | |
38 Any error that occurs during the process results in an | |
39 <code>onErrorOccurred</code> event. For a specific navigation, there are no | |
40 further events fired after <code>onErrorOccurred</code>. | |
41 </p> | |
42 <p> | |
43 If a navigating frame contains subframes, its <code>onCommitted</code> is fired | |
44 before any of its children's <code>onBeforeNavigate</code>; while | |
45 <code>onCompleted</code> is fired after all of its children's | |
46 <code>onCompleted</code>. | |
47 </p> | |
48 <p> | |
49 If the reference fragment of a frame is changed, a | |
50 <code>onReferenceFragmentUpdated</code> event is fired. This event can fire any | |
51 time after <code>onDOMContentLoaded</code>, even after | |
52 <code>onCompleted</code>. | |
53 </p> | |
54 <h2>Relation to webRequest events</h2> | |
55 <p> | |
56 There is no defined ordering between events of the <a | |
57 href="webRequest.html">webRequest API</a> and the events of the | |
58 webNavigation API. It is possible that webRequest events are still received for | |
59 frames that already started a new navigation, or that a navigation only | |
60 proceeds after the network resources are already fully loaded. | |
61 </p> | |
62 <p> | |
63 In general, the webNavigation events are closely related to the navigation | |
64 state that is displayed in the UI, while the webRequest events correspond to | |
65 the state of the network stack which is generally opaque to the user. | |
66 </p> | |
67 <h2>A note about timestamps</h2> | |
68 <p> | |
69 It's important to note that some technical oddities in the OS's handling | |
70 of distinct Chrome processes can cause the clock to be skewed between the | |
71 browser itself and extension processes. That means that WebNavigation's events' | |
72 <code>timeStamp</code> property is only guaranteed to be <i>internally</i> | |
73 consistent. Comparing one event to another event will give you the correct | |
74 offset between them, but comparing them to the current time inside the | |
75 extension (via <code>(new Date()).getTime()</code>, for instance) might give | |
76 unexpected results. | |
77 </p> | |
78 <h2>Transition types and qualifiers</h2> | |
79 <p> | |
80 The webNavigation API's <code>onCommitted</code> event has a | |
81 <code>transitionType</code> and a <code>transitionQualifiers</code> property. | |
82 The <em>transition type</em> is the same as used in the <a | |
83 href="history.html#transition_types">history API</a> describing how the browser | |
84 navigated to this particular URL. In addition, several <em>transition | |
85 qualifiers</em> can be returned that further define the navigation. | |
86 </p> | |
87 <p> | |
88 The following transition qualifiers exist: | |
89 </p> | |
90 <table> | |
91 <tr> | |
92 <th> Transition qualifier </th> <th> Description </th> | |
93 </tr> | |
94 <tr> | |
95 <td>"client_redirect"</td> | |
96 <td> | |
97 One or more redirects caused by JavaScript or meta refresh tags on the page | |
98 happened during the navigation. | |
99 </td> | |
100 </tr> | |
101 <tr> | |
102 <td>"server_redirect"</td> | |
103 <td> | |
104 One or more redirects caused by HTTP headers sent from the server happened | |
105 during the navigation. | |
106 </td> | |
107 </tr> | |
108 <tr> | |
109 <td>"forward_back"</td> | |
110 <td> | |
111 The user used the Forward or Back button to initiate the navigation. | |
112 </td> | |
113 </tr> | |
114 <tr> | |
115 <td>"from_address_bar"</td> | |
116 <td> | |
117 The user initiated the navigation from the address bar (aka Omnibox). | |
118 </td> | |
119 </tr> | |
120 </table> | |
121 <!-- END AUTHORED CONTENT --> | |
OLD | NEW |