chrome-devtools-frontend 1.0.1568190 → 1.0.1569477

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 (46) hide show
  1. package/front_end/Images/src/grid-direction.svg +6 -0
  2. package/front_end/core/common/ParsedURL.ts +3 -0
  3. package/front_end/core/host/AidaClient.ts +1 -0
  4. package/front_end/core/root/Runtime.ts +4 -8
  5. package/front_end/entrypoints/main/MainImpl.ts +17 -20
  6. package/front_end/generated/InspectorBackendCommands.ts +6 -6
  7. package/front_end/generated/SupportedCSSProperties.js +14 -14
  8. package/front_end/generated/protocol.ts +0 -18
  9. package/front_end/models/ai_assistance/agents/PatchAgent.ts +4 -1
  10. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +12 -0
  11. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +12 -2
  12. package/front_end/models/ai_assistance/agents/StylingAgent.ts +4 -1
  13. package/front_end/models/ai_assistance/injected.ts +7 -22
  14. package/front_end/models/javascript_metadata/NativeFunctions.js +12 -0
  15. package/front_end/models/stack_trace/StackTraceImpl.ts +12 -2
  16. package/front_end/models/stack_trace/StackTraceModel.ts +9 -1
  17. package/front_end/models/trace/Styles.ts +11 -8
  18. package/front_end/models/trace/handlers/PageLoadMetricsHandler.ts +3 -2
  19. package/front_end/models/trace/types/TraceEvents.ts +19 -10
  20. package/front_end/panels/application/preloading/PreloadingView.ts +1 -3
  21. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +13 -28
  22. package/front_end/panels/common/AiCodeCompletionTeaser.ts +58 -15
  23. package/front_end/panels/common/AiCodeGenerationTeaser.ts +1 -1
  24. package/front_end/panels/elements/ElementsPanel.ts +6 -3
  25. package/front_end/panels/elements/ElementsSidebarPane.ts +7 -28
  26. package/front_end/panels/elements/MetricsSidebarPane.ts +208 -216
  27. package/front_end/panels/elements/StylesSidebarPane.ts +6 -6
  28. package/front_end/panels/elements/components/CSSPropertyIconResolver.ts +57 -4
  29. package/front_end/panels/elements/components/StylePropertyEditor.ts +93 -1
  30. package/front_end/panels/elements/metricsSidebarPane.css +3 -11
  31. package/front_end/panels/settings/SettingsScreen.ts +8 -38
  32. package/front_end/panels/settings/settingsScreen.css +0 -4
  33. package/front_end/panels/sources/BreakpointEditDialog.ts +203 -138
  34. package/front_end/panels/sources/DebuggerPlugin.ts +15 -7
  35. package/front_end/panels/timeline/TimelineUIUtils.ts +9 -3
  36. package/front_end/panels/timeline/TimingsTrackAppender.ts +1 -0
  37. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +3 -1
  38. package/front_end/panels/timeline/timelineFlameChartView.css +1 -0
  39. package/front_end/third_party/chromium/README.chromium +1 -1
  40. package/front_end/ui/components/text_editor/AiCodeCompletionProvider.ts +23 -1
  41. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +16 -4
  42. package/front_end/ui/kit/link/Link.ts +14 -8
  43. package/front_end/ui/kit/link/link.css +1 -1
  44. package/front_end/ui/visual_logging/KnownContextValues.ts +4 -0
  45. package/mcp/mcp.ts +1 -0
  46. package/package.json +1 -1
@@ -0,0 +1,6 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11 9V3L17 3V9H11Z" fill="black"/>
3
+ <path d="M3 9L3 3L9 3V9H3Z" fill="black"/>
4
+ <path d="M3 17L3 11H9V17H3Z" fill="black"/>
5
+ <path d="M15.1893 13.2803H10V14.7803H15.1894L13.4697 16.5L14.5303 17.5607L18.0607 14.0304L14.5303 10.5L13.4697 11.5607L15.1893 13.2803Z" fill="black"/>
6
+ </svg>
@@ -320,6 +320,9 @@ export class ParsedURL {
320
320
  }
321
321
 
322
322
  static extractName(url: string): string {
323
+ if (url.endsWith('/')) {
324
+ url = url.slice(0, -1);
325
+ }
323
326
  let index = url.lastIndexOf('/');
324
327
  const pathAndQuery = index !== -1 ? url.substr(index + 1) : url;
325
328
  index = pathAndQuery.indexOf('?');
@@ -79,6 +79,7 @@ export interface FunctionObjectParam<T extends string|number|symbol = string> ex
79
79
  type: ParametersTypes.OBJECT;
80
80
  // TODO: this can be also be ObjectParams
81
81
  properties: Record<T, FunctionPrimitiveParams|FunctionArrayParam>;
82
+ required: string[];
82
83
  }
83
84
 
