
    ]j$.                   	   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             Ze G d d             Ze G d d             Z G d dej"                        Z G d dej"                        Z G d dej"                        Z G d dej"                        Ze G d d             Ze G d d             Z G d dej"                        Ze G d d             Z G d  d!ej"                        Z G d" d#ej"                        Ze G d$ d%             Z G d& d'ej"                        Ze G d( d)             Z G d* d+ej"                        Z G d, d-ej"                        Z e G d. d/             Z! G d0 d1ej"                        Z"e G d2 d3             Z#e G d4 d5             Z$ G d6 d7ej"                        Z%e G d8 d9             Z&e G d: d;             Z' G d< d=ej"                        Z( G d> d?ej"                        Z) G d@ dAej"                        Z* G dB dCej"                        Z+ G dD dEej"                        Z,e G dF dG             Z-e G dH dI             Z.e G dJ dK             Z/e G dL dM             Z0e G dN dO             Z1e G dP dQ             Z2e G dR dS             Z3 G dT dUej"                        Z4e G dV dW             Z5e G dX dY             Z6e G dZ d[             Z7e G d\ d]             Z8 G d^ d_ej"                        Z9e G d` da             Z: G db dcej"                        Z;e G dd de             Z< G df dgej"                        Z=e G dh di             Z>e G dj dk             Z? G dl dmej"                        Z@e G dn do             ZA G dp dqej"                        ZBe G dr ds             ZC G dt duej"                        ZDe G dv dw             ZE G dx dyej"                        ZFe G dz d{             ZG G d| d}ej"                        ZHe G d~ d             ZI G d dej"                        ZJe G d d             ZKe G d d             ZL G d dej"                        ZMe G d d             ZN G d deO      ZPe G d d             ZQ	 	 d	 	 	 	 	 	 	 	 	 ddZRddZSddZTddZU ed      e G d d                    ZVy)    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)network)page)runtimec                  F    e Zd ZU dZded<   ded<   ded<   d Zed        Zy)	AffectedCookiezL
    Information about a cookie that is affected by an inspector issue.
    strnamepathdomainc                t    t               }| j                  |d<   | j                  |d<   | j                  |d<   |S )Nr   r   r   )dictr   r   r   selfjsons     b/home/ubuntu/.local/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v148/audits.pyto_jsonzAffectedCookie.to_json   s5    vyyVyyVX    c                `     | t        |d         t        |d         t        |d               S )Nr   r   r   )r   r   r   r   clsr   s     r   	from_jsonzAffectedCookie.from_json%   s3    T&\"T&\"tH~&
 	
r   N__name__
__module____qualname____doc____annotations__r   classmethodr    r   r   r   r      s1     I
IK 
 
r   r   c                  @    e Zd ZU dZded<   dZded<   d Zed        Zy)	AffectedRequestzM
    Information about a request that is affected by an inspector issue.
    r   urlN"typing.Optional[network.RequestId]
request_idc                    t               }| j                  |d<   | j                  | j                  j                         |d<   |S )Nr)   	requestId)r   r)   r+   r   r   s     r   r   zAffectedRequest.to_json8   s<    vhhU??& $ 7 7 9Dr   c                     | t        |d         d|v r't        j                  j                  |d               S d       S )Nr)   r-   )r)   r+   r   r	   	RequestIdr   r   s     r   r   zAffectedRequest.from_json?   sI    DK ITX\I\w((2243DE
 	
bf
 	
r   )	r    r!   r"   r#   r$   r+   r   r%   r   r&   r   r   r(   r(   .   s4     
H 6:J29 
 
r   r(   c                  2    e Zd ZU dZded<   d Zed        Zy)AffectedFramezE
    Information about the frame affected by an inspector issue.
    page.FrameIdframe_idc                T    t               }| j                  j                         |d<   |S )NframeId)r   r4   r   r   s     r   r   zAffectedFrame.to_jsonN   s$    v--//1Yr   c                T     | t         j                  j                  |d               S )Nr6   )r4   )r
   FrameIdr   r   s     r   r   zAffectedFrame.from_jsonS   s%    \\++DO<
 	
r   Nr   r&   r   r   r2   r2   G   s(     
 
 
r   r2   c                  F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zed        Zy)CookieExclusionReason&ExcludeSameSiteUnspecifiedTreatedAsLaxExcludeSameSiteNoneInsecureExcludeSameSiteLaxExcludeSameSiteStrictExcludeDomainNonASCII-ExcludeThirdPartyCookieBlockedInFirstPartySetExcludeThirdPartyPhaseoutExcludePortMismatchExcludeSchemeMismatchc                    | j                   S Nvaluer   s    r   r   zCookieExclusionReason.to_jsone       zzr   c                     | |      S rE   r&   r   s     r   r   zCookieExclusionReason.from_jsonh       4yr   N)r    r!   r"   ,EXCLUDE_SAME_SITE_UNSPECIFIED_TREATED_AS_LAXEXCLUDE_SAME_SITE_NONE_INSECUREEXCLUDE_SAME_SITE_LAXEXCLUDE_SAME_SITE_STRICT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:   r:   Z   sQ    3[0&C#066<k9#> 15  r   r:   c                  Z    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ed        Zy)CookieWarningReason'WarnSameSiteUnspecifiedCrossSiteContextWarnSameSiteNoneInsecure%WarnSameSiteUnspecifiedLaxAllowUnsafe$WarnSameSiteStrictLaxDowngradeStrict&WarnSameSiteStrictCrossDowngradeStrict#WarnSameSiteStrictCrossDowngradeLax#WarnSameSiteLaxCrossDowngradeStrict WarnSameSiteLaxCrossDowngradeLax WarnAttributeValueExceedsMaxSizeWarnDomainNonASCIIWarnThirdPartyPhaseout.WarnCrossSiteRedirectDowngradeChangesInclusionWarnDeprecationTrialMetadataWarnThirdPartyCookieHeuristicc                    | j                   S rE   rF   rH   s    r   r   zCookieWarningReason.to_json}   rI   r   c                     | |      S rE   r&   r   s     r   r   zCookieWarningReason.from_json   rK   r   N)r    r!   r"   -WARN_SAME_SITE_UNSPECIFIED_CROSS_SITE_CONTEXTWARN_SAME_SITE_NONE_INSECURE+WARN_SAME_SITE_UNSPECIFIED_LAX_ALLOW_UNSAFE*WARN_SAME_SITE_STRICT_LAX_DOWNGRADE_STRICT,WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_STRICT)WARN_SAME_SITE_STRICT_CROSS_DOWNGRADE_LAX)WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_STRICT&WARN_SAME_SITE_LAX_CROSS_DOWNGRADE_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   rV   rV   m   so    4]1#= 2Y/1W.3[00U-0U--O*,N)0 8;k8&D#(G%  r   rV   c                  *    e Zd ZdZdZd Zed        Zy)CookieOperation	SetCookie
ReadCookiec                    | j                   S rE   rF   rH   s    r   r   zCookieOperation.to_json   rI   r   c                     | |      S rE   r&   r   s     r   r   zCookieOperation.from_json   rK   r   N)r    r!   r"   
SET_COOKIEREAD_COOKIEr   r%   r   r&   r   r   rv   rv      s%    JK  r   rv   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)InsightTypezM
    Represents the category of insight that a cookie issue falls under.
    GitHubResourceGracePeriod
Heuristicsc                    | j                   S rE   rF   rH   s    r   r   zInsightType.to_json   rI   r   c                     | |      S rE   r&   r   s     r   r   zInsightType.from_json   rK   r   N)
r    r!   r"   r#   GIT_HUB_RESOURCEGRACE_PERIOD
HEURISTICSr   r%   r   r&   r   r   r~   r~      s2     ( LJ  r   r~   c                  @    e Zd ZU dZded<   dZded<   d Zed        Zy)	CookieIssueInsightzE
    Information about the suggested solution to a cookie issue.
    r~   type_Ntyping.Optional[str]table_entry_urlc                    t               }| j                  j                         |d<   | j                  | j                  |d<   |S )NtypetableEntryUrl)r   r   r   r   r   s     r   r   zCookieIssueInsight.to_json   s@    vzz))+V+$($8$8D!r   c                p     | t         j                  |d         d|v rt        |d               S d       S )Nr   r   )r   r   )r~   r   r   r   s     r   r   zCookieIssueInsight.from_json   sB    ''V5:IT:QC_ 56
 	
W[
 	
r   )	r    r!   r"   r#   r$   r   r   r%   r   r&   r   r   r   r      s5      -1O)0 
 
r   r   c                      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 Zed        Zy)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_reasonsrv   	operationNztyping.Optional[AffectedCookie]cookier   raw_cookie_linesite_for_cookies
cookie_url typing.Optional[AffectedRequest]requestz#typing.Optional[CookieIssueInsight]insightc                   t               }| j                  D cg c]  }|j                          c}|d<   | j                  D cg c]  }|j                          c}|d<   | j                  j                         |d<   | j
                  | j
                  j                         |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d	<   |S c c}w c c}w )
NcookieWarningReasonscookieExclusionReasonsr   r   rawCookieLinesiteForCookies	cookieUrlr   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   is      r   r   zCookieIssueDetails.to_json   s#   v=A=X=X'Y		'Y#$?C?\?\)]!!))+)]%& NN224[;;"![[002DN+$($8$8D!  ,%)%:%:D!"??& $D<<#"ll224DO<<#"ll224DO (Z)]s   EEc                    | |d   D cg c]  }t         j                  |       c}|d   D cg c]  }t        j                  |       c}t        j                  |d         d|v rt        j                  |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        j                  |d         nd d	|v rt        j                  |d	         
	      S d 
	      S c c}w c c}w )Nr   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )rV   r   r:   rv   r   r   r(   r   r   r   r   s      r   r   zCookieIssueDetails.from_json   s   NRSiNj#k$7$A$A!$D#kRVWoRp%qQ&;&E&Ea&H%q%//[0AB?G4?O>++DN;UY:IT:QC_ 56W[<LPT<TS&6!78Z^1<1Ds4,-$BKtBSO--d9o>Y]ENRVEV&00iA

 
	
 ]a

 
	
#k%qs
   C?D
)r    r!   r"   r#   r$   r   r   r   r   r   r   r   r%   r   r&   r   r   r   r      s}    
 =<@@  /3F+2,0O)0-1*1'+J$+04G-4 48G07& 
 
r   r   c                  &    e Zd ZdZd Zed        Zy)PerformanceIssueTypeDocumentCookiec                    | j                   S rE   rF   rH   s    r   r   zPerformanceIssueType.to_json   rI   r   c                     | |      S rE   r&   r   s     r   r   zPerformanceIssueType.from_json  rK   r   N)r    r!   r"   DOCUMENT_COOKIEr   r%   r   r&   r   r   r   r      s     &O  r   r   c                  @    e Zd ZU dZded<   dZded<   d Zed        Zy)	PerformanceIssueDetailsz*
    Details for a performance issue.
    r   performance_issue_typeN#typing.Optional[SourceCodeLocation]source_code_locationc                    t               }| j                  j                         |d<   | j                  | j                  j                         |d<   |S )NperformanceIssueTypesourceCodeLocation)r   r   r   r   r   s     r   r   zPerformanceIssueDetails.to_json  sN    v'+'B'B'J'J'L#$$$0)-)B)B)J)J)LD%&r   c                     | t         j                  |d         d|v rt        j                  |d               S d       S )Nr   r   )r   r   )r   r   SourceCodeLocationr   s     r   r   z!PerformanceIssueDetails.from_json  sQ    #7#A#A$G]B^#_]quy]y!3!=!=dCW>X!Y
 	
 @D
 	
r   )	r    r!   r"   r#   r$   r   r   r%   r   r&   r   r   r   r     s4     10@D=D 
 
r   r   c                  .    e Zd ZdZdZdZd Zed        Zy)MixedContentResolutionStatusMixedContentBlocked!MixedContentAutomaticallyUpgradedMixedContentWarningc                    | j                   S rE   rF   rH   s    r   r   z$MixedContentResolutionStatus.to_json$  rI   r   c                     | |      S rE   r&   r   s     r   r   z&MixedContentResolutionStatus.from_json'  rK   r   N)	r    r!   r"   MIXED_CONTENT_BLOCKED$MIXED_CONTENT_AUTOMATICALLY_UPGRADEDMIXED_CONTENT_WARNINGr   r%   r   r&   r   r   r   r     s-    1+N(1  r   r   c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Z e!d        Z"y )!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                    | j                   S rE   rF   rH   s    r   r   z MixedContentResourceType.to_jsonK  rI   r   c                     | |      S rE   r&   r   s     r   r   z"MixedContentResourceType.from_jsonN  rK   r   N)#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   ,  s    &OEFJH LGDDEEFDHDK&OHHF$N"M*JEEF'D  r   r   c                  l    e Zd ZU ded<   ded<   ded<   dZded<   dZd	ed
<   dZded<   d Zed        Z	y)MixedContentIssueDetailsr   resolution_statusr   insecure_urlmain_resource_urlNz)typing.Optional[MixedContentResourceType]resource_typer   r   typing.Optional[AffectedFrame]framec                   t               }| j                  j                         |d<   | j                  |d<   | j                  |d<   | j
                  | j
                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   |S )NresolutionStatusinsecureURLmainResourceURLresourceTyper   r  )r   r   r   r   r   r  r   r  r   s     r   r   z MixedContentIssueDetails.to_jsonk  s    v#'#9#9#A#A#C "//]"&"8"8)#'#5#5#=#=#?D <<#"ll224DO::! JJ..0DMr   c                ,    | t         j                  |d         t        |d         t        |d         d|v rt        j                  |d         nd d|v rt        j                  |d         nd d|v rt
        j                  |d               S d       S )Nr  r  r  r  r   r  )r   r   r   r  r   r  )r   r   r   r   r(   r2   r   s     r   r   z"MixedContentIssueDetails.from_jsonx  s    :DDTJ\E]^T-01!$'8"9:VdhlVl2<<T.=QRrvBKtBSO--d9o>Y]<CtO-))$w-8
 	
 RV
 	
r   )
r    r!   r"   r$   r  r   r  r   r%   r   r&   r   r   r   r   S  s\     43   @DM<C 15G-4 -1E)0 
 
r   r   c                  F    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
 Zed        Zy)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                    | j                   S rE   rF   rH   s    r   r   zBlockedByResponseReason.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z!BlockedByResponseReason.from_json  rK   r   N)r    r!   r"   r#   %COEP_FRAME_RESOURCE_NEEDS_COEP_HEADER3COOP_SANDBOXED_I_FRAME_CANNOT_NAVIGATE_TO_COOP_PAGECORP_NOT_SAME_ORIGIN;CORP_NOT_SAME_ORIGIN_AFTER_DEFAULTED_TO_SAME_ORIGIN_BY_COEP:CORP_NOT_SAME_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    sW     -O):g7.Bu?As> KDG*%B"  r   r  c                  X    e Zd ZU dZded<   ded<   dZded<   dZded	<   d
 Zed        Z	y)BlockedByResponseIssueDetailsz
    Details for a request that has been blocked with the BLOCKED_BY_RESPONSE
    code. Currently only used for COEP/COOP, but may be extended to include
    some CSP errors in the future.
    r(   r   r  reasonNr  parent_frameblocked_framec                2   t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  j                         |d<   | j
                  | j
                  j                         |d<   |S )Nr   r   parentFrameblockedFrame)r   r   r   r   r!  r"  r   s     r   r   z%BlockedByResponseIssueDetails.to_json  s    v,,..0Y,,.X("&"3"3";";"=D)#'#5#5#=#=#?D r   c           	          | t         j                  |d         t        j                  |d         d|v rt        j                  |d         nd d|v rt        j                  |d               S d       S )Nr   r   r$  r%  )r   r   r!  r"  )r(   r   r  r2   r   s     r   r   z'BlockedByResponseIssueDetails.from_json  s}    #--d9o>*44T(^DIVZ^I^00m1DEdhKY]aKa-11$~2FG	
 	
 hl	
 	
r   )
r    r!   r"   r#   r$   r!  r"  r   r%   r   r&   r   r   r  r    sD    
 ##37L0748M18 
 
r   r  c                  *    e Zd ZdZdZd Zed        Zy)HeavyAdResolutionStatusHeavyAdBlockedHeavyAdWarningc                    | j                   S rE   rF   rH   s    r   r   zHeavyAdResolutionStatus.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z!HeavyAdResolutionStatus.from_json  rK   r   N)r    r!   r"   HEAVY_AD_BLOCKEDHEAVY_AD_WARNINGr   r%   r   r&   r   r   r(  r(    s'    ''  r   r(  c                  .    e Zd ZdZdZdZd Zed        Zy)HeavyAdReasonNetworkTotalLimitCpuTotalLimitCpuPeakLimitc                    | j                   S rE   rF   rH   s    r   r   zHeavyAdReason.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   zHeavyAdReason.from_json  rK   r   N)	r    r!   r"   NETWORK_TOTAL_LIMITCPU_TOTAL_LIMITCPU_PEAK_LIMITr   r%   r   r&   r   r   r0  r0    s+    -%O#N  r   r0  c                  B    e Zd ZU ded<   ded<   ded<   d Zed        Zy	)
HeavyAdIssueDetailsr(  
resolutionr0  r   r2   r  c                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  j                         |d<   |S )Nr;  r   r  )r   r;  r   r   r  r   s     r   r   zHeavyAdIssueDetails.to_json  sQ    v!__446\,,.X

**,Wr   c                     | t         j                  |d         t        j                  |d         t        j                  |d               S )Nr;  r   r  )r;  r   r  )r(  r   r0  r2   r   s     r   r   zHeavyAdIssueDetails.from_json  sF    .88l9KL **4>:))$w-8
 	
r   Nr    r!   r"   r$   r   r%   r   r&   r   r   r:  r:    s3     ('   
 
r   r:  c                  >    e Zd ZdZdZdZdZdZdZdZ	d Z
ed	        Zy
)"ContentSecurityPolicyViolationTypekInlineViolationkEvalViolationkURLViolationkSRIViolationkTrustedTypesSinkViolationkTrustedTypesPolicyViolationkWasmEvalViolationc                    | j                   S rE   rF   rH   s    r   r   z*ContentSecurityPolicyViolationType.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z,ContentSecurityPolicyViolationType.from_json  rK   r   N)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@    sC    +'%O%O%A"'E$0  r   r@  c                  P    e Zd ZU ded<   ded<   ded<   dZded<   d	 Zed
        Zy)r   r   r)   intline_numbercolumn_numberNz!typing.Optional[runtime.ScriptId]	script_idc                    t               }| j                  |d<   | j                  |d<   | j                  |d<   | j                  | j                  j                         |d<   |S )Nr)   
lineNumbercolumnNumberscriptId)r   r)   rS  rT  rU  r   r   s     r   r   zSourceCodeLocation.to_json  s\    vhhU!--\#11^>>%#~~557Dr   c           	          | t        |d         t        |d         t        |d         d|v r't        j                  j	                  |d               S d       S )Nr)   rW  rX  rY  )r)   rS  rT  rU  )r   rR  r   ScriptIdr   r   s     r   r   zSourceCodeLocation.from_json  sg    DK D./d>23FPTXFXg&&00j1AB	
 	
 _c	
 	
r   )r    r!   r"   r$   rU  r   r%   r   r&   r   r   r   r     s7    	H37I07 
 
r   r   c                  z    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 Ze	d        Z
y)!ContentSecurityPolicyIssueDetailsr   violated_directiveboolis_report_onlyr@  &content_security_policy_violation_typeNr   blocked_urlr  frame_ancestorr   r   "typing.Optional[dom.BackendNodeId]violating_node_idc                   t               }| j                  |d<   | j                  |d<   | j                  j	                         |d<   | j
                  | j
                  |d<   | j                  | j                  j	                         |d<   | j                  | j                  j	                         |d<   | j                  | j                  j	                         |d<   |S )NviolatedDirectiveisReportOnly"contentSecurityPolicyViolationType
blockedURLframeAncestorr   violatingNodeId)	r   r^  r`  ra  r   rb  rc  r   re  r   s     r   r   z)ContentSecurityPolicyIssueDetails.to_json1  s    v$($;$; !#22^595`5`5h5h5j12'!%!1!1D*$($7$7$?$?$AD!$$0)-)B)B)J)J)LD%&!!-&*&<&<&D&D&FD"#r   c                f    | t        |d         t        |d         t        j                  |d         d|v rt        |d         nd d|v rt        j                  |d         nd d|v rt
        j                  |d         nd d|v r't        j                  j                  |d               S d       S )	Nrg  rh  ri  rj  rk  r   rl  )r^  r`  ra  rb  rc  r   re  )r   r_  r@  r   r2   r   r   BackendNodeIdr   s     r   r   z+ContentSecurityPolicyIssueDetails.from_json@  s    "4(;#<=^ 453U3_3_`d  fJ  aK  4L3?43GD./TM\`dMd=2243HIjn]quy]y!3!=!=dCW>X!Y  @DVgkoVoc//99$?P:QR
 	
 vz
 	
r   )r    r!   r"   r$   rb  rc  r   re  r   r%   r   r&   r   r   r]  r]    s_     ,NN )-K%,59N29@D=D<@9@ 	
 	
