
    ijFk                        d dl Z 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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mZm Z  d d	l!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-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZE d dlFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZNmOZOmPZP d dlQmRZR d dlSmTZT d dlUmVZV d dlWmXZX erd dlYmZZZ  G d de      Z[y)    N)Path)SimpleNamespace)TYPE_CHECKINGAnyCallableDictListLiteralOptionalPatternSequenceSetUnioncast)CookieGeolocationSetCookieParamStorageStateWebErrorLocation)
CDPSession)Clock)ChannelOwnerfrom_channelfrom_nullable_channel)ConsoleMessage)Credentials)Debugger)Dialog)
DisposableDisposableStub)ErrorTargetClosedError)EventContextManagerImpl)APIRequestContext)Frame)	HarRouter)HarContentPolicyHarModeRouteFromHarNotFoundPolicyRouteHandlerRouteHandlerCallbackTimeoutSettingsURLMatchWebSocketRouteHandlerCallbackasync_readfileasync_writefile create_task_and_ignore_exceptionlocals_to_paramsparse_errorto_impl)RequestResponseRouteWebSocketRouteWebSocketRouteHandlerserialize_headers)BindingCallPageWorker)escape_regex_flags)Tracing)Waiter)WebError)Browserc                       e Zd Z edi ddddddddd	d
dddddddddddddddddddddd d!d"Zd#ed$ed%ed&ed'd(f
 fd)Zd'efd*Z	de
