#include "third_party/blink/renderer/core/script/classic_pending_script.h"
#include "base/feature_list.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/public/mojom/script/script_type.mojom-blink-forward.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/bindings/core/v8/referrer_script_info.h"
#include "third_party/blink/renderer/bindings/core/v8/script_streamer.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/scriptable_document_parser.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/html/html_document.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
#include "third_party/blink/renderer/core/lcp_critical_path_predictor/lcp_critical_path_predictor.h"
#include "third_party/blink/renderer/core/loader/document_loader.h"
#include "third_party/blink/renderer/core/loader/resource/script_resource.h"
#include "third_party/blink/renderer/core/loader/subresource_integrity_helper.h"
#include "third_party/blink/renderer/core/loader/url_matcher.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/script/document_write_intervention.h"
#include "third_party/blink/renderer/core/script/script_loader.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
#include "third_party/blink/renderer/platform/instrumentation/histogram.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/loader/allowed_by_nosniff.h"
#include "third_party/blink/renderer/platform/loader/fetch/cached_metadata.h"
#include "third_party/blink/renderer/platform/loader/fetch/detachable_use_counter.h"
#include "third_party/blink/renderer/platform/loader/fetch/memory_cache.h"
#include "third_party/blink/renderer/platform/loader/fetch/raw_resource.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_client.h"
#include "third_party/blink/renderer/platform/loader/fetch/resource_fetcher.h"
#include "third_party/blink/renderer/platform/wtf/functional.h"
namespace blink {
namespace {
InlineScriptStreamer* GetInlineScriptStreamer(const String& source,
Document& document) { … }
}
ClassicPendingScript* ClassicPendingScript::Fetch(
const KURL& url,
Document& element_document,
const ScriptFetchOptions& options,
CrossOriginAttributeValue cross_origin,
const WTF::TextEncoding& encoding,
ScriptElementBase* element,
FetchParameters::DeferOption defer,
scheduler::TaskAttributionInfo* parent_task) { … }
ClassicPendingScript* ClassicPendingScript::CreateInline(
ScriptElementBase* element,
const TextPosition& starting_position,
const KURL& source_url,
const KURL& base_url,
const String& source_text,
ScriptSourceLocationType source_location_type,
const ScriptFetchOptions& options,
scheduler::TaskAttributionInfo* parent_task) { … }
ClassicPendingScript::ClassicPendingScript(
ScriptElementBase* element,
const TextPosition& starting_position,
const KURL& source_url_for_inline_script,
const KURL& base_url_for_inline_script,
const String& source_text_for_inline_script,
ScriptSourceLocationType source_location_type,
const ScriptFetchOptions& options,
bool is_external,
scheduler::TaskAttributionInfo* parent_task)
: … { … }
ClassicPendingScript::~ClassicPendingScript() = default;
NOINLINE void ClassicPendingScript::CheckState() const { … }
void ClassicPendingScript::RecordThirdPartyRequestWithCookieIfNeeded(
const ResourceResponse& response) const { … }
void ClassicPendingScript::DisposeInternal() { … }
bool ClassicPendingScript::IsEligibleForLowPriorityAsyncScriptExecution()
const { … }
void ClassicPendingScript::NotifyFinished(Resource* resource) { … }
void ClassicPendingScript::NotifyCacheConsumeFinished() { … }
void ClassicPendingScript::Trace(Visitor* visitor) const { … }
ClassicScript* ClassicPendingScript::GetSource() const { … }
bool ClassicPendingScript::StateIsReady(ReadyState state) { … }
bool ClassicPendingScript::IsReady() const { … }
void ClassicPendingScript::AdvanceReadyState(ReadyState new_ready_state) { … }
bool ClassicPendingScript::WasCanceled() const { … }
KURL ClassicPendingScript::UrlForTracing() const { … }
}