blob: 9fc80c168cdeb3babd53cc23dfdd0e9ddf01c660 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/resource_coordinator/performance_measurement_manager.h"
#include "chrome/browser/resource_coordinator/render_process_probe.h"
#include "chrome/browser/resource_coordinator/tab_load_tracker.h"
namespace resource_coordinator {
using LoadingState = TabLoadTracker::LoadingState;
PerformanceMeasurementManager::PerformanceMeasurementManager(
PageSignalReceiver* page_signal_receiver,
RenderProcessProbe* render_process_probe)
: scoped_observer_(this),
page_signal_receiver_(page_signal_receiver),
render_process_probe_(render_process_probe) {
scoped_observer_.Add(page_signal_receiver);
}
PerformanceMeasurementManager::~PerformanceMeasurementManager() = default;
void PerformanceMeasurementManager::OnPageAlmostIdle(
content::WebContents* web_contents,
const PageNavigationIdentity& page_navigation_id) {
if (page_signal_receiver_->GetNavigationIDForWebContents(web_contents) ==
page_navigation_id.navigation_id) {
render_process_probe_->StartSingleGather();
}
}
} // namespace resource_coordinator