a
    xd                     @  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"G d2d3 d3ejZ#eG d4d5 d5Z$eG d6d7 d7Z%eG d8d9 d9Z&G d:d; d;ejZ'eG d<d= d=Z(eG d>d? d?Z)eG d@dA dAZ*G dBdC dCej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Z2G dRdS dSejZ3eG dTdU dUZ4G dVdW dWe5Z6eG dXdY dYZ7dndZd[d\d]d^d_d`daZ8dbdcdddeZ9dbdcdfdgZ:dod]dbdhdidjZ;edkeG dldm dmZ<dS )p    )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   f/var/www/html/Ranjet/env/lib/python3.9/site-packages/selenium/webdriver/common/devtools/v111/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      s   
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  s,   | t j|d d|v r$t|d nd dS )Nr&   r%   )r#   r%   )r   Z	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                   @  s.   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  s   t  }| j |d< |S )NframeId)r   r)   r   r   r   r   r   r   N   s    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                   @  s@   e 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 )CookieExclusionReasonZ&ExcludeSameSiteUnspecifiedTreatedAsLaxZExcludeSameSiteNoneInsecureZExcludeSameSiteLaxZExcludeSameSiteStrictZExcludeInvalidSamePartyZ!ExcludeSamePartyCrossPartyContextZExcludeDomainNonASCIIZ-ExcludeThirdPartyCookieBlockedInFirstPartySetc                 C  s   | j S Nvaluer   r   r   r   r   d   s    zCookieExclusionReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   g   s    zCookieExclusionReason.from_jsonN)r   r   r   Z,EXCLUDE_SAME_SITE_UNSPECIFIED_TREATED_AS_LAXZEXCLUDE_SAME_SITE_NONE_INSECUREZEXCLUDE_SAME_SITE_LAXZEXCLUDE_SAME_SITE_STRICTZEXCLUDE_INVALID_SAME_PARTYZ&EXCLUDE_SAME_PARTY_CROSS_PARTY_CONTEXTZEXCLUDE_DOMAIN_NON_ASCIIZ5EXCLUDE_THIRD_PARTY_COOKIE_BLOCKED_IN_FIRST_PARTY_SETr   r    r   r   r   r   r   r,   Z   s   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 )CookieWarningReasonZ'WarnSameSiteUnspecifiedCrossSiteContextZWarnSameSiteNoneInsecureZ%WarnSameSiteUnspecifiedLaxAllowUnsafeZ$WarnSameSiteStrictLaxDowngradeStrictZ&WarnSameSiteStrictCrossDowngradeStrictZ#WarnSameSiteStrictCrossDowngradeLaxZ#WarnSameSiteLaxCrossDowngradeStrictZ WarnSameSiteLaxCrossDowngradeLaxZ WarnAttributeValueExceedsMaxSizeZWarnDomainNonASCIIc                 C  s   | j S r-   r.   r0   r   r   r   r   x   s    zCookieWarningReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   {   s    zCookieWarningReason.from_jsonN)r   r   r   Z-WARN_SAME_SITE_UNSPECIFIED_CROSS_SITE_CONTEXTZWARN_SAME_SITE_NONE_INSECUREZ+WARN_SAME_SITE_UNSPECIFIED_LAX_ALLOW_UNSAFEZ*WARN_SAME_SITE_STRICT_LAX_DOWNGRADE_STRICTZ,WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_STRICTZ)WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_LAXZ)WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_STRICTZ&WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_LAXZ%WARN_ATTRIBUTE_VALUE_EXCEEDS_MAX_SIZEZWARN_DOMAIN_NON_ASCIIr   r    r   r   r   r   r   r1   l   s   r1   c                   @  s(   e Zd ZdZdZdd Zedd ZdS )CookieOperationZ	SetCookieZ
ReadCookiec                 C  s   | j S r-   r.   r0   r   r   r   r      s    zCookieOperation.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r      s    zCookieOperation.from_jsonN)r   r   r   Z
SET_COOKIEZREAD_COOKIEr   r    r   r   r   r   r   r2      s
   r2   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_reasonsr2   	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rT| j |d< | jd urh| j|d< | jd ur|| j|d	< | jd ur| j|d
< | j	d ur| j	 |d< |S )Nc                 S  s   g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z.CookieIssueDetails.to_json.<locals>.<listcomp>cookieWarningReasonsc                 S  s   g | ]}|  qS r   r=   r>   r   r   r   rA      rB   cookieExclusionReasonsr6   r7   rawCookieLinesiteForCookies	cookieUrlr<   )
r   r4   r5   r6   r   r7   r8   r9   r:   r<   r   r   r   r   r      s    







