
    $)f                   (   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 dd	l	mZ dd
l	mZ ddl	mZ  G d de      Ze G d d             Ze G d d             Ze G d d             Ze G d d             Z G d de      Z G d dej.                        Ze G d d             Ze G d d             Z G d dej.                        Ze G d  d!             Ze G d" d#             Ze G d$ d%             Ze G d& d'             Ze G d( d)             Z e G d* d+             Z!e G d, d-             Z" G d. d/ej.                        Z# G d0 d1ej.                        Z$e G d2 d3             Z%e G d4 d5             Z& G d6 d7ej.                        Z'	 	 	 	 dd8Z(	 d	 	 	 	 	 dd9Z)dd:Z*	 	 	 	 d	 	 	 	 	 	 	 	 	 dd;Z+	 d	 	 	 dd<Z,dd=Z-dd>Z.dd?Z/	 	 d	 	 	 	 	 	 	 dd@Z0	 	 	 	 	 	 ddAZ1ddBZ2ddCZ3ddDZ4ddEZ5ddFZ6ddGZ7ddHZ8ddIZ9ddJZ:ddKZ;	 	 	 	 	 	 ddLZ<ddMZ=	 d	 	 	 	 	 ddNZ>	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddOZ?	 	 	 	 ddPZ@	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddQZA	 	 d	 	 	 	 	 ddRZB	 	 	 	 ddSZC	 	 	 	 ddTZD	 	 	 	 ddUZE	 	 d	 	 	 	 	 	 	 	 	 	 	 ddVZF	 	 	 	 ddWZG	 	 	 	 ddXZH	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ddYZI	 	 	 	 	 	 	 	 ddZZJ	 	 	 	 dd[ZK	 	 	 	 dd\ZL	 	 	 	 	 	 dd]ZM	 d	 	 	 	 	 dd^ZN	 	 	 d	 	 	 	 	 	 	 dd_ZO	 	 	 	 dd`ZP	 d	 	 	 	 	 ddaZQ	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 ddbZRddcZSdddZTddeZU	 	 	 	 ddfZVddgZW	 	 	 	 ddhZX	 	 	 	 	 	 ddiZYddjZZ	 d	 	 	 	 	 ddkZ[ddlZ\	 	 	 	 ddmZ] edn      e G do dp                    Z^ edq      e G dr ds                    Z_ edt      e G du dv                    Z` edw      e G dx dy                    Za edz      e G d{ d|                    Zb ed}      e G d~ d                    Zc ed      e G d d                    Zd ed      e G d d                    Ze ed      e G d d                    Zf ed      e G d d                    Zg ed      e G d d                    Zh ed      e G d d                    Zi ed      e G d d                    Zj ed      e G d d                    Zk ed      e G d d                    Zl ed      e G d d                    Zm ed      e G d d                    Zn ed      e G d d                    Zo ed      e G d d                    Zp ed      e G d d                    Zq ed      e G d d                    Zr ed      e G d d                    Zs ed      e G d d                    Zt ed      e G d d                    Zuy)    )annotations   )event_classT_JSON_DICT)	dataclassN)debugger)dom)	emulation)io)network)runtimec                  <     e Zd ZdZddZedd       Z fdZ xZS )FrameIdz"
    Unique frame identifier.
    c                    | S N selfs    h/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/page.pyto_jsonzFrameId.to_json           c                     | |      S r   r   clsjsons     r   	from_jsonzFrameId.from_json       4yr   c                >    dj                  t        | 	               S )NzFrameId({})formatsuper__repr__r   	__class__s    r   r#   zFrameId.__repr__   s    ##EG$4$677r   returnstr)r   r(   r'   r   	__name__
__module____qualname____doc__r   classmethodr   r#   __classcell__r%   s   @r   r   r      s+      8 8r   r   c                      e Zd ZU dZded<   ded<   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	e
d        Zy
)Framez2
    Information about the Frame on the page.
    r   id_network.LoaderId	loader_idr(   urlsecurity_origin	mime_typeNtyping.Optional[str]	parent_idnameurl_fragmentunreachable_urlc                   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  |d<   | j
                  |d<   | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d	<   |S )
NidloaderIdr6   securityOriginmimeTypeparentIdr;   urlFragmentunreachableUrl)dictr3   r   r5   r6   r7   r8   r:   r;   r<   r=   r   r   s     r   r   zFrame.to_jsonC   s    vXX%%'T
>>113ZhhU!%!5!5>>Z>>%#~~D99 99DL("&"3"3D+%)%9%9D!"r   c                r    | t         j                  |d         t        j                  j                  |d         t	        |d         t	        |d         t	        |d         d|v rt	        |d         nd d|v rt	        |d         nd d|v rt	        |d         nd d	|v rt	        |d	         
	      S d 
	      S )Nr?   r@   r6   rA   rB   rC   r;   rD   rE   )	r3   r5   r6   r7   r8   r:   r;   r<   r=   )r   r   r   LoaderIdr(   r   s     r   r   zFrame.from_jsonT   s    !!$t*-&&00j1ABDK %5 67$z*+/9T/Ac$z*+t&,nT&\"$5Bd5JT-01PT;Kt;SC%5 67

 
	
 Z^

 
	
r   )r*   r+   r,   r-   __annotations__r:   r;   r<   r=   r   r.   r   r   r   r   r2   r2   #   sy     
L   
H  N '+I#* "&D
% *.L&- -1O)0" 
 
r   r2   c                  ~    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	e
d        Zy)FrameResourcez5
    Information about the Resource on the page.
    r(   r6   znetwork.ResourceTypetype_r8   N'typing.Optional[network.TimeSinceEpoch]last_modifiedtyping.Optional[float]content_sizetyping.Optional[bool]failedcanceledc                   t               }| j                  |d<   | j                  j                         |d<   | j                  |d<   | j
                  | j
                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )Nr6   typerB   lastModifiedcontentSizerS   rT   )	rF   r6   rM   r   r8   rO   rQ   rS   rT   rG   s     r   r   zFrameResource.to_json}   s    vhhUzz))+V>>Z)#'#5#5#=#=#?D ("&"3"3D;;"![[DN==$#}}Dr   c                R    | t        |d         t        j                  j                  |d         t        |d         d|v r"t        j                  j                  |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )	Nr6   rV   rB   rW   rX   rS   rT   )r6   rM   r8   rO   rQ   rS   rT   )r(   r   ResourceTyper   TimeSinceEpochfloatboolr   s     r   r   zFrameResource.from_json   s    DK &&00f>$z*+TbfjTj'00::4;OPpt7D7LtM23RV+3t+;4X'/9T/AT$z*+
 	
 HL
 	
r   )r*   r+   r,   r-   rJ   rO   rQ   rS   rT   r   r.   r   r   r   r   rL   rL   c   sk     
H   N >BM:A ,0L(/ %)F!( '+H#* 	
 	
r   rL   c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)FrameResourceTreezR
    Information about the Frame hierarchy along with their cached resources.
    r2   frameztyping.List[FrameResource]	resourcesNz/typing.Optional[typing.List[FrameResourceTree]]child_framesc                ,   t               }| j                  j                         |d<   | j                  D cg c]  }|j                          c}|d<   | j                  +| j                  D cg c]  }|j                          c}|d<   |S c c}w c c}w )Nr`   ra   childFrames)rF   r`   r   ra   rb   r   r   is      r   r   zFrameResourceTree.to_json   sy    v

**,W26..AQQYY[A[(8<8I8I"J1199;"JD B"Js   B-Bc           
          | t         j                  |d         |d   D cg c]  }t        j                  |       c}d|v r+|d   D cg c]  }t        j                  |       c}      S d       S c c}w c c}w )Nr`   ra   rd   )r`   ra   rb   )r2   r   rL   r_   r   r   rf   s      r   r   zFrameResourceTree.from_json   s{    //$w-0;?;LMa}..q1MZgkoZo$}BUVQ+55a8V
 	
 vz
 	
MVs   A5

A:	r*   r+   r,   r-   rJ   rb   r   r.   r   r   r   r   r_   r_      s>     L *) EILAH 
 
