Chromium Code Reviews| Index: chrome/test/data/extensions/api_test/active_tab/background.js |
| diff --git a/chrome/test/data/extensions/api_test/active_tab/background.js b/chrome/test/data/extensions/api_test/active_tab/background.js |
| index cdafdc622bc5ba2015e813b6b9331c3c8b37cc0c..cc1ddced75b10ba81f0390119fbe1d83ad2382d5 100644 |
| --- a/chrome/test/data/extensions/api_test/active_tab/background.js |
| +++ b/chrome/test/data/extensions/api_test/active_tab/background.js |
| @@ -10,12 +10,46 @@ var callbackPass = chrome.test.callbackPass; |
| var RoleType = chrome.automation.RoleType; |
| -chrome.browserAction.onClicked.addListener(function() { |
| - chrome.tabs.executeScript({ code: 'true' }, callbackPass()); |
| +function canXhr(url) { |
| + assertFalse(url == null); |
| + var xhr = new XMLHttpRequest(); |
| + xhr.open('GET', url, false); |
| + var success = true; |
| + try { |
| + xhr.send(); |
| + } catch(e) { |
| + success = false; |
|
not at google - send to devlin
2015/02/05 22:40:22
Okie could you also assert that e.name == 'Network
Devlin
2015/02/06 18:59:53
Good idea. Done.
|
| + } |
| + return success; |
| +} |
| + |
| +var cachedUrl = null; |
| +var iframeDone = null; |
| + |
| +chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) { |
| + if (request.message == 'xhr') { |
| + sendResponse({url: cachedUrl}); |
| + } else { |
| + assertTrue(request.success); |
| + iframeDone(); |
| + } |
| +}); |
| + |
| +var iframeUrl = chrome.extension.getURL('iframe.html'); |
| +var injectIframe = |
|
not at google - send to devlin
2015/02/05 22:40:22
CSP SchmeeSP
|
| + 'var iframe = document.createElement("iframe");\n' + |
| + 'iframe.src = "' + iframeUrl + '";\n' + |
| + 'document.body.appendChild(iframe);\n'; |
| + |
| +chrome.browserAction.onClicked.addListener(function(tab) { |
| + iframeDone = chrome.test.callbackAdded(); |
| + cachedUrl = tab.url; |
| + chrome.tabs.executeScript({ code: injectIframe }, callbackPass()); |
| + assertTrue(canXhr(tab.url)); |
| + |
| chrome.automation.getTree(callbackPass(function(rootNode) { |
| assertFalse(rootNode == undefined); |
| assertEq(RoleType.rootWebArea, rootNode.role); |
| - chrome.test.succeed(); |
| })); |
| }); |
| @@ -27,4 +61,6 @@ chrome.webNavigation.onCompleted.addListener(function(details) { |
| chrome.automation.getTree(callbackFail( |
| 'Cannot request automation tree on url "' + details.url + |
| '". Extension manifest must request permission to access this host.')); |
| + |
| + assertFalse(canXhr(details.url)); |
| }); |