zCookieIssueDetails.to_jsonc                 C  s   | dd |d D dd |d D t |d d|v rDt|d nd d|v rZt|d nd d	|v rpt|d	 nd d
|v rt|d
 nd d|v rt|d nd dS )Nc                 S  s   g | ]}t |qS r   )r1   r   r>   r   r   r   rA      rB   z0CookieIssueDetails.from_json.<locals>.<listcomp>rC   c                 S  s   g | ]}t |qS r   )r,   r   r>   r   r   r   rA      rB   rD   r6   r7   rE   rF   rG   r<   )r4   r5   r6   r7   r8   r9   r:   r<   )r2   r   r   r   r!   r   r   r   r   r      s    zCookieIssueDetails.from_json)r   r   r   r   r   r7   r8   r9   r:   r<   r   r    r   r   r   r   r   r3      s   
r3   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	MixedContentResolutionStatusZMixedContentBlockedZ!MixedContentAutomaticallyUpgradedZMixedContentWarningc                 C  s   | j S r-   r.   r0   r   r   r   r      s    z$MixedContentResolutionStatus.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r      s    z&MixedContentResolutionStatus.from_jsonN)	r   r   r   ZMIXED_CONTENT_BLOCKEDZ$MIXED_CONTENT_AUTOMATICALLY_UPGRADEDZMIXED_CONTENT_WARNINGr   r    r   r   r   r   r   rH      s   rH   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 )!MixedContentResourceTypeZAttributionSrcZAudioZBeaconZ	CSPReportDownloadZEventSourceZFaviconZFontZFormZFrameZImageImportZManifestZPingZ
PluginDataZPluginResourceZPrefetchResourceZScriptZServiceWorkerZSharedWorkerZ
StylesheetZTrackZVideoZWorkerZXMLHttpRequestXSLTc                 C  s   | j S r-   r.   r0   r   r   r   r      s    z MixedContentResourceType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r      s    z"MixedContentResourceType.from_jsonN)!r   r   r   ZATTRIBUTION_SRCZAUDIOZBEACONZ
CSP_REPORTZDOWNLOADZEVENT_SOURCEZFAVICONZFONTZFORMFRAMEZIMAGEZIMPORTZMANIFESTZPINGZPLUGIN_DATAZPLUGIN_RESOURCEZPREFETCHZRESOURCEZSCRIPTZSERVICE_WORKERZSHARED_WORKERZ
STYLESHEETZTRACKZVIDEOZWORKERZXML_HTTP_REQUESTrM   r   r    r   r   r   r   r   rI      s<   rI   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 )MixedContentIssueDetailsrH   resolution_statusr   insecure_urlmain_resource_urlNz)typing.Optional[MixedContentResourceType]resource_typer;   r<   typing.Optional[AffectedFrame]framec                 C  st   t  }| j |d< | j|d< | j|d< | jd ur@| j |d< | jd urX| j |d< | jd urp| j |d< |S )NresolutionStatusinsecureURLmainResourceURLresourceTyper<   rU   )r   rP   r   rQ   rR   rS   r<   rU   r   r   r   r   r     s    




z MixedContentIssueDetails.to_jsonc              
   C  sp   | t |d t|d t|d d|v r8t|d nd d|v rPt|d nd d|v rht|d nd dS )NrV   rW   rX   rY   r<   rU   )rP   rQ   rR   rS   r<   rU   )rH   r   r   rI   r!   r'   r   r   r   r   r     s    

z"MixedContentIssueDetails.from_json)
r   r   r   r   rS   r<   rU   r   r    r   r   r   r   r   rO      s   
rO   c                   @  s8   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.
    Z CoepFrameResourceNeedsCoepHeaderZ+CoopSandboxedIFrameCannotNavigateToCoopPageZCorpNotSameOriginZ1CorpNotSameOriginAfterDefaultedToSameOriginByCoepZCorpNotSameSitec                 C  s   | j S r-   r.   r0   r   r   r   r   6  s    zBlockedByResponseReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   9  s    z!BlockedByResponseReason.from_jsonN)r   r   r   r   Z%COEP_FRAME_RESOURCE_NEEDS_COEP_HEADERZ3COOP_SANDBOXED_I_FRAME_CANNOT_NAVIGATE_TO_COOP_PAGEZCORP_NOT_SAME_ORIGINZ;CORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEPZCORP_NOT_SAME_SITEr   r    r   r   r   r   r   rZ   +  s   rZ   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!   r<   rZ   reasonNrT   parent_frameblocked_framec                 C  sV   t  }| j |d< | j |d< | jd ur:| j |d< | jd urR| j |d< |S )Nr<   r\   parentFrameblockedFrame)r   r<   r   r\   r]   r^   r   r   r   r   r   M  s    