r   r]  c                  *    e Zd ZdZdZd Zed        Zy)SharedArrayBufferIssueTypeTransferIssueCreationIssuec                    | j                   S rE   rF   rH   s    r   r   z"SharedArrayBufferIssueType.to_jsonQ  rI   r   c                     | |      S rE   r&   r   s     r   r   z$SharedArrayBufferIssueType.from_jsonT  rK   r   N)r    r!   r"   TRANSFER_ISSUECREATION_ISSUEr   r%   r   r&   r   r   rp  rp  M  s%    $N$N  r   rp  c                  F    e Zd ZU dZded<   ded<   ded<   d Zed	        Zy
)SharedArrayBufferIssueDetailsz
    Details for a issue arising from an SAB being instantiated in, or
    transferred to a context that is not cross-origin isolated.
    r   r   r_  
is_warningrp  r   c                    t               }| j                  j                         |d<   | j                  |d<   | j                  j                         |d<   |S )Nr   	isWarningr   )r   r   r   ry  r   r   s     r   r   z%SharedArrayBufferIssueDetails.to_jsone  sL    v%)%>%>%F%F%H!" OO[zz))+Vr   c                     | t         j                  |d         t        |d         t        j                  |d               S )Nr   r{  r   )r   ry  r   )r   r   r_  rp  r   s     r   r   z'SharedArrayBufferIssueDetails.from_jsonl  sB    !3!=!=dCW>X!YD-.,66tF|D
 	
