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

Side by Side Diff: chrome/test/data/extensions/api_test/webrequest/events/test.html

Issue 7048010: Fix onBeforeSendHeaders regression: we were sending {name: name} for every (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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
« no previous file with comments | « chrome/browser/extensions/extension_webrequest_api.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <script> 1 <script>
2 var getURL = chrome.extension.getURL; 2 var getURL = chrome.extension.getURL;
3 var deepEq = chrome.test.checkDeepEq; 3 var deepEq = chrome.test.checkDeepEq;
4 var expectedEventData; 4 var expectedEventData;
5 var capturedEventData; 5 var capturedEventData;
6 var expectedEventOrder; 6 var expectedEventOrder;
7 var tabId; 7 var tabId;
8 var eventsCaptured; 8 var eventsCaptured;
9 9
10 // PORT will be changed to the port of the test server. 10 // PORT will be changed to the port of the test server.
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 chrome.test.assertTrue(positions[previousLabel] < positions[label], 97 chrome.test.assertTrue(positions[previousLabel] < positions[label],
98 "Event " + previousLabel + " is supposed to arrive before " + 98 "Event " + previousLabel + " is supposed to arrive before " +
99 label + "."); 99 label + ".");
100 previousLabel = label; 100 previousLabel = label;
101 }); 101 });
102 }); 102 });
103 103
104 eventsCaptured(); 104 eventsCaptured();
105 } 105 }
106 106
107 // Simple check to see that we have a User-Agent header, and that it contains
108 // an expected value. This is a basic check that the request headers are valid.
109 function checkUserAgent(headers) {
110 for (var i in headers) {
111 if (headers[i].name.toLowerCase() == "user-agent")
112 return headers[i].value.toLowerCase().indexOf("chrome") != -1;
113 }
114 return false;
115 }
116
107 function captureEvent(name, details) { 117 function captureEvent(name, details) {
108 // Ignore system-level requests like safebrowsing updates and favicon fetches 118 // Ignore system-level requests like safebrowsing updates and favicon fetches
109 // since they are unpredictable. 119 // since they are unpredictable.
110 if (details.tabId == -1 || details.type == "other" || 120 if (details.tabId == -1 || details.type == "other" ||
111 details.url.match(/\/favicon.ico$/) || 121 details.url.match(/\/favicon.ico$/) ||
112 details.url.match(/https:\/\/dl.google.com/)) 122 details.url.match(/https:\/\/dl.google.com/))
113 return; 123 return;
114 124
115 // Pull the extra per-event options out of the expected data. These let 125 // Pull the extra per-event options out of the expected data. These let
116 // us specify special return values per event. 126 // us specify special return values per event.
117 var currentIndex = capturedEventData.length; 127 var currentIndex = capturedEventData.length;
118 var extraOptions; 128 var extraOptions;
119 if (expectedEventData.length > currentIndex) { 129 if (expectedEventData.length > currentIndex) {
120 retval = expectedEventData[currentIndex].retval; 130 retval = expectedEventData[currentIndex].retval;
121 } 131 }
122 132
123 delete details.requestId; 133 delete details.requestId;
124 delete details.timeStamp; 134 delete details.timeStamp;
125 if (details.requestHeaders) { 135 if (details.requestHeaders) {
126 details.requestHeadersExist = true; 136 details.requestHeadersValid = checkUserAgent(details.requestHeaders);
127 delete details.requestHeaders; 137 delete details.requestHeaders;
128 } 138 }
129 if (details.responseHeaders) { 139 if (details.responseHeaders) {
130 details.responseHeadersExist = true; 140 details.responseHeadersExist = true;
131 delete details.responseHeaders; 141 delete details.responseHeaders;
132 } 142 }
133 143
134 // find |details| in expectedEventData 144 // find |details| in expectedEventData
135 var found = false; 145 var found = false;
136 var label = undefined; 146 var label = undefined;
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 method: "GET", 266 method: "GET",
257 tabId: tabId, 267 tabId: tabId,
258 type: "main_frame", 268 type: "main_frame",
259 url: URL_HTTP_SIMPLE_LOAD_REDIRECT 269 url: URL_HTTP_SIMPLE_LOAD_REDIRECT
260 } 270 }
261 }, 271 },
262 { label: "onBeforeSendHeaders-1", 272 { label: "onBeforeSendHeaders-1",
263 event: "onBeforeSendHeaders", 273 event: "onBeforeSendHeaders",
264 details: { 274 details: {
265 url: URL_HTTP_SIMPLE_LOAD_REDIRECT, 275 url: URL_HTTP_SIMPLE_LOAD_REDIRECT,
266 requestHeadersExist: true 276 requestHeadersValid: true
267 } 277 }
268 }, 278 },
269 { label: "onRequestSent-1", 279 { label: "onRequestSent-1",
270 event: "onRequestSent", 280 event: "onRequestSent",
271 details: { 281 details: {
272 url: URL_HTTP_SIMPLE_LOAD_REDIRECT, 282 url: URL_HTTP_SIMPLE_LOAD_REDIRECT,
273 ip: "127.0.0.1", 283 ip: "127.0.0.1",
274 requestHeadersExist: true 284 requestHeadersValid: true
275 } 285 }
276 }, 286 },
277 { label: "onBeforeRedirect", 287 { label: "onBeforeRedirect",
278 event: "onBeforeRedirect", 288 event: "onBeforeRedirect",
279 details: { 289 details: {
280 url: URL_HTTP_SIMPLE_LOAD_REDIRECT, 290 url: URL_HTTP_SIMPLE_LOAD_REDIRECT,
281 redirectUrl: URL_HTTP_SIMPLE_LOAD, 291 redirectUrl: URL_HTTP_SIMPLE_LOAD,
282 statusCode: 301, 292 statusCode: 301,
283 responseHeadersExist: true, 293 responseHeadersExist: true,
284 statusLine: "HTTP/1.0 301 Moved Permanently" 294 statusLine: "HTTP/1.0 301 Moved Permanently"
285 } 295 }
286 }, 296 },
287 { label: "onBeforeRequest-2", 297 { label: "onBeforeRequest-2",
288 event: "onBeforeRequest", 298 event: "onBeforeRequest",
289 details: { 299 details: {
290 method: "GET", 300 method: "GET",
291 tabId: tabId, 301 tabId: tabId,
292 type: "main_frame", 302 type: "main_frame",
293 url: URL_HTTP_SIMPLE_LOAD 303 url: URL_HTTP_SIMPLE_LOAD
294 } 304 }
295 }, 305 },
296 { label: "onBeforeSendHeaders-2", 306 { label: "onBeforeSendHeaders-2",
297 event: "onBeforeSendHeaders", 307 event: "onBeforeSendHeaders",
298 details: { 308 details: {
299 url: URL_HTTP_SIMPLE_LOAD, 309 url: URL_HTTP_SIMPLE_LOAD,
300 requestHeadersExist: true 310 requestHeadersValid: true
301 } 311 }
302 }, 312 },
303 { label: "onRequestSent-2", 313 { label: "onRequestSent-2",
304 event: "onRequestSent", 314 event: "onRequestSent",
305 details: { 315 details: {
306 url: URL_HTTP_SIMPLE_LOAD, 316 url: URL_HTTP_SIMPLE_LOAD,
307 ip: "127.0.0.1", 317 ip: "127.0.0.1",
308 requestHeadersExist: true 318 requestHeadersValid: true
309 } 319 }
310 }, 320 },
311 { label: "onResponseStarted", 321 { label: "onResponseStarted",
312 event: "onResponseStarted", 322 event: "onResponseStarted",
313 details: { 323 details: {
314 url: URL_HTTP_SIMPLE_LOAD, 324 url: URL_HTTP_SIMPLE_LOAD,
315 statusCode: 200, 325 statusCode: 200,
316 responseHeadersExist: true, 326 responseHeadersExist: true,
317 statusLine: "HTTP/1.0 200 OK", 327 statusLine: "HTTP/1.0 200 OK",
318 } 328 }
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
660 }); 670 });
661 chrome.tabs.executeScript(tabId, 671 chrome.tabs.executeScript(tabId,
662 { 672 {
663 code: "chrome.extension.sendRequest(" + 673 code: "chrome.extension.sendRequest(" +
664 "{pass: document.body.innerText.indexOf('FoobarUA') >= 0});" 674 "{pass: document.body.innerText.indexOf('FoobarUA') >= 0});"
665 }); 675 });
666 }); 676 });
667 }, 677 },
668 ]); 678 ]);
669 </script> 679 </script>
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_webrequest_api.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698