o
    M,h]                     @  s<  d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ G dd	 d	eZG d
d deZG dd dejZeG dd dZG dd dejZG dd dejZeG dd dZG dd dejZeG dd dZeG dd dZG dd dejZ		dndod&d'Z		dndpd*d+Z	dqdrd,d-Z			dsdtd3d4Z	dqdud6d7Zdvd8d9Zdvd:d;Z dvd<d=Z!dwd?d@Z"dxdBdCZ#		dndydGdHZ$	dqdzdKdLZ%d{dOdPZ&	dqd|dTdUZ'd}dWdXZ(		dnd~d[d\Z)dd^d_Z*ddadbZ+	dqddfdgZ,edheG didj djZ-edkeG dldm dmZ.dS )    )annotations   )event_classT_JSON_DICT)	dataclassN)page)targetc                      4   e Zd Zd
ddZedddZ fdd	Z  ZS )BrowserContextIDreturnstrc                 C     | S N selfr   r   {/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v139/browser.pyto_json      zBrowserContextID.to_jsonjsonc                 C     | |S r   r   clsr   r   r   r   	from_json      zBrowserContextID.from_jsonc                      d t  S )NzBrowserContextID({})formatsuper__repr__r   	__class__r   r   r         zBrowserContextID.__repr__)r   r   )r   r   r   r
   __name__
__module____qualname__r   classmethodr   r   __classcell__r   r   r    r   r
      
    
r
   c                      r	   )WindowIDr   intc                 C  r   r   r   r   r   r   r   r      r   zWindowID.to_jsonr   c                 C  r   r   r   r   r   r   r   r       r   zWindowID.from_jsonc                   r   )NzWindowID({})r   r   r    r   r   r   $   r"   zWindowID.__repr__)r   r+   )r   r+   r   r*   r#   r   r   r    r   r*      r)   r*   c                   @  s4   e Zd ZdZdZdZdZdZdd Ze	dd	 Z
d
S )WindowStatez*
    The state of the browser window.
    normal	minimized	maximized
fullscreenc                 C     | j S r   valuer   r   r   r   r   1      zWindowState.to_jsonc                 C  r   r   r   r   r   r   r   r   4   r   zWindowState.from_jsonN)r$   r%   r&   __doc__NORMAL	MINIMIZED	MAXIMIZED
FULLSCREENr   r'   r   r   r   r   r   r,   (   s    r,   c                   @  sb   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
d Z
edd ZdS )Boundsz+
    Browser window bounds information
    Nztyping.Optional[int]lefttopwidthheightztyping.Optional[WindowState]window_statec                 C  sr   t  }| jd ur| j|d< | jd ur| j|d< | jd ur!| j|d< | jd ur+| j|d< | jd ur7| j |d< |S )Nr;   r<   r=   r>   windowState)dictr;   r<   r=   r>   r?   r   r   r   r   r   r   r   M   s   








zBounds.to_jsonc              	   C  s|   | d|v rt |d nd d|v rt |d nd d|v r!t |d nd d|v r,t |d nd d|v r:t|d dS d dS )Nr;   r<   r=   r>   r@   )r;   r<   r=   r>   r?   )r+   r,   r   r   r   r   r   r   [   s   zBounds.from_json)r$   r%   r&   r5   r;   __annotations__r<   r=   r>   r?   r   r'   r   r   r   r   r   r:   9   s   
 r:   c                   @  s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&d' Z(e)d(d) Z*d*S )+PermissionTypearaudioCaptureautomaticFullscreenbackgroundFetchbackgroundSynccameraPanTiltZoomcapturedSurfaceControlclipboardReadWriteclipboardSanitizedWritedisplayCapturedurableStoragegeolocationhandTrackingidleDetectionkeyboardLock
