Index: extensions/test/extension_test_notification_observer.cc |
diff --git a/extensions/test/extension_test_notification_observer.cc b/extensions/test/extension_test_notification_observer.cc |
index 0e4d75d0ccdcbfa8cfe6e07dfb27c4b3ab52ef06..8c79ac54cbebde1de7c8146d42116ce31c5e3375 100644 |
--- a/extensions/test/extension_test_notification_observer.cc |
+++ b/extensions/test/extension_test_notification_observer.cc |
@@ -141,6 +141,9 @@ void ExtensionTestNotificationObserver::Watch( |
void ExtensionTestNotificationObserver::Wait() { |
observer_->Wait(); |
+ // TODO(https://crbug.com/695073): Find out why tests fail without it. |
+ content::RunAllPendingInMessageLoop(); |
+ |
registrar_.RemoveAll(); |
observer_.reset(); |
} |
@@ -187,16 +190,15 @@ void ExtensionTestNotificationObserver::WaitForCondition( |
return; |
condition_ = condition; |
- scoped_refptr<content::MessageLoopRunner> runner( |
- new content::MessageLoopRunner); |
- quit_closure_ = runner->QuitClosure(); |
+ base::RunLoop run_loop; |
+ quit_closure_ = run_loop.QuitClosure(); |
std::unique_ptr<base::CallbackList<void()>::Subscription> subscription; |
if (notification_set) { |
subscription = notification_set->callback_list().Add(base::Bind( |
&ExtensionTestNotificationObserver::MaybeQuit, base::Unretained(this))); |
} |
- runner->Run(); |
+ run_loop.Run(); |
condition_.Reset(); |
quit_closure_.Reset(); |