chrome-devtools-frontend 1.0.1645245 → 1.0.1646286

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 (42) hide show
  1. package/.agents/skills/devtools-source-maps/SKILL.md +124 -0
  2. package/docs/README.md +1 -0
  3. package/docs/using_source_maps.md +159 -0
  4. package/front_end/core/host/AidaClientTypes.ts +2 -0
  5. package/front_end/core/host/UserMetrics.ts +2 -1
  6. package/front_end/core/root/Runtime.ts +10 -0
  7. package/front_end/core/sdk/DebuggerModel.ts +7 -9
  8. package/front_end/core/sdk/NetworkRequest.ts +0 -24
  9. package/front_end/generated/InspectorBackendCommands.ts +2 -2
  10. package/front_end/generated/SupportedCSSProperties.js +75 -0
  11. package/front_end/generated/protocol.ts +0 -5
  12. package/front_end/models/ai_assistance/AiAgent2.ts +29 -2
  13. package/front_end/models/ai_assistance/AiConversation.ts +4 -2
  14. package/front_end/models/ai_assistance/AiOrigins.ts +63 -2
  15. package/front_end/models/ai_assistance/README.md +15 -4
  16. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +2 -2
  17. package/front_end/models/ai_assistance/agents/FileAgent.ts +9 -42
  18. package/front_end/models/ai_assistance/agents/NetworkAgent.snapshot.txt +2 -2
  19. package/front_end/models/ai_assistance/agents/NetworkAgent.ts +9 -133
  20. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +10 -2
  21. package/front_end/models/ai_assistance/agents/README.md +7 -0
  22. package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
  23. package/front_end/models/ai_assistance/contexts/FileContext.ts +45 -0
  24. package/front_end/models/ai_assistance/contexts/RequestContext.snapshot.txt +48 -0
  25. package/front_end/models/ai_assistance/contexts/RequestContext.ts +116 -0
  26. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +2 -1
  27. package/front_end/models/ai_assistance/tools/README.md +1 -1
  28. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +15 -11
  29. package/front_end/models/web_mcp/WebMCPModel.ts +8 -48
  30. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +13 -13
  31. package/front_end/panels/ai_assistance/components/ChatInput.ts +4 -4
  32. package/front_end/panels/application/ApplicationPanelSidebar.ts +25 -0
  33. package/front_end/panels/application/WebMCPView.ts +40 -70
  34. package/front_end/panels/application/components/AdsView.ts +31 -28
  35. package/front_end/panels/application/components/adsView.css +6 -0
  36. package/front_end/panels/common/ExtensionServer.ts +5 -0
  37. package/front_end/panels/profiler/IsolateSelector.ts +4 -2
  38. package/front_end/panels/profiler/ProfileLauncherView.ts +194 -126
  39. package/front_end/panels/profiler/ProfilesPanel.ts +1 -3
  40. package/front_end/third_party/chromium/README.chromium +1 -1
  41. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  42. package/package.json +1 -1
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: devtools-source-maps
3
+ description: Guidelines for utilizing source maps and structured stack traces in DevTools. Covers DebuggerWorkspaceBinding, StackTrace, SymbolizedError, and related UI widgets.
4
+ ---
5
+
6
+ # Utilizing Source Maps & Structured Stack Traces in DevTools
7
+
8
+ This skill guides you on how to correctly map runtime coordinates to original
9
+ source locations and render structured stack traces or symbolized errors in the
10
+ DevTools frontend.
11
+
12
+ ---
13
+
14
+ ## 1. Primary Rules
15
+ 1. **Never parse raw error stacks manually:** Do not split on newlines or use
16
+ homebrew regex to parse stack traces. Use `DebuggerWorkspaceBinding` helpers
17
+ to structurally parse and translate stack traces.
18
+ 2. **Dispose of subscriptions:** Models like `SymbolizedError` subscribe to
19
+ live locations. Always call `.dispose()` when the consumer (e.g., a widget
20
+ or list) is destroyed to avoid memory leaks.
21
+ 3. **Prefer pre-built widgets:** Instead of manually formatting or rendering
22
+ call frames, use `StackTracePreviewContent` for raw stacks, and
23
+ `SymbolizedErrorWidget` for complete errors.
24
+
25
+ ---
26
+
27
+ ## 2. Core Abstractions
28
+
29
+ ### A. StackTrace Model (`front_end/models/stack_trace/`)
30
+ A structured representation of a call stack (synchronous + asynchronous segments).
31
+ * **`StackTrace`** / **`ParsedErrorStackTrace`** / **`DebuggableStackTrace`**:
32
+ Dispatches a `StackTrace.Events.UPDATED` event when the original sources
33
+ are fully resolved or update.
34
+ * **`Frame`**: Represents a single frame, which contains `uiSourceCode`,
35
+ `url`, line/column info, untranslated `rawName`, translated `name`, and
36
+ inline information.
37
+
38
+ ### B. SymbolizedError Model (`front_end/models/bindings/SymbolizedError.ts`)
39
+ A union type representing a fully symbolized error.
40
+ * **`SymbolizedErrorObject`**: Contains error `message`, `stackTrace` (as a
41
+ `ParsedErrorStackTrace`), and an optional `cause` (another
42
+ `SymbolizedError`). Also holds compile/eval `syntaxErrorLocation`.
43
+ * **`UnparsableError`**: Fallback when parsing fails.
44
+
45
+ ---
46
+
47
+ ## 3. Core APIs on DebuggerWorkspaceBinding
48
+
49
+ ### Location Translation
50
+ Translates raw coordinates into UI-friendly original source coordinates:
51
+ ```ts
52
+ const uiLocation = await Bindings.DebuggerWorkspaceBinding.instance()
53
+ .rawLocationToUILocation(rawLocation);
54
+ ```
55
+
56
+ ### StackTrace & Error Generation
57
+
58
+ * **From Protocol Stack Trace (Runtime Domain)**:
59
+ ```ts
60
+ const stack = await Bindings.DebuggerWorkspaceBinding.instance()
61
+ .createStackTraceFromProtocolRuntime(protocolStackTrace, target);
62
+ ```
63
+ * **From Debugger Pause details**:
64
+ ```ts
65
+ const stack = await Bindings.DebuggerWorkspaceBinding.instance()
66
+ .createStackTraceFromDebuggerPaused(pausedDetails, target);
67
+ ```
68
+ * **From a Raw Error Stack string**:
69
+ ```ts
70
+ const stack = await Bindings.DebuggerWorkspaceBinding.instance()
71
+ .createStackTraceFromErrorStackLikeString(target, stackString, exceptionDetails);
72
+ ```
73
+ * **From a Remote Error Object**:
74
+ ```ts
75
+ const symbolizedError = await Bindings.DebuggerWorkspaceBinding.instance()
76
+ .createSymbolizedError(remoteObject, exceptionDetails);
77
+ ```
78
+
79
+ ---
80
+
81
+ ## 4. UI Widget Reference
82
+
83
+ ### StackTracePreviewContent
84
+ Renders a structured `StackTrace` inside Shadow DOM. Handles expandable UI and
85
+ collapsing ignore-listed files.
86
+
87
+ ```ts
88
+ import * as Components from '../../ui/legacy/components/utils/utils.js';
89
+ import * as Workspace from '../../models/workspace/workspace.js';
90
+
91
+ const preview = new Components.JSPresentationUtils.StackTracePreviewContent();
92
+ preview.stackTrace = stackTrace;
93
+ preview.options = {
94
+ expandable: true,
95
+ showColumnNumber: true,
96
+ ignoreListManager: Workspace.IgnoreListManager.IgnoreListManager.instance(),
97
+ };
98
+ this.contentElement.appendChild(preview.element);
99
+ ```
100
+
101
+ ### SymbolizedErrorWidget
102
+ Displays a complete `SymbolizedError` including recursive causal chains
103
+ ("Caused by: ...") and syntax error locations.
104
+
105
+ ```ts
106
+ import * as Panels from '../../panels/panels.js';
107
+ import * as Workspace from '../../models/workspace/workspace.js';
108
+
109
+ const errorWidget = new Panels.Console.SymbolizedErrorWidget();
110
+ errorWidget.error = symbolizedError;
111
+ errorWidget.ignoreListManager = Workspace.IgnoreListManager.IgnoreListManager
112
+ .instance();
113
+ this.contentElement.appendChild(errorWidget.element);
114
+ ```
115
+
116
+ ---
117
+
118
+ ## 5. Verification Checklist
119
+
120
+ 1. **Check for Memory Leaks:** Verify `symbolizedError.dispose()` is called
121
+ on consumer widget cleanup.
122
+ 2. **Ignore-listing Support:** Ensure widgets have `ignoreListManager` set.
123
+ 3. **WASM/Inline Support:** Check that inline and WebAssembly frames map
124
+ correctly via original source maps.
package/docs/README.md CHANGED
@@ -45,6 +45,7 @@ below.**
45
45
  * [Chrome DevTools Protocol (CDP)](devtools-protocol.md)
