1#![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}