
    'j\(                        d dl mZ d dlmZ d dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlmZ d dlmZmZ d d	lm Z  d d
l!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, erd dl-m.Z.  G d de          Z/dS )    )Path)SimpleNamespace)	TYPE_CHECKINGDictListOptionalPatternSequenceSetUnioncast)BrowserBindResultClientCertificateGeolocationHttpCredentialsProxySettingsStorageStateViewportSize)Artifact)BrowserContext)
CDPSession)ChannelOwnerfrom_channel)is_target_closed_error)	ColorSchemeContrastForcedColorsHarContentPolicyHarModeReducedMotionServiceWorkersPolicylocals_to_paramsmake_dirs_for_file)Page)BrowserTypec            K       ^    e Zd Z edd          Zdddededed	d
f
 fdZd	efdZ	 dLddde	e         d	d
fdZ
ded	d
fdZded	d
fdZdMdZed	ee         fd            ZedNd            Zd	efdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dOdedededededededededed ee         d!eeef         d"ed#ed$ed%ed&ed'ed(ed)ed*ed+ed,ed-ed.ee ef         d/ed0ee ef         d1ed2ee!ee f         d3ed4ed5e"d6ee#e         ef         d7e$d8e%d9ee&         d	efJd:Z'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dOdedededededededededed ee         d!eeef         d"ed#ed$ed%ed&ed'ed)ed*ed(ed+ed,ed-ed.ee ef         d/ed0ee ef         d1ed2ee!ee f         d3ed4ed5e"d6ee#e         ef         d7e$d8e%d9ee&         d	e(fJd;Z)dLd<ed	d
fd=Z*ed	efd>            Z+d	e,fd?Z-	 	 	 dPd@edAedBedCe.d	e/f
dDZ0dMdEZ1	 	 	 	 dQdFe(dGeee f         dHedIee         d	d
f
dJZ2d	e3fdKZ4 xZ5S )RBrowsercontextdisconnected)ContextDisconnectedparentr%   typeguidinitializerreturnNc                 D    t                                          ||||           d  _        d _        d _        d  _        t                       _        d  _         j	        
                    d fd            j	        
                    d fd           d  _        d S )NTFr(   c           	      z                         t          t          t          | d                                       S )Nr(   )_did_create_contextr   r   r   )paramsselfs    ]/home/ice/.hermes/hermes-agent/venv/lib/python3.11/site-packages/playwright/_impl/_browser.py<lambda>z"Browser.__init__.<locals>.<lambda>O   s1    433^\&2C%D%DEE      closec                 ,                                     S N)	_on_close)_r5   s    r6   r7   z"Browser.__init__.<locals>.<lambda>S   s    DNN,<,< r8   )super__init___browser_type_is_connected!_should_close_connection_on_close_cr_tracing_pathset	_contexts_traces_dir_channelon_close_reason)r5   r,   r-   r.   r/   	__class__s   `    r6   r?   zBrowser.__init__B   s     	t[9996:!16./3.1ee*.   	
 	
 	
 	"<"<"<"<===,0r8   c                 (    d| j          d| j         dS )Nz<Browser type=z	 version=>)r@   versionr5   s    r6   __repr__zBrowser.__repr__V   s     L 2LLT\LLLLr8   browser_type
traces_dirc                 `    || _         || _        | j        D ]}|                     |           d S r;   )r@   rF   rE   _setup_browser_context)r5   rP   rQ   r(   s       r6   _connect_to_browser_typez Browser._connect_to_browser_typeY   sF     *%~ 	1 	1G''0000	1 	1r8   c                     | |_         | j                            |           | j        r|                     |           |                     t          j        j        |           d S r;   )	_browserrE   addr@   rS   emitr'   Eventsr*   r5   r(   s     r6   r3   zBrowser._did_create_contexte   s`    7###  	1''000		'.('22222r8   c                     | j         |j        _         | j        J | j        j        j        j                            |           d S r;   )rF   _tracingr@   _playwright	selectors_contexts_for_selectorsrW   rZ   s     r6   rS   zBrowser._setup_browser_contextn   sE    '+'7$!---&0HLLWUUUUUr8   c                 ^    d| _         |                     t          j        j        |            d S )NF)rA   rX   r'   rY   r+   rN   s    r6   r<   zBrowser._on_closes   s)    "		'.-t44444r8   c                 *    t          | j                  S r;   )listrE   rN   s    r6   contextszBrowser.contextsw   s    DN###r8   c                 "    | j         J | j         S r;   )r@   rN   s    r6   rP   zBrowser.browser_type{   s    !---!!r8   c                     | j         S r;   )rA   rN   s    r6   is_connectedzBrowser.is_connected   s    !!r8   viewportscreen
noViewportignoreHTTPSErrorsjavaScriptEnabled	bypassCSP	userAgentlocale
timezoneIdgeolocationpermissionsextraHTTPHeadersofflinehttpCredentialsdeviceScaleFactorisMobilehasTouchcolorSchemereducedMotionforcedColorscontrastacceptDownloadsdefaultBrowserTypeproxyrecordHarPathrecordHarOmitContentrecordVideoDirrecordVideoSizestorageStatebaseURLstrictSelectorsserviceWorkersrecordHarUrlFilterrecordHarModerecordHarContentclientCertificatesc%                 Z  K   t          t                                }%| j        J | j                            |%           d {V  | j                            dd |%           d {V }&t          t          t          |&                    }'|'	                    |#|"|||!           d {V  |'S )N
newContext)record_har_contentrecord_har_moderecord_har_omit_contentrecord_har_pathrecord_har_url_filter)
r"   localsr@   _prepare_browser_context_paramsrG   sendr   r   r   _initialize_har_from_options)(r5   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r4   channelr(   s(                                           r6   new_contextzBrowser.new_context   s      N "&((++!--- @@HHHHHHHHH**<vFFFFFFFF~|G'<'<==22/)$8)"4 3 
 
 	
 	
 	
 	
 	
 	
 	
 r8   c%                     &K   t          t                                &dt          f& fd}% j                            |%d           d {V S )Nr0   c                     K    j         di  d {V } |                                  d {V }| |_        || _        |S )N )r   new_page_owned_context_owner_page)r(   pager4   r5   s     r6   innerzBrowser.new_page.<locals>.inner   si      ,D,66v66666666G ))++++++++D")D"&GKr8   zCreate page)title)r"   r   r$   _connectionwrap_api_call)'r5   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   rz   r{   ry   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r4   s'   `                                     @r6   r   zBrowser.new_page   sv      N "&((++	T 	 	 	 	 	 	 	 %33E3OOOOOOOOOr8   reasonc                   K   || _         	 | j        r!| j                                         d {V  d S | j                            dd d|i           d {V  d S # t          $ r}t          |          s|Y d }~d S d }~ww xY w)Nr9   r   )rI   rB   r   
stop_asyncrG   r   	Exceptionr   )r5   r   es      r6   r9   zBrowser.close   s      #	5 L&1133333333333m(($68JKKKKKKKKKKK 	 	 	)!,,      	s   &A $A 
A?#A::A?c                     | j         d         S )NrM   )_initializerrN   s    r6   rM   zBrowser.version   s     ++r8   c                 b   K   t          | j                            dd            d {V           S )NnewBrowserCDPSession)r   rG   r   rN   s    r6   new_browser_cdp_sessionzBrowser.new_browser_cdp_session   s9      $-"4"45KT"R"RRRRRRRSSSr8   r   workspaceDirhostportc                 |   K   | j                             dd t          t                                           d {V S )NstartServer)rG   send_return_as_dictr"   r   )r5   r   r   r   r   s        r6   bindzBrowser.bind   sT       ]664!1&((!;!;
 
 
 
 
 
 
 
 	
r8   c                 L   K   | j                             dd            d {V  d S )N
stopServer)rG   r   rN   s    r6   unbindzBrowser.unbind  s6      m  t44444444444r8   r   pathscreenshots
categoriesc                    K   t          t                                }|r
|j        |d<   |r&t          |          | _        t          |          |d<   | j                            dd |           d {V  d S )Nr   r   startTracing)r"   r   rG   strrC   r   )r5   r   r   r   r   r4   s         r6   start_tracingzBrowser.start_tracing  s       "&((++ 	+!]F6N 	'$'IID! YYF6Nm  v>>>>>>>>>>>r8   c           	        K   t          t          t          | j                            dd            d {V                     }|                                 d {V }|                                 d {V  | j        r]t          | j                   t          | j        d          5 }|
                    |           d d d            n# 1 swxY w Y   d | _        |S )NstopTracingwb)r   r   r   rG   r   read_info_bufferdeleterC   r#   openwrite)r5   artifactbufferfs       r6   stop_tracingzBrowser.stop_tracing  s*     l););M4)P)P#P#P#P#P#P#PQQ
 
  0022222222oo  	)t4555d+T22  a                             $(D!s   (C

CCr;   )r0   N)r0   r%   )$NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)NNN)NNNN)6__name__
__module____qualname__r   rY   r   r   r?   rO   r   rT   r   r3   rS   r<   propertyr   rc   rP   boolrf   r   r   r
   r   floatr   r    r   r   r   r   r   r   r!   r	   r   r   r   r   r$   r   r9   rM   r   r   intr   r   r   r   bytesr   __classcell__)rJ   s   @r6   r'   r'   <   s       _#  F
