Index: chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h |
diff --git a/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h b/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h |
index 1ee7c0728b1d2c582ac7336f67b2231dea648a6b..c45cf79b0de0726298a724477fcbfdb2b207b90e 100644 |
--- a/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h |
+++ b/chrome/browser/page_load_metrics/observers/subresource_filter_metrics_observer.h |
@@ -6,7 +6,11 @@ |
#define CHROME_BROWSER_PAGE_LOAD_METRICS_OBSERVERS_SUBRESOURCE_FILTER_METRICS_OBSERVER_H_ |
#include "base/macros.h" |
+#include "base/optional.h" |
+#include "base/scoped_observer.h" |
#include "chrome/browser/page_load_metrics/page_load_metrics_observer.h" |
+#include "components/subresource_filter/content/browser/subresource_filter_observer.h" |
+#include "components/subresource_filter/content/browser/subresource_filter_observer_manager.h" |
#include "components/ukm/ukm_source.h" |
namespace internal { |
@@ -59,12 +63,16 @@ extern const char kHistogramSubresourceFilterActivationDecisionReload[]; |
} // namespace internal |
class SubresourceFilterMetricsObserver |
- : public page_load_metrics::PageLoadMetricsObserver { |
+ : public page_load_metrics::PageLoadMetricsObserver, |
+ public subresource_filter::SubresourceFilterObserver { |
public: |
- SubresourceFilterMetricsObserver() = default; |
- ~SubresourceFilterMetricsObserver() override = default; |
+ SubresourceFilterMetricsObserver(); |
+ ~SubresourceFilterMetricsObserver() override; |
// page_load_metrics::PageLoadMetricsObserver: |
+ ObservePolicy OnStart(content::NavigationHandle* navigation_handle, |
+ const GURL& currently_committed_url, |
+ bool started_in_foreground) override; |
ObservePolicy OnCommit(content::NavigationHandle* navigation_handle, |
ukm::SourceId source_id) override; |
ObservePolicy FlushMetricsOnAppEnterBackground( |
@@ -95,18 +103,35 @@ class SubresourceFilterMetricsObserver |
bool is_in_main_frame) override; |
private: |
+ // subresource_filter::SubresourceFilterObserver: |
+ void OnSubresourceFilterGoingAway() override; |
+ void OnPageActivationComputed( |
+ content::NavigationHandle* navigation_handle, |
+ subresource_filter::ActivationDecision activation_decision, |
+ const subresource_filter::ActivationState& activation_state) override; |
+ |
void OnGoingAway(const page_load_metrics::mojom::PageLoadTiming& timing, |
const page_load_metrics::PageLoadExtraInfo& info, |
base::TimeTicks app_background_time); |
+ base::Optional<subresource_filter::ActivationDecision> activation_decision_; |
+ |
+ ScopedObserver<subresource_filter::SubresourceFilterObserverManager, |
+ subresource_filter::SubresourceFilterObserver> |
+ scoped_observer_; |
+ |
int64_t network_bytes_ = 0; |
int64_t cache_bytes_ = 0; |
int num_network_resources_ = 0; |
int num_cache_resources_ = 0; |
+ // Used as a unique id for the ongoing navigation. Do not use after OnCommit. |
+ content::NavigationHandle* navigation_handle_ = nullptr; |
+ |
bool subresource_filter_observed_ = false; |
bool played_media_ = false; |
+ bool did_commit_ = false; |
DISALLOW_COPY_AND_ASSIGN(SubresourceFilterMetricsObserver); |
}; |