| 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..659de29fa591b51fb60dca8e1e3e80fca60dd08b 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,40 @@ 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() : observable_(nullptr) {}
|
| +
|
| +PageLoadMetricsObserver::PageLoadMetricsObserver(
|
| + PageLoadMetricsObservable* observable)
|
| + : observable_(observable) {
|
| + observable_->AddObserver(this);
|
| +}
|
| +
|
| +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
|
|
|