summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authormad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 19:49:51 +0000
committermad@chromium.org <mad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-11-04 19:49:51 +0000
commitbd618b4cc8444654ebd1e7dfcde40d7eb94bb105 (patch)
tree3e01f32b8090ac5707cb7e04297a1b3744a49d06 /chrome
parent67220a0c19ae1513b95c0af2004f812a1d5085fc (diff)
downloadchromium_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.cc13
-rw-r--r--chrome/browser/extensions/extension_popup_apitest.cc4
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_;