o
    ҷ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 ddl	mZ dd	l	mZ eG d
d dZeG dd dZeG dd dZG dd dej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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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!eG d0d1 d1Z"eG d2d3 d3Z#eG d4d5 d5Z$G d6d7 d7ejZ%eG d8d9 d9Z&eG d:d; d;Z'eG d<d= d=Z(G d>d? d?ejZ)eG d@dA dAZ*eG dBdC dCZ+eG dDdE dEZ,G dFdG dGejZ-eG dHdI dIZ.G dJdK dKejZ/eG dLdM dMZ0G dNdO dOejZ1eG dPdQ dQZ2eG dRdS dSZ3G dTdU dUejZ4eG dVdW dWZ5G dXdY dYejZ6eG dZd[ d[Z7G d\d] d]ejZ8eG d^d_ d_Z9G d`da dae:Z;eG dbdc dcZ<		d~ddndoZ=ddqdrZ>ddsdtZ?	dddvdwZ@ddydzZAed{eG d|d} d}ZBdS )    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)page)runtimec                   @  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 )AffectedCookiezL
    Information about a cookie that is affected by an inspector issue.
    strnamepathdomainc                 C  s(   t  }| j|d< | j|d< | j|d< |S )Nr   r   r   )dictr   r   r   selfjson r   a/var/www/html/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v119/audits.pyto_json   s
   


zAffectedCookie.to_jsonc                 C  s&   | t |d t |d t |d dS )Nr   r   r   )r   r   r   r   clsr   r   r   r   	from_json%   s
   


zAffectedCookie.from_jsonN__name__
__module____qualname____doc____annotations__r   classmethodr   r   r   r   r   r         
 r   c                   @  s:   e Zd ZU dZded< dZded< dd Zed	d
 ZdS )AffectedRequestzM
    Information about a request that is affected by an inspector issue.
    network.RequestId
request_idNtyping.Optional[str]urlc                 C  s,   t  }| j |d< | jd ur| j|d< |S )N	requestIdr'   )r   r%   r   r'   r   r   r   r   r   8   s
   

zAffectedRequest.to_jsonc                 C  s0   | t j|d d|v rt|d dS d dS )Nr(   r'   )r%   r'   )r   	RequestIdr   r   r   r   r   r   r   ?   s   zAffectedRequest.from_json)	r   r   r   r   r    r'   r   r!   r   r   r   r   r   r#   .   s   
 r#   c                   @  .   e Zd ZU dZded< dd Zedd ZdS )	AffectedFramezE
    Information about the frame affected by an inspector issue.
    page.FrameIdframe_idc                 C     t  }| j |d< |S )NframeId)r   r-   r   r   r   r   r   r   N      zAffectedFrame.to_jsonc                 C  s   | t j|d dS )Nr/   )r-   )r	   FrameIdr   r   r   r   r   r   S   s   zAffectedFrame.from_jsonNr   r   r   r   r   r+   G   s   
 r+   c                   @  sD   e 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 )CookieExclusionReason&ExcludeSameSiteUnspecifiedTreatedAsLaxExcludeSameSiteNoneInsecureExcludeSameSiteLaxExcludeSameSiteStrictExcludeInvalidSameParty!ExcludeSamePartyCrossPartyContextExcludeDomainNonASCII-ExcludeThirdPartyCookieBlockedInFirstPartySetExcludeThirdPartyPhaseoutc                 C     | j S Nvaluer   r   r   r   r   e      zCookieExclusionReason.to_jsonc                 C     | |S r=   r   r   r   r   r   r   h      zCookieExclusionReason.from_jsonN)r   r   r   ,EXCLUDE_SAME_SITE_UNSPECIFIED_TREATED_AS_LAXEXCLUDE_SAME_SITE_NONE_INSECUREEXCLUDE_SAME_SITE_LAXEXCLUDE_SAME_SITE_STRICTEXCLUDE_INVALID_SAME_PARTY&EXCLUDE_SAME_PARTY_CROSS_PARTY_CONTEXTEXCLUDE_DOMAIN_NON_ASCII5EXCLUDE_THIRD_PARTY_COOKIE_BLOCKED_IN_FIRST_PARTY_SETEXCLUDE_THIRD_PARTY_PHASEOUTr   r!   r   r   r   r   r   r2   Z   s    r2   c                   @  sL   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d Zedd ZdS )CookieWarningReason'WarnSameSiteUnspecifiedCrossSiteContextWarnSameSiteNoneInsecure%WarnSameSiteUnspecifiedLaxAllowUnsafe$WarnSameSiteStrictLaxDowngradeStrict&WarnSameSiteStrictCrossDowngradeStrict#WarnSameSiteStrictCrossDowngradeLax#WarnSameSiteLaxCrossDowngradeStrict WarnSameSiteLaxCrossDowngradeLax WarnAttributeValueExceedsMaxSizeWarnDomainNonASCIIWarnThirdPartyPhaseoutc                 C  r<   r=   r>   r@   r   r   r   r   z   rA   zCookieWarningReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r   }   rC   zCookieWarningReason.from_jsonN)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_LAX%WARN_ATTRIBUTE_VALUE_EXCEEDS_MAX_SIZEWARN_DOMAIN_NON_ASCIIWARN_THIRD_PARTY_PHASEOUTr   r!   r   r   r   r   r   rM   m   s    rM   c                   @  (   e Zd ZdZdZdd Zedd ZdS )CookieOperation	SetCookie
ReadCookiec                 C  r<   r=   r>   r@   r   r   r   r      rA   zCookieOperation.to_jsonc                 C  rB   r=   r   r   r   r   r   r      rC   zCookieOperation.from_jsonN)r   r   r   
SET_COOKIEREAD_COOKIEr   r!   r   r   r   r   r   re          re   c                   @  sz   e Zd ZU dZ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ded< dZ	ded< dd Z
edd ZdS )CookieIssueDetailsz
    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.
    z typing.List[CookieWarningReason]cookie_warning_reasonsz"typing.List[CookieExclusionReason]cookie_exclusion_reasonsre   	operationNztyping.Optional[AffectedCookie]cookier&   raw_cookie_linesite_for_cookies
