o
    M,h\                    @  s  d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ ddl	mZ dd	l	mZ eG d
d dZeG dd dZeG dd dZG dd dejZG dd dejZG dd dejZ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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 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'G d<d= d=ejZ(G d>d? d?ejZ)eG d@dA dAZ*eG dBdC dCZ+eG dDdE dEZ,eG dFdG dGZ-eG dHdI dIZ.G dJdK dKej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Z5G dXdY dYejZ6eG dZd[ d[Z7G d\d] d]ejZ8eG d^d_ d_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>G djdk dkejZ?eG dldm dmZ@G dndo doejZAeG dpdq dqZBG drds dsejZCeG dtdu duZDG dvdw dwejZEeG dxdy dyZFG dzd{ d{eGZHeG d|d} d}ZI		ddddZJdddZKdddZL	ddddZMdddZNedeG dd dZOdS )    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)page)runtimec                   @  s>   e Zd ZU dZded< ded< ded< dd Zedd	 Zd
S )AffectedCookiezL
    Information about a cookie that is affected by an inspector issue.
    strnamepathdomainc                 C  s(   t  }| j|d< | j|d< | j|d< |S )Nr   r   r   )dictr   r   r   selfjson r   z/var/www/www-root/data/www/bot.pdev.uz/venv/lib/python3.10/site-packages/selenium/webdriver/common/devtools/v139/audits.pyto_json   s
   


zAffectedCookie.to_jsonc                 C  s&   | t |d t |d t |d dS )Nr   r   r   )r   r   r   r   clsr   r   r   r   	from_json%   s
   


zAffectedCookie.from_jsonN__name__
__module____qualname____doc____annotations__r   classmethodr   r   r   r   r   r         
 r   c                   @  :   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.
    r   urlN"typing.Optional[network.RequestId]
request_idc                 C  ,   t  }| j|d< | jd ur| j |d< |S )Nr%   	requestId)r   r%   r'   r   r   r   r   r   r   8   
   

zAffectedRequest.to_jsonc                 C  s0   | t |d d|v rtj|d dS d dS )Nr%   r)   )r%   r'   r   r   	RequestIdr   r   r   r   r   r   ?   s   
zAffectedRequest.from_json)	r   r   r   r   r    r'   r   r!   r   r   r   r   r   r$   .      
 r$   c                   @  .   e Zd ZU dZded< dd Zedd ZdS )	AffectedFramezE
    Information about the frame affected by an inspector issue.
    page.FrameIdframe_idc                 C     t  }| j |d< |S )NframeId)r   r1   r   r   r   r   r   r   N      zAffectedFrame.to_jsonc                 C  s   | t j|d dS )Nr3   )r1   )r	   FrameIdr   r   r   r   r   r   S   s   zAffectedFrame.from_jsonNr   r   r   r   r   r/   G   s   
 r/   c                   @  L   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 )CookieExclusionReason&ExcludeSameSiteUnspecifiedTreatedAsLaxExcludeSameSiteNoneInsecureExcludeSameSiteLaxExcludeSameSiteStrictExcludeInvalidSameParty!ExcludeSamePartyCrossPartyContextExcludeDomainNonASCII-ExcludeThirdPartyCookieBlockedInFirstPartySetExcludeThirdPartyPhaseoutExcludePortMismatchExcludeSchemeMismatchc                 C     | j S Nvaluer   r   r   r   r   g      zCookieExclusionReason.to_jsonc                 C     | |S rD   r   r   r   r   r   r   j      zCookieExclusionReason.from_jsonN)r   r   r   ,EXCLUDE_SAME_SITE_UNSPECIFIED_TREATED_AS_LAXEXCLUDE_SAME_SITE_NONE_INSECUREEXCLUDE_SAME_SITE_LAXEXCLUDE_SAME_SITE_STRICTEXCLUDE_INVALID_SAME_PARTY&EXCLUDE_SAME_PARTY_CROSS_PARTY_CONTEXTEXCLUDE_DOMAIN_NON_ASCII5EXCLUDE_THIRD_PARTY_COOKIE_BLOCKED_IN_FIRST_PARTY_SETEXCLUDE_THIRD_PARTY_PHASEOUTEXCLUDE_PORT_MISMATCHEXCLUDE_SCHEME_MISMATCHr   r!   r   r   r   r   r   r7   Z       r7   c                   @  sX   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 Zedd ZdS )CookieWarningReason'WarnSameSiteUnspecifiedCrossSiteContextWarnSameSiteNoneInsecure%WarnSameSiteUnspecifiedLaxAllowUnsafe$WarnSameSiteStrictLaxDowngradeStrict&WarnSameSiteStrictCrossDowngradeStrict#WarnSameSiteStrictCrossDowngradeLax#WarnSameSiteLaxCrossDowngradeStrict WarnSameSiteLaxCrossDowngradeLax WarnAttributeValueExceedsMaxSizeWarnDomainNonASCIIWarnThirdPartyPhaseout.WarnCrossSiteRedirectDowngradeChangesInclusionWarnDeprecationTrialMetadataWarnThirdPartyCookieHeuristicc                 C  rC   rD   rE   rG   r   r   r   r      rH   zCookieWarningReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r      rJ   zCookieWarningReason.from_jsonN)r   r   r   -WARN_SAME_SITE_UNSPECIFIED_CROSS_SITE_CONTEXTWARN_SAME_SITE_NONE_INSECURE+WARN_SAME_SITE_UNSPECIFIED_LAX_ALLOW_UNSAFE*WARN_SAME_SITE_STRICT_LAX_DOWNGRADE_STRICT,WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_STRICT)WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_LAX)WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_STRICT&WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_LAX%WARN_ATTRIBUTE_VALUE_EXCEEDS_MAX_SIZEWARN_DOMAIN_NON_ASCIIWARN_THIRD_PARTY_PHASEOUT4WARN_CROSS_SITE_REDIRECT_DOWNGRADE_CHANGES_INCLUSIONWARN_DEPRECATION_TRIAL_METADATA!WARN_THIRD_PARTY_COOKIE_HEURISTICr   r!   r   r   r   r   r   rW   o   s$    rW   c                   @  (   e Zd ZdZdZdd Zedd ZdS )CookieOperation	SetCookie
ReadCookiec                 C  rC   rD   rE   rG   r   r   r   r      rH   zCookieOperation.to_jsonc                 C  rI   rD   r   r   r   r   r   r      rJ   zCookieOperation.from_jsonN)r   r   r   
SET_COOKIEREAD_COOKIEr   r!   r   r   r   r   r   ru          ru   c                   @  0   e Zd ZdZdZdZdZdd Zedd Z	d	S )
InsightTypezM
    Represents the category of insight that a cookie issue falls under.
    GitHubResourceGracePeriod
Heuristicsc                 C  rC   rD   rE   rG   r   r   r   r      rH   zInsightType.to_jsonc                 C  rI   rD   r   r   r   r   r   r      rJ   zInsightType.from_jsonN)
r   r   r   r   GIT_HUB_RESOURCEGRACE_PERIOD
HEURISTICSr   r!   r   r   r   r   r   r|      s    r|   c                   @  r#   )CookieIssueInsightzE
    Information about the suggested solution to a cookie issue.
    r|   type_Ntyping.Optional[str]table_entry_urlc                 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_jsonc                 C  s.   | t |d d|v rt|d dS d dS )Nr   r   )r   r   )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      r-   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 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_reasonsru   	operationNztyping.Optional[AffectedCookie]cookier   raw_cookie_linesite_for_cookies
cookie_url typing.Optional[AffectedRequest]requestz#typing.Optional[CookieIssueInsight]insightc                 C  s   t  }dd | jD |d< dd | jD |d< | j |d< | jd ur*| j |d< | jd ur4| j|d< | jd ur>| j|d	< | jd urH| j|d
< | j	d urT| j	 |d< | j
d ur`| j
 |d< |S )Nc                 S     g | ]}|  qS r   r   .0ir   r   r   
<listcomp>       z.CookieIssueDetails.to_json.<locals>.<listcomp>cookieWarningReasonsc                 S  r   r   r   r   r   r   r   r      r   cookieExclusionReasonsr   r   rawCookieLinesiteForCookies	cookieUrlr   r   )r   r   r   r   r   r   r   r   r   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 r"t|d nd d|v r-t|d nd d	|v r8t|d	 nd d
|v rCt|d
 nd d|v rOt|d nd d|v r]t|d d	S d d	S )Nc                 S     g | ]}t |qS r   )rW   r   r   r   r   r   r          z0CookieIssueDetails.from_json.<locals>.<listcomp>r   c                 S  r   r   )r7   r   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   r$   r   r   r   r   r   r      s   	zCookieIssueDetails.from_json)r   r   r   r   r    r   r   r   r   r   r   r   r!   r   r   r   r   r   r      s   
 r   c                   @  ,   e Zd ZdZdZdZdd Zedd ZdS )	MixedContentResolutionStatusMixedContentBlocked!MixedContentAutomaticallyUpgradedMixedContentWarningc                 C  rC   rD   rE   rG   r   r   r   r     rH   z$MixedContentResolutionStatus.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z&MixedContentResolutionStatus.from_jsonN)	r   r   r   MIXED_CONTENT_BLOCKED$MIXED_CONTENT_AUTOMATICALLY_UPGRADEDMIXED_CONTENT_WARNINGr   r!   r   r   r   r   r   r          r   c                   @  s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdd Z e!d d! Z"d"S )#MixedContentResourceTypeAttributionSrcAudioBeacon	CSPReportDownloadEventSourceFaviconFontFormFrameImageImportJSONManifestPing
PluginDataPluginResourcePrefetchResourceScriptServiceWorkerSharedWorkerSpeculationRules
StylesheetTrackVideoWorkerXMLHttpRequestXSLTc                 C  rC   rD   rE   rG   r   r   r   r   *  rH   z MixedContentResourceType.to_jsonc                 C  rI   rD   r   r   r   r   r   r   -  rJ   z"MixedContentResourceType.from_jsonN)#r   r   r   ATTRIBUTION_SRCAUDIOBEACON
CSP_REPORTDOWNLOADEVENT_SOURCEFAVICONFONTFORMFRAMEIMAGEIMPORTr   MANIFESTPINGPLUGIN_DATAPLUGIN_RESOURCEPREFETCHRESOURCESCRIPTSERVICE_WORKERSHARED_WORKERSPECULATION_RULES
STYLESHEETTRACKVIDEOWORKERXML_HTTP_REQUESTr   r   r!   r   r   r   r   r   r     sB    r   c                   @  s^   e Zd ZU ded< ded< ded< dZded< dZd	ed
< dZded< dd Zedd Z	dS )MixedContentIssueDetailsr   resolution_statusr   insecure_urlmain_resource_urlNz)typing.Optional[MixedContentResourceType]resource_typer   r   typing.Optional[AffectedFrame]framec                 C  st   t  }| j |d< | j|d< | j|d< | jd ur | j |d< | jd ur,| j |d< | jd ur8| j |d< |S )NresolutionStatusinsecureURLmainResourceURLresourceTyper   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   J  s   




z MixedContentIssueDetails.to_jsonc              
   C  st   | t |d t|d t|d d|v rt|d nd d|v r(t|d nd d|v r6t|d dS d dS )Nr   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r$   r/   r   r   r   r   r   W  s   

z"MixedContentIssueDetails.from_json)
r   r   r   r    r   r   r   r   r!   r   r   r   r   r   r   2  s   
 r   c                   @  sD   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
d Zedd ZdS )BlockedByResponseReasonz
    Enum indicating the reason a response has been blocked. These reasons are
    refinements of the net error BLOCKED_BY_RESPONSE.
     CoepFrameResourceNeedsCoepHeader+CoopSandboxedIFrameCannotNavigateToCoopPageCorpNotSameOrigin1CorpNotSameOriginAfterDefaultedToSameOriginByCoep0CorpNotSameOriginAfterDefaultedToSameOriginByDip7CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDipCorpNotSameSiteSRIMessageSignatureMismatchc                 C  rC   rD   rE   rG   r   r   r   r   q  rH   zBlockedByResponseReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r   t  rJ   z!BlockedByResponseReason.from_jsonN)r   r   r   r   %COEP_FRAME_RESOURCE_NEEDS_COEP_HEADER3COOP_SANDBOXED_I_FRAME_CANNOT_NAVIGATE_TO_COOP_PAGECORP_NOT_SAME_ORIGIN;CORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEP:CORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_DIPCCORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEP_AND_DIPCORP_NOT_SAME_SITESRI_MESSAGE_SIGNATURE_MISMATCHr   r!   r   r   r   r   r   r   c  s    r   c                   @  sN   e Zd ZU dZded< ded< dZded< dZded	< d
d Zedd Z	dS )BlockedByResponseIssueDetailsz
    Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
    code. Currently only used for COEP/COOP, but may be extended to include
    some CSP errors in the future.
    r$   r   r   reasonNr   parent_frameblocked_framec                 C  sV   t  }| j |d< | j |d< | jd ur| j |d< | jd ur)| j |d< |S )Nr   r  parentFrameblockedFrame)r   r   r   r  r  r  r   r   r   r   r     s   

z%BlockedByResponseIssueDetails.to_jsonc                 C  sT   | t |d t|d d|v rt|d nd d|v r&t|d dS d dS )Nr   r  r  r  )r   r  r  r  )r$   r   r   r/   r   r   r   r   r     s   z'BlockedByResponseIssueDetails.from_json)
r   r   r   r   r    r  r  r   r!   r   r   r   r   r   r   y  s   
 
r   c                   @  rt   )HeavyAdResolutionStatusHeavyAdBlockedHeavyAdWarningc                 C  rC   rD   rE   rG   r   r   r   r     rH   zHeavyAdResolutionStatus.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z!HeavyAdResolutionStatus.from_jsonN)r   r   r   HEAVY_AD_BLOCKEDHEAVY_AD_WARNINGr   r!   r   r   r   r   r   r    rz   r  c                   @  r   )	HeavyAdReasonNetworkTotalLimitCpuTotalLimitCpuPeakLimitc                 C  rC   rD   rE   rG   r   r   r   r     rH   zHeavyAdReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   zHeavyAdReason.from_jsonN)	r   r   r   NETWORK_TOTAL_LIMITCPU_TOTAL_LIMITCPU_PEAK_LIMITr   r!   r   r   r   r   r   r    r   r  c                   @  s:   e Zd ZU ded< ded< ded< dd Zed	d
 ZdS )HeavyAdIssueDetailsr  
resolutionr  r  r/   r   c                 C  s4   t  }| j |d< | j |d< | j |d< |S )Nr  r  r   )r   r  r   r  r   r   r   r   r   r     s
   zHeavyAdIssueDetails.to_jsonc                 C  s,   | t |d t|d t|d dS )Nr  r  r   )r  r  r   )r  r   r  r/   r   r   r   r   r     s
   zHeavyAdIssueDetails.from_jsonNr   r   r   r    r   r!   r   r   r   r   r   r    s   
 r  c                   @  s<   e 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 )"ContentSecurityPolicyViolationTypekInlineViolationkEvalViolationkURLViolationkSRIViolationkTrustedTypesSinkViolationkTrustedTypesPolicyViolationkWasmEvalViolationc                 C  rC   rD   rE   rG   r   r   r   r     rH   z*ContentSecurityPolicyViolationType.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z,ContentSecurityPolicyViolationType.from_jsonN)r   r   r   K_INLINE_VIOLATIONK_EVAL_VIOLATIONK_URL_VIOLATIONK_SRI_VIOLATIONK_TRUSTED_TYPES_SINK_VIOLATION K_TRUSTED_TYPES_POLICY_VIOLATIONK_WASM_EVAL_VIOLATIONr   r!   r   r   r   r   r   r    s    r  c                   @  sF   e Zd ZU ded< ded< ded< dZded< d	d
 Zedd ZdS )SourceCodeLocationr   r%   intline_numbercolumn_numberNz!typing.Optional[runtime.ScriptId]	script_idc                 C  s@   t  }| j|d< | j|d< | j|d< | jd ur| j |d< |S )Nr%   
lineNumbercolumnNumberscriptId)r   r%   r&  r'  r(  r   r   r   r   r   r     s   



zSourceCodeLocation.to_jsonc                 C  sD   | t |d t|d t|d d|v rtj|d dS d dS )Nr%   r)  r*  r+  )r%   r&  r'  r(  )r   r%  r
   ScriptIdr   r   r   r   r   r     s   


zSourceCodeLocation.from_json)r   r   r   r    r(  r   r!   r   r   r   r   r   r$    s   
 	r$  c                   @  sj   e Zd ZU ded< ded< ded< dZded	< dZd
ed< dZded< dZded< dd Ze	dd Z
dS )!ContentSecurityPolicyIssueDetailsr   violated_directiveboolis_report_onlyr  &content_security_policy_violation_typeNr   blocked_urlr   frame_ancestor#typing.Optional[SourceCodeLocation]source_code_location"typing.Optional[dom.BackendNodeId]violating_node_idc                 C  s   t  }| j|d< | j|d< | j |d< | jd ur| j|d< | jd ur*| j |d< | jd ur6| j |d< | jd urB| j |d< |S )NviolatedDirectiveisReportOnly"contentSecurityPolicyViolationType
blockedURLframeAncestorsourceCodeLocationviolatingNodeId)	r   r.  r0  r1  r   r2  r3  r5  r7  r   r   r   r   r     s   






z)ContentSecurityPolicyIssueDetails.to_jsonc                 C  s   | t |d t|d t|d d|v rt |d nd d|v r't|d nd d|v r3t|d nd d|v rBtj|d dS d dS )	Nr8  r9  r:  r;  r<  r=  r>  )r.  r0  r1  r2  r3  r5  r7  )r   r/  r  r   r/   r$  r   BackendNodeIdr   r   r   r   r     s   

z+ContentSecurityPolicyIssueDetails.from_json)r   r   r   r    r2  r3  r5  r7  r   r!   r   r   r   r   r   r-    s   
 r-  c                   @  rt   )SharedArrayBufferIssueTypeTransferIssueCreationIssuec                 C  rC   rD   rE   rG   r   r   r   r   0  rH   z"SharedArrayBufferIssueType.to_jsonc                 C  rI   rD   r   r   r   r   r   r   3  rJ   z$SharedArrayBufferIssueType.from_jsonN)r   r   r   TRANSFER_ISSUECREATION_ISSUEr   r!   r   r   r   r   r   r@  ,  rz   r@  c                   @  >   e Zd ZU dZded< ded< ded< dd	 Zed
d ZdS )SharedArrayBufferIssueDetailsz
    Details for a issue arising from an SAB being instantiated in, or
    transferred to a context that is not cross-origin isolated.
    r$  r5  r/  
is_warningr@  r   c                 C  s0   t  }| j |d< | j|d< | j |d< |S )Nr=  	isWarningr   )r   r5  r   rG  r   r   r   r   r   r   D  
   
z%SharedArrayBufferIssueDetails.to_jsonc                 C  s*   | t |d t|d t|d dS )Nr=  rH  r   )r5  rG  r   )r$  r   r/  r@  r   r   r   r   r   K  s
   
z'SharedArrayBufferIssueDetails.from_jsonNr   r   r   r   r   rF  8  r"   rF  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.BackendNodeIdr7  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   r7  r   rL  rN  rO  rP  rQ  rR  r   r   r   r   r   d  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>  rS  rT  rU  rV  rW  rX  )r7  rL  rN  rO  rP  rQ  rR  )r   r?  r   r   rM  r   r   r   r   r   o  s   





z%LowTextContrastIssueDetails.from_jsonNr  r   r   r   r   rJ  T  s   
 rJ  c                   @  sn   e Zd ZU dZded< ded< ded< dZd	ed
< dZded< dZded< dZded< dd Z	e
dd ZdS )CorsIssueDetailszl
    Details for a CORS related issue, e.g. a warning or error related to
    CORS RFC1918 enforcement.
    znetwork.CorsErrorStatuscors_error_statusr/  rG  r$   r   Nr4  locationr   initiator_originz'typing.Optional[network.IPAddressSpace]resource_ip_address_spacez,typing.Optional[network.ClientSecurityState]client_security_statec                 C  s   t  }| j |d< | j|d< | j |d< | jd ur"| j |d< | jd ur,| j|d< | jd ur8| j |d< | jd urD| j |d< |S )NcorsErrorStatusrH  r   r[  initiatorOriginresourceIPAddressSpaceclientSecurityState)	r   rZ  r   rG  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 r)t|d nd d|v r6t j|d nd d|v rEt j|d dS d dS )	Nr_  rH  r   r[  r`  ra  rb  )rZ  rG  r   r[  r\  r]  r^  )	r   CorsErrorStatusr   r/  r$   r$  r   IPAddressSpace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   rY  |  s   
 rY  c                   @  t   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 Zedd ZdS )AttributionReportingIssueTypePermissionPolicyDisabledUntrustworthyReportingOriginInsecureContextInvalidHeaderInvalidRegisterTriggerHeaderSourceAndTriggerHeadersSourceIgnoredTriggerIgnoredOsSourceIgnoredOsTriggerIgnoredInvalidRegisterOsSourceHeaderInvalidRegisterOsTriggerHeaderWebAndOsHeadersNoWebOrOsSupport4NavigationRegistrationWithoutTransientUserActivationInvalidInfoHeaderNoRegisterSourceHeaderNoRegisterTriggerHeaderNoRegisterOsSourceHeaderNoRegisterOsTriggerHeader+NavigationRegistrationUniqueScopeAlreadySetc                 C  rC   rD   rE   rG   r   r   r   r     rH   z%AttributionReportingIssueType.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z'AttributionReportingIssueType.from_jsonN)r   r   r   PERMISSION_POLICY_DISABLEDUNTRUSTWORTHY_REPORTING_ORIGININSECURE_CONTEXTINVALID_HEADERINVALID_REGISTER_TRIGGER_HEADERSOURCE_AND_TRIGGER_HEADERSSOURCE_IGNOREDTRIGGER_IGNOREDOS_SOURCE_IGNOREDOS_TRIGGER_IGNORED!INVALID_REGISTER_OS_SOURCE_HEADER"INVALID_REGISTER_OS_TRIGGER_HEADERWEB_AND_OS_HEADERSNO_WEB_OR_OS_SUPPORT9NAVIGATION_REGISTRATION_WITHOUT_TRANSIENT_USER_ACTIVATIONINVALID_INFO_HEADERNO_REGISTER_SOURCE_HEADERNO_REGISTER_TRIGGER_HEADERNO_REGISTER_OS_SOURCE_HEADERNO_REGISTER_OS_TRIGGER_HEADER0NAVIGATION_REGISTRATION_UNIQUE_SCOPE_ALREADY_SETr   r!   r   r   r   r   r   rg    2    rg  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d Zedd ZdS )SharedDictionaryError UseErrorCrossOriginNoCorsRequestUseErrorDictionaryLoadFailure!UseErrorMatchingDictionaryNotUsed)UseErrorUnexpectedContentDictionaryHeader!WriteErrorCossOriginNoCorsRequestWriteErrorDisallowedBySettingsWriteErrorExpiredResponseWriteErrorFeatureDisabledWriteErrorInsufficientResourcesWriteErrorInvalidMatchField!WriteErrorInvalidStructuredHeaderWriteErrorNavigationRequestWriteErrorNoMatchFieldWriteErrorNonListMatchDestFieldWriteErrorNonSecureContextWriteErrorNonStringIdField"WriteErrorNonStringInMatchDestListWriteErrorNonStringMatchFieldWriteErrorNonTokenTypeFieldWriteErrorRequestAbortedWriteErrorShuttingDownWriteErrorTooLongIdFieldWriteErrorUnsupportedTypec                 C  rC   rD   rE   rG   r   r   r   r     rH   zSharedDictionaryError.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   zSharedDictionaryError.from_jsonN)r   r   r   &USE_ERROR_CROSS_ORIGIN_NO_CORS_REQUEST!USE_ERROR_DICTIONARY_LOAD_FAILURE&USE_ERROR_MATCHING_DICTIONARY_NOT_USED.USE_ERROR_UNEXPECTED_CONTENT_DICTIONARY_HEADER'WRITE_ERROR_COSS_ORIGIN_NO_CORS_REQUEST"WRITE_ERROR_DISALLOWED_BY_SETTINGSWRITE_ERROR_EXPIRED_RESPONSEWRITE_ERROR_FEATURE_DISABLED"WRITE_ERROR_INSUFFICIENT_RESOURCESWRITE_ERROR_INVALID_MATCH_FIELD%WRITE_ERROR_INVALID_STRUCTURED_HEADERWRITE_ERROR_NAVIGATION_REQUESTWRITE_ERROR_NO_MATCH_FIELD%WRITE_ERROR_NON_LIST_MATCH_DEST_FIELDWRITE_ERROR_NON_SECURE_CONTEXTWRITE_ERROR_NON_STRING_ID_FIELD)WRITE_ERROR_NON_STRING_IN_MATCH_DEST_LIST"WRITE_ERROR_NON_STRING_MATCH_FIELD WRITE_ERROR_NON_TOKEN_TYPE_FIELDWRITE_ERROR_REQUEST_ABORTEDWRITE_ERROR_SHUTTING_DOWNWRITE_ERROR_TOO_LONG_ID_FIELDWRITE_ERROR_UNSUPPORTED_TYPEr   r!   r   r   r   r   r   r    s6    r  c                   @  rf  )SRIMessageSignatureErrorMissingSignatureHeaderMissingSignatureInputHeaderInvalidSignatureHeaderInvalidSignatureInputHeader%SignatureHeaderValueIsNotByteSequence#SignatureHeaderValueIsParameterized%SignatureHeaderValueIsIncorrectLength SignatureInputHeaderMissingLabel%SignatureInputHeaderValueNotInnerList*SignatureInputHeaderValueMissingComponents(SignatureInputHeaderInvalidComponentType(SignatureInputHeaderInvalidComponentName3SignatureInputHeaderInvalidHeaderComponentParameter4SignatureInputHeaderInvalidDerivedComponentParameterSignatureInputHeaderKeyIdLength$SignatureInputHeaderInvalidParameter-SignatureInputHeaderMissingRequiredParameters ValidationFailedSignatureExpiredValidationFailedInvalidLength!ValidationFailedSignatureMismatch!ValidationFailedIntegrityMismatchc                 C  rC   rD   rE   rG   r   r   r   r     rH   z SRIMessageSignatureError.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z"SRIMessageSignatureError.from_jsonN)r   r   r   MISSING_SIGNATURE_HEADERMISSING_SIGNATURE_INPUT_HEADERINVALID_SIGNATURE_HEADERINVALID_SIGNATURE_INPUT_HEADER+SIGNATURE_HEADER_VALUE_IS_NOT_BYTE_SEQUENCE'SIGNATURE_HEADER_VALUE_IS_PARAMETERIZED*SIGNATURE_HEADER_VALUE_IS_INCORRECT_LENGTH$SIGNATURE_INPUT_HEADER_MISSING_LABEL+SIGNATURE_INPUT_HEADER_VALUE_NOT_INNER_LIST/SIGNATURE_INPUT_HEADER_VALUE_MISSING_COMPONENTS-SIGNATURE_INPUT_HEADER_INVALID_COMPONENT_TYPE-SIGNATURE_INPUT_HEADER_INVALID_COMPONENT_NAME9SIGNATURE_INPUT_HEADER_INVALID_HEADER_COMPONENT_PARAMETER:SIGNATURE_INPUT_HEADER_INVALID_DERIVED_COMPONENT_PARAMETER$SIGNATURE_INPUT_HEADER_KEY_ID_LENGTH(SIGNATURE_INPUT_HEADER_INVALID_PARAMETER2SIGNATURE_INPUT_HEADER_MISSING_REQUIRED_PARAMETERS#VALIDATION_FAILED_SIGNATURE_EXPIRED VALIDATION_FAILED_INVALID_LENGTH$VALIDATION_FAILED_SIGNATURE_MISMATCH$VALIDATION_FAILED_INTEGRITY_MISMATCHr   r!   r   r   r   r   r   r    r  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
    rg  violation_typeNr   r   r6  r7  r   invalid_parameterc                 C  s\   t  }| j |d< | jd ur| j |d< | jd ur"| j |d< | jd ur,| j|d< |S )NviolationTyper   r>  invalidParameter)r   r  r   r   r7  r  r   r   r   r   r     s   



