
    $)fB                    @   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 e G d d	             Ze G d
 d             Ze G d d             Z G d dej                        Z G d dej                        Z G d dej                        Ze G d d             Z G d dej                        Z G d dej                        Ze G d d             Z G d dej                        Ze G d d             Z G d  d!ej                        Z G d" d#ej                        Ze G d$ d%             Z G d& d'ej                        Ze G d( d)             Ze G d* d+             Z	 	 d2	 	 	 	 	 	 	 	 	 d3d,Zd4d-Z d4d.Z! ed/      e G d0 d1                    Z"y)5    )annotations   )event_classT_JSON_DICT)	dataclassN)network)pagec                  F    e Zd ZU dZded<   ded<   ded<   d Zed        Zy)	AffectedCookiezL
    Information about a cookie that is affected by an inspector issue.
    strnamepathdomainc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   )dictr   r   r   selfjsons     j/var/www/html/flask-app/venv/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v85/audits.pyto_jsonzAffectedCookie.to_json   s5    vyyVyyVX    c                `     | t        |d         t        |d         t        |d               S )Nr   r   r   )r   r   r   )r   clsr   s     r   	from_jsonzAffectedCookie.from_json#   s3    T&\"T&\"tH~&
 	
r   N__name__
__module____qualname____doc____annotations__r   classmethodr    r   r   r   r      s1     I
IK 
 
r   r   c                  @    e Zd ZU dZded<   dZded<   d Zed        Zy)	AffectedRequestzM
    Information about a request that is affected by an inspector issue.
    network.RequestId
request_idNtyping.Optional[str]urlc                    t               }| j                  j                         |d<   | j                  | j                  |d<   |S )N	requestIdr)   )r   r'   r   r)   r   s     r   r   zAffectedRequest.to_json6   s<    v OO335[88((DKr   c                     | t         j                  j                  |d         d|v rt        |d               S d       S )Nr+   r)   )r'   r)   )r   	RequestIdr   r   r   s     r   r   zAffectedRequest.from_json=   sG    ((2243DE$)TMDK 
 	
7;
 	
r   )	r   r   r   r    r!   r)   r   r"   r   r#   r   r   r%   r%   ,   s3     "! $C	$ 
 
r   r%   c                  2    e Zd ZU dZded<   d Zed        Zy)AffectedFramezE
    Information about the frame affected by an inspector issue.
    zpage.FrameIdframe_idc                T    t               }| j                  j                         |d<   |S )NframeId)r   r0   r   r   s     r   r   zAffectedFrame.to_jsonL   s$    v--//1Yr   c                T     | t         j                  j                  |d               S )Nr2   )r0   )r	   FrameIdr   r   s     r   r   zAffectedFrame.from_jsonQ   s%    \\++DO<
 	
r   Nr   r#   r   r   r/   r/   E   s(     
 
 
r   r/   c                  *    e Zd ZdZdZd Zed        Zy)SameSiteCookieExclusionReason&ExcludeSameSiteUnspecifiedTreatedAsLaxExcludeSameSiteNoneInsecurec                    | j                   S Nvaluer   s    r   r   z%SameSiteCookieExclusionReason.to_json\       zzr   c                     | |      S r:   r#   r   s     r   r   z'SameSiteCookieExclusionReason.from_json_       4yr   N)r   r   r   ,EXCLUDE_SAME_SITE_UNSPECIFIED_TREATED_AS_LAXEXCLUDE_SAME_SITE_NONE_INSECUREr   r"   r   r#   r   r   r6   r6   X   s'    3[0&C#  r   r6   c                  B    e Zd ZdZdZdZdZdZdZdZ	dZ
d	 Zed
        Zy)SameSiteCookieWarningReason'WarnSameSiteUnspecifiedCrossSiteContextWarnSameSiteNoneInsecure%WarnSameSiteUnspecifiedLaxAllowUnsafe$WarnSameSiteStrictLaxDowngradeStrict&WarnSameSiteStrictCrossDowngradeStrict#WarnSameSiteStrictCrossDowngradeLax#WarnSameSiteLaxCrossDowngradeStrict WarnSameSiteLaxCrossDowngradeLaxc                    | j                   S r:   r;   r=   s    r   r   z#SameSiteCookieWarningReason.to_jsonn   r>   r   c                     | |      S r:   r#   r   s     r   r   z%SameSiteCookieWarningReason.from_jsonq   r@   r   N)r   r   r   -WARN_SAME_SITE_UNSPECIFIED_CROSS_SITE_CONTEXTWARN_SAME_SITE_NONE_INSECURE+WARN_SAME_SITE_UNSPECIFIED_LAX_ALLOW_UNSAFE*WARN_SAME_SITE_STRICT_LAX_DOWNGRADE_STRICT,WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_STRICT)WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_LAX)WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_STRICT&WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_LAXr   r"   r   r#   r   r   rD   rD   d   sK    4]1#= 2Y/1W.3[00U-0U--O*  r   rD   c                  *    e Zd ZdZdZd Zed        Zy)SameSiteCookieOperation	SetCookie
ReadCookiec                    | j                   S r:   r;   r=   s    r   r   zSameSiteCookieOperation.to_jsonz   r>   r   c                     | |      S r:   r#   r   s     r   r   z!SameSiteCookieOperation.from_json}   r@   r   N)r   r   r   
SET_COOKIEREAD_COOKIEr   r"   r   r#   r   r   rX   rX   v   s%    JK  r   rX   c                  z    e Zd ZU dZ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 Ze	d        Z
y
)SameSiteCookieIssueDetailsz
    This information is currently necessary, as the front-end has a difficult
    time finding a specific cookie. With this, we can convey specific error
    information without the cookie.
    r   cookiez(typing.List[SameSiteCookieWarningReason]cookie_warning_reasonsz*typing.List[SameSiteCookieExclusionReason]cookie_exclusion_reasonsrX   	operationNr(   site_for_cookies
cookie_url typing.Optional[AffectedRequest]requestc                   t               }| j                  j                         |d<   | j                  D cg c]  }|j                          c}|d<   | j                  D cg c]  }|j                          c}|d<   | j
                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   |S c c}w c c}w )Nra   cookieWarningReasonscookieExclusionReasonsrd   siteForCookies	cookieUrlrh   )	r   ra   r   rb   rc   rd   re   rf   rh   )r   r   is      r   r   z"SameSiteCookieIssueDetails.to_json   s    v,,.X=A=X=X'Y		'Y#$?C?\?\)]!!))+)]%& NN224[  ,%)%:%:D!"??& $D<<#"ll224DO (Z)]s   C<!Dc                    | t         j                  |d         |d   D cg c]  }t        j                  |       c}|d   D cg c]  }t        j                  |       c}t        j                  |d         d|v rt        |d         nd d|v rt        |d         nd d|v rt        j                  |d               S d       S c c}w c c}w )	Nra   rj   rk   rd   rl   rm   rh   )ra   rb   rc   rd   re   rf   rh   )r   r   rD   r6   rX   r   r%   )r   r   rn   s      r   r   z$SameSiteCookieIssueDetails.from_json   s    !++DN;VZ[qVr#sQR$?$I$I!$L#sZ^_wZx%yUV&C&M&Ma&P%y-77[8IJ<LPT<TS&6!78Z^1<1Ds4,-$BKtBSO--d9o>
 	
 Z^
 	
#s%ys   C	
C)r   r   r   r    r!   re   rf   rh   r   r"   r   r#   r   r   r`   r`      s^    
 DDHH '&-1*1'+J$+04G-4 	
 	
r   r`   c                  .    e Zd ZdZdZdZd Zed        Zy)MixedContentResolutionStatusMixedContentBlocked!MixedContentAutomaticallyUpgradedMixedContentWarningc                    | j                   S r:   r;   r=   s    r   r   z$MixedContentResolutionStatus.to_json   r>   r   c                     | |      S r:   r#   r   s     r   r   z&MixedContentResolutionStatus.from_json   r@   r   N)	r   r   r   MIXED_CONTENT_BLOCKED$MIXED_CONTENT_AUTOMATICALLY_UPGRADEDMIXED_CONTENT_WARNINGr   r"   r   r#   r   r   rq   rq      s-    1+N(1  r   rq   c                      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ed        Zy)MixedContentResourceTypeAudioBeacon	CSPReportDownloadEventSourceFaviconFontFormFrameImageImportManifestPing
PluginDataPluginResourcePrefetchResourceScriptServiceWorkerSharedWorker
StylesheetTrackVideoWorkerXMLHttpRequestXSLTc                    | j                   S r:   r;   r=   s    r   r   z MixedContentResourceType.to_json   r>   r   c                     | |      S r:   r#   r   s     r   r   z"MixedContentResourceType.from_json   r@   r   N) r   r   r   AUDIOBEACON
CSP_REPORTDOWNLOADEVENT_SOURCEFAVICONFONTFORMFRAMEIMAGEIMPORTMANIFESTPINGPLUGIN_DATAPLUGIN_RESOURCEPREFETCHRESOURCESCRIPTSERVICE_WORKERSHARED_WORKER
STYLESHEETTRACKVIDEOWORKERXML_HTTP_REQUESTr   r   r"   r   r#   r   r   r{   r{      s    EFJH LGDDEEFHDK&OHHF$N"MJEEF'D  r   r{   c                  l    e Zd ZU 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 Zed        Z	y)MixedContentIssueDetailsrq   resolution_statusr   insecure_urlmain_resource_urlNz)typing.Optional[MixedContentResourceType]resource_typerg   rh   typing.Optional[AffectedFrame]framec                   t               }| j                  j                         |d<   | j                  |d<   | j                  |d<   | j
                  | j
                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   |S )NresolutionStatusinsecureURLmainResourceURLresourceTyperh   r   )r   r   r   r   r   r   rh   r   r   s     r   r   z MixedContentIssueDetails.to_json   s    v#'#9#9#A#A#C "//]"&"8"8)#'#5#5#=#=#?D <<#"ll224DO::! JJ..0DMr   c                ,    | t         j                  |d         t        |d         t        |d         d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v rt
        j                  |d               S d       S )Nr   r   r   r   rh   r   )r   r   r   r   rh   r   )rq   r   r   r{   r%   r/   r   s     r   r   z"MixedContentIssueDetails.from_json
  s    :DDTJ\E]^T-01!$'8"9:VdhlVl2<<T.=QRrvBKtBSO--d9o>Y]<CtO-))$w-8
 	
 RV
 	
