Commit 6b0b0c26 authored by Alex Moshchuk's avatar Alex Moshchuk Committed by Commit Bot

Break Navigation.TimeToReadyToCommit into main frame vs subframe.

The goal of this CL is to understand whether TimeToReadyToCommit
regressions with --site-per-process are affected by whether the
navigation is for a main frame or subframe.

Bug: 808114
Change-Id: Ib55b51f2b777defc508443788cc036866e638075
Reviewed-on: https://chromium-review.googlesource.com/1058606
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarNasko Oskov <nasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558837}
parent f67c8dd8
...@@ -835,6 +835,17 @@ void NavigationHandleImpl::ReadyToCommitNavigation( ...@@ -835,6 +835,17 @@ void NavigationHandleImpl::ReadyToCommitNavigation(
base::TimeDelta delta = ready_to_commit_time_ - navigation_start_; base::TimeDelta delta = ready_to_commit_time_ - navigation_start_;
LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit", transition_, delta, LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit", transition_, delta,
base::TimeDelta::FromSeconds(10)); base::TimeDelta::FromSeconds(10));
if (IsInMainFrame()) {
LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.MainFrame",
transition_, delta,
base::TimeDelta::FromSeconds(10));
} else {
LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.Subframe",
transition_, delta,
base::TimeDelta::FromSeconds(10));
}
if (is_same_process_) { if (is_same_process_) {
LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.SameProcess", LOG_NAVIGATION_TIMING_HISTOGRAM("TimeToReadyToCommit.SameProcess",
transition_, delta, transition_, delta,
......
...@@ -2197,8 +2197,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, StartToCommitMetrics) { ...@@ -2197,8 +2197,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, StartToCommitMetrics) {
} }
} }
// Verify that the SameProcess vs CrossProcess version of the // Verify that the TimeToReadyToCommit metrics are correctly logged for
// TimeToReadyToCommit metric is correctly logged. // SameProcess vs CrossProcess as well as MainFrame vs Subframe cases.
IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest,
TimeToReadyToCommitMetrics) { TimeToReadyToCommitMetrics) {
EXPECT_TRUE( EXPECT_TRUE(
...@@ -2211,6 +2211,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, ...@@ -2211,6 +2211,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest,
EXPECT_TRUE(NavigateToURL(shell(), url)); EXPECT_TRUE(NavigateToURL(shell(), url));
base::HistogramTester::CountsMap expected_counts = { base::HistogramTester::CountsMap expected_counts = {
{"Navigation.TimeToReadyToCommit.MainFrame", 1},
{"Navigation.TimeToReadyToCommit.MainFrame.NewNavigation", 1},
{"Navigation.TimeToReadyToCommit.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.NewNavigation", 1},
{"Navigation.TimeToReadyToCommit.SameProcess", 1}, {"Navigation.TimeToReadyToCommit.SameProcess", 1},
{"Navigation.TimeToReadyToCommit.SameProcess.NewNavigation", 1}}; {"Navigation.TimeToReadyToCommit.SameProcess.NewNavigation", 1}};
...@@ -2226,6 +2228,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, ...@@ -2226,6 +2228,8 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest,
EXPECT_TRUE(NavigateToURL(shell(), url)); EXPECT_TRUE(NavigateToURL(shell(), url));
base::HistogramTester::CountsMap expected_counts = { base::HistogramTester::CountsMap expected_counts = {
{"Navigation.TimeToReadyToCommit.MainFrame", 1},
{"Navigation.TimeToReadyToCommit.MainFrame.NewNavigation", 1},
{"Navigation.TimeToReadyToCommit.NewNavigation", 1}, {"Navigation.TimeToReadyToCommit.NewNavigation", 1},
{"Navigation.TimeToReadyToCommit.CrossProcess", 1}, {"Navigation.TimeToReadyToCommit.CrossProcess", 1},
{"Navigation.TimeToReadyToCommit.CrossProcess.NewNavigation", 1}}; {"Navigation.TimeToReadyToCommit.CrossProcess.NewNavigation", 1}};
...@@ -2233,6 +2237,36 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest, ...@@ -2233,6 +2237,36 @@ IN_PROC_BROWSER_TEST_F(NavigationHandleImplBrowserTest,
histograms.GetTotalCountsForPrefix("Navigation.TimeToReadyToCommit."), histograms.GetTotalCountsForPrefix("Navigation.TimeToReadyToCommit."),
testing::ContainerEq(expected_counts)); testing::ContainerEq(expected_counts));
} }
// Add a new subframe.
FrameTreeNode* root = static_cast<WebContentsImpl*>(shell()->web_contents())
->GetFrameTree()
->root();
EXPECT_TRUE(ExecuteScript(
root, "document.body.appendChild(document.createElement('iframe'));"));
// Navigate subframe cross-site and ensure Subframe metrics are logged.
{
base::HistogramTester histograms;
GURL url(embedded_test_server()->GetURL("b.com", "/title3.html"));
NavigateFrameToURL(root->child_at(0), url);
std::string navigation_type =
AreAllSitesIsolatedForTesting() ? "CrossProcess" : "SameProcess";
base::HistogramTester::CountsMap expected_counts = {
{"Navigation.TimeToReadyToCommit.Subframe", 1},
{"Navigation.TimeToReadyToCommit.Subframe.NewNavigation", 1},
{"Navigation.TimeToReadyToCommit.NewNavigation", 1},
{base::StringPrintf("Navigation.TimeToReadyToCommit.%s",
navigation_type.c_str()),
1},
{base::StringPrintf("Navigation.TimeToReadyToCommit.%s.NewNavigation",
navigation_type.c_str()),
1}};
EXPECT_THAT(
histograms.GetTotalCountsForPrefix("Navigation.TimeToReadyToCommit."),
testing::ContainerEq(expected_counts));
}
} }
IN_PROC_BROWSER_TEST_F(NavigationHandleImplDownloadBrowserTest, IsDownload) { IN_PROC_BROWSER_TEST_F(NavigationHandleImplDownloadBrowserTest, IsDownload) {
......
...@@ -112754,6 +112754,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -112754,6 +112754,7 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<affected-histogram name="Navigation.StartToCommit"/> <affected-histogram name="Navigation.StartToCommit"/>
<affected-histogram name="Navigation.StartToCommit.CrossProcess"/> <affected-histogram name="Navigation.StartToCommit.CrossProcess"/>
<affected-histogram name="Navigation.StartToCommit.SameProcess"/> <affected-histogram name="Navigation.StartToCommit.SameProcess"/>
<affected-histogram name="Navigation.TimeToReadyToCommit"/>
</histogram_suffixes> </histogram_suffixes>
<histogram_suffixes name="NavigationPreloadEnabled" separator="_"> <histogram_suffixes name="NavigationPreloadEnabled" separator="_">
...@@ -112841,7 +112842,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries. ...@@ -112841,7 +112842,9 @@ http://cs/file:chrome/histograms.xml - but prefer this file for new entries.
<affected-histogram name="Navigation.StartToCommit.Subframe"/> <affected-histogram name="Navigation.StartToCommit.Subframe"/>
<affected-histogram name="Navigation.TimeToReadyToCommit"/> <affected-histogram name="Navigation.TimeToReadyToCommit"/>
<affected-histogram name="Navigation.TimeToReadyToCommit.CrossProcess"/> <affected-histogram name="Navigation.TimeToReadyToCommit.CrossProcess"/>
<affected-histogram name="Navigation.TimeToReadyToCommit.MainFrame"/>
<affected-histogram name="Navigation.TimeToReadyToCommit.SameProcess"/> <affected-histogram name="Navigation.TimeToReadyToCommit.SameProcess"/>
<affected-histogram name="Navigation.TimeToReadyToCommit.Subframe"/>
</histogram_suffixes> </histogram_suffixes>
<histogram_suffixes name="Net.BidirectionalStreamExperiment" separator="."> <histogram_suffixes name="Net.BidirectionalStreamExperiment" separator=".">
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment