
    ]j*f                       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mZmZ  G d d      Z G d	 d
      Z G d d      Z G d d      Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d              Ze G d! d"             Ze G d# d$             Ze G d% d&             Ze G d' d(             Ze G d) d*             Z e G d+ d,             Z!e G d- d.             Z"e G d/ d0             Z#e G d1 d2             Z$e G d3 d4             Z%e G d5 d6             Z&e G d7 d8             Z'e G d9 d:             Z(e G d; d<             Z)e G d= d>             Z*e G d? d@             Z+e G dA dB             Z,e G dC dD             Z-e G dE dF             Z.e G dG dH             Z/e G dI dJ             Z0e G dK dL             Z1e G dM dN             Z2e G dO dP             Z3e G dQ dR             Z4e G dS dT             Z5e G dU dV             Z6e G dW dX             Z7e G dY dZ             Z8e G d[ d\             Z9d]d^d_d`dadbdcdddedfdgdhdidjdkZ:ddlZ; G dm dn      Z< e=       j}                  de?      Z@ e=       j}                  de?      ZA e=       j}                  de?      ZB e=       j}                  de?      ZC e=       j}                  dPe?      ZD e=       j}                  de?      ZE e=       j}                  de?      ZF e=       j}                  dVe?      ZG e=       j}                  d\e?      ZH e=       j}                  de?      ZI e=       j}                  de?      ZJ e=       j}                  de?      ZK e=       j}                  dRe?      ZL e=       j}                  dTe?      ZM e=       ZN edod]eNj}                  dp      reNj}                  dpe?      ne?       edqd^eNj}                  dr      reNj}                  dre?      ne?       edsd_eNj}                  dt      reNj}                  dte?      ne?       edud`eNj}                  dv      reNj}                  dve?      ne?       edwdaeNj}                  dx      reNj}                  dxe?      ne?       edydbeNj}                  dz      reNj}                  dze?      ne?       ed{dceNj}                  d|      reNj}                  d|e?      ne?       ed}ddeNj}                  d~      reNj}                  d~e?      ne?       eddeeNj}                  d      reNj}                  de?      ne?       eddfeNj}                  d      reNj}                  de?      ne?       eddgeNj}                  d      reNj}                  de?      ne?       eddheNj}                  d      reNj}                  de?      ne?       eddieNj}                  d      reNj}                  de?      ne?       eddjeNj}                  d      reNj}                  de?      ne?      dke<_O        y)    )annotations)Callable)	dataclassfield)Any)command_builder)EventConfig_EventWrapper_EventManagerc                      e Zd ZdZdZdZdZy)ReadinessStatezReadinessState.noneinteractivecompleteN)__name__
__module____qualname____doc__NONEINTERACTIVECOMPLETE     c/home/ubuntu/.local/lib/python3.12/site-packages/selenium/webdriver/common/bidi/browsing_context.pyr   r      s    DKHr   r   c                       e Zd ZdZdZdZdZdZy)UserPromptTypezUserPromptType.alertbeforeunloadconfirmpromptN)r   r   r   r   ALERTBEFOREUNLOADCONFIRMPROMPTr   r   r   r   r      s    E!LGFr   r   c                      e Zd ZdZdZdZy)
CreateTypezCreateType.tabwindowN)r   r   r   r   TABWINDOWr   r   r   r&   r&   !   s    
CFr   r&   c                      e Zd ZdZdZy)DownloadCompleteParamszDownloadCompleteParams.r   N)r   r   r   r   r   r   r   r   r,   r,   (   s
    !Hr   r,   c                  t    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   dZded<   y)InfozInfo.N
Any | Nonechildrenclient_windowcontextoriginal_opener
str | Noneurluser_contextparent)r   r   r   r   r0   __annotations__r1   r2   r3   r5   r6   r7   r   r   r   r.   r.   .   sK    Hj $M:$GZ"&OZ&C#L*#FJr   r.   c                  L    e Zd ZU dZ edd      Zded<   dZded	<   dZded
<   y)AccessibilityLocatorzAccessibilityLocator.accessibilityFdefaultinitstrtypeNr4   namerole)	r   r   r   r   r   r@   r8   rA   rB   r   r   r   r:   r:   ;   s*    oE:D#:D*D*r   r:   c                  >    e Zd ZU dZ edd      Zded<   dZded	<   y)