cookie_url typing.Optional[AffectedRequest]requestc                 C  s   t  }dd | jD |d< dd | jD |d< | j |d< | jd ur*| j |d< | jd ur4| j|d< | jd ur>| j|d	< | jd urH| j|d
< | j	d urT| j	 |d< |S )Nc                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z.CookieIssueDetails.to_json.<locals>.<listcomp>cookieWarningReasonsc                 S  ru   r   rv   rw   r   r   r   rz      r{   cookieExclusionReasonsrn   ro   rawCookieLinesiteForCookies	cookieUrlrt   )
r   rl   rm   rn   r   ro   rp   rq   rr   rt   r   r   r   r   r      s   







zCookieIssueDetails.to_jsonc                 C  s   | dd |d D dd |d D t |d d|v r"t|d nd d|v r-t|d nd d	|v r8t|d	 nd d
|v rCt|d
 nd d|v rQt|d dS d dS )Nc                 S     g | ]}t |qS r   )rM   r   rw   r   r   r   rz          z0CookieIssueDetails.from_json.<locals>.<listcomp>r|   c                 S  r   r   )r2   r   rw   r   r   r   rz      r   r}   rn   ro   r~   r   r   rt   )rl   rm   rn   ro   rp   rq   rr   rt   )re   r   r   r   r#   r   r   r   r   r      s   zCookieIssueDetails.from_json)r   r   r   r   r    ro   rp   rq   rr   rt   r   r!   r   r   r   r   r   rk      s   
 rk   c                   @  ,   e Zd ZdZdZdZdd Zedd ZdS )	MixedContentResolutionStatusMixedContentBlocked!MixedContentAutomaticallyUpgradedMixedContentWarningc                 C  r<   r=   r>   r@   r   r   r   r      rA   z$MixedContentResolutionStatus.to_jsonc                 C  rB   r=   r   r   r   r   r   r      rC   z&MixedContentResolutionStatus.from_jsonN)	r   r   r   MIXED_CONTENT_BLOCKED$MIXED_CONTENT_AUTOMATICALLY_UPGRADEDMIXED_CONTENT_WARNINGr   r!   r   r   r   r   r   r          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d Zedd Z d S )!MixedContentResourceTypeAttributionSrc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                 C  r<   r=   r>   r@   r   r   r   r      rA   z MixedContentResourceType.to_jsonc                 C  rB   r=   r   r   r   r   r   r      rC   z"MixedContentResourceType.from_jsonN)!r   r   r   ATTRIBUTION_SRC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>    r   c                   @  s^   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d Zedd Z	dS )MixedContentIssueDetailsr   resolution_statusr   insecure_urlmain_resource_urlNz)typing.Optional[MixedContentResourceType]resource_typers   rt   typing.Optional[AffectedFrame]framec                 C  st   t  }| j |d< | j|d< | j|d< | jd ur | j |d< | jd ur,| j |d< | jd ur8| j |d< |S )NresolutionStatusinsecureURLmainResourceURLresourceTypert   r   )r   r   r   r   r   r   rt   r   r   r   r   r   r     s   




z MixedContentIssueDetails.to_jsonc              
   C  st   | t |d t|d t|d d|v rt|d nd d|v r(t|d nd d|v r6t|d dS d dS )Nr   r   r   r   rt   r   )r   r   r   r   rt   r   )r   r   r   r   r#   r+   r   r   r   r   r   !  s   

z"MixedContentIssueDetails.from_json)
r   r   r   r    r   rt   r   r   r!   r   r   r   r   r   r      s   
 r   c                   @  8   e Zd ZdZdZdZdZdZdZdd Z	e
d	d
 ZdS )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                 C  r<   r=   r>   r@   r   r   r   r   8  rA   zBlockedByResponseReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r   ;  rC   z!BlockedByResponseReason.from_jsonN)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   -  s    r   c                   @  sN   e Zd ZU dZded< ded< dZded< dZded	< d
d Zedd Z	dS )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#   rt   r   reasonNr   parent_frameblocked_framec                 C  sV   t  }| j |d< | j |d< | jd ur| j |d< | jd ur)| j |d< |S )Nrt   r   parentFrameblockedFrame)r   rt   r   r   r   r   r   r   r   r   r   O  s   

z%BlockedByResponseIssueDetails.to_jsonc                 C  sT   | t |d t|d d|v rt|d nd d|v r&t|d dS d dS )Nrt   r   r   r   )rt   r   r   r   )r#   r   r   r+   r   r   r   r   r   Y  s   z'BlockedByResponseIssueDetails.from_json)
r   r   r   r   r    r   r   r   r!   r   r   r   r   r   r   @  s   
 
r   c                   @  rd   )HeavyAdResolutionStatusHeavyAdBlockedHeavyAdWarningc                 C  r<   r=   r>   r@   r   r   r   r   g  rA   zHeavyAdResolutionStatus.to_jsonc                 C  rB   r=   r   r   r   r   r   r   j  rC   z!HeavyAdResolutionStatus.from_jsonN)r   r   r   HEAVY_AD_BLOCKEDHEAVY_AD_WARNINGr   r!   r   r   r   r   r   r   c  rj   r   c                   @  r   )	HeavyAdReasonNetworkTotalLimitCpuTotalLimitCpuPeakLimitc                 C  r<   r=   r>   r@   r   r   r   r   t  rA   zHeavyAdReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r   w  rC   zHeavyAdReason.from_jsonN)	r   r   r   NETWORK_TOTAL_LIMITCPU_TOTAL_LIMITCPU_PEAK_LIMITr   r!   r   r   r   r   r   r   o  r   r   c                   @  s:   e Zd ZU ded< ded< ded< dd Zed	d
 ZdS )HeavyAdIssueDetailsr   
