OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 //------------------------------------------------------------------------------ | 5 //------------------------------------------------------------------------------ |
6 // Description of the life cycle of a instance of MetricsService. | 6 // Description of the life cycle of a instance of MetricsService. |
7 // | 7 // |
8 // OVERVIEW | 8 // OVERVIEW |
9 // | 9 // |
10 // A MetricsService instance is typically created at application startup. It | 10 // A MetricsService instance is typically created at application startup. It |
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 #include "chrome/common/chrome_notification_types.h" | 184 #include "chrome/common/chrome_notification_types.h" |
185 #include "chrome/common/chrome_switches.h" | 185 #include "chrome/common/chrome_switches.h" |
186 #include "chrome/common/guid.h" | 186 #include "chrome/common/guid.h" |
187 #include "chrome/common/pref_names.h" | 187 #include "chrome/common/pref_names.h" |
188 #include "chrome/common/render_messages.h" | 188 #include "chrome/common/render_messages.h" |
189 #include "content/browser/load_notification_details.h" | 189 #include "content/browser/load_notification_details.h" |
190 #include "content/browser/renderer_host/render_process_host.h" | 190 #include "content/browser/renderer_host/render_process_host.h" |
191 #include "content/common/child_process_info.h" | 191 #include "content/common/child_process_info.h" |
192 #include "content/common/notification_service.h" | 192 #include "content/common/notification_service.h" |
193 #include "webkit/plugins/npapi/plugin_list.h" | 193 #include "webkit/plugins/npapi/plugin_list.h" |
194 #include "webkit/plugins/npapi/webplugininfo.h" | 194 #include "webkit/plugins/webplugininfo.h" |
195 | 195 |
196 // TODO(port): port browser_distribution.h. | 196 // TODO(port): port browser_distribution.h. |
197 #if !defined(OS_POSIX) | 197 #if !defined(OS_POSIX) |
198 #include "chrome/installer/util/browser_distribution.h" | 198 #include "chrome/installer/util/browser_distribution.h" |
199 #endif | 199 #endif |
200 | 200 |
201 #if defined(OS_CHROMEOS) | 201 #if defined(OS_CHROMEOS) |
202 #include "chrome/browser/chromeos/cros/cros_library.h" | 202 #include "chrome/browser/chromeos/cros/cros_library.h" |
203 #include "chrome/browser/chromeos/external_metrics.h" | 203 #include "chrome/browser/chromeos/external_metrics.h" |
204 #include "chrome/browser/chromeos/system/statistics_provider.h" | 204 #include "chrome/browser/chromeos/system/statistics_provider.h" |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 ~MetricsMemoryDetails() {} | 314 ~MetricsMemoryDetails() {} |
315 | 315 |
316 Task* completion_; | 316 Task* completion_; |
317 DISALLOW_COPY_AND_ASSIGN(MetricsMemoryDetails); | 317 DISALLOW_COPY_AND_ASSIGN(MetricsMemoryDetails); |
318 }; | 318 }; |
319 | 319 |
320 class MetricsService::InitTaskComplete : public Task { | 320 class MetricsService::InitTaskComplete : public Task { |
321 public: | 321 public: |
322 explicit InitTaskComplete( | 322 explicit InitTaskComplete( |
323 const std::string& hardware_class, | 323 const std::string& hardware_class, |
324 const std::vector<webkit::npapi::WebPluginInfo>& plugins) | 324 const std::vector<webkit::WebPluginInfo>& plugins) |
325 : hardware_class_(hardware_class), plugins_(plugins) {} | 325 : hardware_class_(hardware_class), plugins_(plugins) {} |
326 | 326 |
327 virtual void Run() { | 327 virtual void Run() { |
328 g_browser_process->metrics_service()->OnInitTaskComplete( | 328 g_browser_process->metrics_service()->OnInitTaskComplete( |
329 hardware_class_, plugins_); | 329 hardware_class_, plugins_); |
330 } | 330 } |
331 | 331 |
332 private: | 332 private: |
333 std::string hardware_class_; | 333 std::string hardware_class_; |
334 std::vector<webkit::npapi::WebPluginInfo> plugins_; | 334 std::vector<webkit::WebPluginInfo> plugins_; |
335 }; | 335 }; |
336 | 336 |
337 class MetricsService::InitTask : public Task { | 337 class MetricsService::InitTask : public Task { |
338 public: | 338 public: |
339 explicit InitTask(MessageLoop* callback_loop) | 339 explicit InitTask(MessageLoop* callback_loop) |
340 : callback_loop_(callback_loop) {} | 340 : callback_loop_(callback_loop) {} |
341 | 341 |
342 virtual void Run() { | 342 virtual void Run() { |
343 std::vector<webkit::npapi::WebPluginInfo> plugins; | 343 std::vector<webkit::WebPluginInfo> plugins; |
344 webkit::npapi::PluginList::Singleton()->GetPlugins(&plugins); | 344 webkit::npapi::PluginList::Singleton()->GetPlugins(&plugins); |
345 std::string hardware_class; // Empty string by default. | 345 std::string hardware_class; // Empty string by default. |
346 #if defined(OS_CHROMEOS) | 346 #if defined(OS_CHROMEOS) |
347 chromeos::system::StatisticsProvider::GetInstance()->GetMachineStatistic( | 347 chromeos::system::StatisticsProvider::GetInstance()->GetMachineStatistic( |
348 "hardware_class", &hardware_class); | 348 "hardware_class", &hardware_class); |
349 #endif // OS_CHROMEOS | 349 #endif // OS_CHROMEOS |
350 callback_loop_->PostTask(FROM_HERE, new InitTaskComplete( | 350 callback_loop_->PostTask(FROM_HERE, new InitTaskComplete( |
351 hardware_class, plugins)); | 351 hardware_class, plugins)); |
352 } | 352 } |
353 | 353 |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
787 UMA_HISTOGRAM_COUNTS_100("Chrome.CommandLineUncommonFlagCount", | 787 UMA_HISTOGRAM_COUNTS_100("Chrome.CommandLineUncommonFlagCount", |
788 switch_count - common_commands); | 788 switch_count - common_commands); |
789 | 789 |
790 // Kick off the process of saving the state (so the uptime numbers keep | 790 // Kick off the process of saving the state (so the uptime numbers keep |
791 // getting updated) every n minutes. | 791 // getting updated) every n minutes. |
792 ScheduleNextStateSave(); | 792 ScheduleNextStateSave(); |
793 } | 793 } |
794 | 794 |
795 void MetricsService::OnInitTaskComplete( | 795 void MetricsService::OnInitTaskComplete( |
796 const std::string& hardware_class, | 796 const std::string& hardware_class, |
797 const std::vector<webkit::npapi::WebPluginInfo>& plugins) { | 797 const std::vector<webkit::WebPluginInfo>& plugins) { |
798 DCHECK(state_ == INIT_TASK_SCHEDULED); | 798 DCHECK(state_ == INIT_TASK_SCHEDULED); |
799 hardware_class_ = hardware_class; | 799 hardware_class_ = hardware_class; |
800 plugins_ = plugins; | 800 plugins_ = plugins; |
801 io_thread_ = g_browser_process->io_thread(); | 801 io_thread_ = g_browser_process->io_thread(); |
802 if (state_ == INIT_TASK_SCHEDULED) | 802 if (state_ == INIT_TASK_SCHEDULED) |
803 state_ = INIT_TASK_DONE; | 803 state_ = INIT_TASK_DONE; |
804 } | 804 } |
805 | 805 |
806 std::string MetricsService::GenerateClientID() { | 806 std::string MetricsService::GenerateClientID() { |
807 return guid::GenerateGUID(); | 807 return guid::GenerateGUID(); |
(...skipping 885 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1693 thread_id = base::PlatformThread::CurrentId(); | 1693 thread_id = base::PlatformThread::CurrentId(); |
1694 return base::PlatformThread::CurrentId() == thread_id; | 1694 return base::PlatformThread::CurrentId() == thread_id; |
1695 } | 1695 } |
1696 | 1696 |
1697 #if defined(OS_CHROMEOS) | 1697 #if defined(OS_CHROMEOS) |
1698 void MetricsService::StartExternalMetrics() { | 1698 void MetricsService::StartExternalMetrics() { |
1699 external_metrics_ = new chromeos::ExternalMetrics; | 1699 external_metrics_ = new chromeos::ExternalMetrics; |
1700 external_metrics_->Start(); | 1700 external_metrics_->Start(); |
1701 } | 1701 } |
1702 #endif | 1702 #endif |
OLD | NEW |