
    il                        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 d dl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'm(Z( d dl)m*Z* d dl+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZAmBZBmCZCmDZDmEZEmFZF d dlGmHZHmIZImJZJ d dlKmLZL d dlMmNZN d dlOmPZP d dlQmRZR erd dlSmTZT  G d de          ZUdS )    N)Path)SimpleNamespace)TYPE_CHECKINGAnyCallableDictListLiteralOptionalPatternSequenceSetUnioncast)CookieGeolocationSetCookieParamStorageState)Artifact)
CDPSession)Clock)ChannelOwnerfrom_channelfrom_nullable_channel)ConsoleMessage)Dialog)ErrorTargetClosedError)EventContextManagerImpl)APIRequestContext)Frame)	HarRouter)HarContentPolicyHarModeHarRecordingMetadataRouteFromHarNotFoundPolicyRouteHandlerRouteHandlerCallbackTimeoutSettingsURLMatchWebSocketRouteHandlerCallbackasync_readfileasync_writefile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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deddfdZdeddfdZdee         ddfdZdeddfdZdee         ddfd Zedee
         fd!            Zeded"         fd#            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#d{d+eee$e         f         dee%         fd,Z&d-e$e'         ddfd.Z(	 	 	 d|d/eee e         f         d0eee e         f         d1eee e         f         ddfd2Z)	 d{d3e$e         d4eddfd5Z*d}d6Z+d{d7e,ddfd8Z-d9eeef         ddfd:Z.d;eddfd<Z/	 d~d=ed1eeef         ddfd>Z0	 d{d/ed?e1d@eddfdAZ2d/ed?e1ddfdBZ3	 d{dCe4dDe5dEe6ddfdFZ7	 d{dCe4dDee5         ddfdGZ8	 d{dHee9         dIee9         dJe:dK         ddfdLZ;dCe4dDe<ddfdMZ=d}dNZ>	 d{dJe:dK         ddfdOZ?	 	 	 	 ddPeeef         dee
         dCee e         ef         dQedRe!ddfdSZ@	 	 	 	 	 ddPeeef         dCee e         ef         dTeAdUedVe:dW         dXe!ddfdYZBd}dZZCd}d[ZD	 	 d~d\ed]e1dedeEfd^ZFd}d_ZGd{d`eddfdaZH	 d~d1eeef         dbedeIfdcZJdee         fddZK	 d~d\ed]e1dedeLfdeZM	 	 d~d]e1eNgef         dedeEeN         fdfZO	 	 d~d]e1e
gef         dedeEe
         fdgZPdheQddfdiZRdeSdjedkee         dee
         ddf
dlZTdeSd	eeU         djedee
         ddf
dmZVd\eddfdnZWdeXddfdoZYdpeZdee
         ddfdqZ[deSdee
         ddfdrZ\d	eUdee
         ddfdsZ]edee
         fdt            Z^edeeQ         fdu            Z_dee
e`f         deafdvZbedecfdw            Zdeddy            Zeedeffdz            Zg xZhS )BrowserContextbackgroundpagecloseconsoledialogpageweberrorserviceworkerrequestresponserequestfailedrequestfinished)BackgroundPageCloseConsoler   r8   r=   ServiceWorkerr1   r2   RequestFailed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                            d           _         j                            d           _        t          t&          t)          |d                              _        i  _        t)          |d                    _        t1                      _         j                            d fd            j                            d	 fd
            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            j                            d fd            t9          j                     _                              j         j!         fd!           d  _"        g  _#         $                    tJ          j         j&        dtJ          j         j'        dtJ          j         j(        dtJ          j         j)        dtJ          j         j*        dtJ          j         j+        di           d" _,        d S )#Nr>   optionsbaseURLrecordVideotracingrequestContextbindingCallc                 T                         t          | d                             S )Nbinding)_on_bindingr   paramsselfs    a/Users/shanyulin/my-agent/.venv/lib/python3.11/site-packages/playwright/_impl/_browser_context.py<lambda>z)BrowserContext.__init__.<locals>.<lambda>   s"    4++L	9J,K,KLL     rB   c                 ,                                     S N)	_on_close)_rc   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s    DNN,<,< rf   rE   c                 T                         t          | d                             S )NrE   )_on_pager   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s    4==fVn1M1M#N#N rf   routec           	          j                                                 t          |                     d                                        S )Nrm   )_loopcreate_task	_on_router   getra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   sA    4:11 G!4!455   rf   webSocketRoutec                     j                                                 t          | d                                       S )Nrs   )ro   rp   _on_web_socket_router   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s=    4:11)) (8!9::   rf   serviceWorkerc                 T                         t          | d                             S )Nworker)_on_service_workerr   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s"    422<x@P3Q3QRR rf   rC   c                 .                         |           S rh   )_on_console_message)eventrc   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s    $22599 rf   rD   c                 T                         t          | d                             S )NrD   )