resolutionr   r   r+   r   c                 C  s4   t  }| j |d< | j |d< | j |d< |S )Nr   r   r   )r   r   r   r   r   r   r   r   r   r     s
   zHeavyAdIssueDetails.to_jsonc                 C  s,   | t |d t|d t|d dS )Nr   r   r   )r   r   r   )r   r   r   r+   r   r   r   r   r     s
   zHeavyAdIssueDetails.from_jsonNr   r   r   r    r   r!   r   r   r   r   r   r   |  s   
 r   c                   @  r   )"ContentSecurityPolicyViolationTypekInlineViolationkEvalViolationkURLViolationkTrustedTypesSinkViolationkTrustedTypesPolicyViolationkWasmEvalViolationc                 C  r<   r=   r>   r@   r   r   r   r     rA   z*ContentSecurityPolicyViolationType.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z,ContentSecurityPolicyViolationType.from_jsonN)r   r   r   K_INLINE_VIOLATIONK_EVAL_VIOLATIONK_URL_VIOLATIONK_TRUSTED_TYPES_SINK_VIOLATION K_TRUSTED_TYPES_POLICY_VIOLATIONK_WASM_EVAL_VIOLATIONr   r!   r   r   r   r   r   r     s    r   c                   @  sF   e Zd ZU ded< ded< ded< dZded< d	d
 Zedd ZdS )SourceCodeLocationr   r'   intline_numbercolumn_numberNz!typing.Optional[runtime.ScriptId]	script_idc                 C  s@   t  }| j|d< | j|d< | j|d< | jd ur| j |d< |S )Nr'   
lineNumbercolumnNumberscriptId)r   r'   r   r   r   r   r   r   r   r   r     s   



zSourceCodeLocation.to_jsonc                 C  sD   | t |d t|d t|d d|v rtj|d dS d dS )Nr'   r   r  r  )r'   r   r   r   )r   r   r
   ScriptIdr   r   r   r   r   r     s   


zSourceCodeLocation.from_json)r   r   r   r    r   r   r!   r   r   r   r   r   r     s   
 	r   c                   @  sj   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ded< dd Ze	dd Z
dS )!ContentSecurityPolicyIssueDetailsr   violated_directiveboolis_report_onlyr   &content_security_policy_violation_typeNr&   blocked_urlr   frame_ancestor#typing.Optional[SourceCodeLocation]source_code_location"typing.Optional[dom.BackendNodeId]violating_node_idc                 C  s   t  }| j|d< | j|d< | j |d< | jd ur| j|d< | jd ur*| j |d< | jd ur6| j |d< | jd urB| j |d< |S )NviolatedDirectiveisReportOnly"contentSecurityPolicyViolationType
blockedURLframeAncestorsourceCodeLocationviolatingNodeId)	r   r  r  r  r   r	  r
  r  r  r   r   r   r   r     s   






z)ContentSecurityPolicyIssueDetails.to_jsonc                 C  s   | t |d t|d t|d d|v rt |d nd d|v r't|d nd d|v r3t|d nd d|v rBtj|d dS d dS )	Nr  r  r  r  r  r  r  )r  r  r  r	  r
  r  r  )r   r  r   r   r+   r   r   BackendNodeIdr   r   r   r   r     s   

z+ContentSecurityPolicyIssueDetails.from_json)r   r   r   r    r	  r
  r  r  r   r!   r   r   r   r   r   r    s   
 r  c                   @  rd   )SharedArrayBufferIssueTypeTransferIssueCreationIssuec                 C  r<   r=   r>   r@   r   r   r   r     rA   z"SharedArrayBufferIssueType.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z$SharedArrayBufferIssueType.from_jsonN)r   r   r   TRANSFER_ISSUECREATION_ISSUEr   r!   r   r   r   r   r   r    rj   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 )SharedArrayBufferIssueDetailsz
    Details for a issue arising from an SAB being instantiated in, or
    transferred to a context that is not cross-origin isolated.
    r   r  r  
is_warningr  type_c                 C  s0   t  }| j |d< | j|d< | j |d< |S )Nr  	isWarningtype)r   r  r   r  r  r   r   r   r   r   
  s
   
z%SharedArrayBufferIssueDetails.to_jsonc                 C  s*   | t |d t|d t|d dS )Nr  r  r   )r  r  r  )r   r   r  r  r   r   r   r   r     s
   
z'SharedArrayBufferIssueDetails.from_jsonNr   r   r   r   r   r    r"   r  c                   @  sZ   e Zd ZU ded< ded< ded< ded< ded< ded	< ded
< dd Zedd ZdS )LowTextContrastIssueDetailsdom.BackendNodeIdr  r   violating_node_selectorfloatcontrast_ratiothreshold_aathreshold_aaa	font_sizefont_weightc                 C  sT   t  }| j |d< | j|d< | j|d< | j|d< | j|d< | j|d< | j|d< |S )Nr  violatingNodeSelectorcontrastRatiothresholdAAthresholdAAAfontSize
fontWeight)	r   r  r   r#  r%  r&  r'  r(  r)  r   r   r   r   r   *  s   





z#LowTextContrastIssueDetails.to_jsonc              
   C  sR   | t j|d t|d t|d t|d t|d t|d t|d dS )	Nr  r*  r+  r,  r-  r.  r/  )r  r#  r%  r&  r'  r(  r)  )r   r  r   r   r$  r   r   r   r   r   5  s   





z%LowTextContrastIssueDetails.from_jsonNr   r   r   r   r   r!    s   
 r!  c                   @  sn   e Zd ZU dZ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ded< dd Z	e
