#include "third_party/blink/renderer/core/lcp_critical_path_predictor/lcp_critical_path_predictor.h"
#include "base/metrics/histogram_functions.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/loader/lcp_critical_path_predictor_util.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html/html_image_element.h"
#include "third_party/blink/renderer/core/lcp_critical_path_predictor/element_locator.h"
#include "third_party/blink/renderer/core/loader/document_loader.h"
namespace blink {
namespace {
size_t GetLCPPFontURLPredictorMaxUrlLength() { … }
bool IsTimingPredictorEnabled() { … }
}
LCPCriticalPathPredictor::LCPCriticalPathPredictor(LocalFrame& frame)
: … { … }
LCPCriticalPathPredictor::~LCPCriticalPathPredictor() = default;
bool LCPCriticalPathPredictor::HasAnyHintData() const { … }
void LCPCriticalPathPredictor::set_lcp_element_locators(
const std::vector<std::string>& lcp_element_locator_strings) { … }
void LCPCriticalPathPredictor::set_lcp_influencer_scripts(
HashSet<KURL> scripts) { … }
void LCPCriticalPathPredictor::set_fetched_fonts(Vector<KURL> fonts) { … }
void LCPCriticalPathPredictor::set_preconnected_origins(
const Vector<url::Origin>& origins) { … }
void LCPCriticalPathPredictor::set_unused_preloads(Vector<KURL> preloads) { … }
void LCPCriticalPathPredictor::Reset() { … }
void LCPCriticalPathPredictor::AddLCPPredictedCallback(LCPCallback callback) { … }
void LCPCriticalPathPredictor::AddLCPPredictedCallback(
base::OnceClosure callback) { … }
void LCPCriticalPathPredictor::MayRunPredictedCallbacks(
const Element* lcp_element) { … }
bool LCPCriticalPathPredictor::IsElementMatchingLocator(
const Element& element) { … }
void LCPCriticalPathPredictor::OnLargestContentfulPaintUpdated(
const Element& lcp_element,
std::optional<const KURL> maybe_image_url) { … }
void LCPCriticalPathPredictor::OnFontFetched(const KURL& url) { … }
void LCPCriticalPathPredictor::OnStartPreload(const KURL& url) { … }
mojom::blink::LCPCriticalPathPredictorHost&
LCPCriticalPathPredictor::GetHost() { … }
bool LCPCriticalPathPredictor::IsLcpInfluencerScript(const KURL& url) { … }
void LCPCriticalPathPredictor::OnOutermostMainFrameDocumentLoad() { … }
void LCPCriticalPathPredictor::OnWarnedUnusedPreloads(
const Vector<KURL>& unused_preloads) { … }
void LCPCriticalPathPredictor::Trace(Visitor* visitor) const { … }
}