_on_dialogr   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s     T__\&BR5S5S%T%T rf   	pageErrorc                                          t          | d         d                   t          | d                             S )NerrorrE   )_on_page_errorr/   r   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s:    4..F7OG455%fVn55  rf   rH   c                                          t          | d                   t          |                     d                              S )NrH   rE   )_on_requestr   r   rr   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s>    4++VI.//%fjj&8&899  rf   rI   c                                          t          | d                   t          |                     d                              S )NrI   rE   )_on_responser   r   rr   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s>    4,,VJ/00%fjj&8&899  rf   requestFailedc           
                               t          | d                   | d         |                     d          t          |                     d                              S )NrH   responseEndTimingfailureTextrE   )_on_request_failedr   rr   r   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   sV    422VI.//*+

=))%fjj&8&899	  rf   requestFinishedc           
                               t          | d                   t          |                     d                    | d         t          |                     d                              S )NrH   rI   r   rE   )_on_request_finishedr   r   rr   ra   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s^    444VI.//%fjj&<&<==*+%fjj&8&899	  rf   c                 8    j                             d          S NT)_closed_future
set_result)contextrc   s    rd   re   z)BrowserContext.__init__.<locals>.<lambda>   s    t/B/M/Md/S/S rf   F)-super__init___browser	__class____name__r   _pages_routes_web_socket_routes	_bindingsr)   _timeout_settings_owner_page_optionsset_service_workersrr   	_base_url_videos_dirr;   r   _tracing_har_recorders_requestr   _clock_channelonasyncioFuturer   onceEventsrM   _close_reason_har_routers"_set_event_to_subscription_mappingr@   rN   r   r1   r2   rQ   rP   _closing_or_closed)rc   rR   rS   rT   rU   r   s   `    rd   r   zBrowserContext.__init__i   s-    	t[999 .2$	11 F33DM"$+-?A)+!0!6!6+/(3I(>-0UU(,(9(9)(D(D*.-*;*;M*J*JWl;y3I&J&JKK?A+7DT8U+V+VDkkLLLL	
 	
 	
 	"<"<"<"<===NNNN	
 	
 	
 	   	
 	
 	
 	   	
 	
 	
 	RRRR	
 	
 	
 	9999	
 	
 	

 	TTTT	
 	
 	
 	   	
 	
 	
 	   	
 	
 	
 	   	
 	
 	
 	   	
 	
 	
 	   	
 	
 	
 /6n.>.>		KSSSS	
 	
 	
 -1-///%-y%,h%-y%.
%57H%3_		
 		
 		
 #(rf   c                     d| j          dS )Nz<BrowserContext browser=>)browserrc   s    rd   __repr__zBrowserContext.__repr__   s    9$,9999rf   c                     | j                             |           |                     t          j        j        |           |j        rE|j                                        s.|j                            t
          j        j        |           d S d S d S rh   )	r   appendemitr@   r   r8   _opener	is_closedPopup)rc   rE   s     rd   rl   zBrowserContext._on_page   s    4   		.',d333< 	7 6 6 8 8 	7Ldk/66666	7 	7 	7 	7rf   rm   c           	         K    |_         |j                                        } j                                        }|D ]}|r|j        s j        r d S |                    |j        j                  s6| j        vr@|j	        r j        
                    |           	 |                    |           d {V }t           j                  dk    r0t          j         j                             fdd                     nN# t           j                  dk    r1t          j         j                             fdd                     w w xY w|r d S 	 |                    d           d {V  d S # t$          $ r Y d S w xY w)Nr   c                  ,                                      S rh   )_update_interception_patternsr   s   rd   re   z*BrowserContext._on_route.<locals>.<lambda>   s    D$F$F$H$H rf   T)_contextrH   
_safe_pager   copy_close_was_calledr   matchesurlwill_expireremovehandlelenr   rp   _connectionwrap_api_call_inner_continue	Exception)rc   rm   rE   route_handlersroute_handlerhandleds   `     rd   rq   zBrowserContext._on_route   s     }''))**,,+ 	 	M / D4K  (():;; DL00( 3##M222 - 4 4U ; ;;;;;;;t|$$))'(66HHHH$    t|$$))'(66HHHH$     *  	 ''----------- 	 	 	DD	s   !DAEE8 8
FFweb_socket_routec                    K   t          fd| j        D             d           }|r|                               d {V  d S                                  d S )Nc              3   P   K   | ] }|                     j                  |V  !d S rh   )r   r   ).0r   r   s     rd   	<genexpr>z6BrowserContext._on_web_socket_route.<locals>.<genexpr>	  sO        ! (()9)=>>     rf   )nextr   r   connect_to_server)rc   r   r   s    ` rd   ru   z#BrowserContext._on_web_socket_route  s         %)%<  
 
 
  	1&&'788888888888..00000rf   binding_callc                     | j                             |j        d                   }|d S t          j        |                    |                     d S )Nname)r   rr   _initializerr   rp   call)rc   r   funcs      rd   r`   zBrowserContext._on_binding  sN    ~!!,";F"CDD<FL--d3344444rf   timeoutc                 ,    |                      |          S rh   )$_set_default_navigation_timeout_implrc   r   s     rd   set_default_navigation_timeoutz-BrowserContext.set_default_navigation_timeout  s    88AAArf   c                 :    | j                             |           d S rh   )r   r   r   s     rd   r   z3BrowserContext._set_default_navigation_timeout_impl  s    ==gFFFFFrf   c                 ,    |                      |          S rh   )_set_default_timeout_implr   s     rd   set_default_timeoutz"BrowserContext.set_default_timeout!  s    --g666rf   c                 :    | j                             |           d S rh   )r   r   r   s     rd   r   z(BrowserContext._set_default_timeout_impl$  s    227;;;;;rf   c                 4    | j                                         S rh   )r   r   r   s    rd   pageszBrowserContext.pages'  s    {!!!rf   r>   c                     | j         S rh   )r   r   s    rd   r   zBrowserContext.browser+  
    }rf   record_har_pathrecord_har_contentrecord_har_omit_contentrecord_har_url_filterrecord_har_modec                    K   |sd S t          |          }|                    d          rdnd}|p|du rdn|}|                     |d |||pd           d {V  d S )N.zipattachembedTomitfullharrE   r   update_contentupdate_mode)strendswith_record_into_har)rc   r   r   r   r   r   default_policycontent_policys           rd   _initialize_har_from_optionsz+BrowserContext._initialize_har_from_options/  s        	Fo..'0088EHHg 	 ,> ,
