a
    $ñ»j^X ã                   @  sj  d dl mZ d dlZd dlZd dlmZ ddlmZm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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 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 d0d1„ d1ejƒ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'G d<d=„ d=ejƒZ(G d>d?„ d?ejƒZ)G d@dA„ dAejƒZ*G dBdC„ dCejƒZ+G dDdE„ dEejƒZ,eG dFdG„ dGƒƒZ-eG dHdI„ dIƒƒZ.eG dJdK„ dKƒƒZ/eG dLdM„ dMƒƒZ0eG dNdO„ dOƒƒZ1eG dPdQ„ dQƒƒZ2eG dRdS„ dSƒƒZ3G dTdU„ dUejƒZ4eG dVdW„ dWƒƒZ5eG dXdY„ dYƒƒZ6eG dZd[„ d[ƒƒZ7eG d\d]„ d]ƒƒZ8G d^d_„ d_ejƒZ9e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>eG djdk„ dkƒƒZ?G dldm„ dmejƒZ@eG dndo„ doƒƒZAG dpdq„ dqejƒZBeG drds„ dsƒƒZCG dtdu„ duejƒZDeG dvdw„ dwƒƒZEG dxdy„ dyejƒZFeG dzd{„ d{ƒƒZGG d|d}„ d}ejƒZHeG d~d„ dƒƒZIG d€d�„ d�ejƒZJeG d‚dƒ„ dƒƒƒZKeG d„d…„ d…ƒƒZLG d†d‡„ d‡ejƒZMeG dˆd‰„ d‰ƒƒZNG dŠd‹„ d‹eOƒZPeG dŒd�„ d�ƒƒZQd¢dŽd�d�d‘d’d“œd”d•„ZRd–d—œd˜d™„ZSd–d—œdšd›„ZTdœd—œd�dž„ZUedŸƒeG d d¡„ d¡ƒƒƒZVdS )£é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICT)Údom)Únetwork)Úpage)Úruntimec                   @  sL   e Zd ZU dZded< ded< ded< ddœdd	„Zedd d
œdd„ƒZdS )ÚAffectedCookiezBInformation about a cookie that is affected by an inspector issue.ÚstrÚnameÚpathÚdomainr   ©Úreturnc                 C  s(   t ƒ }| j|d< | j|d< | j|d< |S )Nr   r   r   )Údictr   r   r   ©ÚselfÚjson© r   ú2E:\soccer\ml_env\Lib\site-packages\mycdp/audits.pyÚto_json   s
    


zAffectedCookie.to_json©r   r   c                 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                   @  sL   e Zd ZU dZdZded< dZded< ddœd	d
„Zedd dœdd„ƒZ	dS )ÚAffectedRequestzCInformation about a request that is affected by an inspector issue.Nú"typing.Optional[network.RequestId]Ú
request_idútyping.Optional[str]Úurlr   r   c                 C  s,   t ƒ }| j|d< | jd ur(| j ¡ |d< |S )Nr)   Ú	requestId)r   r)   r'   r   r   r   r   r   r   2   s
    

zAffectedRequest.to_jsonr   c                 C  s4   | t |d ƒ| dd ¡d ur,tj |d ¡nd d�S )Nr)   r*   )r)   r'   ©r   Úgetr   Z	RequestIdr   r   r   r   r   r   9   s    
ÿüzAffectedRequest.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U dZded< ddœdd„Zedd dœd	d
„ƒZdS )ÚAffectedFramez;Information about the frame affected by an inspector issue.úpage.FrameIdÚframe_idr   r   c                 C  s   t ƒ }| j ¡ |d< |S )NÚframeId)r   r/   r   r   r   r   r   r   H   s    zAffectedFrame.to_jsonr   c                 C  s   | t j |d ¡d�S )Nr0   )r/   )r	   ÚFrameIdr   r   r   r   r   r   M   s    ÿzAffectedFrame.from_jsonNr   r   r   r   r   r-   C   s
   
r-   c                   @  sR   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
dœdd„Zed
d dœdd„ƒZdS )ÚCookieExclusionReasonZ&ExcludeSameSiteUnspecifiedTreatedAsLaxZExcludeSameSiteNoneInsecureZExcludeSameSiteLaxZExcludeSameSiteStrictZExcludeDomainNonASCIIZ-ExcludeThirdPartyCookieBlockedInFirstPartySetZExcludeThirdPartyPhaseoutZExcludePortMismatchZExcludeSchemeMismatchr   r   c                 C  s   | j S ©N©Úvalue©r   r   r   r   r   c   s    zCookieExclusionReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   f   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_DOMAIN_NON_ASCIIZ5EXCLUDE_THIRD_PARTY_COOKIE_BLOCKED_IN_FIRST_PARTY_SETZEXCLUDE_THIRD_PARTY_PHASEOUTZEXCLUDE_PORT_MISMATCHZEXCLUDE_SCHEME_MISMATCHr   r$   r   r   r   r   r   r2   T   s   ÿÿr2   c                   @  sf   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dœdd„Zedd dœdd„ƒZdS )ÚCookieWarningReasonZ'WarnSameSiteUnspecifiedCrossSiteContextZWarnSameSiteNoneInsecureZ%WarnSameSiteUnspecifiedLaxAllowUnsafeZ$WarnSameSiteStrictLaxDowngradeStrictZ&WarnSameSiteStrictCrossDowngradeStrictZ#WarnSameSiteStrictCrossDowngradeLaxZ#WarnSameSiteLaxCrossDowngradeStrictZ WarnSameSiteLaxCrossDowngradeLaxZ WarnAttributeValueExceedsMaxSizeZWarnDomainNonASCIIZWarnThirdPartyPhaseoutZ.WarnCrossSiteRedirectDowngradeChangesInclusionZWarnDeprecationTrialMetadataZWarnThirdPartyCookieHeuristicr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   �   s    zCookieWarningReason.to_jsonr   c                 C  s   | |ƒS r3   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_ASCIIZWARN_THIRD_PARTY_PHASEOUTZ4WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSIONZWARN_DEPRECATION_TRIAL_METADATAZ!WARN_THIRD_PARTY_COOKIE_HEURISTICr   r$   r   r   r   r   r   r7   k   s4   ÿÿÿÿÿÿÿÿÿr7   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚCookieOperationZ	SetCookieZ
ReadCookier   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ™   s    zCookieOperation.to_jsonr   c                 C  s   | |ƒS r3   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   r8   •   s
   r8   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚInsightTypezCRepresents the category of insight that a cookie issue falls under.ZGitHubResourceZGracePeriodZ
Heuristicsr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   §   s    zInsightType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ª   s    zInsightType.from_jsonN)
r   r    r!   r"   ZGIT_HUB_RESOURCEZGRACE_PERIODZ
HEURISTICSr   r$   r   r   r   r   r   r9   ¡   s   r9   c                   @  sH   e Zd ZU dZded< dZded< ddœd	d
„Zedd dœdd„ƒZdS )ÚCookieIssueInsightz;Information about the suggested solution to a cookie issue.r9   Útype_Nr(   Útable_entry_urlr   r   c                 C  s,   t ƒ }| j ¡ |d< | jd ur(| j|d< |S )NÚtypeÚtableEntryUrl)r   r;   r   r<   r   r   r   r   r   ¶   s
    

zCookieIssueInsight.to_jsonr   c                 C  s2   | t  |d ¡| dd ¡d ur*t|d ƒnd d�S )Nr=   r>   )r;   r<   )r9   r   r,   r   r   r   r   r   r   ½   s    ÿüzCookieIssueInsight.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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Z
ded< ddœdd„Zedd dœ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_reasonsr8   Ú	operationNztyping.Optional[AffectedCookie]Úcookier(   Úraw_cookie_lineÚsite_for_cookiesÚ
cookie_urlú typing.Optional[AffectedRequest]Úrequestz#typing.Optional[CookieIssueInsight]Úinsightr   r   c                 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< | j
d urÀ| j
 ¡ |d< |S )Nc                 S  s   g | ]}|  ¡ ‘qS r   ©r   ©Ú.0Úir   r   r   Ú
<listcomp>á   s   z.CookieIssueDetails.to_json.<locals>.<listcomp>ÚcookieWarningReasonsc                 S  s   g | ]}|  ¡ ‘qS r   rJ   rK   r   r   r   rN   ä   s   ÚcookieExclusionReasonsrB   rC   ÚrawCookieLineÚsiteForCookiesÚ	cookieUrlrH   rI   )r   r@   rA   rB   r   rC   rD   rE   rF   rH   rI   r   r   r   r   r   ß   s*    ÿ
ÿ









zCookieIssueDetails.to_jsonr   c                 C  sî   | dd„ |d D ƒdd„ |d D ƒt  |d ¡| dd ¡d urLt |d ¡nd | dd ¡d urjt|d ƒnd | d	d ¡d urˆt|d	 ƒnd | d
d ¡d ur¦t|d
 ƒnd | dd ¡d urÆt |d ¡nd | dd ¡d uræt |d ¡nd d�	S )Nc                 S  s   g | ]}t  |¡‘qS r   )r7   r   rK   r   r   r   rN   ù   s   ÿz0CookieIssueDetails.from_json.<locals>.<listcomp>rO   c                 S  s   g | ]}t  |¡‘qS r   )r2   r   rK   r   r   r   rN   ý   s   ÿrP   rB   rC   rQ   rR   rS   rH   rI   )	r@   rA   rB   rC   rD   rE   rF   rH   rI   )r8   r   r,   r   r   r%   r:   r   r   r   r   r   ö   s6    þþÿÿÿÿÿÿåzCookieIssueDetails.from_json)r   r    r!   r"   r#   rC   rD   rE   rF   rH   rI   r   r$   r   r   r   r   r   r?   Ç   s   