r   r_   c                  @    e Zd ZU dZded<   dZded<   d Zed        Zy)		FrameTreez0
    Information about the Frame hierarchy.
    r2   r`   Nz'typing.Optional[typing.List[FrameTree]]rb   c                    t               }| j                  j                         |d<   | j                  +| j                  D cg c]  }|j                          c}|d<   |S c c}w )Nr`   rd   )rF   r`   r   rb   re   s      r   r   zFrameTree.to_json   sW    v

**,W(8<8I8I"J1199;"JD #Ks   A!c           	          | t         j                  |d         d|v r+|d   D cg c]  }t        j                  |       c}      S d       S c c}w )Nr`   rd   )r`   rb   )r2   r   rk   rh   s      r   r   zFrameTree.from_json   sU    //$w-0R_cgRg$}:MNQ)--a0N
 	
mq
 	
Ns   A
ri   r   r   r   rk   rk      s5     L =AL9@ 
 
r   rk   c                  <     e Zd ZdZddZedd       Z fdZ xZS )ScriptIdentifierz#
    Unique script identifier.
    c                    | S r   r   r   s    r   r   zScriptIdentifier.to_json   r   r   c                     | |      S r   r   r   s     r   r   zScriptIdentifier.from_json   r   r   c                >    dj                  t        | 	               S )NzScriptIdentifier({})r    r$   s    r   r#   zScriptIdentifier.__repr__   s    %,,UW-=-?@@r   r&   )r   r(   r'   ro   r)   r0   s   @r   ro   ro      s-      A Ar   ro   c                  Z    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ed        Zy)TransitionTypez
    Transition type.
    linktypedaddress_barauto_bookmarkauto_subframemanual_subframe	generatedauto_toplevelform_submitreloadkeywordkeyword_generatedotherc                    | j                   S r   valuer   s    r   r   zTransitionType.to_json       zzr   c                     | |      S r   r   r   s     r   r   zTransitionType.from_json   r   r   N)r*   r+   r,   r-   LINKTYPEDADDRESS_BARAUTO_BOOKMARKAUTO_SUBFRAMEMANUAL_SUBFRAME	GENERATEDAUTO_TOPLEVELFORM_SUBMITRELOADKEYWORDKEYWORD_GENERATEDOTHERr   r.   r   r   r   r   rt   rt      sd     DEK#M#M'OI#MKFG+E  r   rt   c                  Z    e Zd ZU dZded<   ded<   ded<   ded<   ded	<   d
 Zed        Zy)NavigationEntryz#
    Navigation history entry.
    intr3   r(   r6   user_typed_urltitlert   transition_typec                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  j                         |d<   |S )Nr?   r6   userTypedURLr   transitionType)rF   r3   r6   r   r   r   r   rG   s     r   r   zNavigationEntry.to_json  s_    vXXT
hhU#22^

W!%!5!5!=!=!?r   c           
          | t        |d         t        |d         t        |d         t        |d         t        j                  |d               S )Nr?   r6   r   r   r   )r3   r6   r   r   r   )r   r(   rt   r   r   s     r   r   zNavigationEntry.from_json  sS    DJDK tN34d7m$*44T:J5KL
 	
r   Nr*   r+   r,   r-   rJ   r   r.   r   r   r   r   r   r      sE     
H 
H  J $# 
 
r   r   c                  r    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<   d	Zd
ed<   d Zed        Zy	)ScreencastFrameMetadataz$
    Screencast frame metadata.
    r\   
offset_toppage_scale_factordevice_widthdevice_heightscroll_offset_xscroll_offset_yNrN   	timestampc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  |d<   | j                  |d<   | j                  | j                  j                         |d<   |S )N	offsetToppageScaleFactordeviceWidthdeviceHeightscrollOffsetXscrollOffsetYr   )	rF   r   r   r   r   r   r   r   r   rG   s     r   r   zScreencastFrameMetadata.to_json=  s    v OO["&"8"8"//]#11^ $ 4 4_ $ 4 4_>>% $ 6 6 8Dr   c                    | t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         d|v r't        j                  j                  |d               S d       S )	Nr   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r\   r   r[   r   r   s     r   r   z!ScreencastFrameMetadata.from_jsonI  s    T+./#D):$;<tM23^ 45!$"78!$"78MX\`M`g,,66tK7HI
 	
 gk
 	
r   )	r*   r+   r,   r-   rJ   r   r   r.   r   r   r   r   r   r   #  s]           :>I6=
 	
 	
r   r   c                  6    e Zd ZdZdZdZdZdZd Ze	d        Z
y)	
DialogTypez!
    Javascript dialog type.
    alertconfirmpromptbeforeunloadc                    | j                   S r   r   r   s    r   r   zDialogType.to_json_  r   r   c                     | |      S r   r   r   s     r   r   zDialogType.from_jsonb  r   r   N)r*   r+   r,   r-   ALERTCONFIRMPROMPTBEFOREUNLOADr   r.   r   r   r   r   r   r   V  s6     EGF!L  r   r   c                  P    e Zd ZU dZded<   ded<   ded<   ded<   d Zed	        Zy
)AppManifestErrorz*
    Error while paring app manifest.
    r(   messager   criticallinecolumnc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   r   )rF   r   r   r   r   rG   s     r   r   zAppManifestError.to_jsonx  sC    v,,Y==ZyyVXr   c           	     z     | t        |d         t        |d         t        |d         t        |d               S )Nr   r   r   r   )r   r   r   r   )r(   r   r   s     r   r   zAppManifestError.from_json  s@    Y(j)*T&\"tH~&	
 	
r   Nr   r   r   r   r   r   g  s<     L M I K 
 
r   r   c                  2    e Zd ZU dZded<   d Zed        Zy)AppManifestParsedPropertiesz)
    Parsed app manifest properties.
    r(   scopec                8    t               }| j                  |d<   |S )Nr   )rF   r   rG   s     r   r   z#AppManifestParsedProperties.to_json  s    v

Wr   c                ,     | t        |d               S )Nr   )r   r(   r   s     r   r   z%AppManifestParsedProperties.from_json  s    d7m$
 	
r   Nr   r   r   r   r   r     s'     J
 
 
r   r   c                  P    e Zd ZU dZded<   ded<   ded<   ded<   d Zed        Zy	)
LayoutViewportz2
    Layout viewport position and dimensions.
    r   page_xpage_yclient_widthclient_heightc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   |S )NpageXpageYclientWidthclientHeight)rF   r   r   r   r   rG   s     r   r   zLayoutViewport.to_json  sH    vWW"//]#11^r   c           	     z     | t        |d         t        |d         t        |d         t        |d               S )Nr   r   r   r   )r   r   r   r   r   r   s     r   r   zLayoutViewport.from_json  sA    tG}%tG}%T-01d>23	
 	
r   Nr   r   r   r   r   r     s>     K K   
 
r   r   c                  |    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<   ded	<   d
Zded<   d Zed        Zy
)VisualViewportz:
    Visual viewport position, dimensions, and scale.
    r\   offset_xoffset_yr   r   r   r   scaleNrP   zoomc                "   t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  |d<   | j                  |d<   | j                  |d<   | j                  | j                  |d<   |S )	NoffsetXoffsetYr   r   r   r   r   r   )	rF   r   r   r   r   r   r   r   r   rG   s     r   r   zVisualViewport.to_json  s    v--Y--YWW"//]#11^

