chrome-devtools-frontend 1.0.1636056 → 1.0.1638082

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/front_end/core/common/Color.ts +0 -4
  2. package/front_end/core/root/Runtime.ts +2 -2
  3. package/front_end/core/sdk/SourceMap.ts +8 -3
  4. package/front_end/generated/ARIAProperties.js +17 -0
  5. package/front_end/generated/InspectorBackendCommands.ts +7 -5
  6. package/front_end/generated/SupportedCSSProperties.js +1 -0
  7. package/front_end/generated/protocol.ts +40 -2
  8. package/front_end/models/ai_assistance/AiConversation.ts +0 -8
  9. package/front_end/models/ai_assistance/AiHistoryStorage.ts +0 -1
  10. package/front_end/models/ai_assistance/AiUtils.ts +9 -0
  11. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +10 -3
  12. package/front_end/models/ai_assistance/agents/AiAgent.ts +24 -7
  13. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +6 -0
  14. package/front_end/models/ai_assistance/agents/GreenDevAgent.ts +0 -2
  15. package/front_end/models/ai_assistance/agents/NetworkAgent.snapshot.txt +19 -0
  16. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +6 -0
  17. package/front_end/models/ai_assistance/ai_assistance.ts +0 -2
  18. package/front_end/models/bindings/CompilerScriptMapping.ts +12 -4
  19. package/front_end/models/breakpoints/BreakpointManager.ts +54 -2
  20. package/front_end/models/greendev/Prototypes.ts +0 -7
  21. package/front_end/models/issues_manager/EmailVerificationRequestIssue.ts +293 -0
  22. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  23. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
  24. package/front_end/models/issues_manager/descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
  25. package/front_end/models/issues_manager/descriptions/emailVerificationRequestInvalidEmail.md +1 -0
  26. package/front_end/models/issues_manager/descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
  27. package/front_end/models/issues_manager/descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
  28. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
  29. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
  30. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
  31. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
  32. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
  33. package/front_end/models/issues_manager/descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
  34. package/front_end/models/issues_manager/descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
  35. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
  36. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
  37. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
  38. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
  39. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
  40. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
  41. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
  42. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
  43. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
  44. package/front_end/models/issues_manager/descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
  45. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  46. package/front_end/models/javascript_metadata/NativeFunctions.js +1739 -1734
  47. package/front_end/models/stack_trace/DetailedErrorStackParser.ts +9 -1
  48. package/front_end/models/trace/lantern/core/NetworkAnalyzer.ts +21 -25
  49. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +11 -75
  50. package/front_end/panels/ai_assistance/components/AccessibilityAgentMarkdownRenderer.ts +10 -3
  51. package/front_end/panels/ai_assistance/components/ChatMessage.ts +36 -2
  52. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -4
  53. package/front_end/panels/console/ConsoleViewMessage.ts +0 -90
  54. package/front_end/panels/elements/StylePropertiesSection.ts +6 -2
  55. package/front_end/panels/elements/StylesSidebarPane.ts +9 -0
  56. package/front_end/panels/elements/elements-meta.ts +14 -0
  57. package/front_end/panels/network/RequestHeadersView.ts +55 -19
  58. package/front_end/panels/recorder/components/ReplaySection.ts +28 -16
  59. package/front_end/panels/recorder/converters/LighthouseConverter.snapshot.txt +47 -0
  60. package/front_end/panels/recorder/converters/PuppeteerConverter.snapshot.txt +49 -0
  61. package/front_end/panels/recorder/converters/PuppeteerReplayConverter.snapshot.txt +33 -0
  62. package/front_end/panels/settings/SettingsScreen.ts +1 -2
  63. package/front_end/panels/sources/BreakpointsView.ts +23 -42
  64. package/front_end/panels/sources/DebuggerPlugin.ts +12 -5
  65. package/front_end/third_party/chromium/README.chromium +1 -1
  66. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +2 -2
  67. package/front_end/third_party/puppeteer-replay/README.chromium +2 -2
  68. package/front_end/third_party/puppeteer-replay/package/lib/cli.js +84 -80
  69. package/front_end/third_party/puppeteer-replay/package/lib/cli.js.map +1 -1
  70. package/front_end/third_party/puppeteer-replay/package/lib/extension-test.js +79 -83
  71. package/front_end/third_party/puppeteer-replay/package/lib/extension-test.js.map +1 -1
  72. package/front_end/third_party/puppeteer-replay/package/lib/main.d.ts +43 -171
  73. package/front_end/third_party/puppeteer-replay/package/lib/main.js +51 -206
  74. package/front_end/third_party/puppeteer-replay/package/lib/main.js.map +1 -1
  75. package/front_end/third_party/puppeteer-replay/package/package.json +37 -67
  76. package/front_end/ui/visual_logging/KnownContextValues.ts +2 -0
  77. package/mcp/mcp.ts +1 -6
  78. package/package.json +8 -8
  79. package/front_end/models/ai_assistance/agents/BreakpointDebuggerAgent.ts +0 -1015
  80. package/front_end/models/ai_assistance/agents/BreakpointDebuggerAgentOverlay.ts +0 -87
  81. package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.cjs +0 -2099
  82. package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.cjs.map +0 -1
  83. package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.d.cts +0 -686
  84. package/front_end/third_party/puppeteer-replay/package/lib/cjs/main.d.ts +0 -35
  85. package/mcp/HostBindings.ts +0 -319
@@ -2247,10 +2247,6 @@ export class Legacy implements Color {
2247
2247
  }
2248
2248
  }
2249
2249
 
