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

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

Issue 289373007: Rename MetricsServiceHelper to ChromeMetricsServiceAccessor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Another rebas. Created 6 years, 7 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 10
(...skipping 17 matching lines...) Expand all
28 #include "chrome/common/metrics/metrics_service_base.h" 28 #include "chrome/common/metrics/metrics_service_base.h"
29 #include "components/metrics/metrics_provider.h" 29 #include "components/metrics/metrics_provider.h"
30 #include "components/metrics/metrics_service_observer.h" 30 #include "components/metrics/metrics_service_observer.h"
31 #include "components/variations/active_field_trials.h" 31 #include "components/variations/active_field_trials.h"
32 #include "content/public/browser/browser_child_process_observer.h" 32 #include "content/public/browser/browser_child_process_observer.h"
33 #include "content/public/browser/notification_observer.h" 33 #include "content/public/browser/notification_observer.h"
34 #include "content/public/browser/notification_registrar.h" 34 #include "content/public/browser/notification_registrar.h"
35 #include "content/public/browser/user_metrics.h" 35 #include "content/public/browser/user_metrics.h"
36 #include "net/url_request/url_fetcher_delegate.h" 36 #include "net/url_request/url_fetcher_delegate.h"
37 37
38 class ChromeBrowserMetricsServiceObserver;
39 class GoogleUpdateMetricsProviderWin; 38 class GoogleUpdateMetricsProviderWin;
40 class MetricsReportingScheduler; 39 class MetricsReportingScheduler;
41 class PrefService; 40 class PrefService;
42 class PrefRegistrySimple; 41 class PrefRegistrySimple;
43 class Profile;
44 class TemplateURLService;
45
46 namespace {
47 class CrashesDOMHandler;
48 class FlashDOMHandler;
49 }
50 42
51 namespace base { 43 namespace base {
52 class DictionaryValue; 44 class DictionaryValue;
53 class MessageLoopProxy; 45 class MessageLoopProxy;
54 } 46 }
55 47
56 namespace variations { 48 namespace variations {
57 struct ActiveGroupId; 49 struct ActiveGroupId;
58 } 50 }
59 51
60 namespace content { 52 namespace content {
61 class RenderProcessHost; 53 class RenderProcessHost;
62 class WebContents; 54 class WebContents;
63 struct WebPluginInfo; 55 struct WebPluginInfo;
64 } 56 }
65 57
66 namespace extensions {
67 class ExtensionDownloader;
68 class ManifestFetchData;
69 class MetricsPrivateGetIsCrashReportingEnabledFunction;
70 }
71
72 namespace metrics { 58 namespace metrics {
73 class MetricsServiceClient; 59 class MetricsServiceClient;
74 class MetricsStateManager; 60 class MetricsStateManager;
75 } 61 }
76 62
77 namespace net { 63 namespace net {
78 class URLFetcher; 64 class URLFetcher;
79 } 65 }
80 66
81 namespace prerender {
82 bool IsOmniboxEnabled(Profile* profile);
83 }
84
85 namespace system_logs {
86 class ChromeInternalLogSource;
87 }
88
89 namespace tracked_objects { 67 namespace tracked_objects {
90 struct ProcessDataSnapshot; 68 struct ProcessDataSnapshot;
91 } 69 }
92 70
93 // A Field Trial and its selected group, which represent a particular 71 // A Field Trial and its selected group, which represent a particular
94 // Chrome configuration state. For example, the trial name could map to 72 // Chrome configuration state. For example, the trial name could map to
95 // a preference name, and the group name could map to a preference value. 73 // a preference name, and the group name could map to a preference value.
96 struct SyntheticTrialGroup { 74 struct SyntheticTrialGroup {
97 public: 75 public:
98 ~SyntheticTrialGroup(); 76 ~SyntheticTrialGroup();
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 static ShutdownCleanliness clean_shutdown_status_; 541 static ShutdownCleanliness clean_shutdown_status_;
564 542
565 // Field trial groups that map to Chrome configuration states. 543 // Field trial groups that map to Chrome configuration states.
566 SyntheticTrialGroups synthetic_trial_groups_; 544 SyntheticTrialGroups synthetic_trial_groups_;
567 545
568 ObserverList<MetricsServiceObserver> observers_; 546 ObserverList<MetricsServiceObserver> observers_;
569 547
570 // Confirms single-threaded access to |observers_| in debug builds. 548 // Confirms single-threaded access to |observers_| in debug builds.
571 base::ThreadChecker thread_checker_; 549 base::ThreadChecker thread_checker_;
572 550
573 friend class MetricsServiceHelper; 551 friend class ChromeMetricsServiceAccessor;
574 552
575 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess); 553 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, IsPluginProcess);
576 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, MetricsServiceObserver); 554 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, MetricsServiceObserver);
577 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, 555 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest,
578 PermutedEntropyCacheClearedWhenLowEntropyReset); 556 PermutedEntropyCacheClearedWhenLowEntropyReset);
579 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, RegisterSyntheticTrial); 557 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, RegisterSyntheticTrial);
580 558
581 DISALLOW_COPY_AND_ASSIGN(MetricsService); 559 DISALLOW_COPY_AND_ASSIGN(MetricsService);
582 }; 560 };
583 561
584 // This class limits and documents access to metrics service helper methods.
585 // Since these methods are private, each user has to be explicitly declared
586 // as a 'friend' below.
587 class MetricsServiceHelper {
588 private:
589 friend bool prerender::IsOmniboxEnabled(Profile* profile);
590 friend class ::ChromeBrowserMetricsServiceObserver;
591 friend class ChromeRenderMessageFilter;
592 friend class ::CrashesDOMHandler;
593 friend class extensions::ExtensionDownloader;
594 friend class extensions::ManifestFetchData;
595 friend class extensions::MetricsPrivateGetIsCrashReportingEnabledFunction;
596 friend class ::FlashDOMHandler;
597 friend class system_logs::ChromeInternalLogSource;
598 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, MetricsReportingEnabled);
599 FRIEND_TEST_ALL_PREFIXES(MetricsServiceTest, CrashReportingEnabled);
600
601 // Returns true if prefs::kMetricsReportingEnabled is set.
602 // TODO(asvitkine): Consolidate the method in MetricsStateManager.
603 // TODO(asvitkine): This function does not report the correct value on
604 // Android and ChromeOS, see http://crbug.com/362192.
605 static bool IsMetricsReportingEnabled();
606
607 // Returns true if crash reporting is enabled. This is set at the platform
608 // level for Android and ChromeOS, and otherwise is the same as
609 // IsMetricsReportingEnabled for desktop Chrome.
610 static bool IsCrashReportingEnabled();
611
612 // Registers/unregisters |observer| to receive MetricsLog notifications
613 // from metrics service.
614 static void AddMetricsServiceObserver(MetricsServiceObserver* observer);
615 static void RemoveMetricsServiceObserver(MetricsServiceObserver* observer);
616
617 DISALLOW_IMPLICIT_CONSTRUCTORS(MetricsServiceHelper);
618 };
619
620 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_ 562 #endif // CHROME_BROWSER_METRICS_METRICS_SERVICE_H_
OLDNEW
« no previous file with comments | « chrome/browser/metrics/chrome_metrics_service_accessor_unittest.cc ('k') | chrome/browser/metrics/metrics_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698