dd ZdS )CorsIssueDetailszl
    Details for a CORS related issue, e.g. a warning or error related to
    CORS RFC1918 enforcement.
    znetwork.CorsErrorStatuscors_error_statusr  r  r#   rt   Nr  locationr&   initiator_originz'typing.Optional[network.IPAddressSpace]resource_ip_address_spacez,typing.Optional[network.ClientSecurityState]client_security_statec                 C  s   t  }| j |d< | j|d< | j |d< | jd ur"| j |d< | jd ur,| j|d< | jd ur8| j |d< | jd urD| j |d< |S )NcorsErrorStatusr  rt   r2  initiatorOriginresourceIPAddressSpaceclientSecurityState)	r   r1  r   r  rt   r2  r3  r4  r5  r   r   r   r   r   V  s   





zCorsIssueDetails.to_jsonc                 C  s   | t j|d t|d t|d d|v rt|d nd d|v r)t|d nd d|v r6t j|d nd d|v rEt j|d dS d dS )	Nr6  r  rt   r2  r7  r8  r9  )r1  r  rt   r2  r3  r4  r5  )	r   CorsErrorStatusr   r  r#   r   r   IPAddressSpaceClientSecurityStater   r   r   r   r   e  s   
zCorsIssueDetails.from_json)r   r   r   r   r    r2  r3  r4  r5  r   r!   r   r   r   r   r   r0  B  s   
 r0  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d Zedd ZdS )AttributionReportingIssueTypePermissionPolicyDisabledUntrustworthyReportingOriginInsecureContextInvalidHeaderInvalidRegisterTriggerHeaderSourceAndTriggerHeadersSourceIgnoredTriggerIgnoredOsSourceIgnoredOsTriggerIgnoredInvalidRegisterOsSourceHeaderInvalidRegisterOsTriggerHeaderWebAndOsHeadersNoWebOrOsSupport4NavigationRegistrationWithoutTransientUserActivationc                 C  r<   r=   r>   r@   r   r   r   r     rA   z%AttributionReportingIssueType.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z'AttributionReportingIssueType.from_jsonN)r   r   r   PERMISSION_POLICY_DISABLEDUNTRUSTWORTHY_REPORTING_ORIGININSECURE_CONTEXTINVALID_HEADERINVALID_REGISTER_TRIGGER_HEADERSOURCE_AND_TRIGGER_HEADERSSOURCE_IGNOREDTRIGGER_IGNOREDOS_SOURCE_IGNOREDOS_TRIGGER_IGNORED!INVALID_REGISTER_OS_SOURCE_HEADER"INVALID_REGISTER_OS_TRIGGER_HEADERWEB_AND_OS_HEADERSNO_WEB_OR_OS_SUPPORT9NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATIONr   r!   r   r   r   r   r   r=  r  s&    r=  c                   @  sR   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d Ze	dd Z
dS ) AttributionReportingIssueDetailsz
    Details for issues around "Attribution Reporting API" usage.
    Explainer: https://github.com/WICG/attribution-reporting-api
    r=  violation_typeNrs   rt   r  r  r&   invalid_parameterc                 C  s\   t  }| j |d< | jd ur| j |d< | jd ur"| j |d< | jd ur,| j|d< |S )NviolationTypert   r  invalidParameter)r   r]  r   rt   r  r^  r   r   r   r   r     s   



z(AttributionReportingIssueDetails.to_jsonc                 C  s`   | t |d d|v rt|d nd d|v rtj|d nd d|v r,t|d dS d dS )Nr_  rt   r  r`  )r]  rt   r  r^  )r=  r   r#   r   r  r   r   r   r   r   r     s   z*AttributionReportingIssueDetails.from_json)r   r   r   r   r    rt   r  r^  r   r!   r   r   r   r   r   r\    s   
 r\  c                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< dd Zedd ZdS )QuirksModeIssueDetailszs
    Details for issues about documents in Quirks Mode
    or Limited Quirks Mode that affects page layouting.
    r  is_limited_quirks_moder"  document_node_idr   r'   r,   r-   znetwork.LoaderId	loader_idc                 C  sH   t  }| j|d< | j |d< | j|d< | j |d< | j |d< |S )NisLimitedQuirksModedocumentNodeIdr'   r/   loaderId)r   rb  rc  r   r'   r-   rd  r   r   r   r   r     s   

zQuirksModeIssueDetails.to_jsonc              	   C  sF   | t |d tj|d t|d tj|d tj|d dS )Nre  rf  r'   r/   rg  )rb  rc  r'   r-   rd  )	r  r   r  r   r   r	   r1   r   LoaderIdr   r   r   r   r     s   

z QuirksModeIssueDetails.from_jsonNr   r   r   r   r   ra    s   
 	ra  c                   @  s6   e Zd ZU ded< dZded< dd Zedd	 ZdS )
NavigatorUserAgentIssueDetailsr   r'   Nr  r2  c                 C  s,   t  }| j|d< | jd ur| j |d< |S )Nr'   r2  )r   r'   r2  r   r   r   r   r   r     s
   