r?   c                   @  s2   e Zd ZdZddœdd„Zedd dœdd„ƒZd	S )
ÚPerformanceIssueTypeZDocumentCookier   r   c                 C  s   | j S r3   r4   r6   r   r   r   r     s    zPerformanceIssueType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r     s    zPerformanceIssueType.from_jsonN)r   r    r!   ZDOCUMENT_COOKIEr   r$   r   r   r   r   r   rT     s   rT   c                   @  sH   e Zd ZU dZded< dZded< ddœd	d
„Zedd dœdd„ƒZdS )ÚPerformanceIssueDetailsz Details for a performance issue.rT   Úperformance_issue_typeNú#typing.Optional[SourceCodeLocation]Úsource_code_locationr   r   c                 C  s0   t ƒ }| j ¡ |d< | jd ur,| j ¡ |d< |S )NÚperformanceIssueTypeÚsourceCodeLocation)r   rV   r   rX   r   r   r   r   r   (  s
    
zPerformanceIssueDetails.to_jsonr   c                 C  s4   | t  |d ¡| dd ¡d ur,t |d ¡nd d�S )NrY   rZ   )rV   rX   )rT   r   r,   ÚSourceCodeLocationr   r   r   r   r   /  s    ÿýÿøz!PerformanceIssueDetails.from_json)	r   r    r!   r"   r#   rX   r   r$   r   r   r   r   r   rU   "  s   
rU   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚMixedContentResolutionStatusZMixedContentBlockedZ!MixedContentAutomaticallyUpgradedZMixedContentWarningr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   B  s    z$MixedContentResolutionStatus.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   E  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   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œd d!„Z e!dd d"œd#d$„ƒZ"d%S )&ÚMixedContentResourceTypeZAttributionSrcZAudioZBeaconZ	CSPReportZDownloadZEventSourceZFaviconZFontZFormÚFrameZImageÚImportÚJSONZManifestZPingZ
PluginDataZPluginResourceZPrefetchÚResourceZScriptZServiceWorkerZSharedWorkerZSpeculationRulesZ
StylesheetZTrackZVideoZWorkerZXMLHttpRequestÚXSLTr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   i  s    z MixedContentResourceType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   l  s    z"MixedContentResourceType.from_jsonN)#r   r    r!   ZATTRIBUTION_SRCZAUDIOZBEACONZ
CSP_REPORTZDOWNLOADZEVENT_SOURCEZFAVICONZFONTZFORMÚFRAMEZIMAGEZIMPORTr`   ZMANIFESTZPINGZPLUGIN_DATAZPLUGIN_RESOURCEZPREFETCHZRESOURCEZSCRIPTZSERVICE_WORKERZSHARED_WORKERZSPECULATION_RULESZ
STYLESHEETZTRACKZVIDEOZWORKERZXML_HTTP_REQUESTrb   r   r$   r   r   r   r   r   r]   J  s@   r]   c                   @  sl   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œdd„Zedd dœdd„ƒZ	dS )ÚMixedContentIssueDetailsr\   Úresolution_statusr   Úinsecure_urlÚmain_resource_urlNz)typing.Optional[MixedContentResourceType]Úresource_typerG   rH   útyping.Optional[AffectedFrame]Úframer   r   c                 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ÚresourceTyperH   rj   )r   re   r   rf   rg   rh   rH   rj   r   r   r   r   r   …  s    




z MixedContentIssueDetails.to_jsonr   c              
   C  sˆ   | t  |d ¡t|d ƒt|d ƒ| dd ¡d ur@t |d ¡nd | dd ¡d ur`t |d ¡nd | dd ¡d ur€t |d ¡nd d�S )Nrk   rl   rm   rn   rH   rj   )re   rf   rg   rh   rH   rj   )r\   r   r   r,   r]   r%   r-   r   r   r   r   r   ’  s$    ÿ

ýÿÿÿðz"MixedContentIssueDetails.from_json)
r   r    r!   r#   rh   rH   rj   r   r$   r   r   r   r   r   rd   q  s   
rd   c                   @  sR   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
dœdd„Zed
d dœ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CorpNotSameOriginZ1CorpNotSameOriginAfterDefaultedToSameOriginByCoepZ0CorpNotSameOriginAfterDefaultedToSameOriginByDipZ7CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDipZCorpNotSameSiteZSRIMessageSignatureMismatchr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ¼  s    zBlockedByResponseReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ¿  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_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_DIPZCCORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEP_AND_DIPZCORP_NOT_SAME_SITEZSRI_MESSAGE_SIGNATURE_MISMATCHr   r$   r   r   r   r   r   ro   ¨  s    ÿÿÿÿro   c                   @  s\   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œdd„Zed
d dœ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%   rH   ro   ÚreasonNri   Úparent_frameÚblocked_framer   r   c                 C  sV   t ƒ }| j ¡ |d< | j ¡ |d< | jd ur:| j ¡ |d< | jd urR| j ¡ |d< |S )NrH   rq   ÚparentFrameÚblockedFrame)r   rH   r   rq   rr   rs   r   r   r   r   r   Ð  s    