r   Nr   r&   r   r   rx  rx  Y  s4     -,%% 
 
r   rx  c                  ~    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	e
d        Zy)CorsIssueDetailszl
    Details for a CORS related issue, e.g. a warning or error related to
    CORS RFC1918 enforcement.
    znetwork.CorsErrorStatuscors_error_statusr_  ry  r(   r   Nr   locationr   initiator_originz'typing.Optional[network.IPAddressSpace]resource_ip_address_spacez,typing.Optional[network.ClientSecurityState]client_security_statec                   t               }| j                  j                         |d<   | j                  |d<   | j                  j                         |d<   | j
                  | j
                  j                         |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   |S )NcorsErrorStatusr{  r   r  initiatorOriginresourceIPAddressSpaceclientSecurityState)	r   r  r   ry  r   r  r  r  r  r   s     r   r   zCorsIssueDetails.to_json  s    v"&"8"8"@"@"B OO[,,..0Y==$#}}446D  ,&*&;&;D"#))5-1-K-K-S-S-UD)*%%1*.*D*D*L*L*ND&'r   c                    | t         j                  j                  |d         t        |d         t        j                  |d         d|v rt
        j                  |d         nd d|v rt        |d         nd d|v r"t         j                  j                  |d         nd d|v r't         j                  j                  |d               S d       S )	Nr  r{  r   r  r  r  r  )r  ry  r   r  r  r  r  )	r	   CorsErrorStatusr   r_  r(   r   r   IPAddressSpaceClientSecurityStater   s     r   r   zCorsIssueDetails.from_json  s    %55??EV@WXD-.#--d9o>GQUYGY'11$z2BC_c=NRV=VS&7!89\` kC  GK  kKg&<&<&F&FtLdGe&f  QUh}  BF  iF'"="="G"GMbHc"d
 	
 LP
 	
r   )r    r!   r"   r#   r$   r  r  r  r  r   r%   r   r&   r   r   r~  r~  u  sc     /.48H18-1*1IMFMJNGN 	
 	
