o
    Qhh$                     @   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 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+ d dl,m-Z- er~d dl.m/Z/ G dd deZ0deddfddZ1dS )    N)Path)SimpleNamespace)TYPE_CHECKINGDictListOptionalPatternSequenceUnioncast)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)Page)BrowserTypec                G       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dKddZ	e
dee fddZe
dLddZdefddZ																																																																				dMd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 defFd8d9Z!																																																																				dMd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 de"fFd:d;Z#dNd<edd	fd=d>Z$e
defd?d@Z%de&fdAdBZ'								dOdCe"dDeeef dEedFee dd	f
dGdHZ(de)fdIdJZ*  Z+S )P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 V/home/air/yokohama/back/venv/lib/python3.10/site-packages/playwright/_impl/_browser.py<lambda>B   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)r1   r'   r(   r)   r*   	__class__r0   r3   r6   8   s   
zBrowser.__init__c                 C   s   d| j  d| j dS )Nz<Browser type=z	 version=>)r7   versionr0   r2   r2   r3   __repr__E   s   zBrowser.__repr__c                 C   s   d| _ | tjj|  d S )NF)r8   emitr$   Eventsr&   r0   r2   r2   r3   r.   H   s   zBrowser._on_closec                 C   s
   | j  S r-   )r;   copyr0   r2   r2   r3   contextsL      
zBrowser.contextsc                 C      | j S r-   )r7   r0   r2   r2   r3   browser_typeP   s   zBrowser.browser_typec                 C   rI   r-   )r8   r0   r2   r2   r3   is_connectedT   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recordHarContentc#           &         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   r7   _did_create_context)&r1   rL   rM   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   paramschannelcontextr2   r2   r3   new_contextW   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 )Nr2   )rv   new_page_owned_context_owner_page)ru   pagers   r1   r2   r3   inner   s   zBrowser.new_page.<locals>.inner)r   ro   r"   _connectionwrap_api_call)$r1   rL   rM   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   r|   r2   r{   r3   rw      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>   r9   r}   
stop_asyncr<   rq   	Exceptionr   )r1   r   er2   r2   r3   r,      s   zBrowser.closec                 C   s
   | j d S )NrB   )_initializerr0   r2   r2   r3   rB      rH   zBrowser.versionc                    s   t | jdI d H S )NnewBrowserCDPSession)r   r<   rq   r0   r2   r2   r3   new_browser_cdp_session   s   zBrowser.new_browser_cdp_sessionrz   pathscreenshots
categoriesc                    sL   t t }|r|j|d< |rt|| _t||d< | jd|I d H  d S )Nrz   r   startTracing)r   ro   r<   strr:   rq   )r1   rz   r   r   r   rs   r2   r2   r3   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<   rq   read_info_bufferdeleter:   r   openwrite)r1   artifactbufferfr2   r2   r3   stop_tracing   s   
zBrowser.stop_tracing)r+   N)r+   r#   )"NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNr-   )NNNN),__name__
__module____qualname__r   rE   r   r   r6   rC   r.   propertyr   r   rG   rJ   boolrK   r   r   r	   r   floatr   r   r   r   r
   r   r   r   r   r   r   rv   r"   rw   r,   rB   r   r   r   bytesr   __classcell__r2   r2   r?   r3   r$   3   s   
	



 !"#$
/	



 !"#$
0

r$   rs   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 S d S )NrN   TnoDefaultViewportra   rW   rc   	recordHarre   dirrecordVideorf   sizerg   r]   nullzno-overrider^   r_   r`   acceptdeny)getr!   r    r   absolute
isinstancedictjsonloadsr   decode)rs   rg   r2   r2   r3   rp      s@   

rp   )2r   pathlibr   typesr   typingr   r   r   r   r   r	   r
   r    playwright._impl._api_structuresr   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!   playwright._impl._pager"   playwright._impl._browser_typer#   r$   rp   r2   r2   r2   r3   <module>   s$   (0 /