Ë
    bQbj  ã                  ó’   — d Z ddlmZ ddlmZ ddlmZ ddlmZ  G d„ d«      Z	e G d„ d	«      «       Z
 G d
„ d«      Z G d„ d«      Zy)zú
WebDriver BiDi permissions module.

Provides control over browser permission grants during automated tests,
as specified by the W3C Permissions specification.

Typical usage::

    driver.permissions.set_permission('geolocation', 'granted', origin)
é    )Úannotations)Ú	dataclass)ÚAny)Úcommand_builderc                  ó   — e Zd ZdZdZdZdZy)ÚPermissionStateu  
    Permission state constants.

    GRANTED: The permission is granted â€” the browser will not prompt the user.
    DENIED:  The permission is denied â€” the browser will block the request.
    PROMPT:  The browser will show a permission prompt (default browser behaviour).
    ÚgrantedÚdeniedÚpromptN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚGRANTEDÚDENIEDÚPROMPT© ó    ú]/var/www/html/venv/lib/python3.12/site-packages/selenium/webdriver/common/bidi/permissions.pyr   r      s   „ ñð €GØ€FØ�Fr   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)
ÚSetPermissionParameterszSetPermissionParameters.Nz
Any | NoneÚ
descriptorÚstateú
str | NoneÚoriginÚembedded_originÚuser_context)
r   r   r   r   r   Ú__annotations__r   r   r   r   r   r   r   r   r   '   s7   … á"à!€J�
Ó!Ø€Eˆ:ÓØ€FˆJÓØ"&€O�ZÓ&Ø#€L�*Ô#r   r   c                  ó    — e Zd ZdZdd„Zdd„Zy)ÚPermissionDescriptorzŒDescriptor identifying a permission by name.

    Args:
        name: The permission name (e.g. 'geolocation', 'microphone', 'camera').
    c                ó   — || _         y ©N©Úname)Úselfr$   s     r   Ú__init__zPermissionDescriptor.__init__9   s	   € Øˆ�	r   c                ó"   — d| j                   ›d�S )NzPermissionDescriptor(name=ú)r#   )r%   s    r   Ú__repr__zPermissionDescriptor.__repr__<   s   € Ø+¨D¯I©I¨=¸Ð:Ð:r   N)r$   ÚstrÚreturnÚNone)r+   r*   )r   r   r   r   r&   r)   r   r   r   r    r    2   s   „ ñóô;r   r    c                  óB   — e Zd ZdZdd„Z	 	 dddœ	 	 	 	 	 	 	 	 	 	 	 dd„Zy)	ÚPermissionsze
    BiDi interface for controlling browser permissions.

    Access via ``driver.permissions``.
    c                ó   — || _         y r"   )Ú_conn)r%   Úconns     r   r&   zPermissions.__init__F   s	   € Øˆ�
r   N)r   c               óJ  — t        |t        «      r|j                  n|}h d£}||vrt        d|›dt	        |«      › �«      ‚t        |t
        «      rd|ind|j                  i}||dœ}	|�||	d<   |�||	d<   |�||	d	<   t        d
|	«      }
| j                  j                  |
«       y)aA  Set a browser permission.

        Args:
            descriptor: The permission descriptor or permission name as a string.
            state: The desired permission state (granted, denied, or prompt).
            origin: The origin to scope the permission to.
            user_context: Optional user context ID to scope the permission.
            embedded_origin: Keyword-only. Embedded origin for cross-origin
                iframes; scopes the permission to that iframe's origin.

        Raises:
            ValueError: If *state* is not a valid permission state.
        >   r
   r   r	   zInvalid permission state: z. Must be one of r$   )r   r   Nr   ÚembeddedOriginÚuserContextzpermissions.setPermission)
Ú
isinstancer   ÚvalueÚ
ValueErrorÚsortedr*   r$   r   r0   Úexecute)r%   r   r   r   r   r   Ústate_valueÚvalid_statesÚdescriptor_dictÚparamsÚcmds              r   Úset_permissionzPermissions.set_permissionI   sÓ   € ô, &0°´Ô%G�e—k’kÈUˆÚ6ˆØ˜lÑ*ÜØ,¨[¨Oð <"Ü"(¨Ó"6Ð!7ð9óð ô
 3=¸ZÌÔ2M˜6 :Ñ.ÐTZÐ\f×\kÑ\kÐSlˆð *Ø ñ
ˆð ÐØ%ˆF�8ÑØÐ&Ø'6ˆFÐ#Ñ$ØÐ#Ø$0ˆF�=Ñ!äÐ9¸6ÓBˆØ�
‰
×Ñ˜3Õr   )r+   r,   )NN)r   z'PermissionDescriptor | str'r   z'PermissionState | str'r   r   r   r   r   r   r+   r,   )r   r   r   r   r&   r?   r   r   r   r.   r.   ?   s]   „ ñóð "Ø#'ð, ð '+ñ, à0ð, ð 'ð, ð ð	, ð
 !ð, ð $ð, ð 
ô, r   r.   N)r   Ú
__future__r   Údataclassesr   Útypingr   Ú%selenium.webdriver.common.bidi.commonr   r   r   r    r.   r   r   r   ú<module>rD      sO   ðñ	õ #å !Ý å A÷ñ ð ÷$ð $ó ð$÷;ñ ;÷6 ò 6 r   