d'd(fd+Zd,ed'd(fd-Zd.ed'd(fd/Zd0ed'd(fd1Zd2ed'd(fd3Zd2ee   d'd(fd4Zd2ed'd(fd5Zd2ee   d'd(fd6Zed'ee
   fd7       Zed'ed8   fd9       Zd:eeeef      d;ee   d<ee   d=eee e   ef      d>ee!   d'd(fd?Z"d'e
fd@Z#ddAeee$e   f   d'ee%   fdBZ&dCe$e'   d'd(fdDZ(	 	 	 ddEeee e   f   dFeee e   f   dGeee e   f   d'd(fdHZ)	 ddIe$e   dJed'd(fdKZ*ddLZ+ddMe,d'd(fdNZ-dOeeef   d'd(fdPZ.dQed'd(fdRZ/	 ddSedGeeef   d'e0fdTZ1dEedUe2d'e0fdVZ3dEedUe2d'e0fdWZ4	 ddXe5dYe6dZe7d'e8fd[Z9	 ddXe5dYee6   d'd(fd\Z:	 dd]ee;   d^ee;   d_e<d`   d'd(fdaZ=dXe5dYe>d'd(fdbZ?ddcZ@	 dd_e<d`   d'd(fddZA	 	 	 	 	 ddeeeef   dXee e   ef   dfeBdgedhe<di   dje!d'd(fdkZCddlZDddmZE	 	 ddnedoe2d2ed'eFfdpZGddqZHd'efdrZIddsed'd(fdtZJ	 	 	 ddGeeef   duedved'eKfdwZLdxeeKeef   d'd(fdyZMd'ee   fdzZN	 ddnedoe2d2ed'eOfd{ZP	 	 ddoe2eQgef   d2ed'eFeQ   fd|ZR	 	 ddoe2e
gef   d2ed'eFe
   fd}ZSd~eTd'd(fdZUdeVdedee   dee
   d'd(f
dZWdeVdeeX   dedee
   d'd(f
dZYdned'd(fdZZde[d'd(fdZ\de]dee
   de^d'd(fdZ_deVdee
   d'd(fdZ`deXdee
   d'd(fdZaed'ee
   fd       Zbed'eeT   fd       Zcdee
edf   d'eefdZfed'egfd       Zhed'eifd       Zjedd       Zked'elfd       Zmed'enfd       Zo xZpS )BrowserContextBackgroundPagebackgroundpageClosecloseConsoleconsoler   dialogDownloaddownloadFrameAttachedframeattachedFrameDetachedframedetachedFrameNavigatedframenavigatedr<   page	PageClose	pageclosePageLoadpageloadrA   weberrorServiceWorkerserviceworkerr5   requestr6   responseRequestFailedrequestfailedRequestFinishedrequestfinishedparenttypeguidinitializerreturnNc                     t            ||||       d  _        |j                  j                  dk(  rt        d|       _        g  _        g  _        g  _        i  _	        t        d        _        d  _        |d    _        t                _         j                  j!                  d       _         j                  j!                  d       _        t        t&        t)        |d                _        t        t,        t)        |d                _        t)        |d          _         j                   j0                  _        t3                _        t7                _         j:                  j=                  d fd	        j:                  j=                  d
 fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d fd        j:                  j=                  d  fd!       t?        j@                          _!         jE                   jF                  jH                   fd"       d  _%        g  _&         jO                  tP        jF                  jR                  dtP        jF                  jT                  dtP        jF                  jV                  dtP        jF                  jX                  dtP        jF                  jZ                  d tP        jF                  j\                  di       d# _/        y )$NrB   optionsbaseURLrecordVideotracingdebuggerrequestContextbindingCallc                 >    j                  t        | d               S )Nbinding)_on_bindingr   paramsselfs    T/root/.hermes/venv/lib/python3.12/site-packages/playwright/_impl/_browser_context.py<lambda>z)BrowserContext.__init__.<locals>.<lambda>   s    4++L	9J,KL     rH   c                 $    j                         S N)	_on_close)_rt   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    DNN,< rw   rT   c                 >    j                  t        | d               S )NrT   )_on_pager   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    4==fVn1M#N rw   routec           	          j                   j                  j                  t        | j	                  d                        S )Nr~   )_loopcreate_task	_on_router   getrr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s3    4::11 G!45 rw   webSocketRoutec                 p    j                   j                  j                  t        | d                     S )Nr   )r   r   _on_web_socket_router   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s2    4::11)) (8!9: rw   serviceWorkerc                 >    j                  t        | d               S )Nworker)_on_service_workerr   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    422<x@P3QR rw   rJ   c                 &    j                  |       S ry   )_on_console_message)eventrt   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    $2259 rw   rK   c                 >    j                  t        | d               S )NrK   )
_on_dialogr   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    T__\&BR5S%T rw   	pageErrorc                     j                  t        | d   d         t        | d         t        t        | j                  d      xs dddd            S )NerrorrT   location r   )urllinecolumn)_on_page_errorr3   r   r   r   r   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   sR    4..F7OG45%fVn5$JJz*Qb!q.Q rw   r\   c                 p    j                  t        | d         t        | j                  d                  S )Nr\   rT   )_on_requestr   r   r   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s0    4++VI./%fjj&89 rw   r]   c                 p    j                  t        | d         t        | j                  d                  S )Nr]   rT   )_on_responser   r   r   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s0    4,,VJ/0%fjj&89 rw   requestFailedc           
          j                  t        | d         | d   | j                  d      t        | j                  d                  S )Nr\   responseEndTimingfailureTextrT   )_on_request_failedr   r   r   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   sE    422VI./*+

=)%fjj&89	 rw   requestFinishedc           
          j                  t        | d         t        | j                  d            | d   t        | j                  d                  S )Nr\   r]   r   rT   )_on_request_finishedr   r   r   rr   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   sJ    444VI./%fjj&<=*+%fjj&89	 rw   c                 :    j                   j                  d      S NT)_closed_future
set_result)contextrt   s    ru   rv   z)BrowserContext.__init__.<locals>.<lambda>   s    t/B/B/M/Md/S rw   F)0super__init___browser	__class____name__r   _pages_routes_web_socket_routes	_bindingsr,   _timeout_settings_owner_page_optionsset_service_workersr   	_base_url_videos_dirr?   r   _tracingr   	_debugger_requestr   _clockr   _credentials_channelonasyncioFuturer   onceEventsrG   _close_reason_har_routers"_set_event_to_subscription_mappingrD   rI   r   r5   r6   r`   r^   _closing_or_closed)rt   rb   rc   rd   re   r   s   `    ru   r   zBrowserContext.__init__r   s@    	t[9 .2$$	1 F3DM"$+-?A)+!0!6+/(3I(>-0U(,(9(9)(D*.--*;*;M*JWl;y3I&JK#',{:?V2W#X+7DT8U+V*.*@*@'Dk'-L	
 	"<=N	
 		
 		
 	R	
 	9	

 	T	
 	
	
 		
 		
 		
 		
 /6nn.>		KKS	
 -1-///%%--y%%,,h%%--y%%..
%%557H%%33_		
 #(rw   c                 "    d| j                    dS )Nz<BrowserContext browser=>)browserrt   s    ru   __repr__zBrowserContext.__repr__   s    )$,,q99rw   c                 F   | j                   j                  |       | j                  t        j                  j
                  |       |j                  rP|j                  j                         s5|j                  j                  t
        j                  j                  |       y y y ry   )	r   appendemitrD   r   r<   _opener	is_closedPopup)rt   rT   s     ru   r}   zBrowserContext._on_page   si    4 		.'',,d3<< 6 6 8LLdkk//6 !9<rw   r~   c           
      R   K    |_         |j                  j                         } j                  j	                         }|D ]  }|r|j
                  s j                  r y |j                  |j                  j                        sE| j                  vrT|j                  r j                  j                  |       	 |j                  |       d {   }t         j                        dk(  r4t         j                   j                  j!                   fdd             	 |s y  	 |j#                  d       d {    y 7 q# t         j                        dk(  r4t         j                   j                  j!                   fdd             w w xY w7 X# t$        $ r Y y w xY ww)Nr   c                  $     j                         S ry   )_update_interception_patternsr   s   ru   rv   z*BrowserContext._on_route.<locals>.<lambda>  s    D$F$F$H rw   T)_contextr\   
_safe_pager   copy_close_was_calledr   matchesr   will_expireremovehandlelenr1   r   _connectionwrap_api_call_inner_continue	Exception)rt   r~   rT   route_handlersroute_handlerhandleds   `     ru   r   zBrowserContext._on_route   sk    }}'')**,+ 	M//D4K4K (():):;DLL0((##M2	 - 4 4U ;;t||$)4

((66H$ +	,	 ''--- <t||$)4

((66H$ * . 		sn   B9F'=EEEAF'%F')F =F>F F'EAFF'F 	F$!F'#F$$F'web_socket_routec                    K   t        fd| j                  D        d       }|r|j                         d {    y j                          y 7 w)Nc              3   X   K   | ]!  }|j                  j                        r| # y wry   )r   r   ).0r   r   s     ru   	<genexpr>z6BrowserContext._on_web_socket_route.<locals>.<genexpr>  s.      ! (()9)=)=> s   '*)nextr   r   connect_to_server)rt   r   r   s    ` ru   r   z#BrowserContext._on_web_socket_route  sT     %)%<%<
 
 &&'7888..0 9s   6AAAbinding_callc                     | j                   j                  |j                  d         }|y t        j                  |j                  |             y )Nname)r   r   _initializerr   r   call)rt   r   funcs      ru   rq   zBrowserContext._on_binding%  sB    ~~!!,";";F"CD<L--d34rw   timeoutc                 $    | j                  |      S ry   )$_set_default_navigation_timeout_implrt   r   s     ru   set_default_navigation_timeoutz-BrowserContext.set_default_navigation_timeout+  s    88AArw   c                 :    | j                   j                  |       y ry   )r   r   r   s     ru   r   z3BrowserContext._set_default_navigation_timeout_impl.  s    ==gFrw   c                 $    | j                  |      S ry   )_set_default_timeout_implr   s     ru   set_default_timeoutz"BrowserContext.set_default_timeout1  s    --g66rw   c                 :    | j                   j                  |       y ry   )r   r   r   s     ru   r   z(BrowserContext._set_default_timeout_impl4  s    227;rw   c                 6    | j                   j                         S ry   )r   r   r   s    ru   pageszBrowserContext.pages7  s    {{!!rw   rB   c                     | j                   S ry   )r   r   s    ru   r   zBrowserContext.browser;      }}rw   record_har_pathrecord_har_contentrecord_har_omit_contentrecord_har_url_filterrecord_har_modec                    K   |sy t        |      }|j                  d      rdnd}|xs |du rdn|}| j                  j                  |d |||xs d       d {    y 7 w)Nz.zipattachembedTomitfullharrT   r   update_contentupdate_mode)strendswithr   _record_into_har)rt   r  r  r  r  r  default_policycontent_policys           ru   _initialize_har_from_optionsz+BrowserContext._initialize_har_from_options?  s      o.'008Hg 	 ,> ,
-5F> 	 mm,,%)(2F - 
 	
 	
s   AA!AA!c                    K   | j                   rt        d      t        | j                  j	                  dd        d {         S 7 w)Nz Please use browser.new_context()newPage)r   r!   r   r   sendr   s    ru   new_pagezBrowserContext.new_pageX  s=     :;;$--"4"4Y"EEFFEs   <A	A	A	urlsc                    K   |g }t        |t              r|g}| j                  j                  dd t	        |             d {   S 7 w)Ncookies)r  )
isinstancer  r   r  dict)rt   r  s     ru   r  zBrowserContext.cookies]  sD     <DdC 6D]]''	44IIIIs   AAA	Ar  c                 n   K   | j                   j                  dd t        |             d {    y 7 w)N
addCookies)r  r   r  r  )rt   r  s     ru   add_cookieszBrowserContext.add_cookiesd  '     mm  tT'5JKKK   +535r   domainpathc                 $  K   | j                   j                  dd t        |t              r|nd t        |t              r|j
                  nd t        |t              rt        |      nd t        |t              r|nd t        |t              r|j
                  nd t        |t              rt        |      nd t        |t              r|nd t        |t              r|j
                  nd t        |t              rt        |      nd d	       d {    y 7 w)NclearCookies)	r   nameRegexSourcenameRegexFlagsr%  domainRegexSourcedomainRegexFlagsr&  pathRegexSourcepathRegexFlags)r   r  r  r  r   patternr>   )rt   r   r%  r&  s       ru   clear_cookieszBrowserContext.clear_cookiesg  s      mm   *4 543=dG3L4<<RV0:40I&t,t$.vs$;&&0&AFNNt 3=VW2M&v.SW *4 543=dG3L4<<RV0:40I&t,t!
 	
 	
s   DDD	Dpermissionsoriginc                 |   K   | j                   j                  dd t        t                            d {    y 7 w)NgrantPermissionsr   r  r2   locals)rt   r1  r2  s      ru   grant_permissionsz BrowserContext.grant_permissions  s-      mm  !3T;KFH;UVVV   2<:<c                 X   K   | j                   j                  dd        d {    y 7 w)NclearPermissions)r   r  r   s    ru   clear_permissionsz BrowserContext.clear_permissions  s!     mm  !3T:::s    *(*geolocationc                 |   K   | j                   j                  dd t        t                            d {    y 7 w)NsetGeolocationr5  )rt   r<  s     ru   set_geolocationzBrowserContext.set_geolocation  s+     mm  !149I&(9STTTr8  headersc           	         K   | j                   j                  dd t        t        |                   d {    y 7 w)NsetExtraHTTPHeaders)r@  )r   r  r  r:   )rt   r@  s     ru   set_extra_http_headersz%BrowserContext.set_extra_http_headers  s4     mm  !46G6P)Q
 	
 	
s   4><>offlinec                 n   K   | j                   j                  dd t        |             d {    y 7 w)N
setOffline)rD  r!  )rt   rD  s     ru   set_offlinezBrowserContext.set_offline  r#  r$  scriptc           	         K   |r!t        |       d {   j                         }t        |t              st	        d      t        | j                  j                  dd t        |             d {         S 7 e7 
w)Nz1Either path or script parameter must be specifiedaddInitScript)source)	r/   decoder  r  r!   r   r   r  r  )rt   rH  r&  s      ru   add_init_scriptzBrowserContext.add_init_script  sn      *40088:F&#&KLL--$$_dD<OPP
 	
 1 Qs"   A=A9AA=0A;1	A=;A=callbackc           	      2  K   | j                   D ]  }||j                  v st        d| d       || j                  v rt        d| d      || j                  |<   t        | j                  j                  dd t        |             d {         S 7 w)Nz
Function "z1" has been already registered in one of the pagesz" has been already registeredexposeBinding)r   )r   r   r!   r   r   r  r  )rt   r   rN  rT   s       ru   expose_bindingzBrowserContext.expose_binding  s     KK 	Dt~~% &WX 	
 4>>!*TF*GHII't--$$_dDdOLL
 	
Ls   BA+BB	Bc                 J   K   | j                  |fd       d {   S 7 w)Nc                      | S ry    )rK  argsrN  s     ru   rv   z0BrowserContext.expose_function.<locals>.<lambda>  s    Xt_ rw   )rQ  )rt   r   rN  s     `ru   expose_functionzBrowserContext.expose_function  s!     ((/TUUUUs   #!#r   handlertimesc           
          K    j                   j                  dt         j                   j                  rdnd|              j                          d {    t         fd       S 7 w)Nr   TFc                  (    j                         S ry   )unroute)rW  rt   r   s   ru   rv   z&BrowserContext.route.<locals>.<lambda>  s    dll3&@ rw   )r   insertr*   r   _dispatcher_fiberr   r    )rt   r   rW  rX  s   ``` ru   r~   zBrowserContext.route  sj      	..E		
 00222@$GG 	3s   AA2A0A2c                    K   g }g }| j                   D ]E  }|j                  |k7  s|r!|j                  |k7  r|j                  |       5|j                  |       G | j	                  ||d       d {    y 7 w)Ndefault)r   r   rW  r   _unroute_internal)rt   r   rW  removed	remainingr~   s         ru   r[  zBrowserContext.unroute  sr      	\\ 	&EyyCG0H  'u%		&
 $$WiCCCs   A/A91A72A9ra  rb  behavior)r_  ignoreErrorswaitc                    K   || _         ,dk7  r't        j                  t        fd|        d {    | j	                          d {    y 7 7 w)Nr_  c                 &    | j                        S ry   )stop)routerrc  s    ru   rv   z2BrowserContext._unroute_internal.<locals>.<lambda>  s    V[[5J rw   )r   r   gathermapr   )rt   ra  rb  rc  s      `ru   r`  z BrowserContext._unroute_internal  sS      !H	$9..#&JG"TUUU00222 V2s!   1AAAAAAc                    K   | j                   j                  dt        | j                  ||             | j	                          d {    y 7 w)Nr   )r   r\  r9   r   (_update_web_socket_interception_patterns)rt   r   rW  s      ru   route_web_socketzBrowserContext.route_web_socket  sC      	&&!$..#w?	
 ;;===s   AAAAc                 T    | j                   D ]  }|j                           g | _         y ry   )r   dispose)rt   ri  s     ru   _dispose_har_routersz#BrowserContext._dispose_har_routers  s)    '' 	FNN	rw   c                 z   K   | j                  | j                  g |       d {    | j                          y 7 wry   )r`  r   rq  )rt   rc  s     ru   unroute_allzBrowserContext.unroute_all  s6      $$T\\2x@@@!!# 	As   !;9;r  notFoundupdateupdateContent)r  r	  
updateModec                 Z  K   |r)| j                   j                  |d |||       d {    y t        j                  | j                  j
                  t        |      |xs d|       d {   }| j                  j                  |       |j                  |        d {    y 7 |7 ;7 	w)Nr  abort)local_utilsfilenot_found_actionurl_matcher)
r   r  r&   creater   rz  r  r   r   add_context_route)rt   r  r   rt  ru  rv  rw  ri  s           ru   route_from_harzBrowserContext.route_from_har  s      --00,& 1     ''((44S%0	
 
 	  (&&t,,,
 	-s4   &B+B%AB++B',3B+B) B+'B+)B+c                    K   t        j                  | j                        }| j                  j	                  dd d|i       d {    y 7 w)NsetNetworkInterceptionPatternspatterns)r*   prepare_interception_patternsr   r   r  rt   r  s     ru   r   z,BrowserContext._update_interception_patterns	  sB     ==dllKmm  ,dZ4J
 	
 	
   AAA
Ac                    K   t        j                  | j                        }| j                  j	                  dd d|i       d {    y 7 w)N setWebSocketInterceptionPatternsr  )r9   r  r   r   r  r  s     ru   rm  z7BrowserContext._update_web_socket_interception_patterns  sI     (FF##
 mm  .z86L
 	
 	
r  r   	predicatec                 v   || j                   j                         }t        | d| d      }|j                  |d| d| d       |t        j
                  j                  k7  r,|j                  | t        j
                  j                  d        |j                  | ||       t        |j                               S )Nzbrowser_context.expect_event()zTimeout z%ms exceeded while waiting for event ""c                      t               S ry   )r"   rT  rw   ru   rv   z-BrowserContext.expect_event.<locals>.<lambda>%  s
    ;L;N rw   )r   r   r@   reject_on_timeoutrD   r   rG   reject_on_eventwait_for_eventr#   result)rt   r   r  r   waiters        ru   expect_eventzBrowserContext.expect_event  s     ?,,446G =eWAFG  xy(MeWTUV	
 N))///""n++113N 	dE95&v}}77rw   c                 n   d| _         | j                  r| | j                  j                  v r%| j                  j                  j                  |        | j                  j                  J | | j                  j                  j
                  j                  j                  v rC| j                  j                  j
                  j                  j                  j                  |        | j                          | j                  j                          | j                  t        j                  j                  |        y r   )r   r   	_contextsr   _browser_type_playwright	selectors_contexts_for_selectorsrq  r   _reset_stack_counterr   rD   r   rG   r   s    ru   rz   zBrowserContext._on_close*  s    "&==t}}...''..t4==..:::==..::DD\\] ++77AAYY`` 	!!#**,		.''--t4rw   c                     | j                   S ry   )r   r   s    ru   r   zBrowserContext.is_closed<  s    &&&rw   reasonc                 z   K    j                   ry | _        d _          j                  j                  |       d {    d fd} j                  j
                  j                  |d       d {     j                  j                  dd d|i       d {     j                   d {    y 7 t7 B7 7 w)NT)r  c                  V   K    j                   j                          d {    y 7 wry   )r   _export_all_harsr   s   ru   _inner_closez*BrowserContext.close.<locals>._inner_closeG  s     --00222s   )')rH   r  rf   N)	r   r   r\   rp  r   r   r   r  r   )rt   r  r  s   `  ru   rH   zBrowserContext.close?  s     ""#"&ll""&"111	3 mm''55lDIIImm  $60BCCC!!!! 	2
 	JC!sE   ;B;B33B;2B53&B;B7B;-B9.B;5B;7B;9B;	indexedDBcredentialsc                    K   | j                   j                  dd ||d       d {   }|r't        |t        j                  |             d {    |S 7 /7 w)NstorageState)r  r  )r   send_return_as_dictr0   jsondumps)rt   r&  r  r  r  s        ru   storage_statezBrowserContext.storage_stateN  s[      }}88D	+"V
 
 !$

6(:;;;
 <s!   $AA(AAAAr  c                    K   t        |t        t        f      r't        j                  t        |       d {         }n|}| j                  j                  dd d|i       d {    y 7 37 w)NsetStorageStater  )r  r  r   r  loadsr/   r   r  )rt   r  states      ru   set_storage_statez BrowserContext.set_storage_state[  s`      lS$K0JJ^L%AABE Emm  !2D>5:QRRR  B 	Ss!   4A.A*-A.$A,%A.,A.c                 x    | j                   r| j                   S | j                  r| j                  j                   S y ry   )r   r   r   s    ru   _effective_close_reasonz&BrowserContext._effective_close_reasond  s1    %%%====...rw   c                    K   | j                  |||      4 d {   }	 d d d       d {     d {   S 7 7 # 1 d {  7  sw Y    xY w7 wry   )r  )rt   r   r  r   
event_infos        ru   r  zBrowserContext.wait_for_eventk  s[      $$UIw? 	 	:	 		 	 	 	 	sF   A:A>A<	AAAAAAAAc                 X    | j                  t        j                  j                  ||      S ry   )r  r<   r   rI   rt   r  r   s      ru   expect_console_messagez%BrowserContext.expect_console_messager  s#    
   !4!4iIIrw   c                 X    | j                  t        j                  j                  ||      S ry   )r  rD   r   r<   r  s      ru   expect_pagezBrowserContext.expect_pagey  s%    
   !6!6!;!;YPPrw   r   c                     | |_         | j                  j                  |       | j                  t        j
                  j                  |       y ry   )r   r   addr   rD   r   rZ   )rt   r   s     ru   r   z!BrowserContext._on_service_worker  s7    !!&)		.''55v>rw   response_end_timingfailure_textc                     ||_         |j                  |       | j                  t        j                  j
                  |       |r+|j                  t        j                  j
                  |       y y ry   )_failure_text_set_response_end_timingr   rD   r   r^   r<   )rt   r\   r  r  rT   s        ru   r   z!BrowserContext._on_request_failed  sU     !-(()<=		.''55w?IIdkk//9 rw   c                    |j                  |       | j                  t        j                  j                  |       |r*|j                  t
        j                  j                  |       |r|j                  j                  d       y y r   )r  r   rD   r   r`   r<   _finished_futurer   )rt   r\   r]   r  rT   s        ru   r   z#BrowserContext._on_request_finished  sd     	(()<=		.''77AIIdkk117;%%006 rw   c                 z   t        || j                  | j                        }|j                  }|r*|j	                  t
        j                  j                  |       |j                  }|r*|j	                  t        j                  j                  |       | j	                  t        j                  j                  |       y ry   )r   r   r]  r   r   r=   r   rI   rT   r<   rD   )rt   r   messager   rT   s        ru   r   z"BrowserContext._on_console_message  s|     

D4J4JKKK--w7||IIdkk))73		.''//9rw   c                    | j                  t        j                  j                  |      }|j                  }|r.|j                  t
        j                  j                  |      xs |}|sY|j                  dk(  r%t        | j                  |j                                y t        | j                  |j                                y y )Nbeforeunload)r   rD   r   r   rT   r<   rc   r1   r   acceptdismiss)rt   rK   has_listenersrT   s       ru   r   zBrowserContext._on_dialog  s    		."7"7">">G{{ IIdkk&8&8&AR]M
 {{n,0V]]_M0V^^=MN rw   r   r   c           
          | j                  t        j                  j                  t        | j                  | j
                  |||             |r+|j                  t        j                  j                  |       y y ry   )r   rD   r   rA   r   r]  r<   	PageError)rt   r   rT   r   s       ru   r   zBrowserContext._on_page_error  s[     			!!**TZZ!7!7uhO	
 IIdkk++U3 rw   c                     | j                  t        j                  j                  |       |r+|j                  t        j                  j                  |       y y ry   )r   rD   r   r5   r<   )rt   r\   rT   s      ru   r   zBrowserContext._on_request  s<    		.''//9IIdkk))73 rw   c                     | j                  t        j                  j                  |       |r+|j                  t        j                  j                  |       y y ry   )r   rD   r   r6   r<   )rt   r]   rT   s      ru   r   zBrowserContext._on_response  s<    		.''00(;IIdkk**H5 rw   c                     g S ry   rT  r   s    ru   background_pageszBrowserContext.background_pages  s    	rw   c                 ,    t        | j                        S ry   )listr   r   s    ru   service_workerszBrowserContext.service_workers  s    D))**rw   c                   K   t        |      }i }t        |t              r|j                  |d<   n+t        |t              r|j                  |d<   nt        d      t        | j                  j                  dd |       d {         S 7 w)NrT   framezpage: expected Page or FramenewCDPSession)r4   r  r<   r   r%   r!   r   r  )rt   rT   rs   s      ru   new_cdp_sessionzBrowserContext.new_cdp_session  sr     t}dD!!]]F6Ne$"mmF7O677$--"4"4_dF"SSTTSs   A>B B		Bc                     | j                   S ry   )r   r   s    ru   rk   zBrowserContext.tracing  r  rw   c                     | j                   S ry   )r   r   s    ru   rl   zBrowserContext.debugger  s    ~~rw   c                     | j                   S ry   )r   r   s    ru   r\   zBrowserContext.request  r  rw   c                     | j                   S ry   )r   r   s    ru   clockzBrowserContext.clock  s    {{rw   c                     | j                   S ry   )r   r   s    ru   r  zBrowserContext.credentials  s       rw   rT  ry   )NNNr  )NN)NNNNN)rf   r$   )qr   
__module____qualname__r   r   r   r  r   r   r   r<   r}   r7   r   r8   r   r;   rq   floatr   r   r   r   r   propertyr	   r   r   r   r   r'   boolr   r(   r  r  r   r   r  r   r"  r0  r7  r;  r   r?  rC  rG  r   rM  r   rQ  rV  r-   r+   intr    r~   r[  r*   r
   r`  r.   rn  rq  rs  r)   r  r   rm  r#   r  rz   r   rH   r   r  r  r  r   r  r   r  r  r=   r   r5   r   r6   r   r   r   r   r!   r   r   r   r   r  r  r%   r   r  r?   rk   r   rl   r\   r   r  r   r  __classcell__)r   s   @ru   rD   rD   \   s    '  	
   & & (     &   !" &#$ *%F*y("y(*-y(58y(GKy(	y(v:# :7T 7d 7U t B1> 1d 15 5 5Be B BGHUO GPT G75 7T 7<% <T < "tDz " " ),  
!%c	"23
 %%56
 "*$	

  (gclC.?(@A
 "'*
 

2G G
J%Xc](:"; JtF| JL.)A Ld L
 *.+/)-	
C%&
 c73<'(
 C%&	

 

> 9=W#C=W25W	W
;U U U
DcN 
t 

L L$ L <@	
	
(-c4i(8	
		

 
 
Z 
V# V Vj V JNHH&:HCFH	H" HL
D
D&./C&D
D	
D  @D		3l#	3 %	3 ;<		3
 
	3>>&C>	> FJ$ AB$	$ )-/348"-49- 73<$%- -	-
 - 01- - 
-6

 #	88 8 	8
 
!8&5$'4 '"# " "" "& 	CI  	
 
S!,T"9:S	S#  HL  %- ?D 	  7;J^,d23J J 
!	0	J -1QTFDL)Q Q 
!	&	Q? ?D ?
:: #: sm	:
 tn: 
:77 8$7 #	7
 tn7 
7: :$ :O OD O44"*4.4<L4	447 4(4. 4T 4
6X 6Xd^ 6 6
 $t*   +f + +	U%e*< 	U 	U    (     u   ![ ! !rw   rD   )\r   r  pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r   r   r   r    playwright._impl._api_structuresr   r   r   r   r   playwright._impl._cdp_sessionr   playwright._impl._clockr   playwright._impl._connectionr   r   r   !playwright._impl._console_messager   playwright._impl._credentialsr   playwright._impl._debuggerr   playwright._impl._dialogr   playwright._impl._disposabler   r    playwright._impl._errorsr!   r"   'playwright._impl._event_context_managerr#   playwright._impl._fetchr$   playwright._impl._framer%   playwright._impl._har_routerr&   playwright._impl._helperr'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   playwright._impl._networkr5   r6   r7   r8   r9   r:   playwright._impl._pager;   r<   r=   playwright._impl._str_utilsr>   playwright._impl._tracingr?   playwright._impl._waiterr@   playwright._impl._web_errorrA   playwright._impl._browserrB   rD   rT  rw   ru   <module>r     s       !     5 ) 
 = 5 / + C = K 5 ) 2      = < : - + 01V
!\ V
!rw   