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

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

Issue 2449913002: Support WebSocket in WebRequest API. (Closed)
Patch Set: Add tests for onAuthRequired path for WS handshake. Created 3 years, 10 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
OLDNEW
1 <h2 id="manifest">Manifest</h2> 1 <h2 id="manifest">Manifest</h2>
2 <p>You must declare the "webRequest" permission in the <a 2 <p>You must declare the "webRequest" permission in the <a
3 href="manifest">extension manifest</a> to use the web request 3 href="manifest">extension manifest</a> to use the web request
4 API, along with <a href="declare_permissions">host permissions</a> 4 API, along with <a href="declare_permissions">host permissions</a>
5 for any hosts whose network requests you want to access. If you want to 5 for any hosts whose network requests you want to access. If you want to
6 use the web request API in a blocking fashion, you need to request 6 use the web request API in a blocking fashion, you need to request
7 the "webRequestBlocking" permission in addition. 7 the "webRequestBlocking" permission in addition.
8 For example:</p> 8 For example:</p>
9 <pre data-filename="manifest.json"> 9 <pre data-filename="manifest.json">
10 { 10 {
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 </p> 117 </p>
118 118
119 <p> 119 <p>
120 The webRequest API only exposes requests that the extension has 120 The webRequest API only exposes requests that the extension has
121 permission to see, given its 121 permission to see, given its
122 <a href="declare_permissions">host permissions</a>. 122 <a href="declare_permissions">host permissions</a>.
123 Moreover, only the following schemes are accessible: 123 Moreover, only the following schemes are accessible:
124 <code>http://</code>, 124 <code>http://</code>,
125 <code>https://</code>, 125 <code>https://</code>,
126 <code>ftp://</code>, 126 <code>ftp://</code>,
127 <code>file://</code>, or 127 <code>file://</code>,
128 <code>ws://</code> (<span class="availability">since Chrome 58</span>),
129 <code>wss://</code> (<span class="availability">since Chrome 58</span>), or
128 <code>chrome-extension://</code>. 130 <code>chrome-extension://</code>.
129 In addition, even certain requests with URLs using one of the above schemes 131 In addition, even certain requests with URLs using one of the above schemes
130 are hidden, e.g., 132 are hidden, e.g.,
131 <code>chrome-extension://other_extension_id</code> where 133 <code>chrome-extension://other_extension_id</code> where
132 <code>other_extension_id</code> is not the ID of the extension to handle 134 <code>other_extension_id</code> is not the ID of the extension to handle
133 the request, 135 the request,
134 <code>https://www.google.com/chrome</code>, 136 <code>https://www.google.com/chrome</code>,
135 and others (this list is not complete). Also synchronous XMLHttpRequests from 137 and others (this list is not complete). Also synchronous XMLHttpRequests from
136 your extension are hidden from blocking event handlers in order to prevent 138 your extension are hidden from blocking event handlers in order to prevent
137 deadlocks. 139 deadlocks.
138 Note that for some of the supported schemes the set of available events might be 140 Note that for some of the supported schemes the set of available events might be
139 limited due to the nature of the corresponding protocol. 141 limited due to the nature of the corresponding protocol.
140 For example, for the <q>file:</q> scheme, only <code>onBeforeRequest</code>, 142 For example, for the <q>file:</q> scheme, only <code>onBeforeRequest</code>,
141 <code>onResponseStarted</code>, <code>onCompleted</code>, and 143 <code>onResponseStarted</code>, <code>onCompleted</code>, and
142 <code>onErrorOccurred</code> may be dispatched. 144 <code>onErrorOccurred</code> may be dispatched.
143 </p> 145 </p>
144 146
147 <p>
148 <span class="availability">Starting from Chrome 58</span>, webRequest API
Devlin 2017/02/21 16:10:44 nit: *the* webRequest API
pkalinnikov 2017/02/21 19:18:16 Done.
149 supports intercepting the WebSocket handshake request. Since the handshake is
150 done by means of an HTTP upgrade request, its flow fits into HTTP-oriented
151 webRequest model. Note that the API does <b>not intercept</b>:
152 <ul>
153 <li>Individual messages sent over an established WebSocket connection.</li>
154 <li>WebSocket closing connection.</li>
155 </ul>
156 </p>
Devlin 2017/02/21 16:10:44 should we also mention that redirects are not supp
pkalinnikov 2017/02/21 19:18:16 Done.
157
145 <h2 id="concepts">Concepts</h2> 158 <h2 id="concepts">Concepts</h2>
146 159
147 <p>As the following sections explain, events in the web request API use request 160 <p>As the following sections explain, events in the web request API use request
148 IDs, and you can optionally specify filters and extra information when you 161 IDs, and you can optionally specify filters and extra information when you
149 register event listeners.</p> 162 register event listeners.</p>
150 163
151 <h3 id="Request IDs">Request IDs</h3> 164 <h3 id="Request IDs">Request IDs</h3>
152 165
153 <p>Each request is identified by a request ID. This ID is unique within a 166 <p>Each request is identified by a request ID. This ID is unique within a
154 browser session and the context of an extension. It remains constant during the 167 browser session and the context of an extension. It remains constant during the
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
305 } 318 }
306 } 319 }
307 return {requestHeaders: details.requestHeaders}; 320 return {requestHeaders: details.requestHeaders};
308 }, 321 },
309 {urls: ["&lt;all_urls&gt;"]}, 322 {urls: ["&lt;all_urls&gt;"]},
310 ["blocking", "requestHeaders"]); 323 ["blocking", "requestHeaders"]);
311 </pre> 324 </pre>
312 325
313 <p> For more example code, see the <a href="samples#search:webrequest">web reque st 326 <p> For more example code, see the <a href="samples#search:webrequest">web reque st
314 samples</a>.</p> 327 samples</a>.</p>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698