| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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> |
| OLD | NEW |