localFontslocalNetworkAccessmidi	midiSysexnfcnotificationspaymentHandlerperiodicBackgroundSyncpointerLockprotectedMediaIdentifiersensors	smartCardspeakerSelectionstorageAccesstopLevelStorageAccessvideoCapturevrwakeLockScreenwakeLockSystemwebAppInstallationwebPrintingwindowManagementc                 C  r1   r   r2   r   r   r   r   r      r4   zPermissionType.to_jsonc                 C  r   r   r   r   r   r   r   r      r   zPermissionType.from_jsonN)+r$   r%   r&   ARAUDIO_CAPTUREAUTOMATIC_FULLSCREENBACKGROUND_FETCHBACKGROUND_SYNCCAMERA_PAN_TILT_ZOOMCAPTURED_SURFACE_CONTROLCLIPBOARD_READ_WRITECLIPBOARD_SANITIZED_WRITEDISPLAY_CAPTUREDURABLE_STORAGEGEOLOCATIONHAND_TRACKINGIDLE_DETECTIONKEYBOARD_LOCKLOCAL_FONTSLOCAL_NETWORK_ACCESSMIDI
MIDI_SYSEXNFCNOTIFICATIONSPAYMENT_HANDLERPERIODIC_BACKGROUND_SYNCPOINTER_LOCKPROTECTED_MEDIA_IDENTIFIERSENSORS
SMART_CARDSPEAKER_SELECTIONSTORAGE_ACCESSTOP_LEVEL_STORAGE_ACCESSVIDEO_CAPTUREVRWAKE_LOCK_SCREENWAKE_LOCK_SYSTEMWEB_APP_INSTALLATIONWEB_PRINTINGWINDOW_MANAGEMENTr   r'   r   r   r   r   r   rD   f   sR    rD   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	PermissionSettinggranteddeniedpromptc                 C  r1   r   r2   r   r   r   r   r      r4   zPermissionSetting.to_jsonc                 C  r   r   r   r   r   r   r   r      r   zPermissionSetting.from_jsonN)	r$   r%   r&   GRANTEDDENIEDPROMPTr   r'   r   r   r   r   r   r      s    r   c                   @  sj   e Zd ZU 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d Z
edd ZdS )PermissionDescriptorz
    Definition of PermissionDescriptor defined in the Permissions API:
    https://w3c.github.io/permissions/#dom-permissiondescriptor.
    r   nameNtyping.Optional[bool]sysexuser_visible_onlyallow_without_sanitizationallow_without_gesturepan_tilt_zoomc                 C  sx   t  }| j|d< | jd ur| j|d< | jd ur| j|d< | jd ur&| j|d< | jd ur0| j|d< | jd ur:| j|d< |S )Nr   r   userVisibleOnlyallowWithoutSanitizationallowWithoutGesturepanTiltZoom)rA   r   r   r   r   r   r   rB   r   r   r   r      s   










zPermissionDescriptor.to_jsonc              	   C  s   | t |d d|v rt|d nd d|v rt|d nd d|v r&t|d nd d|v r1t|d nd d|v r>t|d dS d dS )Nr   r   r   r   r   r   )r   r   r   r   r   r   )r   boolr   r   r   r   r      s   
zPermissionDescriptor.from_json)r$   r%   r&   r5   rC   r   r   r   r   r   r   r'   r   r   r   r   r   r      s   
 r   c                   @  s0   e Zd ZdZdZdZdZdd Zedd Z	d	S )
BrowserCommandIdz<
    Browser command ids used by executeBrowserCommand.
    openTabSearchcloseTabSearchopenGlicc                 C  r1   r   r2   r   r   r   r   r      r4   zBrowserCommandId.to_jsonc                 C  r   r   r   r   r   r   r   r      r   zBrowserCommandId.from_jsonN)
r$   r%   r&   r5   OPEN_TAB_SEARCHCLOSE_TAB_SEARCH	OPEN_GLICr   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d Zedd	 Zd
S )Bucketz"
    Chrome histogram bucket.
    r+   lowhighcountc                 C  s(   t  }| j|d< | j|d< | j|d< |S )Nr   r   r   )rA   r   r   r   rB   r   r   r   r      s
   


zBucket.to_jsonc                 C  s&   | t |d t |d t |d dS )Nr   r   r   )r   r   r   )r+   r   r   r   r   r      s
   


