Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(190)

Side by Side Diff: chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc

Issue 1182303005: Fixed the Touchscreen.TouchEventsEnabled histogram to record the correct values on X11 and Ozone ba… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added Touchscreen.TouchEventsEnabled histogram to public histograms.xml. Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" 5 #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/cpu.h" 11 #include "base/cpu.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/metrics/sparse_histogram.h" 13 #include "base/metrics/sparse_histogram.h"
14 #include "base/sys_info.h" 14 #include "base/sys_info.h"
15 #include "base/threading/sequenced_worker_pool.h" 15 #include "base/threading/sequenced_worker_pool.h"
16 #include "base/time/time.h" 16 #include "base/time/time.h"
17 #include "chrome/browser/about_flags.h" 17 #include "chrome/browser/about_flags.h"
18 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
19 #include "chrome/browser/chrome_browser_main.h" 19 #include "chrome/browser/chrome_browser_main.h"
20 #include "chrome/browser/mac/bluetooth_utility.h" 20 #include "chrome/browser/mac/bluetooth_utility.h"
21 #include "chrome/browser/pref_service_flags_storage.h" 21 #include "chrome/browser/pref_service_flags_storage.h"
22 #include "chrome/browser/shell_integration.h" 22 #include "chrome/browser/shell_integration.h"
23 #include "content/public/browser/browser_thread.h" 23 #include "content/public/browser/browser_thread.h"
24 #include "ui/base/touch/touch_device.h" 24 #include "ui/base/touch/touch_device.h"
25 #include "ui/base/ui_base_switches.h" 25 #include "ui/base/ui_base_switches.h"
26 #include "ui/events/devices/device_data_manager.h"
26 #include "ui/events/event_switches.h" 27 #include "ui/events/event_switches.h"
27 #include "ui/gfx/screen.h" 28 #include "ui/gfx/screen.h"
28 29
29 #if defined(OS_ANDROID) && defined(__arm__) 30 #if defined(OS_ANDROID) && defined(__arm__)
30 #include <cpu-features.h> 31 #include <cpu-features.h>
31 #endif // defined(OS_ANDROID) && defined(__arm__) 32 #endif // defined(OS_ANDROID) && defined(__arm__)
32 33
33 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) 34 #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
34 #include <gnu/libc-version.h> 35 #include <gnu/libc-version.h>
35 36
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 244
244 } // namespace 245 } // namespace
245 246
246 ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics() 247 ChromeBrowserMainExtraPartsMetrics::ChromeBrowserMainExtraPartsMetrics()
247 : display_count_(0), is_screen_observer_(false) { 248 : display_count_(0), is_screen_observer_(false) {
248 } 249 }
249 250
250 ChromeBrowserMainExtraPartsMetrics::~ChromeBrowserMainExtraPartsMetrics() { 251 ChromeBrowserMainExtraPartsMetrics::~ChromeBrowserMainExtraPartsMetrics() {
251 if (is_screen_observer_) 252 if (is_screen_observer_)
252 gfx::Screen::GetNativeScreen()->RemoveObserver(this); 253 gfx::Screen::GetNativeScreen()->RemoveObserver(this);
254 #if defined(USE_OZONE) || defined(USE_X11)
255 ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
256 #endif // defined(USE_OZONE) || defined(USE_X11)
253 } 257 }
254 258
255 void ChromeBrowserMainExtraPartsMetrics::PreProfileInit() { 259 void ChromeBrowserMainExtraPartsMetrics::PreProfileInit() {
256 RecordMicroArchitectureStats(); 260 RecordMicroArchitectureStats();
257 } 261 }
258 262
259 void ChromeBrowserMainExtraPartsMetrics::PreBrowserStart() { 263 void ChromeBrowserMainExtraPartsMetrics::PreBrowserStart() {
260 about_flags::PrefServiceFlagsStorage flags_storage_( 264 about_flags::PrefServiceFlagsStorage flags_storage_(
261 g_browser_process->local_state()); 265 g_browser_process->local_state());
262 about_flags::RecordUMAStatistics(&flags_storage_); 266 about_flags::RecordUMAStatistics(&flags_storage_);
263 } 267 }
264 268
265 void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() { 269 void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
266 RecordLinuxGlibcVersion(); 270 RecordLinuxGlibcVersion();
267 #if defined(USE_X11) && !defined(OS_CHROMEOS) 271 #if defined(USE_X11) && !defined(OS_CHROMEOS)
268 UMA_HISTOGRAM_ENUMERATION("Linux.WindowManager", 272 UMA_HISTOGRAM_ENUMERATION("Linux.WindowManager",
269 GetLinuxWindowManager(), 273 GetLinuxWindowManager(),
270 UMA_LINUX_WINDOW_MANAGER_COUNT); 274 UMA_LINUX_WINDOW_MANAGER_COUNT);
271 #endif 275 #endif
276
277 #if defined(USE_OZONE) || defined(USE_X11)
278 // The touch event state for X11 and Ozone based event sub-systems are based
279 // on device scans that happen asynchronously. So we may need to attach an
280 // observer to wait until these scans complete.
281 if (ui::DeviceDataManager::GetInstance()->device_lists_complete())
282 OnDeviceListsComplete();
283 else
284 ui::DeviceDataManager::GetInstance()->AddObserver(this);
285 #else
272 RecordTouchEventState(); 286 RecordTouchEventState();
287 #endif // defined(USE_OZONE) || defined(USE_X11)
273 288
274 #if defined(OS_MACOSX) && !defined(OS_IOS) 289 #if defined(OS_MACOSX) && !defined(OS_IOS)
275 RecordMacMetrics(); 290 RecordMacMetrics();
276 #endif // defined(OS_MACOSX) && !defined(OS_IOS) 291 #endif // defined(OS_MACOSX) && !defined(OS_IOS)
277 292
278 const int kStartupMetricsGatheringDelaySeconds = 45; 293 const int kStartupMetricsGatheringDelaySeconds = 45;
279 content::BrowserThread::GetBlockingPool()->PostDelayedTask( 294 content::BrowserThread::GetBlockingPool()->PostDelayedTask(
280 FROM_HERE, 295 FROM_HERE,
281 base::Bind(&RecordStartupMetricsOnBlockingPool), 296 base::Bind(&RecordStartupMetricsOnBlockingPool),
282 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds)); 297 base::TimeDelta::FromSeconds(kStartupMetricsGatheringDelaySeconds));
(...skipping 21 matching lines...) Expand all
304 319
305 void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged( 320 void ChromeBrowserMainExtraPartsMetrics::OnDisplayMetricsChanged(
306 const gfx::Display& display, 321 const gfx::Display& display,
307 uint32_t changed_metrics) { 322 uint32_t changed_metrics) {
308 } 323 }
309 324
310 void ChromeBrowserMainExtraPartsMetrics::ProfilerFinishedCollectingMetrics() { 325 void ChromeBrowserMainExtraPartsMetrics::ProfilerFinishedCollectingMetrics() {
311 first_web_contents_profiler_.reset(); 326 first_web_contents_profiler_.reset();
312 } 327 }
313 328
329 void ChromeBrowserMainExtraPartsMetrics::OnDeviceListsComplete() {
330 ui::DeviceDataManager::GetInstance()->RemoveObserver(this);
331 RecordTouchEventState();
332 }
333
314 void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() { 334 void ChromeBrowserMainExtraPartsMetrics::EmitDisplaysChangedMetric() {
315 int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays(); 335 int display_count = gfx::Screen::GetNativeScreen()->GetNumDisplays();
316 if (display_count != display_count_) { 336 if (display_count != display_count_) {
317 display_count_ = display_count; 337 display_count_ = display_count;
318 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnChange", display_count_); 338 UMA_HISTOGRAM_COUNTS_100("Hardware.Display.Count.OnChange", display_count_);
319 } 339 }
320 } 340 }
321 341
322 namespace chrome { 342 namespace chrome {
323 343
324 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) { 344 void AddMetricsExtraParts(ChromeBrowserMainParts* main_parts) {
325 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics()); 345 main_parts->AddParts(new ChromeBrowserMainExtraPartsMetrics());
326 } 346 }
327 347
328 } // namespace chrome 348 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698