summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/app_background_page_apitest.cc
diff options
context:
space:
mode:
authormihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-09 16:44:13 +0000
committermihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-09 16:44:13 +0000
commitdae5717306e82ff5ac20c11f7b31ac8cc8af9d6d (patch)
tree29709e815671d0ec4b8057fb482aa094d376a5ce /chrome/browser/extensions/app_background_page_apitest.cc
parentbe9a1b108ec864c9800e41841efe6a40d1fab3d0 (diff)
downloadchromium_src-dae5717306e82ff5ac20c11f7b31ac8cc8af9d6d.zip
chromium_src-dae5717306e82ff5ac20c11f7b31ac8cc8af9d6d.tar.gz
chromium_src-dae5717306e82ff5ac20c11f7b31ac8cc8af9d6d.tar.bz2
Don't recreate background windows when allow_js_access if false
Ignore calls to window.open(..., "background") with allow_js_access: false when there's already a BackgroundContents instance. BUG=122408 R=creis@chromium.org Review URL: http://codereview.chromium.org/10012053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131370 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/app_background_page_apitest.cc')
-rw-r--r--chrome/browser/extensions/app_background_page_apitest.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/chrome/browser/extensions/app_background_page_apitest.cc b/chrome/browser/extensions/app_background_page_apitest.cc
index 5321306..8b4a7b3 100644
--- a/chrome/browser/extensions/app_background_page_apitest.cc
+++ b/chrome/browser/extensions/app_background_page_apitest.cc
@@ -10,9 +10,11 @@
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser.h"
+#include "chrome/common/chrome_notification_types.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/extension.h"
#include "chrome/test/base/ui_test_utils.h"
+#include "content/test/test_notification_tracker.h"
#include "net/base/mock_host_resolver.h"
class AppBackgroundPageApiTest : public ExtensionApiTest {
@@ -144,6 +146,13 @@ IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, ManifestBackgroundPage) {
}
IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, NoJsBackgroundPage) {
+ // Make sure that no BackgroundContentses get deleted (a signal that repeated
+ // window.open calls recreate instances, instead of being no-ops).
+ TestNotificationTracker background_deleted_tracker;
+ background_deleted_tracker.ListenFor(
+ chrome::NOTIFICATION_BACKGROUND_CONTENTS_DELETED,
+ content::Source<Profile>(browser()->profile()));
+
host_resolver()->AddRule("a.com", "127.0.0.1");
ASSERT_TRUE(StartTestServer());
@@ -182,6 +191,8 @@ IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, NoJsBackgroundPage) {
ASSERT_TRUE(
BackgroundContentsServiceFactory::GetForProfile(browser()->profile())->
GetAppBackgroundContents(ASCIIToUTF16(extension->id())));
+
+ EXPECT_EQ(0u, background_deleted_tracker.size());
}
IN_PROC_BROWSER_TEST_F(AppBackgroundPageApiTest, NoJsManifestBackgroundPage) {