chrome-devtools-frontend 1.0.1660788 → 1.0.1661063

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 (132) hide show
  1. package/.agents/skills/evaluate-ai-css-completion/SKILL.md +133 -0
  2. package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +76 -0
  3. package/eslint.config.mjs +7 -0
  4. package/extension-api/ExtensionAPI.d.ts +88 -0
  5. package/front_end/core/host/InspectorFrontendHost.ts +1 -0
  6. package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
  7. package/front_end/core/platform/StringUtilities.ts +20 -4
  8. package/front_end/core/sdk/CPUThrottlingManager.ts +2 -0
  9. package/front_end/core/sdk/DOMDebuggerModel.ts +2 -0
  10. package/front_end/core/sdk/DOMModel.ts +1 -0
  11. package/front_end/core/sdk/DebuggerModel.ts +4 -4
  12. package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
  13. package/front_end/core/sdk/FrameManager.ts +1 -0
  14. package/front_end/core/sdk/IsolateManager.ts +1 -0
  15. package/front_end/core/sdk/NetworkManager.ts +2 -0
  16. package/front_end/core/sdk/NetworkRequest.ts +1 -0
  17. package/front_end/core/sdk/PageResourceLoader.ts +2 -0
  18. package/front_end/core/sdk/SourceMap.ts +5 -5
  19. package/front_end/core/sdk/SourceMapManager.ts +3 -2
  20. package/front_end/core/sdk/TargetManager.ts +4 -0
  21. package/front_end/entrypoints/main/MainImpl.ts +2 -1
  22. package/front_end/models/bindings/CompilerScriptMapping.ts +5 -6
  23. package/front_end/models/bindings/ContentProviderBasedProject.ts +4 -4
  24. package/front_end/models/bindings/DebuggerLanguagePlugins.ts +3 -4
  25. package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
  26. package/front_end/models/bindings/NetworkProject.ts +1 -10
  27. package/front_end/models/bindings/ResourceMapping.ts +3 -4
  28. package/front_end/models/bindings/ResourceScriptMapping.ts +2 -3
  29. package/front_end/models/bindings/SASSSourceMapping.ts +3 -4
  30. package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
  31. package/front_end/models/bindings/TempFile.ts +8 -3
  32. package/front_end/models/extensions/ExtensionAPI.ts +110 -46
  33. package/front_end/models/formatter/ScriptFormatter.ts +8 -11
  34. package/front_end/models/issues_manager/CookieIssue.ts +21 -9
  35. package/front_end/models/issues_manager/Issue.ts +3 -4
  36. package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
  37. package/front_end/models/issues_manager/IssueResolver.ts +2 -2
  38. package/front_end/models/issues_manager/IssuesManager.ts +136 -137
  39. package/front_end/models/issues_manager/issues_manager.ts +0 -2
  40. package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
  41. package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +13 -10
  42. package/front_end/models/workspace/WorkspaceImpl.ts +10 -1
  43. package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
  44. package/front_end/panels/ai_assistance/components/ChatMessage.ts +2 -1
  45. package/front_end/panels/application/FrameDetailsView.ts +1 -1
  46. package/front_end/panels/application/WebMCPView.ts +38 -43
  47. package/front_end/panels/application/components/AdsView.ts +201 -30
  48. package/front_end/panels/application/components/adsView.css +25 -0
  49. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
  50. package/front_end/panels/console/ConsoleView.ts +2 -1
  51. package/front_end/panels/console/PromptBuilder.ts +2 -1
  52. package/front_end/panels/emulation/DeviceModeView.ts +52 -70
  53. package/front_end/panels/issues/IssueView.ts +0 -2
  54. package/front_end/panels/issues/IssuesPane.ts +1 -8
  55. package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
  56. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
  57. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
  58. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
  59. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
  60. package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
  61. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
  62. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
  63. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
  64. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
  65. package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
  66. package/front_end/panels/network/RequestPayloadView.ts +15 -13
  67. package/front_end/panels/network/RequestTimingView.ts +95 -127
  68. package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
  69. package/front_end/panels/profiler/WritableProfileHeader.ts +2 -2
  70. package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
  71. package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +48 -47
  72. package/front_end/panels/recorder/{components/ExtensionView.ts → ExtensionView.ts} +8 -8
  73. package/front_end/panels/recorder/RecorderController.ts +88 -77
  74. package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +19 -20
  75. package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +88 -88
  76. package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +11 -11
  77. package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
  78. package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +15 -15
  79. package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +10 -10
  80. package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
  81. package/front_end/panels/recorder/recorder.ts +23 -1
  82. package/front_end/panels/recorder/util/util.ts +113 -0
  83. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +2 -2
  84. package/front_end/panels/sources/SourcesNavigator.ts +2 -3
  85. package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
  86. package/front_end/panels/timeline/IsolateSelector.ts +10 -8
  87. package/front_end/panels/timeline/TimelinePanel.ts +18 -7
  88. package/front_end/panels/timeline/TimelineUIUtils.ts +144 -129
  89. package/front_end/panels/timeline/timeline-meta.ts +3 -2
  90. package/front_end/third_party/chromium/README.chromium +1 -1
  91. package/front_end/ui/legacy/Treeoutline.ts +3 -0
  92. package/front_end/ui/legacy/Widget.ts +14 -15
  93. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -7
  94. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
  95. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
  96. package/package.json +1 -1
  97. package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
  98. package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
  99. package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
  100. package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
  101. package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
  102. package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
  103. package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
  104. package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
  105. package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
  106. package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
  107. package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
  108. package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
  109. package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
  110. package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
  111. package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
  112. package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
  113. package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
  114. package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
  115. package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
  116. package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
  117. package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
  118. package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
  119. package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
  120. package/front_end/panels/recorder/components/components.ts +0 -25
  121. package/front_end/panels/recorder/components/util.ts +0 -116
  122. /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
  123. /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
  124. /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
  125. /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
  126. /package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +0 -0
  127. /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
  128. /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
  129. /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
  130. /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
  131. /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
  132. /package/front_end/panels/recorder/{components/timelineSection.css → timelineSection.css} +0 -0