CssLocatorzCssLocator.cssFr<   r?   r@   Nr4   valuer   r   r   r   r   r@   r8   rF   r   r   r   rD   rD   D   s     e%0D#0E:r   rD   c                  >    e Zd ZU dZ edd      Zded<   dZded<   y)	ContextLocatorzContextLocator.r2   Fr<   r?   r@   Nr/   )r   r   r   r   r   r@   r8   r2   r   r   r   rI   rI   L   s     ie4D#4GZr   rI   c                  h    e Zd ZU dZ edd      Zded<   dZded	<   dZd
ed<   dZ	ded<   dZ
ded<   y)InnerTextLocatorzInnerTextLocator.	innerTextFr<   r?   r@   Nr4   rF   bool | Noneignore_caser/   
match_type	max_depth)r   r   r   r   r   r@   r8   rF   rN   rO   rP   r   r   r   rK   rK   T   s>    k6D#6E:#K#!J
! Iz r   rK   c                  >    e Zd ZU dZ edd      Zded<   dZded	<   y)
XPathLocatorzXPathLocator.xpathFr<   r?   r@   Nr4   rF   rG   r   r   r   rR   rR   _   s     gE2D#2E:r   rR   c                  X    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   y)
BaseNavigationInfozBaseNavigationInfo.Nr/   r2   
navigation	timestampr4   r5   r6   )
r   r   r   r   r2   r8   rV   rW   r5   r6   r   r   r   rU   rU   g   s7    GZ!J
! Iz C#L*#r   rU   c                       e Zd ZU dZdZded<   y)ActivateParameterszActivateParameters.Nr/   r2   )r   r   r   r   r2   r8   r   r   r   rY   rY   r   s    GZr   rY   c                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)CaptureScreenshotParameterszCaptureScreenshotParameters.Nr/   r2   formatclip)r   r   r   r   r2   r8   r\   r]   r   r   r   r[   r[   y   s#    &GZFJD*r   r[   c                  .    e Zd ZU dZdZded<   dZded<   y)ImageFormatzImageFormat.Nr4   r@   r/   quality)r   r   r   r   r@   r8   r`   r   r   r   r_   r_      s    D*GZr   r_   c                  >    e Zd ZU dZ edd      Zded<   dZded<   y)	ElementClipRectanglezElementClipRectangle.elementFr<   r?   r@   Nr/   )r   r   r   r   r   r@   r8   rc   r   r   r   rb   rb      s     ie4D#4GZr   rb   c                  h    e Zd ZU dZ edd      Zded<   dZded	<   dZded
<   dZ	ded<   dZ
ded<   y)BoxClipRectanglezBoxClipRectangle.boxFr<   r?   r@   Nr/   xywidthheight)r   r   r   r   r   r@   r8   rg   rh   ri   rj   r   r   r   re   re      s>    e%0D#0AzAzE:FJr   re   c                       e Zd ZU dZdZded<   y)CaptureScreenshotResultzCaptureScreenshotResult.Nr4   datar   r   r   r   rm   r8   r   r   r   rl   rl      s    "D*r   rl   c                  .    e Zd ZU dZdZded<   dZded<   y)CloseParameterszCloseParameters.Nr/   r2   rM   prompt_unload)r   r   r   r   r2   r8   rq   r   r   r   rp   rp      s    GZ!%M;%r   rp   c                  J    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   y)	CreateParameterszCreateParameters.Nr/   r@   reference_contextrM   
backgroundr6   )	r   r   r   r   r@   r8   rt   ru   r6   r   r   r   rs   rs      s.    D*$(z("J"#L*#r   rs   c                  .    e Zd ZU dZdZded<   dZded<   y)CreateResultzCreateResult.Nr/   r2   r6   )r   r   r   r   r2   r8   r6   r   r   r   rw   rw      s    GZ#L*#r   rw   c                  .    e Zd ZU dZdZded<   dZded<   y)GetTreeParameterszGetTreeParameters.Nr/   rP   root)r   r   r   r   rP   r8   rz   r   r   r   ry   ry      s     Iz D*r   ry   c                       e Zd ZU dZdZded<   y)GetTreeResultzGetTreeResult.Nr/   contexts)r   r   r   r   r}   r8   r   r   r   r|   r|      s    Hjr   r|   c                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)	HandleUserPromptParameterszHandleUserPromptParameters.Nr/   r2   rM   acceptr4   	user_text)r   r   r   r   r2   r8   r   r   r   r   r   r   r      s#    %GZFK Iz r   r   c                  X    e Zd ZU dZdZded<   dZded<   dZded<    ee	      Z
ded	<   y)
LocateNodesParameterszLocateNodesParameters.Nr/   r2   locatorserialization_optionsdefault_factory	list[Any]start_nodes)r   r   r   r   r2   r8   r   r   r   listr   r   r   r   r   r      s3     GZGZ(,:,"48K8r   r   c                  .    e Zd ZU dZ ee      Zded<   y)LocateNodesResultzLocateNodesResult.r   r   nodesN)r   r   r   r   r   r   r   r8   r   r   r   r   r      s    T2E92r   r   c                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)NavigateParameterszNavigateParameters.Nr/   r2   r4   r5   wait)r   r   r   r   r2   r8   r5   r   r   r   r   r   r      s#    GZCD*r   r   c                  .    e Zd ZU dZdZded<   dZded<   y)NavigateResultzNavigateResult.Nr/   rV   r4   r5   )r   r   r   r   rV   r8   r5   r   r   r   r   r      s    !J
!Cr   r   c                  f    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   y)PrintParameterszPrintParameters.Nr/   r2   rM   ru   marginpagescaleshrink_to_fit)r   r   r   r   r2   r8   ru   r   r   r   r   r   r   r   r   r      sA    GZ"J"FJD*E:!%M;%r   r   c                  J    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   y)PrintMarginParameterszPrintMarginParameters.Nr/   bottomleftrighttop)	r   r   r   r   r   r8   r   r   r   r   r   r   r   r     s-     FJD*E:Cr   r   c                  .    e Zd ZU dZdZded<   dZded<   y)PrintPageParameterszPrintPageParameters.Nr/   rj   ri   )r   r   r   r   rj   r8   ri   r   r   r   r   r     s    FJE:r   r   c                       e Zd ZU dZdZded<   y)PrintResultzPrintResult.Nr4   rm   rn   r   r   r   r   r     s    D*r   r   c                  <    e Zd ZU dZdZded<   dZded<   dZded<   y)ReloadParameterszReloadParameters.Nr/   r2   rM   ignore_cacher   )r   r   r   r   r2   r8   r   r   r   r   r   r   r     s#    GZ $L+$D*r   r   c                  X    e Zd ZU dZdZded<    ee      Zded<    ee      Z	ded<   y)	SetBypassCSPParameterszSetBypassCSPParameters.Nr/   bypassr   r   r}   user_contexts)
r   r   r   r   r   r8   r   r   r}   r   r   r   r   r   r   &  s-    !FJ5Hi5$T:M9:r   r   c                  X    e Zd ZU dZdZded<   dZded<   dZded<    ee	      Z
ded	<   y)
SetViewportParameterszSetViewportParameters.Nr/   r2   viewportdevice_pixel_ratior   r   r   )r   r   r   r   r2   r8   r   r   r   r   r   r   r   r   r   r   /  s3     GZHj%)
)$T:M9:r   r   c                  .    e Zd ZU dZdZded<   dZded<   y)Viewportz	Viewport.Nr/   ri   rj   )r   r   r   r   ri   r8   rj   r   r   r   r   r   9  s    E:FJr   r   c                  .    e Zd ZU dZdZded<   dZded<   y)TraverseHistoryParameterszTraverseHistoryParameters.Nr/   r2   delta)r   r   r   r   r2   r8   r   r   r   r   r   r   A  s    $GZE:r   r   c                  J    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   y)	HistoryUpdatedParameterszHistoryUpdatedParameters.Nr/   r2   rW   r4   r5   r6   )	r   r   r   r   r2   r8   rW   r5   r6   r   r   r   r   r   I  s-    #GZ Iz C#L*#r   r   c                  X    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	d	ed
<   y)UserPromptClosedParameterszUserPromptClosedParameters.Nr/   r2   rM   acceptedr@   r6   r4   r   )
r   r   r   r   r2   r8   r   r@   r6   r   r   r   r   r   r   S  s7    %GZ Hk D*#L*# Iz r   r   c                  f    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   y)UserPromptOpenedParameterszUserPromptOpenedParameters.Nr/   r2   handlerr4   messager@   r6   default_value)r   r   r   r   r2   r8   r   r   r@   r6   r   r   r   r   r   r   ^  sA    %GZGZGZD*#L*# $M:$r   r   c                       e Zd ZU dZdZded<   y)DownloadWillBeginParamszDownloadWillBeginParams.Nr4   suggested_filename)r   r   r   r   r   r8   r   r   r   r   r   j  s    "%)
)r   r   c                       e Zd ZU dZdZded<   y)DownloadCanceledParamszDownloadCanceledParams.Nr/   status)r   r   r   r   r   r8   r   r   r   r   r   p  s    !FJr   r   c                  f    e Zd ZU dZdZded<   dZded<   dZded<   dZded<   dZ	ded	<   dZ
ded
<   y)DownloadParamszBDownloadParams - fields shared by all download end event variants.Nr4   r   r/   r2   rV   rW   r5   filepath)r   r   r   r   r   r8   r2   rV   rW   r5   r   r   r   r   r   r   v  sA    LFJGZ!J
! Iz CHjr   r   c                  2    e Zd ZU dZdZded<   edd       Zy)DownloadEndParamszADownloadEndParams - params for browsingContext.downloadEnd event.NzDownloadParams | Nonedownload_paramsc           
         t        |j                  d      |j                  d      |j                  d      |j                  d      |j                  d      |j                  d            } | |      S )	z-Deserialize from BiDi wire-level params dict.r   r2   rV   rW   r5   r   )r   r2   rV   rW   r5   r   )r   )r   get)clsparamsdps      r   	from_jsonzDownloadEndParams.from_json  sc     ::h'JJy)zz,/jj-

