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
@@ -696,9 +696,19 @@ export class Breakpoint implements SDK.TargetManager.SDKModelObserver<SDK.Debugg
696
696
 
697
697
  // Do we need to do this? Not sure if bound locations will leak...
698
698
  if (this.bound()) {
699
+ const removedUILocations = new Map<string, Workspace.UISourceCode.UILocation>();
699
700
  for (const uiLocation of this.#uiLocations) {
700
701
  if (uiLocation.uiSourceCode === uiSourceCode) {
701
702
  this.#uiLocations.delete(uiLocation);
703
+ removedUILocations.set(uiLocation.id(), uiLocation);
704
+ }
705
+ }
706
+
707
+ for (const uiLocation of removedUILocations.values()) {
708
+ // Multiple physically distinct UILocations can map to the same logical location
709
+ // (same ID). We only notify the manager if all instances of this logical location are gone.
710
+ const isGoneLogically = !Array.from(this.#uiLocations).some(loc => loc.id() === uiLocation.id());
711
+ if (isGoneLogically) {
702
712
  this.breakpointManager.uiLocationRemoved(uiLocation);
703
713
  }
704
714
  }
@@ -730,14 +740,26 @@ export class Breakpoint implements SDK.TargetManager.SDKModelObserver<SDK.Debugg
730
740
  // This is our first bound location; remove all unbound locations
731
741
  this.removeAllUnboundLocations();
732
742
  }
743
+ // A single logical breakpoint can resolve to multiple raw locations (e.g. due to
744
+ // inlining or SSR/client template duplication) that map back to the same logical
745
+ // UILocation. We only notify the manager once per logical UILocation to avoid
746
+ // duplicate items/decorations in the UI.
747
+ const isNewLogicalLocation = !Array.from(this.#uiLocations).some(loc => loc.id() === uiLocation.id());
733
748
  this.#uiLocations.add(uiLocation);
734
- this.breakpointManager.uiLocationAdded(this, uiLocation);
749
+ if (isNewLogicalLocation) {
750
+ this.breakpointManager.uiLocationAdded(this, uiLocation);
751
+ }
735
752
  }
736
753
 
737
754
  uiLocationRemoved(uiLocation: Workspace.UISourceCode.UILocation): void {
738
755
  if (this.#uiLocations.has(uiLocation)) {
739
756
  this.#uiLocations.delete(uiLocation);
740
- this.breakpointManager.uiLocationRemoved(uiLocation);
757
+ // We only notify the manager if there are no other resolved locations left
758
+ // that map to this same logical UILocation (same ID).
759
+ const isGoneLogically = !Array.from(this.#uiLocations).some(loc => loc.id() === uiLocation.id());
760
+ if (isGoneLogically) {
761
+ this.breakpointManager.uiLocationRemoved(uiLocation);
762
+ }
741
763
  if (!this.bound() && !this.isRemoved) {
742
764
  this.addAllUnboundLocations();
743
765
  }
@@ -752,6 +774,36 @@ export class Breakpoint implements SDK.TargetManager.SDKModelObserver<SDK.Debugg
752
774
  return this.#uiLocations.size !== 0;
753
775
  }
754
776
 
777
+ getClosestResolvedLocation(): Workspace.UISourceCode.UILocation|null {
778
+ if (this.#uiLocations.size === 0) {
779
+ return null;
780
+ }
781
+ let closestLocation: Workspace.UISourceCode.UILocation|null = null;
782
+ let minLineDiff = Infinity;
783
+ let minColDiff = Infinity;
784
+
785
+ const breakpointLine = this.lineNumber();
786
+ const breakpointColumn = this.columnNumber() ?? 0;
787
+
788
+ for (const uiLocation of this.#uiLocations) {
789
+ const lineDiff = Math.abs(uiLocation.lineNumber - breakpointLine);
790
+ const colDiff = Math.abs((uiLocation.columnNumber ?? 0) - breakpointColumn);
791
+
792
+ if (lineDiff < minLineDiff) {
793
+ minLineDiff = lineDiff;
794
+ minColDiff = colDiff;
795
+ closestLocation = uiLocation;
796
+ } else if (lineDiff === minLineDiff) {
797
+ if (colDiff < minColDiff) {
798
+ minColDiff = colDiff;
799
+ closestLocation = uiLocation;
800
+ }
801
+ }
802
+ }
803
+
804
+ return closestLocation;
805
+ }
806
+
755
807
  setEnabled(enabled: boolean): void {
756
808
  this.updateState({...this.#storageState, enabled});
757
809
  }
@@ -11,7 +11,6 @@ export interface GreenDevSettings {
11
11
  aiAnnotations: Common.Settings.Setting<boolean>;
12
12
  beyondStylingGemini: Common.Settings.Setting<boolean>;
13
13
  beyondStylingAntigravity: Common.Settings.Setting<boolean>;
14
- breakpointDebuggerAgent: Common.Settings.Setting<boolean>;
15
14
  emulationCapabilities: Common.Settings.Setting<boolean>;
16
15
  }
17
16
 
@@ -53,11 +52,6 @@ export class Prototypes {
53
52
  false,
54
53
  Common.Settings.SettingStorageType.GLOBAL,
55
54
  );
56
- const breakpointDebuggerAgent = settings.createSetting(
57
- 'greendev-breakpoint-debugger-agent-enabled',
58
- false,
59
- Common.Settings.SettingStorageType.LOCAL,
60
- );
61
55
  const emulationCapabilities = settings.createSetting(
62
56
  'greendev-emulation-capabilities-enabled',
63
57
  false,
@@ -68,7 +62,6 @@ export class Prototypes {
68
62
  aiAnnotations,
69
63
  beyondStylingGemini,
70
64
  beyondStylingAntigravity,
71
- breakpointDebuggerAgent,
72
65
  emulationCapabilities
73
66
  };
74
67
  }
@@ -0,0 +1,293 @@
1
+ // Copyright 2026 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as i18n from '../../core/i18n/i18n.js';
6
+ import type * as SDK from '../../core/sdk/sdk.js';
7
+ import * as Protocol from '../../generated/protocol.js';
8
+
9
+ import {Issue, IssueCategory, IssueKind} from './Issue.js';
10
+ import {
11
+ type LazyMarkdownIssueDescription,
12
+ type MarkdownIssueDescription,
13
+ resolveLazyDescription,
14
+ } from './MarkdownIssueDescription.js';
15
+
16
+ const UIStrings = {
17
+ /**
18
+ * @description Title for Email Verification Protocol specification url link
19
+ */
20
+ emailVerification: 'Email Verification Protocol',
21
+ } as const;
22
+ const str_ = i18n.i18n.registerUIStrings('models/issues_manager/EmailVerificationRequestIssue.ts', UIStrings);
23
+ const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
24
+
25
+ export class EmailVerificationRequestIssue extends Issue<Protocol.Audits.EmailVerificationRequestIssueDetails> {
26
+ constructor(
27
+ issueDetails: Protocol.Audits.EmailVerificationRequestIssueDetails,
28
+ issuesModel: SDK.IssuesModel.IssuesModel|null) {
29
+ super(
30
+ {
31
+ code: Protocol.Audits.InspectorIssueCode.EmailVerificationRequestIssue,
32
+ umaCode: [
33
+ Protocol.Audits.InspectorIssueCode.EmailVerificationRequestIssue,
34
+ issueDetails.emailVerificationRequestIssueReason,
35
+ ].join('::'),
36
+ },
37
+ issueDetails, issuesModel);
38
+ }
39
+
40
+ getCategory(): IssueCategory {
41
+ return IssueCategory.OTHER;
42
+ }
43
+
44
+ getDescription(): MarkdownIssueDescription|null {
45
+ const description = issueDescriptions.get(this.details().emailVerificationRequestIssueReason);
46
+ if (!description) {
47
+ return null;
48
+ }
49
+ return resolveLazyDescription(description);
50
+ }
51
+
52
+ primaryKey(): string {
53
+ return JSON.stringify(this.details());
54
+ }
55
+
56
+ getKind(): IssueKind {
57
+ return IssueKind.PAGE_ERROR;
58
+ }
59
+
60
+ static fromInspectorIssue(
61
+ issuesModel: SDK.IssuesModel.IssuesModel|null,
62
+ inspectorIssue: Protocol.Audits.InspectorIssue): EmailVerificationRequestIssue[] {
63
+ const details = inspectorIssue.details.emailVerificationRequestIssueDetails;
64
+ if (!details) {
65
+ console.warn('Email verification request issue without details received.');
66
+ return [];
67
+ }
68
+ return [new EmailVerificationRequestIssue(details, issuesModel)];
69
+ }
70
+ }
71
+
72
+ const issueDescriptions = new Map<Protocol.Audits.EmailVerificationRequestIssueReason, LazyMarkdownIssueDescription>([
73
+ [
74
+ Protocol.Audits.EmailVerificationRequestIssueReason.InvalidEmail,
75
+ {
76
+ file: 'emailVerificationRequestInvalidEmail.md',
77
+ links: [{
78
+ link: 'https://github.com/WICG/email-verification-protocol',
79
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
80
+ }],
81
+ },
82
+ ],
83
+ [
84
+ Protocol.Audits.EmailVerificationRequestIssueReason.DnsFetchFailed,
85
+ {
86
+ file: 'emailVerificationRequestDnsFetchFailed.md',
87
+ links: [{
88
+ link: 'https://github.com/WICG/email-verification-protocol',
89
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
90
+ }],
91
+ },
92
+ ],
93
+ [
94
+ Protocol.Audits.EmailVerificationRequestIssueReason.DnsInvalidRecord,
95
+ {
96
+ file: 'emailVerificationRequestDnsInvalidRecord.md',
97
+ links: [{
98
+ link: 'https://github.com/WICG/email-verification-protocol',
99
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
100
+ }],
101
+ },
102
+ ],
103
+ [
104
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownHttpNotFound,
105
+ {
106
+ file: 'emailVerificationRequestWellKnownHttpNotFound.md',
107
+ links: [{
108
+ link: 'https://github.com/WICG/email-verification-protocol',
109
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
110
+ }],
111
+ },
112
+ ],
113
+ [
114
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownNoResponse,
115
+ {
116
+ file: 'emailVerificationRequestWellKnownNoResponse.md',
117
+ links: [{
118
+ link: 'https://github.com/WICG/email-verification-protocol',
119
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
120
+ }],
121
+ },
122
+ ],
123
+ [
124
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownInvalidResponse,
125
+ {
126
+ file: 'emailVerificationRequestWellKnownInvalidResponse.md',
127
+ links: [{
128
+ link: 'https://github.com/WICG/email-verification-protocol',
129
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
130
+ }],
131
+ },
132
+ ],
133
+ [
134
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownListEmpty,
135
+ {
136
+ file: 'emailVerificationRequestWellKnownListEmpty.md',
137
+ links: [{
138
+ link: 'https://github.com/WICG/email-verification-protocol',
139
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
140
+ }],
141
+ },
142
+ ],
143
+ [
144
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownInvalidContentType,
145
+ {
146
+ file: 'emailVerificationRequestWellKnownInvalidContentType.md',
147
+ links: [{
148
+ link: 'https://github.com/WICG/email-verification-protocol',
149
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
150
+ }],
151
+ },
152
+ ],
153
+ [
154
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownMissingIssuanceEndpoint,
155
+ {
156
+ file: 'emailVerificationRequestWellKnownMissingIssuanceEndpoint.md',
157
+ links: [{
158
+ link: 'https://github.com/WICG/email-verification-protocol',
159
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
160
+ }],
161
+ },
162
+ ],
163
+ [
164
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownIssuanceEndpointCrossOrigin,
165
+ {
166
+ file: 'emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md',
167
+ links: [{
168
+ link: 'https://github.com/WICG/email-verification-protocol',
169
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
170
+ }],
171
+ },
172
+ ],
173
+ [
174
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownUnsupportedSigningAlgorithm,
175
+ {
176
+ file: 'emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md',
177
+ links: [{
178
+ link: 'https://github.com/WICG/email-verification-protocol',
179
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
180
+ }],
181
+ },
182
+ ],
183
+ [
184
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenHttpNotFound,
185
+ {
186
+ file: 'emailVerificationRequestTokenHttpNotFound.md',
187
+ links: [{
188
+ link: 'https://github.com/WICG/email-verification-protocol',
189
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
190
+ }],
191
+ },
192
+ ],
193
+ [
194
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenNoResponse,
195
+ {
196
+ file: 'emailVerificationRequestTokenNoResponse.md',
197
+ links: [{
198
+ link: 'https://github.com/WICG/email-verification-protocol',
199
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
200
+ }],
201
+ },
202
+ ],
203
+ [
204
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenInvalidResponse,
205
+ {
206
+ file: 'emailVerificationRequestTokenInvalidResponse.md',
207
+ links: [{
208
+ link: 'https://github.com/WICG/email-verification-protocol',
209
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
210
+ }],
211
+ },
212
+ ],
213
+ [
214
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenInvalidContentType,
215
+ {
216
+ file: 'emailVerificationRequestTokenInvalidContentType.md',
217
+ links: [{
218
+ link: 'https://github.com/WICG/email-verification-protocol',
219
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
220
+ }],
221
+ },
222
+ ],
223
+ [
224
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenMalformedSdJwt,
225
+ {
226
+ file: 'emailVerificationRequestTokenMalformedSdJwt.md',
227
+ links: [{
228
+ link: 'https://github.com/WICG/email-verification-protocol',
229
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
230
+ }],
231
+ },
232
+ ],
233
+ [
234
+ Protocol.Audits.EmailVerificationRequestIssueReason.TokenInvalidSdJwt,
235
+ {
236
+ file: 'emailVerificationRequestTokenInvalidSdJwt.md',
237
+ links: [{
238
+ link: 'https://github.com/WICG/email-verification-protocol',
239
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
240
+ }],
241
+ },
242
+ ],
243
+ [
244
+ Protocol.Audits.EmailVerificationRequestIssueReason.KeyBindingSigningFailed,
245
+ {
246
+ file: 'emailVerificationRequestKeyBindingSigningFailed.md',
247
+ links: [{
248
+ link: 'https://github.com/WICG/email-verification-protocol',
249
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
250
+ }],
251
+ },
252
+ ],
253
+ [
254
+ Protocol.Audits.EmailVerificationRequestIssueReason.RpOriginIsOpaque,
255
+ {
256
+ file: 'emailVerificationRequestRpOriginIsOpaque.md',
257
+ links: [{
258
+ link: 'https://github.com/WICG/email-verification-protocol',
259
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
260
+ }],
261
+ },
262
+ ],
263
+ [
264
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownMissingAccountsEndpoint,
265
+ {
266
+ file: 'emailVerificationRequestWellKnownMissingAccountsEndpoint.md',
267
+ links: [{
268
+ link: 'https://github.com/WICG/email-verification-protocol',
269
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
270
+ }],
271
+ },
272
+ ],
273
+ [
274
+ Protocol.Audits.EmailVerificationRequestIssueReason.UserLoggedOut,
275
+ {
276
+ file: 'emailVerificationRequestUserLoggedOut.md',
277
+ links: [{
278
+ link: 'https://github.com/WICG/email-verification-protocol',
279
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
280
+ }],
281
+ },
282
+ ],
283
+ [
284
+ Protocol.Audits.EmailVerificationRequestIssueReason.WellKnownAccountsEndpointCrossOrigin,
285
+ {
286
+ file: 'emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md',
287
+ links: [{
288
+ link: 'https://github.com/WICG/email-verification-protocol',
289
+ linkTitle: i18nLazyString(UIStrings.emailVerification),
290
+ }],
291
+ },
292
+ ],
293
+ ]);
@@ -17,6 +17,7 @@ import {CorsIssue} from './CorsIssue.js';
17
17
  import {CrossOriginEmbedderPolicyIssue, isCrossOriginEmbedderPolicyIssue} from './CrossOriginEmbedderPolicyIssue.js';
18
18
  import {DeprecationIssue} from './DeprecationIssue.js';
19
19
  import {ElementAccessibilityIssue} from './ElementAccessibilityIssue.js';
20
+ import {EmailVerificationRequestIssue} from './EmailVerificationRequestIssue.js';
20
21
  import {FederatedAuthRequestIssue} from './FederatedAuthRequestIssue.js';
21
22
  import {GenericIssue} from './GenericIssue.js';
22
23
  import {HeavyAdIssue} from './HeavyAdIssue.js';
@@ -105,6 +106,10 @@ const issueCodeHandlers = new Map<
105
106
  Protocol.Audits.InspectorIssueCode.ClientHintIssue,
106
107
  ClientHintIssue.fromInspectorIssue,
107
108
  ],
109
+ [
110
+ Protocol.Audits.InspectorIssueCode.EmailVerificationRequestIssue,
111
+ EmailVerificationRequestIssue.fromInspectorIssue,
112
+ ],
108
113
  [
109
114
  Protocol.Audits.InspectorIssueCode.FederatedAuthRequestIssue,
110
115
  FederatedAuthRequestIssue.fromInspectorIssue,
@@ -0,0 +1 @@
1
+ # Email verification request failed because the DNS fetch failed.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the DNS record is invalid.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the email address is invalid.
@@ -0,0 +1 @@
1
+ # Email verification request failed because key binding signing failed.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the Relying Party origin is opaque.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the token endpoint was not found (HTTP 404).
@@ -0,0 +1 @@
1
+ # Email verification request failed because the token endpoint had an invalid Content-Type.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the token endpoint response was invalid.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the token endpoint returned an invalid SD-JWT.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the token endpoint returned a malformed SD-JWT.
@@ -0,0 +1 @@
1
+ # Email verification request failed because there was no response from the token endpoint.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the user is logged out.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the accounts endpoint in the well-known file is cross-origin.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file was not found (HTTP 404).
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file had an invalid Content-Type.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file response was invalid.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the issuance endpoint in the well-known file is cross-origin.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file list was empty.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file is missing the accounts endpoint.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file is missing the issuance endpoint.
@@ -0,0 +1 @@
1
+ # Email verification request failed because there was no response when fetching the well-known file.
@@ -0,0 +1 @@
1
+ # Email verification request failed because the well-known file specifies an unsupported signing algorithm.
@@ -13,6 +13,7 @@ import * as CorsIssue from './CorsIssue.js';
13
13
  import * as CrossOriginEmbedderPolicyIssue from './CrossOriginEmbedderPolicyIssue.js';
14
14
  import * as DeprecationIssue from './DeprecationIssue.js';
15
15
  import * as ElementAccessibilityIssue from './ElementAccessibilityIssue.js';
16
+ import * as EmailVerificationRequestIssue from './EmailVerificationRequestIssue.js';
16
17
  import * as FederatedAuthUserInfoRequestIssue from './FederatedAuthUserInfoRequestIssue.js';
17
18
  import * as GenericIssue from './GenericIssue.js';
18
19
  import * as HeavyAdIssue from './HeavyAdIssue.js';
@@ -47,6 +48,7 @@ export {
47
48
  CrossOriginEmbedderPolicyIssue,
48
49
  DeprecationIssue,
49
50
  ElementAccessibilityIssue,
51
+ EmailVerificationRequestIssue,
50
52
  FederatedAuthUserInfoRequestIssue,
51
53
  GenericIssue,
52
54
  HeavyAdIssue,