84
85
  /**
@@ -167,15 +167,13 @@ export class ExperimentsSupport {
167
167
  return result;
168
168
  }
169
169
 
170
- register(
171
- experimentName: string, experimentTitle: string, unstable?: boolean, docLink?: string,
172
- feedbackLink?: string): void {
170
+ register(experimentName: string, experimentTitle: string, docLink?: string, feedbackLink?: string): void {
173
171
  if (this.#experimentNames.has(experimentName)) {
174
172
  throw new Error(`Duplicate registration of experiment '${experimentName}'`);
175
173
  }
176
174
  this.#experimentNames.add(experimentName);
177
175
  this.#experiments.push(new Experiment(
178
- this, experimentName, experimentTitle, Boolean(unstable),
176
+ this, experimentName, experimentTitle,
179
177
  docLink as Platform.DevToolsPath.UrlString ?? Platform.DevToolsPath.EmptyUrlString,
180
178
  feedbackLink as Platform.DevToolsPath.UrlString ?? Platform.DevToolsPath.EmptyUrlString));
181
179
  }
@@ -299,16 +297,14 @@ class ExperimentStorage {
299
297
  export class Experiment {
300
298
  name: string;
301
299
  title: string;
302
- unstable: boolean;
303
300
  docLink?: Platform.DevToolsPath.UrlString;
304
301
  readonly feedbackLink?: Platform.DevToolsPath.UrlString;
305
302
  readonly #experiments: ExperimentsSupport;
306
303
  constructor(
307
- experiments: ExperimentsSupport, name: string, title: string, unstable: boolean,
308
- docLink: Platform.DevToolsPath.UrlString, feedbackLink: Platform.DevToolsPath.UrlString) {
304
+ experiments: ExperimentsSupport, name: string, title: string, docLink: Platform.DevToolsPath.UrlString,
305
+ feedbackLink: Platform.DevToolsPath.UrlString) {
309
306
  this.name = name;
310
307
  this.title = title;
311
- this.unstable = unstable;
312
308
  this.docLink = docLink;
313
309
  this.feedbackLink = feedbackLink;
314
310
  this.#experiments = experiments;
@@ -325,57 +325,53 @@ export class MainImpl {
325
325
 
326
326
  #initializeExperiments(): void {
327
327
  Root.Runtime.experiments.register('capture-node-creation-stacks', 'Capture node creation stacks');
328
- Root.Runtime.experiments.register('live-heap-profile', 'Live heap profile', true);
328
+ Root.Runtime.experiments.register('live-heap-profile', 'Live heap profile');
329
329
  Root.Runtime.experiments.register(
330
- 'protocol-monitor', 'Protocol Monitor', undefined,
330
+ 'protocol-monitor', 'Protocol Monitor',
331
331
  'https://developer.chrome.com/blog/new-in-devtools-92/#protocol-monitor');
332
- Root.Runtime.experiments.register('sampling-heap-profiler-timeline', 'Sampling heap profiler timeline', true);
332
+ Root.Runtime.experiments.register('sampling-heap-profiler-timeline', 'Sampling heap profiler timeline');
333
333
  Root.Runtime.experiments.register(
334
334
  'show-option-tp-expose-internals-in-heap-snapshot', 'Show option to expose internals in heap snapshots');
335
335
 
336
336
  // Timeline
337
+ Root.Runtime.experiments.register('timeline-invalidation-tracking', 'Performance panel: invalidation tracking');
338
+ Root.Runtime.experiments.register('timeline-show-all-events', 'Performance panel: show all events');
339
+ Root.Runtime.experiments.register('timeline-v8-runtime-call-stats', 'Performance panel: V8 runtime call stats');
337
340
  Root.Runtime.experiments.register(
338
- 'timeline-invalidation-tracking', 'Performance panel: invalidation tracking', true);
339
- Root.Runtime.experiments.register('timeline-show-all-events', 'Performance panel: show all events', true);
340
- Root.Runtime.experiments.register(
341
- 'timeline-v8-runtime-call-stats', 'Performance panel: V8 runtime call stats', true);
342
- Root.Runtime.experiments.register(
343
- Root.Runtime.ExperimentName.TIMELINE_DEBUG_MODE,
344
- 'Performance panel: Enable debug mode (trace event details, etc)', true);
341
+ Root.Runtime.ExperimentName.TIMELINE_DEBUG_MODE, 'Performance panel: debug mode (trace event details, etc)');
345
342
 
346
343
  // Debugging
347
- Root.Runtime.experiments.register('instrumentation-breakpoints', 'Enable instrumentation breakpoints', true);
348
- Root.Runtime.experiments.register('use-source-map-scopes', 'Use scope information from source maps', true);
344
+ Root.Runtime.experiments.register('instrumentation-breakpoints', 'Instrumentation breakpoints');
345
+ Root.Runtime.experiments.register('use-source-map-scopes', 'Use scope information from source maps');
349
346
 
350
347
  // Advanced Perceptual Contrast Algorithm.
351
348
  Root.Runtime.experiments.register(
352
- 'apca',
353
- 'Enable new Advanced Perceptual Contrast Algorithm (APCA) replacing previous contrast ratio and AA/AAA guidelines',
354
- undefined, 'https://developer.chrome.com/blog/new-in-devtools-89/#apca');
349
+ 'apca', 'Advanced Perceptual Contrast Algorithm (APCA) replacing previous contrast ratio and AA/AAA guidelines',
350
+ 'https://developer.chrome.com/blog/new-in-devtools-89/#apca');
355
351
 
356
352
  // Full Accessibility Tree
357
353
  Root.Runtime.experiments.register(
358
- 'full-accessibility-tree', 'Enable full accessibility tree view in the Elements panel', undefined,
354
+ 'full-accessibility-tree', 'Full accessibility tree view in the Elements panel',
359
355
  'https://developer.chrome.com/blog/new-in-devtools-90/#accessibility-tree',
360
356
  'https://g.co/devtools/a11y-tree-feedback');
361
357
 
362
358
  // Font Editor
363
359
  Root.Runtime.experiments.register(
364
- 'font-editor', 'Enable new font editor within the Styles tab', undefined,
360
+ 'font-editor', 'New font editor in the Styles tab',
365
361
  'https://developer.chrome.com/blog/new-in-devtools-89/#font');
366
362
 
367
363
  // Contrast issues reported via the Issues panel.
368
364
  Root.Runtime.experiments.register(
369
- 'contrast-issues', 'Enable automatic contrast issue reporting via the Issues panel', undefined,
365
+ 'contrast-issues', 'Automatic contrast issue reporting via the Issues panel',
370
366
  'https://developer.chrome.com/blog/new-in-devtools-90/#low-contrast');
371
367
 
372
368
  // New cookie features.
373
- Root.Runtime.experiments.register('experimental-cookie-features', 'Enable experimental cookie features');
369
+ Root.Runtime.experiments.register('experimental-cookie-features', 'Experimental cookie features');
374
370
 
375
371
  // Change grouping of sources panel to use Authored/Deployed trees
376
372
  Root.Runtime.experiments.register(
377
373
  Root.Runtime.ExperimentName.AUTHORED_DEPLOYED_GROUPING, 'Group sources into authored and deployed trees',
378
- undefined, 'https://goo.gle/authored-deployed', 'https://goo.gle/authored-deployed-feedback');
374
+ 'https://goo.gle/authored-deployed', 'https://goo.gle/authored-deployed-feedback');
379
375
 
380
376
  // Hide third party code (as determined by ignore lists or source maps)
381
377
  Root.Runtime.experiments.register(
@@ -413,6 +409,7 @@ export class MainImpl {
413
409
  }
414
410
  }
415
411
  }
412
+
416
413
  async #createAppUI(): Promise<void> {
417
414
  MainImpl.time('Main._createAppUI');
418
415
 
@@ -66,7 +66,7 @@ inspectorBackend.registerType("Animation.KeyframesRule", [{"name": "name", "type
66
66
  inspectorBackend.registerType("Animation.KeyframeStyle", [{"name": "offset", "type": "string", "optional": false, "description": "Keyframe's time offset.", "typeRef": null}, {"name": "easing", "type": "string", "optional": false, "description": "`AnimationEffect`'s timing function.", "typeRef": null}]);
67
67
 
68
68
  // Audits.
69
- inspectorBackend.registerEnum("Audits.CookieExclusionReason", {ExcludeSameSiteUnspecifiedTreatedAsLax: "ExcludeSameSiteUnspecifiedTreatedAsLax", ExcludeSameSiteNoneInsecure: "ExcludeSameSiteNoneInsecure", ExcludeSameSiteLax: "ExcludeSameSiteLax", ExcludeSameSiteStrict: "ExcludeSameSiteStrict", ExcludeInvalidSameParty: "ExcludeInvalidSameParty", ExcludeSamePartyCrossPartyContext: "ExcludeSamePartyCrossPartyContext", ExcludeDomainNonASCII: "ExcludeDomainNonASCII", ExcludeThirdPartyCookieBlockedInFirstPartySet: "ExcludeThirdPartyCookieBlockedInFirstPartySet", ExcludeThirdPartyPhaseout: "ExcludeThirdPartyPhaseout", ExcludePortMismatch: "ExcludePortMismatch", ExcludeSchemeMismatch: "ExcludeSchemeMismatch"});
69
+ inspectorBackend.registerEnum("Audits.CookieExclusionReason", {ExcludeSameSiteUnspecifiedTreatedAsLax: "ExcludeSameSiteUnspecifiedTreatedAsLax", ExcludeSameSiteNoneInsecure: "ExcludeSameSiteNoneInsecure", ExcludeSameSiteLax: "ExcludeSameSiteLax", ExcludeSameSiteStrict: "ExcludeSameSiteStrict", ExcludeDomainNonASCII: "ExcludeDomainNonASCII", ExcludeThirdPartyCookieBlockedInFirstPartySet: "ExcludeThirdPartyCookieBlockedInFirstPartySet", ExcludeThirdPartyPhaseout: "ExcludeThirdPartyPhaseout", ExcludePortMismatch: "ExcludePortMismatch", ExcludeSchemeMismatch: "ExcludeSchemeMismatch"});
70
70
  inspectorBackend.registerEnum("Audits.CookieWarningReason", {WarnSameSiteUnspecifiedCrossSiteContext: "WarnSameSiteUnspecifiedCrossSiteContext", WarnSameSiteNoneInsecure: "WarnSameSiteNoneInsecure", WarnSameSiteUnspecifiedLaxAllowUnsafe: "WarnSameSiteUnspecifiedLaxAllowUnsafe", WarnSameSiteStrictLaxDowngradeStrict: "WarnSameSiteStrictLaxDowngradeStrict", WarnSameSiteStrictCrossDowngradeStrict: "WarnSameSiteStrictCrossDowngradeStrict", WarnSameSiteStrictCrossDowngradeLax: "WarnSameSiteStrictCrossDowngradeLax", WarnSameSiteLaxCrossDowngradeStrict: "WarnSameSiteLaxCrossDowngradeStrict", WarnSameSiteLaxCrossDowngradeLax: "WarnSameSiteLaxCrossDowngradeLax", WarnAttributeValueExceedsMaxSize: "WarnAttributeValueExceedsMaxSize", WarnDomainNonASCII: "WarnDomainNonASCII", WarnThirdPartyPhaseout: "WarnThirdPartyPhaseout", WarnCrossSiteRedirectDowngradeChangesInclusion: "WarnCrossSiteRedirectDowngradeChangesInclusion", WarnDeprecationTrialMetadata: "WarnDeprecationTrialMetadata", WarnThirdPartyCookieHeuristic: "WarnThirdPartyCookieHeuristic"});
71
71
  inspectorBackend.registerEnum("Audits.CookieOperation", {SetCookie: "SetCookie", ReadCookie: "ReadCookie"});
72
72
  inspectorBackend.registerEnum("Audits.InsightType", {GitHubResource: "GitHubResource", GracePeriod: "GracePeriod", Heuristics: "Heuristics"});
@@ -773,8 +773,8 @@ inspectorBackend.registerEnum("Network.TrustTokenOperationType", {Issuance: "Iss
773
773
  inspectorBackend.registerEnum("Network.AlternateProtocolUsage", {AlternativeJobWonWithoutRace: "alternativeJobWonWithoutRace", AlternativeJobWonRace: "alternativeJobWonRace", MainJobWonRace: "mainJobWonRace", MappingMissing: "mappingMissing", Broken: "broken", DnsAlpnH3JobWonWithoutRace: "dnsAlpnH3JobWonWithoutRace", DnsAlpnH3JobWonRace: "dnsAlpnH3JobWonRace", UnspecifiedReason: "unspecifiedReason"});
774
774
  inspectorBackend.registerEnum("Network.ServiceWorkerRouterSource", {Network: "network", Cache: "cache", FetchEvent: "fetch-event", RaceNetworkAndFetchHandler: "race-network-and-fetch-handler", RaceNetworkAndCache: "race-network-and-cache"});
775
775
  inspectorBackend.registerEnum("Network.InitiatorType", {Parser: "parser", Script: "script", Preload: "preload", SignedExchange: "SignedExchange", Preflight: "preflight", FedCM: "FedCM", Other: "other"});
776
- 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", SamePartyFromCrossPartyContext: "SamePartyFromCrossPartyContext", SamePartyConflictsWithOtherAttributes: "SamePartyConflictsWithOtherAttributes", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", DisallowedCharacter: "DisallowedCharacter", NoCookieContent: "NoCookieContent"});
777
- 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", SamePartyFromCrossPartyContext: "SamePartyFromCrossPartyContext", NameValuePairExceedsMaxSize: "NameValuePairExceedsMaxSize", PortMismatch: "PortMismatch", SchemeMismatch: "SchemeMismatch", AnonymousContext: "AnonymousContext"});
776
+ 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"});
777
+ 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"});
778
778
  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"});
779
779
  inspectorBackend.registerEnum("Network.AuthChallengeSource", {Server: "Server", Proxy: "Proxy"});
780
780
  inspectorBackend.registerEnum("Network.AuthChallengeResponseResponse", {Default: "Default", CancelAuth: "CancelAuth", ProvideCredentials: "ProvideCredentials"});
@@ -865,7 +865,7 @@ inspectorBackend.registerCommand("Network.searchInResponseBody", [{"name": "requ
865
865
  inspectorBackend.registerCommand("Network.setBlockedURLs", [{"name": "urlPatterns", "type": "array", "optional": true, "description": "Patterns to match in the order in which they are given. These patterns also take precedence over any wildcard patterns defined in `urls`.", "typeRef": "Network.BlockPattern"}, {"name": "urls", "type": "array", "optional": true, "description": "URL patterns to block. Wildcards ('*') are allowed.", "typeRef": "string"}], [], "Blocks URLs from loading.");
866
866
  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.");
867
867
  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.");
868
- 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.");
868
+ 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": "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.");
869
869
  inspectorBackend.registerCommand("Network.setCookies", [{"name": "cookies", "type": "array", "optional": false, "description": "Cookies to be set.", "typeRef": "Network.CookieParam"}], [], "Sets given cookies.");
870
870
  inspectorBackend.registerCommand("Network.setExtraHTTPHeaders", [{"name": "headers", "type": "object", "optional": false, "description": "Map with extra HTTP headers.", "typeRef": "Network.Headers"}], [], "Specifies whether to always send extra HTTP headers with the requests from this page.");
871
871
  inspectorBackend.registerCommand("Network.setAttachDebugStack", [{"name": "enabled", "type": "boolean", "optional": false, "description": "Whether to attach a page script stack for debugging purpose.", "typeRef": null}], [], "Specifies whether to attach a page script stack id in requests");
@@ -893,11 +893,11 @@ inspectorBackend.registerType("Network.WebSocketFrame", [{"name": "opcode", "typ
893
893
  inspectorBackend.registerType("Network.CachedResource", [{"name": "url", "type": "string", "optional": false, "description": "Resource URL. This is the url of the original network request.", "typeRef": null}, {"name": "type", "type": "string", "optional": false, "description": "Type of this resource.", "typeRef": "Network.ResourceType"}, {"name": "response", "type": "object", "optional": true, "description": "Cached response data.", "typeRef": "Network.Response"}, {"name": "bodySize", "type": "number", "optional": false, "description": "Cached response body size.", "typeRef": null}]);
894
894
  inspectorBackend.registerType("Network.Initiator", [{"name": "type", "type": "string", "optional": false, "description": "Type of this initiator.", "typeRef": null}, {"name": "stack", "type": "object", "optional": true, "description": "Initiator JavaScript stack trace, set for Script only. Requires the Debugger domain to be enabled.", "typeRef": "Runtime.StackTrace"}, {"name": "url", "type": "string", "optional": true, "description": "Initiator URL, set for Parser type or for Script type (when script is importing module) or for SignedExchange type.", "typeRef": null}, {"name": "lineNumber", "type": "number", "optional": true, "description": "Initiator line number, set for Parser type or for Script type (when script is importing module) (0-based).", "typeRef": null}, {"name": "columnNumber", "type": "number", "optional": true, "description": "Initiator column number, set for Parser type or for Script type (when script is importing module) (0-based).", "typeRef": null}, {"name": "requestId", "type": "string", "optional": true, "description": "Set if another request triggered this request (e.g. preflight).", "typeRef": "Network.RequestId"}]);
895
895
  inspectorBackend.registerType("Network.CookiePartitionKey", [{"name": "topLevelSite", "type": "string", "optional": false, "description": "The site of the top-level URL the browser was visiting at the start of the request to the endpoint that set the cookie.", "typeRef": null}, {"name": "hasCrossSiteAncestor", "type": "boolean", "optional": false, "description": "Indicates if the cookie has any ancestors that are cross-site to the topLevelSite.", "typeRef": null}]);
896
- inspectorBackend.registerType("Network.Cookie", [{"name": "name", "type": "string", "optional": false, "description": "Cookie name.", "typeRef": null}, {"name": "value", "type": "string", "optional": false, "description": "Cookie value.", "typeRef": null}, {"name": "domain", "type": "string", "optional": false, "description": "Cookie domain.", "typeRef": null}, {"name": "path", "type": "string", "optional": false, "description": "Cookie path.", "typeRef": null}, {"name": "expires", "type": "number", "optional": false, "description": "Cookie expiration date as the number of seconds since the UNIX epoch. The value is set to -1 if the expiry date is not set. The value can be null for values that cannot be represented in JSON (\u00b1Inf).", "typeRef": null}, {"name": "size", "type": "number", "optional": false, "description": "Cookie size.", "typeRef": null}, {"name": "httpOnly", "type": "boolean", "optional": false, "description": "True if cookie is http-only.", "typeRef": null}, {"name": "secure", "type": "boolean", "optional": false, "description": "True if cookie is secure.", "typeRef": null}, {"name": "session", "type": "boolean", "optional": false, "description": "True in case of session cookie.", "typeRef": null}, {"name": "sameSite", "type": "string", "optional": true, "description": "Cookie SameSite type.", "typeRef": "Network.CookieSameSite"}, {"name": "priority", "type": "string", "optional": false, "description": "Cookie Priority", "typeRef": "Network.CookiePriority"}, {"name": "sameParty", "type": "boolean", "optional": false, "description": "True if cookie is SameParty.", "typeRef": null}, {"name": "sourceScheme", "type": "string", "optional": false, "description": "Cookie source scheme type.", "typeRef": "Network.CookieSourceScheme"}, {"name": "sourcePort", "type": "number", "optional": false, "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.", "typeRef": "Network.CookiePartitionKey"}, {"name": "partitionKeyOpaque", "type": "boolean", "optional": true, "description": "True if cookie partition key is opaque.", "typeRef": null}]);
896
+ inspectorBackend.registerType("Network.Cookie", [{"name": "name", "type": "string", "optional": false, "description": "Cookie name.", "typeRef": null}, {"name": "value", "type": "string", "optional": false, "description": "Cookie value.", "typeRef": null}, {"name": "domain", "type": "string", "optional": false, "description": "Cookie domain.", "typeRef": null}, {"name": "path", "type": "string", "optional": false, "description": "Cookie path.", "typeRef": null}, {"name": "expires", "type": "number", "optional": false, "description": "Cookie expiration date as the number of seconds since the UNIX epoch. The value is set to -1 if the expiry date is not set. The value can be null for values that cannot be represented in JSON (\u00b1Inf).", "typeRef": null}, {"name": "size", "type": "number", "optional": false, "description": "Cookie size.", "typeRef": null}, {"name": "httpOnly", "type": "boolean", "optional": false, "description": "True if cookie is http-only.", "typeRef": null}, {"name": "secure", "type": "boolean", "optional": false, "description": "True if cookie is secure.", "typeRef": null}, {"name": "session", "type": "boolean", "optional": false, "description": "True in case of session cookie.", "typeRef": null}, {"name": "sameSite", "type": "string", "optional": true, "description": "Cookie SameSite type.", "typeRef": "Network.CookieSameSite"}, {"name": "priority", "type": "string", "optional": false, "description": "Cookie Priority", "typeRef": "Network.CookiePriority"}, {"name": "sourceScheme", "type": "string", "optional": false, "description": "Cookie source scheme type.", "typeRef": "Network.CookieSourceScheme"}, {"name": "sourcePort", "type": "number", "optional": false, "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.", "typeRef": "Network.CookiePartitionKey"}, {"name": "partitionKeyOpaque", "type": "boolean", "optional": true, "description": "True if cookie partition key is opaque.", "typeRef": null}]);
897
897
  inspectorBackend.registerType("Network.BlockedSetCookieWithReason", [{"name": "blockedReasons", "type": "array", "optional": false, "description": "The reason(s) this cookie was blocked.", "typeRef": "Network.SetCookieBlockedReason"}, {"name": "cookieLine", "type": "string", "optional": false, "description": "The string representing this individual cookie as it would appear in the header. This is not the entire \\\"cookie\\\" or \\\"set-cookie\\\" header which could have multiple cookies.", "typeRef": null}, {"name": "cookie", "type": "object", "optional": true, "description": "The cookie object which represents the cookie which was not stored. It is optional because sometimes complete cookie information is not available, such as in the case of parsing errors.", "typeRef": "Network.Cookie"}]);
898
898
  inspectorBackend.registerType("Network.ExemptedSetCookieWithReason", [{"name": "exemptionReason", "type": "string", "optional": false, "description": "The reason the cookie was exempted.", "typeRef": "Network.CookieExemptionReason"}, {"name": "cookieLine", "type": "string", "optional": false, "description": "The string representing this individual cookie as it would appear in the header.", "typeRef": null}, {"name": "cookie", "type": "object", "optional": false, "description": "The cookie object representing the cookie.", "typeRef": "Network.Cookie"}]);
899
899
  inspectorBackend.registerType("Network.AssociatedCookie", [{"name": "cookie", "type": "object", "optional": false, "description": "The cookie object representing the cookie which was not sent.", "typeRef": "Network.Cookie"}, {"name": "blockedReasons", "type": "array", "optional": false, "description": "The reason(s) the cookie was blocked. If empty means the cookie is included.", "typeRef": "Network.CookieBlockedReason"}, {"name": "exemptionReason", "type": "string", "optional": true, "description": "The reason the cookie should have been blocked by 3PCD but is exempted. A cookie could only have at most one exemption reason.", "typeRef": "Network.CookieExemptionReason"}]);
900
- inspectorBackend.registerType("Network.CookieParam", [{"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.", "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"}]);
900
+ inspectorBackend.registerType("Network.CookieParam", [{"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.", "typeRef": "Network.CookiePriority"}, {"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"}]);
901
901
  inspectorBackend.registerType("Network.AuthChallenge", [{"name": "source", "type": "string", "optional": true, "description": "Source of the authentication challenge.", "typeRef": null}, {"name": "origin", "type": "string", "optional": false, "description": "Origin of the challenger.", "typeRef": null}, {"name": "scheme", "type": "string", "optional": false, "description": "The authentication scheme used, such as basic or digest", "typeRef": null}, {"name": "realm", "type": "string", "optional": false, "description": "The realm of the challenge. May be empty.", "typeRef": null}]);
902
902
  inspectorBackend.registerType("Network.AuthChallengeResponse", [{"name": "response", "type": "string", "optional": false, "description": "The decision on what to do in response to the authorization challenge. Default means deferring to the default behavior of the net stack, which will likely either the Cancel authentication or display a popup dialog box.", "typeRef": null}, {"name": "username", "type": "string", "optional": true, "description": "The username to provide, possibly empty. Should only be set if response is ProvideCredentials.", "typeRef": null}, {"name": "password", "type": "string", "optional": true, "description": "The password to provide, possibly empty. Should only be set if response is ProvideCredentials.", "typeRef": null}]);
903
903
  inspectorBackend.registerType("Network.RequestPattern", [{"name": "urlPattern", "type": "string", "optional": true, "description": "Wildcards (`'*'` -> zero or more, `'?'` -> exactly one) are allowed. Escape character is backslash. Omitting is equivalent to `\\\"*\\\"`.", "typeRef": null}, {"name": "resourceType", "type": "string", "optional": true, "description": "If set, only requests for matching resource types will be intercepted.", "typeRef": "Network.ResourceType"}, {"name": "interceptionStage", "type": "string", "optional": true, "description": "Stage at which to begin intercepting requests. Default is Request.", "typeRef": "Network.InterceptionStage"}]);
@@ -474,6 +474,7 @@ export const generatedProperties = [
474
474
  "float",
475
475
  "flood-color",
476
476
  "flood-opacity",
477
+ "flow-tolerance",
477
478
  "font-display",
478
479
  "font-family",
479
480
  "font-feature-settings",
@@ -532,7 +533,6 @@ export const generatedProperties = [
532
533
  "interest-delay-start",
533
534
  "interpolate-size",
534
535
  "isolation",
535
- "item-tolerance",
536
536
  "justify-content",
537
537
  "justify-items",
538
538
  "justify-self",
@@ -2308,6 +2308,13 @@ export const generatedProperties = [
2308
2308
  {
2309
2309
  "name": "flood-opacity"
2310
2310
  },
2311
+ {
2312
+ "keywords": [
2313
+ "normal",
2314
+ "infinite"
2315
+ ],
2316
+ "name": "flow-tolerance"
2317
+ },
2311
2318
  {
2312
2319
  "inherited": true,
2313
2320
  "longhands": [
@@ -2881,13 +2888,6 @@ export const generatedProperties = [
2881
2888
  ],
2882
2889
  "name": "isolation"
2883
2890
  },
2884
- {
2885
- "keywords": [
2886
- "normal",
2887
- "infinite"
2888
- ],
2889
- "name": "item-tolerance"
2890
- },
2891
2891
  {
2892
2892
  "name": "justify-content"
2893
2893
  },
@@ -5835,6 +5835,12 @@ export const generatedPropertyValues = {
5835
5835
  "currentcolor"
5836
5836
  ]
5837
5837
  },
5838
+ "flow-tolerance": {
5839
+ "values": [
5840
+ "normal",
5841
+ "infinite"
5842
+ ]
5843
+ },
5838
5844
  "font-feature-settings": {
5839
5845
  "values": [
5840
5846
  "normal"
@@ -6156,12 +6162,6 @@ export const generatedPropertyValues = {
6156
6162
  "isolate"
6157
6163
  ]
6158
6164
  },
6159
- "item-tolerance": {
6160
- "values": [
6161
- "normal",
6162
- "infinite"
6163
- ]
6164
- },
6165
6165
  "left": {
6166
6166
  "values": [
6167
6167
  "auto"
@@ -771,8 +771,6 @@ export namespace Audits {
771
771
  ExcludeSameSiteNoneInsecure = 'ExcludeSameSiteNoneInsecure',
772
772
  ExcludeSameSiteLax = 'ExcludeSameSiteLax',
773
773
  ExcludeSameSiteStrict = 'ExcludeSameSiteStrict',
774
- ExcludeInvalidSameParty = 'ExcludeInvalidSameParty',
775
- ExcludeSamePartyCrossPartyContext = 'ExcludeSamePartyCrossPartyContext',
776
774
  ExcludeDomainNonASCII = 'ExcludeDomainNonASCII',
777
775
  ExcludeThirdPartyCookieBlockedInFirstPartySet = 'ExcludeThirdPartyCookieBlockedInFirstPartySet',
778
776
  ExcludeThirdPartyPhaseout = 'ExcludeThirdPartyPhaseout',
@@ -10673,11 +10671,6 @@ export namespace Network {
10673
10671
  * Cookie Priority
10674
10672
  */