W99 99DLr   c                     | t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         t        |d         d|v rt        |d         	      S d 	      S )
Nr   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r\   r   s     r   r   zVisualViewport.from_json  s    4	?+4	?+g'g'tM23^ 45W&(.$tF|$	
 		
 =A	
 		
r   )	r*   r+   r,   r-   rJ   r   r   r.   r   r   r   r   r   r     s`     O O M M   L $(D
 ' 

 

r   r   c                  Z    e Zd ZU dZded<   ded<   ded<   ded<   ded<   d Zed	        Zy
)Viewportz,
    Viewport for capturing screenshot.
    r\   xywidthheightr   c                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  |d<   | j
                  |d<   |S )Nr   r   r   r   r   )rF   r   r   r   r   r   rG   s     r   r   zViewport.to_json  sO    vFFS	FFS	

WX

Wr   c           
          | t        |d         t        |d         t        |d         t        |d         t        |d               S )Nr   r   r   r   r   )r   r   r   r   r   r   r   s     r   r   zViewport.from_json  sK    DIDIW&h(W&
 	
r   Nr   r   r   r   r   r     sC     H H L M L 
 
r   r   c                      e Zd ZU dZ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Z
ded	<   dZded
<   d Zed        Zy)FontFamiliesz+
    Generic font families collection.
    Nr9   standardfixedserif
sans_serifcursivefantasy
pictographc                   t               }| j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )Nr   r   r   	sansSerifr   r   r   )rF   r   r   r   r   r   r   r   rG   s     r   r   zFontFamilies.to_json;  s    v==$#}}D::! JJDM::! JJDM??& $D<<#"llDO<<#"llDO??&!%Dr   c                &    | d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d               S d       S )	Nr   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   s     r   r   zFontFamilies.from_jsonM  s    .8D.@Sj)*d(/4#d7m$T(/4#d7m$T1<1Ds4,-$,5,=CY(4,5,=CY(42>$2Fs4-.
 	
 MQ
 	
r   )r*   r+   r,   r-   r   rJ   r   r   r   r   r   r   r   r.   r   r   r   r   r   r   !  s{     &*H") #'E& #'E& (,J$+ %)G!( %)G!( (,J$+$ 	
 	
r   r   c                  D    e Zd ZU dZdZded<   dZded<   d Zed        Z	y)	FontSizesz
    Default font sizes.
    Ntyping.Optional[int]r   r   c                    t               }| j                  | j                  |d<   | j                  | j                  |d<   |S )Nr   r   )rF   r   r   rG   s     r   r   zFontSizes.to_jsone  s=    v==$#}}D::! JJDMr   c                h     | d|v rt        |d         nd d|v rt        |d               S d       S )Nr   r   )r   r   r   r   s     r   r   zFontSizes.from_jsonm  sD    .8D.@Sj)*d(/4#d7m$
 	
=A
 	
r   )
r*   r+   r,   r-   r   rJ   r   r   r.   r   r   r   r   r   r   Z  s:     &*H") #'E& 
 
r   r   c                  B    e Zd ZdZdZdZdZdZdZdZ	dZ
d	 Zed
        Zy)ClientNavigationReasonformSubmissionGetformSubmissionPosthttpHeaderRefreshscriptInitiatedmetaTagRefreshpageBlockInterstitialr~   anchorClickc                    | j                   S r   r   r   s    r   r   zClientNavigationReason.to_json  r   r   c                     | |      S r   r   r   s     r   r   z ClientNavigationReason.from_json  r   r   N)r*   r+   r,   FORM_SUBMISSION_GETFORM_SUBMISSION_POSTHTTP_HEADER_REFRESHSCRIPT_INITIATEDMETA_TAG_REFRESHPAGE_BLOCK_INTERSTITIALr   ANCHOR_CLICKr   r.   r   r   r   r   r   r   u  sI    -/-('5F L  r   r   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)ClientNavigationDisposition
currentTabnewTab	newWindowdownloadc                    | j                   S r   r   r   s    r   r   z#ClientNavigationDisposition.to_json  r   r   c                     | |      S r   r   r   s     r   r   z%ClientNavigationDisposition.from_json  r   r   N)
r*   r+   r,   CURRENT_TABNEW_TAB
NEW_WINDOWDOWNLOADr   r.   r   r   r   r   r  r    s/    KGJH  r   r  c                  8    e Zd ZU ded<   ded<   d Zed        Zy)InstallabilityErrorArgumentr(   r;   r   c                V    t               }| j                  |d<   | j                  |d<   |S )Nr;   r   )rF   r;   r   rG   s     r   r   z#InstallabilityErrorArgument.to_json  s(    vyyV

Wr   c                F     | t        |d         t        |d               S )Nr;   r   )r;   r   r   r   s     r   r   z%InstallabilityErrorArgument.from_json  s'    T&\"d7m$
 	
r   N)r*   r+   r,   rJ   r   r.   r   r   r   r   r  r    s)     I J 
 
r   r  c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	InstallabilityErrorz"
    The installability error
    r(   error_idz(typing.List[InstallabilityErrorArgument]error_argumentsc                    t               }| j                  |d<   | j                  D cg c]  }|j                          c}|d<   |S c c}w )NerrorIderrorArguments)rF   r  r   r   re   s      r   r   zInstallabilityError.to_json  sC    v--Y7;7K7K!L!!))+!L "Ms   Ac           	          | t        |d         |d   D cg c]  }t        j                  |       c}      S c c}w )Nr"  r#  )r  r   )r(   r  r   rh   s      r   r   zInstallabilityError.from_json  s>    i)OSTdOef!8BB1Ef
 	
fs   ;
Nr   r   r   r   r  r    s/     M >= 
 
r   r  c                  F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zed        Zy)ReferrerPolicyz7
    The referring-policy used for the navigation.
    
noReferrernoReferrerWhenDowngradeoriginoriginWhenCrossOrigin
sameOriginstrictOriginstrictOriginWhenCrossOrigin	unsafeUrlc                    | j                   S r   r   r   s    r   r   zReferrerPolicy.to_json  r   r   c                     | |      S r   r   r   s     r   r   zReferrerPolicy.from_json  r   r   N)r*   r+   r,   r-   NO_REFERRERNO_REFERRER_WHEN_DOWNGRADEORIGINORIGIN_WHEN_CROSS_ORIGINSAME_ORIGINSTRICT_ORIGINSTRICT_ORIGIN_WHEN_CROSS_ORIGIN
UNSAFE_URLr   r.   r   r   r   r   r&  r&    sM     K!:F6K"M&C#J  r   r&  c              #  j   K   t               }| |d<   d|d}|}t        j                  |d         S w)z
    Deprecated, please use addScriptToEvaluateOnNewDocument instead.

    **EXPERIMENTAL**

    :param script_source:
    :returns: Identifier of the added script.
    scriptSourcezPage.addScriptToEvaluateOnLoadmethodparams
identifierrF   ro   r   )script_sourcer=  cmd_dictr   s       r   add_script_to_evaluate_on_loadrB    sE      &F*F>2H >D%%d<&899s   13c              #  x   K   t               }| |d<   |||d<   d|d}|}t        j                  |d         S w)a  
    Evaluates given script in every frame upon creation (before loading frame's scripts).

    :param source:
    :param world_name: **(EXPERIMENTAL)** *(Optional)* If specified, creates an isolated world with the given name and evaluates given script in it. This world name will be used as the ExecutionContextDescription::name when the corresponding event is emitted.
    :returns: Identifier of the added script.
    source	worldNamez%Page.addScriptToEvaluateOnNewDocumentr;  r>  r?  )rD  
world_namer=  rA  r   s        r   &add_script_to_evaluate_on_new_documentrG    sU      &FF8({9H >D%%d<&899   8:c               #     K   ddi} | }yw)z/
    Brings page to front (activates tab).
    r<  zPage.bringToFrontNr   rA  r   s     r   bring_to_frontrK    s     
 	%H >D   
c              #     K   t               }| | |d<   |||d<   ||j                         |d<   |||d<   d|d}|}t        |d         S w)a  
    Capture page screenshot.

    :param format_: *(Optional)* Image compression format (defaults to png).
    :param quality: *(Optional)* Compression quality from range [0..100] (jpeg only).
    :param clip: *(Optional)* Capture the screenshot of a given region only.
    :param from_surface: **(EXPERIMENTAL)** *(Optional)* Capture the screenshot from the surface, rather than the view. Defaults to true.
    :returns: Base64-encoded image data.
    r!   qualityclipfromSurfacezPage.captureScreenshotr;  data)rF   r   r(   )format_rN  rO  from_surfacer=  rA  r   s          r   capture_screenshotrT    sy      &F"x#yv ,}*H >DtF|s   AAc              #  Z   K   t               }| | |d<   d|d}|}t        |d         S w)a"  
    Returns a snapshot of the page as a string. For MHTML format, the serialization includes
    iframes, shadow DOM, external resources, and element-inline styles.

    **EXPERIMENTAL**

    :param format_: *(Optional)* Format (defaults to mhtml).
    :returns: Serialized page data.
    r!   zPage.captureSnapshotr;  rQ  )rF   r(   )rR  r=  rA  r   s       r   capture_snapshotrV  /  sD      &F"x(H >DtF|s   )+c               #     K   ddi} | }yw)zE
    Clears the overridden device metrics.

    **EXPERIMENTAL**
    r<  zPage.clearDeviceMetricsOverrideNr   rJ  s     r   clear_device_metrics_overriderX  F  s      	3H >DrL  c               #     K   ddi} | }yw)zI
    Clears the overridden Device Orientation.

    **EXPERIMENTAL**
    r<  z#Page.clearDeviceOrientationOverrideNr   rJ  s     r   !clear_device_orientation_overriderZ  R  s      	7H >DrL  c               #     K   ddi} | }yw)z?
    Clears the overridden Geolocation Position and Error.
    r<  zPage.clearGeolocationOverrideNr   rJ  s     r   clear_geolocation_overrider\  ^  s     
 	1H >DrL  c              #     K   t               }| j                         |d<   |||d<   |||d<   d|d}|}t        j                  j	                  |d         S w)a  
    Creates an isolated world for the given frame.

    :param frame_id: Id of the frame in which the isolated world should be created.
    :param world_name: *(Optional)* An optional name which is reported in the Execution Context.
    :param grant_univeral_access: *(Optional)* Whether or not universal access should be granted to the isolated world. This is a powerful option, use with caution.
    :returns: Execution context of the isolated world.
    frameIdrE  grantUniveralAccesszPage.createIsolatedWorldr;  executionContextId)rF   r   r   ExecutionContextIdr   )frame_idrF  grant_univeral_accessr=  rA  r   s         r   create_isolated_worldrd  h  sv      &F ((*F9({((=$%,H >D%%//5I0JKKs   AAc              #  F   K   t               }| |d<   ||d<   d|d}|}yw)z
    Deletes browser cookie with given name, domain and path.

    **EXPERIMENTAL**

    :param cookie_name: Name of the cookie to remove.
    :param url: URL to match cooke domain and path.
    
cookieNamer6   zPage.deleteCookier;  NrF   )cookie_namer6   r=  rA  r   s        r   delete_cookieri    s8      &F&F<F5M%H >D   !c               #     K   ddi} | }yw)z-
    Disables page domain notifications.
    r<  zPage.disableNr   rJ  s     r   disablerl    s     
 	.H >DrL  c               #     K   ddi} | }yw)z,
    Enables page domain notifications.
    r<  zPage.enableNr   rJ  s     r   enablern    s     
 	-H >DrL  c               #     K   ddi} | }t        |d         |d   D cg c]  }t        j                  |       c}d|v rt        |d         ndd|v rt        j                  |d         fS dfS c c}w w)z


    :returns: A tuple with the following items:

        0. **url** - Manifest location.
        1. **errors** - 
        2. **data** - *(Optional)* Manifest content.
        3. **parsed** - *(Optional)* Parsed manifest properties
    r<  zPage.getAppManifestr6   errorsrQ  Nparsed)r(   r   r   r   rA  r   rf   s      r   get_app_manifestrs    s      	'H >DDK04X?1		#	#A	&?#t^DLAITAQ#--d8n=	  X\	 ?s   A5A0:A5c               #  p   K   ddi} | }|d   D cg c]  }t         j                  |       c}S c c}w w),


    **EXPERIMENTAL**

    :returns: 
    r<  zPage.getInstallabilityErrorsinstallabilityErrors)r  r   rr  s      r   get_installability_errorsrw    sD      	0H >D6:;Q6RS))!,SSSs   616c               #  B   K   ddi} | }d|v rt        |d         S dS w)ru  r<  zPage.getManifestIconsprimaryIconNr   rJ  s     r   get_manifest_iconsrz    s:      	)H >D'4'<3tM"#F$Fs   c               #     K   ddi} | }|d   D cg c]!  }t         j                  j                  |      # c}S c c}w w)z
    Returns all browser cookies. Depending on the backend support, will return detailed cookie
    information in the ``cookies`` field.

    **EXPERIMENTAL**

    :returns: Array of cookie objects.
    r<  zPage.getCookiescookies)r   Cookier   rr  s      r   get_cookiesr~    sE      	#H >D15iAAGNN$$Q'AAAs   A &;A c               #  J   K   ddi} | }t         j                  |d         S w)z\
    Returns present frame tree structure.

    :returns: Present frame tree structure.
    r<  zPage.getFrameTree	frameTree)rk   r   rJ  s     r   get_frame_treer    s4      	%H >DtK011   !#c               #     K   ddi} | }t         j                  |d         t        j                  |d         t        j                  j                  |d         fS w)aY  
    Returns metrics relating to the layouting of the page, such as viewport bounds/scale.

    :returns: A tuple with the following items:

        0. **layoutViewport** - Metrics relating to the layout viewport.
        1. **visualViewport** - Metrics relating to the visual viewport.
        2. **contentSize** - Size of scrollable area.
    r<  zPage.getLayoutMetricslayoutViewportvisualViewportrX   )r   r   r   r	   RectrJ  s     r   get_layout_metricsr    sg      	)H >D  &6!78  &6!784./ s   AAc               #     K   ddi} | }t        |d         |d   D cg c]  }t        j                  |       c}fS c c}w w)z
    Returns navigation history for the current page.

    :returns: A tuple with the following items:

        0. **currentIndex** - Index of the current navigation history entry.
        1. **entries** - Array of navigation history entries.
    r<  zPage.getNavigationHistorycurrentIndexentries)r   r   r   rr  s      r   get_navigation_historyr    sU      	-H >DD !/3I?!	"	"1	%? ?s   A?	Ac               #     K   ddi} | }yw)z9
    Resets navigation history for the current page.
    r<  zPage.resetNavigationHistoryNr   rJ  s     r   reset_navigation_historyr  '  s     
 	/H >DrL  c              #     K   t               }| j                         |d<   ||d<   d|d}|}t        |d         t        |d         fS w)aT  
    Returns content of the given resource.

    **EXPERIMENTAL**

    :param frame_id: Frame id to get resource for.
    :param url: URL of the resource to get content for.
    :returns: A tuple with the following items:

        0. **content** - Resource content.
        1. **base64Encoded** - True, if content was served as base64.
    r^  r6   zPage.getResourceContentr;  contentbase64Encoded)rF   r   r(   r]   )rb  r6   r=  rA  r   s        r   get_resource_contentr  1  sd       &F ((*F9F5M+H >DDOT/"# s   AA
c               #  J   K   ddi} | }t         j                  |d         S w)z
    Returns present frame / resource tree structure.

    **EXPERIMENTAL**

    :returns: Present frame / resource tree structure.
    r<  zPage.getResourceTreer  )r_   r   rJ  s     r   get_resource_treer  O  s4      	(H >D&&tK'899r  c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)a,  
    Accepts or dismisses a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload).

    :param accept: Whether to accept or dismiss the dialog.
    :param prompt_text: *(Optional)* The text to enter into the dialog prompt before accepting. Used only if this is a prompt dialog.
    acceptN
promptTextzPage.handleJavaScriptDialogr;  rg  )r  prompt_textr=  rA  r   s        r   handle_java_script_dialogr  ^  s?      &FF8*|/H >Dr  c              #  n  K   t               }| |d<   |||d<   ||j                         |d<   ||j                         |d<   ||j                         |d<   d|d}|}t        j                  |d         d	|v r"t        j
                  j                  |d	         ndd
|v rt        |d
         fS dfS w)a  
    Navigates current page to the given URL.

    :param url: URL to navigate the page to.
    :param referrer: *(Optional)* Referrer URL.
    :param transition_type: *(Optional)* Intended transition type.
    :param frame_id: *(Optional)* Frame id to navigate, if not specified navigates the top frame.
    :param referrer_policy: **(EXPERIMENTAL)** *(Optional)* Referrer-policy used for the navigation.
    :returns: A tuple with the following items:

        0. **frameId** - Frame id that has navigated (or failed to navigate)
        1. **loaderId** - *(Optional)* Loader identifier.
        2. **errorText** - *(Optional)* User friendly error message, present if and only if navigation has failed.
    r6   Nreferrerr   r^  referrerPolicyzPage.navigater;  r@   	errorText)rF   r   r   r   r   rI   r(   )r6   r  r   rb  referrer_policyr=  rA  r   s           r   navigater  s  s     * &FF5M%z"#2#:#:#< $,,.y"#2#:#:#< !H >D$y/*8Bd8J""4
#34PT"-"5D  <@ s   B3B5c              #  <   K   t               }| |d<   d|d}|}yw)zy
    Navigates current page to the given history entry.

    :param entry_id: Unique id of the entry to navigate to.
    entryIdzPage.navigateToHistoryEntryr;  Nrg  )entry_idr=  rA  r   s       r   navigate_to_history_entryr    s/      &F F9/H >D   c              #  ~  K   t               }| | |d<   |||d<   |||d<   |||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
|d<   |||d<   |||d<   |||d<   |||d<   |||d<   d|d}|}t        |d         d|v r#t        j                  j	                  |d         fS dfS w)a  
    Print page as PDF.

    :param landscape: *(Optional)* Paper orientation. Defaults to false.
    :param display_header_footer: *(Optional)* Display header and footer. Defaults to false.
    :param print_background: *(Optional)* Print background graphics. Defaults to false.
    :param scale: *(Optional)* Scale of the webpage rendering. Defaults to 1.
    :param paper_width: *(Optional)* Paper width in inches. Defaults to 8.5 inches.
    :param paper_height: *(Optional)* Paper height in inches. Defaults to 11 inches.
    :param margin_top: *(Optional)* Top margin in inches. Defaults to 1cm (~0.4 inches).
    :param margin_bottom: *(Optional)* Bottom margin in inches. Defaults to 1cm (~0.4 inches).
    :param margin_left: *(Optional)* Left margin in inches. Defaults to 1cm (~0.4 inches).
    :param margin_right: *(Optional)* Right margin in inches. Defaults to 1cm (~0.4 inches).
    :param page_ranges: *(Optional)* Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages.
    :param ignore_invalid_page_ranges: *(Optional)* Whether to silently ignore invalid but successfully parsed page ranges, such as '3-2'. Defaults to false.
    :param header_template: *(Optional)* HTML template for the print header. Should be valid HTML markup with following classes used to inject printing values into them: - ```date````: formatted print date - ````title````: document title - ````url````: document location - ````pageNumber````: current page number - ````totalPages````: total pages in the document  For example, ````<span class=title></span>```` would generate span containing the title.
    :param footer_template: *(Optional)* HTML template for the print footer. Should use the same format as the ````headerTemplate````.
    :param prefer_css_page_size: *(Optional)* Whether or not to prefer page size as defined by css. Defaults to false, in which case the content will be scaled to fit the paper size.
    :param transfer_mode: **(EXPERIMENTAL)** *(Optional)* return as stream
    :returns: A tuple with the following items:

        0. **data** - Base64-encoded pdf data. Empty if `` returnAsStream` is specified.
        1. **stream** - *(Optional)* A handle of the stream that holds resulting PDF data.
    N	landscapedisplayHeaderFooterprintBackgroundr   
paperWidthpaperHeight	marginTopmarginBottom
marginLeftmarginRight
pageRangesignoreInvalidPageRangesheaderTemplatefooterTemplatepreferCSSPageSizetransferModezPage.printToPDFr;  rQ  stream)rF   r(   r   StreamHandler   )r  display_header_footerprint_backgroundr   paper_widthpaper_height
margin_topmargin_bottommargin_leftmargin_rightpage_rangesignore_invalid_page_rangesheader_templatefooter_templateprefer_css_page_sizetransfer_moder=  rA  r   s                      r   print_to_pdfr    sk    T &F'{((=$%#$4 !w*| ,}({ !.~*| ,}*|!-,F()"#2 "#2 '&:"# !.~#H >DDL5=5E!!$x.1 KO s   B;B=c              #  N   K   t               }| | |d<   |||d<   d|d}|}yw)an  
    Reloads given page optionally ignoring the cache.

    :param ignore_cache: *(Optional)* If true, browser cache is ignored (as if the user pressed Shift+refresh).
    :param script_to_evaluate_on_load: *(Optional)* If set, the script will be injected into all frames of the inspected page after reload. Argument will be ignored if reloading dataURL origin.
    NignoreCachescriptToEvaluateOnLoadzPage.reloadr;  rg  )ignore_cachescript_to_evaluate_on_loadr=  rA  r   s        r   r~   r~     sF      &F ,}!-+E'(H >Ds   #%c              #  X   K   t               }| j                         |d<   d|d}|}yw)z{
    Deprecated, please use removeScriptToEvaluateOnNewDocument instead.

    **EXPERIMENTAL**

    :param identifier:
    r>  z!Page.removeScriptToEvaluateOnLoadr;  NrF   r   r>  r=  rA  r   s       r   !remove_script_to_evaluate_on_loadr    s8      &F%--/F<5H >D   (*c              #  X   K   t               }| j                         |d<   d|d}|}yw)zE
    Removes given script from the list.

    :param identifier:
    r>  z(Page.removeScriptToEvaluateOnNewDocumentr;  Nr  r  s       r   )remove_script_to_evaluate_on_new_documentr  .  s8      &F%--/F<<H >Dr  c              #  <   K   t               }| |d<   d|d}|}yw)z
    Acknowledges that a screencast frame has been received by the frontend.

    **EXPERIMENTAL**

    :param session_id: Frame number.
    	sessionIdzPage.screencastFrameAckr;  Nrg  )
session_idr=  rA  r   s       r   screencast_frame_ackr  ?  s/      &F$F;+H >Dr  c              #     K   t               }| j                         |d<   ||d<   ||d<   |||d<   |||d<   d|d}|}|d   D cg c]!  }t        j                  j	                  |      # c}S c c}w w)	a  
    Searches for given string in resource content.

    **EXPERIMENTAL**

    :param frame_id: Frame id for resource to search in.
    :param url: URL of the resource to search in.
    :param query: String to search for.
    :param case_sensitive: *(Optional)* If true, search is case sensitive.
    :param is_regex: *(Optional)* If true, treats string parameter as regex.
    :returns: List of search matches.
    r^  r6   querycaseSensitiveisRegexzPage.searchInResourcer;  result)rF   r   r   SearchMatchr   )	rb  r6   r  case_sensitiveis_regexr=  rA  r   rf   s	            r   search_in_resourcer  R  s     & &F ((*F9F5MF7O!"0$y)H >D7;H~F!H  **1-FFFs   AA6&A1.A6c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enable Chrome's experimental ad filter on all sites.

    **EXPERIMENTAL**

    :param enabled: Whether to block ads.
    enabledzPage.setAdBlockingEnabledr;  Nrg  r  r=  rA  r   s       r   set_ad_blocking_enabledr  u  s/      &FF9-H >Dr  c              #  <   K   t               }| |d<   d|d}|}yw)z
    Enable page Content Security Policy by-passing.

    **EXPERIMENTAL**

    :param enabled: Whether to bypass page CSP.
    r  zPage.setBypassCSPr;  Nrg  r  s       r   set_bypass_cspr    s/      &FF9%H >Dr  c              #    K   t               }| |d<   ||d<   ||d<   ||d<   |||d<   |||d<   |||d<   |||d	<   |||d
<   |	|	|d<   |
|
j                         |d<   ||j                         |d<   d|d}|}yw)a  
    Overrides the values of device screen dimensions (window.screen.width, window.screen.height,
    window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media
    query results).

    **EXPERIMENTAL**

    :param width: Overriding width value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param height: Overriding height value in pixels (minimum 0, maximum 10000000). 0 disables the override.
    :param device_scale_factor: Overriding device scale factor value. 0 disables the override.
    :param mobile: Whether to emulate mobile device. This includes viewport meta tag, overlay scrollbars, text autosizing and more.
    :param scale: *(Optional)* Scale to apply to resulting view image.
    :param screen_width: *(Optional)* Overriding screen width value in pixels (minimum 0, maximum 10000000).
    :param screen_height: *(Optional)* Overriding screen height value in pixels (minimum 0, maximum 10000000).
    :param position_x: *(Optional)* Overriding view X position on screen in pixels (minimum 0, maximum 10000000).
    :param position_y: *(Optional)* Overriding view Y position on screen in pixels (minimum 0, maximum 10000000).
    :param dont_set_visible_size: *(Optional)* Do not set visible view size, rely upon explicit setVisibleSize call.
    :param screen_orientation: *(Optional)* Screen orientation override.
    :param viewport: *(Optional)* The viewport dimensions and scale. If not set, the override is cleared.
    r   r   deviceScaleFactormobileNr   screenWidthscreenHeight	positionX	positionYdontSetVisibleSizescreenOrientationviewportzPage.setDeviceMetricsOverrider;  r  )r   r   device_scale_factorr  r   screen_widthscreen_height
position_x
position_ydont_set_visible_sizescreen_orientationr  r=  rA  r   s                  r   set_device_metrics_overrider    s     D &FF7OF8"5FF8w ,} !.~({({('<#$%&8&@&@&B"#%--/z1H >Ds   A=A?c              #  P   K   t               }| |d<   ||d<   ||d<   d|d}|}yw)z
    Overrides the Device Orientation.

    **EXPERIMENTAL**

    :param alpha: Mock alpha
    :param beta: Mock beta
    :param gamma: Mock gamma
    alphabetagammaz!Page.setDeviceOrientationOverrider;  Nrg  )r  r  r  r=  rA  r   s         r   set_device_orientation_overrider    s@      &FF7OF6NF7O5H >Ds   $&c              #  X   K   t               }| j                         |d<   d|d}|}yw)z
    Set generic font families.

    **EXPERIMENTAL**

    :param font_families: Specifies font families to set. If a font family is not specified, it won't be changed.
    fontFamilieszPage.setFontFamiliesr;  Nr  )font_familiesr=  rA  r   s       r   set_font_familiesr    s8      &F*224F>(H >Dr  c              #  X   K   t               }| j                         |d<   d|d}|}yw)z
    Set default font sizes.

    **EXPERIMENTAL**

    :param font_sizes: Specifies font sizes to set. If a font size is not specified, it won't be changed.
    	fontSizeszPage.setFontSizesr;  Nr  )
font_sizesr=  rA  r   s       r   set_font_sizesr    s8      &F$,,.F;%H >Dr  c              #  b   K   t               }| j                         |d<   ||d<   d|d}|}yw)z
    Sets given markup as the document's HTML.

    :param frame_id: Frame id to set HTML for.
    :param html: HTML content to set.
    r^  htmlzPage.setDocumentContentr;  Nr  )rb  r  r=  rA  r   s        r   set_document_contentr    sA      &F ((*F9F6N+H >Ds   -/c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)aT  
    Set the behavior when downloading a file.

    **EXPERIMENTAL**

    :param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny).
    :param download_path: *(Optional)* The default path to save downloaded files to. This is requred if behavior is set to 'allow'
    behaviorNdownloadPathzPage.setDownloadBehaviorr;  rg  )r  download_pathr=  rA  r   s        r   set_download_behaviorr
  ,  s?      &F!F: !.~,H >Dr  c              #  \   K   t               }| | |d<   |||d<   |||d<   d|d}|}yw)a  
    Overrides the Geolocation Position or Error. Omitting any of the parameters emulates position
    unavailable.

    :param latitude: *(Optional)* Mock latitude
    :param longitude: *(Optional)* Mock longitude
    :param accuracy: *(Optional)* Mock accuracy
    Nlatitude	longitudeaccuracyzPage.setGeolocationOverrider;  rg  )r  r  r  r=  rA  r   s         r   set_geolocation_overrider  C  sU      &F%z'{%z/H >Ds   *,c              #  <   K   t               }| |d<   d|d}|}yw)z
    Controls whether page will emit lifecycle events.

    **EXPERIMENTAL**

    :param enabled: If true, starts emitting lifecycle events.
    r  zPage.setLifecycleEventsEnabledr;  Nrg  r  s       r   set_lifecycle_events_enabledr  ^  s/      &FF92H >Dr  c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)a   
    Toggles mouse event-based touch event emulation.

    **EXPERIMENTAL**

    :param enabled: Whether the touch event emulation should be enabled.
    :param configuration: *(Optional)* Touch/gesture events configuration. Default: current platform.
    r  NconfigurationzPage.setTouchEmulationEnabledr;  rg  )r  r  r=  rA  r   s        r   set_touch_emulation_enabledr  q  s?      &FF9 "/1H >Dr  c              #  x   K   t               }| | |d<   |||d<   |||d<   |||d<   |||d<   d|d}|}yw)	a  
    Starts sending each frame using the ``screencastFrame`` event.

    **EXPERIMENTAL**

    :param format_: *(Optional)* Image compression format.
    :param quality: *(Optional)* Compression quality from range [0..100].
    :param max_width: *(Optional)* Maximum screenshot width.
    :param max_height: *(Optional)* Maximum screenshot height.
    :param every_nth_frame: *(Optional)* Send every n-th frame.
    Nr!   rN  maxWidth	maxHeighteveryNthFramezPage.startScreencastr;  rg  )rR  rN  	max_width
max_heightevery_nth_framer=  rA  r   s           r   start_screencastr    su     $ &F"x#y&z({""1(H >DrH  c               #     K   ddi} | }yw)zK
    Force the page stop all navigations and pending resource fetches.
    r<  zPage.stopLoadingNr   rJ  s     r   stop_loadingr    s     
 	$H >DrL  c               #     K   ddi} | }yw)zW
    Crashes renderer on the IO thread, generates minidumps.

    **EXPERIMENTAL**
    r<  z
Page.crashNr   rJ  s     r   crashr           	,H >DrL  c               #     K   ddi} | }yw)z\
    Tries to close page, running its beforeunload hooks, if any.

    **EXPERIMENTAL**
    r<  z
Page.closeNr   rJ  s     r   closer#    r!  rL  c              #  <   K   t               }| |d<   d|d}|}yw)z
    Tries to update the web lifecycle state of the page.
    It will transition the page to the given state according to:
    https://github.com/WICG/web-lifecycle/

    **EXPERIMENTAL**

    :param state: Target lifecycle state
    statezPage.setWebLifecycleStater;  Nrg  )r%  r=  rA  r   s       r   set_web_lifecycle_stater&    s.      &FF7O-H >Dr  c               #     K   ddi} | }yw)zT
    Stops sending each frame in the ``screencastFrame``.

    **EXPERIMENTAL**
    r<  zPage.stopScreencastNr   rJ  s     r   stop_screencastr(    s      	'H >DrL  c              #  <   K   t               }| |d<   d|d}|}yw)z{
    Forces compilation cache to be generated for every subresource script.

    **EXPERIMENTAL**

    :param enabled:
    r  zPage.setProduceCompilationCacher;  Nrg  r  s       r   set_produce_compilation_cacher*    s/      &FF93H >Dr  c              #  F   K   t               }| |d<   ||d<   d|d}|}yw)z
    Seeds compilation cache for given url. Compilation cache does not survive
    cross-process navigation.

    **EXPERIMENTAL**

    :param url:
    :param data: Base64-encoded data
    r6   rQ  zPage.addCompilationCacher;  Nrg  )r6   rQ  r=  rA  r   s        r   add_compilation_cacher,    s7      &FF5MF6N,H >Drj  c               #     K   ddi} | }yw)z@
    Clears seeded compilation cache.

    **EXPERIMENTAL**
    r<  zPage.clearCompilationCacheNr   rJ  s     r   clear_compilation_cacher.    s      	.H >DrL  c              #  J   K   t               }| |d<   |||d<   d|d}|}yw)z
    Generates a report for testing.

    **EXPERIMENTAL**

    :param message: Message to be displayed in the report.
    :param group: *(Optional)* Specifies the endpoint group to deliver the report to.
    r   NgroupzPage.generateTestReportr;  rg  )r   r0  r=  rA  r   s        r   generate_test_reportr1  %  s>      &FF9w+H >Dr  c               #     K   ddi} | }yw)zt
    Pauses page execution. Can be resumed using generic Runtime.runIfWaitingForDebugger.

    **EXPERIMENTAL**
    r<  zPage.waitForDebuggerNr   rJ  s     r   wait_for_debuggerr3  <  s      	(H >DrL  c              #  <   K   t               }| |d<   d|d}|}yw)a  
    Intercept file chooser requests and transfer control to protocol clients.
    When file chooser interception is enabled, native file chooser dialog is not shown.
    Instead, a protocol event ``Page.fileChooserOpened`` is emitted.

    **EXPERIMENTAL**

    :param enabled:
    r  z"Page.setInterceptFileChooserDialogr;  Nrg  r  s       r   !set_intercept_file_chooser_dialogr5  H  s/      &FF96H >Dr  zPage.domContentEventFiredc                  *    e Zd ZU ded<   edd       Zy)DomContentEventFirednetwork.MonotonicTimer   c                T     | t         j                  j                  |d               S Nr   )r   r   MonotonicTimer   r   s     r   r   zDomContentEventFired.from_jsonb  (    ++55d;6GH
 	
r   N)r   r   r'   r7  r*   r+   r,   rJ   r.   r   r   r   r   r7  r7  ]       %$
 
r   r7  zPage.fileChooserOpenedc                  B    e Zd ZU dZded<   ded<   ded<   ed
d       Zy	)FileChooserOpenedzE
    Emitted only when ``page.interceptFileChooser`` is enabled.
    r   rb  zdom.BackendNodeIdbackend_node_idr(   modec                     | t         j                  |d         t        j                  j                  |d         t	        |d               S )Nr^  backendNodeIdrC  )rb  rB  rC  )r   r   r	   BackendNodeIdr(   r   s     r   r   zFileChooserOpened.from_jsonv  sF    &&tI7--77_8MNT&\"
 	
r   N)r   r   r'   rA  r*   r+   r,   r-   rJ   r.   r   r   r   r   rA  rA  i  s,     &&
I
 
r   rA  zPage.frameAttachedc                  B    e Zd ZU dZded<   ded<   ded<   ed	d       Zy)
FrameAttachedz;
    Fired when frame has been attached to its parent.
    r   rb  parent_frame_idz#typing.Optional[runtime.StackTrace]stackc                     | t         j                  |d         t         j                  |d         d|v r't        j                  j                  |d               S d       S )Nr^  parentFrameIdrK  )rb  rJ  rK  )r   r   r   
StackTracer   s     r   r   zFrameAttached.from_json  sc    &&tI7#--d?.CDAHD'$$..tG}=
 	
 W[
 	
r   N)r   r   r'   rI  rG  r   r   r   rI  rI    s-     ..
 
r   rI  z$Page.frameClearedScheduledNavigationc                  .    e Zd ZU dZded<   edd       Zy)FrameClearedScheduledNavigationz@
    Fired when frame no longer has a scheduled navigation.
    r   rb  c                @     | t         j                  |d               S Nr^  )rb  r   r   r   s     r   r   z)FrameClearedScheduledNavigation.from_json  !    &&tI7
 	
r   N)r   r   r'   rP  rG  r   r   r   rP  rP    !     
 
r   rP  zPage.frameDetachedc                  .    e Zd ZU dZded<   edd       Zy)FrameDetachedz=
    Fired when frame has been detached from its parent.
    r   rb  c                @     | t         j                  |d               S rR  rS  r   s     r   r   zFrameDetached.from_json  rT  r   N)r   r   r'   rW  rG  r   r   r   rW  rW    rU  r   rW  zPage.frameNavigatedc                  .    e Zd ZU dZded<   edd       Zy)FrameNavigatedzh
    Fired once navigation of the frame has completed. Frame is now associated with the new loader.
    r2   r`   c                @     | t         j                  |d               S )Nr`   )r`   )r2   r   r   s     r   r   zFrameNavigated.from_json  s    //$w-0
 	