5!ZZ
+
 2&&r   )r   dictreturnr   )r   r   r   r   r   r8   classmethodr   r   r   r   r   r     s"    K-1O*1
' 
'r   r   zbrowsingContext.contextCreatedz browsingContext.contextDestroyedz!browsingContext.navigationStartedz!browsingContext.fragmentNavigatedzbrowsingContext.historyUpdatedz browsingContext.domContentLoadedzbrowsingContext.loadz!browsingContext.downloadWillBeginzbrowsingContext.downloadEndz!browsingContext.navigationAbortedz#browsingContext.navigationCommittedz browsingContext.navigationFailedz browsingContext.userPromptClosedz browsingContext.userPromptOpened)context_createdcontext_destroyednavigation_startedfragment_navigatedhistory_updateddom_content_loadedloaddownload_will_begindownload_endnavigation_abortednavigation_committednavigation_faileduser_prompt_closeduser_prompt_openedc                   | rt        | t              syg }| D ]  }t        |t              sd}d|v rt        |j	                  dg             }t        ||j	                  d      |j	                  d      |j	                  d      |j	                  d      |j	                  d      |j	                  d      	      }|j                  |        |r|S dS )
zRecursively deserialize a list of dicts to Info objects.

    Args:
        items: List of dicts from the API response

    Returns:
        List of Info objects with properly nested children, or None if empty
    Nr0   clientWindowr2   originalOpenerr5   userContextr7   r0   r1   r2   r3   r5   r6   r7   )
