chrome-devtools-frontend 1.0.942529 → 1.0.943017

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 (36) hide show
  1. package/WATCHLISTS +1 -1
  2. package/config/gni/all_devtools_files.gni +0 -5
  3. package/config/gni/devtools_grd_files.gni +0 -4
  4. package/front_end/Tests.js +0 -32
  5. package/front_end/core/i18n/locales/en-US.json +1 -1
  6. package/front_end/core/i18n/locales/en-XL.json +1 -1
  7. package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
  8. package/front_end/core/sdk/ConsoleModel.ts +26 -28
  9. package/front_end/entrypoints/devtools_app/devtools_app.json +1 -3
  10. package/front_end/entrypoints/inspector/inspector.json +1 -3
  11. package/front_end/entrypoints/js_app/js_app.json +1 -3
  12. package/front_end/entrypoints/node_app/node_app.json +1 -3
  13. package/front_end/entrypoints/shell/shell.json +1 -3
  14. package/front_end/entrypoints/worker_app/worker_app.json +1 -3
  15. package/front_end/generated/InspectorBackendCommands.js +18 -0
  16. package/front_end/generated/protocol-mapping.d.ts +31 -1
  17. package/front_end/generated/protocol-proxy-api.d.ts +34 -2
  18. package/front_end/generated/protocol.d.ts +80 -7
  19. package/front_end/panels/application/BackForwardCacheStrings.ts +3 -1
  20. package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -3
  21. package/front_end/panels/lighthouse/module.json +0 -3
  22. package/front_end/panels/profiler/CPUProfileView.ts +10 -3
  23. package/front_end/panels/profiler/profiler-meta.ts +0 -2
  24. package/front_end/panels/screencast/screencast-meta.ts +0 -3
  25. package/front_end/panels/sources/sources-meta.ts +1 -4
  26. package/front_end/panels/timeline/timeline-meta.ts +0 -5
  27. package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -3
  28. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -2
  29. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -2
  30. package/front_end/ui/legacy/textButton.css +5 -4
  31. package/package.json +1 -1
  32. package/front_end/emulated_devices/module.json +0 -4
  33. package/front_end/panels/js_profiler/module.json +0 -5
  34. package/front_end/panels/profiler/module.json +0 -3
  35. package/front_end/panels/screencast/module.json +0 -3
  36. package/front_end/panels/timeline/module.json +0 -5
package/WATCHLISTS CHANGED
@@ -14,7 +14,7 @@
14
14
  'filepath': '.',
15
15
  },
16
16
  'chromedriver': {
17
- 'filepath': 'front_end/emulated_devices/module.json',
17
+ 'filepath': 'front_end/emulated_devices/',
18
18
  },