-55FF> 	 ##%)(2F $ 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   c                    K   | j         rt          d          t          | j                            dd            d {V           S )Nz Please use browser.new_context()newPage)r   r   r   r   sendr   s    rd   new_pagezBrowserContext.new_pageH  sR       	<:;;;$-"4"4Y"E"EEEEEEEFFFrf   urlsc                    K   |g }t          |t                    r|g}| j                            dd t	          |                     d {V S )Ncookies)r  )
isinstancer   r   r  dict)rc   r  s     rd   r  zBrowserContext.cookiesM  s]      <DdC   	6D]''	44IIIIIIIIIrf   r  c                 j   K   | j                             dd t          |                     d {V  d S )N
addCookies)r  r   r  r	  )rc   r  s     rd   add_cookieszBrowserContext.add_cookiesT  C      m  tT'5J5J5JKKKKKKKKKKKrf   r   domainpathc                 l  K   | 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 {V  d S )NclearCookies)	r   nameRegexSourcenameRegexFlagsr  domainRegexSourcedomainRegexFlagsr  pathRegexSourcepathRegexFlags)r   r  r  r   r   patternr:   )rc   r   r  r  s       rd   clear_cookieszBrowserContext.clear_cookiesW  sI      m   *4 5 5?43=dG3L3L#V4<<RV0:40I0IS&t,,,t$.vs$;$;E&&&0&A&AKFNNt 3=VW2M2MW&v...SW *4 5 5?43=dG3L3L#V4<<RV0:40I0IS&t,,,t! 
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   permissionsoriginc                    K   | j                             dd t          t                                           d {V  d S )NgrantPermissionsr   r  r.   locals)rc   r  r  s      rd   grant_permissionsz BrowserContext.grant_permissionsu  sH       m  !3T;KFHH;U;UVVVVVVVVVVVrf   c                 L   K   | j                             dd            d {V  d S )NclearPermissions)r   r  r   s    rd   clear_permissionsz BrowserContext.clear_permissionsz  s7      m  !3T:::::::::::rf   geolocationc                    K   | j                             dd t          t                                           d {V  d S )NsetGeolocationr  )rc   r%  s     rd   set_geolocationzBrowserContext.set_geolocation}  sF      m  !149I&((9S9STTTTTTTTTTTrf   headersc           	         K   | j                             dd t          t          |                               d {V  d S )NsetExtraHTTPHeaders)r)  )r   r  r	  r6   )rc   r)  s     rd   set_extra_http_headersz%BrowserContext.set_extra_http_headers  sc      m  !46G6P6P)Q)Q)Q
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   offlinec                 j   K   | j                             dd t          |                     d {V  d S )N
setOffline)r-  r  )rc   r-  s     rd   set_offlinezBrowserContext.set_offline  r  rf   scriptc                   K   |r't          |           d {V                                 }t          |t                    st	          d          | j                            dd t          |                     d {V  d S )Nz1Either path or script parameter must be specifiedaddInitScript)source)r,   decoder  r   r   r   r  r	  )rc   r1  r  s      rd   add_init_scriptzBrowserContext.add_init_script  s        	;*40000000088::F&#&& 	MKLLLm  $F8K8K8KLLLLLLLLLLLrf   callbackr   c                   K   | j         D ]}||j        v rt          d| d          || j        v rt          d| d          || j        |<   | j                            dd t          ||pd                     d {V  d S )Nz
Function "z1" has been already registered in one of the pagesz" has been already registeredexposeBindingF)r   needsHandle)r   r   r   r   r  r	  )rc   r   r7  r   rE   s        rd   expose_bindingzBrowserContext.expose_binding  s       K 	 	Dt~%%XXXX   & 4>!!HTHHHIII'tm  T4Tv#O#O#O
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   c                 J   K   |                      |fd           d {V  d S )Nc                      | S rh    )r4  argsr7  s     rd   re   z0BrowserContext.expose_function.<locals>.<lambda>  s    hho rf   )r;  )rc   r   r7  s     `rd   expose_functionzBrowserContext.expose_function  s?      !!$(M(M(M(MNNNNNNNNNNNrf   r   handlertimesc           
         K   | j                             dt          | j        ||| j        rdnd|                     |                                  d {V  d S )Nr   TF)r   insertr'   r   _dispatcher_fiberr   )rc   r   rA  rB  s       rd   rm   zBrowserContext.route  s{       	.9E 		
 		
 		
 0022222222222rf   c                    K   g }g }| j         D ]E}|j        |k    s|r!|j        |k    r|                    |           0|                    |           F|                     ||d           d {V  d S )Ndefault)r   r   rA  r   _unroute_internal)rc   r   rA  removed	remainingrm   s         rd   unroutezBrowserContext.unroute  s       	\ 	& 	&EyCG0H0H  ''''u%%%%$$WiCCCCCCCCCCCrf   rI  rJ  behavior)rG  ignoreErrorswaitc                    K   || _         +dk    r%t          j        t          fd|            d {V  |                                  d {V  d S )NrG  c                 .    |                                S rh   )stop)routerrL  s    rd   re   z2BrowserContext._unroute_internal.<locals>.<lambda>  s    V[[5J5J rf   )r   r   gathermapr   )rc   rI  rJ  rL  s      `rd   rH  z BrowserContext._unroute_internal  s}       !H	$9$9.#&J&J&J&JG"T"TUUUUUUUU0022222222222rf   c                    K   | j                             dt          | j        ||                     |                                  d {V  d S )Nr   )r   rD  r5   r   (_update_web_socket_interception_patterns)rc   r   rA  s      rd   route_web_socketzBrowserContext.route_web_socket  sc       	&&!$.#w??	
 	
 	
 ;;===========rf   c                 P    | j         D ]}|                                 g | _         d S rh   )r   dispose)rc   rR  s     rd   _dispose_har_routersz#BrowserContext._dispose_har_routers  s5    ' 	 	FNNrf   c                 v   K   |                      | j        g |           d {V  |                                  d S rh   )rH  r   rZ  )rc   rL  s     rd   unroute_allzBrowserContext.unroute_all  sL       $$T\2x@@@@@@@@@!!#####rf   r   r   r   c           	        K   |pd}dt          |                              d          |t          |t                     r|nd t          |t                    r|j        nd t          |t                    rt          |          nd |pddi}|r
