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.
- package/.agents/skills/evaluate-ai-css-completion/SKILL.md +133 -0
- package/.agents/skills/evaluate-ai-css-completion/scripts/evaluate.js +76 -0
- package/eslint.config.mjs +7 -0
- package/extension-api/ExtensionAPI.d.ts +88 -0
- package/front_end/core/host/InspectorFrontendHost.ts +1 -0
- package/front_end/core/host/InspectorFrontendHostStub.ts +2 -0
- package/front_end/core/platform/StringUtilities.ts +20 -4
- package/front_end/core/sdk/CPUThrottlingManager.ts +2 -0
- package/front_end/core/sdk/DOMDebuggerModel.ts +2 -0
- package/front_end/core/sdk/DOMModel.ts +1 -0
- package/front_end/core/sdk/DebuggerModel.ts +4 -4
- package/front_end/core/sdk/EventBreakpointsModel.ts +2 -0
- package/front_end/core/sdk/FrameManager.ts +1 -0
- package/front_end/core/sdk/IsolateManager.ts +1 -0
- package/front_end/core/sdk/NetworkManager.ts +2 -0
- package/front_end/core/sdk/NetworkRequest.ts +1 -0
- package/front_end/core/sdk/PageResourceLoader.ts +2 -0
- package/front_end/core/sdk/SourceMap.ts +5 -5
- package/front_end/core/sdk/SourceMapManager.ts +3 -2
- package/front_end/core/sdk/TargetManager.ts +4 -0
- package/front_end/entrypoints/main/MainImpl.ts +2 -1
- package/front_end/models/bindings/CompilerScriptMapping.ts +5 -6
- package/front_end/models/bindings/ContentProviderBasedProject.ts +4 -4
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +3 -4
- package/front_end/models/bindings/DefaultScriptMapping.ts +3 -3
- package/front_end/models/bindings/NetworkProject.ts +1 -10
- package/front_end/models/bindings/ResourceMapping.ts +3 -4
- package/front_end/models/bindings/ResourceScriptMapping.ts +2 -3
- package/front_end/models/bindings/SASSSourceMapping.ts +3 -4
- package/front_end/models/bindings/StylesSourceMapping.ts +3 -3
- package/front_end/models/bindings/TempFile.ts +8 -3
- package/front_end/models/extensions/ExtensionAPI.ts +110 -46
- package/front_end/models/formatter/ScriptFormatter.ts +8 -11
- package/front_end/models/issues_manager/CookieIssue.ts +21 -9
- package/front_end/models/issues_manager/Issue.ts +3 -4
- package/front_end/models/issues_manager/IssueAggregator.ts +0 -9
- package/front_end/models/issues_manager/IssueResolver.ts +2 -2
- package/front_end/models/issues_manager/IssuesManager.ts +136 -137
- package/front_end/models/issues_manager/issues_manager.ts +0 -2
- package/front_end/models/persistence/AutomaticFileSystemWorkspaceBinding.ts +5 -0
- package/front_end/models/source_map_scopes/FunctionCodeResolver.ts +13 -10
- package/front_end/models/workspace/WorkspaceImpl.ts +10 -1
- package/front_end/models/workspace_diff/WorkspaceDiff.ts +10 -4
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +2 -1
- package/front_end/panels/application/FrameDetailsView.ts +1 -1
- package/front_end/panels/application/WebMCPView.ts +38 -43
- package/front_end/panels/application/components/AdsView.ts +201 -30
- package/front_end/panels/application/components/adsView.css +25 -0
- package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +2 -2
- package/front_end/panels/console/ConsoleView.ts +2 -1
- package/front_end/panels/console/PromptBuilder.ts +2 -1
- package/front_end/panels/emulation/DeviceModeView.ts +52 -70
- package/front_end/panels/issues/IssueView.ts +0 -2
- package/front_end/panels/issues/IssuesPane.ts +1 -8
- package/front_end/panels/js_timeline/js_timeline-meta.ts +3 -2
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorController.ts +3 -3
- package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +5 -5
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +4 -4
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryNavigator.ts +6 -6
- package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +3 -3
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +8 -9
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplayUtils.ts +2 -2
- package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +1 -1
- package/front_end/panels/linear_memory_inspector/linear_memory_inspector-meta.ts +2 -2
- package/front_end/panels/network/RequestPayloadView.ts +15 -13
- package/front_end/panels/network/RequestTimingView.ts +95 -127
- package/front_end/panels/profiler/HeapSnapshotView.ts +1 -1
- package/front_end/panels/profiler/WritableProfileHeader.ts +2 -2
- package/front_end/panels/recorder/{components/ControlButton.ts → ControlButton.ts} +9 -10
- package/front_end/panels/recorder/{components/CreateRecordingView.ts → CreateRecordingView.ts} +48 -47
- package/front_end/panels/recorder/{components/ExtensionView.ts → ExtensionView.ts} +8 -8
- package/front_end/panels/recorder/RecorderController.ts +88 -77
- package/front_end/panels/recorder/{components/RecordingListView.ts → RecordingListView.ts} +19 -20
- package/front_end/panels/recorder/{components/RecordingView.ts → RecordingView.ts} +88 -88
- package/front_end/panels/recorder/{components/ReplaySection.ts → ReplaySection.ts} +11 -11
- package/front_end/panels/recorder/{components/SelectorPicker.ts → SelectorPicker.ts} +13 -13
- package/front_end/panels/recorder/{components/StepEditor.ts → StepEditor.ts} +15 -15
- package/front_end/panels/recorder/{components/StepView.ts → StepView.ts} +10 -10
- package/front_end/panels/recorder/{components/TimelineSection.ts → TimelineSection.ts} +2 -2
- package/front_end/panels/recorder/recorder.ts +23 -1
- package/front_end/panels/recorder/util/util.ts +113 -0
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +2 -2
- package/front_end/panels/sources/SourcesNavigator.ts +2 -3
- package/front_end/panels/sources/TabbedEditorContainer.ts +1 -1
- package/front_end/panels/timeline/IsolateSelector.ts +10 -8
- package/front_end/panels/timeline/TimelinePanel.ts +18 -7
- package/front_end/panels/timeline/TimelineUIUtils.ts +144 -129
- package/front_end/panels/timeline/timeline-meta.ts +3 -2
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/ui/legacy/Treeoutline.ts +3 -0
- package/front_end/ui/legacy/Widget.ts +14 -15
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +11 -7
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +2 -1
- package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +10 -1
- package/package.json +1 -1
- package/front_end/models/issues_manager/AttributionReportingIssue.ts +0 -247
- package/front_end/models/issues_manager/descriptions/arInsecureContext.md +0 -7
- package/front_end/models/issues_manager/descriptions/arInvalidInfoHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterSourceHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/front_end/models/issues_manager/descriptions/arNoWebOrOsSupport.md +0 -4
- package/front_end/models/issues_manager/descriptions/arOsSourceIgnored.md +0 -18
- package/front_end/models/issues_manager/descriptions/arOsTriggerIgnored.md +0 -19
- package/front_end/models/issues_manager/descriptions/arPermissionPolicyDisabled.md +0 -8
- package/front_end/models/issues_manager/descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/front_end/models/issues_manager/descriptions/arSourceIgnored.md +0 -13
- package/front_end/models/issues_manager/descriptions/arTriggerIgnored.md +0 -12
- package/front_end/models/issues_manager/descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/front_end/models/issues_manager/descriptions/arWebAndOsHeaders.md +0 -11
- package/front_end/panels/issues/AttributionReportingIssueDetailsView.ts +0 -182
- package/front_end/panels/recorder/components/components.ts +0 -25
- package/front_end/panels/recorder/components/util.ts +0 -116
- /package/front_end/panels/recorder/{components/controlButton.css → controlButton.css} +0 -0
- /package/front_end/panels/recorder/{components/createRecordingView.css → createRecordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/extensionView.css → extensionView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingListView.css → recordingListView.css} +0 -0
- /package/front_end/panels/recorder/{components/recordingView.css → recordingView.css} +0 -0
- /package/front_end/panels/recorder/{components/replaySection.css → replaySection.css} +0 -0
- /package/front_end/panels/recorder/{components/selectorPicker.css → selectorPicker.css} +0 -0
- /package/front_end/panels/recorder/{components/startView.css → startView.css} +0 -0
- /package/front_end/panels/recorder/{components/stepEditor.css → stepEditor.css} +0 -0
- /package/front_end/panels/recorder/{components/stepView.css → stepView.css} +0 -0
- /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.
|
|
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
|
|
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
|
-
|
|
176
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
631
|
-
|
|
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
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
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(
|
|
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
|
|
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
|
|
19
|
+
couldNotOpenLinearMemory: 'Could not open Memory inspector: buffer not found.',
|
|
20
20
|
/**
|
|
21
|
-
* @description A context menu item in the Scope
|
|
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
|
|
19
|
-
* Inspection
|
|
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
|
|
24
|
-
* Inspection
|
|
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
|
|
28
|
+
* @description Label in the Memory inspector panel for a link.
|
|
29
29
|
*/
|
|
30
30
|
learnMore: 'Learn more',
|
|
31
31
|
} as const;
|
package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts
CHANGED
|
@@ -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
|
|
18
|
-
* Clicking the button changes the displayed slice of computer memory in the
|
|
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
|
|
23
|
-
* Clicking the delete button stops highlighting the variable's memory in the
|
|
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
|
|
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
|
|
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 (
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: '
|
|
31
|
+
unsignedValue: 'Unsigned value',
|
|
32
32
|
/**
|
|
33
|
-
* @description Tooltip text that appears when hovering over the element to change value type modes
|
|
34
|
-
* are different ways of viewing a certain value,
|
|
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
|
|
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: '
|
|
40
|
+
signedValue: 'Signed value',
|
|
41
41
|
/**
|
|
42
|
-
* @description Tooltip text that appears when hovering over a
|
|
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
|
|
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
|
|
11
|
-
* for the requested mode (
|
|
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,
|
|
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
|
|
15
|
+
* @description Title of the Memory inspector panel.
|
|
16
16
|
*/
|
|
17
17
|
memoryInspector: 'Memory inspector',
|
|
18
18
|
/**
|
|
19
|
-
* @description Command for showing the
|
|
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):
|
|
180
|
+
const createPayload = (parsedFormData: unknown): LitTemplate => {
|
|
181
|
+
if (!parsedFormData) {
|
|
182
|
+
return nothing;
|
|
183
|
+
}
|
|
181
184
|
const object = new SDK.RemoteObject.LocalJSONObject(parsedFormData);
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
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 =
|