o
    ҷhL                     @  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d8dd Zd8d!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 d0d1 d1Zed2eG d3d4 d4Z ed5eG d6d7 d7Z!dS )9    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)pagec                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )	RuleSetIdz
    Unique id
    returnstrc                 C  s   | S N selfr   r   b/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v117/preload.pyto_json   s   zRuleSetId.to_jsonjsonc                 C     | |S r   r   clsr   r   r   r   	from_json      zRuleSetId.from_jsonc                   s   d t  S )NzRuleSetId({}))formatsuper__repr__r   	__class__r   r   r      s   zRuleSetId.__repr__)r   r   )r   r   r   r
   )	__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 ur"| j |d< | jd ur,| j|d< | jd ur8| j |d< | jd urD| j |d< | j	d urN| 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|v rtj|d nd d|v r*t|d nd d|v r7tj|d nd d|v rCt|d nd d|v rPt|d d	S 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;   SourceIsNotJsonObjectInvalidRulesSkippedc                 C     | j S r   valuer   r   r   r   r   m      zRuleSetErrorType.to_jsonc                 C  r   r   r   r   r   r   r   r   p   r   zRuleSetErrorType.from_jsonN)r   r   r    SOURCE_IS_NOT_JSON_OBJECTINVALID_RULES_SKIPPEDr   r"   r   r   r   r   r   r;   i   s    r;   c                   @  ,   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).
    Prefetch	Prerenderc                 C  r?   r   r@   r   r   r   r   r   ~   rB   zSpeculationAction.to_jsonc                 C  r   r   r   r   r   r   r   r      r   zSpeculationAction.from_jsonN)	r   r   r    r!   PREFETCH	PRERENDERr   r"   r   r   r   r   r   rF   u   s    rF   c                   @  rE   )	SpeculationTargetHintz
    Corresponds to mojom::SpeculationTargetHint.
    See https://github.com/WICG/nav-speculation/blob/main/triggers.md#window-name-targeting-hints
    BlankSelfc                 C  r?   r   r@   r   r   r   r   r      rB   zSpeculationTargetHint.to_jsonc                 C  r   r   r   r   r   r   r   r      r   zSpeculationTargetHint.from_jsonN)	r   r   r    r!   BLANKSELFr   r"   r   r   r   r   r   rK      s    rK   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'   rF   actionr   r+   Nz&typing.Optional[SpeculationTargetHint]target_hintc                 C  sH   t  }| j |d< | j |d< | j|d< | jd ur"| j |d< |S )Nr0   rQ   r+   
targetHint)r6   r'   r   rQ   r+   rR   r7   r   r   r   r      s   

zPreloadingAttemptKey.to_jsonc                 C  sH   | t j|d t|d t|d d|v r t|d dS d dS )Nr0   rQ   r+   rS   )r'   rQ   r+   rR   )r   r8   r   rF   r   rK   r   r   r   r   r      s   
zPreloadingAttemptKey.from_json)	r   r   r    r!   r<   rR   r   r"   r   r   r   r   r   rP      s   
 	rP   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.
    rP   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 )NrU   c                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z3PreloadingAttemptSource.to_json.<locals>.<listcomp>