r   r~  c                  v    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ed        Zy)AttributionReportingIssueTypePermissionPolicyDisabledUntrustworthyReportingOriginInsecureContextInvalidHeaderInvalidRegisterTriggerHeaderSourceAndTriggerHeadersSourceIgnoredTriggerIgnoredOsSourceIgnoredOsTriggerIgnoredInvalidRegisterOsSourceHeaderInvalidRegisterOsTriggerHeaderWebAndOsHeadersNoWebOrOsSupport4NavigationRegistrationWithoutTransientUserActivationInvalidInfoHeaderNoRegisterSourceHeaderNoRegisterTriggerHeaderNoRegisterOsSourceHeaderNoRegisterOsTriggerHeader+NavigationRegistrationUniqueScopeAlreadySetc                    | j                   S rE   rF   rH   s    r   r   z%AttributionReportingIssueType.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z'AttributionReportingIssueType.from_json  rK   r   N)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  r    s    !;%C"($N&D#!:$N&O)+(G%)I&*-@v=- 8!:#= $?!7d4  r   r  c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZd Zed        Zy)SharedDictionaryError UseErrorCrossOriginNoCorsRequestUseErrorDictionaryLoadFailure!UseErrorMatchingDictionaryNotUsed)UseErrorUnexpectedContentDictionaryHeader!WriteErrorCossOriginNoCorsRequestWriteErrorDisallowedBySettingsWriteErrorExpiredResponseWriteErrorFeatureDisabledWriteErrorInsufficientResourcesWriteErrorInvalidMatchField!WriteErrorInvalidStructuredHeaderWriteErrorInvalidTTLFieldWriteErrorNavigationRequestWriteErrorNoMatchFieldWriteErrorNonIntegerTTLFieldWriteErrorNonListMatchDestFieldWriteErrorNonSecureContextWriteErrorNonStringIdField"WriteErrorNonStringInMatchDestListWriteErrorNonStringMatchFieldWriteErrorNonTokenTypeFieldWriteErrorRequestAbortedWriteErrorShuttingDownWriteErrorTooLongIdFieldWriteErrorUnsupportedTypec                    | j                   S rE   rF   rH   s    r   r   zSharedDictionaryError.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   zSharedDictionaryError.from_json  rK   r   N)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_INVALID_TTL_FIELDWRITE_ERROR_NAVIGATION_REQUESTWRITE_ERROR_NO_MATCH_FIELD!WRITE_ERROR_NON_INTEGER_TTL_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    s    -O*(G%-P*5`2.Q+)I&#> #> )J&&C#,O)$?!%B"!9(F%,M)%A"&B#0T-)H&'D$"< 8$>!#>   r   r  c                  v    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ed        Zy)SRIMessageSignatureErrorMissingSignatureHeaderMissingSignatureInputHeaderInvalidSignatureHeaderInvalidSignatureInputHeader%SignatureHeaderValueIsNotByteSequence#SignatureHeaderValueIsParameterized%SignatureHeaderValueIsIncorrectLength SignatureInputHeaderMissingLabel%SignatureInputHeaderValueNotInnerList*SignatureInputHeaderValueMissingComponents(SignatureInputHeaderInvalidComponentType(SignatureInputHeaderInvalidComponentName3SignatureInputHeaderInvalidHeaderComponentParameter4SignatureInputHeaderInvalidDerivedComponentParameterSignatureInputHeaderKeyIdLength$SignatureInputHeaderInvalidParameter-SignatureInputHeaderMissingRequiredParameters ValidationFailedSignatureExpiredValidationFailedInvalidLength!ValidationFailedSignatureMismatch!ValidationFailedIntegrityMismatchc                    | j                   S rE   rF   rH   s    r   r   z SRIMessageSignatureError.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z"SRIMessageSignatureError.from_json  rK   r   N)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    s    7%B"7%B"2Y/.S+1X.+M(2Y/6b34^14^1@u=Aw>+L(/U,9h6*L''F$+N(+N(  r   r  c                  2    e Zd ZdZdZdZdZd Zed        Z	y)UnencodedDigestErrorMalformedDictionaryUnknownAlgorithmIncorrectDigestTypeIncorrectDigestLengthc                    | j                   S rE   rF   rH   s    r   r   zUnencodedDigestError.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   zUnencodedDigestError.from_json  rK   r   N)
r    r!   r"   MALFORMED_DICTIONARYUNKNOWN_ALGORITHMINCORRECT_DIGEST_TYPEINCORRECT_DIGEST_LENGTHr   r%   r   r&   r   r   r   r     s3    0*15  r   r   c                  :    e Zd ZdZdZdZdZdZdZd Z	e
d        Zy	)
ConnectionAllowlistErrorr  MoreThanOneListItemNotInnerListInvalidAllowlistItemTypeReportingEndpointNotTokenInvalidUrlPatternc                    | j                   S rE   rF   rH   s    r   r   z ConnectionAllowlistError.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z"ConnectionAllowlistError.from_json  rK   r   N)r    r!   r"   r  MORE_THAN_ONE_LISTITEM_NOT_INNER_LISTINVALID_ALLOWLIST_ITEM_TYPEREPORTING_ENDPOINT_NOT_TOKENINVALID_URL_PATTERNr   r%   r   r&   r   r   r,  r,    s>    $N*,"<#> -  r   r,  c                  \    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e	d        Z
y) AttributionReportingIssueDetailsz
    Details for issues around "Attribution Reporting API" usage.
    Explainer: https://github.com/WICG/attribution-reporting-api
    r  violation_typeNr   r   rd  re  r   invalid_parameterc                .   t               }| j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j
                  | j
                  |d<   |S )NviolationTyper   rl  invalidParameter)r   r;  r   r   re  r<  r   s     r   r   z(AttributionReportingIssueDetails.to_json2  s    v $ 3 3 ; ; =_<<#"ll224DO!!-&*&<&<&D&D&FD"#!!-'+'='=D#$r   c           	          | t         j                  |d         d|v rt        j                  |d         nd d|v r"t        j                  j                  |d         nd d|v rt        |d               S d       S )Nr>  r   rl  r?  )r;  r   re  r<  )r  r   r(   r   rn  r   r   s     r   r   z*AttributionReportingIssueDetails.from_json=  s    8BB4CXYBKtBSO--d9o>Y]VgkoVoc//99$?P:QRuy?QUY?Yc$'9":;	
 	
 `d	
 	
r   )r    r!   r"   r#   r$   r   re  r<  r   r%   r   r&   r   r   r:  r:  $  sK     2104G-4<@9@.2+2	 
 
r   r:  c                  Z    e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   d Zed        Zy)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)   r3   r4   znetwork.LoaderId	loader_idc                   t               }| j                  |d<   | j                  j                         |d<   | j                  |d<   | j
                  j                         |d<   | j                  j                         |d<   |S )NisLimitedQuirksModedocumentNodeIdr)   r6   loaderId)r   rC  rE  r   r)   r4   rF  r   s     r   r   zQuirksModeIssueDetails.to_jsonY  ss    v&*&A&A"#!%!6!6!>!>!@hhU--//1Y>>113Zr   c           
         | t        |d         t        j                  j                  |d         t	        |d         t
        j                  j                  |d         t        j                  j                  |d               S )NrH  rI  r)   r6   rJ  )rC  rE  r)   r4   rF  )	r_  r   rn  r   r   r
   r8   r	   LoaderIdr   s     r   r   z QuirksModeIssueDetails.from_jsonb  sr    #'-B(C#D ..88>N9OPDK \\++DO<&&00j1AB
 	
r   Nr   r&   r   r   rB  rB  G  s?     ! ''	H 
 
r   rB  c                  <    e Zd ZU ded<   dZded<   d Zed        Zy)NavigatorUserAgentIssueDetailsr   r)   Nr   r  c                    t               }| j                  |d<   | j                  | j                  j                         |d<   |S )Nr)   r  )r   r)   r  r   r   s     r   r   z&NavigatorUserAgentIssueDetails.to_jsons  s<    vhhU==$#}}446Dr   c                p     | t        |d         d|v rt        j                  |d               S d       S )Nr)   r  )r)   r  )r   r   r   r   s     r   r   z(NavigatorUserAgentIssueDetails.from_jsonz  sD    DK GQUYGY'11$z2BC
 	
_c
 	
r   )r    r!   r"   r$   r  r   r%   r   r&   r   r   rN  rN  m  s+    	H48H18 
 
r   rN  c                  8    e Zd ZU ded<   ded<   d Zed        Zy)SharedDictionaryIssueDetailsr  shared_dictionary_errorr(   r   c                    t               }| j                  j                         |d<   | j                  j                         |d<   |S )NsharedDictionaryErrorr   )r   rS  r   r   r   s     r   r   z$SharedDictionaryIssueDetails.to_json  s>    v(,(D(D(L(L(N$%,,..0Yr   c                n     | t         j                  |d         t        j                  |d               S )NrU  r   )rS  r   )r  r   r(   r   s     r   r   z&SharedDictionaryIssueDetails.from_json  s5    $9$C$CDI`Da$b#--d9o>
 	
r   Nr>  r&   r   r   rR  rR    s'    22 
 
r   rR  c                  L    e Zd ZU ded<   ded<   ded<   ded<   d	 Zed
        Zy)SRIMessageSignatureIssueDetailsr  errorr   signature_basetyping.List[str]integrity_assertionsr(   r   c                    t               }| j                  j                         |d<   | j                  |d<   | j                  D cg c]  }| c}|d<   | j
                  j                         |d<   |S c c}w )NrY  signatureBaseintegrityAssertionsr   )r   rY  r   rZ  r\  r   r   s      r   r   z'SRIMessageSignatureIssueDetails.to_json  sl    v

**,W $ 3 3_262K2K&LQq&L"#,,..0Y 'Ms   	A3c           
          | t         j                  |d         t        |d         |d   D cg c]  }t        |       c}t        j                  |d               S c c}w )NrY  r^  r_  r   )rY  rZ  r\  r   )r  r   r   r(   r   s      r   r   z)SRIMessageSignatureIssueDetails.from_json  s^    *44T']CtO45267L2M!NQ#a&!N#--d9o>	
 	
 "Os   ANr>  r&   r   r   rX  rX    s3    ##** 
 
r   rX  c                  8    e Zd ZU ded<   ded<   d Zed        Zy)UnencodedDigestIssueDetailsr   rY  r(   r   c                    t               }| j                  j                         |d<   | j                  j                         |d<   |S NrY  r   r   rY  r   r   r   s     r   r   z#UnencodedDigestIssueDetails.to_json  :    v

**,W,,..0Yr   c                n     | t         j                  |d         t        j                  |d               S NrY  r   )rY  r   )r   r   r(   r   s     r   r   z%UnencodedDigestIssueDetails.from_json  s3    &00g?#--d9o>
 	
r   Nr>  r&   r   r   rb  rb    s'     
 
r   rb  c                  8    e Zd ZU ded<   ded<   d Zed        Zy)ConnectionAllowlistIssueDetailsr,  rY  r(   r   c                    t               }| j                  j                         |d<   | j                  j                         |d<   |S rd  re  r   s     r   r   z'ConnectionAllowlistIssueDetails.to_json  rf  r   c                n     | t         j                  |d         t        j                  |d               S rh  )r,  r   r(   r   s     r   r   z)ConnectionAllowlistIssueDetails.from_json  s3    *44T']C#--d9o>
 	
r   Nr>  r&   r   r   rj  rj    s'    ## 
 
r   rj  c                  b    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ed        Zy)GenericIssueErrorTypeFormLabelForNameErrorFormDuplicateIdForInputErrorFormInputWithNoLabelError#FormAutocompleteAttributeEmptyError)FormEmptyIdAndNameAttributesForInputError&FormAriaLabelledByToNonExistingIdError:FormInputAssignedAutocompleteValueToIdOrNameAttributeError)FormLabelHasNeitherForNorNestedInputError%FormLabelForMatchesNonExistingIdError6FormInputHasWrongButWellIntendedAutocompleteValueErrorResponseWasBlockedByORBNavigationEntryMarkedSkippable1AutofillAndManualTextPolicyControlledFeaturesInfo#AutofillPolicyControlledFeatureInfo%ManualTextPolicyControlledFeatureInfo3FormModelContextParameterMissingTitleAndDescriptionc                    | j                   S rE   rF   rH   s    r   r   zGenericIssueErrorType.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   zGenericIssueErrorType.from_json  rK   r   N)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_ID_ERRORDFORM_INPUT_ASSIGNED_AUTOCOMPLETE_VALUE_TO_ID_OR_NAME_ATTRIBUTE_ERROR1FORM_LABEL_HAS_NEITHER_FOR_NOR_NESTED_INPUT_ERROR,FORM_LABEL_FOR_MATCHES_NON_EXISTING_ID_ERROR?FORM_INPUT_HAS_WRONG_BUT_WELL_INTENDED_AUTOCOMPLETE_VALUE_ERRORRESPONSE_WAS_BLOCKED_BY_ORB!NAVIGATION_ENTRY_MARKED_SKIPPABLE8AUTOFILL_AND_MANUAL_TEXT_POLICY_CONTROLLED_FEATURES_INFO'AUTOFILL_POLICY_CONTROLLED_FEATURE_INFO*MANUAL_TEXT_POLICY_CONTROLLED_FEATURE_INFO:FORM_MODEL_CONTEXT_PARAMETER_MISSING_TITLE_AND_DESCRIPTIONr   r%   r   r&   r   r   rn  rn    s     7(F%%@".S+8c55]2 LHH8c53Z0F~C";(H%?r<.S+1X.Av>  r   rn  c                  j    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	e
d        Zy)GenericIssueDetailszL
    Depending on the concrete errorType, different properties are set.
    rn  