z%BlockedByResponseIssueDetails.to_jsonc                 C  sP   | t |d t|d d|v r0t|d nd d|v rHt|d nd dS )Nr<   r\   r_   r`   )r<   r\   r]   r^   )r!   r   rZ   r'   r   r   r   r   r   W  s    z'BlockedByResponseIssueDetails.from_json)
r   r   r   r   r   r]   r^   r   r    r   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 )HeavyAdResolutionStatusZHeavyAdBlockedZHeavyAdWarningc                 C  s   | j S r-   r.   r0   r   r   r   r   e  s    zHeavyAdResolutionStatus.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   h  s    z!HeavyAdResolutionStatus.from_jsonN)r   r   r   ZHEAVY_AD_BLOCKEDZHEAVY_AD_WARNINGr   r    r   r   r   r   r   ra   a  s
   ra   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	HeavyAdReasonZNetworkTotalLimitZCpuTotalLimitZCpuPeakLimitc                 C  s   | j S r-   r.   r0   r   r   r   r   r  s    zHeavyAdReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   u  s    zHeavyAdReason.from_jsonN)	r   r   r   ZNETWORK_TOTAL_LIMITZCPU_TOTAL_LIMITZCPU_PEAK_LIMITr   r    r   r   r   r   r   rb   m  s   rb   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 )HeavyAdIssueDetailsra   
resolutionrb   r\   r'   rU   c                 C  s4   t  }| j |d< | j |d< | j |d< |S )Nrd   r\   rU   )r   rd   r   r\   rU   r   r   r   r   r     s
    zHeavyAdIssueDetails.to_jsonc                 C  s,   | t |d t|d t|d dS )Nrd   r\   rU   )rd   r\   rU   )ra   r   rb   r'   r   r   r   r   r     s
    zHeavyAdIssueDetails.from_jsonNr   r   r   r   r   r    r   r   r   r   r   rc   z  s   
rc   c                   @  s8   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 )"ContentSecurityPolicyViolationTypeZkInlineViolationZkEvalViolationZkURLViolationZkTrustedTypesSinkViolationZkTrustedTypesPolicyViolationZkWasmEvalViolationc                 C  s   | j S r-   r.   r0   r   r   r   r     s    z*ContentSecurityPolicyViolationType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    z,ContentSecurityPolicyViolationType.from_jsonN)r   r   r   ZK_INLINE_VIOLATIONZK_EVAL_VIOLATIONZK_URL_VIOLATIONZK_TRUSTED_TYPES_SINK_VIOLATIONZ K_TRUSTED_TYPES_POLICY_VIOLATIONZK_WASM_EVAL_VIOLATIONr   r    r   r   r   r   r   rf     s   rf   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%   ri   rj   rk   r   r   r   r   r   r     s    



zSourceCodeLocation.to_jsonc                 C  s@   | t |d t|d t|d d|v r8tj|d nd dS )Nr%   rl   rm   rn   )r%   ri   rj   rk   )r   rh   r
   ZScriptIdr   r   r   r   r   r     s    


zSourceCodeLocation.from_json)r   r   r   r   rk   r   r    r   r   r   r   r   rg     s   
	rg   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_onlyrf   &content_security_policy_violation_typeNr$   blocked_urlrT   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rT| j |d< | jd url| j |d< | jd ur| j |d< |S )NviolatedDirectiveisReportOnly"contentSecurityPolicyViolationType
blockedURLframeAncestorsourceCodeLocationviolatingNodeId)	r   rp   rr   rs   r   rt   ru   rw   ry   r   r   r   r   r     s    






z)ContentSecurityPolicyIssueDetails.to_jsonc                 C  s   | t |d t|d t|d d|v r6t |d nd d|v rNt|d nd d|v rft|d nd d|v rtj|d nd dS )	Nrz   r{   r|   r}   r~   r   r   )rp   rr   rs   rt   ru   rw   ry   )r   rq   rf   r   r'   rg   r   BackendNodeIdr   r   r   r   r     s    

z+ContentSecurityPolicyIssueDetails.from_json)r   r   r   r   rt   ru   rw   ry   r   r    r   r   r   r   r   ro     s   
ro   c                   @  s(   e Zd ZdZdZdd Zedd ZdS )SharedArrayBufferIssueTypeZTransferIssueZCreationIssuec                 C  s   | j S r-   r.   r0   r   r   r   r     s    z"SharedArrayBufferIssueType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    z$SharedArrayBufferIssueType.from_jsonN)r   r   r   ZTRANSFER_ISSUEZCREATION_ISSUEr   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 )SharedArrayBufferIssueDetailsz
    Details for a issue arising from an SAB being instantiated in, or
    transferred to a context that is not cross-origin isolated.
    rg   rw   rq   
is_warningr   type_c                 C  s0   t  }| j |d< | j|d< | j |d< |S )Nr   	isWarningtype)r   rw   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   )rw   r   r   )rg   r   rq   r   r   r   r   r   r     s
    
z'SharedArrayBufferIssueDetails.from_jsonNr   r   r   r   r   r     s   
r   c                   @  s,   e Zd ZdZdZdZdd Zedd ZdS )	"TwaQualityEnforcementViolationTypeZ
kHttpErrorZkUnavailableOfflineZkDigitalAssetLinksc                 C  s   | j S r-   r.   r0   r   r   r   r     s    z*TwaQualityEnforcementViolationType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r      s    z,TwaQualityEnforcementViolationType.from_jsonN)	r   r   r   ZK_HTTP_ERRORZK_UNAVAILABLE_OFFLINEZK_DIGITAL_ASSET_LINKSr   r    r   r   r   r   r   r     s   r   c                   @  sV   e Zd ZU 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 )TrustedWebActivityIssueDetailsr   r%   r   violation_typeNztyping.Optional[int]http_status_coder$   package_name	signaturec                 C  s^   t  }| j|d< | j |d< | jd ur2| j|d< | jd urF| j|d< | jd urZ| j|d< |S )Nr%   violationTypehttpStatusCodepackageNamer   )r   r%   r   r   r   r   r   r   r   r   r   r   6  s    






z&TrustedWebActivityIssueDetails.to_jsonc                 C  s`   | t |d t|d d|v r,t|d nd d|v rBt |d nd d|v rXt |d nd dS )Nr%   r   r   r   r   )r%   r   r   r   r   )r   r   r   rh   r   r   r   r   r   B  s    
z(TrustedWebActivityIssueDetails.from_json)
r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   %  s   
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.BackendNodeIdry   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   ry   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   )ry   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   h  s    





