diff options
author | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-21 06:56:53 +0000 |
---|---|---|
committer | lzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-05-21 06:56:53 +0000 |
commit | 65041fa2a7d79cbd289d6bfa05a55bfb32ec4fa3 (patch) | |
tree | 5ba89200e8bdc109b64b9327fad2bc563bc03406 /chrome/renderer/render_view.cc | |
parent | 5ea89fbf0d7647669fc91dda7fe944d8f2ef1f1c (diff) | |
download | chromium_src-65041fa2a7d79cbd289d6bfa05a55bfb32ec4fa3.zip chromium_src-65041fa2a7d79cbd289d6bfa05a55bfb32ec4fa3.tar.gz chromium_src-65041fa2a7d79cbd289d6bfa05a55bfb32ec4fa3.tar.bz2 |
This change enables FieldTrial for SPDY. When --use-spdy=npn is used, field test won't be enabled.
However, when that flag is missing, A/B test is added to browser_main.cc. Trial A: use npn and spdy. B: use npn but no spdy. C: do nothing. A and B are set to zero for now
The histograms we collect are:
1. Page begin to finish time when spdy is enabled/disabled across all sites;
2. Page begin to finish time when spdy is used on sites that support spdy and when spdy is intentionally ignored.
BUG=43997
TEST=Don't use --use-spdy=npn, manually change _npn_nospdy and _npn_withspdy percentile and go to spdy supported sites.
Review URL: http://codereview.chromium.org/2036012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@47896 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/render_view.cc')
-rw-r--r-- | chrome/renderer/render_view.cc | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 09c3436..45e2c37 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -2875,13 +2875,20 @@ void RenderView::didReceiveResponse( if (frame->isViewSourceModeEnabled()) return; + NavigationState* navigation_state = + NavigationState::FromDataSource(frame->provisionalDataSource()); + CHECK(navigation_state); + // Record that this was a page loaded over SPDY. if (response.wasFetchedViaSPDY()) { - NavigationState* navigation_state = - NavigationState::FromDataSource(frame->provisionalDataSource()); navigation_state->set_was_fetched_via_spdy(true); } + // Record that npn protocol was negotiated when fetching this page. + if (response.wasNpnNegotiated()) { + navigation_state->set_was_npn_negotiated(true); + } + // Consider loading an alternate error page for 404 responses. if (response.httpStatusCode() != 404) return; @@ -2890,8 +2897,6 @@ void RenderView::didReceiveResponse( if (!GetAlternateErrorPageURL(response.url(), HTTP_404).is_valid()) return; - NavigationState* navigation_state = - NavigationState::FromDataSource(frame->provisionalDataSource()); navigation_state->set_postpone_loading_data(true); navigation_state->clear_postponed_data(); } @@ -4556,6 +4561,27 @@ void RenderView::DumpLoadHistograms() const { begin_to_finish_doc, kBeginToFinishDocMin, kBeginToFinishDocMax, kBeginToFinishDocBucketCount); + static bool use_spdy_histogram(FieldTrialList::Find("SpdyImpact") && + !FieldTrialList::Find("SpdyImpact")->group_name().empty()); + if (use_spdy_histogram) { + switch (load_type) { + case NavigationState::LINK_LOAD_NORMAL: + if (navigation_state->was_npn_negotiated()) { + DCHECK(FieldTrialList::Find("SpdyImpact")->group_name() == + "_npn_with_http" || + FieldTrialList::Find("SpdyImpact")->group_name() == + "_npn_with_spdy"); + UMA_HISTOGRAM_CUSTOM_TIMES(FieldTrial::MakeName( + "Renderer4.BeginToFinish_LinkLoadNormal_SpdyTrial", "SpdyImpact"), + begin_to_finish, kBeginToFinishMin, kBeginToFinishMax, + kBeginToFinishBucketCount); + } + break; + default: + break; + } + } + UMA_HISTOGRAM_CUSTOM_TIMES("Renderer4.StartToFinish", finish - start, kBeginToFinishMin, kBeginToFinishMax, kBeginToFinishBucketCount); |