ruleSetIdsc                 S  rX   r   rY   rZ   r   r   r   r]      r^   nodeIds)r6   rU   r   rV   rW   r7   r   r   r   r      s
   zPreloadingAttemptSource.to_jsonc                 C  s4   | t |d dd |d D dd |d D dS )NrU   c                 S     g | ]}t |qS r   r
   r   rZ   r   r   r   r]          z5PreloadingAttemptSource.from_json.<locals>.<listcomp>r_   c                 S  s   g | ]}t j|qS r   )r   r9   r   rZ   r   r   r   r]      s    r`   )rU   rV   rW   )rP   r   r   r   r   r   r      s
   z!PreloadingAttemptSource.from_jsonN)r   r   r    r!   r<   r   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!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@ZBdAdB ZCeDdCdD ZEdES )FPrerenderFinalStatusz5
    List of FinalStatus reasons for Prerender2.
    	Activated	DestroyedLowEndDeviceInvalidSchemeRedirectInvalidSchemeNavigationInProgressNavigationNavigationRequestBlockedByCspMainFrameNavigationMojoBinderPolicyRendererProcessCrashedRendererProcessKilledDownloadTriggerDestroyedNavigationNotCommittedNavigationBadHttpStatusClientCertRequestedNavigationRequestNetworkError!MaxNumOfRunningPrerendersExceededCancelAllHostsForTestingDidFailLoadStopSslCertificateErrorLoginAuthRequestedUaChangeRequiresReloadBlockedByClientAudioOutputDeviceRequestedMixedContentTriggerBackgroundedMemoryLimitExceededFailToGetMemoryUsageDataSaverEnabledHasEffectiveUrlActivatedBeforeStartedInactivePageRestrictionStartFailedTimeoutBackgrounded$CrossSiteRedirectInInitialNavigation&CrossSiteNavigationInInitialNavigation6SameSiteCrossOriginRedirectNotOptInInInitialNavigation8SameSiteCrossOriginNavigationNotOptInInInitialNavigation%ActivationNavigationParameterMismatchActivatedInBackgroundEmbedderHostDisallowed*ActivationNavigationDestroyedBeforeSuccessTabClosedByUserGestureTabClosedWithoutUserGesture&PrimaryMainFrameRendererProcessCrashed%PrimaryMainFrameRendererProcessKilled"ActivationFramePolicyNotCompatiblePreloadingDisabledBatterySaverEnabled"ActivatedDuringMainFrameNavigation"PreloadingUnsupportedByWebContents&CrossSiteRedirectInMainFrameNavigation(CrossSiteNavigationInMainFrameNavigation8SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation:SameSiteCrossOriginNavigationNotOptInInMainFrameNavigationMemoryPressureOnTriggerMemoryPressureAfterTriggeredPrerenderingDisabledByDevToolsResourceLoadBlockedByClientSpeculationRuleRemoved&ActivatedWithAuxiliaryBrowsingContextsc                 C  r?   r   r@   r   r   r   r   r     rB   zPrerenderFinalStatus.to_jsonc                 C  r   r   r   r   r   r   r   r   !  r   zPrerenderFinalStatus.from_jsonN)Fr   r   r    r!   	ACTIVATED	DESTROYEDLOW_END_DEVICEINVALID_SCHEME_REDIRECTINVALID_SCHEME_NAVIGATIONIN_PROGRESS_NAVIGATION!NAVIGATION_REQUEST_BLOCKED_BY_CSPMAIN_FRAME_NAVIGATIONMOJO_BINDER_POLICYRENDERER_PROCESS_CRASHEDRENDERER_PROCESS_KILLEDDOWNLOADTRIGGER_DESTROYEDNAVIGATION_NOT_COMMITTEDNAVIGATION_BAD_HTTP_STATUSCLIENT_CERT_REQUESTED NAVIGATION_REQUEST_NETWORK_ERROR&MAX_NUM_OF_RUNNING_PRERENDERS_EXCEEDEDCANCEL_ALL_HOSTS_FOR_TESTINGDID_FAIL_LOADSTOPSSL_CERTIFICATE_ERRORLOGIN_AUTH_REQUESTEDUA_CHANGE_REQUIRES_RELOADBLOCKED_BY_CLIENTAUDIO_OUTPUT_DEVICE_REQUESTEDMIXED_CONTENTTRIGGER_BACKGROUNDEDMEMORY_LIMIT_EXCEEDEDFAIL_TO_GET_MEMORY_USAGEDATA_SAVER_ENABLEDHAS_EFFECTIVE_URLACTIVATED_BEFORE_STARTEDINACTIVE_PAGE_RESTRICTIONSTART_FAILEDTIMEOUT_BACKGROUNDED)CROSS_SITE_REDIRECT_IN_INITIAL_NAVIGATION+CROSS_SITE_NAVIGATION_IN_INITIAL_NAVIGATION@SAME_SITE_CROSS_ORIGIN_REDIRECT_NOT_OPT_IN_IN_INITIAL_NAVIGATIONBSAME_SITE_CROSS_ORIGIN_NAVIGATION_NOT_OPT_IN_IN_INITIAL_NAVIGATION(ACTIVATION_NAVIGATION_PARAMETER_MISMATCHACTIVATED_IN_BACKGROUNDEMBEDDER_HOST_DISALLOWED.ACTIVATION_NAVIGATION_DESTROYED_BEFORE_SUCCESSTAB_CLOSED_BY_USER_GESTURETAB_CLOSED_WITHOUT_USER_GESTURE+PRIMARY_MAIN_FRAME_RENDERER_PROCESS_CRASHED*PRIMARY_MAIN_FRAME_RENDERER_PROCESS_KILLED&ACTIVATION_FRAME_POLICY_NOT_COMPATIBLEPRELOADING_DISABLEDBATTERY_SAVER_ENABLED&ACTIVATED_DURING_MAIN_FRAME_NAVIGATION&PRELOADING_UNSUPPORTED_BY_WEB_CONTENTS,CROSS_SITE_REDIRECT_IN_MAIN_FRAME_NAVIGATION.CROSS_SITE_NAVIGATION_IN_MAIN_FRAME_NAVIGATIONCSAME_SITE_CROSS_ORIGIN_REDIRECT_NOT_OPT_IN_IN_MAIN_FRAME_NAVIGATIONESAME_SITE_CROSS_ORIGIN_NAVIGATION_NOT_OPT_IN_IN_MAIN_FRAME_NAVIGATIONMEMORY_PRESSURE_ON_TRIGGERMEMORY_PRESSURE_AFTER_TRIGGERED"PRERENDERING_DISABLED_BY_DEV_TOOLSRESOURCE_LOAD_BLOCKED_BY_CLIENTSPECULATION_RULE_REMOVED*ACTIVATED_WITH_AUXILIARY_BROWSING_CONTEXTSr   r"   r   r   r   r   r   rd      s    rd   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.
    PendingRunningReadySuccessFailureNotSupportedc                 C  r?   r   r@   r   r   r   r   r   2  rB   zPreloadingStatus.to_jsonc                 C  r   r   r   r   r   r   r   r   5  r   zPreloadingStatus.from_jsonN)r   r   r    r!   PENDINGRUNNINGREADYSUCCESSFAILURENOT_SUPPORTEDr   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 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.
    PrefetchAllowed PrefetchFailedIneligibleRedirectPrefetchFailedInvalidRedirectPrefetchFailedMIMENotSupportedPrefetchFailedNetErrorPrefetchFailedNon2XX"PrefetchFailedPerPageLimitExceededPrefetchEvictedPrefetchHeldbackPrefetchIneligibleRetryAfterPrefetchIsPrivacyDecoyPrefetchIsStale-PrefetchNotEligibleBrowserContextOffTheRecord#PrefetchNotEligibleDataSaverEnabled PrefetchNotEligibleExistingProxy"PrefetchNotEligibleHostIsNonUnique-PrefetchNotEligibleNonDefaultStoragePartition;PrefetchNotEligibleSameSiteCrossOriginPrefetchRequiredProxy#PrefetchNotEligibleSchemeIsNotHttps!PrefetchNotEligibleUserHasCookies'PrefetchNotEligibleUserHasServiceWorker&PrefetchNotEligibleBatterySaverEnabled%PrefetchNotEligiblePreloadingDisabledPrefetchNotFinishedInTimePrefetchNotStartedPrefetchNotUsedCookiesChangedPrefetchProxyNotAvailablePrefetchResponseUsedPrefetchSuccessfulButNotUsedPrefetchNotUsedProbeFailedc                 C  r?   r   r@   r   r   r   r   r   ^  rB   zPrefetchStatus.to_jsonc                 C  r   r   r   r   r   r   r   r   a  r   zPrefetchStatus.from_jsonN)%r   r   r    r!   PREFETCH_ALLOWED#PREFETCH_FAILED_INELIGIBLE_REDIRECT PREFETCH_FAILED_INVALID_REDIRECT"PREFETCH_FAILED_MIME_NOT_SUPPORTEDPREFETCH_FAILED_NET_ERRORPREFETCH_FAILED_NON2_XX'PREFETCH_FAILED_PER_PAGE_LIMIT_EXCEEDEDPREFETCH_EVICTEDPREFETCH_HELDBACKPREFETCH_INELIGIBLE_RETRY_AFTERPREFETCH_IS_PRIVACY_DECOYPREFETCH_IS_STALE4PREFETCH_NOT_ELIGIBLE_BROWSER_CONTEXT_OFF_THE_RECORD(PREFETCH_NOT_ELIGIBLE_DATA_SAVER_ENABLED$PREFETCH_NOT_ELIGIBLE_EXISTING_PROXY(PREFETCH_NOT_ELIGIBLE_HOST_IS_NON_UNIQUE3PREFETCH_NOT_ELIGIBLE_NON_DEFAULT_STORAGE_PARTITIONDPREFETCH_NOT_ELIGIBLE_SAME_SITE_CROSS_ORIGIN_PREFETCH_REQUIRED_PROXY)PREFETCH_NOT_ELIGIBLE_SCHEME_IS_NOT_HTTPS&PREFETCH_NOT_ELIGIBLE_USER_HAS_COOKIES-PREFETCH_NOT_ELIGIBLE_USER_HAS_SERVICE_WORKER+PREFETCH_NOT_ELIGIBLE_BATTERY_SAVER_ENABLED)PREFETCH_NOT_ELIGIBLE_PRELOADING_DISABLEDPREFETCH_NOT_FINISHED_IN_TIMEPREFETCH_NOT_STARTED!PREFETCH_NOT_USED_COOKIES_CHANGEDPREFETCH_PROXY_NOT_AVAILABLEPREFETCH_RESPONSE_USED PREFETCH_SUCCESSFUL_BUT_NOT_USEDPREFETCH_NOT_USED_PROBE_FAILEDr   r"   r   r   r   r   r   r   :  sF    r   r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }d S )NmethodzPreload.enabler   cmd_dictr   r   r   r   enablef     
r2  c                  c  r.  )Nr/  zPreload.disabler   r0  r   r   r   disablen  r3  r4  zPreload.ruleSetUpdatedc                   @  s(   e Zd ZU dZded< ed
ddZd	S )RuleSetUpdatedzF
    Upsert. Currently, it is only emitted when a rule set added.
    r$   rule_setr   r   r   c                 C     | t |d dS )NruleSet)r6  )r$   r   r   r   r   r   r   ~     zRuleSetUpdated.from_jsonN)r   r   r   r5  r   r   r    r!   r<   r"   r   r   r   r   r   r5  v  s
   
 r5  zPreload.ruleSetRemovedc                   @  s$   e Zd ZU ded< ed	ddZdS )
RuleSetRemovedr
   r%   r   r   r   c                 C  r7  )Nr/   )r%   rb   r   r   r   r   r     r9  zRuleSetRemoved.from_jsonN)r   r   r   r;  )r   r   r    r<   r"   r   r   r   r   r   r;    s   
 r;  z!Preload.prerenderAttemptCompletedc                   @  sH   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ZdS )PrerenderAttemptCompletedz6
    Fired when a prerender attempt is completed.
    rP   rU   page.FrameIdinitiating_frame_idr   prerendering_urlrd   final_statusr*   disallowed_api_methodr   r   r   c                 C  sR   | t |d tj|d t|d t|d d|v r%t|d dS d dS )NrU   initiatingFrameIdprerenderingUrlfinalStatusdisallowedApiMethod)rU   r>  r?  r@  rA  )rP   r   r	   FrameIdr   rd   r   r   r   r   r     s   
z#PrerenderAttemptCompleted.from_jsonN)r   r   r   r<  r:  r   r   r   r   r<    s   
 r<  z"Preload.preloadEnabledStateUpdatedc                   @  sH   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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   r   c                 C  s:   | t |d t |d t |d t |d t |d dS )NdisabledByPreferencedisabledByDataSaverdisabledByBatterySaver*disabledByHoldbackPrefetchSpeculationRules+disabledByHoldbackPrerenderSpeculationRules)rI  rJ  rK  rL  rM  )rH  r   r   r   r   r     s   




z$PreloadEnabledStateUpdated.from_jsonN)r   r   r   rG  r:  r   r   r   r   rG    s   
 rG  zPreload.prefetchStatusUpdatedc                   @  sP   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ZdS )PrefetchStatusUpdatedz3
    Fired when a prefetch attempt is updated.
    rP   rU   r=  r>  r   prefetch_urlr   statusr   prefetch_statusznetwork.RequestIdr,   r   r   r   c              
   C  sR   | t |d tj|d t|d t|d t|d tj|d dS )NrU   rB  prefetchUrlrU  prefetchStatusr3   )rU   r>  rT  rU  rV  r,   )	rP   r   r	   rF  r   r   r   r   r:   r   r   r   r   r     s   
zPrefetchStatusUpdated.from_jsonN)r   r   r   rS  r:  r   r   r   r   rS    s   
 rS  zPreload.prerenderStatusUpdatedc                   @  s@   e Zd ZU dZded< ded< ded< ded	< edddZdS )PrerenderStatusUpdatedz4
    Fired when a prerender attempt is updated.
    rP   rU   r   rU  z%typing.Optional[PrerenderFinalStatus]prerender_statusr*   disallowed_mojo_interfacer   r   r   c                 C  sR   | t |d t|d d|v rt|d nd d|v r%t|d dS d dS )NrU   rU  prerenderStatusdisallowedMojoInterface)rU   rU  rZ  r[  )rP   r   r   rd   r   r   r   r   r   r     s   z PrerenderStatusUpdated.from_jsonN)r   r   r   rY  r:  r   r   r   r   rY    s   
 rY  z'Preload.preloadingAttemptSourcesUpdatedc                   @  s0   e Zd ZU dZded< ded< e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   r   c                 C  s&   | t j|d dd |d D dS )Nr0   c                 S  ra   r   )rT   r   rZ   r   r   r   r]      rc   z=PreloadingAttemptSourcesUpdated.from_json.<locals>.<listcomp>preloadingAttemptSources)r'   r_  )r   r8   r   r   r   r   r   r     s   z)PreloadingAttemptSourcesUpdated.from_jsonN)r   r   r   r^  r:  r   r   r   r   r^    s   
 r^  )r   r-  )"
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r   r
   r$   Enumr;   rF   rK   rP   rT   rd   r   r   r2  r4  r5  r;  r<  rG  rS  rY  r^  r   r   r   r   <module>   sX   H$L
,

