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)); |
}); |