| 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
 | 
| 
 |