Skip to main content

cdp_protocol/
preload.rs

1// Auto-generated from Chrome at version 146.0.7680.165 domain: Preload
2#![allow(dead_code)]
3use super::dom;
4use super::network;
5#[allow(unused_imports)]
6use super::types::*;
7#[allow(unused_imports)]
8use derive_builder::Builder;
9#[allow(unused_imports)]
10use serde::{Deserialize, Serialize};
11#[allow(unused_imports)]
12use serde_json::Value as Json;
13pub type RuleSetId = String;
14pub type PreloadPipelineId = String;
15#[allow(deprecated)]
16#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
17pub enum RuleSetErrorType {
18    #[serde(rename = "SourceIsNotJsonObject")]
19    SourceIsNotJsonObject,
20    #[serde(rename = "InvalidRulesSkipped")]
21    InvalidRulesSkipped,
22    #[serde(rename = "InvalidRulesetLevelTag")]
23    InvalidRulesetLevelTag,
24}
25#[allow(deprecated)]
26#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
27pub enum SpeculationAction {
28    #[serde(rename = "Prefetch")]
29    Prefetch,
30    #[serde(rename = "Prerender")]
31    Prerender,
32    #[serde(rename = "PrerenderUntilScript")]
33    PrerenderUntilScript,
34}
35#[allow(deprecated)]
36#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
37pub enum SpeculationTargetHint {
38    #[serde(rename = "Blank")]
39    Blank,
40    #[serde(rename = "Self")]
41    CdpSelf,
42}
43#[allow(deprecated)]
44#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
45pub enum PrerenderFinalStatus {
46    #[serde(rename = "Activated")]
47    Activated,
48    #[serde(rename = "Destroyed")]
49    Destroyed,
50    #[serde(rename = "LowEndDevice")]
51    LowEndDevice,
52    #[serde(rename = "InvalidSchemeRedirect")]
53    InvalidSchemeRedirect,
54    #[serde(rename = "InvalidSchemeNavigation")]
55    InvalidSchemeNavigation,
56    #[serde(rename = "NavigationRequestBlockedByCsp")]
57    NavigationRequestBlockedByCsp,
58    #[serde(rename = "MojoBinderPolicy")]
59    MojoBinderPolicy,
60    #[serde(rename = "RendererProcessCrashed")]
61    RendererProcessCrashed,
62    #[serde(rename = "RendererProcessKilled")]
63    RendererProcessKilled,
64    #[serde(rename = "Download")]
65    Download,
66    #[serde(rename = "TriggerDestroyed")]
67    TriggerDestroyed,
68    #[serde(rename = "NavigationNotCommitted")]
69    NavigationNotCommitted,
70    #[serde(rename = "NavigationBadHttpStatus")]
71    NavigationBadHttpStatus,
72    #[serde(rename = "ClientCertRequested")]
73    ClientCertRequested,
74    #[serde(rename = "NavigationRequestNetworkError")]
75    NavigationRequestNetworkError,
76    #[serde(rename = "CancelAllHostsForTesting")]
77    CancelAllHostsForTesting,
78    #[serde(rename = "DidFailLoad")]
79    DidFailLoad,
80    #[serde(rename = "Stop")]
81    Stop,
82    #[serde(rename = "SslCertificateError")]
83    SslCertificateError,
84    #[serde(rename = "LoginAuthRequested")]
85    LoginAuthRequested,
86    #[serde(rename = "UaChangeRequiresReload")]
87    UaChangeRequiresReload,
88    #[serde(rename = "BlockedByClient")]
89    BlockedByClient,
90    #[serde(rename = "AudioOutputDeviceRequested")]
91    AudioOutputDeviceRequested,
92    #[serde(rename = "MixedContent")]
93    MixedContent,
94    #[serde(rename = "TriggerBackgrounded")]
95    TriggerBackgrounded,
96    #[serde(rename = "MemoryLimitExceeded")]
97    MemoryLimitExceeded,
98    #[serde(rename = "DataSaverEnabled")]
99    DataSaverEnabled,
100    #[serde(rename = "TriggerUrlHasEffectiveUrl")]
101    TriggerUrlHasEffectiveUrl,
102    #[serde(rename = "ActivatedBeforeStarted")]
103    ActivatedBeforeStarted,
104    #[serde(rename = "InactivePageRestriction")]
105    InactivePageRestriction,
106    #[serde(rename = "StartFailed")]
107    StartFailed,
108    #[serde(rename = "TimeoutBackgrounded")]
109    TimeoutBackgrounded,
110    #[serde(rename = "CrossSiteRedirectInInitialNavigation")]
111    CrossSiteRedirectInInitialNavigation,
112    #[serde(rename = "CrossSiteNavigationInInitialNavigation")]
113    CrossSiteNavigationInInitialNavigation,
114    #[serde(rename = "SameSiteCrossOriginRedirectNotOptInInInitialNavigation")]
115    SameSiteCrossOriginRedirectNotOptInInInitialNavigation,
116    #[serde(rename = "SameSiteCrossOriginNavigationNotOptInInInitialNavigation")]
117    SameSiteCrossOriginNavigationNotOptInInInitialNavigation,
118    #[serde(rename = "ActivationNavigationParameterMismatch")]
119    ActivationNavigationParameterMismatch,
120    #[serde(rename = "ActivatedInBackground")]
121    ActivatedInBackground,
122    #[serde(rename = "EmbedderHostDisallowed")]
123    EmbedderHostDisallowed,
124    #[serde(rename = "ActivationNavigationDestroyedBeforeSuccess")]
125    ActivationNavigationDestroyedBeforeSuccess,
126    #[serde(rename = "TabClosedByUserGesture")]
127    TabClosedByUserGesture,
128    #[serde(rename = "TabClosedWithoutUserGesture")]
129    TabClosedWithoutUserGesture,
130    #[serde(rename = "PrimaryMainFrameRendererProcessCrashed")]
131    PrimaryMainFrameRendererProcessCrashed,
132    #[serde(rename = "PrimaryMainFrameRendererProcessKilled")]
133    PrimaryMainFrameRendererProcessKilled,
134    #[serde(rename = "ActivationFramePolicyNotCompatible")]
135    ActivationFramePolicyNotCompatible,
136    #[serde(rename = "PreloadingDisabled")]
137    PreloadingDisabled,
138    #[serde(rename = "BatterySaverEnabled")]
139    BatterySaverEnabled,
140    #[serde(rename = "ActivatedDuringMainFrameNavigation")]
141    ActivatedDuringMainFrameNavigation,
142    #[serde(rename = "PreloadingUnsupportedByWebContents")]
143    PreloadingUnsupportedByWebContents,
144    #[serde(rename = "CrossSiteRedirectInMainFrameNavigation")]
145    CrossSiteRedirectInMainFrameNavigation,
146    #[serde(rename = "CrossSiteNavigationInMainFrameNavigation")]
147    CrossSiteNavigationInMainFrameNavigation,
148    #[serde(rename = "SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation")]
149    SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation,
150    #[serde(rename = "SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation")]
151    SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation,
152    #[serde(rename = "MemoryPressureOnTrigger")]
153    MemoryPressureOnTrigger,
154    #[serde(rename = "MemoryPressureAfterTriggered")]
155    MemoryPressureAfterTriggered,
156    #[serde(rename = "PrerenderingDisabledByDevTools")]
157    PrerenderingDisabledByDevTools,
158    #[serde(rename = "SpeculationRuleRemoved")]
159    SpeculationRuleRemoved,
160    #[serde(rename = "ActivatedWithAuxiliaryBrowsingContexts")]
161    ActivatedWithAuxiliaryBrowsingContexts,
162    #[serde(rename = "MaxNumOfRunningEagerPrerendersExceeded")]
163    MaxNumOfRunningEagerPrerendersExceeded,
164    #[serde(rename = "MaxNumOfRunningNonEagerPrerendersExceeded")]
165    MaxNumOfRunningNonEagerPrerendersExceeded,
166    #[serde(rename = "MaxNumOfRunningEmbedderPrerendersExceeded")]
167    MaxNumOfRunningEmbedderPrerendersExceeded,
168    #[serde(rename = "PrerenderingUrlHasEffectiveUrl")]
169    PrerenderingUrlHasEffectiveUrl,
170    #[serde(rename = "RedirectedPrerenderingUrlHasEffectiveUrl")]
171    RedirectedPrerenderingUrlHasEffectiveUrl,
172    #[serde(rename = "ActivationUrlHasEffectiveUrl")]
173    ActivationUrlHasEffectiveUrl,
174    #[serde(rename = "JavaScriptInterfaceAdded")]
175    JavaScriptInterfaceAdded,
176    #[serde(rename = "JavaScriptInterfaceRemoved")]
177    JavaScriptInterfaceRemoved,
178    #[serde(rename = "AllPrerenderingCanceled")]
179    AllPrerenderingCanceled,
180    #[serde(rename = "WindowClosed")]
181    WindowClosed,
182    #[serde(rename = "SlowNetwork")]
183    SlowNetwork,
184    #[serde(rename = "OtherPrerenderedPageActivated")]
185    OtherPrerenderedPageActivated,
186    #[serde(rename = "V8OptimizerDisabled")]
187    V8OptimizerDisabled,
188    #[serde(rename = "PrerenderFailedDuringPrefetch")]
189    PrerenderFailedDuringPrefetch,
190    #[serde(rename = "BrowsingDataRemoved")]
191    BrowsingDataRemoved,
192    #[serde(rename = "PrerenderHostReused")]
193    PrerenderHostReused,
194}
195#[allow(deprecated)]
196#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
197pub enum PreloadingStatus {
198    #[serde(rename = "Pending")]
199    Pending,
200    #[serde(rename = "Running")]
201    Running,
202    #[serde(rename = "Ready")]
203    Ready,
204    #[serde(rename = "Success")]
205    Success,
206    #[serde(rename = "Failure")]
207    Failure,
208    #[serde(rename = "NotSupported")]
209    NotSupported,
210}
211#[allow(deprecated)]
212#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
213pub enum PrefetchStatus {
214    #[serde(rename = "PrefetchAllowed")]
215    PrefetchAllowed,
216    #[serde(rename = "PrefetchFailedIneligibleRedirect")]
217    PrefetchFailedIneligibleRedirect,
218    #[serde(rename = "PrefetchFailedInvalidRedirect")]
219    PrefetchFailedInvalidRedirect,
220    #[serde(rename = "PrefetchFailedMIMENotSupported")]
221    PrefetchFailedMimeNotSupported,
222    #[serde(rename = "PrefetchFailedNetError")]
223    PrefetchFailedNetError,
224    #[serde(rename = "PrefetchFailedNon2XX")]
225    PrefetchFailedNon2Xx,
226    #[serde(rename = "PrefetchEvictedAfterBrowsingDataRemoved")]
227    PrefetchEvictedAfterBrowsingDataRemoved,
228    #[serde(rename = "PrefetchEvictedAfterCandidateRemoved")]
229    PrefetchEvictedAfterCandidateRemoved,
230    #[serde(rename = "PrefetchEvictedForNewerPrefetch")]
231    PrefetchEvictedForNewerPrefetch,
232    #[serde(rename = "PrefetchHeldback")]
233    PrefetchHeldback,
234    #[serde(rename = "PrefetchIneligibleRetryAfter")]
235    PrefetchIneligibleRetryAfter,
236    #[serde(rename = "PrefetchIsPrivacyDecoy")]
237    PrefetchIsPrivacyDecoy,
238    #[serde(rename = "PrefetchIsStale")]
239    PrefetchIsStale,
240    #[serde(rename = "PrefetchNotEligibleBrowserContextOffTheRecord")]
241    PrefetchNotEligibleBrowserContextOffTheRecord,
242    #[serde(rename = "PrefetchNotEligibleDataSaverEnabled")]
243    PrefetchNotEligibleDataSaverEnabled,
244    #[serde(rename = "PrefetchNotEligibleExistingProxy")]
245    PrefetchNotEligibleExistingProxy,
246    #[serde(rename = "PrefetchNotEligibleHostIsNonUnique")]
247    PrefetchNotEligibleHostIsNonUnique,
248    #[serde(rename = "PrefetchNotEligibleNonDefaultStoragePartition")]
249    PrefetchNotEligibleNonDefaultStoragePartition,
250    #[serde(rename = "PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy")]
251    PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy,
252    #[serde(rename = "PrefetchNotEligibleSchemeIsNotHttps")]
253    PrefetchNotEligibleSchemeIsNotHttps,
254    #[serde(rename = "PrefetchNotEligibleUserHasCookies")]
255    PrefetchNotEligibleUserHasCookies,
256    #[serde(rename = "PrefetchNotEligibleUserHasServiceWorker")]
257    PrefetchNotEligibleUserHasServiceWorker,
258    #[serde(rename = "PrefetchNotEligibleUserHasServiceWorkerNoFetchHandler")]
259    PrefetchNotEligibleUserHasServiceWorkerNoFetchHandler,
260    #[serde(rename = "PrefetchNotEligibleRedirectFromServiceWorker")]
261    PrefetchNotEligibleRedirectFromServiceWorker,
262    #[serde(rename = "PrefetchNotEligibleRedirectToServiceWorker")]
263    PrefetchNotEligibleRedirectToServiceWorker,
264    #[serde(rename = "PrefetchNotEligibleBatterySaverEnabled")]
265    PrefetchNotEligibleBatterySaverEnabled,
266    #[serde(rename = "PrefetchNotEligiblePreloadingDisabled")]
267    PrefetchNotEligiblePreloadingDisabled,
268    #[serde(rename = "PrefetchNotFinishedInTime")]
269    PrefetchNotFinishedInTime,
270    #[serde(rename = "PrefetchNotStarted")]
271    PrefetchNotStarted,
272    #[serde(rename = "PrefetchNotUsedCookiesChanged")]
273    PrefetchNotUsedCookiesChanged,
274    #[serde(rename = "PrefetchProxyNotAvailable")]
275    PrefetchProxyNotAvailable,
276    #[serde(rename = "PrefetchResponseUsed")]
277    PrefetchResponseUsed,
278    #[serde(rename = "PrefetchSuccessfulButNotUsed")]
279    PrefetchSuccessfulButNotUsed,
280    #[serde(rename = "PrefetchNotUsedProbeFailed")]
281    PrefetchNotUsedProbeFailed,
282}
283#[allow(deprecated)]
284#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
285#[builder(setter(into, strip_option))]
286#[serde(rename_all = "camelCase")]
287#[doc = "Corresponds to SpeculationRuleSet"]
288pub struct RuleSet {
289    pub id: RuleSetId,
290    #[doc = "Identifies a document which the rule set is associated with."]
291    pub loader_id: network::LoaderId,
292    #[serde(default)]
293    #[doc = "Source text of JSON representing the rule set. If it comes from\n `\\<script\\>` tag, it is the textContent of the node. Note that it is\n a JSON for valid case.\n \n See also:\n - <https://wicg.github.io/nav-speculation/speculation-rules.html>\n - <https://github.com/WICG/nav-speculation/blob/main/triggers.md>"]
294    pub source_text: String,
295    #[builder(default)]
296    #[serde(skip_serializing_if = "Option::is_none")]
297    #[doc = "A speculation rule set is either added through an inline\n `\\<script\\>` tag or through an external resource via the\n 'Speculation-Rules' HTTP header. For the first case, we include\n the BackendNodeId of the relevant `\\<script\\>` tag. For the second\n case, we include the external URL where the rule set was loaded\n from, and also RequestId if Network domain is enabled.\n \n See also:\n - <https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-script>\n - <https://wicg.github.io/nav-speculation/speculation-rules.html#speculation-rules-header>"]
298    pub backend_node_id: Option<dom::BackendNodeId>,
299    #[builder(default)]
300    #[serde(skip_serializing_if = "Option::is_none")]
301    #[serde(default)]
302    pub url: Option<String>,
303    #[builder(default)]
304    #[serde(skip_serializing_if = "Option::is_none")]
305    pub request_id: Option<network::RequestId>,
306    #[builder(default)]
307    #[serde(skip_serializing_if = "Option::is_none")]
308    #[doc = "Error information\n `errorMessage` is null iff `errorType` is null."]
309    pub error_type: Option<RuleSetErrorType>,
310    #[builder(default)]
311    #[serde(skip_serializing_if = "Option::is_none")]
312    #[serde(default)]
313    #[doc = "TODO(<https://crbug.com/1425354>): Replace this property with structured error."]
314    #[deprecated]
315    pub error_message: Option<String>,
316    #[builder(default)]
317    #[serde(skip_serializing_if = "Option::is_none")]
318    #[serde(default)]
319    #[doc = "For more details, see:\n <https://github.com/WICG/nav-speculation/blob/main/speculation-rules-tags.md>"]
320    pub tag: Option<String>,
321}
322#[allow(deprecated)]
323#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
324#[builder(setter(into, strip_option))]
325#[serde(rename_all = "camelCase")]
326#[doc = "A key that identifies a preloading attempt.\n \n The url used is the url specified by the trigger (i.e. the initial URL), and\n not the final url that is navigated to. For example, prerendering allows\n same-origin main frame navigations during the attempt, but the attempt is\n still keyed with the initial URL."]
327pub struct PreloadingAttemptKey {
328    pub loader_id: network::LoaderId,
329    pub action: SpeculationAction,
330    #[serde(default)]
331    pub url: String,
332    #[builder(default)]
333    #[serde(skip_serializing_if = "Option::is_none")]
334    pub target_hint: Option<SpeculationTargetHint>,
335}
336#[allow(deprecated)]
337#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
338#[builder(setter(into, strip_option))]
339#[serde(rename_all = "camelCase")]
340#[doc = "Lists sources for a preloading attempt, specifically the ids of rule sets\n that had a speculation rule that triggered the attempt, and the\n BackendNodeIds of \\<a href\\> or \\<area href\\> elements that triggered the\n attempt (in the case of attempts triggered by a document rule). It is\n possible for multiple rule sets and links to trigger a single attempt."]
341pub struct PreloadingAttemptSource {
342    pub key: PreloadingAttemptKey,
343    pub rule_set_ids: Vec<RuleSetId>,
344    pub node_ids: Vec<dom::BackendNodeId>,
345}
346#[allow(deprecated)]
347#[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
348#[builder(setter(into, strip_option))]
349#[serde(rename_all = "camelCase")]
350#[doc = "Information of headers to be displayed when the header mismatch occurred."]
351pub struct PrerenderMismatchedHeaders {
352    #[serde(default)]
353    pub header_name: String,
354    #[builder(default)]
355    #[serde(skip_serializing_if = "Option::is_none")]
356    #[serde(default)]
357    pub initial_value: Option<String>,
358    #[builder(default)]
359    #[serde(skip_serializing_if = "Option::is_none")]
360    #[serde(default)]
361    pub activation_value: Option<String>,
362}
363#[allow(deprecated)]
364#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
365pub struct Enable(pub Option<Json>);
366#[allow(deprecated)]
367#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
368pub struct Disable(pub Option<Json>);
369#[allow(deprecated)]
370#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
371pub struct EnableReturnObject(pub Option<Json>);
372#[allow(deprecated)]
373#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
374pub struct DisableReturnObject(pub Option<Json>);
375#[allow(deprecated)]
376impl Method for Enable {
377    const NAME: &'static str = "Preload.enable";
378    type ReturnObject = EnableReturnObject;
379}
380#[allow(deprecated)]
381impl Method for Disable {
382    const NAME: &'static str = "Preload.disable";
383    type ReturnObject = DisableReturnObject;
384}
385#[allow(dead_code)]
386pub mod events {
387    #[allow(unused_imports)]
388    use super::super::types::*;
389    #[allow(unused_imports)]
390    use derive_builder::Builder;
391    #[allow(unused_imports)]
392    use serde::{Deserialize, Serialize};
393    #[allow(unused_imports)]
394    use serde_json::Value as Json;
395    #[allow(deprecated)]
396    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
397    pub struct RuleSetUpdatedEvent {
398        pub params: RuleSetUpdatedEventParams,
399    }
400    #[allow(deprecated)]
401    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
402    #[serde(rename_all = "camelCase")]
403    pub struct RuleSetUpdatedEventParams {
404        pub rule_set: super::RuleSet,
405    }
406    #[allow(deprecated)]
407    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
408    pub struct RuleSetRemovedEvent {
409        pub params: RuleSetRemovedEventParams,
410    }
411    #[allow(deprecated)]
412    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
413    #[serde(rename_all = "camelCase")]
414    pub struct RuleSetRemovedEventParams {
415        pub id: super::RuleSetId,
416    }
417    #[allow(deprecated)]
418    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
419    pub struct PreloadEnabledStateUpdatedEvent {
420        pub params: PreloadEnabledStateUpdatedEventParams,
421    }
422    #[allow(deprecated)]
423    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
424    #[serde(rename_all = "camelCase")]
425    pub struct PreloadEnabledStateUpdatedEventParams {
426        #[serde(default)]
427        pub disabled_by_preference: bool,
428        #[serde(default)]
429        pub disabled_by_data_saver: bool,
430        #[serde(default)]
431        pub disabled_by_battery_saver: bool,
432        #[serde(default)]
433        pub disabled_by_holdback_prefetch_speculation_rules: bool,
434        #[serde(default)]
435        pub disabled_by_holdback_prerender_speculation_rules: bool,
436    }
437    #[allow(deprecated)]
438    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
439    pub struct PrefetchStatusUpdatedEvent {
440        pub params: PrefetchStatusUpdatedEventParams,
441    }
442    #[allow(deprecated)]
443    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
444    #[serde(rename_all = "camelCase")]
445    pub struct PrefetchStatusUpdatedEventParams {
446        pub key: super::PreloadingAttemptKey,
447        pub pipeline_id: super::PreloadPipelineId,
448        #[doc = "The frame id of the frame initiating prefetch."]
449        pub initiating_frame_id: super::super::page::FrameId,
450        #[serde(default)]
451        pub prefetch_url: String,
452        pub status: super::PreloadingStatus,
453        pub prefetch_status: super::PrefetchStatus,
454        pub request_id: super::super::network::RequestId,
455    }
456    #[allow(deprecated)]
457    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
458    pub struct PrerenderStatusUpdatedEvent {
459        pub params: PrerenderStatusUpdatedEventParams,
460    }
461    #[allow(deprecated)]
462    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
463    #[serde(rename_all = "camelCase")]
464    pub struct PrerenderStatusUpdatedEventParams {
465        pub key: super::PreloadingAttemptKey,
466        pub pipeline_id: super::PreloadPipelineId,
467        pub status: super::PreloadingStatus,
468        #[builder(default)]
469        #[serde(skip_serializing_if = "Option::is_none")]
470        pub prerender_status: Option<super::PrerenderFinalStatus>,
471        #[builder(default)]
472        #[serde(skip_serializing_if = "Option::is_none")]
473        #[serde(default)]
474        #[doc = "This is used to give users more information about the name of Mojo interface\n that is incompatible with prerender and has caused the cancellation of the attempt."]
475        pub disallowed_mojo_interface: Option<String>,
476        #[builder(default)]
477        #[serde(skip_serializing_if = "Option::is_none")]
478        pub mismatched_headers: Option<Vec<super::PrerenderMismatchedHeaders>>,
479    }
480    #[allow(deprecated)]
481    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
482    pub struct PreloadingAttemptSourcesUpdatedEvent {
483        pub params: PreloadingAttemptSourcesUpdatedEventParams,
484    }
485    #[allow(deprecated)]
486    #[derive(Deserialize, Serialize, Debug, Clone, PartialEq, Builder)]
487    #[serde(rename_all = "camelCase")]
488    pub struct PreloadingAttemptSourcesUpdatedEventParams {
489        pub loader_id: super::super::network::LoaderId,
490        pub preloading_attempt_sources: Vec<super::PreloadingAttemptSource>,
491    }
492}