o
    $[i%                     @   s*  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rd dl0m1Z1 G dd deZ2deddfddZ3dS )    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       s,  e Zd ZeddZdddedededd	f
 fd
dZdefddZdLddZ	e
dee fddZe
dMddZdefddZ																																																																						dNd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 d0ed1eeeef d2ed3ed4ed5eee ef d6ed7e d8ee! defHd9d:Z"																																																																						dNd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 d0ed1eeeef d2ed3ed4ed5eee ef d6ed7e d8ee! de#fHd;d<Z$dOd=edd	fd>d?Z%e
defd@dAZ&de'fdBdCZ(								dPdDe#dEeeef dFedGee dd	f
dHdIZ)de*fdJdKZ+  Z,S )QBrowserdisconnected)Disconnectedparentr%   typeguidinitializerreturnNc                    sP   t  |||| | _d _d _d  _g  _ jd fdd d  _	d S )NTFclosec                    s      S N)	_on_close)_self Y/var/www/html/flask_server/venv/lib/python3.10/site-packages/playwright/_impl/_browser.py<lambda>C   s    z"Browser.__init__.<locals>.<lambda>)
super__init___browser_type_is_connected!_should_close_connection_on_close_cr_tracing_path	_contexts_channelon_close_reason)r3   r)   r*   r+   r,   	__class__r2   r5   r8   9   s   
zBrowser.__init__c                 C   s   d| j  d| j dS )Nz<Browser type=z	 version=>)r9   versionr2   r4   r4   r5   __repr__F   s   zBrowser.__repr__c                 C   s   d| _ | tjj|  d S )NF)r:   emitr&   Eventsr(   r2   r4   r4   r5   r0   I   s   zBrowser._on_closec                 C   s
   | j  S r/   )r=   copyr2   r4   r4   r5   contextsM      
zBrowser.contextsc                 C      | j S r/   )r9   r2   r4   r4   r5   browser_typeQ   s   zBrowser.browser_typec                 C   rK   r/   )r:   r2   r4   r4   r5   is_connectedU   s   zBrowser.is_connected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$           '         sP   t t }$t|$I d H  | jd|$I d H }%ttt|%}&| j	|&|$i  |&S )N
newContext)
r   localsprepare_browser_context_paramsr>   sendr   r   r   r9   _did_create_context)'r3   rN   rO   rP   rQ   rR   rS   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   paramschannelcontextr4   r4   r5   new_contextX   s   
&zBrowser.new_contextc$           %         s2   t t  dtf fdd}$j|$I d H S )Nr-   c                     s6   j di  I d H } |  I d H }| |_|| _|S )Nr4   )ry   new_page_owned_context_owner_page)rx   pagerv   r3   r4   r5   inner   s   zBrowser.new_page.<locals>.inner)r   rr   r$   _connectionwrap_api_call)%r3   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   ra   r`   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   r   r4   r~   r5   rz      s   
&zBrowser.new_pagereasonc              
      sv   || _ z| jr| j I d H  W d S | jdd|iI d H  W d S  ty: } zt|s/|W Y d }~d S d }~ww )Nr.   r   )r@   r;   r   
stop_asyncr>   rt   	Exceptionr   )r3   r   er4   r4   r5   r.      s   zBrowser.closec                 C   s
   | j d S )NrD   )_initializerr2   r4   r4   r5   rD      rJ   zBrowser.versionc                    s   t | jdI d H S )NnewBrowserCDPSession)r   r>   rt   r2   r4   r4   r5   new_browser_cdp_session   s   zBrowser.new_browser_cdp_sessionr}   pathscreenshots
categoriesc                    sL   t t }|r|j|d< |rt|| _t||d< | jd|I d H  d S )Nr}   r   startTracing)r   rr   r>   strr<   rt   )r3   r}   r   r   r   rv   r4   r4   r5   start_tracing   s   


zBrowser.start_tracingc                    s   t tt| jdI d H }| I d H }| I d H  | jrCt| j t	| jd}|
| W d    n1 s;w   Y  d | _|S )NstopTracingwb)r   r   r   r>   rt   read_info_bufferdeleter<   r    openwrite)r3   artifactbufferfr4   r4   r5   stop_tracing   s   
zBrowser.stop_tracing)r-   N)r-   r%   )#NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr/   )NNNN)-__name__
__module____qualname__r   rG   r   r   r8   rE   r0   propertyr   r   rI   rL   boolrM   r   r   r	   r   floatr   r   r   r   r
   r   r   r   r   r   r   r   ry   r$   rz   r.   rD   r   r   r   bytesr   __classcell__r4   r4   rA   r5   r&   4   s   
	



 !"#$%
0	



 !"#$%
1

r&   rv   r-   c                    s^  |  dr| d= d| d< d| v r| d= d| v r t| d | d< d| v r-t| | d< | d= d| v rOd	t| d  i| d
< d| v rL| d | d
 d< | d= | d= d| v rj| d }t|tsjtt	|I d H 
 | d< |  dd dkrvd| d< |  dd dkrd| d< |  dd dkrd| d< d| v r| d rdnd| d< d| v rt| d I d H | d< d S d S )NrP   TnoDefaultViewportrc   rY   re   	recordHarrg   dirrecordVideorh   sizeri   r_   nullzno-overrider`   ra   rb   acceptdenyrp   )getr"   r!   r   absolute
isinstancedictjsonloadsr   decoder#   )rv   ri   r4   r4   r5   rs      sH   

rs   )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&   rs   r4   r4   r4   r5   <module>   s$   ( 0 1