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