U
    gO                     @  s  d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ ddl	mZ G d	d
 d
eZeG dd dZG dd dejZG dd dejZG dd dejZeG dd dZeG dd dZG dd dejZG dd dejZG dd dejZeG dd dZdd d!d"Zdd d#d$Zed%eG d&d' d'Zed(eG d)d* d*Zed+eG d,d- d-Zed.eG d/d0 d0Zed1eG d2d3 d3Z ed4eG d5d6 d6Z!dS )7    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)pagec                      sB   e Zd ZdZddddZedd dddZ fd	d
Z  ZS )	RuleSetIdz
    Unique id
    strreturnc                 C  s   | S N selfr   r   S/tmp/pip-unpacked-wheel-3ysq0mf8/selenium/webdriver/common/devtools/v129/preload.pyto_json   s    zRuleSetId.to_jsonjsonr   c                 C  s   | |S r   r   clsr   r   r   r   	from_json   s    zRuleSetId.from_jsonc                   s   d t  S )NzRuleSetId({}))formatsuper__repr__r   	__class__r   r   r      s    zRuleSetId.__repr__)	__name__
__module____qualname____doc__r   classmethodr   r   __classcell__r   r   r   r   r
      s
   r
   c                   @  sz   e Zd ZU dZded< ded< ded< dZd	ed
< dZded< dZded< dZded< dZ	ded< dd Z
edd ZdS )RuleSetz+
    Corresponds to SpeculationRuleSet
    r
   id_network.LoaderId	loader_idr   source_textNz"typing.Optional[dom.BackendNodeId]backend_node_idtyping.Optional[str]urlz"typing.Optional[network.RequestId]
request_idz!typing.Optional[RuleSetErrorType]
error_typeerror_messagec                 C  s   t  }| j |d< | j |d< | j|d< | jd k	rD| j |d< | jd k	rX| j|d< | jd k	rp| j |d< | jd k	r| j |d< | j	d k	r| j	|d< |S )	NidloaderId
sourceTextbackendNodeIdr+   	requestId	errorTypeerrorMessage)
dictr%   r   r'   r(   r)   r+   r,   r-   r.   r   r   r   r   r   r   J   s    







zRuleSet.to_jsonc                 C  s   | t |d tj|d t|d d|kr>tj|d nd d|krTt|d nd d|krntj|d nd d|krt|d nd d|krt|d nd d	S )
Nr/   r0   r1   r2   r+   r3   r4   r5   )r%   r'   r(   r)   r+   r,   r-   r.   )	r
   r   r   LoaderIdr   r   BackendNodeId	RequestIdRuleSetErrorTyper   r   r   r   r   [   s    
zRuleSet.from_json)r   r   r    r!   __annotations__r)   r+   r,   r-   r.   r   r"   r   r   r   r   r   r$       s   
	r$   c                   @  s(   e Zd ZdZdZdd Zedd ZdS )r;   ZSourceIsNotJsonObjectZInvalidRulesSkippedc                 C  s   | j S r   valuer   r   r   r   r   m   s    zRuleSetErrorType.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   p   s    zRuleSetErrorType.from_jsonN)r   r   r    ZSOURCE_IS_NOT_JSON_OBJECTZINVALID_RULES_SKIPPEDr   r"   r   r   r   r   r   r;   i   s
   r;   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	SpeculationActionz
    The type of preloading attempted. It corresponds to
    mojom::SpeculationAction (although PrefetchWithSubresources is omitted as it
    isn't being used by clients).
    ZPrefetchZ	Prerenderc                 C  s   | j S r   r=   r   r   r   r   r   ~   s    zSpeculationAction.to_jsonc                 C  s   | |S r   r   r   r   r   r   r      s    zSpeculationAction.from_jsonN)	r   r   r    r!   ZPREFETCHZ	PRERENDERr   r"   r   r   r   r   r   r?   u   s   r?   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	SpeculationTargetHintz
    Corresponds to mojom::SpeculationTargetHint.
    See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
    ZBlankZSelfc                 C  s   | j S r   r=   r   r   r   r   r      s    zSpeculationTargetHint.to_jsonc                 C  s   | |S r   r   r   r   r   r   r      s    zSpeculationTargetHint.from_jsonN)	r   r   r    r!   ZBLANKZSELFr   r"   r   r   r   r   r   r@      s   r@   c                   @  sJ   e Zd ZU dZded< ded< ded< dZd	ed