r   N)r   r   r'   rZ  rG  r   r   r   rZ  rZ    s      L
 
r   rZ  zPage.frameResizedc                  "    e Zd ZdZedd       Zy)FrameResizedz
    **EXPERIMENTAL**


    c                     |        S r   r   r   s     r   r   zFrameResized.from_json       
 	
r   N)r   r   r'   r]  r*   r+   r,   r-   r.   r   r   r   r   r]  r]    s     
 
r   r]  zPage.frameRequestedNavigationc                  L    e Zd ZU dZded<   ded<   ded<   ded	<   edd
       Zy)FrameRequestedNavigationz
    **EXPERIMENTAL**

    Fired when a renderer-initiated navigation is requested.
    Navigation may still be cancelled after the event is issued.
    r   rb  r   reasonr(   r6   r  dispositionc           	          | t         j                  |d         t        j                  |d         t        |d         t        j                  |d               S )Nr^  rc  r6   rd  )rb  rc  r6   rd  )r   r   r   r(   r  r   s     r   r   z"FrameRequestedNavigation.from_json  sR    &&tI7)33DNCDK 3==d=>QR	
 	
r   N)r   r   r'   rb  rG  r   r   r   rb  rb    s2     ""	H,,
 
r   rb  zPage.frameScheduledNavigationc                  L    e Zd ZU dZded<   ded<   ded<   ded	<   edd
       Zy)FrameScheduledNavigationz<
    Fired when frame schedules a potential navigation.
    r   rb  r\   delayr   rc  r(   r6   c           	          | t         j                  |d         t        |d         t        j                  |d         t	        |d               S )Nr^  rh  rc  r6   )rb  rh  rc  r6   )r   r   r\   r   r(   r   s     r   r   z"FrameScheduledNavigation.from_json  sK    &&tI7W&)33DNCDK 	
 	
r   N)r   r   r'   rg  rG  r   r   r   rg  rg    s3      L""	H
 