isinstancer   r   _deserialize_info_listr   r.   append)itemsresultitemchildren_listinfos        r   r   r     s     
5$/F  dD! MT! 6txx
B7O P&"hh~6+ $)9 :HHUO!XXm4xx)D MM$   6%%r   c                  T   e Zd ZU dZi Zded<   ddZdddZ	 	 	 	 d	 	 	 	 	 	 	 ddZdddZ		 	 	 	 d	 	 	 	 	 	 	 dd	Z
ddd
Zdd dZ	 	 	 	 	 d!	 	 	 	 	 	 	 	 	 d"dZdd#dZ	 	 	 	 	 	 d$	 	 	 	 	 	 	 	 	 	 	 d%dZdd&dZ	 	 	 d	 	 	 	 	 d'dZdd(dZ	 	 	 	 d)	 	 	 	 	 	 	 d*dZdd+dZd,dZddZy)-BrowsingContextz&WebDriver BiDi browsingContext module.zdict[str, EventConfig]EVENT_CONFIGSc                H    || _         t        || j                        | _        y N)_connr   r   _event_manager)selfconns     r   __init__zBrowsingContext.__init__  s    
+D$2D2DEr   Nc                    |t        d      d|i}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )z Execute browsingContext.activatez/activate() missing required argument: 'context'r2   zbrowsingContext.activate	TypeErrorr   r   r   execute)r   r2   r   kvcmdr   s          r   activatezBrowsingContext.activate  st    ?MNN w
 $*<<>C41aQ]!Q$CC8&A##C( Ds
   