zBucket.from_jsonNr$   r%   r&   r5   rC   r   r'   r   r   r   r   r   r      s   
 r   c                   @  sF   e Zd ZU dZded< ded< ded< ded< d	d
 Zedd ZdS )	Histogramz
    Chrome histogram.
    r   r   r+   sum_r   ztyping.List[Bucket]bucketsc                 C  s<   t  }| j|d< | j|d< | j|d< dd | jD |d< |S )Nr   sumr   c                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>      z%Histogram.to_json.<locals>.<listcomp>r   )rA   r   r   r   r   rB   r   r   r   r     s   


zHistogram.to_jsonc                 C  s6   | t |d t|d t|d dd |d D dS )Nr   r   r   c                 S     g | ]}t |qS r   )r   r   r   r   r   r   r   $      z'Histogram.from_json.<locals>.<listcomp>r   )r   r   r   r   )r   r+   r   r   r   r   r     s   


zHistogram.from_jsonNr   r   r   r   r   r     s   
 r   c                   @  s(   e Zd ZdZdZdd Zedd ZdS )PrivacySandboxAPIBiddingAndAuctionServicesTrustedKeyValuec                 C  r1   r   r2   r   r   r   r   r   ,  r4   zPrivacySandboxAPI.to_jsonc                 C  r   r   r   r   r   r   r   r   /  r   zPrivacySandboxAPI.from_jsonN)r$   r%   r&   BIDDING_AND_AUCTION_SERVICESTRUSTED_KEY_VALUEr   r'   r   r   r   r   r   r   (  s    r   
permissionsettingorigintyping.Optional[str]browser_context_id!typing.Optional[BrowserContextID]r   0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                 c  sX    t  }|  |d< | |d< |dur||d< |dur"| |d< d|d}|V }dS )a  
    Set permission settings for given origin.

    **EXPERIMENTAL**

    :param permission: Descriptor of permission to override.
    :param setting: Setting of the permission.
    :param origin: *(Optional)* Origin the permission applies to, all origins if not specified.
    :param browser_context_id: *(Optional)* Context to override. When omitted, default browser context is used.
    r   r   Nr   browserContextIdzBrowser.setPermissionmethodparamsrA   r   )r   r   r   r   r   cmd_dictr   r   r   r   set_permission4  s   
r   permissionstyping.List[PermissionType]c                 c  sR    t  }dd | D |d< |dur||d< |dur| |d< d|d}|V }dS )	aa  
    Grant specific permissions to the given origin and reject all others.

    **EXPERIMENTAL**

    :param permissions:
    :param origin: *(Optional)* Origin the permission applies to, all origins if not specified.
    :param browser_context_id: *(Optional)* BrowserContext to override permissions. When omitted, default browser context is used.
    c                 S  r   r   r   r   r   r   r   r   a  r   z%grant_permissions.<locals>.<listcomp>r   Nr   r   zBrowser.grantPermissionsr   r   )r   r   r   r   r   r   r   r   r   grant_permissionsR  s   
r   c                 c  s0    t  }| dur|  |d< d|d}|V }dS )z
    Reset all permission management for all origins.

    :param browser_context_id: *(Optional)* BrowserContext to reset permissions. When omitted, default browser context is used.
    Nr   zBrowser.resetPermissionsr   r   )r   r   r   r   r   r   r   reset_permissionsm  s   
r   behaviorr   download_pathevents_enabledr   c                 c  sX    t  }| |d< |dur| |d< |dur||d< |dur"||d< d|d}|V }dS )a  
    Set the behavior when downloading a file.

    **EXPERIMENTAL**

    :param behavior: Whether to allow all or deny all download requests, or use default Chrome behavior if available (otherwise deny). ``allowAndName`` allows download and names files according to their download guids.
    :param browser_context_id: *(Optional)* BrowserContext to set download behavior. When omitted, default browser context is used.
    :param download_path: *(Optional)* The default path to save downloaded files to. This is required if behavior is set to 'allow' or 'allowAndName'.
    :param events_enabled: *(Optional)* Whether to emit download events (defaults to false).
    r   Nr   downloadPatheventsEnabledzBrowser.setDownloadBehaviorr   r   )r   r   r   r   r   r   r   r   r   r   set_download_behavior  s   