z%LowTextContrastIssueDetails.from_jsonNre   r   r   r   r   r   M  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_statusrq   r   r!   r<   Nrv   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rD| j |d< | jd urX| j|d< | jd urp| j |d< | jd ur| j |d< |S )NcorsErrorStatusr   r<   r   initiatorOriginresourceIPAddressSpaceclientSecurityState)	r   r   r   r   r<   r   r   r   r   r   r   r   r   r     s    





zCorsIssueDetails.to_jsonc                 C  s   | t j|d t|d t|d d|v r<t|d nd d|v rRt|d nd d|v rlt j|d nd d|v rt j|d nd dS )	Nr   r   r<   r   r   r   r   )r   r   r<   r   r   r   r   )	r   ZCorsErrorStatusr   rq   r!   rg   r   ZIPAddressSpaceZClientSecurityStater   r   r   r   r     s    
zCorsIssueDetails.from_json)r   r   r   r   r   r   r   r   r   r   r    r   r   r   r   r   r   u  s   
r   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 )AttributionReportingIssueTypeZPermissionPolicyDisabledZPermissionPolicyNotDelegatedZUntrustworthyReportingOriginZInsecureContextInvalidHeaderZInvalidRegisterTriggerHeaderZInvalidEligibleHeaderZTooManyConcurrentRequestsZSourceAndTriggerHeadersZSourceIgnoredZTriggerIgnoredc                 C  s   | j S r-   r.   r0   r   r   r   r     s    z%AttributionReportingIssueType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    z'AttributionReportingIssueType.from_jsonN)r   r   r   ZPERMISSION_POLICY_DISABLEDZPERMISSION_POLICY_NOT_DELEGATEDZUNTRUSTWORTHY_REPORTING_ORIGINZINSECURE_CONTEXTZINVALID_HEADERZINVALID_REGISTER_TRIGGER_HEADERZINVALID_ELIGIBLE_HEADERZTOO_MANY_CONCURRENT_REQUESTSZSOURCE_AND_TRIGGER_HEADERSZSOURCE_IGNOREDZTRIGGER_IGNOREDr   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   r   Nr;   r<   rx   ry   r$   invalid_parameterc                 C  s\   t  }| j |d< | jd ur,| j |d< | jd urD| j |d< | jd urX| j|d< |S )Nr   r<   r   invalidParameter)r   r   r   r<   ry   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 rTt|d nd dS )Nr   r<   r   r   )r   r<   ry   r   )r   r   r!   r   r   r   r   r   r   r   r     s    z*AttributionReportingIssueDetails.from_json)r   r   r   r   r   r<   ry   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.
    rq   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   r   r   r   r%   r)   r   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 )Nr   r   r%   r*   r   )r   r   r%   r)   r   )	rq   r   r   r   r   r	   r+   r   ZLoaderIdr   r   r   r   r     s    

