From bd618b4cc8444654ebd1e7dfcde40d7eb94bb105 Mon Sep 17 00:00:00 2001 From: "mad@chromium.org" Date: Wed, 4 Nov 2009 19:49:51 +0000 Subject: 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 --- chrome/browser/extensions/extension_browsertest.cc | 13 ++++++++----- chrome/browser/extensions/extension_popup_apitest.cc | 4 +--- 2 files changed, 9 insertions(+), 8 deletions(-) (limited to 'chrome/browser/extensions') 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_; -- cgit v1.1