z(AttributionReportingIssueDetails.to_jsonc                 C  s`   | t |d d|v rt|d nd d|v rtj|d nd d|v r,t|d dS d dS )Nr  r   r>  r  )r  r   r7  r  )rg  r   r$   r   r?  r   r   r   r   r   r   $  s   z*AttributionReportingIssueDetails.from_json)r   r   r   r   r    r   r7  r  r   r!   r   r   r   r   r   r    s   
 r  c                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< dd Zedd ZdS )QuirksModeIssueDetailszs
    Details for issues about documents in Quirks Mode
    or Limited Quirks Mode that affects page layouting.
    r/  is_limited_quirks_moderK  document_node_idr   r%   r0   r1   znetwork.LoaderId	loader_idc                 C  sH   t  }| j|d< | j |d< | j|d< | j |d< | j |d< |S )NisLimitedQuirksModedocumentNodeIdr%   r3   loaderId)r   r  r  r   r%   r1   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%   r3   r  )r  r  r%   r1   r  )	r/  r   r?  r   r   r	   r5   r   LoaderIdr   r   r   r   r   I  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%   Nr4  r[  c                 C  r(   )Nr%   r[  )r   r%   r[  r   r   r   r   r   r   Z  r*   z&NavigatorUserAgentIssueDetails.to_jsonc                 C  s.   | t |d d|v rt|d dS d dS )Nr%   r[  )r%   r[  )r   r$  r   r   r   r   r   r   a  s   
z(NavigatorUserAgentIssueDetails.from_json)r   r   r   r    r[  r   r!   r   r   r   r   r   r  T  s   
 r  c                   @  2   e Zd ZU ded< ded< dd Zedd Zd	S )
SharedDictionaryIssueDetailsr  shared_dictionary_errorr$   r   c                 C  &   t  }| j |d< | j |d< |S )NsharedDictionaryErrorr   )r   r  r   r   r   r   r   r   r   o     z$SharedDictionaryIssueDetails.to_jsonc                 C      | t |d t|d dS )Nr  r   )r  r   )r  r   r$   r   r   r   r   r   u     z&SharedDictionaryIssueDetails.from_jsonNr  r   r   r   r   r  i  s   
 r  c                   @  sB   e Zd ZU ded< ded< ded< ded< d	d
 Zedd ZdS )SRIMessageSignatureIssueDetailsr  errorr   signature_basetyping.List[str]integrity_assertionsr$   r   c                 C  sD   t  }| j |d< | j|d< dd | jD |d< | j |d< |S )Nr  signatureBasec                 S     g | ]}|qS r   r   r   r   r   r   r         z;SRIMessageSignatureIssueDetails.to_json.<locals>.<listcomp>integrityAssertionsr   )r   r  r   r  r  r   r   r   r   r   r     s   
z'SRIMessageSignatureIssueDetails.to_jsonc                 C  s:   | t |d t|d dd |d D t|d dS )Nr  r  c                 S     g | ]}t |qS r   r   r   r   r   r   r     r   z=SRIMessageSignatureIssueDetails.from_json.<locals>.<listcomp>r  r   )r  r  r  r   )r  r   r   r$   r   r   r   r   r     s   
z)SRIMessageSignatureIssueDetails.from_jsonNr  r   r   r   r   r  }  s   
 r  c                   @  r6   )GenericIssueErrorTypeFormLabelForNameErrorFormDuplicateIdForInputErrorFormInputWithNoLabelError#FormAutocompleteAttributeEmptyError)FormEmptyIdAndNameAttributesForInputError!FormAriaLabelledByToNonExistingId:FormInputAssignedAutocompleteValueToIdOrNameAttributeError$FormLabelHasNeitherForNorNestedInput%FormLabelForMatchesNonExistingIdError6FormInputHasWrongButWellIntendedAutocompleteValueErrorResponseWasBlockedByORBc                 C  rC   rD   rE   rG   r   r   r   r     rH   zGenericIssueErrorType.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   zGenericIssueErrorType.from_jsonN)r   r   r   FORM_LABEL_FOR_NAME_ERROR!FORM_DUPLICATE_ID_FOR_INPUT_ERRORFORM_INPUT_WITH_NO_LABEL_ERROR'FORM_AUTOCOMPLETE_ATTRIBUTE_EMPTY_ERROR1FORM_EMPTY_ID_AND_NAME_ATTRIBUTES_FOR_INPUT_ERROR(FORM_ARIA_LABELLED_BY_TO_NON_EXISTING_IDDFORM_INPUT_ASSIGNED_AUTOCOMPLETE_VALUE_TO_ID_OR_NAME_ATTRIBUTE_ERROR+FORM_LABEL_HAS_NEITHER_FOR_NOR_NESTED_INPUT,FORM_LABEL_FOR_MATCHES_NON_EXISTING_ID_ERROR?FORM_INPUT_HAS_WRONG_BUT_WELL_INTENDED_AUTOCOMPLETE_VALUE_ERRORRESPONSE_WAS_BLOCKED_BY_ORBr   r!   r   r   r   r   r   r    rV   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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]r1   r6  r7  r   violating_node_attributer   r   c                 C  st   t  }| j |d< | jd ur| j |d< | jd ur"| j |d< | jd ur,| j|d< | jd ur8| j |d< |S )N	errorTyper3   r>  violatingNodeAttributer   )r   r%  r   r1   r7  r&  r   r   r   r   r   r     s   




zGenericIssueDetails.to_jsonc              	   C  sz   | t |d d|v rtj|d nd d|v r tj|d nd d|v r+t|d nd d|v r9t|d dS d dS )Nr'  r3   r>  r(  r   )r%  r1   r7  r&  r   )r  r   r	   r5   r   r?  r   r$   r   r   r   r   r     s   zGenericIssueDetails.from_json)r   r   r   r   r    r1   r7  r&  r   r   r!   r   r   r   r   r   r$    s   
 r$  c                   @  B   e Zd ZU dZded< ded< dZded< d	d
 Zedd ZdS )DeprecationIssueDetailsz
    This issue tracks information needed to print a deprecation message.
    https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
    r$  r5  r   r   Nr   affected_framec                 C  s:   t  }| j |d< | j|d< | jd ur| j |d< |S )Nr=  r   affectedFrame)r   r5  r   r   r+  r   r   r   r   r     s   

zDeprecationIssueDetails.to_jsonc                 C  s:   | t |d t|d d|v rt|d dS d dS )Nr=  r   r,  )r5  r   r+  )r$  r   r   r/   r   r   r   r   r     s   
z!DeprecationIssueDetails.from_json)	r   r   r   r   r    r+  r   r!   r   r   r   r   r   r*    s   
 r*  c                   @  r.   )	BounceTrackingIssueDetailsa~  
    This issue warns about sites in the redirect chain of a finished navigation
    that may be flagged as trackers and have their state cleared if they don't
    receive a user interaction. Note that in this context 'site' means eTLD+1.
    For example, if the URL ``https://example.test:80/bounce`` was in the
    redirect chain, the site reported would be ``example.test``.
    r  tracking_sitesc                 C  s   t  }dd | jD |d< |S )Nc                 S  r	  r   r   r   r   r   r   r     r
  z6BounceTrackingIssueDetails.to_json.<locals>.<listcomp>trackingSites)r   r.  r   r   r   r   r     s   z"BounceTrackingIssueDetails.to_jsonc                 C  s   | dd |d D dS )Nc                 S  r  r   r   r   r   r   r   r     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                   @  sF   e Zd ZU dZded< ded< ded< ded	< d
d Zedd ZdS )%CookieDeprecationMetadataIssueDetailsaa  
    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_sitesrM  opt_out_percentager/  is_opt_out_top_levelru   r   c                 C  s@   t  }dd | jD |d< | j|d< | j|d< | j |d< |S )Nc                 S  r	  r   r   r   r   r   r   r     r
  zACookieDeprecationMetadataIssueDetails.to_json.<locals>.<listcomp>allowedSitesoptOutPercentageisOptOutTopLevelr   )r   r1  r2  r3  r   r   r   r   r   r   r     s   

z-CookieDeprecationMetadataIssueDetails.to_jsonc                 C  s8   | dd |d D t |d t|d t|d dS )Nc                 S  r  r   r   r   r   r   r   r   '  r   zCCookieDeprecationMetadataIssueDetails.from_json.<locals>.<listcomp>r4  r5  r6  r   )r1  r2  r3  r   )rM  r/  ru   r   r   r   r   r   r   $  s   

z/CookieDeprecationMetadataIssueDetails.from_jsonNr   r   r   r   r   r0    s   
 r0  c                   @  rt   )ClientHintIssueReasonMetaTagAllowListInvalidOriginMetaTagModifiedHTMLc                 C  rC   rD   rE   rG   r   r   r   r   2  rH   zClientHintIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r   5  rJ   zClientHintIssueReason.from_jsonN)r   r   r   "META_TAG_ALLOW_LIST_INVALID_ORIGINMETA_TAG_MODIFIED_HTMLr   r!   r   r   r   r   r   r7  .  rz   r7  c                   @  *   e Zd ZU ded< dd Zedd ZdS ) FederatedAuthRequestIssueDetailsFederatedAuthRequestIssueReason#federated_auth_request_issue_reasonc                 C  r2   )NfederatedAuthRequestIssueReason)r   r?  r   r   r   r   r   r   >  r4   z(FederatedAuthRequestIssueDetails.to_jsonc                 C     | t |d dS )Nr@  )r?  )r>  r   r   r   r   r   r   C     z*FederatedAuthRequestIssueDetails.from_jsonNr  r   r   r   r   r=  :  
   
 r=  c                   @  s   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"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/Z1d0Z2d1Z3d2d3 Z4e5d4d5 Z6d6S )7r>  z
    Represents the failure reason when a federated authentication reason fails.
    Should be updated alongside RequestIdTokenStatus in
    third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
    all cases except for success.
    ShouldEmbargoTooManyRequestsWellKnownHttpNotFoundWellKnownNoResponseWellKnownInvalidResponseWellKnownListEmptyWellKnownInvalidContentTypeConfigNotInWellKnownWellKnownTooBigConfigHttpNotFoundConfigNoResponseConfigInvalidResponseConfigInvalidContentTypeClientMetadataHttpNotFoundClientMetadataNoResponseClientMetadataInvalidResponse ClientMetadataInvalidContentTypeIdpNotPotentiallyTrustworthyDisabledInSettingsDisabledInFlagsErrorFetchingSigninInvalidSigninResponseAccountsHttpNotFoundAccountsNoResponseAccountsInvalidResponseAccountsListEmptyAccountsInvalidContentTypeIdTokenHttpNotFoundIdTokenNoResponseIdTokenInvalidResponseIdTokenIdpErrorResponse IdTokenCrossSiteIdpErrorResponseIdTokenInvalidRequestIdTokenInvalidContentTypeErrorIdTokenCanceledRpPageNotVisibleSilentMediationFailureThirdPartyCookiesBlockedNotSignedInWithIdpMissingTransientUserActivationReplacedByActiveModeInvalidFieldsSpecifiedRelyingPartyOriginIsOpaqueTypeNotMatchingUiDismissedNoEmbargo	CorsError SuppressedBySegmentationPlatformc                 C  rC   rD   rE   rG   r   r   r   r     rH   z'FederatedAuthRequestIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z)FederatedAuthRequestIssueReason.from_jsonN)7r   r   r   r   SHOULD_EMBARGOTOO_MANY_REQUESTSWELL_KNOWN_HTTP_NOT_FOUNDWELL_KNOWN_NO_RESPONSEWELL_KNOWN_INVALID_RESPONSEWELL_KNOWN_LIST_EMPTYWELL_KNOWN_INVALID_CONTENT_TYPECONFIG_NOT_IN_WELL_KNOWNWELL_KNOWN_TOO_BIGCONFIG_HTTP_NOT_FOUNDCONFIG_NO_RESPONSECONFIG_INVALID_RESPONSECONFIG_INVALID_CONTENT_TYPECLIENT_METADATA_HTTP_NOT_FOUNDCLIENT_METADATA_NO_RESPONSE CLIENT_METADATA_INVALID_RESPONSE$CLIENT_METADATA_INVALID_CONTENT_TYPEIDP_NOT_POTENTIALLY_TRUSTWORTHYDISABLED_IN_SETTINGSDISABLED_IN_FLAGSERROR_FETCHING_SIGNININVALID_SIGNIN_RESPONSEACCOUNTS_HTTP_NOT_FOUNDACCOUNTS_NO_RESPONSEACCOUNTS_INVALID_RESPONSEACCOUNTS_LIST_EMPTYACCOUNTS_INVALID_CONTENT_TYPEID_TOKEN_HTTP_NOT_FOUNDID_TOKEN_NO_RESPONSEID_TOKEN_INVALID_RESPONSEID_TOKEN_IDP_ERROR_RESPONSE&ID_TOKEN_CROSS_SITE_IDP_ERROR_RESPONSEID_TOKEN_INVALID_REQUESTID_TOKEN_INVALID_CONTENT_TYPEERROR_ID_TOKENCANCELEDRP_PAGE_NOT_VISIBLESILENT_MEDIATION_FAILURETHIRD_PARTY_COOKIES_BLOCKEDNOT_SIGNED_IN_WITH_IDP!MISSING_TRANSIENT_USER_ACTIVATIONREPLACED_BY_ACTIVE_MODEINVALID_FIELDS_SPECIFIEDRELYING_PARTY_ORIGIN_IS_OPAQUETYPE_NOT_MATCHINGUI_DISMISSED_NO_EMBARGO
CORS_ERROR#SUPPRESSED_BY_SEGMENTATION_PLATFORMr   r!   r   r   r   r   r   r>  J  sj    r>  c                   @  r<  )(FederatedAuthUserInfoRequestIssueDetails'FederatedAuthUserInfoRequestIssueReason-federated_auth_user_info_request_issue_reasonc                 C  r2   )N'federatedAuthUserInfoRequestIssueReason)r   r  r   r   r   r   r   r     r4   z0FederatedAuthUserInfoRequestIssueDetails.to_jsonc                 C  rA  )Nr  )r  )r  r   r   r   r   r   r     rB  z2FederatedAuthUserInfoRequestIssueDetails.from_jsonNr  r   r   r   r   r    rC  r  c                   @  sH   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
Zdd Zedd ZdS )r  z
    Represents the failure reason when a getUserInfo() call fails.
    Should be updated alongside FederatedAuthUserInfoRequestResult in
    third_party/blink/public/mojom/devtools/inspector_issue.mojom.
    NotSameOrigin	NotIframeNotPotentiallyTrustworthyNoApiPermissionrk  NoAccountSharingPermissionInvalidConfigOrWellKnownInvalidAccountsResponse"NoReturningUserFromFetchedAccountsc                 C  rC   rD   rE   rG   r   r   r   r     rH   z/FederatedAuthUserInfoRequestIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z1FederatedAuthUserInfoRequestIssueReason.from_jsonN)r   r   r   r   NOT_SAME_ORIGIN
NOT_IFRAMENOT_POTENTIALLY_TRUSTWORTHYNO_API_PERMISSIONr  NO_ACCOUNT_SHARING_PERMISSIONINVALID_CONFIG_OR_WELL_KNOWNINVALID_ACCOUNTS_RESPONSE'NO_RETURNING_USER_FROM_FETCHED_ACCOUNTSr   r!   r   r   r   r   r   r    s    r  c                   @  s6   e Zd ZU dZded< ded< dd Zedd	 Zd
S )ClientHintIssueDetailsz
    This issue tracks client hints related issues. It's used to deprecate old
    features, encourage the use of new ones, and provide general guidance.
    r$  r5  r7  client_hint_issue_reasonc                 C  r  )Nr=  clientHintIssueReason)r   r5  r   r  r   r   r   r   r     r   zClientHintIssueDetails.to_jsonc                 C  r  )Nr=  r  )r5  r  )r$  r   r7  r   r   r   r   r     r  z ClientHintIssueDetails.from_jsonNr   r   r   r   r   r    s   
 r  c                   @  s>   e Zd ZU ded< ded< dZded< dd Zed	d
 ZdS )FailedRequestInfor   r%   failure_messageNr&   r'   c                 C  s6   t  }| j|d< | j|d< | jd ur| j |d< |S )Nr%   failureMessager)   )r   r%   r  r'   r   r   r   r   r   r     s   


zFailedRequestInfo.to_jsonc                 C  s:   | t |d t |d d|v rtj|d dS d dS )Nr%   r  r)   )r%   r  r'   r+   r   r   r   r   r     s   

zFailedRequestInfo.from_json)r   r   r   r    r'   r   r!   r   r   r   r   r   r    s   
 r  c                   @  rt   )PartitioningBlobURLInfoBlockedCrossPartitionFetchingEnforceNoopenerForNavigationc                 C  rC   rD   rE   rG   r   r   r   r     rH   zPartitioningBlobURLInfo.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z!PartitioningBlobURLInfo.from_jsonN)r   r   r    BLOCKED_CROSS_PARTITION_FETCHINGENFORCE_NOOPENER_FOR_NAVIGATIONr   r!   r   r   r   r   r   r    rz   r  c                   @  r  )
PartitioningBlobURLIssueDetailsr   r%   r  partitioning_blob_url_infoc                 C  s"   t  }| j|d< | j |d< |S )Nr%   partitioningBlobURLInfo)r   r%   r  r   r   r   r   r   r     s   
z'PartitioningBlobURLIssueDetails.to_jsonc                 C  s   | t |d t|d dS )Nr%   r  )r%   r  )r   r  r   r   r   r   r   r     s   
z)PartitioningBlobURLIssueDetails.from_jsonNr  r   r   r   r   r    s   
 r  c                   @  s4   e Zd ZdZdZdZdZdZdd Ze	dd	 Z
d
S )%SelectElementAccessibilityIssueReasonDisallowedSelectChildDisallowedOptGroupChildNonPhrasingContentOptionChildInteractiveContentOptionChildInteractiveContentLegendChildc                 C  rC   rD   rE   rG   r   r   r   r     rH   z-SelectElementAccessibilityIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z/SelectElementAccessibilityIssueReason.from_jsonN)r   r   r   DISALLOWED_SELECT_CHILDDISALLOWED_OPT_GROUP_CHILD!NON_PHRASING_CONTENT_OPTION_CHILD INTERACTIVE_CONTENT_OPTION_CHILD INTERACTIVE_CONTENT_LEGEND_CHILDr   r!   r   r   r   r   r   r    s    r  c                   @  rE  )&SelectElementAccessibilityIssueDetailszL
    This issue warns about errors in the select element content model.
    rK  node_idr  )select_element_accessibility_issue_reasonr/  has_disallowed_attributesc                 C  s0   t  }| j |d< | j |d< | j|d< |S )NnodeId%selectElementAccessibilityIssueReasonhasDisallowedAttributes)r   r  r   r  r  r   r   r   r   r   !  s
   
z.SelectElementAccessibilityIssueDetails.to_jsonc                 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
   
z0SelectElementAccessibilityIssueDetails.from_jsonNr   r   r   r   r   r    s   
 r  c                   @  rt   )StyleSheetLoadingIssueReasonLateImportRuleRequestFailedc                 C  rC   rD   rE   rG   r   r   r   r   5  rH   z$StyleSheetLoadingIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r   8  rJ   z&StyleSheetLoadingIssueReason.from_jsonN)r   r   r   LATE_IMPORT_RULEREQUEST_FAILEDr   r!   r   r   r   r   r   r  1  rz   r  c                   @  r)  )StylesheetLoadingIssueDetailszK
    This issue warns when a referenced stylesheet couldn't be loaded.
    r$  r5  r   style_sheet_loading_issue_reasonNz"typing.Optional[FailedRequestInfo]failed_request_infoc                 C  >   t  }| j |d< | j |d< | jd ur| j |d< |S )Nr=  styleSheetLoadingIssueReasonfailedRequestInfo)r   r5  r   r  r  r   r   r   r   r   K     
z%StylesheetLoadingIssueDetails.to_jsonc                 C  <   | t |d t|d d|v rt|d dS d dS )Nr=  r  r  )r5  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                   @  r{   )
PropertyRuleIssueReasonInvalidSyntaxInvalidInitialValueInvalidInheritsInvalidNamec                 C  rC   rD   rE   rG   r   r   r   r   b  rH   zPropertyRuleIssueReason.to_jsonc                 C  rI   rD   r   r   r   r   r   r   e  rJ   z!PropertyRuleIssueReason.from_jsonN)
r   r   r   INVALID_SYNTAXINVALID_INITIAL_VALUEINVALID_INHERITSINVALID_NAMEr   r!   r   r   r   r   r   r  \  s    r  c                   @  r)  )PropertyRuleIssueDetailszp
    This issue warns about errors in property rules that lead to property
    registrations being ignored.
    r$  r5  r  property_rule_issue_reasonNr   property_valuec                 C  s:   t  }| j |d< | j |d< | jd ur| j|d< |S )Nr=  propertyRuleIssueReasonpropertyValue)r   r5  r   r  r  r   r   r   r   r   y  s   

z PropertyRuleIssueDetails.to_jsonc                 C  s:   | t |d t|d d|v rt|d dS d dS )Nr=  r  r  )r5  r  r  )r$  r   r  r   r   r   r   r   r     s   z"PropertyRuleIssueDetails.from_json)	r   r   r   r   r    r  r   r!   r   r   r   r   r   r  j  s   
 r  c                   @  rt   )UserReidentificationIssueTypeBlockedFrameNavigationBlockedSubresourcec                 C  rC   rD   rE   rG   r   r   r   r     rH   z%UserReidentificationIssueType.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   z'UserReidentificationIssueType.from_jsonN)r   r   r   BLOCKED_FRAME_NAVIGATIONBLOCKED_SUBRESOURCEr   r!   r   r   r   r   r   r    rz   r  c                   @  r#   ) UserReidentificationIssueDetailsze
    This issue warns about uses of APIs that may be considered misuse to
    re-identify users.
    r  r   Nr   r   c                 C  s0   t  }| j |d< | jd ur| j |d< |S )Nr   r   )r   r   r   r   r   r   r   r   r     rI  z(UserReidentificationIssueDetails.to_jsonc                 C  s0   | t |d d|v rt|d dS d dS )Nr   r   )r   r   )r  r   r$   r   r   r   r   r     s   z*UserReidentificationIssueDetails.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d Zedd ZdS ) InspectorIssueCodez
    A unique identifier for the type of issue. Each type may use one of the
    optional fields in InspectorIssueDetails to convey more specific
    information about the kind of issue.
    CookieIssueMixedContentIssueBlockedByResponseIssueHeavyAdIssueContentSecurityPolicyIssueSharedArrayBufferIssueLowTextContrastIssue	CorsIssueAttributionReportingIssueQuirksModeIssuePartitioningBlobURLIssueNavigatorUserAgentIssueGenericIssueDeprecationIssueClientHintIssueFederatedAuthRequestIssueBounceTrackingIssueCookieDeprecationMetadataIssueStylesheetLoadingIssue!FederatedAuthUserInfoRequestIssuePropertyRuleIssueSharedDictionaryIssueSelectElementAccessibilityIssueSRIMessageSignatureIssueUserReidentificationIssuec                 C  rC   rD   rE   rG   r   r   r   r     rH   zInspectorIssueCode.to_jsonc                 C  rI   rD   r   r   r   r   r   r     rJ   zInspectorIssueCode.from_jsonN) r   r   r   r   COOKIE_ISSUEMIXED_CONTENT_ISSUEBLOCKED_BY_RESPONSE_ISSUEHEAVY_AD_ISSUECONTENT_SECURITY_POLICY_ISSUESHARED_ARRAY_BUFFER_ISSUELOW_TEXT_CONTRAST_ISSUE
CORS_ISSUEATTRIBUTION_REPORTING_ISSUEQUIRKS_MODE_ISSUEPARTITIONING_BLOB_URL_ISSUENAVIGATOR_USER_AGENT_ISSUEGENERIC_ISSUEDEPRECATION_ISSUECLIENT_HINT_ISSUEFEDERATED_AUTH_REQUEST_ISSUEBOUNCE_TRACKING_ISSUE!COOKIE_DEPRECATION_METADATA_ISSUESTYLESHEET_LOADING_ISSUE&FEDERATED_AUTH_USER_INFO_REQUEST_ISSUEPROPERTY_RULE_ISSUESHARED_DICTIONARY_ISSUE"SELECT_ELEMENT_ACCESSIBILITY_ISSUESRI_MESSAGE_SIGNATURE_ISSUEUSER_REIDENTIFICATION_ISSUEr   r!   r   r   r   r   r   r    s<    r  c                   @  sR  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< d5d6 Zed7d8 Z dS )9InspectorIssueDetailsz
    This struct holds a list of optional fields with additional information
    specific to the kind of issue. When adding a new issue code, please also
    add a new optional field to this type.
    Nz#typing.Optional[CookieIssueDetails]cookie_issue_detailsz)typing.Optional[MixedContentIssueDetails]mixed_content_issue_detailsz.typing.Optional[BlockedByResponseIssueDetails]!blocked_by_response_issue_detailsz$typing.Optional[HeavyAdIssueDetails]heavy_ad_issue_detailsz2typing.Optional[ContentSecurityPolicyIssueDetails]%content_security_policy_issue_detailsz.typing.Optional[SharedArrayBufferIssueDetails]!shared_array_buffer_issue_detailsz,typing.Optional[LowTextContrastIssueDetails]low_text_contrast_issue_detailsz!typing.Optional[CorsIssueDetails]cors_issue_detailsz1typing.Optional[AttributionReportingIssueDetails]#attribution_reporting_issue_detailsz'typing.Optional[QuirksModeIssueDetails]quirks_mode_issue_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_detailsz7typing.Optional[SelectElementAccessibilityIssueDetails]*select_element_accessibility_issue_detailsz0typing.Optional[SRIMessageSignatureIssueDetails]#sri_message_signature_issue_detailsz1typing.Optional[UserReidentificationIssueDetails]#user_reidentification_issue_detailsc                 C  sj  t  }| jd ur| j |d< | jd ur| j |d< | jd ur'| j |d< | jd ur3| j |d< | jd ur?| j |d< | jd urK| j |d< | jd urW| j |d< | j	d urc| j	 |d< | j
d uro| j
 |d	< | jd ur{| j |d
< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | jd ur| j |d< | 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r3| j |d< |S )NcookieIssueDetailsmixedContentIssueDetailsblockedByResponseIssueDetailsheavyAdIssueDetails!contentSecurityPolicyIssueDetailssharedArrayBufferIssueDetailslowTextContrastIssueDetailscorsIssueDetails attributionReportingIssueDetailsquirksModeIssueDetailspartitioningBlobURLIssueDetailsnavigatorUserAgentIssueDetailsgenericIssueDetailsdeprecationIssueDetailsclientHintIssueDetails federatedAuthRequestIssueDetailsbounceTrackingIssueDetails%cookieDeprecationMetadataIssueDetailsstylesheetLoadingIssueDetailspropertyRuleIssueDetails(federatedAuthUserInfoRequestIssueDetailssharedDictionaryIssueDetails&selectElementAccessibilityIssueDetailssriMessageSignatureIssueDetails userReidentificationIssueDetails)r   r.  r   r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  r   r   r   r   r     sh   




















zInspectorIssueDetails.to_jsonc                 C  s  | d3i dd|v rt |d nd dd|v rt|d nd dd|v r+t|d nd dd|v r9t|d nd d	d
|v rGt|d
 nd dd|v rUt|d nd dd|v rct|d nd dd|v rqt|d nd dd|v rt	|d nd dd|v rt
|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd|v rt|d nd dd |v rt|d  nd d!d"|v rt|d" nd d#d$|v rt|d$ nd d%d&|v rt|d& nd d'd(|v rt|d( nd d)d*|v r*t|d* nd d+d,|v r9t|d, nd d-d.|v rHt|d. nd d/d0|v rWt|d0 nd d1d2|v rht|d2 S d S )4Nr.  rG  r/  rH  r0  rI  r1  rJ  r2  rK  r3  rL  r4  rM  r5  rN  r6  rO  r7  rP  r8  rQ  r9  rR  r:  rS  r;  rT  r<  rU  r=  rV  r>  rW  r?  rX  r@  rY  rA  rZ  rB  r[  rC  r\  rD  r]  rE  r^  rF  r_  r   )r   r   r   r   r  r-  rF  rJ  rY  r  r  r  r  r$  r*  r  r=  r-  r0  r  r  r  r  r  r  r  r   r   r   r   r   G  s   	
zInspectorIssueDetails.from_json)!r   r   r   r   r.  r    r/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  r   r!   r   r   r   r   r   r-    s<   
 6r-  c                      s8   e Zd ZdZdddZedddZ fd	d
Z  ZS )IssueIdz
    A unique id for a DevTools inspector issue. Allows other entities (e.g.
    exceptions, CDP message, console messages, etc.) to reference an issue.
    returnr   c                 C  s   | S rD   r   rG   r   r   r   r   k  s   zIssueId.to_jsonr   c                 C  rI   rD   r   r   r   r   r   r   n  rJ   zIssueId.from_jsonc                   s   d t  S )NzIssueId({}))formatsuper__repr__rG   	__class__r   r   rd  r  s   zIssueId.__repr__)ra  r   )r   r   ra  r`  )	r   r   r   r   r   r!   r   rd  __classcell__r   r   re  r   r`  f  s    
r`  c                   @  r)  )InspectorIssuez8
    An inspector issue reported from the back-end.
    r  coder-  detailsNztyping.Optional[IssueId]issue_idc                 C  r  )Nri  rj  issueId)r   ri  r   rj  rk  r   r   r   r   r     r  zInspectorIssue.to_jsonc                 C  r  )Nri  rj  rl  )ri  rj  rk  )r  r   r-  r`  r   r   r   r   r     r  zInspectorIssue.from_json)	r   r   r   r   r    rk  r   r!   r   r   r   r   r   rh  v  s   
 rh  r'   network.RequestIdencodingr   qualitytyping.Optional[float]	size_onlytyping.Optional[bool]ra  Xtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]]c                 c  sz    t  }|  |d< ||d< |dur||d< |dur||d< d|d}|V }d|v r0t|d ndt|d	 t|d
 fS )a  
    Returns the response body and size if it were re-encoded with the specified settings. Only
    applies to images.

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

        0. **body** - *(Optional)* The encoded body as a base64 string. Omitted if sizeOnly is true.
        1. **originalSize** - Size before re-encoding.
        2. **encodedSize** - Size after re-encoding.
    r)   rn  Nro  sizeOnlyzAudits.getEncodedResponsemethodparamsbodyoriginalSizeencodedSize)r   r   r   r%  )r'   rn  ro  rq  rw  cmd_dictr   r   r   r   get_encoded_response  s    

r|  0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]c                  c      ddi} | V }dS )z\
    Disables issues domain, prevents further issues from being reported to the client.
    rv  zAudits.disableNr   r{  r   r   r   r   disable  s   
r  c                  c  r~  )zz
    Enables issues domain, sends the issues collected so far to the client by means of the
    ``issueAdded`` event.
    rv  zAudits.enableNr   r  r   r   r   enable  s   
r  
report_aaac                 c  s,    t  }| dur| |d< d|d}|V }dS )z
    Runs the contrast check for the target page. Found issues are reported
    using Audits.issueAdded event.

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

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

IssueAddedrh  issuer   r   ra  c                 C  rA  )Nr  )r  )rh  r   r   r   r   r   r     rB  zIssueAdded.from_jsonN)r   r   ra  r  )r   r   r   r    r!   r   r   r   r   r   r    s   
 r  )NN)
r'   rm  rn  r   ro  rp  rq  rr  ra  rs  )ra  r}  rD   )r  rr  ra  r}  )ra  r  )P
__future__r   utilr   r   dataclassesr   enumtyping r   r   r	   r
   r   r$   r/   Enumr7   rW   ru   r|   r   r   r   r   r   r   r   r  r  r  r  r$  r-  r@  rF  rJ  rY  rg  r  r  r  r  r  r  r  r  r$  r*  r-  r0  r7  r=  r>  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-  r   r`  rh  r|  r  r  r  r  r  r   r   r   r   <module>   s   A'0"-'/!"%'"@(  
'