error_typeNztyping.Optional[page.FrameId]r4   rd  re  r   violating_node_attributer   r   c                   t               }| j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j
                  | j
                  |d<   | j                  | j                  j                         |d<   |S )N	errorTyper6   rl  violatingNodeAttributer   )r   r  r   r4   re  r  r   r   s     r   r   zGenericIssueDetails.to_json  s    v OO335[==$"mm335DO!!-&*&<&<&D&D&FD"#((4-1-J-JD)*<<#"ll224DOr   c           
     F    | t         j                  |d         d|v r"t        j                  j                  |d         nd d|v r"t        j
                  j                  |d         nd d|v rt        |d         nd d|v rt        j                  |d               S d       S )Nr  r6   rl  r  r   )r  r4   re  r  r   )rn  r   r
   r8   r   rn  r   r(   r   s     r   r   zGenericIssueDetails.from_json  s    ,66tK7HI@IT@QT\\++DO<W[VgkoVoc//99$?P:QRuyLdhlLlS.F)G%HrvBKtBSO--d9o>
 	

 Z^
 	
r   )r    r!   r"   r#   r$   r4   re  r  r   r   r%   r   r&   r   r   r  r    sV     &%.2H+2<@9@592904G-4 
 
r   r  c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)DeprecationIssueDetailsz
    This issue tracks information needed to print a deprecation message.
    https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/frame/third_party/blink/renderer/core/frame/deprecation/README.md
    r   r   r   r   Nr  affected_framec                    t               }| j                  j                         |d<   | j                  |d<   | j                  | j                  j                         |d<   |S )Nr   r   affectedFrame)r   r   r   r   r  r   s     r   r   zDeprecationIssueDetails.to_json)  sZ    v%)%>%>%F%F%H!"zzV*$($7$7$?$?$AD!r   c                     | t         j                  |d         t        |d         d|v rt        j                  |d               S d       S )Nr   r   r  )r   r   r  )r   r   r   r2   r   s     r   r   z!DeprecationIssueDetails.from_json1  s[    !3!=!=dCW>X!Yd6l#M\`dMd=2243HI
 	
 ko
 	
r   )	r    r!   r"   r#   r$   r  r   r%   r   r&   r   r   r  r    s:     -, J59N29 
 
r   r  c                  2    e Zd ZU dZded<   d Zed        Zy)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                ^    t               }| j                  D cg c]  }| c}|d<   |S c c}w )NtrackingSites)r   r  r   s      r   r   z"BounceTrackingIssueDetails.to_jsonE  s/    v,0,?,? @q @_ !As   	*c                R     | |d   D cg c]  }t        |       c}      S c c}w )Nr  )r  r   r   s      r   r   z$BounceTrackingIssueDetails.from_jsonJ  s)    ,0,ABqCFB
 	
Bs   $Nr   r&   r   r   r  r  :  s(     %$
 
 
r   r  c                  P    e Zd ZU dZded<   ded<   ded<   ded	<   d
 Zed        Zy)%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_sitesfloatopt_out_percentager_  is_opt_out_top_levelrv   r   c                    t               }| j                  D cg c]  }| c}|d<   | j                  |d<   | j                  |d<   | j                  j                         |d<   |S c c}w )NallowedSitesoptOutPercentageisOptOutTopLevelr   )r   r  r  r  r   r   r   s      r   r   z-CookieDeprecationMetadataIssueDetails.to_jsonb  sg    v+/+=+=>a>^#'#:#: #'#<#<  NN224[	  ?s   	A%c           	          | |d   D cg c]  }t        |       c}t        |d         t        |d         t        j	                  |d               S c c}w )Nr  r  r  r   )r  r  r  r   )r   r  r_  rv   r   r   s      r   r   z/CookieDeprecationMetadataIssueDetails.from_jsonj  sX    +/+?@a3q6@$T*<%=>!%d+=&>!?%//[0AB	
 	
@s   ANr   r&   r   r   r  r  Q  s:     $# 
 
r   r  c                  *    e Zd ZdZdZd Zed        Zy)ClientHintIssueReasonMetaTagAllowListInvalidOriginMetaTagModifiedHTMLc                    | j                   S rE   rF   rH   s    r   r   zClientHintIssueReason.to_jsonx  rI   r   c                     | |      S rE   r&   r   s     r   r   zClientHintIssueReason.from_json{  rK   r   N)r    r!   r"   "META_TAG_ALLOW_LIST_INVALID_ORIGINMETA_TAG_MODIFIED_HTMLr   r%   r   r&   r   r   r  r  t  s'    )H&2  r   r  c                  .    e Zd ZU ded<   d Zed        Zy) FederatedAuthRequestIssueDetailsFederatedAuthRequestIssueReason#federated_auth_request_issue_reasonc                T    t               }| j                  j                         |d<   |S )NfederatedAuthRequestIssueReason)r   r  r   r   s     r   r   z(FederatedAuthRequestIssueDetails.to_json  s(    v262Z2Z2b2b2d./r   c                @     | t         j                  |d               S )Nr  )r  )r  r   r   s     r   r   z*FederatedAuthRequestIssueDetails.from_json  s/    0O0Y0YZ^  `A  [B  1C
 	
r   Nr>  r&   r   r   r  r    s!    )HH
 
 
r   r  c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d, Z.e/d-        Z0y.)/r  z
    Represents the failure reason when a federated authentication reason fails.
    Should be updated alongside RequestIdTokenStatus in
    third_party/blink/public/mojom/devtools/inspector_issue.mojom to include
    all cases except for success.
    ShouldEmbargoTooManyRequestsWellKnownHttpNotFoundWellKnownNoResponseWellKnownInvalidResponseWellKnownListEmptyWellKnownInvalidContentTypeConfigNotInWellKnownWellKnownTooBigConfigHttpNotFoundConfigNoResponseConfigInvalidResponseConfigInvalidContentTypeIdpNotPotentiallyTrustworthyDisabledInSettingsDisabledInFlagsErrorFetchingSigninInvalidSigninResponseAccountsHttpNotFoundAccountsNoResponseAccountsInvalidResponseAccountsListEmptyAccountsInvalidContentTypeIdTokenHttpNotFoundIdTokenNoResponseIdTokenInvalidResponseIdTokenIdpErrorResponse IdTokenCrossSiteIdpErrorResponseIdTokenInvalidRequestIdTokenInvalidContentTypeErrorIdTokenCanceledRpPageNotVisibleSilentMediationFailureNotSignedInWithIdpMissingTransientUserActivationReplacedByActiveModeRelyingPartyOriginIsOpaqueTypeNotMatchingUiDismissedNoEmbargo	CorsError SuppressedBySegmentationPlatformc                    | j                   S rE   rF   rH   s    r   r   z'FederatedAuthRequestIssueReason.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z)FederatedAuthRequestIssueReason.from_json  rK   r   N)1r    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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NOT_SIGNED_IN_WITH_IDP!MISSING_TRANSIENT_USER_ACTIVATIONREPLACED_BY_ACTIVE_MODE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    s    %N) 72"<0&C#5*0+5"<&D#/)154/ 9-$@!3. 8";-O*6$?!#NH,71(H%4%A")4J*L'  r   r  c                  .    e Zd ZU ded<   d Zed        Zy)(FederatedAuthUserInfoRequestIssueDetails'FederatedAuthUserInfoRequestIssueReason-federated_auth_user_info_request_issue_reasonc                T    t               }| j                  j                         |d<   |S )N'federatedAuthUserInfoRequestIssueReason)r   r  r   r   s     r   r   z0FederatedAuthUserInfoRequestIssueDetails.to_json  s(    v:>:l:l:t:t:v67r   c                @     | t         j                  |d               S )Nr  )r  )r  r   r   s     r   r   z2FederatedAuthUserInfoRequestIssueDetails.from_json  s/    :a:k:klp  r[  m\  ;]
 	
