Chrome DevTools Protocol

Methods

Preload.disable

Preload.enable

Events

Preload.prefetchStatusUpdated

Fired when a prefetch attempt is updated.

parameters
key
PreloadingAttemptKey
pipelineId
PreloadPipelineId
initiatingFrameId
Page.FrameId

The frame id of the frame initiating prefetch.

prefetchUrl
string
status
PreloadingStatus
prefetchStatus
PrefetchStatus
requestId
Network.RequestId

Preload.preloadEnabledStateUpdated

Fired when a preload enabled state is updated.

parameters
disabledByPreference
boolean
disabledByDataSaver
boolean
disabledByBatterySaver
boolean
disabledByHoldbackPrefetchSpeculationRules
boolean
disabledByHoldbackPrerenderSpeculationRules
boolean

Preload.preloadingAttemptSourcesUpdated

Send a list of sources for all preloading attempts in a document.

parameters
loaderId
Network.LoaderId
preloadingAttemptSources
array[ PreloadingAttemptSource ]

Preload.prerenderStatusUpdated

Fired when a prerender attempt is updated.

parameters
key
PreloadingAttemptKey
pipelineId
PreloadPipelineId
status
PreloadingStatus
prerenderStatus
PrerenderFinalStatus
disallowedMojoInterface
string

This is used to give users more information about the name of Mojo interface that is incompatible with prerender and has caused the cancellation of the attempt.

mismatchedHeaders
array[ PrerenderMismatchedHeaders ]

Preload.ruleSetRemoved

parameters
id
RuleSetId

Preload.ruleSetUpdated

Upsert. Currently, it is only emitted when a rule set added.

parameters
ruleSet
RuleSet

Types

Preload.PrefetchStatus

TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and filter out the ones that aren't necessary to the developers.

Allowed Values: PrefetchAllowed, PrefetchFailedIneligibleRedirect, PrefetchFailedInvalidRedirect, PrefetchFailedMIMENotSupported, PrefetchFailedNetError, PrefetchFailedNon2XX, PrefetchEvictedAfterCandidateRemoved, PrefetchEvictedForNewerPrefetch, PrefetchHeldback, PrefetchIneligibleRetryAfter, PrefetchIsPrivacyDecoy, PrefetchIsStale, PrefetchNotEligibleBrowserContextOffTheRecord, PrefetchNotEligibleDataSaverEnabled, PrefetchNotEligibleExistingProxy, PrefetchNotEligibleHostIsNonUnique, PrefetchNotEligibleNonDefaultStoragePartition, PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy, PrefetchNotEligibleSchemeIsNotHttps, PrefetchNotEligibleUserHasCookies, PrefetchNotEligibleUserHasServiceWorker, PrefetchNotEligibleBatterySaverEnabled, PrefetchNotEligiblePreloadingDisabled, PrefetchNotFinishedInTime, PrefetchNotStarted, PrefetchNotUsedCookiesChanged, PrefetchProxyNotAvailable, PrefetchResponseUsed, PrefetchSuccessfulButNotUsed, PrefetchNotUsedProbeFailed

Type: string

Preload.PreloadingAttemptKey

A key that identifies a preloading attempt.

The url used is the url specified by the trigger (i.e. the initial URL), and not the final url that is navigated to. For example, prerendering allows same-origin main frame navigations during the attempt, but the attempt is still keyed with the initial URL.

Type: object

properties
loaderId
Network.LoaderId
action
SpeculationAction
url
string
targetHint
SpeculationTargetHint

Preload.PreloadingAttemptSource

Lists sources for a preloading attempt, specifically the ids of rule sets that had a speculation rule that triggered the attempt, and the BackendNodeIds of <a href> or <area href> elements that triggered the attempt (in the case of attempts triggered by a document rule). It is possible for multiple rule sets and links to trigger a single attempt.

Type: object

properties
key
PreloadingAttemptKey
ruleSetIds
array[ RuleSetId ]
nodeIds
array[ DOM.BackendNodeId ]

Preload.PreloadingStatus

Preloading status values, see also PreloadingTriggeringOutcome. This status is shared by prefetchStatusUpdated and prerenderStatusUpdated.

Allowed Values: Pending, Running, Ready, Success, Failure, NotSupported

Type: string

Preload.PreloadPipelineId

Chrome manages different types of preloads together using a concept of preloading pipeline. For example, if a site uses a SpeculationRules for prerender, Chrome first starts a prefetch and then upgrades it to prerender.

