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..74e587b41ea73344d70493959c2fdddb1a9a9232 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,47 @@ 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) { |
+ assertEq('NetworkError', e.name); |
+ success = false; |
+ } |
+ 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 = |
+ '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 +62,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)); |
}); |