z%BlockedByResponseIssueDetails.to_jsonr   c                 C  s`   | t  |d ¡t |d ¡| dd ¡d ur8t |d ¡nd | dd ¡d urXt |d ¡nd d�S )NrH   rq   rt   ru   )rH   rq   rr   rs   )r%   r   ro   r,   r-   r   r   r   r   r   Ú  s    ÿÿøz'BlockedByResponseIssueDetails.from_json)
r   r    r!   r"   r#   rr   rs   r   r$   r   r   r   r   r   rp   Ä  s   

rp   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚHeavyAdResolutionStatusZHeavyAdBlockedZHeavyAdWarningr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ì  s    zHeavyAdResolutionStatus.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ï  s    z!HeavyAdResolutionStatus.from_jsonN)r   r    r!   ZHEAVY_AD_BLOCKEDZHEAVY_AD_WARNINGr   r$   r   r   r   r   r   rv   è  s
   rv   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚHeavyAdReasonZNetworkTotalLimitZCpuTotalLimitZCpuPeakLimitr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ù  s    zHeavyAdReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ü  s    zHeavyAdReason.from_jsonN)	r   r    r!   ZNETWORK_TOTAL_LIMITZCPU_TOTAL_LIMITZCPU_PEAK_LIMITr   r$   r   r   r   r   r   rw   ô  s   rw   c                   @  sH   e Zd ZU ded< ded< ded< ddœd	d
„Zedd dœdd„ƒZdS )ÚHeavyAdIssueDetailsrv   Ú
resolutionrw   rq   r-   rj   r   r   c                 C  s4   t ƒ }| j ¡ |d< | j ¡ |d< | j ¡ |d< |S )Nry   rq   rj   )r   ry   r   rq   rj   r   r   r   r   r   
  s
    zHeavyAdIssueDetails.to_jsonr   c                 C  s,   | t  |d ¡t |d ¡t |d ¡d�S )Nry   rq   rj   )ry   rq   rj   )rv   r   rw   r-   r   r   r   r   r     s
    ýzHeavyAdIssueDetails.from_jsonN©r   r    r!   r#   r   r$   r   r   r   r   r   rx     s   
rx   c                   @  sJ   e Zd ZdZdZdZdZdZdZdZ	dd	œd
d„Z
edd dœdd„ƒZdS )Ú"ContentSecurityPolicyViolationTypeZkInlineViolationZkEvalViolationZkURLViolationZkSRIViolationZkTrustedTypesSinkViolationZkTrustedTypesPolicyViolationZkWasmEvalViolationr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   #  s    z*ContentSecurityPolicyViolationType.to_jsonr   c                 C  s   | |ƒS r3   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_SRI_VIOLATIONZK_TRUSTED_TYPES_SINK_VIOLATIONZ K_TRUSTED_TYPES_POLICY_VIOLATIONZK_WASM_EVAL_VIOLATIONr   r$   r   r   r   r   r   r{     s   r{   c                   @  sT   e Zd ZU ded< ded< ded< dZded< d	d
œdd„Zed	d dœdd„ƒZdS )r[   r   r)   ÚintÚline_numberÚcolumn_numberNz!typing.Optional[runtime.ScriptId]Ú	script_idr   r   c                 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   2  s    



zSourceCodeLocation.to_jsonr   c                 C  sH   | t |d ƒt|d ƒt|d ƒ| dd ¡d ur@tj |d ¡nd d�S )Nr)   r€   r�   r‚   )r)   r}   r~   r   )r   r|   r,   r
   Z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                   @  sx   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œdd„Ze	dd dœdd„ƒZ
dS )Ú!ContentSecurityPolicyIssueDetailsr   Úviolated_directiveÚboolÚis_report_onlyr{   Ú&content_security_policy_violation_typeNr(   Úblocked_urlri   Úframe_ancestorrW   rX   ú"typing.Optional[dom.BackendNodeId]Úviolating_node_idr   r   c                 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ÚframeAncestorrZ   ÚviolatingNodeId)	r   r„   r†   r‡   r   rˆ   r‰   rX   r‹   r   r   r   r   r   S  s    

ÿ




z)ContentSecurityPolicyIssueDetails.to_jsonr   c                 C  s¨   | t |d ƒt|d ƒt |d ¡| dd ¡d ur>t |d ƒnd | dd ¡d ur^t |d ¡nd | dd ¡d ur~t |d ¡nd | dd ¡d ur tj |d ¡nd d�S )	NrŒ   r�   rŽ   r�   r�   rZ   r‘   )r„   r†   r‡   rˆ   r‰   rX   r‹   )	r   r…   r{   r   r,   r-   r[   r   ÚBackendNodeIdr   r   r   r   r   d  s.    

ÿÿÿýÿýÿëz+ContentSecurityPolicyIssueDetails.from_json)r   r    r!   r#   rˆ   r‰   rX   r‹   r   r$   r   r   r   r   r   rƒ   G  s   
rƒ   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚSharedArrayBufferIssueTypeZTransferIssueZCreationIssuer   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ƒ  s    z"SharedArrayBufferIssueType.to_jsonr   c                 C  s   | |ƒS r3   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                   @  sL   e Zd ZU dZded< ded< ded< dd	œd
d„Zedd dœ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[   rX   r…   Ú
is_warningr“   r;   r   r   c                 C  s0   t ƒ }| j ¡ |d< | j|d< | j ¡ |d< |S )NrZ   Ú	isWarningr=   )r   rX   r   r•   r;   r   r   r   r   r   •  s
    
z%SharedArrayBufferIssueDetails.to_jsonr   c                 C  s*   | t  |d ¡t|d ƒt |d ¡d�S )NrZ   r–   r=   )rX   r•   r;   )r[   r   r…   r“   r   r   r   r   r   œ  s    ÿ
ûz'SharedArrayBufferIssueDetails.from_jsonNr   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Zd	ed
< dZded< dZded< dZded< ddœdd„Z	e
dd dœ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%   rH   NrW   Úlocationr(   Úinitiator_originz'typing.Optional[network.IPAddressSpace]Úresource_ip_address_spacez,typing.Optional[network.ClientSecurityState]Úclient_security_stater   r   c                 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–   rH   r™   ÚinitiatorOriginÚresourceIPAddressSpaceÚclientSecurityState)	r   r˜   r   r•   rH   r™   rš   r›   rœ   r   r   r   r   r   µ  s    




ÿ
zCorsIssueDetails.to_jsonr   c                 C  s®   | t j |d ¡t|d ƒt |d ¡| dd ¡d urDt |d ¡nd | dd ¡d urbt|d ƒnd | dd ¡d ur„t j |d ¡nd | dd ¡d ur¦t j	 |d ¡nd d�S )	Nr�   r–   rH   r™   rž   rŸ   r    )r˜   r•   rH   r™   rš   r›   rœ   )
r   ZCorsErrorStatusr   r…   r%   r,   r[   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—   §  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dœdd„Zedd dœdd„ƒZdS )ÚAttributionReportingIssueTypeZPermissionPolicyDisabledZUntrustworthyReportingOriginZInsecureContextÚInvalidHeaderZInvalidRegisterTriggerHeaderZSourceAndTriggerHeadersZSourceIgnoredZTriggerIgnoredZOsSourceIgnoredZOsTriggerIgnoredZInvalidRegisterOsSourceHeaderZInvalidRegisterOsTriggerHeaderZWebAndOsHeadersZNoWebOrOsSupportZ4NavigationRegistrationWithoutTransientUserActivationZInvalidInfoHeaderZNoRegisterSourceHeaderZNoRegisterTriggerHeaderZNoRegisterOsSourceHeaderZNoRegisterOsTriggerHeaderZ+NavigationRegistrationUniqueScopeAlreadySetr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ü  s    z%AttributionReportingIssueType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ÿ  s    z'AttributionReportingIssueType.from_jsonN)r   r    r!   ZPERMISSION_POLICY_DISABLEDZUNTRUSTWORTHY_REPORTING_ORIGINZINSECURE_CONTEXTÚINVALID_HEADERZINVALID_REGISTER_TRIGGER_HEADERZSOURCE_AND_TRIGGER_HEADERSZSOURCE_IGNOREDZTRIGGER_IGNOREDZOS_SOURCE_IGNOREDZOS_TRIGGER_IGNOREDZ!INVALID_REGISTER_OS_SOURCE_HEADERZ"INVALID_REGISTER_OS_TRIGGER_HEADERZWEB_AND_OS_HEADERSZNO_WEB_OR_OS_SUPPORTZ9NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATIONZINVALID_INFO_HEADERZNO_REGISTER_SOURCE_HEADERZNO_REGISTER_TRIGGER_HEADERZNO_REGISTER_OS_SOURCE_HEADERZNO_REGISTER_OS_TRIGGER_HEADERZ0NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SETr   r$   r   r   r   r   r   r¡   á  s4   ÿÿ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dœdd„Zedd dœdd „ƒZd!S )"ÚSharedDictionaryErrorZ UseErrorCrossOriginNoCorsRequestZUseErrorDictionaryLoadFailureZ!UseErrorMatchingDictionaryNotUsedZ)UseErrorUnexpectedContentDictionaryHeaderZ!WriteErrorCossOriginNoCorsRequestZWriteErrorDisallowedBySettingsZWriteErrorExpiredResponseZWriteErrorFeatureDisabledZWriteErrorInsufficientResourcesZWriteErrorInvalidMatchFieldZ!WriteErrorInvalidStructuredHeaderZWriteErrorInvalidTTLFieldZWriteErrorNavigationRequestZWriteErrorNoMatchFieldZWriteErrorNonIntegerTTLFieldZWriteErrorNonListMatchDestFieldZWriteErrorNonSecureContextZWriteErrorNonStringIdFieldZ"WriteErrorNonStringInMatchDestListZWriteErrorNonStringMatchFieldZWriteErrorNonTokenTypeFieldZWriteErrorRequestAbortedZWriteErrorShuttingDownZWriteErrorTooLongIdFieldZWriteErrorUnsupportedTyper   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   '  s    zSharedDictionaryError.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   *  s    zSharedDictionaryError.from_jsonN)r   r    r!   Z&USE_ERROR_CROSS_ORIGIN_NO_CORS_REQUESTZ!USE_ERROR_DICTIONARY_LOAD_FAILUREZ&USE_ERROR_MATCHING_DICTIONARY_NOT_USEDZ.USE_ERROR_UNEXPECTED_CONTENT_DICTIONARY_HEADERZ'WRITE_ERROR_COSS_ORIGIN_NO_CORS_REQUESTZ"WRITE_ERROR_DISALLOWED_BY_SETTINGSZWRITE_ERROR_EXPIRED_RESPONSEZWRITE_ERROR_FEATURE_DISABLEDZ"WRITE_ERROR_INSUFFICIENT_RESOURCESZWRITE_ERROR_INVALID_MATCH_FIELDZ%WRITE_ERROR_INVALID_STRUCTURED_HEADERZWRITE_ERROR_INVALID_TTL_FIELDZWRITE_ERROR_NAVIGATION_REQUESTZWRITE_ERROR_NO_MATCH_FIELDZ!WRITE_ERROR_NON_INTEGER_TTL_FIELDZ%WRITE_ERROR_NON_LIST_MATCH_DEST_FIELDZWRITE_ERROR_NON_SECURE_CONTEXTZWRITE_ERROR_NON_STRING_ID_FIELDZ)WRITE_ERROR_NON_STRING_IN_MATCH_DEST_LISTZ"WRITE_ERROR_NON_STRING_MATCH_FIELDZ WRITE_ERROR_NON_TOKEN_TYPE_FIELDZWRITE_ERROR_REQUEST_ABORTEDZWRITE_ERROR_SHUTTING_DOWNZWRITE_ERROR_TOO_LONG_ID_FIELDZWRITE_ERROR_UNSUPPORTED_TYPEr   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dœdd„Zedd dœdd„ƒZdS )ÚSRIMessageSignatureErrorZMissingSignatureHeaderZMissingSignatureInputHeaderZInvalidSignatureHeaderZInvalidSignatureInputHeaderZ%SignatureHeaderValueIsNotByteSequenceZ#SignatureHeaderValueIsParameterizedZ%SignatureHeaderValueIsIncorrectLengthZ SignatureInputHeaderMissingLabelZ%SignatureInputHeaderValueNotInnerListZ*SignatureInputHeaderValueMissingComponentsZ(SignatureInputHeaderInvalidComponentTypeZ(SignatureInputHeaderInvalidComponentNameZ3SignatureInputHeaderInvalidHeaderComponentParameterZ4SignatureInputHeaderInvalidDerivedComponentParameterZSignatureInputHeaderKeyIdLengthZ$SignatureInputHeaderInvalidParameterZ-SignatureInputHeaderMissingRequiredParametersZ ValidationFailedSignatureExpiredZValidationFailedInvalidLengthZ!ValidationFailedSignatureMismatchZ!ValidationFailedIntegrityMismatchr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ^  s    z SRIMessageSignatureError.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   a  s    z"SRIMessageSignatureError.from_jsonN)r   r    r!   ZMISSING_SIGNATURE_HEADERZMISSING_SIGNATURE_INPUT_HEADERZINVALID_SIGNATURE_HEADERZINVALID_SIGNATURE_INPUT_HEADERZ+SIGNATURE_HEADER_VALUE_IS_NOT_BYTE_SEQUENCEZ'SIGNATURE_HEADER_VALUE_IS_PARAMETERIZEDZ*SIGNATURE_HEADER_VALUE_IS_INCORRECT_LENGTHZ$SIGNATURE_INPUT_HEADER_MISSING_LABELZ+SIGNATURE_INPUT_HEADER_VALUE_NOT_INNER_LISTZ/SIGNATURE_INPUT_HEADER_VALUE_MISSING_COMPONENTSZ-SIGNATURE_INPUT_HEADER_INVALID_COMPONENT_TYPEZ-SIGNATURE_INPUT_HEADER_INVALID_COMPONENT_NAMEZ9SIGNATURE_INPUT_HEADER_INVALID_HEADER_COMPONENT_PARAMETERZ:SIGNATURE_INPUT_HEADER_INVALID_DERIVED_COMPONENT_PARAMETERZ$SIGNATURE_INPUT_HEADER_KEY_ID_LENGTHZ(SIGNATURE_INPUT_HEADER_INVALID_PARAMETERZ2SIGNATURE_INPUT_HEADER_MISSING_REQUIRED_PARAMETERSZ#VALIDATION_FAILED_SIGNATURE_EXPIREDZ VALIDATION_FAILED_INVALID_LENGTHZ$VALIDATION_FAILED_SIGNATURE_MISMATCHZ$VALIDATION_FAILED_INTEGRITY_MISMATCHr   r$   r   r   r   r   r   r¥   /  sH   ÿÿÿÿÿÿÿÿÿÿÿÿr¥   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚUnencodedDigestErrorZMalformedDictionaryZUnknownAlgorithmZIncorrectDigestTypeZIncorrectDigestLengthr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   l  s    zUnencodedDigestError.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   o  s    zUnencodedDigestError.from_jsonN)
r   r    r!   ZMALFORMED_DICTIONARYZUNKNOWN_ALGORITHMZINCORRECT_DIGEST_TYPEZINCORRECT_DIGEST_LENGTHr   r$   r   r   r   r   r   r¦   f  s   r¦   c                   @  sF   e Zd ZdZdZdZdZdZdZddœd	d
„Z	e
dd dœdd„ƒZdS )ÚConnectionAllowlistErrorr¢   ZMoreThanOneListZItemNotInnerListZInvalidAllowlistItemTypeZReportingEndpointNotTokenZInvalidUrlPatternr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   |  s    z ConnectionAllowlistError.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r     s    z"ConnectionAllowlistError.from_jsonN)r   r    r!   r£   ZMORE_THAN_ONE_LISTZITEM_NOT_INNER_LISTZINVALID_ALLOWLIST_ITEM_TYPEZREPORTING_ENDPOINT_NOT_TOKENZINVALID_URL_PATTERNr   r$   r   r   r   r   r   r§   t  s   r§   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dœdd„Ze	dd dœdd„ƒZ
dS )Ú AttributionReportingIssueDetailsz‡
    Details for issues around "Attribution Reporting API" usage.
    Explainer: https://github.com/WICG/attribution-reporting-api
    r¡   Úviolation_typeNrG   rH   rŠ   r‹   r(   Úinvalid_parameterr   r   c                 C  s\   t ƒ }| j ¡ |d< | jd ur,| j ¡ |d< | jd urD| j ¡ |d< | jd urX| j|d< |S )NÚviolationTyperH   r‘   ÚinvalidParameter)r   r©   r   rH   r‹   rª   r   r   r   r   r   �  s    



z(AttributionReportingIssueDetails.to_jsonr   c                 C  st   | t  |d ¡| dd ¡d ur,t |d ¡nd | dd ¡d urNtj |d ¡nd | dd ¡d urlt|d ƒnd d�S )Nr«   rH   r‘   r¬   )r©   rH   r‹   rª   )r¡   r   r,   r%   r   r’   r   r   r   r   r   r   š  s     ÿÿýÿÿòz*AttributionReportingIssueDetails.from_json)r   r    r!   r"   r#   rH   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ed< ded< ded	< d
ed< ddœdd„Zedd dœ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_modeúdom.BackendNodeIdÚdocument_node_idr   r)   r.   r/   znetwork.LoaderIdÚ	loader_idr   r   c                 C  sH   t ƒ }| j|d< | j ¡ |d< | j|d< | j ¡ |d< | j ¡ |d< |S )NÚisLimitedQuirksModeÚdocumentNodeIdr)   r0   ÚloaderId)r   r®   r°   r   r)   r/   r±   r   r   r   r   r   ¼  s    

zQuirksModeIssueDetails.to_jsonr   c              	   C  sF   | t |d ƒtj |d ¡t|d ƒtj |d ¡tj |d ¡d�S )Nr²   r³   r)   r0   r´   )r®   r°   r)   r/   r±   )	r…   r   r’   r   r   r	   r1   r   ZLoaderIdr   r   r   r   r   Å  s    
ÿ
ùz QuirksModeIssueDetails.from_jsonNr   r   r   r   r   r­   ®  s   
	r­   c                   @  sD   e Zd ZU ded< dZded< ddœdd	„Zedd d
œdd„ƒZdS )ÚNavigatorUserAgentIssueDetailsr   r)   NrW   r™   r   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_jsonr   c                 C  s2   | t |d ƒ| dd ¡d ur*t |d ¡nd d�S )Nr)   r™   )r)   r™   )r   r,   r[   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                   @  s@   e Zd ZU ded< ded< ddœdd„Zedd d	œd
d„ƒZdS )ÚSharedDictionaryIssueDetailsr¤   Úshared_dictionary_errorr%   rH   r   r   c                 C  s&   t ƒ }| j ¡ |d< | j ¡ |d< |S )NÚsharedDictionaryErrorrH   )r   r·   r   rH   r   r   r   r   r   í  s    z$SharedDictionaryIssueDetails.to_jsonr   c                 C  s    | t  |d ¡t |d ¡d�S )Nr¸   rH   )r·   rH   )r¤   r   r%   r   r   r   r   r   ó  s    ÿüz&SharedDictionaryIssueDetails.from_jsonNrz   r   r   r   r   r¶   è  s
   
r¶   c                   @  sP   e Zd ZU ded< ded< ded< ded< d	d
œdd„Zed	d dœdd„ƒZdS )ÚSRIMessageSignatureIssueDetailsr¥   Úerrorr   Úsignature_baseútyping.List[str]Úintegrity_assertionsr%   rH   r   r   c                 C  sD   t ƒ }| j ¡ |d< | j|d< dd„ | jD ƒ|d< | j ¡ |d< |S )Nrº   ÚsignatureBasec                 S  s   g | ]}|‘qS r   r   rK   r   r   r   rN     ó    z;SRIMessageSignatureIssueDetails.to_json.<locals>.<listcomp>ÚintegrityAssertionsrH   )r   rº   r   r»   r½   rH   r   r   r   r   r     s    
z'SRIMessageSignatureIssueDetails.to_jsonr   c                 C  s:   | t  |d ¡t|d ƒdd„ |d D ƒt |d ¡d�S )Nrº   r¾   c                 S  s   g | ]}t |ƒ‘qS r   r   rK   r   r   r   rN     r¿   z=SRIMessageSignatureIssueDetails.from_json.<locals>.<listcomp>rÀ   rH   )rº   r»   r½   rH   )r¥   r   r   r%   r   r   r   r   r     s    
üz)SRIMessageSignatureIssueDetails.from_jsonNrz   r   r   r   r   r¹   ý  s   
r¹   c                   @  s@   e Zd ZU ded< ded< ddœdd„Zedd d	œd
d„ƒZdS )ÚUnencodedDigestIssueDetailsr¦   rº   r%   rH   r   r   c                 C  s&   t ƒ }| j ¡ |d< | j ¡ |d< |S ©Nrº   rH   ©r   rº   r   rH   r   r   r   r   r     s    z#UnencodedDigestIssueDetails.to_jsonr   c                 C  s    | t  |d ¡t |d ¡d�S ©Nrº   rH   )rº   rH   )r¦   r   r%   r   r   r   r   r   !  s    þz%UnencodedDigestIssueDetails.from_jsonNrz   r   r   r   r   rÁ     s
   
rÁ   c                   @  s@   e Zd ZU ded< ded< ddœdd„Zedd d	œd
d„ƒZdS )ÚConnectionAllowlistIssueDetailsr§   rº   r%   rH   r   r   c                 C  s&   t ƒ }| j ¡ |d< | j ¡ |d< |S rÂ   rÃ   r   r   r   r   r   .  s    z'ConnectionAllowlistIssueDetails.to_jsonr   c                 C  s    | t  |d ¡t |d ¡d�S rÄ   )r§   r   r%   r   r   r   r   r   4  s    þz)ConnectionAllowlistIssueDetails.from_jsonNrz   r   r   r   r   rÅ   )  s
   
rÅ   c                   @  sn   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dœdd„Zedd dœdd„ƒZdS )ÚGenericIssueErrorTypeZFormLabelForNameErrorZFormDuplicateIdForInputErrorZFormInputWithNoLabelErrorZ#FormAutocompleteAttributeEmptyErrorZ)FormEmptyIdAndNameAttributesForInputErrorZ&FormAriaLabelledByToNonExistingIdErrorZ:FormInputAssignedAutocompleteValueToIdOrNameAttributeErrorZ)FormLabelHasNeitherForNorNestedInputErrorZ%FormLabelForMatchesNonExistingIdErrorZ6FormInputHasWrongButWellIntendedAutocompleteValueErrorZResponseWasBlockedByORBZNavigationEntryMarkedSkippableZ1AutofillAndManualTextPolicyControlledFeaturesInfoZ#AutofillPolicyControlledFeatureInfoZ%ManualTextPolicyControlledFeatureInfoZ3FormModelContextParameterMissingTitleAndDescriptionr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   d  s    zGenericIssueErrorType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   g  s    zGenericIssueErrorType.from_jsonN)r   r    r!   Z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_ERRORZ.FORM_ARIA_LABELLED_BY_TO_NON_EXISTING_ID_ERRORZDFORM_INPUT_ASSIGNED_AUTOCOMPLETE_VALUE_TO_ID_OR_NAME_ATTRIBUTE_ERRORZ1FORM_LABEL_HAS_NEITHER_FOR_NOR_NESTED_INPUT_ERRORZ,FORM_LABEL_FOR_MATCHES_NON_EXISTING_ID_ERRORZ?FORM_INPUT_HAS_WRONG_BUT_WELL_INTENDED_AUTOCOMPLETE_VALUE_ERRORZRESPONSE_WAS_BLOCKED_BY_ORBZ!NAVIGATION_ENTRY_MARKED_SKIPPABLEZ8AUTOFILL_AND_MANUAL_TEXT_POLICY_CONTROLLED_FEATURES_INFOZ'AUTOFILL_POLICY_CONTROLLED_FEATURE_INFOZ*MANUAL_TEXT_POLICY_CONTROLLED_FEATURE_INFOZ:FORM_MODEL_CONTEXT_PARAMETER_MISSING_TITLE_AND_DESCRIPTIONr   r$   r   r   r   r   r   rÆ   <  s<   ÿÿÿÿÿÿÿÿÿÿÿrÆ   c                   @  sl   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œdd„Z	e
dd dœdd„ƒZdS )ÚGenericIssueDetailszBDepending on the concrete errorType, different properties are set.rÆ   Ú
error_typeNztyping.Optional[page.FrameId]r/   rŠ   r‹   r(   Úviolating_node_attributerG   rH   r   r   c                 C  st   t ƒ }| j ¡ |d< | jd ur,| j ¡ |d< | jd urD| j ¡ |d< | jd urX| j|d< | jd urp| j ¡ |d< |S )NÚ	errorTyper0   r‘   ÚviolatingNodeAttributerH   )r   rÈ   r   r/   r‹   rÉ   rH   r   r   r   r   r   v  s    




zGenericIssueDetails.to_jsonr   c              	   C  s–   | t  |d ¡| dd ¡d ur.tj |d ¡nd | dd ¡d urPtj |d ¡nd | dd ¡d urnt|d ƒnd | dd ¡d urŽt |d ¡nd d�S )NrÊ   r0   r‘   rË   rH   )rÈ   r/   r‹   rÉ   rH   )	rÆ   r   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É   rH   r   r$   r   r   r   r   r   rÇ   l  s   
rÇ   c                   @  sP   e Zd ZU dZded< ded< dZded< d	d
œdd„Zed	d dœ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[   rX   r   r;   Nri   Úaffected_framer   r   c                 C  s:   t ƒ }| j ¡ |d< | j|d< | jd ur6| j ¡ |d< |S )NrZ   r=   ÚaffectedFrame)r   rX   r   r;   rÍ   r   r   r   r   r   ¦  s    

zDeprecationIssueDetails.to_jsonr   c                 C  s>   | t  |d ¡t|d ƒ| dd ¡d ur6t |d ¡nd d�S )NrZ   r=   rÎ   )rX   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                   @  s<   e Zd ZU dZded< ddœdd„Zedd dœd	d
„ƒZdS )Ú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``.
    r¼   Útracking_sitesr   r   c                 C  s   t ƒ }dd„ | jD ƒ|d< |S )Nc                 S  s   g | ]}|‘qS r   r   rK   r   r   r   rN   È  r¿   z6BounceTrackingIssueDetails.to_json.<locals>.<listcomp>ÚtrackingSites)r   rÐ   r   r   r   r   r   Æ  s    z"BounceTrackingIssueDetails.to_jsonr   c                 C  s   | dd„ |d D ƒd�S )Nc                 S  s   g | ]}t |ƒ‘qS r   r   rK   r   r   r   rN   Î  r¿   z8BounceTrackingIssueDetails.from_json.<locals>.<listcomp>rÑ   )rÐ   r   r   r   r   r   r   Ë  s    ÿz$BounceTrackingIssueDetails.from_jsonNr   r   r   r   r   rÏ   »  s
   
rÏ   c                   @  sT   e Zd ZU dZded< ded< ded< ded	< d
dœdd„Zed
d dœdd„ƒZdS )Ú%CookieDeprecationMetadataIssueDetailsa`  
    This issue warns about third-party sites that are accessing cookies on the
    current page and have been permitted due to having a global metadata grant.
    Note that in this context 'site' means eTLD+1. For example,
    if the URL ``https://example.test:80/web_page`` was accessing cookies,
    the site reported would be ``example.test``.
    r¼   Úallowed_sitesÚfloatÚopt_out_percentager…   Úis_opt_out_top_levelr8   rB   r   r   c                 C  s@   t ƒ }dd„ | jD ƒ|d< | j|d< | j|d< | j ¡ |d< |S )Nc                 S  s   g | ]}|‘qS r   r   rK   r   r   r   rN   â  r¿   zACookieDeprecationMetadataIssueDetails.to_json.<locals>.<listcomp>ÚallowedSitesÚoptOutPercentageÚisOptOutTopLevelrB   )r   rÓ   rÕ   rÖ   rB   r   r   r   r   r   r   à  s    