r   Nr>  r&   r   r   r  r    s!    3ZZ
 
 
r   r  c                  J    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ed        Zy)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NoApiPermissionr  NoAccountSharingPermissionInvalidConfigOrWellKnownInvalidAccountsResponse"NoReturningUserFromFetchedAccountsc                    | j                   S rE   rF   rH   s    r   r   z/FederatedAuthUserInfoRequestIssueReason.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z1FederatedAuthUserInfoRequestIssueReason.from_json  rK   r   N)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    sV    
 &OJ"=)1$@!#=  9.R+  r   r  c                  <    e Zd ZU dZded<   ded<   d Zed        Zy)	ClientHintIssueDetailsz
    This issue tracks client hints related issues. It's used to deprecate old
    features, encourage the use of new ones, and provide general guidance.
    r   r   r  client_hint_issue_reasonc                    t               }| j                  j                         |d<   | j                  j                         |d<   |S )Nr   clientHintIssueReason)r   r   r   r2  r   s     r   r   zClientHintIssueDetails.to_json  sB    v%)%>%>%F%F%H!"(,(E(E(M(M(O$%r   c                n     | t         j                  |d         t        j                  |d               S )Nr   r4  )r   r2  )r   r   r  r   s     r   r   z ClientHintIssueDetails.from_json  s7    !3!=!=dCW>X!Y%:%D%DTJaEb%c
 	
r   Nr   r&   r   r   r1  r1    s.     -,33 
 
r   r1  c                  F    e Zd ZU ded<   ded<   dZded<   d Zed        Zy)	FailedRequestInfor   r)   failure_messageNr*   r+   c                    t               }| j                  |d<   | j                  |d<   | j                  | j                  j	                         |d<   |S )Nr)   failureMessager-   )r   r)   r8  r+   r   r   s     r   r   zFailedRequestInfo.to_json  sM    vhhU!%!5!5??& $ 7 7 9Dr   c                     | t        |d         t        |d         d|v r't        j                  j                  |d               S d       S )Nr)   r:  r-   )r)   r8  r+   r/   r   s     r   r   zFailedRequestInfo.from_json  s[    DK %5 67ITX\I\w((2243DE
 	
 cg
 	
r   )r    r!   r"   r$   r+   r   r%   r   r&   r   r   r7  r7  
  s5     
H 59J29 
 
r   r7  c                  *    e Zd ZdZdZd Zed        Zy)PartitioningBlobURLInfoBlockedCrossPartitionFetchingEnforceNoopenerForNavigationc                    | j                   S rE   rF   rH   s    r   r   zPartitioningBlobURLInfo.to_json)  rI   r   c                     | |      S rE   r&   r   s     r   r   z!PartitioningBlobURLInfo.from_json,  rK   r   N)r    r!   r"    BLOCKED_CROSS_PARTITION_FETCHINGENFORCE_NOOPENER_FOR_NAVIGATIONr   r%   r   r&   r   r   r=  r=  %  s'    'F$&D#  r   r=  c                  8    e Zd ZU ded<   ded<   d Zed        Zy)PartitioningBlobURLIssueDetailsr   r)   r=  partitioning_blob_url_infoc                r    t               }| j                  |d<   | j                  j                         |d<   |S )Nr)   partitioningBlobURLInfo)r   r)   rF  r   r   s     r   r   z'PartitioningBlobURLIssueDetails.to_json9  s5    vhhU*.*I*I*Q*Q*S&'r   c                Z     | t        |d         t        j                  |d               S )Nr)   rH  )r)   rF  )r   r=  r   r   s     r   r   z)PartitioningBlobURLIssueDetails.from_json?  s/    DK '>'H'HNgIh'i
 	
r   Nr>  r&   r   r   rE  rE  1  s*     
H !87 
 
r   rE  c                  :    e Zd ZdZdZdZdZdZdZd Z	e
d        Zy	)
ElementAccessibilityIssueReasonDisallowedSelectChildDisallowedOptGroupChildNonPhrasingContentOptionChildInteractiveContentOptionChildInteractiveContentLegendChild#InteractiveContentSummaryDescendantc                    | j                   S rE   rF   rH   s    r   r   z'ElementAccessibilityIssueReason.to_jsonO  rI   r   c                     | |      S rE   r&   r   s     r   r   z)ElementAccessibilityIssueReason.from_jsonR  rK   r   N)r    r!   r"   DISALLOWED_SELECT_CHILDDISALLOWED_OPT_GROUP_CHILD!NON_PHRASING_CONTENT_OPTION_CHILD INTERACTIVE_CONTENT_OPTION_CHILD INTERACTIVE_CONTENT_LEGEND_CHILD&INTERACTIVE_CONTENT_SUMMARY_DESCENDANTr   r%   r   r&   r   r   rK  rK  G  s?    5!:(G%'F$'F$-R*  r   rK  c                  F    e Zd ZU dZded<   ded<   ded<   d Zed	        Zy
) ElementAccessibilityIssueDetailszW
    This issue warns about errors in the select or summary element content model.
    rD  node_idrK  "element_accessibility_issue_reasonr_  has_disallowed_attributesc                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  |d<   |S )NnodeIdelementAccessibilityIssueReasonhasDisallowedAttributes)r   r\  r   r]  r^  r   s     r   r   z(ElementAccessibilityIssueDetails.to_jsonb  sO    v--/X262Y2Y2a2a2c./*.*H*H&'r   c                     | t         j                  j                  |d         t        j                  |d         t	        |d               S )Nr`  ra  rb  )r\  r]  r^  )r   rn  r   rK  r_  r   s     r   r   z*ElementAccessibilityIssueDetails.from_jsoni  sQ    %%//X?/N/X/XY]^  ZA  0B&*40I+J&K
 	
r   Nr   r&   r   r   r[  r[  W  s4     (GG## 
 
r   r[  c                  *    e Zd ZdZdZd Zed        Zy)StyleSheetLoadingIssueReasonLateImportRuleRequestFailedc                    | j                   S rE   rF   rH   s    r   r   z$StyleSheetLoadingIssueReason.to_jsonv  rI   r   c                     | |      S rE   r&   r   s     r   r   z&StyleSheetLoadingIssueReason.from_jsony  rK   r   N)r    r!   r"   LATE_IMPORT_RULEREQUEST_FAILEDr   r%   r   r&   r   r   re  re  r  s&    '$N  r   re  c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)StylesheetLoadingIssueDetailszK
    This issue warns when a referenced stylesheet couldn't be loaded.
    r   r   re   style_sheet_loading_issue_reasonNz"typing.Optional[FailedRequestInfo]failed_request_infoc                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  j                         |d<   |S )Nr   styleSheetLoadingIssueReasonfailedRequestInfo)r   r   r   rn  ro  r   s     r   r   z%StylesheetLoadingIssueDetails.to_json  sh    v%)%>%>%F%F%H!"/3/T/T/\/\/^+,##/(,(@(@(H(H(JD$%r   c                     | t         j                  |d         t        j                  |d         d|v rt        j                  |d               S d       S )Nr   rq  rr  )r   rn  ro  )r   r   re  r7  r   s     r   r   z'StylesheetLoadingIssueDetails.from_json  sf    !3!=!=dCW>X!Y-I-S-STXYwTx-yZmquZu 1 ; ;DAT<U V
 	
 |@
 	
r   )	r    r!   r"   r#   r$   ro  r   r%   r   r&   r   r   rm  rm  ~  s@     -, 'CB ?C;B 
 
r   rm  c                  2    e Zd ZdZdZdZdZd Zed        Z	y)PropertyRuleIssueReasonInvalidSyntaxInvalidInitialValueInvalidInheritsInvalidNamec                    | j                   S rE   rF   rH   s    r   r   zPropertyRuleIssueReason.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z!PropertyRuleIssueReason.from_json  rK   r   N)
r    r!   r"   INVALID_SYNTAXINVALID_INITIAL_VALUEINVALID_INHERITSINVALID_NAMEr   r%   r   r&   r   r   ru  ru    s1    $N1( L  r   ru  c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)PropertyRuleIssueDetailszp
    This issue warns about errors in property rules that lead to property
    registrations being ignored.
    r   r   ru  property_rule_issue_reasonNr   property_valuec                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  |d<   |S )Nr   propertyRuleIssueReasonpropertyValue)r   r   r   r  r  r   s     r   r   z PropertyRuleIssueDetails.to_json  s^    v%)%>%>%F%F%H!"*.*I*I*Q*Q*S&'*$($7$7D!r   c                     | t         j                  |d         t        j                  |d         d|v rt        |d               S d       S )Nr   r  r  )r   r  r  )r   r   ru  r   r   s     r   r   z"PropertyRuleIssueDetails.from_json  s\    !3!=!=dCW>X!Y'>'H'HNgIh'i9HD9P3tO45
 	
 W[
 	
r   )	r    r!   r"   r#   r$   r  r   r%   r   r&   r   r   r  r    s=    
 -, !87 ,0N(/ 
 
r   r  c                  .    e Zd ZdZdZdZd Zed        Zy)UserReidentificationIssueTypeBlockedFrameNavigationBlockedSubresourceNoisedCanvasReadbackc                    | j                   S rE   rF   rH   s    r   r   z%UserReidentificationIssueType.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z'UserReidentificationIssueType.from_json  rK   r   N)	r    r!   r"   BLOCKED_FRAME_NAVIGATIONBLOCKED_SUBRESOURCENOISED_CANVAS_READBACKr   r%   r   r&   r   r   r  r    s-    7.3  r   r  c                  N    e Zd ZU dZded<   dZded<   dZded<   d	 Zed
        Z	y) UserReidentificationIssueDetailsze
    This issue warns about uses of APIs that may be considered misuse to
    re-identify users.
    r  r   Nr   r   r   r   c                    t               }| j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   |S )Nr   r   r   )r   r   r   r   r   r   s     r   r   z(UserReidentificationIssueDetails.to_json  sj    vzz))+V<<#"ll224DO$$0)-)B)B)J)J)LD%&r   c                     | t         j                  |d         d|v rt        j                  |d         nd d|v rt        j                  |d               S d       S )Nr   r   r   )r   r   r   )r  r   r(   r   r   s     r   r   z*UserReidentificationIssueDetails.from_json  sk    /99$v,GBKtBSO--d9o>Y]]quy]y!3!=!=dCW>X!Y
 	
 @D
 	
