OLD | NEW |
1 <h2 id="manifest">Manifest</h2> | 1 <h2 id="manifest">Manifest</h2> |
2 <p>You must declare the "webRequest" permission in the <a | 2 <p>You must declare the "webRequest" permission in the <a |
3 href="manifest.html">extension manifest</a> to use the web request | 3 href="manifest">extension manifest</a> to use the web request |
4 API, along with <a href="declare_permissions.html">host permissions</a> | 4 API, along with <a href="declare_permissions">host permissions</a> |
5 for any hosts whose network requests you want to access. If you want to | 5 for any hosts whose network requests you want to access. If you want to |
6 use the web request API in a blocking fashion, you need to request | 6 use the web request API in a blocking fashion, you need to request |
7 the "webRequestBlocking" permission in addition. | 7 the "webRequestBlocking" permission in addition. |
8 For example:</p> | 8 For example:</p> |
9 <pre data-filename="manifest.json"> | 9 <pre data-filename="manifest.json"> |
10 { | 10 { |
11 "name": "My extension", | 11 "name": "My extension", |
12 ... | 12 ... |
13 <b>"permissions": [ | 13 <b>"permissions": [ |
14 "webRequest", | 14 "webRequest", |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 <li>Pragma</li> | 110 <li>Pragma</li> |
111 <li>Proxy-Authorization</li> | 111 <li>Proxy-Authorization</li> |
112 <li>Proxy-Connection</li> | 112 <li>Proxy-Connection</li> |
113 <li>Transfer-Encoding</li> | 113 <li>Transfer-Encoding</li> |
114 </ul> | 114 </ul> |
115 </p> | 115 </p> |
116 | 116 |
117 <p> | 117 <p> |
118 The webRequest API only exposes requests that the extension has | 118 The webRequest API only exposes requests that the extension has |
119 permission to see, given its | 119 permission to see, given its |
120 <a href="declare_permissions.html">host permissions</a>. | 120 <a href="declare_permissions">host permissions</a>. |
121 Moreover, only the following schemes are accessible: | 121 Moreover, only the following schemes are accessible: |
122 <code>http://</code>, | 122 <code>http://</code>, |
123 <code>https://</code>, | 123 <code>https://</code>, |
124 <code>ftp://</code>, | 124 <code>ftp://</code>, |
125 <code>file://</code>, or | 125 <code>file://</code>, or |
126 <code>chrome-extension://</code>. | 126 <code>chrome-extension://</code>. |
127 In addition, even certain requests with URLs using one of the above schemes | 127 In addition, even certain requests with URLs using one of the above schemes |
128 are hidden, e.g., | 128 are hidden, e.g., |
129 <code>chrome-extension://other_extension_id</code> where | 129 <code>chrome-extension://other_extension_id</code> where |
130 <code>other_extension_id</code> is not the ID of the extension to handle | 130 <code>other_extension_id</code> is not the ID of the extension to handle |
(...skipping 19 matching lines...) Expand all Loading... |
150 | 150 |
151 <p>Each request is identified by a request ID. This ID is unique within a | 151 <p>Each request is identified by a request ID. This ID is unique within a |
152 browser session and the context of an extension. It remains constant during the | 152 browser session and the context of an extension. It remains constant during the |
153 the life cycle of a request and can be used to match events for the same | 153 the life cycle of a request and can be used to match events for the same |
154 request. Note that several HTTP requests are mapped to one web request in case | 154 request. Note that several HTTP requests are mapped to one web request in case |
155 of HTTP redirection or HTTP authentication.</p> | 155 of HTTP redirection or HTTP authentication.</p> |
156 | 156 |
157 <h3 id="subscription">Registering event listeners</h3> | 157 <h3 id="subscription">Registering event listeners</h3> |
158 | 158 |
159 <p>To register an event listener for a web request, you use a variation on the | 159 <p>To register an event listener for a web request, you use a variation on the |
160 <a href="events.html">usual <code>addListener()</code> function</a>. | 160 <a href="events">usual <code>addListener()</code> function</a>. |
161 In addition to specifying a callback function, | 161 In addition to specifying a callback function, |
162 you have to specify a filter argument and you may specify an optional extra info | 162 you have to specify a filter argument and you may specify an optional extra info |
163 argument.</p> | 163 argument.</p> |
164 | 164 |
165 <p>The three arguments to the web request API's <code>addListener()</code> have | 165 <p>The three arguments to the web request API's <code>addListener()</code> have |
166 the following definitions:</p> | 166 the following definitions:</p> |
167 <pre> | 167 <pre> |
168 var callback = function(details) {...}; | 168 var callback = function(details) {...}; |
169 var filter = {...}; | 169 var filter = {...}; |
170 var opt_extraInfoSpec = [...]; | 170 var opt_extraInfoSpec = [...]; |
(...skipping 21 matching lines...) Expand all Loading... |
192 cancelling or redirecting a request (<code>onBeforeRequest</code>), cancelling a | 192 cancelling or redirecting a request (<code>onBeforeRequest</code>), cancelling a |
193 request or modifying headers (<code>onBeforeSendHeaders</code>, | 193 request or modifying headers (<code>onBeforeSendHeaders</code>, |
194 <code>onHeadersReceived</code>), or providing authentication credentials | 194 <code>onHeadersReceived</code>), or providing authentication credentials |
195 (<code>onAuthRequired</code>).</p> | 195 (<code>onAuthRequired</code>).</p> |
196 | 196 |
197 <p>The $(ref:webRequest.RequestFilter) | 197 <p>The $(ref:webRequest.RequestFilter) |
198 <code>filter</code> allows limiting the requests for which events are | 198 <code>filter</code> allows limiting the requests for which events are |
199 triggered in various dimensions: | 199 triggered in various dimensions: |
200 <dl> | 200 <dl> |
201 <dt>URLs</dt> | 201 <dt>URLs</dt> |
202 <dd><a href="match_patterns.html">URL patterns</a> such as | 202 <dd><a href="match_patterns">URL patterns</a> such as |
203 <code>*://www.google.com/foo*bar</code>.</dd> | 203 <code>*://www.google.com/foo*bar</code>.</dd> |
204 <dt>Types</dt> | 204 <dt>Types</dt> |
205 <dd>Request types such as <code>main_frame</code> (a document that is loaded | 205 <dd>Request types such as <code>main_frame</code> (a document that is loaded |
206 for a top-level frame), <code>sub_frame</code> (a document that is loaded for | 206 for a top-level frame), <code>sub_frame</code> (a document that is loaded for |
207 an embedded frame), and <code>image</code> (an image on a web site). | 207 an embedded frame), and <code>image</code> (an image on a web site). |
208 See $(ref:webRequest.RequestFilter).</dd> | 208 See $(ref:webRequest.RequestFilter).</dd> |
209 <dt>Tab ID</dt> | 209 <dt>Tab ID</dt> |
210 <dd>The identifier for one tab.</dd> | 210 <dd>The identifier for one tab.</dd> |
211 <dt>Window ID</dt> | 211 <dt>Window ID</dt> |
212 <dd>The identifier for a window.</dd> | 212 <dd>The identifier for a window.</dd> |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
291 details.requestHeaders.splice(i, 1); | 291 details.requestHeaders.splice(i, 1); |
292 break; | 292 break; |
293 } | 293 } |
294 } | 294 } |
295 return {requestHeaders: details.requestHeaders}; | 295 return {requestHeaders: details.requestHeaders}; |
296 }, | 296 }, |
297 {urls: ["<all_urls>"]}, | 297 {urls: ["<all_urls>"]}, |
298 ["blocking", "requestHeaders"]); | 298 ["blocking", "requestHeaders"]); |
299 </pre> | 299 </pre> |
300 | 300 |
301 <p> For more example code, see the <a href="samples.html#webrequest">web request | 301 <p> For more example code, see the <a href="samples#webrequest">web request |
302 samples</a>.</p> | 302 samples</a>.</p> |
OLD | NEW |