@@ -11,12 +11,15 @@ import type * as Protocol from '../../generated/protocol.js';
11
11
  import * as EmulationModel from '../../models/emulation/emulation.js';
12
12
  import * as Geometry from '../../models/geometry/geometry.js';
13
13
  import * as UI from '../../ui/legacy/legacy.js';
14
+ import {Directives, html, nothing, render} from '../../ui/lit/lit.js';
14
15
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
15
16
 
16
17
  import {DeviceModeToolbar} from './DeviceModeToolbar.js';
17
18
  import deviceModeViewStyles from './deviceModeView.css.js';
18
19
  import {MediaQueryInspector} from './MediaQueryInspector.js';
19
20
 
21
+ const {classMap, styleMap} = Directives;
22
+
20
23
  const UIStrings = {
21
24
  /**
22
25
  * @description Bottom resizer element title in Device Mode View of the Device Toolbar
@@ -58,14 +61,12 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
58
61
 
59
62
  export class DeviceModeView extends UI.Widget.VBox {
60
63
  wrapperInstance!: UI.Widget.VBox|null;
61
- blockElementToWidth: WeakMap<HTMLElement, number>;
62
64
  private model: EmulationModel.DeviceModeModel.DeviceModeModel;
63
65
  private readonly mediaInspector: MediaQueryInspector;
64
66
  private showMediaInspectorSetting: Common.Settings.Setting<boolean>;
65
67
  private showRulersSetting: Common.Settings.Setting<boolean>;
66
68
  private readonly topRuler: Ruler;
67
69
  private readonly leftRuler: Ruler;
68
- private presetBlocks!: HTMLElement[];
69
70
  private responsivePresetsContainer!: HTMLElement;
70
71
  private screenArea!: HTMLElement;
71
72
  private pageArea!: HTMLElement;
@@ -98,8 +99,6 @@ export class DeviceModeView extends UI.Widget.VBox {
98
99
  constructor() {
99
100
  super({useShadowDom: true});
100
101
 
101
- this.blockElementToWidth = new WeakMap();
102
-
103
102
  this.setMinimumSize(150, 150);
104
103
  this.element.classList.add('device-mode-view');
105
104
  this.registerRequiredCSS(deviceModeViewStyles);
@@ -128,7 +127,7 @@ export class DeviceModeView extends UI.Widget.VBox {
128
127
  this.contentClip = this.contentElement.createChild('div', 'device-mode-content-clip vbox');
129
128
  this.responsivePresetsContainer = this.contentClip.createChild('div', 'device-mode-presets-container');
130
129
  this.responsivePresetsContainer.setAttribute('jslog', `${VisualLogging.responsivePresets()}`);
131
- this.populatePresetsContainer();
130
+ this.renderPresets();
132
131
  this.mediaInspectorContainer = this.contentClip.createChild('div', 'device-mode-media-container');
133
132
  this.contentArea = this.contentClip.createChild('div', 'device-mode-content-area');
134
133
  this.outlineImage = this.contentArea.createChild('img', 'device-mode-outline-image hidden fill');
@@ -161,7 +160,8 @@ export class DeviceModeView extends UI.Widget.VBox {
161
160
  this.pageArea.createChild('slot');
162
161
  }
163
162
 
164
- private populatePresetsContainer(): void {
163
+ private renderPresets(): void {
164
+ const scale = this.model.scale();
165
165
  const sizes = [320, 375, 425, 768, 1024, 1440, 2560];
166
166
  const titles = [
167
167
  i18nString(UIStrings.mobileS),
@@ -172,24 +172,29 @@ export class DeviceModeView extends UI.Widget.VBox {
172
172
  i18nString(UIStrings.laptopL),
173
173
  '4K',
174
174
  ];
175
- this.presetBlocks = [];
176
- const inner = this.responsivePresetsContainer.createChild('div', 'device-mode-presets-container-inner');
177
- for (let i = sizes.length - 1; i >= 0; --i) {
178
- const outer = inner.createChild('div', 'fill device-mode-preset-bar-outer');
179
- const block = outer.createChild('div', 'device-mode-preset-bar');
180
- block.createChild('span').textContent = titles[i] + ' \u2013 ' + sizes[i] + 'px';
181
- block.setAttribute(
182
- 'jslog', `${VisualLogging.action().track({click: true}).context(`device-mode-preset-${sizes[i]}px`)}`);
183
- block.addEventListener('click', applySize.bind(this, sizes[i]), false);
184
- this.blockElementToWidth.set(block, sizes[i]);
185
- this.presetBlocks.push(block);
186
- }
187
-
188
- function applySize(this: DeviceModeView, width: number, e: Event): void {
175
+
176
+ const applySize = (width: number, e: Event): void => {
189
177
  this.model.emulate(EmulationModel.DeviceModeModel.Type.Responsive, null, null);
190
178
  this.model.setWidthAndScaleToFit(width);
191
179
  e.consume();
192
- }
180
+ };
181
+
182
+ // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
183
+ render(html`
184
+ <div class="device-mode-presets-container-inner">
185
+ ${sizes.map((size, idx) => html`
186
+ <div class="fill device-mode-preset-bar-outer">
187
+ <div class="device-mode-preset-bar"
188
+ style="width: ${size * scale}px;"
189
+ jslog=${VisualLogging.action().track({click: true}).context(`device-mode-preset-${size}px`)}
190
+ @click=${(e: Event) => applySize(size, e)}>
191
+ <span>${titles[idx]} – ${size}px</span>
192
+ </div>
193
+ </div>
194
+ `).reverse()}
195
+ </div>
196
+ `,
197
+ this.responsivePresetsContainer);
193
198
  }
194
199
 
195
200
  private createResizer(element: HTMLElement, widthFactor: number, heightFactor: number):
@@ -348,13 +353,7 @@ export class DeviceModeView extends UI.Widget.VBox {
348
353
  if (this.model.scale() !== this.cachedScale) {
349
354
  updateRulers = true;
350
355
  callDoResize = true;
351
- for (const block of this.presetBlocks) {
352
- const blockWidth = this.blockElementToWidth.get(block);
353
- if (!blockWidth) {
354
- throw new Error('Could not get width for block.');
355
- }
356
- block.style.width = blockWidth * this.model.scale() + 'px';
357
- }
356
+ this.renderPresets();
358
357
  this.cachedScale = this.model.scale();
359
358
  }
360
359
 
@@ -571,11 +570,8 @@ export class Ruler extends UI.Widget.VBox {
571
570
  #contentElement: HTMLElement;
572
571
  private readonly horizontal: boolean;
573
572
  private scale: number;
574
- private count: number;
575
573
  private readonly throttler: Common.Throttler.Throttler;
576
574
  private readonly applyCallback: (arg0: number) => void;
577
- private renderedScale!: number|undefined;
578
- private renderedZoomFactor!: number|undefined;
579
575
  constructor(horizontal: boolean, applyCallback: (arg0: number) => void) {
580
576
  super({jslog: `${VisualLogging.deviceModeRuler().track({click: true})}`});
581
577
  this.element.classList.add('device-mode-ruler');
@@ -583,7 +579,6 @@ export class Ruler extends UI.Widget.VBox {
583
579
  this.element.createChild('div', 'device-mode-ruler-content').createChild('div', 'device-mode-ruler-inner');
584
580
  this.horizontal = horizontal;
585
581
  this.scale = 1;
586
- this.count = 0;
587
582
  this.throttler = new Common.Throttler.Throttler(0);
588
583
  this.applyCallback = applyCallback;
589
584
  }
@@ -601,13 +596,6 @@ export class Ruler extends UI.Widget.VBox {
601
596
  const zoomFactor = UI.ZoomManager.ZoomManager.instance().zoomFactor();
602
597
  const size = this.horizontal ? this.#contentElement.offsetWidth : this.#contentElement.offsetHeight;
603
598
 
604
- if (this.scale !== this.renderedScale || zoomFactor !== this.renderedZoomFactor) {
605
- this.#contentElement.removeChildren();
606
- this.count = 0;
607
- this.renderedScale = this.scale;
608
- this.renderedZoomFactor = zoomFactor;
609
- }
610
-
611
599
  const dipSize = size * zoomFactor / this.scale;
612
600
  const count = Math.ceil(dipSize / 5);
613
601
  let step = 1;
@@ -627,40 +615,34 @@ export class Ruler extends UI.Widget.VBox {
627
615
  step = 32;
628
616
  }
629
617
 
630
- for (let i = count; i < this.count; i++) {
631
- if (!(i % step)) {
632
- const lastChild = this.#contentElement.lastChild;
633
- if (lastChild) {
634
- lastChild.remove();
635
- }
636
- }
637
- }
638
-
639
- for (let i = this.count; i < count; i++) {
618
+ const markers = [];
619
+ for (let i = 0; i < count; i++) {
640
620
  if (i % step) {
641
621
  continue;
642
622
  }
643
- const marker = this.#contentElement.createChild('div', 'device-mode-ruler-marker');
644
- if (i) {
645
- if (this.horizontal) {
646
- marker.style.left = (5 * i) * this.scale / zoomFactor + 'px';
647
- } else {
648
- marker.style.top = (5 * i) * this.scale / zoomFactor + 'px';
649
- }
650
- if (!(i % 20)) {
651
- const text = marker.createChild('div', 'device-mode-ruler-text');
652
- text.textContent = String(i * 5);
653
- text.addEventListener('click', this.onMarkerClick.bind(this, i * 5), false);
654
- }
655
- }
656
- if (!(i % 10)) {
657
- marker.classList.add('device-mode-ruler-marker-large');
658
- } else if (!(i % 5)) {
659
- marker.classList.add('device-mode-ruler-marker-medium');
660
- }
661
- }
662
-
663
- this.count = count;
623
+ const isLarge = !(i % 10);
624
+ const isMedium = !(i % 5);
625
+ const offset = i ? `${(5 * i) * this.scale / zoomFactor}px` : undefined;
626
+
627
+ // clang-format off
628
+ markers.push(html`
629
+ <div
630
+ class=${classMap({
631
+ 'device-mode-ruler-marker': true,
632
+ 'device-mode-ruler-marker-large': isLarge,
633
+ 'device-mode-ruler-marker-medium': isMedium && !isLarge,
634
+ })}
635
+ style=${styleMap(this.horizontal ? {left: offset} : {top: offset})}>
636
+ ${i && !(i % 20) ?
637
+ html`<div class="device-mode-ruler-text" @click=${() => this.onMarkerClick(i * 5)}>${i * 5}</div>` :
638
+ nothing}
639
+ </div>
640
+ `);
641
+ // clang-format on
642
+ }
643
+
644
+ // eslint-disable-next-line @devtools/no-lit-render-outside-of-view
645
+ render(html`${markers}`, this.#contentElement);
664
646
  }
665
647
 
666
648
  private onMarkerClick(size: number): void {
@@ -33,7 +33,6 @@ import {AffectedSelectivePermissionsInterventionView} from './AffectedSelectiveP
33
33
  import {AffectedSharedArrayBufferIssueDetailsView} from './AffectedSharedArrayBufferIssueDetailsView.js';
34
34
  import {AffectedSourcesView} from './AffectedSourcesView.js';
35
35
  import {AffectedTrackingSitesView} from './AffectedTrackingSitesView.js';
36
- import {AttributionReportingIssueDetailsView} from './AttributionReportingIssueDetailsView.js';
37
36
  import * as Components from './components/components.js';
38
37
  import type {HiddenIssuesMenuData} from './components/HideIssuesMenu.js';
39
38
  import {CorsIssueDetailsView} from './CorsIssueDetailsView.js';
@@ -254,7 +253,6 @@ export class IssueView extends UI.TreeOutline.TreeElement {
254
253
  new CorsIssueDetailsView(this, this.#issue, 'cors-details'),
255
254
  new GenericIssueDetailsView(this, this.#issue, 'generic-details'),
256
255
  new AffectedDocumentsInQuirksModeView(this, this.#issue, 'affected-documents'),
257
- new AttributionReportingIssueDetailsView(this, this.#issue, 'attribution-reporting-details'),
258
256
  new AffectedRawCookieLinesView(this, this.#issue, 'affected-raw-cookies'),
259
257
  new AffectedTrackingSitesView(this, this.#issue, 'tracking-sites-details'),
260
258
  new AffectedMetadataAllowedSitesView(this, this.#issue, 'metadata-allowed-sites-details'),
@@ -91,11 +91,6 @@ const UIStrings = {
91
91
  * @description Text that explains the issues panel that is shown if no issues are shown.
92
92
  */
93
93
  issuesPanelDescription: 'On this page you can find warnings from the browser.',
94
- /**
95
- * @description Category title for the different 'Attribution Reporting API' issues. The
96
- * Attribution Reporting API is a newly proposed web API (see https://github.com/WICG/conversion-measurement-api).
97
- */
98
- attributionReporting: 'Attribution Reporting `API`',
99
94
  /**
100
95
  * @description Category title for the different 'Quirks Mode' issues. Quirks Mode refers
101
96
  * to the legacy browser modes that displays web content according to outdated
@@ -149,8 +144,6 @@ class IssueCategoryView extends UI.TreeOutline.TreeElement {
149
144
  return i18nString(UIStrings.lowTextContrast);
150
145
  case IssuesManager.Issue.IssueCategory.CORS:
151
146
  return i18nString(UIStrings.cors);
152
- case IssuesManager.Issue.IssueCategory.ATTRIBUTION_REPORTING:
153
- return i18nString(UIStrings.attributionReporting);
154
147
  case IssuesManager.Issue.IssueCategory.QUIRKS_MODE:
155
148
  return i18nString(UIStrings.quirksMode);
156
149
  case IssuesManager.Issue.IssueCategory.GENERIC:
@@ -271,7 +264,7 @@ export class IssuesPane extends UI.Widget.VBox {
271
264
  });
272
265
  groupByKindSettingCheckbox.setVisible(true);
273
266
 
274
- const thirdPartySetting = IssuesManager.Issue.getShowThirdPartyIssuesSetting();
267
+ const thirdPartySetting = IssuesManager.Issue.getShowThirdPartyIssuesSetting(Common.Settings.Settings.instance());
275
268
  this.#showThirdPartyCheckbox = new UI.Toolbar.ToolbarSettingCheckbox(
276
269
  thirdPartySetting, i18nString(UIStrings.includeCookieIssuesCausedBy),
277
270
  i18nString(UIStrings.includeThirdpartyCookieIssues));
@@ -71,8 +71,9 @@ UI.ViewManager.registerViewExtension({
71
71
  isPreviewFeature: true,
72
72
  async loadView(universe) {
73
73
  const Timeline = await loadTimelineModule();
74
- const {pageResourceLoader: resourceLoader} = universe;
75
- return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: true, resourceLoader});
74
+ const {pageResourceLoader: resourceLoader, targetManager, isolateManager} = universe;
75
+ return Timeline.TimelinePanel.TimelinePanel.instance(
76
+ {forceNew: true, resourceLoader, targetManager, isolateManager});
76
77
  },
77
78
  });
78
79
 
@@ -14,11 +14,11 @@ import {Events as LmiEvents, LinearMemoryInspectorPane} from './LinearMemoryInsp
14
14
 
15
15
  const UIStrings = {
16
16
  /**
17
- * @description Error message that shows up in the console if a buffer to be opened in the linear memory inspector cannot be found.
17
+ * @description Error message that shows up in the console if a buffer to be opened in the Memory inspector panel cannot be found.
18
18
  */
19
- couldNotOpenLinearMemory: 'Could not open linear memory inspector: failed locating buffer.',
19
+ couldNotOpenLinearMemory: 'Could not open Memory inspector: buffer not found.',
20
20
  /**
21
- * @description A context menu item in the Scope View of the Sources Panel
21
+ * @description A context menu item in the Scope view of the Sources panel.
22
22
  */
23
23
  openInMemoryInspectorPanel: 'Open in Memory inspector panel',
24
24
  } as const;
