OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 #ifndef COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ | 5 #ifndef COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ |
6 #define COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ | 6 #define COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ |
7 | 7 |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
| 10 #include <memory> |
| 11 |
10 #include "base/callback.h" | 12 #include "base/callback.h" |
11 #include "base/feature_list.h" | 13 #include "base/feature_list.h" |
12 #include "base/macros.h" | 14 #include "base/macros.h" |
13 #include "base/threading/thread_checker.h" | 15 #include "base/threading/thread_checker.h" |
14 #include "components/ukm/public/interfaces/ukm_interface.mojom.h" | 16 #include "components/ukm/public/interfaces/ukm_interface.mojom.h" |
15 #include "components/ukm/public/ukm_entry_builder.h" | 17 #include "components/ukm/public/ukm_entry_builder.h" |
16 #include "components/ukm/public/ukm_export.h" | 18 #include "components/ukm/public/ukm_export.h" |
17 #include "url/gurl.h" | 19 #include "url/gurl.h" |
18 | 20 |
19 class ContextualSearchRankerLoggerImpl; | 21 class ContextualSearchRankerLoggerImpl; |
20 class PluginInfoMessageFilter; | 22 class PluginInfoMessageFilter; |
21 class UkmPageLoadMetricsObserver; | 23 class UkmPageLoadMetricsObserver; |
22 | 24 |
23 namespace autofill { | 25 namespace autofill { |
24 class AutofillMetrics; | 26 class AutofillMetrics; |
25 } | 27 } |
26 | 28 |
27 namespace content { | 29 namespace content { |
28 class MediaInternals; | 30 class MediaInternals; |
29 class RenderFrameImpl; | 31 class RenderFrameImpl; |
30 class RenderWidgetHostLatencyTracker; | 32 class RenderWidgetHostLatencyTracker; |
31 } | 33 } |
32 | 34 |
| 35 namespace resource_coordinator { |
| 36 class CoordinationUnitManager; |
| 37 } |
| 38 |
33 namespace translate { | 39 namespace translate { |
34 class TranslateRankerImpl; | 40 class TranslateRankerImpl; |
35 } | 41 } |
36 | 42 |
37 namespace payments { | 43 namespace payments { |
38 class JourneyLogger; | 44 class JourneyLogger; |
39 } | 45 } |
40 | 46 |
41 namespace ukm { | 47 namespace ukm { |
42 | 48 |
(...skipping 30 matching lines...) Expand all Loading... |
73 friend payments::JourneyLogger; | 79 friend payments::JourneyLogger; |
74 friend ContextualSearchRankerLoggerImpl; | 80 friend ContextualSearchRankerLoggerImpl; |
75 friend PluginInfoMessageFilter; | 81 friend PluginInfoMessageFilter; |
76 friend UkmPageLoadMetricsObserver; | 82 friend UkmPageLoadMetricsObserver; |
77 friend translate::TranslateRankerImpl; | 83 friend translate::TranslateRankerImpl; |
78 friend TestRecordingHelper; | 84 friend TestRecordingHelper; |
79 friend UkmInterface; | 85 friend UkmInterface; |
80 friend content::MediaInternals; | 86 friend content::MediaInternals; |
81 friend content::RenderFrameImpl; | 87 friend content::RenderFrameImpl; |
82 friend content::RenderWidgetHostLatencyTracker; | 88 friend content::RenderWidgetHostLatencyTracker; |
| 89 friend resource_coordinator::CoordinationUnitManager; |
83 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, AddEntryWithEmptyMetrics); | 90 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, AddEntryWithEmptyMetrics); |
84 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, EntryBuilderAndSerialization); | 91 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, EntryBuilderAndSerialization); |
85 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, | 92 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, |
86 LogsUploadedOnlyWhenHavingSourcesOrEntries); | 93 LogsUploadedOnlyWhenHavingSourcesOrEntries); |
87 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, MetricsProviderTest); | 94 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, MetricsProviderTest); |
88 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, PersistAndPurge); | 95 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, PersistAndPurge); |
89 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, WhitelistEntryTest); | 96 FRIEND_TEST_ALL_PREFIXES(UkmServiceTest, WhitelistEntryTest); |
90 | 97 |
91 // Get a new UkmEntryBuilder object for the specified source ID and event, | 98 // Get a new UkmEntryBuilder object for the specified source ID and event, |
92 // which can get metrics added to. | 99 // which can get metrics added to. |
93 // | 100 // |
94 // This API being private is intentional. Any client using UKM needs to | 101 // This API being private is intentional. Any client using UKM needs to |
95 // declare itself to be a friend of UkmService and go through code review | 102 // declare itself to be a friend of UkmService and go through code review |
96 // process. | 103 // process. |
97 std::unique_ptr<UkmEntryBuilder> GetEntryBuilder(SourceId source_id, | 104 std::unique_ptr<UkmEntryBuilder> GetEntryBuilder(SourceId source_id, |
98 const char* event_name); | 105 const char* event_name); |
99 | 106 |
100 private: | 107 private: |
101 // Add an entry to the UkmEntry list. | 108 // Add an entry to the UkmEntry list. |
102 virtual void AddEntry(mojom::UkmEntryPtr entry) = 0; | 109 virtual void AddEntry(mojom::UkmEntryPtr entry) = 0; |
103 | 110 |
104 DISALLOW_COPY_AND_ASSIGN(UkmRecorder); | 111 DISALLOW_COPY_AND_ASSIGN(UkmRecorder); |
105 }; | 112 }; |
106 | 113 |
107 } // namespace ukm | 114 } // namespace ukm |
108 | 115 |
109 #endif // COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ | 116 #endif // COMPONENTS_UKM_PUBLIC_UKM_RECORDER_H_ |
OLD | NEW |