| Index: chrome/test/base/ui_test_utils.cc
|
| diff --git a/chrome/test/base/ui_test_utils.cc b/chrome/test/base/ui_test_utils.cc
|
| index 326f443216ccf5be919feaec0295c59f1afc7b50..5c994f273b6988e5171f840ee372ed43fa7302ff 100644
|
| --- a/chrome/test/base/ui_test_utils.cc
|
| +++ b/chrome/test/base/ui_test_utils.cc
|
| @@ -540,4 +540,32 @@ void WaitForHistoryToLoad(history::HistoryService* history_service) {
|
| }
|
| }
|
|
|
| +BrowserActivationWaiter::BrowserActivationWaiter(Browser* browser)
|
| + : browser_(browser), observed_(false) {
|
| + if (chrome::FindLastActive() == browser_) {
|
| + observed_ = true;
|
| + return;
|
| + }
|
| + BrowserList::AddObserver(this);
|
| +}
|
| +
|
| +BrowserActivationWaiter::~BrowserActivationWaiter() {}
|
| +
|
| +void BrowserActivationWaiter::WaitForActivation() {
|
| + if (observed_)
|
| + return;
|
| + message_loop_runner_ = new content::MessageLoopRunner;
|
| + message_loop_runner_->Run();
|
| +}
|
| +
|
| +void BrowserActivationWaiter::OnBrowserSetLastActive(Browser* browser) {
|
| + if (browser != browser_)
|
| + return;
|
| +
|
| + observed_ = true;
|
| + BrowserList::RemoveObserver(this);
|
| + if (message_loop_runner_.get() && message_loop_runner_->loop_running())
|
| + message_loop_runner_->Quit();
|
| +}
|
| +
|
| } // namespace ui_test_utils
|
|
|