r   )
r    r!   r"   r#   r$   r   r   r   r%   r   r&   r   r   r  r    sE     )( 15G-4 AE=D 
 
r   r  c                  v    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ed        Zy)PermissionElementIssueTypeInvalidTypeFencedFrameDisallowedCspFrameAncestorsMissingPermissionsPolicyBlockedPaddingRightUnsupportedPaddingBottomUnsupportedInsetBoxShadowUnsupportedRequestInProgressUntrustedEventRegistrationFailedTypeNotSupportedInvalidTypeActivationSecurityChecksFailedActivationDisabledGeolocationDeprecatedInvalidDisplayStyleNonOpaqueColorLowContrastFontSizeTooSmallFontSizeTooLargeInvalidSizeValuec                    | j                   S rE   rF   rH   s    r   r   z"PermissionElementIssueType.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   z$PermissionElementIssueType.from_json  rK   r   N)r    r!   r"   INVALID_TYPEFENCED_FRAME_DISALLOWEDCSP_FRAME_ANCESTORS_MISSINGPERMISSIONS_POLICY_BLOCKEDPADDING_RIGHT_UNSUPPORTEDPADDING_BOTTOM_UNSUPPORTEDINSET_BOX_SHADOW_UNSUPPORTEDREQUEST_IN_PROGRESSUNTRUSTED_EVENTREGISTRATION_FAILEDTYPE_NOT_SUPPORTEDINVALID_TYPE_ACTIVATIONSECURITY_CHECKS_FAILEDACTIVATION_DISABLEDGEOLOCATION_DEPRECATEDINVALID_DISPLAY_STYLENON_OPAQUE_COLORLOW_CONTRASTFONT_SIZE_TOO_SMALLFONT_SIZE_TOO_LARGEINVALID_SIZE_VALUEr   r%   r   r&   r   r   r  r    s     L5"<!; 9!;#> -&O.+53.41' L,,+  r   r  c                      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 Zed        Zy)PermissionElementIssueDetailszL
    This issue warns about improper usage of the <permission> element.
    r  
issue_typeNr   r   rd  r\  typing.Optional[bool]ry  permission_nameoccluder_node_infooccluder_parent_node_infodisable_reasonc                   t               }| j                  j                         |d<   | j                  | j                  |d<   | j                  | j                  j                         |d<   | j
                  | j
                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   | j                  | j                  |d<   |S )	N	issueTyper   r`  r{  permissionNameoccluderNodeInfooccluderParentNodeInfodisableReason)
r   r  r   r   r\  ry  r  r  r  r  r   s     r   r   z%PermissionElementIssueDetails.to_json4  s    v OO335[::!::DL<<#!\\113DN??& $D+%)%9%9D!""".'+'>'>D#$))5-1-K-KD)**$($7$7D!r   c                |    | t         j                  |d         d|v rt        |d         nd d|v r"t        j                  j                  |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         nd d|v rt        |d         	      S d 	      S )
Nr  r   r`  r{  r  r  r  r  )r  r   r\  ry  r  r  r  r  )r  r   r   r   rn  r_  r   s     r   r   z'PermissionElementIssueDetails.from_jsonG  s    1;;D<MN'-~#d6l#4CKtCSC%%//X?Y]2=2EtD-.4;Kt;SC%5 67Y]@RVZ@Zs4(:#;<`dMeimMmc$/G*H&Isw9HD9P3tO45	
 		
 W[	
 		
r   )r    r!   r"   r#   r$   r   r\  ry  r  r  r  r  r   r%   r   r&   r   r   r  r    s     +* #'E& 37G/6 )-J%, -1O)0 04,3 7;3: ,0N(/& 

 

r   r  c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy),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_tracec                    t               }| j                  |d<   | j                  j                         |d<   | j                  | j                  j                         |d<   |S )NapiName
adAncestry
stackTrace)r   r  r  r   r  r   s     r   r   z4SelectivePermissionsInterventionIssueDetails.to_jsond  sY    v--Y!--557\'!%!1!1!9!9!;Dr   c                     | t        |d         t        j                  j                  |d         d|v r't        j
                  j                  |d               S d       S )Nr  r  r  )r  r  r  )r   r	   
AdAncestryr   r   
StackTracer   s     r   r   z6SelectivePermissionsInterventionIssueDetails.from_jsonl  sf    i)**44T,5GHLX\`L`**44T,5GH
 	
 gk
 	
r   )	r    r!   r"   r#   r$   r  r   r%   r   r&   r   r   r  r  U  s<    
 M $# 8<K4; 
 
r   r  c                      e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ d Z!e"d         Z#y!)"InspectorIssueCodez
    A unique identifier for the type of issue. Each type may use one of the
    optional fields in InspectorIssueDetails to convey more specific
    information about the kind of issue.
    CookieIssueMixedContentIssueBlockedByResponseIssueHeavyAdIssueContentSecurityPolicyIssueSharedArrayBufferIssue	CorsIssueAttributionReportingIssueQuirksModeIssuePartitioningBlobURLIssueNavigatorUserAgentIssueGenericIssueDeprecationIssueClientHintIssueFederatedAuthRequestIssueBounceTrackingIssueCookieDeprecationMetadataIssueStylesheetLoadingIssue!FederatedAuthUserInfoRequestIssuePropertyRuleIssueSharedDictionaryIssueElementAccessibilityIssueSRIMessageSignatureIssueUnencodedDigestIssueConnectionAllowlistIssueUserReidentificationIssuePermissionElementIssuePerformanceIssue%SelectivePermissionsInterventionIssuec                    | j                   S rE   rF   rH   s    r   r   zInspectorIssueCode.to_json  rI   r   c                     | |      S rE   r&   r   s     r   r   zInspectorIssueCode.from_json  rK   r   N)$r    r!   r"   r#   COOKIE_ISSUEMIXED_CONTENT_ISSUEBLOCKED_BY_RESPONSE_ISSUEHEAVY_AD_ISSUECONTENT_SECURITY_POLICY_ISSUESHARED_ARRAY_BUFFER_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ELEMENT_ACCESSIBILITY_ISSUESRI_MESSAGE_SIGNATURE_ISSUEUNENCODED_DIGEST_ISSUECONNECTION_ALLOWLIST_ISSUEUSER_REIDENTIFICATION_ISSUEPERMISSION_ELEMENT_ISSUEPERFORMANCE_ISSUE(SELECTIVE_PERMISSIONS_INTERVENTION_ISSUEr   r%   r   r&   r   r   r  r  u  s    
 !L- 8#N$@! 8J"=)"<!:"M*)#> 1(H%7-P*-5"="<3!;"=7*/V,  r   r  c                     e Zd ZU dZdZded<   dZded<   dZded<   dZd	ed
<   dZ	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= Z"e#d>        Z$y)?InspectorIssueDetailsz
    This struct holds a list of optional fields with additional information
    specific to the kind of issue. When adding a new issue code, please also
    add a new optional field to this type.
    Nz#typing.Optional[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_detailsc                d	   t               }| j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j
                  | j
                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d	<   | j                  | j                  j                         |d