z-CookieDeprecationMetadataIssueDetails.to_jsonr   c                 C  s8   | dd„ |d D ƒt |d ƒt|d ƒt |d ¡d�S )Nc                 S  s   g | ]}t |ƒ‘qS r   r   rK   r   r   r   rN   í  r¿   zCCookieDeprecationMetadataIssueDetails.from_json.<locals>.<listcomp>r×   rØ   rÙ   rB   )rÓ   rÕ   rÖ   rB   )rÔ   r…   r8   r   r   r   r   r   r   è  s    

üz/CookieDeprecationMetadataIssueDetails.from_jsonNr   r   r   r   r   rÒ   Ò  s   
rÒ   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚClientHintIssueReasonZMetaTagAllowListInvalidOriginZMetaTagModifiedHTMLr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ø  s    zClientHintIssueReason.to_jsonr   c                 C  s   | |ƒS r3   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                   @  s8   e Zd ZU ded< ddœdd„Zedd dœdd	„ƒZd
S )Ú FederatedAuthRequestIssueDetailsÚFederatedAuthRequestIssueReasonÚ#federated_auth_request_issue_reasonr   r   c                 C  s   t ƒ }| j ¡ |d< |S )NÚfederatedAuthRequestIssueReason)r   rÝ   r   r   r   r   r   r     s    ÿz(FederatedAuthRequestIssueDetails.to_jsonr   c                 C  s   | t  |d ¡d�S )NrÞ   )rÝ   )rÜ   r   r   r   r   r   r     s
    ÿÿz*FederatedAuthRequestIssueDetails.from_jsonNrz   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,d-œd.d/„Z.e/d,d d0œd1d2„ƒZ0d3S )4rÜ   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WellKnownInvalidContentTypeZConfigNotInWellKnownZWellKnownTooBigZConfigHttpNotFoundZConfigNoResponseZConfigInvalidResponseZConfigInvalidContentTypeZIdpNotPotentiallyTrustworthyZDisabledInSettingsZDisabledInFlagsZErrorFetchingSigninZInvalidSigninResponseZAccountsHttpNotFoundZAccountsNoResponseZAccountsInvalidResponseZAccountsListEmptyZAccountsInvalidContentTypeZIdTokenHttpNotFoundZIdTokenNoResponseZIdTokenInvalidResponseZIdTokenIdpErrorResponseZ IdTokenCrossSiteIdpErrorResponseZIdTokenInvalidRequestZIdTokenInvalidContentTypeZErrorIdTokenZCanceledZRpPageNotVisibleZSilentMediationFailureÚNotSignedInWithIdpZMissingTransientUserActivationZReplacedByActiveModeZRelyingPartyOriginIsOpaqueZTypeNotMatchingZUiDismissedNoEmbargoZ	CorsErrorZ SuppressedBySegmentationPlatformr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   F  s    z'FederatedAuthRequestIssueReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   I  s    z)FederatedAuthRequestIssueReason.from_jsonN)1r   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WELL_KNOWN_INVALID_CONTENT_TYPEZCONFIG_NOT_IN_WELL_KNOWNZWELL_KNOWN_TOO_BIGZCONFIG_HTTP_NOT_FOUNDZCONFIG_NO_RESPONSEZCONFIG_INVALID_RESPONSEZCONFIG_INVALID_CONTENT_TYPEZIDP_NOT_POTENTIALLY_TRUSTWORTHYZDISABLED_IN_SETTINGSZDISABLED_IN_FLAGSZERROR_FETCHING_SIGNINZINVALID_SIGNIN_RESPONSEZACCOUNTS_HTTP_NOT_FOUNDZACCOUNTS_NO_RESPONSEZACCOUNTS_INVALID_RESPONSEZACCOUNTS_LIST_EMPTYZACCOUNTS_INVALID_CONTENT_TYPEZID_TOKEN_HTTP_NOT_FOUNDZID_TOKEN_NO_RESPONSEZID_TOKEN_INVALID_RESPONSEZID_TOKEN_IDP_ERROR_RESPONSEZ&ID_TOKEN_CROSS_SITE_IDP_ERROR_RESPONSEZID_TOKEN_INVALID_REQUESTZID_TOKEN_INVALID_CONTENT_TYPEZERROR_ID_TOKENZCANCELEDZRP_PAGE_NOT_VISIBLEZSILENT_MEDIATION_FAILUREÚNOT_SIGNED_IN_WITH_IDPZ!MISSING_TRANSIENT_USER_ACTIVATIONZREPLACED_BY_ACTIVE_MODEZRELYING_PARTY_ORIGIN_IS_OPAQUEZTYPE_NOT_MATCHINGZUI_DISMISSED_NO_EMBARGOZ
