Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(510)

Side by Side Diff: chrome/common/extensions/docs/webRequest.html

Issue 10642015: Basic setup for generating app docs (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html><!-- This page is a placeholder for generated extensions api doc. Note:
2 1) The <head> information in this page is significant, should be uniform
3 across api docs and should be edited only with knowledge of the
4 templating mechanism.
5 3) All <body>.innerHTML is genereated as an rendering step. If viewed in a
6 browser, it will be re-generated from the template, json schema and
7 authored overview content.
8 4) The <body>.innerHTML is also generated by an offline step so that this
9 page may easily be indexed by search engines.
10 --><html xmlns="http://www.w3.org/1999/xhtml"><head>
11 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
12 <link href="css/ApiRefStyles.css" rel="stylesheet" type="text/css">
13 <link href="css/print.css" rel="stylesheet" type="text/css" media="print">
14 <script type="text/javascript" src="../../../third_party/jstemplate/jstempla te_compiled.js">
15 </script>
16 <script type="text/javascript" src="../../../../third_party/json_minify/mini fy-sans-regexp.js">
17 </script>
18 <script type="text/javascript" src="js/api_page_generator.js"></script>
19 <script type="text/javascript" src="js/bootstrap.js"></script>
20 <script type="text/javascript" src="js/sidebar.js"></script>
21 <meta name="description" content="Documentation for the chrome.webRequest modu le, which is part of the Google Chrome extension APIs."><title>Web Requests - G oogle Chrome Extensions - Google Code</title></head>
22 <body> <div id="devModeWarning" class="displayModeWarning">
23 You are viewing extension docs in chrome via the 'file:' scheme: are you exp ecting to see local changes when you refresh? You'll need run chrome with --allo w-file-access-from-files.
24 </div>
25 <div id="branchWarning" class="displayModeWarning">
26 <span>WARNING: This is the <span id="branchName">BETA</span> documentation.
27 It may not work with the stable release of Chrome.</span>
28 <select id="branchChooser">
29 <option>Choose a different version...
30 </option><option value="">Stable
31 </option><option value="beta">Beta
32 </option><option value="dev">Dev
33 </option><option value="trunk">Trunk
34 </option></select>
35 </div>
36 <div id="unofficialWarning" class="displayModeWarning">
37 <span>WARNING: This is unofficial documentation. It may not work with the
38 current release of Chrome.</span>
39 <button id="goToOfficialDocs">Go to the official docs</button>
40 </div>
41 <div id="gc-container" class="labs">
42 <!-- SUBTEMPLATES: DO NOT MOVE FROM THIS LOCATION -->
43 <!-- In particular, sub-templates that recurse, must be used by allowing
44 jstemplate to make a copy of the template in this section which
45 are not operated on by way of the jsskip="true" -->
46 <!-- /SUBTEMPLATES -->
47 <a id="top"></a>
48 <div id="skipto">
49 <a href="#gc-pagecontent">Skip to page content</a>
50 <a href="#gc-toc">Skip to main navigation</a>
51 </div>
52 <!-- API HEADER -->
53 <table id="header" width="100%" cellspacing="0" border="0">
54 <tbody><tr>
55 <td valign="middle"><a href="http://code.google.com/"><img src="images/c ode_labs_logo.gif" height="43" width="161" alt="Google Code Labs" style="border: 0; margin:0;"></a></td>
56 <td valign="middle" width="100%" style="padding-left:0.6em;">
57 <form action="http://www.google.com/cse" id="cse" style="margin-top:0. 5em">
58 <div id="gsc-search-box">
59 <input type="hidden" name="cx" value="002967670403910741006:61_cvz fqtno">
60 <input type="hidden" name="ie" value="UTF-8">
61 <input type="text" name="q" value="" size="55">
62 <input class="gsc-search-button" type="submit" name="sa" value="Se arch">
63 <br>
64 <span class="greytext">e.g. "page action" or "tabs"</span>
65 </div>
66 </form>
67 <script type="text/javascript" src="https://www.google.com/jsapi"></sc ript>
68 <script type="text/javascript">google.load("elements", "1", {packages: "transliteration"});</script>
69 <script type="text/javascript" src="https://www.google.com/coop/cse/t1 3n?form=cse&amp;t13n_langs=en"></script>
70 <script type="text/javascript" src="https://www.google.com/coop/cse/br and?form=cse&amp;lang=en"></script>
71 </td>
72 </tr>
73 </tbody></table>
74 <div id="codesiteContent" class="">
75 <a id="gc-topnav-anchor"></a>
76 <div id="gc-topnav">
77 <h1>Google Chrome Extensions (<a href="http://code.google.com/labs/">Lab s</a>)</h1>
78 <ul id="home" class="gc-topnav-tabs">
79 <li id="home_link">
80 <a href="index.html" title="Google Chrome Extensions home page">Home </a>
81 </li>
82 <li id="docs_link">
83 <a href="docs.html" title="Official Google Chrome Extensions documen tation">Docs</a>
84 </li>
85 <li id="faq_link">
86 <a href="faq.html" title="Answers to frequently asked questions abou t Google Chrome Extensions">FAQ</a>
87 </li>
88 <li id="samples_link">
89 <a href="samples.html" title="Sample extensions (with source code)"> Samples</a>
90 </li>
91 <li id="group_link">
92 <a href="http://groups.google.com/a/chromium.org/group/chromium-exte nsions" title="Google Chrome Extensions developer forum">Group</a>
93 </li>
94 <li id="so_link">
95 <a href="http://stackoverflow.com/questions/tagged/google-chrome-ext ension" title="[google-chrome-extension] tag on Stack Overflow">Questions?</a>
96 </li>
97 </ul>
98 </div> <!-- end gc-topnav -->
99 <div class="g-section g-tpl-170">
100 <!-- SIDENAV -->
101 <div class="g-unit g-first" id="gc-toc">
102 <ul>
103 <li><a href="getstarted.html">Getting Started</a></li>
104 <li><a href="overview.html">Overview</a></li>
105 <li><a href="whats_new.html">What's New?</a></li>
106 <li><h2><a href="devguide.html">Developer's Guide</a></h2>
107 <ul>
108 <li>Browser UI
109 <ul>
110 <li><a href="browserAction.html">Browser Actions</a></li>
111 <li><a href="contextMenus.html">Context Menus</a></li>
112 <li><a href="notifications.html">Desktop Notifications</a></li >
113 <li><a href="omnibox.html">Omnibox</a></li>
114 <li><a href="options.html">Options Pages</a></li>
115 <li><a href="override.html">Override Pages</a></li>
116 <li><a href="pageAction.html">Page Actions</a></li>
117 </ul>
118 </li>
119 <li>Browser Interaction
120 <ul>
121 <li><a href="bookmarks.html">Bookmarks</a></li>
122 <li><a href="cookies.html">Cookies</a></li>
123 <li><a href="devtools.html">Developer Tools</a></li>
124 <li><a href="events.html">Events</a></li>
125 <li><a href="history.html">History</a></li>
126 <li><a href="management.html">Management</a></li>
127 <li><a href="tabs.html">Tabs</a></li>
128 <li><a href="windows.html">Windows</a></li>
129 </ul>
130 </li>
131 <li>Implementation
132 <ul>
133 <li><a href="a11y.html">Accessibility</a></li>
134 <li><a href="background_pages.html">Background Pages</a></li>
135 <li><a href="content_scripts.html">Content Scripts</a></li>
136 <li><a href="xhr.html">Cross-Origin XHR</a></li>
137 <li><a href="i18n.html">Internationalization</a></li>
138 <li><a href="messaging.html">Message Passing</a></li>
139 <li><a href="permissions.html">Optional Permissions</a></li>
140 <li><a href="npapi.html">NPAPI Plugins</a></li>
141 </ul>
142 </li>
143 <li>Finishing
144 <ul>
145 <li><a href="hosting.html">Hosting</a></li>
146 <li><a href="external_extensions.html">Other Deployment Option s</a></li>
147 </ul>
148 </li>
149 </ul>
150 </li>
151 <li><h2><a href="apps.html">Packaged Apps</a></h2></li>
152 <li><h2><a href="tutorials.html">Tutorials</a></h2>
153 <ul>
154 <li><a href="tut_debugging.html">Debugging</a></li>
155 <li><a href="tut_analytics.html">Google Analytics</a></li>
156 <li><a href="tut_oauth.html">OAuth</a></li>
157 </ul>
158 </li>
159 <li><h2>Reference</h2>
160 <ul>
161 <li>Formats
162 <ul>
163 <li><a href="manifest.html">Manifest Files</a></li>
164 <li><a href="match_patterns.html">Match Patterns</a></li>
165 </ul>
166 </li>
167 <li><a href="permission_warnings.html">Permission Warnings</a></li >
168 <li><a href="api_index.html">chrome.* APIs</a></li>
169 <li><a href="api_other.html">Other APIs</a></li>
170 </ul>
171 </li>
172 <li><h2><a href="samples.html">Samples</a></h2></li>
173 <div class="line"> </div>
174 <li><h2>More</h2>
175 <ul>
176 <li><a href="http://code.google.com/chrome/webstore/docs/index.htm l">Chrome Web Store</a></li>
177 <li><a href="http://code.google.com/chrome/apps/docs/developers_gu ide.html">Hosted Apps</a></li>
178 <li><a href="themes.html">Themes</a></li>
179 </ul>
180 </li>
181 </ul>
182 </div>
183 <script>
184 initToggles();
185 </script>
186 <div class="g-unit" id="gc-pagecontent">
187 <div id="pageTitle">
188 <h1 class="page_title">Web Requests</h1>
189 </div>
190 <!-- TABLE OF CONTENTS -->
191 <div id="toc">
192 <h2>Contents</h2>
193 <ol>
194 <li>
195 <a href="#manifest">Manifest</a>
196 <ol>
197 </ol>
198 </li><li>
199 <a href="#life_cycle">Life cycle of requests</a>
200 <ol>
201 </ol>
202 </li><li>
203 <a href="#concepts">Concepts</a>
204 <ol>
205 <li>
206 <a href="#Request IDs">Request IDs</a>
207 </li><li>
208 <a href="#subscription">Registering event listeners</a>
209 </li>
210 </ol>
211 </li><li>
212 <a href="#implementation">Implementation details</a>
213 <ol>
214 </ol>
215 </li><li>
216 <a href="#examples">Examples</a>
217 <ol>
218 </ol>
219 </li>
220 <li>
221 <a href="#apiReference">API reference: chrome.webRequest</a>
222 <ol>
223 <li>
224 <a href="#global-methods">Methods</a>
225 <ol>
226 <li>
227 <a href="#method-handlerBehaviorChanged">handlerBehaviorChanged< /a>
228 </li>
229 </ol>
230 </li>
231 <li>
232 <a href="#global-events">Events</a>
233 <ol>
234 <li>
235 <a href="#event-onAuthRequired">onAuthRequired</a>
236 </li><li>
237 <a href="#event-onBeforeRedirect">onBeforeRedirect</a>
238 </li><li>
239 <a href="#event-onBeforeRequest">onBeforeRequest</a>
240 </li><li>
241 <a href="#event-onBeforeSendHeaders">onBeforeSendHeaders</a>
242 </li><li>
243 <a href="#event-onCompleted">onCompleted</a>
244 </li><li>
245 <a href="#event-onErrorOccurred">onErrorOccurred</a>
246 </li><li>
247 <a href="#event-onHeadersReceived">onHeadersReceived</a>
248 </li><li>
249 <a href="#event-onResponseStarted">onResponseStarted</a>
250 </li><li>
251 <a href="#event-onSendHeaders">onSendHeaders</a>
252 </li>
253 </ol>
254 </li>
255 <li>
256 <a href="#types">Types</a>
257 <ol>
258 <li>
259 <a href="#type-RequestFilter">RequestFilter</a>
260 <ol>
261 </ol>
262 </li><li>
263 <a href="#type-HttpHeaders">HttpHeaders</a>
264 <ol>
265 </ol>
266 </li><li>
267 <a href="#type-BlockingResponse">BlockingResponse</a>
268 <ol>
269 </ol>
270 </li>
271 </ol>
272 </li>
273 </ol>
274 </li>
275 </ol>
276 </div>
277 <!-- /TABLE OF CONTENTS -->
278 <!-- Standard content lead-in for experimental API pages -->
279 <!-- STATIC CONTENT PLACEHOLDER -->
280 <div id="static"><div id="pageData-name" class="pageData">Web Requests</ div>
281 <!-- BEGIN AUTHORED CONTENT -->
282 <p id="classSummary">
283 Use the <code>chrome.webRequest</code> module to intercept, block,
284 or modify requests in-flight and to observe and analyze traffic.
285 </p>
286 <h2 id="manifest">Manifest</h2>
287 <p>You must declare the "webRequest" permission in the <a href="manifest.html">e xtension manifest</a> to use the web request
288 API, along with <a href="manifest.html#permissions">host permissions</a>
289 for any hosts whose network requests you want to access. If you want to
290 use the web request API in a blocking fashion, you need to request
291 the "webRequestBlocking" permission in addition.
292 For example:</p>
293 <pre>{
294 "name": "My extension",
295 ...
296 <b>"permissions": [
297 "webRequest",
298 "*://*.google.com"
299 ]</b>,
300 ...
301 }</pre>
302 <p class="note">
303 <b>Node:</b> If you request the "webRequestBlocking" permission, web requests
304 are delayed until the background page of your extension has been loaded. This
305 allows you to register event listeners before any web requests are processed.
306 In order to avoid deadlocks, you must not start synchronous XmlHttpRequests or
307 include scripts from the internet via <code>&lt;script src="..."&gt;</code> tags
308 in your background page.
309 </p>
310 <h2 id="life_cycle">Life cycle of requests</h2>
311 <p>
312 The web request API defines a set of events that follow the life cycle of a web
313 request. You can use these events to observe and analyze traffic. Certain
314 synchronous events will allow you to intercept, block, or modify a request.
315 </p>
316 <p>
317 The event life cycle for successful requests is illustrated here, followed by
318 event definitions:<br>
319 <img src="images/webrequestapi.png" width="385" height="503" alt="Life cycle of a web request from the perspective of the webrequest API" style="margin-left: au to; margin-right: auto; display: block">
320 </p>
321 <p>
322 </p><dl>
323 <dt><code>onBeforeRequest</code> (optionally synchronous)</dt>
324 <dd>Fires when a request is about to occur. This event is sent before any TCP
325 connection is made and can be used to cancel or redirect requests.</dd>
326 <dt><code>onBeforeSendHeaders</code> (optionally synchronous)</dt>
327 <dd>Fires when a request is about to occur and the initial headers have been
328 prepared. The event is intended to allow extensions to add, modify, and delete
329 request headers <a href="#life_cycle_footnote">(*)</a>. The
330 <code>onBeforeSendHeaders</code> event is passed to all subscribers, so
331 different subscribers may attempt to modify the request; see the <a href="#imp lementation">Implementation details</a> section for how this is
332 handled. This event can be used to cancel the request.</dd>
333 <dt><code>onSendHeaders</code></dt>
334 <dd>Fires after all extensions have had a chance to modify the request
335 headers, and presents the final <a href="#life_cycle_footnote">(*)</a>
336 version. The event is triggered before the headers are sent to the network.
337 This event is informational and handled asynchronously. It does not allow
338 modifying or cancelling the request.</dd>
339 <dt><code>onHeadersReceived</code> (optionally synchronous)</dt>
340 <dd>Fires each time that an HTTP(S) response header is received. Due
341 to redirects and authentication requests this can happen multiple times per
342 request. This event is intended to allow extensions to add, modify, and delete
343 response headers, such as incoming Set-Cookie headers.</dd>
344 <dt><code>onAuthRequired</code> (optionally synchronous)</dt>
345 <dd>Fires when a request requires authentication of the user. This event can
346 be handled synchronously to provide authentication credentials. Note that
347 extensions may provide invalid credentials. Take care not to enter an infinite
348 loop by repeatedly providing invalid credentials.</dd>
349 <dt><code>onBeforeRedirect</code></dt>
350 <dd>Fires when a redirect is about to be executed. A redirection can be
351 triggered by an HTTP response code or by an extension. This event is
352 informational and handled asynchronously. It does not allow you to modify or
353 cancel the request. </dd>
354 <dt><code>onResponseStarted</code></dt>
355 <dd>Fires when the first byte of the response body is received. For HTTP
356 requests, this means that the status line and response headers are
357 available. This event is informational and handled asynchronously. It does not
358 allow modifying or cancelling the request.</dd>
359 <dt><code>onCompleted</code></dt>
360 <dd>Fires when a request has been processed successfully.</dd>
361 <dt><code>onErrorOccurred</code></dt>
362 <dd>Fires when a request could not be processed successfully.</dd>
363 </dl>
364 The web request API guarantees that for each request either
365 <code>onCompleted</code> or <code>onErrorOccurred</code> is fired as the final
366 event with one exception: If a request is redirected to a <code>data://</code>
367 URL, <code>onBeforeRedirect</code> is the last reported event.
368 <p></p>
369 <p id="life_cycle_footnote">(*) Note that the web request API presents an
370 abstraction of the network stack to the extension. Internally, one URL request
371 can be split into several HTTP requests (for example to fetch individual byte
372 ranges from a large file) or can be handled by the network stack without
373 communicating with the network. For this reason, the API does not provide the
374 final HTTP headers that are sent to the network. For example, all headers that
375 are related to caching are invisible to the extension.</p>
376 <p>The following headers are currently <b>not provided</b> to the
377 <code>onBeforeSendHeaders</code> event. This list is not guaranteed to be
378 complete nor stable.
379 </p><ul>
380 <li>Authorization</li>
381 <li>Cache-Control</li>
382 <li>Connection</li>
383 <li>Content-Length</li>
384 <li>Host</li>
385 <li>If-Modified-Since</li>
386 <li>If-None-Match</li>
387 <li>If-Range</li>
388 <li>Partial-Data</li>
389 <li>Pragma</li>
390 <li>Proxy-Authorization</li>
391 <li>Proxy-Connection</li>
392 <li>Transfer-Encoding</li>
393 </ul>
394 <p></p>
395 <p>
396 The webRequest API only exposes requests that the extension has
397 permission to see, given its
398 <a href="manifest.html#permissions">host permissions</a>.
399 Moreover, only the following schemes are accessible:
400 <code>http://</code>,
401 <code>https://</code>,
402 <code>ftp://</code>,
403 <code>file://</code>, or
404 <code>chrome-extension://</code>.
405 In addition, even certain requests with URLs using one of the above schemes
406 are hidden, e.g.,
407 <code>chrome-extension://other_extension_id</code> where
408 <code>other_extension_id</code> is not the ID of the extension to handle
409 the request,
410 <code>https://www.google.com/chrome</code>,
411 and others (this list is not complete).
412 </p>
413 <h2 id="concepts">Concepts</h2>
414 <p>As the following sections explain, events in the web request API use request
415 IDs, and you can optionally specify filters and extra information when you
416 register event listeners.</p>
417 <h3 id="Request IDs">Request IDs</h3>
418 <p>Each request is identified by a request ID. This ID is unique within a
419 browser session and the context of an extension. It remains constant during the
420 the life cycle of a request and can be used to match events for the same
421 request. Note that several HTTP requests are mapped to one web request in case
422 of HTTP redirection or HTTP authentication.</p>
423 <h3 id="subscription">Registering event listeners</h3>
424 <p>To register an event listener for a web request, you use a variation on the
425 <a href="events.html">usual <code>addListener()</code> function</a>.
426 In addition to specifying a callback function,
427 you have to specify a filter argument and you may specify an optional extra info
428 argument.</p>
429 <p>The three arguments to the web request API's <code>addListener()</code> have
430 the following definitions:</p>
431 <pre>var callback = function(details) {...};
432 var filter = {...};
433 var opt_extraInfoSpec = [...];
434 </pre>
435 <p>Here's an example of listening for the <code>onBeforeRequest</code>
436 event:</p>
437 <pre>chrome.webRequest.onBeforeRequest.addListener(
438 callback, filter, opt_extraInfoSpec);
439 </pre>
440 <p>Each <code>addListener()</code> call takes a mandatory callback function as
441 the first parameter. This callback function is passed a dictionary containing
442 information about the current URL request. The information in this dictionary
443 depends on the specific event type as well as the content of
444 <code>opt_extraInfoSpec</code>.</p>
445 <p>If the optional <code>opt_extraInfoSpec</code> array contains the string
446 <code>'blocking'</code> (only allowed for specific events), the callback
447 function is handled synchronously. That means that the request is blocked until
448 the callback function returns. In this case, the callback can return a <a href=" #type-BlockingResponse">BlockingResponse</a> that determines the further
449 life cycle of the request. Depending on the context, this response allows
450 cancelling or redirecting a request (<code>onBeforeRequest</code>), cancelling a
451 request or modifying headers (<code>onBeforeSendHeaders</code>,
452 <code>onHeadersReceived</code>), or providing authentication credentials
453 (<code>onAuthRequired</code>).</p>
454 <p>The <a href="#type-RequestFilter">RequestFilter</a>
455 <code>filter</code> allows limiting the requests for which events are
456 triggered in various dimensions:
457 </p><dl>
458 <dt>URLs</dt>
459 <dd><a href="match_patterns.html">URL patterns</a> such as
460 <code>*://www.google.com/foo*bar</code>.</dd>
461 <dt>Types</dt>
462 <dd>Request types such as <code>main_frame</code> (a document that is loaded
463 for a top-level frame), <code>sub_frame</code> (a document that is loaded for
464 an embedded frame), and <code>image</code> (an image on a web site).
465 See <a href="#type-RequestFilter">RequestFilter</a>.</dd>
466 <dt>Tab ID</dt>
467 <dd>The identifier for one tab.</dd>
468 <dt>Window ID</dt>
469 <dd>The identifier for a window.</dd>
470 <p></p>
471 <p>Depending on the event type, you can specify strings in
472 <code>opt_extraInfoSpec</code> to ask for additional information about the
473 request. This is used to provide detailed information on request's data only
474 if explicitly requested.</p>
475 <h2 id="implementation">Implementation details</h2>
476 <p>Several implementation details can be important to understand when developing
477 an extension that uses the web request API:</p>
478 <h3>Conflict resolution</h3>
479 <p>In the current implementation of the web request API, a request is considered
480 as cancelled if at least one extension instructs to cancel the request. If
481 an extension cancels a request, all extensions are notified by an
482 <code>onErrorOccurred</code> event. Only one extension is allowed to redirect a
483 request or modify a header at a time. If more than one extension attempts to
484 modify the request, the most recently installed extension wins and all others
485 are ignored. An extension is not notified if its instruction to modify or
486 redirect has been ignored.</p>
487 <h3>Caching</h3>
488 <p>
489 Chrome employs two caches — an on-disk cache and a very fast in-memory
490 cache. The lifetime of an in-memory cache is attached to the lifetime of a
491 render process, which roughly corresponds to a tab. Requests that are answered
492 from the in-memory cache are invisible to the web request API. If a request
493 handler changes its behavior (for example, the behavior according to which
494 requests are blocked), a simple page refresh might not respect this changed
495 behavior. To make sure the behavior change goes through, call
496 <code>handlerBehaviorChanged()</code> to flush the in-memory cache. But don't do
497 it often; flushing the cache is a very expensive operation. You don't need to
498 call <code>handlerBehaviorChanged()</code> after registering or unregistering an
499 event listener.</p>
500 <h3>Timestamps</h3>
501 <p>
502 The <code>timestamp</code> property of web request events is only guaranteed to
503 be <i>internally</i> consistent. Comparing one event to another event will give
504 you the correct offset between them, but comparing them to the current time
505 inside the extension (via <code>(new Date()).getTime()</code>, for instance)
506 might give unexpected results.
507 </p>
508 <h2 id="examples">Examples</h2>
509 <p>The following example illustrates how to block all requests to
510 <code>www.evil.com</code>:</p>
511 <pre>chrome.webRequest.onBeforeRequest.addListener(
512 function(details) {
513 return {cancel: details.url.indexOf("://www.evil.com/") != -1};
514 },
515 {urls: ["&lt;all_urls&gt;"]},
516 ["blocking"]);
517 </pre>
518 <p>As this function uses a blocking event handler, it requires the "webRequest"
519 as well as the "webRequestBlocking" permission in the manifest file.</p>
520 <p>The following example achieves the same goal in a more efficient way because
521 requests that are not targeted to <code>www.evil.com</code> do not need to be
522 passed to the extension:</p>
523 <pre>chrome.webRequest.onBeforeRequest.addListener(
524 function(details) { return {cancel: true}; },
525 {urls: ["*://www.evil.com/*"]},
526 ["blocking"]);
527 </pre>
528 <p>The following example illustrates how to delete the User-Agent header from
529 all requests:</p>
530 <pre>chrome.webRequest.onBeforeSendHeaders.addListener(
531 function(details) {
532 for (var i = 0; i &lt; details.requestHeaders.length; ++i) {
533 if (details.requestHeaders[i].name === 'User-Agent') {
534 details.requestHeaders.splice(i, 1);
535 break;
536 }
537 }
538 return {requestHeaders: details.requestHeaders};
539 },
540 {urls: ["&lt;all_urls&gt;"]},
541 ["blocking", "requestHeaders"]);
542 </pre>
543 <p> For more example code, see the <a href="samples.html#webrequest">web request
544 samples</a>.</p>
545 <!-- END AUTHORED CONTENT -->
546 </dl></div>
547 <!-- API PAGE -->
548 <div class="apiPage">
549 <a name="apiReference"></a>
550 <h2>API reference: chrome.webRequest</h2>
551 <!-- PROPERTIES -->
552 <!-- /apiGroup -->
553 <!-- METHODS -->
554 <div id="methodsTemplate" class="apiGroup">
555 <a name="global-methods"></a>
556 <h3>Methods</h3>
557 <!-- iterates over all functions -->
558 <div class="apiItem">
559 <a name="method-handlerBehaviorChanged"></a> <!-- method-anchor -- >
560 <h4>handlerBehaviorChanged</h4>
561 <div class="summary">
562 <!-- Note: intentionally longer 80 columns -->
563 <span>chrome.webRequest.handlerBehaviorChanged</span>(<span cl ass="optional"><span>function</span>
564 <var><span>callback</span></var></span>)</div>
565 <div class="description">
566 <p>Needs to be called when the behavior of the webRequest handle rs has changed to prevent incorrect handling due to caching. This function call is expensive. Don't call it often.</p>
567 <!-- PARAMETERS -->
568 <h4>Parameters</h4>
569 <dl>
570 <div>
571 <div>
572 <dt>
573 <var>callback</var>
574 <em>
575 <!-- TYPE -->
576 <div style="display:inline">
577 (
578 <span class="optional">optional</span>
579 <span id="typeTemplate">
580 <span>
581 <span>function</span>
582 </span>
583 </span>
584 )
585 </div>
586 </em>
587 </dt>
588 <dd class="todo">
589 Undocumented.
590 </dd>
591 <!-- OBJECT PROPERTIES -->
592 <!-- OBJECT METHODS -->
593 <!-- OBJECT EVENT FIELDS -->
594 <!-- FUNCTION PARAMETERS -->
595 </div>
596 </div>
597 </dl>
598 <!-- RETURNS -->
599 <dl>
600 </dl>
601 <!-- CALLBACK -->
602 <div>
603 <div>
604 <h4>Callback function</h4>
605 <p>
606 If you specify the <em>callback</em> parameter, it should
607 specify a function that looks like this:
608 </p>
609 <!-- Note: intentionally longer 80 columns -->
610 <pre>function(<span></span>) <span class="subdued">{...}</span >;</pre>
611 <dl>
612 </dl>
613 </div>
614 </div>
615 <!-- MIN_VERSION -->
616 </div> <!-- /description -->
617 </div> <!-- /apiItem -->
618 </div> <!-- /apiGroup -->
619 <!-- EVENTS -->
620 <div id="eventsTemplate" class="apiGroup">
621 <a name="global-events"></a>
622 <h3>Events</h3>
623 <!-- iterates over all events -->
624 <div class="apiItem">
625 <a name="event-onAuthRequired"></a>
626 <h4>onAuthRequired</h4>
627 <div class="summary">
628 <!-- Note: intentionally longer 80 columns -->
629 <span class="subdued">chrome.webRequest.</span><span>onAuthRequi red</span><span class="subdued">.addListener</span>(function(<span>object detail s, function callback</span>) <span class="subdued">{...}</span><span>, RequestFi lter filter, array of string extraInfoSpec</span>);
630 </div>
631 <div class="description">
632 <p>Fired when an authentication failure is received. The listene r has three options: it can provide authentication credentials, it can cancel th e request and display the error page, or it can take no action on the challenge. If bad user credentials are provided, this may be called multiple times for the same request.</p>
633 <!-- LISTENER PARAMETERS -->
634 <div>
635 <h4>Listener parameters</h4>
636 <dl>
637 <div>
638 <div>
639 <dt>
640 <var>details</var>
641 <em>
642 <!-- TYPE -->
643 <div style="display:inline">
644 (
645 <span id="typeTemplate">
646 <span>
647 <span>object</span>
648 </span>
649 </span>
650 )
651 </div>
652 </em>
653 </dt>
654 <dd class="todo">
655 Undocumented.
656 </dd>
657 <!-- OBJECT PROPERTIES -->
658 <dd>
659 <dl>
660 <div>
661 <div>
662 <dt>
663 <var>requestId</var>
664 <em>
665 <!-- TYPE -->
666 <div style="display:inline">
667 (
668 <span id="typeTemplate">
669 <span>
670 <span>string</span>
671 </span>
672 </span>
673 )
674 </div>
675 </em>
676 </dt>
677 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
678 <!-- OBJECT PROPERTIES -->
679 <!-- OBJECT METHODS -->
680 <!-- OBJECT EVENT FIELDS -->
681 <!-- FUNCTION PARAMETERS -->
682 </div>
683 </div><div>
684 <div>
685 <dt>
686 <var>url</var>
687 <em>
688 <!-- TYPE -->
689 <div style="display:inline">
690 (
691 <span id="typeTemplate">
692 <span>
693 <span>string</span>
694 </span>
695 </span>
696 )
697 </div>
698 </em>
699 </dt>
700 <dd class="todo">
701 Undocumented.
702 </dd>
703 <!-- OBJECT PROPERTIES -->
704 <!-- OBJECT METHODS -->
705 <!-- OBJECT EVENT FIELDS -->
706 <!-- FUNCTION PARAMETERS -->
707 </div>
708 </div><div>
709 <div>
710 <dt>
711 <var>method</var>
712 <em>
713 <!-- TYPE -->
714 <div style="display:inline">
715 (
716 <span id="typeTemplate">
717 <span>
718 <span>string</span>
719 </span>
720 </span>
721 )
722 </div>
723 </em>
724 </dt>
725 <dd>Standard HTTP method.</dd>
726 <!-- OBJECT PROPERTIES -->
727 <!-- OBJECT METHODS -->
728 <!-- OBJECT EVENT FIELDS -->
729 <!-- FUNCTION PARAMETERS -->
730 </div>
731 </div><div>
732 <div>
733 <dt>
734 <var>frameId</var>
735 <em>
736 <!-- TYPE -->
737 <div style="display:inline">
738 (
739 <span id="typeTemplate">
740 <span>
741 <span>integer</span>
742 </span>
743 </span>
744 )
745 </div>
746 </em>
747 </dt>
748 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
749 <!-- OBJECT PROPERTIES -->
750 <!-- OBJECT METHODS -->
751 <!-- OBJECT EVENT FIELDS -->
752 <!-- FUNCTION PARAMETERS -->
753 </div>
754 </div><div>
755 <div>
756 <dt>
757 <var>parentFrameId</var>
758 <em>
759 <!-- TYPE -->
760 <div style="display:inline">
761 (
762 <span id="typeTemplate">
763 <span>
764 <span>integer</span>
765 </span>
766 </span>
767 )
768 </div>
769 </em>
770 </dt>
771 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
772 <!-- OBJECT PROPERTIES -->
773 <!-- OBJECT METHODS -->
774 <!-- OBJECT EVENT FIELDS -->
775 <!-- FUNCTION PARAMETERS -->
776 </div>
777 </div><div>
778 <div>
779 <dt>
780 <var>tabId</var>
781 <em>
782 <!-- TYPE -->
783 <div style="display:inline">
784 (
785 <span id="typeTemplate">
786 <span>
787 <span>integer</span>
788 </span>
789 </span>
790 )
791 </div>
792 </em>
793 </dt>
794 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
795 <!-- OBJECT PROPERTIES -->
796 <!-- OBJECT METHODS -->
797 <!-- OBJECT EVENT FIELDS -->
798 <!-- FUNCTION PARAMETERS -->
799 </div>
800 </div><div>
801 <div>
802 <dt>
803 <var>type</var>
804 <em>
805 <!-- TYPE -->
806 <div style="display:inline">
807 (
808 <span class="enum">enumerated</span>
809 <span id="typeTemplate">
810 <span>
811 <span>string</span>
812 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
813 </span>
814 </span>
815 )
816 </div>
817 </em>
818 </dt>
819 <dd>How the requested resource will be used.</dd>
820 <!-- OBJECT PROPERTIES -->
821 <!-- OBJECT METHODS -->
822 <!-- OBJECT EVENT FIELDS -->
823 <!-- FUNCTION PARAMETERS -->
824 </div>
825 </div><div>
826 <div>
827 <dt>
828 <var>timeStamp</var>
829 <em>
830 <!-- TYPE -->
831 <div style="display:inline">
832 (
833 <span id="typeTemplate">
834 <span>
835 <span>number</span>
836 </span>
837 </span>
838 )
839 </div>
840 </em>
841 </dt>
842 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
843 <!-- OBJECT PROPERTIES -->
844 <!-- OBJECT METHODS -->
845 <!-- OBJECT EVENT FIELDS -->
846 <!-- FUNCTION PARAMETERS -->
847 </div>
848 </div><div>
849 <div>
850 <dt>
851 <var>scheme</var>
852 <em>
853 <!-- TYPE -->
854 <div style="display:inline">
855 (
856 <span id="typeTemplate">
857 <span>
858 <span>string</span>
859 </span>
860 </span>
861 )
862 </div>
863 </em>
864 </dt>
865 <dd>The authentication scheme, e.g. Basic or Digest.</dd>
866 <!-- OBJECT PROPERTIES -->
867 <!-- OBJECT METHODS -->
868 <!-- OBJECT EVENT FIELDS -->
869 <!-- FUNCTION PARAMETERS -->
870 </div>
871 </div><div>
872 <div>
873 <dt>
874 <var>realm</var>
875 <em>
876 <!-- TYPE -->
877 <div style="display:inline">
878 (
879 <span class="optional">optional</span>
880 <span id="typeTemplate">
881 <span>
882 <span>string</span>
883 </span>
884 </span>
885 )
886 </div>
887 </em>
888 </dt>
889 <dd>The authentication realm provided by the server, if there is one.< /dd>
890 <!-- OBJECT PROPERTIES -->
891 <!-- OBJECT METHODS -->
892 <!-- OBJECT EVENT FIELDS -->
893 <!-- FUNCTION PARAMETERS -->
894 </div>
895 </div><div>
896 <div>
897 <dt>
898 <var>challenger</var>
899 <em>
900 <!-- TYPE -->
901 <div style="display:inline">
902 (
903 <span id="typeTemplate">
904 <span>
905 <span>object</span>
906 </span>
907 </span>
908 )
909 </div>
910 </em>
911 </dt>
912 <dd>The server requesting authentication.</dd>
913 <!-- OBJECT PROPERTIES -->
914 <dd>
915 <dl>
916 <div>
917 <div>
918 <dt>
919 <var>host</var>
920 <em>
921 <!-- TYPE -->
922 <div style="display:inline">
923 (
924 <span id="typeTemplate">
925 <span>
926 <span>string</span>
927 </span>
928 </span>
929 )
930 </div>
931 </em>
932 </dt>
933 <dd class="todo">
934 Undocumented.
935 </dd>
936 <!-- OBJECT PROPERTIES -->
937 <!-- OBJECT METHODS -->
938 <!-- OBJECT EVENT FIELDS -->
939 <!-- FUNCTION PARAMETERS -->
940 </div>
941 </div><div>
942 <div>
943 <dt>
944 <var>port</var>
945 <em>
946 <!-- TYPE -->
947 <div style="display:inline">
948 (
949 <span id="typeTemplate">
950 <span>
951 <span>integer</span>
952 </span>
953 </span>
954 )
955 </div>
956 </em>
957 </dt>
958 <dd class="todo">
959 Undocumented.
960 </dd>
961 <!-- OBJECT PROPERTIES -->
962 <!-- OBJECT METHODS -->
963 <!-- OBJECT EVENT FIELDS -->
964 <!-- FUNCTION PARAMETERS -->
965 </div>
966 </div>
967 </dl>
968 </dd>
969 <!-- OBJECT METHODS -->
970 <!-- OBJECT EVENT FIELDS -->
971 <!-- FUNCTION PARAMETERS -->
972 </div>
973 </div><div>
974 <div>
975 <dt>
976 <var>isProxy</var>
977 <em>
978 <!-- TYPE -->
979 <div style="display:inline">
980 (
981 <span id="typeTemplate">
982 <span>
983 <span>boolean</span>
984 </span>
985 </span>
986 )
987 </div>
988 </em>
989 </dt>
990 <dd>True for Proxy-Authenticate, false for WWW-Authenticate.</dd>
991 <!-- OBJECT PROPERTIES -->
992 <!-- OBJECT METHODS -->
993 <!-- OBJECT EVENT FIELDS -->
994 <!-- FUNCTION PARAMETERS -->
995 </div>
996 </div><div>
997 <div>
998 <dt>
999 <var>responseHeaders</var>
1000 <em>
1001 <!-- TYPE -->
1002 <div style="display:inline">
1003 (
1004 <span class="optional">optional</span>
1005 <span id="typeTemplate">
1006 <span>
1007 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
1008 </span>
1009 </span>
1010 )
1011 </div>
1012 </em>
1013 </dt>
1014 <dd>The HTTP response headers that were received along with this respo nse.</dd>
1015 <!-- OBJECT PROPERTIES -->
1016 <!-- OBJECT METHODS -->
1017 <!-- OBJECT EVENT FIELDS -->
1018 <!-- FUNCTION PARAMETERS -->
1019 </div>
1020 </div><div>
1021 <div>
1022 <dt>
1023 <var>statusLine</var>
1024 <em>
1025 <!-- TYPE -->
1026 <div style="display:inline">
1027 (
1028 <span class="optional">optional</span>
1029 <span id="typeTemplate">
1030 <span>
1031 <span>string</span>
1032 </span>
1033 </span>
1034 )
1035 </div>
1036 </em>
1037 </dt>
1038 <dd>HTTP status line of the response.</dd>
1039 <!-- OBJECT PROPERTIES -->
1040 <!-- OBJECT METHODS -->
1041 <!-- OBJECT EVENT FIELDS -->
1042 <!-- FUNCTION PARAMETERS -->
1043 </div>
1044 </div>
1045 </dl>
1046 </dd>
1047 <!-- OBJECT METHODS -->
1048 <!-- OBJECT EVENT FIELDS -->
1049 <!-- FUNCTION PARAMETERS -->
1050 </div>
1051 </div><div>
1052 <div>
1053 <dt>
1054 <var>callback</var>
1055 <em>
1056 <!-- TYPE -->
1057 <div style="display:inline">
1058 (
1059 <span class="optional">optional</span>
1060 <span id="typeTemplate">
1061 <span>
1062 <span>function</span>
1063 </span>
1064 </span>
1065 )
1066 </div>
1067 </em>
1068 </dt>
1069 <dd class="todo">
1070 Undocumented.
1071 </dd>
1072 <!-- OBJECT PROPERTIES -->
1073 <!-- OBJECT METHODS -->
1074 <!-- OBJECT EVENT FIELDS -->
1075 <!-- FUNCTION PARAMETERS -->
1076 </div>
1077 </div>
1078 </dl>
1079 </div>
1080 <!-- EXTRA PARAMETERS -->
1081 <div>
1082 <h4>Extra parameters to addListener</h4>
1083 <dl>
1084 <div>
1085 <div>
1086 <dt>
1087 <var>filter</var>
1088 <em>
1089 <!-- TYPE -->
1090 <div style="display:inline">
1091 (
1092 <span id="typeTemplate">
1093 <span>
1094 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
1095 </span>
1096 </span>
1097 )
1098 </div>
1099 </em>
1100 </dt>
1101 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
1102 <!-- OBJECT PROPERTIES -->
1103 <!-- OBJECT METHODS -->
1104 <!-- OBJECT EVENT FIELDS -->
1105 <!-- FUNCTION PARAMETERS -->
1106 </div>
1107 </div><div>
1108 <div>
1109 <dt>
1110 <var>extraInfoSpec</var>
1111 <em>
1112 <!-- TYPE -->
1113 <div style="display:inline">
1114 (
1115 <span class="optional">optional</span>
1116 <span id="typeTemplate">
1117 <span>
1118 <span>
1119 array of <span><span>
1120 <span>
1121 <span>string</span>
1122 <span>["responseHeaders", "blocking", "asyncBlocking"]</ span>
1123 </span>
1124 </span></span>
1125 </span>
1126 </span>
1127 </span>
1128 )
1129 </div>
1130 </em>
1131 </dt>
1132 <dd>Array of extra information that should be passed to the listener f unction.</dd>
1133 <!-- OBJECT PROPERTIES -->
1134 <!-- OBJECT METHODS -->
1135 <!-- OBJECT EVENT FIELDS -->
1136 <!-- FUNCTION PARAMETERS -->
1137 </div>
1138 </div>
1139 </dl>
1140 </div>
1141 <!-- LISTENER RETURN VALUE -->
1142 <h4>Listener returns</h4>
1143 <dl>
1144 <div>
1145 <div>
1146 <dt>
1147 <em>
1148 <!-- TYPE -->
1149 <div style="display:inline">
1150 (
1151 <span class="optional">optional</span>
1152 <span id="typeTemplate">
1153 <span>
1154 <a href="webRequest.html#type-BlockingResponse">Blocking Response</a>
1155 </span>
1156 </span>
1157 )
1158 </div>
1159 </em>
1160 </dt>
1161 <dd>If "blocking" is specified in the "extraInfoSpec" parameter, the e vent listener should return an object of this type.</dd>
1162 <!-- OBJECT PROPERTIES -->
1163 <!-- OBJECT METHODS -->
1164 <!-- OBJECT EVENT FIELDS -->
1165 <!-- FUNCTION PARAMETERS -->
1166 </div>
1167 </div>
1168 </dl>
1169 </div> <!-- /description -->
1170 <!-- /description -->
1171 </div><div class="apiItem">
1172 <a name="event-onBeforeRedirect"></a>
1173 <h4>onBeforeRedirect</h4>
1174 <div class="summary">
1175 <!-- Note: intentionally longer 80 columns -->
1176 <span class="subdued">chrome.webRequest.</span><span>onBeforeRed irect</span><span class="subdued">.addListener</span>(function(<span>object deta ils</span>) <span class="subdued">{...}</span><span>, RequestFilter filter, arra y of string extraInfoSpec</span>);
1177 </div>
1178 <div class="description">
1179 <p>Fired when a server-initiated redirect is about to occur.</p>
1180 <!-- LISTENER PARAMETERS -->
1181 <div>
1182 <h4>Listener parameters</h4>
1183 <dl>
1184 <div>
1185 <div>
1186 <dt>
1187 <var>details</var>
1188 <em>
1189 <!-- TYPE -->
1190 <div style="display:inline">
1191 (
1192 <span id="typeTemplate">
1193 <span>
1194 <span>object</span>
1195 </span>
1196 </span>
1197 )
1198 </div>
1199 </em>
1200 </dt>
1201 <dd class="todo">
1202 Undocumented.
1203 </dd>
1204 <!-- OBJECT PROPERTIES -->
1205 <dd>
1206 <dl>
1207 <div>
1208 <div>
1209 <dt>
1210 <var>requestId</var>
1211 <em>
1212 <!-- TYPE -->
1213 <div style="display:inline">
1214 (
1215 <span id="typeTemplate">
1216 <span>
1217 <span>string</span>
1218 </span>
1219 </span>
1220 )
1221 </div>
1222 </em>
1223 </dt>
1224 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
1225 <!-- OBJECT PROPERTIES -->
1226 <!-- OBJECT METHODS -->
1227 <!-- OBJECT EVENT FIELDS -->
1228 <!-- FUNCTION PARAMETERS -->
1229 </div>
1230 </div><div>
1231 <div>
1232 <dt>
1233 <var>url</var>
1234 <em>
1235 <!-- TYPE -->
1236 <div style="display:inline">
1237 (
1238 <span id="typeTemplate">
1239 <span>
1240 <span>string</span>
1241 </span>
1242 </span>
1243 )
1244 </div>
1245 </em>
1246 </dt>
1247 <dd class="todo">
1248 Undocumented.
1249 </dd>
1250 <!-- OBJECT PROPERTIES -->
1251 <!-- OBJECT METHODS -->
1252 <!-- OBJECT EVENT FIELDS -->
1253 <!-- FUNCTION PARAMETERS -->
1254 </div>
1255 </div><div>
1256 <div>
1257 <dt>
1258 <var>method</var>
1259 <em>
1260 <!-- TYPE -->
1261 <div style="display:inline">
1262 (
1263 <span id="typeTemplate">
1264 <span>
1265 <span>string</span>
1266 </span>
1267 </span>
1268 )
1269 </div>
1270 </em>
1271 </dt>
1272 <dd>Standard HTTP method.</dd>
1273 <!-- OBJECT PROPERTIES -->
1274 <!-- OBJECT METHODS -->
1275 <!-- OBJECT EVENT FIELDS -->
1276 <!-- FUNCTION PARAMETERS -->
1277 </div>
1278 </div><div>
1279 <div>
1280 <dt>
1281 <var>frameId</var>
1282 <em>
1283 <!-- TYPE -->
1284 <div style="display:inline">
1285 (
1286 <span id="typeTemplate">
1287 <span>
1288 <span>integer</span>
1289 </span>
1290 </span>
1291 )
1292 </div>
1293 </em>
1294 </dt>
1295 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
1296 <!-- OBJECT PROPERTIES -->
1297 <!-- OBJECT METHODS -->
1298 <!-- OBJECT EVENT FIELDS -->
1299 <!-- FUNCTION PARAMETERS -->
1300 </div>
1301 </div><div>
1302 <div>
1303 <dt>
1304 <var>parentFrameId</var>
1305 <em>
1306 <!-- TYPE -->
1307 <div style="display:inline">
1308 (
1309 <span id="typeTemplate">
1310 <span>
1311 <span>integer</span>
1312 </span>
1313 </span>
1314 )
1315 </div>
1316 </em>
1317 </dt>
1318 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
1319 <!-- OBJECT PROPERTIES -->
1320 <!-- OBJECT METHODS -->
1321 <!-- OBJECT EVENT FIELDS -->
1322 <!-- FUNCTION PARAMETERS -->
1323 </div>
1324 </div><div>
1325 <div>
1326 <dt>
1327 <var>tabId</var>
1328 <em>
1329 <!-- TYPE -->
1330 <div style="display:inline">
1331 (
1332 <span id="typeTemplate">
1333 <span>
1334 <span>integer</span>
1335 </span>
1336 </span>
1337 )
1338 </div>
1339 </em>
1340 </dt>
1341 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
1342 <!-- OBJECT PROPERTIES -->
1343 <!-- OBJECT METHODS -->
1344 <!-- OBJECT EVENT FIELDS -->
1345 <!-- FUNCTION PARAMETERS -->
1346 </div>
1347 </div><div>
1348 <div>
1349 <dt>
1350 <var>type</var>
1351 <em>
1352 <!-- TYPE -->
1353 <div style="display:inline">
1354 (
1355 <span class="enum">enumerated</span>
1356 <span id="typeTemplate">
1357 <span>
1358 <span>string</span>
1359 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
1360 </span>
1361 </span>
1362 )
1363 </div>
1364 </em>
1365 </dt>
1366 <dd>How the requested resource will be used.</dd>
1367 <!-- OBJECT PROPERTIES -->
1368 <!-- OBJECT METHODS -->
1369 <!-- OBJECT EVENT FIELDS -->
1370 <!-- FUNCTION PARAMETERS -->
1371 </div>
1372 </div><div>
1373 <div>
1374 <dt>
1375 <var>timeStamp</var>
1376 <em>
1377 <!-- TYPE -->
1378 <div style="display:inline">
1379 (
1380 <span id="typeTemplate">
1381 <span>
1382 <span>number</span>
1383 </span>
1384 </span>
1385 )
1386 </div>
1387 </em>
1388 </dt>
1389 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
1390 <!-- OBJECT PROPERTIES -->
1391 <!-- OBJECT METHODS -->
1392 <!-- OBJECT EVENT FIELDS -->
1393 <!-- FUNCTION PARAMETERS -->
1394 </div>
1395 </div><div>
1396 <div>
1397 <dt>
1398 <var>ip</var>
1399 <em>
1400 <!-- TYPE -->
1401 <div style="display:inline">
1402 (
1403 <span class="optional">optional</span>
1404 <span id="typeTemplate">
1405 <span>
1406 <span>string</span>
1407 </span>
1408 </span>
1409 )
1410 </div>
1411 </em>
1412 </dt>
1413 <dd>The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.</dd>
1414 <!-- OBJECT PROPERTIES -->
1415 <!-- OBJECT METHODS -->
1416 <!-- OBJECT EVENT FIELDS -->
1417 <!-- FUNCTION PARAMETERS -->
1418 </div>
1419 </div><div>
1420 <div>
1421 <dt>
1422 <var>fromCache</var>
1423 <em>
1424 <!-- TYPE -->
1425 <div style="display:inline">
1426 (
1427 <span id="typeTemplate">
1428 <span>
1429 <span>boolean</span>
1430 </span>
1431 </span>
1432 )
1433 </div>
1434 </em>
1435 </dt>
1436 <dd>Indicates if this response was fetched from disk cache.</dd>
1437 <!-- OBJECT PROPERTIES -->
1438 <!-- OBJECT METHODS -->
1439 <!-- OBJECT EVENT FIELDS -->
1440 <!-- FUNCTION PARAMETERS -->
1441 </div>
1442 </div><div>
1443 <div>
1444 <dt>
1445 <var>statusCode</var>
1446 <em>
1447 <!-- TYPE -->
1448 <div style="display:inline">
1449 (
1450 <span id="typeTemplate">
1451 <span>
1452 <span>integer</span>
1453 </span>
1454 </span>
1455 )
1456 </div>
1457 </em>
1458 </dt>
1459 <dd>Standard HTTP status code returned by the server.</dd>
1460 <!-- OBJECT PROPERTIES -->
1461 <!-- OBJECT METHODS -->
1462 <!-- OBJECT EVENT FIELDS -->
1463 <!-- FUNCTION PARAMETERS -->
1464 </div>
1465 </div><div>
1466 <div>
1467 <dt>
1468 <var>redirectUrl</var>
1469 <em>
1470 <!-- TYPE -->
1471 <div style="display:inline">
1472 (
1473 <span id="typeTemplate">
1474 <span>
1475 <span>string</span>
1476 </span>
1477 </span>
1478 )
1479 </div>
1480 </em>
1481 </dt>
1482 <dd>The new URL.</dd>
1483 <!-- OBJECT PROPERTIES -->
1484 <!-- OBJECT METHODS -->
1485 <!-- OBJECT EVENT FIELDS -->
1486 <!-- FUNCTION PARAMETERS -->
1487 </div>
1488 </div><div>
1489 <div>
1490 <dt>
1491 <var>responseHeaders</var>
1492 <em>
1493 <!-- TYPE -->
1494 <div style="display:inline">
1495 (
1496 <span class="optional">optional</span>
1497 <span id="typeTemplate">
1498 <span>
1499 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
1500 </span>
1501 </span>
1502 )
1503 </div>
1504 </em>
1505 </dt>
1506 <dd>The HTTP response headers that were received along with this redir ect.</dd>
1507 <!-- OBJECT PROPERTIES -->
1508 <!-- OBJECT METHODS -->
1509 <!-- OBJECT EVENT FIELDS -->
1510 <!-- FUNCTION PARAMETERS -->
1511 </div>
1512 </div><div>
1513 <div>
1514 <dt>
1515 <var>statusLine</var>
1516 <em>
1517 <!-- TYPE -->
1518 <div style="display:inline">
1519 (
1520 <span class="optional">optional</span>
1521 <span id="typeTemplate">
1522 <span>
1523 <span>string</span>
1524 </span>
1525 </span>
1526 )
1527 </div>
1528 </em>
1529 </dt>
1530 <dd>HTTP status line of the response.</dd>
1531 <!-- OBJECT PROPERTIES -->
1532 <!-- OBJECT METHODS -->
1533 <!-- OBJECT EVENT FIELDS -->
1534 <!-- FUNCTION PARAMETERS -->
1535 </div>
1536 </div>
1537 </dl>
1538 </dd>
1539 <!-- OBJECT METHODS -->
1540 <!-- OBJECT EVENT FIELDS -->
1541 <!-- FUNCTION PARAMETERS -->
1542 </div>
1543 </div>
1544 </dl>
1545 </div>
1546 <!-- EXTRA PARAMETERS -->
1547 <div>
1548 <h4>Extra parameters to addListener</h4>
1549 <dl>
1550 <div>
1551 <div>
1552 <dt>
1553 <var>filter</var>
1554 <em>
1555 <!-- TYPE -->
1556 <div style="display:inline">
1557 (
1558 <span id="typeTemplate">
1559 <span>
1560 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
1561 </span>
1562 </span>
1563 )
1564 </div>
1565 </em>
1566 </dt>
1567 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
1568 <!-- OBJECT PROPERTIES -->
1569 <!-- OBJECT METHODS -->
1570 <!-- OBJECT EVENT FIELDS -->
1571 <!-- FUNCTION PARAMETERS -->
1572 </div>
1573 </div><div>
1574 <div>
1575 <dt>
1576 <var>extraInfoSpec</var>
1577 <em>
1578 <!-- TYPE -->
1579 <div style="display:inline">
1580 (
1581 <span class="optional">optional</span>
1582 <span id="typeTemplate">
1583 <span>
1584 <span>
1585 array of <span><span>
1586 <span>
1587 <span>string</span>
1588 <span>["responseHeaders"]</span>
1589 </span>
1590 </span></span>
1591 </span>
1592 </span>
1593 </span>
1594 )
1595 </div>
1596 </em>
1597 </dt>
1598 <dd>Array of extra information that should be passed to the listener f unction.</dd>
1599 <!-- OBJECT PROPERTIES -->
1600 <!-- OBJECT METHODS -->
1601 <!-- OBJECT EVENT FIELDS -->
1602 <!-- FUNCTION PARAMETERS -->
1603 </div>
1604 </div>
1605 </dl>
1606 </div>
1607 <!-- LISTENER RETURN VALUE -->
1608 <dl>
1609 </dl>
1610 </div> <!-- /description -->
1611 <!-- /description -->
1612 </div><div class="apiItem">
1613 <a name="event-onBeforeRequest"></a>
1614 <h4>onBeforeRequest</h4>
1615 <div class="summary">
1616 <!-- Note: intentionally longer 80 columns -->
1617 <span class="subdued">chrome.webRequest.</span><span>onBeforeReq uest</span><span class="subdued">.addListener</span>(function(<span>object detai ls</span>) <span class="subdued">{...}</span><span>, RequestFilter filter, array of string extraInfoSpec</span>);
1618 </div>
1619 <div class="description">
1620 <p>Fired when a request is about to occur.</p>
1621 <!-- LISTENER PARAMETERS -->
1622 <div>
1623 <h4>Listener parameters</h4>
1624 <dl>
1625 <div>
1626 <div>
1627 <dt>
1628 <var>details</var>
1629 <em>
1630 <!-- TYPE -->
1631 <div style="display:inline">
1632 (
1633 <span id="typeTemplate">
1634 <span>
1635 <span>object</span>
1636 </span>
1637 </span>
1638 )
1639 </div>
1640 </em>
1641 </dt>
1642 <dd class="todo">
1643 Undocumented.
1644 </dd>
1645 <!-- OBJECT PROPERTIES -->
1646 <dd>
1647 <dl>
1648 <div>
1649 <div>
1650 <dt>
1651 <var>requestId</var>
1652 <em>
1653 <!-- TYPE -->
1654 <div style="display:inline">
1655 (
1656 <span id="typeTemplate">
1657 <span>
1658 <span>string</span>
1659 </span>
1660 </span>
1661 )
1662 </div>
1663 </em>
1664 </dt>
1665 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
1666 <!-- OBJECT PROPERTIES -->
1667 <!-- OBJECT METHODS -->
1668 <!-- OBJECT EVENT FIELDS -->
1669 <!-- FUNCTION PARAMETERS -->
1670 </div>
1671 </div><div>
1672 <div>
1673 <dt>
1674 <var>url</var>
1675 <em>
1676 <!-- TYPE -->
1677 <div style="display:inline">
1678 (
1679 <span id="typeTemplate">
1680 <span>
1681 <span>string</span>
1682 </span>
1683 </span>
1684 )
1685 </div>
1686 </em>
1687 </dt>
1688 <dd class="todo">
1689 Undocumented.
1690 </dd>
1691 <!-- OBJECT PROPERTIES -->
1692 <!-- OBJECT METHODS -->
1693 <!-- OBJECT EVENT FIELDS -->
1694 <!-- FUNCTION PARAMETERS -->
1695 </div>
1696 </div><div>
1697 <div>
1698 <dt>
1699 <var>method</var>
1700 <em>
1701 <!-- TYPE -->
1702 <div style="display:inline">
1703 (
1704 <span id="typeTemplate">
1705 <span>
1706 <span>string</span>
1707 </span>
1708 </span>
1709 )
1710 </div>
1711 </em>
1712 </dt>
1713 <dd>Standard HTTP method.</dd>
1714 <!-- OBJECT PROPERTIES -->
1715 <!-- OBJECT METHODS -->
1716 <!-- OBJECT EVENT FIELDS -->
1717 <!-- FUNCTION PARAMETERS -->
1718 </div>
1719 </div><div>
1720 <div>
1721 <dt>
1722 <var>frameId</var>
1723 <em>
1724 <!-- TYPE -->
1725 <div style="display:inline">
1726 (
1727 <span id="typeTemplate">
1728 <span>
1729 <span>integer</span>
1730 </span>
1731 </span>
1732 )
1733 </div>
1734 </em>
1735 </dt>
1736 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
1737 <!-- OBJECT PROPERTIES -->
1738 <!-- OBJECT METHODS -->
1739 <!-- OBJECT EVENT FIELDS -->
1740 <!-- FUNCTION PARAMETERS -->
1741 </div>
1742 </div><div>
1743 <div>
1744 <dt>
1745 <var>parentFrameId</var>
1746 <em>
1747 <!-- TYPE -->
1748 <div style="display:inline">
1749 (
1750 <span id="typeTemplate">
1751 <span>
1752 <span>integer</span>
1753 </span>
1754 </span>
1755 )
1756 </div>
1757 </em>
1758 </dt>
1759 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
1760 <!-- OBJECT PROPERTIES -->
1761 <!-- OBJECT METHODS -->
1762 <!-- OBJECT EVENT FIELDS -->
1763 <!-- FUNCTION PARAMETERS -->
1764 </div>
1765 </div><div>
1766 <div>
1767 <dt>
1768 <var>tabId</var>
1769 <em>
1770 <!-- TYPE -->
1771 <div style="display:inline">
1772 (
1773 <span id="typeTemplate">
1774 <span>
1775 <span>integer</span>
1776 </span>
1777 </span>
1778 )
1779 </div>
1780 </em>
1781 </dt>
1782 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
1783 <!-- OBJECT PROPERTIES -->
1784 <!-- OBJECT METHODS -->
1785 <!-- OBJECT EVENT FIELDS -->
1786 <!-- FUNCTION PARAMETERS -->
1787 </div>
1788 </div><div>
1789 <div>
1790 <dt>
1791 <var>type</var>
1792 <em>
1793 <!-- TYPE -->
1794 <div style="display:inline">
1795 (
1796 <span class="enum">enumerated</span>
1797 <span id="typeTemplate">
1798 <span>
1799 <span>string</span>
1800 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
1801 </span>
1802 </span>
1803 )
1804 </div>
1805 </em>
1806 </dt>
1807 <dd>How the requested resource will be used.</dd>
1808 <!-- OBJECT PROPERTIES -->
1809 <!-- OBJECT METHODS -->
1810 <!-- OBJECT EVENT FIELDS -->
1811 <!-- FUNCTION PARAMETERS -->
1812 </div>
1813 </div><div>
1814 <div>
1815 <dt>
1816 <var>timeStamp</var>
1817 <em>
1818 <!-- TYPE -->
1819 <div style="display:inline">
1820 (
1821 <span id="typeTemplate">
1822 <span>
1823 <span>number</span>
1824 </span>
1825 </span>
1826 )
1827 </div>
1828 </em>
1829 </dt>
1830 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
1831 <!-- OBJECT PROPERTIES -->
1832 <!-- OBJECT METHODS -->
1833 <!-- OBJECT EVENT FIELDS -->
1834 <!-- FUNCTION PARAMETERS -->
1835 </div>
1836 </div>
1837 </dl>
1838 </dd>
1839 <!-- OBJECT METHODS -->
1840 <!-- OBJECT EVENT FIELDS -->
1841 <!-- FUNCTION PARAMETERS -->
1842 </div>
1843 </div>
1844 </dl>
1845 </div>
1846 <!-- EXTRA PARAMETERS -->
1847 <div>
1848 <h4>Extra parameters to addListener</h4>
1849 <dl>
1850 <div>
1851 <div>
1852 <dt>
1853 <var>filter</var>
1854 <em>
1855 <!-- TYPE -->
1856 <div style="display:inline">
1857 (
1858 <span id="typeTemplate">
1859 <span>
1860 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
1861 </span>
1862 </span>
1863 )
1864 </div>
1865 </em>
1866 </dt>
1867 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
1868 <!-- OBJECT PROPERTIES -->
1869 <!-- OBJECT METHODS -->
1870 <!-- OBJECT EVENT FIELDS -->
1871 <!-- FUNCTION PARAMETERS -->
1872 </div>
1873 </div><div>
1874 <div>
1875 <dt>
1876 <var>extraInfoSpec</var>
1877 <em>
1878 <!-- TYPE -->
1879 <div style="display:inline">
1880 (
1881 <span class="optional">optional</span>
1882 <span id="typeTemplate">
1883 <span>
1884 <span>
1885 array of <span><span>
1886 <span>
1887 <span>string</span>
1888 <span>["blocking"]</span>
1889 </span>
1890 </span></span>
1891 </span>
1892 </span>
1893 </span>
1894 )
1895 </div>
1896 </em>
1897 </dt>
1898 <dd>Array of extra information that should be passed to the listener f unction.</dd>
1899 <!-- OBJECT PROPERTIES -->
1900 <!-- OBJECT METHODS -->
1901 <!-- OBJECT EVENT FIELDS -->
1902 <!-- FUNCTION PARAMETERS -->
1903 </div>
1904 </div>
1905 </dl>
1906 </div>
1907 <!-- LISTENER RETURN VALUE -->
1908 <h4>Listener returns</h4>
1909 <dl>
1910 <div>
1911 <div>
1912 <dt>
1913 <em>
1914 <!-- TYPE -->
1915 <div style="display:inline">
1916 (
1917 <span class="optional">optional</span>
1918 <span id="typeTemplate">
1919 <span>
1920 <a href="webRequest.html#type-BlockingResponse">Blocking Response</a>
1921 </span>
1922 </span>
1923 )
1924 </div>
1925 </em>
1926 </dt>
1927 <dd>If "blocking" is specified in the "extraInfoSpec" parameter, the e vent listener should return an object of this type.</dd>
1928 <!-- OBJECT PROPERTIES -->
1929 <!-- OBJECT METHODS -->
1930 <!-- OBJECT EVENT FIELDS -->
1931 <!-- FUNCTION PARAMETERS -->
1932 </div>
1933 </div>
1934 </dl>
1935 </div> <!-- /description -->
1936 <!-- /description -->
1937 </div><div class="apiItem">
1938 <a name="event-onBeforeSendHeaders"></a>
1939 <h4>onBeforeSendHeaders</h4>
1940 <div class="summary">
1941 <!-- Note: intentionally longer 80 columns -->
1942 <span class="subdued">chrome.webRequest.</span><span>onBeforeSen dHeaders</span><span class="subdued">.addListener</span>(function(<span>object d etails</span>) <span class="subdued">{...}</span><span>, RequestFilter filter, a rray of string extraInfoSpec</span>);
1943 </div>
1944 <div class="description">
1945 <p>Fired before sending an HTTP request, once the request header s are available. This may occur after a TCP connection is made to the server, bu t before any HTTP data is sent. </p>
1946 <!-- LISTENER PARAMETERS -->
1947 <div>
1948 <h4>Listener parameters</h4>
1949 <dl>
1950 <div>
1951 <div>
1952 <dt>
1953 <var>details</var>
1954 <em>
1955 <!-- TYPE -->
1956 <div style="display:inline">
1957 (
1958 <span id="typeTemplate">
1959 <span>
1960 <span>object</span>
1961 </span>
1962 </span>
1963 )
1964 </div>
1965 </em>
1966 </dt>
1967 <dd class="todo">
1968 Undocumented.
1969 </dd>
1970 <!-- OBJECT PROPERTIES -->
1971 <dd>
1972 <dl>
1973 <div>
1974 <div>
1975 <dt>
1976 <var>requestId</var>
1977 <em>
1978 <!-- TYPE -->
1979 <div style="display:inline">
1980 (
1981 <span id="typeTemplate">
1982 <span>
1983 <span>string</span>
1984 </span>
1985 </span>
1986 )
1987 </div>
1988 </em>
1989 </dt>
1990 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
1991 <!-- OBJECT PROPERTIES -->
1992 <!-- OBJECT METHODS -->
1993 <!-- OBJECT EVENT FIELDS -->
1994 <!-- FUNCTION PARAMETERS -->
1995 </div>
1996 </div><div>
1997 <div>
1998 <dt>
1999 <var>url</var>
2000 <em>
2001 <!-- TYPE -->
2002 <div style="display:inline">
2003 (
2004 <span id="typeTemplate">
2005 <span>
2006 <span>string</span>
2007 </span>
2008 </span>
2009 )
2010 </div>
2011 </em>
2012 </dt>
2013 <dd class="todo">
2014 Undocumented.
2015 </dd>
2016 <!-- OBJECT PROPERTIES -->
2017 <!-- OBJECT METHODS -->
2018 <!-- OBJECT EVENT FIELDS -->
2019 <!-- FUNCTION PARAMETERS -->
2020 </div>
2021 </div><div>
2022 <div>
2023 <dt>
2024 <var>method</var>
2025 <em>
2026 <!-- TYPE -->
2027 <div style="display:inline">
2028 (
2029 <span id="typeTemplate">
2030 <span>
2031 <span>string</span>
2032 </span>
2033 </span>
2034 )
2035 </div>
2036 </em>
2037 </dt>
2038 <dd>Standard HTTP method.</dd>
2039 <!-- OBJECT PROPERTIES -->
2040 <!-- OBJECT METHODS -->
2041 <!-- OBJECT EVENT FIELDS -->
2042 <!-- FUNCTION PARAMETERS -->
2043 </div>
2044 </div><div>
2045 <div>
2046 <dt>
2047 <var>frameId</var>
2048 <em>
2049 <!-- TYPE -->
2050 <div style="display:inline">
2051 (
2052 <span id="typeTemplate">
2053 <span>
2054 <span>integer</span>
2055 </span>
2056 </span>
2057 )
2058 </div>
2059 </em>
2060 </dt>
2061 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
2062 <!-- OBJECT PROPERTIES -->
2063 <!-- OBJECT METHODS -->
2064 <!-- OBJECT EVENT FIELDS -->
2065 <!-- FUNCTION PARAMETERS -->
2066 </div>
2067 </div><div>
2068 <div>
2069 <dt>
2070 <var>parentFrameId</var>
2071 <em>
2072 <!-- TYPE -->
2073 <div style="display:inline">
2074 (
2075 <span id="typeTemplate">
2076 <span>
2077 <span>integer</span>
2078 </span>
2079 </span>
2080 )
2081 </div>
2082 </em>
2083 </dt>
2084 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
2085 <!-- OBJECT PROPERTIES -->
2086 <!-- OBJECT METHODS -->
2087 <!-- OBJECT EVENT FIELDS -->
2088 <!-- FUNCTION PARAMETERS -->
2089 </div>
2090 </div><div>
2091 <div>
2092 <dt>
2093 <var>tabId</var>
2094 <em>
2095 <!-- TYPE -->
2096 <div style="display:inline">
2097 (
2098 <span id="typeTemplate">
2099 <span>
2100 <span>integer</span>
2101 </span>
2102 </span>
2103 )
2104 </div>
2105 </em>
2106 </dt>
2107 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
2108 <!-- OBJECT PROPERTIES -->
2109 <!-- OBJECT METHODS -->
2110 <!-- OBJECT EVENT FIELDS -->
2111 <!-- FUNCTION PARAMETERS -->
2112 </div>
2113 </div><div>
2114 <div>
2115 <dt>
2116 <var>type</var>
2117 <em>
2118 <!-- TYPE -->
2119 <div style="display:inline">
2120 (
2121 <span class="enum">enumerated</span>
2122 <span id="typeTemplate">
2123 <span>
2124 <span>string</span>
2125 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
2126 </span>
2127 </span>
2128 )
2129 </div>
2130 </em>
2131 </dt>
2132 <dd>How the requested resource will be used.</dd>
2133 <!-- OBJECT PROPERTIES -->
2134 <!-- OBJECT METHODS -->
2135 <!-- OBJECT EVENT FIELDS -->
2136 <!-- FUNCTION PARAMETERS -->
2137 </div>
2138 </div><div>
2139 <div>
2140 <dt>
2141 <var>timeStamp</var>
2142 <em>
2143 <!-- TYPE -->
2144 <div style="display:inline">
2145 (
2146 <span id="typeTemplate">
2147 <span>
2148 <span>number</span>
2149 </span>
2150 </span>
2151 )
2152 </div>
2153 </em>
2154 </dt>
2155 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
2156 <!-- OBJECT PROPERTIES -->
2157 <!-- OBJECT METHODS -->
2158 <!-- OBJECT EVENT FIELDS -->
2159 <!-- FUNCTION PARAMETERS -->
2160 </div>
2161 </div><div>
2162 <div>
2163 <dt>
2164 <var>requestHeaders</var>
2165 <em>
2166 <!-- TYPE -->
2167 <div style="display:inline">
2168 (
2169 <span class="optional">optional</span>
2170 <span id="typeTemplate">
2171 <span>
2172 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
2173 </span>
2174 </span>
2175 )
2176 </div>
2177 </em>
2178 </dt>
2179 <dd>The HTTP request headers that are going to be sent out with this r equest.</dd>
2180 <!-- OBJECT PROPERTIES -->
2181 <!-- OBJECT METHODS -->
2182 <!-- OBJECT EVENT FIELDS -->
2183 <!-- FUNCTION PARAMETERS -->
2184 </div>
2185 </div>
2186 </dl>
2187 </dd>
2188 <!-- OBJECT METHODS -->
2189 <!-- OBJECT EVENT FIELDS -->
2190 <!-- FUNCTION PARAMETERS -->
2191 </div>
2192 </div>
2193 </dl>
2194 </div>
2195 <!-- EXTRA PARAMETERS -->
2196 <div>
2197 <h4>Extra parameters to addListener</h4>
2198 <dl>
2199 <div>
2200 <div>
2201 <dt>
2202 <var>filter</var>
2203 <em>
2204 <!-- TYPE -->
2205 <div style="display:inline">
2206 (
2207 <span id="typeTemplate">
2208 <span>
2209 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
2210 </span>
2211 </span>
2212 )
2213 </div>
2214 </em>
2215 </dt>
2216 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
2217 <!-- OBJECT PROPERTIES -->
2218 <!-- OBJECT METHODS -->
2219 <!-- OBJECT EVENT FIELDS -->
2220 <!-- FUNCTION PARAMETERS -->
2221 </div>
2222 </div><div>
2223 <div>
2224 <dt>
2225 <var>extraInfoSpec</var>
2226 <em>
2227 <!-- TYPE -->
2228 <div style="display:inline">
2229 (
2230 <span class="optional">optional</span>
2231 <span id="typeTemplate">
2232 <span>
2233 <span>
2234 array of <span><span>
2235 <span>
2236 <span>string</span>
2237 <span>["requestHeaders", "blocking"]</span>
2238 </span>
2239 </span></span>
2240 </span>
2241 </span>
2242 </span>
2243 )
2244 </div>
2245 </em>
2246 </dt>
2247 <dd>Array of extra information that should be passed to the listener f unction.</dd>
2248 <!-- OBJECT PROPERTIES -->
2249 <!-- OBJECT METHODS -->
2250 <!-- OBJECT EVENT FIELDS -->
2251 <!-- FUNCTION PARAMETERS -->
2252 </div>
2253 </div>
2254 </dl>
2255 </div>
2256 <!-- LISTENER RETURN VALUE -->
2257 <h4>Listener returns</h4>
2258 <dl>
2259 <div>
2260 <div>
2261 <dt>
2262 <em>
2263 <!-- TYPE -->
2264 <div style="display:inline">
2265 (
2266 <span class="optional">optional</span>
2267 <span id="typeTemplate">
2268 <span>
2269 <a href="webRequest.html#type-BlockingResponse">Blocking Response</a>
2270 </span>
2271 </span>
2272 )
2273 </div>
2274 </em>
2275 </dt>
2276 <dd>If "blocking" is specified in the "extraInfoSpec" parameter, the e vent listener should return an object of this type.</dd>
2277 <!-- OBJECT PROPERTIES -->
2278 <!-- OBJECT METHODS -->
2279 <!-- OBJECT EVENT FIELDS -->
2280 <!-- FUNCTION PARAMETERS -->
2281 </div>
2282 </div>
2283 </dl>
2284 </div> <!-- /description -->
2285 <!-- /description -->
2286 </div><div class="apiItem">
2287 <a name="event-onCompleted"></a>
2288 <h4>onCompleted</h4>
2289 <div class="summary">
2290 <!-- Note: intentionally longer 80 columns -->
2291 <span class="subdued">chrome.webRequest.</span><span>onCompleted </span><span class="subdued">.addListener</span>(function(<span>object details</ span>) <span class="subdued">{...}</span><span>, RequestFilter filter, array of string extraInfoSpec</span>);
2292 </div>
2293 <div class="description">
2294 <p>Fired when a request is completed.</p>
2295 <!-- LISTENER PARAMETERS -->
2296 <div>
2297 <h4>Listener parameters</h4>
2298 <dl>
2299 <div>
2300 <div>
2301 <dt>
2302 <var>details</var>
2303 <em>
2304 <!-- TYPE -->
2305 <div style="display:inline">
2306 (
2307 <span id="typeTemplate">
2308 <span>
2309 <span>object</span>
2310 </span>
2311 </span>
2312 )
2313 </div>
2314 </em>
2315 </dt>
2316 <dd class="todo">
2317 Undocumented.
2318 </dd>
2319 <!-- OBJECT PROPERTIES -->
2320 <dd>
2321 <dl>
2322 <div>
2323 <div>
2324 <dt>
2325 <var>requestId</var>
2326 <em>
2327 <!-- TYPE -->
2328 <div style="display:inline">
2329 (
2330 <span id="typeTemplate">
2331 <span>
2332 <span>string</span>
2333 </span>
2334 </span>
2335 )
2336 </div>
2337 </em>
2338 </dt>
2339 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
2340 <!-- OBJECT PROPERTIES -->
2341 <!-- OBJECT METHODS -->
2342 <!-- OBJECT EVENT FIELDS -->
2343 <!-- FUNCTION PARAMETERS -->
2344 </div>
2345 </div><div>
2346 <div>
2347 <dt>
2348 <var>url</var>
2349 <em>
2350 <!-- TYPE -->
2351 <div style="display:inline">
2352 (
2353 <span id="typeTemplate">
2354 <span>
2355 <span>string</span>
2356 </span>
2357 </span>
2358 )
2359 </div>
2360 </em>
2361 </dt>
2362 <dd class="todo">
2363 Undocumented.
2364 </dd>
2365 <!-- OBJECT PROPERTIES -->
2366 <!-- OBJECT METHODS -->
2367 <!-- OBJECT EVENT FIELDS -->
2368 <!-- FUNCTION PARAMETERS -->
2369 </div>
2370 </div><div>
2371 <div>
2372 <dt>
2373 <var>method</var>
2374 <em>
2375 <!-- TYPE -->
2376 <div style="display:inline">
2377 (
2378 <span id="typeTemplate">
2379 <span>
2380 <span>string</span>
2381 </span>
2382 </span>
2383 )
2384 </div>
2385 </em>
2386 </dt>
2387 <dd>Standard HTTP method.</dd>
2388 <!-- OBJECT PROPERTIES -->
2389 <!-- OBJECT METHODS -->
2390 <!-- OBJECT EVENT FIELDS -->
2391 <!-- FUNCTION PARAMETERS -->
2392 </div>
2393 </div><div>
2394 <div>
2395 <dt>
2396 <var>frameId</var>
2397 <em>
2398 <!-- TYPE -->
2399 <div style="display:inline">
2400 (
2401 <span id="typeTemplate">
2402 <span>
2403 <span>integer</span>
2404 </span>
2405 </span>
2406 )
2407 </div>
2408 </em>
2409 </dt>
2410 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
2411 <!-- OBJECT PROPERTIES -->
2412 <!-- OBJECT METHODS -->
2413 <!-- OBJECT EVENT FIELDS -->
2414 <!-- FUNCTION PARAMETERS -->
2415 </div>
2416 </div><div>
2417 <div>
2418 <dt>
2419 <var>parentFrameId</var>
2420 <em>
2421 <!-- TYPE -->
2422 <div style="display:inline">
2423 (
2424 <span id="typeTemplate">
2425 <span>
2426 <span>integer</span>
2427 </span>
2428 </span>
2429 )
2430 </div>
2431 </em>
2432 </dt>
2433 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
2434 <!-- OBJECT PROPERTIES -->
2435 <!-- OBJECT METHODS -->
2436 <!-- OBJECT EVENT FIELDS -->
2437 <!-- FUNCTION PARAMETERS -->
2438 </div>
2439 </div><div>
2440 <div>
2441 <dt>
2442 <var>tabId</var>
2443 <em>
2444 <!-- TYPE -->
2445 <div style="display:inline">
2446 (
2447 <span id="typeTemplate">
2448 <span>
2449 <span>integer</span>
2450 </span>
2451 </span>
2452 )
2453 </div>
2454 </em>
2455 </dt>
2456 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
2457 <!-- OBJECT PROPERTIES -->
2458 <!-- OBJECT METHODS -->
2459 <!-- OBJECT EVENT FIELDS -->
2460 <!-- FUNCTION PARAMETERS -->
2461 </div>
2462 </div><div>
2463 <div>
2464 <dt>
2465 <var>type</var>
2466 <em>
2467 <!-- TYPE -->
2468 <div style="display:inline">
2469 (
2470 <span class="enum">enumerated</span>
2471 <span id="typeTemplate">
2472 <span>
2473 <span>string</span>
2474 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
2475 </span>
2476 </span>
2477 )
2478 </div>
2479 </em>
2480 </dt>
2481 <dd>How the requested resource will be used.</dd>
2482 <!-- OBJECT PROPERTIES -->
2483 <!-- OBJECT METHODS -->
2484 <!-- OBJECT EVENT FIELDS -->
2485 <!-- FUNCTION PARAMETERS -->
2486 </div>
2487 </div><div>
2488 <div>
2489 <dt>
2490 <var>timeStamp</var>
2491 <em>
2492 <!-- TYPE -->
2493 <div style="display:inline">
2494 (
2495 <span id="typeTemplate">
2496 <span>
2497 <span>number</span>
2498 </span>
2499 </span>
2500 )
2501 </div>
2502 </em>
2503 </dt>
2504 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
2505 <!-- OBJECT PROPERTIES -->
2506 <!-- OBJECT METHODS -->
2507 <!-- OBJECT EVENT FIELDS -->
2508 <!-- FUNCTION PARAMETERS -->
2509 </div>
2510 </div><div>
2511 <div>
2512 <dt>
2513 <var>ip</var>
2514 <em>
2515 <!-- TYPE -->
2516 <div style="display:inline">
2517 (
2518 <span class="optional">optional</span>
2519 <span id="typeTemplate">
2520 <span>
2521 <span>string</span>
2522 </span>
2523 </span>
2524 )
2525 </div>
2526 </em>
2527 </dt>
2528 <dd>The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.</dd>
2529 <!-- OBJECT PROPERTIES -->
2530 <!-- OBJECT METHODS -->
2531 <!-- OBJECT EVENT FIELDS -->
2532 <!-- FUNCTION PARAMETERS -->
2533 </div>
2534 </div><div>
2535 <div>
2536 <dt>
2537 <var>fromCache</var>
2538 <em>
2539 <!-- TYPE -->
2540 <div style="display:inline">
2541 (
2542 <span id="typeTemplate">
2543 <span>
2544 <span>boolean</span>
2545 </span>
2546 </span>
2547 )
2548 </div>
2549 </em>
2550 </dt>
2551 <dd>Indicates if this response was fetched from disk cache.</dd>
2552 <!-- OBJECT PROPERTIES -->
2553 <!-- OBJECT METHODS -->
2554 <!-- OBJECT EVENT FIELDS -->
2555 <!-- FUNCTION PARAMETERS -->
2556 </div>
2557 </div><div>
2558 <div>
2559 <dt>
2560 <var>statusCode</var>
2561 <em>
2562 <!-- TYPE -->
2563 <div style="display:inline">
2564 (
2565 <span id="typeTemplate">
2566 <span>
2567 <span>integer</span>
2568 </span>
2569 </span>
2570 )
2571 </div>
2572 </em>
2573 </dt>
2574 <dd>Standard HTTP status code returned by the server.</dd>
2575 <!-- OBJECT PROPERTIES -->
2576 <!-- OBJECT METHODS -->
2577 <!-- OBJECT EVENT FIELDS -->
2578 <!-- FUNCTION PARAMETERS -->
2579 </div>
2580 </div><div>
2581 <div>
2582 <dt>
2583 <var>responseHeaders</var>
2584 <em>
2585 <!-- TYPE -->
2586 <div style="display:inline">
2587 (
2588 <span class="optional">optional</span>
2589 <span id="typeTemplate">
2590 <span>
2591 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
2592 </span>
2593 </span>
2594 )
2595 </div>
2596 </em>
2597 </dt>
2598 <dd>The HTTP response headers that were received along with this respo nse.</dd>
2599 <!-- OBJECT PROPERTIES -->
2600 <!-- OBJECT METHODS -->
2601 <!-- OBJECT EVENT FIELDS -->
2602 <!-- FUNCTION PARAMETERS -->
2603 </div>
2604 </div><div>
2605 <div>
2606 <dt>
2607 <var>statusLine</var>
2608 <em>
2609 <!-- TYPE -->
2610 <div style="display:inline">
2611 (
2612 <span class="optional">optional</span>
2613 <span id="typeTemplate">
2614 <span>
2615 <span>string</span>
2616 </span>
2617 </span>
2618 )
2619 </div>
2620 </em>
2621 </dt>
2622 <dd>HTTP status line of the response.</dd>
2623 <!-- OBJECT PROPERTIES -->
2624 <!-- OBJECT METHODS -->
2625 <!-- OBJECT EVENT FIELDS -->
2626 <!-- FUNCTION PARAMETERS -->
2627 </div>
2628 </div>
2629 </dl>
2630 </dd>
2631 <!-- OBJECT METHODS -->
2632 <!-- OBJECT EVENT FIELDS -->
2633 <!-- FUNCTION PARAMETERS -->
2634 </div>
2635 </div>
2636 </dl>
2637 </div>
2638 <!-- EXTRA PARAMETERS -->
2639 <div>
2640 <h4>Extra parameters to addListener</h4>
2641 <dl>
2642 <div>
2643 <div>
2644 <dt>
2645 <var>filter</var>
2646 <em>
2647 <!-- TYPE -->
2648 <div style="display:inline">
2649 (
2650 <span id="typeTemplate">
2651 <span>
2652 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
2653 </span>
2654 </span>
2655 )
2656 </div>
2657 </em>
2658 </dt>
2659 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
2660 <!-- OBJECT PROPERTIES -->
2661 <!-- OBJECT METHODS -->
2662 <!-- OBJECT EVENT FIELDS -->
2663 <!-- FUNCTION PARAMETERS -->
2664 </div>
2665 </div><div>
2666 <div>
2667 <dt>
2668 <var>extraInfoSpec</var>
2669 <em>
2670 <!-- TYPE -->
2671 <div style="display:inline">
2672 (
2673 <span class="optional">optional</span>
2674 <span id="typeTemplate">
2675 <span>
2676 <span>
2677 array of <span><span>
2678 <span>
2679 <span>string</span>
2680 <span>["responseHeaders"]</span>
2681 </span>
2682 </span></span>
2683 </span>
2684 </span>
2685 </span>
2686 )
2687 </div>
2688 </em>
2689 </dt>
2690 <dd>Array of extra information that should be passed to the listener f unction.</dd>
2691 <!-- OBJECT PROPERTIES -->
2692 <!-- OBJECT METHODS -->
2693 <!-- OBJECT EVENT FIELDS -->
2694 <!-- FUNCTION PARAMETERS -->
2695 </div>
2696 </div>
2697 </dl>
2698 </div>
2699 <!-- LISTENER RETURN VALUE -->
2700 <dl>
2701 </dl>
2702 </div> <!-- /description -->
2703 <!-- /description -->
2704 </div><div class="apiItem">
2705 <a name="event-onErrorOccurred"></a>
2706 <h4>onErrorOccurred</h4>
2707 <div class="summary">
2708 <!-- Note: intentionally longer 80 columns -->
2709 <span class="subdued">chrome.webRequest.</span><span>onErrorOccu rred</span><span class="subdued">.addListener</span>(function(<span>object detai ls</span>) <span class="subdued">{...}</span><span>, RequestFilter filter</span> );
2710 </div>
2711 <div class="description">
2712 <p>Fired when an error occurs.</p>
2713 <!-- LISTENER PARAMETERS -->
2714 <div>
2715 <h4>Listener parameters</h4>
2716 <dl>
2717 <div>
2718 <div>
2719 <dt>
2720 <var>details</var>
2721 <em>
2722 <!-- TYPE -->
2723 <div style="display:inline">
2724 (
2725 <span id="typeTemplate">
2726 <span>
2727 <span>object</span>
2728 </span>
2729 </span>
2730 )
2731 </div>
2732 </em>
2733 </dt>
2734 <dd class="todo">
2735 Undocumented.
2736 </dd>
2737 <!-- OBJECT PROPERTIES -->
2738 <dd>
2739 <dl>
2740 <div>
2741 <div>
2742 <dt>
2743 <var>requestId</var>
2744 <em>
2745 <!-- TYPE -->
2746 <div style="display:inline">
2747 (
2748 <span id="typeTemplate">
2749 <span>
2750 <span>string</span>
2751 </span>
2752 </span>
2753 )
2754 </div>
2755 </em>
2756 </dt>
2757 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
2758 <!-- OBJECT PROPERTIES -->
2759 <!-- OBJECT METHODS -->
2760 <!-- OBJECT EVENT FIELDS -->
2761 <!-- FUNCTION PARAMETERS -->
2762 </div>
2763 </div><div>
2764 <div>
2765 <dt>
2766 <var>url</var>
2767 <em>
2768 <!-- TYPE -->
2769 <div style="display:inline">
2770 (
2771 <span id="typeTemplate">
2772 <span>
2773 <span>string</span>
2774 </span>
2775 </span>
2776 )
2777 </div>
2778 </em>
2779 </dt>
2780 <dd class="todo">
2781 Undocumented.
2782 </dd>
2783 <!-- OBJECT PROPERTIES -->
2784 <!-- OBJECT METHODS -->
2785 <!-- OBJECT EVENT FIELDS -->
2786 <!-- FUNCTION PARAMETERS -->
2787 </div>
2788 </div><div>
2789 <div>
2790 <dt>
2791 <var>method</var>
2792 <em>
2793 <!-- TYPE -->
2794 <div style="display:inline">
2795 (
2796 <span id="typeTemplate">
2797 <span>
2798 <span>string</span>
2799 </span>
2800 </span>
2801 )
2802 </div>
2803 </em>
2804 </dt>
2805 <dd>Standard HTTP method.</dd>
2806 <!-- OBJECT PROPERTIES -->
2807 <!-- OBJECT METHODS -->
2808 <!-- OBJECT EVENT FIELDS -->
2809 <!-- FUNCTION PARAMETERS -->
2810 </div>
2811 </div><div>
2812 <div>
2813 <dt>
2814 <var>frameId</var>
2815 <em>
2816 <!-- TYPE -->
2817 <div style="display:inline">
2818 (
2819 <span id="typeTemplate">
2820 <span>
2821 <span>integer</span>
2822 </span>
2823 </span>
2824 )
2825 </div>
2826 </em>
2827 </dt>
2828 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
2829 <!-- OBJECT PROPERTIES -->
2830 <!-- OBJECT METHODS -->
2831 <!-- OBJECT EVENT FIELDS -->
2832 <!-- FUNCTION PARAMETERS -->
2833 </div>
2834 </div><div>
2835 <div>
2836 <dt>
2837 <var>parentFrameId</var>
2838 <em>
2839 <!-- TYPE -->
2840 <div style="display:inline">
2841 (
2842 <span id="typeTemplate">
2843 <span>
2844 <span>integer</span>
2845 </span>
2846 </span>
2847 )
2848 </div>
2849 </em>
2850 </dt>
2851 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
2852 <!-- OBJECT PROPERTIES -->
2853 <!-- OBJECT METHODS -->
2854 <!-- OBJECT EVENT FIELDS -->
2855 <!-- FUNCTION PARAMETERS -->
2856 </div>
2857 </div><div>
2858 <div>
2859 <dt>
2860 <var>tabId</var>
2861 <em>
2862 <!-- TYPE -->
2863 <div style="display:inline">
2864 (
2865 <span id="typeTemplate">
2866 <span>
2867 <span>integer</span>
2868 </span>
2869 </span>
2870 )
2871 </div>
2872 </em>
2873 </dt>
2874 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
2875 <!-- OBJECT PROPERTIES -->
2876 <!-- OBJECT METHODS -->
2877 <!-- OBJECT EVENT FIELDS -->
2878 <!-- FUNCTION PARAMETERS -->
2879 </div>
2880 </div><div>
2881 <div>
2882 <dt>
2883 <var>type</var>
2884 <em>
2885 <!-- TYPE -->
2886 <div style="display:inline">
2887 (
2888 <span class="enum">enumerated</span>
2889 <span id="typeTemplate">
2890 <span>
2891 <span>string</span>
2892 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
2893 </span>
2894 </span>
2895 )
2896 </div>
2897 </em>
2898 </dt>
2899 <dd>How the requested resource will be used.</dd>
2900 <!-- OBJECT PROPERTIES -->
2901 <!-- OBJECT METHODS -->
2902 <!-- OBJECT EVENT FIELDS -->
2903 <!-- FUNCTION PARAMETERS -->
2904 </div>
2905 </div><div>
2906 <div>
2907 <dt>
2908 <var>timeStamp</var>
2909 <em>
2910 <!-- TYPE -->
2911 <div style="display:inline">
2912 (
2913 <span id="typeTemplate">
2914 <span>
2915 <span>number</span>
2916 </span>
2917 </span>
2918 )
2919 </div>
2920 </em>
2921 </dt>
2922 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
2923 <!-- OBJECT PROPERTIES -->
2924 <!-- OBJECT METHODS -->
2925 <!-- OBJECT EVENT FIELDS -->
2926 <!-- FUNCTION PARAMETERS -->
2927 </div>
2928 </div><div>
2929 <div>
2930 <dt>
2931 <var>ip</var>
2932 <em>
2933 <!-- TYPE -->
2934 <div style="display:inline">
2935 (
2936 <span class="optional">optional</span>
2937 <span id="typeTemplate">
2938 <span>
2939 <span>string</span>
2940 </span>
2941 </span>
2942 )
2943 </div>
2944 </em>
2945 </dt>
2946 <dd>The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.</dd>
2947 <!-- OBJECT PROPERTIES -->
2948 <!-- OBJECT METHODS -->
2949 <!-- OBJECT EVENT FIELDS -->
2950 <!-- FUNCTION PARAMETERS -->
2951 </div>
2952 </div><div>
2953 <div>
2954 <dt>
2955 <var>fromCache</var>
2956 <em>
2957 <!-- TYPE -->
2958 <div style="display:inline">
2959 (
2960 <span id="typeTemplate">
2961 <span>
2962 <span>boolean</span>
2963 </span>
2964 </span>
2965 )
2966 </div>
2967 </em>
2968 </dt>
2969 <dd>Indicates if this response was fetched from disk cache.</dd>
2970 <!-- OBJECT PROPERTIES -->
2971 <!-- OBJECT METHODS -->
2972 <!-- OBJECT EVENT FIELDS -->
2973 <!-- FUNCTION PARAMETERS -->
2974 </div>
2975 </div><div>
2976 <div>
2977 <dt>
2978 <var>error</var>
2979 <em>
2980 <!-- TYPE -->
2981 <div style="display:inline">
2982 (
2983 <span id="typeTemplate">
2984 <span>
2985 <span>string</span>
2986 </span>
2987 </span>
2988 )
2989 </div>
2990 </em>
2991 </dt>
2992 <dd>The error description. This string is <em>not</em> guaranteed to r emain backwards compatible between releases. You must not parse and act based up on its content.</dd>
2993 <!-- OBJECT PROPERTIES -->
2994 <!-- OBJECT METHODS -->
2995 <!-- OBJECT EVENT FIELDS -->
2996 <!-- FUNCTION PARAMETERS -->
2997 </div>
2998 </div>
2999 </dl>
3000 </dd>
3001 <!-- OBJECT METHODS -->
3002 <!-- OBJECT EVENT FIELDS -->
3003 <!-- FUNCTION PARAMETERS -->
3004 </div>
3005 </div>
3006 </dl>
3007 </div>
3008 <!-- EXTRA PARAMETERS -->
3009 <div>
3010 <h4>Extra parameters to addListener</h4>
3011 <dl>
3012 <div>
3013 <div>
3014 <dt>
3015 <var>filter</var>
3016 <em>
3017 <!-- TYPE -->
3018 <div style="display:inline">
3019 (
3020 <span id="typeTemplate">
3021 <span>
3022 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
3023 </span>
3024 </span>
3025 )
3026 </div>
3027 </em>
3028 </dt>
3029 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
3030 <!-- OBJECT PROPERTIES -->
3031 <!-- OBJECT METHODS -->
3032 <!-- OBJECT EVENT FIELDS -->
3033 <!-- FUNCTION PARAMETERS -->
3034 </div>
3035 </div>
3036 </dl>
3037 </div>
3038 <!-- LISTENER RETURN VALUE -->
3039 <dl>
3040 </dl>
3041 </div> <!-- /description -->
3042 <!-- /description -->
3043 </div><div class="apiItem">
3044 <a name="event-onHeadersReceived"></a>
3045 <h4>onHeadersReceived</h4>
3046 <div class="summary">
3047 <!-- Note: intentionally longer 80 columns -->
3048 <span class="subdued">chrome.webRequest.</span><span>onHeadersRe ceived</span><span class="subdued">.addListener</span>(function(<span>object dea ils</span>) <span class="subdued">{...}</span><span>, RequestFilter filter, arra y of string extraInfoSpec</span>);
3049 </div>
3050 <div class="description">
3051 <p>Fired when HTTP response headers of a request have been recei ved.</p>
3052 <!-- LISTENER PARAMETERS -->
3053 <div>
3054 <h4>Listener parameters</h4>
3055 <dl>
3056 <div>
3057 <div>
3058 <dt>
3059 <var>deails</var>
3060 <em>
3061 <!-- TYPE -->
3062 <div style="display:inline">
3063 (
3064 <span id="typeTemplate">
3065 <span>
3066 <span>object</span>
3067 </span>
3068 </span>
3069 )
3070 </div>
3071 </em>
3072 </dt>
3073 <dd class="todo">
3074 Undocumented.
3075 </dd>
3076 <!-- OBJECT PROPERTIES -->
3077 <dd>
3078 <dl>
3079 <div>
3080 <div>
3081 <dt>
3082 <var>requestId</var>
3083 <em>
3084 <!-- TYPE -->
3085 <div style="display:inline">
3086 (
3087 <span id="typeTemplate">
3088 <span>
3089 <span>string</span>
3090 </span>
3091 </span>
3092 )
3093 </div>
3094 </em>
3095 </dt>
3096 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
3097 <!-- OBJECT PROPERTIES -->
3098 <!-- OBJECT METHODS -->
3099 <!-- OBJECT EVENT FIELDS -->
3100 <!-- FUNCTION PARAMETERS -->
3101 </div>
3102 </div><div>
3103 <div>
3104 <dt>
3105 <var>url</var>
3106 <em>
3107 <!-- TYPE -->
3108 <div style="display:inline">
3109 (
3110 <span id="typeTemplate">
3111 <span>
3112 <span>string</span>
3113 </span>
3114 </span>
3115 )
3116 </div>
3117 </em>
3118 </dt>
3119 <dd class="todo">
3120 Undocumented.
3121 </dd>
3122 <!-- OBJECT PROPERTIES -->
3123 <!-- OBJECT METHODS -->
3124 <!-- OBJECT EVENT FIELDS -->
3125 <!-- FUNCTION PARAMETERS -->
3126 </div>
3127 </div><div>
3128 <div>
3129 <dt>
3130 <var>method</var>
3131 <em>
3132 <!-- TYPE -->
3133 <div style="display:inline">
3134 (
3135 <span id="typeTemplate">
3136 <span>
3137 <span>string</span>
3138 </span>
3139 </span>
3140 )
3141 </div>
3142 </em>
3143 </dt>
3144 <dd>Standard HTTP method.</dd>
3145 <!-- OBJECT PROPERTIES -->
3146 <!-- OBJECT METHODS -->
3147 <!-- OBJECT EVENT FIELDS -->
3148 <!-- FUNCTION PARAMETERS -->
3149 </div>
3150 </div><div>
3151 <div>
3152 <dt>
3153 <var>frameId</var>
3154 <em>
3155 <!-- TYPE -->
3156 <div style="display:inline">
3157 (
3158 <span id="typeTemplate">
3159 <span>
3160 <span>integer</span>
3161 </span>
3162 </span>
3163 )
3164 </div>
3165 </em>
3166 </dt>
3167 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
3168 <!-- OBJECT PROPERTIES -->
3169 <!-- OBJECT METHODS -->
3170 <!-- OBJECT EVENT FIELDS -->
3171 <!-- FUNCTION PARAMETERS -->
3172 </div>
3173 </div><div>
3174 <div>
3175 <dt>
3176 <var>parentFrameId</var>
3177 <em>
3178 <!-- TYPE -->
3179 <div style="display:inline">
3180 (
3181 <span id="typeTemplate">
3182 <span>
3183 <span>integer</span>
3184 </span>
3185 </span>
3186 )
3187 </div>
3188 </em>
3189 </dt>
3190 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
3191 <!-- OBJECT PROPERTIES -->
3192 <!-- OBJECT METHODS -->
3193 <!-- OBJECT EVENT FIELDS -->
3194 <!-- FUNCTION PARAMETERS -->
3195 </div>
3196 </div><div>
3197 <div>
3198 <dt>
3199 <var>tabId</var>
3200 <em>
3201 <!-- TYPE -->
3202 <div style="display:inline">
3203 (
3204 <span id="typeTemplate">
3205 <span>
3206 <span>integer</span>
3207 </span>
3208 </span>
3209 )
3210 </div>
3211 </em>
3212 </dt>
3213 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
3214 <!-- OBJECT PROPERTIES -->
3215 <!-- OBJECT METHODS -->
3216 <!-- OBJECT EVENT FIELDS -->
3217 <!-- FUNCTION PARAMETERS -->
3218 </div>
3219 </div><div>
3220 <div>
3221 <dt>
3222 <var>type</var>
3223 <em>
3224 <!-- TYPE -->
3225 <div style="display:inline">
3226 (
3227 <span class="enum">enumerated</span>
3228 <span id="typeTemplate">
3229 <span>
3230 <span>string</span>
3231 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
3232 </span>
3233 </span>
3234 )
3235 </div>
3236 </em>
3237 </dt>
3238 <dd>How the requested resource will be used.</dd>
3239 <!-- OBJECT PROPERTIES -->
3240 <!-- OBJECT METHODS -->
3241 <!-- OBJECT EVENT FIELDS -->
3242 <!-- FUNCTION PARAMETERS -->
3243 </div>
3244 </div><div>
3245 <div>
3246 <dt>
3247 <var>timeStamp</var>
3248 <em>
3249 <!-- TYPE -->
3250 <div style="display:inline">
3251 (
3252 <span id="typeTemplate">
3253 <span>
3254 <span>number</span>
3255 </span>
3256 </span>
3257 )
3258 </div>
3259 </em>
3260 </dt>
3261 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
3262 <!-- OBJECT PROPERTIES -->
3263 <!-- OBJECT METHODS -->
3264 <!-- OBJECT EVENT FIELDS -->
3265 <!-- FUNCTION PARAMETERS -->
3266 </div>
3267 </div><div>
3268 <div>
3269 <dt>
3270 <var>statusLine</var>
3271 <em>
3272 <!-- TYPE -->
3273 <div style="display:inline">
3274 (
3275 <span class="optional">optional</span>
3276 <span id="typeTemplate">
3277 <span>
3278 <span>string</span>
3279 </span>
3280 </span>
3281 )
3282 </div>
3283 </em>
3284 </dt>
3285 <dd>HTTP status line of the response.</dd>
3286 <!-- OBJECT PROPERTIES -->
3287 <!-- OBJECT METHODS -->
3288 <!-- OBJECT EVENT FIELDS -->
3289 <!-- FUNCTION PARAMETERS -->
3290 </div>
3291 </div><div>
3292 <div>
3293 <dt>
3294 <var>responseHeaders</var>
3295 <em>
3296 <!-- TYPE -->
3297 <div style="display:inline">
3298 (
3299 <span class="optional">optional</span>
3300 <span id="typeTemplate">
3301 <span>
3302 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
3303 </span>
3304 </span>
3305 )
3306 </div>
3307 </em>
3308 </dt>
3309 <dd>The HTTP response headers that have been received with this respon se.</dd>
3310 <!-- OBJECT PROPERTIES -->
3311 <!-- OBJECT METHODS -->
3312 <!-- OBJECT EVENT FIELDS -->
3313 <!-- FUNCTION PARAMETERS -->
3314 </div>
3315 </div>
3316 </dl>
3317 </dd>
3318 <!-- OBJECT METHODS -->
3319 <!-- OBJECT EVENT FIELDS -->
3320 <!-- FUNCTION PARAMETERS -->
3321 </div>
3322 </div>
3323 </dl>
3324 </div>
3325 <!-- EXTRA PARAMETERS -->
3326 <div>
3327 <h4>Extra parameters to addListener</h4>
3328 <dl>
3329 <div>
3330 <div>
3331 <dt>
3332 <var>filter</var>
3333 <em>
3334 <!-- TYPE -->
3335 <div style="display:inline">
3336 (
3337 <span id="typeTemplate">
3338 <span>
3339 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
3340 </span>
3341 </span>
3342 )
3343 </div>
3344 </em>
3345 </dt>
3346 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
3347 <!-- OBJECT PROPERTIES -->
3348 <!-- OBJECT METHODS -->
3349 <!-- OBJECT EVENT FIELDS -->
3350 <!-- FUNCTION PARAMETERS -->
3351 </div>
3352 </div><div>
3353 <div>
3354 <dt>
3355 <var>extraInfoSpec</var>
3356 <em>
3357 <!-- TYPE -->
3358 <div style="display:inline">
3359 (
3360 <span class="optional">optional</span>
3361 <span id="typeTemplate">
3362 <span>
3363 <span>
3364 array of <span><span>
3365 <span>
3366 <span>string</span>
3367 <span>["blocking", "responseHeaders"]</span>
3368 </span>
3369 </span></span>
3370 </span>
3371 </span>
3372 </span>
3373 )
3374 </div>
3375 </em>
3376 </dt>
3377 <dd>Array of extra information that should be passed to the listener f unction.</dd>
3378 <!-- OBJECT PROPERTIES -->
3379 <!-- OBJECT METHODS -->
3380 <!-- OBJECT EVENT FIELDS -->
3381 <!-- FUNCTION PARAMETERS -->
3382 </div>
3383 </div>
3384 </dl>
3385 </div>
3386 <!-- LISTENER RETURN VALUE -->
3387 <h4>Listener returns</h4>
3388 <dl>
3389 <div>
3390 <div>
3391 <dt>
3392 <em>
3393 <!-- TYPE -->
3394 <div style="display:inline">
3395 (
3396 <span class="optional">optional</span>
3397 <span id="typeTemplate">
3398 <span>
3399 <a href="webRequest.html#type-BlockingResponse">Blocking Response</a>
3400 </span>
3401 </span>
3402 )
3403 </div>
3404 </em>
3405 </dt>
3406 <dd>If "blocking" is specified in the "extraInfoSpec" parameter, the e vent listener should return an object of this type.</dd>
3407 <!-- OBJECT PROPERTIES -->
3408 <!-- OBJECT METHODS -->
3409 <!-- OBJECT EVENT FIELDS -->
3410 <!-- FUNCTION PARAMETERS -->
3411 </div>
3412 </div>
3413 </dl>
3414 </div> <!-- /description -->
3415 <!-- /description -->
3416 </div><div class="apiItem">
3417 <a name="event-onResponseStarted"></a>
3418 <h4>onResponseStarted</h4>
3419 <div class="summary">
3420 <!-- Note: intentionally longer 80 columns -->
3421 <span class="subdued">chrome.webRequest.</span><span>onResponseS tarted</span><span class="subdued">.addListener</span>(function(<span>object det ails</span>) <span class="subdued">{...}</span><span>, RequestFilter filter, arr ay of string extraInfoSpec</span>);
3422 </div>
3423 <div class="description">
3424 <p>Fired when the first byte of the response body is received. F or HTTP requests, this means that the status line and response headers are avail able.</p>
3425 <!-- LISTENER PARAMETERS -->
3426 <div>
3427 <h4>Listener parameters</h4>
3428 <dl>
3429 <div>
3430 <div>
3431 <dt>
3432 <var>details</var>
3433 <em>
3434 <!-- TYPE -->
3435 <div style="display:inline">
3436 (
3437 <span id="typeTemplate">
3438 <span>
3439 <span>object</span>
3440 </span>
3441 </span>
3442 )
3443 </div>
3444 </em>
3445 </dt>
3446 <dd class="todo">
3447 Undocumented.
3448 </dd>
3449 <!-- OBJECT PROPERTIES -->
3450 <dd>
3451 <dl>
3452 <div>
3453 <div>
3454 <dt>
3455 <var>requestId</var>
3456 <em>
3457 <!-- TYPE -->
3458 <div style="display:inline">
3459 (
3460 <span id="typeTemplate">
3461 <span>
3462 <span>string</span>
3463 </span>
3464 </span>
3465 )
3466 </div>
3467 </em>
3468 </dt>
3469 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
3470 <!-- OBJECT PROPERTIES -->
3471 <!-- OBJECT METHODS -->
3472 <!-- OBJECT EVENT FIELDS -->
3473 <!-- FUNCTION PARAMETERS -->
3474 </div>
3475 </div><div>
3476 <div>
3477 <dt>
3478 <var>url</var>
3479 <em>
3480 <!-- TYPE -->
3481 <div style="display:inline">
3482 (
3483 <span id="typeTemplate">
3484 <span>
3485 <span>string</span>
3486 </span>
3487 </span>
3488 )
3489 </div>
3490 </em>
3491 </dt>
3492 <dd class="todo">
3493 Undocumented.
3494 </dd>
3495 <!-- OBJECT PROPERTIES -->
3496 <!-- OBJECT METHODS -->
3497 <!-- OBJECT EVENT FIELDS -->
3498 <!-- FUNCTION PARAMETERS -->
3499 </div>
3500 </div><div>
3501 <div>
3502 <dt>
3503 <var>method</var>
3504 <em>
3505 <!-- TYPE -->
3506 <div style="display:inline">
3507 (
3508 <span id="typeTemplate">
3509 <span>
3510 <span>string</span>
3511 </span>
3512 </span>
3513 )
3514 </div>
3515 </em>
3516 </dt>
3517 <dd>Standard HTTP method.</dd>
3518 <!-- OBJECT PROPERTIES -->
3519 <!-- OBJECT METHODS -->
3520 <!-- OBJECT EVENT FIELDS -->
3521 <!-- FUNCTION PARAMETERS -->
3522 </div>
3523 </div><div>
3524 <div>
3525 <dt>
3526 <var>frameId</var>
3527 <em>
3528 <!-- TYPE -->
3529 <div style="display:inline">
3530 (
3531 <span id="typeTemplate">
3532 <span>
3533 <span>integer</span>
3534 </span>
3535 </span>
3536 )
3537 </div>
3538 </em>
3539 </dt>
3540 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
3541 <!-- OBJECT PROPERTIES -->
3542 <!-- OBJECT METHODS -->
3543 <!-- OBJECT EVENT FIELDS -->
3544 <!-- FUNCTION PARAMETERS -->
3545 </div>
3546 </div><div>
3547 <div>
3548 <dt>
3549 <var>parentFrameId</var>
3550 <em>
3551 <!-- TYPE -->
3552 <div style="display:inline">
3553 (
3554 <span id="typeTemplate">
3555 <span>
3556 <span>integer</span>
3557 </span>
3558 </span>
3559 )
3560 </div>
3561 </em>
3562 </dt>
3563 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
3564 <!-- OBJECT PROPERTIES -->
3565 <!-- OBJECT METHODS -->
3566 <!-- OBJECT EVENT FIELDS -->
3567 <!-- FUNCTION PARAMETERS -->
3568 </div>
3569 </div><div>
3570 <div>
3571 <dt>
3572 <var>tabId</var>
3573 <em>
3574 <!-- TYPE -->
3575 <div style="display:inline">
3576 (
3577 <span id="typeTemplate">
3578 <span>
3579 <span>integer</span>
3580 </span>
3581 </span>
3582 )
3583 </div>
3584 </em>
3585 </dt>
3586 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
3587 <!-- OBJECT PROPERTIES -->
3588 <!-- OBJECT METHODS -->
3589 <!-- OBJECT EVENT FIELDS -->
3590 <!-- FUNCTION PARAMETERS -->
3591 </div>
3592 </div><div>
3593 <div>
3594 <dt>
3595 <var>type</var>
3596 <em>
3597 <!-- TYPE -->
3598 <div style="display:inline">
3599 (
3600 <span class="enum">enumerated</span>
3601 <span id="typeTemplate">
3602 <span>
3603 <span>string</span>
3604 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
3605 </span>
3606 </span>
3607 )
3608 </div>
3609 </em>
3610 </dt>
3611 <dd>How the requested resource will be used.</dd>
3612 <!-- OBJECT PROPERTIES -->
3613 <!-- OBJECT METHODS -->
3614 <!-- OBJECT EVENT FIELDS -->
3615 <!-- FUNCTION PARAMETERS -->
3616 </div>
3617 </div><div>
3618 <div>
3619 <dt>
3620 <var>timeStamp</var>
3621 <em>
3622 <!-- TYPE -->
3623 <div style="display:inline">
3624 (
3625 <span id="typeTemplate">
3626 <span>
3627 <span>number</span>
3628 </span>
3629 </span>
3630 )
3631 </div>
3632 </em>
3633 </dt>
3634 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
3635 <!-- OBJECT PROPERTIES -->
3636 <!-- OBJECT METHODS -->
3637 <!-- OBJECT EVENT FIELDS -->
3638 <!-- FUNCTION PARAMETERS -->
3639 </div>
3640 </div><div>
3641 <div>
3642 <dt>
3643 <var>ip</var>
3644 <em>
3645 <!-- TYPE -->
3646 <div style="display:inline">
3647 (
3648 <span class="optional">optional</span>
3649 <span id="typeTemplate">
3650 <span>
3651 <span>string</span>
3652 </span>
3653 </span>
3654 )
3655 </div>
3656 </em>
3657 </dt>
3658 <dd>The server IP address that the request was actually sent to. Note that it may be a literal IPv6 address.</dd>
3659 <!-- OBJECT PROPERTIES -->
3660 <!-- OBJECT METHODS -->
3661 <!-- OBJECT EVENT FIELDS -->
3662 <!-- FUNCTION PARAMETERS -->
3663 </div>
3664 </div><div>
3665 <div>
3666 <dt>
3667 <var>fromCache</var>
3668 <em>
3669 <!-- TYPE -->
3670 <div style="display:inline">
3671 (
3672 <span id="typeTemplate">
3673 <span>
3674 <span>boolean</span>
3675 </span>
3676 </span>
3677 )
3678 </div>
3679 </em>
3680 </dt>
3681 <dd>Indicates if this response was fetched from disk cache.</dd>
3682 <!-- OBJECT PROPERTIES -->
3683 <!-- OBJECT METHODS -->
3684 <!-- OBJECT EVENT FIELDS -->
3685 <!-- FUNCTION PARAMETERS -->
3686 </div>
3687 </div><div>
3688 <div>
3689 <dt>
3690 <var>statusCode</var>
3691 <em>
3692 <!-- TYPE -->
3693 <div style="display:inline">
3694 (
3695 <span id="typeTemplate">
3696 <span>
3697 <span>integer</span>
3698 </span>
3699 </span>
3700 )
3701 </div>
3702 </em>
3703 </dt>
3704 <dd>Standard HTTP status code returned by the server.</dd>
3705 <!-- OBJECT PROPERTIES -->
3706 <!-- OBJECT METHODS -->
3707 <!-- OBJECT EVENT FIELDS -->
3708 <!-- FUNCTION PARAMETERS -->
3709 </div>
3710 </div><div>
3711 <div>
3712 <dt>
3713 <var>responseHeaders</var>
3714 <em>
3715 <!-- TYPE -->
3716 <div style="display:inline">
3717 (
3718 <span class="optional">optional</span>
3719 <span id="typeTemplate">
3720 <span>
3721 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
3722 </span>
3723 </span>
3724 )
3725 </div>
3726 </em>
3727 </dt>
3728 <dd>The HTTP response headers that were received along with this respo nse.</dd>
3729 <!-- OBJECT PROPERTIES -->
3730 <!-- OBJECT METHODS -->
3731 <!-- OBJECT EVENT FIELDS -->
3732 <!-- FUNCTION PARAMETERS -->
3733 </div>
3734 </div><div>
3735 <div>
3736 <dt>
3737 <var>statusLine</var>
3738 <em>
3739 <!-- TYPE -->
3740 <div style="display:inline">
3741 (
3742 <span class="optional">optional</span>
3743 <span id="typeTemplate">
3744 <span>
3745 <span>string</span>
3746 </span>
3747 </span>
3748 )
3749 </div>
3750 </em>
3751 </dt>
3752 <dd>HTTP status line of the response.</dd>
3753 <!-- OBJECT PROPERTIES -->
3754 <!-- OBJECT METHODS -->
3755 <!-- OBJECT EVENT FIELDS -->
3756 <!-- FUNCTION PARAMETERS -->
3757 </div>
3758 </div>
3759 </dl>
3760 </dd>
3761 <!-- OBJECT METHODS -->
3762 <!-- OBJECT EVENT FIELDS -->
3763 <!-- FUNCTION PARAMETERS -->
3764 </div>
3765 </div>
3766 </dl>
3767 </div>
3768 <!-- EXTRA PARAMETERS -->
3769 <div>
3770 <h4>Extra parameters to addListener</h4>
3771 <dl>
3772 <div>
3773 <div>
3774 <dt>
3775 <var>filter</var>
3776 <em>
3777 <!-- TYPE -->
3778 <div style="display:inline">
3779 (
3780 <span id="typeTemplate">
3781 <span>
3782 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
3783 </span>
3784 </span>
3785 )
3786 </div>
3787 </em>
3788 </dt>
3789 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
3790 <!-- OBJECT PROPERTIES -->
3791 <!-- OBJECT METHODS -->
3792 <!-- OBJECT EVENT FIELDS -->
3793 <!-- FUNCTION PARAMETERS -->
3794 </div>
3795 </div><div>
3796 <div>
3797 <dt>
3798 <var>extraInfoSpec</var>
3799 <em>
3800 <!-- TYPE -->
3801 <div style="display:inline">
3802 (
3803 <span class="optional">optional</span>
3804 <span id="typeTemplate">
3805 <span>
3806 <span>
3807 array of <span><span>
3808 <span>
3809 <span>string</span>
3810 <span>["responseHeaders"]</span>
3811 </span>
3812 </span></span>
3813 </span>
3814 </span>
3815 </span>
3816 )
3817 </div>
3818 </em>
3819 </dt>
3820 <dd>Array of extra information that should be passed to the listener f unction.</dd>
3821 <!-- OBJECT PROPERTIES -->
3822 <!-- OBJECT METHODS -->
3823 <!-- OBJECT EVENT FIELDS -->
3824 <!-- FUNCTION PARAMETERS -->
3825 </div>
3826 </div>
3827 </dl>
3828 </div>
3829 <!-- LISTENER RETURN VALUE -->
3830 <dl>
3831 </dl>
3832 </div> <!-- /description -->
3833 <!-- /description -->
3834 </div><div class="apiItem">
3835 <a name="event-onSendHeaders"></a>
3836 <h4>onSendHeaders</h4>
3837 <div class="summary">
3838 <!-- Note: intentionally longer 80 columns -->
3839 <span class="subdued">chrome.webRequest.</span><span>onSendHeade rs</span><span class="subdued">.addListener</span>(function(<span>object details </span>) <span class="subdued">{...}</span><span>, RequestFilter filter, array o f string extraInfoSpec</span>);
3840 </div>
3841 <div class="description">
3842 <p>Fired just before a request is going to be sent to the server (modifications of previous onBeforeSendHeaders callbacks are visible by the tim e onSendHeaders is fired).</p>
3843 <!-- LISTENER PARAMETERS -->
3844 <div>
3845 <h4>Listener parameters</h4>
3846 <dl>
3847 <div>
3848 <div>
3849 <dt>
3850 <var>details</var>
3851 <em>
3852 <!-- TYPE -->
3853 <div style="display:inline">
3854 (
3855 <span id="typeTemplate">
3856 <span>
3857 <span>object</span>
3858 </span>
3859 </span>
3860 )
3861 </div>
3862 </em>
3863 </dt>
3864 <dd class="todo">
3865 Undocumented.
3866 </dd>
3867 <!-- OBJECT PROPERTIES -->
3868 <dd>
3869 <dl>
3870 <div>
3871 <div>
3872 <dt>
3873 <var>requestId</var>
3874 <em>
3875 <!-- TYPE -->
3876 <div style="display:inline">
3877 (
3878 <span id="typeTemplate">
3879 <span>
3880 <span>string</span>
3881 </span>
3882 </span>
3883 )
3884 </div>
3885 </em>
3886 </dt>
3887 <dd>The ID of the request. Request IDs are unique within a browser ses sion. As a result, they could be used to relate different events of the same req uest.</dd>
3888 <!-- OBJECT PROPERTIES -->
3889 <!-- OBJECT METHODS -->
3890 <!-- OBJECT EVENT FIELDS -->
3891 <!-- FUNCTION PARAMETERS -->
3892 </div>
3893 </div><div>
3894 <div>
3895 <dt>
3896 <var>url</var>
3897 <em>
3898 <!-- TYPE -->
3899 <div style="display:inline">
3900 (
3901 <span id="typeTemplate">
3902 <span>
3903 <span>string</span>
3904 </span>
3905 </span>
3906 )
3907 </div>
3908 </em>
3909 </dt>
3910 <dd class="todo">
3911 Undocumented.
3912 </dd>
3913 <!-- OBJECT PROPERTIES -->
3914 <!-- OBJECT METHODS -->
3915 <!-- OBJECT EVENT FIELDS -->
3916 <!-- FUNCTION PARAMETERS -->
3917 </div>
3918 </div><div>
3919 <div>
3920 <dt>
3921 <var>method</var>
3922 <em>
3923 <!-- TYPE -->
3924 <div style="display:inline">
3925 (
3926 <span id="typeTemplate">
3927 <span>
3928 <span>string</span>
3929 </span>
3930 </span>
3931 )
3932 </div>
3933 </em>
3934 </dt>
3935 <dd>Standard HTTP method.</dd>
3936 <!-- OBJECT PROPERTIES -->
3937 <!-- OBJECT METHODS -->
3938 <!-- OBJECT EVENT FIELDS -->
3939 <!-- FUNCTION PARAMETERS -->
3940 </div>
3941 </div><div>
3942 <div>
3943 <dt>
3944 <var>frameId</var>
3945 <em>
3946 <!-- TYPE -->
3947 <div style="display:inline">
3948 (
3949 <span id="typeTemplate">
3950 <span>
3951 <span>integer</span>
3952 </span>
3953 </span>
3954 )
3955 </div>
3956 </em>
3957 </dt>
3958 <dd>The value 0 indicates that the request happens in the main frame; a positive value indicates the ID of a subframe in which the request happens. If the document of a (sub-)frame is loaded (<code>type</code> is <code>main_frame< /code> or <code>sub_frame</code>), <code>frameId</code> indicates the ID of this frame, not the ID of the outer frame. Frame IDs are unique within a tab.</dd>
3959 <!-- OBJECT PROPERTIES -->
3960 <!-- OBJECT METHODS -->
3961 <!-- OBJECT EVENT FIELDS -->
3962 <!-- FUNCTION PARAMETERS -->
3963 </div>
3964 </div><div>
3965 <div>
3966 <dt>
3967 <var>parentFrameId</var>
3968 <em>
3969 <!-- TYPE -->
3970 <div style="display:inline">
3971 (
3972 <span id="typeTemplate">
3973 <span>
3974 <span>integer</span>
3975 </span>
3976 </span>
3977 )
3978 </div>
3979 </em>
3980 </dt>
3981 <dd>ID of frame that wraps the frame which sent the request. Set to -1 if no parent frame exists.</dd>
3982 <!-- OBJECT PROPERTIES -->
3983 <!-- OBJECT METHODS -->
3984 <!-- OBJECT EVENT FIELDS -->
3985 <!-- FUNCTION PARAMETERS -->
3986 </div>
3987 </div><div>
3988 <div>
3989 <dt>
3990 <var>tabId</var>
3991 <em>
3992 <!-- TYPE -->
3993 <div style="display:inline">
3994 (
3995 <span id="typeTemplate">
3996 <span>
3997 <span>integer</span>
3998 </span>
3999 </span>
4000 )
4001 </div>
4002 </em>
4003 </dt>
4004 <dd>The ID of the tab in which the request takes place. Set to -1 if t he request isn't related to a tab.</dd>
4005 <!-- OBJECT PROPERTIES -->
4006 <!-- OBJECT METHODS -->
4007 <!-- OBJECT EVENT FIELDS -->
4008 <!-- FUNCTION PARAMETERS -->
4009 </div>
4010 </div><div>
4011 <div>
4012 <dt>
4013 <var>type</var>
4014 <em>
4015 <!-- TYPE -->
4016 <div style="display:inline">
4017 (
4018 <span class="enum">enumerated</span>
4019 <span id="typeTemplate">
4020 <span>
4021 <span>string</span>
4022 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
4023 </span>
4024 </span>
4025 )
4026 </div>
4027 </em>
4028 </dt>
4029 <dd>How the requested resource will be used.</dd>
4030 <!-- OBJECT PROPERTIES -->
4031 <!-- OBJECT METHODS -->
4032 <!-- OBJECT EVENT FIELDS -->
4033 <!-- FUNCTION PARAMETERS -->
4034 </div>
4035 </div><div>
4036 <div>
4037 <dt>
4038 <var>timeStamp</var>
4039 <em>
4040 <!-- TYPE -->
4041 <div style="display:inline">
4042 (
4043 <span id="typeTemplate">
4044 <span>
4045 <span>number</span>
4046 </span>
4047 </span>
4048 )
4049 </div>
4050 </em>
4051 </dt>
4052 <dd>The time when this signal is triggered, in milliseconds since the epoch.</dd>
4053 <!-- OBJECT PROPERTIES -->
4054 <!-- OBJECT METHODS -->
4055 <!-- OBJECT EVENT FIELDS -->
4056 <!-- FUNCTION PARAMETERS -->
4057 </div>
4058 </div><div>
4059 <div>
4060 <dt>
4061 <var>requestHeaders</var>
4062 <em>
4063 <!-- TYPE -->
4064 <div style="display:inline">
4065 (
4066 <span class="optional">optional</span>
4067 <span id="typeTemplate">
4068 <span>
4069 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
4070 </span>
4071 </span>
4072 )
4073 </div>
4074 </em>
4075 </dt>
4076 <dd>The HTTP request headers that have been sent out with this request .</dd>
4077 <!-- OBJECT PROPERTIES -->
4078 <!-- OBJECT METHODS -->
4079 <!-- OBJECT EVENT FIELDS -->
4080 <!-- FUNCTION PARAMETERS -->
4081 </div>
4082 </div>
4083 </dl>
4084 </dd>
4085 <!-- OBJECT METHODS -->
4086 <!-- OBJECT EVENT FIELDS -->
4087 <!-- FUNCTION PARAMETERS -->
4088 </div>
4089 </div>
4090 </dl>
4091 </div>
4092 <!-- EXTRA PARAMETERS -->
4093 <div>
4094 <h4>Extra parameters to addListener</h4>
4095 <dl>
4096 <div>
4097 <div>
4098 <dt>
4099 <var>filter</var>
4100 <em>
4101 <!-- TYPE -->
4102 <div style="display:inline">
4103 (
4104 <span id="typeTemplate">
4105 <span>
4106 <a href="webRequest.html#type-RequestFilter">RequestFilt er</a>
4107 </span>
4108 </span>
4109 )
4110 </div>
4111 </em>
4112 </dt>
4113 <dd>A set of filters that restricts the events that will be sent to th is listener.</dd>
4114 <!-- OBJECT PROPERTIES -->
4115 <!-- OBJECT METHODS -->
4116 <!-- OBJECT EVENT FIELDS -->
4117 <!-- FUNCTION PARAMETERS -->
4118 </div>
4119 </div><div>
4120 <div>
4121 <dt>
4122 <var>extraInfoSpec</var>
4123 <em>
4124 <!-- TYPE -->
4125 <div style="display:inline">
4126 (
4127 <span class="optional">optional</span>
4128 <span id="typeTemplate">
4129 <span>
4130 <span>
4131 array of <span><span>
4132 <span>
4133 <span>string</span>
4134 <span>["requestHeaders"]</span>
4135 </span>
4136 </span></span>
4137 </span>
4138 </span>
4139 </span>
4140 )
4141 </div>
4142 </em>
4143 </dt>
4144 <dd>Array of extra information that should be passed to the listener f unction.</dd>
4145 <!-- OBJECT PROPERTIES -->
4146 <!-- OBJECT METHODS -->
4147 <!-- OBJECT EVENT FIELDS -->
4148 <!-- FUNCTION PARAMETERS -->
4149 </div>
4150 </div>
4151 </dl>
4152 </div>
4153 <!-- LISTENER RETURN VALUE -->
4154 <dl>
4155 </dl>
4156 </div> <!-- /description -->
4157 <!-- /description -->
4158 </div> <!-- /apiItem -->
4159 </div> <!-- /apiGroup -->
4160 <!-- TYPES -->
4161 <div class="apiGroup">
4162 <a name="types"></a>
4163 <h3 id="types">Types</h3>
4164 <!-- iterates over all types -->
4165 <div class="apiItem">
4166 <a name="type-RequestFilter"></a>
4167 <h4>RequestFilter</h4>
4168 <div>
4169 <dt>
4170 <em>
4171 <!-- TYPE -->
4172 <div style="display:inline">
4173 (
4174 <span id="typeTemplate">
4175 <span>
4176 <span>object</span>
4177 </span>
4178 </span>
4179 )
4180 </div>
4181 </em>
4182 </dt>
4183 <dd>An object describing filters to apply to webRequest events.</dd>
4184 <!-- OBJECT PROPERTIES -->
4185 <dd>
4186 <dl>
4187 <div>
4188 <div>
4189 <dt>
4190 <var>urls</var>
4191 <em>
4192 <!-- TYPE -->
4193 <div style="display:inline">
4194 (
4195 <span id="typeTemplate">
4196 <span>
4197 <span>
4198 array of <span><span>
4199 <span>
4200 <span>string</span>
4201 </span>
4202 </span></span>
4203 </span>
4204 </span>
4205 </span>
4206 )
4207 </div>
4208 </em>
4209 </dt>
4210 <dd>A list of URLs or URL patterns. Requests that cannot match any of the URLs will be filtered out.</dd>
4211 <!-- OBJECT PROPERTIES -->
4212 <!-- OBJECT METHODS -->
4213 <!-- OBJECT EVENT FIELDS -->
4214 <!-- FUNCTION PARAMETERS -->
4215 </div>
4216 </div><div>
4217 <div>
4218 <dt>
4219 <var>types</var>
4220 <em>
4221 <!-- TYPE -->
4222 <div style="display:inline">
4223 (
4224 <span class="optional">optional</span>
4225 <span id="typeTemplate">
4226 <span>
4227 <span>
4228 array of <span><span>
4229 <span>
4230 <span>string</span>
4231 <span>["main_frame", "sub_frame", "stylesheet", "script" , "image", "object", "xmlhttprequest", "other"]</span>
4232 </span>
4233 </span></span>
4234 </span>
4235 </span>
4236 </span>
4237 )
4238 </div>
4239 </em>
4240 </dt>
4241 <dd>A list of request types. Requests that cannot match any of the typ es will be filtered out.</dd>
4242 <!-- OBJECT PROPERTIES -->
4243 <!-- OBJECT METHODS -->
4244 <!-- OBJECT EVENT FIELDS -->
4245 <!-- FUNCTION PARAMETERS -->
4246 </div>
4247 </div><div>
4248 <div>
4249 <dt>
4250 <var>tabId</var>
4251 <em>
4252 <!-- TYPE -->
4253 <div style="display:inline">
4254 (
4255 <span class="optional">optional</span>
4256 <span id="typeTemplate">
4257 <span>
4258 <span>integer</span>
4259 </span>
4260 </span>
4261 )
4262 </div>
4263 </em>
4264 </dt>
4265 <dd class="todo">
4266 Undocumented.
4267 </dd>
4268 <!-- OBJECT PROPERTIES -->
4269 <!-- OBJECT METHODS -->
4270 <!-- OBJECT EVENT FIELDS -->
4271 <!-- FUNCTION PARAMETERS -->
4272 </div>
4273 </div><div>
4274 <div>
4275 <dt>
4276 <var>windowId</var>
4277 <em>
4278 <!-- TYPE -->
4279 <div style="display:inline">
4280 (
4281 <span class="optional">optional</span>
4282 <span id="typeTemplate">
4283 <span>
4284 <span>integer</span>
4285 </span>
4286 </span>
4287 )
4288 </div>
4289 </em>
4290 </dt>
4291 <dd class="todo">
4292 Undocumented.
4293 </dd>
4294 <!-- OBJECT PROPERTIES -->
4295 <!-- OBJECT METHODS -->
4296 <!-- OBJECT EVENT FIELDS -->
4297 <!-- FUNCTION PARAMETERS -->
4298 </div>
4299 </div>
4300 </dl>
4301 </dd>
4302 <!-- OBJECT METHODS -->
4303 <!-- OBJECT EVENT FIELDS -->
4304 <!-- FUNCTION PARAMETERS -->
4305 </div>
4306 </div><div class="apiItem">
4307 <a name="type-HttpHeaders"></a>
4308 <h4>HttpHeaders</h4>
4309 <div>
4310 <dt>
4311 <em>
4312 <!-- TYPE -->
4313 <div style="display:inline">
4314 (
4315 <span id="typeTemplate">
4316 <span>
4317 <span>
4318 array of <span><span>
4319 <span>
4320 <span>object</span>
4321 </span>
4322 </span></span>
4323 </span>
4324 </span>
4325 </span>
4326 )
4327 </div>
4328 </em>
4329 </dt>
4330 <dd>An array of HTTP headers. Each header is represented as a dictiona ry containing the keys <code>name</code> and either <code>value</code> or <code> binaryValue</code>.</dd>
4331 <!-- OBJECT PROPERTIES -->
4332 <dd>
4333 <dl>
4334 <div>
4335 <div>
4336 <dt>
4337 <var>name</var>
4338 <em>
4339 <!-- TYPE -->
4340 <div style="display:inline">
4341 (
4342 <span id="typeTemplate">
4343 <span>
4344 <span>string</span>
4345 </span>
4346 </span>
4347 )
4348 </div>
4349 </em>
4350 </dt>
4351 <dd>Name of the HTTP header.</dd>
4352 <!-- OBJECT PROPERTIES -->
4353 <!-- OBJECT METHODS -->
4354 <!-- OBJECT EVENT FIELDS -->
4355 <!-- FUNCTION PARAMETERS -->
4356 </div>
4357 </div><div>
4358 <div>
4359 <dt>
4360 <var>value</var>
4361 <em>
4362 <!-- TYPE -->
4363 <div style="display:inline">
4364 (
4365 <span class="optional">optional</span>
4366 <span id="typeTemplate">
4367 <span>
4368 <span>string</span>
4369 </span>
4370 </span>
4371 )
4372 </div>
4373 </em>
4374 </dt>
4375 <dd>Value of the HTTP header if it can be represented by UTF-8.</dd>
4376 <!-- OBJECT PROPERTIES -->
4377 <!-- OBJECT METHODS -->
4378 <!-- OBJECT EVENT FIELDS -->
4379 <!-- FUNCTION PARAMETERS -->
4380 </div>
4381 </div><div>
4382 <div>
4383 <dt>
4384 <var>binaryValue</var>
4385 <em>
4386 <!-- TYPE -->
4387 <div style="display:inline">
4388 (
4389 <span class="optional">optional</span>
4390 <span id="typeTemplate">
4391 <span>
4392 <span>
4393 array of <span><span>
4394 <span>
4395 <span>integer</span>
4396 </span>
4397 </span></span>
4398 </span>
4399 </span>
4400 </span>
4401 )
4402 </div>
4403 </em>
4404 </dt>
4405 <dd>Value of the HTTP header if it cannot be represented by UTF-8, sto red as individual byte values (0..255).</dd>
4406 <!-- OBJECT PROPERTIES -->
4407 <!-- OBJECT METHODS -->
4408 <!-- OBJECT EVENT FIELDS -->
4409 <!-- FUNCTION PARAMETERS -->
4410 </div>
4411 </div>
4412 </dl>
4413 </dd>
4414 <!-- OBJECT METHODS -->
4415 <!-- OBJECT EVENT FIELDS -->
4416 <!-- FUNCTION PARAMETERS -->
4417 </div>
4418 </div><div class="apiItem">
4419 <a name="type-BlockingResponse"></a>
4420 <h4>BlockingResponse</h4>
4421 <div>
4422 <dt>
4423 <em>
4424 <!-- TYPE -->
4425 <div style="display:inline">
4426 (
4427 <span id="typeTemplate">
4428 <span>
4429 <span>object</span>
4430 </span>
4431 </span>
4432 )
4433 </div>
4434 </em>
4435 </dt>
4436 <dd>Returns value for event handlers that have the 'blocking' extraInf oSpec applied. Allows the event handler to modify network requests.</dd>
4437 <!-- OBJECT PROPERTIES -->
4438 <dd>
4439 <dl>
4440 <div>
4441 <div>
4442 <dt>
4443 <var>cancel</var>
4444 <em>
4445 <!-- TYPE -->
4446 <div style="display:inline">
4447 (
4448 <span class="optional">optional</span>
4449 <span id="typeTemplate">
4450 <span>
4451 <span>boolean</span>
4452 </span>
4453 </span>
4454 )
4455 </div>
4456 </em>
4457 </dt>
4458 <dd>If true, the request is cancelled. Used in onBeforeRequest, this p revents the request from being sent.</dd>
4459 <!-- OBJECT PROPERTIES -->
4460 <!-- OBJECT METHODS -->
4461 <!-- OBJECT EVENT FIELDS -->
4462 <!-- FUNCTION PARAMETERS -->
4463 </div>
4464 </div><div>
4465 <div>
4466 <dt>
4467 <var>redirectUrl</var>
4468 <em>
4469 <!-- TYPE -->
4470 <div style="display:inline">
4471 (
4472 <span class="optional">optional</span>
4473 <span id="typeTemplate">
4474 <span>
4475 <span>string</span>
4476 </span>
4477 </span>
4478 )
4479 </div>
4480 </em>
4481 </dt>
4482 <dd>Only used as a response to the onBeforeRequest event. If set, the original request is prevented from being sent and is instead redirected to the g iven URL.</dd>
4483 <!-- OBJECT PROPERTIES -->
4484 <!-- OBJECT METHODS -->
4485 <!-- OBJECT EVENT FIELDS -->
4486 <!-- FUNCTION PARAMETERS -->
4487 </div>
4488 </div><div>
4489 <div>
4490 <dt>
4491 <var>requestHeaders</var>
4492 <em>
4493 <!-- TYPE -->
4494 <div style="display:inline">
4495 (
4496 <span class="optional">optional</span>
4497 <span id="typeTemplate">
4498 <span>
4499 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
4500 </span>
4501 </span>
4502 )
4503 </div>
4504 </em>
4505 </dt>
4506 <dd>Only used as a response to the onBeforeSendHeaders event. If set, the request is made with these request headers instead.</dd>
4507 <!-- OBJECT PROPERTIES -->
4508 <!-- OBJECT METHODS -->
4509 <!-- OBJECT EVENT FIELDS -->
4510 <!-- FUNCTION PARAMETERS -->
4511 </div>
4512 </div><div>
4513 <div>
4514 <dt>
4515 <var>responseHeaders</var>
4516 <em>
4517 <!-- TYPE -->
4518 <div style="display:inline">
4519 (
4520 <span class="optional">optional</span>
4521 <span id="typeTemplate">
4522 <span>
4523 <a href="webRequest.html#type-HttpHeaders">HttpHeaders</ a>
4524 </span>
4525 </span>
4526 )
4527 </div>
4528 </em>
4529 </dt>
4530 <dd>Only used as a response to the onHeadersReceived event. If set, th e server is assumed to have responded with these response headers instead. Only return <code>responseHeaders</code> if you really want to modify the headers in order to limit the number of conflicts (only one extension may modify <code>resp onseHeaders</code> for each request).</dd>
4531 <!-- OBJECT PROPERTIES -->
4532 <!-- OBJECT METHODS -->
4533 <!-- OBJECT EVENT FIELDS -->
4534 <!-- FUNCTION PARAMETERS -->
4535 </div>
4536 </div><div>
4537 <div>
4538 <dt>
4539 <var>authCredentials</var>
4540 <em>
4541 <!-- TYPE -->
4542 <div style="display:inline">
4543 (
4544 <span class="optional">optional</span>
4545 <span id="typeTemplate">
4546 <span>
4547 <span>object</span>
4548 </span>
4549 </span>
4550 )
4551 </div>
4552 </em>
4553 </dt>
4554 <dd>Only used as a response to the onAuthRequired event. If set, the r equest is made using the supplied credentials.</dd>
4555 <!-- OBJECT PROPERTIES -->
4556 <dd>
4557 <dl>
4558 <div>
4559 <div>
4560 <dt>
4561 <var>username</var>
4562 <em>
4563 <!-- TYPE -->
4564 <div style="display:inline">
4565 (
4566 <span id="typeTemplate">
4567 <span>
4568 <span>string</span>
4569 </span>
4570 </span>
4571 )
4572 </div>
4573 </em>
4574 </dt>
4575 <dd class="todo">
4576 Undocumented.
4577 </dd>
4578 <!-- OBJECT PROPERTIES -->
4579 <!-- OBJECT METHODS -->
4580 <!-- OBJECT EVENT FIELDS -->
4581 <!-- FUNCTION PARAMETERS -->
4582 </div>
4583 </div><div>
4584 <div>
4585 <dt>
4586 <var>password</var>
4587 <em>
4588 <!-- TYPE -->
4589 <div style="display:inline">
4590 (
4591 <span id="typeTemplate">
4592 <span>
4593 <span>string</span>
4594 </span>
4595 </span>
4596 )
4597 </div>
4598 </em>
4599 </dt>
4600 <dd class="todo">
4601 Undocumented.
4602 </dd>
4603 <!-- OBJECT PROPERTIES -->
4604 <!-- OBJECT METHODS -->
4605 <!-- OBJECT EVENT FIELDS -->
4606 <!-- FUNCTION PARAMETERS -->
4607 </div>
4608 </div>
4609 </dl>
4610 </dd>
4611 <!-- OBJECT METHODS -->
4612 <!-- OBJECT EVENT FIELDS -->
4613 <!-- FUNCTION PARAMETERS -->
4614 </div>
4615 </div>
4616 </dl>
4617 </dd>
4618 <!-- OBJECT METHODS -->
4619 <!-- OBJECT EVENT FIELDS -->
4620 <!-- FUNCTION PARAMETERS -->
4621 </div>
4622 </div> <!-- /apiItem -->
4623 </div> <!-- /apiGroup -->
4624 </div> <!-- /apiPage -->
4625 </div> <!-- /gc-pagecontent -->
4626 </div> <!-- /g-section -->
4627 </div> <!-- /codesiteContent -->
4628 <div id="gc-footer" --="">
4629 <div class="text">
4630 <p>
4631 Except as otherwise <a href="http://code.google.com/policies.html#restrictions ">noted</a>,
4632 the content of this page is licensed under the <a rel="license" href="http://c reativecommons.org/licenses/by/3.0/">Creative Commons
4633 Attribution 3.0 License</a>, and code samples are licensed under the
4634 <a rel="license" href="http://code.google.com/google_bsd_license.html">BSD Lic ense</a>.
4635 </p>
4636 <p>
4637 ©2011 Google
4638 </p>
4639 <!-- begin analytics -->
4640 <script src="https://www.google-analytics.com/urchin.js" type="text/javascript"> </script>
4641 <script src="https://www.google-analytics.com/ga.js" type="text/javascript"></sc ript>
4642 <script type="text/javascript">
4643 // chrome doc tracking
4644 try {
4645 var engdocs = _gat._getTracker("YT-10763712-2");
4646 engdocs._trackPageview();
4647 } catch(err) {}
4648 // code.google.com site-wide tracking
4649 try {
4650 _uacct="UA-18071-1";
4651 _uanchor=1;
4652 _uff=0;
4653 urchinTracker();
4654 }
4655 catch(e) {/* urchinTracker not available. */}
4656 </script>
4657 <!-- end analytics -->
4658 </div>
4659 </div> <!-- /gc-footer -->
4660 </div> <!-- /gc-container -->
4661 </body></html>
OLDNEW
« no previous file with comments | « chrome/common/extensions/docs/webNavigation.html ('k') | chrome/common/extensions/docs/webstore.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698