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}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index a10558bc..d5f7f467 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -59,6 +59,7 @@
"//components/history/core/common",
"//components/infobars/core",
"//components/invalidation",
+ "//components/metrics:gpu",
"//components/metrics:net",
"//components/metrics/proto:proto",
"//components/navigation_metrics",
diff --git a/chrome/browser/metrics/chrome_metrics_service_client.cc b/chrome/browser/metrics/chrome_metrics_service_client.cc
index b08564f..920363d2 100644
--- a/chrome/browser/metrics/chrome_metrics_service_client.cc
+++ b/chrome/browser/metrics/chrome_metrics_service_client.cc
@@ -22,7 +22,6 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/google/google_brand.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/profiler_metrics_provider.h"
#include "chrome/browser/metrics/tracking_synchronizer.h"
@@ -33,6 +32,7 @@
#include "chrome/common/crash_keys.h"
#include "chrome/common/pref_names.h"
#include "chrome/common/render_messages.h"
+#include "components/metrics/gpu/gpu_metrics_provider.h"
#include "components/metrics/metrics_service.h"
#include "components/metrics/net/net_metrics_log_uploader.h"
#include "components/metrics/net/network_metrics_provider.h"
@@ -307,7 +307,7 @@
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(new ChromeStabilityMetricsProvider));
metrics_service_->RegisterMetricsProvider(
- scoped_ptr<metrics::MetricsProvider>(new GPUMetricsProvider()));
+ scoped_ptr<metrics::MetricsProvider>(new metrics::GPUMetricsProvider()));
profiler_metrics_provider_ = new ProfilerMetricsProvider;
metrics_service_->RegisterMetricsProvider(
scoped_ptr<metrics::MetricsProvider>(profiler_metrics_provider_));
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 92d0dc6..3f2e426 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -678,8 +678,6 @@
'browser/metrics/field_trial_synchronizer.h',
'browser/metrics/google_update_metrics_provider_win.cc',
'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/metrics_reporting_state.cc',
'browser/metrics/metrics_reporting_state.h',
@@ -2796,6 +2794,7 @@
'../components/components.gyp:infobars_core',
'../components/components.gyp:invalidation',
'../components/components.gyp:metrics',
+ '../components/components.gyp:metrics_gpu',
'../components/components.gyp:metrics_net',
'../components/components.gyp:navigation_metrics',
'../components/components.gyp:network_time',
diff --git a/chrome/chrome_tests_unit.gypi b/chrome/chrome_tests_unit.gypi
index 9922379f..c2da63f 100644
--- a/chrome/chrome_tests_unit.gypi
+++ b/chrome/chrome_tests_unit.gypi
@@ -529,7 +529,6 @@
'browser/metrics/chrome_metrics_service_accessor_unittest.cc',
'browser/metrics/cloned_install_detector_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/profiler_metrics_provider_unittest.cc',
'browser/metrics/signin_status_metrics_provider_unittest.cc',
diff --git a/components/components_tests.gyp b/components/components_tests.gyp
index b3f9ed3..837921e 100644
--- a/components/components_tests.gyp
+++ b/components/components_tests.gyp
@@ -366,6 +366,7 @@
# Dependencies of metrics
'components.gyp:metrics',
+ 'components.gyp:metrics_gpu',
'components.gyp:metrics_net',
'components.gyp:metrics_test_support',
@@ -449,6 +450,7 @@
'sources': [
'autofill/content/renderer/renderer_save_password_progress_logger_unittest.cc',
'dom_distiller/content/dom_distiller_viewer_source_unittest.cc',
+ 'metrics/gpu/gpu_metrics_provider_unittest.cc',
'power/origin_power_map_unittest.cc',
],
'dependencies': [
diff --git a/components/metrics.gypi b/components/metrics.gypi
index 29e52b2..dafeb0e 100644
--- a/components/metrics.gypi
+++ b/components/metrics.gypi
@@ -68,6 +68,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
'target_name': 'metrics_net',
'type': 'static_library',
diff --git a/components/metrics/BUILD.gn b/components/metrics/BUILD.gn
index d91a4fa..8179e2746 100644
--- a/components/metrics/BUILD.gn
+++ b/components/metrics/BUILD.gn
@@ -52,6 +52,21 @@
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
static_library("net") {
sources = [
diff --git a/components/metrics/gpu/DEPS b/components/metrics/gpu/DEPS
new file mode 100644
index 0000000..537521e
--- /dev/null
+++ b/components/metrics/gpu/DEPS
@@ -0,0 +1,5 @@
+include_rules = [
+ "+content/public/browser",
+ "+gpu/config",
+ "+ui/gfx",
+]
diff --git a/chrome/browser/metrics/gpu_metrics_provider.cc b/components/metrics/gpu/gpu_metrics_provider.cc
similarity index 89%
rename from chrome/browser/metrics/gpu_metrics_provider.cc
rename to components/metrics/gpu/gpu_metrics_provider.cc
index 34b8a39..ba81e7b 100644
--- a/chrome/browser/metrics/gpu_metrics_provider.cc
+++ b/components/metrics/gpu/gpu_metrics_provider.cc
@@ -2,13 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// 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 "content/public/browser/gpu_data_manager.h"
#include "gpu/config/gpu_info.h"
#include "ui/gfx/screen.h"
+namespace metrics {
+
#if defined(OS_WIN)
#include <windows.h>
@@ -37,8 +39,7 @@
return TRUE;
}
-void WriteScreenDPIInformationProto(
- metrics::SystemProfileProto::Hardware* hardware) {
+void WriteScreenDPIInformationProto(SystemProfileProto::Hardware* hardware) {
HDC desktop_dc = GetDC(NULL);
if (desktop_dc) {
ScreenDPIInformation si = {0, 0};
@@ -62,19 +63,19 @@
}
void GPUMetricsProvider::ProvideSystemProfileMetrics(
- metrics::SystemProfileProto* system_profile_proto) {
- metrics::SystemProfileProto::Hardware* hardware =
+ SystemProfileProto* system_profile_proto) {
+ SystemProfileProto::Hardware* hardware =
system_profile_proto->mutable_hardware();
const gpu::GPUInfo& gpu_info =
content::GpuDataManager::GetInstance()->GetGPUInfo();
- metrics::SystemProfileProto::Hardware::Graphics* gpu =
+ SystemProfileProto::Hardware::Graphics* gpu =
hardware->mutable_gpu();
gpu->set_vendor_id(gpu_info.gpu.vendor_id);
gpu->set_device_id(gpu_info.gpu.device_id);
gpu->set_driver_version(gpu_info.driver_version);
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->set_graphics_score(gpu_info.performance_stats.graphics);
gpu_performance->set_gaming_score(gpu_info.performance_stats.gaming);
@@ -106,3 +107,5 @@
// TODO(scottmg): NativeScreen maybe wrong. http://crbug.com/133312
return gfx::Screen::GetNativeScreen()->GetNumDisplays();
}
+
+} // namespace metrics
diff --git a/chrome/browser/metrics/gpu_metrics_provider.h b/components/metrics/gpu/gpu_metrics_provider.h
similarity index 71%
rename from chrome/browser/metrics/gpu_metrics_provider.h
rename to components/metrics/gpu/gpu_metrics_provider.h
index 2c3a3f0..d10db56 100644
--- a/chrome/browser/metrics/gpu_metrics_provider.h
+++ b/components/metrics/gpu/gpu_metrics_provider.h
@@ -2,22 +2,24 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_
-#define CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_
+#ifndef COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
+#define COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
#include "base/basictypes.h"
#include "components/metrics/metrics_provider.h"
#include "ui/gfx/size.h"
+namespace metrics {
+
// GPUMetricsProvider provides GPU-related metrics.
-class GPUMetricsProvider : public metrics::MetricsProvider {
+class GPUMetricsProvider : public MetricsProvider {
public:
GPUMetricsProvider();
virtual ~GPUMetricsProvider();
- // metrics::MetricsProvider:
+ // MetricsProvider:
virtual void ProvideSystemProfileMetrics(
- metrics::SystemProfileProto* system_profile_proto) OVERRIDE;
+ SystemProfileProto* system_profile_proto) OVERRIDE;
protected:
// Exposed for the sake of mocking in test code.
@@ -35,4 +37,6 @@
DISALLOW_COPY_AND_ASSIGN(GPUMetricsProvider);
};
-#endif // CHROME_BROWSER_METRICS_GPU_METRICS_PROVIDER_H_
+} // namespace metrics
+
+#endif // COMPONENTS_METRICS_GPU_GPU_METRICS_PROVIDER_H_
diff --git a/chrome/browser/metrics/gpu_metrics_provider_unittest.cc b/components/metrics/gpu/gpu_metrics_provider_unittest.cc
similarity index 94%
rename from chrome/browser/metrics/gpu_metrics_provider_unittest.cc
rename to components/metrics/gpu/gpu_metrics_provider_unittest.cc
index 6c753ba..1aea17a 100644
--- a/chrome/browser/metrics/gpu_metrics_provider_unittest.cc
+++ b/components/metrics/gpu/gpu_metrics_provider_unittest.cc
@@ -2,13 +2,15 @@
// Use of this source code is governed by a BSD-style license that can be
// 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 "components/metrics/proto/chrome_user_metrics_extension.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/gfx/size.h"
+namespace metrics {
+
namespace {
const int kScreenWidth = 1024;
@@ -62,3 +64,5 @@
EXPECT_EQ(kScreenScaleFactor, hardware.primary_screen_scale_factor());
EXPECT_EQ(kScreenCount, hardware.screen_count());
}
+
+} // namespace metrics