
    n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/y)    )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      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disconnected)Disconnectedparentr%   typeguidinitializerreturnNc                     t            ||||       d  _        d _        d _        d  _        t                _        d  _         j                  j                  d fd        j                  j                  d fd       d  _        y )NTFcontextc           	      Z    j                  t        t        t        | d                     S )Nr0   )_did_create_contextr   r   r   )paramsselfs    M/home/ubuntu/.local/lib/python3.12/site-packages/playwright/_impl/_browser.py<lambda>z"Browser.__init__.<locals>.<lambda>N   s&    433^\&2C%DE     closec                 $    j                         S N)	_on_close)_r4   s    r5   r6   z"Browser.__init__.<locals>.<lambda>R   s    DNN,< r7   )super__init___browser_type_is_connected!_should_close_connection_on_close_cr_tracing_pathset	_contexts_traces_dir_channelon_close_reason)r4   r*   r+   r,   r-   	__class__s   `    r5   r>   zBrowser.__init__A   s     	t[96:!16./3.1e*.	
 	"<=,0r7   c                 <    d| j                    d| j                   dS )Nz<Browser type=z	 version=>)r?   versionr4   s    r5   __repr__zBrowser.__repr__U   s"     2 239T\\N!LLr7   browser_type
traces_dirc                 d    || _         || _        | j                  D ]  }| j                  |        y r:   )r?   rE   rD   _setup_browser_context)r4   rO   rP   r0   s       r5   _connect_to_browser_typez Browser._connect_to_browser_typeX   s5     *%~~ 	1G''0	1r7   r0   c                     | |_         | j                  j                  |       | j                  r| j	                  |       y y r:   )_browserrD   addr?   rR   r4   r0   s     r5   r2   zBrowser._did_create_contextd   s:    7# ''0 r7   c                     | j                   |j                  _         | j                  J | j                  j                  j                  j
                  j                  |       y r:   )rE   _tracingr?   _playwright	selectors_contexts_for_selectorsrV   rW   s     r5   rR   zBrowser._setup_browser_contextl   sN    '+'7'7$!!---&&00HHLLWUr7   c                 f    d| _         | j                  t        j                  j                  |        y )NF)r@   emitr'   Eventsr)   rM   s    r5   r;   zBrowser._on_closeq   s"    "		'..--t4r7   c                 ,    t        | j                        S r:   )listrD   rM   s    r5   contextszBrowser.contextsu   s    DNN##r7   c                 6    | j                   J | j                   S r:   )r?   rM   s    r5   rO   zBrowser.browser_typey   s     !!---!!!r7   c                     | j                   S r:   )r@   rM   s    r5   is_connectedzBrowser.is_connected~   s    !!!r7   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                  j                  |%       d {    | j                  j                  dd |%       d {   }&t        t        t        |&            }'|'j                  |#|"|||!       d {    |'S 7 b7 ?7 
w)N
newContext)record_har_contentrecord_har_moderecord_har_omit_contentrecord_har_pathrecord_har_url_filter)
r"   localsr?   _prepare_browser_context_paramsrF   sendr   r   r   _initialize_har_from_options)(r4   rf   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   r3   channelr0   s(                                           r5   new_contextzBrowser.new_context   s     N "&(+!!---  @@HHH**<vFF~|G'<=22/)$8)"4 3 
 	
 	
  	IF	
s6   A B+B%$B+'B'(6B+B)B+'B+)B+c%                     &K   t        t                     &dt        f& fd}% j                  j	                  |%d       d {   S 7 w)Nr.   c                     K    j                   di  d {   } | j                          d {   }| |_        || _        |S 7 ,7 w)N )r   new_page_owned_context_owner_page)r0   pager3   r4   s     r5   innerzBrowser.new_page.<locals>.inner   sN     ,D,,6v66G ))++D")D"&GK	 7+s   A
AA
AA
A
zCreate page)title)r"   r   r$   _connectionwrap_api_call)'r4   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   ry   rz   rx   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r3   s'   `                                     @r5   r   zBrowser.new_page   sF     N "&(+	T 	 %%33E3OOOOs   AAA
Areasonc                   K   || _         	 | j                  r#| j                  j                          d {    y | j                  j                  dd d|i       d {    y 7 -7 # t        $ r}t        |      s|Y d }~y d }~ww xY ww)Nr8   r   )rH   rA   r   
stop_asyncrF   r   	Exceptionr   )r4   r   es      r5   r8   zBrowser.close   s     #	55&&11333mm(($68JKKK 4K 	)!, -	sZ   B	)A& A"A& B	"A& A$A& !B	"A& $A& &	B/B<B	BB	c                      | j                   d   S )NrL   )_initializerrM   s    r5   rL   zBrowser.version   s      ++r7   c                 h   K   t        | j                  j                  dd        d {         S 7 w)NnewBrowserCDPSession)r   rF   r   rM   s    r5   new_browser_cdp_sessionzBrowser.new_browser_cdp_session   s)     $--"4"45KT"RRSSRs   %20	2r   workspaceDirhostportc                 z   K   | j                   j                  dd t        t                            d {   S 7 w)NstartServer)rF   send_return_as_dictr"   r   )r4   r   r   r   r   s        r5   bindzBrowser.bind   s8      ]]664!1&(!;
 
 	
 
s   2;9;c                 X   K   | j                   j                  dd        d {    y 7 w)N
stopServer)rF   r   rM   s    r5   unbindzBrowser.unbind  s      mm  t444s    *(*r   pathscreenshots
categoriesc                    K   t        t                     }|r|j                  |d<   |rt        |      | _        t        |      |d<   | j                  j                  dd |       d {    y 7 w)Nr   r   startTracing)r"   r   rF   strrB   r   )r4   r   r   r   r   r3   s         r5   start_tracingzBrowser.start_tracing	  s\      "&(+!]]F6N$'ID! YF6Nmm  v>>>s   A%A/'A-(A/c           	        K   t        t        t        | j                  j	                  dd        d {               }|j                          d {   }|j                          d {    | j                  rLt        | j                         t        | j                  d      5 }|j                  |       d d d        d | _        |S 7 7 x7 b# 1 sw Y   xY ww)NstopTracingwb)r   r   r   rF   r   read_info_bufferdeleterB   r#   openwrite)r4   artifactbufferfs       r5   stop_tracingzBrowser.stop_tracing  s     l););M4)P#PQ
  0022oo  t445d++T2  a $(D! $Q2   sK   /CCCC
C)C*;C%C7C
CCCCr:   )r.   N)r.   r%   )$NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN)NNN)NNNN)6__name__
__module____qualname__r   r_   r   r   r>   rN   r   rS   r   r2   rR   r;   propertyr   rb   rO   boolre   r   r   r
   r   floatr   r    r   r   r   r   r   r   r!   r	   r   r   r   r   r$   r   r8   rL   r   r   intr   r   r   r   bytesr   __classcell__)rI   s   @r5   r'   r'   <   sH   #F1#1+.1691HL1	1(M# M %)
1#
1 SM
1 
	
11> 1d 1Vn V V
5 $$~. $ $ " ""d "
 "&#"&"&#'%)+/+/#'#''+%)! $"&#*.%)+/(,7; $/37;!%-16:K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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 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d	# 	 	 , , ,Tz T !	
	
 	
 		

 	
 
	
5
 !% $(?? CI? 	?
 SM? 
?E r7   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   r7   r5   <module>r      sd     !
 
 
   0 < 4 C ;
 
 
 (:gl gr7   