z&NavigatorUserAgentIssueDetails.to_jsonc                 C  s.   | t |d d|v rt|d dS d dS )Nr'   r2  )r'   r2  )r   r   r   r   r   r   r   r     s   
z(NavigatorUserAgentIssueDetails.from_json)r   r   r   r    r2  r   r!   r   r   r   r   r   ri    s   
 ri  c                   @  sP   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d Zedd ZdS )GenericIssueErrorType!CrossOriginPortalPostMessageErrorFormLabelForNameErrorFormDuplicateIdForInputErrorFormInputWithNoLabelError#FormAutocompleteAttributeEmptyError)FormEmptyIdAndNameAttributesForInputError!FormAriaLabelledByToNonExistingId:FormInputAssignedAutocompleteValueToIdOrNameAttributeError$FormLabelHasNeitherForNorNestedInput%FormLabelForMatchesNonExistingIdError6FormInputHasWrongButWellIntendedAutocompleteValueErrorResponseWasBlockedByORBc                 C  r<   r=   r>   r@   r   r   r   r     rA   zGenericIssueErrorType.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   zGenericIssueErrorType.from_jsonN)r   r   r   &CROSS_ORIGIN_PORTAL_POST_MESSAGE_ERRORFORM_LABEL_FOR_NAME_ERROR!FORM_DUPLICATE_ID_FOR_INPUT_ERRORFORM_INPUT_WITH_NO_LABEL_ERROR'FORM_AUTOCOMPLETE_ATTRIBUTE_EMPTY_ERROR1FORM_EMPTY_ID_AND_NAME_ATTRIBUTES_FOR_INPUT_ERROR(FORM_ARIA_LABELLED_BY_TO_NON_EXISTING_IDDFORM_INPUT_ASSIGNED_AUTOCOMPLETE_VALUE_TO_ID_OR_NAME_ATTRIBUTE_ERROR+FORM_LABEL_HAS_NEITHER_FOR_NOR_NESTED_INPUT,FORM_LABEL_FOR_MATCHES_NON_EXISTING_ID_ERROR?FORM_INPUT_HAS_WRONG_BUT_WELL_INTENDED_AUTOCOMPLETE_VALUE_ERRORRESPONSE_WAS_BLOCKED_BY_ORBr   r!   r   r   r   r   r   rj    s     rj  c                   @  s^   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d Z	e
dd ZdS )GenericIssueDetailszL
    Depending on the concrete errorType, different properties are set.
    rj  
error_typeNztyping.Optional[page.FrameId]r-   r  r  r&   violating_node_attributers   rt   c                 C  st   t  }| j |d< | jd ur| j |d< | jd ur"| j |d< | jd ur,| j|d< | jd ur8| j |d< |S )N	errorTyper/   r  violatingNodeAttributert   )r   r  r   r-   r  r  rt   r   r   r   r   r     s   




zGenericIssueDetails.to_jsonc              	   C  sz   | t |d d|v rtj|d nd d|v r tj|d nd d|v r+t|d nd d|v r9t|d dS d dS )Nr  r/   r  r  rt   )r  r-   r  r  rt   )rj  r   r	   r1   r   r  r   r#   r   r   r   r   r     s   zGenericIssueDetails.from_json)r   r   r   r   r    r-   r  r  rt   r   r!   r   r   r   r   r   r    s   
 r  c                   @  B   e Zd ZU dZded< ded< dZded< d	d
 Zedd ZdS )DeprecationIssueDetailsz
    This issue tracks information needed to print a deprecation message.
    https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
    r   r  r   r  Nr   affected_framec                 C  s:   t  }| j |d< | j|d< | jd ur| j |d< |S )Nr  r   affectedFrame)r   r  r   r  r  r   r   r   r   r   4  s   

