
    gCi                        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?m@Z@ d dlAmBZBmCZCmDZDmEZEmFZFmGZG d dlHmIZImJZJmKZK d dlLmMZM d dlNmOZO d dlPmQZQ d dlRmSZS erd dlTmUZU  G d de      ZVy)    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prepare_record_har_options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d%eddfd&Zde
fd'Zdwd(eeee   f   dee    fd)Z!d*ee"   ddfd+Z#	 	 	 dxd,eee$e   f   d-eee$e   f   d.eee$e   f   ddfd/Z%	 dwd0ee   d1eddfd2Z&dyd3Z'dwd4e(ddfd5Z)d6eeef   ddfd7Z*d8e+ddfd9Z,	 dzd:ed.eee-f   ddfd;Z.	 dwd,ed<e/d=e+ddfd>Z0d,ed<e/ddfd?Z1	 dwd@e2dAe3dBe4ddfdCZ5	 dwd@e2dAee3   ddfdDZ6	 dwdEee7   dFee7   dGe8dH   ddfdIZ9d@e2dAe:ddfdJZ;dydKZ<	 dwdGe8dH   ddfdLZ=	 	 	 	 d{dMee-ef   dee
   d@ee$e   ef   dNe>dOe?ddfdPZ@	 	 	 	 	 d|dMee-ef   d@ee$e   ef   dQeAdRe+dSe8dT   dUe?ddfdVZBdydWZCdydXZD	 	 dzdYedZe/dedeEfd[ZFdyd\ZGdwd]eddfd^ZHdwd.eee-f   deIfd_ZJdee   fd`ZK	 dzdYedZe/dedeLfdaZM	 	 dzdZe/eNge+f   dedeEeN   fdbZO	 	 dzdZe/e
ge+f   dedeEe
   fdcZPde
ddfddZQdeeRddfdfZSdeTdgedhee   dee
   ddf
diZUdeTd	eeV   dgedee
   ddf
djZWdYeddfdkZXdeYddfdlZZdme[dee
   ddfdnZ\deTdee
   ddfdoZ]d	eVdee
   ddfdpZ^edee
   fdq       Z_edeeR   fdr       Z`dee
eaf   debfdsZcededfdt       Zeed}du       Zfedegfdv       Zh xZiS )~BrowserContextbackgroundpagecloseconsoledialogpageweberrorserviceworkerrequestresponserequestfailedrequestfinished)BackgroundPageCloseConsoler   r9   r>   ServiceWorkerr2   r3   RequestFailedRequestFinishedparenttypeguidinitializerreturnNc                     t            ||||       d  _        |j                  j                  dk(  r6t        d|       _         j                  j                  j                          g  _        g  _	        g  _
        i  _        t        d        _        d  _        i  _        t!                _        t!                _        t        t&        t)        |d                _        i  _        t)        |d          _        t1                _         j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd	        j4                  j7                  d
 fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd        j4                  j7                  d fd       t9        j:                          _         j?                   j@                  jB                   fd        d  _"        g  _#         jI                  tJ        j@                  jL                  dtJ        j@                  jN                  dtJ        j@                  jP                  dtJ        j@                  jR                  dtJ        j@                  jT                  dtJ        j@                  jV                  di       d! _,        y )"Nr?   tracingrequestContextbindingCallc                 >    j                  t        | d               S )Nbinding)_on_bindingr   paramsselfs    V/var/www/openai/venv/lib/python3.12/site-packages/playwright/_impl/_browser_context.py<lambda>z)BrowserContext.__init__.<locals>.<lambda>   s    4++L	9J,KL    rC   c                 $    j                         S N)	_on_close)_ra   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    DNN,<rd   rF   c                 >    j                  t        | d               S NrF   )_on_pager   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    4==fVn1M#Nrd   routec           	          j                   j                  j                  t        | j	                  d                        S )Nrl   )_loopcreate_task	_on_router   getr_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s1    4::11 G!45rd   webSocketRoutec                 p    j                   j                  j                  t        | d                     S )Nrr   )rn   ro   _on_web_socket_router   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s0    4::11)) (8!9:rd   backgroundPagec                 >    j                  t        | d               S rj   )_on_background_pager   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    433L4PQrd   serviceWorkerc                 >    j                  t        | d               S )Nworker)_on_service_workerr   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    422<x@P3QRrd   rD   c                 &    j                  |       S rf   )_on_console_message)eventra   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    $2259rd   rE   c                 >    j                  t        | d               S )NrE   )
