Commit 1afc6517 authored by gunsch's avatar gunsch Committed by Commit bot

Moves GPUMetricsProvider to //components/metrics.

R=asvitkine@chromium.org,isherman@chromium.org
BUG=404791

Review URL: https://codereview.chromium.org/523273003

Cr-Commit-Position: refs/heads/master@{#294935}
parent 0b527c1e
...@@ -59,6 +59,7 @@ static_library("browser") { ...@@ -59,6 +59,7 @@ static_library("browser") {
"//components/history/core/common", "//components/history/core/common",
"//components/infobars/core", "//components/infobars/core",
"//components/invalidation", "//components/invalidation",
"//components/metrics:gpu",
"//components/metrics:net", "//components/metrics:net",
"//components/metrics/proto:proto", "//components/metrics/proto:proto",
"//components/navigation_metrics", "//components/navigation_metrics",
......
...@@ -22,7 +22,6 @@ ...@@ -22,7 +22,6 @@
#include "chrome/browser/chrome_notification_types.h" #include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/google/google_brand.h" #include "chrome/browser/google/google_brand.h"
#include "chrome/browser/metrics/chrome_stability_metrics_provider.h" #include "chrome/browser/metrics/chrome_stability_metrics_provider.h"
#include "chrome/browser/metrics/gpu_metrics_provider.h"
#include "chrome/browser/metrics/omnibox_metrics_provider.h" #include "chrome/browser/metrics/omnibox_metrics_provider.h"
#include "chrome/browser/metrics/profiler_metrics_provider.h" #include "chrome/browser/metrics/profiler_metrics_provider.h"
#include "chrome/browser/metrics/tracking_synchronizer.h" #include "chrome/browser/metrics/tracking_synchronizer.h"
...@@ -33,6 +32,7 @@ ...@@ -33,6 +32,7 @@
#include "chrome/common/crash_keys.h" #include "chrome/common/crash_keys.h"
#include "chrome/common/pref_names.h" #include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h" #include "chrome/common/render_messages.h"
#include "components/metrics/gpu/gpu_metrics_provider.h"
#include "components/metrics/metrics_service.h" #include "components/metrics/metrics_service.h"
#include "components/metrics/net/net_metrics_log_uploader.h" #include "components/metrics/net/net_metrics_log_uploader.h"
#include "components/metrics/net/network_metrics_provider.h" #include "components/metrics/net/network_metrics_provider.h"
...@@ -307,7 +307,7 @@ void ChromeMetricsServiceClient::Initialize() { ...@@ -307,7 +307,7 @@ void ChromeMetricsServiceClient::Initialize() {
metrics_service_->RegisterMetricsProvider( metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(new ChromeStabilityMetricsProvider)); scoped_ptr<metrics::MetricsProvider>(new ChromeStabilityMetricsProvider));
metrics_service_->RegisterMetricsProvider( metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(new GPUMetricsProvider())); scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider()));
profiler_metrics_provider_ = new ProfilerMetricsProvider; profiler_metrics_provider_ = new ProfilerMetricsProvider;
metrics_service_->RegisterMetricsProvider( metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_)); scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_));
......
...@@ -678,8 +678,6 @@ ...@@ -678,8 +678,6 @@
'browser/metrics/field_trial_synchronizer.h', 'browser/metrics/field_trial_synchronizer.h',
'browser/metrics/google_update_metrics_provider_win.cc', 'browser/metrics/google_update_metrics_provider_win.cc',
'browser/metrics/google_update_metrics_provider_win.h', 'browser/metrics/google_update_metrics_provider_win.h',
'browser/metrics/gpu_metrics_provider.cc',
'browser/metrics/gpu_metrics_provider.h',
'browser/metrics/metric_event_duration_details.h', 'browser/metrics/metric_event_duration_details.h',
'browser/metrics/metrics_reporting_state.cc', 'browser/metrics/metrics_reporting_state.cc',
'browser/metrics/metrics_reporting_state.h', 'browser/metrics/metrics_reporting_state.h',
...@@ -2796,6 +2794,7 @@ ...@@ -2796,6 +2794,7 @@
'../components/components.gyp:infobars_core', '../components/components.gyp:infobars_core',
'../components/components.gyp:invalidation', '../components/components.gyp:invalidation',
'../components/components.gyp:metrics', '../components/components.gyp:metrics',
'../components/components.gyp:metrics_gpu',
'../components/components.gyp:metrics_net', '../components/components.gyp:metrics_net',
'../components/components.gyp:navigation_metrics', '../components/components.gyp:navigation_metrics',
'../components/components.gyp:network_time', '../components/components.gyp:network_time',
......
...@@ -529,7 +529,6 @@ ...@@ -529,7 +529,6 @@
'browser/metrics/chrome_metrics_service_accessor_unittest.cc', 'browser/metrics/chrome_metrics_service_accessor_unittest.cc',
'browser/metrics/cloned_install_detector_unittest.cc', 'browser/metrics/cloned_install_detector_unittest.cc',
'browser/metrics/extensions_metrics_provider_unittest.cc', 'browser/metrics/extensions_metrics_provider_unittest.cc',
'browser/metrics/gpu_metrics_provider_unittest.cc',
'browser/metrics/plugin_metrics_provider_unittest.cc', 'browser/metrics/plugin_metrics_provider_unittest.cc',
'browser/metrics/profiler_metrics_provider_unittest.cc', 'browser/metrics/profiler_metrics_provider_unittest.cc',
'browser/metrics/signin_status_metrics_provider_unittest.cc', 'browser/metrics/signin_status_metrics_provider_unittest.cc',
......
...@@ -366,6 +366,7 @@ ...@@ -366,6 +366,7 @@
# Dependencies of metrics # Dependencies of metrics
'components.gyp:metrics', 'components.gyp:metrics',
'components.gyp:metrics_gpu',
'components.gyp:metrics_net', 'components.gyp:metrics_net',
'components.gyp:metrics_test_support', 'components.gyp:metrics_test_support',
...@@ -449,6 +450,7 @@ ...@@ -449,6 +450,7 @@
'sources': [ 'sources': [
'autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc', 'autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc',
'dom_distiller/content/dom_distiller_viewer_source_unittest.cc', 'dom_distiller/content/dom_distiller_viewer_source_unittest.cc',
'metrics/gpu/gpu_metrics_provider_unittest.cc',
'power/origin_power_map_unittest.cc', 'power/origin_power_map_unittest.cc',
], ],
'dependencies': [ 'dependencies': [
......
...@@ -67,6 +67,22 @@ ...@@ -67,6 +67,22 @@
}], }],
], ],
}, },
{
# GN version: //components/metrics:gpu
'target_name': 'metrics_gpu',
'type': 'static_library',
'include_dirs': [
'..',
],
'dependencies': [
'component_metrics_proto',
'metrics',
],
'sources': [
'metrics/gpu/gpu_metrics_provider.cc',
'metrics/gpu/gpu_metrics_provider.h',
],
},
{ {
# GN version: //components/metrics:net # GN version: //components/metrics:net
'target_name': 'metrics_net', 'target_name': 'metrics_net',
......
...@@ -52,6 +52,21 @@ source_set("metrics") { ...@@ -52,6 +52,21 @@ source_set("metrics") {
forward_dependent_configs_from = [ "//components/metrics/proto" ] forward_dependent_configs_from = [ "//components/metrics/proto" ]
} }
# GYP version: components/metrics.gypi:metrics_gpu
source_set("gpu") {
sources = [
"gpu/gpu_metrics_provider.cc",
"gpu/gpu_metrics_provider.h",
]
deps = [
":metrics",
"//gpu/config",
]
forward_dependent_configs_from = [ ":metrics" ]
}
# GYP version: components/metrics.gypi:metrics_net # GYP version: components/metrics.gypi:metrics_net
static_library("net") { static_library("net") {
sources = [ sources = [
......
include_rules = [
"+content/public/browser",
"+gpu/config",
"+ui/gfx",
]
...@@ -2,13 +2,15 @@ ...@@ -2,13 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/metrics/gpu_metrics_provider.h" #include "components/metrics/gpu/gpu_metrics_provider.h"
#include "components/metrics/proto/system_profile.pb.h" #include "components/metrics/proto/system_profile.pb.h"
#include "content/public/browser/gpu_data_manager.h" #include "content/public/browser/gpu_data_manager.h"
#include "gpu/config/gpu_info.h" #include "gpu/config/gpu_info.h"
#include "ui/gfx/screen.h" #include "ui/gfx/screen.h"
namespace metrics {
#if defined(OS_WIN) #if defined(OS_WIN)
#include <windows.h> #include <windows.h>
...@@ -37,8 +39,7 @@ BOOL CALLBACK GetMonitorDPICallback(HMONITOR, HDC hdc, LPRECT, LPARAM dwData) { ...@@ -37,8 +39,7 @@ BOOL CALLBACK GetMonitorDPICallback(HMONITOR, HDC hdc, LPRECT, LPARAM dwData) {
return TRUE; return TRUE;
} }
void WriteScreenDPIInformationProto( void WriteScreenDPIInformationProto(SystemProfileProto::Hardware* hardware) {
metrics::SystemProfileProto::Hardware* hardware) {
HDC desktop_dc = GetDC(NULL); HDC desktop_dc = GetDC(NULL);
if (desktop_dc) { if (desktop_dc) {
ScreenDPIInformation si = {0, 0}; ScreenDPIInformation si = {0, 0};
...@@ -62,19 +63,19 @@ GPUMetricsProvider::~GPUMetricsProvider() { ...@@ -62,19 +63,19 @@ GPUMetricsProvider::~GPUMetricsProvider() {
} }
void GPUMetricsProvider::ProvideSystemProfileMetrics( void GPUMetricsProvider::ProvideSystemProfileMetrics(
metrics::SystemProfileProto* system_profile_proto) { SystemProfileProto* system_profile_proto) {
metrics::SystemProfileProto::Hardware* hardware = SystemProfileProto::Hardware* hardware =
system_profile_proto->mutable_hardware(); system_profile_proto->mutable_hardware();
const gpu::GPUInfo& gpu_info = const gpu::GPUInfo& gpu_info =
content::GpuDataManager::GetInstance()->GetGPUInfo(); content::GpuDataManager::GetInstance()->GetGPUInfo();
metrics::SystemProfileProto::Hardware::Graphics* gpu = SystemProfileProto::Hardware::Graphics* gpu =
hardware->mutable_gpu(); hardware->mutable_gpu();
gpu->set_vendor_id(gpu_info.gpu.vendor_id); gpu->set_vendor_id(gpu_info.gpu.vendor_id);
gpu->set_device_id(gpu_info.gpu.device_id); gpu->set_device_id(gpu_info.gpu.device_id);
gpu->set_driver_version(gpu_info.driver_version); gpu->set_driver_version(gpu_info.driver_version);
gpu->set_driver_date(gpu_info.driver_date); gpu->set_driver_date(gpu_info.driver_date);
metrics::SystemProfileProto::Hardware::Graphics::PerformanceStatistics* SystemProfileProto::Hardware::Graphics::PerformanceStatistics*
gpu_performance = gpu->mutable_performance_statistics(); gpu_performance = gpu->mutable_performance_statistics();
gpu_performance->set_graphics_score(gpu_info.performance_stats.graphics); gpu_performance->set_graphics_score(gpu_info.performance_stats.graphics);
gpu_performance->set_gaming_score(gpu_info.performance_stats.gaming); gpu_performance->set_gaming_score(gpu_info.performance_stats.gaming);
...@@ -106,3 +107,5 @@ int GPUMetricsProvider::GetScreenCount() const { ...@@ -106,3 +107,5 @@ int GPUMetricsProvider::GetScreenCount() const {
// TODO(scottmg): NativeScreen maybe wrong. http://crbug.com/133312 // TODO(scottmg): NativeScreen maybe wrong. http://crbug.com/133312
return gfx::Screen::GetNativeScreen()->GetNumDisplays(); return gfx::Screen::GetNativeScreen()->GetNumDisplays();
} }
} // namespace metrics
...@@ -2,22 +2,24 @@ ...@@ -2,22 +2,24 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#ifndef CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_ #ifndef COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
#define CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_ #define COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
#include "base/basictypes.h" #include "base/basictypes.h"
#include "components/metrics/metrics_provider.h" #include "components/metrics/metrics_provider.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
namespace metrics {
// GPUMetricsProvider provides GPU-related metrics. // GPUMetricsProvider provides GPU-related metrics.
class GPUMetricsProvider : public metrics::MetricsProvider { class GPUMetricsProvider : public MetricsProvider {
public: public:
GPUMetricsProvider(); GPUMetricsProvider();
virtual ~GPUMetricsProvider(); virtual ~GPUMetricsProvider();
// metrics::MetricsProvider: // MetricsProvider:
virtual void ProvideSystemProfileMetrics( virtual void ProvideSystemProfileMetrics(
metrics::SystemProfileProto* system_profile_proto) OVERRIDE; SystemProfileProto* system_profile_proto) OVERRIDE;
protected: protected:
// Exposed for the sake of mocking in test code. // Exposed for the sake of mocking in test code.
...@@ -35,4 +37,6 @@ class GPUMetricsProvider : public metrics::MetricsProvider { ...@@ -35,4 +37,6 @@ class GPUMetricsProvider : public metrics::MetricsProvider {
DISALLOW_COPY_AND_ASSIGN(GPUMetricsProvider); DISALLOW_COPY_AND_ASSIGN(GPUMetricsProvider);
}; };
#endif // CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_ } // namespace metrics
#endif // COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
...@@ -2,13 +2,15 @@ ...@@ -2,13 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
#include "chrome/browser/metrics/gpu_metrics_provider.h" #include "components/metrics/gpu/gpu_metrics_provider.h"
#include "base/basictypes.h" #include "base/basictypes.h"
#include "components/metrics/proto/chrome_user_metrics_extension.pb.h" #include "components/metrics/proto/chrome_user_metrics_extension.pb.h"
#include "testing/gtest/include/gtest/gtest.h" #include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/size.h" #include "ui/gfx/size.h"
namespace metrics {
namespace { namespace {
const int kScreenWidth = 1024; const int kScreenWidth = 1024;
...@@ -62,3 +64,5 @@ TEST_F(GPUMetricsProviderTest, ProvideSystemProfileMetrics) { ...@@ -62,3 +64,5 @@ TEST_F(GPUMetricsProviderTest, ProvideSystemProfileMetrics) {
EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor()); EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor());
EXPECT_EQ(kScreenCount, hardware.screen_count()); EXPECT_EQ(kScreenCount, hardware.screen_count());
} }
} // namespace metrics
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment