chrome-devtools-frontend 1.0.1525561 → 1.0.1526630

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 (58) hide show
  1. package/front_end/core/common/Settings.ts +1 -1
  2. package/front_end/core/i18n/i18nImpl.ts +1 -1
  3. package/front_end/core/sdk/ChildTargetManager.ts +2 -0
  4. package/front_end/core/sdk/PreloadingModel.ts +3 -0
  5. package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
  6. package/front_end/core/sdk/SourceMapScopesInfo.ts +57 -0
  7. package/front_end/generated/InspectorBackendCommands.js +5 -5
  8. package/front_end/generated/SupportedCSSProperties.js +0 -19
  9. package/front_end/generated/protocol-mapping.d.ts +4 -2
  10. package/front_end/generated/protocol-proxy-api.d.ts +4 -2
  11. package/front_end/generated/protocol.ts +9 -8
  12. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.snapshot.txt +43 -8
  13. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +50 -32
  14. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +29 -29
  15. package/front_end/models/javascript_metadata/NativeFunctions.js +3 -8
  16. package/front_end/models/trace/handlers/UserTimingsHandler.ts +1 -1
  17. package/front_end/models/trace/insights/CLSCulprits.ts +2 -1
  18. package/front_end/models/trace/insights/Cache.ts +2 -1
  19. package/front_end/models/trace/insights/DOMSize.ts +2 -1
  20. package/front_end/models/trace/insights/DocumentLatency.ts +2 -1
  21. package/front_end/models/trace/insights/DuplicatedJavaScript.ts +2 -1
  22. package/front_end/models/trace/insights/FontDisplay.ts +2 -1
  23. package/front_end/models/trace/insights/ForcedReflow.ts +2 -1
  24. package/front_end/models/trace/insights/INPBreakdown.ts +2 -1
  25. package/front_end/models/trace/insights/ImageDelivery.ts +2 -1
  26. package/front_end/models/trace/insights/LCPBreakdown.ts +2 -1
  27. package/front_end/models/trace/insights/LCPDiscovery.ts +2 -1
  28. package/front_end/models/trace/insights/LegacyJavaScript.ts +2 -1
  29. package/front_end/models/trace/insights/ModernHTTP.ts +2 -1
  30. package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -1
  31. package/front_end/models/trace/insights/RenderBlocking.ts +2 -1
  32. package/front_end/models/trace/insights/SlowCSSSelector.ts +2 -1
  33. package/front_end/models/trace/insights/ThirdParties.ts +2 -1
  34. package/front_end/models/trace/insights/Viewport.ts +2 -1
  35. package/front_end/models/trace/insights/types.ts +2 -1
  36. package/front_end/panels/application/ReportingApiView.ts +8 -7
  37. package/front_end/panels/application/StorageView.ts +2 -1
  38. package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -0
  39. package/front_end/panels/console/ConsolePrompt.ts +24 -4
  40. package/front_end/panels/coverage/CoverageListView.ts +125 -279
  41. package/front_end/panels/coverage/CoverageView.ts +109 -111
  42. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +11 -19
  43. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +27 -43
  44. package/front_end/panels/network/RequestResponseView.ts +1 -1
  45. package/front_end/panels/timeline/TimelinePanel.ts +10 -8
  46. package/front_end/panels/timeline/components/ExportTraceOptions.ts +1 -1
  47. package/front_end/third_party/chromium/README.chromium +1 -1
  48. package/front_end/ui/components/buttons/Button.ts +18 -1
  49. package/front_end/ui/legacy/EmptyWidget.ts +11 -1
  50. package/front_end/ui/legacy/SearchableView.ts +1 -1
  51. package/front_end/ui/legacy/Toolbar.ts +25 -4
  52. package/front_end/ui/legacy/UIUtils.ts +28 -2
  53. package/front_end/ui/legacy/Widget.ts +5 -0
  54. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +48 -5
  55. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -2
  56. package/front_end/ui/legacy/components/source_frame/JSONView.ts +28 -0
  57. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +7 -8
  58. package/package.json +22 -22