CORS_ERRORZ#SUPPRESSED_BY_SEGMENTATION_PLATFORMr   r$   r   r   r   r   r   rÜ     s\   rÜ   c                   @  s8   e Zd ZU ded< ddœdd„Zedd dœdd	„ƒZd
S )Ú(FederatedAuthUserInfoRequestIssueDetailsÚ'FederatedAuthUserInfoRequestIssueReasonÚ-federated_auth_user_info_request_issue_reasonr   r   c                 C  s   t ƒ }| j ¡ |d< |S )NÚ'federatedAuthUserInfoRequestIssueReason)r   rä   r   r   r   r   r   r   T  s    ÿz0FederatedAuthUserInfoRequestIssueDetails.to_jsonr   c                 C  s   | t  |d ¡d�S )Nrå   )rä   )rã   r   r   r   r   r   r   [  s
    ÿÿz2FederatedAuthUserInfoRequestIssueDetails.from_jsonNrz   r   r   r   r   râ   N  s   
râ   c                   @  sV   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œdd„Zedd dœ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.
    ZNotSameOriginZ	NotIframeZNotPotentiallyTrustworthyZNoApiPermissionrß   ZNoAccountSharingPermissionZInvalidConfigOrWellKnownZInvalidAccountsResponseZ"NoReturningUserFromFetchedAccountsr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   x  s    z/FederatedAuthUserInfoRequestIssueReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   {  s    z1FederatedAuthUserInfoRequestIssueReason.from_jsonN)r   r    r!   r"   ZNOT_SAME_ORIGINZ
NOT_IFRAMEZNOT_POTENTIALLY_TRUSTWORTHYZNO_API_PERMISSIONrá   ZNO_ACCOUNT_SHARING_PERMISSIONZINVALID_CONFIG_OR_WELL_KNOWNZINVALID_ACCOUNTS_RESPONSEZ'NO_RETURNING_USER_FROM_FETCHED_ACCOUNTSr   r$   r   r   r   r   r   rã   f  s   ÿrã   c                   @  sD   e Zd ZU dZded< ded< ddœdd	„Zedd d
œ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[   rX   rÚ   Úclient_hint_issue_reasonr   r   c                 C  s&   t ƒ }| j ¡ |d< | j ¡ |d< |S )NrZ   ÚclientHintIssueReason)r   rX   r   rç   r   r   r   r   r   ‰  s    zClientHintIssueDetails.to_jsonr   c                 C  s    | t  |d ¡t |d ¡d�S )NrZ   rè   )rX   rç   )r[   r   rÚ   r   r   r   r   r   �  s    ÿÿüz ClientHintIssueDetails.from_jsonNr   r   r   r   r   ræ   €  s   
ræ   c                   @  sL   e Zd ZU ded< ded< dZded< ddœd	d
„Zedd dœdd„ƒZdS )ÚFailedRequestInfor   r)   Úfailure_messageNr&   r'   r   r   c                 C  s6   t ƒ }| j|d< | j|d< | jd ur2| j ¡ |d< |S )Nr)   ÚfailureMessager*   )r   r)   rê   r'   r   r   r   r   r   r   £  s    


