OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 /** | 5 /** |
6 * Every test needs: | 6 * Every test needs: |
7 * - a button in options.html | 7 * - a button in options.html |
8 * - a function that runs the test & calls setCompleted when done | 8 * - a function that runs the test & calls setCompleted when done |
9 * - a listener registered in setupEvents | 9 * - a listener registered in setupEvents |
10 **/ | 10 **/ |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 ); | 138 ); |
139 window.open('http://www.google.cn'); | 139 window.open('http://www.google.cn'); |
140 } | 140 } |
141 | 141 |
142 // Modifies the headers sent and received in an HTTP request using the | 142 // Modifies the headers sent and received in an HTTP request using the |
143 // webRequest API. | 143 // webRequest API. |
144 function doWebRequestModifications() { | 144 function doWebRequestModifications() { |
145 // Install a webRequest handler that will add an HTTP header to the outgoing | 145 // Install a webRequest handler that will add an HTTP header to the outgoing |
146 // request for the main page. | 146 // request for the main page. |
147 function doModifyHeaders(details) { | 147 function doModifyHeaders(details) { |
| 148 var response = {}; |
| 149 |
148 var headers = details.requestHeaders; | 150 var headers = details.requestHeaders; |
149 if (headers === undefined) { | 151 if (headers === undefined) { |
150 headers = []; | 152 headers = []; |
151 } | 153 } |
152 headers.push({'name': 'X-Test-Activity-Log-Send', | 154 headers.push({'name': 'X-Test-Activity-Log-Send', |
153 'value': 'Present'}); | 155 'value': 'Present'}); |
154 return {'requestHeaders': headers}; | 156 response['requestHeaders'] = headers; |
| 157 |
| 158 headers = details.responseHeaders; |
| 159 if (headers === undefined) { |
| 160 headers = []; |
| 161 } |
| 162 headers = headers.filter( |
| 163 function(x) {return x["name"] != "Cache-Control"}); |
| 164 headers.push({'name': 'X-Test-Response-Header', |
| 165 'value': 'Inserted'}); |
| 166 headers.push({'name': 'Set-Cookie', |
| 167 'value': 'ActivityLog=InsertedCookie'}); |
| 168 response['responseHeaders'] = headers; |
| 169 |
| 170 return response; |
155 } | 171 } |
156 chrome.webRequest.onBeforeSendHeaders.addListener( | 172 chrome.webRequest.onBeforeSendHeaders.addListener( |
157 doModifyHeaders, | 173 doModifyHeaders, |
158 {'urls': ['http://*/*'], 'types': ['main_frame']}, | 174 {'urls': ['http://*/*'], 'types': ['main_frame']}, |
159 ['blocking', 'requestHeaders']); | 175 ['blocking', 'requestHeaders']); |
| 176 chrome.webRequest.onHeadersReceived.addListener( |
| 177 doModifyHeaders, |
| 178 {'urls': ['http://*/*'], 'types': ['main_frame']}, |
| 179 ['blocking', 'responseHeaders']); |
160 | 180 |
161 // Open a tab, then close it when it has finished loading--this should give | 181 // Open a tab, then close it when it has finished loading--this should give |
162 // the webRequest handler a chance to run. | 182 // the webRequest handler a chance to run. |
163 chrome.tabs.onUpdated.addListener( | 183 chrome.tabs.onUpdated.addListener( |
164 function closeTab(tabId, changeInfo, tab) { | 184 function closeTab(tabId, changeInfo, tab) { |
165 if (changeInfo['status'] === "complete" && | 185 if (changeInfo['status'] === "complete" && |
166 tab.url.match(/google\.co\.uk/g)) { | 186 tab.url.match(/google\.co\.uk/g)) { |
167 chrome.webRequest.onBeforeSendHeaders.removeListener(doModifyHeaders); | 187 chrome.webRequest.onBeforeSendHeaders.removeListener(doModifyHeaders); |
168 chrome.tabs.onUpdated.removeListener(closeTab); | 188 chrome.tabs.onUpdated.removeListener(closeTab); |
169 chrome.tabs.remove(tabId); | 189 chrome.tabs.remove(tabId); |
(...skipping 16 matching lines...) Expand all Loading... |
186 $('cs_xhr').addEventListener('click', doContentScriptXHR); | 206 $('cs_xhr').addEventListener('click', doContentScriptXHR); |
187 $('webrequest').addEventListener('click', doWebRequestModifications); | 207 $('webrequest').addEventListener('click', doWebRequestModifications); |
188 $('double').addEventListener('click', checkNoDoubleLogging); | 208 $('double').addEventListener('click', checkNoDoubleLogging); |
189 | 209 |
190 completed = 0; | 210 completed = 0; |
191 total = document.getElementsByTagName('button').length; | 211 total = document.getElementsByTagName('button').length; |
192 } | 212 } |
193 | 213 |
194 document.addEventListener('DOMContentLoaded', setupEvents); | 214 document.addEventListener('DOMContentLoaded', setupEvents); |
195 | 215 |
OLD | NEW |