
    g%                     .   d dl Z 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 d dl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)m*Z* d dl+m,Z,m-Z- d dl.m/Z/ erd dl0m1Z1  G d de      Z2deddfdZ3y)    N)Path)SimpleNamespace)TYPE_CHECKINGDictListOptionalPatternSequenceUnioncast)ClientCertificateGeolocationHttpCredentialsProxySettingsStorageStateViewportSize)Artifact)BrowserContext)
CDPSession)ChannelOwnerfrom_channel)is_target_closed_error)
ColorSchemeForcedColorsHarContentPolicyHarModeReducedMotionServiceWorkersPolicyasync_readfilelocals_to_paramsmake_dirs_for_fileprepare_record_har_options)serialize_headersto_client_certificates_protocol)Page)BrowserTypec            I       V    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d?dZ	e
dee   fd       Ze
d@d       ZdefdZ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd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eef   d(ed)eeef   d*ed+eeeef   d,ed-ed.ed/eee   ef   d0ed1e d2ee!   defHd3Z"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd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eef   d(ed)eeef   d*ed+eeeef   d,ed-ed.ed/eee   ef   d0ed1e d2ee!   de#fHd4Z$dBd5edd	fd6Z%e
defd7       Z&de'fd8Z(	 	 	 	 dCd9e#d:eeef   d;ed<ee   dd	f
d=Z)de*fd>Z+ xZ,S )DBrowserdisconnected)Disconnectedparentr&   typeguidinitializerreturnNc                      t            ||||       | _        d _        d _        d  _        g  _         j                  j                  d fd       d  _	        y )NTFclosec                 $    j                         S N)	_on_close)_selfs    N/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_browser.py<lambda>z"Browser.__init__.<locals>.<lambda>C   s    DNN,<    )
super__init___browser_type_is_connected!_should_close_connection_on_close_cr_tracing_path	_contexts_channelon_close_reason)r6   r+   r,   r-   r.   	__class__s   `    r7   r;   zBrowser.__init__9   s\     	t[9#!16./3/1"<=,0r9   c                 <    d| j                    d| j                   dS )Nz<Browser type=z	 version=>)r<   versionr6   s    r7   __repr__zBrowser.__repr__F   s"     2 239T\\N!LLr9   c                 f    d| _         | j                  t        j                  j                  |        y )NF)r=   emitr(   Eventsr*   rH   s    r7   r4   zBrowser._on_closeI   s"    "		'..--t4r9   c                 6    | j                   j                         S r3   )r@   copyrH   s    r7   contextszBrowser.contextsM   s    ~~""$$r9   c                     | j                   S r3   )r<   rH   s    r7   browser_typezBrowser.browser_typeQ   s    !!!r9   c                     | j                   S r3   )r=   rH   s    r7   is_connectedzBrowser.is_connectedU   s    !!!r9   viewportscreen
noViewportignoreHTTPSErrorsjavaScriptEnabled	bypassCSP	userAgentlocale
timezoneIdgeolocationpermissionsextraHTTPHeadersofflinehttpCredentialsdeviceScaleFactorisMobilehasTouchcolorSchemereducedMotionforcedColorsacceptDownloadsdefaultBrowserTypeproxyrecordHarPathrecordHarOmitContentrecordVideoDirrecordVideoSizestorageStatebaseURLstrictSelectorsserviceWorkersrecordHarUrlFilterrecordHarModerecordHarContentclientCertificatesc$                   K   t        t                     }$t        |$       d {    | j                  j	                  d|$       d {   }%t        t        t        |%            }&| j                  j                  |&|$i        |&S 7 `7 >w)N
newContext)
r    localsprepare_browser_context_paramsrA   sendr   r   r   r<   _did_create_context)'r6   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   paramschannelcontexts'                                          r7   new_contextzBrowser.new_contextX   ss     L "&(+,V444**<@@~|G'<=..wC 	5@s!   "B	B#B	B	=B	B	c$                     %K   t        t                     %dt        f% fd}$ j                  j	                  |$       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)r   pager}   r6   s     r7   innerzBrowser.new_page.<locals>.inner   sN     ,D,,6v66G ))++D")D"&GK	 7+s   A
AA
AA
A
)r    ry   r%   _connectionwrap_api_call)&r6   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rg   rf   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   r   r}   s&   `                                    @r7   r   zBrowser.new_page   sA     L "&(+	T 	 %%33E::::s   ?A
AA
reasonc                   K   || _         	 | j                  r#| j                  j                          d {    y | j                  j                  dd|i       d {    y 7 ,7 # t        $ r}t        |      s|Y d }~y d }~ww xY ww)Nr1   r   )rC   r>   r   
stop_asyncrA   r{   	Exceptionr   )r6   r   es      r7   r1   zBrowser.close   s}     #	55&&11333mm((8V2DEEE 4E 	)!, -	sZ   B)A% A!A% B!A% A#A%  B!A% #A% %	B.B ;B BBc                      | j                   d   S )NrG   )_initializerrH   s    r7   rG   zBrowser.version   s      ++r9   c                 f   K   t        | j                  j                  d       d {         S 7 w)NnewBrowserCDPSession)r   rA   r{   rH   s    r7   new_browser_cdp_sessionzBrowser.new_browser_cdp_session   s'     $--"4"45K"LLMMLs   $1/	1r   pathscreenshots
categoriesc                    K   t        t                     }|r|j                  |d<   |rt        |      | _        t        |      |d<   | j                  j                  d|       d {    y 7 w)Nr   r   startTracing)r    ry   rA   strr?   r{   )r6   r   r   r   r   r}   s         r7   start_tracingzBrowser.start_tracing   sZ      "&(+!]]F6N$'ID! YF6Nmm  888s   A$A.&A,'A.c                   K   t        t        t        | j                  j	                  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   rA   r{   read_info_bufferdeleter?   r!   openwrite)r6   artifactbufferfs       r7   stop_tracingzBrowser.stop_tracing   s     ,T]]5G5G5V/V"WX0022oo  t445d++T2a 3$(D! 0W2 32sK   .CCCC	C(C);C$C6C	CCCC)r/   N)r/   r&   )#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr3   )NNNN)-__name__
__module____qualname__r   rL   r   r   r;   rI   r4   propertyr   r   rO   rQ   boolrS   r   r   r
   r   floatr   r   r   r   r   r   r   r   r	   r   r   r   r   r%   r   r1   rG   r   r   r   bytesr   __classcell__)rD   s   @r7   r(   r(   4   sl   #F1#1+.1691HL1	1M# M5 %$~. % % " ""d "
 "&#"&"&#'%)+/+/#'#''+%) $"&#*.%)+/(,7; $/37;!%-16:I,, , 	,
  ,  , , , , , !, c], sCx., , ),  !!," #,$ %,& !',( %),* #+,, -,.  /,0 1,2 T3Y'3,4 #5,6 dCi(7,8 &9,: L#t34;,< =,> ?,@ -A,B "'#,"34C,D E,F +G,H !!23I,J 
K,` "&#"&"&#'%)+/+/#'#'%)'+ $"&#*.%)+/(,7; $/37;!%-16:I/;/; /; 	/;
  /;  /; /; /; /; /; !/; c]/; sCx./; /; )/;  !!/;" #/;$ %/;& !'/;( #)/;* %+/;, -/;.  //;0 1/;2 T3Y'3/;4 #5/;6 dCi(7/;8 &9/;: L#t34;/;< =/;> ?/;@ -A/;B "'#,"34C/;D E/;F +G/;H !!23I/;J 