z QuirksModeIssueDetails.from_jsonNr   r   r   r   r   r     s   
	r   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%   Nrv   r   c                 C  s,   t  }| j|d< | jd ur(| j |d< |S )Nr%   r   )r   r%   r   r   r   r   r   r   r   	  s
    

z&NavigatorUserAgentIssueDetails.to_jsonc                 C  s*   | t |d d|v r"t|d nd dS )Nr%   r   )r%   r   )r   rg   r   r   r   r   r   r     s    
z(NavigatorUserAgentIssueDetails.from_json)r   r   r   r   r   r   r    r   r   r   r   r   r     s
   
r   c                   @  s8   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 )GenericIssueErrorTypeZ!CrossOriginPortalPostMessageErrorZFormLabelForNameErrorZFormDuplicateIdForInputErrorZFormInputWithNoLabelErrorZ#FormAutocompleteAttributeEmptyErrorZ)FormEmptyIdAndNameAttributesForInputErrorc                 C  s   | j S r-   r.   r0   r   r   r   r      s    zGenericIssueErrorType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r   #  s    zGenericIssueErrorType.from_jsonN)r   r   r   Z&CROSS_ORIGIN_PORTAL_POST_MESSAGE_ERRORZFORM_LABEL_FOR_NAME_ERRORZ!FORM_DUPLICATE_ID_FOR_INPUT_ERRORZFORM_INPUT_WITH_NO_LABEL_ERRORZ'FORM_AUTOCOMPLETE_ATTRIBUTE_EMPTY_ERRORZ1FORM_EMPTY_ID_AND_NAME_ATTRIBUTES_FOR_INPUT_ERRORr   r    r   r   r   r   r   r     s   r   c                   @  sF   e Zd ZU 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.
    r   
error_typeNztyping.Optional[page.FrameId]r)   rx   ry   c                 C  sH   t  }| j |d< | jd ur,| j |d< | jd urD| j |d< |S )N	errorTyper*   r   )r   r   r   r)   ry   r   r   r   r   r   4  s    

zGenericIssueDetails.to_jsonc                 C  sH   | t |d d|v r&tj|d nd d|v r@tj|d nd dS )Nr   r*   r   )r   r)   ry   )r   r   r	   r+   r   r   r   r   r   r   r   =  s
    zGenericIssueDetails.from_json)