r   guidc                 c  s8    t  }| |d< |dur| |d< d|d}|V }dS )a   
    Cancel a download if in progress

    **EXPERIMENTAL**

    :param guid: Global unique identifier of the download.
    :param browser_context_id: *(Optional)* BrowserContext to perform the action in. When omitted, default browser context is used.
    r   Nr   zBrowser.cancelDownloadr   r   )r   r   r   r   r   r   r   r   cancel_download  s   
r   c                  c      ddi} | V }dS )z#
    Close browser gracefully.
    r   zBrowser.closeNr   r   r   r   r   r   close  s   
r   c                  c  r   )zC
    Crashes browser on the main thread.

    **EXPERIMENTAL**
    r   zBrowser.crashNr   r   r   r   r   crash     
r   c                  c  r   )z4
    Crashes GPU process.

    **EXPERIMENTAL**
    r   zBrowser.crashGpuProcessNr   r   r   r   r   crash_gpu_process  r   r   Qtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[str, str, str, str, str]]c                  c  sF    ddi} | V }t |d t |d t |d t |d t |d fS )a,  
    Returns version information.

    :returns: A tuple with the following items:

        0. **protocolVersion** - Protocol version.
        1. **product** - Product name.
        2. **revision** - Product revision.
        3. **userAgent** - User-Agent.
        4. **jsVersion** - V8 version.
    r   zBrowser.getVersionprotocolVersionproductrevision	userAgent	jsVersionr   r   r   r   r   get_version  s   




r   <typing.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[str]]c                  c  s"    ddi} | V }dd |d D S )z
    Returns the command line switches for the browser process if, and only if
    --enable-automation is on the commandline.

    **EXPERIMENTAL**

    :returns: Commandline parameters
    r   zBrowser.getBrowserCommandLinec                 S  s   g | ]}t |qS r   r   r   r   r   r   r     r   z,get_browser_command_line.<locals>.<listcomp>	argumentsr   r   r   r   r   get_browser_command_line  s
   
r   querydeltaBtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[Histogram]]c                 c  sJ    t  }| dur| |d< |dur||d< d|d}|V }dd |d D S )	aY  
    Get Chrome histograms.

    **EXPERIMENTAL**

    :param query: *(Optional)* Requested substring in name. Only histograms which have query as a substring in their name are extracted. An empty or absent query returns all histograms.
    :param delta: *(Optional)* If true, retrieve delta since last delta call.
    :returns: Histograms.
    Nr   r   zBrowser.getHistogramsr   c                 S  r   r   )r   r   r   r   r   r   r     r   z"get_histograms.<locals>.<listcomp>
histogramsrA   )r   r   r   r   r   r   r   r   get_histograms   s   r   r   5typing.Generator[T_JSON_DICT, T_JSON_DICT, Histogram]c                 c  s>    t  }| |d< |dur||d< d|d}|V }t|d S )z
    Get a Chrome histogram by name.

    **EXPERIMENTAL**

    :param name: Requested histogram name.
    :param delta: *(Optional)* If true, retrieve delta since last delta call.
    :returns: Histogram.
    r   Nr   zBrowser.getHistogramr   	histogram)rA   r   r   )r   r   r   r   r   r   r   r   get_histogram  s   r   	window_id2typing.Generator[T_JSON_DICT, T_JSON_DICT, Bounds]c                 c  s2    t  }|  |d< d|d}|V }t|d S )z
    Get position and size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :returns: Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    windowIdzBrowser.getWindowBoundsr   bounds)rA   r   r:   r   )r   r   r   r   r   r   r   get_window_bounds3  s   r   	target_id typing.Optional[target.TargetID]Jtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[WindowID, Bounds]]c                 c  sH    t  }| dur|  |d< d|d}|V }t|d t|d fS )a  
    Get the browser window that contains the devtools target.

    **EXPERIMENTAL**

    :param target_id: *(Optional)* Devtools agent host id. If called as a part of the session, associated targetId is used.
    :returns: A tuple with the following items:

        0. **windowId** - Browser window id.
        1. **bounds** - Bounds information of the window. When window state is 'minimized', the restored window position and size are returned.
    NtargetIdzBrowser.getWindowForTargetr   r   r   )rA   r   r*   r   r:   )r   r   r   r   r   r   r   get_window_for_targetH  s   r   r   c                 c  s4    t  }|  |d< | |d< d|d}|V }dS )a5  
    Set position and/or size of the browser window.

    **EXPERIMENTAL**

    :param window_id: Browser window id.
    :param bounds: New window bounds. The 'minimized', 'maximized' and 'fullscreen' states cannot be combined with 'left', 'top', 'width' or 'height'. Leaves unspecified fields unchanged.
    r   r   zBrowser.setWindowBoundsr   Nr   )r   r   r   r   r   r   r   r   set_window_boundsd  s   