zFailedRequestInfo.to_jsonr   c                 C  s>   | t |d ƒt |d ƒ| dd ¡d ur6tj |d ¡nd d�S )Nr)   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                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚPartitioningBlobURLInfoZBlockedCrossPartitionFetchingZEnforceNoopenerForNavigationr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   º  s    zPartitioningBlobURLInfo.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ½  s    z!PartitioningBlobURLInfo.from_jsonN)r   r    r!   Z BLOCKED_CROSS_PARTITION_FETCHINGZENFORCE_NOOPENER_FOR_NAVIGATIONr   r$   r   r   r   r   r   rì   ¶  s
   rì   c                   @  s@   e Zd ZU ded< ded< ddœdd„Zedd d	œd
d„ƒZdS )ÚPartitioningBlobURLIssueDetailsr   r)   rì   Úpartitioning_blob_url_infor   r   c                 C  s"   t ƒ }| j|d< | j ¡ |d< |S )Nr)   ÚpartitioningBlobURLInfo)r   r)   rî   r   r   r   r   r   r   É  s
    
ÿz'PartitioningBlobURLIssueDetails.to_jsonr   c                 C  s   | t |d ƒt |d ¡d�S )Nr)   rï   )r)   rî   )r   rì   r   r   r   r   r   r   Ñ  s    
ÿþz)PartitioningBlobURLIssueDetails.from_jsonNrz   r   r   r   r   rí   Â  s
   
rí   c                   @  sF   e Zd ZdZdZdZdZdZdZddœd	d
„Z	e
dd dœdd„ƒZdS )ÚElementAccessibilityIssueReasonZDisallowedSelectChildZDisallowedOptGroupChildZNonPhrasingContentOptionChildZInteractiveContentOptionChildZInteractiveContentLegendChildZ#InteractiveContentSummaryDescendantr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   å  s    z'ElementAccessibilityIssueReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   è  s    z)ElementAccessibilityIssueReason.from_jsonN)r   r    r!   ZDISALLOWED_SELECT_CHILDZDISALLOWED_OPT_GROUP_CHILDZ!NON_PHRASING_CONTENT_OPTION_CHILDZ INTERACTIVE_CONTENT_OPTION_CHILDZ INTERACTIVE_CONTENT_LEGEND_CHILDZ&INTERACTIVE_CONTENT_SUMMARY_DESCENDANTr   r$   r   r   r   r   r   rð   Û  s   ÿrð   c                   @  sL   e Zd ZU dZded< ded< ded< dd	œd
d„Zedd dœdd„ƒZdS )Ú ElementAccessibilityIssueDetailsz[
    This issue warns about errors in the select
    or summary element content model.
    r¯   Únode_idrð   Ú"element_accessibility_issue_reasonr…   Úhas_disallowed_attributesr   r   c                 C  s0   t ƒ }| j ¡ |d< | j ¡ |d< | j|d< |S )NÚnodeIdÚelementAccessibilityIssueReasonÚhasDisallowedAttributes)r   rò   r   ró   rô   r   r   r   r   r   ÷  s    ÿ
z(ElementAccessibilityIssueDetails.to_jsonr   c                 C  s,   | t j |d ¡t |d ¡t|d ƒd�S )Nrõ   rö   r÷   )rò   ró   rô   )r   r’   r   rð   r…   r   r   r   r   r      s    ÿ
ùz*ElementAccessibilityIssueDetails.from_jsonNr   r   r   r   r   rñ   í  s   
	rñ   c                   @  s6   e Zd ZdZdZddœdd„Zedd dœdd	„ƒZd
S )ÚStyleSheetLoadingIssueReasonZLateImportRuleZRequestFailedr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r     s    z$StyleSheetLoadingIssueReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r     s    z&StyleSheetLoadingIssueReason.from_jsonN)r   r    r!   ZLATE_IMPORT_RULEZREQUEST_FAILEDr   r$   r   r   r   r   r   rø     s
   rø   c                   @  sP   e Zd ZU dZded< ded< dZded< d	d
