Home | History | Annotate | Download | only in tab_contents
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/tab_contents/navigation_metrics_recorder.h"
      6 
      7 #include "base/metrics/histogram.h"
      8 #include "components/navigation_metrics/navigation_metrics.h"
      9 #include "content/public/browser/navigation_details.h"
     10 #include "content/public/browser/navigation_entry.h"
     11 #include "content/public/browser/render_view_host.h"
     12 #include "content/public/browser/render_widget_host_view.h"
     13 
     14 #if defined(OS_WIN)
     15 #include "base/win/windows_version.h"
     16 #include "chrome/browser/metro_utils/metro_chrome_win.h"
     17 #endif
     18 
     19 DEFINE_WEB_CONTENTS_USER_DATA_KEY(NavigationMetricsRecorder);
     20 
     21 NavigationMetricsRecorder::NavigationMetricsRecorder(
     22     content::WebContents* web_contents)
     23     : content::WebContentsObserver(web_contents) {
     24 }
     25 
     26 NavigationMetricsRecorder::~NavigationMetricsRecorder() {
     27 }
     28 
     29 void NavigationMetricsRecorder::DidNavigateMainFrame(
     30       const content::LoadCommittedDetails& details,
     31       const content::FrameNavigateParams& params) {
     32   navigation_metrics::RecordMainFrameNavigation(details.entry->GetVirtualURL());
     33 }
     34 
     35 void NavigationMetricsRecorder::DidStartLoading(
     36     content::RenderViewHost* render_view_host) {
     37 #if defined(OS_WIN) && defined(USE_ASH)
     38   if (render_view_host && base::win::GetVersion() >= base::win::VERSION_WIN8) {
     39     content::RenderWidgetHostView* rwhv = render_view_host->GetView();
     40     if (rwhv) {
     41       gfx::NativeView native_view = rwhv->GetNativeView();
     42       if (native_view) {
     43         chrome::HostDesktopType desktop =
     44             chrome::GetHostDesktopTypeForNativeView(native_view);
     45         UMA_HISTOGRAM_ENUMERATION("Win8.PageLoad",
     46                                   chrome::GetWin8Environment(desktop),
     47                                   chrome::WIN_8_ENVIRONMENT_MAX);
     48       }
     49     }
     50   }
     51 #endif
     52 }
     53 
     54 
     55