zDeprecationIssueDetails.to_jsonc                 C  s:   | t |d t|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   <  s   
z!DeprecationIssueDetails.from_json)	r   r   r   r   r    r  r   r!   r   r   r   r   r   r  '  s   
 r  c                   @  r*   )	BounceTrackingIssueDetailsa~  
    This issue warns about sites in the redirect chain of a finished navigation
    that may be flagged as trackers and have their state cleared if they don't
    receive a user interaction. Note that in this context 'site' means eTLD+1.
    For example, if the URL ``https://example.test:80/bounce`` was in the
    redirect chain, the site reported would be ``example.test``.
    ztyping.List[str]tracking_sitesc                 C  s   t  }dd | jD |d< |S )Nc                 S  s   g | ]}|qS r   r   rw   r   r   r   rz   R  s    z6BounceTrackingIssueDetails.to_json.<locals>.<listcomp>trackingSites)r   r  r   r   r   r   r   P  s   z"BounceTrackingIssueDetails.to_jsonc                 C  s   | dd |d D dS )Nc                 S  s   g | ]}t |qS r   r   rw   r   r   r   rz   X  r{   z8BounceTrackingIssueDetails.from_json.<locals>.<listcomp>r  )r  r   r   r   r   r   r   U  s   z$BounceTrackingIssueDetails.from_jsonNr   r   r   r   r   r  E  s   
 r  c                   @  rd   )ClientHintIssueReasonMetaTagAllowListInvalidOriginMetaTagModifiedHTMLc                 C  r<   r=   r>   r@   r   r   r   r   `  rA   zClientHintIssueReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r   c  rC   zClientHintIssueReason.from_jsonN)r   r   r   "META_TAG_ALLOW_LIST_INVALID_ORIGINMETA_TAG_MODIFIED_HTMLr   r!   r   r   r   r   r   r  \  rj   r  c                   @  *   e Zd ZU ded< dd Zedd ZdS ) FederatedAuthRequestIssueDetailsFederatedAuthRequestIssueReason#federated_auth_request_issue_reasonc                 C  r.   )NfederatedAuthRequestIssueReason)r   r  r   r   r   r   r   r   l  r0   z(FederatedAuthRequestIssueDetails.to_jsonc                 C     | t |d dS )Nr  )r  )r  r   r   r   r   r   r   q     z*FederatedAuthRequestIssueDetails.from_jsonNr   r   r   r   r   r  h  
   
 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%d& Z'e(d'd( Z)d)S )*r  z
    Represents the failure reason when a federated authentication reason fails.
    Should be updated alongside RequestIdTokenStatus in
    third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
    all cases except for success.
    ShouldEmbargoTooManyRequestsWellKnownHttpNotFoundWellKnownNoResponseWellKnownInvalidResponseWellKnownListEmptyWellKnownInvalidContentTypeConfigNotInWellKnownWellKnownTooBigConfigHttpNotFoundConfigNoResponseConfigInvalidResponseConfigInvalidContentTypeClientMetadataHttpNotFoundClientMetadataNoResponseClientMetadataInvalidResponse ClientMetadataInvalidContentTypeDisabledInSettingsErrorFetchingSigninInvalidSigninResponseAccountsHttpNotFoundAccountsNoResponseAccountsInvalidResponseAccountsListEmptyAccountsInvalidContentTypeIdTokenHttpNotFoundIdTokenNoResponseIdTokenInvalidResponseIdTokenInvalidRequestIdTokenInvalidContentTypeErrorIdTokenCanceledRpPageNotVisibleSilentMediationFailureThirdPartyCookiesBlockedc                 C  r<   r=   r>   r@   r   r   r   r     rA   z'FederatedAuthRequestIssueReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z)FederatedAuthRequestIssueReason.from_jsonN)*r   r   r   r   SHOULD_EMBARGOTOO_MANY_REQUESTSWELL_KNOWN_HTTP_NOT_FOUNDWELL_KNOWN_NO_RESPONSEWELL_KNOWN_INVALID_RESPONSEWELL_KNOWN_LIST_EMPTYWELL_KNOWN_INVALID_CONTENT_TYPECONFIG_NOT_IN_WELL_KNOWNWELL_KNOWN_TOO_BIGCONFIG_HTTP_NOT_FOUNDCONFIG_NO_RESPONSECONFIG_INVALID_RESPONSECONFIG_INVALID_CONTENT_TYPECLIENT_METADATA_HTTP_NOT_FOUNDCLIENT_METADATA_NO_RESPONSE CLIENT_METADATA_INVALID_RESPONSE$CLIENT_METADATA_INVALID_CONTENT_TYPEDISABLED_IN_SETTINGSERROR_FETCHING_SIGNININVALID_SIGNIN_RESPONSEACCOUNTS_HTTP_NOT_FOUNDACCOUNTS_NO_RESPONSEACCOUNTS_INVALID_RESPONSEACCOUNTS_LIST_EMPTYACCOUNTS_INVALID_CONTENT_TYPEID_TOKEN_HTTP_NOT_FOUNDID_TOKEN_NO_RESPONSEID_TOKEN_INVALID_RESPONSEID_TOKEN_INVALID_REQUESTID_TOKEN_INVALID_CONTENT_TYPEERROR_ID_TOKENCANCELEDRP_PAGE_NOT_VISIBLESILENT_MEDIATION_FAILURETHIRD_PARTY_COOKIES_BLOCKEDr   r!   r   r   r   r   r   r  x  sP    r  c                   @  r  )(FederatedAuthUserInfoRequestIssueDetails'FederatedAuthUserInfoRequestIssueReason-federated_auth_user_info_request_issue_reasonc                 C  r.   )N'federatedAuthUserInfoRequestIssueReason)r   r  r   r   r   r   r   r     r0   z0FederatedAuthUserInfoRequestIssueDetails.to_jsonc                 C  r  )Nr  )r  )r  r   r   r   r   r   r     r  z2FederatedAuthUserInfoRequestIssueDetails.from_jsonNr   r   r   r   r   r    r  r  c                   @  sH   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d Zedd ZdS )r  z
    Represents the failure reason when a getUserInfo() call fails.
    Should be updated alongside FederatedAuthUserInfoRequestResult in
    third_party/blink/public/mojom/devtools/inspector_issue.mojom.
    NotSameOrigin	NotIframeNotPotentiallyTrustworthyNoApiPermissionNotSignedInWithIdpNoAccountSharingPermissionInvalidConfigOrWellKnownInvalidAccountsResponse"NoReturningUserFromFetchedAccountsc                 C  r<   r=   r>   r@   r   r   r   r     rA   z/FederatedAuthUserInfoRequestIssueReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z1FederatedAuthUserInfoRequestIssueReason.from_jsonN)r   r   r   r   NOT_SAME_ORIGIN
NOT_IFRAMENOT_POTENTIALLY_TRUSTWORTHYNO_API_PERMISSIONNOT_SIGNED_IN_WITH_IDPNO_ACCOUNT_SHARING_PERMISSIONINVALID_CONFIG_OR_WELL_KNOWNINVALID_ACCOUNTS_RESPONSE'NO_RETURNING_USER_FROM_FETCHED_ACCOUNTSr   r!   r   r   r   r   r   r    s    r  c                   @  s6   e Zd ZU dZded< ded< dd Zedd	 Zd
S )ClientHintIssueDetailsz
    This issue tracks client hints related issues. It's used to deprecate old
    features, encourage the use of new ones, and provide general guidance.
    r   r  r  client_hint_issue_reasonc                 C  s&   t  }| j |d< | j |d< |S )Nr  clientHintIssueReason)r   r  r   r  r   r   r   r   r     s   zClientHintIssueDetails.to_jsonc                 C  s    | t |d t|d dS )Nr  r  )r  r  )r   r   r  r   r   r   r   r     s   z ClientHintIssueDetails.from_jsonNr   r   r   r   r   r    s   
 r  c                   @  s>   e Zd ZU ded< ded< dZded< dd Zed	d
 ZdS )FailedRequestInfor   r'   failure_messageNz"typing.Optional[network.RequestId]r%   c                 C  s6   t  }| j|d< | j|d< | jd ur| j |d< |S )Nr'   failureMessager(   )r   r'   r  r%   r   r   r   r   r   r     s   


zFailedRequestInfo.to_jsonc                 C  s:   | t |d t |d d|v rtj|d dS d dS )Nr'   r  r(   )r'   r  r%   )r   r   r)   r   r   r   r   r   r     s   

zFailedRequestInfo.from_json)r   r   r   r    r%   r   r!   r   r   r   r   r   r    s   
 r  c                   @  rd   )StyleSheetLoadingIssueReasonLateImportRuleRequestFailedc                 C  r<   r=   r>   r@   r   r   r   r   
  rA   z$StyleSheetLoadingIssueReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r     rC   z&StyleSheetLoadingIssueReason.from_jsonN)r   r   r   LATE_IMPORT_RULEREQUEST_FAILEDr   r!   r   r   r   r   r   r    rj   r  c                   @  r  )StylesheetLoadingIssueDetailszK
    This issue warns when a referenced stylesheet couldn't be loaded.
    r   r  r   style_sheet_loading_issue_reasonNz"typing.Optional[FailedRequestInfo]failed_request_infoc                 C  >   t  }| j |d< | j |d< | jd ur| j |d< |S )Nr  styleSheetLoadingIssueReasonfailedRequestInfo)r   r  r   r  r  r   r   r   r   r         
z%StylesheetLoadingIssueDetails.to_jsonc                 C  <   | t |d t|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   (     z'StylesheetLoadingIssueDetails.from_json)	r   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 )
PropertyRuleIssueReasonInvalidSyntaxInvalidInitialValueInvalidInheritsInvalidNamec                 C  r<   r=   r>   r@   r   r   r   r   7  rA   zPropertyRuleIssueReason.to_jsonc                 C  rB   r=   r   r   r   r   r   r   :  rC   z!PropertyRuleIssueReason.from_jsonN)
r   r   r   INVALID_SYNTAXINVALID_INITIAL_VALUEINVALID_INHERITSINVALID_NAMEr   r!   r   r   r   r   r   r  1  s    r  c                   @  r  )PropertyRuleIssueDetailszp
    This issue warns about errors in property rules that lead to property
    registrations being ignored.
    r   r  r  property_rule_issue_reasonNr&   property_valuec                 C  s:   t  }| j |d< | j |d< | jd ur| j|d< |S )Nr  propertyRuleIssueReasonpropertyValue)r   r  r   r  r  r   r   r   r   r   N  s   

z PropertyRuleIssueDetails.to_jsonc                 C  s:   | t |d t|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   V  s   z"PropertyRuleIssueDetails.from_json)	r   r   r   r   r    r  r   r!   r   r   r   r   r   r  ?  s   
 r  c                   @  sp   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d Zedd ZdS )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.
    CookieIssueMixedContentIssueBlockedByResponseIssueHeavyAdIssueContentSecurityPolicyIssueSharedArrayBufferIssueLowTextContrastIssue	CorsIssueAttributionReportingIssueQuirksModeIssueNavigatorUserAgentIssueGenericIssueDeprecationIssueClientHintIssueFederatedAuthRequestIssueBounceTrackingIssueStylesheetLoadingIssue!FederatedAuthUserInfoRequestIssuePropertyRuleIssuec                 C  r<   r=   r>   r@   r   r   r   r   y  rA   zInspectorIssueCode.to_jsonc                 C  rB   r=   r   r   r   r   r   r   |  rC   zInspectorIssueCode.from_jsonN)r   r   r   r   COOKIE_ISSUEMIXED_CONTENT_ISSUEBLOCKED_BY_RESPONSE_ISSUEHEAVY_AD_ISSUECONTENT_SECURITY_POLICY_ISSUESHARED_ARRAY_BUFFER_ISSUELOW_TEXT_CONTRAST_ISSUE
CORS_ISSUEATTRIBUTION_REPORTING_ISSUEQUIRKS_MODE_ISSUENAVIGATOR_USER_AGENT_ISSUEGENERIC_ISSUEDEPRECATION_ISSUECLIENT_HINT_ISSUEFEDERATED_AUTH_REQUEST_ISSUEBOUNCE_TRACKING_ISSUESTYLESHEET_LOADING_ISSUE&FEDERATED_AUTH_USER_INFO_REQUEST_ISSUEPROPERTY_RULE_ISSUEr   r!   r   r   r   r   r   r  _  s0    r  c                   @  s
  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< 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< 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 )-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[CookieIssueDetails]cookie_issue_detailsz)typing.Optional[MixedContentIssueDetails]mixed_content_issue_detailsz.typing.Optional[BlockedByResponseIssueDetails]!blocked_by_response_issue_detailsz$typing.Optional[HeavyAdIssueDetails]heavy_ad_issue_detailsz2typing.Optional[ContentSecurityPolicyIssueDetails]%content_security_policy_issue_detailsz.typing.Optional[SharedArrayBufferIssueDetails]!shared_array_buffer_issue_detailsz,typing.Optional[LowTextContrastIssueDetails]low_text_contrast_issue_detailsz!typing.Optional[CorsIssueDetails]cors_issue_detailsz1typing.Optional[AttributionReportingIssueDetails]#attribution_reporting_issue_detailsz'typing.Optional[QuirksModeIssueDetails]quirks_mode_issue_detailsz/typing.Optional[NavigatorUserAgentIssueDetails]"navigator_user_agent_issue_detailsz$typing.Optional[GenericIssueDetails]generic_issue_detailsz(typing.Optional[DeprecationIssueDetails]deprecation_issue_detailsz'typing.Optional[ClientHintIssueDetails]client_hint_issue_detailsz1typing.Optional[FederatedAuthRequestIssueDetails]$federated_auth_request_issue_detailsz+typing.Optional[BounceTrackingIssueDetails]bounce_tracking_issue_detailsz.typing.Optional[StylesheetLoadingIssueDetails] stylesheet_loading_issue_detailsz)typing.Optional[PropertyRuleIssueDetails]property_rule_issue_detailsz9typing.Optional[FederatedAuthUserInfoRequestIssueDetails].federated_auth_user_info_request_issue_detailsc                 C  s  t  }| jd ur| j |d< | jd ur| j |d< | jd ur'| j |d< | jd ur3| j |d< | jd ur?| j |d< | jd urK| j |d< | jd urW| j |d< | j	d urc| j	 |d< | j
d uro| j
 |d	< | 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r| j |d< | 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r| j |d< |S )NcookieIssueDetailsmixedContentIssueDetailsblockedByResponseIssueDetailsheavyAdIssueDetails!contentSecurityPolicyIssueDetailssharedArrayBufferIssueDetailslowTextContrastIssueDetailscorsIssueDetails attributionReportingIssueDetailsquirksModeIssueDetailsnavigatorUserAgentIssueDetailsgenericIssueDetailsdeprecationIssueDetailsclientHintIssueDetails federatedAuthRequestIssueDetailsbounceTrackingIssueDetailsstylesheetLoadingIssueDetailspropertyRuleIssueDetails(federatedAuthUserInfoRequestIssueDetails)r   rB  r   rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  r   r   r   r   r     sP   


















zInspectorIssueDetails.to_jsonc                 C  s$  | d'i dd|v rt |d nd dd|v rt|d nd dd|v r+t|d nd dd|v r9t|d nd d	d
|v rGt|d
 nd dd|v rUt|d nd dd|v rct|d nd dd|v rqt|d nd dd|v rt	|d nd dd|v rt
|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd |v rt|d  nd d!d"|v rt|d" nd d#d$|v rt|d$ nd d%d&|v rt|d& S d S )(NrB  rU  rC  rV  rD  rW  rE  rX  rF  rY  rG  rZ  rH  r[  rI  r\  rJ  r]  rK  r^  rL  r_  rM  r`  rN  ra  rO  rb  rP  rc  rQ  rd  rR  re  rS  rf  rT  rg  r   )rk   r   r   r   r   r  r  r!  r0  r\  ra  ri  r  r  r  r  r  r  r  r  r   r   r   r   r     sv   	
zInspectorIssueDetails.from_json)r   r   r   r   rB  r    rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  r   r!   r   r   r   r   r   rA    s0   
 *rA  c                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )IssueIdz
    A unique id for a DevTools inspector issue. Allows other entities (e.g.
    exceptions, CDP message, console messages, etc.) to reference an issue.
    returnr   c                 C  s   | S r=   r   r@   r   r   r   r     s   zIssueId.to_jsonr   c                 C  rB   r=   r   r   r   r   r   r     rC   zIssueId.from_jsonc                   s   d t  S )NzIssueId({}))formatsuper__repr__r@   	__class__r   r   rl    s   zIssueId.__repr__)ri  r   )r   r   ri  rh  )	r   r   r   r   r   r!   r   rl  __classcell__r   r   rm  r   rh    s    