@@ -131,7 +131,7 @@ export class Settings {
131
131
  * to store UI state such as how a user choses to position a split widget or
132
132
  * which panel they last opened.
133
133
  * If you are creating a setting that you expect the user to control, and
134
- * sync, prefer {@see createSetting}
134
+ * sync, prefer {@link Settings.createSetting}
135
135
  */
136
136
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
137
137
  moduleSetting<T = any>(settingName: string): Setting<T> {
@@ -68,7 +68,7 @@ export async function fetchAndRegisterLocaleData(
68
68
  locale: Intl.UnicodeBCP47LocaleIdentifier, location = self.location.toString()): Promise<void> {
69
69
  const localeDataTextPromise = fetch(getLocaleFetchUrl(locale, location)).then(result => result.json());
70
70
  const timeoutPromise =
71
- new Promise<never>((_, reject) => window.setTimeout(() => reject(new Error('timed out fetching locale')), 5000));
71
+ new Promise<never>((_, reject) => window.setTimeout(() => reject(new Error('timed out fetching locale')), 2500));
72
72
  const localeData = await Promise.race([timeoutPromise, localeDataTextPromise]);
73
73
  i18nInstance.registerLocaleData(locale, localeData);
74
74
  }
@@ -177,6 +177,8 @@ export class ChildTargetManager extends SDKModel<EventTypes> implements Protocol
177
177
  type = Type.FRAME;
178
178
  } else if (targetInfo.type === 'page') {
179
179
  type = Type.FRAME;
180
+ } else if (targetInfo.type === 'browser_ui') {
181
+ type = Type.FRAME;
180
182
  } else if (targetInfo.type === 'worker') {
181
183
  type = Type.Worker;
182
184
  } else if (targetInfo.type === 'worklet') {
@@ -626,6 +626,8 @@ class PreloadingAttemptRegistry {
626
626
  return 0;
627
627
  case Protocol.Preload.SpeculationAction.Prerender:
628
628
  return 1;
629
+ case Protocol.Preload.SpeculationAction.PrerenderUntilScript:
630
+ return 2;
629
631
  }
630
632
  }
631
633
 
@@ -736,6 +738,7 @@ class PreloadingAttemptRegistry {
736
738
  };
737
739
  break;
738
740
  case Protocol.Preload.SpeculationAction.Prerender:
741
+ case Protocol.Preload.SpeculationAction.PrerenderUntilScript:
739
742
  attempt = {
740
743
  action: Protocol.Preload.SpeculationAction.Prerender,
741
744
  key,
@@ -106,7 +106,7 @@ export class ResourceTreeModel extends SDKModel<EventTypes> {
106
106
  }
107
107
 
108
108
  // TODO(crbug.com/445966299): Refactor to use `storageAgent().invoke_getStorageKey()` instead.
109
- const response = await this.storageAgent.invoke_getStorageKeyForFrame({frameId});
109
+ const response = await this.storageAgent.invoke_getStorageKey({frameId});
110
110
  if (response.getError() === 'Frame tree node for given frame not found') {
111
111
  return null;
112
112
  }
@@ -3,6 +3,8 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Protocol from '../../generated/protocol.js';
6
+ import * as Formatter from '../../models/formatter/formatter.js';
7
+ import type * as TextUtils from '../../models/text_utils/text_utils.js';
6
8
  import type * as ScopesCodec from '../../third_party/source-map-scopes-codec/source-map-scopes-codec.js';
7
9
 
8
10
  import type {CallFrame, ScopeChainEntry} from './DebuggerModel.js';
@@ -22,6 +24,61 @@ export class SourceMapScopesInfo {
22
24
  this.#generatedRanges = scopeInfo.ranges;
23
25
  }
24
26
 
27
+ /**
28
+ * If the source map does not contain any scopes information, this factory function attempts to create bare bones scope information
29
+ * via the script's AST combined with the mappings.
30
+ *
31
+ * We create the generated ranges from the scope tree and for each range we create an original scope that matches the bounds 1:1.
32
+ * We don't map the bounds via mappings as mappings are often iffy and it's not strictly required to translate stack traces where we
33
+ * map call-sites separately.
34
+ */
35
+ static createFromAst(
36
+ sourceMap: SourceMap, scopeTree: Formatter.FormatterWorkerPool.ScopeTreeNode,
37
+ text: TextUtils.Text.Text): SourceMapScopesInfo {
38
+ const {scope, range} = convertScope(scopeTree, undefined, undefined);
39
+ return new SourceMapScopesInfo(sourceMap, {scopes: [scope], ranges: [range]});
40
+
41
+ function convertScope(
42
+ node: Formatter.FormatterWorkerPool.ScopeTreeNode, parentScope: ScopesCodec.OriginalScope|undefined,
43
+ parentRange: ScopesCodec.GeneratedRange|
44
+ undefined): {scope: ScopesCodec.OriginalScope, range: ScopesCodec.GeneratedRange} {
45
+ const start = positionFromOffset(node.start);
46
+ const end = positionFromOffset(node.end);
47
+ const isStackFrame = node.kind === Formatter.FormatterWorkerPool.ScopeKind.FUNCTION;
48
+
49
+ const scope: ScopesCodec.OriginalScope = {
50
+ start,
51
+ end,
52
+ name: sourceMap.findEntry(start.line, start.column, 0)?.name,
53
+ isStackFrame,
54
+ variables: [],
55
+ children: [],
56
+ };
57
+
58
+ const range: ScopesCodec.GeneratedRange = {
59
+ start,
60
+ end,
61
+ originalScope: scope,
62
+ isStackFrame,
63
+ isHidden: false,
64
+ values: [],
65
+ children: [],
66
+ };
67
+
68
+ parentRange?.children.push(range);
69
+ parentScope?.children.push(scope);
70
+
71
+ node.children.forEach(child => convertScope(child, scope, range));
72
+
73
+ return {scope, range};
74
+ }
75
+
76
+ function positionFromOffset(offset: number): ScopesCodec.Position {
77
+ const location = text.positionFromOffset(offset);
78
+ return {line: location.lineNumber, column: location.columnNumber};
79
+ }
80
+ }
81
+
25
82
  addOriginalScopes(scopes: Array<ScopesCodec.OriginalScope|null>): void {
26
83
  for (const scope of scopes) {
27
84
  this.#originalScopes.push(scope);
@@ -214,7 +214,7 @@ inspectorBackend.registerEnum("Browser.PrivacySandboxAPI", {BiddingAndAuctionSer
214
214
  inspectorBackend.registerEvent("Browser.downloadWillBegin", ["frameId", "guid", "url", "suggestedFilename"]);
215
215
  inspectorBackend.registerEnum("Browser.DownloadProgressEventState", {InProgress: "inProgress", Completed: "completed", Canceled: "canceled"});
216
216
  inspectorBackend.registerEvent("Browser.downloadProgress", ["guid", "totalBytes", "receivedBytes", "state", "filePath"]);
217
- inspectorBackend.registerCommand("Browser.setPermission", [{"name": "permission", "type": "object", "optional": false, "description": "Descriptor of permission to override.", "typeRef": "Browser.PermissionDescriptor"}, {"name": "setting", "type": "string", "optional": false, "description": "Setting of the permission.", "typeRef": "Browser.PermissionSetting"}, {"name": "origin", "type": "string", "optional": true, "description": "Requesting origin the permission applies to, all origins if not specified.", "typeRef": null}, {"name": "embeddingOrigin", "type": "string", "optional": true, "description": "Embedding origin the permission applies to. It is ignored unless the requesting origin is present and valid. If the requesting origin is provided but the embedding origin isn't, the requesting origin is used as the embedding origin.", "typeRef": null}, {"name": "browserContextId", "type": "string", "optional": true, "description": "Context to override. When omitted, default browser context is used.", "typeRef": "Browser.BrowserContextID"}], [], "Set permission settings for given requesting and embedding origins.");
217
+ inspectorBackend.registerCommand("Browser.setPermission", [{"name": "permission", "type": "object", "optional": false, "description": "Descriptor of permission to override.", "typeRef": "Browser.PermissionDescriptor"}, {"name": "setting", "type": "string", "optional": false, "description": "Setting of the permission.", "typeRef": "Browser.PermissionSetting"}, {"name": "origin", "type": "string", "optional": true, "description": "Embedding origin the permission applies to, all origins if not specified.", "typeRef": null}, {"name": "embeddedOrigin", "type": "string", "optional": true, "description": "Embedded origin the permission applies to. It is ignored unless the embedding origin is present and valid. If the embedding origin is provided but the embedded origin isn't, the embedding origin is used as the embedded origin.", "typeRef": null}, {"name": "browserContextId", "type": "string", "optional": true, "description": "Context to override. When omitted, default browser context is used.", "typeRef": "Browser.BrowserContextID"}], [], "Set permission settings for given embedding and embedded origins.");
218
218
  inspectorBackend.registerCommand("Browser.grantPermissions", [{"name": "permissions", "type": "array", "optional": false, "description": "", "typeRef": "Browser.PermissionType"}, {"name": "origin", "type": "string", "optional": true, "description": "Origin the permission applies to, all origins if not specified.", "typeRef": null}, {"name": "browserContextId", "type": "string", "optional": true, "description": "BrowserContext to override permissions. When omitted, default browser context is used.", "typeRef": "Browser.BrowserContextID"}], [], "Grant specific permissions to the given origin and reject all others. Deprecated. Use setPermission instead.");
219
219
  inspectorBackend.registerCommand("Browser.resetPermissions", [{"name": "browserContextId", "type": "string", "optional": true, "description": "BrowserContext to reset permissions. When omitted, default browser context is used.", "typeRef": "Browser.BrowserContextID"}], [], "Reset all permission management for all origins.");
220
220
  inspectorBackend.registerEnum("Browser.SetDownloadBehaviorRequestBehavior", {Deny: "deny", Allow: "allow", AllowAndName: "allowAndName", Default: "default"});
@@ -858,7 +858,7 @@ inspectorBackend.registerCommand("Network.continueInterceptedRequest", [{"name":
858
858
  inspectorBackend.registerCommand("Network.deleteCookies", [{"name": "name", "type": "string", "optional": false, "description": "Name of the cookies to remove.", "typeRef": null}, {"name": "url", "type": "string", "optional": true, "description": "If specified, deletes all the cookies with the given name where domain and path match provided URL.", "typeRef": null}, {"name": "domain", "type": "string", "optional": true, "description": "If specified, deletes only cookies with the exact domain.", "typeRef": null}, {"name": "path", "type": "string", "optional": true, "description": "If specified, deletes only cookies with the exact path.", "typeRef": null}, {"name": "partitionKey", "type": "object", "optional": true, "description": "If specified, deletes only cookies with the the given name and partitionKey where all partition key attributes match the cookie partition key attribute.", "typeRef": "Network.CookiePartitionKey"}], [], "Deletes browser cookies with matching name and url or domain/path/partitionKey pair.");
859
859
  inspectorBackend.registerCommand("Network.disable", [], [], "Disables network tracking, prevents network events from being sent to the client.");
860
860
  inspectorBackend.registerCommand("Network.emulateNetworkConditions", [{"name": "offline", "type": "boolean", "optional": false, "description": "True to emulate internet disconnection.", "typeRef": null}, {"name": "latency", "type": "number", "optional": false, "description": "Minimum latency from request sent to response headers received (ms).", "typeRef": null}, {"name": "downloadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.", "typeRef": null}, {"name": "uploadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.", "typeRef": null}, {"name": "connectionType", "type": "string", "optional": true, "description": "Connection type if known.", "typeRef": "Network.ConnectionType"}, {"name": "packetLoss", "type": "number", "optional": true, "description": "WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets.", "typeRef": null}, {"name": "packetQueueLength", "type": "number", "optional": true, "description": "WebRTC packet queue length (packet). 0 removes any queue length limitations.", "typeRef": null}, {"name": "packetReordering", "type": "boolean", "optional": true, "description": "WebRTC packetReordering feature.", "typeRef": null}], [], "Activates emulation of network conditions. This command is deprecated in favor of the emulateNetworkConditionsByRule and overrideNetworkState commands, which can be used together to the same effect.");
861
- inspectorBackend.registerCommand("Network.emulateNetworkConditionsByRule", [{"name": "offline", "type": "boolean", "optional": false, "description": "True to emulate internet disconnection.", "typeRef": null}, {"name": "matchedNetworkConditions", "type": "array", "optional": false, "description": "Configure conditions for matching requests. If multiple entries match a request, the first entry wins. Global conditions can be configured by leaving the urlPattern for the conditions empty. These global conditions are also applied for throttling of p2p connections.", "typeRef": "Network.NetworkConditions"}], ["ruleIds"], "Activates emulation of network conditions for individual requests using URL match patterns.");
861
+ inspectorBackend.registerCommand("Network.emulateNetworkConditionsByRule", [{"name": "offline", "type": "boolean", "optional": false, "description": "True to emulate internet disconnection.", "typeRef": null}, {"name": "matchedNetworkConditions", "type": "array", "optional": false, "description": "Configure conditions for matching requests. If multiple entries match a request, the first entry wins. Global conditions can be configured by leaving the urlPattern for the conditions empty. These global conditions are also applied for throttling of p2p connections.", "typeRef": "Network.NetworkConditions"}], ["ruleIds"], "Activates emulation of network conditions for individual requests using URL match patterns. Unlike the deprecated Network.emulateNetworkConditions this method does not affect `navigator` state. Use Network.overrideNetworkState to explicitly modify `navigator` behavior.");
862
862
  inspectorBackend.registerCommand("Network.overrideNetworkState", [{"name": "offline", "type": "boolean", "optional": false, "description": "True to emulate internet disconnection.", "typeRef": null}, {"name": "latency", "type": "number", "optional": false, "description": "Minimum latency from request sent to response headers received (ms).", "typeRef": null}, {"name": "downloadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.", "typeRef": null}, {"name": "uploadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.", "typeRef": null}, {"name": "connectionType", "type": "string", "optional": true, "description": "Connection type if known.", "typeRef": "Network.ConnectionType"}], [], "Override the state of navigator.onLine and navigator.connection.");
863
863
  inspectorBackend.registerCommand("Network.enable", [{"name": "maxTotalBufferSize", "type": "number", "optional": true, "description": "Buffer size in bytes to use when preserving network payloads (XHRs, etc).", "typeRef": null}, {"name": "maxResourceBufferSize", "type": "number", "optional": true, "description": "Per-resource buffer size in bytes to use when preserving network payloads (XHRs, etc).", "typeRef": null}, {"name": "maxPostDataSize", "type": "number", "optional": true, "description": "Longest post body size (in bytes) that would be included in requestWillBeSent notification", "typeRef": null}, {"name": "reportDirectSocketTraffic", "type": "boolean", "optional": true, "description": "Whether DirectSocket chunk send/receive events should be reported.", "typeRef": null}, {"name": "enableDurableMessages", "type": "boolean", "optional": true, "description": "Enable storing response bodies outside of renderer, so that these survive a cross-process navigation. Requires maxTotalBufferSize to be set. Currently defaults to false.", "typeRef": null}], [], "Enables network tracking, network events will now be delivered to the client.");
864
864
  inspectorBackend.registerCommand("Network.getAllCookies", [], ["cookies"], "Returns all browser cookies. Depending on the backend support, will return detailed cookie information in the `cookies` field. Deprecated. Use Storage.getCookies instead.");
@@ -870,7 +870,7 @@ inspectorBackend.registerCommand("Network.getResponseBodyForInterception", [{"na
870
870
  inspectorBackend.registerCommand("Network.takeResponseBodyForInterceptionAsStream", [{"name": "interceptionId", "type": "string", "optional": false, "description": "", "typeRef": "Network.InterceptionId"}], ["stream"], "Returns a handle to the stream representing the response body. Note that after this command, the intercepted request can't be continued as is -- you either need to cancel it or to provide the response body. The stream only supports sequential read, IO.read will fail if the position is specified.");
871
871
  inspectorBackend.registerCommand("Network.replayXHR", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of XHR to replay.", "typeRef": "Network.RequestId"}], [], "This method sends a new XMLHttpRequest which is identical to the original one. The following parameters should be identical: method, url, async, request body, extra headers, withCredentials attribute, user, password.");
872
872
  inspectorBackend.registerCommand("Network.searchInResponseBody", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network response to search.", "typeRef": "Network.RequestId"}, {"name": "query", "type": "string", "optional": false, "description": "String to search for.", "typeRef": null}, {"name": "caseSensitive", "type": "boolean", "optional": true, "description": "If true, search is case sensitive.", "typeRef": null}, {"name": "isRegex", "type": "boolean", "optional": true, "description": "If true, treats string parameter as regex.", "typeRef": null}], ["result"], "Searches for given string in response content.");
873
- inspectorBackend.registerCommand("Network.setBlockedURLs", [{"name": "urlPatterns", "type": "array", "optional": true, "description": "URL patterns to block. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/). Example: `*://*:*/*.css`.", "typeRef": "string"}, {"name": "urls", "type": "array", "optional": true, "description": "URL patterns to block. Wildcards ('*') are allowed.", "typeRef": "string"}], [], "Blocks URLs from loading.");
873
+ inspectorBackend.registerCommand("Network.setBlockedURLs", [{"name": "urlPatterns", "type": "array", "optional": true, "description": "URL patterns to block. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/) and must be absolute. Example: `*://*:*/*.css`.", "typeRef": "string"}, {"name": "urls", "type": "array", "optional": true, "description": "URL patterns to block. Wildcards ('*') are allowed.", "typeRef": "string"}], [], "Blocks URLs from loading.");
874
874
  inspectorBackend.registerCommand("Network.setBypassServiceWorker", [{"name": "bypass", "type": "boolean", "optional": false, "description": "Bypass service worker and load from network.", "typeRef": null}], [], "Toggles ignoring of service worker for each request.");
875
875
  inspectorBackend.registerCommand("Network.setCacheDisabled", [{"name": "cacheDisabled", "type": "boolean", "optional": false, "description": "Cache disabled state.", "typeRef": null}], [], "Toggles ignoring cache for each request. If `true`, cache will not be used.");
876
876
  inspectorBackend.registerCommand("Network.setCookie", [{"name": "name", "type": "string", "optional": false, "description": "Cookie name.", "typeRef": null}, {"name": "value", "type": "string", "optional": false, "description": "Cookie value.", "typeRef": null}, {"name": "url", "type": "string", "optional": true, "description": "The request-URI to associate with the setting of the cookie. This value can affect the default domain, path, source port, and source scheme values of the created cookie.", "typeRef": null}, {"name": "domain", "type": "string", "optional": true, "description": "Cookie domain.", "typeRef": null}, {"name": "path", "type": "string", "optional": true, "description": "Cookie path.", "typeRef": null}, {"name": "secure", "type": "boolean", "optional": true, "description": "True if cookie is secure.", "typeRef": null}, {"name": "httpOnly", "type": "boolean", "optional": true, "description": "True if cookie is http-only.", "typeRef": null}, {"name": "sameSite", "type": "string", "optional": true, "description": "Cookie SameSite type.", "typeRef": "Network.CookieSameSite"}, {"name": "expires", "type": "number", "optional": true, "description": "Cookie expiration date, session cookie if not set", "typeRef": "Network.TimeSinceEpoch"}, {"name": "priority", "type": "string", "optional": true, "description": "Cookie Priority type.", "typeRef": "Network.CookiePriority"}, {"name": "sameParty", "type": "boolean", "optional": true, "description": "True if cookie is SameParty.", "typeRef": null}, {"name": "sourceScheme", "type": "string", "optional": true, "description": "Cookie source scheme type.", "typeRef": "Network.CookieSourceScheme"}, {"name": "sourcePort", "type": "number", "optional": true, "description": "Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. This is a temporary ability and it will be removed in the future.", "typeRef": null}, {"name": "partitionKey", "type": "object", "optional": true, "description": "Cookie partition key. If not set, the cookie will be set as not partitioned.", "typeRef": "Network.CookiePartitionKey"}], ["success"], "Sets a cookie with the given cookie data; may overwrite equivalent cookies if they exist.");
@@ -911,7 +911,7 @@ inspectorBackend.registerType("Network.SignedExchangeSignature", [{"name": "labe
911
911
  inspectorBackend.registerType("Network.SignedExchangeHeader", [{"name": "requestUrl", "type": "string", "optional": false, "description": "Signed exchange request URL.", "typeRef": null}, {"name": "responseCode", "type": "number", "optional": false, "description": "Signed exchange response code.", "typeRef": null}, {"name": "responseHeaders", "type": "object", "optional": false, "description": "Signed exchange response headers.", "typeRef": "Network.Headers"}, {"name": "signatures", "type": "array", "optional": false, "description": "Signed exchange response signature.", "typeRef": "Network.SignedExchangeSignature"}, {"name": "headerIntegrity", "type": "string", "optional": false, "description": "Signed exchange header integrity hash in the form of `sha256-<base64-hash-value>`.", "typeRef": null}]);
912
912
  inspectorBackend.registerType("Network.SignedExchangeError", [{"name": "message", "type": "string", "optional": false, "description": "Error message.", "typeRef": null}, {"name": "signatureIndex", "type": "number", "optional": true, "description": "The index of the signature which caused the error.", "typeRef": null}, {"name": "errorField", "type": "string", "optional": true, "description": "The field which caused the error.", "typeRef": "Network.SignedExchangeErrorField"}]);
913
913
  inspectorBackend.registerType("Network.SignedExchangeInfo", [{"name": "outerResponse", "type": "object", "optional": false, "description": "The outer response of signed HTTP exchange which was received from network.", "typeRef": "Network.Response"}, {"name": "hasExtraInfo", "type": "boolean", "optional": false, "description": "Whether network response for the signed exchange was accompanied by extra headers.", "typeRef": null}, {"name": "header", "type": "object", "optional": true, "description": "Information about the signed exchange header.", "typeRef": "Network.SignedExchangeHeader"}, {"name": "securityDetails", "type": "object", "optional": true, "description": "Security details for the signed exchange header.", "typeRef": "Network.SecurityDetails"}, {"name": "errors", "type": "array", "optional": true, "description": "Errors occurred while handling the signed exchange.", "typeRef": "Network.SignedExchangeError"}]);
914
- inspectorBackend.registerType("Network.NetworkConditions", [{"name": "urlPattern", "type": "string", "optional": false, "description": "Only matching requests will be affected by these conditions. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/). If the pattern is empty, all requests are matched (including p2p connections).", "typeRef": null}, {"name": "latency", "type": "number", "optional": false, "description": "Minimum latency from request sent to response headers received (ms).", "typeRef": null}, {"name": "downloadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.", "typeRef": null}, {"name": "uploadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.", "typeRef": null}, {"name": "connectionType", "type": "string", "optional": true, "description": "Connection type if known.", "typeRef": "Network.ConnectionType"}, {"name": "packetLoss", "type": "number", "optional": true, "description": "WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets.", "typeRef": null}, {"name": "packetQueueLength", "type": "number", "optional": true, "description": "WebRTC packet queue length (packet). 0 removes any queue length limitations.", "typeRef": null}, {"name": "packetReordering", "type": "boolean", "optional": true, "description": "WebRTC packetReordering feature.", "typeRef": null}]);
914
+ inspectorBackend.registerType("Network.NetworkConditions", [{"name": "urlPattern", "type": "string", "optional": false, "description": "Only matching requests will be affected by these conditions. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/) and must be absolute. If the pattern is empty, all requests are matched (including p2p connections).", "typeRef": null}, {"name": "latency", "type": "number", "optional": false, "description": "Minimum latency from request sent to response headers received (ms).", "typeRef": null}, {"name": "downloadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.", "typeRef": null}, {"name": "uploadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.", "typeRef": null}, {"name": "connectionType", "type": "string", "optional": true, "description": "Connection type if known.", "typeRef": "Network.ConnectionType"}, {"name": "packetLoss", "type": "number", "optional": true, "description": "WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets.", "typeRef": null}, {"name": "packetQueueLength", "type": "number", "optional": true, "description": "WebRTC packet queue length (packet). 0 removes any queue length limitations.", "typeRef": null}, {"name": "packetReordering", "type": "boolean", "optional": true, "description": "WebRTC packetReordering feature.", "typeRef": null}]);
915
915
  inspectorBackend.registerType("Network.DirectTCPSocketOptions", [{"name": "noDelay", "type": "boolean", "optional": false, "description": "TCP_NODELAY option", "typeRef": null}, {"name": "keepAliveDelay", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "sendBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "receiveBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "dnsQueryType", "type": "string", "optional": true, "description": "", "typeRef": "Network.DirectSocketDnsQueryType"}]);
916
916
  inspectorBackend.registerType("Network.DirectUDPSocketOptions", [{"name": "remoteAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "localAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "localPort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "dnsQueryType", "type": "string", "optional": true, "description": "", "typeRef": "Network.DirectSocketDnsQueryType"}, {"name": "sendBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "receiveBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}]);
917
917
  inspectorBackend.registerType("Network.DirectUDPMessage", [{"name": "data", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "remoteAddr", "type": "string", "optional": true, "description": "Null for connected mode.", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Null for connected mode. Expected to be unsigned integer.", "typeRef": null}]);
@@ -1176,7 +1176,7 @@ inspectorBackend.registerType("PerformanceTimeline.TimelineEvent", [{"name": "fr
1176
1176
 
1177
1177
  // Preload.
1178
1178
  inspectorBackend.registerEnum("Preload.RuleSetErrorType", {SourceIsNotJsonObject: "SourceIsNotJsonObject", InvalidRulesSkipped: "InvalidRulesSkipped", InvalidRulesetLevelTag: "InvalidRulesetLevelTag"});
1179
- inspectorBackend.registerEnum("Preload.SpeculationAction", {Prefetch: "Prefetch", Prerender: "Prerender"});
1179
+ inspectorBackend.registerEnum("Preload.SpeculationAction", {Prefetch: "Prefetch", Prerender: "Prerender", PrerenderUntilScript: "PrerenderUntilScript"});
1180
1180
  inspectorBackend.registerEnum("Preload.SpeculationTargetHint", {Blank: "Blank", Self: "Self"});
1181
1181
  inspectorBackend.registerEnum("Preload.PrerenderFinalStatus", {Activated: "Activated", Destroyed: "Destroyed", LowEndDevice: "LowEndDevice", InvalidSchemeRedirect: "InvalidSchemeRedirect", InvalidSchemeNavigation: "InvalidSchemeNavigation", NavigationRequestBlockedByCsp: "NavigationRequestBlockedByCsp", MojoBinderPolicy: "MojoBinderPolicy", RendererProcessCrashed: "RendererProcessCrashed", RendererProcessKilled: "RendererProcessKilled", Download: "Download", TriggerDestroyed: "TriggerDestroyed", NavigationNotCommitted: "NavigationNotCommitted", NavigationBadHttpStatus: "NavigationBadHttpStatus", ClientCertRequested: "ClientCertRequested", NavigationRequestNetworkError: "NavigationRequestNetworkError", CancelAllHostsForTesting: "CancelAllHostsForTesting", DidFailLoad: "DidFailLoad", Stop: "Stop", SslCertificateError: "SslCertificateError", LoginAuthRequested: "LoginAuthRequested", UaChangeRequiresReload: "UaChangeRequiresReload", BlockedByClient: "BlockedByClient", AudioOutputDeviceRequested: "AudioOutputDeviceRequested", MixedContent: "MixedContent", TriggerBackgrounded: "TriggerBackgrounded", MemoryLimitExceeded: "MemoryLimitExceeded", DataSaverEnabled: "DataSaverEnabled", TriggerUrlHasEffectiveUrl: "TriggerUrlHasEffectiveUrl", ActivatedBeforeStarted: "ActivatedBeforeStarted", InactivePageRestriction: "InactivePageRestriction", StartFailed: "StartFailed", TimeoutBackgrounded: "TimeoutBackgrounded", CrossSiteRedirectInInitialNavigation: "CrossSiteRedirectInInitialNavigation", CrossSiteNavigationInInitialNavigation: "CrossSiteNavigationInInitialNavigation", SameSiteCrossOriginRedirectNotOptInInInitialNavigation: "SameSiteCrossOriginRedirectNotOptInInInitialNavigation", SameSiteCrossOriginNavigationNotOptInInInitialNavigation: "SameSiteCrossOriginNavigationNotOptInInInitialNavigation", ActivationNavigationParameterMismatch: "ActivationNavigationParameterMismatch", ActivatedInBackground: "ActivatedInBackground", EmbedderHostDisallowed: "EmbedderHostDisallowed", ActivationNavigationDestroyedBeforeSuccess: "ActivationNavigationDestroyedBeforeSuccess", TabClosedByUserGesture: "TabClosedByUserGesture", TabClosedWithoutUserGesture: "TabClosedWithoutUserGesture", PrimaryMainFrameRendererProcessCrashed: "PrimaryMainFrameRendererProcessCrashed", PrimaryMainFrameRendererProcessKilled: "PrimaryMainFrameRendererProcessKilled", ActivationFramePolicyNotCompatible: "ActivationFramePolicyNotCompatible", PreloadingDisabled: "PreloadingDisabled", BatterySaverEnabled: "BatterySaverEnabled", ActivatedDuringMainFrameNavigation: "ActivatedDuringMainFrameNavigation", PreloadingUnsupportedByWebContents: "PreloadingUnsupportedByWebContents", CrossSiteRedirectInMainFrameNavigation: "CrossSiteRedirectInMainFrameNavigation", CrossSiteNavigationInMainFrameNavigation: "CrossSiteNavigationInMainFrameNavigation", SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation: "SameSiteCrossOriginRedirectNotOptInInMainFrameNavigation", SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation: "SameSiteCrossOriginNavigationNotOptInInMainFrameNavigation", MemoryPressureOnTrigger: "MemoryPressureOnTrigger", MemoryPressureAfterTriggered: "MemoryPressureAfterTriggered", PrerenderingDisabledByDevTools: "PrerenderingDisabledByDevTools", SpeculationRuleRemoved: "SpeculationRuleRemoved", ActivatedWithAuxiliaryBrowsingContexts: "ActivatedWithAuxiliaryBrowsingContexts", MaxNumOfRunningEagerPrerendersExceeded: "MaxNumOfRunningEagerPrerendersExceeded", MaxNumOfRunningNonEagerPrerendersExceeded: "MaxNumOfRunningNonEagerPrerendersExceeded", MaxNumOfRunningEmbedderPrerendersExceeded: "MaxNumOfRunningEmbedderPrerendersExceeded", PrerenderingUrlHasEffectiveUrl: "PrerenderingUrlHasEffectiveUrl", RedirectedPrerenderingUrlHasEffectiveUrl: "RedirectedPrerenderingUrlHasEffectiveUrl", ActivationUrlHasEffectiveUrl: "ActivationUrlHasEffectiveUrl", JavaScriptInterfaceAdded: "JavaScriptInterfaceAdded", JavaScriptInterfaceRemoved: "JavaScriptInterfaceRemoved", AllPrerenderingCanceled: "AllPrerenderingCanceled", WindowClosed: "WindowClosed", SlowNetwork: "SlowNetwork", OtherPrerenderedPageActivated: "OtherPrerenderedPageActivated", V8OptimizerDisabled: "V8OptimizerDisabled", PrerenderFailedDuringPrefetch: "PrerenderFailedDuringPrefetch", BrowsingDataRemoved: "BrowsingDataRemoved", PrerenderHostReused: "PrerenderHostReused"});
1182
1182
  inspectorBackend.registerEnum("Preload.PreloadingStatus", {Pending: "Pending", Running: "Running", Ready: "Ready", Success: "Success", Failure: "Failure", NotSupported: "NotSupported"});
@@ -733,7 +733,6 @@ export const generatedProperties = [
733
733
  "text-wrap-mode",
734
734
  "text-wrap-style",
735
735
  "timeline-scope",
736
- "timeline-trigger-behavior",
737
736
  "timeline-trigger-exit-range-end",
738
737
  "timeline-trigger-exit-range-start",
739
738
  "timeline-trigger-name",
@@ -4432,7 +4431,6 @@ export const generatedProperties = [
4432
4431
  "longhands": [
4433
4432
  "timeline-trigger-name",
4434
4433
  "timeline-trigger-source",
4435
- "timeline-trigger-behavior",
4436
4434
  "timeline-trigger-range-start",
4437
4435
  "timeline-trigger-range-end",
4438
4436
  "timeline-trigger-exit-range-start",
@@ -4440,15 +4438,6 @@ export const generatedProperties = [
4440
4438
  ],
4441
4439
  "name": "timeline-trigger"
4442
4440
  },
4443
- {
4444
- "keywords": [
4445
- "once",
4446
- "repeat",
4447
- "alternate",
4448
- "state"
4449
- ],
4450
- "name": "timeline-trigger-behavior"
4451
- },
4452
4441
  {
4453
4442
  "name": "timeline-trigger-exit-range-end"
4454
4443
  },
@@ -6846,14 +6835,6 @@ export const generatedPropertyValues = {
6846
6835
  "stable"
6847
6836
  ]
6848
6837
  },
6849
- "timeline-trigger-behavior": {
6850
- "values": [
6851
- "once",
6852
- "repeat",
6853
- "alternate",
6854
- "state"
6855
- ]
6856
- },
6857
6838
  "timeline-trigger-source": {
6858
6839
  "values": [
6859
6840
  "none",
@@ -1231,7 +1231,7 @@ export namespace ProtocolMapping {
1231
1231
  returnType: void;
1232
1232
  };
1233
1233
  /**
1234
- * Set permission settings for given requesting and embedding origins.
1234
+ * Set permission settings for given embedding and embedded origins.
1235
1235
  */
1236
1236
  'Browser.setPermission': {
1237
1237
  paramsType: [Protocol.Browser.SetPermissionRequest];
@@ -3349,7 +3349,9 @@ export namespace ProtocolMapping {
3349
3349
  returnType: void;
3350
3350
  };
3351
3351
  /**
3352
- * Activates emulation of network conditions for individual requests using URL match patterns.
3352
+ * Activates emulation of network conditions for individual requests using URL match patterns. Unlike the deprecated
3353
+ * Network.emulateNetworkConditions this method does not affect `navigator` state. Use Network.overrideNetworkState to
3354
+ * explicitly modify `navigator` behavior.
3353
3355
  */
3354
3356
  'Network.emulateNetworkConditionsByRule': {
3355
3357
  paramsType: [Protocol.Network.EmulateNetworkConditionsByRuleRequest];
@@ -591,7 +591,7 @@ declare namespace ProtocolProxyApi {
591
591
 
592
592
  export interface BrowserApi {
593
593
  /**
594
- * Set permission settings for given requesting and embedding origins.
594
+ * Set permission settings for given embedding and embedded origins.
595
595
  */
596
596
  invoke_setPermission(params: Protocol.Browser.SetPermissionRequest): Promise<Protocol.ProtocolResponseWithError>;
597
597
 
@@ -2523,7 +2523,9 @@ declare namespace ProtocolProxyApi {
2523
2523
  invoke_emulateNetworkConditions(params: Protocol.Network.EmulateNetworkConditionsRequest): Promise<Protocol.ProtocolResponseWithError>;
2524
2524
 
2525
2525
  /**
2526
- * Activates emulation of network conditions for individual requests using URL match patterns.
2526
+ * Activates emulation of network conditions for individual requests using URL match patterns. Unlike the deprecated
2527
+ * Network.emulateNetworkConditions this method does not affect `navigator` state. Use Network.overrideNetworkState to
2528
+ * explicitly modify `navigator` behavior.
2527
2529
  */
2528
2530
  invoke_emulateNetworkConditionsByRule(params: Protocol.Network.EmulateNetworkConditionsByRuleRequest): Promise<Protocol.Network.EmulateNetworkConditionsByRuleResponse>;
2529
2531
 
@@ -2289,15 +2289,15 @@ export namespace Browser {
2289
2289
  */
2290
2290
  setting: PermissionSetting;
2291
2291
  /**
2292
- * Requesting origin the permission applies to, all origins if not specified.
2292
+ * Embedding origin the permission applies to, all origins if not specified.
2293
2293
  */
2294
2294
  origin?: string;
2295
2295
  /**
2296
- * Embedding origin the permission applies to. It is ignored unless the requesting origin is
2297
- * present and valid. If the requesting origin is provided but the embedding origin isn't, the
2298
- * requesting origin is used as the embedding origin.
2296
+ * Embedded origin the permission applies to. It is ignored unless the embedding origin is
2297
+ * present and valid. If the embedding origin is provided but the embedded origin isn't, the
2298
+ * embedding origin is used as the embedded origin.
2299
2299
  */
2300
- embeddingOrigin?: string;
2300
+ embeddedOrigin?: string;
2301
2301
  /**
2302
2302
  * Context to override. When omitted, default browser context is used.
2303
2303
  */
@@ -11012,8 +11012,8 @@ export namespace Network {
11012
11012
  export interface NetworkConditions {
11013
11013
  /**
11014
11014
  * Only matching requests will be affected by these conditions. Patterns use the URLPattern constructor string
11015
- * syntax (https://urlpattern.spec.whatwg.org/). If the pattern is empty, all requests are matched (including p2p
11016
- * connections).
11015
+ * syntax (https://urlpattern.spec.whatwg.org/) and must be absolute. If the pattern is empty, all requests are
11016
+ * matched (including p2p connections).
11017
11017
  */
11018
11018
  urlPattern: string;
11019
11019
  /**
@@ -11608,7 +11608,7 @@ export namespace Network {
11608
11608
  export interface SetBlockedURLsRequest {
11609
11609
  /**
11610
11610
  * URL patterns to block. Patterns use the URLPattern constructor string syntax
11611
- * (https://urlpattern.spec.whatwg.org/). Example: `*://*:*\/*.css`.
11611
+ * (https://urlpattern.spec.whatwg.org/) and must be absolute. Example: `*://*:*\/*.css`.
11612
11612
  */
11613
11613
  urlPatterns?: string[];
11614
11614
  /**
@@ -16126,6 +16126,7 @@ export namespace Preload {
16126
16126
  export const enum SpeculationAction {
16127
16127
  Prefetch = 'Prefetch',
16128
16128
  Prerender = 'Prerender',
16129
+ PrerenderUntilScript = 'PrerenderUntilScript',
16129
16130
  }
16130
16131
 
16131
16132
  /**