10675
10673
  priority: CookiePriority;
10676
- /**
10677
- * True if cookie is SameParty.
10678
- * @deprecated
10679
- */
10680
- sameParty: boolean;
10681
10674
  /**
10682
10675
  * Cookie source scheme type.
10683
10676
  */
@@ -10719,8 +10712,6 @@ export namespace Network {
10719
10712
  SchemefulSameSiteStrict = 'SchemefulSameSiteStrict',
10720
10713
  SchemefulSameSiteLax = 'SchemefulSameSiteLax',
10721
10714
  SchemefulSameSiteUnspecifiedTreatedAsLax = 'SchemefulSameSiteUnspecifiedTreatedAsLax',
10722
- SamePartyFromCrossPartyContext = 'SamePartyFromCrossPartyContext',
10723
- SamePartyConflictsWithOtherAttributes = 'SamePartyConflictsWithOtherAttributes',
10724
10715
  NameValuePairExceedsMaxSize = 'NameValuePairExceedsMaxSize',
10725
10716
  DisallowedCharacter = 'DisallowedCharacter',
10726
10717
  NoCookieContent = 'NoCookieContent',
@@ -10744,7 +10735,6 @@ export namespace Network {
10744
10735
  SchemefulSameSiteStrict = 'SchemefulSameSiteStrict',
10745
10736
  SchemefulSameSiteLax = 'SchemefulSameSiteLax',
10746
10737
  SchemefulSameSiteUnspecifiedTreatedAsLax = 'SchemefulSameSiteUnspecifiedTreatedAsLax',
10747
- SamePartyFromCrossPartyContext = 'SamePartyFromCrossPartyContext',
10748
10738
  NameValuePairExceedsMaxSize = 'NameValuePairExceedsMaxSize',
10749
10739
  PortMismatch = 'PortMismatch',
10750
10740
  SchemeMismatch = 'SchemeMismatch',
@@ -10873,10 +10863,6 @@ export namespace Network {
10873
10863
  * Cookie Priority.
10874
10864
  */
10875
10865
  priority?: CookiePriority;
10876
- /**
10877
- * True if cookie is SameParty.
10878
- */
10879
- sameParty?: boolean;
10880
10866
  /**
10881
10867
  * Cookie source scheme type.
10882
10868
  */
@@ -12088,10 +12074,6 @@ export namespace Network {
12088
12074
  * Cookie Priority type.
12089
12075
  */
12090
12076
  priority?: CookiePriority;
12091
- /**
12092
- * True if cookie is SameParty.
12093
- */
12094
- sameParty?: boolean;
12095
12077
  /**
12096
12078
  * Cookie source scheme type.
12097
12079
  */
@@ -97,6 +97,7 @@ export class PatchAgent extends AiAgent<Workspace.Workspace.Project> {
97
97
  description: '',
98
98
  nullable: true,
99
99
  properties: {},
100
+ required: [],
100
101
  },
101
102
  handler: async () => {
102
103
  const files = this.#project.getFiles();
@@ -143,9 +144,10 @@ export class PatchAgent extends AiAgent<Workspace.Workspace.Project> {
143
144
  isRegex: {
144
145
  type: Host.AidaClient.ParametersTypes.BOOLEAN,
145
146
  description: 'Whether the query is a regular expression or not',
146
- nullable: true,
147
+ nullable: false,
147
148
  }
148
149
  },
150
+ required: ['query']
149
151
  },
150
152
  handler: async (args, options) => {
151
153
  return {
@@ -182,6 +184,7 @@ export class PatchAgent extends AiAgent<Workspace.Workspace.Project> {
182
184
  }
183
185
  }
184
186
  },
187
+ required: ['files']
185
188
  },
186
189
  handler: async (args, options) => {
187
190
  debugLog('updateFiles', args.files);
@@ -782,6 +782,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
782
782
  nullable: false,
783
783
  }
784
784
  },
785
+ required: ['insightSetId', 'insightName']
785
786
  },
786
787
  displayInfoFromArgs: params => {
787
788
  return {
@@ -829,6 +830,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
829
830
  nullable: false,
830
831
  }
831
832
  },
833
+ required: ['eventKey']
832
834
  },
833
835
  displayInfoFromArgs: params => {
834
836
  return {title: lockedString('Looking at trace event…'), action: `getEventByKey('${params.eventKey}')`};
@@ -886,6 +888,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
886
888
  nullable: false,
887
889
  },
888
890
  },
891
+ required: ['min', 'max']
889
892
  },
890
893
  displayInfoFromArgs: args => {
891
894
  return {
@@ -943,6 +946,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
943
946
  nullable: false,
944
947
  },
945
948
  },
949
+ required: ['min', 'max']
946
950
  },
947
951
  displayInfoFromArgs: args => {
948
952
  return {
@@ -993,6 +997,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
993
997
  nullable: false,
994
998
  },
995
999
  },
1000
+ required: ['eventKey']
996
1001
  },
997
1002
  displayInfoFromArgs: args => {
998
1003
  return {title: lockedString('Looking at call tree…'), action: `getDetailedCallTree('${args.eventKey}')`};
@@ -1046,7 +1051,9 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1046
1051
  description: 'The message the annotation should show to the user.',
1047
1052
  nullable: false,
1048
1053
  },
1054
+
1049
1055
  },
1056
+ required: ['elementId', 'annotationMessage']
1050
1057
  },
1051
1058
  handler: async params => {
1052
1059
  return await this.addElementAnnotation(params.elementId, params.annotationMessage);
@@ -1077,6 +1084,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1077
1084
  nullable: false,
1078
1085
  },
1079
1086
  },
1087
+ required: ['eventKey', 'annotationMessage']
1080
1088
  },
1081
1089
  handler: async params => {
1082
1090
  return await this.addNetworkRequestAnnotation(params.eventKey, params.annotationMessage);
@@ -1108,6 +1116,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1108
1116
  nullable: false,
1109
1117
  },
1110
1118
  },
1119
+ required: ['scriptUrl', 'line', 'column']
1111
1120
  },
1112
1121
  displayInfoFromArgs: args => {
1113
1122
  return {
@@ -1166,6 +1175,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1166
1175
  nullable: false,
1167
1176
  },
1168
1177
  },
1178
+ required: ['url']
1169
1179
  },
1170
1180
  displayInfoFromArgs: args => {
1171
1181
  return {title: lockedString('Looking at resource content…'), action: `getResourceContent('${args.url}')`};
@@ -1220,6 +1230,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1220
1230
  nullable: false,
1221
1231
  }
1222
1232
  },
1233
+ required: ['eventKey']
1223
1234
  },
1224
1235
  displayInfoFromArgs: params => {
1225
1236
  return {title: lockedString('Selecting event…'), action: `selectEventByKey('${params.eventKey}')`};
@@ -1281,6 +1292,7 @@ export class PerformanceAgent extends AiAgent<AgentFocus> {
1281
1292
  nullable: true,
1282
1293
  },
1283
1294
  },
