summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_view.cc
diff options
context:
space:
mode:
authorlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-21 06:56:53 +0000
committerlzheng@chromium.org <lzheng@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-21 06:56:53 +0000
commit65041fa2a7d79cbd289d6bfa05a55bfb32ec4fa3 (patch)
tree5ba89200e8bdc109b64b9327fad2bc563bc03406 /chrome/renderer/render_view.cc
parent5ea89fbf0d7647669fc91dda7fe944d8f2ef1f1c (diff)
downloadchromium_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.cc34
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);