rh  c                   @  r  )InspectorIssuez8
    An inspector issue reported from the back-end.
    r  coderA  detailsNztyping.Optional[IssueId]issue_idc                 C  r  )Nrq  rr  issueId)r   rq  r   rr  rs  r   r   r   r   r     r	  zInspectorIssue.to_jsonc                 C  r
  )Nrq  rr  rt  )rq  rr  rs  )r  r   rA  rh  r   r   r   r   r     r  zInspectorIssue.from_json)	r   r   r   r   r    rs  r   r!   r   r   r   r   r   rp    s   
 rp  r%   r$   encodingr   qualitytyping.Optional[float]	size_onlytyping.Optional[bool]ri  Xtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]]c                 c  sz    t  }|  |d< ||d< |dur||d< |dur||d< d|d}|V }d|v r0t|d ndt|d	 t|d
 fS )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(   ru  Nrv  sizeOnlyzAudits.getEncodedResponsemethodparamsbodyoriginalSizeencodedSize)r   r   r   r   )r%   ru  rv  rx  r~  cmd_dictr   r   r   r   get_encoded_response  s    

r  0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z\
    Disables issues domain, prevents further issues from being reported to the client.
    r}  zAudits.disableNr   r  r   r   r   r   disableF  s   
r  c                  c  r  )zz
    Enables issues domain, sends the issues collected so far to the client by means of the
    ``issueAdded`` event.
    r}  zAudits.enableNr   r  r   r   r   enableP  s   