œdd„Zed	d dœdd„ƒZdS )ÚStylesheetLoadingIssueDetailszAThis issue warns when a referenced stylesheet couldn't be loaded.r[   rX   rø   Ú style_sheet_loading_issue_reasonNz"typing.Optional[FailedRequestInfo]Úfailed_request_infor   r   c                 C  s>   t ƒ }| j ¡ |d< | j ¡ |d< | jd ur:| j ¡ |d< |S )NrZ   ÚstyleSheetLoadingIssueReasonÚfailedRequestInfo)r   rX   r   rú   rû   r   r   r   r   r   #  s    ÿ
z%StylesheetLoadingIssueDetails.to_jsonr   c                 C  s@   | t  |d ¡t |d ¡| dd ¡d ur8t |d ¡nd d�S )NrZ   rü   rý   )rX   rú   rû   )r[   r   rø   r,   ré   r   r   r   r   r   -  s    ÿÿýÿóz'StylesheetLoadingIssueDetails.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ZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚPropertyRuleIssueReasonZInvalidSyntaxZInvalidInitialValueZInvalidInheritsÚInvalidNamer   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   F  s    zPropertyRuleIssueReason.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   I  s    z!PropertyRuleIssueReason.from_jsonN)
r   r    r!   ZINVALID_SYNTAXZINVALID_INITIAL_VALUEZINVALID_INHERITSZINVALID_NAMEr   r$   r   r   r   r   r   rþ   @  s   rþ   c                   @  sP   e Zd ZU dZded< ded< dZded< d	d
œdd„Zed	d dœdd„ƒZdS )ÚPropertyRuleIssueDetailszp
    This issue warns about errors in property rules that lead to property
    registrations being ignored.
    r[   rX   rþ   Úproperty_rule_issue_reasonNr(   Úproperty_valuer   r   c                 C  s:   t ƒ }| j ¡ |d< | j ¡ |d< | jd ur6| j|d< |S )NrZ   ÚpropertyRuleIssueReasonÚpropertyValue)r   rX   r   r  r  r   r   r   r   r   [  s    ÿ

z PropertyRuleIssueDetails.to_jsonr   c                 C  s>   | t  |d ¡t |d ¡| dd ¡d ur6t|d ƒnd d�S )NrZ   r  r  )rX   r  r  )r[   r   rþ   r,   r   r   r   r   r   r   e  s    ÿÿÿ÷z"PropertyRuleIssueDetails.from_json)	r   r    r!   r"   r#   r  r   r$   r   r   r   r   r   r   N  s   

r   c                   @  s:   e Zd ZdZdZdZddœdd„Zedd dœd	d
„ƒZdS )ÚUserReidentificationIssueTypeZBlockedFrameNavigationZBlockedSubresourceZNoisedCanvasReadbackr   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   y  s    z%UserReidentificationIssueType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   |  s    z'UserReidentificationIssueType.from_jsonN)	r   r    r!   ZBLOCKED_FRAME_NAVIGATIONZBLOCKED_SUBRESOURCEZNOISED_CANVAS_READBACKr   r$   r   r   r   r   r   r  t  s   r  c                   @  sT   e Zd ZU dZded< dZded< dZded< d	d
œdd„Zed	d dœdd„ƒZ	dS )Ú UserReidentificationIssueDetailsze
    This issue warns about uses of APIs that may be considered misuse to
    re-identify users.
    r  r;   NrG   rH   rW   rX   r   r   c                 C  sH   t ƒ }| j ¡ |d< | jd ur,| j ¡ |d< | jd urD| j ¡ |d< |S )Nr=   rH   rZ   )r   r;   r   rH   rX   r   r   r   r   r   �  s    

z(UserReidentificationIssueDetails.to_jsonr   c                 C  sT   | t  |d ¡| dd ¡d ur,t |d ¡nd | dd ¡d urLt |d ¡nd d�S )Nr=   rH   rZ   )r;   rH   rX   )r  r   r,   r%   r[   r   r   r   r   r   –  s    ÿýÿ÷z*UserReidentificationIssueDetails.from_json)
r   r    r!   r"   r#   rH   rX   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dœdd„Zedd dœdd„ƒZdS )ÚPermissionElementIssueTypeZInvalidTypeZFencedFrameDisallowedZCspFrameAncestorsMissingZPermissionsPolicyBlockedZPaddingRightUnsupportedZPaddingBottomUnsupportedZInsetBoxShadowUnsupportedZRequestInProgressZUntrustedEventZRegistrationFailedZTypeNotSupportedZInvalidTypeActivationZSecurityChecksFailedZActivationDisabledZGeolocationDeprecatedZInvalidDisplayStyleZNonOpaqueColorZLowContrastZFontSizeTooSmallZFontSizeTooLargeZInvalidSizeValuer   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   ¼  s    z"PermissionElementIssueType.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   ¿  s    z$PermissionElementIssueType.from_jsonN)r   r    r!   ZINVALID_TYPEZFENCED_FRAME_DISALLOWEDZCSP_FRAME_ANCESTORS_MISSINGZPERMISSIONS_POLICY_BLOCKEDZPADDING_RIGHT_UNSUPPORTEDZPADDING_BOTTOM_UNSUPPORTEDZINSET_BOX_SHADOW_UNSUPPORTEDZREQUEST_IN_PROGRESSZUNTRUSTED_EVENTZREGISTRATION_FAILEDZTYPE_NOT_SUPPORTEDZINVALID_TYPE_ACTIVATIONZSECURITY_CHECKS_FAILEDZACTIVATION_DISABLEDZGEOLOCATION_DEPRECATEDZINVALID_DISPLAY_STYLEZNON_OPAQUE_COLORZLOW_CONTRASTZFONT_SIZE_TOO_SMALLZFONT_SIZE_TOO_LARGEZINVALID_SIZE_VALUEr   r$   r   r   r   r   r   r  ¥  s0   r  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Z	ded< dZ
ded< dZded< ddœdd„Zedd dœdd„ƒZdS )ÚPermissionElementIssueDetailszBThis issue warns about improper usage of the <permission> element.r  Ú
issue_typeNr(   r;   rŠ   rò   útyping.Optional[bool]r•   Úpermission_nameÚoccluder_node_infoÚoccluder_parent_node_infoÚdisable_reasonr   r   c                 C  s¨   t ƒ }| j ¡ |d< | jd ur(| j|d< | jd ur@| 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 )	NÚ	issueTyper=   rõ   r–   ÚpermissionNameÚoccluderNodeInfoÚoccluderParentNodeInfoÚdisableReason)
r   r	  r   r;   rò   r•   r  r  r  r  r   r   r   r   r   Ø  s"    












z%PermissionElementIssueDetails.to_jsonr   c                 C  sê   | t  |d ¡| dd ¡d ur*t|d ƒnd | dd ¡d urLtj |d ¡nd | dd ¡d urjt|d ƒnd | dd ¡d urˆt|d ƒnd | dd ¡d ur¦t|d ƒnd | dd ¡d urÄt|d ƒnd | dd ¡d urât|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   ë  s0    ÿÿÿÿÿÿÿêz'PermissionElementIssueDetails.from_json)r   r    r!   r"   r#   r;   rò   r•   r  r  r  r  r   r$   r   r   r   r   r   r  Ä  s   
r  c                   @  sP   e Zd ZU dZded< ded< dZded< d	d
œdd„Zed	d dœdd„ƒZdS )Ú,SelectivePermissionsInterventionIssueDetailszw
    The issue warns about blocked calls to privacy sensitive APIs
    via the Selective Permissions Intervention.
    r   Úapi_nameznetwork.AdAncestryÚad_ancestryNz#typing.Optional[runtime.StackTrace]Ústack_tracer   r   c                 C  s:   t ƒ }| j|d< | j ¡ |d< | jd ur6| j ¡ |d< |S )NÚapiNameÚ
adAncestryÚ
stackTrace)r   r  r  r   r  r   r   r   r   r     s    

z4SelectivePermissionsInterventionIssueDetails.to_jsonr   c                 C  sB   | t |d ƒtj |d ¡| dd ¡d ur:tj |d ¡nd d�S )Nr  r  r  )r  r  r  )r   r   Z
AdAncestryr   r,   r
   Z