r   )
r   r   r   r!   r   rh   r   r   r"   r   r#   r   r   r   r      s\     43   @DM<C 15G-4 -1E)0 
 
r   r   c                  :    e Zd ZdZdZdZdZdZdZd Z	e
d        Zy	)
BlockedByResponseReasonz
    Enum indicating the reason a response has been blocked. These reasons are
    refinements of the net error BLOCKED_BY_RESPONSE.
     CoepFrameResourceNeedsCoepHeader+CoopSandboxedIFrameCannotNavigateToCoopPageCorpNotSameOrigin1CorpNotSameOriginAfterDefaultedToSameOriginByCoepCorpNotSameSitec                    | j                   S r:   r;   r=   s    r   r   zBlockedByResponseReason.to_json!  r>   r   c                     | |      S r:   r#   r   s     r   r   z!BlockedByResponseReason.from_json$  r@   r   N)r   r   r   r    %COEP_FRAME_RESOURCE_NEEDS_COEP_HEADER3COOP_SANDBOXED_I_FRAME_CANNOT_NAVIGATE_TO_COOP_PAGECORP_NOT_SAME_ORIGIN;CORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEPCORP_NOT_SAME_SITEr   r"   r   r#   r   r   r   r     sA     -O):g7.Bu?*  r   r   c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)BlockedByResponseIssueDetailsz
    Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
    code. Currently only used for COEP/COOP, but may be extended to include
    some CSP errors in the future.
    r%   rh   r   reasonNr   r   c                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  j                         |d<   |S )Nrh   r   r   )r   rh   r   r   r   r   s     r   r   z%BlockedByResponseIssueDetails.to_json6  sZ    v,,..0Y,,.X::! JJ..0DMr   c                     | t         j                  |d         t        j                  |d         d|v rt        j                  |d               S d       S )Nrh   r   r   )rh   r   r   )r%   r   r   r/   r   s     r   r   z'BlockedByResponseIssueDetails.from_json>  s\    #--d9o>*44T(^D<CtO-))$w-8
 	
 RV
 	