1295
+ required: ['type']
1284
1296
  },
1285
1297
  handler: async params => {
1286
1298
  switch (params.type) {
@@ -86,7 +86,12 @@ Content:
86
86
  "description": "A CSS style property name to retrieve. For example, 'background-color'."
87
87
  }
88
88
  }
89
- }
89
+ },
90
+ "required": [
91
+ "explanation",
92
+ "elements",
93
+ "styleProperties"
94
+ ]
90
95
  }
91
96
  },
92
97
  {
@@ -109,7 +114,12 @@ Content:
109
114
  "type": 1,
110
115
  "description": "Provide a summary of what the code does. For example, \"Checking related element styles\"."
111
116
  }
112
- }
117
+ },
118
+ "required": [
119
+ "code",
120
+ "thought",
121
+ "title"
122
+ ]
113
123
  }
114
124
  }
115
125
  ],
@@ -313,7 +313,8 @@ export class StylingAgent extends AiAgent<SDK.DOMModel.DOMNode> {
313
313
  description: 'A CSS style property name to retrieve. For example, \'background-color\'.'
314
314
  }
315
315
  },
316
- }
316
+ },
317
+ required: ['explanation', 'elements', 'styleProperties']
317
318
  },
318
319
  displayInfoFromArgs: params => {
319
320
  return {
@@ -396,6 +397,7 @@ const data = {
396
397
  description: 'Provide a summary of what the code does. For example, "Checking related element styles".',
397
398
  },
398
399
  },
400
+ required: ['code', 'thought', 'title']
399
401
  },
