| Index: components/ukm/ukm_service.h
|
| diff --git a/components/ukm/ukm_service.h b/components/ukm/ukm_service.h
|
| index 584be39f911088fd8d3e0cb3927daf1a304bac09..9af221183c46f3ac7539228835dde46d6204f08e 100644
|
| --- a/components/ukm/ukm_service.h
|
| +++ b/components/ukm/ukm_service.h
|
| @@ -9,33 +9,17 @@
|
| #include <memory>
|
| #include <vector>
|
|
|
| -#include "base/callback.h"
|
| -#include "base/feature_list.h"
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/threading/thread_checker.h"
|
| #include "build/build_config.h"
|
| #include "components/metrics/metrics_provider.h"
|
| #include "components/metrics/metrics_rotation_scheduler.h"
|
| +#include "components/ukm/ukm_recorder_impl.h"
|
| #include "components/ukm/ukm_reporting_service.h"
|
| -#include "url/gurl.h"
|
|
|
| -class PluginInfoMessageFilter;
|
| class PrefRegistrySimple;
|
| class PrefService;
|
| -class UkmPageLoadMetricsObserver;
|
| -
|
| -namespace autofill {
|
| -class AutofillMetrics;
|
| -} // namespace autofill
|
| -
|
| -namespace translate {
|
| -class TranslateRankerImpl;
|
| -}
|
| -
|
| -namespace payments {
|
| -class JourneyLogger;
|
| -} // namespace payments
|
|
|
| namespace metrics {
|
| class MetricsServiceClient;
|
| @@ -43,43 +27,24 @@ class MetricsServiceClient;
|
|
|
| namespace ukm {
|
|
|
| -class UkmEntry;
|
| -class UkmEntryBuilder;
|
| -class UkmSource;
|
| -
|
| namespace debug {
|
| class DebugPage;
|
| }
|
|
|
| -// This feature controls whether UkmService should be created.
|
| -extern const base::Feature kUkmFeature;
|
| -
|
| // The URL-Keyed Metrics (UKM) service is responsible for gathering and
|
| // uploading reports that contain fine grained performance metrics including
|
| // URLs for top-level navigations.
|
| -class UkmService {
|
| +class UkmService : public UkmRecorderImpl {
|
| public:
|
| // Constructs a UkmService.
|
| // Calling code is responsible for ensuring that the lifetime of
|
| // |pref_service| is longer than the lifetime of UkmService.
|
| UkmService(PrefService* pref_service, metrics::MetricsServiceClient* client);
|
| - virtual ~UkmService();
|
| -
|
| - // Get the new source ID, which is unique for the duration of a browser
|
| - // session.
|
| - static int32_t GetNewSourceID();
|
| -
|
| - // Update the URL on the source keyed to the given source ID. If the source
|
| - // does not exist, it will create a new UkmSource object.
|
| - void UpdateSourceURL(int32_t source_id, const GURL& url);
|
| + ~UkmService() override;
|
|
|
| // Initializes the UKM service.
|
| void Initialize();
|
|
|
| - // Enables/disables recording control if data is allowed to be collected.
|
| - void EnableRecording();
|
| - void DisableRecording();
|
| -
|
| // Enables/disables transmission of accumulated logs. Logs that have already
|
| // been created will remain persisted to disk.
|
| void EnableReporting();
|
| @@ -108,25 +73,8 @@ class UkmService {
|
| // the provided PrefRegistry.
|
| static void RegisterPrefs(PrefRegistrySimple* registry);
|
|
|
| - using AddEntryCallback = base::Callback<void(std::unique_ptr<UkmEntry>)>;
|
| -
|
| - protected:
|
| - const std::map<int32_t, std::unique_ptr<UkmSource>>& sources_for_testing()
|
| - const {
|
| - return sources_;
|
| - }
|
| -
|
| - const std::vector<std::unique_ptr<UkmEntry>>& entries_for_testing() const {
|
| - return entries_;
|
| - }
|
| -
|
| private:
|
| friend ::ukm::debug::DebugPage;
|
| - friend autofill::AutofillMetrics;
|
| - friend payments::JourneyLogger;
|
| - friend PluginInfoMessageFilter;
|
| - friend UkmPageLoadMetricsObserver;
|
| - friend translate::TranslateRankerImpl;
|
| FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, AddEntryWithEmptyMetrics);
|
| FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, EntryBuilderAndSerialization);
|
| FRIEND_TEST_ALL_PREFIXES(UkmServiceTest,
|
| @@ -135,15 +83,6 @@ class UkmService {
|
| FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, PersistAndPurge);
|
| FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, WhitelistEntryTest);
|
|
|
| - // Get a new UkmEntryBuilder object for the specified source ID and event,
|
| - // which can get metrics added to.
|
| - //
|
| - // This API being private is intentional. Any client using UKM needs to
|
| - // declare itself to be a friend of UkmService and go through code review
|
| - // process.
|
| - std::unique_ptr<UkmEntryBuilder> GetEntryBuilder(int32_t source_id,
|
| - const char* event_name);
|
| -
|
| // Starts metrics client initialization.
|
| void StartInitTask();
|
|
|
| @@ -164,18 +103,9 @@ class UkmService {
|
| // Called by log_uploader_ when the an upload is completed.
|
| void OnLogUploadComplete(int response_code);
|
|
|
| - // Add an entry to the UkmEntry list.
|
| - void AddEntry(std::unique_ptr<UkmEntry> entry);
|
| -
|
| - // Cache the list of whitelisted entries from the field trial parameter.
|
| - void StoreWhitelistedEntries();
|
| -
|
| // A weak pointer to the PrefService used to read and write preferences.
|
| PrefService* pref_service_;
|
|
|
| - // Whether recording new data is currently allowed.
|
| - bool recording_enabled_;
|
| -
|
| // The UKM client id stored in prefs.
|
| uint64_t client_id_;
|
|
|
| @@ -200,14 +130,6 @@ class UkmService {
|
| bool initialize_started_;
|
| bool initialize_complete_;
|
|
|
| - // Contains newly added sources and entries of UKM metrics which periodically
|
| - // get serialized and cleared by BuildAndStoreLog().
|
| - std::map<int32_t, std::unique_ptr<UkmSource>> sources_;
|
| - std::vector<std::unique_ptr<UkmEntry>> entries_;
|
| -
|
| - // Whitelisted Entry hashes, only the ones in this set will be recorded.
|
| - std::set<uint64_t> whitelisted_entry_hashes_;
|
| -
|
| // Weak pointers factory used to post task on different threads. All weak
|
| // pointers managed by this factory have the same lifetime as UkmService.
|
| base::WeakPtrFactory<UkmService> self_ptr_factory_;
|
|
|