< dd Zedd ZdS )PreloadingAttemptKeyaH  
    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.
    r&   r'   r?   actionr   r+   Nz&typing.Optional[SpeculationTargetHint]target_hintc                 C  sH   t  }| j |d< | j |d< | j|d< | jd k	rD| j |d< |S )Nr0   rB   r+   
targetHint)r6   r'   r   rB   r+   rC   r7   r   r   r   r      s    

zPreloadingAttemptKey.to_jsonc                 C  sD   | t j|d t|d t|d d|kr<t|d nd dS )Nr0   rB   r+   rD   )r'   rB   r+   rC   )r   r8   r   r?   r   r@   r   r   r   r   r      s    
zPreloadingAttemptKey.from_json)	r   r   r    r!   r<   rC   r   r"   r   r   r   r   r   rA      s   
	rA   c                   @  s>   e Zd ZU dZded< ded< ded< dd	 Zed
d ZdS )PreloadingAttemptSourceav  
    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.
    rA   keyztyping.List[RuleSetId]rule_set_idsztyping.List[dom.BackendNodeId]node_idsc                 C  s@   t  }| j |d< dd | jD |d< dd | jD |d< |S )NrF   c                 S  s   g | ]}|  qS r   r   .0ir   r   r   
<listcomp>   s     z3PreloadingAttemptSource.to_json.<locals>.<listcomp>
ruleSetIdsc                 S  s   g | ]}|  qS r   rI   rJ   r   r   r   rM      s     nodeIds)r6   rF   r   rG   rH   r7   r   r   r   r      s
    zPreloadingAttemptSource.to_jsonc                 C  s4   | t |d dd |d D dd |d D dS )NrF   c                 S  s   g | ]}t |qS r   r
   r   rJ   r   r   r   rM      s     z5PreloadingAttemptSource.from_json.<locals>.<listcomp>rN   c                 S  s   g | ]}t j|qS r   )r   r9   r   rJ   r   r   r   rM      s     rO   )rF   rG   rH   )rA   r   r   r   r   r   r      s
    z!PreloadingAttemptSource.from_jsonN)r   r   r    r!   r<   r   r"   r   r   r   r   r   rE      s   