400
402
  displayInfoFromArgs: params => {
401
403
  return {
@@ -436,6 +438,7 @@ const data = {
436
438
  nullable: false,
437
439
  },
438
440
  },
441
+ required: ['elementId', 'annotationMessage']
439
442
  },
440
443
  handler: async params => {
441
444
  return await this.addElementAnnotation(params.elementId, params.annotationMessage);
@@ -9,10 +9,6 @@
9
9
  * They need remain isolated for importing other function so
10
10
  * bundling them for production does not create issues.
11
11
  */
12
- /* eslint-disable @devtools/no-adopted-style-sheets --
13
- * The scripts in this file aren't executed as part of DevTools front-end,
14
- * but are injected into the page.
15
- **/
16
12
 
17
13
  export const AI_ASSISTANCE_CSS_CLASS_NAME = 'ai-style-change';
18
14
  export const FREESTYLER_WORLD_NAME = 'DevTools AI Assistance';
@@ -100,19 +96,9 @@ export const PAGE_EXPOSED_FUNCTIONS = ['setElementStyles'];
100
96
  /**
101
97
  * Please see fileoverview
102
98
  */
103
- function setupSetElementStyles(prefix: typeof AI_ASSISTANCE_CSS_CLASS_NAME): void {
104
- // Executed in another world
105
- const global = globalThis as unknown as {
106
- freestyler: FreestylerBinding,
107
- setElementStyles: unknown,
108
- };
109
- async function setElementStyles(
110
- el: HTMLElement&{
111
- // eslint-disable-next-line
112
- __freestylerClassName?: `${typeof AI_ASSISTANCE_CSS_CLASS_NAME}-${number}`,
113
- },
114
- styles: Record<string, string>,
115
- ): Promise<void> {
99
+ const setupSetElementStyles = `function setupSetElementStyles(prefix) {
100
+ const global = globalThis;
101
+ async function setElementStyles(el, styles) {
116
102
  let selector = el.tagName.toLowerCase();
117
103
  if (el.id) {
118
104
  selector = '#' + el.id;
@@ -131,7 +117,7 @@ function setupSetElementStyles(prefix: typeof AI_ASSISTANCE_CSS_CLASS_NAME): voi
131
117
 
132
118
  // __freestylerClassName is not exposed to the page due to this being
133
119
  // run in the isolated world.
134
- const className = el.__freestylerClassName ?? `${prefix}-${global.freestyler.id}`;
120
+ const className = el.__freestylerClassName ?? \`\${prefix}-\${global.freestyler.id}\`;
135
121
  el.__freestylerClassName = className;
136
122
  el.classList.add(className);
137
123
 
@@ -140,7 +126,6 @@ function setupSetElementStyles(prefix: typeof AI_ASSISTANCE_CSS_CLASS_NAME): voi
140
126
  // if it's kebab case.
141
127
  el.style.removeProperty(key);
142
128
  // If it's camel case.
143
- // @ts-expect-error this won't throw if wrong
144
129
  el.style[key] = '';
145
130
  }
146
131
 
@@ -168,7 +153,7 @@ function setupSetElementStyles(prefix: typeof AI_ASSISTANCE_CSS_CLASS_NAME): voi
168
153
  continue;
169
154
  }
170
155
 
171
- hasAiStyleChange = rule.selectorText.startsWith(`.${prefix}`);
156
+ hasAiStyleChange = rule.selectorText.startsWith(\`.\${prefix}\`);
172
157
  if (hasAiStyleChange) {
173
158
  stylesheet = sheet;
174
159
  break;
@@ -183,6 +168,6 @@ function setupSetElementStyles(prefix: typeof AI_ASSISTANCE_CSS_CLASS_NAME): voi
183
168
  }
184
169
 
185
170
  global.setElementStyles = setElementStyles;
186
- }
171
+ }`;
187
172
 
188
- export const injectedFunctions = `(${String(setupSetElementStyles)})('${AI_ASSISTANCE_CSS_CLASS_NAME}')`;
173
+ export const injectedFunctions = `(${setupSetElementStyles})('${AI_ASSISTANCE_CSS_CLASS_NAME}')`;