r  
report_aaac                 c  s,    t  }| dur| |d< d|d}|V }dS )z
    Runs the contrast check for the target page. Found issues are reported
    using Audits.issueAdded event.

    :param report_aaa: *(Optional)* Whether to report WCAG AAA level issues. Default is false.
    N	reportAAAzAudits.checkContrastr|  )r   )r  r~  r  r   r   r   r   check_contrast[  s   	
r  Ltyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[GenericIssueDetails]]c                  c  s"    ddi} | V }dd |d D S )z
    Runs the form issues check for the target page. Found issues are reported
    using Audits.issueAdded event.

    :returns: 
    r}  zAudits.checkFormsIssuesc                 S  r   r   )r  r   rw   r   r   r   rz   y  r   z&check_forms_issues.<locals>.<listcomp>
formIssuesr   r  r   r   r   check_forms_issuesn  s
   r  zAudits.issueAddedc                   @  s$   e Zd ZU ded< ed	ddZdS )

IssueAddedrp  issuer   r   ri  c                 C  r  )Nr  )r  )rp  r   r   r   r   r   r     r  zIssueAdded.from_jsonN)r   r   ri  r  )r   r   r   r    r!   r   r   r   r   r   r  |  s   
 r  )NN)
r%   r$   ru  r   rv  rw  rx  ry  ri  rz  )ri  r  r=   )r  ry  ri  r  )ri  r  )C
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r
   r   r#   r+   Enumr2   rM   re   rk   r   r   r   r   r   r   r   r   r   r   r  r  r  r!  r0  r=  r\  ra  ri  rj  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rA  r   rh  rp  r  r  r  r  r  r  r   r   r   r   <module>   s   ;%0"-'/"%'3"o 
'