StackTracer   r   r   r   r     s    
ÿûz6SelectivePermissionsInterventionIssueDetails.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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 œd!d"„Z!e"dd d#œ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	CorsIssueZAttributionReportingIssueZQuirksModeIssueZPartitioningBlobURLIssueZNavigatorUserAgentIssueZGenericIssueZDeprecationIssueZClientHintIssueZFederatedAuthRequestIssueZBounceTrackingIssueZCookieDeprecationMetadataIssueZStylesheetLoadingIssueZ!FederatedAuthUserInfoRequestIssueZPropertyRuleIssueZSharedDictionaryIssueZElementAccessibilityIssueZSRIMessageSignatureIssueZUnencodedDigestIssueZConnectionAllowlistIssueZUserReidentificationIssueZPermissionElementIssueZPerformanceIssueZ%SelectivePermissionsInterventionIssuer   r   c                 C  s   | j S r3   r4   r6   r   r   r   r   Q  s    zInspectorIssueCode.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   T  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
CORS_ISSUEZATTRIBUTION_REPORTING_ISSUEZQUIRKS_MODE_ISSUEZPARTITIONING_BLOB_URL_ISSUEZNAVIGATOR_USER_AGENT_ISSUEZGENERIC_ISSUEZDEPRECATION_ISSUEZCLIENT_HINT_ISSUEZFEDERATED_AUTH_REQUEST_ISSUEZBOUNCE_TRACKING_ISSUEZ!COOKIE_DEPRECATION_METADATA_ISSUEZSTYLESHEET_LOADING_ISSUEZ&FEDERATED_AUTH_USER_INFO_REQUEST_ISSUEZPROPERTY_RULE_ISSUEZSHARED_DICTIONARY_ISSUEZELEMENT_ACCESSIBILITY_ISSUEZSRI_MESSAGE_SIGNATURE_ISSUEZUNENCODED_DIGEST_ISSUEZCONNECTION_ALLOWLIST_ISSUEZUSER_REIDENTIFICATION_ISSUEZPERMISSION_ELEMENT_ISSUEZPERFORMANCE_ISSUEZ(SELECTIVE_PERMISSIONS_INTERVENTION_ISSUEr   r$   r   r   r   r   r   r  )  sF   ÿÿ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Zd)ed*< dZd+ed,< dZd-ed.< dZd/ed0< dZd1ed2< dZd3ed4< dZd5ed6< dZd7ed8< dZ d9ed:< dZ!d;ed<< d=d>œd?d@„Z"e#d=d dAœdBdC„ƒZ$dS )DÚ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[CorsIssueDetails]Úcors_issue_detailsz1typing.Optional[AttributionReportingIssueDetails]Ú#attribution_reporting_issue_detailsz'typing.Optional[QuirksModeIssueDetails]Úquirks_mode_issue_detailsz0typing.Optional[PartitioningBlobURLIssueDetails]Ú#partitioning_blob_url_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_detailsz6typing.Optional[CookieDeprecationMetadataIssueDetails]Ú)cookie_deprecation_metadata_issue_detailsz.typing.Optional[StylesheetLoadingIssueDetails]Ú stylesheet_loading_issue_detailsz)typing.Optional[PropertyRuleIssueDetails]Úproperty_rule_issue_detailsz9typing.Optional[FederatedAuthUserInfoRequestIssueDetails]Ú.federated_auth_user_info_request_issue_detailsz-typing.Optional[SharedDictionaryIssueDetails]Úshared_dictionary_issue_detailsz1typing.Optional[ElementAccessibilityIssueDetails]Ú#element_accessibility_issue_detailsz0typing.Optional[SRIMessageSignatureIssueDetails]Ú#sri_message_signature_issue_detailsz,typing.Optional[UnencodedDigestIssueDetails]Úunencoded_digest_issue_detailsz0typing.Optional[ConnectionAllowlistIssueDetails]Ú"connection_allowlist_issue_detailsz1typing.Optional[UserReidentificationIssueDetails]Ú#user_reidentification_issue_detailsz.typing.Optional[PermissionElementIssueDetails]Ú permission_element_issue_detailsz(typing.Optional[PerformanceIssueDetails]Úperformance_issue_detailsz=typing.Optional[SelectivePermissionsInterventionIssueDetails]Ú0selective_permissions_intervention_issue_detailsr   r   c                 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< | 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�rH| j ¡ |d< | jd u�rb| 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ÚcorsIssueDetailsÚ attributionReportingIssueDetailsÚquirksModeIssueDetailsÚpartitioningBlobURLIssueDetailsÚnavigatorUserAgentIssueDetailsÚgenericIssueDetailsÚdeprecationIssueDetailsÚclientHintIssueDetailsÚ federatedAuthRequestIssueDetailsÚbounceTrackingIssueDetailsÚ%cookieDeprecationMetadataIssueDetailsÚstylesheetLoadingIssueDetailsÚpropertyRuleIssueDetailsÚ(federatedAuthUserInfoRequestIssueDetailsÚsharedDictionaryIssueDetailsÚ elementAccessibilityIssueDetailsÚsriMessageSignatureIssueDetailsÚunencodedDigestIssueDetailsÚconnectionAllowlistIssueDetailsÚ userReidentificationIssueDetailsÚpermissionElementIssueDetailsÚperformanceIssueDetailsÚ,selectivePermissionsInterventionIssueDetails)r   r  r   r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r   r   r   r   r   ¨  sª    

ÿ
ÿ

ÿ
ÿ

ÿ
ÿ
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzInspectorIssueDetails.to_jsonr   c                    sü   ‡ fdd„}| |dt ƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|d	tƒ|d
tƒ|dtƒ|dt	ƒ|dt
ƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒ|dtƒd �S )!Nc                   s    ˆ   | ¡}|d ur| |¡S d S r3   )r,   r   )ÚkeyZ
detail_clsÚval©r   r   r   Ú
get_detail  s    
z3InspectorIssueDetails.from_json.<locals>.get_detailr:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  rN  rO  rP  rQ  rR  rS  rT  rU  rV  )r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  )r?   rd   rp   rx   rƒ   r”   r—   r¨   r­   rí   rµ   rÇ   rÌ   ræ   rÛ   rÏ   rÒ   rù   r   râ   r¶   rñ   r¹   rÁ   rÅ   r  r  rU   r  )r   r   rZ  r   rY  r   r     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/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r   r$   r   r   r   r   r   r  Y  sl   
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ
p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   r   c                 C  s   | S r3   r   r6   r   r   r   r   ‹  s    zIssueId.to_jsonr   c                 C  s   | |ƒS r3   r   r   r   r   r   r   Ž  s    zIssueId.from_jsonc                   s   d  tƒ  ¡ ¡S )NzIssueId({}))ÚformatÚsuperÚ__repr__r6   ©Ú	__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                   @  sP   e Zd ZU dZded< ded< dZded< d	d
œdd„Zed	d dœdd„ƒZdS )ÚInspectorIssuez.An inspector issue reported from the back-end.r  Úcoder  ÚdetailsNztyping.Optional[IssueId]Úissue_idr   r   c                 C  s>   t ƒ }| j ¡ |d< | j ¡ |d< | jd ur:| j ¡ |d< |S )Nrc  rd  ÚissueId)r   rc  r   rd  re  r   r   r   r   r   Ÿ  s    
zInspectorIssue.to_jsonr   c                 C  s@   | t  |d ¡t |d ¡| dd ¡d ur8t |d ¡nd d�S )Nrc  rd  rf  )rc  rd  re  )r  r   r  r,   r[  r   r   r   r   r   §  s    ÿûzInspectorIssue.from_json)	r   r    r!   r"   r#   re  r   r$   r   r   r   r   r   rb  –  s   
rb  znetwork.RequestIdr   ztyping.Optional[float]r
  zXtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]])r'   ÚencodingÚqualityÚ	size_onlyr   c                 c  s€   t ƒ }|  ¡ |d< ||d< |dur*||d< |dur:||d< d|dœ}|V }| dd¡durft|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.
        (Encoded as a base64 string when passed over JSON)
        1. **originalSize** - Size before re-encoding.
        2. **encodedSize** - Size after re-encoding.
    r*   rg  Nrh  ZsizeOnlyzAudits.getEncodedResponse)ÚmethodÚparamsÚbodyZoriginalSizeZencodedSize)r   r   r,   r   r|   )r'   rg  rh  ri  rk  Úcmd_dictr   r   r   r   Úget_encoded_response²  s    þ

ýrn  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.
    rj  zAudits.disableNr   ©rm  r   r   r   r   ÚdisableÝ  s    ÿrp  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.
    rj  zAudits.enableNr   ro  r   r   r   Úenableè  s    ÿrq  zLtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[GenericIssueDetails]]c                  c  s    ddi} | V }dd„ |d D ƒS )zv
    Runs the form issues check for the target page.
    Found issues are reported using Audits.issueAdded event.
    rj  zAudits.checkFormsIssuesc                 S  s   g | ]}t  |¡‘qS r   )rÇ   r   rK   r   r   r   rN    	  r¿   z&check_forms_issues.<locals>.<listcomp>Z
formIssuesr   ro  r   r   r   Úcheck_forms_issuesó  s    
ÿrr  zAudits.issueAddedc                   @  s*   e Zd ZU ded< edd dœdd„ƒZdS )Ú
IssueAddedrb  Úissuer   r   c                 C  s   | t  |d ¡d�S )Nrt  )rt  )rb  r   r   r   r   r   r   	  s    zIssueAdded.from_jsonN)r   r    r!   r#   r$   r   r   r   r   r   rs  	  s   
rs  )NN)WÚ
__future__r   ÚenumÚtypingÚdataclassesr   Úutilr   r   Ú r   r   r	   r
   r   r%   r-   ÚEnumr2   r7   r8   r9   r:   r?   rT   rU   r\   r]   rd   ro   rp   rv   rw   rx   r{   r[   rƒ   r“   r”   r—   r¡   r¤   r¥   r¦   r§   r¨   r­   rµ   r¶   r¹   rÁ   rÅ   rÆ   rÇ   rÌ   rÏ   rÒ   rÚ   rÛ   rÜ   râ   rã   ræ   ré   rì   rí   rð   rñ   rø   rù   rþ   r   r  r  r  r  r  r  r  r   r[  rb  rn  rp  rq  rr  rs  r   r   r   r   Ú<module>   sô   *O'6#79#+7)#0+"!:&%#B!0  -  ü+