Index: chrome/browser/prerender/prerender_test_utils.cc |
diff --git a/chrome/browser/prerender/prerender_test_utils.cc b/chrome/browser/prerender/prerender_test_utils.cc |
index e99b3a6aa14f3e10c50dea006b529455ab9c2596..23d1d2a88361b859f39d05666fd46f7d74c27b29 100644 |
--- a/chrome/browser/prerender/prerender_test_utils.cc |
+++ b/chrome/browser/prerender/prerender_test_utils.cc |
@@ -357,13 +357,35 @@ void DestructionWaiter::DestructionMarker::OnPrerenderStop( |
} |
TestPrerender::TestPrerender() |
- : contents_(nullptr), number_of_loads_(0), expected_number_of_loads_(0) {} |
+ : contents_(nullptr), |
+ number_of_loads_(0), |
+ expected_number_of_loads_(0), |
+ started_(false), |
+ stopped_(false) {} |
TestPrerender::~TestPrerender() { |
if (contents_) |
contents_->RemoveObserver(this); |
} |
+void TestPrerender::WaitForCreate() { |
+ if (contents_) |
+ return; |
+ create_loop_.Run(); |
+} |
+ |
+void TestPrerender::WaitForStart() { |
+ if (started_) |
+ return; |
+ start_loop_.Run(); |
+} |
+ |
+void TestPrerender::WaitForStop() { |
+ if (stopped_) |
+ return; |
+ stop_loop_.Run(); |
+} |
+ |
void TestPrerender::WaitForLoads(int expected_number_of_loads) { |
DCHECK(!load_waiter_); |
DCHECK(!expected_number_of_loads_); |
@@ -385,6 +407,7 @@ void TestPrerender::OnPrerenderCreated(TestPrerenderContents* contents) { |
} |
void TestPrerender::OnPrerenderStart(PrerenderContents* contents) { |
+ started_ = true; |
start_loop_.Quit(); |
} |
@@ -397,6 +420,7 @@ void TestPrerender::OnPrerenderStopLoading(PrerenderContents* contents) { |
void TestPrerender::OnPrerenderStop(PrerenderContents* contents) { |
DCHECK(contents_); |
contents_ = nullptr; |
+ stopped_ = true; |
stop_loop_.Quit(); |
// If there is a WaitForLoads call and it has yet to see the expected number |
// of loads, stop the loop so the test fails instead of timing out. |