_on_dialogr   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    T__\&BR5S%Trd   	pageErrorc                 ^    j                  t        | d   d         t        | d               S )NerrorrF   )_on_page_errorr/   r   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s-    4..F7OG45%fVn5rd   rI   c                 p    j                  t        | d         t        | j                  d                  S )NrI   rF   )_on_requestr   r   rq   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s.    4++VI./%fjj&89rd   rJ   c                 p    j                  t        | d         t        | j                  d                  S )NrJ   rF   )_on_responser   r   rq   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s.    4,,VJ/0%fjj&89rd   requestFailedc           
          j                  t        | d         | d   | j                  d      t        | j                  d                  S )NrI   responseEndTimingfailureTextrF   )_on_request_failedr   rq   r   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   sC    422VI./*+

=)%fjj&89	rd   requestFinishedc           
          j                  t        | d         t        | j                  d            | d   t        | j                  d                  S )NrI   rJ   r   rF   )_on_request_finishedr   r   rq   r_   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   sH    444VI./%fjj&<=*+%fjj&89	rd   c                 :    j                   j                  d      S NT)_closed_future
set_result)contextra   s    rb   rc   z)BrowserContext.__init__.<locals>.<lambda>   s    t/B/B/M/Md/Srd   F)-super__init___browser	__class____name__r   	_contextsappend_pages_routes_web_socket_routes	_bindingsr)   _timeout_settings_owner_page_optionsset_background_pages_service_workersr<   r   _tracing_har_recorders_requestr   _clock_channelonasyncioFuturer   onceEventsrN   _close_reason_har_routers"_set_event_to_subscription_mappingrA   rO   r   r2   r3   rR   rQ   _close_was_called)ra   rS   rT   rU   rV   r   s   `    rb   r   zBrowserContext.__init__i   s    	t[9-1$$	1 F3DMMM##**40"$+-?A)+!0!6+/(*,/E-0UWl;y3I&JK?A+7DT8U+VDkL	
 	"<=N	
 		
 		
 	Q	

 	R	
 	9	

 	T	
 		
 		
 		
 		
 		
 /6nn.>		KKS	
 -1-///%%--y%%,,h%%--y%%..
%%557H%%33_		
 "'rd   c                 "    d| j                    dS )Nz<BrowserContext browser=>)browserra   s    rb   __repr__zBrowserContext.__repr__   s    )$,,q99rd   c                 F   | j                   j                  |       | j                  t        j                  j
                  |       |j                  rP|j                  j                         s5|j                  j                  t
        j                  j                  |       y y y rf   )	r   r   emitrA   r   r9   _opener	is_closedPopupra   rF   s     rb   rk   zBrowserContext._on_page   si    4 		.'',,d3<< 6 6 8LLdkk//6 !9<rd   rl   c           	      N   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(  r3t        j                   j                  j                   fdd             	 |s y  	 |j!                  d       d {    y 7 p# t         j                        dk(  r3t        j                   j                  j                   fdd             w w xY w7 W# t"        $ r Y y w xY ww)Nr   c                  $     j                         S rf   )_update_interception_patternsr   s   rb   rc   z*BrowserContext._on_route.<locals>.<lambda>   s    D$F$F$Hrd   T)_contextrI   
_safe_pager   copyr   matchesurlwill_expireremovehandlelenr   ro   _connectionwrap_api_call_inner_continue	Exception)ra   rl   rF   route_handlersroute_handlerhandleds   `     rb   rp   zBrowserContext._on_route   sd    }}'')**,+M//D4J4J (():):;DLL0((##M2 - 4 4U ;;t||$)''((66H$
 ) ,*	 ''--- <t||$)''((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rf   )r   r   ).0r   r   s     rb   	<genexpr>z6BrowserContext._on_web_socket_route.<locals>.<genexpr>  s.      %<M (()9)=)=> %<s   '*)nextr   r   connect_to_server)ra   r   r   s    ` rb   rt   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   rq   _initializerr   ro   call)ra   r   funcs      rb   r^   zBrowserContext._on_binding  sB    ~~!!,";";F"CD<L--d34rd   timeoutc                 $    | j                  |      S rf   )$_set_default_navigation_timeout_implra   r   s     rb   set_default_navigation_timeoutz-BrowserContext.set_default_navigation_timeout  s    88AArd   c                     | j                   j                  |       | j                  j                  d|i        y d|i       y )N"setDefaultNavigationTimeoutNoReplyr   )r   r   r   send_no_replyr   s     rb   r   z3BrowserContext._set_default_navigation_timeout_impl!  s?    ==gF##0/B	
(17';	
rd   c                 $    | j                  |      S rf   )_set_default_timeout_implr   s     rb   set_default_timeoutz"BrowserContext.set_default_timeout(  s    --g66rd   c                     | j                   j                  |       | j                  j                  d|i        y d|i       y )NsetDefaultTimeoutNoReplyr   )r   r   r   r   r   s     rb   r   z(BrowserContext._set_default_timeout_impl+  s>    227;##&go	
DMwCW	
rd   c                 6    | j                   j                         S rf   )r   r   r   s    rb   pageszBrowserContext.pages1  s    {{!!rd   r?   c                     | j                   S rf   )r   r   s    rb   r   zBrowserContext.browser5      }}rd   context_optionsbrowser_optionsc                    || _         | j                   j                  d      r>| j                   d   d   | j                   d   j                  d      d| j                  d<   |j                  d      | j                  _        y )N	recordHarpathcontentr   r    	tracesDir)r   rq   r   r   _traces_dir)ra   r   r   s      rb   _set_optionszBrowserContext._set_options9  sn    '==[)k26:==599)D'D# %4$7$7$D!rd   c                    K   | j                   rt        d      t        | j                  j	                  d       d {         S 7 w)Nz Please use browser.new_context()newPage)r   r   r   r   sendr   s    rb   new_pagezBrowserContext.new_pageB  s;     :;;$--"4"4Y"??@@?s   ;AA	Aurlsc                    K   |g }t        |t              r|g}| j                  j                  dt	        |             d {   S 7 w)Ncookies)r   )
isinstancestrr   r   dict)ra   r   s     rb   r  zBrowserContext.cookiesG  sB     <DdC 6D]]''	4T?CCCCs   AA
AA
r  c                 l   K   | j                   j                  dt        |             d {    y 7 w)N
addCookies)r  r   r   r  )ra   r  s     rb   add_cookieszBrowserContext.add_cookiesN  %     mm  tG/DEEE   *424r   domainr   c                 "  K   | j                   j                  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;   )ra   r   r  r   s       rb   clear_cookieszBrowserContext.clear_cookiesQ  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                 z   K   | j                   j                  dt        t                            d {    y 7 w)NgrantPermissionsr   r   r.   locals)ra   r  r  s      rb   grant_permissionsz BrowserContext.grant_permissionsn  s+      mm  !35Efh5OPPP   1;9;c                 V   K   | j                   j                  d       d {    y 7 w)NclearPermissions)r   r   r   s    rb   clear_permissionsz BrowserContext.clear_permissionss  s     mm  !3444s   )')geolocationc                 z   K   | j                   j                  dt        t                            d {    y 7 w)NsetGeolocationr  )ra   r"  s     rb   set_geolocationzBrowserContext.set_geolocationv  s)     mm  !13CFH3MNNNr  headersc                 ~   K   | j                   j                  dt        t        |                   d {    y 7 w)NsetExtraHTTPHeaders)r&  )r   r   r  r7   )ra   r&  s     rb   set_extra_http_headersz%BrowserContext.set_extra_http_headersy  s2     mm  !40A'0J#K
 	
 	
s   3=;=offlinec                 l   K   | j                   j                  dt        |             d {    y 7 w)N
setOffline)r*  r  )ra   r*  s     rb   set_offlinezBrowserContext.set_offline~  r
  r  scriptc                    K   |r!t        |       d {   j                         }t        |t              st	        d      | j
                  j                  dt        |             d {    y 7 \7 w)Nz1Either path or script parameter must be specifiedaddInitScript)source)r,   decoder  r  r   r   r   r  )ra   r.  r   s      rb   add_init_scriptzBrowserContext.add_init_script  sb      *40088:F&#&KLLmm  $f2EFFF 1 	Gs"   A4A0AA4*A2+A42A4callbackr   c                 *  K   | j                   D ]  }||j                  v st        d| d       || j                  v rt        d| d      || j                  |<   | j                  j	                  dt        ||xs d             d {    y 7 w)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  )ra   r   r4  r   rF   s        rb   expose_bindingzBrowserContext.expose_binding  s      KKDt~~% &WX   
 4>>!*TF*GHII'tmm  Tt5I
 	
 	
s   BA*BBBc                 L   K   | j                  |fd       d {    y 7 w)Nc                      | S rf    )r1  argsr4  s     rb   rc   z0BrowserContext.expose_function.<locals>.<lambda>  s	    hord   )r8  )ra   r   r4  s     `rb   expose_functionzBrowserContext.expose_function  s     !!$(MNNNs   $"$r   handlertimesc           
         K   | j                   j                  dt        | j                  j	                  d      ||| j
                  rdnd|             | j                          d {    y 7 w)Nr   baseURLTF)r   insertr'   r   rq   _dispatcher_fiberr   )ra   r   r>  r?  s       rb   rl   zBrowserContext.route  sa      	!!),..E		
 00222s   A$A.&A,'A.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   r>  r   _unroute_internal)ra   r   r>  removed	remainingrl   s         rb   unroutezBrowserContext.unroute  sm      	\\EyyCG0H  'u%	 "
 $$WiCCCs   A/A91A72A9rG  rH  behavior)rE  ignoreErrorswaitc                    K   || _         | j                          d {    dk(  ry t        j                  t	        fd|        d {    y 7 47 w)NrE  c                 &    | j                        S rf   )stop)routerrJ  s    rb   rc   z2BrowserContext._unroute_internal.<locals>.<lambda>  s    X1Frd   )r   r   r   gathermap)ra   rG  rH  rJ  s      `rb   rF  z BrowserContext._unroute_internal  sX      !00222x94nnc"FPQQQ 	3 	Rs!   AA.AAAAc                    K   | j                   j                  dt        | j                  j	                  d      ||             | j                          d {    y 7 w)Nr   rA  )r   rB  r6   r   rq   (_update_web_socket_interception_patterns)ra   r   r>  s      rb   route_web_socketzBrowserContext.route_web_socket  sN      	&&!$--"3"3I">WM	
 ;;===s   AAAAc                 T    | j                   D ]  }|j                           g | _         y rf   )r   dispose)ra   rP  s     rb   _dispose_har_routersz#BrowserContext._dispose_har_routers  s$    ''FNN (rd   c                 z   K   | j                  | j                  g |       d {    | j                          y 7 wrf   )rF  r   rX  )ra   rJ  s     rb   unroute_allzBrowserContext.unroute_all  s6      $$T\\2x@@@!!# 	As   !;9;harupdate_contentupdate_modec                    K   dt        ||xs d|xs d|d      i}|r|j                  |d<   | j                  j                  d|       d {   }t        |      |xs dd| j                  |<   y 7 $w)Noptionsattachminimal)recordHarPathrecordHarContentrecordHarModerecordHarUrlFilterrF   harStartr   )r0   r   r   r  r   )ra   r[  rF   r   r\  r]  r`   har_ids           rb   _record_into_harzBrowserContext._record_into_har  s      1%((6(B(%0%=I*-		"
 !]]F6N}}))*f==H%1'
F# >s   AA4A2%A4notFoundupdateupdateContent)r`  embed
updateModec                 F  K   |r| j                  |d |||       d {    y t        j                  | j                  j                  t        |      |xs d|       d {   }| j                  j                  |       |j                  |        d {    y 7 |7 ;7 	w)N)r[  rF   r   r\  r]  abort)local_utilsfilenot_found_actionurl_matcher)	rh  r"   creater   rp  r  r   r   add_context_route)ra   r[  r   ri  rj  rk  rm  rP  s           rb   route_from_harzBrowserContext.route_from_har  s      '',& (     ''((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|i       d {    y 7 w)NsetNetworkInterceptionPatternspatterns)r'   prepare_interception_patternsr   r   r   ra   ry  s     rb   r   z,BrowserContext._update_interception_patterns  s@     ==dllKmm  ,z8.D
 	
 	
   AAA	Ac                    K   t        j                  | j                        }| j                  j	                  dd|i       d {    y 7 w)N setWebSocketInterceptionPatternsry  )r6   rz  r   r   r   r{  s     rb   rT  z7BrowserContext._update_web_socket_interception_patterns  sG     (FF##
 mm  .X0F
 	
 	
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 rf   )r   r;  rd   rb   rc   z-BrowserContext.expect_event.<locals>.<lambda>(  s    ;L;Nrd   )r   r   r=   reject_on_timeoutrA   r   rN   reject_on_eventwait_for_eventr   result)ra   r~   r  r   waiters        rb   expect_eventzBrowserContext.expect_event  s     ?,,446G =eWAFG  xy(MeWTUV	
 N))///""n++113N 	dE95&v}}77rd   c                    | j                   r%| j                   j                  j                  |        | j                          | j                  j                          | j                  t        j                  j                  |        y rf   )
r   r   r   rX  r   _reset_stack_counterr   rA   r   rN   r   s    rb   rg   zBrowserContext._on_close-  sW    ==MM##**40!!#**,		.''--t4rd   reasonc                    K    j                   ry  _        d _          j                  j                  j	                   fdd       d {    d fd} j                  j                  j	                  |d       d {     j                  j                  ddi       d {     j                   d {    y 7 s7 A7 7 w)NTc                  <    j                   j                         S )N)r  )rI   rW  )r  ra   s   rb   rc   z&BrowserContext.close.<locals>.<lambda><  s    DLL(((7rd   c                  x  K   j                   j                         D ]  \  } }t        t        t	        j
                  j                  dd| i       d {               }|j                  d      dk(  xs |d   j                  d      }|d   j                  d      }|rV|sT|d   dz   }|j                  |       d {    j                  j                  j                  ||d          d {    n|j                  |d          d {    |j                          d {     y 7 7 q7 A7 &7 w)	N	harExportharIdr   r`  r   z.zipz.tmp)zipFileharFile)r   itemsr   r   r   r   r   rq   endswithsave_asr   rp  	har_unzipdelete)rg  r`   r[  is_compressedneed_compressedtmp_pathra   s         rb   _inner_closez*BrowserContext.close.<locals>._inner_close?  s8    "&"5"5";";"= "mm00w>OPP !'

9 5 A !#VF(6"  #)."9"9&"A %f~6H++h///**66@@ (&. A    ++fVn555jjl"") #> Q 0 6"s[   AD:D0A*D: D21D:2D43D:D6D:'D8(	D:2D:4D:6D:8D:rC   r  rW   N)r   r   r   r   r   r   r   )ra   r  r  s   `` rb   rC   zBrowserContext.close5  s     !!#!%mm''557
 	
 	
	#. mm''55lDIIImm  8V*<===!!!!;	
6 	J=!sH   A	C	C3C	C%C	'C(C	;C<C	C	C	C	c                    K   | j                   j                  d       d {   }|r't        |t        j                  |             d {    |S 7 /7 w)NstorageState)r   send_return_as_dictr-   jsondumps)ra   r   r  s      rb   storage_statezBrowserContext.storage_stateZ  sH     }}88HH!$

6(:;;; I;s!   AA(A
AAAc                 x    | j                   r| j                   S | j                  r| j                  j                   S y rf   )r   r   r   s    rb   _effective_close_reasonz&BrowserContext._effective_close_reason`  s1    %%%====...rd   c                    K   | j                  |||      4 d {   }	 d d d       d {     d {   S 7 7 # 1 d {  7  sw Y    xY w7 wrf   )r  )ra   r~   r  r   
event_infos        rb   r  zBrowserContext.wait_for_eventg  sL      $$UIw??: @? @????sF   A:A>A<	AAAAAAAAc                 X    | j                  t        j                  j                  ||      S rf   )r  r9   r   rO   ra   r  r   s      rb   expect_console_messagez%BrowserContext.expect_console_messagen  s#    
   !4!4iIIrd   c                 X    | j                  t        j                  j                  ||      S rf   )r  rA   r   r9   r  s      rb   expect_pagezBrowserContext.expect_pageu  s%    
   !6!6!;!;YPPrd   c                     | j                   j                  |       | j                  t        j                  j
                  |       y rf   )r   addr   rA   r   rM   r   s     rb   rw   z"BrowserContext._on_background_page|  s0    ""4(		.''66=rd   rz   c                     | |_         | j                  j                  |       | j                  t        j
                  j                  |       y rf   )r   r   r  r   rA   r   rP   )ra   rz   s     rb   r{   z!BrowserContext._on_service_worker  s7    !!&)		.''55v>rd   response_end_timingfailure_textc                     ||_         |j                  |       | j                  t        j                  j
                  |       |r+|j                  t        j                  j
                  |       y y rf   )_failure_text_set_response_end_timingr   rA   r   rQ   r9   )ra   rI   r  r  rF   s        rb   r   z!BrowserContext._on_request_failed  sU     !-(()<=		.''55w?IIdkk//9 rd   c                    |j                  |       | j                  t        j                  j                  |       |r*|j                  t
        j                  j                  |       |r|j                  j                  d       y y r   )r  r   rA   r   rR   r9   _finished_futurer   )ra   rI   rJ   r  rF   s        rb   r   z#BrowserContext._on_request_finished  sd     	(()<=		.''77AIIdkk117;%%006 rd   c                    t        || j                  | j                        }| j                  t        j
                  j                  |       |j                  }|r+|j                  t        j
                  j                  |       y y rf   )	r   rn   rC  r   rA   r   rO   rF   r9   )ra   r~   messagerF   s       rb   r}   z"BrowserContext._on_console_message  s]     

D4J4JK		.''//9||IIdkk))73 rd   c                    | j                  t        j                  j                  |      }|j                  }|r.|j                  t
        j                  j                  |      xs |}|sW|j                  dk(  r$t        j                  |j                                y t        j                  |j                                y y )Nbeforeunload)r   rA   r   r   rF   r9   rT   r   ro   acceptdismiss)ra   rE   has_listenersrF   s       rb   r   zBrowserContext._on_dialog  s    		."7"7">">G{{ IIdkk&8&8&AR]M
 {{n,##FMMO4##FNN$45 rd   r   c           	          | j                  t        j                  j                  t        | j                  | j
                  ||             |r+|j                  t        j                  j                  |       y y rf   )r   rA   r   r>   rn   rC  r9   	PageError)ra   r   rF   s      rb   r   zBrowserContext._on_page_error  sW    		!!**TZZ!7!7uE	
 IIdkk++U3 rd   c                     | j                  t        j                  j                  |       |r+|j                  t        j                  j                  |       y y rf   )r   rA   r   r2   r9   )ra   rI   rF   s      rb   r   zBrowserContext._on_request  s<    		.''//9IIdkk))73 rd   c                     | j                  t        j                  j                  |       |r+|j                  t        j                  j                  |       y y rf   )r   rA   r   r3   r9   )ra   rJ   rF   s      rb   r   zBrowserContext._on_response  s<    		.''00(;IIdkk**H5 rd   c                 ,    t        | j                        S rf   )listr   r   s    rb   background_pageszBrowserContext.background_pages  s    D**++rd   c                 ,    t        | j                        S rf   )r  r   r   s    rb   service_workerszBrowserContext.service_workers  s    D))**rd   c                   K   t        |      }i }t        |t              r|j                  |d<   n+t        |t              r|j                  |d<   nt        d      t        | j                  j                  d|       d {         S 7 w)NrF   framezpage: expected Page or FramenewCDPSession)r1   r  r9   r   r!   r   r   r   )ra   rF   r`   s      rb   new_cdp_sessionzBrowserContext.new_cdp_session  sp     t}dD!!]]F6Ne$"mmF7O677$--"4"4_f"MMNNMs   A=B
?B 	B
c                     | j                   S rf   )r   r   s    rb   rY   zBrowserContext.tracing  r   rd   c                     | j                   S rf   )r   r   s    rb   rI   zBrowserContext.request  r   rd   c                     | j                   S rf   )r   r   s    rb   clockzBrowserContext.clock  s    {{rd   rf   )NNNr  )NN)NNNN)NNNNN)rW   r    )jr   
__module____qualname__r   r   r   r  r   r   r   r9   rk   r4   rp   r5   rt   r8   r^   floatr   r   r   r   r   propertyr	   r   r   r   r   r   r   r   r  r   r	  r   r  r  r!  r   r%  r)  boolr-  r   r3  r   r8  r=  r*   r(   intrl   rI  r'   r
   rF  r+   rU  rX  rZ  r#   r$   rh  r&   rv  r   rT  r   r  rg   rC   r   r  r  r   r  r   r  r  rw   r:   r{   r2   r   r3   r   r}   r   r   r   r   r   r   r  r  r!   r   r  r<   rY   rI   r   r  __classcell__)r   s   @rb   rA   rA   Z   s   '%%)Fv'"v'*-v'58v'GKv'	v'p:# :7T 7d 7U t @1> 1d 15 5 5Be B B
HUO 
PT 
75 7T 7
% 
T 
 "tDz " " ),  ED E4 ED EA A
D%Xc](:"; DtF| DF.)A Fd F
 *.+/)-	
C%&
 c73<'(
 C%&	

 

< 9=Q#C=Q25Q	Q
5O O O
DcN 
t 

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

 )
 
 

: )-/348"-49- 73<$%- -	-
 - 01- - 
-6

 #	88 8 	8
 
!8&5#"# #" #"Jc4i(8 L #  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4 4$ 46 6D 64E 4$ 4D 447 4(4. 4T 4
6X 6Xd^ 6 6
 ,$t* , , +f + +	O%e*< 	O 	O      u  rd   rA   )Wr   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   r1   playwright._impl._networkr2   r3   r4   r5   r6   r7   playwright._impl._pager8   r9   r:   playwright._impl._str_utilsr;   playwright._impl._tracingr<   playwright._impl._waiterr=   playwright._impl._web_errorr>   playwright._impl._browserr?   rA   r;  rd   rb   <module>r     s       !     0 4 ) 
 = + = K 5 ) 2    "  = < : - + 01K
\ K
rd   