OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var onRequest = chrome.declarativeWebRequest.onRequest; | 5 var onRequest = chrome.declarativeWebRequest.onRequest; |
6 var AddResponseHeader = | 6 var AddResponseHeader = |
7 chrome.declarativeWebRequest.AddResponseHeader; | 7 chrome.declarativeWebRequest.AddResponseHeader; |
8 var RequestMatcher = chrome.declarativeWebRequest.RequestMatcher; | 8 var RequestMatcher = chrome.declarativeWebRequest.RequestMatcher; |
9 var CancelRequest = chrome.declarativeWebRequest.CancelRequest; | 9 var CancelRequest = chrome.declarativeWebRequest.CancelRequest; |
10 var RedirectByRegEx = chrome.declarativeWebRequest.RedirectByRegEx; | 10 var RedirectByRegEx = chrome.declarativeWebRequest.RedirectByRegEx; |
(...skipping 12 matching lines...) Expand all Loading... |
23 chrome.declarativeWebRequest.IgnoreRules; | 23 chrome.declarativeWebRequest.IgnoreRules; |
24 var AddRequestCookie = chrome.declarativeWebRequest.AddRequestCookie; | 24 var AddRequestCookie = chrome.declarativeWebRequest.AddRequestCookie; |
25 var AddResponseCookie = chrome.declarativeWebRequest.AddResponseCookie; | 25 var AddResponseCookie = chrome.declarativeWebRequest.AddResponseCookie; |
26 var EditRequestCookie = chrome.declarativeWebRequest.EditRequestCookie; | 26 var EditRequestCookie = chrome.declarativeWebRequest.EditRequestCookie; |
27 var EditResponseCookie = chrome.declarativeWebRequest.EditResponseCookie; | 27 var EditResponseCookie = chrome.declarativeWebRequest.EditResponseCookie; |
28 var RemoveRequestCookie = chrome.declarativeWebRequest.RemoveRequestCookie; | 28 var RemoveRequestCookie = chrome.declarativeWebRequest.RemoveRequestCookie; |
29 var RemoveResponseCookie = chrome.declarativeWebRequest.RemoveResponseCookie; | 29 var RemoveResponseCookie = chrome.declarativeWebRequest.RemoveResponseCookie; |
30 | 30 |
31 // Constants as functions, not to be called until after runTests. | 31 // Constants as functions, not to be called until after runTests. |
32 function getURLHttpSimple() { | 32 function getURLHttpSimple() { |
33 return getServerURL("files/extensions/api_test/webrequest/simpleLoad/a.html"); | 33 return getServerURL("extensions/api_test/webrequest/simpleLoad/a.html"); |
34 } | 34 } |
35 | 35 |
36 function getURLHttpSimpleB() { | 36 function getURLHttpSimpleB() { |
37 return getServerURL("files/extensions/api_test/webrequest/simpleLoad/b.html"); | 37 return getServerURL("extensions/api_test/webrequest/simpleLoad/b.html"); |
38 } | 38 } |
39 | 39 |
40 function getURLHttpComplex() { | 40 function getURLHttpComplex() { |
41 return getServerURL( | 41 return getServerURL( |
42 "files/extensions/api_test/webrequest/complexLoad/a.html"); | 42 "extensions/api_test/webrequest/complexLoad/a.html"); |
43 } | 43 } |
44 | 44 |
45 function getURLHttpRedirectTest() { | 45 function getURLHttpRedirectTest() { |
46 return getServerURL( | 46 return getServerURL( |
47 "files/extensions/api_test/webrequest/declarative/a.html"); | 47 "extensions/api_test/webrequest/declarative/a.html"); |
48 } | 48 } |
49 | 49 |
50 function getURLHttpWithHeaders() { | 50 function getURLHttpWithHeaders() { |
51 return getServerURL( | 51 return getServerURL( |
52 "files/extensions/api_test/webrequest/declarative/headers.html"); | 52 "extensions/api_test/webrequest/declarative/headers.html"); |
53 } | 53 } |
54 | 54 |
55 function getURLOfHTMLWithThirdParty() { | 55 function getURLOfHTMLWithThirdParty() { |
56 // Returns the URL of a HTML document with a third-party resource. | 56 // Returns the URL of a HTML document with a third-party resource. |
57 return getServerURL( | 57 return getServerURL( |
58 "files/extensions/api_test/webrequest/declarative/third-party.html"); | 58 "extensions/api_test/webrequest/declarative/third-party.html"); |
59 } | 59 } |
60 | 60 |
61 // Shared test sections. | 61 // Shared test sections. |
62 function cancelThirdPartyExpected() { | 62 function cancelThirdPartyExpected() { |
63 return [ | 63 return [ |
64 { label: "onBeforeRequest", | 64 { label: "onBeforeRequest", |
65 event: "onBeforeRequest", | 65 event: "onBeforeRequest", |
66 details: { | 66 details: { |
67 url: getURLOfHTMLWithThirdParty(), | 67 url: getURLOfHTMLWithThirdParty(), |
68 frameUrl: getURLOfHTMLWithThirdParty() | 68 frameUrl: getURLOfHTMLWithThirdParty() |
69 } | 69 } |
70 }, | 70 }, |
71 { label: "onBeforeSendHeaders", | 71 { label: "onBeforeSendHeaders", |
72 event: "onBeforeSendHeaders", | 72 event: "onBeforeSendHeaders", |
73 details: {url: getURLOfHTMLWithThirdParty()} | 73 details: {url: getURLOfHTMLWithThirdParty()} |
74 }, | 74 }, |
75 { label: "onSendHeaders", | 75 { label: "onSendHeaders", |
76 event: "onSendHeaders", | 76 event: "onSendHeaders", |
77 details: {url: getURLOfHTMLWithThirdParty()} | 77 details: {url: getURLOfHTMLWithThirdParty()} |
78 }, | 78 }, |
79 { label: "onHeadersReceived", | 79 { label: "onHeadersReceived", |
80 event: "onHeadersReceived", | 80 event: "onHeadersReceived", |
81 details: { | 81 details: { |
82 url: getURLOfHTMLWithThirdParty(), | 82 url: getURLOfHTMLWithThirdParty(), |
83 statusLine: "HTTP/1.0 200 OK" | 83 statusLine: "HTTP/1.1 200 OK" |
84 } | 84 } |
85 }, | 85 }, |
86 { label: "onResponseStarted", | 86 { label: "onResponseStarted", |
87 event: "onResponseStarted", | 87 event: "onResponseStarted", |
88 details: { | 88 details: { |
89 url: getURLOfHTMLWithThirdParty(), | 89 url: getURLOfHTMLWithThirdParty(), |
90 fromCache: false, | 90 fromCache: false, |
91 ip: "127.0.0.1", | 91 ip: "127.0.0.1", |
92 statusCode: 200, | 92 statusCode: 200, |
93 statusLine: "HTTP/1.0 200 OK" | 93 statusLine: "HTTP/1.1 200 OK" |
94 } | 94 } |
95 }, | 95 }, |
96 { label: "onCompleted", | 96 { label: "onCompleted", |
97 event: "onCompleted", | 97 event: "onCompleted", |
98 details: { | 98 details: { |
99 fromCache: false, | 99 fromCache: false, |
100 ip: "127.0.0.1", | 100 ip: "127.0.0.1", |
101 url: getURLOfHTMLWithThirdParty(), | 101 url: getURLOfHTMLWithThirdParty(), |
102 statusCode: 200, | 102 statusCode: 200, |
103 statusLine: "HTTP/1.0 200 OK" | 103 statusLine: "HTTP/1.1 200 OK" |
104 } | 104 } |
105 }, | 105 }, |
106 { label: "img-onBeforeRequest", | 106 { label: "img-onBeforeRequest", |
107 event: "onBeforeRequest", | 107 event: "onBeforeRequest", |
108 details: { | 108 details: { |
109 type: "image", | 109 type: "image", |
110 url: "http://non_existing_third_party.com/image.png", | 110 url: "http://non_existing_third_party.com/image.png", |
111 frameUrl: getURLOfHTMLWithThirdParty() | 111 frameUrl: getURLOfHTMLWithThirdParty() |
112 } | 112 } |
113 }, | 113 }, |
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 frameUrl: getURLHttpSimple(), | 323 frameUrl: getURLHttpSimple(), |
324 }, | 324 }, |
325 }, | 325 }, |
326 { label: "onCompleted", | 326 { label: "onCompleted", |
327 event: "onCompleted", | 327 event: "onCompleted", |
328 details: { | 328 details: { |
329 ip: "127.0.0.1", | 329 ip: "127.0.0.1", |
330 url: getURLHttpSimple(), | 330 url: getURLHttpSimple(), |
331 fromCache: false, | 331 fromCache: false, |
332 statusCode: 200, | 332 statusCode: 200, |
333 statusLine: "HTTP/1.0 200 OK", | 333 statusLine: "HTTP/1.1 200 OK", |
334 } | 334 } |
335 }, | 335 }, |
336 ], | 336 ], |
337 [ ["onBeforeRequest-a", "onBeforeRedirect", "onBeforeRequest-b", | 337 [ ["onBeforeRequest-a", "onBeforeRedirect", "onBeforeRequest-b", |
338 "onCompleted"] ]); | 338 "onCompleted"] ]); |
339 | 339 |
340 onRequest.addRules( | 340 onRequest.addRules( |
341 [ {'conditions': [new RequestMatcher({'url': {'pathSuffix': ".html"}})], | 341 [ {'conditions': [new RequestMatcher({'url': {'pathSuffix': ".html"}})], |
342 'actions': [ | 342 'actions': [ |
343 new RedirectRequest({'redirectUrl': getURLHttpSimple()})]} | 343 new RedirectRequest({'redirectUrl': getURLHttpSimple()})]} |
344 ], | 344 ], |
345 function() {navigateAndWait(getURLHttpComplex());} | 345 function() {navigateAndWait(getURLHttpComplex());} |
346 ); | 346 ); |
347 }, | 347 }, |
348 | 348 |
349 function testRedirectRequest2() { | 349 function testRedirectRequest2() { |
350 ignoreUnexpected = true; | 350 ignoreUnexpected = true; |
351 expect( | 351 expect( |
352 [ | 352 [ |
353 { label: "onCompleted", | 353 { label: "onCompleted", |
354 event: "onCompleted", | 354 event: "onCompleted", |
355 details: { | 355 details: { |
356 ip: "127.0.0.1", | 356 ip: "127.0.0.1", |
357 url: getURLHttpRedirectTest(), | 357 url: getURLHttpRedirectTest(), |
358 fromCache: false, | 358 fromCache: false, |
359 statusCode: 200, | 359 statusCode: 200, |
360 statusLine: "HTTP/1.0 200 OK", | 360 statusLine: "HTTP/1.1 200 OK", |
361 } | 361 } |
362 }, | 362 }, |
363 // We cannot wait for onCompleted signals because these are not sent | 363 // We cannot wait for onCompleted signals because these are not sent |
364 // for data:// URLs. | 364 // for data:// URLs. |
365 { label: "onBeforeRedirect-1", | 365 { label: "onBeforeRedirect-1", |
366 event: "onBeforeRedirect", | 366 event: "onBeforeRedirect", |
367 details: { | 367 details: { |
368 url: getServerURL( | 368 url: getServerURL( |
369 "files/extensions/api_test/webrequest/declarative/image.png"), | 369 "extensions/api_test/webrequest/declarative/image.png"), |
370 redirectUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEA" + | 370 redirectUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEA" + |
371 "AAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJ" + | 371 "AAABCAYAAAAfFcSJAAAACklEQVR4nGMAAQAABQABDQottAAAAABJRU5ErkJ" + |
372 "ggg==", | 372 "ggg==", |
373 fromCache: false, | 373 fromCache: false, |
374 statusCode: -1, | 374 statusCode: -1, |
375 statusLine: "", | 375 statusLine: "", |
376 type: "image", | 376 type: "image", |
377 } | 377 } |
378 }, | 378 }, |
379 { label: "onBeforeRedirect-2", | 379 { label: "onBeforeRedirect-2", |
380 event: "onBeforeRedirect", | 380 event: "onBeforeRedirect", |
381 details: { | 381 details: { |
382 frameId: 1, | 382 frameId: 1, |
383 parentFrameId: 0, | 383 parentFrameId: 0, |
384 url: getServerURL( | 384 url: getServerURL( |
385 "files/extensions/api_test/webrequest/declarative/frame.html"), | 385 "extensions/api_test/webrequest/declarative/frame.html"), |
386 redirectUrl: "data:text/html,", | 386 redirectUrl: "data:text/html,", |
387 fromCache: false, | 387 fromCache: false, |
388 statusCode: -1, | 388 statusCode: -1, |
389 statusLine: "", | 389 statusLine: "", |
390 type: "sub_frame", | 390 type: "sub_frame", |
391 } | 391 } |
392 }, | 392 }, |
393 ], | 393 ], |
394 [ ["onCompleted"], ["onBeforeRedirect-1"], ["onBeforeRedirect-2"] ]); | 394 [ ["onCompleted"], ["onBeforeRedirect-1"], ["onBeforeRedirect-2"] ]); |
395 | 395 |
(...skipping 13 matching lines...) Expand all Loading... |
409 ignoreUnexpected = true; | 409 ignoreUnexpected = true; |
410 expect( | 410 expect( |
411 [ | 411 [ |
412 { label: "onCompleted", | 412 { label: "onCompleted", |
413 event: "onCompleted", | 413 event: "onCompleted", |
414 details: { | 414 details: { |
415 ip: "127.0.0.1", | 415 ip: "127.0.0.1", |
416 url: getURLHttpSimpleB(), | 416 url: getURLHttpSimpleB(), |
417 fromCache: false, | 417 fromCache: false, |
418 statusCode: 200, | 418 statusCode: 200, |
419 statusLine: "HTTP/1.0 200 OK", | 419 statusLine: "HTTP/1.1 200 OK", |
420 } | 420 } |
421 }, | 421 }, |
422 ], | 422 ], |
423 [ ["onCompleted"] ]); | 423 [ ["onCompleted"] ]); |
424 | 424 |
425 onRequest.addRules( | 425 onRequest.addRules( |
426 [ {conditions: [new RequestMatcher({url: {pathSuffix: ".html"}})], | 426 [ {conditions: [new RequestMatcher({url: {pathSuffix: ".html"}})], |
427 actions: [ | 427 actions: [ |
428 new RedirectByRegEx({from: "^(.*)/a.html$", to: "$1/b.html"})]} | 428 new RedirectByRegEx({from: "^(.*)/a.html$", to: "$1/b.html"})]} |
429 ], | 429 ], |
(...skipping 22 matching lines...) Expand all Loading... |
452 'urlMatches': 'simple[A-Z].*a\.html$', | 452 'urlMatches': 'simple[A-Z].*a\.html$', |
453 'schemes': ["http"] | 453 'schemes': ["http"] |
454 }, | 454 }, |
455 })], | 455 })], |
456 'actions': [new CancelRequest()]} | 456 'actions': [new CancelRequest()]} |
457 ], | 457 ], |
458 function() {navigateAndWait(getURLHttpSimple());} | 458 function() {navigateAndWait(getURLHttpSimple());} |
459 ); | 459 ); |
460 }, | 460 }, |
461 ]); | 461 ]); |
OLD | NEW |