Index: chrome/browser/prerender/prerender_browsertest.cc |
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc |
index 97f7be961289c398b93fe7edfa6ae2875b05b596..3b0f871d96861c8a9bbe998b969bf14880f4fddf 100644 |
--- a/chrome/browser/prerender/prerender_browsertest.cc |
+++ b/chrome/browser/prerender/prerender_browsertest.cc |
@@ -2276,12 +2276,44 @@ IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderCancelAll) { |
1); |
// Post a task to cancel all the prerenders. |
MessageLoop::current()->PostTask( |
- FROM_HERE, |
- base::Bind(&CancelAllPrerenders, GetPrerenderManager())); |
+ FROM_HERE, base::Bind(&CancelAllPrerenders, GetPrerenderManager())); |
content::RunMessageLoop(); |
EXPECT_TRUE(GetPrerenderContents() == NULL); |
} |
+IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderEvents) { |
mmenke
2012/12/07 17:11:48
Suggest a test where the page itself cancels the p
mmenke
2012/12/07 19:12:47
That test could actually just be added to the corr
gavinp
2012/12/14 21:48:52
Done.
|
+ PrerenderTestURL("files/prerender/prerender_page.html", |
+ FINAL_STATUS_CANCELLED, 1); |
+ WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
+ bool received_prerender_started = false; |
+ bool received_prerender_stopped = false; |
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStartEvent)", |
+ &received_prerender_started)); |
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStopEvent)", |
+ &received_prerender_stopped)); |
+ ASSERT_TRUE(received_prerender_started); |
+ ASSERT_FALSE(received_prerender_stopped); |
+ |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, base::Bind(&CancelAllPrerenders, GetPrerenderManager())); |
+ content::RunMessageLoop(); |
+ |
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStartEvent)", |
+ &received_prerender_started)); |
mmenke
2012/12/07 17:11:48
Is there a reason for this? I don't object to it,
gavinp
2012/12/14 21:48:52
Nope, none. I think some of these ASSERTs should b
|
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStopEvent)", |
+ &received_prerender_stopped)); |
+ ASSERT_TRUE(received_prerender_started); |
+ ASSERT_TRUE(received_prerender_stopped); |
+} |
+ |
// Prerendering and history tests. |
// The prerendered page is navigated to in several ways [navigate via |
// omnibox, click on link, key-modified click to open in background tab, etc], |