Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(154)

Unified Diff: chrome/test/data/extensions/api_test/app_background_page/no_js/test.js

Issue 10012053: Don't recreate background windows when allow_js_access if false (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/test/data/extensions/api_test/app_background_page/no_js/test.js
diff --git a/chrome/test/data/extensions/api_test/app_background_page/no_js/test.js b/chrome/test/data/extensions/api_test/app_background_page/no_js/test.js
index fd42f0740db00e00c66dc64e8316f48848e61a64..c26ec7ae48d38b9bd86914ac48fbb1caeeee79ee 100644
--- a/chrome/test/data/extensions/api_test/app_background_page/no_js/test.js
+++ b/chrome/test/data/extensions/api_test/app_background_page/no_js/test.js
@@ -7,9 +7,14 @@
// AppBackgroundPageApiTest.NoJsBackgroundPage code).
// - The return value of the window.open call is null (since the background
// page is not scriptable)
+// - Attempts to call window.open(...., "background") again will not result in
+// existing background page being closed and a new one being re-opened.
var pagePrefix =
'http://a.com:PORT/files/extensions/api_test/app_background_page/no_js';
+var launchUrl;
+var launchTabId;
+var backgroundPageLoaded = false;
// Dispatch "tunneled" functions from the live web pages to this testing page.
chrome.extension.onRequest.addListener(function(request) {
@@ -33,9 +38,13 @@ window.onload = function() {
// config is requested before onload, then sometimes onload has already
// fired by the time chrome.test.getConfig()'s callback runs.
chrome.test.getConfig(function(config) {
- var launchUrl =
+ launchUrl =
pagePrefix.replace(/PORT/, config.testServer.port) + '/launch.html';
- chrome.tabs.create({ 'url': launchUrl });
+ chrome.tabs.create(
+ {url: launchUrl},
+ function(tab) {
+ launchTabId = tab.id;
+ });
});
}
@@ -44,5 +53,25 @@ function onBackgroundWindowNotNull() {
}
function onBackgroundPageLoaded() {
- chrome.test.notifyPass();
+ if (backgroundPageLoaded) {
+ chrome.test.notifyFail('Background page loaded more than once.');
Charlie Reis 2012/04/06 21:55:24 nit: indent
Mihai Parparita -not on Chrome 2012/04/06 22:22:09 Fixed.
+ return;
+ }
+
+ backgroundPageLoaded = true;
+
+ // Close the existing page and re-open it, which will try to call
+ // window.open(..., "background") again.
+ chrome.tabs.remove(
+ launchTabId,
+ function() {
+ chrome.tabs.create(
+ {url: launchUrl },
+ function(tab) {
+ // We wait for a bit before declaring the test as passed, since
Mihai Parparita -not on Chrome 2012/04/06 21:10:05 This is kind of lame, but I don't have any other i
Charlie Reis 2012/04/06 21:55:24 Yeah, this is unfortunate. If I understand correc
+ // it might take a while for the additional background contents
+ // to be recreated.
+ setTimeout(chrome.test.notifyPass, 2000);
+ });
+ });
}

Powered by Google App Engine
This is Rietveld 408576698