a
    xd6                     @  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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+d, d,Zed-eG d.d/ d/Zed0eG d1d2 d2ZdS )3    )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   g/var/www/html/Ranjet/env/lib/python3.9/site-packages/selenium/webdriver/common/devtools/v113/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                   @  sV   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d Zedd Z	dS )RuleSetz+
    Corresponds to SpeculationRuleSet
    r
   id_network.LoaderId	loader_idr   source_textNz!typing.Optional[RuleSetErrorType]
error_typetyping.Optional[str]error_messagec                 C  s\   t  }| j |d< | j |d< | j|d< | jd urD| j |d< | jd urX| j|d< |S )NidloaderId
sourceText	errorTypeerrorMessage)dictr%   r   r'   r(   r)   r+   r   r   r   r   r   r   :   s    



zRuleSet.to_jsonc                 C  sZ   | t |d tj|d t|d d|v r<t|d nd d|v rRt|d nd dS )Nr,   r-   r.   r/   r0   )r%   r'   r(   r)   r+   )r
   r   r   LoaderIdr   RuleSetErrorTyper   r   r   r   r   E   s    
zRuleSet.from_json)
r   r   r    r!   __annotations__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 )r4   ZSourceIsNotJsonObjectZInvalidRulesSkippedc                 C  s   | j S r   valuer   r   r   r   r   T   s    zRuleSetErrorType.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   W   s    zRuleSetErrorType.from_jsonN)r   r   r    ZSOURCE_IS_NOT_JSON_OBJECTZINVALID_RULES_SKIPPEDr   r"   r   r   r   r   r   r4   P   s
   r4   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   r6   r   r   r   r   r   e   s    zSpeculationAction.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   h   s    zSpeculationAction.from_jsonN)	r   r   r    r!   ZPREFETCHZ	PRERENDERr   r"   r   r   r   r   r   r8   \   s   r8   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   r6   r   r   r   r   r   u   s    zSpeculationTargetHint.to_jsonc                 C  s   | |S r   r   r   r   r   r   r   x   s    zSpeculationTargetHint.from_jsonN)	r   r   r    r!   ZBLANKZSELFr   r"   r   r   r   r   r   r9   m   s   r9   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'   r8   actionr   urlNz&typing.Optional[SpeculationTargetHint]target_hintc                 C  sH   t  }| j |d< | j |d< | j|d< | jd urD| j |d< |S )Nr-   r;   r<   
targetHint)r1   r'   r   r;   r<   r=   r2   r   r   r   r      s    

zPreloadingAttemptKey.to_jsonc                 C  sD   | t j|d t|d t|d d|v r<t|d nd dS )Nr-   r;   r<   r>   )r'   r;   r<   r=   )r   r3   r   r8   r   r9   r   r   r   r   r      s    
zPreloadingAttemptKey.from_json)	r   r   r    r!   r5   r=   r   r"   r   r   r   r   r   r:   }   s   
	r:   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 mulitple rule sets and links to trigger a single attempt.
    r:   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 )Nr@   c                 S  s   g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z3PreloadingAttemptSource.to_json.<locals>.<listcomp>
ruleSetIdsc                 S  s   g | ]}|  qS r   rC   rD   r   r   r   rG      rH   nodeIds)r1   r@   r   rA   rB   r2   r   r   r   r      s
    zPreloadingAttemptSource.to_jsonc                 C  s4   | t |d dd |d D dd |d D dS )Nr@   c                 S  s   g | ]}t |qS r   r
   r   rD   r   r   r   rG      rH   z5PreloadingAttemptSource.from_json.<locals>.<listcomp>rI   c                 S  s   g | ]}t j|qS r   )r   ZBackendNodeIdr   rD   r   r   r   rG      rH   rJ   )r@   rA   rB   )r:   r   r   r   r   r   r      s
    z!PreloadingAttemptSource.from_jsonN)r   r   r    r!   r5   r   r"   r   r   r   r   r   r?      s   
