diff options
author | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-09 16:44:13 +0000 |
---|---|---|
committer | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-09 16:44:13 +0000 |
commit | dae5717306e82ff5ac20c11f7b31ac8cc8af9d6d (patch) | |
tree | 29709e815671d0ec4b8057fb482aa094d376a5ce /chrome/browser/extensions/app_background_page_apitest.cc | |
parent | be9a1b108ec864c9800e41841efe6a40d1fab3d0 (diff) | |
download | chromium_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.cc | 11 |
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) { |