| Index: chrome/browser/metrics/metrics_service.h
|
| diff --git a/chrome/browser/metrics/metrics_service.h b/chrome/browser/metrics/metrics_service.h
|
| index 229921de4fbdfaf848b283a4bde64ce88dd34495..cfe194359bad97e8d4e42b12b333f9b86a629ffe 100644
|
| --- a/chrome/browser/metrics/metrics_service.h
|
| +++ b/chrome/browser/metrics/metrics_service.h
|
| @@ -15,15 +15,14 @@
|
|
|
| #include "base/basictypes.h"
|
| #include "base/gtest_prod_util.h"
|
| -#include "base/memory/weak_ptr.h"
|
| #include "base/memory/scoped_ptr.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/process_util.h"
|
| +#include "chrome/browser/metrics/tracking_synchronizer_observer.h"
|
| #include "chrome/common/metrics/metrics_service_base.h"
|
| -#include "content/public/common/process_type.h"
|
| -#include "content/public/common/url_fetcher_delegate.h"
|
| #include "content/public/browser/notification_observer.h"
|
| #include "content/public/browser/notification_registrar.h"
|
| +#include "content/public/common/url_fetcher_delegate.h"
|
|
|
| #if defined(OS_CHROMEOS)
|
| #include "chrome/browser/chromeos/external_metrics.h"
|
| @@ -31,6 +30,7 @@
|
|
|
| class BookmarkModel;
|
| class BookmarkNode;
|
| +class MetricsLog;
|
| class MetricsReportingScheduler;
|
| class PrefService;
|
| class Profile;
|
| @@ -53,14 +53,19 @@ namespace prerender {
|
| bool IsOmniboxEnabled(Profile* profile);
|
| }
|
|
|
| +namespace tracked_objects {
|
| +struct ProcessDataSnapshot;
|
| +}
|
| +
|
| namespace webkit {
|
| struct WebPluginInfo;
|
| }
|
|
|
| -
|
| -class MetricsService : public content::NotificationObserver,
|
| - public content::URLFetcherDelegate,
|
| - public MetricsServiceBase {
|
| +class MetricsService
|
| + : public chrome_browser_metrics::TrackingSynchronizerObserver,
|
| + public content::NotificationObserver,
|
| + public content::URLFetcherDelegate,
|
| + public MetricsServiceBase {
|
| public:
|
| MetricsService();
|
| virtual ~MetricsService();
|
| @@ -161,11 +166,18 @@ class MetricsService : public content::NotificationObserver,
|
| // loading plugin information.
|
| void OnInitTaskGotHardwareClass(const std::string& hardware_class);
|
|
|
| - // Callback from PluginService::GetPlugins() that moves the state to
|
| - // INIT_TASK_DONE.
|
| + // Callback from PluginService::GetPlugins() that continues the init task by
|
| + // loading profiler data.
|
| void OnInitTaskGotPluginInfo(
|
| const std::vector<webkit::WebPluginInfo>& plugins);
|
|
|
| + // TrackingSynchronizerObserver:
|
| + virtual void ReceivedProfilerData(
|
| + const tracked_objects::ProcessDataSnapshot& process_data,
|
| + content::ProcessType process_type) OVERRIDE;
|
| + // Callback that moves the state to INIT_TASK_DONE.
|
| + virtual void FinishedReceivingProfilerData() OVERRIDE;
|
| +
|
| // When we start a new version of Chromium (different from our last run), we
|
| // need to discard the old crash stats so that we don't attribute crashes etc.
|
| // in the old version to the current version (via current logs).
|
| @@ -347,6 +359,9 @@ class MetricsService : public content::NotificationObserver,
|
| // The list of plugins which was retrieved on the file thread.
|
| std::vector<webkit::WebPluginInfo> plugins_;
|
|
|
| + // The initial log, used to record startup metrics.
|
| + scoped_ptr<MetricsLog> initial_log_;
|
| +
|
| // The outstanding transmission appears as a URL Fetch operation.
|
| scoped_ptr<content::URLFetcher> current_fetch_xml_;
|
| scoped_ptr<content::URLFetcher> current_fetch_proto_;
|
|
|