|j        |d<   | j                            dd |           d {V }t          |          |d| j        |<   d S )	Nr   rX   r   minimal)zipcontenturlGloburlRegexSourceurlRegexFlagsmoderE   harStart)r  r`  )	r   r   r  r   r  r:   r   r  r   )rc   r   rE   r   r   r   rb   har_ids           rd   r   zBrowserContext._record_into_har  s       (383xx((00)",S#"6"6@33D1;C1I1I"S#++t/9#w/G/GQ&s+++T#0y	 	"
  	+!]F6N}))*dFCCCCCCCCHH%'
 '
F###rf   notFoundupdateupdateContent)r   r   
updateModec                 *  K   |r"|                      |d |||           d {V  d S t          j        | j        j        t          |          |pd|           d {V }| j                            |           |                    |            d {V  d S )Nr   abort)local_utilsfilenot_found_actionurl_matcher)	r   r"   creater   rm  r   r   r   add_context_route)rc   r   r   rg  rh  ri  rj  rR  s           rd   route_from_harzBrowserContext.route_from_har  s        	'',& (          F '(4S%0	
 
 
 
 
 
 
 
 
 	  (((&&t,,,,,,,,,,,rf   c                    K   t          j        | j                  }| j                            dd d|i           d {V  d S )NsetNetworkInterceptionPatternspatterns)r'   prepare_interception_patternsr   r   r  rc   rv  s     rd   r   z,BrowserContext._update_interception_patterns  sf      =dlKKm  ,dZ4J
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   c                    K   t          j        | j                  }| j                            dd d|i           d {V  d S )N setWebSocketInterceptionPatternsrv  )r5   rw  r   r   r  rx  s     rd   rV  z7BrowserContext._update_web_socket_interception_patterns  sn      (F#
 
 m  .z86L
 
 	
 	
 	
 	
 	
 	
 	
 	
 	
rf   r|   	predicatec                    || j                                         }t          | d| d          }|                    |d| d| d           |t          j        j        k    r'|                    | t          j        j        d            |                    | ||           t          |
                                          S )Nzbrowser_context.expect_event()zTimeout z%ms exceeded while waiting for event ""c                      t                      S rh   )r   r>  rf   rd   re   z-BrowserContext.expect_event.<locals>.<lambda>1  s    ;L;N;N rf   )r   r   r<   reject_on_timeoutr@   r   rM   reject_on_eventwait_for_eventr   result)rc   r|   r{  r   waiters        rd   expect_eventzBrowserContext.expect_event#  s     ?,4466GFeFFFGG  VVVeVVV	
 	
 	
 N)///""n+13N3N   	dE9555&v}}777rf   c                    d| _         | j        r| | j        j        v r| j        j                            |            | j        j        J | | j        j        j        j        j        v r.| j        j        j        j        j                            |            |                                  | j	        
                                 |                     t          j        j        |            d S r   )r   r   	_contextsr   _browser_type_playwright	selectors_contexts_for_selectorsrZ  r   _reset_stack_counterr   r@   r   rM   r   s    rd   ri   zBrowserContext._on_close6  s    "&= 
	t}...'..t444=.:::=.:D\] ] +7AY``   	!!###**,,,		.'-t44444rf   reasonc                 6   K    j         rd S | _        d _          j                            |           d {V  d fd} j        j                            |d           d {V   j                            dd d|i           d {V   j         d {V  d S )NT)r  rV   c                    K   j                                         D ],\  } }t          t          t	          j                            dd d| i           d {V                     }|                    d          dk    p|d                             d          }|d                             d          }|rV|sT|d         dz   }|	                    |           d {V  j
        j                            ||d                    d {V  n!|	                    |d                    d {V  |                                 d {V  .d S )	N	harExportharIdr`  r   r  r   z.tmp)zipFileharFile)r   itemsr   r   r   r   r  rr   r   save_asr   rm  	har_unzipdelete)rf  rb   r   is_compressedneed_compressedtmp_pathrc   s         rd   _inner_closez*BrowserContext.close.<locals>._inner_closeP  s     "&"5";";"="= # # "m00dWfDUVVVVVVVV   !'