r   rg  zPage.frameStartedLoadingc                  .    e Zd ZU dZded<   edd       Zy)FrameStartedLoadingzE
    **EXPERIMENTAL**

    Fired when frame has started loading.
    r   rb  c                @     | t         j                  |d               S rR  rS  r   s     r   r   zFrameStartedLoading.from_json  rT  r   N)r   r   r'   rk  rG  r   r   r   rk  rk    !     
 
r   rk  zPage.frameStoppedLoadingc                  .    e Zd ZU dZded<   edd       Zy)FrameStoppedLoadingzE
    **EXPERIMENTAL**

    Fired when frame has stopped loading.
    r   rb  c                @     | t         j                  |d               S rR  rS  r   s     r   r   zFrameStoppedLoading.from_json)  rT  r   N)r   r   r'   ro  rG  r   r   r   ro  ro    rm  r   ro  zPage.downloadWillBeginc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)DownloadWillBeginzM
    **EXPERIMENTAL**

    Fired when page is about to start a download.
    r   rb  r(   guidr6   suggested_filenamec           	          | t         j                  |d         t        |d         t        |d         t        |d               S )Nr^  rs  r6   suggestedFilename)rb  rs  r6   rt  r   r   r(   r   s     r   r   zDownloadWillBegin.from_jsonA  sG    &&tI7T&\"DK "4(;#<=	
 	
r   N)r   r   r'   rr  rG  r   r   r   rr  rr  0  s1     
I	H
 
r   rr  zPage.downloadProgressc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)DownloadProgresszc
    **EXPERIMENTAL**

    Fired when download makes progress. Last call has ``done`` == true.
    r(   rs  r\   total_bytesreceived_bytesr%  c           	     z     | t        |d         t        |d         t        |d         t        |d               S )Nrs  