r   badge_labelimagec                 c  s<    t  }| dur| |d< |dur||d< d|d}|V }dS )z
    Set dock tile details, platform-specific.

    **EXPERIMENTAL**

    :param badge_label: *(Optional)*
    :param image: *(Optional)* Png encoded image.
    N
badgeLabelr  zBrowser.setDockTiler   r   )r   r  r   r   r   r   r   r   set_dock_tilez  s   
r  
command_idc                 c  s(    t  }|  |d< d|d}|V }dS )zi
    Invoke custom browser commands used by telemetry.

    **EXPERIMENTAL**

    :param command_id:
    	commandIdzBrowser.executeBrowserCommandr   Nr   )r  r   r   r   r   r   r   execute_browser_command  s   

r  urlc                 c  s$    t  }| |d< d|d}|V }dS )z
    Allows a site to use privacy sandbox features that require enrollment
    without the site actually being enrolled. Only supported on page targets.

    :param url:
    r  z+Browser.addPrivacySandboxEnrollmentOverrider   Nr   )r  r   r   r   r   r   r   'add_privacy_sandbox_enrollment_override  s   	
r  apicoordinator_origin
key_configc                 c  sL    t  }|  |d< ||d< ||d< |dur| |d< d|d}|V }dS )a  
    Configures encryption keys used with a given privacy sandbox API to talk
    to a trusted coordinator.  Since this is intended for test automation only,
    coordinatorOrigin must be a .test domain. No existing coordinator
    configuration for the origin may exist.

    :param api:
    :param coordinator_origin:
    :param key_config:
    :param browser_context_id: *(Optional)* BrowserContext to perform the action in. When omitted, default browser context is used.
    r	  coordinatorOrigin	keyConfigNr   z-Browser.addPrivacySandboxCoordinatorKeyConfigr   r   )r	  r
  r  r   r   r   r   r   r   r   *add_privacy_sandbox_coordinator_key_config  s   
r  zBrowser.downloadWillBeginc                   @  s@   e Zd ZU dZded< ded< ded< ded< edddZdS )DownloadWillBeginzM
    **EXPERIMENTAL**

    Fired when page is about to start a download.
    zpage.FrameIdframe_idr   r   r  suggested_filenamer   r   r   c                 C  s4   | t j|d t|d t|d t|d dS )NframeIdr   r  suggestedFilename)r  r   r  r  )r   FrameIdr   r   r   r   r   r   r     s   


zDownloadWillBegin.from_jsonN)r   r   r   r  r$   r%   r&   r5   rC   r'   r   r   r   r   r   r    s   
 r  zBrowser.downloadProgressc                   @  sH   e Zd ZU dZded< ded< ded< ded< ded	< edddZdS )DownloadProgresszc
    **EXPERIMENTAL**

    Fired when download makes progress. Last call has ``done`` == true.
    r   r   floattotal_bytesreceived_bytesstater   	file_pathr   r   r   c                 C  sJ   | t |d t|d t|d t |d d|v r!t |d dS d dS )Nr   
totalBytesreceivedBytesr  filePath)r   r  r  r  r  )r   r  r   r   r   r   r     s   



zDownloadProgress.from_jsonN)r   r   r   r  r  r   r   r   r   r    s   
 r  )NN)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   )NNN)
r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   )r   r   )r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r*   r   r   )r   r   r   r   )r   r*   r   r:   r   r   )r   r   r  r   r   r   )r  r   r   r   )r  r   r   r   )
r	  r   r
  r   r  r   r   r   r   r   )/
__future__r   utilr   r   dataclassesr   enumtyping r   r   r   r
   r+   r*   Enumr,   r:   rD   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r   r   r   r   <module>   s~   ,/4" !