9 5 5 A !#VF(6""  #)."9"9&"A"A  6 6%f~6H++h/////////*6@@ (&. A           ++fVn555555555jjll"""""""")# #rf   rB   r  rV   N)	r   r   rH   rY  r   r   r   r  r   )rc   r  r  s   `  rd   rB   zBrowserContext.closeH  s      " 	F#"&l""&"111111111	# 	# 	# 	# 	# 	#. m'55lDIIIIIIIIIm  $60BCCCCCCCCC!!!!!!!!!!rf   	indexedDBc                    K   | j                             dd d|i           d {V }|r(t          |t          j        |                     d {V  |S )NstorageStater  )r   send_return_as_dictr-   jsondumps)rc   r  r  r  s       rd   storage_statezBrowserContext.storage_statek  s       }88D;	":
 
 
 
 
 
 
 
  	<!$
6(:(:;;;;;;;;;rf   c                 H    | j         r| j         S | j        r| j        j         S d S rh   )r   r   r   s    rd   _effective_close_reasonz&BrowserContext._effective_close_reasonu  s0     	&%%= 	/=..trf   c                    K   |                      |||          4 d {V }	 d d d           d {V  n# 1 d {V swxY w Y   | d {V S rh   )r  )rc   r|   r{  r   
event_infos        rd   r  zBrowserContext.wait_for_event|  s       $$UIw?? 	 	 	 	 	 	 	:	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   4
>>c                 N    |                      t          j        j        ||          S rh   )r  r8   r   rN   rc   r{  r   s      rd   expect_console_messagez%BrowserContext.expect_console_message  s!    
   !4iIIIrf   c                 N    |                      t          j        j        ||          S rh   )r  r@   r   r8   r  s      rd   expect_pagezBrowserContext.expect_page  s"    
   !6!;YPPPrf   rx   c                     | |_         | j                            |           |                     t          j        j        |           d S rh   )r   r   addr   r@   r   rO   )rc   rx   s     rd   ry   z!BrowserContext._on_service_worker  s@    !!&)))		.'5v>>>>>rf   response_end_timingfailure_textc                     ||_         |                    |           |                     t          j        j        |           |r'|                    t          j        j        |           d S d S rh   )_failure_text_set_response_end_timingr   r@   r   rP   r8   )rc   rH   r  r  rE   s        rd   r   z!BrowserContext._on_request_failed  sl     !-(()<===		.'5w??? 	:IIdk/99999	: 	:rf   c                    |                     |           |                     t          j        j        |           |r%|                    t
          j        j        |           |r|j                            d           d S d S r   )r  r   r@   r   rQ   r8   _finished_futurer   )rc   rH   rI   r  rE   s        rd   r   z#BrowserContext._on_request_finished  s     	(()<===		.'7AAA 	<IIdk17;;; 	7%0066666	7 	7rf   c                 >   t          || j        | j                  }|j        }|r%|                    t
          j        j        |           |j        }|r%|                    t          j        j        |           |                     t          j        j        |           d S rh   )r   ro   rE  rx   r   r9   r   rN   rE   r8   r@   )rc   r|   messagerx   rE   s        rd   r{   z"BrowserContext._on_console_message  s     
D4JKK 	8KK-w777| 	4IIdk)7333		.'/99999rf   c                 j   |                      t          j        j        |          }|j        }|r'|                     t
          j        j        |          p|}|s[|j        dk    r(t          j        |	                                           d S t          j        |
                                           d S d S )Nbeforeunload)r   r@   r   r   rE   r8   rS   r   rp   acceptdismiss)rc   rD   has_listenersrE   s       rd   r~   zBrowserContext._on_dialog  s    		."7">GG{ 	S IIdk&8&AAR]M 	6
 {n,,#FMMOO44444#FNN$4$455555	6 	6rf   r   c           	          |                      t          j        j        t          | j        | j        ||                     |r'|                     t          j        j        |           d S d S rh   )r   r@   r   r=   ro   rE  r8   	PageError)rc   r   rE   s      rd   r   zBrowserContext._on_page_error  sj    		!*TZ!7uEE	
 	
 	
  	4IIdk+U33333	4 	4rf   c                     |                      t          j        j        |           |r'|                     t          j        j        |           d S d S rh   )r   r@   r   r1   r8   )rc   rH   rE   s      rd   r   zBrowserContext._on_request  sM    		.'/999 	4IIdk)733333	4 	4rf   c                     |                      t          j        j        |           |r'|                     t          j        j        |           d S d S rh   )r   r@   r   r2   r8   )rc   rI   rE   s      rd   r   zBrowserContext._on_response  sM    		.'0(;;; 	6IIdk*H55555	6 	6rf   c                     g S rh   r>  r   s    rd   background_pageszBrowserContext.background_pages  s    	rf   c                 *    t          | j                  S rh   )listr   r   s    rd   service_workerszBrowserContext.service_workers  s    D)***rf   c                 $  K   t          |          }i }t          |t                    r|j        |d<   n/t          |t                    r|j        |d<   nt          d          t          | j                            dd |           d {V           S )NrE   framezpage: expected Page or FramenewCDPSession)r0   r  r8   r   r!   r   r   r  )rc   rE   rb   s      rd   new_cdp_sessionzBrowserContext.new_cdp_session  s      t}}dD!! 	8!]F6NNe$$ 	8"mF7OO6777$-"4"4_dF"S"SSSSSSSTTTrf   c                     | j         S rh   )r   r   s    rd   r[   zBrowserContext.tracing  r   rf   r    c                     | j         S rh   )r   r   s    rd   rH   zBrowserContext.request  r   rf   c                     | j         S rh   )r   r   s    rd   clockzBrowserContext.clock  s
    {rf   rh   )NNNr  )NN)NNNN)NNNNN)rV   r    )ir   