totalBytesreceivedBytesr%  )rs  rz  r{  r%  )r(   r\   r   s     r   r   zDownloadProgress.from_json\  sA    T&\"d<01 o!67d7m$	
 	
r   N)r   r   r'   ry  rG  r   r   r   ry  ry  K  s1     IJ
 
r   ry  zPage.interstitialHiddenc                  "    e Zd ZdZedd       Zy)InterstitialHiddenz1
    Fired when interstitial page was hidden
    c                     |        S r   r   r   s     r   r   zInterstitialHidden.from_jsonn  r_  r   N)r   r   r'   r  r`  r   r   r   r  r  f      
 
 
r   r  zPage.interstitialShownc                  "    e Zd ZdZedd       Zy)InterstitialShownz0
    Fired when interstitial page was shown
    c                     |        S r   r   r   s     r   r   zInterstitialShown.from_json}  r_  r   N)r   r   r'   r  r`  r   r   r   r  r  u  r  r   r  zPage.javascriptDialogClosedc                  8    e Zd ZU dZded<   ded<   edd       Zy)	JavascriptDialogClosedzs
    Fired when a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload) has been
    closed.
    r]   r  r(   
user_inputc                F     | t        |d         t        |d               S )Nr  	userInput)r  r  )r]   r(   r   s     r   r   z JavascriptDialogClosed.from_json  s(    X'4,-
 	
r   N)r   r   r'   r  rG  r   r   r   r  r    s%    
 LO
 
r   r  zPage.javascriptDialogOpeningc                  V    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       Zy)JavascriptDialogOpeningzt
    Fired when a JavaScript initiated dialog (alert, confirm, prompt, or onbeforeunload) is about to
    open.
    r(   r6   r   r   rM   r]   has_browser_handlerr9   default_promptc           
          | t        |d         t        |d         t        j                  |d         t        |d         d|v rt        |d               S d       S )Nr6   r   rV   hasBrowserHandlerdefaultPrompt)r6   r   rM   r  r  )r(   r   r   r]   r   s     r   r   z!JavascriptDialogOpening.from_json  sl    DK Y(&&tF|4 $T*=%> ?9HD9P3tO45
 	

 W[
 	
r   N)r   r   r'   r  rG  r   r   r   r  r    s9    
 
HL ((
 
r   r  zPage.lifecycleEventc                  L    e Zd ZU dZded<   ded<   ded<   ded	<   edd
       Zy)LifecycleEventzY
    Fired for top level page lifecycle events such as navigation, load, paint, etc.
    r   rb  r4   r5   r(   r;   r8  r   c           	          | t         j                  |d         t        j                  j                  |d         t	        |d         t        j
                  j                  |d               S )Nr^  r@   r;   r   )rb  r5   r;   r   )r   r   r   rI   r(   r<  r   s     r   r   zLifecycleEvent.from_json  s_    &&tI7&&00j1ABT&\"++55d;6GH	
 	
r   N)r   r   r'   r  rG  r   r   r   r  r    s2     
I$$
 