CDP events for them are emitted separately but they share PreloadPipelineId.

Type: string

Preload.PrerenderFinalStatus

List of FinalStatus reasons for Prerender2.

Allowed Values: Activated, Destroyed, LowEndDevice, InvalidSchemeRedirect, InvalidSchemeNavigation, NavigationRequestBlockedByCsp, MainFrameNavigation, MojoBinderPolicy, RendererProcessCrashed, RendererProcessKilled, Download, TriggerDestroyed, NavigationNotCommitted, NavigationBadHttpStatus, ClientCertRequested, NavigationRequestNetworkError, CancelAllHostsForTesting, DidFailLoad, Stop, SslCertificateError, LoginAuthRequested, UaChangeRequiresReload, BlockedByClient, AudioOutputDeviceRequested, MixedContent, TriggerBackgrounded, MemoryLimitExceeded, DataSaverEnabled, TriggerUrlHasEffectiveUrl, ActivatedBeforeStarted, InactivePageRestriction, StartFailed, TimeoutBackgrounded, CrossSiteRedirectInInitialNavigation, CrossSiteNavigationInInitialNavigation, SameSiteCrossOriginRedirectNotOptInInInitialNavigation, SameSiteCrossOriginNavigationNotOptInInInitialNavigation, ActivationNavigationParameterMismatch, ActivatedInBackground, EmbedderHostDisallowed, ActivationNavigationDestroyedBeforeSuccess, TabClosedByUserGesture, TabClosedWithoutUserGesture, PrimaryMainFrameRendererProcessCrashed, PrimaryMainFrameRendererProcessKilled, ActivationFramePolicyNotCompatible, PreloadingDisabled, BatterySaverEnabled, ActivatedDuringMainFrameNavigation, PreloadingUnsupportedByWebContents, CrossSiteRedirectInMainFrameNavigation, CrossSiteNavigationInMainFrameNavigation, SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation, SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation, MemoryPressureOnTrigger, MemoryPressureAfterTriggered, PrerenderingDisabledByDevTools, SpeculationRuleRemoved, ActivatedWithAuxiliaryBrowsingContexts, MaxNumOfRunningEagerPrerendersExceeded, MaxNumOfRunningNonEagerPrerendersExceeded, MaxNumOfRunningEmbedderPrerendersExceeded, PrerenderingUrlHasEffectiveUrl, RedirectedPrerenderingUrlHasEffectiveUrl, ActivationUrlHasEffectiveUrl, JavaScriptInterfaceAdded, JavaScriptInterfaceRemoved, AllPrerenderingCanceled, WindowClosed, SlowNetwork, OtherPrerenderedPageActivated, V8OptimizerDisabled, PrerenderFailedDuringPrefetch

Type: string

Preload.PrerenderMismatchedHeaders

Information of headers to be displayed when the header mismatch occurred.

Type: object

properties
headerName
string
initialValue
string
activationValue
string

Preload.RuleSet

Corresponds to SpeculationRuleSet

Type: object

properties
id
RuleSetId
loaderId
Network.LoaderId

Identifies a document which the rule set is associated with.

sourceText
string

Source text of JSON representing the rule set. If it comes from <script> tag, it is the textContent of the node. Note that it is a JSON for valid case.

See also:

backendNodeId
DOM.BackendNodeId

A speculation rule set is either added through an inline <script> tag or through an external resource via the 'Speculation-Rules' HTTP header. For the first case, we include the BackendNodeId of the relevant <script> tag. For the second case, we include the external URL where the rule set was loaded from, and also RequestId if Network domain is enabled.

See also:

url
string
requestId
Network.RequestId
errorType
RuleSetErrorType

Error information errorMessage is null iff errorType is null.

errorMessage
string

TODO(https://crbug.com/1425354): Replace this property with structured error.

Deprecated

Preload.RuleSetErrorType

Allowed Values: SourceIsNotJsonObject, InvalidRulesSkipped

Type: string

Preload.RuleSetId

Unique id

Type: string

Preload.SpeculationAction

The type of preloading attempted. It corresponds to mojom::SpeculationAction (although PrefetchWithSubresources is omitted as it isn't being used by clients).

Allowed Values: Prefetch, Prerender

Type: string

Preload.SpeculationTargetHint

Corresponds to mojom::SpeculationTargetHint. See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints

Allowed Values: Blank, Self

Type: string