| // Copyright 2022 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| #include "components/page_load_metrics/browser/metrics_lifecycle_observer.h" |
| |
| namespace page_load_metrics { |
| |
| MetricsLifecycleObserver::MetricsLifecycleObserver( |
| content::WebContents* web_contents) |
| : observer_(page_load_metrics::MetricsWebContentsObserver::FromWebContents( |
| web_contents)) { |
| observer_->AddLifecycleObserver(this); |
| } |
| |
| MetricsLifecycleObserver::~MetricsLifecycleObserver() { |
| if (observer_) { |
| observer_->RemoveLifecycleObserver(this); |
| observer_ = nullptr; |
| } |
| } |
| |
| void MetricsLifecycleObserver::OnGoingAway() { |
| observer_ = nullptr; |
| } |
| |
| const PageLoadMetricsObserverDelegate* |
| MetricsLifecycleObserver::GetDelegateForCommittedLoad() { |
| return observer_ ? &observer_->GetDelegateForCommittedLoad() : nullptr; |
| } |
| |
| } // namespace page_load_metrics |