A!A!c                   |t        d      ||||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }	|	rd|	v r|	j                  d      }
|
S |	S c c}}w )z)Execute browsingContext.captureScreenshotz9capture_screenshot() missing required argument: 'context')r2   r\   r]   originz!browsingContext.captureScreenshotrm   r   r   r   r   r   r   )r   r2   r\   r]   r   r   r   r   r   r   	extracteds              r   capture_screenshotz"BrowsingContext.capture_screenshot  s     ?WXX 	
 $*<<>C41aQ]!Q$CCA6J##C(f&

6*I D
   
A=A=c                    |t        d      ||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )zExecute browsingContext.closez,close() missing required argument: 'context')r2   promptUnloadzbrowsingContext.closer   )r   r2   rq   r   r   r   r   r   s           r   closezBrowsingContext.close  su    ?JKK )
 $*<<>C41aQ]!Q$CC5v>##C( Ds
   
A"A"c                   |t        d      ||||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }	|	rd|	v r|	j                  d      }
|
S |	S c c}}w )zExecute browsingContext.createz*create() missing required argument: 'type')r@   referenceContextru   r   zbrowsingContext.creater2   r  )r   r@   rt   ru   r6   r   r   r   r   r   r  s              r   createzBrowsingContext.create  s     <HII  1$'	
 $*<<>C41aQ]!Q$CC6?##C(i6)

9-I Dr  c                6   ||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j                  |      }|rd|v r|j	                  dg       }|D 	cg c]  }	t        |	t              rt        t        |	j	                  dg             |	j	                  d      |	j	                  d      |	j	                  d      |	j	                  d      |	j	                  d	      |	j	                  d
             c}	S g S c c}}w c c}	w )zExecute browsingContext.getTree)maxDepthrz   zbrowsingContext.getTreer}   r0   r   r2   r   r5   r   r7   r   )	r   r   r   r   r   r   r   r.   r   )
r   rP   rz   r   r   r   r   r   r   r   s
             r   get_treezBrowsingContext.get_tree  s    "
 $*<<>C41aQ]!Q$CC7@##C(jF*JJz2.E " dD) 3DHHZ4LM"&((>": HHY/$(HH-=$>!%-!888H-  	% D