rE   c                   @  s@  e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIdJ ZKeLdKdL ZMdMS )NPrerenderFinalStatusz5
    List of FinalStatus reasons for Prerender2.
    Z	ActivatedZ	DestroyedZLowEndDeviceZInvalidSchemeRedirectZInvalidSchemeNavigationZNavigationRequestBlockedByCspZMainFrameNavigationZMojoBinderPolicyZRendererProcessCrashedZRendererProcessKilledDownloadZTriggerDestroyedZNavigationNotCommittedZNavigationBadHttpStatusZClientCertRequestedZNavigationRequestNetworkErrorZCancelAllHostsForTestingZDidFailLoadZStopZSslCertificateErrorZLoginAuthRequestedZUaChangeRequiresReloadZBlockedByClientZAudioOutputDeviceRequestedZMixedContentZTriggerBackgroundedZMemoryLimitExceededZDataSaverEnabledZTriggerUrlHasEffectiveUrlZActivatedBeforeStartedZInactivePageRestrictionZStartFailedZTimeoutBackgroundedZ$CrossSiteRedirectInInitialNavigationZ&CrossSiteNavigationInInitialNavigationZ6SameSiteCrossOriginRedirectNotOptInInInitialNavigationZ8SameSiteCrossOriginNavigationNotOptInInInitialNavigationZ%ActivationNavigationParameterMismatchZActivatedInBackgroundZEmbedderHostDisallowedZ*ActivationNavigationDestroyedBeforeSuccessZTabClosedByUserGestureZTabClosedWithoutUserGestureZ&PrimaryMainFrameRendererProcessCrashedZ%PrimaryMainFrameRendererProcessKilledZ"ActivationFramePolicyNotCompatibleZPreloadingDisabledZBatterySaverEnabledZ"ActivatedDuringMainFrameNavigationZ"PreloadingUnsupportedByWebContentsZ&CrossSiteRedirectInMainFrameNavigationZ(CrossSiteNavigationInMainFrameNavigationZ8SameSiteCrossOriginRedirectNotOptInInMainFrameNavigationZ:SameSiteCrossOriginNavigationNotOptInInMainFrameNavigationZMemoryPressureOnTriggerZMemoryPressureAfterTriggeredZPrerenderingDisabledByDevToolsZSpeculationRuleRemovedZ&ActivatedWithAuxiliaryBrowsingContextsZ&MaxNumOfRunningEagerPrerendersExceededZ)MaxNumOfRunningNonEagerPrerendersExceededZ)MaxNumOfRunningEmbedderPrerendersExceededZPrerenderingUrlHasEffectiveUrlZ(RedirectedPrerenderingUrlHasEffectiveUrlZActivationUrlHasEffectiveUrlZJavaScriptInterfaceAddedZJavaScriptInterfaceRemovedZAllPrerenderingCanceledZWindowClosedZSlowNetworkZOtherPrerenderedPageActivatedc                 C  s   | j S r   r=   r   r   r   r   r   &  s    zPrerenderFinalStatus.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   )  s    zPrerenderFinalStatus.from_jsonN)Nr   r   r    r!   Z	ACTIVATEDZ	DESTROYEDZLOW_END_DEVICEZINVALID_SCHEME_REDIRECTZINVALID_SCHEME_NAVIGATIONZ!NAVIGATION_REQUEST_BLOCKED_BY_CSPZMAIN_FRAME_NAVIGATIONZMOJO_BINDER_POLICYZRENDERER_PROCESS_CRASHEDZRENDERER_PROCESS_KILLEDZDOWNLOADZTRIGGER_DESTROYEDZNAVIGATION_NOT_COMMITTEDZNAVIGATION_BAD_HTTP_STATUSZCLIENT_CERT_REQUESTEDZ NAVIGATION_REQUEST_NETWORK_ERRORZCANCEL_ALL_HOSTS_FOR_TESTINGZDID_FAIL_LOADSTOPZSSL_CERTIFICATE_ERRORZLOGIN_AUTH_REQUESTEDZUA_CHANGE_REQUIRES_RELOADZBLOCKED_BY_CLIENTZAUDIO_OUTPUT_DEVICE_REQUESTEDZMIXED_CONTENTZTRIGGER_BACKGROUNDEDZMEMORY_LIMIT_EXCEEDEDZDATA_SAVER_ENABLEDZTRIGGER_URL_HAS_EFFECTIVE_URLZACTIVATED_BEFORE_STARTEDZINACTIVE_PAGE_RESTRICTIONZSTART_FAILEDZTIMEOUT_BACKGROUNDEDZ)CROSS_SITE_REDIRECT_IN_INITIAL_NAVIGATIONZ+CROSS_SITE_NAVIGATION_IN_INITIAL_NAVIGATIONZ@SAME_SITE_CROSS_ORIGIN_REDIRECT_NOT_OPT_IN_IN_INITIAL_NAVIGATIONZBSAME_SITE_CROSS_ORIGIN_NAVIGATION_NOT_OPT_IN_IN_INITIAL_NAVIGATIONZ(ACTIVATION_NAVIGATION_PARAMETER_MISMATCHZACTIVATED_IN_BACKGROUNDZEMBEDDER_HOST_DISALLOWEDZ.ACTIVATION_NAVIGATION_DESTROYED_BEFORE_SUCCESSZTAB_CLOSED_BY_USER_GESTUREZTAB_CLOSED_WITHOUT_USER_GESTUREZ+PRIMARY_MAIN_FRAME_RENDERER_PROCESS_CRASHEDZ*PRIMARY_MAIN_FRAME_RENDERER_PROCESS_KILLEDZ&ACTIVATION_FRAME_POLICY_NOT_COMPATIBLEZPRELOADING_DISABLEDZBATTERY_SAVER_ENABLEDZ&ACTIVATED_DURING_MAIN_FRAME_NAVIGATIONZ&PRELOADING_UNSUPPORTED_BY_WEB_CONTENTSZ,CROSS_SITE_REDIRECT_IN_MAIN_FRAME_NAVIGATIONZ.CROSS_SITE_NAVIGATION_IN_MAIN_FRAME_NAVIGATIONZCSAME_SITE_CROSS_ORIGIN_REDIRECT_NOT_OPT_IN_IN_MAIN_FRAME_NAVIGATIONZESAME_SITE_CROSS_ORIGIN_NAVIGATION_NOT_OPT_IN_IN_MAIN_FRAME_NAVIGATIONZMEMORY_PRESSURE_ON_TRIGGERZMEMORY_PRESSURE_AFTER_TRIGGEREDZ"PRERENDERING_DISABLED_BY_DEV_TOOLSZSPECULATION_RULE_REMOVEDZ*ACTIVATED_WITH_AUXILIARY_BROWSING_CONTEXTSZ,MAX_NUM_OF_RUNNING_EAGER_PRERENDERS_EXCEEDEDZ0MAX_NUM_OF_RUNNING_NON_EAGER_PRERENDERS_EXCEEDEDZ/MAX_NUM_OF_RUNNING_EMBEDDER_PRERENDERS_EXCEEDEDZ"PRERENDERING_URL_HAS_EFFECTIVE_URLZ-REDIRECTED_PRERENDERING_URL_HAS_EFFECTIVE_URLZ ACTIVATION_URL_HAS_EFFECTIVE_URLZJAVA_SCRIPT_INTERFACE_ADDEDZJAVA_SCRIPT_INTERFACE_REMOVEDZALL_PRERENDERING_CANCELEDZWINDOW_CLOSEDZSLOW_NETWORKZ OTHER_PRERENDERED_PAGE_ACTIVATEDr   r"   r   r   r   r   r   rQ      s   rQ   c                   @  s<   e Zd ZdZdZdZdZdZdZdZ	dd	 Z
