chrome-devtools-frontend 1.0.938678 → 1.0.939473
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/.stylelintrc.json +8 -10
- package/config/gni/all_devtools_files.gni +0 -1
- package/config/gni/devtools_grd_files.gni +2 -0
- package/docs/triage_guidelines.md +13 -11
- package/front_end/Tests.js +63 -29
- package/front_end/core/host/InspectorFrontendHost.ts +16 -30
- package/front_end/core/host/UserMetrics.ts +1 -0
- package/front_end/core/i18n/locales/en-US.json +19 -1
- package/front_end/core/i18n/locales/en-XL.json +19 -1
- package/front_end/core/protocol_client/InspectorBackend.ts +4 -0
- package/front_end/core/root/Runtime.ts +4 -0
- package/front_end/core/sdk/CSSModel.ts +64 -50
- package/front_end/core/sdk/CategorizedBreakpoint.ts +35 -0
- package/front_end/core/sdk/DOMDebuggerModel.ts +10 -41
- package/front_end/core/sdk/EmulationModel.ts +11 -0
- package/front_end/core/sdk/EventBreakpointsModel.ts +178 -0
- package/front_end/core/sdk/Target.ts +2 -1
- package/front_end/core/sdk/sdk-meta.ts +30 -1
- package/front_end/core/sdk/sdk.ts +4 -0
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +9 -2
- package/front_end/entrypoints/inspector_main/renderingOptions.css +2 -2
- package/front_end/entrypoints/main/main-meta.ts +0 -4
- package/front_end/entrypoints/node_main/nodeConnectionsPanel.css +2 -2
- package/front_end/entrypoints/shell/shell.js +1 -0
- package/front_end/entrypoints/shell/shell.json +0 -1
- package/front_end/models/persistence/editFileSystemView.css +1 -1
- package/front_end/models/persistence/workspaceSettingsTab.css +1 -1
- package/front_end/panels/accessibility/accessibilityNode.css +2 -2
- package/front_end/panels/accessibility/axBreadcrumbs.css +1 -1
- package/front_end/panels/animation/animationTimeline.css +5 -5
- package/front_end/panels/application/components/frameDetailsReportView.css +1 -1
- package/front_end/panels/application/resourcesPanel.css +1 -1
- package/front_end/panels/application/resourcesSidebar.css +1 -1
- package/front_end/panels/browser_debugger/CSPViolationBreakpointsSidebarPane.ts +2 -2
- package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +7 -7
- package/front_end/panels/browser_debugger/EventListenerBreakpointsSidebarPane.ts +14 -6
- package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +2 -5
- package/front_end/panels/changes/changesSidebar.css +1 -1
- package/front_end/panels/changes/changesView.css +2 -2
- package/front_end/panels/console/consolePrompt.css +1 -1
- package/front_end/panels/console/consoleSidebar.css +4 -4
- package/front_end/panels/console/consoleView.css +2 -2
- package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -1
- package/front_end/panels/css_overview/cssOverviewCompletedView.css +8 -8
- package/front_end/panels/elements/classesPaneWidget.css +1 -1
- package/front_end/panels/elements/components/adornerSettingsPane.css +1 -1
- package/front_end/panels/elements/computedStyleWidgetTree.css +1 -1
- package/front_end/panels/elements/elementsPanel.css +1 -1
- package/front_end/panels/elements/elementsTreeOutline.css +1 -1
- package/front_end/panels/elements/layoutPane.css +1 -1
- package/front_end/panels/elements/platformFontsWidget.css +1 -1
- package/front_end/panels/elements/stylesSectionTree.css +1 -1
- package/front_end/panels/event_listeners/EventListenersView.ts +5 -4
- package/front_end/panels/event_listeners/eventListenersView.css +3 -2
- package/front_end/panels/issues/IssueKindView.ts +0 -6
- package/front_end/panels/issues/IssueView.ts +19 -27
- package/front_end/panels/issues/components/HideIssuesMenu.ts +7 -11
- package/front_end/panels/issues/components/hideIssuesMenu.css +8 -0
- package/front_end/panels/issues/issuesTree.css +17 -5
- package/front_end/panels/lighthouse/lighthouseStartView.css +2 -2
- package/front_end/panels/media/playerListView.css +1 -1
- package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +1 -1
- package/front_end/panels/network/NetworkLogView.ts +13 -0
- package/front_end/panels/network/NetworkSearchScope.ts +3 -1
- package/front_end/panels/network/RequestPayloadView.ts +2 -0
- package/front_end/panels/network/blockedURLsPane.css +1 -1
- package/front_end/panels/network/networkConfigView.css +1 -1
- package/front_end/panels/network/networkLogView.css +3 -3
- package/front_end/panels/network/requestPayloadTree.css +5 -0
- package/front_end/panels/profiler/profileLauncherView.css +3 -3
- package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +1 -0
- package/front_end/panels/security/mainView.css +2 -2
- package/front_end/panels/security/originView.css +1 -1
- package/front_end/panels/sensors/sensors.css +2 -2
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +1 -1
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +4 -4
- package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +1 -1
- package/front_end/panels/settings/settingsScreen.css +2 -2
- package/front_end/panels/sources/CoveragePlugin.ts +7 -2
- package/front_end/panels/sources/DebuggerPausedMessage.ts +14 -7
- package/front_end/panels/sources/callStackSidebarPane.css +1 -1
- package/front_end/panels/sources/dialog.css +1 -1
- package/front_end/panels/sources/javaScriptBreakpointsSidebarPane.css +1 -1
- package/front_end/panels/sources/navigatorTree.css +4 -4
- package/front_end/panels/sources/sourcesPanel.css +2 -2
- package/front_end/panels/sources/threadsSidebarPane.css +1 -1
- package/front_end/panels/timeline/components/WebVitalsTooltip.css +1 -1
- package/front_end/panels/timeline/historyToolbarButton.css +1 -1
- package/front_end/panels/timeline/timelineStatusDialog.css +1 -1
- package/front_end/panels/webauthn/webauthnPane.css +2 -2
- package/front_end/ui/components/adorners/adorner.css +1 -1
- package/front_end/ui/components/expandable_list/expandableList.css +1 -1
- package/front_end/ui/components/linear_memory_inspector/valueInterpreterDisplay.css +1 -2
- package/front_end/ui/components/linear_memory_inspector/valueInterpreterSettings.css +1 -1
- package/front_end/ui/components/report_view/reportKey.css +1 -1
- package/front_end/ui/components/report_view/reportValue.css +1 -1
- package/front_end/ui/legacy/ContextMenu.ts +5 -1
- package/front_end/ui/legacy/SoftContextMenu.ts +5 -1
- package/front_end/ui/legacy/checkboxTextLabel.css +1 -1
- package/front_end/ui/legacy/components/color_picker/spectrum.css +9 -9
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +2 -2
- package/front_end/ui/legacy/components/inline_editor/cssAngleEditor.css +3 -3
- package/front_end/ui/legacy/components/inline_editor/cssLength.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssShadowEditor.css +1 -1
- package/front_end/ui/legacy/components/inline_editor/fontEditor.css +1 -1
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +2 -2
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +13 -7
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
- package/front_end/ui/legacy/components/source_frame/imageView.css +1 -1
- package/front_end/ui/legacy/components/text_editor/cmdevtools.css +6 -14
- package/front_end/ui/legacy/emptyWidget.css +1 -1
- package/front_end/ui/legacy/filter.css +1 -1
- package/front_end/ui/legacy/infobar.css +2 -2
- package/front_end/ui/legacy/inspectorCommon.css +45 -45
- package/front_end/ui/legacy/inspectorSyntaxHighlight.css +3 -3
- package/front_end/ui/legacy/inspectorViewTabbedPane.css +1 -1
- package/front_end/ui/legacy/searchableView.css +1 -1
- package/front_end/ui/legacy/softContextMenu.css +1 -1
- package/front_end/ui/legacy/textPrompt.css +1 -1
- package/front_end/ui/legacy/toolbar.css +8 -8
- package/front_end/ui/legacy/treeoutline.css +4 -4
- package/inspector_overlay/common.css +2 -2
- package/inspector_overlay/tool_highlight.css +1 -1
- package/inspector_overlay/tool_paused.css +2 -2
- package/package.json +1 -1
- package/scripts/eslint_rules/lib/check_component_naming.js +1 -1
- package/scripts/eslint_rules/lib/enforce_custom_event_names.js +1 -1
- package/scripts/eslint_rules/lib/es_modules_import.js +21 -20
- package/scripts/eslint_rules/lib/l10n_filename_matches.js +4 -3
- package/scripts/eslint_rules/lib/l10n_no_i18nString_calls_module_instantiation.js +1 -1
- package/scripts/eslint_rules/lib/migrate_create_shadow_root_with_styles.js +2 -2
- package/scripts/eslint_rules/lib/migrate_register_required_css.js +1 -1
- package/scripts/eslint_rules/lib/no_underscored_properties.js +1 -1
- package/scripts/eslint_rules/tests/es_modules_import_test.js +3 -2
- package/front_end/entrypoints/main/module.json +0 -5
|
@@ -301,10 +301,6 @@ export class ObjectEventListenerBar extends UI.TreeOutline.TreeElement {
|
|
|
301
301
|
|
|
302
302
|
private setTitle(object: SDK.RemoteObject.RemoteObject, linkifier: Components.Linkifier.Linkifier): void {
|
|
303
303
|
const title = this.listItemElement.createChild('span', 'event-listener-details');
|
|
304
|
-
const subtitle = this.listItemElement.createChild('span', 'event-listener-tree-subtitle');
|
|
305
|
-
const linkElement =
|
|
306
|
-
linkifier.linkifyRawLocation(this.eventListenerInternal.location(), this.eventListenerInternal.sourceURL());
|
|
307
|
-
subtitle.appendChild(linkElement);
|
|
308
304
|
|
|
309
305
|
const propertyValue = ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection.createPropertyValue(
|
|
310
306
|
object, /* wasThrown */ false, /* showPreview */ false);
|
|
@@ -333,6 +329,11 @@ export class ObjectEventListenerBar extends UI.TreeOutline.TreeElement {
|
|
|
333
329
|
title.appendChild(passiveButton);
|
|
334
330
|
}
|
|
335
331
|
|
|
332
|
+
const subtitle = title.createChild('span', 'event-listener-tree-subtitle');
|
|
333
|
+
const linkElement =
|
|
334
|
+
linkifier.linkifyRawLocation(this.eventListenerInternal.location(), this.eventListenerInternal.sourceURL());
|
|
335
|
+
subtitle.appendChild(linkElement);
|
|
336
|
+
|
|
336
337
|
this.listItemElement.addEventListener('contextmenu', event => {
|
|
337
338
|
const menu = new UI.ContextMenu.ContextMenu(event);
|
|
338
339
|
if (event.target !== linkElement) {
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
color: var(--color-syntax-2);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
.tree-outline-disclosure .object-value-node
|
|
36
|
+
.tree-outline-disclosure .object-value-node,
|
|
37
|
+
.tree-outline-disclosure .object-value-object {
|
|
37
38
|
overflow: hidden;
|
|
38
39
|
text-overflow: ellipsis;
|
|
39
40
|
}
|
|
@@ -53,7 +54,7 @@
|
|
|
53
54
|
background-color: var(--color-background-elevation-1);
|
|
54
55
|
border-radius: 3px;
|
|
55
56
|
border: 1px solid var(--color-details-hairline);
|
|
56
|
-
margin-left:
|
|
57
|
+
margin-left: 5px;
|
|
57
58
|
display: block;
|
|
58
59
|
cursor: pointer;
|
|
59
60
|
opacity: 80%;
|
|
@@ -110,12 +110,6 @@ export class IssueKindView extends UI.TreeOutline.TreeElement {
|
|
|
110
110
|
header.appendChild(countAdorner);
|
|
111
111
|
header.appendChild(title);
|
|
112
112
|
header.appendChild(hideAvailableIssuesBtn);
|
|
113
|
-
header.addEventListener('mouseenter', () => {
|
|
114
|
-
hideAvailableIssuesBtn.setVisible(true);
|
|
115
|
-
});
|
|
116
|
-
header.addEventListener('mouseleave', () => {
|
|
117
|
-
hideAvailableIssuesBtn.setVisible(false);
|
|
118
|
-
});
|
|
119
113
|
|
|
120
114
|
this.listItemElement.appendChild(header);
|
|
121
115
|
}
|
|
@@ -222,7 +222,7 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
222
222
|
private hasBeenExpandedBefore: boolean;
|
|
223
223
|
private throttle: Common.Throttler.Throttler;
|
|
224
224
|
private needsUpdateOnExpand = true;
|
|
225
|
-
private hiddenIssuesMenu
|
|
225
|
+
private hiddenIssuesMenu?: Components.HideIssuesMenu.HideIssuesMenu;
|
|
226
226
|
private contentCreated: boolean = false;
|
|
227
227
|
|
|
228
228
|
constructor(issue: AggregatedIssue, description: IssuesManager.MarkdownIssueDescription.IssueDescription) {
|
|
@@ -256,8 +256,9 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
256
256
|
new WasmCrossOriginModuleSharingAffectedResourcesView(this, this.issue),
|
|
257
257
|
new AffectedRawCookieLinesView(this, this.issue),
|
|
258
258
|
];
|
|
259
|
-
|
|
260
|
-
|
|
259
|
+
if (Root.Runtime.experiments.isEnabled('hideIssuesFeature')) {
|
|
260
|
+
this.hiddenIssuesMenu = new Components.HideIssuesMenu.HideIssuesMenu();
|
|
261
|
+
}
|
|
261
262
|
this.aggregatedIssuesCount = null;
|
|
262
263
|
this.hasBeenExpandedBefore = false;
|
|
263
264
|
}
|
|
@@ -318,10 +319,6 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
318
319
|
|
|
319
320
|
private appendHeader(): void {
|
|
320
321
|
const header = document.createElement('div');
|
|
321
|
-
if (Root.Runtime.experiments.isEnabled('hideIssuesFeature')) {
|
|
322
|
-
header.addEventListener('mouseenter', this.showHiddenIssuesMenu.bind(this));
|
|
323
|
-
header.addEventListener('mouseleave', this.hideHiddenIssuesMenu.bind(this));
|
|
324
|
-
}
|
|
325
322
|
header.classList.add('header');
|
|
326
323
|
this.issueKindIcon = new IconButton.Icon.Icon();
|
|
327
324
|
this.issueKindIcon.classList.add('leading-issue-icon');
|
|
@@ -339,19 +336,12 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
339
336
|
title.classList.add('title');
|
|
340
337
|
title.textContent = this.description.title;
|
|
341
338
|
header.appendChild(title);
|
|
342
|
-
if (
|
|
339
|
+
if (this.hiddenIssuesMenu) {
|
|
343
340
|
header.appendChild(this.hiddenIssuesMenu);
|
|
344
341
|
}
|
|
345
342
|
this.updateFromIssue();
|
|
346
343
|
this.listItemElement.appendChild(header);
|
|
347
344
|
}
|
|
348
|
-
private showHiddenIssuesMenu(): void {
|
|
349
|
-
this.hiddenIssuesMenu?.setVisible(true);
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
private hideHiddenIssuesMenu(): void {
|
|
353
|
-
this.hiddenIssuesMenu?.setVisible(false);
|
|
354
|
-
}
|
|
355
345
|
|
|
356
346
|
onexpand(): void {
|
|
357
347
|
Host.userMetrics.issuesPanelIssueExpanded(this.issue.getCategory());
|
|
@@ -378,18 +368,20 @@ export class IssueView extends UI.TreeOutline.TreeElement {
|
|
|
378
368
|
this.aggregatedIssuesCount.textContent = `${this.issue.getAggregatedIssuesCount()}`;
|
|
379
369
|
}
|
|
380
370
|
this.listItemElement.classList.toggle('hidden-issue', this.issue.isHidden());
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
371
|
+
if (this.hiddenIssuesMenu) {
|
|
372
|
+
const data: HiddenIssuesMenuData = {
|
|
373
|
+
menuItemLabel: this.issue.isHidden() ? i18nString(UIStrings.unhideIssuesLikeThis) :
|
|
374
|
+
i18nString(UIStrings.hideIssuesLikeThis),
|
|
375
|
+
menuItemAction: () => {
|
|
376
|
+
const setting = IssuesManager.IssuesManager.getHideIssueByCodeSetting();
|
|
377
|
+
const values = setting.get();
|
|
378
|
+
values[this.issue.code()] = this.issue.isHidden() ? IssuesManager.IssuesManager.IssueStatus.Unhidden :
|
|
379
|
+
IssuesManager.IssuesManager.IssueStatus.Hidden;
|
|
380
|
+
setting.set(values);
|
|
381
|
+
},
|
|
382
|
+
};
|
|
383
|
+
this.hiddenIssuesMenu.data = data;
|
|
384
|
+
}
|
|
393
385
|
}
|
|
394
386
|
|
|
395
387
|
updateAffectedResourceVisibility(): void {
|
|
@@ -30,7 +30,6 @@ export interface HiddenIssuesMenuData {
|
|
|
30
30
|
export class HideIssuesMenu extends HTMLElement {
|
|
31
31
|
static readonly litTagName = LitHtml.literal`devtools-hide-issues-menu`;
|
|
32
32
|
private readonly shadow: ShadowRoot = this.attachShadow({mode: 'open'});
|
|
33
|
-
private visible: boolean = false;
|
|
34
33
|
private menuItemLabel: Common.UIString.LocalizedString = Common.UIString.LocalizedEmptyString;
|
|
35
34
|
private menuItemAction: () => void = () => {};
|
|
36
35
|
|
|
@@ -44,23 +43,20 @@ export class HideIssuesMenu extends HTMLElement {
|
|
|
44
43
|
this.shadow.adoptedStyleSheets = [hideIssuesMenuStyles];
|
|
45
44
|
}
|
|
46
45
|
|
|
47
|
-
setVisible(x: boolean): void {
|
|
48
|
-
if (this.visible === x) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
this.visible = x;
|
|
52
|
-
this.render();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
46
|
onMenuOpen(event: Event): void {
|
|
56
47
|
event.stopPropagation();
|
|
57
|
-
const contextMenu = new UI.ContextMenu.ContextMenu(event, {
|
|
48
|
+
const contextMenu = new UI.ContextMenu.ContextMenu(event, {
|
|
49
|
+
useSoftMenu: true,
|
|
50
|
+
onSoftMenuClosed: (): void => {
|
|
51
|
+
this.classList.toggle('has-context-menu-opened', false);
|
|
52
|
+
},
|
|
53
|
+
});
|
|
58
54
|
contextMenu.headerSection().appendItem(this.menuItemLabel, () => this.menuItemAction());
|
|
59
55
|
contextMenu.show();
|
|
56
|
+
this.classList.toggle('has-context-menu-opened', true);
|
|
60
57
|
}
|
|
61
58
|
|
|
62
59
|
private render(): void {
|
|
63
|
-
this.classList.toggle('hidden', !this.visible);
|
|
64
60
|
// Disabled until https://crbug.com/1079231 is fixed.
|
|
65
61
|
// clang-format off
|
|
66
62
|
LitHtml.render(LitHtml.html`
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
.issue-category.hidden-issues.parent.expanded,
|
|
53
53
|
.issue-kind.parent.expanded {
|
|
54
|
-
border-width: 0 0 1px
|
|
54
|
+
border-width: 0 0 1px;
|
|
55
55
|
background-color: var(--color-background-elevation-1);
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -95,6 +95,18 @@ p {
|
|
|
95
95
|
width: 100%;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
.header devtools-hide-issues-menu {
|
|
99
|
+
display: none;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.header:hover devtools-hide-issues-menu {
|
|
103
|
+
display: block;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.header devtools-hide-issues-menu.has-context-menu-opened {
|
|
107
|
+
display: block;
|
|
108
|
+
}
|
|
109
|
+
|
|
98
110
|
.issue-category .header,
|
|
99
111
|
.issue-kind .header {
|
|
100
112
|
line-height: 24px;
|
|
@@ -131,7 +143,7 @@ p {
|
|
|
131
143
|
|
|
132
144
|
/* Show a colored border on the left side of opened issues. */
|
|
133
145
|
.body::before {
|
|
134
|
-
content:
|
|
146
|
+
content: "";
|
|
135
147
|
display: block;
|
|
136
148
|
position: absolute;
|
|
137
149
|
left: calc(var(--issue-indent) + 23px);
|
|
@@ -181,7 +193,7 @@ devtools-icon.leading-issue-icon {
|
|
|
181
193
|
}
|
|
182
194
|
|
|
183
195
|
.separator::before {
|
|
184
|
-
content:
|
|
196
|
+
content: "·";
|
|
185
197
|
padding-left: 1ex;
|
|
186
198
|
padding-right: 1ex;
|
|
187
199
|
}
|
|
@@ -250,7 +262,7 @@ ul > li.plain-enum::before {
|
|
|
250
262
|
}
|
|
251
263
|
|
|
252
264
|
.affected-resources-label + .affected-resources {
|
|
253
|
-
padding: 3px 0 0
|
|
265
|
+
padding: 3px 0 0;
|
|
254
266
|
position: relative;
|
|
255
267
|
user-select: text;
|
|
256
268
|
}
|
|
@@ -382,7 +394,7 @@ ul > li.plain-enum::before {
|
|
|
382
394
|
|
|
383
395
|
.affected-resources > .parent {
|
|
384
396
|
margin-top: 0;
|
|
385
|
-
padding: 2px 5px 0
|
|
397
|
+
padding: 2px 5px 0;
|
|
386
398
|
}
|
|
387
399
|
|
|
388
400
|
.affected-resources > .parent.expanded {
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.lighthouse-form-section-label {
|
|
55
|
-
margin: 7px 0
|
|
55
|
+
margin: 7px 0;
|
|
56
56
|
font-weight: 500;
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -129,6 +129,6 @@ input[type="radio"]:focus {
|
|
|
129
129
|
}
|
|
130
130
|
|
|
131
131
|
.lighthouse-warning-text::before {
|
|
132
|
-
content:
|
|
132
|
+
content: "⚠";
|
|
133
133
|
margin-right: 10px;
|
|
134
134
|
}
|
|
@@ -958,11 +958,24 @@ export class NetworkLogView extends Common.ObjectWrapper.eventMixin<EventTypes,
|
|
|
958
958
|
(initiatorLink as HTMLElement).focus();
|
|
959
959
|
}
|
|
960
960
|
}
|
|
961
|
+
|
|
961
962
|
if (isEnterOrSpaceKey(event)) {
|
|
962
963
|
this.dispatchEventToListeners(Events.RequestActivated, {showPanel: true, takeFocus: true});
|
|
963
964
|
event.consume(true);
|
|
964
965
|
}
|
|
965
966
|
});
|
|
967
|
+
this.dataGrid.element.addEventListener('keyup', event => {
|
|
968
|
+
if ((event.key === 'r' || event.key === 'R') && this.dataGrid.selectedNode) {
|
|
969
|
+
const request = (this.dataGrid.selectedNode as NetworkNode).request();
|
|
970
|
+
if (!request) {
|
|
971
|
+
return;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
if (SDK.NetworkManager.NetworkManager.canReplayRequest(request)) {
|
|
975
|
+
SDK.NetworkManager.NetworkManager.replayRequest(request);
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
});
|
|
966
979
|
this.dataGrid.element.addEventListener('focus', this.onDataGridFocus.bind(this), true);
|
|
967
980
|
this.dataGrid.element.addEventListener('blur', this.onDataGridBlur.bind(this), true);
|
|
968
981
|
return this.dataGrid;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import type * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
|
+
import * as Platform from '../../core/platform/platform.js';
|
|
7
8
|
import type * as SDK from '../../core/sdk/sdk.js';
|
|
8
9
|
import * as Logs from '../../models/logs/logs.js';
|
|
9
10
|
import type * as TextUtils from '../../models/text_utils/text_utils.js';
|
|
@@ -89,7 +90,8 @@ export class NetworkSearchScope implements Search.SearchConfig.SearchScope {
|
|
|
89
90
|
|
|
90
91
|
function stringMatchesQuery(string: string): boolean {
|
|
91
92
|
const flags = searchConfig.ignoreCase() ? 'i' : '';
|
|
92
|
-
const regExps =
|
|
93
|
+
const regExps =
|
|
94
|
+
searchConfig.queries().map(query => new RegExp(Platform.StringUtilities.escapeForRegExp(query), flags));
|
|
93
95
|
let pos = 0;
|
|
94
96
|
for (const regExp of regExps) {
|
|
95
97
|
const match = string.substr(pos).match(regExp);
|
|
@@ -491,6 +491,8 @@ export class RequestPayloadView extends UI.Widget.VBox {
|
|
|
491
491
|
private createToggleButton(title: string): Element {
|
|
492
492
|
const button = document.createElement('span');
|
|
493
493
|
button.classList.add('payload-toggle');
|
|
494
|
+
button.tabIndex = 0;
|
|
495
|
+
button.setAttribute('role', 'button');
|
|
494
496
|
button.textContent = title;
|
|
495
497
|
return button;
|
|
496
498
|
}
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
border-bottom: 0;
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
.network-summary-bar span[is=dt-icon-label] {
|
|
65
|
+
.network-summary-bar span[is="dt-icon-label"] {
|
|
66
66
|
margin-right: 6px;
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -243,7 +243,7 @@
|
|
|
243
243
|
filter: brightness(0) invert(1);
|
|
244
244
|
}
|
|
245
245
|
|
|
246
|
-
.network-log-grid.data-grid:focus .data-grid-data-grid-node.selected [is=ui-icon].icon-mask {
|
|
246
|
+
.network-log-grid.data-grid:focus .data-grid-data-grid-node.selected [is="ui-icon"].icon-mask {
|
|
247
247
|
--network-grid-selected-color: #dadce0;
|
|
248
248
|
--override-icon-mask-background-color: var(--network-grid-selected-color);
|
|
249
249
|
}
|
|
@@ -446,7 +446,7 @@
|
|
|
446
446
|
background-color: canvas;
|
|
447
447
|
}
|
|
448
448
|
|
|
449
|
-
.network-waterfall-header:hover .sort-order-icon-container [is=ui-icon].icon-mask {
|
|
449
|
+
.network-waterfall-header:hover .sort-order-icon-container [is="ui-icon"].icon-mask {
|
|
450
450
|
background-color: HighlightText;
|
|
451
451
|
}
|
|
452
452
|
}
|
|
@@ -64,6 +64,11 @@
|
|
|
64
64
|
color: var(--color-text-primary);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
+
.tree-outline li.expanded .payload-toggle:focus-visible {
|
|
68
|
+
border: 2px solid var(--color-button-outline-focus);
|
|
69
|
+
border-radius: 5px;
|
|
70
|
+
}
|
|
71
|
+
|
|
67
72
|
.tree-outline li .header-toggle:hover {
|
|
68
73
|
color: var(--color-text-secondary);
|
|
69
74
|
cursor: pointer;
|
|
@@ -16,10 +16,10 @@
|
|
|
16
16
|
.profile-launcher-view-content h1 {
|
|
17
17
|
font-size: 15px;
|
|
18
18
|
font-weight: normal;
|
|
19
|
-
margin: 6px 0 10px
|
|
19
|
+
margin: 6px 0 10px;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
.profile-launcher-view-content [is=dt-radio] {
|
|
22
|
+
.profile-launcher-view-content [is="dt-radio"] {
|
|
23
23
|
font-size: 13px;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
margin-left: 22px;
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
.profile-launcher-view-content p [is=dt-checkbox] {
|
|
32
|
+
.profile-launcher-view-content p [is="dt-checkbox"] {
|
|
33
33
|
display: flex;
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -142,6 +142,7 @@ export class ProtocolMonitorImpl extends UI.Widget.VBox {
|
|
|
142
142
|
clearButton.addEventListener(UI.Toolbar.ToolbarButton.Events.Click, () => {
|
|
143
143
|
this.messages = [];
|
|
144
144
|
this.dataGridIntegrator.update({...this.dataGridIntegrator.data(), rows: []});
|
|
145
|
+
this.infoWidget.render(null);
|
|
145
146
|
});
|
|
146
147
|
topToolbar.appendToolbarItem(clearButton);
|
|
147
148
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
flex: none;
|
|
36
36
|
width: 16px;
|
|
37
37
|
height: 16px;
|
|
38
|
-
margin: 0
|
|
38
|
+
margin: 0;
|
|
39
39
|
}
|
|
40
40
|
/* Separate the middle icon from the other two. */
|
|
41
41
|
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
|
|
66
66
|
.triangle-pointer-container {
|
|
67
67
|
margin: 8px 24px 0;
|
|
68
|
-
padding: 0
|
|
68
|
+
padding: 0;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
.triangle-pointer-wrapper {
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
.orientation-left::after,
|
|
186
186
|
.orientation-right::before,
|
|
187
187
|
.orientation-right::after {
|
|
188
|
-
content:
|
|
188
|
+
content: "";
|
|
189
189
|
width: 8px;
|
|
190
190
|
height: 6px;
|
|
191
191
|
}
|
|
@@ -242,7 +242,7 @@
|
|
|
242
242
|
.orientation-top::after,
|
|
243
243
|
.orientation-bottom::before,
|
|
244
244
|
.orientation-bottom::after {
|
|
245
|
-
content:
|
|
245
|
+
content: "";
|
|
246
246
|
width: 8px;
|
|
247
247
|
height: 8px;
|
|
248
248
|
}
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
.devices-list-item {
|
|
32
|
-
padding: 3px 5px
|
|
32
|
+
padding: 3px 5px;
|
|
33
33
|
height: 30px;
|
|
34
34
|
display: flex;
|
|
35
35
|
align-items: center;
|
|
@@ -104,7 +104,7 @@ li .devices-edit-client-hints-heading {
|
|
|
104
104
|
|
|
105
105
|
.devices-edit-fields input {
|
|
106
106
|
flex: auto;
|
|
107
|
-
margin: 8px 5px 0
|
|
107
|
+
margin: 8px 5px 0;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
li.devices-edit-client-hints-field {
|
|
@@ -114,7 +114,7 @@ li.devices-edit-client-hints-field {
|
|
|
114
114
|
|
|
115
115
|
.devices-edit-client-hints-field input {
|
|
116
116
|
flex: auto;
|
|
117
|
-
margin: 8px 5px 0
|
|
117
|
+
margin: 8px 5px 0;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.devices-edit-fields .device-edit-fixed {
|
|
@@ -122,5 +122,5 @@ li.devices-edit-client-hints-field {
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
.devices-edit-fields select {
|
|
125
|
-
margin: 8px 5px 0
|
|
125
|
+
margin: 8px 5px 0;
|
|
126
126
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
.settings-window-main {
|
|
8
8
|
color: var(--color-text-primary);
|
|
9
9
|
background-color: var(--color-background);
|
|
10
|
-
padding: 11px 0 0
|
|
10
|
+
padding: 11px 0 0;
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.settings-content {
|
|
@@ -101,7 +101,7 @@ fieldset {
|
|
|
101
101
|
color: inherit;
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
.settings-content input[type=checkbox] {
|
|
104
|
+
.settings-content input[type="checkbox"] {
|
|
105
105
|
margin: 1px 7px 1px 2px;
|
|
106
106
|
}
|
|
107
107
|
|
|
@@ -25,7 +25,7 @@ const UIStrings = {
|
|
|
25
25
|
*@description Text to show in the status bar if coverage data is available
|
|
26
26
|
*@example {12.3} PH1
|
|
27
27
|
*/
|
|
28
|
-
coverageS: 'Coverage: {PH1}
|
|
28
|
+
coverageS: 'Coverage: {PH1}',
|
|
29
29
|
/**
|
|
30
30
|
*@description Text to be shown in the status bar if no coverage data is available
|
|
31
31
|
*/
|
|
@@ -96,7 +96,12 @@ export class CoveragePlugin extends Plugin {
|
|
|
96
96
|
private updateStats(): void {
|
|
97
97
|
if (this.coverage) {
|
|
98
98
|
this.infoInToolbar.setTitle(i18nString(UIStrings.showDetails));
|
|
99
|
-
|
|
99
|
+
const formatter = new Intl.NumberFormat(i18n.DevToolsLocale.DevToolsLocale.instance().locale, {
|
|
100
|
+
style: 'percent',
|
|
101
|
+
maximumFractionDigits: 1,
|
|
102
|
+
});
|
|
103
|
+
this.infoInToolbar.setText(
|
|
104
|
+
i18nString(UIStrings.coverageS, {PH1: formatter.format(this.coverage.usedPercentage())}));
|
|
100
105
|
} else {
|
|
101
106
|
this.infoInToolbar.setTitle(i18nString(UIStrings.clickToShowCoveragePanel));
|
|
102
107
|
this.infoInToolbar.setText(i18nString(UIStrings.coverageNa));
|
|
@@ -191,13 +191,20 @@ export class DebuggerPausedMessage {
|
|
|
191
191
|
} else if (details.reason === Protocol.Debugger.PausedEventReason.EventListener) {
|
|
192
192
|
let eventNameForUI = '';
|
|
193
193
|
if (details.auxData) {
|
|
194
|
-
|
|
195
|
-
SDK.
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
194
|
+
const maybeNonDomEventNameForUI =
|
|
195
|
+
SDK.EventBreakpointsModel.EventBreakpointsManager.instance().resolveEventListenerBreakpointTitle(
|
|
196
|
+
(details.auxData as {eventName: string}));
|
|
197
|
+
if (maybeNonDomEventNameForUI) {
|
|
198
|
+
eventNameForUI = maybeNonDomEventNameForUI;
|
|
199
|
+
} else {
|
|
200
|
+
eventNameForUI = SDK.DOMDebuggerModel.DOMDebuggerManager.instance().resolveEventListenerBreakpointTitle(
|
|
201
|
+
(details.auxData as {
|
|
202
|
+
directiveText: string,
|
|
203
|
+
eventName: string,
|
|
204
|
+
targetName: string,
|
|
205
|
+
webglErrorName: string,
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
201
208
|
}
|
|
202
209
|
messageWrapper = buildWrapper(i18nString(UIStrings.pausedOnEventListener), eventNameForUI);
|
|
203
210
|
} else if (details.reason === Protocol.Debugger.PausedEventReason.XHR) {
|