s   
DD/BDc                    |t        d      |||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )z(Execute browsingContext.handleUserPromptz9handle_user_prompt() missing required argument: 'context')r2   r   userTextz browsingContext.handleUserPromptr   )	r   r2   r   r   r   r   r   r   r   s	            r   handle_user_promptz"BrowsingContext.handle_user_prompt7  sx    ?WXX !

 $*<<>C41aQ]!Q$CC@&I##C( D
   
A#A#c                "   |t        d      |t        d      |||||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }	| j                  j	                  |	      }
|
rd|
v r|
j                  d      }|S |
S c c}}w )z#Execute browsingContext.locateNodesz3locate_nodes() missing required argument: 'context'z3locate_nodes() missing required argument: 'locator')r2   r   serializationOptions
startNodesmaxNodeCountzbrowsingContext.locateNodesr   r  )r   r2   r   r   r   max_node_countr   r   r   r   r   r  s               r   locate_nodeszBrowsingContext.locate_nodesF  s     ?QRR?QRR $9%*
 $*<<>C41aQ]!Q$CC;VD##C(g'

7+I Ds   
BBc                    |t        d      |t        d      |||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )z Execute browsingContext.navigatez/navigate() missing required argument: 'context'z+navigate() missing required argument: 'url')r2   r5   r   zbrowsingContext.navigater   )	r   r2   r5   r   r   r   r   r   r   s	            r   navigatezBrowsingContext.navigatec  s    ?MNN;IJJ 

 $*<<>C41aQ]!Q$CC8&A##C( Ds
   
A0A0c                
   |t        d      ||||||d}|j                         D 	ci c]  \  }}	|		||	 }}}	t        d|      }
| j                  j	                  |
      }|rd|v r|j                  d      }|S |S c c}	}w )zExecute browsingContext.printz,print() missing required argument: 'context')r2   ru   r   r   r   shrinkToFitzbrowsingContext.printrm   r  )r   r2   ru   r   r   r   r   r   r   r   r   r   r  s                r   printzBrowsingContext.printt  s     ?JKK $(
 $*<<>C41aQ]!Q$CC5v>##C(f&

6*I Ds
   
A?A?c                    |t        d      |||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )zExecute browsingContext.reloadz-reload() missing required argument: 'context')r2   ignoreCacher   zbrowsingContext.reloadr   )	r   r2   r   r   r   r   r   r   r   s	            r   reloadzBrowsingContext.reload  sx    ?KLL '

 $*<<>C41aQ]!Q$CC6?##C( Dr  c                    |t        d      |||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )z$Execute browsingContext.setBypassCSPz4set_bypass_csp() missing required argument: 'bypass')r   r}   userContextszbrowsingContext.setBypassCSPr   )	r   r   r}   r   r   r   r   r   r   s	            r   set_bypass_cspzBrowsingContext.set_bypass_csp  sz     >RSS  )

 $*<<>C41aQ]!Q$CC<fE##C( Dr  c                    |t        d      |t        d      ||d}|j                         D ci c]  \  }}|	|| }}}t        d|      }| j                  j	                  |      }|S c c}}w )z'Execute browsingContext.traverseHistoryz7traverse_history() missing required argument: 'context'z5traverse_history() missing required argument: 'delta')r2   r   zbrowsingContext.traverseHistoryr   )r   r2   r   r   r   r   r   r   s           r   traverse_historyz BrowsingContext.traverse_history  s    ?UVV=STT 
 $*<<>C41aQ]!Q$CC?H##C( Ds
   