46
46
  * [Resource management in DevTools](resource_management.md)
47
47
  * [UI Engineering](ui_engineering.md)
48
+ * [Utilizing Source Maps in DevTools](using_source_maps.md)
48
49
 
49
50
  ### Chromium
50
51
 
@@ -0,0 +1,159 @@
1
+ # Utilizing Source Maps in DevTools
2
+
3
+ This document describes how to utilize source maps and translate raw runtime
4
+ locations into original source locations inside the DevTools frontend.
5
+
6
+ DevTools provides a set of high-level abstractions and UI widgets to parse,
7
+ symbolize, and render stack traces and errors. Prefer these tools
8
+ over manual coordinate translation or raw string parsing.
9
+
10
+ ---
11
+
12
+ ## Central Coordinate Translation: DebuggerWorkspaceBinding
13
+
14
+ The `DebuggerWorkspaceBinding` class (located in `front_end/models/bindings/`)
15
+ acts as the central coordinator for mapping compiled/raw runtime coordinates
16
+ to workspace/UI locations. It manages various source mappings (such as source
17
+ maps, compiler mappings, and language plugins).
18
+
19
+ ### Translating Raw Locations
20
+
21
+ To convert a single raw debugger location (with a script ID, line number, and
22
+ column number) into an original source location, use:
23
+
24
+ ```ts
25
+ const uiLocation = await DebuggerWorkspaceBinding.instance()
26
+ .rawLocationToUILocation(rawLocation);
27
+ ```
28
+
29
+ Since source maps may need to be loaded or parsed, this method returns a
30
+ `Promise` resolving to `Workspace.UISourceCode.UILocation | null`.
31
+
32
+ ---
33
+
34
+ ## Structured Stack Trace Abstractions
35
+
36
+ The project organizes stack traces and errors around two primary models:
37
+
38
+ ### 1. StackTrace
39
+
40
+ Located in `front_end/models/stack_trace/`, a `StackTrace` represents a
41
+ structured stack trace. It is composed of:
42
+ - **`syncFragment`** (`Fragment`): The synchronous part of the call stack.
43
+ - **`asyncFragments`** (`AsyncFragment[]`): Asynchronous call stack segments,
44
+ each with a description (e.g., "Promise.then") and its own frames.
45
+
46
+ Each frame (`Frame`) contains properties like `url`, `uiSourceCode`, `name`
47
+ (translated name), `rawName` (untranslated name), `line`, `column`, and flags
48
+ indicating if the frame `isInline`, `isWasm`, or has `missingDebugInfo`.
49
+
50
+ #### Creating a StackTrace
51
+
52
+ `DebuggerWorkspaceBinding` provides several helpers depending on your source
53
+ format:
54
+
55
+ * **From CDP Protocol Stack Trace**:
56
+ ```ts
57
+ const stackTrace = await DebuggerWorkspaceBinding.instance()
58
+ .createStackTraceFromProtocolRuntime(protocolStackTrace, target);
59
+ ```
60
+ * **From Debugger Pause Event**:
61
+ ```ts
62
+ const stackTrace = await DebuggerWorkspaceBinding.instance()
63
+ .createStackTraceFromDebuggerPaused(pausedDetails, target);
64
+ ```
65
+ * **From an Error-Like Stack String**:
66
+ ```ts
67
+ const stackTrace = await DebuggerWorkspaceBinding.instance()
68
+ .createStackTraceFromErrorStackLikeString(target, stackString, exceptionDetails);
69
+ ```
70
+
71
+ ---
72
+
73
+ ### 2. SymbolizedError
74
+
75
+ Located in `front_end/models/bindings/SymbolizedError.ts`, `SymbolizedError` is
76
+ a union type of `SymbolizedErrorObject` and `UnparsableError`. It represents a
77
+ fully parsed and symbolized Error object.
78
+
79
+ * **`SymbolizedErrorObject`**: Contains the parsed error message (`message`),
80
+ the parsed `ParsedErrorStackTrace` (`stackTrace`), and an optional `cause`
81
+ (`SymbolizedError`), which allows recursive representation of chained
82
+ errors. It also handles special cases like compile-time or eval-time
83
+ `SyntaxError`s, exposing a `syntaxErrorLocation` pointing directly to where
84
+ the parse failed.
85
+ * **`UnparsableError`**: A fallback representation for stack traces that
86
+ cannot be structurally parsed.
87
+
88
+ #### Creating a SymbolizedError
89
+
90
+ To resolve a `RemoteObject` (of subtype `error` or type `string`) into a
91
+ symbolized representation:
92
+
93
+ ```ts
94
+ const symbolizedError = await DebuggerWorkspaceBinding.instance()
95
+ .createSymbolizedError(remoteObject, exceptionDetails);
96
+ ```
97
+
98
+ > **Memory Management Note:** Both `StackTrace` and `SymbolizedError` models
99
+ > listen to live location updates and must be properly `dispose()`d when no
100
+ > longer used to prevent memory leaks.
101
+
102
+ ---
103
+
104
+ ## UI Widgets
105
+
106
+ To render the above models in the DevTools UI, you should use the following
107
+ pre-built widgets instead of constructing your own custom tables or lists:
108
+
109
+ ### 1. StackTracePreviewContent
110
+
111
+ Located in `front_end/ui/legacy/components/utils/JSPresentationUtils.ts`, this
112
+ widget renders a structured `StackTrace` inside a shadow DOM. It automatically
113
+ handles collapsible sections (expanded/collapsed) and ignore-listed files or
114
+ folders.
115
+
116
+ #### Usage:
117
+
118
+ ```ts
119
+ import * as Components from '../../ui/legacy/components/utils/utils.js';
120
+ import * as Workspace from '../../models/workspace/workspace.js';
121
+
122
+ const preview = new Components.JSPresentationUtils.StackTracePreviewContent();
123
+ preview.stackTrace = stackTrace;
124
+ preview.options = {
125
+ expandable: true,
126
+ showColumnNumber: true,
127
+ ignoreListManager: Workspace.IgnoreListManager.IgnoreListManager.instance(),
128
+ };
129
+ ```
130
+
131
+ ---
132
+
133
+ ### 2. SymbolizedErrorWidget
134
+
135
+ Located in `front_end/panels/console/SymbolizedErrorWidget.ts`, this widget is
136
+ designed to display a complete `SymbolizedError`, including its parsed message,
137
+ any nested `cause` errors (rendered recursively with "Caused by:"), and links for
138
+ syntax error locations.
139
+
140
+ #### Usage:
141
+
142
+ ```ts
143
+ import * as Panels from '../../panels/panels.js';
144
+ import * as Workspace from '../../models/workspace/workspace.js';
145
+
146
+ const errorWidget = new Panels.Console.SymbolizedErrorWidget();
147
+ errorWidget.error = symbolizedError;
148
+ errorWidget.ignoreListManager = Workspace.IgnoreListManager.IgnoreListManager
149
+ .instance();
150
+ ```
151
+
152
+ ---
153
+
154
+ ## Reaching Out
155
+
156
+ If none of the existing methods, abstractions, or widgets cover your specific
157
+ use-case, or if you need additional capabilities for coordinate/stack trace
158
+ symbolization, please **reach out to the DevTools team**. Do not roll your
159
+ own coordinate mapping or raw string parsing logic.
@@ -134,6 +134,8 @@ export enum ClientFeature {
134
134
  CHROME_CONVERSATION_SUMMARY_AGENT = 27,
135
135
  // Chrome AI Assistance Storage Agent.
136
136
  CHROME_STORAGE_AGENT = 28,
137
+ // Chrome DevTools V2 Agent.
138
+ CHROME_DEVTOOLS_V2_AGENT = 29,
137
139
  }
