chrome-devtools-frontend 1.0.934169 → 1.0.935332
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 -11
- package/config/gni/devtools_grd_files.gni +4 -5
- package/front_end/Tests.js +2 -2
- package/front_end/core/host/UserMetrics.ts +0 -1
- package/front_end/core/i18n/locales/en-US.json +12 -0
- package/front_end/core/i18n/locales/en-XL.json +12 -0
- 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/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 -5
- package/front_end/models/emulation/EmulatedDevices.ts +306 -84
- 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/module.json +1 -2
- package/front_end/panels/elements/StylesSidebarPane.ts +15 -0
- package/front_end/panels/elements/elements-meta.ts +5 -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 -2
- 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/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 -3
- 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 +8 -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/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/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
|
@@ -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: [],
|
|
@@ -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
|
|
|
@@ -3,12 +3,9 @@
|
|
|
3
3
|
"ui/legacy",
|
|
4
4
|
"panels/search",
|
|
5
5
|
"ui/legacy/components/source_frame",
|
|
6
|
-
"panels/snippets",
|
|
7
|
-
"ui/legacy/components/quick_open",
|
|
8
6
|
"ui/legacy/components/inline_editor",
|
|
9
7
|
"ui/legacy/components/color_picker",
|
|
10
8
|
"panels/event_listeners",
|
|
11
|
-
"ui/legacy/components/object_ui",
|
|
12
9
|
"panels/coverage"
|
|
13
10
|
]
|
|
14
11
|
}
|
|
@@ -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
|
|
|
@@ -112,6 +112,14 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
112
112
|
width: 'fit-content',
|
|
113
113
|
},
|
|
114
114
|
|
|
115
|
+
'.cm-tooltip.cm-tooltip-autocomplete > ul': {
|
|
116
|
+
minWidth: '16em',
|
|
117
|
+
'& > li[aria-selected]': {
|
|
118
|
+
backgroundColor: 'var(--color-selected-option-background)',
|
|
119
|
+
color: 'var(--color-selected-option)',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
|
|
115
123
|
'.cm-highlightedLine': {
|
|
116
124
|
animation: 'cm-fading-highlight 2s 0s',
|
|
117
125
|
},
|
|
@@ -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
|
|
|
@@ -31,6 +31,8 @@ import * as i18n from '../../../../core/i18n/i18n.js';
|
|
|
31
31
|
import * as Platform from '../../../../core/platform/platform.js';
|
|
32
32
|
import * as UI from '../../legacy.js';
|
|
33
33
|
|
|
34
|
+
import dataGridStyles from './dataGrid.css.js';
|
|
35
|
+
|
|
34
36
|
const UIStrings = {
|
|
35
37
|
/**
|
|
36
38
|
*@description Accessible text label for expandible nodes in datagrids
|
|
@@ -169,7 +171,6 @@ export class DataGridImpl<T> extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
169
171
|
const {displayName, columns: columnsArray, editCallback, deleteCallback, refreshCallback} = dataGridParameters;
|
|
170
172
|
this.element = document.createElement('div');
|
|
171
173
|
this.element.classList.add('data-grid');
|
|
172
|
-
UI.Utils.appendStyle(this.element, 'ui/legacy/components/data_grid/dataGrid.css');
|
|
173
174
|
this.element.tabIndex = 0;
|
|
174
175
|
this.element.addEventListener('keydown', this.keyDown.bind(this), false);
|
|
175
176
|
this.element.addEventListener('contextmenu', this.contextMenu.bind(this), true);
|
|
@@ -2351,6 +2352,7 @@ export class DataGridWidget<T> extends UI.Widget.VBox {
|
|
|
2351
2352
|
}
|
|
2352
2353
|
|
|
2353
2354
|
wasShown(): void {
|
|
2355
|
+
this.registerCSSFiles([dataGridStyles]);
|
|
2354
2356
|
this.dataGrid.wasShown();
|
|
2355
2357
|
}
|
|
2356
2358
|
|
|
@@ -154,6 +154,7 @@
|
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
.data-grid th .sort-order-icon-container {
|
|
157
|
+
background-color: var(--color-background-elevation-1);
|
|
157
158
|
position: absolute;
|
|
158
159
|
top: 1px;
|
|
159
160
|
right: 0;
|
|
@@ -162,6 +163,10 @@
|
|
|
162
163
|
align-items: center;
|
|
163
164
|
}
|
|
164
165
|
|
|
166
|
+
.data-grid th:hover .sort-order-icon-container {
|
|
167
|
+
background-color: var(--color-background-highlight);
|
|
168
|
+
}
|
|
169
|
+
|
|
165
170
|
.data-grid th .sort-order-icon {
|
|
166
171
|
margin-right: 4px;
|
|
167
172
|
margin-bottom: -2px;
|
|
@@ -77,6 +77,10 @@ export class CSSLength extends HTMLElement {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
private onValueMousedown(event: MouseEvent): void {
|
|
80
|
+
if (event.button !== 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
80
84
|
this.currentMouseClientX = event.clientX;
|
|
81
85
|
const targetDocument = event.target instanceof Node && event.target.ownerDocument;
|
|
82
86
|
if (targetDocument) {
|
|
@@ -136,9 +140,12 @@ export class CSSLength extends HTMLElement {
|
|
|
136
140
|
<span class="value"
|
|
137
141
|
@mousedown=${this.onValueMousedown}
|
|
138
142
|
@mouseup=${this.onValueMouseup}
|
|
139
|
-
>${this.length.value}</span><
|
|
140
|
-
|
|
141
|
-
|
|
143
|
+
>${this.length.value}</span><span class="unit">${this.length.unit}</span><div class="unit-dropdown">
|
|
144
|
+
<span class="icon"></span>
|
|
145
|
+
<select @mouseup=${this.onUnitMouseup} @change=${this.onUnitChange}>
|
|
146
|
+
${options}
|
|
147
|
+
</select>
|
|
148
|
+
</div>
|
|
142
149
|
`;
|
|
143
150
|
// clang-format on
|
|
144
151
|
}
|
|
@@ -14,21 +14,42 @@
|
|
|
14
14
|
cursor: ew-resize;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
.unit-dropdown {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.unit-dropdown select {
|
|
18
22
|
all: unset;
|
|
19
23
|
cursor: pointer;
|
|
20
|
-
|
|
24
|
+
opacity: 0%;
|
|
25
|
+
width: 0.8em;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.icon {
|
|
29
|
+
position: absolute;
|
|
30
|
+
display: inline-block;
|
|
31
|
+
-webkit-mask-image: var(--image-file-chevrons);
|
|
32
|
+
-webkit-mask-position: -12px 4px;
|
|
33
|
+
-webkit-mask-size: 19px 6px;
|
|
34
|
+
-webkit-mask-repeat: no-repeat;
|
|
35
|
+
background-color: var(--color-text-primary);
|
|
36
|
+
content: '';
|
|
37
|
+
height: 1em;
|
|
38
|
+
width: 1em;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:host(:not(:last-child)) {
|
|
42
|
+
margin-right: 0.1em;
|
|
21
43
|
}
|
|
22
44
|
|
|
23
|
-
|
|
24
|
-
|
|
45
|
+
:host(:not(:last-child)) .unit-dropdown {
|
|
46
|
+
position: absolute;
|
|
25
47
|
}
|
|
26
48
|
|
|
27
|
-
|
|
28
|
-
|
|
49
|
+
.css-length:hover .unit-dropdown {
|
|
50
|
+
display: inline-block;
|
|
29
51
|
}
|
|
30
52
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
width: 4ch;
|
|
53
|
+
:host(:last-child) .unit-dropdown select {
|
|
54
|
+
width: 0.6em;
|
|
34
55
|
}
|
|
@@ -9,6 +9,7 @@ import * as UI from '../../legacy.js';
|
|
|
9
9
|
import type * as Protocol from '../../../../generated/protocol.js';
|
|
10
10
|
|
|
11
11
|
import {ObjectPropertiesSection} from './ObjectPropertiesSection.js';
|
|
12
|
+
import customPreviewComponentStyles from './customPreviewComponent.css.js';
|
|
12
13
|
|
|
13
14
|
const UIStrings = {
|
|
14
15
|
/**
|
|
@@ -188,7 +189,7 @@ export class CustomPreviewComponent {
|
|
|
188
189
|
this.element = document.createElement('span');
|
|
189
190
|
this.element.classList.add('source-code');
|
|
190
191
|
const shadowRoot = UI.Utils.createShadowRootWithCoreStyles(this.element, {
|
|
191
|
-
cssFile:
|
|
192
|
+
cssFile: [customPreviewComponentStyles],
|
|
192
193
|
delegatesFocus: undefined,
|
|
193
194
|
});
|
|
194
195
|
this.element.addEventListener('contextmenu', this.contextMenuEventFired.bind(this), false);
|
|
@@ -34,7 +34,9 @@ import * as UI from '../../legacy.js';
|
|
|
34
34
|
import * as Components from '../utils/utils.js';
|
|
35
35
|
|
|
36
36
|
import {CustomPreviewComponent} from './CustomPreviewComponent.js';
|
|
37
|
+
import objectPopoverStyles from './objectPopover.css.js';
|
|
37
38
|
import {ObjectPropertiesSection} from './ObjectPropertiesSection.js';
|
|
39
|
+
import objectValueStyles from './objectValue.css.js';
|
|
38
40
|
|
|
39
41
|
export class ObjectPopoverHelper {
|
|
40
42
|
private readonly linkifier: Components.Linkifier.Linkifier|null;
|
|
@@ -72,7 +74,7 @@ export class ObjectPopoverHelper {
|
|
|
72
74
|
} else {
|
|
73
75
|
popoverContentElement = document.createElement('div');
|
|
74
76
|
popoverContentElement.classList.add('object-popover-content');
|
|
75
|
-
|
|
77
|
+
popover.registerCSSFiles([objectPopoverStyles]);
|
|
76
78
|
const titleElement = popoverContentElement.createChild('div', 'monospace object-popover-title');
|
|
77
79
|
titleElement.createChild('span').textContent = description;
|
|
78
80
|
linkifier = new Components.Linkifier.Linkifier();
|
|
@@ -90,8 +92,7 @@ export class ObjectPopoverHelper {
|
|
|
90
92
|
|
|
91
93
|
popoverContentElement = document.createElement('span');
|
|
92
94
|
popoverContentElement.dataset.stableNameForTest = 'object-popover-content';
|
|
93
|
-
|
|
94
|
-
UI.Utils.appendStyle(popoverContentElement, 'ui/legacy/components/object_ui/objectPopover.css');
|
|
95
|
+
popover.registerCSSFiles([objectValueStyles, objectPopoverStyles]);
|
|
95
96
|
const valueElement = popoverContentElement.createChild('span', 'monospace object-value-' + result.type);
|
|
96
97
|
valueElement.style.whiteSpace = 'pre';
|
|
97
98
|
|