1#1+.1691HL1	1 1 1 1 1 1(M# M M M M %)
1 
1#
1 SM
1 
	
1 
1 
1 
13> 3d 3 3 3 3Vn V V V V V
5 5 5 5 $$~. $ $ $ X$ " " " X""d " " " "
 "&#"&"&#'%)+/+/#'#''+%)! $"&#*.%)+/(,7; $/37;!%-16:K4 44 4 	4
  4  4 4 4 4 4 !4 c]4 sCx.4 4 )4  !!4" #4$ %4& !'4( %)4* #+4, -4. /40  142 344 T3Y'546 #748 dCi(94: &;4< L#t34=4> ?4@ A4B -C4D "'#,"34E4F G4H +I4J !!23K4L 
M4 4 4 4p "&#"&"&#'%)+/+/#'#'%)!'+ $"&#*.%)+/(,7; $/37;!%-16:K0P 0P0P 0P 	0P
  0P  0P 0P 0P 0P 0P !0P c]0P sCx.0P 0P )0P  !!0P" #0P$ %0P& !'0P( #)0P* +0P, %-0P. /0P0  10P2 30P4 T3Y'50P6 #70P8 dCi(90P: &;0P< L#t34=0P> ?0P@ A0PB -C0PD "'#,"34E0PF G0PH +I0PJ !!23K0PL 
M0P 0P 0P 0Pd	 	# 	 	 	 	 	 , , , , X,Tz T T T T !	
 	
	
 	
 		

 	
 
	
 	
 	
 	
5 5 5 5
 !% $(? ?? CI? 	?
 SM? 
? ? ? ?E        r8   r'   N)0pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r    playwright._impl._api_structuresr   r   r   r   r   r   r   playwright._impl._artifactr   !playwright._impl._browser_contextr   playwright._impl._cdp_sessionr   playwright._impl._connectionr   r   playwright._impl._errorsr   playwright._impl._helperr   r   r   r   r   r    r!   r"   r#   playwright._impl._pager$   playwright._impl._browser_typer%   r'   r   r8   r6   <module>r      s/         ! ! ! ! ! !
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                  0 / / / / / < < < < < < 4 4 4 4 4 4 C C C C C C C C ; ; ; ; ; ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ( ' ' ' ' ' ;::::::i i i i il i i i i ir8   