r   r  zPage.loadEventFiredc                  *    e Zd ZU ded<   edd       Zy)LoadEventFiredr8  r   c                T     | t         j                  j                  |d               S r:  r;  r   s     r   r   zLoadEventFired.from_json  r=  r   N)r   r   r'   r  r>  r   r   r   r  r    r?  r   r  zPage.navigatedWithinDocumentc                  8    e Zd ZU dZded<   ded<   edd       Zy)	NavigatedWithinDocumentz
    **EXPERIMENTAL**

    Fired when same-document navigation happens, e.g. due to history API usage or anchor navigation.
    r   rb  r(   r6   c                Z     | t         j                  |d         t        |d               S )Nr^  r6   )rb  r6   rw  r   s     r   r   z!NavigatedWithinDocument.from_json  s-    &&tI7DK 
 	
r   N)r   r   r'   r  rG  r   r   r   r  r    s&     	H
 
r   r  zPage.screencastFramec                  B    e Zd ZU dZded<   ded<   ded<   ed
d       Zy	)ScreencastFramez[
    **EXPERIMENTAL**

    Compressed image data requested by the ``startScreencast``.
    r(   rQ  r   metadatar   r  c                t     | t        |d         t        j                  |d         t        |d               S )NrQ  r  r  )rQ  r  r  )r(   r   r   r   r   s     r   r   zScreencastFrame.from_json  s;    T&\",66tJ7GH4,-
 	
r   N)r   r   r'   r  rG  r   r   r   r  r    s+     I%%O
 
