Index: chrome/browser/prerender/prerender_browsertest.cc |
diff --git a/chrome/browser/prerender/prerender_browsertest.cc b/chrome/browser/prerender/prerender_browsertest.cc |
index 2cbfc76e0da841625f93c18a053c8a8bafb23fd4..cfe6f4cd8f23cb235ab8d003e4ff67ff119c78c2 100644 |
--- a/chrome/browser/prerender/prerender_browsertest.cc |
+++ b/chrome/browser/prerender/prerender_browsertest.cc |
@@ -2189,12 +2189,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) { |
+ 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(receivedPrerenderStartedEvent)", |
+ &received_prerender_started)); |
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStoppedEvent)", |
+ &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(receivedPrerenderStartedEvent)", |
+ &received_prerender_started)); |
+ ASSERT_TRUE(content::ExecuteJavaScriptAndExtractBool( |
+ web_contents->GetRenderViewHost(), L"", |
+ L"window.domAutomationController.send(receivedPrerenderStoppedEvent)", |
+ &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], |