r   r   r   r   r   r)   ry   r   r    r   r   r   r   r   r   (  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&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8d9 Z:e;d:d; Z<d<S )=DeprecationIssueTypeZAuthorizationCoveredByWildcardZ"CanRequestURLHTTPContainingNewlineZChromeLoadTimesConnectionInfoZ&ChromeLoadTimesFirstPaintAfterLoadTimeZ,ChromeLoadTimesWasAlternateProtocolAvailableZCookieWithTruncatingCharZ&CrossOriginAccessBasedOnDocumentDomainZCrossOriginWindowAlertZCrossOriginWindowConfirmZ1CSSSelectorInternalMediaControlsOverlayCastButtonZDeprecationExampleZ4DocumentDomainSettingWithoutOriginAgentClusterHeaderZ	EventPathZExpectCTHeaderZGeolocationInsecureOriginZ-GeolocationInsecureOriginDeprecatedNotRemovedZGetUserMediaInsecureOriginZHostCandidateAttributeGetterZIdentityInCanMakePaymentEventZ(InsecurePrivateNetworkSubresourceRequestZLocalCSSFileExtensionRejectedZMediaSourceAbortRemoveZ%MediaSourceDurationTruncatingBufferedZNoSysexWebMIDIWithoutPermissionZNotificationInsecureOriginZ%NotificationPermissionRequestedIframeZ-ObsoleteCreateImageBitmapImageOrientationNoneZObsoleteWebRtcCipherSuiteZOpenWebDatabaseInsecureContextZ OverflowVisibleOnReplacedElementZPaymentInstrumentsZPaymentRequestCSPViolationZPersistentQuotaTypeZPictureSourceSrcZPrefixedCancelAnimationFrameZPrefixedRequestAnimationFrameZPrefixedStorageInfoZ!PrefixedVideoDisplayingFullscreenZPrefixedVideoEnterFullscreenZPrefixedVideoExitFullscreenZPrefixedVideoSupportsFullscreenZPrivacySandboxExtensionsAPIZRangeExpandZ+RequestedSubresourceWithEmbeddedCredentialsZ RTCConstraintEnableDtlsSrtpFalseZRTCConstraintEnableDtlsSrtpTrueZ8RTCPeerConnectionComplexPlanBSdpUsingDefaultSdpSemanticsZ"RTCPeerConnectionSdpSemanticsPlanBZRtcpMuxPolicyNegotiateZ,SharedArrayBufferConstructedWithoutIsolationZ!TextToSpeech_DisallowedByAutoplayZ9V8SharedArrayBufferConstructedInExtensionWithoutIsolationZXHRJSONEncodingDetectionZ7XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnloadZXRSupportsSessionc                 C  s   | j S r-   r.   r0   r   r   r   r     s    zDeprecationIssueType.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    zDeprecationIssueType.from_jsonN)=r   r   r   Z!AUTHORIZATION_COVERED_BY_WILDCARDZ&CAN_REQUEST_URLHTTP_CONTAINING_NEWLINEZ!CHROME_LOAD_TIMES_CONNECTION_INFOZ-CHROME_LOAD_TIMES_FIRST_PAINT_AFTER_LOAD_TIMEZ2CHROME_LOAD_TIMES_WAS_ALTERNATE_PROTOCOL_AVAILABLEZCOOKIE_WITH_TRUNCATING_CHARZ,CROSS_ORIGIN_ACCESS_BASED_ON_DOCUMENT_DOMAINZCROSS_ORIGIN_WINDOW_ALERTZCROSS_ORIGIN_WINDOW_CONFIRMZ8CSS_SELECTOR_INTERNAL_MEDIA_CONTROLS_OVERLAY_CAST_BUTTONZDEPRECATION_EXAMPLEZ;DOCUMENT_DOMAIN_SETTING_WITHOUT_ORIGIN_AGENT_CLUSTER_HEADERZ
EVENT_PATHZEXPECT_CT_HEADERZGEOLOCATION_INSECURE_ORIGINZ2GEOLOCATION_INSECURE_ORIGIN_DEPRECATED_NOT_REMOVEDZGET_USER_MEDIA_INSECURE_ORIGINZHOST_CANDIDATE_ATTRIBUTE_GETTERZ"IDENTITY_IN_CAN_MAKE_PAYMENT_EVENTZ,INSECURE_PRIVATE_NETWORK_SUBRESOURCE_REQUESTZ!LOCAL_CSS_FILE_EXTENSION_REJECTEDZMEDIA_SOURCE_ABORT_REMOVEZ)MEDIA_SOURCE_DURATION_TRUNCATING_BUFFEREDZ$NO_SYSEX_WEB_MIDI_WITHOUT_PERMISSIONZNOTIFICATION_INSECURE_ORIGINZ(NOTIFICATION_PERMISSION_REQUESTED_IFRAMEZ3OBSOLETE_CREATE_IMAGE_BITMAP_IMAGE_ORIENTATION_NONEZOBSOLETE_WEB_RTC_CIPHER_SUITEZ"OPEN_WEB_DATABASE_INSECURE_CONTEXTZ$OVERFLOW_VISIBLE_ON_REPLACED_ELEMENTZPAYMENT_INSTRUMENTSZPAYMENT_REQUEST_CSP_VIOLATIONZPERSISTENT_QUOTA_TYPEZPICTURE_SOURCE_SRCZPREFIXED_CANCEL_ANIMATION_FRAMEZ PREFIXED_REQUEST_ANIMATION_FRAMEZPREFIXED_STORAGE_INFOZ$PREFIXED_VIDEO_DISPLAYING_FULLSCREENZPREFIXED_VIDEO_ENTER_FULLSCREENZPREFIXED_VIDEO_EXIT_FULLSCREENZ"PREFIXED_VIDEO_SUPPORTS_FULLSCREENZPRIVACY_SANDBOX_EXTENSIONS_APIZRANGE_EXPANDZ/REQUESTED_SUBRESOURCE_WITH_EMBEDDED_CREDENTIALSZ%RTC_CONSTRAINT_ENABLE_DTLS_SRTP_FALSEZ$RTC_CONSTRAINT_ENABLE_DTLS_SRTP_TRUEZBRTC_PEER_CONNECTION_COMPLEX_PLAN_B_SDP_USING_DEFAULT_SDP_SEMANTICSZ(RTC_PEER_CONNECTION_SDP_SEMANTICS_PLAN_BZRTCP_MUX_POLICY_NEGOTIATEZ1SHARED_ARRAY_BUFFER_CONSTRUCTED_WITHOUT_ISOLATIONZ%TEXT_TO_SPEECH_DISALLOWED_BY_AUTOPLAYZAV8_SHARED_ARRAY_BUFFER_CONSTRUCTED_IN_EXTENSION_WITHOUT_ISOLATIONZXHRJSON_ENCODING_DETECTIONZ@XML_HTTP_REQUEST_SYNCHRONOUS_IN_NON_WORKER_OUTSIDE_BEFORE_UNLOADZXR_SUPPORTS_SESSIONr   r    r   r   r   r   r   r   F  st   r   c                   @  sB   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
    rg   rw   r   r   NrT   affected_framec                 C  s>   t  }| j |d< | j |d< | jd ur:| j |d< |S )Nr   r   affectedFrame)r   rw   r   r   r   r   r   r   r   r     s    
