| Index: chrome/browser/extensions/extension_browsertest.cc
|
| diff --git a/chrome/browser/extensions/extension_browsertest.cc b/chrome/browser/extensions/extension_browsertest.cc
|
| index f8358fa173e148a59a0eeb3c9c1b298914e8e316..a75649e75c097965309e5ed8aeb92a9175df2654 100644
|
| --- a/chrome/browser/extensions/extension_browsertest.cc
|
| +++ b/chrome/browser/extensions/extension_browsertest.cc
|
| @@ -17,7 +17,6 @@
|
| #include "chrome/browser/extensions/crx_installer.h"
|
| #include "chrome/browser/extensions/extension_creator.h"
|
| #include "chrome/browser/extensions/extension_error_reporter.h"
|
| -#include "chrome/browser/extensions/extension_host.h"
|
| #include "chrome/browser/extensions/extension_install_ui.h"
|
| #include "chrome/browser/extensions/extension_service.h"
|
| #include "chrome/browser/extensions/unpacked_installer.h"
|
| @@ -31,6 +30,7 @@
|
| #include "chrome/test/base/ui_test_utils.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| #include "content/public/browser/notification_service.h"
|
| +#include "content/public/browser/render_view_host.h"
|
|
|
| ExtensionBrowserTest::ExtensionBrowserTest()
|
| : loaded_(false),
|
| @@ -134,7 +134,7 @@ const Extension* ExtensionBrowserTest::LoadExtensionWithOptions(
|
| }
|
| }
|
|
|
| - if (!WaitForExtensionHostsToLoad())
|
| + if (!WaitForExtensionViewsToLoad())
|
| return NULL;
|
|
|
| return extension;
|
| @@ -330,7 +330,7 @@ const Extension* ExtensionBrowserTest::InstallOrUpdateExtension(
|
| return NULL;
|
| }
|
|
|
| - if (!WaitForExtensionHostsToLoad())
|
| + if (!WaitForExtensionViewsToLoad())
|
| return NULL;
|
| return service->GetExtensionById(last_loaded_extension_id_, false);
|
| }
|
| @@ -387,17 +387,19 @@ bool ExtensionBrowserTest::WaitForPageActionVisibilityChangeTo(int count) {
|
| return location_bar->PageActionVisibleCount() == count;
|
| }
|
|
|
| -bool ExtensionBrowserTest::WaitForExtensionHostsToLoad() {
|
| - // Wait for all the extension hosts that exist to finish loading.
|
| +bool ExtensionBrowserTest::WaitForExtensionViewsToLoad() {
|
| + // Wait for all the extension render view hosts that exist to finish loading.
|
| content::NotificationRegistrar registrar;
|
| - registrar.Add(this, chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING,
|
| + registrar.Add(this, content::NOTIFICATION_LOAD_STOP,
|
| content::NotificationService::AllSources());
|
|
|
| ExtensionProcessManager* manager =
|
| browser()->profile()->GetExtensionProcessManager();
|
| - for (ExtensionProcessManager::const_iterator iter = manager->begin();
|
| - iter != manager->end();) {
|
| - if ((*iter)->did_stop_loading()) {
|
| + ExtensionProcessManager::ViewSet all_views = manager->GetAllViews();
|
| + for (ExtensionProcessManager::ViewSet::const_iterator iter =
|
| + all_views.begin();
|
| + iter != all_views.end();) {
|
| + if (!(*iter)->IsLoading()) {
|
| ++iter;
|
| } else {
|
| ui_test_utils::RunMessageLoop();
|
| @@ -405,7 +407,8 @@ bool ExtensionBrowserTest::WaitForExtensionHostsToLoad() {
|
| // 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();
|
| + all_views = manager->GetAllViews();
|
| + iter = all_views.begin();
|
| }
|
| }
|
| return true;
|
| @@ -430,7 +433,7 @@ bool ExtensionBrowserTest::WaitForExtensionInstallError() {
|
| void ExtensionBrowserTest::WaitForExtensionLoad() {
|
| ui_test_utils::RegisterAndWait(this, chrome::NOTIFICATION_EXTENSION_LOADED,
|
| content::NotificationService::AllSources());
|
| - WaitForExtensionHostsToLoad();
|
| + WaitForExtensionViewsToLoad();
|
| }
|
|
|
| bool ExtensionBrowserTest::WaitForExtensionLoadError() {
|
| @@ -480,11 +483,6 @@ void ExtensionBrowserTest::Observe(
|
| MessageLoopForUI::current()->Quit();
|
| break;
|
|
|
| - case chrome::NOTIFICATION_EXTENSION_HOST_DID_STOP_LOADING:
|
| - VLOG(1) << "Got EXTENSION_HOST_DID_STOP_LOADING notification.";
|
| - MessageLoopForUI::current()->Quit();
|
| - break;
|
| -
|
| case chrome::NOTIFICATION_EXTENSION_INSTALLED:
|
| VLOG(1) << "Got EXTENSION_INSTALLED notification.";
|
| ++extension_installs_observed_;
|
| @@ -534,6 +532,11 @@ void ExtensionBrowserTest::Observe(
|
| break;
|
| }
|
|
|
| + case content::NOTIFICATION_LOAD_STOP:
|
| + VLOG(1) << "Got LOAD_STOP notification.";
|
| + MessageLoopForUI::current()->Quit();
|
| + break;
|
| +
|
| default:
|
| NOTREACHED();
|
| break;
|
|
|