K/;b	# 	 	 , , ,Nz N
 !% $(99 CI9 	9
 SM9 
9	E 	r9   r(   r}   r/   c                   K   | j                  d      r| d= d| d<   d| v r| d= d| v rt        | d         | d<   d| v rt        |       | d<   | d= d| v r6d	t        | d         j	                         i| d
<   d| v r| d   | d
   d<   | d= | d= d| v rL| d   }t        |t              s7t        j                  t        |       d {   j                               | d<   | j                  dd       dk(  rd| d<   | j                  dd       dk(  rd| d<   | j                  dd       dk(  rd| d<   d| v r| d   rdnd| d<   d| v rt        | d          d {   | d<   y y 7 7 w)NrV   TnoDefaultViewportri   r_   rk   	recordHarrm   dirrecordVideorn   sizero   re   nullzno-overriderf   rg   rh   acceptdenyrv   )getr#   r"   r   absolute
isinstancedictjsonloadsr   decoder$   )r}   ro   s     r7   rz   rz      s    zz,< &*"#v%'(V#%6v>P7Q%R!"& 8@{?#6!!&V4D-E(F(O(O(Q R}&,23D,EF=!&)()#$n-,-%)ZZ%l33;;=&F>" zz-&&0 -}zz/4(F2"/zz.$'61!.~F"067H0IHv !v%-L'(.
 (
#$ & 4(
s%   B;E=E>BE
E
EE)4r   pathlibr   typesr   typingr   r   r   r   r	   r
   r   r    playwright._impl._api_structuresr   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!   r"   playwright._impl._networkr#   r$   playwright._impl._pager%   playwright._impl._browser_typer&   r(   rz   r   r9   r7   <module>r      st      ! V V V  0 < 4 C ;   Y ':ml m`#
 #
$ #
r9   