@@ -15,17 +15,17 @@ import {type LazyUint8Array, LinearMemoryInspectorController} from './LinearMemo
15
15
 
16
16
  const UIStrings = {
17
17
  /**
18
- * @description Label in the Linear Memory inspector tool that serves as a placeholder if no inspections are open (i.e. nothing to see here).
19
- * Inspection hereby refers to viewing, navigating and understanding the memory through this tool.
18
+ * @description Label in the Memory inspector panel that serves as a placeholder if no inspections are open (i.e., nothing to see here).
19
+ * Inspection here refers to viewing, navigating, and understanding the memory through this panel.
20
20
  */
21
21
  noOpenInspections: 'No open inspections',
22
22
  /**
23
- * @description Label in the Linear Memory inspector tool that serves as a placeholder if no inspections are open (i.e. nothing to see here).
24
- * Inspection hereby refers to viewing, navigating and understanding the memory through this tool.
23
+ * @description Label in the Memory inspector panel that serves as a placeholder if no inspections are open (i.e., nothing to see here).
24
+ * Inspection here refers to viewing, navigating, and understanding the memory through this panel.
25
25
  */
26
26
  memoryInspectorExplanation: 'On this page you can inspect binary data.',
27
27
  /**
28
- * @description Label in the Linear Memory inspector tool for a link.
28
+ * @description Label in the Memory inspector panel for a link.
29
29
  */
30
30
  learnMore: 'Learn more',
31
31
  } as const;