138
140
 
139
141
  export enum UserTier {
@@ -571,8 +571,9 @@ export enum PanelCodes {
571
571
  'developer-resources' = 66,
572
572
  'autofill-view' = 67,
573
573
  freestyler = 68,
574
+ ads = 69,
574
575
  /* eslint-enable @typescript-eslint/naming-convention */
575
- MAX_VALUE = 69,
576
+ MAX_VALUE = 70,
576
577
  }
577
578
 
578
579
  export enum MediaTypes {
@@ -600,6 +600,10 @@ interface LiveEdit {
600
600
  enabled: boolean;
601
601
  }
602
602
 
603
+ interface ExtensionsOnChromeUrls {
604
+ enabled: boolean;
605
+ }
606
+
603
607
  interface DevToolsFlexibleLayout {
604
608
  verticalDrawerEnabled: boolean;
605
609
  }
@@ -637,6 +641,10 @@ interface DevToolsWebMCPSupport {
637
641
  enabled: boolean;
638
642
  }
639
643
 
644
+ interface DevToolsAdsPanel {
645
+ enabled: boolean;
646
+ }
647
+
640
648
  interface DevToolsPlusButton {
641
649
  enabled: boolean;
642
650
  }
@@ -695,8 +703,10 @@ export type HostConfig = Platform.TypeScriptUtilities.RecursivePartial<{
695
703
  devToolsGeminiRebranding: HostConfigGeminiRebranding,
696
704
  devToolsProtocolMonitor: DevToolsProtocolMonitor,
697
705
  devToolsWebMCPSupport: DevToolsWebMCPSupport,
706
+ devToolsAdsPanel: DevToolsAdsPanel,
698
707
  devToolsUseGcaApi: UseGcaApi,
699
708
  devToolsPlusButton: DevToolsPlusButton,
709
+ extensionsOnChromeUrls: ExtensionsOnChromeUrls,
700
710
  }>;
701
711
 
702
712
  /**
@@ -734,12 +734,11 @@ export class DebuggerModel extends SDKModel<EventTypes> {
734
734
  }
735
735
  }
736
736
 
737
- createRawLocation(script: Script, lineNumber: number, columnNumber: number, inlineFrameIndex?: number): Location {
738
- return this.createRawLocationByScriptId(script.scriptId, lineNumber, columnNumber, inlineFrameIndex);
737
+ createRawLocation(script: Script, lineNumber: number, columnNumber: number): Location {
738
+ return this.createRawLocationByScriptId(script.scriptId, lineNumber, columnNumber);
739
739
  }
740
740
 
741
- createRawLocationByURL(sourceURL: string, lineNumber: number, columnNumber?: number, inlineFrameIndex?: number):
742
- Location|null {
741
+ createRawLocationByURL(sourceURL: string, lineNumber: number, columnNumber?: number): Location|null {
743
742
  for (const script of this.#scriptsBySourceURL.get(sourceURL) || []) {
744
743
  if (script.lineOffset > lineNumber ||
745
744
  (script.lineOffset === lineNumber && columnNumber !== undefined && script.columnOffset > columnNumber)) {
@@ -749,15 +748,14 @@ export class DebuggerModel extends SDKModel<EventTypes> {
749
748
  (script.endLine === lineNumber && columnNumber !== undefined && script.endColumn <= columnNumber)) {
750
749
  continue;
751
750
  }
752
- return new Location(this, script.scriptId, lineNumber, columnNumber, inlineFrameIndex);
751
+ return new Location(this, script.scriptId, lineNumber, columnNumber);
753
752
  }
754
753
  return null;
755
754
  }
756
755
 
757
- createRawLocationByScriptId(
758
- scriptId: Protocol.Runtime.ScriptId, lineNumber: number, columnNumber?: number,
759
- inlineFrameIndex?: number): Location {
760
- return new Location(this, scriptId, lineNumber, columnNumber, inlineFrameIndex);
756
+ createRawLocationByScriptId(scriptId: Protocol.Runtime.ScriptId, lineNumber: number,
757
+ columnNumber?: number): Location {
758
+ return new Location(this, scriptId, lineNumber, columnNumber);
761
759
  }
762
760
 
763
761
  createRawLocationsByStackTrace(stackTrace: Protocol.Runtime.StackTrace): Location[] {
@@ -157,22 +157,6 @@ const UIStrings = {
157
157
  * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
158
158
  */
159
159
  exemptionReasonUserSetting: 'This cookie is allowed by user preference.',
160
- /**
161
- * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
162
- */
163
- exemptionReasonTPCDMetadata: 'This cookie is allowed by a third-party cookie deprecation trial grace period. Learn more: goo.gle/dt-grace.',
164
- /**
165
- * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
166
- */
167
- exemptionReasonTPCDDeprecationTrial: 'This cookie is allowed by third-party cookie deprecation trial. Learn more: goo.gle/ps-dt.',
168
- /**
169
- * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
170
- */
171
- exemptionReasonTopLevelTPCDDeprecationTrial: 'This cookie is allowed by top-level third-party cookie deprecation trial. Learn more: goo.gle/ps-dt.',
172
- /**
173
- * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
174
- */
175
- exemptionReasonTPCDHeuristics: 'This cookie is allowed by third-party cookie heuristics. Learn more: goo.gle/hbe',
176
160
  /**
177
161
  * @description Tooltip to explain why the cookie should have been blocked by third-party cookie phaseout but is exempted.
178
162
  */
@@ -1948,14 +1932,6 @@ export const cookieExemptionReasonToUiString = function(
1948
1932
  switch (exemptionReason) {
1949
1933
  case Protocol.Network.CookieExemptionReason.UserSetting:
1950
1934
  return i18nString(UIStrings.exemptionReasonUserSetting);
1951
- case Protocol.Network.CookieExemptionReason.TPCDMetadata:
1952
- return i18nString(UIStrings.exemptionReasonTPCDMetadata);
1953
- case Protocol.Network.CookieExemptionReason.TopLevelTPCDDeprecationTrial:
1954
- return i18nString(UIStrings.exemptionReasonTopLevelTPCDDeprecationTrial);
1955
- case Protocol.Network.CookieExemptionReason.TPCDDeprecationTrial:
1956
- return i18nString(UIStrings.exemptionReasonTPCDDeprecationTrial);
1957
- case Protocol.Network.CookieExemptionReason.TPCDHeuristics:
1958
- return i18nString(UIStrings.exemptionReasonTPCDHeuristics);
1959
1935
  case Protocol.Network.CookieExemptionReason.EnterprisePolicy:
1960
1936
  return i18nString(UIStrings.exemptionReasonEnterprisePolicy);
1961
1937
  case Protocol.Network.CookieExemptionReason.StorageAccess:
@@ -798,7 +798,7 @@ inspectorBackend.registerEnum("Network.ServiceWorkerRouterSource", {Network: "ne
798
798
  inspectorBackend.registerEnum("Network.InitiatorType", {Parser: "parser", Script: "script", Preload: "preload", SignedExchange: "SignedExchange", Preflight: "preflight", FedCM: "FedCM", Other: "other"});
799
799
  inspectorBackend.registerEnum("Network.SetCookieBlockedReason", {SecureOnly: "SecureOnly", SameSiteStrict: "SameSiteStrict", SameSiteLax: "SameSiteLax", SameSiteUnspecifiedTreatedAsLax: "SameSiteUnspecifiedTreatedAsLax", SameSiteNoneInsecure: "SameSiteNoneInsecure", UserPreferences: "UserPreferences", ThirdPartyPhaseout: "ThirdPartyPhaseout", ThirdPartyBlockedInFirstPartySet: "ThirdPartyBlockedInFirstPartySet", SyntaxError: "SyntaxError", SchemeNotSupported: "SchemeNotSupported", OverwriteSecure: "OverwriteSecure", InvalidDomain: "InvalidDomain", InvalidPrefix: "InvalidPrefix", UnknownError: "UnknownError", SchemefulSameSiteStrict: "SchemefulSameSiteStrict", SchemefulSameSiteLax: "SchemefulSameSiteLax", SchemefulSameSiteUnspecifiedTreatedAsLax: "SchemefulSameSiteUnspecifiedTreatedAsLax", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", DisallowedCharacter: "DisallowedCharacter", NoCookieContent: "NoCookieContent"});
800
800
  inspectorBackend.registerEnum("Network.CookieBlockedReason", {SecureOnly: "SecureOnly", NotOnPath: "NotOnPath", DomainMismatch: "DomainMismatch", SameSiteStrict: "SameSiteStrict", SameSiteLax: "SameSiteLax", SameSiteUnspecifiedTreatedAsLax: "SameSiteUnspecifiedTreatedAsLax", SameSiteNoneInsecure: "SameSiteNoneInsecure", UserPreferences: "UserPreferences", ThirdPartyPhaseout: "ThirdPartyPhaseout", ThirdPartyBlockedInFirstPartySet: "ThirdPartyBlockedInFirstPartySet", UnknownError: "UnknownError", SchemefulSameSiteStrict: "SchemefulSameSiteStrict", SchemefulSameSiteLax: "SchemefulSameSiteLax", SchemefulSameSiteUnspecifiedTreatedAsLax: "SchemefulSameSiteUnspecifiedTreatedAsLax", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", PortMismatch: "PortMismatch", SchemeMismatch: "SchemeMismatch", AnonymousContext: "AnonymousContext"});
801
- inspectorBackend.registerEnum("Network.CookieExemptionReason", {None: "None", UserSetting: "UserSetting", TPCDMetadata: "TPCDMetadata", TPCDDeprecationTrial: "TPCDDeprecationTrial", TopLevelTPCDDeprecationTrial: "TopLevelTPCDDeprecationTrial", TPCDHeuristics: "TPCDHeuristics", EnterprisePolicy: "EnterprisePolicy", StorageAccess: "StorageAccess", TopLevelStorageAccess: "TopLevelStorageAccess", Scheme: "Scheme", SameSiteNoneCookiesInSandbox: "SameSiteNoneCookiesInSandbox"});
801
+ inspectorBackend.registerEnum("Network.CookieExemptionReason", {None: "None", UserSetting: "UserSetting", EnterprisePolicy: "EnterprisePolicy", StorageAccess: "StorageAccess", TopLevelStorageAccess: "TopLevelStorageAccess", Scheme: "Scheme", SameSiteNoneCookiesInSandbox: "SameSiteNoneCookiesInSandbox"});
802
802
  inspectorBackend.registerEnum("Network.AuthChallengeSource", {Server: "Server", Proxy: "Proxy"});
803
803
  inspectorBackend.registerEnum("Network.AuthChallengeResponseResponse", {Default: "Default", CancelAuth: "CancelAuth", ProvideCredentials: "ProvideCredentials"});
804
804
  inspectorBackend.registerEnum("Network.InterceptionStage", {Request: "Request", HeadersReceived: "HeadersReceived"});
@@ -1038,7 +1038,7 @@ inspectorBackend.registerEnum("Page.AdFrameExplanation", {ParentIsAd: "ParentIsA
1038
1038
  inspectorBackend.registerEnum("Page.SecureContextType", {Secure: "Secure", SecureLocalhost: "SecureLocalhost", InsecureScheme: "InsecureScheme", InsecureAncestor: "InsecureAncestor"});
1039
1039
  inspectorBackend.registerEnum("Page.CrossOriginIsolatedContextType", {Isolated: "Isolated", NotIsolated: "NotIsolated", NotIsolatedFeatureDisabled: "NotIsolatedFeatureDisabled"});
1040
1040
  inspectorBackend.registerEnum("Page.GatedAPIFeatures", {SharedArrayBuffers: "SharedArrayBuffers", SharedArrayBuffersTransferAllowed: "SharedArrayBuffersTransferAllowed", PerformanceMeasureMemory: "PerformanceMeasureMemory", PerformanceProfile: "PerformanceProfile"});
1041
- inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AllScreensCapture: "all-screens-capture", AmbientLightSensor: "ambient-light-sensor", AriaNotify: "aria-notify", AttributionReporting: "attribution-reporting", Autofill: "autofill", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", CapturedSurfaceControl: "captured-surface-control", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChPrefersReducedMotion: "ch-prefers-reduced-motion", ChPrefersReducedTransparency: "ch-prefers-reduced-transparency", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaHighEntropyValues: "ch-ua-high-entropy-values", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFormFactors: "ch-ua-form-factors", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", ComputePressure: "compute-pressure", ControlledFrame: "controlled-frame", CrossOriginIsolated: "cross-origin-isolated", DeferredFetch: "deferred-fetch", DeferredFetchMinimal: "deferred-fetch-minimal", DeviceAttributes: "device-attributes", DigitalCredentialsCreate: "digital-credentials-create", DigitalCredentialsGet: "digital-credentials-get", DirectSockets: "direct-sockets", DirectSocketsMulticast: "direct-sockets-multicast", DirectSocketsPrivate: "direct-sockets-private", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Hid: "hid", IdentityCredentialsGet: "identity-credentials-get", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", JoinAdInterestGroup: "join-ad-interest-group", KeyboardMap: "keyboard-map", LanguageDetector: "language-detector", LanguageModel: "language-model", LocalFonts: "local-fonts", LocalNetwork: "local-network", LocalNetworkAccess: "local-network-access", LoopbackNetwork: "loopback-network", Magnetometer: "magnetometer", ManualText: "manual-text", MediaPlaybackWhileNotVisible: "media-playback-while-not-visible", Microphone: "microphone", Midi: "midi", OnDeviceSpeechRecognition: "on-device-speech-recognition", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PrivateAggregation: "private-aggregation", PrivateStateTokenIssuance: "private-state-token-issuance", PrivateStateTokenRedemption: "private-state-token-redemption", PublickeyCredentialsCreate: "publickey-credentials-create", PublickeyCredentialsGet: "publickey-credentials-get", RecordAdAuctionEvents: "record-ad-auction-events", Rewriter: "rewriter", RunAdAuction: "run-ad-auction", ScreenWakeLock: "screen-wake-lock", Serial: "serial", SharedStorage: "shared-storage", SharedStorageSelectUrl: "shared-storage-select-url", SmartCard: "smart-card", SpeakerSelection: "speaker-selection", StorageAccess: "storage-access", SubApps: "sub-apps", Summarizer: "summarizer", SyncXhr: "sync-xhr", Tools: "tools", Translator: "translator", Unload: "unload", Usb: "usb", UsbUnrestricted: "usb-unrestricted", VerticalScroll: "vertical-scroll", WebAppInstallation: "web-app-installation", Webnn: "webnn", WebPrinting: "web-printing", WebShare: "web-share", WindowManagement: "window-management", Writer: "writer", XrSpatialTracking: "xr-spatial-tracking"});
1041
+ inspectorBackend.registerEnum("Page.PermissionsPolicyFeature", {Accelerometer: "accelerometer", AllScreensCapture: "all-screens-capture", AmbientLightSensor: "ambient-light-sensor", AriaNotify: "aria-notify", AttributionReporting: "attribution-reporting", Autofill: "autofill", Autoplay: "autoplay", Bluetooth: "bluetooth", BrowsingTopics: "browsing-topics", Camera: "camera", CapturedSurfaceControl: "captured-surface-control", ChDpr: "ch-dpr", ChDeviceMemory: "ch-device-memory", ChDownlink: "ch-downlink", ChEct: "ch-ect", ChPrefersColorScheme: "ch-prefers-color-scheme", ChPrefersReducedMotion: "ch-prefers-reduced-motion", ChPrefersReducedTransparency: "ch-prefers-reduced-transparency", ChRtt: "ch-rtt", ChSaveData: "ch-save-data", ChUa: "ch-ua", ChUaArch: "ch-ua-arch", ChUaBitness: "ch-ua-bitness", ChUaHighEntropyValues: "ch-ua-high-entropy-values", ChUaPlatform: "ch-ua-platform", ChUaModel: "ch-ua-model", ChUaMobile: "ch-ua-mobile", ChUaFormFactors: "ch-ua-form-factors", ChUaFullVersion: "ch-ua-full-version", ChUaFullVersionList: "ch-ua-full-version-list", ChUaPlatformVersion: "ch-ua-platform-version", ChUaWow64: "ch-ua-wow64", ChViewportHeight: "ch-viewport-height", ChViewportWidth: "ch-viewport-width", ChWidth: "ch-width", ClipboardRead: "clipboard-read", ClipboardWrite: "clipboard-write", ComputePressure: "compute-pressure", ControlledFrame: "controlled-frame", CrossOriginIsolated: "cross-origin-isolated", DeferredFetch: "deferred-fetch", DeferredFetchMinimal: "deferred-fetch-minimal", DeviceAttributes: "device-attributes", DigitalCredentialsCreate: "digital-credentials-create", DigitalCredentialsGet: "digital-credentials-get", DirectSockets: "direct-sockets", DirectSocketsMulticast: "direct-sockets-multicast", DisplayCapture: "display-capture", DocumentDomain: "document-domain", EncryptedMedia: "encrypted-media", ExecutionWhileOutOfViewport: "execution-while-out-of-viewport", ExecutionWhileNotRendered: "execution-while-not-rendered", FocusWithoutUserActivation: "focus-without-user-activation", Fullscreen: "fullscreen", Frobulate: "frobulate", Gamepad: "gamepad", Geolocation: "geolocation", Gyroscope: "gyroscope", Hid: "hid", IdentityCredentialsGet: "identity-credentials-get", IdleDetection: "idle-detection", InterestCohort: "interest-cohort", JoinAdInterestGroup: "join-ad-interest-group", KeyboardMap: "keyboard-map", LanguageDetector: "language-detector", LanguageModel: "language-model", LocalFonts: "local-fonts", LocalNetwork: "local-network", LocalNetworkAccess: "local-network-access", LoopbackNetwork: "loopback-network", Magnetometer: "magnetometer", ManualText: "manual-text", MediaPlaybackWhileNotVisible: "media-playback-while-not-visible", Microphone: "microphone", Midi: "midi", OnDeviceSpeechRecognition: "on-device-speech-recognition", OtpCredentials: "otp-credentials", Payment: "payment", PictureInPicture: "picture-in-picture", PrivateAggregation: "private-aggregation", PrivateStateTokenIssuance: "private-state-token-issuance", PrivateStateTokenRedemption: "private-state-token-redemption", PublickeyCredentialsCreate: "publickey-credentials-create", PublickeyCredentialsGet: "publickey-credentials-get", RecordAdAuctionEvents: "record-ad-auction-events", Rewriter: "rewriter", RunAdAuction: "run-ad-auction", ScreenWakeLock: "screen-wake-lock", Serial: "serial", SharedStorage: "shared-storage", SharedStorageSelectUrl: "shared-storage-select-url", SmartCard: "smart-card", SpeakerSelection: "speaker-selection", StorageAccess: "storage-access", SubApps: "sub-apps", Summarizer: "summarizer", SyncXhr: "sync-xhr", Tools: "tools", Translator: "translator", Unload: "unload", Usb: "usb", UsbUnrestricted: "usb-unrestricted", VerticalScroll: "vertical-scroll", WebAppInstallation: "web-app-installation", Webnn: "webnn", WebPrinting: "web-printing", WebShare: "web-share", WindowManagement: "window-management", Writer: "writer", XrSpatialTracking: "xr-spatial-tracking"});
1042
1042
  inspectorBackend.registerEnum("Page.PermissionsPolicyBlockReason", {Header: "Header", IframeAttribute: "IframeAttribute", InFencedFrameTree: "InFencedFrameTree", InIsolatedApp: "InIsolatedApp"});
1043
1043
  inspectorBackend.registerEnum("Page.OriginTrialTokenStatus", {Success: "Success", NotSupported: "NotSupported", Insecure: "Insecure", Expired: "Expired", WrongOrigin: "WrongOrigin", InvalidSignature: "InvalidSignature", Malformed: "Malformed", WrongVersion: "WrongVersion", FeatureDisabled: "FeatureDisabled", TokenDisabled: "TokenDisabled", FeatureDisabledForUser: "FeatureDisabledForUser", UnknownTrial: "UnknownTrial"});
1044
1044
  inspectorBackend.registerEnum("Page.OriginTrialStatus", {Enabled: "Enabled", ValidTokenNotProvided: "ValidTokenNotProvided", OSNotSupported: "OSNotSupported", TrialNotAllowed: "TrialNotAllowed"});