ed
d ZdS )PreloadingStatusz
    Preloading status values, see also PreloadingTriggeringOutcome. This
    status is shared by prefetchStatusUpdated and prerenderStatusUpdated.
    ZPendingZRunningZReadyZSuccessZFailureZNotSupportedc                 C  s   | j S r   r=   r   r   r   r   r   :  s    zPreloadingStatus.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   =  s    zPreloadingStatus.from_jsonN)r   r   r    r!   ZPENDINGZRUNNINGZREADYSUCCESSFAILUREZNOT_SUPPORTEDr   r"   r   r   r   r   r   rT   .  s   rT   c                   @  s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!d" Z#e$d#d$ Z%d%S )&PrefetchStatusz
    TODO(https://crbug.com/1384419): revisit the list of PrefetchStatus and
    filter out the ones that aren't necessary to the developers.
    ZPrefetchAllowedZ PrefetchFailedIneligibleRedirectZPrefetchFailedInvalidRedirectZPrefetchFailedMIMENotSupportedZPrefetchFailedNetErrorZPrefetchFailedNon2XXZ"PrefetchFailedPerPageLimitExceededZ$PrefetchEvictedAfterCandidateRemovedZPrefetchEvictedForNewerPrefetchZPrefetchHeldbackZPrefetchIneligibleRetryAfterZPrefetchIsPrivacyDecoyZPrefetchIsStaleZ-PrefetchNotEligibleBrowserContextOffTheRecordZ#PrefetchNotEligibleDataSaverEnabledZ PrefetchNotEligibleExistingProxyZ"PrefetchNotEligibleHostIsNonUniqueZ-PrefetchNotEligibleNonDefaultStoragePartitionZ;PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxyZ#PrefetchNotEligibleSchemeIsNotHttpsZ!PrefetchNotEligibleUserHasCookiesZ'PrefetchNotEligibleUserHasServiceWorkerZ&PrefetchNotEligibleBatterySaverEnabledZ%PrefetchNotEligiblePreloadingDisabledZPrefetchNotFinishedInTimeZPrefetchNotStartedZPrefetchNotUsedCookiesChangedZPrefetchProxyNotAvailableZPrefetchResponseUsedZPrefetchSuccessfulButNotUsedZPrefetchNotUsedProbeFailedc                 C  s   | j S r   r=   r   r   r   r   r   g  s    zPrefetchStatus.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   j  s    zPrefetchStatus.from_jsonN)&r   r   r    r!   ZPREFETCH_ALLOWEDZ#PREFETCH_FAILED_INELIGIBLE_REDIRECTZ PREFETCH_FAILED_INVALID_REDIRECTZ"PREFETCH_FAILED_MIME_NOT_SUPPORTEDZPREFETCH_FAILED_NET_ERRORZPREFETCH_FAILED_NON2_XXZ'PREFETCH_FAILED_PER_PAGE_LIMIT_EXCEEDEDZ(PREFETCH_EVICTED_AFTER_CANDIDATE_REMOVEDZ#PREFETCH_EVICTED_FOR_NEWER_PREFETCHZPREFETCH_HELDBACKZPREFETCH_INELIGIBLE_RETRY_AFTERZPREFETCH_IS_PRIVACY_DECOYZPREFETCH_IS_STALEZ4PREFETCH_NOT_ELIGIBLE_BROWSER_CONTEXT_OFF_THE_RECORDZ(PREFETCH_NOT_ELIGIBLE_DATA_SAVER_ENABLEDZ$PREFETCH_NOT_ELIGIBLE_EXISTING_PROXYZ(PREFETCH_NOT_ELIGIBLE_HOST_IS_NON_UNIQUEZ3PREFETCH_NOT_ELIGIBLE_NON_DEFAULT_STORAGE_PARTITIONZDPREFETCH_NOT_ELIGIBLE_SAME_SITE_CROSS_ORIGIN_PREFETCH_REQUIRED_PROXYZ)PREFETCH_NOT_ELIGIBLE_SCHEME_IS_NOT_HTTPSZ&PREFETCH_NOT_ELIGIBLE_USER_HAS_COOKIESZ-PREFETCH_NOT_ELIGIBLE_USER_HAS_SERVICE_WORKERZ+PREFETCH_NOT_ELIGIBLE_BATTERY_SAVER_ENABLEDZ)PREFETCH_NOT_ELIGIBLE_PRELOADING_DISABLEDZPREFETCH_NOT_FINISHED_IN_TIMEZPREFETCH_NOT_STARTEDZ!PREFETCH_NOT_USED_COOKIES_CHANGEDZPREFETCH_PROXY_NOT_AVAILABLEZPREFETCH_RESPONSE_USEDZ PREFETCH_SUCCESSFUL_BUT_NOT_USEDZPREFETCH_NOT_USED_PROBE_FAILEDr   r"   r   r   r   r   r   rW   B  sF   rW   c                   @  sF   e Zd ZU dZded< dZded< dZded< dd	 Zed
d Z	dS )PrerenderMismatchedHeaderszS
    Information of headers to be displayed when the header mismatch occurred.
    r   header_nameNr*   initial_valueactivation_valuec                 C  s<   t  }| j|d< | jd k	r$| j|d< | jd k	r8| j|d< |S )N