r   )	r   r   r   r    r!   r   r   r"   r   r#   r   r   r   r   )  s9    
 ##,0E)0 
 
r   r   c                  *    e Zd ZdZdZd Zed        Zy)HeavyAdResolutionStatusHeavyAdBlockedHeavyAdWarningc                    | j                   S r:   r;   r=   s    r   r   zHeavyAdResolutionStatus.to_jsonK  r>   r   c                     | |      S r:   r#   r   s     r   r   z!HeavyAdResolutionStatus.from_jsonN  r@   r   N)r   r   r   HEAVY_AD_BLOCKEDHEAVY_AD_WARNINGr   r"   r   r#   r   r   r   r   G  s'    ''  r   r   c                  .    e Zd ZdZdZdZd Zed        Zy)HeavyAdReasonNetworkTotalLimitCpuTotalLimitCpuPeakLimitc                    | j                   S r:   r;   r=   s    r   r   zHeavyAdReason.to_jsonX  r>   r   c                     | |      S r:   r#   r   s     r   r   zHeavyAdReason.from_json[  r@   r   N)	r   r   r   NETWORK_TOTAL_LIMITCPU_TOTAL_LIMITCPU_PEAK_LIMITr   r"   r   r#   r   r   r   r   S  s+    -%O#N  r   r   c                  B    e Zd ZU ded<   ded<   ded<   d Zed        Zy	)
HeavyAdIssueDetailsr   
resolutionr   r   r/   r   c                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   |S )Nr   r   r   )r   r   r   r   r   r   s     r   r   zHeavyAdIssueDetails.to_jsonk  sQ    v!__446\,,.X

