Index: chrome/test/ui_test_utils.cc |
=================================================================== |
--- chrome/test/ui_test_utils.cc (revision 26154) |
+++ chrome/test/ui_test_utils.cc (working copy) |
@@ -230,28 +230,25 @@ |
DISALLOW_COPY_AND_ASSIGN(AppModalDialogObserver); |
}; |
-class CrashedRenderProcessObserver : public NotificationObserver { |
+template <class T> |
+class SimpleNotificationObserver : public NotificationObserver { |
public: |
- explicit CrashedRenderProcessObserver(RenderProcessHost* rph) { |
- registrar_.Add(this, NotificationType::RENDERER_PROCESS_CLOSED, |
- Source<RenderProcessHost>(rph)); |
+ SimpleNotificationObserver(NotificationType notification_type, |
+ T* source) { |
+ registrar_.Add(this, notification_type, Source<T>(source)); |
ui_test_utils::RunMessageLoop(); |
} |
virtual void Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |
- if (type == NotificationType::RENDERER_PROCESS_CLOSED) { |
- MessageLoopForUI::current()->Quit(); |
- } else { |
- NOTREACHED(); |
- } |
+ MessageLoopForUI::current()->Quit(); |
} |
private: |
NotificationRegistrar registrar_; |
- DISALLOW_COPY_AND_ASSIGN(CrashedRenderProcessObserver); |
+ DISALLOW_COPY_AND_ASSIGN(SimpleNotificationObserver); |
}; |
} // namespace |
@@ -308,6 +305,16 @@ |
NavigationNotificationObserver observer(controller, number_of_navigations); |
} |
+void WaitForNewTab(Browser* browser) { |
+ SimpleNotificationObserver<Browser> |
+ new_tab_observer(NotificationType::TAB_ADDED, browser); |
+} |
+ |
+void WaitForLoadStop(NavigationController* controller) { |
+ SimpleNotificationObserver<NavigationController> |
+ new_tab_observer(NotificationType::LOAD_STOP, controller); |
+} |
+ |
void NavigateToURL(Browser* browser, const GURL& url) { |
NavigateToURLBlockUntilNavigationsComplete(browser, url, 1); |
} |
@@ -408,7 +415,8 @@ |
void CrashTab(TabContents* tab) { |
RenderProcessHost* rph = tab->render_view_host()->process(); |
base::KillProcess(rph->process().handle(), 0, false); |
- CrashedRenderProcessObserver crash_observer(rph); |
+ SimpleNotificationObserver<RenderProcessHost> |
+ crash_observer(NotificationType::RENDERER_PROCESS_CLOSED, rph); |
} |
} // namespace ui_test_utils |