a
    $ñ»jo#  ã                   @  s  d dl mZ d dlZd dlZd dlmZ ddlmZ ddlm	Z	 ddlm
Z
 G dd	„ d	ejƒZG d
d„ dejƒZeG dd„ dƒƒZd,dddddœdd„Zdd	ddœdd„Zd-ddddœdd„Zdddœd d!„Zd"dd#œd$d%„Zdd	ddœd&d'„Zd.ddddœd(d)„Zdddœd*d+„ZdS )/é    )ÚannotationsN)Ú	dataclassé   )ÚT_JSON_DICT)Údom)Úruntimec                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚDOMBreakpointTypezDOM breakpoint type.zsubtree-modifiedzattribute-modifiedznode-removedÚstr©Úreturnc                 C  s   | j S ©N©Úvalue©Úself© r   ú8E:\soccer\ml_env\Lib\site-packages\mycdp/dom_debugger.pyÚto_json   s    zDOMBreakpointType.to_json©Újsonr   c                 C  s   | |ƒS r   r   ©Úclsr   r   r   r   Ú	from_json   s    zDOMBreakpointType.from_jsonN)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ZSUBTREE_MODIFIEDZATTRIBUTE_MODIFIEDZNODE_REMOVEDr   Úclassmethodr   r   r   r   r   r      s   r   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚCSPViolationTypezCSP Violation type.ztrustedtype-sink-violationztrustedtype-policy-violationr	   r
   c                 C  s   | j S r   r   r   r   r   r   r   $   s    zCSPViolationType.to_jsonr   c                 C  s   | |ƒS r   r   r   r   r   r   r   '   s    zCSPViolationType.from_jsonN)	r   r   r   r   ZTRUSTEDTYPE_SINK_VIOLATIONZTRUSTEDTYPE_POLICY_VIOLATIONr   r   r   r   r   r   r   r      s   r   c                   @  s�   e Zd ZU dZded< ded< ded< ded< ded	< d
ed< d
ed< dZded< dZded< dZded< ddœdd„Ze	dd dœdd„ƒZ
dS )ÚEventListenerzObject event listener.r	   Útype_ÚboolÚuse_captureÚpassiveÚoncezruntime.ScriptIdÚ	script_idÚintÚline_numberÚcolumn_numberNz%typing.Optional[runtime.RemoteObject]ÚhandlerÚoriginal_handlerz"typing.Optional[dom.BackendNodeId]Úbackend_node_idr   r
   c                 C  sœ   t ƒ }| j|d< | j|d< | j|d< | j|d< | j ¡ |d< | j|d< | j|d< | j	d urh| j	 ¡ |d< | j
d ur€| j
 ¡ |d	< | jd ur˜| j ¡ |d
< |S )NÚtypeÚ
useCapturer#   r$   ÚscriptIdÚ
lineNumberÚcolumnNumberr)   ÚoriginalHandlerÚbackendNodeId)Údictr    r"   r#   r$   r%   r   r'   r(   r)   r*   r+   )r   r   r   r   r   r   D   s    








zEventListener.to_jsonr   c                 C  s¸   | t |d ƒt|d ƒt|d ƒt|d ƒtj |d ¡t|d ƒt|d ƒ| dd ¡d urltj |d ¡nd | d	d ¡d urŽtj |d	 ¡nd | d
d ¡d ur°tj	 |d
 ¡nd d�
S )Nr,   r-   r#   r$   r.   r/   r0   r)   r1   r2   )
r    r"   r#   r$   r%   r'   r(   r)   r*   r+   )
r	   r!   r   ZScriptIdr   r&   ÚgetZRemoteObjectr   ZBackendNodeIdr   r   r   r   r   U   s$    





ÿÿÿëzEventListener.from_json)r   r   r   r   Ú__annotations__r)   r*   r+   r   r   r   r   r   r   r   r   ,   s   
r   zruntime.RemoteObjectIdztyping.Optional[int]ztyping.Optional[bool]zFtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[EventListener]])Ú	object_idÚdepthÚpiercer   c                 c  sT   t ƒ }|  ¡ |d< |dur"||d< |dur2||d< d|dœ}|V }dd„ |d	 D ƒS )
a7  
    Returns event listeners of the given object.
    :param object_id: Identifier of the object to return listeners for.
    :param depth: *(Optional)*
     The maximum depth at which Node children should be retrieved,
     defaults to 1. Use -1 for the entire subtree
     or provide an integer larger than 0.
    :param pierce: *(Optional)*
    Whether or not iframes and shadow roots should be traversed
    when returning the subtree (default is false).
    Reports listeners for all contexts if pierce is enabled.
    :returns: Array of relevant listeners.
    ZobjectIdNr7   r8   zDOMDebugger.getEventListeners©ÚmethodÚparamsc                 S  s   g | ]}t  |¡‘qS r   )r   r   ©Ú.0Úir   r   r   Ú