__module____qualname__r   r   r   r   r   r   r   r8   rl   r3   rq   r4   ru   r7   r`   floatr   r   r   r   r   propertyr	   r   r   r   r   r#   boolr   r$   r   r  r   r   r  r   r  r  r!  r$  r   r(  r,  r0  r6  r   r;  r@  r*   r(   intrm   rK  r'   r
   rH  r+   rW  rZ  r\  r   r&   rs  r   rV  r   r  ri   rB   r   r  r  r   r  r   r  r  r9   ry   r1   r   r2   r   r{   r   r~   r   r   r   r   r  r  r!   r   r  r;   r[   rH   r   r  __classcell__)r   s   @rd   r@   r@   Y   s       _'%%)  Fs("s(*-s(58s(GKs(	s( s( s( s( s( s(j:# : : : :7T 7d 7 7 7 7U t    @1> 1d 1 1 1 15 5 5 5 5 5Be B B B B BGHUO GPT G G G G75 7T 7 7 7 7<% <T < < < < "tDz " " " X" ),    X
!%c	"23
 %%56
 "*$	

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

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

L L$ L L L L <@M MM(-c4i(8M	M M M M =A
 

#+
59
	
 
 
 
O# O Od O O O O JN3 33&:3CF3	3 3 3 3  HL
D 
D
D&./C&D
D	
D 
D 
D 
D  @D		3 	3l#	3 %	3 ;<		3
 
	3 	3 	3 	3>>&C>	> > > >    FJ$ $ AB$	$ $ $ $  $(,+/#
 
49
 tn
 73<$%	

 )
 
 

 
 
 
@ )-/348"- -49- 73<$%- -	-
 - 01- - 
- - - -6
 
 
 

 
 
 
 #	8 88 8 	8
 
!8 8 8 8&5 5 5 5$!" !"# !" !" !" !" !"H @D #t)$8<	   #     HL    %- ?D 	        7;J J^,d23J J 
!	0	J J J J -1Q QTFDL)Q Q 
!	&	Q Q Q Q? ?D ? ? ? ?
:: #: sm	:
 tn: 
: : : :77 8$7 #	7
 tn7 
7 7 7 7: :$ : : : :6 6D 6 6 6 64E 4$ 4D 4 4 4 447 4(4. 4T 4 4 4 4
6X 6Xd^ 6 6 6 6 6
 $t*    X +f + + + X+	U%e*< 	U 	U 	U 	U 	U     X    X u    X    rf   r@   )Vr   r  pathlibr   typesr   typingr   r   r   r   r	   r
   r   r   r   r   r   r    playwright._impl._api_structuresr   r   r   r   playwright._impl._artifactr   playwright._impl._cdp_sessionr   playwright._impl._clockr   playwright._impl._connectionr   r   r   !playwright._impl._console_messager   playwright._impl._dialogr   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+   r,   r-   r.   r/   r0   playwright._impl._networkr1   r2   r3   r4   r5   r6   playwright._impl._pager7   r8   r9   playwright._impl._str_utilsr:   playwright._impl._tracingr;   playwright._impl._waiterr<   playwright._impl._web_errorr=   playwright._impl._browserr>   r@   r>  rf   rd   <module>r     s           ! ! ! ! ! !                                       0 / / / / / 4 4 4 4 4 4 ) ) ) ) ) )         
 = < < < < < + + + + + + = = = = = = = = K K K K K K 5 5 5 5 5 5 ) ) ) ) ) ) 2 2 2 2 2 2                                                = < < < < < < < < < : : : : : : - - - - - - + + + + + + 0 0 0 0 0 0 2111111`
 `
 `
 `
 `
\ `
 `
 `
 `
 `
rf   