Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: chrome/browser/prerender/prerender_browsertest.cc

Issue 133073021: Pass DomContentLoaded event from prerenders to launching elements. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Few more changes. Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_contents.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <deque> 5 #include <deque>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 1291 matching lines...) Expand 10 before | Expand all | Expand 10 after
1302 "window.domAutomationController.send(" 1302 "window.domAutomationController.send("
1303 "receivedPrerenderLoadEvents[%d] || 0)", index); 1303 "receivedPrerenderLoadEvents[%d] || 0)", index);
1304 1304
1305 CHECK(content::ExecuteScriptAndExtractInt( 1305 CHECK(content::ExecuteScriptAndExtractInt(
1306 GetActiveWebContents(), 1306 GetActiveWebContents(),
1307 expression, 1307 expression,
1308 &load_event_count)); 1308 &load_event_count));
1309 return load_event_count; 1309 return load_event_count;
1310 } 1310 }
1311 1311
1312 int GetPrerenderDomContentLoadedEventCountForLinkNumber(int index) const {
1313 int dom_content_loaded_event_count;
1314 std::string expression = base::StringPrintf(
1315 "window.domAutomationController.send("
1316 "receivedPrerenderDomContentLoadedEvents[%d] || 0)", index);
1317
1318 CHECK(content::ExecuteScriptAndExtractInt(
1319 GetActiveWebContents(),
1320 expression,
1321 &dom_content_loaded_event_count));
1322 return dom_content_loaded_event_count;
1323 }
1324
1312 bool DidReceivePrerenderStopEventForLinkNumber(int index) const { 1325 bool DidReceivePrerenderStopEventForLinkNumber(int index) const {
1313 bool received_prerender_stopped; 1326 bool received_prerender_stopped;
1314 std::string expression = base::StringPrintf( 1327 std::string expression = base::StringPrintf(
1315 "window.domAutomationController.send(Boolean(" 1328 "window.domAutomationController.send(Boolean("
1316 "receivedPrerenderStopEvents[%d]))", index); 1329 "receivedPrerenderStopEvents[%d]))", index);
1317 1330
1318 CHECK(content::ExecuteScriptAndExtractBool( 1331 CHECK(content::ExecuteScriptAndExtractBool(
1319 GetActiveWebContents(), 1332 GetActiveWebContents(),
1320 expression, 1333 expression,
1321 &received_prerender_stopped)); 1334 &received_prerender_stopped));
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 Browser* explicitly_set_browser_; 1624 Browser* explicitly_set_browser_;
1612 }; 1625 };
1613 1626
1614 // Checks that a page is correctly prerendered in the case of a 1627 // Checks that a page is correctly prerendered in the case of a
1615 // <link rel=prerender> tag and then loaded into a tab in response to a 1628 // <link rel=prerender> tag and then loaded into a tab in response to a
1616 // navigation. 1629 // navigation.
1617 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) { 1630 IN_PROC_BROWSER_TEST_F(PrerenderBrowserTest, PrerenderPage) {
1618 UMAHistogramHelper histograms; 1631 UMAHistogramHelper histograms;
1619 1632
1620 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 1633 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
1634 EXPECT_EQ(GetPrerenderDomContentLoadedEventCountForLinkNumber(0), 1);
davidben 2014/02/11 20:18:40 Nit: EXPECT_EQ(1, GetPrerenderblah). The first arg
ksimbili 2014/02/11 21:16:58 Done.
1621 histograms.Fetch(); 1635 histograms.Fetch();
1622 histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1); 1636 histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
1623 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); 1637 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
1624 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0); 1638 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
1625 histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 1); 1639 histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 1);
1626 1640
1627 ChannelDestructionWatcher channel_close_watcher; 1641 ChannelDestructionWatcher channel_close_watcher;
1628 channel_close_watcher.WatchChannel( 1642 channel_close_watcher.WatchChannel(
1629 GetActiveWebContents()->GetRenderProcessHost()); 1643 GetActiveWebContents()->GetRenderProcessHost());
1630 NavigateToDestURL(); 1644 NavigateToDestURL();
(...skipping 2021 matching lines...) Expand 10 before | Expand all | Expand 10 after
3652 DisableJavascriptCalls(); 3666 DisableJavascriptCalls();
3653 UMAHistogramHelper histograms; 3667 UMAHistogramHelper histograms;
3654 3668
3655 // The prerender will not completely load until after the swap, so wait for a 3669 // The prerender will not completely load until after the swap, so wait for a
3656 // title change before calling DidPrerenderPass. 3670 // title change before calling DidPrerenderPass.
3657 scoped_ptr<TestPrerender> prerender = 3671 scoped_ptr<TestPrerender> prerender =
3658 PrerenderTestURL( 3672 PrerenderTestURL(
3659 "files/prerender/prerender_deferred_image.html", 3673 "files/prerender/prerender_deferred_image.html",
3660 FINAL_STATUS_USED, 0); 3674 FINAL_STATUS_USED, 0);
3661 WaitForASCIITitle(prerender->contents()->prerender_contents(), kReadyTitle); 3675 WaitForASCIITitle(prerender->contents()->prerender_contents(), kReadyTitle);
3676 EXPECT_EQ(GetPrerenderDomContentLoadedEventCountForLinkNumber(0), 1);
davidben 2014/02/11 20:18:40 Nit: Ditto.
ksimbili 2014/02/11 21:16:58 Done.
3662 EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents())); 3677 EXPECT_TRUE(DidPrerenderPass(prerender->contents()->prerender_contents()));
3663 EXPECT_EQ(0, prerender->number_of_loads()); 3678 EXPECT_EQ(0, prerender->number_of_loads());
3664 histograms.Fetch(); 3679 histograms.Fetch();
3665 histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1); 3680 histograms.ExpectTotalCount("Prerender.none_PerceivedPLT", 1);
3666 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0); 3681 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatched", 0);
3667 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0); 3682 histograms.ExpectTotalCount("Prerender.none_PerceivedPLTMatchedComplete", 0);
3668 histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 0); 3683 histograms.ExpectTotalCount("Prerender.websame_PrerenderNotSwappedInPLT", 0);
3669 3684
3670 // Swap. 3685 // Swap.
3671 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(), 3686 NavigationOrSwapObserver swap_observer(current_browser()->tab_strip_model(),
(...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after
4047 } 4062 }
4048 }; 4063 };
4049 4064
4050 // Checks that prerendering works in incognito mode. 4065 // Checks that prerendering works in incognito mode.
4051 IN_PROC_BROWSER_TEST_F(PrerenderIncognitoBrowserTest, PrerenderIncognito) { 4066 IN_PROC_BROWSER_TEST_F(PrerenderIncognitoBrowserTest, PrerenderIncognito) {
4052 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1); 4067 PrerenderTestURL("files/prerender/prerender_page.html", FINAL_STATUS_USED, 1);
4053 NavigateToDestURL(); 4068 NavigateToDestURL();
4054 } 4069 }
4055 4070
4056 } // namespace prerender 4071 } // namespace prerender
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/prerender/prerender_contents.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698