chrome-devtools-frontend 1.0.934269 → 1.0.935784
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/config/gni/all_devtools_files.gni +0 -13
- package/config/gni/devtools_grd_files.gni +5 -8
- package/front_end/Tests.js +15 -2
- package/front_end/core/host/UserMetrics.ts +0 -1
- package/front_end/core/i18n/locales/en-US.json +15 -3
- package/front_end/core/i18n/locales/en-XL.json +15 -3
- package/front_end/core/root/Runtime.ts +0 -1
- package/front_end/core/sdk/DOMModel.ts +3 -3
- package/front_end/core/sdk/sdk-meta.ts +3 -0
- package/front_end/entrypoints/devtools_app/devtools_app.json +0 -1
- package/front_end/entrypoints/inspector_main/RenderingOptions.ts +1 -1
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +1 -0
- package/front_end/entrypoints/main/MainImpl.ts +1 -11
- package/front_end/entrypoints/main/main-meta.ts +2 -1
- package/front_end/entrypoints/shell/shell.json +0 -6
- package/front_end/entrypoints/worker_app/worker_app.json +0 -1
- package/front_end/models/emulation/EmulatedDevices.ts +306 -84
- package/front_end/models/issues_manager/IssuesManager.ts +2 -2
- package/front_end/models/issues_manager/{DeprecationIssue.ts → NavigatorUserAgentIssue.ts} +4 -4
- package/front_end/models/issues_manager/issues_manager.ts +2 -2
- package/front_end/panels/application/module.json +0 -2
- package/front_end/panels/changes/changes-meta.ts +0 -3
- package/front_end/panels/console/module.json +0 -2
- package/front_end/panels/coverage/module.json +0 -1
- package/front_end/panels/css_overview/module.json +1 -2
- package/front_end/panels/developer_resources/developer_resources-meta.ts +0 -2
- package/front_end/panels/elements/ElementsTreeElement.ts +1 -1
- package/front_end/panels/elements/StylesSidebarPane.ts +15 -0
- package/front_end/panels/elements/elements-meta.ts +5 -0
- package/front_end/panels/emulation/DeviceModeWrapper.ts +4 -0
- package/front_end/panels/event_listeners/module.json +1 -2
- package/front_end/panels/lighthouse/LighthouseProtocolService.ts +1 -5
- package/front_end/panels/media/module.json +0 -1
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +1 -0
- package/front_end/panels/network/module.json +0 -3
- package/front_end/panels/network/network-meta.ts +2 -0
- package/front_end/panels/profiler/module.json +1 -3
- package/front_end/panels/profiler/profiler-meta.ts +1 -0
- package/front_end/panels/profiler/profilesPanel.css +1 -1
- package/front_end/panels/sensors/sensors-meta.ts +1 -0
- package/front_end/panels/settings/emulation/devicesSettingsTab.css +1 -1
- package/front_end/panels/sources/CallStackSidebarPane.ts +21 -0
- package/front_end/panels/sources/NavigatorView.ts +8 -8
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +15 -0
- package/front_end/panels/sources/module.json +0 -4
- package/front_end/panels/sources/sources-meta.ts +12 -0
- package/front_end/panels/sources/watchExpressionsSidebarPane.css +10 -3
- package/front_end/panels/timeline/module.json +0 -1
- package/front_end/panels/timeline/timeline-meta.ts +1 -0
- package/front_end/panels/webauthn/module.json +0 -1
- package/front_end/ui/components/text_editor/config.ts +1 -1
- package/front_end/ui/components/text_editor/theme.ts +13 -0
- package/front_end/ui/legacy/GlassPane.ts +4 -0
- package/front_end/ui/legacy/InspectorView.ts +0 -4
- package/front_end/ui/legacy/TabbedPane.ts +4 -0
- package/front_end/ui/legacy/ViewManager.ts +10 -2
- package/front_end/ui/legacy/components/cookie_table/module.json +1 -2
- package/front_end/ui/legacy/components/data_grid/DataGrid.ts +3 -1
- package/front_end/ui/legacy/components/data_grid/dataGrid.css +5 -0
- package/front_end/ui/legacy/components/inline_editor/CSSLength.ts +10 -3
- package/front_end/ui/legacy/components/inline_editor/CSSShadowEditor.ts +1 -1
- package/front_end/ui/legacy/components/inline_editor/cssLength.css +30 -9
- package/front_end/ui/legacy/components/object_ui/CustomPreviewComponent.ts +2 -1
- package/front_end/ui/legacy/components/object_ui/ObjectPopoverHelper.ts +4 -3
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +5 -5
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +1 -0
- package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +3 -1
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +0 -3
- package/front_end/ui/legacy/components/source_frame/module.json +1 -2
- package/front_end/ui/legacy/components/source_frame/source_frame-meta.ts +1 -0
- package/front_end/ui/legacy/themeColors.css +4 -0
- package/package.json +1 -1
- package/front_end/panels/changes/module.json +0 -7
- package/front_end/panels/developer_resources/module.json +0 -6
- package/front_end/panels/search/module.json +0 -5
- package/front_end/panels/snippets/module.json +0 -6
- package/front_end/ui/legacy/components/data_grid/module.json +0 -8
- package/front_end/ui/legacy/components/object_ui/module.json +0 -11
- package/front_end/ui/legacy/components/quick_open/module.json +0 -8
|
@@ -160,6 +160,18 @@ const UIStrings = {
|
|
|
160
160
|
*@description Tooltip text that appears when hovering over the largeicon add button in the Styles Sidebar Pane of the Elements panel
|
|
161
161
|
*/
|
|
162
162
|
newStyleRule: 'New Style Rule',
|
|
163
|
+
/**
|
|
164
|
+
*@description Text that is announced by the screen reader when the user focuses on an input field for entering the name of a CSS property in the Styles panel
|
|
165
|
+
*/
|
|
166
|
+
cssPropertyName: '`CSS` property name',
|
|
167
|
+
/**
|
|
168
|
+
*@description Text that is announced by the screen reader when the user focuses on an input field for entering the value of a CSS property in the Styles panel
|
|
169
|
+
*/
|
|
170
|
+
cssPropertyValue: '`CSS` property value',
|
|
171
|
+
/**
|
|
172
|
+
*@description Text that is announced by the screen reader when the user focuses on an input field for editing the name of a CSS selector in the Styles panel
|
|
173
|
+
*/
|
|
174
|
+
cssSelector: '`CSS` selector',
|
|
163
175
|
};
|
|
164
176
|
|
|
165
177
|
const str_ = i18n.i18n.registerUIStrings('panels/elements/StylesSidebarPane.ts', UIStrings);
|
|
@@ -1235,6 +1247,7 @@ export class StylePropertiesSection {
|
|
|
1235
1247
|
|
|
1236
1248
|
const selectorContainer = document.createElement('div');
|
|
1237
1249
|
this.selectorElement = document.createElement('span');
|
|
1250
|
+
UI.ARIAUtils.setAccessibleName(this.selectorElement, i18nString(UIStrings.cssSelector));
|
|
1238
1251
|
this.selectorElement.classList.add('selector');
|
|
1239
1252
|
this.selectorElement.textContent = this.headerText();
|
|
1240
1253
|
selectorContainer.appendChild(this.selectorElement);
|
|
@@ -2985,6 +2998,7 @@ export class StylesSidebarPropertyRenderer {
|
|
|
2985
2998
|
|
|
2986
2999
|
renderName(): Element {
|
|
2987
3000
|
const nameElement = document.createElement('span');
|
|
3001
|
+
UI.ARIAUtils.setAccessibleName(nameElement, i18nString(UIStrings.cssPropertyName));
|
|
2988
3002
|
nameElement.className = 'webkit-css-property';
|
|
2989
3003
|
nameElement.textContent = this.propertyName;
|
|
2990
3004
|
nameElement.normalize();
|
|
@@ -2993,6 +3007,7 @@ export class StylesSidebarPropertyRenderer {
|
|
|
2993
3007
|
|
|
2994
3008
|
renderValue(): Element {
|
|
2995
3009
|
const valueElement = document.createElement('span');
|
|
3010
|
+
UI.ARIAUtils.setAccessibleName(valueElement, i18nString(UIStrings.cssPropertyValue));
|
|
2996
3011
|
valueElement.className = 'value';
|
|
2997
3012
|
if (!this.propertyValue) {
|
|
2998
3013
|
return valueElement;
|
|
@@ -379,6 +379,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
379
379
|
|
|
380
380
|
Common.Settings.registerSettingExtension({
|
|
381
381
|
category: Common.Settings.SettingCategory.ELEMENTS,
|
|
382
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
382
383
|
order: 1,
|
|
383
384
|
title: i18nLazyString(UIStrings.showUserAgentShadowDOM),
|
|
384
385
|
settingName: 'showUAShadowDOM',
|
|
@@ -388,6 +389,7 @@ Common.Settings.registerSettingExtension({
|
|
|
388
389
|
|
|
389
390
|
Common.Settings.registerSettingExtension({
|
|
390
391
|
category: Common.Settings.SettingCategory.ELEMENTS,
|
|
392
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
391
393
|
order: 2,
|
|
392
394
|
title: i18nLazyString(UIStrings.wordWrap),
|
|
393
395
|
settingName: 'domWordWrap',
|
|
@@ -407,6 +409,7 @@ Common.Settings.registerSettingExtension({
|
|
|
407
409
|
|
|
408
410
|
Common.Settings.registerSettingExtension({
|
|
409
411
|
category: Common.Settings.SettingCategory.ELEMENTS,
|
|
412
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
410
413
|
order: 3,
|
|
411
414
|
title: i18nLazyString(UIStrings.showHtmlComments),
|
|
412
415
|
settingName: 'showHTMLComments',
|
|
@@ -426,6 +429,7 @@ Common.Settings.registerSettingExtension({
|
|
|
426
429
|
|
|
427
430
|
Common.Settings.registerSettingExtension({
|
|
428
431
|
category: Common.Settings.SettingCategory.ELEMENTS,
|
|
432
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
429
433
|
order: 4,
|
|
430
434
|
title: i18nLazyString(UIStrings.revealDomNodeOnHover),
|
|
431
435
|
settingName: 'highlightNodeOnHoverInOverlay',
|
|
@@ -435,6 +439,7 @@ Common.Settings.registerSettingExtension({
|
|
|
435
439
|
|
|
436
440
|
Common.Settings.registerSettingExtension({
|
|
437
441
|
category: Common.Settings.SettingCategory.ELEMENTS,
|
|
442
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
438
443
|
order: 5,
|
|
439
444
|
title: i18nLazyString(UIStrings.showDetailedInspectTooltip),
|
|
440
445
|
settingName: 'showDetailedInspectTooltip',
|
|
@@ -56,6 +56,10 @@ export class DeviceModeWrapper extends UI.Widget.VBox {
|
|
|
56
56
|
this.showDeviceModeSetting.set(!this.showDeviceModeSetting.get());
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
isDeviceModeOn(): boolean {
|
|
60
|
+
return this.showDeviceModeSetting.get();
|
|
61
|
+
}
|
|
62
|
+
|
|
59
63
|
captureScreenshot(fullSize?: boolean, clip?: Protocol.Page.Viewport): boolean {
|
|
60
64
|
if (!this.deviceModeView) {
|
|
61
65
|
this.deviceModeView = new DeviceModeView();
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
import type * as ProtocolClient from '../../core/protocol_client/protocol_client.js';
|
|
7
7
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
8
|
-
import * as Root from '../../core/root/root.js';
|
|
9
8
|
|
|
10
9
|
import type * as ReportRenderer from './LighthouseReporterTypes.js';
|
|
11
10
|
|
|
@@ -35,10 +34,7 @@ export class ProtocolService {
|
|
|
35
34
|
}
|
|
36
35
|
|
|
37
36
|
getLocales(): readonly string[] {
|
|
38
|
-
|
|
39
|
-
return [i18n.DevToolsLocale.DevToolsLocale.instance().locale];
|
|
40
|
-
}
|
|
41
|
-
return navigator.languages;
|
|
37
|
+
return [i18n.DevToolsLocale.DevToolsLocale.instance().locale];
|
|
42
38
|
}
|
|
43
39
|
|
|
44
40
|
startLighthouse(auditURL: string, categoryIDs: string[], flags: Object): Promise<ReportRenderer.RunnerResult> {
|
|
@@ -132,6 +132,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
Common.Settings.registerSettingExtension({
|
|
135
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
135
136
|
settingName: 'customNetworkConditions',
|
|
136
137
|
settingType: Common.Settings.SettingType.ARRAY,
|
|
137
138
|
defaultValue: [],
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": [
|
|
3
3
|
"ui/legacy/components/cookie_table",
|
|
4
|
-
"ui/legacy/components/data_grid",
|
|
5
4
|
"panels/mobile_throttling",
|
|
6
|
-
"ui/legacy/components/object_ui",
|
|
7
5
|
"ui/legacy/components/perf_ui",
|
|
8
|
-
"panels/search",
|
|
9
6
|
"ui/legacy/components/source_frame",
|
|
10
7
|
"ui/legacy"
|
|
11
8
|
]
|
|
@@ -275,6 +275,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
275
275
|
|
|
276
276
|
Common.Settings.registerSettingExtension({
|
|
277
277
|
category: Common.Settings.SettingCategory.NETWORK,
|
|
278
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
278
279
|
title: i18nLazyString(UIStrings.colorcodeResourceTypes),
|
|
279
280
|
settingName: 'networkColorCodeResourceTypes',
|
|
280
281
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -297,6 +298,7 @@ Common.Settings.registerSettingExtension({
|
|
|
297
298
|
|
|
298
299
|
Common.Settings.registerSettingExtension({
|
|
299
300
|
category: Common.Settings.SettingCategory.NETWORK,
|
|
301
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
300
302
|
title: i18nLazyString(UIStrings.groupNetworkLogByFrame),
|
|
301
303
|
settingName: 'network.group-by-frame',
|
|
302
304
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -162,6 +162,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
162
162
|
|
|
163
163
|
Common.Settings.registerSettingExtension({
|
|
164
164
|
category: Common.Settings.SettingCategory.PERFORMANCE,
|
|
165
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
165
166
|
title: i18nLazyString(UIStrings.showNativeFunctions),
|
|
166
167
|
settingName: 'showNativeFunctionsInJSProfile',
|
|
167
168
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -154,6 +154,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
154
154
|
});
|
|
155
155
|
|
|
156
156
|
Common.Settings.registerSettingExtension({
|
|
157
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
157
158
|
settingName: 'emulation.locations',
|
|
158
159
|
settingType: Common.Settings.SettingType.ARRAY,
|
|
159
160
|
// TODO(crbug.com/1136655): http://crrev.com/c/2666426 regressed localization of city titles.
|
|
@@ -82,6 +82,10 @@ const UIStrings = {
|
|
|
82
82
|
*@description A context menu item in the Call Stack Sidebar Pane of the Sources panel
|
|
83
83
|
*/
|
|
84
84
|
addAllContentScriptsToIgnoreList: 'Add all content scripts to ignore list',
|
|
85
|
+
/**
|
|
86
|
+
*@description Text in Call Stack Sidebar Pane of the Sources panel when some call frames have warnings
|
|
87
|
+
*/
|
|
88
|
+
callFrameWarnings: 'Some call frames have warnings',
|
|
85
89
|
};
|
|
86
90
|
const str_ = i18n.i18n.registerUIStrings('panels/sources/CallStackSidebarPane.ts', UIStrings);
|
|
87
91
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -92,6 +96,7 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
92
96
|
UI.ListControl.ListDelegate<Item> {
|
|
93
97
|
private readonly ignoreListMessageElement: Element;
|
|
94
98
|
private readonly notPausedMessageElement: HTMLElement;
|
|
99
|
+
private readonly callFrameWarningsElement: HTMLElement;
|
|
95
100
|
private readonly items: UI.ListModel.ListModel<Item>;
|
|
96
101
|
private list: UI.ListControl.ListControl<Item>;
|
|
97
102
|
private readonly showMoreMessageElement: Element;
|
|
@@ -113,6 +118,12 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
113
118
|
this.notPausedMessageElement.textContent = i18nString(UIStrings.notPaused);
|
|
114
119
|
this.notPausedMessageElement.tabIndex = -1;
|
|
115
120
|
|
|
121
|
+
this.callFrameWarningsElement = this.contentElement.createChild('div', 'ignore-listed-message');
|
|
122
|
+
const icon = UI.Icon.Icon.create('smallicon-warning', 'call-frame-warning-icon');
|
|
123
|
+
this.callFrameWarningsElement.appendChild(icon);
|
|
124
|
+
this.callFrameWarningsElement.appendChild(document.createTextNode(i18nString(UIStrings.callFrameWarnings)));
|
|
125
|
+
this.callFrameWarningsElement.tabIndex = -1;
|
|
126
|
+
|
|
116
127
|
this.items = new UI.ListModel.ListModel();
|
|
117
128
|
this.list = new UI.ListControl.ListControl(this.items, this, UI.ListControl.ListMode.NonViewport);
|
|
118
129
|
this.contentElement.appendChild(this.list.element);
|
|
@@ -164,6 +175,8 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
164
175
|
private async doUpdate(): Promise<void> {
|
|
165
176
|
this.locationPool.disposeAll();
|
|
166
177
|
|
|
178
|
+
this.callFrameWarningsElement.classList.add('hidden');
|
|
179
|
+
|
|
167
180
|
const details = UI.Context.Context.instance().flavor(SDK.DebuggerModel.DebuggerPausedDetails);
|
|
168
181
|
if (!details) {
|
|
169
182
|
this.notPausedMessageElement.classList.remove('hidden');
|
|
@@ -178,6 +191,7 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
178
191
|
this.notPausedMessageElement.classList.add('hidden');
|
|
179
192
|
|
|
180
193
|
const itemPromises = [];
|
|
194
|
+
const uniqueWarnings: Set<string> = new Set();
|
|
181
195
|
for (const frame of details.callFrames) {
|
|
182
196
|
const itemPromise =
|
|
183
197
|
Item.createForDebuggerCallFrame(frame, this.locationPool, this.refreshItem.bind(this)).then(item => {
|
|
@@ -185,8 +199,15 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
185
199
|
return item;
|
|
186
200
|
});
|
|
187
201
|
itemPromises.push(itemPromise);
|
|
202
|
+
for (const warning of frame.warnings) {
|
|
203
|
+
uniqueWarnings.add(warning);
|
|
204
|
+
}
|
|
188
205
|
}
|
|
189
206
|
const items = await Promise.all(itemPromises);
|
|
207
|
+
if (uniqueWarnings.size) {
|
|
208
|
+
this.callFrameWarningsElement.classList.remove('hidden');
|
|
209
|
+
UI.Tooltip.Tooltip.install(this.callFrameWarningsElement, Array.from(uniqueWarnings).join('\n'));
|
|
210
|
+
}
|
|
190
211
|
|
|
191
212
|
let asyncStackTrace: Protocol.Runtime.StackTrace|null|undefined = details.asyncStackTrace;
|
|
192
213
|
if (!asyncStackTrace && details.asyncStackTraceId) {
|
|
@@ -782,8 +782,8 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
|
|
|
782
782
|
this.rename(node, false);
|
|
783
783
|
}
|
|
784
784
|
|
|
785
|
-
private handleContextMenuExclude(project: Workspace.Workspace.Project, path: string): void {
|
|
786
|
-
const shouldExclude =
|
|
785
|
+
private async handleContextMenuExclude(project: Workspace.Workspace.Project, path: string): Promise<void> {
|
|
786
|
+
const shouldExclude = await UI.UIUtils.ConfirmDialog.show(i18nString(UIStrings.areYouSureYouWantToExcludeThis));
|
|
787
787
|
if (shouldExclude) {
|
|
788
788
|
UI.UIUtils.startBatchUpdate();
|
|
789
789
|
project.excludeFolder(
|
|
@@ -792,8 +792,8 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
|
|
|
792
792
|
}
|
|
793
793
|
}
|
|
794
794
|
|
|
795
|
-
private handleContextMenuDelete(uiSourceCode: Workspace.UISourceCode.UISourceCode): void {
|
|
796
|
-
const shouldDelete =
|
|
795
|
+
private async handleContextMenuDelete(uiSourceCode: Workspace.UISourceCode.UISourceCode): Promise<void> {
|
|
796
|
+
const shouldDelete = await UI.UIUtils.ConfirmDialog.show(i18nString(UIStrings.areYouSureYouWantToDeleteThis));
|
|
797
797
|
if (shouldDelete) {
|
|
798
798
|
uiSourceCode.project().deleteFile(uiSourceCode);
|
|
799
799
|
}
|
|
@@ -816,8 +816,8 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
|
|
|
816
816
|
contextMenu.show();
|
|
817
817
|
}
|
|
818
818
|
|
|
819
|
-
private handleDeleteOverrides(node: NavigatorTreeNode): void {
|
|
820
|
-
const shouldRemove =
|
|
819
|
+
private async handleDeleteOverrides(node: NavigatorTreeNode): Promise<void> {
|
|
820
|
+
const shouldRemove = await UI.UIUtils.ConfirmDialog.show(i18nString(UIStrings.areYouSureYouWantToDeleteAll));
|
|
821
821
|
if (shouldRemove) {
|
|
822
822
|
this.handleDeleteOverridesHelper(node);
|
|
823
823
|
}
|
|
@@ -871,8 +871,8 @@ export class NavigatorView extends UI.Widget.VBox implements SDK.TargetManager.O
|
|
|
871
871
|
if (project.type() === Workspace.Workspace.projectTypes.FileSystem) {
|
|
872
872
|
contextMenu.defaultSection().appendAction('sources.add-folder-to-workspace', undefined, true);
|
|
873
873
|
if (node instanceof NavigatorGroupTreeNode) {
|
|
874
|
-
contextMenu.defaultSection().appendItem(i18nString(UIStrings.removeFolderFromWorkspace), () => {
|
|
875
|
-
const shouldRemove =
|
|
874
|
+
contextMenu.defaultSection().appendItem(i18nString(UIStrings.removeFolderFromWorkspace), async () => {
|
|
875
|
+
const shouldRemove = await UI.UIUtils.ConfirmDialog.show(i18nString(UIStrings.areYouSureYouWantToRemoveThis));
|
|
876
876
|
if (shouldRemove) {
|
|
877
877
|
project.remove();
|
|
878
878
|
}
|
|
@@ -303,6 +303,7 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
303
303
|
private textPrompt?: ObjectUI.ObjectPropertiesSection.ObjectPropertyPrompt;
|
|
304
304
|
private result?: SDK.RemoteObject.RemoteObject|null;
|
|
305
305
|
private preventClickTimeout?: number;
|
|
306
|
+
private resizeObserver?: ResizeObserver;
|
|
306
307
|
constructor(
|
|
307
308
|
expression: string|null,
|
|
308
309
|
expandController: ObjectUI.ObjectPropertiesSection.ObjectPropertiesSectionsTreeExpandController,
|
|
@@ -412,6 +413,7 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
412
413
|
if (this.expressionInternal) {
|
|
413
414
|
this.expandController.stopWatchSectionsWithId(this.expressionInternal);
|
|
414
415
|
}
|
|
416
|
+
this.resizeObserver?.disconnect();
|
|
415
417
|
this.expressionInternal = newExpression;
|
|
416
418
|
this.update();
|
|
417
419
|
this.dispatchEventToListeners(Events.ExpressionUpdated, this);
|
|
@@ -442,6 +444,19 @@ export class WatchExpression extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
442
444
|
expressionValue?: SDK.RemoteObject.RemoteObject, exceptionDetails?: Protocol.Runtime.ExceptionDetails): Element {
|
|
443
445
|
const headerElement = this.element.createChild('div', 'watch-expression-header');
|
|
444
446
|
const deleteButton = UI.Icon.Icon.create('smallicon-cross', 'watch-expression-delete-button');
|
|
447
|
+
this.resizeObserver = new ResizeObserver(entries => {
|
|
448
|
+
entries.forEach(entry => {
|
|
449
|
+
// 55 serves as a width threshold here (in px)
|
|
450
|
+
if (entry.contentRect.width < 55) {
|
|
451
|
+
deleteButton.classList.remove('right-aligned');
|
|
452
|
+
deleteButton.classList.add('left-aligned');
|
|
453
|
+
} else {
|
|
454
|
+
deleteButton.classList.remove('left-aligned');
|
|
455
|
+
deleteButton.classList.add('right-aligned');
|
|
456
|
+
}
|
|
457
|
+
});
|
|
458
|
+
});
|
|
459
|
+
this.resizeObserver.observe(headerElement);
|
|
445
460
|
UI.Tooltip.Tooltip.install(deleteButton, i18nString(UIStrings.deleteWatchExpression));
|
|
446
461
|
deleteButton.addEventListener('click', this.deleteWatchExpression.bind(this), false);
|
|
447
462
|
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": [
|
|
3
3
|
"ui/legacy",
|
|
4
|
-
"panels/search",
|
|
5
4
|
"ui/legacy/components/source_frame",
|
|
6
|
-
"panels/snippets",
|
|
7
|
-
"ui/legacy/components/quick_open",
|
|
8
5
|
"ui/legacy/components/inline_editor",
|
|
9
6
|
"ui/legacy/components/color_picker",
|
|
10
7
|
"panels/event_listeners",
|
|
11
|
-
"ui/legacy/components/object_ui",
|
|
12
8
|
"panels/coverage"
|
|
13
9
|
]
|
|
14
10
|
}
|
|
@@ -1249,6 +1249,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1249
1249
|
|
|
1250
1250
|
Common.Settings.registerSettingExtension({
|
|
1251
1251
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1252
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1252
1253
|
title: i18nLazyString(UIStrings.searchInAnonymousAndContent),
|
|
1253
1254
|
settingName: 'searchInAnonymousAndContentScripts',
|
|
1254
1255
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1267,6 +1268,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1267
1268
|
|
|
1268
1269
|
Common.Settings.registerSettingExtension({
|
|
1269
1270
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1271
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1270
1272
|
title: i18nLazyString(UIStrings.automaticallyRevealFilesIn),
|
|
1271
1273
|
settingName: 'autoRevealInNavigator',
|
|
1272
1274
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1285,6 +1287,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1285
1287
|
|
|
1286
1288
|
Common.Settings.registerSettingExtension({
|
|
1287
1289
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1290
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1288
1291
|
title: i18nLazyString(UIStrings.enableJavascriptSourceMaps),
|
|
1289
1292
|
settingName: 'jsSourceMapsEnabled',
|
|
1290
1293
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1303,6 +1306,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1303
1306
|
|
|
1304
1307
|
Common.Settings.registerSettingExtension({
|
|
1305
1308
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1309
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1306
1310
|
title: i18nLazyString(UIStrings.enableTabMovesFocus),
|
|
1307
1311
|
settingName: 'textEditorTabMovesFocus',
|
|
1308
1312
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1321,6 +1325,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1321
1325
|
|
|
1322
1326
|
Common.Settings.registerSettingExtension({
|
|
1323
1327
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1328
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1324
1329
|
title: i18nLazyString(UIStrings.detectIndentation),
|
|
1325
1330
|
settingName: 'textEditorAutoDetectIndent',
|
|
1326
1331
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1339,6 +1344,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1339
1344
|
|
|
1340
1345
|
Common.Settings.registerSettingExtension({
|
|
1341
1346
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1347
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1342
1348
|
title: i18nLazyString(UIStrings.autocompletion),
|
|
1343
1349
|
settingName: 'textEditorAutocompletion',
|
|
1344
1350
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1375,6 +1381,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1375
1381
|
|
|
1376
1382
|
Common.Settings.registerSettingExtension({
|
|
1377
1383
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1384
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1378
1385
|
title: i18nLazyString(UIStrings.codeFolding),
|
|
1379
1386
|
settingName: 'textEditorCodeFolding',
|
|
1380
1387
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1393,6 +1400,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1393
1400
|
|
|
1394
1401
|
Common.Settings.registerSettingExtension({
|
|
1395
1402
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1403
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1396
1404
|
title: i18nLazyString(UIStrings.showWhitespaceCharacters),
|
|
1397
1405
|
settingName: 'showWhitespacesInEditor',
|
|
1398
1406
|
settingType: Common.Settings.SettingType.ENUM,
|
|
@@ -1418,6 +1426,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1418
1426
|
|
|
1419
1427
|
Common.Settings.registerSettingExtension({
|
|
1420
1428
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1429
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1421
1430
|
title: i18nLazyString(UIStrings.displayVariableValuesInlineWhile),
|
|
1422
1431
|
settingName: 'inlineVariableValues',
|
|
1423
1432
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1436,6 +1445,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1436
1445
|
|
|
1437
1446
|
Common.Settings.registerSettingExtension({
|
|
1438
1447
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1448
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1439
1449
|
title: i18nLazyString(UIStrings.enableAutoFocusOnDebuggerPaused),
|
|
1440
1450
|
settingName: 'autoFocusOnDebuggerPausedEnabled',
|
|
1441
1451
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1454,6 +1464,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1454
1464
|
|
|
1455
1465
|
Common.Settings.registerSettingExtension({
|
|
1456
1466
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1467
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1457
1468
|
title: i18nLazyString(UIStrings.enableCssSourceMaps),
|
|
1458
1469
|
settingName: 'cssSourceMapsEnabled',
|
|
1459
1470
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -1472,6 +1483,7 @@ Common.Settings.registerSettingExtension({
|
|
|
1472
1483
|
|
|
1473
1484
|
Common.Settings.registerSettingExtension({
|
|
1474
1485
|
category: Common.Settings.SettingCategory.SOURCES,
|
|
1486
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
1475
1487
|
title: i18nLazyString(UIStrings.allowScrollingPastEndOfFile),
|
|
1476
1488
|
settingName: 'allowScrollPastEof',
|
|
1477
1489
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -7,12 +7,19 @@
|
|
|
7
7
|
.watch-expression-delete-button {
|
|
8
8
|
position: absolute;
|
|
9
9
|
top: 5px;
|
|
10
|
-
right: 16px;
|
|
11
10
|
cursor: pointer;
|
|
12
11
|
opacity: 0%;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
|
-
.
|
|
14
|
+
.right-aligned {
|
|
15
|
+
right: 16px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.left-aligned {
|
|
19
|
+
left: -11px;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.watch-expression-title:hover .watch-expression-delete-button {
|
|
16
23
|
opacity: 100%;
|
|
17
24
|
}
|
|
18
25
|
|
|
@@ -108,7 +115,7 @@ li.watch-expression-editing::before {
|
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
@media (forced-colors: active) {
|
|
111
|
-
.watch-expression-
|
|
118
|
+
.watch-expression-title:hover .watch-expression-delete-button,
|
|
112
119
|
.watch-expressions .dimmed {
|
|
113
120
|
opacity: 100%;
|
|
114
121
|
}
|
|
@@ -390,6 +390,7 @@ UI.ActionRegistration.registerActionExtension({
|
|
|
390
390
|
|
|
391
391
|
Common.Settings.registerSettingExtension({
|
|
392
392
|
category: Common.Settings.SettingCategory.PERFORMANCE,
|
|
393
|
+
storageType: Common.Settings.SettingStorageType.Synced,
|
|
393
394
|
title: i18nLazyString(UIStrings.hideChromeFrameInLayersView),
|
|
394
395
|
settingName: 'frameViewerHideChromeWindow',
|
|
395
396
|
settingType: Common.Settings.SettingType.BOOLEAN,
|
|
@@ -57,7 +57,7 @@ export const tabMovesFocus = DynamicSetting.bool('textEditorTabMovesFocus', CM.k
|
|
|
57
57
|
shift: (view: CM.EditorView): boolean => view.state.doc.length ? CM.indentLess(view) : false,
|
|
58
58
|
}]));
|
|
59
59
|
|
|
60
|
-
export const autocompletion = DynamicSetting.bool('textEditorAutocompletion', CM.autocompletion());
|
|
60
|
+
export const autocompletion = DynamicSetting.bool('textEditorAutocompletion', CM.autocompletion({icons: false}));
|
|
61
61
|
|
|
62
62
|
export const bracketMatching = DynamicSetting.bool('textEditorBracketMatching', CM.bracketMatching());
|
|
63
63
|
|
|
@@ -57,6 +57,11 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
57
57
|
padding: '0 3px 0 9px',
|
|
58
58
|
},
|
|
59
59
|
|
|
60
|
+
'.cm-matchingBracket, .cm-nonmatchingBracket': {
|
|
61
|
+
background: 'transparent',
|
|
62
|
+
borderBottom: 'none',
|
|
63
|
+
},
|
|
64
|
+
|
|
60
65
|
'&:focus-within .cm-matchingBracket': {
|
|
61
66
|
color: 'inherit',
|
|
62
67
|
backgroundColor: 'var(--color-matching-bracket-background)',
|
|
@@ -112,6 +117,14 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
112
117
|
width: 'fit-content',
|
|
113
118
|
},
|
|
114
119
|
|
|
120
|
+
'.cm-tooltip.cm-tooltip-autocomplete > ul': {
|
|
121
|
+
minWidth: '16em',
|
|
122
|
+
'& > li[aria-selected]': {
|
|
123
|
+
backgroundColor: 'var(--color-selected-option-background)',
|
|
124
|
+
color: 'var(--color-selected-option)',
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
|
|
115
128
|
'.cm-highlightedLine': {
|
|
116
129
|
animation: 'cm-fading-highlight 2s 0s',
|
|
117
130
|
},
|
|
@@ -58,6 +58,10 @@ export class GlassPane {
|
|
|
58
58
|
this.widgetInternal.registerRequiredCSS(cssFile);
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
+
registerCSSFiles(cssFiles: CSSStyleSheet[]): void {
|
|
62
|
+
this.widgetInternal.registerCSSFiles(cssFiles);
|
|
63
|
+
}
|
|
64
|
+
|
|
61
65
|
setDefaultFocusedElement(element: Element|null): void {
|
|
62
66
|
this.widgetInternal.setDefaultFocusedElement(element);
|
|
63
67
|
}
|
|
@@ -443,10 +443,6 @@ function getDisableLocaleInfoBarSetting(): Common.Settings.Setting<boolean> {
|
|
|
443
443
|
}
|
|
444
444
|
|
|
445
445
|
function shouldShowLocaleInfobar(): boolean {
|
|
446
|
-
if (!Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.LOCALIZED_DEVTOOLS)) {
|
|
447
|
-
return false;
|
|
448
|
-
}
|
|
449
|
-
|
|
450
446
|
if (getDisableLocaleInfoBarSetting().get()) {
|
|
451
447
|
return false;
|
|
452
448
|
}
|
|
@@ -251,6 +251,10 @@ export class TabbedPane extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
251
251
|
}
|
|
252
252
|
|
|
253
253
|
closeTabs(ids: string[], userGesture?: boolean): void {
|
|
254
|
+
if (ids.length === 0) {
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
|
|
254
258
|
const focused = this.hasFocus();
|
|
255
259
|
for (let i = 0; i < ids.length; ++i) {
|
|
256
260
|
this.innerCloseTab(ids[i], userGesture);
|
|
@@ -28,6 +28,11 @@ const UIStrings = {
|
|
|
28
28
|
};
|
|
29
29
|
const str_ = i18n.i18n.registerUIStrings('ui/legacy/ViewManager.ts', UIStrings);
|
|
30
30
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
31
|
+
|
|
32
|
+
export const defaultOptionsForTabs = {
|
|
33
|
+
security: true,
|
|
34
|
+
};
|
|
35
|
+
|
|
31
36
|
export class PreRegisteredView implements View {
|
|
32
37
|
private readonly viewRegistration: ViewRegistration;
|
|
33
38
|
private widgetRequested: boolean;
|
|
@@ -615,9 +620,12 @@ export class _TabbedLocation extends Location implements TabbedViewLocation {
|
|
|
615
620
|
private setOrUpdateCloseableTabsSetting(): void {
|
|
616
621
|
// Update the setting value, we respect the closed state decided by the user
|
|
617
622
|
// and append the new tabs with value of true so they are shown open
|
|
618
|
-
const defaultOptionsForTabs = {'security': true};
|
|
619
623
|
const tabs = this.closeableTabSetting.get();
|
|
620
|
-
const newClosable = Object.assign(
|
|
624
|
+
const newClosable = Object.assign(
|
|
625
|
+
{
|
|
626
|
+
...defaultOptionsForTabs,
|
|
627
|
+
},
|
|
628
|
+
tabs);
|
|
621
629
|
this.closeableTabSetting.set(newClosable);
|
|
622
630
|
}
|
|
623
631
|
|