zDeprecationIssueDetails.to_jsonc                 C  s8   | t |d t|d d|v r0t|d nd dS )Nr   r   r   )rw   r   r   )rg   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                   @  s(   e Zd ZdZdZdd Zedd ZdS )ClientHintIssueReasonZMetaTagAllowListInvalidOriginZMetaTagModifiedHTMLc                 C  s   | j S r-   r.   r0   r   r   r   r     s    zClientHintIssueReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    zClientHintIssueReason.from_jsonN)r   r   r   Z"META_TAG_ALLOW_LIST_INVALID_ORIGINZMETA_TAG_MODIFIED_HTMLr   r    r   r   r   r   r   r     s
   r   c                   @  s*   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  s   t  }| j |d< |S )NfederatedAuthRequestIssueReason)r   r   r   r   r   r   r   r     s    z(FederatedAuthRequestIssueDetails.to_jsonc                 C  s   | t |d dS )Nr   )r   )r   r   r   r   r   r   r     s    z*FederatedAuthRequestIssueDetails.from_jsonNre   r   r   r   r   r     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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.
    ZShouldEmbargoZTooManyRequestsZWellKnownHttpNotFoundZWellKnownNoResponseZWellKnownInvalidResponseZWellKnownListEmptyZConfigNotInWellKnownZWellKnownTooBigZConfigHttpNotFoundZConfigNoResponseZConfigInvalidResponseZClientMetadataHttpNotFoundZClientMetadataNoResponseZClientMetadataInvalidResponseZDisabledInSettingsZErrorFetchingSigninZInvalidSigninResponseZAccountsHttpNotFoundZAccountsNoResponseZAccountsInvalidResponseZAccountsListEmptyZIdTokenHttpNotFoundZIdTokenNoResponseZIdTokenInvalidResponseZIdTokenInvalidRequestZErrorIdTokenZCanceledZRpPageNotVisiblec                 C  s   | j S r-   r.   r0   r   r   r   r     s    z'FederatedAuthRequestIssueReason.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    z)FederatedAuthRequestIssueReason.from_jsonN)#r   r   r   r   ZSHOULD_EMBARGOTOO_MANY_REQUESTSZWELL_KNOWN_HTTP_NOT_FOUNDZWELL_KNOWN_NO_RESPONSEZWELL_KNOWN_INVALID_RESPONSEZWELL_KNOWN_LIST_EMPTYZCONFIG_NOT_IN_WELL_KNOWNZWELL_KNOWN_TOO_BIGZCONFIG_HTTP_NOT_FOUNDZCONFIG_NO_RESPONSEZCONFIG_INVALID_RESPONSEZCLIENT_METADATA_HTTP_NOT_FOUNDZCLIENT_METADATA_NO_RESPONSEZ CLIENT_METADATA_INVALID_RESPONSEZDISABLED_IN_SETTINGSZERROR_FETCHING_SIGNINZINVALID_SIGNIN_RESPONSEZACCOUNTS_HTTP_NOT_FOUNDZACCOUNTS_NO_RESPONSEZACCOUNTS_INVALID_RESPONSEZACCOUNTS_LIST_EMPTYZID_TOKEN_HTTP_NOT_FOUNDZID_TOKEN_NO_RESPONSEZID_TOKEN_INVALID_RESPONSEZID_TOKEN_INVALID_REQUESTZERROR_ID_TOKENZCANCELEDZRP_PAGE_NOT_VISIBLEr   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.
    rg   rw   r   client_hint_issue_reasonc                 C  s&   t  }| j |d< | j |d< |S )Nr   clientHintIssueReason)r   rw   r   r   r   r   r   r   r     s    zClientHintIssueDetails.to_jsonc                 C  s    | t |d t|d dS )Nr   r   )rw   r   )rg   r   r   r   r   r   r   r     s    z ClientHintIssueDetails.from_jsonNr   r   r   r   r   r     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
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.
    ZCookieIssueZMixedContentIssueZBlockedByResponseIssueZHeavyAdIssueZContentSecurityPolicyIssueZSharedArrayBufferIssueZTrustedWebActivityIssueZLowTextContrastIssueZ	CorsIssueZAttributionReportingIssueZQuirksModeIssueZNavigatorUserAgentIssueZGenericIssueZDeprecationIssueZClientHintIssueZFederatedAuthRequestIssuec                 C  s   | j S r-   r.   r0   r   r   r   r     s    zInspectorIssueCode.to_jsonc                 C  s   | |S r-   r   r   r   r   r   r     s    zInspectorIssueCode.from_jsonN)r   r   r   r   ZCOOKIE_ISSUEZMIXED_CONTENT_ISSUEZBLOCKED_BY_RESPONSE_ISSUEZHEAVY_AD_ISSUEZCONTENT_SECURITY_POLICY_ISSUEZSHARED_ARRAY_BUFFER_ISSUEZTRUSTED_WEB_ACTIVITY_ISSUEZLOW_TEXT_CONTRAST_ISSUEZ