<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                  | j                  j                         |d<   | j                   | j                   j                         |d<   | j"                  | j"                  j                         |d<   | j$                  | j$                  j                         |d<   | j&                  | j&                  j                         |d<   | j(                  | j(                  j                         |d<   | j*                  | j*                  j                         |d<   | j,                  | j,                  j                         |d<   | j.                  | j.                  j                         |d<   | j0                  | j0                  j                         |d<   | j2                  | j2                  j                         |d<   | j4                  | j4                  j                         |d<   | j6                  | j6                  j                         |d<   | j8                  | j8                  j                         |d<   | j:                  | j:                  j                         |d<   | j<                  | j<                  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/  r0  r1  r2  r3  r4  r5  r6  r7  r8  r9  r:  r;  r   s     r   r   zInspectorIssueDetails.to_json  sh   v$$0)-)B)B)J)J)LD%&++7/3/O/O/W/W/YD+,11=484Z4Z4b4b4dD01&&2*.*E*E*M*M*OD&'55A8<8b8b8j8j8lD4511=484Z4Z4b4b4dD01"".'+'>'>'F'F'HD#$33?7;7_7_7g7g7iD34))5-1-K-K-S-S-UD)*33?6:6^6^6f6f6hD2322>595\5\5d5d5fD12%%1*.*D*D*L*L*ND&'))5.2.L.L.T.T.VD*+))5-1-K-K-S-S-UD)*44@7;7`7`7h7h7jD34--9151S1S1[1[1]D-.99E<@<j<j<r<r<tD8900<484Y4Y4a4a4cD01++7/3/O/O/W/W/YD+,>>J?C?r?r?z?z?|D;<//;373W3W3_3_3aD/033?7;7_7_7g7g7iD3433?6:6^6^6f6f6hD23..:262U2U2]2]2_D./22>6:6]6]6e6e6gD2333?7;7_7_7g7g7iD3400<484Y4Y4a4a4cD01))5.2.L.L.T.T.VD*+@@LCGCxCx  DA  DA  DCD?@r   c           	         | d;i dd|v rt         j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd d	d
|v rt
        j                  |d
         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd|v rt        j                  |d         nd dd |v rt         j                  |d          nd d!d"|v rt"        j                  |d"         nd d#d$|v rt$        j                  |d$         nd d%d&|v rt&        j                  |d&         nd d'd(|v rt(        j                  |d(         nd d)d*|v rt*        j                  |d*         nd d+d,|v rt,        j                  |d,         nd d-d.|v rt.        j                  |d.         nd d/d0|v rt0        j                  |d0         nd d1d2|v rt2        j                  |d2         nd d3d4|v rt4        j                  |d4         nd d5d6|v rt6        j                  |d6         nd d7d8|v rt8        j                  |d8         nd d9d:|v rt:        j                  |d:         S d S )<Nr  r=  r   r>  r!  r?  r"  r@  r#  rA  r$  rB  r%  rC  r&  rD  r'  rE  r(  rF  r)  rG  r*  rH  r+  rI  r,  rJ  r-  rK  r.  rL  r/  rM  r0  rN  r1  rO  r2  rP  r3  rQ  r4  rR  r5  rS  r6  rT  r7  rU  r8  rV  r9  rW  r:  rX  r;  rY  r&   )r   r   r   r  r:  r]  rx  r~  r:  rB  rE  rN  r  r  r1  r  r  r  rm  r  r  rR  r[  rX  rb  rj  r  r  r   r  r   s     r   r   zInspectorIssueDetails.from_json   s    
]quy]y!3!=!=dCW>X!Y  @D
 qK  OS  qS(@(J(J4PjKk(l  Y]
 A`  dh  Ah.K.U.UVZ[zV{.|  nr
 bwz~a~#6#@#@F[A\#]  EI	

 Mp  tx  Mx2S2]2]^b  dG  _H  3I  ~B
 A`  dh  Ah.K.U.UVZ[zV{.|  nr
 XjmqWq/99$?Q:RSw{
 Ik  os  Is0P0Z0Z[_  aC  \D  1E  y}
 kC  GK  kK&<&F&FtLdGe&f  QU
 Gh  lp  Gp0O0Y0YZ^  `A  [B  1C  vz
 Dd  hl  Dl/M/W/WX\]}X~/  rv
 avy}`}"5"?"?EZ@["\  DH
 mF  JN  mN&=&G&GMfHg&h  TX
 kC  GK  kK&<&F&FtLdGe&f  QU
 Jl  pt  Jt1Q1[1[\`  bD  ]E  2F  z~
  wS  W[  w[*D*N*NtTpOq*r  ae!
" Y@  DH  YH6[6e6efj  lS  gT  7U  NR#
$ @_  cg  @g-J-T-TUYZyUz-{  mq%
& qK  OS  qS(@(J(J4PjKk(l  Y]'
( dN  RV  dV;c;m;mnr  t^  o_  <`  \`)
* }[  _c  }c,H,R,RSWXvSw,x  im+
, Ik  os  Is0P0Z0Z[_  aC  \D  1E  y}-
. Gh  lp  Gp0O0Y0YZ^  `A  [B  1C  vz/
0 zW  [_  z_+F+P+PQUVsQt+u  ei1
2 Fg  ko  Fo/N/X/XY]^  ZA  0B  uy3
4 Ik  os  Is0P0Z0Z[_  aC  \D  1E  y}5
6 @_  cg  @g-J-T-TUYZyUz-{  mq7
8 mF  JN  mN&=&G&GMfHg&h  TX9
: n\  `d  nd=i=s=stx  zh  ui  >j;
 	
: jn;
 	
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   r  r    s   
 AE=DMQ!JQX\%'U\CG@G`d)+]dX\%'U\<@9@]a')ZaIMFM\`')Y`Z^&(W^BF?FJNGNIMFM^b(*[bQU!#NUhl-/elW[$&T[MQ!JQpt24mtUY#%RY]a')Za\`')Y`SW"$PW[_&(X_]a')ZaW[$&T[JNGNvz46sz<| 
 
r   r  c                  <     e Zd ZdZddZedd       Z fdZ x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.
    c                    | S rE   r&   rH   s    r   r   zIssueId.to_jsonH  s    r   c                     | |      S rE   r&   r   s     r   r   zIssueId.from_jsonK  rK   r   c                >    dj                  t        | 	               S )NzIssueId({}))formatsuper__repr__)r   	__class__s    r   rb  zIssueId.__repr__O  s    ##EG$4$677r   )returnr   )r   r   rd  r\  )	r    r!   r"   r#   r   r%   r   rb  __classcell__)rc  s   @r   r\  r\  C  s+      8 8r   r\  c                  J    e Zd ZU dZded<   ded<   dZded<   d	 Zed
        Zy)InspectorIssuez8
    An inspector issue reported from the back-end.
    r  coder  detailsNztyping.Optional[IssueId]issue_idc                    t               }| j                  j                         |d<   | j                  j                         |d<   | j                  | j                  j                         |d<   |S )Nrh  ri  issueId)r   rh  r   ri  rj  r   s     r   r   zInspectorIssue.to_json`  sZ    vyy((*V,,..0Y==$"mm335DOr   c                     | t         j                  |d         t        j                  |d         d|v rt        j                  |d               S d       S )Nrh  ri  rl  )rh  ri  rj  )r  r   r  r\  r   s     r   r   zInspectorIssue.from_jsonh  s]    #--d6l;)33DOD;D;LW&&tI7
 	
 SW
 	
r   )	r    r!   r"   r#   r$   rj  r   r%   r   r&   r   r   rg  rg  S  s;     "" *.H&- 
 
r   rg  c              #     K   t               }| j                         |d<   ||d<   |||d<   |||d<   d|d}|}d|v rt        |d         ndt        |d	         t        |d
         fS w)a  
    Returns the response body and size if it were re-encoded with the specified settings. Only
    applies to images.

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

        0. **body** - *(Optional)* The encoded body as a base64 string. Omitted if sizeOnly is true.
        1. **originalSize** - Size before re-encoding.
        2. **encodedSize** - Size after re-encoding.
    r-   encodingNqualitysizeOnlyzAudits.getEncodedResponse)methodparamsbodyoriginalSizeencodedSize)r   r   r   rR  )r+   ro  rp  	size_onlyrs  cmd_dictr   s          r   get_encoded_responsery  q  s     ( &F$,,.F;!F:#y&z-H >D#t^DLD !D  s   A)A+c               #     K   ddi} | }yw)z\
    Disables issues domain, prevents further issues from being reported to the client.
    rr  zAudits.disableNr&   rx  r   s     r   disabler|    s     
 	"H >D   
c               #     K   ddi} | }yw)zz
    Enables issues domain, sends the issues collected so far to the client by means of the
    ``issueAdded`` event.
    rr  zAudits.enableNr&   r{  s     r   enabler    s      	/H >Dr}  c               #  p   K   ddi} | }|d   D cg c]  }t         j                  |       c}S c c}w w)z
    Runs the form issues check for the target page. Found issues are reported
    using Audits.issueAdded event.

    :returns: 
    rr  zAudits.checkFormsIssues
formIssues)r  r   )rx  r   r   s      r   check_forms_issuesr    sC      	+H >D6:<6HI))!,IIIs   616zAudits.issueAddedc                  *    e Zd ZU ded<   edd       Zy)
IssueAddedrg  issuec                @     | t         j                  |d               S )Nr  )r  )rg  r   r   s     r   r   zIssueAdded.from_json  s!     **4=9
 	
r   N)r   r   rd  r  )r    r!   r"   r$   r%   r   r&   r   r   r  r    s     
 
r   r  )NN)
r+   znetwork.RequestIdro  r   rp  ztyping.Optional[float]rw  r  rd  zXtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.Tuple[typing.Optional[str], int, int]])rd  z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])rd  zLtyping.Generator[T_JSON_DICT, T_JSON_DICT, typing.List[GenericIssueDetails]])W
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   r   r(   r2   Enumr:   rV   rv   r~   r   r   r   r   r   r   r   r  r  r(  r0  r:  r@  r   r]  rp  rx  r~  r  r  r  r   r,  r:  rB  rN  rR  rX  rb  rj  rn  r  r  r  r  r  r  r  r  r  r1  r7  r=  rE  rK  r[  re  rm  ru  r  r  r  r  r  r  r  r  r   r\  rg  ry  r|  r  r  r  r&   r   r   <module>r     s   # * !       
 
 
6 
 
 
0 
 
 
$DII &$)) 0	dii 	$))   
 
 
0 >
 >
 >
B499  
 
 
.
499 
$tyy $N -
 -
 -
`dii , 
 
 
D	dii 	
DII 
 
 
 
4 " 
 
 
8 *
 *
 *
Z	 	 
 
 
6 ,
 ,
 ,
^DII > DII  Ftyy >499 tyy   
 
 
D "
 "
 "
J 
 
 
( 
 
 
& 
 
 
6 
 
 
& 
 
 
&DII 4 $
 $
 $
N 
 
 
: 
 
 
, 
 
 
D	DII 	 
 
 
7dii 7t 
 
 
dii 0 
 
 
. 
 
 
4	dii 	 
 
 
*dii   
 
 
4	499 	 
 
 
<dii  
 
 
>
DII 
 
 
 
> > :
 :
 :
z 
 
 
>) )X ^
 ^
 ^
B8c 8  
 
 
@ +/+/	$%$$ ($ )	$
 
`$NJ  !

 
  "
r   