Chromium Code Reviews| Index: chrome/browser/prerender/prerender_observer.cc |
| =================================================================== |
| --- chrome/browser/prerender/prerender_observer.cc (revision 98079) |
| +++ chrome/browser/prerender/prerender_observer.cc (working copy) |
| @@ -80,6 +80,19 @@ |
| base::Histogram* time_hover_until_click_; |
| }; |
| +enum PAGEVIEW_EVENTS { |
| + PAGEVIEW_EVENT_NEW_URL = 0, |
| + PAGEVIEW_EVENT_TOP_SITE_NEW_URL = 1, |
| + PAGEVIEW_EVENT_LOAD_START = 2, |
| + PAGEVIEW_EVENT_TOP_SITE_LOAD_START = 3, |
| + PAGEVIEW_EVENT_MAX = 4 |
| +}; |
| + |
| +void RecordPageviewEvent(PAGEVIEW_EVENTS event) { |
| + UMA_HISTOGRAM_ENUMERATION("Prerender.PageviewEvents", |
| + event, PAGEVIEW_EVENT_MAX); |
| +} |
| + |
| } // namespace |
| class PrerenderObserver::HoverData { |
| @@ -180,6 +193,9 @@ |
| void PrerenderObserver::ProvisionalChangeToMainFrameUrl(const GURL& url, |
| bool has_opener_set) { |
| + RecordPageviewEvent(PAGEVIEW_EVENT_NEW_URL); |
| + if (IsTopSite(url)) |
| + RecordPageviewEvent(PAGEVIEW_EVENT_TOP_SITE_NEW_URL); |
| if (!tab_->delegate()) |
| return; // PrerenderManager needs a delegate to handle the swap. |
| PrerenderManager* prerender_manager = MaybeGetPrerenderManager(); |
| @@ -205,6 +221,10 @@ |
| bool has_opener_set, |
| const GURL& url) { |
| if (is_main_frame) { |
| + RecordPageviewEvent(PAGEVIEW_EVENT_LOAD_START); |
| + if (IsTopSite(url)) |
| + RecordPageviewEvent(PAGEVIEW_EVENT_TOP_SITE_LOAD_START); |
| + |
| // Record the beginning of a new PPLT navigation. |
| pplt_load_start_ = base::TimeTicks::Now(); |
| @@ -303,4 +323,9 @@ |
| current_hover_url_ = GURL(); |
| } |
| +bool PrerenderObserver::IsTopSite(const GURL& url) { |
|
dominich
2011/08/24 22:22:12
nit: method could be const.
|
| + PrerenderManager* pm = MaybeGetPrerenderManager(); |
| + return (pm && pm->IsTopSite(url)); |
| +} |
| + |
| } // namespace prerender |