r?   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<d= Z>e?d>d? Z@d@S )APrerenderFinalStatusz5
    List of FinalStatus reasons for Prerender2.
    Z	ActivatedZ	DestroyedZLowEndDeviceZInvalidSchemeRedirectZInvalidSchemeNavigationZInProgressNavigationZNavigationRequestBlockedByCspZMainFrameNavigationZMojoBinderPolicyZRendererProcessCrashedZRendererProcessKilledDownloadZTriggerDestroyedZNavigationNotCommittedZNavigationBadHttpStatusZClientCertRequestedZNavigationRequestNetworkErrorZ!MaxNumOfRunningPrerendersExceededZCancelAllHostsForTestingZDidFailLoadZStopZSslCertificateErrorZLoginAuthRequestedZUaChangeRequiresReloadZBlockedByClientZAudioOutputDeviceRequestedZMixedContentZTriggerBackgroundedZ)EmbedderTriggeredAndCrossOriginRedirectedZMemoryLimitExceededZFailToGetMemoryUsageZDataSaverEnabledZHasEffectiveUrlZActivatedBeforeStartedZInactivePageRestrictionZStartFailedZTimeoutBackgroundedZ$CrossSiteRedirectInInitialNavigationZ&CrossSiteNavigationInInitialNavigationZ6SameSiteCrossOriginRedirectNotOptInInInitialNavigationZ8SameSiteCrossOriginNavigationNotOptInInInitialNavigationZ%ActivationNavigationParameterMismatchZActivatedInBackgroundZEmbedderHostDisallowedZ*ActivationNavigationDestroyedBeforeSuccessZTabClosedByUserGestureZTabClosedWithoutUserGestureZ&PrimaryMainFrameRendererProcessCrashedZ%PrimaryMainFrameRendererProcessKilledZ"ActivationFramePolicyNotCompatibleZPreloadingDisabledZBatterySaverEnabledZ"ActivatedDuringMainFrameNavigationZ"PreloadingUnsupportedByWebContentsZ&CrossSiteRedirectInMainFrameNavigationZ(CrossSiteNavigationInMainFrameNavigationZ8SameSiteCrossOriginRedirectNotOptInInMainFrameNavigationZ:SameSiteCrossOriginNavigationNotOptInInMainFrameNavigationc                 C  s   | j S r   r6   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)Ar   r   r    r!   Z	ACTIVATEDZ	DESTROYEDZLOW_END_DEVICEZINVALID_SCHEME_REDIRECTZINVALID_SCHEME_NAVIGATIONZIN_PROGRESS_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&MAX_NUM_OF_RUNNING_PRERENDERS_EXCEEDEDZ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.EMBEDDER_TRIGGERED_AND_CROSS_ORIGIN_REDIRECTEDZMEMORY_LIMIT_EXCEEDEDZFAIL_TO_GET_MEMORY_USAGEZDATA_SAVER_ENABLEDZ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_NAVIGATIONr   r"   r   r   r   r   r   rL      s|   rL   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   r6   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   rO     s   rO   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    rT   c                  c  s   ddi} | V }d S )NrR   zPreload.disabler   rS   r   r   r   disable$  s    rU   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)rW   )r$   r   r   r   r   r   r   4  s    zRuleSetUpdated.from_jsonNr   r   r    r!   r5   r"   r   r   r   r   r   rV   ,  s   
rV   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%   rK   r   r   r   r   r   @  s    zRuleSetRemoved.from_jsonN)r   r   r    r5   r"   r   r   r   r   r   rY   ;  s   
rY   z!Preload.prerenderAttemptCompletedc                   @  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 )PrerenderAttemptCompletedz6
    Fired when a prerender attempt is completed.
    r:   r@   page.FrameIdinitiating_frame_idr   prerendering_urlrL   final_statusr*   disallowed_api_methodr   r   c                 C  sN   | t |d tj|d t|d t|d d|v rFt|d nd dS )Nr@   initiatingFrameIdprerenderingUrlZfinalStatusZdisallowedApiMethod)r@   r\   r]   r^   r_   )r:   r   r	   FrameIdr   rL   r   r   r   r   r   V  s    
z#PrerenderAttemptCompleted.from_jsonNrX   r   r   r   r   rZ   G  s   
rZ   zPreload.prefetchStatusUpdatedc                   @  sF   e Zd ZU dZ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.
    r:   r@   r[   r\   r   prefetch_urlrO   statusr   r   c                 C  s8   | t |d tj|d t|d t|d dS )Nr@   r`   ZprefetchUrlre   )r@   r\   rd   re   r:   r   r	   rb   r   rO   r   r   r   r   r   m  s    
zPrefetchStatusUpdated.from_jsonNrX   r   r   r   r   rc   a  s   
rc   zPreload.prerenderStatusUpdatedc                   @  sF   e Zd ZU dZ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.
    r:   r@   r[   r\   r   r]   rO   re   r   r   c                 C  s8   | t |d tj|d t|d t|d dS )Nr@   r`   ra   re   )r@   r\   r]   re   rf   r   r   r   r   r     s    
z PrerenderStatusUpdated.from_jsonNrX   r   r   r   r   rg   w  s   
rg   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 )Nr-   c                 S  s   g | ]}t |qS r   )r?   r   rD   r   r   r   rG     rH   z=PreloadingAttemptSourcesUpdated.from_json.<locals>.<listcomp>ZpreloadingAttemptSources)r'   ri   )r   r3   r   r   r   r   r   r     s    z)PreloadingAttemptSourcesUpdated.from_jsonNrX   r   r   r   r   rh     s
   
rh   ) 
__future__r   utilr   r   Zdataclassesr   enumtyping r   r   r	   r   r
   r$   Enumr4   r8   r9   r:   r?   rL   rO   rT   rU   rV   rY   rZ   rc   rg   rh   r   r   r   r   <module>   sN   /$G