A/A/c                    i }|||d<   |||d<   |dur||d<   |dur||d<   t        d|      }| j                  j                  |      }|S )zExecute browsingContext.setViewport.

        Uses sentinel defaults so explicit None is serialized for viewport/devicePixelRatio,
        while omitted arguments are not sent.
        r2   r!  .r   devicePixelRatiozbrowsingContext.setViewport)r   r   r   )r   r2   r   r   r   r   r   r   s           r   set_viewportzBrowsingContext.set_viewport  st      'F9$%2F>"3!)F:S();F%&;VD##C(r   c                <    | j                   j                  |||      S )a  Add an event handler.

        Args:
            event: The event to subscribe to.
            callback: The callback function to execute on event.
            contexts: The context IDs to subscribe to (optional).

        Returns:
            The callback ID.
        )r   add_event_handler)r   eventcallbackr}   s       r   r)  z!BrowsingContext.add_event_handler  s     ""44UHhOOr   c                :    | j                   j                  ||      S )zRemove an event handler.

        Args:
            event: The event to unsubscribe from.
            callback_id: The callback ID.
        )r   remove_event_handler)r   r*  callback_ids      r   r-  z$BrowsingContext.remove_event_handler  s     ""77{KKr   c                6    | j                   j                         S )zClear all event handlers.)r   clear_event_handlers)r   s    r   r0  z$BrowsingContext.clear_event_handlers  s    ""7799r   )r   Noner   )r2   r/   )NNNN)r2   r4   r\   r/   r]   r/   r   r4   )NN)r2   r/   rq   rM   )r@   r/   rt   r/   ru   rM   r6   r/   )rP   r/   rz   r/   )NNN)r2   r/   r   rM   r   r/   )NNNNN)
r2   r4   r   r/   r   r/   r   r/   r  z
int | None)r2   r/   r5   r/   r   r/   )NNNNNN)r2   r/   ru   rM   r   r/   r   r/   r   r/   r   rM   )r2   r/   r   rM   r   r/   )r   r/   r}   list[Any] | Noner   r2  )r2   r/   r   r/   )N.N.)r2   r4   r   r   r   r/   r   r   )r*  r?   r+  r   r}   zlist[str] | Noner   int)r*  r?   r.  r3  r   r1  )r   r   r   r   r   r8   r   r   r  r  r
  r  r  r  r  r  r  r"  r$  r'  r)  r-  r0  r   r   r   r   r     s   0,.M).F #!!  	
 2   (,"&#' &  	
 !24" #",0"&%)   *	
   #:& #"&! %)   	
   #:" "%)*.	 # (	($ #$("%  "	
  4PL:r   r   r   ContextCreatedr   ContextDestroyedr   NavigationStartedr   FragmentNavigatedr   HistoryUpdatedr   DomContentLoadedr   Loadr   DownloadWillBeginr   DownloadEndr   NavigationAbortedr   NavigationCommittedr   NavigationFailedr   UserPromptClosedr   UserPromptOpenedN)r   r   r   zlist | None)P
__future__r   collections.abcr   dataclassesr   r   typingr   %selenium.webdriver.common.bidi.commonr   -selenium.webdriver.common.bidi._event_managerr	   r
   r   r   r   r&   r,   r.   r:   rD   rI   rK   rR   rU   rY   r[   r_   rb   re   rl   rp   rs   rw   ry   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   EVENT_NAME_MAPPINGr   r   globalsr   r   r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  _globalsr   r   r   r   <module>rK     s   # $ (  A c c     	 	 	          ! ! !    $ $ $                   & & & $ $ $ $ $ $          ! ! ! 9 9 9 3 3 3       & & &             ; ; ; ; ; ;       $ $ $ ! ! ! % % % * * *
   
       ' ' '( 8;==7<">1=A;<< "&Dn: n:d	 vt, 9==.  IMM"6=  IMM"6=  94@ 9==!5t<  y}})40 IMM";TB  imm/6 IMM"6=  imm$8$?  9==!5t<  9==!=tD  9==!=tD  9"(08=M0N%t,TX
 %*2:,,?Q2R'.X\
 &+3;<<@S3T($/Z^
 &+3;<<@S3T($/Z^
 #(08=M0N%t,TX
 &*2:,,?Q2R'.X\
  6V^VbVbciVjVT8Rptu&+3;<<@S3T($/Z^
  %-5\\--H]D)d
 &+3;<<@S3T($/Z^
 (-5=\\BW5X*D1^b
 %*2:,,?Q2R'.X\
 &*2:,,?Q2R'.X\
 &*2:,,?Q2R'.X\}C! r   