19
19
  'lighthouse': {
20
20
  'filepath': '[Ll]ighthouse',
@@ -42,14 +42,12 @@ all_devtools_files = [
42
42
  "front_end/legacy_test_runner/elements_test_runner/ElementsTestRunner.js",
43
43
  "front_end/legacy_test_runner/elements_test_runner/SetOuterHTMLTestRunner.js",
44
44
  "front_end/legacy_test_runner/elements_test_runner/StylesUpdateLinksTestRunner.js",
45
- "front_end/emulated_devices/module.json",
46
45
  "front_end/legacy_test_runner/extensions_test_runner/extensions_test_runner.js",
47
46
  "front_end/legacy_test_runner/extensions_test_runner/ExtensionsNetworkTestRunner.js",
48
47
  "front_end/legacy_test_runner/extensions_test_runner/ExtensionsTestRunner.js",
49
48
  "front_end/legacy_test_runner/heap_profiler_test_runner/heap_profiler_test_runner.js",
50
49
  "front_end/entrypoints/inspector/inspector.js",
51
50
  "front_end/entrypoints/inspector/inspector.json",
52
- "front_end/panels/js_profiler/module.json",
53
51
  "front_end/legacy_test_runner/layers_test_runner/layers_test_runner.js",
54
52
  "front_end/panels/layers/module.json",
55
53
  "front_end/entrypoints/ndb_app/ndb_app.json",
@@ -58,7 +56,6 @@ all_devtools_files = [
58
56
  "front_end/legacy_test_runner/performance_test_runner/performance_test_runner.js",
59
57
  "front_end/legacy_test_runner/performance_test_runner/TimelineDataTestRunner.js",
60
58
  "front_end/legacy_test_runner/performance_test_runner/TimelineTestRunner.js",
61
- "front_end/panels/profiler/module.json",
62
59
  "front_end/models/issues_manager/descriptions/arAttributionEventSourceTriggerDataTooLarge.md",
63
60
  "front_end/models/issues_manager/descriptions/arAttributionSourceUntrustworthyFrameOrigin.md",
64
61
  "front_end/models/issues_manager/descriptions/arAttributionSourceUntrustworthyOrigin.md",
@@ -116,7 +113,6 @@ all_devtools_files = [
116
113
  "front_end/models/issues_manager/descriptions/TwaDigitalAssetLinksFailed.md",
117
114
  "front_end/models/issues_manager/descriptions/TwaHttpError.md",
118
115
  "front_end/models/issues_manager/descriptions/TwaPageUnavailableOffline.md",
119
- "front_end/panels/screencast/module.json",
120
116
  "front_end/legacy_test_runner/sdk_test_runner/sdk_test_runner.js",
121
117
  "front_end/legacy_test_runner/security_test_runner/security_test_runner.js",
122
118
  "front_end/entrypoints/shell/shell.json",
@@ -140,7 +136,6 @@ all_devtools_files = [
140
136
  "front_end/ui/legacy/components/text_editor/module.json",
141
137
  "front_end/third_party/lighthouse/report-assets/report.js",
142
138
  "front_end/third_party/lighthouse/report-assets/standalone-template.html",
143
- "front_end/panels/timeline/module.json",
144
139
  ]
145
140
 
146
141
  lighthouse_locale_files = [
@@ -162,7 +162,6 @@ grd_files_release_sources = [
162
162
  "front_end/device_mode_emulation_frame.html",
163
163
  "front_end/devtools_app.html",
164
164
  "front_end/devtools_compatibility.js",
165
- "front_end/emulated_devices/emulated_devices_module.js",
166
165
  "front_end/emulated_devices/optimized/MotoG4-landscape.avif",
167
166
  "front_end/emulated_devices/optimized/MotoG4-portrait.avif",
168
167
  "front_end/emulated_devices/optimized/Nexus5X-landscape.avif",
@@ -372,7 +371,6 @@ grd_files_release_sources = [
372
371
  "front_end/panels/issues/issues.js",
373
372
  "front_end/panels/js_profiler/js_profiler-meta.js",
374
373
  "front_end/panels/js_profiler/js_profiler.js",
375
- "front_end/panels/js_profiler/js_profiler_module.js",
376
374
  "front_end/panels/layer_viewer/layer_viewer-legacy.js",
377
375
  "front_end/panels/layer_viewer/layer_viewer-meta.js",
378
376
  "front_end/panels/layer_viewer/layer_viewer.js",
@@ -398,7 +396,6 @@ grd_files_release_sources = [
398
396
  "front_end/panels/profiler/profiler-legacy.js",
399
397
  "front_end/panels/profiler/profiler-meta.js",
400
398
  "front_end/panels/profiler/profiler.js",
401
- "front_end/panels/profiler/profiler_module.js",
402
399
  "front_end/panels/protocol_monitor/protocol_monitor-meta.js",
403
400
  "front_end/panels/protocol_monitor/protocol_monitor.js",
404
401
  "front_end/panels/screencast/screencast-meta.js",
@@ -427,7 +424,6 @@ grd_files_release_sources = [
427
424
  "front_end/panels/timeline/timeline-legacy.js",
428
425
  "front_end/panels/timeline/timeline-meta.js",
429
426
  "front_end/panels/timeline/timeline.js",
430
- "front_end/panels/timeline/timeline_module.js",
431
427
  "front_end/panels/utils/utils.js",
432
428
  "front_end/panels/web_audio/graph_visualizer/graph_visualizer.js",
433
429
  "front_end/panels/web_audio/web_audio-legacy.js",
@@ -1454,38 +1454,6 @@
1454
1454
  this.releaseControl();
1455
1455
  };
1456
1456
 
1457
- TestSuite.prototype.testInputDispatchEventsToCorrectTarget = async function() {
1458
- this.takeControl();
1459
-
1460
- const mainTarget = self.SDK.targetManager.mainTarget();
1461
- const otherTarget = await createIsolatedTarget('about:blank');
1462
-
1463
- const setupLogging = `
1464
- window.logs = [];
1465
- ['dragenter', 'keydown', 'mousedown', 'mouseenter', 'mouseleave', 'mousemove', 'mouseout', 'mouseover', 'mouseup',
1466
- 'click', 'touchcancel', 'touchend', 'touchmove', 'touchstart',
1467
- ].forEach((event) => window.addEventListener(event, (e) => logs.push(e.type)));`;
1468
- await evalCode(mainTarget, setupLogging);
1469
- await evalCode(otherTarget, setupLogging);
1470
-
1471
- const inputAgent = mainTarget.inputAgent();
1472
- await inputAgent.invoke_dispatchMouseEvent({type: 'mousePressed', button: 'left', clickCount: 1, x: 100, y: 250});
1473
- await inputAgent.invoke_dispatchMouseEvent({type: 'mouseMoved', button: 'left', clickCount: 1, x: 110, y: 270});
1474
- await inputAgent.invoke_dispatchMouseEvent({type: 'mouseReleased', button: 'left', clickCount: 1, x: 110, y: 270});
1475
- await inputAgent.invoke_dispatchDragEvent(
1476
- {type: 'dragEnter', x: 100, y: 250, data: {items: [], dragOperationsMask: 1}});
1477
- await inputAgent.invoke_synthesizeTapGesture({x: 100, y: 250});
1478
- await inputAgent.invoke_dispatchKeyEvent({type: 'keyDown', key: 'a'});
1479
-
1480
- const mainTargetEvents = await evalCode(mainTarget, ' logs.join(\' \')');
1481
- const otherTargetEvents = await evalCode(otherTarget, 'logs.join(\' \')');
1482
- this.assertEquals(
1483
- 'mainTargetEvents: mouseover mousedown mousemove mouseup click dragenter keydown; otherTargetEvents: ',
1484
- `mainTargetEvents: ${mainTargetEvents}; otherTargetEvents: ${otherTargetEvents}`);
1485
-
1486
- this.releaseControl();
1487
- };
1488
-
1489
1457
  TestSuite.prototype.testLoadResourceForFrontend = async function(baseURL, fileURL) {
1490
1458
  const test = this;
1491
1459
  const loggedHeaders = new Set(['cache-control', 'pragma']);
@@ -2577,7 +2577,7 @@
2577
2577
  "message": "Pages that show Printing UI are not currently eligible for back/forward cache."
2578
2578
  },
2579
2579
  "panels/application/BackForwardCacheStrings.ts | relatedActiveContentsExist": {
2580
- "message": "The page was opened using window.open() and another tab has a reference to it, or the page opened a window."
2580
+ "message": "The page was opened using 'window.open()' and another tab has a reference to it, or the page opened a window."
2581
2581
  },
2582
2582
  "panels/application/BackForwardCacheStrings.ts | rendererProcessCrashed": {
2583
2583
  "message": "The renderer process for the page in back/forward cache crashed."
@@ -2577,7 +2577,7 @@
2577
2577
  "message": "P̂áĝéŝ t́ĥát̂ śĥóŵ Ṕr̂ín̂t́îńĝ ÚÎ ár̂é n̂ót̂ ćûŕr̂én̂t́l̂ý êĺîǵîb́l̂é f̂ór̂ b́âćk̂/f́ôŕŵár̂d́ ĉáĉh́ê."
2578
2578
  },
2579
2579
  "panels/application/BackForwardCacheStrings.ts | relatedActiveContentsExist": {
2580
- "message": "T̂h́ê ṕâǵê ẃâś ôṕêńêd́ ûśîńĝ window.open() án̂d́ âńôt́ĥér̂ t́âb́ ĥáŝ á r̂éf̂ér̂én̂ćê t́ô ít̂, ór̂ t́ĥé p̂áĝé ôṕêńêd́ â ẃîńd̂óŵ."
2580
+ "message": "T̂h́ê ṕâǵê ẃâś ôṕêńêd́ ûśîńĝ 'window.open()' án̂d́ âńôt́ĥér̂ t́âb́ ĥáŝ á r̂éf̂ér̂én̂ćê t́ô ít̂, ór̂ t́ĥé p̂áĝé ôṕêńêd́ â ẃîńd̂óŵ."
2581
2581
  },
2582
2582
  "panels/application/BackForwardCacheStrings.ts | rendererProcessCrashed": {
2583
2583
  "message": "T̂h́ê ŕêńd̂ér̂ér̂ ṕr̂óĉéŝś f̂ór̂ t́ĥé p̂áĝé îń b̂áĉḱ/f̂ór̂ẃâŕd̂ ćâćĥé ĉŕâśĥéd̂."
@@ -29,7 +29,6 @@
29
29
  */
30
30
 
31
31
  import * as i18n from '../i18n/i18n.js';
32
- import * as Root from '../root/root.js';
33
32
  import type * as ProtocolProxyApi from '../../generated/protocol-proxy-api.js';
34
33
  import type * as Protocol from '../../generated/protocol.js';
35
34
 
@@ -57,6 +56,7 @@ export class CPUProfilerModel extends SDKModel<EventTypes> implements ProtocolPr
57
56
  #preciseCoverageDeltaUpdateCallback:
58
57
  ((arg0: number, arg1: string, arg2: Array<Protocol.Profiler.ScriptCoverage>) => void)|null;
59
58
  readonly #debuggerModelInternal: DebuggerModel;
59
+ readonly registeredConsoleProfileMessages: ProfileFinishedData[] = [];
60
60
 
61
61
  constructor(target: Target) {
62
62
  super(target);
@@ -92,14 +92,12 @@ export class CPUProfilerModel extends SDKModel<EventTypes> implements ProtocolPr
92
92
  title = this.#anonymousConsoleProfileIdToTitle.get(id);
93
93
  this.#anonymousConsoleProfileIdToTitle.delete(id);
94
94
  }
95
- // Make sure ProfilesPanel is initialized and CPUProfileType is created.
96
- Root.Runtime.Runtime.instance().loadModulePromise('profiler').then(() => {
97
- const eventData: ProfileFinishedData = {
98
- ...this.createEventDataFrom(id, location, title),
99
- cpuProfile: profile,
100
- };
101
- this.dispatchEventToListeners(Events.ConsoleProfileFinished, eventData);
102
- });
95
+ const eventData: ProfileFinishedData = {
96
+ ...this.createEventDataFrom(id, location, title),
97
+ cpuProfile: profile,
98
+ };
99
+ this.registeredConsoleProfileMessages.push(eventData);
100
+ this.dispatchEventToListeners(Events.ConsoleProfileFinished, eventData);
103
101
  }
104
102
 
105
103
  private createEventDataFrom(id: string, scriptLocation: Protocol.Debugger.Location, title?: string): EventData {
@@ -491,6 +491,30 @@ function areAffectedResourcesEquivalent(a?: AffectedResources, b?: AffectedResou
491
491
  return a?.requestId === b?.requestId;
492
492
  }
493
493
 
494
+ function areStackTracesEquivalent(
495
+ stackTrace1?: Protocol.Runtime.StackTrace, stackTrace2?: Protocol.Runtime.StackTrace): boolean {
496
+ if (!stackTrace1 !== !stackTrace2) {
497
+ return false;
498
+ }
499
+ if (!stackTrace1 || !stackTrace2) {
500
+ return true;
501
+ }
502
+ const callFrames1 = stackTrace1.callFrames;
503
+ const callFrames2 = stackTrace2.callFrames;
504
+ if (callFrames1.length !== callFrames2.length) {
505
+ return false;
506
+ }
507
+ for (let i = 0, n = callFrames1.length; i < n; ++i) {
508
+ if (callFrames1[i].scriptId !== callFrames2[i].scriptId ||
509
+ callFrames1[i].functionName !== callFrames2[i].functionName ||
510
+ callFrames1[i].lineNumber !== callFrames2[i].lineNumber ||
511
+ callFrames1[i].columnNumber !== callFrames2[i].columnNumber) {
512
+ return false;
513
+ }
514
+ }
515
+ return areStackTracesEquivalent(stackTrace1.parent, stackTrace2.parent);
516
+ }
517
+
494
518
  export interface ConsoleMessageDetails {
495
519
  type?: MessageType;
496
520
  url?: string;
@@ -659,10 +683,6 @@ export class ConsoleMessage {
659
683
  return false;
660
684
  }
661
685
 
662
- if (!this.isEqualStackTraces(this.stackTrace, msg.stackTrace)) {
663
- return false;
664
- }
665
-
666
686
  if (this.parameters) {
667
687
  if (!msg.parameters || this.parameters.length !== msg.parameters.length) {
668
688
  return false;
@@ -695,30 +715,8 @@ export class ConsoleMessage {
695
715
  (this.level === msg.level) && (this.line === msg.line) && (this.url === msg.url) &&
696
716
  (bothAreWatchExpressions || this.scriptId === msg.scriptId) && (this.messageText === msg.messageText) &&
697
717
  (this.#executionContextId === msg.#executionContextId) &&
698
- areAffectedResourcesEquivalent(this.#affectedResources, msg.#affectedResources);
699
- }
700
-
701
- private isEqualStackTraces(
702
- stackTrace1: Protocol.Runtime.StackTrace|undefined, stackTrace2: Protocol.Runtime.StackTrace|undefined): boolean {
703
- if (!stackTrace1 !== !stackTrace2) {
704
- return false;
705
- }
706
- if (!stackTrace1 || !stackTrace2) {
707
- return true;
708
- }
709
- const callFrames1 = stackTrace1.callFrames;
710
- const callFrames2 = stackTrace2.callFrames;
711
- if (callFrames1.length !== callFrames2.length) {
712
- return false;
713
- }
714
- for (let i = 0, n = callFrames1.length; i < n; ++i) {
715
- if (callFrames1[i].url !== callFrames2[i].url || callFrames1[i].functionName !== callFrames2[i].functionName ||
716
- callFrames1[i].lineNumber !== callFrames2[i].lineNumber ||
717
- callFrames1[i].columnNumber !== callFrames2[i].columnNumber) {
718
- return false;
719
- }
720
- }
721
- return this.isEqualStackTraces(stackTrace1.parent, stackTrace2.parent);
718
+ areAffectedResourcesEquivalent(this.#affectedResources, msg.#affectedResources) &&
719
+ areStackTracesEquivalent(this.stackTrace, msg.stackTrace);
722
720
  }
723
721
  }
724
722
 
@@ -1,9 +1,7 @@
1
1
  {
2
2
  "modules" : [
3
3
  { "name": "panels/lighthouse" },
4
- { "name": "emulated_devices" },
5
- { "name": "panels/layers" },
6
- { "name": "panels/timeline" }
4
+ { "name": "panels/layers" }
7
5
  ],
8
6
  "extends": "shell"
9
7
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "modules" : [
3
- { "name": "panels/screencast", "type": "autostart" }
4
- ],
2
+ "modules" : [],
5
3
  "extends": "devtools_app"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "modules" : [
3
- { "name": "panels/js_profiler" }
4
- ],
2
+ "modules" : [],
5
3
  "extends": "shell"
6
4
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "modules" : [
3
- { "name": "panels/js_profiler" }
4
- ],
2
+ "modules" : [ ],
5
3
  "extends": "shell"
6
4
  }
@@ -1,8 +1,6 @@
1
1
  {
2
2
  "modules": [
3
3
  { "name": "ui/legacy/components/text_editor", "type": "autostart" },
4
- { "name": "ui/legacy/components/source_frame", "type": "autostart" },
5
-
6
- { "name": "panels/profiler" }
4
+ { "name": "ui/legacy/components/source_frame", "type": "autostart" }
7
5
  ]
8
6
  }
@@ -1,6 +1,4 @@
1
1
  {
2
- "modules" : [
3
- { "name": "panels/timeline" }
4
- ],
2
+ "modules" : [],
5
3
  "extends": "shell"
6
4
  }
@@ -98,6 +98,8 @@ export function registerCommands(inspectorBackend) {
98
98
  Labelledby: 'labelledby',
99
99
  Owns: 'owns'
100
100
  });
101
+ inspectorBackend.registerEvent('Accessibility.loadComplete', ['root']);
102
+ inspectorBackend.registerEvent('Accessibility.nodesUpdated', ['nodes']);
101
103
  inspectorBackend.registerCommand('Accessibility.disable', [], []);
102
104
  inspectorBackend.registerCommand('Accessibility.enable', [], []);
103
105
  inspectorBackend.registerCommand(
@@ -117,6 +119,16 @@ export function registerCommands(inspectorBackend) {
117
119
  {'name': 'frameId', 'type': 'string', 'optional': true}
118
120
  ],
119
121
  ['nodes']);
122
+ inspectorBackend.registerCommand(
123
+ 'Accessibility.getRootAXNode', [{'name': 'frameId', 'type': 'string', 'optional': true}], ['node']);
124
+ inspectorBackend.registerCommand(
125
+ 'Accessibility.getAXNodeAndAncestors',
126
+ [
127
+ {'name': 'nodeId', 'type': 'number', 'optional': true},
128
+ {'name': 'backendNodeId', 'type': 'number', 'optional': true},
129
+ {'name': 'objectId', 'type': 'string', 'optional': true}
130
+ ],
131
+ ['nodes']);
120
132
  inspectorBackend.registerCommand(
121
133
  'Accessibility.getChildAXNodes',
122
134
  [{'name': 'id', 'type': 'string', 'optional': false}, {'name': 'frameId', 'type': 'string', 'optional': true}],
@@ -1994,6 +2006,7 @@ export function registerCommands(inspectorBackend) {
1994
2006
  Hid: 'hid',
1995
2007
  IdleDetection: 'idle-detection',
1996
2008
  InterestCohort: 'interest-cohort',
2009
+ JoinAdInterestGroup: 'join-ad-interest-group',
1997
2010
  KeyboardMap: 'keyboard-map',
1998
2011
  Magnetometer: 'magnetometer',
1999
2012
  Microphone: 'microphone',
@@ -2002,6 +2015,7 @@ export function registerCommands(inspectorBackend) {
2002
2015
  Payment: 'payment',
2003
2016
  PictureInPicture: 'picture-in-picture',
2004
2017
  PublickeyCredentialsGet: 'publickey-credentials-get',
2018
+ RunAdAuction: 'run-ad-auction',
2005
2019
  ScreenWakeLock: 'screen-wake-lock',
2006
2020
  Serial: 'serial',
2007
2021
  SharedAutofill: 'shared-autofill',
@@ -2453,6 +2467,10 @@ export function registerCommands(inspectorBackend) {
2453
2467
  [{'name': 'url', 'type': 'string', 'optional': false}, {'name': 'data', 'type': 'string', 'optional': false}],
2454
2468
  []);
2455
2469
  inspectorBackend.registerCommand('Page.clearCompilationCache', [], []);
2470
+ inspectorBackend.registerEnum(
2471
+ 'Page.SetSPCTransactionModeRequestMode', {None: 'none', Autoaccept: 'autoaccept', Autoreject: 'autoreject'});
2472
+ inspectorBackend.registerCommand(
2473
+ 'Page.setSPCTransactionMode', [{'name': 'mode', 'type': 'string', 'optional': false}], []);
2456
2474
  inspectorBackend.registerCommand(
2457
2475
  'Page.generateTestReport',
2458
2476
  [{'name': 'message', 'type': 'string', 'optional': false}, {'name': 'group', 'type': 'string', 'optional': true}],
@@ -12,6 +12,15 @@
12
12
  */
13
13
  export namespace ProtocolMapping {
14
14
  export interface Events {
15
+ /**
16
+ * The loadComplete event mirrors the load complete event sent by the browser to assistive
17
+ * technology when the web page has finished loading.
18
+ */
19
+ 'Accessibility.loadComplete': [Protocol.Accessibility.LoadCompleteEvent];
20
+ /**
21
+ * The nodesUpdated event is sent every time a previously requested node has changed the in tree.
22
+ */
23
+ 'Accessibility.nodesUpdated': [Protocol.Accessibility.NodesUpdatedEvent];
15
24
  /**
16
25
  * Event for when an animation has been cancelled.
17
26
  */
@@ -438,7 +447,7 @@ export namespace ProtocolMapping {
438
447
  */
439
448
  'Security.visibleSecurityStateChanged': [Protocol.Security.VisibleSecurityStateChangedEvent];
440
449
  /**
441
- * The security state of the page changed.
450
+ * The security state of the page changed. No longer being sent.
442
451
  */
443
452
  'Security.securityStateChanged': [Protocol.Security.SecurityStateChangedEvent];
444
453
  'ServiceWorker.workerErrorReported': [Protocol.ServiceWorker.WorkerErrorReportedEvent];
@@ -701,6 +710,22 @@ export namespace ProtocolMapping {
701
710
  paramsType: [Protocol.Accessibility.GetFullAXTreeRequest?];
702
711
  returnType: Protocol.Accessibility.GetFullAXTreeResponse;
703
712
  };
713
+ /**
714
+ * Fetches the root node.
715
+ * Requires `enable()` to have been called previously.
716
+ */
717
+ 'Accessibility.getRootAXNode': {
718
+ paramsType: [Protocol.Accessibility.GetRootAXNodeRequest?];
719
+ returnType: Protocol.Accessibility.GetRootAXNodeResponse;
720
+ };
721
+ /**
722
+ * Fetches a node and all ancestors up to and including the root.
723
+ * Requires `enable()` to have been called previously.
724
+ */
725
+ 'Accessibility.getAXNodeAndAncestors': {
726
+ paramsType: [Protocol.Accessibility.GetAXNodeAndAncestorsRequest?];
727
+ returnType: Protocol.Accessibility.GetAXNodeAndAncestorsResponse;
728
+ };
704
729
  /**
705
730
  * Fetches a particular accessibility node by AXNodeId.
706
731
  * Requires `enable()` to have been called previously.
@@ -2327,6 +2352,11 @@ export namespace ProtocolMapping {
2327
2352
  * Clears seeded compilation cache.
2328
2353
  */
2329
2354
  'Page.clearCompilationCache': {paramsType: []; returnType: void;};
2355
+ /**
2356
+ * Sets the Secure Payment Confirmation transaction mode.
2357
+ * https://w3c.github.io/secure-payment-confirmation/#sctn-automation-set-spc-transaction-mode
2358
+ */
2359
+ 'Page.setSPCTransactionMode': {paramsType: [Protocol.Page.SetSPCTransactionModeRequest]; returnType: void;};
2330
2360
  /**
2331
2361
  * Generates a report for testing.
2332
2362
  */
@@ -225,6 +225,20 @@ declare namespace ProtocolProxyApi {
225
225
  invoke_getFullAXTree(params: Protocol.Accessibility.GetFullAXTreeRequest):
226
226
  Promise<Protocol.Accessibility.GetFullAXTreeResponse>;
227
227
 
228
+ /**
229
+ * Fetches the root node.
230
+ * Requires `enable()` to have been called previously.
231
+ */
232
+ invoke_getRootAXNode(params: Protocol.Accessibility.GetRootAXNodeRequest):
233
+ Promise<Protocol.Accessibility.GetRootAXNodeResponse>;
234
+
235
+ /**
236
+ * Fetches a node and all ancestors up to and including the root.
237
+ * Requires `enable()` to have been called previously.
238
+ */
239
+ invoke_getAXNodeAndAncestors(params: Protocol.Accessibility.GetAXNodeAndAncestorsRequest):
240
+ Promise<Protocol.Accessibility.GetAXNodeAndAncestorsResponse>;
241
+
228
242
  /**
229
243
  * Fetches a particular accessibility node by AXNodeId.
230
244
  * Requires `enable()` to have been called previously.
@@ -242,7 +256,18 @@ declare namespace ProtocolProxyApi {
242
256
  invoke_queryAXTree(params: Protocol.Accessibility.QueryAXTreeRequest):
243
257
  Promise<Protocol.Accessibility.QueryAXTreeResponse>;
244
258
  }
245
- export interface AccessibilityDispatcher {}
259
+ export interface AccessibilityDispatcher {
260
+ /**
261
+ * The loadComplete event mirrors the load complete event sent by the browser to assistive
262
+ * technology when the web page has finished loading.
263
+ */
264
+ loadComplete(params: Protocol.Accessibility.LoadCompleteEvent): void;
265
+
266
+ /**
267
+ * The nodesUpdated event is sent every time a previously requested node has changed the in tree.
268
+ */
269
+ nodesUpdated(params: Protocol.Accessibility.NodesUpdatedEvent): void;
270
+ }
246
271
 
247
272
  export interface AnimationApi {
248
273
  /**
@@ -2637,6 +2662,13 @@ declare namespace ProtocolProxyApi {
2637
2662
  */
2638
2663
  invoke_clearCompilationCache(): Promise<Protocol.ProtocolResponseWithError>;
2639
2664
 
2665
+ /**
2666
+ * Sets the Secure Payment Confirmation transaction mode.
2667
+ * https://w3c.github.io/secure-payment-confirmation/#sctn-automation-set-spc-transaction-mode
2668
+ */
2669
+ invoke_setSPCTransactionMode(params: Protocol.Page.SetSPCTransactionModeRequest):
2670
+ Promise<Protocol.ProtocolResponseWithError>;
2671
+
2640
2672
  /**
2641
2673
  * Generates a report for testing.
2642
2674
  */
@@ -2879,7 +2911,7 @@ declare namespace ProtocolProxyApi {
2879
2911
  visibleSecurityStateChanged(params: Protocol.Security.VisibleSecurityStateChangedEvent): void;
2880
2912
 
2881
2913
  /**
2882
- * The security state of the page changed.
2914
+ * The security state of the page changed. No longer being sent.
2883
2915
  */
2884
2916
  securityStateChanged(params: Protocol.Security.SecurityStateChangedEvent): void;
2885
2917
  }
@@ -252,6 +252,10 @@ declare namespace Protocol {
252
252
  * All other properties
253
253
  */
254
254
  properties?: AXProperty[];
255
+ /**
256
+ * ID for this node's parent.
257
+ */
258
+ parentId?: AXNodeId;
255
259
  /**
256
260
  * IDs for each of this node's child nodes.
257
261
  */
@@ -260,6 +264,10 @@ declare namespace Protocol {
260
264
  * The backend ID for the associated DOM node, if any.
261
265
  */
262
266
  backendDOMNodeId?: DOM.BackendNodeId;
267
+ /**
268
+ * The frame ID for the frame associated with this nodes document.
269
+ */
270
+ frameId?: Page.FrameId;
263
271
  }
264
272
 
265
273
  export interface GetPartialAXTreeRequest {
@@ -310,6 +318,37 @@ declare namespace Protocol {
310
318
  nodes: AXNode[];
311
319
  }
312
320
 
321
+ export interface GetRootAXNodeRequest {
322
+ /**
323
+ * The frame in whose document the node resides.
324
+ * If omitted, the root frame is used.
325
+ */
326
+ frameId?: Page.FrameId;
327
+ }
328
+
329
+ export interface GetRootAXNodeResponse extends ProtocolResponseWithError {
330
+ node: AXNode;
331
+ }
332
+
333
+ export interface GetAXNodeAndAncestorsRequest {
334
+ /**
335
+ * Identifier of the node to get.
336
+ */
337
+ nodeId?: DOM.NodeId;
338
+ /**
339
+ * Identifier of the backend node to get.
340
+ */
341
+ backendNodeId?: DOM.BackendNodeId;
342
+ /**
343
+ * JavaScript object id of the node wrapper to get.
344
+ */
345
+ objectId?: Runtime.RemoteObjectId;
346
+ }
347
+
348
+ export interface GetAXNodeAndAncestorsResponse extends ProtocolResponseWithError {
349
+ nodes: AXNode[];
350
+ }
351
+
313
352
  export interface GetChildAXNodesRequest {
314
353
  id: AXNodeId;
315
354
  /**
@@ -353,6 +392,27 @@ declare namespace Protocol {
353
392
  */
354
393
  nodes: AXNode[];
355
394
  }
395
+
396
+ /**
397
+ * The loadComplete event mirrors the load complete event sent by the browser to assistive
398
+ * technology when the web page has finished loading.
399
+ */
400
+ export interface LoadCompleteEvent {
401
+ /**
402
+ * New document root node.
403
+ */
404
+ root: AXNode;
405
+ }
406
+
407
+ /**
408
+ * The nodesUpdated event is sent every time a previously requested node has changed the in tree.
409
+ */
410
+ export interface NodesUpdatedEvent {
411
+ /**
412
+ * Updated node data.
413
+ */
414
+ nodes: AXNode[];
415
+ }
356
416
  }
357
417
 
358
418
  export namespace Animation {
@@ -4878,8 +4938,8 @@ declare namespace Protocol {
4878
4938
  */
4879
4939
  export interface UserAgentMetadata {
4880
4940
  brands?: UserAgentBrandVersion[];
4881
- fullVersion?: string;
4882
4941
  fullVersionList?: UserAgentBrandVersion[];
4942
+ fullVersion?: string;
4883
4943
  platform: string;
4884
4944
  platformVersion: string;
4885
4945
  architecture: string;
@@ -6988,9 +7048,10 @@ declare namespace Protocol {
6988
7048
  */
6989
7049
  logId: string;
6990
7050
  /**
6991
- * Issuance date.
7051
+ * Issuance date. Unlike TimeSinceEpoch, this contains the number of
7052
+ * milliseconds since January 1, 1970, UTC, not the number of seconds.
6992
7053
  */
6993
- timestamp: TimeSinceEpoch;
7054
+ timestamp: number;
6994
7055
  /**
6995
7056
  * Hash algorithm.
6996
7057
  */
@@ -9869,6 +9930,7 @@ declare namespace Protocol {
9869
9930
  Hid = 'hid',
9870
9931
  IdleDetection = 'idle-detection',
9871
9932
  InterestCohort = 'interest-cohort',
9933
+ JoinAdInterestGroup = 'join-ad-interest-group',
9872
9934
  KeyboardMap = 'keyboard-map',
9873
9935
  Magnetometer = 'magnetometer',
9874
9936
  Microphone = 'microphone',
@@ -9877,6 +9939,7 @@ declare namespace Protocol {
9877
9939
  Payment = 'payment',
9878
9940
  PictureInPicture = 'picture-in-picture',
9879
9941
  PublickeyCredentialsGet = 'publickey-credentials-get',
9942
+ RunAdAuction = 'run-ad-auction',
9880
9943
  ScreenWakeLock = 'screen-wake-lock',
9881
9944
  Serial = 'serial',
9882
9945
  SharedAutofill = 'shared-autofill',
@@ -11263,6 +11326,16 @@ declare namespace Protocol {
11263
11326
  data: binary;
11264
11327
  }
11265
11328
 
11329
+ export const enum SetSPCTransactionModeRequestMode {
11330
+ None = 'none',
11331
+ Autoaccept = 'autoaccept',
11332
+ Autoreject = 'autoreject',
11333
+ }
11334
+
11335
+ export interface SetSPCTransactionModeRequest {
11336
+ mode: SetSPCTransactionModeRequestMode;
11337
+ }
11338
+
11266
11339
  export interface GenerateTestReportRequest {
11267
11340
  /**
11268
11341
  * Message to be displayed in the report.
@@ -12086,7 +12159,7 @@ declare namespace Protocol {
12086
12159
  }
12087
12160
 
12088
12161
  /**
12089
- * The security state of the page changed.
12162
+ * The security state of the page changed. No longer being sent.
12090
12163
  */
12091
12164
  export interface SecurityStateChangedEvent {
12092
12165
  /**
@@ -12098,8 +12171,8 @@ declare namespace Protocol {
12098
12171
  */
12099
12172
  schemeIsCryptographic: boolean;
12100
12173
  /**
12101
- * List of explanations for the security state. If the overall security state is `insecure` or
12102
- * `warning`, at least one corresponding explanation should be included.
12174
+ * Previously a list of explanations for the security state. Now always
12175
+ * empty.
12103
12176
  */
12104
12177
  explanations: SecurityStateExplanation[];
12105
12178
  /**
@@ -12107,7 +12180,7 @@ declare namespace Protocol {
12107
12180
  */
12108
12181
  insecureContentStatus: InsecureContentStatus;
12109
12182
  /**
12110
- * Overrides user-visible description of the state.
12183
+ * Overrides user-visible description of the state. Always omitted.
12111
12184
  */
12112
12185
  summary?: string;
12113
12186
  }
@@ -16,9 +16,10 @@ const UIStrings = {
16
16
  'Back/forward cache is disabled by flags. Visit chrome://flags/#back-forward-cache to enable it locally on this device.',
17
17
  /**
18
18
  * @description Description text for not restored reason RelatedActiveContentsExist.
19
+ * Note: "window.open()" is the name of a JavaScript method and should not be translated.
19
20
  */
20
21
  relatedActiveContentsExist:
21
- 'The page was opened using `window.open()` and another tab has a reference to it, or the page opened a window.',
22
+ 'The page was opened using \'`window.open()`\' and another tab has a reference to it, or the page opened a window.',
22
23
  /**
23
24
  * @description Description text for not restored reason HTTPStatusNotOK.
24
25
  */
@@ -83,6 +84,7 @@ const UIStrings = {
83
84
  sessionRestored: 'Chrome restarted and cleared the back/forward cache entries.',
84
85
  /**
85
86
  * @description Description text for not restored reason ServiceWorkerPostMessage.
87
+ * Note: "MessageEvent" should not be translated.
86
88
  */
87
89
  serviceWorkerPostMessage: 'A service worker attempted to send the page in back/forward cache a `MessageEvent`.',
88
90
  /**
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as i18n from '../../core/i18n/i18n.js';
6
- import * as Root from '../../core/root/root.js';
7
6
  import * as UI from '../../ui/legacy/legacy.js';
8
7
 
9
8
  // eslint-disable-next-line rulesdir/es_modules_import
@@ -30,8 +29,6 @@ let loadedProfilerModule: (typeof Profiler|undefined);
30
29
 
31
30
  async function loadProfilerModule(): Promise<typeof Profiler> {
32
31
  if (!loadedProfilerModule) {
33
- // Side-effect import resources in module.json
34
- await Root.Runtime.Runtime.instance().loadModulePromise('panels/profiler');
35
32
  loadedProfilerModule = await import('../profiler/profiler.js');
36
33
  }
37
34
  return loadedProfilerModule;
@@ -1,7 +1,4 @@
1
1
  {
2
- "dependencies": [
3
- "panels/timeline"
4
- ],
5
2
  "resources": [
6
3
  "../../third_party/lighthouse/report-assets/standalone-template.html",
7
4
  "../../third_party/lighthouse/report-assets/report.js"
@@ -149,9 +149,17 @@ export class CPUProfileType extends ProfileType {
149
149
  super(CPUProfileType.TypeId, i18nString(UIStrings.recordJavascriptCpuProfile));
150
150
  this.recording = false;
151
151
 
152
+ const targetManager = SDK.TargetManager.TargetManager.instance();
153
+ const profilerModels = targetManager.models(SDK.CPUProfilerModel.CPUProfilerModel);
154
+ for (const model of profilerModels) {
155
+ for (const message of model.registeredConsoleProfileMessages) {
156
+ this.consoleProfileFinished(message);
157
+ }
158
+ }
159
+
152
160
  SDK.TargetManager.TargetManager.instance().addModelListener(
153
161
  SDK.CPUProfilerModel.CPUProfilerModel, SDK.CPUProfilerModel.Events.ConsoleProfileFinished,
154
- this.consoleProfileFinished, this);
162
+ event => this.consoleProfileFinished(event.data), this);
155
163
  }
156
164
 
157
165
  profileBeingRecorded(): ProfileHeader|null {
@@ -187,8 +195,7 @@ export class CPUProfileType extends ProfileType {
187
195
  return i18nString(UIStrings.cpuProfilesShow);
188
196
  }
189
197
 
190
- consoleProfileFinished(event: Common.EventTarget.EventTargetEvent<SDK.CPUProfilerModel.ProfileFinishedData>): void {
191
- const data = event.data;
198
+ consoleProfileFinished(data: SDK.CPUProfilerModel.ProfileFinishedData): void {
192
199
  const profile = new CPUProfileHeader(data.cpuProfilerModel, this, data.title);
193
200
  profile.setProtocolProfile(data.cpuProfile);
194
201
  this.addProfile(profile);
@@ -57,8 +57,6 @@ const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined
57
57
 
58
58
  async function loadProfilerModule(): Promise<typeof Profiler> {
59
59
  if (!loadedProfilerModule) {
60
- // Side-effect import resources in module.json
61
- await Root.Runtime.Runtime.instance().loadModulePromise('panels/profiler');
62
60
  loadedProfilerModule = await import('./profiler.js');
63
61
  }
64
62
  return loadedProfilerModule;
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
- import * as Root from '../../core/root/root.js';
7
6
  import * as UI from '../../ui/legacy/legacy.js';
8
7
 
9
8
  // eslint-disable-next-line rulesdir/es_modules_import
@@ -13,8 +12,6 @@ let loadedScreencastModule: (typeof Screencast|undefined);
13
12
 
14
13
  async function loadScreencastModule(): Promise<typeof Screencast> {
15
14
  if (!loadedScreencastModule) {
16
- // Side-effect import rescreencast in module.json
17
- await Root.Runtime.Runtime.instance().loadModulePromise('panels/screencast');
18
15
  loadedScreencastModule = await import('./screencast.js');
19
16
  }
20
17
  return loadedScreencastModule;
@@ -8,7 +8,6 @@ import * as SDK from '../../core/sdk/sdk.js';
8
8
  import * as Workspace from '../../models/workspace/workspace.js';
9
9
  import * as ObjectUI from '../../ui/legacy/components/object_ui/object_ui.js';
10
10
  import * as QuickOpen from '../../ui/legacy/components/quick_open/quick_open.js';
11
- import * as TextEditor from '../../ui/legacy/components/text_editor/text_editor.js';
12
11
  import * as UI from '../../ui/legacy/legacy.js';
13
12
 
14
13
  // eslint-disable-next-line rulesdir/es_modules_import
@@ -1566,9 +1565,7 @@ UI.ContextMenu.registerProvider({
1566
1565
 
1567
1566
  UI.ContextMenu.registerProvider({
1568
1567
  contextTypes() {
1569
- return [
1570
- TextEditor.CodeMirrorTextEditor.CodeMirrorTextEditor,
1571
- ];
1568
+ return maybeRetrieveContextTypes(Sources => [Sources.UISourceCodeFrame.UISourceCodeFrame]);
1572
1569
  },
1573
1570
  async loadProvider() {
1574
1571
  const Sources = await loadSourcesModule();
@@ -3,7 +3,6 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as Common from '../../core/common/common.js';
6
- import * as Root from '../../core/root/root.js';
7
6
  import * as UI from '../../ui/legacy/legacy.js';
8
7
 
9
8
  // eslint-disable-next-line rulesdir/es_modules_import
@@ -86,8 +85,6 @@ let loadedProfilerModule: (typeof Profiler|undefined);
86
85
 
87
86
  async function loadTimelineModule(): Promise<typeof Timeline> {
88
87
  if (!loadedTimelineModule) {
89
- // Side-effect import resources in module.json
90
- await Root.Runtime.Runtime.instance().loadModulePromise('panels/timeline');
91
88
  loadedTimelineModule = await import('./timeline.js');
92
89
  }
93
90
  return loadedTimelineModule;
@@ -103,8 +100,6 @@ async function loadTimelineModule(): Promise<typeof Timeline> {
103
100
 
104
101
  async function loadProfilerModule(): Promise<typeof Profiler> {
105
102
  if (!loadedProfilerModule) {
106
- // Side-effect import resources in module.json
107
- await Root.Runtime.Runtime.instance().loadModulePromise('profiler');
108
103
  loadedProfilerModule = await import('../profiler/profiler.js');
109
104
  }
110
105
  return loadedProfilerModule;
@@ -2,7 +2,6 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import * as Root from '../../../../core/root/root.js';
6
5
  import * as SDK from '../../../../core/sdk/sdk.js';
7
6
  import * as UI from '../../legacy.js';
8
7
 
@@ -13,8 +12,6 @@ let loadedObjectUIModule: (typeof ObjectUI|undefined);
13
12
 
14
13
  async function loadObjectUIModule(): Promise<typeof ObjectUI> {
15
14
  if (!loadedObjectUIModule) {
16
- // Side-effect import resources in module.json
17
- await Root.Runtime.Runtime.instance().loadModulePromise('ui/legacy/components/object_ui');
18
15
  loadedObjectUIModule = await import('./object_ui.js');
19
16
  }
20
17
  return loadedObjectUIModule;
@@ -51,8 +51,6 @@ let loadedPerfUIModule: (typeof PerfUI|undefined);
51
51
 
52
52
  async function loadPerfUIModule(): Promise<typeof PerfUI> {
53
53
  if (!loadedPerfUIModule) {
54
- // Side-effect import resources in module.json
55
- await Root.Runtime.Runtime.instance().loadModulePromise('perf_ui');
56
54
  loadedPerfUIModule = await import('./perf_ui.js');
57
55
  }
58
56
  return loadedPerfUIModule;
@@ -246,7 +246,6 @@ export class SourceFrameImpl extends Common.ObjectWrapper.eventMixin<EventTypes,
246
246
  }),
247
247
  activeSearchState,
248
248
  CodeMirror.Prec.lowest(searchHighlighter),
249
- config.lineNumbers.of([]),
250
249
  config.language.of([]),
251
250
  this.wasmDisassemblyInternal ? markNonBreakableLines(this.wasmDisassemblyInternal) : nonBreakableLines,
252
251
  this.options.lineWrapping ? CodeMirror.EditorView.lineWrapping : [],
@@ -708,7 +707,7 @@ export class SourceFrameImpl extends Common.ObjectWrapper.eventMixin<EventTypes,
708
707
  extensions: [
709
708
  this.editorConfiguration(content),
710
709
  languageSupport,
711
- this.getLineNumberFormatter(),
710
+ config.lineNumbers.of(this.getLineNumberFormatter()),
712
711
  config.editable.of(this.editable ? [] : CodeMirror.EditorState.readOnly.of(true)),
713
712
  ],
714
713
  });
@@ -108,8 +108,9 @@
108
108
  .text-button:not(:disabled):focus {
109
109
  forced-color-adjust: none;
110
110
  background-color: ButtonFace;
111
- color: ButtonText;
111
+ color: Highlight !important; /* stylelint-disable-line declaration-no-important */
112
112
  border-color: Highlight;
113
+ outline: 2px solid ButtonText;
113
114
  box-shadow: var(--legacy-focus-ring-active-shadow);
114
115
  }
115
116
 
@@ -117,7 +118,7 @@
117
118
  .text-button:not(:disabled):active {
118
119
  forced-color-adjust: none;
119
120
  background-color: Highlight;
120
- color: HighlightText;
121
+ color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
121
122
  box-shadow: var(--legacy-accent-color);
122
123
  }
123
124
 
@@ -130,14 +131,14 @@
130
131
 
131
132
  .text-button.primary-button:not(:disabled):focus {
132
133
  background-color: Highlight;
133
- color: HighlightText;
134
+ color: HighlightText !important; /* stylelint-disable-line declaration-no-important */
134
135
  border-color: ButtonText;
135
136
  }
136
137
 
137
138
  .text-button.primary-button:not(:disabled):hover,
138
139
  .text-button.primary-button:not(:disabled):active {
139
140
  background-color: HighlightText;
140
- color: Highlight;
141
+ color: Highlight !important; /* stylelint-disable-line declaration-no-important */
141
142
  border-color: Highlight;
142
143
  }
143
144
  }
package/package.json CHANGED
@@ -55,5 +55,5 @@
55
55
  "unittest": "scripts/test/run_unittests.py --no-text-coverage",
56
56
  "watch": "third_party/node/node.py --output scripts/watch_build.js"
57
57
  },
58
- "version": "1.0.942529"
58
+ "version": "1.0.943017"
59
59
  }
@@ -1,4 +0,0 @@
1
- {
2
- "dependencies": [],
3
- "resources": []
4
- }
@@ -1,5 +0,0 @@
1
- {
2
- "dependencies": [
3
- "panels/profiler"
4
- ]
5
- }
@@ -1,3 +0,0 @@
1
- {
2
- "dependencies": []
3
- }
@@ -1,3 +0,0 @@
1
- {
2
- "dependencies": []
3
- }
@@ -1,5 +0,0 @@
1
- {
2
- "dependencies": [
3
- "panels/profiler"
4
- ]
5
- }