headerNameinitialValueactivationValue)r6   rY   rZ   r[   r7   r   r   r   r   z  s    




z"PrerenderMismatchedHeaders.to_jsonc                 C  s>   | t |d d|kr t |d nd d|kr6t |d nd dS )Nr\   r]   r^   )rY   rZ   r[   )r   r   r   r   r   r     s
    
z$PrerenderMismatchedHeaders.from_json)
r   r   r    r!   r<   rZ   r[   r   r"   r   r   r   r   r   rX   o  s   
	rX   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   c                  c  s   ddi} | V }d S )NmethodzPreload.enabler   Zcmd_dictr   r   r   r   enable  s     ra   c                  c  s   ddi} | V }d S )Nr_   zPreload.disabler   r`   r   r   r   disable  s     rb   zPreload.ruleSetUpdatedc                   @  s.   e Zd ZU dZded< edd dddZdS )	RuleSetUpdatedzF
    Upsert. Currently, it is only emitted when a rule set added.
    r$   rule_setr   r   c                 C  s   | t |d dS )NZruleSet)rd   )r$   r   r   r   r   r   r     s    zRuleSetUpdated.from_jsonNr   r   r    r!   r<   r"   r   r   r   r   r   rc     s   
rc   zPreload.ruleSetRemovedc                   @  s*   e Zd ZU ded< edd dddZdS )RuleSetRemovedr
   r%   r   r   c                 C  s   | t |d dS )Nr/   )r%   rP   r   r   r   r   r     s    zRuleSetRemoved.from_jsonN)r   r   r    r<   r"   r   r   r   r   r   rf     s   
rf   z"Preload.preloadEnabledStateUpdatedc                   @  sN   e Zd ZU dZded< ded< ded< ded< ded< edd d	d
dZdS )PreloadEnabledStateUpdatedz8
    Fired when a preload enabled state is updated.
    booldisabled_by_preferencedisabled_by_data_saverdisabled_by_battery_saver/disabled_by_holdback_prefetch_speculation_rules0disabled_by_holdback_prerender_speculation_rulesr   r   c                 C  s:   | t |d t |d t |d t |d t |d dS )NZdisabledByPreferenceZdisabledByDataSaverZdisabledByBatterySaverZ*disabledByHoldbackPrefetchSpeculationRulesZ+disabledByHoldbackPrerenderSpeculationRules)ri   rj   rk   rl   rm   )rh   r   r   r   r   r     s    




z$PreloadEnabledStateUpdated.from_jsonNre   r   r   r   r   rg     s   
rg   zPreload.prefetchStatusUpdatedc                   @  sV   e Zd ZU dZded< ded< ded< ded	< d
ed< ded< edd dddZdS )PrefetchStatusUpdatedz3
    Fired when a prefetch attempt is updated.
    rA   rF   zpage.FrameIdinitiating_frame_idr   prefetch_urlrT   statusrW   prefetch_statusznetwork.RequestIdr,   r   r   c              
   C  sR   | t |d tj|d t|d t|d t|d tj|d dS )NrF   ZinitiatingFrameIdZprefetchUrlrq   ZprefetchStatusr3   )rF   ro   rp   rq   rr   r,   )	rA   r   r	   ZFrameIdr   rT   rW   r   r:   r   r   r   r   r     s    
zPrefetchStatusUpdated.from_jsonNre   r   r   r   r   rn     s   
rn   zPreload.prerenderStatusUpdatedc                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< edd dddZdS )PrerenderStatusUpdatedz4
    Fired when a prerender attempt is updated.
    rA   rF   rT   rq   z%typing.Optional[PrerenderFinalStatus]prerender_statusr*   disallowed_mojo_interfacez8typing.Optional[typing.List[PrerenderMismatchedHeaders]]mismatched_headersr   r   c                 C  sj   | t |d t|d d|kr0t|d nd d|krFt|d nd d|krbdd |d D nd dS )	NrF   rq   ZprerenderStatusZdisallowedMojoInterfaceZmismatchedHeadersc                 S  s   g | ]}t |qS r   )rX   r   rJ   r   r   r   rM     s     z4PrerenderStatusUpdated.from_json.<locals>.<listcomp>)rF   rq   rt   ru   rv   )rA   r   rT   rQ   r   r   r   r   r   r     s    z PrerenderStatusUpdated.from_jsonNre   r   r   r   r   rs     s   
rs   z'Preload.preloadingAttemptSourcesUpdatedc                   @  s6   e Zd ZU dZded< ded< edd ddd	Zd
S )PreloadingAttemptSourcesUpdatedzK
    Send a list of sources for all preloading attempts in a document.
    r&   r'   z$typing.List[PreloadingAttemptSource]preloading_attempt_sourcesr   r   c                 C  s&   | t j|d dd |d D dS )Nr0   c                 S  s   g | ]}t |qS r   )rE   r   rJ   r   r   r   rM     s     z=PreloadingAttemptSourcesUpdated.from_json.<locals>.<listcomp>ZpreloadingAttemptSources)r'   rx   )r   r8   r   r   r   r   r   r   
  s    z)PreloadingAttemptSourcesUpdated.from_jsonNre   r   r   r   r   rw     s
   
rw   )"
__future__r   utilr   r   Zdataclassesr   enumtyping r   r   r	   r   r
   r$   Enumr;   r?   r@   rA   rE   rQ   rT   rW   rX   ra   rb   rc   rf   rg   rn   rs   rw   r   r   r   r   <module>   sT   H$T-