<listcomp>Ž   ó    z'get_event_listeners.<locals>.<listcomp>Z	listeners©r3   r   )r6   r7   r8   r;   Úcmd_dictr   r   r   r   Úget_event_listenersq   s    þrC   z
dom.NodeIdz0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])Únode_idr    r   c                 c  s2   t ƒ }|  ¡ |d< | ¡ |d< d|dœ}|V }dS )zÁ
    Removes DOM breakpoint that was set using `setDOMBreakpoint`.
    :param node_id: Identifier of the node to remove breakpoint from.
    :param type_: Type of the breakpoint to remove.
    ÚnodeIdr,   zDOMDebugger.removeDOMBreakpointr9   NrA   ©rD   r    r;   rB   r   r   r   r   Úremove_dom_breakpoint‘   s    þrG   r	   ztyping.Optional[str])Ú
event_nameÚtarget_namer   c                 c  s2   t ƒ }| |d< |dur||d< d|dœ}|V }dS )z°
    Removes breakpoint on particular DOM event.
    :param event_name: Event name.
    :param target_name: **(EXPERIMENTAL)** *(Optional)*
    EventTarget interface name.
    Ú	eventNameNÚ
targetNamez)DOMDebugger.removeEventListenerBreakpointr9   ©r3   ©rH   rI   r;   rB   r   r   r   r   Ú remove_event_listener_breakpoint£   s    	þrN   )Úurlr   c                 c  s"   t ƒ }| |d< d|dœ}|V }dS )zY
    Removes breakpoint from XMLHttpRequest.
    :param url: Resource URL substring.
    rO   zDOMDebugger.removeXHRBreakpointr9   NrL   ©rO   r;   rB   r   r   r   r   Úremove_xhr_breakpoint·   s    þrQ   ztyping.List[CSPViolationType])Úviolation_typesr   c                 c  s,   t ƒ }dd„ | D ƒ|d< d|dœ}|V }dS )z…
    Sets breakpoint on particular CSP violations.
    **EXPERIMENTAL**
    :param violation_types: CSP Violations to stop upon.
    c                 S  s   g | ]}|  ¡ ‘qS r   )r   r<   r   r   r   r?   Ð   r@   z.set_break_on_csp_violation.<locals>.<listcomp>ZviolationTypesz"DOMDebugger.setBreakOnCSPViolationr9   NrL   )rR   r;   rB   r   r   r   r   Úset_break_on_csp_violationÇ   s    þrS   c                 c  s2   t ƒ }|  ¡ |d< | ¡ |d< d|dœ}|V }dS )z²
    Sets breakpoint on particular operation with DOM.
    :param node_id: Identifier of the node to set breakpoint on.
    :param type_: Type of the operation to stop upon.
    rE   r,   zDOMDebugger.setDOMBreakpointr9   NrA   rF   r   r   r   Úset_dom_breakpointØ   s    þrT   c                 c  s2   t ƒ }| |d< |dur||d< d|dœ}|V }dS )a$  
    Sets breakpoint on particular DOM event.
    :param event_name: DOM Event name to stop on (any DOM event will do).
    :param target_name: **(EXPERIMENTAL)** *(Optional)*
    EventTarget interface name to stop on.
    If equal to `"*"` or not provided, will stop on any EventTarget.
    rJ   NrK   z&DOMDebugger.setEventListenerBreakpointr9   rL   rM   r   r   r   Úset_event_listener_breakpointê   s    
þrU   c                 c  s"   t ƒ }| |d< d|dœ}|V }dS )z™
    Sets breakpoint on XMLHttpRequest.
    :param url: Resource URL substring.
    All XHRs having this substring in the URL will get stopped upon.
    rO   zDOMDebugger.setXHRBreakpointr9   NrL   rP   r   r   r   Úset_xhr_breakpointÿ   s    þrV   )NN)N)N)Ú
__future__r   ÚenumÚtypingÚdataclassesr   Úutilr   Ú r   r   ÚEnumr   r   r   rC   rG   rN   rQ   rS   rT   rU   rV   r   r   r   r   Ú<module>   s,   F  ý  ÿ ÿ