CORS_ISSUEZATTRIBUTION_REPORTING_ISSUEZQUIRKS_MODE_ISSUEZNAVIGATOR_USER_AGENT_ISSUEZGENERIC_ISSUEZDEPRECATION_ISSUEZCLIENT_HINT_ISSUEZFEDERATED_AUTH_REQUEST_ISSUEr   r    r   r   r   r   r   r     s(   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#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[TrustedWebActivityIssueDetails]twa_quality_enforcement_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_detailsc                 C  s  t  }| jd ur| j |d< | jd ur6| j |d< | jd urN| j |d< | jd urf| 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rD| j |d< | jd ur^| j |d< | jd urx| j |d< | jd ur| j |d< |S )NcookieIssueDetailsmixedContentIssueDetailsblockedByResponseIssueDetailsheavyAdIssueDetails!contentSecurityPolicyIssueDetailssharedArrayBufferIssueDetailstwaQualityEnforcementDetailslowTextContrastIssueDetailscorsIssueDetails attributionReportingIssueDetailsquirksModeIssueDetailsnavigatorUserAgentIssueDetailsgenericIssueDetailsdeprecationIssueDetailsclientHintIssueDetails federatedAuthRequestIssueDetails)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   J  sD    









zInspectorIssueDetails.to_jsonc                 C  s  | d|v rt |d nd d|v r0t|d nd d|v rHt|d nd d|v r`t|d nd d|v rxt|d nd d|v rt|d nd d|v rt|d nd d|v rt|d nd d	|v rt	|d	 nd d
|v rt
|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 rXt|d nd d|v rrt|d nd d|v rt|d n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   r   r   r   r   r   r   r   r   )r3   r   rO   r[   rc   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   n  s$    zInspectorIssueDetails.from_json)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   #  s(   
$r   c                      sB   e Zd ZdZddddZedd 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.
    r   returnc                 C  s   | S r-   r   r0   r   r   r   r     s    zIssueId.to_jsonr   r   c                 C  s   | |S r-   r   r   r   r   r   r     s    zIssueId.from_jsonc                   s   d t  S )NzIssueId({}))formatsuper__repr__r0   	__class__r   r   r     s    zIssueId.__repr__)	r   r   r   r   r   r    r   r   __classcell__r   r   r   r   r     s
   r   c                   @  sB   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 )InspectorIssuez8
    An inspector issue reported from the back-end.
    r   coder   detailsNztyping.Optional[IssueId]issue_idc                 C  s>   t  }| j |d< | j |d< | jd ur:| j |d< |S )Nr   r   issueId)r   r   r   r   r   r   r   r   r   r     s    
zInspectorIssue.to_jsonc                 C  s8   | t |d t|d d|v r0t|d nd dS )Nr   r   r   )r   r   r   )r   r   r   r   r   r   r   r   r     s
    zInspectorIssue.from_json)	r   r   r   r   r   r   r   r    r   r   r   r   r   r     s   
r   r"   r   ztyping.Optional[float]ztyping.Optional[bool]zXtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]])r#   encodingquality	size_onlyr   c                 c  sx   t  }|  |d< ||d< |dur*||d< |dur:||d< d|d}|V }d|v r^t|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&   r   Nr   ZsizeOnlyzAudits.getEncodedResponsemethodparamsbodyZoriginalSizeZencodedSize)r   r   r   rh   )r#   r   r   r   r   cmd_dictr   r   r   r   get_encoded_response  s    

r  z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   c                  c  s   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   disable  s    r  c                  c  s   ddi} | V }dS )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   enable  s    r  )
report_aaar   c                 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.
    NZ	reportAAAzAudits.checkContrastr   )r   )r  r   r   r   r   r   r   check_contrast  s    	r  zAudits.issueAddedc                   @  s*   e Zd ZU ded< edd dddZdS )
IssueAddedr   issuer   r   c                 C  s   | t |d dS )Nr  )r  )r   r   r   r   r   r   r     s    zIssueAdded.from_jsonN)r   r   r   r   r    r   r   r   r   r   r    s   
r  )NN)N)=
__future__r   utilr   r   Zdataclassesr   enumtyping r   r   r	   r
   r   r!   r'   Enumr,   r1   r2   r3   rH   rI   rO   rZ   r[   ra   rb   rc   rf   rg   ro   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   <module>   s   ;%0"-''/"%A,`   '
 