2250
- export const Regex =
2251
- /((?:rgba?|hsla?|hwba?|lab|lch|oklab|oklch|color)\([^)]+\)|#[0-9a-fA-F]{8}|#[0-9a-fA-F]{6}|#[0-9a-fA-F]{3,4}|\b[a-zA-Z]+\b(?!-))/g;
2252
- export const ColorMixRegex = /color-mix\(.*,\s*(?<firstColor>.+)\s*,\s*(?<secondColor>.+)\s*\)/g;
2253
-
2254
2250
  const COLOR_TO_RGBA_ENTRIES: Array<readonly[string, number[]]> = [
2255
2251
  ['aliceblue', [240, 248, 255]],
2256
2252
  ['antiquewhite', [250, 235, 215]],
@@ -625,7 +625,7 @@ interface UseGcaApi {
625
625
  enabled: boolean;
626
626
  }
627
627
 
628
- interface DevToolsAIV2Architecture {
628
+ interface DevToolsAiV2Architecture {
629
629
  enabled: boolean;
630
630
  }
631
631
 
@@ -667,7 +667,7 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
667
667
  devToolsAiAssistanceAccessibilityAgent: HostConfigAiAssistanceAccessibilityAgent,
668
668
  devToolsAiAssistanceStorageAgent: HostConfigAiAssistanceStorageAgent,
669
669
  devToolsAiAssistanceV2: HostConfigAiAssistanceV2,
670
- devToolsAIV2Architecture: DevToolsAIV2Architecture,
670
+ devToolsAiV2Architecture: DevToolsAiV2Architecture,
671
671
  devToolsAiCodeCompletion: HostConfigAiCodeCompletion,
672
672
  devToolsAiCodeGeneration: HostConfigAiCodeGeneration,
673
673
  devToolsAiCodeCompletionStyles: HostConfigAiCodeCompletionStyles,
@@ -356,10 +356,15 @@ export class SourceMap {
356
356
  return reverseMappings.slice(startIndex, endIndex);
357
357
  }
358
358
 
359
- findReverseEntries(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
360
- SourceMapEntry[] {
359
+ findReverseEntries(
360
+ sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number,
361
+ filterContiguous = false): SourceMapEntry[] {
361
362
  const mappings = this.mappings();
362
- return this.findReverseIndices(sourceURL, lineNumber, columnNumber).map(i => mappings[i]);
363
+ let indices = this.findReverseIndices(sourceURL, lineNumber, columnNumber);
364
+ if (filterContiguous) {
365
+ indices = indices.filter((index, i) => i === 0 || index !== indices[i - 1] + 1);
366
+ }
367
+ return indices.map(i => mappings[i]);
363
368
  }
364
369
 
365
370
  findReverseRanges(sourceURL: Platform.DevToolsPath.UrlString, lineNumber: number, columnNumber: number):
@@ -7,6 +7,23 @@ export const config = {
7
7
  {
8
8
  "isGlobal": true,
9
9
  "name": "aria-actions",
10
+ "preventedOnRoles": [
11
+ "caption",
12
+ "code",
13
+ "definition",
14
+ "deletion",
15
+ "emphasis",
16
+ "generic",
17
+ "insertion",
18
+ "mark",
19
+ "paragraph",
20
+ "strong",
21
+ "subscript",
22
+ "suggestion",
23
+ "superscript",
24
+ "term",
25
+ "time"
26
+ ],
10
27
  "type": "IDREF_list"
11
28
  },
12
29
  {
@@ -79,7 +79,7 @@ inspectorBackend.registerEnum("Audits.HeavyAdReason", {NetworkTotalLimit: "Netwo
79
79
  inspectorBackend.registerEnum("Audits.ContentSecurityPolicyViolationType", {KInlineViolation: "kInlineViolation", KEvalViolation: "kEvalViolation", KURLViolation: "kURLViolation", KSRIViolation: "kSRIViolation", KTrustedTypesSinkViolation: "kTrustedTypesSinkViolation", KTrustedTypesPolicyViolation: "kTrustedTypesPolicyViolation", KWasmEvalViolation: "kWasmEvalViolation"});
80
80
  inspectorBackend.registerEnum("Audits.SharedArrayBufferIssueType", {TransferIssue: "TransferIssue", CreationIssue: "CreationIssue"});
81
81
  inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {PermissionPolicyDisabled: "PermissionPolicyDisabled", UntrustworthyReportingOrigin: "UntrustworthyReportingOrigin", InsecureContext: "InsecureContext", InvalidHeader: "InvalidHeader", InvalidRegisterTriggerHeader: "InvalidRegisterTriggerHeader", SourceAndTriggerHeaders: "SourceAndTriggerHeaders", SourceIgnored: "SourceIgnored", TriggerIgnored: "TriggerIgnored", OsSourceIgnored: "OsSourceIgnored", OsTriggerIgnored: "OsTriggerIgnored", InvalidRegisterOsSourceHeader: "InvalidRegisterOsSourceHeader", InvalidRegisterOsTriggerHeader: "InvalidRegisterOsTriggerHeader", WebAndOsHeaders: "WebAndOsHeaders", NoWebOrOsSupport: "NoWebOrOsSupport", NavigationRegistrationWithoutTransientUserActivation: "NavigationRegistrationWithoutTransientUserActivation", InvalidInfoHeader: "InvalidInfoHeader", NoRegisterSourceHeader: "NoRegisterSourceHeader", NoRegisterTriggerHeader: "NoRegisterTriggerHeader", NoRegisterOsSourceHeader: "NoRegisterOsSourceHeader", NoRegisterOsTriggerHeader: "NoRegisterOsTriggerHeader", NavigationRegistrationUniqueScopeAlreadySet: "NavigationRegistrationUniqueScopeAlreadySet"});
82
- inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOriginNoCorsRequest: "UseErrorCrossOriginNoCorsRequest", UseErrorDictionaryLoadFailure: "UseErrorDictionaryLoadFailure", UseErrorMatchingDictionaryNotUsed: "UseErrorMatchingDictionaryNotUsed", UseErrorUnexpectedContentDictionaryHeader: "UseErrorUnexpectedContentDictionaryHeader", WriteErrorCossOriginNoCorsRequest: "WriteErrorCossOriginNoCorsRequest", WriteErrorDisallowedBySettings: "WriteErrorDisallowedBySettings", WriteErrorExpiredResponse: "WriteErrorExpiredResponse", WriteErrorFeatureDisabled: "WriteErrorFeatureDisabled", WriteErrorInsufficientResources: "WriteErrorInsufficientResources", WriteErrorInvalidMatchField: "WriteErrorInvalidMatchField", WriteErrorInvalidStructuredHeader: "WriteErrorInvalidStructuredHeader", WriteErrorInvalidTTLField: "WriteErrorInvalidTTLField", WriteErrorNavigationRequest: "WriteErrorNavigationRequest", WriteErrorNoMatchField: "WriteErrorNoMatchField", WriteErrorNonIntegerTTLField: "WriteErrorNonIntegerTTLField", WriteErrorNonListMatchDestField: "WriteErrorNonListMatchDestField", WriteErrorNonSecureContext: "WriteErrorNonSecureContext", WriteErrorNonStringIdField: "WriteErrorNonStringIdField", WriteErrorNonStringInMatchDestList: "WriteErrorNonStringInMatchDestList", WriteErrorNonStringMatchField: "WriteErrorNonStringMatchField", WriteErrorNonTokenTypeField: "WriteErrorNonTokenTypeField", WriteErrorRequestAborted: "WriteErrorRequestAborted", WriteErrorShuttingDown: "WriteErrorShuttingDown", WriteErrorTooLongIdField: "WriteErrorTooLongIdField", WriteErrorUnsupportedType: "WriteErrorUnsupportedType"});
82
+ inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOriginNoCorsRequest: "UseErrorCrossOriginNoCorsRequest", UseErrorDictionaryLoadFailure: "UseErrorDictionaryLoadFailure", UseErrorMatchingDictionaryNotUsed: "UseErrorMatchingDictionaryNotUsed", UseErrorUnexpectedContentDictionaryHeader: "UseErrorUnexpectedContentDictionaryHeader", WriteErrorCossOriginNoCorsRequest: "WriteErrorCossOriginNoCorsRequest", WriteErrorDisallowedBySettings: "WriteErrorDisallowedBySettings", WriteErrorExpiredResponse: "WriteErrorExpiredResponse", WriteErrorFeatureDisabled: "WriteErrorFeatureDisabled", WriteErrorInsufficientResources: "WriteErrorInsufficientResources", WriteErrorInvalidMatchField: "WriteErrorInvalidMatchField", WriteErrorInvalidStructuredHeader: "WriteErrorInvalidStructuredHeader", WriteErrorInvalidTTLField: "WriteErrorInvalidTTLField", WriteErrorNavigationRequest: "WriteErrorNavigationRequest", WriteErrorNoMatchField: "WriteErrorNoMatchField", WriteErrorNonIntegerTTLField: "WriteErrorNonIntegerTTLField", WriteErrorNonListMatchDestField: "WriteErrorNonListMatchDestField", WriteErrorNonSecureContext: "WriteErrorNonSecureContext", WriteErrorNonStringIdField: "WriteErrorNonStringIdField", WriteErrorNonStringInMatchDestList: "WriteErrorNonStringInMatchDestList", WriteErrorInvalidMatchDestList: "WriteErrorInvalidMatchDestList", WriteErrorNonStringMatchField: "WriteErrorNonStringMatchField", WriteErrorNonTokenTypeField: "WriteErrorNonTokenTypeField", WriteErrorRequestAborted: "WriteErrorRequestAborted", WriteErrorShuttingDown: "WriteErrorShuttingDown", WriteErrorTooLongIdField: "WriteErrorTooLongIdField", WriteErrorUnsupportedType: "WriteErrorUnsupportedType"});
83
83
  inspectorBackend.registerEnum("Audits.SRIMessageSignatureError", {MissingSignatureHeader: "MissingSignatureHeader", MissingSignatureInputHeader: "MissingSignatureInputHeader", InvalidSignatureHeader: "InvalidSignatureHeader", InvalidSignatureInputHeader: "InvalidSignatureInputHeader", SignatureHeaderValueIsNotByteSequence: "SignatureHeaderValueIsNotByteSequence", SignatureHeaderValueIsParameterized: "SignatureHeaderValueIsParameterized", SignatureHeaderValueIsIncorrectLength: "SignatureHeaderValueIsIncorrectLength", SignatureInputHeaderMissingLabel: "SignatureInputHeaderMissingLabel", SignatureInputHeaderValueNotInnerList: "SignatureInputHeaderValueNotInnerList", SignatureInputHeaderValueMissingComponents: "SignatureInputHeaderValueMissingComponents", SignatureInputHeaderInvalidComponentType: "SignatureInputHeaderInvalidComponentType", SignatureInputHeaderInvalidComponentName: "SignatureInputHeaderInvalidComponentName", SignatureInputHeaderInvalidHeaderComponentParameter: "SignatureInputHeaderInvalidHeaderComponentParameter", SignatureInputHeaderInvalidDerivedComponentParameter: "SignatureInputHeaderInvalidDerivedComponentParameter", SignatureInputHeaderKeyIdLength: "SignatureInputHeaderKeyIdLength", SignatureInputHeaderInvalidParameter: "SignatureInputHeaderInvalidParameter", SignatureInputHeaderMissingRequiredParameters: "SignatureInputHeaderMissingRequiredParameters", ValidationFailedSignatureExpired: "ValidationFailedSignatureExpired", ValidationFailedInvalidLength: "ValidationFailedInvalidLength", ValidationFailedSignatureMismatch: "ValidationFailedSignatureMismatch", ValidationFailedIntegrityMismatch: "ValidationFailedIntegrityMismatch", SignatureBaseUnknownDerivedComponent: "SignatureBaseUnknownDerivedComponent", SignatureBaseMissingHeader: "SignatureBaseMissingHeader", SignatureBaseInvalidUnencodedDigest: "SignatureBaseInvalidUnencodedDigest", SignatureBaseUnsupportedComponent: "SignatureBaseUnsupportedComponent"});
84
84
  inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionary: "MalformedDictionary", UnknownAlgorithm: "UnknownAlgorithm", IncorrectDigestType: "IncorrectDigestType", IncorrectDigestLength: "IncorrectDigestLength"});
85
85
  inspectorBackend.registerEnum("Audits.ConnectionAllowlistError", {InvalidHeader: "InvalidHeader", MoreThanOneList: "MoreThanOneList", ItemNotInnerList: "ItemNotInnerList", InvalidAllowlistItemType: "InvalidAllowlistItemType", ReportingEndpointNotToken: "ReportingEndpointNotToken", InvalidUrlPattern: "InvalidUrlPattern"});
@@ -87,13 +87,14 @@ inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameE
87
87
  inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
88
88
  inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
89
89
  inspectorBackend.registerEnum("Audits.FederatedAuthUserInfoRequestIssueReason", {NotSameOrigin: "NotSameOrigin", NotIframe: "NotIframe", NotPotentiallyTrustworthy: "NotPotentiallyTrustworthy", NoAPIPermission: "NoApiPermission", NotSignedInWithIdp: "NotSignedInWithIdp", NoAccountSharingPermission: "NoAccountSharingPermission", InvalidConfigOrWellKnown: "InvalidConfigOrWellKnown", InvalidAccountsResponse: "InvalidAccountsResponse", NoReturningUserFromFetchedAccounts: "NoReturningUserFromFetchedAccounts"});
90
+ inspectorBackend.registerEnum("Audits.EmailVerificationRequestIssueReason", {InvalidEmail: "InvalidEmail", DnsFetchFailed: "DnsFetchFailed", DnsInvalidRecord: "DnsInvalidRecord", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", WellKnownMissingIssuanceEndpoint: "WellKnownMissingIssuanceEndpoint", WellKnownIssuanceEndpointCrossOrigin: "WellKnownIssuanceEndpointCrossOrigin", WellKnownUnsupportedSigningAlgorithm: "WellKnownUnsupportedSigningAlgorithm", TokenHttpNotFound: "TokenHttpNotFound", TokenNoResponse: "TokenNoResponse", TokenInvalidResponse: "TokenInvalidResponse", TokenInvalidContentType: "TokenInvalidContentType", TokenMalformedSdJwt: "TokenMalformedSdJwt", TokenInvalidSdJwt: "TokenInvalidSdJwt", KeyBindingSigningFailed: "KeyBindingSigningFailed", RpOriginIsOpaque: "RpOriginIsOpaque", WellKnownMissingAccountsEndpoint: "WellKnownMissingAccountsEndpoint", UserLoggedOut: "UserLoggedOut", WellKnownAccountsEndpointCrossOrigin: "WellKnownAccountsEndpointCrossOrigin"});
90
91
  inspectorBackend.registerEnum("Audits.PartitioningBlobURLInfo", {BlockedCrossPartitionFetching: "BlockedCrossPartitionFetching", EnforceNoopenerForNavigation: "EnforceNoopenerForNavigation"});
91
92
  inspectorBackend.registerEnum("Audits.ElementAccessibilityIssueReason", {DisallowedSelectChild: "DisallowedSelectChild", DisallowedOptGroupChild: "DisallowedOptGroupChild", NonPhrasingContentOptionChild: "NonPhrasingContentOptionChild", InteractiveContentOptionChild: "InteractiveContentOptionChild", InteractiveContentLegendChild: "InteractiveContentLegendChild", InteractiveContentSummaryDescendant: "InteractiveContentSummaryDescendant"});
92
93
  inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImportRule: "LateImportRule", RequestFailed: "RequestFailed"});
93
94
  inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", {InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName"});