**,Wr   c                     | t         j                  |d         t        j                  |d         t        j                  |d               S )Nr   r   r   )r   r   r   )r   r   r   r/   r   s     r   r   zHeavyAdIssueDetails.from_jsonr  sF    .88l9KL **4>:))$w-8
 	
r   N)r   r   r   r!   r   r"   r   r#   r   r   r   r   `  s3     ('   
 
r   r   c                  6    e Zd ZdZdZdZdZdZd Ze	d        Z
y)	InspectorIssueCodez
    A unique identifier for the type of issue. Each type may use one of the
    optional fields in InspectorIssueDetails to convey more specific
    information about the kind of issue.
    SameSiteCookieIssueMixedContentIssueBlockedByResponseIssueHeavyAdIssuec                    | j                   S r:   r;   r=   s    r   r   zInspectorIssueCode.to_json  r>   r   c                     | |      S r:   r#   r   s     r   r   zInspectorIssueCode.from_json  r@   r   N)r   r   r   r    SAME_SITE_COOKIE_ISSUEMIXED_CONTENT_ISSUEBLOCKED_BY_RESPONSE_ISSUEHEAVY_AD_ISSUEr   r"   r   r#   r   r   r   r   {  s9    
 3- 8#N  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<   dZd	ed
<   d Z	e
d        Zy)InspectorIssueDetailsz
    This struct holds a list of optional fields with additional information
    specific to the kind of issue. When adding a new issue code, please also
    add a new optional field to this type.
    Nz+typing.Optional[SameSiteCookieIssueDetails]same_site_cookie_issue_detailsz)typing.Optional[MixedContentIssueDetails]mixed_content_issue_detailsz.typing.Optional[BlockedByResponseIssueDetails]!blocked_by_response_issue_detailsz$typing.Optional[HeavyAdIssueDetails]heavy_ad_issue_detailsc                b   t               }| j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j
                  | j
                  j                         |d<   |S )NsameSiteCookieIssueDetailsmixedContentIssueDetailsblockedByResponseIssueDetailsheavyAdIssueDetails)r   r   r   r   r   r   r   s     r   r   zInspectorIssueDetails.to_json  s    v..:151T1T1\1\1^D-.++7/3/O/O/W/W/YD+,11=484Z4Z4b4b4dD01&&2*.*E*E*M*M*OD&'r   c           	         | d|v rt         j                  |d         nd d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v rt        j                  |d               S d       S )Nr   r   r   r   )r   r   r   r   )r`   r   r   r   r   r   s     r   r   zInspectorIssueDetails.from_json  s     xT  X\  x\+E+O+OPTUqPr+s  bf qK  OS  qS(@(J(J4PjKk(l  Y] A`  dh  Ah.K.U.UVZ[zV{.|  nravz~a~#6#@#@F[A\#]	
 	
 EI	
 	