@@ -14,13 +14,13 @@ import type {HighlightInfo} from './LinearMemoryViewerUtils.js';
14
14
 
15
15
  const UIStrings = {
16
16
  /**
17
- * @description Tooltip text that appears when hovering over an inspected variable's button in the Linear Memory Highlight Chip List.
18
- * Clicking the button changes the displayed slice of computer memory in the Linear Memory inspector to contain the inspected variable's bytes.
17
+ * @description Tooltip text that appears when hovering over an inspected variable's button in the highlight chip list in the Memory inspector panel.
18
+ * Clicking the button changes the displayed slice of computer memory in the Memory inspector panel to contain the inspected variable's bytes.
19
19
  */
20
20
  jumpToAddress: 'Jump to this memory',
21
21
  /**
22
- * @description Tooltip text that appears when hovering over an inspected variable's delete button in the Linear Memory Highlight Chip List.
23
- * Clicking the delete button stops highlighting the variable's memory in the Linear Memory inspector.
22
+ * @description Tooltip text that appears when hovering over an inspected variable's delete button in the highlight chip list in the Memory inspector panel.
23
+ * Clicking the delete button stops highlighting the variable's memory in the Memory inspector panel.
24
24
  * 'Memory' is a slice of bytes in the computer memory.
25
25
  */
26
26
  deleteHighlight: 'Stop highlighting this memory',
@@ -32,11 +32,11 @@ import {
32
32
 
33
33
  const UIStrings = {
34
34
  /**
35
- * @description Tooltip text that appears when hovering over an invalid address in the address line in the Linear memory inspector
35
+ * @description Tooltip text that appears when hovering over an invalid address in the address line in the Memory inspector panel.
36
36
  * @example {0x00000000} PH1
37
37
  * @example {0x00400000} PH2
38
38
  */
39
- addressHasToBeANumberBetweenSAnd: 'Address has to be a number between {PH1} and {PH2}',
39
+ addressHasToBeANumberBetweenSAnd: 'Address must be a number between {PH1} and {PH2}',
40
40
  } as const;
41
41
  const str_ =
42
42
  i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryInspector.ts', UIStrings);
@@ -14,27 +14,27 @@ import linearMemoryNavigatorStyles from './linearMemoryNavigator.css.js';
14
14
 
15
15
  const UIStrings = {
16
16
  /**
17
- * @description Tooltip text that appears when hovering over a valid memory address (e.g. 0x0) in the address line in the Linear memory inspector.
17
+ * @description Tooltip text that appears when hovering over a valid memory address (for example, 0x0) in the address line in the Memory inspector panel.
18
18
  */
19
19
  enterAddress: 'Enter address',
20
20
  /**
21
- * @description Tooltip text that appears when hovering over the button to go back in history in the Linear Memory Navigator
21
+ * @description Tooltip text that appears when hovering over the button to go back in history in the Memory inspector panel.
22
22
  */
23
23
  goBackInAddressHistory: 'Go back in address history',
24
24
  /**
25
- * @description Tooltip text that appears when hovering over the button to go forward in history in the Linear Memory Navigator
25
+ * @description Tooltip text that appears when hovering over the button to go forward in history in the Memory inspector panel.
26
26
  */
27
27
  goForwardInAddressHistory: 'Go forward in address history',
28
28
  /**
29
- * @description Tooltip text that appears when hovering over the page back icon in the Linear Memory Navigator
29
+ * @description Tooltip text that appears when hovering over the page back icon in the Memory inspector panel.
30
30
  */
31
31
  previousPage: 'Previous page',
32
32
  /**
33
- * @description Tooltip text that appears when hovering over the next page icon in the Linear Memory Navigator
33
+ * @description Tooltip text that appears when hovering over the next page icon in the Memory inspector panel.
34
34
  */
35
35
  nextPage: 'Next page',
36
36
  /**
37
- * @description Text to refresh the page
37
+ * @description Tooltip text that appears when hovering over the refresh button in the Memory inspector panel.
38
38
  */
39
39
  refresh: 'Refresh',
40
40
  } as const;
@@ -18,14 +18,14 @@ import {ValueInterpreterSettings} from './ValueInterpreterSettings.js';
18
18
 
19
19
  const UIStrings = {
20
20
  /**
21
- * @description Tooltip text that appears when hovering over the gear button to open and close settings in the Linear memory inspector. These settings
21
+ * @description Tooltip text that appears when hovering over the gear button to open and close settings in the Memory inspector panel. These settings
22
22
  * allow the user to change the value type to view, such as 32-bit Integer, or 32-bit Float.
23
23
  */
24
24
  toggleValueTypeSettings: 'Toggle value type settings',
25
25
  /**
26
- * @description Tooltip text that appears when hovering over the 'Little Endian' or 'Big Endian' setting in the Linear memory inspector.
26
+ * @description Tooltip text that appears when hovering over the Little Endian or Big Endian setting in the Memory inspector panel.
27
27
  */
28
- changeEndianness: 'Change `Endianness`',
28
+ changeEndianness: 'Change endianness',
29
29
  } as const;
30
30
  const str_ =
31
31
  i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts', UIStrings);
@@ -26,27 +26,26 @@ import {
26
26
 
27
27
  const UIStrings = {
28
28
  /**
29
- * @description Tooltip text that appears when hovering over an unsigned interpretation of the memory under the Value Interpreter
29
+ * @description Tooltip text that appears when hovering over an unsigned interpretation of the memory in the value interpreter in the Memory inspector panel.
30
30
  */
31
- unsignedValue: '`Unsigned` value',
31
+ unsignedValue: 'Unsigned value',
32
32
  /**
33
- * @description Tooltip text that appears when hovering over the element to change value type modes of under the Value Interpreter. Value type modes
34
- * are different ways of viewing a certain value, e.g.: 10 (decimal) can be 0xa in hexadecimal mode, or 12 in octal mode.
33
+ * @description Tooltip text that appears when hovering over the element to change value type modes in the value interpreter in the Memory inspector panel. Value type modes
34
+ * are different ways of viewing a certain value, for example: 10 (decimal) can be 0xa in hexadecimal mode, or 12 in octal mode.
35
35
  */
36
36
  changeValueTypeMode: 'Change mode',
37
37
  /**
38
- * @description Tooltip text that appears when hovering over a signed interpretation of the memory under the Value Interpreter
38
+ * @description Tooltip text that appears when hovering over a signed interpretation of the memory in the value interpreter in the Memory inspector panel.
39
39
  */
40
- signedValue: '`Signed` value',
40
+ signedValue: 'Signed value',
41
41
  /**
42
- * @description Tooltip text that appears when hovering over a 'jump-to-address' button that is next to a pointer (32-bit or 64-bit) under the Value Interpreter
42
+ * @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) in the value interpreter in the Memory inspector panel.
43
43
  */
44
44
  jumpToPointer: 'Jump to address',
45
45
  /**
46
- * @description Tooltip text that appears when hovering over a 'jump-to-address' button that is next to a pointer (32-bit or 64-bit) with an invalid address under the Value Interpreter.
46
+ * @description Tooltip text that appears when hovering over a jump-to-address button that is next to a pointer (32-bit or 64-bit) with an invalid address in the value interpreter in the Memory inspector panel.
47
47
  */
48
48
  addressOutOfRange: 'Address out of memory range',
49
-
50
49
  } as const;
51
50
  const str_ =
52
51
  i18n.i18n.registerUIStrings('panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts', UIStrings);
@@ -7,8 +7,8 @@ import * as Platform from '../../../core/platform/platform.js';
7
7
 
8
8
  const UIStrings = {
9
9
  /**
10
- * @description Text that is shown in the LinearMemoryInspector if a value could not be correctly formatted
11
- * for the requested mode (e.g. we do not floats to be represented as hexadecimal numbers).
10
+ * @description Text that is shown in the Memory inspector panel if a value cannot be correctly formatted
11
+ * for the requested mode (for example, when a float cannot be represented as a hexadecimal number).
12
12
  * Abbreviation stands for 'not applicable'.
13
13
  */
14
14
  notApplicable: 'N/A',
@@ -15,7 +15,7 @@ const {render, html} = Lit;
15
15
 
16
16
  const UIStrings = {
17
17
  /**
18
- * @description Name of a group of selectable value types that do not fall under integer and floating point value types, e.g. Pointer32. The group appears name appears under the Value Interpreter Settings.
18
+ * @description Name of a group of selectable value types that do not fall under integer and floating point value types (for example, Pointer32). The group name appears in the value interpreter settings in the Memory inspector panel.
19
19
  */
20
20
  otherGroup: 'Other',
21
21
  } as const;
@@ -12,11 +12,11 @@ import type * as LinearMemoryInspector from './linear_memory_inspector.js';
12
12
 
13
13
  const UIStrings = {
14
14
  /**
15
- * @description Title of the Linear Memory inspector tool
15
+ * @description Title of the Memory inspector panel.
16
16
  */
17
17
  memoryInspector: 'Memory inspector',
18
18
  /**
19
- * @description Command for showing the 'Memory inspector' tool
19
+ * @description Command for showing the Memory inspector panel.
20
20
  */
21
21
  showMemoryInspector: 'Show Memory inspector',
22
22
  } as const;
@@ -173,23 +173,25 @@ export const DEFAULT_VIEW: View = (input, output, target) => {
173
173
  return JSON.parse(input.formData);
174
174
  } catch {
175
175
  }
176
- return undefined;
177
176
  }
177
+ return undefined;
178
178
  })();
179
179
 
180
- const createPayload = (parsedFormData: unknown): TemplateResult => {
180
+ const createPayload = (parsedFormData: unknown): LitTemplate => {
181
+ if (!parsedFormData) {
182
+ return nothing;
183
+ }
181
184
  const object = new SDK.RemoteObject.LocalJSONObject(parsedFormData);
182
- const section =
183
- new ObjectUI.ObjectPropertiesSection.RootElement(new ObjectUI.ObjectPropertiesSection.ObjectTree(object, {
184
- readOnly: true,
185
- propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
186
- }));
187
- section.title = document.createTextNode(object.description);
188
- section.listItemElement.classList.add('source-code', 'object-properties-section');
189
- section.childrenListElement.classList.add('source-code', 'object-properties-section');
190
- section.expand();
191
- return html`<devtools-tree-wrapper
192
- .treeElement=${section}></devtools-tree-wrapper>`;
185
+ const objectTree = new ObjectUI.ObjectPropertiesSection.ObjectTree(object, {
186
+ readOnly: true,
187
+ propertiesMode: ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED,
188
+ });
189
+ return html`
190
+ <li role=treeitem class="source-code object-properties-section-root-element object-properties-section" open>
191
+ ${object.description}
192
+ ${object.hasChildren ? ObjectUI.ObjectPropertiesSection.renderObjectTree(objectTree) : nothing}
193
+ </li>
194
+ `;
193
195
  };
194
196
 
195
197
  const queryStringExpandedSetting =