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 CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS_OB
SERVER_H_ | 5 #ifndef CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS_OB
SERVER_H_ |
6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS_OB
SERVER_H_ | 6 #define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS_OB
SERVER_H_ |
7 | 7 |
8 #include "base/macros.h" | 8 #include "base/macros.h" |
| 9 #include "base/optional.h" |
| 10 #include "base/scoped_observer.h" |
9 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" | 11 #include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" |
| 12 #include "components/subresource_filter/content/browser/subresource_filter_obser
ver.h" |
| 13 #include "components/subresource_filter/content/browser/subresource_filter_obser
ver_manager.h" |
10 #include "components/ukm/ukm_source.h" | 14 #include "components/ukm/ukm_source.h" |
11 | 15 |
12 namespace internal { | 16 namespace internal { |
13 | 17 |
14 extern const char kHistogramSubresourceFilterFirstContentfulPaint[]; | 18 extern const char kHistogramSubresourceFilterFirstContentfulPaint[]; |
15 extern const char kHistogramSubresourceFilterParseStartToFirstContentfulPaint[]; | 19 extern const char kHistogramSubresourceFilterParseStartToFirstContentfulPaint[]; |
16 extern const char kHistogramSubresourceFilterFirstMeaningfulPaint[]; | 20 extern const char kHistogramSubresourceFilterFirstMeaningfulPaint[]; |
17 extern const char kHistogramSubresourceFilterParseStartToFirstMeaningfulPaint[]; | 21 extern const char kHistogramSubresourceFilterParseStartToFirstMeaningfulPaint[]; |
18 | 22 |
19 extern const char kHistogramSubresourceFilterTotalResources[]; | 23 extern const char kHistogramSubresourceFilterTotalResources[]; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 extern const char kHistogramSubresourceFilterForegroundDurationAfterPaint[]; | 56 extern const char kHistogramSubresourceFilterForegroundDurationAfterPaint[]; |
53 | 57 |
54 extern const char kHistogramSubresourceFilterCount[]; | 58 extern const char kHistogramSubresourceFilterCount[]; |
55 | 59 |
56 extern const char kHistogramSubresourceFilterActivationDecision[]; | 60 extern const char kHistogramSubresourceFilterActivationDecision[]; |
57 extern const char kHistogramSubresourceFilterActivationDecisionReload[]; | 61 extern const char kHistogramSubresourceFilterActivationDecisionReload[]; |
58 | 62 |
59 } // namespace internal | 63 } // namespace internal |
60 | 64 |
61 class SubresourceFilterMetricsObserver | 65 class SubresourceFilterMetricsObserver |
62 : public page_load_metrics::PageLoadMetricsObserver { | 66 : public page_load_metrics::PageLoadMetricsObserver, |
| 67 public subresource_filter::SubresourceFilterObserver { |
63 public: | 68 public: |
64 SubresourceFilterMetricsObserver() = default; | 69 SubresourceFilterMetricsObserver(); |
65 ~SubresourceFilterMetricsObserver() override = default; | 70 ~SubresourceFilterMetricsObserver() override; |
66 | 71 |
67 // page_load_metrics::PageLoadMetricsObserver: | 72 // page_load_metrics::PageLoadMetricsObserver: |
| 73 ObservePolicy OnStart(content::NavigationHandle* navigation_handle, |
| 74 const GURL& currently_committed_url, |
| 75 bool started_in_foreground) override; |
68 ObservePolicy OnCommit(content::NavigationHandle* navigation_handle, | 76 ObservePolicy OnCommit(content::NavigationHandle* navigation_handle, |
69 ukm::SourceId source_id) override; | 77 ukm::SourceId source_id) override; |
70 ObservePolicy FlushMetricsOnAppEnterBackground( | 78 ObservePolicy FlushMetricsOnAppEnterBackground( |
71 const page_load_metrics::mojom::PageLoadTiming& timing, | 79 const page_load_metrics::mojom::PageLoadTiming& timing, |
72 const page_load_metrics::PageLoadExtraInfo& info) override; | 80 const page_load_metrics::PageLoadExtraInfo& info) override; |
73 void OnComplete(const page_load_metrics::mojom::PageLoadTiming& timing, | 81 void OnComplete(const page_load_metrics::mojom::PageLoadTiming& timing, |
74 const page_load_metrics::PageLoadExtraInfo& info) override; | 82 const page_load_metrics::PageLoadExtraInfo& info) override; |
75 void OnLoadedResource(const page_load_metrics::ExtraRequestCompleteInfo& | 83 void OnLoadedResource(const page_load_metrics::ExtraRequestCompleteInfo& |
76 extra_request_complete_info) override; | 84 extra_request_complete_info) override; |
77 void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing, | 85 void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing, |
(...skipping 10 matching lines...) Expand all Loading... |
88 void OnLoadEventStart( | 96 void OnLoadEventStart( |
89 const page_load_metrics::mojom::PageLoadTiming& timing, | 97 const page_load_metrics::mojom::PageLoadTiming& timing, |
90 const page_load_metrics::PageLoadExtraInfo& extra_info) override; | 98 const page_load_metrics::PageLoadExtraInfo& extra_info) override; |
91 void OnLoadingBehaviorObserved( | 99 void OnLoadingBehaviorObserved( |
92 const page_load_metrics::PageLoadExtraInfo& extra_info) override; | 100 const page_load_metrics::PageLoadExtraInfo& extra_info) override; |
93 void MediaStartedPlaying( | 101 void MediaStartedPlaying( |
94 const content::WebContentsObserver::MediaPlayerInfo& video_type, | 102 const content::WebContentsObserver::MediaPlayerInfo& video_type, |
95 bool is_in_main_frame) override; | 103 bool is_in_main_frame) override; |
96 | 104 |
97 private: | 105 private: |
| 106 // subresource_filter::SubresourceFilterObserver: |
| 107 void OnSubresourceFilterGoingAway() override; |
| 108 void OnPageActivationComputed( |
| 109 content::NavigationHandle* navigation_handle, |
| 110 subresource_filter::ActivationDecision activation_decision, |
| 111 const subresource_filter::ActivationState& activation_state) override; |
| 112 |
98 void OnGoingAway(const page_load_metrics::mojom::PageLoadTiming& timing, | 113 void OnGoingAway(const page_load_metrics::mojom::PageLoadTiming& timing, |
99 const page_load_metrics::PageLoadExtraInfo& info, | 114 const page_load_metrics::PageLoadExtraInfo& info, |
100 base::TimeTicks app_background_time); | 115 base::TimeTicks app_background_time); |
101 | 116 |
| 117 base::Optional<subresource_filter::ActivationDecision> activation_decision_; |
| 118 |
| 119 ScopedObserver<subresource_filter::SubresourceFilterObserverManager, |
| 120 subresource_filter::SubresourceFilterObserver> |
| 121 scoped_observer_; |
| 122 |
102 int64_t network_bytes_ = 0; | 123 int64_t network_bytes_ = 0; |
103 int64_t cache_bytes_ = 0; | 124 int64_t cache_bytes_ = 0; |
104 | 125 |
105 int num_network_resources_ = 0; | 126 int num_network_resources_ = 0; |
106 int num_cache_resources_ = 0; | 127 int num_cache_resources_ = 0; |
107 | 128 |
| 129 // Used as a unique id for the ongoing navigation. Do not use after OnCommit. |
| 130 content::NavigationHandle* navigation_handle_ = nullptr; |
| 131 |
108 bool subresource_filter_observed_ = false; | 132 bool subresource_filter_observed_ = false; |
109 bool played_media_ = false; | 133 bool played_media_ = false; |
| 134 bool did_commit_ = false; |
110 | 135 |
111 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterMetricsObserver); | 136 DISALLOW_COPY_AND_ASSIGN(SubresourceFilterMetricsObserver); |
112 }; | 137 }; |
113 | 138 |
114 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS
_OBSERVER_H_ | 139 #endif // CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS
_OBSERVER_H_ |
OLD | NEW |