summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/page_load_histograms.cc
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-30 00:41:44 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-04-30 00:41:44 +0000
commit16e923d415597f97b567c5d3870ad4d489c3e31b (patch)
tree4daa203932464fb01cf4bdb116d6fd596eacdd96 /chrome/renderer/page_load_histograms.cc
parentbcf09fc7ff33c6bd4058f515baa5ab3133f355ec (diff)
downloadchromium_src-16e923d415597f97b567c5d3870ad4d489c3e31b.zip
chromium_src-16e923d415597f97b567c5d3870ad4d489c3e31b.tar.gz
chromium_src-16e923d415597f97b567c5d3870ad4d489c3e31b.tar.bz2
Remove most prerendering code/references from content.
The only place where prerendering code remains in content is in ResourceDispatcherHost. As NavigationState can no longer be used to track prerendering histogram information, the prerendering renderer-side histograms have been reworked (And renamed) as well. The histogram intended to track use of prerendering RenderViews has been removed, as histograms are not recorded when a RenderView is destroyed. BUG=77090 TEST=Compiles, existing PrerenderBrowserTests, grep Review URL: http://codereview.chromium.org/6900026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@83642 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/page_load_histograms.cc')
-rw-r--r--chrome/renderer/page_load_histograms.cc72
1 files changed, 8 insertions, 64 deletions
diff --git a/chrome/renderer/page_load_histograms.cc b/chrome/renderer/page_load_histograms.cc
index 32a75e2..3ae1498 100644
--- a/chrome/renderer/page_load_histograms.cc
+++ b/chrome/renderer/page_load_histograms.cc
@@ -10,6 +10,7 @@
#include "base/time.h"
#include "chrome/common/chrome_constants.h"
#include "chrome/common/extensions/url_pattern.h"
+#include "chrome/renderer/prerender/prerender_helper.h"
#include "chrome/renderer/renderer_histogram_snapshots.h"
#include "content/common/view_messages.h"
#include "content/renderer/navigation_state.h"
@@ -33,60 +34,6 @@ static const size_t kPLTCount(100);
#define PLT_HISTOGRAM(name, sample) \
UMA_HISTOGRAM_CUSTOM_TIMES(name, sample, kPLTMin, kPLTMax, kPLTCount);
-namespace {
-
-// Histograms to determine prerendering's impact on perceived PLT.
-void UpdatePrerenderHistograms(NavigationState* navigation_state,
- const Time& finish_all_loads,
- const TimeDelta& begin_to_finish_all_loads) {
- // Load time for non-prerendered pages.
- static bool use_prerender_histogram =
- base::FieldTrialList::Find("Prefetch") &&
- !base::FieldTrialList::Find("Prefetch")->group_name().empty();
- if (!navigation_state->was_started_as_prerender()) {
- if (use_prerender_histogram) {
- PLT_HISTOGRAM(base::FieldTrial::MakeName(
- "PLT.PerceivedLoadTime", "Prefetch"),
- begin_to_finish_all_loads);
- }
- return;
- }
-
- // Do not record stats for redirected prerendered pages.
- if (navigation_state->was_prerender_redirected())
- return;
-
- // Histogram for usage rate of prerendered pages.
- Time prerendered_page_display =
- navigation_state->prerendered_page_display_time();
- UMA_HISTOGRAM_ENUMERATION("PLT.PageUsed_PrerenderLoad",
- prerendered_page_display.is_null() ? 0 : 1, 2);
- if (prerendered_page_display.is_null())
- return;
-
- // Histograms for perceived load time of prerendered pages.
- Time prerendered_page_start =
- navigation_state->prerendered_page_start_time();
- PLT_HISTOGRAM("PLT.TimeUntilDisplay_PrerenderLoad",
- prerendered_page_display - prerendered_page_start);
- TimeDelta perceived_load_time = finish_all_loads - prerendered_page_display;
- if (perceived_load_time < TimeDelta::FromSeconds(0)) {
- PLT_HISTOGRAM("PLT.PrerenderIdleTime_PrerenderLoad", -perceived_load_time);
- perceived_load_time = TimeDelta::FromSeconds(0);
- }
- PLT_HISTOGRAM("PLT.PerceivedLoadTime_PrerenderLoad", perceived_load_time);
- if (use_prerender_histogram) {
- PLT_HISTOGRAM(base::FieldTrial::MakeName(
- "PLT.PerceivedLoadTime_PrerenderLoad", "Prefetch"),
- perceived_load_time);
- PLT_HISTOGRAM(base::FieldTrial::MakeName(
- "PLT.PerceivedLoadTime", "Prefetch"),
- perceived_load_time);
- }
-}
-
-} // namespace
-
// Returns the scheme type of the given URL if its type is one for which we
// dump page load histograms. Otherwise returns NULL.
static URLPattern::SchemeMasks GetSupportedSchemeType(const GURL& url) {
@@ -134,7 +81,8 @@ enum AbandonType {
};
PageLoadHistograms::PageLoadHistograms(
- RenderView* render_view, RendererHistogramSnapshots* histogram_snapshots)
+ RenderView* render_view,
+ RendererHistogramSnapshots* histogram_snapshots)
: RenderViewObserver(render_view),
cross_origin_access_count_(0),
same_origin_access_count_(0),
@@ -317,19 +265,10 @@ void PageLoadHistograms::Dump(WebFrame* frame) {
PLT_HISTOGRAM("PLT.BeginToFinish_LinkLoadCacheOnly",
begin_to_finish_all_loads);
break;
- case NavigationState::PRERENDER_LOAD:
- PLT_HISTOGRAM("PLT.BeginToFinishDoc_PrerenderLoad",
- begin_to_finish_doc);
- PLT_HISTOGRAM("PLT.BeginToFinish_PrerenderLoad",
- begin_to_finish_all_loads);
- break;
default:
break;
}
- UpdatePrerenderHistograms(navigation_state, finish_all_loads,
- begin_to_finish_all_loads);
-
// Histograms to determine if DNS prefetching has an impact on PLT.
static bool use_dns_histogram(base::FieldTrialList::Find("DnsImpact") &&
!base::FieldTrialList::Find("DnsImpact")->group_name().empty());
@@ -840,6 +779,11 @@ void PageLoadHistograms::Dump(WebFrame* frame) {
// Log the PLT to the info log.
LogPageLoadTime(navigation_state, frame->dataSource());
+ // Record prerendering histograms.
+ prerender::PrerenderHelper::RecordHistograms(render_view(),
+ finish_all_loads,
+ begin_to_finish_all_loads);
+
// Since there are currently no guarantees that renderer histograms will be
// sent to the browser, we initiate a PostTask here to be sure that we send
// the histograms we generated. Without this call, pages that don't have an