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

Side by Side Diff: chrome/browser/metrics/metrics_service.h

Issue 7980011: Convert the PluginService interface to be an async wrapper around PluginList. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 9 years, 3 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 | Annotate | Revision Log
OLDNEW
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 // This file defines a service that collects information about the user 5 // This file defines a service that collects information about the user
6 // experience in order to help improve future versions of the app. 6 // experience in order to help improve future versions of the app.
7 7
8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 8 #ifndef CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 9 #define CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
10 #pragma once 10 #pragma once
(...skipping 19 matching lines...) Expand all
30 class BookmarkNode; 30 class BookmarkNode;
31 class HistogramSynchronizer; 31 class HistogramSynchronizer;
32 class MetricsLogBase; 32 class MetricsLogBase;
33 class MetricsReportingScheduler; 33 class MetricsReportingScheduler;
34 class PrefService; 34 class PrefService;
35 class TemplateURLService; 35 class TemplateURLService;
36 36
37 namespace base { 37 namespace base {
38 class DictionaryValue; 38 class DictionaryValue;
39 class ListValue; 39 class ListValue;
40 class MessageLoopProxy;
40 } 41 }
41 42
42 namespace webkit { 43 namespace webkit {
43 struct WebPluginInfo; 44 struct WebPluginInfo;
44 } 45 }
45 46
46 class MetricsService : public NotificationObserver, 47 class MetricsService : public NotificationObserver,
47 public URLFetcher::Delegate, 48 public URLFetcher::Delegate,
48 public MetricsServiceBase { 49 public MetricsServiceBase {
49 public: 50 public:
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 SEND_OLD_INITIAL_LOGS, // Sending unsent logs from previous session. 153 SEND_OLD_INITIAL_LOGS, // Sending unsent logs from previous session.
153 SENDING_OLD_LOGS, // Sending unsent logs from previous session. 154 SENDING_OLD_LOGS, // Sending unsent logs from previous session.
154 SENDING_CURRENT_LOGS, // Sending standard current logs as they acrue. 155 SENDING_CURRENT_LOGS, // Sending standard current logs as they acrue.
155 }; 156 };
156 157
157 enum ShutdownCleanliness { 158 enum ShutdownCleanliness {
158 CLEANLY_SHUTDOWN = 0xdeadbeef, 159 CLEANLY_SHUTDOWN = 0xdeadbeef,
159 NEED_TO_SHUTDOWN = ~CLEANLY_SHUTDOWN 160 NEED_TO_SHUTDOWN = ~CLEANLY_SHUTDOWN
160 }; 161 };
161 162
162 class InitTask; 163 // First part of the init task. Called on the FILE thread to load hardware
163 class InitTaskComplete; 164 // class information.
165 void InitTaskGetHardwareClass(base::MessageLoopProxy* target_loop);
164 166
165 // Callback to let us know that the init task is done. 167 // Callback from InitTaskGetHardwareClass() that continues the init task by
166 void OnInitTaskComplete( 168 // loading plugin information.
167 const std::string& hardware_class, 169 void OnInitTaskGotHardwareClass(const std::string& hardware_class);
170
171 // Callback from PluginService::GetPlugins() that moves the state to
172 // INIT_TASK_DONE.
173 void OnInitTaskGotPluginInfo(
168 const std::vector<webkit::WebPluginInfo>& plugins); 174 const std::vector<webkit::WebPluginInfo>& plugins);
169 175
170 // When we start a new version of Chromium (different from our last run), we 176 // When we start a new version of Chromium (different from our last run), we
171 // need to discard the old crash stats so that we don't attribute crashes etc. 177 // need to discard the old crash stats so that we don't attribute crashes etc.
172 // in the old version to the current version (via current logs). 178 // in the old version to the current version (via current logs).
173 // Without this, a common reason to finally start a new version is to crash 179 // Without this, a common reason to finally start a new version is to crash
174 // the old version (after an autoupdate has arrived), and so we'd bias 180 // the old version (after an autoupdate has arrived), and so we'd bias
175 // initial results towards showing crashes :-(. 181 // initial results towards showing crashes :-(.
176 static void DiscardOldStabilityStats(PrefService* local_state); 182 static void DiscardOldStabilityStats(PrefService* local_state);
177 183
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 private: 463 private:
458 friend class InstantFieldTrial; 464 friend class InstantFieldTrial;
459 465
460 // Returns true if prefs::kMetricsReportingEnabled is set. 466 // Returns true if prefs::kMetricsReportingEnabled is set.
461 static bool IsMetricsReportingEnabled(); 467 static bool IsMetricsReportingEnabled();
462 468
463 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper); 469 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper);
464 }; 470 };
465 471
466 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 472 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698