Index: components/page_load_metrics/browser/page_load_metrics_observer.cc |
diff --git a/components/page_load_metrics/browser/page_load_metrics_observer.cc b/components/page_load_metrics/browser/page_load_metrics_observer.cc |
index 05b37303a1be7fa1162a09d31ccbe41b16cf60aa..bd1931c54d2726b57a18da473b11ad7df586e041 100644 |
--- a/components/page_load_metrics/browser/page_load_metrics_observer.cc |
+++ b/components/page_load_metrics/browser/page_load_metrics_observer.cc |
@@ -9,9 +9,38 @@ namespace page_load_metrics { |
PageLoadExtraInfo::PageLoadExtraInfo( |
const base::TimeDelta& first_background_time, |
const base::TimeDelta& first_foreground_time, |
- bool started_in_foreground) |
+ bool started_in_foreground, |
+ bool has_commit) |
: first_background_time(first_background_time), |
first_foreground_time(first_foreground_time), |
- started_in_foreground(started_in_foreground) {} |
+ started_in_foreground(started_in_foreground), |
+ has_commit(has_commit) {} |
+ |
+PageLoadMetricsObserver::PageLoadMetricsObserver( |
+ PageLoadMetricsObservable* observable) |
+ : observable_(observable) { |
+ observable_->AddObserver(this); |
Bryan McQuade
2015/11/30 17:00:53
I like having the default case be that a PLMObserv
Charlie Harrison
2015/11/30 17:49:39
Yeah a PLMObserver can observe multiple PLMObserva
|
+} |
+ |
+void PageLoadMetricsObserver::OnPageLoadMetricsGoingAway() { |
+ Destroy(); |
+} |
+ |
+void PageLoadMetricsObserver::Destroy() { |
+ if (observable_) |
+ observable_->RemoveObserver(this); |
+ delete this; |
+} |
+ |
+void PageLoadMetricsObserver::Observe(PageLoadMetricsObservable* observable) { |
+ observable_ = observable; |
+ observable->AddObserver(this); |
+} |
+ |
+void PageLoadMetricsObserver::StopObserving() { |
+ DCHECK(observable_); |
+ observable_->RemoveObserver(this); |
+ observable_ = nullptr; |
+} |
} // namespace page_load_metrics |