94
95
  inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", {BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback"});
95
96
  inspectorBackend.registerEnum("Audits.PermissionElementIssueType", {InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue"});
96
- inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue"});
97
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue", PerformanceIssue: "PerformanceIssue", SelectivePermissionsInterventionIssue: "SelectivePermissionsInterventionIssue", EmailVerificationRequestIssue: "EmailVerificationRequestIssue"});
97
98
  inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
98
99
  inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", {Webp: "webp", Jpeg: "jpeg", Png: "png"});
99
100
  inspectorBackend.registerCommand("Audits.getEncodedResponse", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId"}, {"name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding"}, {"name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null}, {"name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null}], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
@@ -126,6 +127,7 @@ inspectorBackend.registerType("Audits.BounceTrackingIssueDetails", [{"name": "tr
126
127
  inspectorBackend.registerType("Audits.CookieDeprecationMetadataIssueDetails", [{"name": "allowedSites", "type": "array", "optional": false, "description": "", "typeRef": "string"}, {"name": "optOutPercentage", "type": "number", "optional": false, "description": "", "typeRef": null}, {"name": "isOptOutTopLevel", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "operation", "type": "string", "optional": false, "description": "", "typeRef": "Audits.CookieOperation"}]);
127
128
  inspectorBackend.registerType("Audits.FederatedAuthRequestIssueDetails", [{"name": "federatedAuthRequestIssueReason", "type": "string", "optional": false, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueReason"}]);
128
129
  inspectorBackend.registerType("Audits.FederatedAuthUserInfoRequestIssueDetails", [{"name": "federatedAuthUserInfoRequestIssueReason", "type": "string", "optional": false, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueReason"}]);
130
+ inspectorBackend.registerType("Audits.EmailVerificationRequestIssueDetails", [{"name": "emailVerificationRequestIssueReason", "type": "string", "optional": false, "description": "", "typeRef": "Audits.EmailVerificationRequestIssueReason"}]);
129
131
  inspectorBackend.registerType("Audits.ClientHintIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "", "typeRef": "Audits.SourceCodeLocation"}, {"name": "clientHintIssueReason", "type": "string", "optional": false, "description": "", "typeRef": "Audits.ClientHintIssueReason"}]);
130
132
  inspectorBackend.registerType("Audits.FailedRequestInfo", [{"name": "url", "type": "string", "optional": false, "description": "The URL that failed to load.", "typeRef": null}, {"name": "failureMessage", "type": "string", "optional": false, "description": "The failure message for the failed request.", "typeRef": null}, {"name": "requestId", "type": "string", "optional": true, "description": "", "typeRef": "Network.RequestId"}]);
131
133
  inspectorBackend.registerType("Audits.PartitioningBlobURLIssueDetails", [{"name": "url", "type": "string", "optional": false, "description": "The BlobURL that failed to load.", "typeRef": null}, {"name": "partitioningBlobURLInfo", "type": "string", "optional": false, "description": "Additional information about the Partitioning Blob URL issue.", "typeRef": "Audits.PartitioningBlobURLInfo"}]);
@@ -135,7 +137,7 @@ inspectorBackend.registerType("Audits.PropertyRuleIssueDetails", [{"name": "sour
135
137
  inspectorBackend.registerType("Audits.UserReidentificationIssueDetails", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UserReidentificationIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "Applies to BlockedFrameNavigation and BlockedSubresource issue types.", "typeRef": "Audits.AffectedRequest"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "Applies to NoisedCanvasReadback issue type.", "typeRef": "Audits.SourceCodeLocation"}]);
136
138
  inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name": "issueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PermissionElementIssueType"}, {"name": "type", "type": "string", "optional": true, "description": "The value of the type attribute.", "typeRef": null}, {"name": "nodeId", "type": "number", "optional": true, "description": "The node ID of the <permission> element.", "typeRef": "DOM.BackendNodeId"}, {"name": "isWarning", "type": "boolean", "optional": true, "description": "True if the issue is a warning, false if it is an error.", "typeRef": null}, {"name": "permissionName", "type": "string", "optional": true, "description": "Fields for message construction: Used for messages that reference a specific permission name", "typeRef": null}, {"name": "occluderNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occlusion", "typeRef": null}, {"name": "occluderParentNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occluder's parent", "typeRef": null}, {"name": "disableReason", "type": "string", "optional": true, "description": "Used for messages about activation disabled reason", "typeRef": null}]);
137
139
  inspectorBackend.registerType("Audits.SelectivePermissionsInterventionIssueDetails", [{"name": "apiName", "type": "string", "optional": false, "description": "Which API was intervened on.", "typeRef": null}, {"name": "adAncestry", "type": "object", "optional": false, "description": "Why the ad script using the API is considered an ad.", "typeRef": "Network.AdAncestry"}, {"name": "stackTrace", "type": "object", "optional": true, "description": "The stack trace at the time of the intervention.", "typeRef": "Runtime.StackTrace"}]);
138
- inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}, {"name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails"}, {"name": "selectivePermissionsInterventionIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SelectivePermissionsInterventionIssueDetails"}]);
140
+ inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}, {"name": "performanceIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PerformanceIssueDetails"}, {"name": "selectivePermissionsInterventionIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SelectivePermissionsInterventionIssueDetails"}, {"name": "emailVerificationRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.EmailVerificationRequestIssueDetails"}]);
139
141
  inspectorBackend.registerType("Audits.InspectorIssue", [{"name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode"}, {"name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails"}, {"name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId"}]);
140
142
 
141
143
  // Autofill.
@@ -807,7 +809,7 @@ inspectorBackend.registerEnum("Network.ContentSecurityPolicySource", {HTTP: "HTT
807
809
  inspectorBackend.registerEnum("Network.ReportStatus", {Queued: "Queued", Pending: "Pending", MarkedForRemoval: "MarkedForRemoval", Success: "Success"});
808
810
  inspectorBackend.registerEnum("Network.DeviceBoundSessionWithUsageUsage", {NotInScope: "NotInScope", InScopeRefreshNotYetNeeded: "InScopeRefreshNotYetNeeded", InScopeRefreshNotAllowed: "InScopeRefreshNotAllowed", ProactiveRefreshNotPossible: "ProactiveRefreshNotPossible", ProactiveRefreshAttempted: "ProactiveRefreshAttempted", Deferred: "Deferred"});
809
811
  inspectorBackend.registerEnum("Network.DeviceBoundSessionUrlRuleRuleType", {Exclude: "Exclude", Include: "Include"});
810
- inspectorBackend.registerEnum("Network.DeviceBoundSessionFetchResult", {Success: "Success", KeyError: "KeyError", SigningError: "SigningError", TransientSigningError: "TransientSigningError", ServerRequestedTermination: "ServerRequestedTermination", InvalidSessionId: "InvalidSessionId", InvalidChallenge: "InvalidChallenge", TooManyChallenges: "TooManyChallenges", InvalidFetcherUrl: "InvalidFetcherUrl", InvalidRefreshUrl: "InvalidRefreshUrl", TransientHttpError: "TransientHttpError", ScopeOriginSameSiteMismatch: "ScopeOriginSameSiteMismatch", RefreshUrlSameSiteMismatch: "RefreshUrlSameSiteMismatch", MismatchedSessionId: "MismatchedSessionId", MissingScope: "MissingScope", NoCredentials: "NoCredentials", SubdomainRegistrationWellKnownUnavailable: "SubdomainRegistrationWellKnownUnavailable", SubdomainRegistrationUnauthorized: "SubdomainRegistrationUnauthorized", SubdomainRegistrationWellKnownMalformed: "SubdomainRegistrationWellKnownMalformed", SessionProviderWellKnownUnavailable: "SessionProviderWellKnownUnavailable", RelyingPartyWellKnownUnavailable: "RelyingPartyWellKnownUnavailable", FederatedKeyThumbprintMismatch: "FederatedKeyThumbprintMismatch", InvalidFederatedSessionUrl: "InvalidFederatedSessionUrl", InvalidFederatedKey: "InvalidFederatedKey", TooManyRelyingOriginLabels: "TooManyRelyingOriginLabels", BoundCookieSetForbidden: "BoundCookieSetForbidden", NetError: "NetError", ProxyError: "ProxyError", EmptySessionConfig: "EmptySessionConfig", InvalidCredentialsConfig: "InvalidCredentialsConfig", InvalidCredentialsType: "InvalidCredentialsType", InvalidCredentialsEmptyName: "InvalidCredentialsEmptyName", InvalidCredentialsCookie: "InvalidCredentialsCookie", PersistentHttpError: "PersistentHttpError", RegistrationAttemptedChallenge: "RegistrationAttemptedChallenge", InvalidScopeOrigin: "InvalidScopeOrigin", ScopeOriginContainsPath: "ScopeOriginContainsPath", RefreshInitiatorNotString: "RefreshInitiatorNotString", RefreshInitiatorInvalidHostPattern: "RefreshInitiatorInvalidHostPattern", InvalidScopeSpecification: "InvalidScopeSpecification", MissingScopeSpecificationType: "MissingScopeSpecificationType", EmptyScopeSpecificationDomain: "EmptyScopeSpecificationDomain", EmptyScopeSpecificationPath: "EmptyScopeSpecificationPath", InvalidScopeSpecificationType: "InvalidScopeSpecificationType", InvalidScopeIncludeSite: "InvalidScopeIncludeSite", MissingScopeIncludeSite: "MissingScopeIncludeSite", FederatedNotAuthorizedByProvider: "FederatedNotAuthorizedByProvider", FederatedNotAuthorizedByRelyingParty: "FederatedNotAuthorizedByRelyingParty", SessionProviderWellKnownMalformed: "SessionProviderWellKnownMalformed", SessionProviderWellKnownHasProviderOrigin: "SessionProviderWellKnownHasProviderOrigin", RelyingPartyWellKnownMalformed: "RelyingPartyWellKnownMalformed", RelyingPartyWellKnownHasRelyingOrigins: "RelyingPartyWellKnownHasRelyingOrigins", InvalidFederatedSessionProviderSessionMissing: "InvalidFederatedSessionProviderSessionMissing", InvalidFederatedSessionWrongProviderOrigin: "InvalidFederatedSessionWrongProviderOrigin", InvalidCredentialsCookieCreationTime: "InvalidCredentialsCookieCreationTime", InvalidCredentialsCookieName: "InvalidCredentialsCookieName", InvalidCredentialsCookieParsing: "InvalidCredentialsCookieParsing", InvalidCredentialsCookieUnpermittedAttribute: "InvalidCredentialsCookieUnpermittedAttribute", InvalidCredentialsCookieInvalidDomain: "InvalidCredentialsCookieInvalidDomain", InvalidCredentialsCookiePrefix: "InvalidCredentialsCookiePrefix", InvalidScopeRulePath: "InvalidScopeRulePath", InvalidScopeRuleHostPattern: "InvalidScopeRuleHostPattern", ScopeRuleOriginScopedHostPatternMismatch: "ScopeRuleOriginScopedHostPatternMismatch", ScopeRuleSiteScopedHostPatternMismatch: "ScopeRuleSiteScopedHostPatternMismatch", SigningQuotaExceeded: "SigningQuotaExceeded", InvalidConfigJson: "InvalidConfigJson", InvalidFederatedSessionProviderFailedToRestoreKey: "InvalidFederatedSessionProviderFailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", SessionDeletedDuringRefresh: "SessionDeletedDuringRefresh"});
812
+ inspectorBackend.registerEnum("Network.DeviceBoundSessionFetchResult", {Success: "Success", KeyError: "KeyError", SigningError: "SigningError", TransientSigningError: "TransientSigningError", ServerRequestedTermination: "ServerRequestedTermination", InvalidSessionId: "InvalidSessionId", InvalidChallenge: "InvalidChallenge", TooManyChallenges: "TooManyChallenges", InvalidFetcherUrl: "InvalidFetcherUrl", InvalidRefreshUrl: "InvalidRefreshUrl", TransientHttpError: "TransientHttpError", ScopeOriginSameSiteMismatch: "ScopeOriginSameSiteMismatch", RefreshUrlSameSiteMismatch: "RefreshUrlSameSiteMismatch", MismatchedSessionId: "MismatchedSessionId", MissingScope: "MissingScope", NoCredentials: "NoCredentials", SubdomainRegistrationWellKnownUnavailable: "SubdomainRegistrationWellKnownUnavailable", SubdomainRegistrationUnauthorized: "SubdomainRegistrationUnauthorized", SubdomainRegistrationWellKnownMalformed: "SubdomainRegistrationWellKnownMalformed", SessionProviderWellKnownUnavailable: "SessionProviderWellKnownUnavailable", RelyingPartyWellKnownUnavailable: "RelyingPartyWellKnownUnavailable", FederatedKeyThumbprintMismatch: "FederatedKeyThumbprintMismatch", InvalidFederatedSessionUrl: "InvalidFederatedSessionUrl", InvalidFederatedKey: "InvalidFederatedKey", TooManyRelyingOriginLabels: "TooManyRelyingOriginLabels", BoundCookieSetForbidden: "BoundCookieSetForbidden", NetError: "NetError", ProxyError: "ProxyError", EmptySessionConfig: "EmptySessionConfig", InvalidCredentialsConfig: "InvalidCredentialsConfig", InvalidCredentialsType: "InvalidCredentialsType", InvalidCredentialsEmptyName: "InvalidCredentialsEmptyName", InvalidCredentialsCookie: "InvalidCredentialsCookie", PersistentHttpError: "PersistentHttpError", RegistrationAttemptedChallenge: "RegistrationAttemptedChallenge", InvalidScopeOrigin: "InvalidScopeOrigin", ScopeOriginContainsPath: "ScopeOriginContainsPath", RefreshInitiatorNotString: "RefreshInitiatorNotString", RefreshInitiatorInvalidHostPattern: "RefreshInitiatorInvalidHostPattern", InvalidScopeSpecification: "InvalidScopeSpecification", MissingScopeSpecificationType: "MissingScopeSpecificationType", EmptyScopeSpecificationDomain: "EmptyScopeSpecificationDomain", EmptyScopeSpecificationPath: "EmptyScopeSpecificationPath", InvalidScopeSpecificationType: "InvalidScopeSpecificationType", InvalidScopeIncludeSite: "InvalidScopeIncludeSite", MissingScopeIncludeSite: "MissingScopeIncludeSite", FederatedNotAuthorizedByProvider: "FederatedNotAuthorizedByProvider", FederatedNotAuthorizedByRelyingParty: "FederatedNotAuthorizedByRelyingParty", SessionProviderWellKnownMalformed: "SessionProviderWellKnownMalformed", SessionProviderWellKnownHasProviderOrigin: "SessionProviderWellKnownHasProviderOrigin", RelyingPartyWellKnownMalformed: "RelyingPartyWellKnownMalformed", RelyingPartyWellKnownHasRelyingOrigins: "RelyingPartyWellKnownHasRelyingOrigins", InvalidFederatedSessionProviderSessionMissing: "InvalidFederatedSessionProviderSessionMissing", InvalidFederatedSessionWrongProviderOrigin: "InvalidFederatedSessionWrongProviderOrigin", InvalidCredentialsCookieCreationTime: "InvalidCredentialsCookieCreationTime", InvalidCredentialsCookieName: "InvalidCredentialsCookieName", InvalidCredentialsCookieParsing: "InvalidCredentialsCookieParsing", InvalidCredentialsCookieUnpermittedAttribute: "InvalidCredentialsCookieUnpermittedAttribute", InvalidCredentialsCookieInvalidDomain: "InvalidCredentialsCookieInvalidDomain", InvalidCredentialsCookiePrefix: "InvalidCredentialsCookiePrefix", InvalidScopeRulePath: "InvalidScopeRulePath", InvalidScopeRuleHostPattern: "InvalidScopeRuleHostPattern", ScopeRuleOriginScopedHostPatternMismatch: "ScopeRuleOriginScopedHostPatternMismatch", ScopeRuleSiteScopedHostPatternMismatch: "ScopeRuleSiteScopedHostPatternMismatch", SigningQuotaExceeded: "SigningQuotaExceeded", InvalidConfigJson: "InvalidConfigJson", InvalidFederatedSessionProviderFailedToRestoreKey: "InvalidFederatedSessionProviderFailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", SessionDeletedDuringRefresh: "SessionDeletedDuringRefresh", CrossOriginRegistrationSiteNotIncluded: "CrossOriginRegistrationSiteNotIncluded"});
811
813
  inspectorBackend.registerEnum("Network.RefreshEventDetailsRefreshResult", {Refreshed: "Refreshed", InitializedService: "InitializedService", Unreachable: "Unreachable", ServerError: "ServerError", RefreshQuotaExceeded: "RefreshQuotaExceeded", FatalError: "FatalError", SigningQuotaExceeded: "SigningQuotaExceeded", RefreshedAsWaiter: "RefreshedAsWaiter", TransientSigningError: "TransientSigningError"});
812
814
  inspectorBackend.registerEnum("Network.TerminationEventDetailsDeletionReason", {Expired: "Expired", FailedToRestoreKey: "FailedToRestoreKey", FailedToUnwrapKey: "FailedToUnwrapKey", StoragePartitionCleared: "StoragePartitionCleared", ClearBrowsingData: "ClearBrowsingData", ServerRequested: "ServerRequested", InvalidSessionParams: "InvalidSessionParams", RefreshFatalError: "RefreshFatalError", DevTools: "DevTools"});
813
815
  inspectorBackend.registerEnum("Network.ChallengeEventDetailsChallengeResult", {Success: "Success", NoSessionId: "NoSessionId", NoSessionMatch: "NoSessionMatch", CantSetBoundCookie: "CantSetBoundCookie"});
@@ -1408,7 +1410,7 @@ inspectorBackend.registerCommand("Target.autoAttachRelated", [{"name": "targetId
1408
1410
  inspectorBackend.registerCommand("Target.setDiscoverTargets", [{"name": "discover", "type": "boolean", "optional": false, "description": "Whether to discover available targets.", "typeRef": null}, {"name": "filter", "type": "array", "optional": true, "description": "Only targets matching filter will be attached. If `discover` is false, `filter` must be omitted or empty.", "typeRef": "Target.TargetFilter"}], [], "Controls whether to discover available targets and notify via `targetCreated/targetInfoChanged/targetDestroyed` events.");
1409
1411
  inspectorBackend.registerCommand("Target.setRemoteLocations", [{"name": "locations", "type": "array", "optional": false, "description": "List of remote locations.", "typeRef": "Target.RemoteLocation"}], [], "Enables target discovery for the specified locations, when `setDiscoverTargets` was set to `true`.");
1410
1412
  inspectorBackend.registerCommand("Target.getDevToolsTarget", [{"name": "targetId", "type": "string", "optional": false, "description": "Page or tab target ID.", "typeRef": "Target.TargetID"}], ["targetId"], "Gets the targetId of the DevTools page target opened for the given target (if any).");
1411
- inspectorBackend.registerCommand("Target.openDevTools", [{"name": "targetId", "type": "string", "optional": false, "description": "This can be the page or tab target ID.", "typeRef": "Target.TargetID"}, {"name": "panelId", "type": "string", "optional": true, "description": "The id of the panel we want DevTools to open initially. Currently supported panels are elements, console, network, sources, resources and performance.", "typeRef": null}], ["targetId"], "Opens a DevTools window for the target.");
1413
+ inspectorBackend.registerCommand("Target.openDevTools", [{"name": "targetId", "type": "string", "optional": false, "description": "This can be the page or tab target ID.", "typeRef": "Target.TargetID"}, {"name": "panelId", "type": "string", "optional": true, "description": "The id of the panel we want DevTools to open initially. Currently supported panels are elements, console, network, sources, resources, timeline, chrome-recorder, heap-profiler, lighthouse, and security.", "typeRef": null}], ["targetId"], "Opens a DevTools window for the target.");
1412
1414
  inspectorBackend.registerType("Target.TargetInfo", [{"name": "targetId", "type": "string", "optional": false, "description": "", "typeRef": "Target.TargetID"}, {"name": "type", "type": "string", "optional": false, "description": "List of types: https://source.chromium.org/chromium/chromium/src/+/main:content/browser/devtools/devtools_agent_host_impl.cc?ss=chromium&q=f:devtools%20-f:out%20%22::kTypeTab%5B%5D%22", "typeRef": null}, {"name": "title", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "url", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "attached", "type": "boolean", "optional": false, "description": "Whether the target has an attached client.", "typeRef": null}, {"name": "parentId", "type": "string", "optional": true, "description": "Id of the parent target, if any. For example, \\\"iframe\\\" target may have a \\\"page\\\" parent.", "typeRef": "Target.TargetID"}, {"name": "openerId", "type": "string", "optional": true, "description": "Opener target Id", "typeRef": "Target.TargetID"}, {"name": "canAccessOpener", "type": "boolean", "optional": false, "description": "Whether the target has access to the originating window.", "typeRef": null}, {"name": "openerFrameId", "type": "string", "optional": true, "description": "Frame id of originating window (is only set if target has an opener).", "typeRef": "Page.FrameId"}, {"name": "parentFrameId", "type": "string", "optional": true, "description": "Id of the parent frame, present for \\\"iframe\\\" and \\\"worker\\\" targets. For nested workers, this is the \\\"ancestor\\\" frame that created the first worker in the nested chain.", "typeRef": "Page.FrameId"}, {"name": "browserContextId", "type": "string", "optional": true, "description": "", "typeRef": "Browser.BrowserContextID"}, {"name": "subtype", "type": "string", "optional": true, "description": "Provides additional details for specific target types. For example, for the type of \\\"page\\\", this may be set to \\\"prerender\\\".", "typeRef": null}, {"name": "embedderData", "type": "object", "optional": true, "description": "Embedder-specific target metadata. This is only set for targets of type \\\"tab\\\".", "typeRef": null}]);
1413
1415
  inspectorBackend.registerType("Target.FilterEntry", [{"name": "exclude", "type": "boolean", "optional": true, "description": "If set, causes exclusion of matching targets from the list.", "typeRef": null}, {"name": "type", "type": "string", "optional": true, "description": "If not present, matches any type.", "typeRef": null}]);
1414
1416
  inspectorBackend.registerType("Target.TargetFilter", [{"name": "TargetFilter", "type": "array", "optional": false, "description": "The entries in TargetFilter are matched sequentially against targets and the first entry that matches determines if the target is included or not, depending on the value of `exclude` field in the entry. If filter is not specified, the one assumed is [{type: \\\"browser\\\", exclude: true}, {type: \\\"tab\\\", exclude: true}, {}] (i.e. include everything but `browser` and `tab`).", "typeRef": "Target.FilterEntry"}]);
@@ -4765,6 +4765,7 @@ export const generatedProperties = [
4765
4765
  "name": "text-emphasis-style"
4766
4766
  },
4767
4767
  {
4768
+ "inherited": true,
4768
4769
  "name": "text-fit"
4769
4770
  },
4770
4771
  {
@@ -1090,6 +1090,7 @@ export namespace Audits {
1090
1090
  WriteErrorNonSecureContext = 'WriteErrorNonSecureContext',
1091
1091
  WriteErrorNonStringIdField = 'WriteErrorNonStringIdField',
1092
1092
  WriteErrorNonStringInMatchDestList = 'WriteErrorNonStringInMatchDestList',
1093
+ WriteErrorInvalidMatchDestList = 'WriteErrorInvalidMatchDestList',
1093
1094
  WriteErrorNonStringMatchField = 'WriteErrorNonStringMatchField',
1094
1095
  WriteErrorNonTokenTypeField = 'WriteErrorNonTokenTypeField',
1095
1096
  WriteErrorRequestAborted = 'WriteErrorRequestAborted',
@@ -1356,6 +1357,40 @@ export namespace Audits {
1356
1357
  NoReturningUserFromFetchedAccounts = 'NoReturningUserFromFetchedAccounts',
1357
1358
  }
1358
1359
 
1360
+ export interface EmailVerificationRequestIssueDetails {
1361
+ emailVerificationRequestIssueReason: EmailVerificationRequestIssueReason;
1362
+ }
1363
+
1364
+ /**
1365
+ * Represents the failure reason when an email verification request fails.
1366
+ * Should be updated alongside EmailVerificationRequestResult in
1367
+ * third_party/blink/public/mojom/devtools/inspector_issue.mojom.
1368
+ */
1369
+ export const enum EmailVerificationRequestIssueReason {
1370
+ InvalidEmail = 'InvalidEmail',
1371
+ DnsFetchFailed = 'DnsFetchFailed',
1372
+ DnsInvalidRecord = 'DnsInvalidRecord',
1373
+ WellKnownHttpNotFound = 'WellKnownHttpNotFound',
1374
+ WellKnownNoResponse = 'WellKnownNoResponse',
1375
+ WellKnownInvalidResponse = 'WellKnownInvalidResponse',
1376
+ WellKnownListEmpty = 'WellKnownListEmpty',
1377
+ WellKnownInvalidContentType = 'WellKnownInvalidContentType',
1378
+ WellKnownMissingIssuanceEndpoint = 'WellKnownMissingIssuanceEndpoint',
1379
+ WellKnownIssuanceEndpointCrossOrigin = 'WellKnownIssuanceEndpointCrossOrigin',
1380
+ WellKnownUnsupportedSigningAlgorithm = 'WellKnownUnsupportedSigningAlgorithm',
1381
+ TokenHttpNotFound = 'TokenHttpNotFound',
1382
+ TokenNoResponse = 'TokenNoResponse',
1383
+ TokenInvalidResponse = 'TokenInvalidResponse',
1384
+ TokenInvalidContentType = 'TokenInvalidContentType',
1385
+ TokenMalformedSdJwt = 'TokenMalformedSdJwt',
1386
+ TokenInvalidSdJwt = 'TokenInvalidSdJwt',
1387
+ KeyBindingSigningFailed = 'KeyBindingSigningFailed',
1388
+ RpOriginIsOpaque = 'RpOriginIsOpaque',
1389
+ WellKnownMissingAccountsEndpoint = 'WellKnownMissingAccountsEndpoint',
1390
+ UserLoggedOut = 'UserLoggedOut',
1391
+ WellKnownAccountsEndpointCrossOrigin = 'WellKnownAccountsEndpointCrossOrigin',
1392
+ }
1393
+
1359
1394
  /**
1360
1395
  * This issue tracks client hints related issues. It's used to deprecate old
1361
1396
  * features, encourage the use of new ones, and provide general guidance.
@@ -1596,6 +1631,7 @@ export namespace Audits {
1596
1631
  PermissionElementIssue = 'PermissionElementIssue',
1597
1632
  PerformanceIssue = 'PerformanceIssue',
1598
1633
  SelectivePermissionsInterventionIssue = 'SelectivePermissionsInterventionIssue',
1634
+ EmailVerificationRequestIssue = 'EmailVerificationRequestIssue',
1599
1635
  }
1600
1636
 
1601
1637
  /**
@@ -1636,6 +1672,7 @@ export namespace Audits {
1636
1672
  permissionElementIssueDetails?: PermissionElementIssueDetails;
1637
1673
  performanceIssueDetails?: PerformanceIssueDetails;
1638
1674
  selectivePermissionsInterventionIssueDetails?: SelectivePermissionsInterventionIssueDetails;
1675
+ emailVerificationRequestIssueDetails?: EmailVerificationRequestIssueDetails;
1639
1676
  }
1640
1677
 
1641
1678
  /**
@@ -11900,6 +11937,7 @@ export namespace Network {
11900
11937
  InvalidFederatedSessionProviderFailedToRestoreKey = 'InvalidFederatedSessionProviderFailedToRestoreKey',
11901
11938
  FailedToUnwrapKey = 'FailedToUnwrapKey',
11902
11939
  SessionDeletedDuringRefresh = 'SessionDeletedDuringRefresh',
11940
+ CrossOriginRegistrationSiteNotIncluded = 'CrossOriginRegistrationSiteNotIncluded',
11903
11941
  }
11904
11942
 
11905
11943
  /**
@@ -19430,8 +19468,8 @@ export namespace Target {
19430
19468
  targetId: TargetID;
19431
19469
  /**
19432
19470
  * The id of the panel we want DevTools to open initially. Currently
19433
- * supported panels are elements, console, network, sources, resources
19434
- * and performance.
19471
+ * supported panels are elements, console, network, sources, resources,
19472
+ * timeline, chrome-recorder, heap-profiler, lighthouse, and security.
19435
19473
  */
19436
19474
  panelId?: string;
19437
19475
  }
@@ -23,7 +23,6 @@ import {
23
23
  ResponseType,
24
24
  type UserQuery
25
25
  } from './agents/AiAgent.js';
26
- import {BreakpointDebuggerAgent} from './agents/BreakpointDebuggerAgent.js';
27
26
  import {ContextSelectionAgent} from './agents/ContextSelectionAgent.js';
28
27
  import {FileAgent, FileContext} from './agents/FileAgent.js';
29
28
  import {NetworkAgent, RequestContext} from './agents/NetworkAgent.js';
@@ -374,13 +373,6 @@ export class AiConversation {
374
373
  this.#agent = new PerformanceAgent(options);
375
374
  break;
376
375
  }
377
- case ConversationType.BREAKPOINT: {
378
- const breakpointAgentEnabled = Greendev.Prototypes.instance().isEnabled('breakpointDebuggerAgent');
379
- if (breakpointAgentEnabled) {
380
- this.#agent = new BreakpointDebuggerAgent(options);
381
- }
382
- break;
383
- }
384
376
  case ConversationType.ACCESSIBILITY: {
385
377
  this.#agent = new AccessibilityAgent(options);
386
378
  break;
@@ -13,7 +13,6 @@ export const enum ConversationType {
13
13
  FILE = 'drjones-file',
14
14
  NETWORK = 'drjones-network-request',
15
15
  PERFORMANCE = 'drjones-performance-full',
16
- BREAKPOINT = 'breakpoint',
17
16
  ACCESSIBILITY = 'accessibility',
18
17
  STORAGE = 'storage',
19
18
  }
@@ -62,3 +62,12 @@ export function isGeminiBranding(): boolean {
62
62
  export function getIconName(): string {
63
63
  return isGeminiBranding() ? 'spark' : 'smart-assistant';
64
64
  }
65
+
66
+ export function isSameOrigin(url1: Platform.DevToolsPath.UrlString, url2: Platform.DevToolsPath.UrlString): boolean {
67
+ if (url1.startsWith('data:') || url2.startsWith('data:')) {
68
+ return url1 === url2;
69
+ }
70
+ const origin1 = Common.ParsedURL.ParsedURL.extractOrigin(url1);
71
+ const origin2 = Common.ParsedURL.ParsedURL.extractOrigin(url2);
72
+ return origin1 !== '' && origin1 === origin2;
73
+ }
@@ -4,9 +4,11 @@
4
4
 
5
5
  import * as Host from '../../../core/host/host.js';
6
6
  import * as i18n from '../../../core/i18n/i18n.js';
7
+ import type * as Platform from '../../../core/platform/platform.js';
7
8
  import * as Root from '../../../core/root/root.js';
8
9
  import * as SDK from '../../../core/sdk/sdk.js';
9
10
  import type * as LHModel from '../../lighthouse/lighthouse.js';
11
+ import {isSameOrigin} from '../AiUtils.js';
10
12
  import {ChangeManager} from '../ChangeManager.js';
11
13
  import {LighthouseFormatter} from '../data_formatters/LighthouseFormatter.js';
12
14
  import {debugLog} from '../debug.js';
@@ -222,9 +224,14 @@ export class AccessibilityAgent extends AiAgent<LHModel.ReporterTypes.ReportJSON
222
224
  return null;
223
225
  }
224
226
 
225
- const resourceTreeModel = target.model(SDK.ResourceTreeModel.ResourceTreeModel);
226
- const mainFrameId = resourceTreeModel?.mainFrame?.id;
227
- if (node.frameId() !== mainFrameId) {
227
+ const mainDocument = domModel.existingDocument();
228
+ if (!mainDocument) {
229
+ return null;
230
+ }
231
+ const mainDocumentURL = mainDocument.documentURL;
232
+ const nodeDocumentURL = node.ownerDocument?.documentURL ?? '' as Platform.DevToolsPath.UrlString;
233
+
234
+ if (!isSameOrigin(mainDocumentURL, nodeDocumentURL)) {
228
235
  return null;
229
236
  }
230
237
 
@@ -6,7 +6,6 @@ import * as Host from '../../../core/host/host.js';
6
6
  import * as Root from '../../../core/root/root.js';
7
7
  import type * as SDK from '../../../core/sdk/sdk.js';
8
8
  import type * as Protocol from '../../../generated/protocol.js';
9
- import * as Greendev from '../../greendev/greendev.js';
10
9
  import type * as LHModel from '../../lighthouse/lighthouse.js';
11
10
  import type * as TextUtils from '../../text_utils/text_utils.js';
12
11
  import type * as Trace from '../../trace/trace.js';
@@ -338,9 +337,16 @@ export interface TimelineEventSummaryAiWidget {
338
337
  };
339
338
  }
340
339
 
340
+ export interface NetworkRequestGeneralHeadersAiWidget {
341
+ name: 'NETWORK_REQUEST_GENERAL_HEADERS';
342
+ data: {
343
+ request: SDK.NetworkRequest.NetworkRequest,
344
+ };
345
+ }
346
+
341
347
  export type AiWidget = ComputedStyleAiWidget|CoreVitalsAiWidget|StylePropertiesAiWidget|DomTreeAiWidget|
342
348
  PerformanceTraceAiWidget|PerfInsightAiWidget|TimelineRangeSummaryAiWidget|BottomUpTreeAiWidget|SourceFileAiWidget|
343
- LighthouseReportAiWidget|TimelineEventSummaryAiWidget;
349
+ LighthouseReportAiWidget|TimelineEventSummaryAiWidget|NetworkRequestGeneralHeadersAiWidget;
344
350
 
345
351
  export type FunctionCallHandlerResult<Result> = {
346
352
  requiresApproval: true,
@@ -682,11 +688,7 @@ export abstract class AiAgent<T> {
682
688
 
683
689
  yield* this.handleContextDetails(options.selected);
684
690
 
685
- const breakpointAgentEnabled = Greendev.Prototypes.instance().isEnabled('breakpointDebuggerAgent');
686
- const isBreakpointDebuggerAgent = this.constructor.name === 'BreakpointDebuggerAgent';
687
- const finalMaxSteps = (isBreakpointDebuggerAgent && breakpointAgentEnabled) ? 1000 : MAX_STEPS;
688
-
689
- for (let i = 0; i < finalMaxSteps; i++) {
691
+ for (let i = 0; i < MAX_STEPS; i++) {
690
692
  yield {
691
693
  type: ResponseType.QUERYING,
692
694
  };
@@ -776,6 +778,11 @@ export abstract class AiAgent<T> {
776
778
  },
777
779
  );
778
780
 
781
+ if ('result' in result && result.result === 'BLOCKED_CROSS_ORIGIN') {
782
+ yield this.#createErrorResponse(ErrorType.CROSS_ORIGIN);
783
+ break;
784
+ }
785
+
779
786
  if (options.signal?.aborted) {
780
787
  yield this.#createErrorResponse(ErrorType.ABORT);
781
788
  break;
@@ -916,6 +923,16 @@ export abstract class AiAgent<T> {
916
923
  };
917
924
  }
918
925
 
926
+ // Re-check allowed origin after the approval await to prevent a TOCTOU (Time-of-Check
927
+ // to Time-of-Use) race condition where the page might have navigated cross-origin
928
+ // while the user was confirming the action.
929
+ const allowedOriginResult = this.#allowedOrigin?.();
930
+ if (allowedOriginResult && 'blocked' in allowedOriginResult) {
931
+ return {
932
+ result: 'BLOCKED_CROSS_ORIGIN',
933
+ };
934
+ }
935
+
919
936
  result = await call.handler(args, {
920
937
  ...options,
921
938
  approved: true,
@@ -221,6 +221,12 @@ export class ContextSelectionAgent extends AiAgent<never> {
221
221
  return {
222
222
  context: new RequestContext(request, calculator),
223
223
  description: 'User selected a network request',
224
+ widgets: [{
225
+ name: 'NETWORK_REQUEST_GENERAL_HEADERS',
226
+ data: {
227
+ request,
228
+ },
229
+ }],
224
230
  };
225
231
  }
226
232
 
@@ -393,8 +393,6 @@ export class GreenDevAgent extends AiAgent<string> {
393
393
  override preamble = preamble;
394
394
 
395
395
  get clientFeature(): Host.AidaClient.ClientFeature {
396
- // Reuse CHROME_NETWORK_AGENT similar to how we reuse CHROME_FILE_AGENT
397
- // in BreakpointDebuggerAgent.ts.
398
396
  return Host.AidaClient.ClientFeature.CHROME_NETWORK_AGENT;
399
397
  }
400
398
 
@@ -20,6 +20,25 @@ Content:
20
20
  "title": "Request initiator chain",
21
21
  "text": "- URL: <redacted cross-origin initiator URL>\n\t- URL: https://www.example.com\n\t\t- URL: https://www.example.com/1\n\t\t- URL: https://www.example.com/2"
22
22
  }
23
+ ],
24
+ "widgets": [
25
+ {
26
+ "name": "NETWORK_REQUEST_GENERAL_HEADERS",
27
+ "data": {
28
+ "request": {
29
+ "statusCode": 200,
30
+ "statusText": "",
31
+ "requestMethod": "",
32
+ "requestTime": 0,
33
+ "protocol": "",
34
+ "mixedContentType": "none",
35
+ "connectionId": "0",
36
+ "connectionReused": false,
37
+ "hasNetworkData": false,
38
+ "localizedFailDescription": null
39
+ }
40
+ }
41
+ }
23
42
  ]
24
43
  },
25
44
  {
@@ -162,6 +162,12 @@ export class NetworkAgent extends AiAgent<SDK.NetworkRequest.NetworkRequest> {
162
162
  yield {
163
163
  type: ResponseType.CONTEXT,
164
164
  details: await createContextDetailsForNetworkAgent(selectedNetworkRequest),
165
+ widgets: [{
166
+ name: 'NETWORK_REQUEST_GENERAL_HEADERS',
167
+ data: {
168
+ request: selectedNetworkRequest.getItem(),
169
+ },
170
+ }],
165
171
  };
166
172
  }
167
173
 
@@ -5,7 +5,6 @@
5
5
  import * as AgentProject from './AgentProject.js';
6
6
  import * as AccessibilityAgent from './agents/AccessibilityAgent.js';
7
7
  import * as AiAgent from './agents/AiAgent.js';
8
- import * as BreakpointDebuggerAgent from './agents/BreakpointDebuggerAgent.js';
9
8
  import * as ContextSelectionAgent from './agents/ContextSelectionAgent.js';
10
9
  import * as ConversationSummaryAgent from './agents/ConversationSummaryAgent.js';
11
10
  import * as FileAgent from './agents/FileAgent.js';
@@ -48,7 +47,6 @@ export {
48
47
  AiHistoryStorage,
49
48
  AIQueries,
50
49
  AiUtils,
51
- BreakpointDebuggerAgent,
52
50
  BuiltInAi,
53
51
  ChangeManager,
54
52
  ContextSelectionAgent,
@@ -231,16 +231,24 @@ export class CompilerScriptMapping implements DebuggerSourceMapping {
231
231
  SDK.DebuggerModel.Location[] {
232
232
  const locations = [];
233
233
  for (const sourceMap of this.#uiSourceCodeToSourceMaps.get(uiSourceCode)) {
234
- const entry = sourceMap.sourceLineMapping(uiSourceCode.url(), lineNumber, columnNumber);
235
- if (!entry) {
234
+ const firstEntry = sourceMap.sourceLineMapping(uiSourceCode.url(), lineNumber, columnNumber);
235
+ if (!firstEntry) {
236
+ continue;
237
+ }
238
+ const entries = sourceMap.findReverseEntries(
239
+ uiSourceCode.url(), firstEntry.sourceLineNumber, firstEntry.sourceColumnNumber, true);
240
+ if (entries.length === 0) {
236
241
  continue;
237
242
  }
238
243
  const script = this.#sourceMapManager.clientForSourceMap(sourceMap);
239
244
  if (!script) {
240
245
  continue;
241
246
  }
242
- const location = script.relativeLocationToRawLocation(entry);
243
- locations.push(script.debuggerModel.createRawLocation(script, location.lineNumber, location.columnNumber));
247
+
248
+ for (const entry of entries) {
249
+ const location = script.relativeLocationToRawLocation(entry);
250
+ locations.push(script.debuggerModel.createRawLocation(script, location.lineNumber, location.columnNumber));
251
+ }
244
252
  }
245
253
  return locations;
246
254
  }