diff options
Diffstat (limited to 'chrome/test')
-rw-r--r-- | chrome/test/automation/browser_proxy.cc | 18 | ||||
-rw-r--r-- | chrome/test/automation/browser_proxy.h | 3 |
2 files changed, 21 insertions, 0 deletions
diff --git a/chrome/test/automation/browser_proxy.cc b/chrome/test/automation/browser_proxy.cc index ce47335..faead8f 100644 --- a/chrome/test/automation/browser_proxy.cc +++ b/chrome/test/automation/browser_proxy.cc @@ -286,6 +286,24 @@ bool BrowserProxy::WaitForTabCountToChange(int count, int* new_count, return false; } +bool BrowserProxy::WaitForTabCountToBecome(int count, int wait_timeout) { + const TimeTicks start = TimeTicks::Now(); + const TimeDelta timeout = TimeDelta::FromMilliseconds(wait_timeout); + while (TimeTicks::Now() - start < timeout) { + Sleep(automation::kSleepTime); + bool is_timeout; + int new_count; + bool succeeded = GetTabCountWithTimeout(&new_count, wait_timeout, + &is_timeout); + if (!succeeded) + return false; + if (count == new_count) + return true; + } + // If we get here, the tab count doesn't match. + return false; +} + bool BrowserProxy::WaitForTabToBecomeActive(int tab, int wait_timeout) { const TimeTicks start = TimeTicks::Now(); diff --git a/chrome/test/automation/browser_proxy.h b/chrome/test/automation/browser_proxy.h index b2c92ca..3cc681e 100644 --- a/chrome/test/automation/browser_proxy.h +++ b/chrome/test/automation/browser_proxy.h @@ -122,6 +122,9 @@ class BrowserProxy : public AutomationResourceProxy { // Returns false if the tab count does not change. bool WaitForTabCountToChange(int count, int* new_count, int wait_timeout); + // Block the thread until the tab count is |count|. + bool WaitForTabCountToBecome(int count, int wait_timeout); + // Block the thread until the specified tab is the active tab. // |wait_timeout| is the timeout, in milliseconds, for waiting. // Returns false if the tab does not become active. |