r   r  z Page.screencastVisibilityChangedc                  .    e Zd ZU dZded<   edd       Zy)ScreencastVisibilityChangedzk
    **EXPERIMENTAL**

    Fired when the page with currently enabled screencast was shown or hidden .
    r]   visiblec                ,     | t        |d               S )Nr  )r  )r]   r   s     r   r   z%ScreencastVisibilityChanged.from_json	  s    i)
 	
r   N)r   r   r'   r  rG  r   r   r   r  r  	  s      M
 
r   r  zPage.windowOpenc                  L    e Zd ZU dZded<   ded<   ded<   ded<   edd	       Zy
)
WindowOpenzq
    Fired when a new window is going to be opened, via window.open(), link click, form submission,
    etc.
    r(   r6   window_nameztyping.List[str]window_featuresr]   user_gesturec           
          | t        |d         t        |d         |d   D cg c]  }t        |       c}t        |d               S c c}w )Nr6   
windowNamewindowFeaturesuserGesture)r6   r  r  r  )r(   r]   rh   s      r   r   zWindowOpen.from_json)	  sS    DK D./-12B-CDSVDd=12	
 	
 Es   AN)r   r   r'   r  rG  r   r   r   r  r  	  s2    
 
H%%
 
r   r  zPage.compilationCacheProducedc                  8    e Zd ZU dZded<   ded<   edd       Zy)CompilationCacheProducedz
    **EXPERIMENTAL**

    Issued for every compilation cache generated. Is only available
    if Page.setGenerateCompilationCache is enabled.
    r(   r6   rQ  c                F     | t        |d         t        |d               S )Nr6   rQ  )r6   rQ  r   r   s     r   r   z"CompilationCacheProduced.from_json@	  s'    DK T&\"
 	
r   N)r   r   r'   r  rG  r   r   r   r  r  3	  s%     
H
I
 
r   r  )r@  r(   r'   <typing.Generator[T_JSON_DICT, T_JSON_DICT, ScriptIdentifier]r   )rD  r(   rF  r9   r'   r  )r'   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])NNNN)
rR  r9   rN  r   rO  typing.Optional[Viewport]rS  rR   r'   /typing.Generator[T_JSON_DICT, T_JSON_DICT, str])rR  r9   r'   r  )NN)rb  r   rF  r9   rc  rR   r'   zFtyping.Generator[T_JSON_DICT, T_JSON_DICT, runtime.ExecutionContextId])rh  r(   r6   r(   r'   r  )r'   ztyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, typing.List[AppManifestError], typing.Optional[str], typing.Optional[AppManifestParsedProperties]]])r'   zLtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[InstallabilityError]])r'   z@typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Optional[str]])r'   zGtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[network.Cookie]])r'   z5typing.Generator[T_JSON_DICT, T_JSON_DICT, FrameTree])r'   zbtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[LayoutViewport, VisualViewport, dom.Rect]])r'   z[typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[int, typing.List[NavigationEntry]]])rb  r   r6   r(   r'   zCtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, bool]])r'   z=typing.Generator[T_JSON_DICT, T_JSON_DICT, FrameResourceTree])r  r]   r  r9   r'   r  )r6   r(   r  r9   r   ztyping.Optional[TransitionType]rb  ztyping.Optional[FrameId]r  ztyping.Optional[ReferrerPolicy]r'   zztyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[FrameId, typing.Optional[network.LoaderId], typing.Optional[str]]])r  r   r'   r  )NNNNNNNNNNNNNNNN)"r  rR   r  rR   r  rR   r   rP   r  rP   r  rP   r  rP   r  rP   r  rP   r  rP   r  r9   r  rR   r  r9   r  r9   r  rR   r  r9   r'   z_typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, typing.Optional[io.StreamHandle]]])r  rR   r  r9   r'   r  )r>  ro   r'   r  )r  r   r'   r  )rb  r   r6   r(   r  r(   r  rR   r  rR   r'   zMtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[debugger.SearchMatch]])r  r]   r'   r  )NNNNNNNN)r   r   r   r   r  r\   r  r]   r   rP   r  r   r  r   r  r   r  r   r  rR   r  z,typing.Optional[emulation.ScreenOrientation]r  r  r'   r  )r  r\   r  r\   r  r\   r'   r  )r  r   r'   r  )r  r   r'   r  )rb  r   r  r(   r'   r  )r  r(   r	  r9   r'   r  )NNN)r  rP   r  rP   r  rP   r'   r  )r  r]   r  r9   r'   r  )NNNNN)rR  r9   rN  r   r  r   r  r   r  r   r'   r  )r%  r(   r'   r  )r6   r(   rQ  r(   r'   r  )r   r(   r0  r9   r'   r  )v
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   r   r   r(   r   r2   rL   r_   rk   ro   Enumrt   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  rB  rG  rK  rT  rV  rX  rZ  r\  rd  ri  rl  rn  rs  rw  rz  r~  r  r  r  r  r  r  r  r  r  r  r~   r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r  r   r#  r&  r(  r*  r,  r.  r1  r3  r5  r7  rA  rI  rP  rW  rZ  r]  rb  rg  rk  ro  rr  ry  r  r  r  r  r  r  r  r  r  r  r  r   r   r   <module>r     s   # * !        8c 8 <
 <
 <
~ 2
 2
 2
j 
 
 
< 
 
 
2As ATYY 4 $
 $
 $
N /
 /
 /
d " 
 
 
D 
 
 
& 
 
 
D 4
 4
 4
n $
 $
 $
N 5
 5
 5
p 
 
 
4TYY $$))  
 
 
* 
 
 
0TYY *::	C:. ,0::(: 
D:. )-(,*..2	%% ( ,	
 
7B )-%	6.		 ,07;LL(L  5L 
N	L6 
8,.TGB 
2*& 
K<:" -1) 
8. *.;?-1;?((&( 9( +	(
 9( 
B(V	7$ ,07;26(,.2/3-104.2/3,0<@04046:.2!S(S4S 0S &	S
 ,S -S +S .S ,S -S *S %:S .S .S 4S  ,!S" 
g#Sn /3;?+$8 
8,$	7&$	7"	7. 15*. G G G  G .	 G
 ( G 
U GF	7&	70 )--1.2+/+/7;KO.2;;; #; 	;
 &; +; ,; ); );  5; I; ,; 
8;|  
8	2#	7&	7& 
8, /3+ 
80 ,0,0+/() ) 
8	6	7* /3+ 
80 )-(,*.+/04!%!%! (! )	!
 .! 
8!H			7*		7& 
8.	 '+# 
8.		7* ()

 
  *
 %&

 
  '
( !"

 
  #
( 34

 
  5
 !"

 
  #
 "#

 
  $
  !

 
  "
 ,-

 
  .
4 ,-

 
  .
0 '(

 
  )
  '(

 
  )
  %&

 
  '
2 $%

 
  &
2 &'


 

  (

 %&


 

  '

 *+

 
  ,
$ +,

 
  -
: "#

 
  $
* "#

 
  $
 +,

 
  -
& #$

 
  %
, /0

 
  1
  

 
   
0 ,-

 
  .
r   