Chromium Code Reviews| 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 49 function getURLHttpRedirectTest() { | 49 function getURLHttpRedirectTest() { |
| 50 return getServerURL( | 50 return getServerURL( |
| 51 "files/extensions/api_test/webrequest/declarative/a.html"); | 51 "files/extensions/api_test/webrequest/declarative/a.html"); |
| 52 } | 52 } |
| 53 | 53 |
| 54 function getURLHttpWithHeaders() { | 54 function getURLHttpWithHeaders() { |
| 55 return getServerURL( | 55 return getServerURL( |
| 56 "files/extensions/api_test/webrequest/declarative/headers.html"); | 56 "files/extensions/api_test/webrequest/declarative/headers.html"); |
| 57 } | 57 } |
| 58 | 58 |
| 59 function getURLParties() { | |
|
battre
2012/10/05 12:57:33
Can you add a comment why this is called getURLPar
vabr (Chromium)
2012/10/05 16:13:27
Done. On a second thought, the "parties" name soun
| |
| 60 return getServerURL( | |
| 61 "files/extensions/api_test/webrequest/declarative/parties.html"); | |
| 62 } | |
| 63 | |
| 59 function getURLSetCookie() { | 64 function getURLSetCookie() { |
| 60 return getServerURL('set-cookie?Foo=Bar'); | 65 return getServerURL('set-cookie?Foo=Bar'); |
| 61 } | 66 } |
| 62 | 67 |
| 63 function getURLSetCookie2() { | 68 function getURLSetCookie2() { |
| 64 return getServerURL('set-cookie?passedCookie=Foo&editedCookie=Foo&' + | 69 return getServerURL('set-cookie?passedCookie=Foo&editedCookie=Foo&' + |
| 65 'deletedCookie=Foo'); | 70 'deletedCookie=Foo'); |
| 66 } | 71 } |
| 67 | 72 |
| 68 function getURLEchoCookie() { | 73 function getURLEchoCookie() { |
| 69 return getServerURL('echoheader?Cookie'); | 74 return getServerURL('echoheader?Cookie'); |
| 70 } | 75 } |
| 71 | 76 |
| 72 function getURLHttpXHRData() { | 77 function getURLHttpXHRData() { |
| 73 return getServerURL("files/extensions/api_test/webrequest/xhr/data.json", | 78 return getServerURL("files/extensions/api_test/webrequest/xhr/data.json", |
| 74 "b.com"); | 79 "b.com"); |
| 75 } | 80 } |
| 76 | 81 |
| 77 function getURLHttpSimpleOnB() { | 82 function getURLHttpSimpleOnB() { |
| 78 return getServerURL("files/extensions/api_test/webrequest/simpleLoad/a.html", | 83 return getServerURL("files/extensions/api_test/webrequest/simpleLoad/a.html", |
| 79 "b.com"); | 84 "b.com"); |
| 80 } | 85 } |
| 81 | 86 |
| 87 // Shared test sections. | |
| 88 function cancelThirdPartyExpected() { | |
| 89 return [ | |
| 90 { label: "onBeforeRequest", | |
| 91 event: "onBeforeRequest", | |
| 92 details: { | |
| 93 url: getURLParties(), | |
| 94 frameUrl: getURLParties() | |
| 95 } | |
| 96 }, | |
| 97 { label: "onBeforeSendHeaders", | |
| 98 event: "onBeforeSendHeaders", | |
| 99 details: {url: getURLParties()} | |
| 100 }, | |
| 101 { label: "onSendHeaders", | |
| 102 event: "onSendHeaders", | |
| 103 details: {url: getURLParties()} | |
| 104 }, | |
| 105 { label: "onHeadersReceived", | |
| 106 event: "onHeadersReceived", | |
| 107 details: { | |
| 108 url: getURLParties(), | |
| 109 statusLine: "HTTP/1.0 200 OK" | |
| 110 } | |
| 111 }, | |
| 112 { label: "onResponseStarted", | |
| 113 event: "onResponseStarted", | |
| 114 details: { | |
| 115 url: getURLParties(), | |
| 116 fromCache: false, | |
| 117 ip: "127.0.0.1", | |
| 118 statusCode: 200, | |
| 119 statusLine: "HTTP/1.0 200 OK" | |
| 120 } | |
| 121 }, | |
| 122 { label: "onCompleted", | |
| 123 event: "onCompleted", | |
| 124 details: { | |
| 125 fromCache: false, | |
| 126 ip: "127.0.0.1", | |
| 127 url: getURLParties(), | |
| 128 statusCode: 200, | |
| 129 statusLine: "HTTP/1.0 200 OK" | |
| 130 } | |
| 131 }, | |
| 132 { label: "img-onBeforeRequest", | |
| 133 event: "onBeforeRequest", | |
| 134 details: { | |
| 135 type: "image", | |
| 136 url: "http://non_existing_third_party.com/image.png", | |
| 137 frameUrl: getURLParties() | |
| 138 } | |
| 139 }, | |
| 140 { label: "img-onErrorOccurred", | |
| 141 event: "onErrorOccurred", | |
| 142 details: { | |
| 143 error: "net::ERR_BLOCKED_BY_CLIENT", | |
| 144 fromCache: false, | |
| 145 type: "image", | |
| 146 url: "http://non_existing_third_party.com/image.png" | |
| 147 } | |
| 148 }, | |
| 149 ]; | |
| 150 } | |
| 151 | |
| 152 function cancelThirdPartyExpectedOrder() { | |
| 153 return [ | |
| 154 ["onBeforeRequest", "onBeforeSendHeaders", "onSendHeaders", | |
| 155 "onHeadersReceived", "onResponseStarted", "onCompleted"], | |
| 156 ["img-onBeforeRequest", "img-onErrorOccurred"] | |
| 157 ]; | |
| 158 } | |
| 159 | |
| 82 runTests([ | 160 runTests([ |
| 83 | 161 |
| 84 function testCancelRequest() { | 162 function testCancelRequest() { |
| 85 ignoreUnexpected = true; | 163 ignoreUnexpected = true; |
| 86 expect( | 164 expect( |
| 87 [ | 165 [ |
| 88 { label: "onErrorOccurred", | 166 { label: "onErrorOccurred", |
| 89 event: "onErrorOccurred", | 167 event: "onErrorOccurred", |
| 90 details: { | 168 details: { |
| 91 url: getURLHttpWithHeaders(), | 169 url: getURLHttpWithHeaders(), |
| (...skipping 15 matching lines...) Expand all Loading... | |
| 107 'contentType': ["text/plain"], | 185 'contentType': ["text/plain"], |
| 108 'excludeContentType': ["image/png"], | 186 'excludeContentType': ["image/png"], |
| 109 'responseHeaders': [{ nameContains: ["content", "type"] } ], | 187 'responseHeaders': [{ nameContains: ["content", "type"] } ], |
| 110 'excludeResponseHeaders': [{ valueContains: "nonsense" }] })], | 188 'excludeResponseHeaders': [{ valueContains: "nonsense" }] })], |
| 111 'actions': [new CancelRequest()]} | 189 'actions': [new CancelRequest()]} |
| 112 ], | 190 ], |
| 113 function() {navigateAndWait(getURLHttpWithHeaders());} | 191 function() {navigateAndWait(getURLHttpWithHeaders());} |
| 114 ); | 192 ); |
| 115 }, | 193 }, |
| 116 | 194 |
| 195 // Tests that "thirdPartyForCookies: true" matches third party requests. | |
| 196 function testThirdParty() { | |
| 197 ignoreUnexpected = false; | |
| 198 expect(cancelThirdPartyExpected(), cancelThirdPartyExpectedOrder()); | |
| 199 onRequest.addRules( | |
| 200 [ {'conditions': [new RequestMatcher({thirdPartyForCookies: true})], | |
| 201 'actions': [new chrome.declarativeWebRequest.CancelRequest()]},], | |
| 202 function() {navigateAndWait(getURLParties());} | |
| 203 ); | |
| 204 }, | |
| 205 | |
| 206 // Tests that "thirdPartyForCookies: false" matches first party requests, | |
| 207 // by cancelling all requests, and overriding the cancelling rule only for | |
| 208 // requests matching "thirdPartyForCookies: false". | |
| 209 function testFirstParty() { | |
| 210 ignoreUnexpected = false; | |
| 211 expect(cancelThirdPartyExpected(), cancelThirdPartyExpectedOrder()); | |
| 212 onRequest.addRules( | |
| 213 [ {'priority': 2, | |
| 214 'conditions': [ | |
| 215 new RequestMatcher({thirdPartyForCookies: false}) | |
| 216 ], | |
| 217 'actions': [ | |
| 218 new chrome.declarativeWebRequest.IgnoreRules({ | |
| 219 lowerPriorityThan: 2 }) | |
| 220 ] | |
| 221 }, | |
| 222 {'priority': 1, | |
| 223 'conditions': [new RequestMatcher({})], | |
| 224 'actions': [new chrome.declarativeWebRequest.CancelRequest()] | |
| 225 }, | |
| 226 ], | |
| 227 function() {navigateAndWait(getURLParties());} | |
| 228 ); | |
| 229 }, | |
| 230 | |
| 117 function testRedirectRequest() { | 231 function testRedirectRequest() { |
| 118 ignoreUnexpected = true; | 232 ignoreUnexpected = true; |
| 119 expect( | 233 expect( |
| 120 [ | 234 [ |
| 121 { label: "onBeforeRequest-a", | 235 { label: "onBeforeRequest-a", |
| 122 event: "onBeforeRequest", | 236 event: "onBeforeRequest", |
| 123 details: { | 237 details: { |
| 124 type: "main_frame", | 238 type: "main_frame", |
| 125 url: getURLHttpComplex(), | 239 url: getURLHttpComplex(), |
| 126 frameUrl: getURLHttpComplex() | 240 frameUrl: getURLHttpComplex() |
| (...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 498 this.status + ", responseText: " + this.responseText); | 612 this.status + ", responseText: " + this.responseText); |
| 499 } | 613 } |
| 500 } | 614 } |
| 501 req.open("GET", getURLHttpXHRData(), asynchronous); | 615 req.open("GET", getURLHttpXHRData(), asynchronous); |
| 502 req.send(null); | 616 req.send(null); |
| 503 }); | 617 }); |
| 504 } | 618 } |
| 505 ); | 619 ); |
| 506 }, | 620 }, |
| 507 ]); | 621 ]); |
| OLD | NEW |