diff options
author | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 19:49:51 +0000 |
---|---|---|
committer | mad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 19:49:51 +0000 |
commit | bd618b4cc8444654ebd1e7dfcde40d7eb94bb105 (patch) | |
tree | 3e01f32b8090ac5707cb7e04297a1b3744a49d06 /chrome | |
parent | 67220a0c19ae1513b95c0af2004f812a1d5085fc (diff) | |
download | chromium_src-bd618b4cc8444654ebd1e7dfcde40d7eb94bb105.zip chromium_src-bd618b4cc8444654ebd1e7dfcde40d7eb94bb105.tar.gz chromium_src-bd618b4cc8444654ebd1e7dfcde40d7eb94bb105.tar.bz2 |
Fix for flaky browser tests as done by twiz and reviewed here:
http://codereview.chromium.org/346044
BUG=26599
TEST=extension_popup_apitest.cc
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30982 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/extensions/extension_browsertest.cc | 13 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_popup_apitest.cc | 4 |
2 files changed, 9 insertions, 8 deletions
diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc index fecef04..1d3b5a9 100644 --- a/chrome/browser/extensions/extension_browsertest.cc +++ b/chrome/browser/extensions/extension_browsertest.cc @@ -185,9 +185,6 @@ bool ExtensionBrowserTest::WaitForPageActionVisibilityChangeTo(int count) { bool ExtensionBrowserTest::WaitForExtensionHostsToLoad() { // Wait for all the extension hosts that exist to finish loading. - // NOTE: This assumes that the extension host list is not changing while - // this method is running. - NotificationRegistrar registrar; registrar.Add(this, NotificationType::EXTENSION_HOST_DID_STOP_LOADING, NotificationService::AllSources()); @@ -196,10 +193,16 @@ bool ExtensionBrowserTest::WaitForExtensionHostsToLoad() { browser()->profile()->GetExtensionProcessManager(); for (ExtensionProcessManager::const_iterator iter = manager->begin(); iter != manager->end();) { - if ((*iter)->did_stop_loading()) + if ((*iter)->did_stop_loading()) { ++iter; - else + } else { ui_test_utils::RunMessageLoop(); + + // Test activity may have modified the set of extension processes during + // message processing, so re-start the iteration to catch added/removed + // processes. + iter = manager->begin(); + } } LOG(INFO) << "All ExtensionHosts loaded"; diff --git a/chrome/browser/extensions/extension_popup_apitest.cc b/chrome/browser/extensions/extension_popup_apitest.cc index 5ee372f..cfd8404 100644 --- a/chrome/browser/extensions/extension_popup_apitest.cc +++ b/chrome/browser/extensions/extension_popup_apitest.cc @@ -6,9 +6,7 @@ #include "chrome/browser/extensions/extension_apitest.h" #include "chrome/common/chrome_switches.h" -// This test has been disabled because it was crashing -// browsertests. crbug.com/26599 -IN_PROC_BROWSER_TEST_F(ExtensionApiTest, DISABLED_Popup) { +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, Popup) { CommandLine::ForCurrentProcess()->AppendSwitch( switches::kEnableExperimentalExtensionApis); ASSERT_TRUE(RunExtensionTest("popup_api")) << message_; |