r   )r   r   r   r    r   r!   r   r   r   r   r"   r   r#   r   r   r   r     sT    
 SW"$OVMQ!JQX\%'U\CG@G
 
 
r   r   c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	InspectorIssuez8
    An inspector issue reported from the back-end.
    r   coder   detailsc                    t               }| j                  j                         |d<   | j                  j                         |d<   |S )Nr  r  )r   r  r   r  r   s     r   r   zInspectorIssue.to_json  s:    vyy((*V,,..0Yr   c                n     | t         j                  |d         t        j                  |d               S )Nr  r  )r  r  )r   r   r   r   s     r   r   zInspectorIssue.from_json  s3    #--d6l;)33DOD
 	
r   Nr   r#   r   r   r  r    s.     "" 
 
r   r  c              #     K   t               }| j                         |d<   ||d<   |||d<   |||d<   d|d}|}d|v rt        |d         ndt        |d	         t        |d
         fS w)a  
    Returns the response body and size if it were re-encoded with the specified settings. Only
    applies to images.

    :param request_id: Identifier of the network request to get content for.
    :param encoding: The encoding to use.
    :param quality: *(Optional)* The quality of the encoding (0-1). (defaults to 1)
    :param size_only: *(Optional)* Whether to only return the size information (defaults to false).
    :returns: A tuple with the following items:

        0. **body** - *(Optional)* The encoded body as a base64 string. Omitted if sizeOnly is true.
        1. **originalSize** - Size before re-encoding.
        2. **encodedSize** - Size after re-encoding.
    r+   encodingNqualitysizeOnlyzAudits.getEncodedResponse)methodparamsbodyoriginalSizeencodedSize)r   r   r   int)r'   r  r	  	size_onlyr  cmd_dictr   s          r   get_encoded_responser    s     ( &F$,,.F;!F:#y&z-H >D#t^DLD !D  s   A)A+c               #     K   ddi} | }yw)z\
    Disables issues domain, prevents further issues from being reported to the client.
    r  zAudits.disableNr#   r  r   s     r   disabler    s     
 	"H >D   
c               #     K   ddi} | }yw)zz
    Enables issues domain, sends the issues collected so far to the client by means of the
    ``issueAdded`` event.
    r  zAudits.enableNr#   r  s     r   enabler    s      	/H >Dr  zAudits.issueAddedc                  *    e Zd ZU ded<   edd       Zy)
IssueAddedr  issuec                @     | t         j                  |d               S )Nr  )r  )r  r   r   s     r   r   zIssueAdded.from_json  s!     **4=9
 	
r   N)r   r   returnr  )r   r   r   r!   r"   r   r#   r   r   r  r    s     
 
r   r  )NN)
r'   r&   r  r   r	  ztyping.Optional[float]r  ztyping.Optional[bool]r  zXtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]])r  z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])#
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r   r%   r/   Enumr6   rD   rX   r`   rq   r{   r   r   r   r   r   r   r   r   r  r  r  r  r  r#   r   r   <module>r&     s   # * !     
 
 
6 
 
 
0 
 
 
$	DII 	$)) $	dii 	 .
 .
 .
b
499 
!tyy !H -
 -
 -
`dii & 
 
 
:	dii 	
DII 
 
 
 
4 & !
 !
 !
H 
 
 
2 +/+/	$%$$ ($ )	$
 
`$N  !

 
  "
r   