chrome-devtools-frontend 1.0.945677 → 1.0.947377
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/.eslintrc.js +1 -0
- package/config/gni/all_devtools_files.gni +0 -14
- package/config/gni/devtools_grd_files.gni +4 -42
- package/front_end/.eslintrc.js +5 -1
- package/front_end/core/host/InspectorFrontendHost.ts +0 -3
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
- package/front_end/core/host/UserMetrics.ts +0 -22
- package/front_end/core/i18n/locales/en-US.json +33 -27
- package/front_end/core/i18n/locales/en-XL.json +33 -27
- package/front_end/core/root/Runtime.ts +0 -5
- package/front_end/core/sdk/AccessibilityModel.ts +0 -2
- package/front_end/core/sdk/CSSProperty.ts +16 -11
- package/front_end/core/sdk/CSSRule.ts +0 -2
- package/front_end/core/sdk/Cookie.ts +1 -5
- package/front_end/core/sdk/EmulationModel.ts +0 -2
- package/front_end/core/sdk/HeapProfilerModel.ts +0 -2
- package/front_end/core/sdk/NetworkManager.ts +0 -3
- package/front_end/core/sdk/Resource.ts +0 -3
- package/front_end/core/sdk/ResourceTreeModel.ts +0 -3
- package/front_end/core/sdk/ServiceWorkerManager.ts +0 -2
- package/front_end/core/sdk/sdk-meta.ts +20 -8
- package/front_end/devtools_compatibility.js +1 -8
- package/front_end/entrypoints/devtools_app/devtools_app.js +3 -0
- package/front_end/entrypoints/devtools_app/devtools_app.json +1 -3
- package/front_end/entrypoints/formatter_worker/CSSFormatter.ts +1 -3
- package/front_end/entrypoints/formatter_worker/FormatterActions.ts +0 -2
- package/front_end/entrypoints/formatter_worker/FormatterWorker.ts +0 -120
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -11
- package/front_end/entrypoints/formatter_worker/formatter_worker.ts +5 -0
- package/front_end/entrypoints/inspector/{inspector.js → inspector.ts} +0 -3
- package/front_end/entrypoints/js_app/js_app.js +3 -0
- package/front_end/entrypoints/js_app/js_app.json +1 -2
- package/front_end/entrypoints/main/MainImpl.ts +0 -6
- package/front_end/entrypoints/ndb_app/ndb_app.js +3 -0
- package/front_end/entrypoints/ndb_app/ndb_app.json +1 -2
- package/front_end/entrypoints/{node_main → node_app}/NodeConnectionsPanel.ts +1 -1
- package/front_end/entrypoints/{node_main → node_app}/NodeMain.ts +2 -4
- package/front_end/entrypoints/{node_main → node_app}/nodeConnectionsPanel.css +0 -0
- package/front_end/entrypoints/node_app/node_app.ts +81 -0
- package/front_end/entrypoints/shell/shell.js +18 -1
- package/front_end/entrypoints/worker_app/{worker_app.js → worker_app.ts} +8 -2
- package/front_end/generated/InspectorBackendCommands.js +5 -1
- package/front_end/generated/protocol.d.ts +12 -0
- package/front_end/legacy_test_runner/sources_test_runner/sources_test_runner.js +0 -1
- package/front_end/models/bindings/CompilerScriptMapping.ts +0 -1
- package/front_end/models/bindings/DebuggerLanguagePlugins.ts +4 -11
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +1 -1
- package/front_end/models/bindings/ResourceMapping.ts +1 -1
- package/front_end/models/bindings/SASSSourceMapping.ts +0 -1
- package/front_end/models/emulation/DeviceModeModel.ts +0 -2
- package/front_end/models/formatter/FormatterWorkerPool.ts +0 -18
- package/front_end/models/issues_manager/CorsIssue.ts +8 -0
- package/front_end/models/text_utils/CodeMirrorUtils.ts +6 -51
- package/front_end/models/text_utils/TextUtils.ts +1 -2
- package/front_end/models/text_utils/text_utils-legacy.ts +0 -5
- package/front_end/panels/animation/AnimationTimeline.ts +0 -2
- package/front_end/panels/animation/AnimationUI.ts +0 -2
- package/front_end/panels/application/ApplicationPanelSidebar.ts +2 -4
- package/front_end/panels/application/BackForwardCacheStrings.ts +1 -0
- package/front_end/panels/css_overview/CSSOverviewModel.ts +0 -2
- package/front_end/panels/css_overview/CSSOverviewPanel.ts +0 -7
- package/front_end/panels/css_overview/CSSOverviewProcessingView.ts +0 -2
- package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +0 -11
- package/front_end/panels/elements/StylesSidebarPane.ts +0 -1
- package/front_end/panels/elements/elementsTreeOutline.css +0 -13
- package/front_end/panels/emulation/DeviceModeToolbar.ts +0 -16
- package/front_end/panels/issues/CorsIssueDetailsView.ts +6 -2
- package/front_end/panels/lighthouse/lighthouse-meta.ts +0 -3
- package/front_end/panels/network/NetworkConfigView.ts +10 -0
- package/front_end/panels/network/NetworkItemView.ts +3 -0
- package/front_end/panels/network/networkConfigView.css +5 -0
- package/front_end/panels/profiler/profilesPanel.css +1 -1
- package/front_end/panels/search/SearchView.ts +24 -4
- package/front_end/panels/settings/emulation/components/UserAgentClientHintsForm.ts +6 -4
- package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +0 -12
- package/front_end/panels/sources/CSSPlugin.ts +3 -0
- package/front_end/panels/sources/CoveragePlugin.ts +2 -0
- package/front_end/panels/sources/DebuggerPlugin.ts +35 -7
- package/front_end/panels/sources/JavaScriptCompilerPlugin.ts +3 -0
- package/front_end/panels/sources/ProfilePlugin.ts +3 -0
- package/front_end/panels/sources/UISourceCodeFrame.ts +11 -2
- package/front_end/panels/sources/sourcesView.css +0 -130
- package/front_end/panels/timeline/TimelineTreeView.ts +1 -0
- package/front_end/third_party/codemirror/codemirror-tsconfig.json +1 -25
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/cpp.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/java.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/json.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/markdown.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/php.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -2
- package/front_end/third_party/codemirror.next/chunk/xml.js +1 -2
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +1486 -1423
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -2
- package/front_end/third_party/codemirror.next/package.json +10 -9
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +168 -164
- package/front_end/third_party/lighthouse/locales/ar-XB.json +0 -3
- package/front_end/third_party/lighthouse/locales/ar.json +0 -3
- package/front_end/third_party/lighthouse/locales/bg.json +17 -20
- package/front_end/third_party/lighthouse/locales/ca.json +0 -3
- package/front_end/third_party/lighthouse/locales/cs.json +0 -3
- package/front_end/third_party/lighthouse/locales/da.json +16 -19
- package/front_end/third_party/lighthouse/locales/de.json +0 -3
- package/front_end/third_party/lighthouse/locales/el.json +0 -3
- package/front_end/third_party/lighthouse/locales/en-GB.json +19 -22
- package/front_end/third_party/lighthouse/locales/en-US.json +33 -3
- package/front_end/third_party/lighthouse/locales/en-XA.json +0 -3
- package/front_end/third_party/lighthouse/locales/en-XL.json +33 -3
- package/front_end/third_party/lighthouse/locales/es-419.json +17 -20
- package/front_end/third_party/lighthouse/locales/es.json +0 -3
- package/front_end/third_party/lighthouse/locales/fi.json +16 -19
- package/front_end/third_party/lighthouse/locales/fil.json +33 -36
- package/front_end/third_party/lighthouse/locales/fr.json +16 -19
- package/front_end/third_party/lighthouse/locales/he.json +16 -19
- package/front_end/third_party/lighthouse/locales/hi.json +0 -3
- package/front_end/third_party/lighthouse/locales/hr.json +16 -19
- package/front_end/third_party/lighthouse/locales/hu.json +16 -19
- package/front_end/third_party/lighthouse/locales/id.json +16 -19
- package/front_end/third_party/lighthouse/locales/it.json +37 -40
- package/front_end/third_party/lighthouse/locales/ja.json +16 -19
- package/front_end/third_party/lighthouse/locales/ko.json +16 -19
- package/front_end/third_party/lighthouse/locales/lt.json +17 -20
- package/front_end/third_party/lighthouse/locales/lv.json +0 -3
- package/front_end/third_party/lighthouse/locales/nl.json +16 -19
- package/front_end/third_party/lighthouse/locales/no.json +17 -20
- package/front_end/third_party/lighthouse/locales/pl.json +16 -19
- package/front_end/third_party/lighthouse/locales/pt-PT.json +37 -40
- package/front_end/third_party/lighthouse/locales/pt.json +16 -19
- package/front_end/third_party/lighthouse/locales/ro.json +0 -3
- package/front_end/third_party/lighthouse/locales/ru.json +16 -19
- package/front_end/third_party/lighthouse/locales/sk.json +0 -3
- package/front_end/third_party/lighthouse/locales/sl.json +0 -3
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +16 -19
- package/front_end/third_party/lighthouse/locales/sr.json +16 -19
- package/front_end/third_party/lighthouse/locales/sv.json +17 -20
- package/front_end/third_party/lighthouse/locales/ta.json +0 -3
- package/front_end/third_party/lighthouse/locales/te.json +0 -3
- package/front_end/third_party/lighthouse/locales/th.json +0 -3
- package/front_end/third_party/lighthouse/locales/tr.json +0 -3
- package/front_end/third_party/lighthouse/locales/uk.json +17 -20
- package/front_end/third_party/lighthouse/locales/vi.json +0 -3
- package/front_end/third_party/lighthouse/locales/zh-HK.json +0 -3
- package/front_end/third_party/lighthouse/locales/zh-TW.json +0 -3
- package/front_end/third_party/lighthouse/locales/zh.json +0 -3
- package/front_end/third_party/lighthouse/report/bundle.d.ts +63 -61
- package/front_end/third_party/lighthouse/report/bundle.js +36 -7
- package/front_end/third_party/lighthouse/report-assets/report-generator.js +205 -192
- package/front_end/ui/components/linear_memory_inspector/LinearMemoryValueInterpreter.ts +0 -8
- package/front_end/ui/components/text_editor/config.ts +8 -7
- package/front_end/ui/components/text_editor/javascript.ts +28 -10
- package/front_end/ui/components/text_editor/theme.ts +1 -0
- package/front_end/ui/legacy/InspectorView.ts +10 -0
- package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +2 -3
- package/front_end/ui/legacy/components/object_ui/objectPropertiesSection.css +0 -1
- package/front_end/ui/legacy/components/object_ui/object_ui-legacy.ts +0 -8
- package/front_end/ui/legacy/components/object_ui/object_ui.ts +0 -4
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +40 -29
- package/front_end/ui/legacy/inspectorSyntaxHighlight.css +0 -211
- package/front_end/ui/legacy/legacy-legacy.ts +0 -6
- package/front_end/ui/legacy/legacy.ts +0 -2
- package/front_end/ui/legacy/tabbedPane.css +1 -1
- package/front_end/ui/legacy/themeColors.css +1 -1
- package/package.json +1 -1
- package/scripts/check_gn.js +1 -1
- package/scripts/eslint_rules/lib/l10n_filename_matches.js +4 -4
- package/scripts/eslint_rules/tests/l10n_filename_matches_test.js +4 -0
- package/scripts/hosted_mode/server.js +17 -2
- package/front_end/entrypoints/inspector/inspector.json +0 -4
- package/front_end/entrypoints/node_app/node_app-meta.ts +0 -43
- package/front_end/entrypoints/node_app/node_app.js +0 -13
- package/front_end/entrypoints/node_app/node_app.json +0 -4
- package/front_end/entrypoints/node_main/node_main-meta.ts +0 -48
- package/front_end/entrypoints/node_main/node_main.ts +0 -11
- package/front_end/entrypoints/shell/shell-meta-files.ts +0 -22
- package/front_end/entrypoints/shell/shell.json +0 -5
- package/front_end/entrypoints/worker_app/worker_app.json +0 -4
- package/front_end/panels/lighthouse/module.json +0 -6
- package/front_end/third_party/lighthouse/report-assets/report.d.ts +0 -1
- package/front_end/third_party/lighthouse/report-assets/report.js +0 -233
- package/front_end/third_party/lighthouse/report-assets/standalone-template.html +0 -38
- package/front_end/ui/legacy/TextEditor.ts +0 -82
- package/front_end/ui/legacy/components/object_ui/JavaScriptAutocomplete.ts +0 -836
- package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +0 -1676
- package/front_end/ui/legacy/components/text_editor/TextEditorAutocompleteController.ts +0 -586
- package/front_end/ui/legacy/components/text_editor/autocompleteTooltip.css +0 -20
- package/front_end/ui/legacy/components/text_editor/cm_modes.ts +0 -23
- package/front_end/ui/legacy/components/text_editor/cmdevtools.css +0 -995
- package/front_end/ui/legacy/components/text_editor/module.json +0 -7
- package/front_end/ui/legacy/components/text_editor/text_editor-legacy.ts +0 -33
- package/front_end/ui/legacy/components/text_editor/text_editor.ts +0 -13
|
@@ -186,19 +186,6 @@
|
|
|
186
186
|
margin-right: 4px;
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
.CodeMirror {
|
|
190
|
-
background-color: var(--color-background);
|
|
191
|
-
height: 300px !important; /* stylelint-disable-line declaration-no-important */
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.CodeMirror-lines {
|
|
195
|
-
padding: 0;
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
.CodeMirror pre {
|
|
199
|
-
padding: 0;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
189
|
button,
|
|
203
190
|
input,
|
|
204
191
|
select {
|
|
@@ -225,10 +225,6 @@ export class DeviceModeToolbar {
|
|
|
225
225
|
showMediaInspectorSetting: Common.Settings.Setting<boolean>,
|
|
226
226
|
showRulersSetting: Common.Settings.Setting<boolean>) {
|
|
227
227
|
this.model = model;
|
|
228
|
-
const device = model.device();
|
|
229
|
-
if (device) {
|
|
230
|
-
this.recordDeviceChange(device, null);
|
|
231
|
-
}
|
|
232
228
|
this.showMediaInspectorSetting = showMediaInspectorSetting;
|
|
233
229
|
this.showRulersSetting = showRulersSetting;
|
|
234
230
|
|
|
@@ -302,16 +298,6 @@ export class DeviceModeToolbar {
|
|
|
302
298
|
}
|
|
303
299
|
}
|
|
304
300
|
|
|
305
|
-
private recordDeviceChange(
|
|
306
|
-
device: EmulationModel.EmulatedDevices.EmulatedDevice,
|
|
307
|
-
oldDevice: EmulationModel.EmulatedDevices.EmulatedDevice|null): void {
|
|
308
|
-
if (device !== oldDevice && device && device.isDualScreen) {
|
|
309
|
-
// When we start emulating a device, whether we start a new emulation session, or switch to
|
|
310
|
-
// a new device, if the device is dual screen, we count this once.
|
|
311
|
-
Host.userMetrics.dualScreenDeviceEmulated(Host.UserMetrics.DualScreenDeviceEmulated.DualScreenDeviceSelected);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
|
|
315
301
|
private createEmptyToolbarElement(): Element {
|
|
316
302
|
const element = document.createElement('div');
|
|
317
303
|
element.classList.add('device-mode-empty-toolbar-element');
|
|
@@ -527,7 +513,6 @@ export class DeviceModeToolbar {
|
|
|
527
513
|
|
|
528
514
|
private emulateDevice(device: EmulationModel.EmulatedDevices.EmulatedDevice): void {
|
|
529
515
|
const scale = this.autoAdjustScaleSetting.get() ? undefined : this.model.scaleSetting().get();
|
|
530
|
-
this.recordDeviceChange(device, this.model.device());
|
|
531
516
|
this.model.emulate(
|
|
532
517
|
EmulationModel.DeviceModeModel.Type.Device, device, this.lastMode.get(device) || device.modes[0], scale);
|
|
533
518
|
}
|
|
@@ -615,7 +600,6 @@ export class DeviceModeToolbar {
|
|
|
615
600
|
return;
|
|
616
601
|
}
|
|
617
602
|
|
|
618
|
-
Host.userMetrics.dualScreenDeviceEmulated(Host.UserMetrics.DualScreenDeviceEmulated.SpanButtonClicked);
|
|
619
603
|
const scale = this.autoAdjustScaleSetting.get() ? undefined : this.model.scaleSetting().get();
|
|
620
604
|
const mode = this.model.mode();
|
|
621
605
|
if (!mode) {
|
|
@@ -207,7 +207,9 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
207
207
|
IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowExternal|
|
|
208
208
|
IssuesManager.CorsIssue.IssueCode.InvalidResponse|
|
|
209
209
|
IssuesManager.CorsIssue.IssueCode.InvalidPrivateNetworkAccess|
|
|
210
|
-
IssuesManager.CorsIssue.IssueCode.UnexpectedPrivateNetworkAccess
|
|
210
|
+
IssuesManager.CorsIssue.IssueCode.UnexpectedPrivateNetworkAccess|
|
|
211
|
+
IssuesManager.CorsIssue.IssueCode.PreflightMissingAllowPrivateNetwork|
|
|
212
|
+
IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowPrivateNetwork>(issueCode);
|
|
211
213
|
}
|
|
212
214
|
|
|
213
215
|
this.affectedResources.appendChild(header);
|
|
@@ -433,7 +435,9 @@ export class CorsIssueDetailsView extends AffectedResourcesView {
|
|
|
433
435
|
IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowExternal|
|
|
434
436
|
IssuesManager.CorsIssue.IssueCode.InvalidResponse|
|
|
435
437
|
IssuesManager.CorsIssue.IssueCode.InvalidPrivateNetworkAccess|
|
|
436
|
-
IssuesManager.CorsIssue.IssueCode.UnexpectedPrivateNetworkAccess
|
|
438
|
+
IssuesManager.CorsIssue.IssueCode.UnexpectedPrivateNetworkAccess|
|
|
439
|
+
IssuesManager.CorsIssue.IssueCode.PreflightMissingAllowPrivateNetwork|
|
|
440
|
+
IssuesManager.CorsIssue.IssueCode.PreflightInvalidAllowPrivateNetwork>(issueCode);
|
|
437
441
|
break;
|
|
438
442
|
}
|
|
439
443
|
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
|
-
import * as Root from '../../core/root/root.js';
|
|
7
6
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
8
7
|
|
|
9
8
|
import type * as Lighthouse from './lighthouse.js';
|
|
@@ -22,8 +21,6 @@ let loadedLighthouseModule: (typeof Lighthouse|undefined);
|
|
|
22
21
|
|
|
23
22
|
async function loadLighthouseModule(): Promise<typeof Lighthouse> {
|
|
24
23
|
if (!loadedLighthouseModule) {
|
|
25
|
-
// Side-effect import resources in module.json
|
|
26
|
-
await Root.Runtime.Runtime.instance().loadModulePromise('panels/lighthouse');
|
|
27
24
|
loadedLighthouseModule = await import('./lighthouse.js');
|
|
28
25
|
}
|
|
29
26
|
return loadedLighthouseModule;
|
|
@@ -50,6 +50,10 @@ const UIStrings = {
|
|
|
50
50
|
* a set of checkboxes to override the content encodings supported by the browser.
|
|
51
51
|
*/
|
|
52
52
|
acceptedEncoding: 'Accepted `Content-Encoding`s',
|
|
53
|
+
/**
|
|
54
|
+
* @description Status text for successful update of client hints.
|
|
55
|
+
*/
|
|
56
|
+
clientHintsStatusText: 'User agent updated.',
|
|
53
57
|
};
|
|
54
58
|
const str_ = i18n.i18n.registerUIStrings('panels/network/NetworkConfigView.ts', UIStrings);
|
|
55
59
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
@@ -246,10 +250,12 @@ export class NetworkConfigView extends UI.Widget.VBox {
|
|
|
246
250
|
showMobileCheckbox: true,
|
|
247
251
|
showSubmitButton: true,
|
|
248
252
|
};
|
|
253
|
+
userAgentUpdateButtonStatusText.textContent = '';
|
|
249
254
|
});
|
|
250
255
|
|
|
251
256
|
clientHints.addEventListener('clienthintschange', () => {
|
|
252
257
|
customSelectAndInput.select.value = 'custom';
|
|
258
|
+
userAgentUpdateButtonStatusText.textContent = '';
|
|
253
259
|
});
|
|
254
260
|
|
|
255
261
|
clientHints.addEventListener('clienthintssubmit', (event: Event) => {
|
|
@@ -257,8 +263,12 @@ export class NetworkConfigView extends UI.Widget.VBox {
|
|
|
257
263
|
const customUA = customUserAgentSetting.get();
|
|
258
264
|
userAgentMetadataSetting.set(metaData);
|
|
259
265
|
SDK.NetworkManager.MultitargetNetworkManager.instance().setCustomUserAgentOverride(customUA, metaData);
|
|
266
|
+
userAgentUpdateButtonStatusText.textContent = i18nString(UIStrings.clientHintsStatusText);
|
|
260
267
|
});
|
|
261
268
|
|
|
269
|
+
const userAgentUpdateButtonStatusText = section.createChild('span', 'status-text');
|
|
270
|
+
userAgentUpdateButtonStatusText.textContent = '';
|
|
271
|
+
|
|
262
272
|
userAgentSelectBoxChanged();
|
|
263
273
|
|
|
264
274
|
function userAgentSelectBoxChanged(): void {
|
|
@@ -250,6 +250,9 @@ export class NetworkItemView extends UI.TabbedPane.TabbedPane {
|
|
|
250
250
|
}
|
|
251
251
|
|
|
252
252
|
private async maybeAppendPayloadPanel(): Promise<void> {
|
|
253
|
+
if (this.hasTab('payload')) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
253
256
|
if (this.requestInternal.queryParameters || await this.requestInternal.requestFormData()) {
|
|
254
257
|
this.payloadView = new RequestPayloadView(this.requestInternal);
|
|
255
258
|
this.appendTab(
|
|
@@ -432,18 +432,38 @@ export class SearchView extends UI.Widget.VBox {
|
|
|
432
432
|
}
|
|
433
433
|
}
|
|
434
434
|
|
|
435
|
+
/**
|
|
436
|
+
* Handles keydown event on panel itself for handling expand/collapse all shortcut
|
|
437
|
+
*
|
|
438
|
+
* We use `event.code` instead of `event.key` here to check whether the shortcut is triggered.
|
|
439
|
+
* The reason is, `event.key` is dependent on the modification keys, locale and keyboard layout.
|
|
440
|
+
* Usually it is useful when we care about the character that needs to be printed.
|
|
441
|
+
*
|
|
442
|
+
* However, our aim in here is to assign a shortcut to the physical key combination on the keyboard
|
|
443
|
+
* not on the character that the key combination prints.
|
|
444
|
+
*
|
|
445
|
+
* For example, `Cmd + [` shortcut in global shortcuts map to focusing on previous panel.
|
|
446
|
+
* In Turkish - Q keyboard layout, the key combination that triggers the shortcut prints `ğ`
|
|
447
|
+
* character. Whereas in Turkish - Q Legacy keyboard layout, the shortcut that triggers focusing
|
|
448
|
+
* on previous panel prints `[` character. So, if we use `event.key` and check
|
|
449
|
+
* whether it is `[`, we break the shortcut in Turkish - Q keyboard layout.
|
|
450
|
+
*
|
|
451
|
+
* @param event KeyboardEvent
|
|
452
|
+
*/
|
|
435
453
|
private onKeyDownOnPanel(event: KeyboardEvent): void {
|
|
436
454
|
const isMac = Host.Platform.isMac();
|
|
437
455
|
// "Command + Alt + ]" for Mac
|
|
438
|
-
const shouldShowAllForMac =
|
|
456
|
+
const shouldShowAllForMac =
|
|
457
|
+
isMac && event.metaKey && !event.ctrlKey && event.altKey && event.code === 'BracketRight';
|
|
439
458
|
// "Ctrl + Shift + }" for other platforms
|
|
440
459
|
const shouldShowAllForOtherPlatforms =
|
|
441
|
-
!isMac && event.ctrlKey && !event.metaKey && event.shiftKey && event.
|
|
460
|
+
!isMac && event.ctrlKey && !event.metaKey && event.shiftKey && event.code === 'BracketRight';
|
|
442
461
|
// "Command + Alt + [" for Mac
|
|
443
|
-
const shouldCollapseAllForMac =
|
|
462
|
+
const shouldCollapseAllForMac =
|
|
463
|
+
isMac && event.metaKey && !event.ctrlKey && event.altKey && event.code === 'BracketLeft';
|
|
444
464
|
// "Command + Alt + {" for other platforms
|
|
445
465
|
const shouldCollapseAllForOtherPlatforms =
|
|
446
|
-
!isMac && event.ctrlKey && !event.metaKey && event.shiftKey && event.
|
|
466
|
+
!isMac && event.ctrlKey && !event.metaKey && event.shiftKey && event.code === 'BracketLeft';
|
|
447
467
|
|
|
448
468
|
if (shouldShowAllForMac || shouldShowAllForOtherPlatforms) {
|
|
449
469
|
this.searchResultsPane?.showAllMatches();
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../../../core/i18n/i18n.js';
|
|
6
|
+
import * as Buttons from '../../../../ui/components/buttons/buttons.js';
|
|
6
7
|
import * as ComponentHelpers from '../../../../ui/components/helpers/helpers.js';
|
|
7
8
|
import * as LitHtml from '../../../../ui/lit-html/lit-html.js';
|
|
9
|
+
|
|
8
10
|
import userAgentClientHintsFormStyles from './userAgentClientHintsForm.css.js';
|
|
9
11
|
|
|
10
12
|
import type * as Protocol from '../../../../generated/protocol.js';
|
|
@@ -532,12 +534,12 @@ export class UserAgentClientHintsForm extends HTMLElement {
|
|
|
532
534
|
'architecture');
|
|
533
535
|
const deviceModelSection = this.renderDeviceModelSection();
|
|
534
536
|
const submitButton = this.showSubmitButton ? LitHtml.html`
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
537
|
+
<${Buttons.Button.Button.litTagName}
|
|
538
|
+
.variant=${Buttons.Button.Variant.SECONDARY}
|
|
539
|
+
.type=${'submit'}
|
|
538
540
|
>
|
|
539
541
|
${i18nString(UIStrings.update)}
|
|
540
|
-
|
|
542
|
+
</${Buttons.Button.Button.litTagName}>
|
|
541
543
|
` :
|
|
542
544
|
LitHtml.html``;
|
|
543
545
|
const output = LitHtml.html`
|
|
@@ -96,18 +96,6 @@
|
|
|
96
96
|
margin-left: 5px;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
.submit-button {
|
|
100
|
-
border: none;
|
|
101
|
-
border-radius: 2px;
|
|
102
|
-
font-weight: normal;
|
|
103
|
-
height: 24px;
|
|
104
|
-
font-size: 12px;
|
|
105
|
-
padding: 0 12px;
|
|
106
|
-
cursor: pointer;
|
|
107
|
-
background-color: var(--color-primary-variant);
|
|
108
|
-
color: var(--color-text-primary);
|
|
109
|
-
}
|
|
110
|
-
|
|
111
99
|
.hide-container {
|
|
112
100
|
display: none;
|
|
113
101
|
}
|
|
@@ -13,6 +13,9 @@ import * as UI from '../../ui/legacy/legacy.js';
|
|
|
13
13
|
|
|
14
14
|
import {Plugin} from './Plugin.js';
|
|
15
15
|
|
|
16
|
+
// Plugin to add CSS completion, shortcuts, and color/curve swatches
|
|
17
|
+
// to editors with CSS content.
|
|
18
|
+
|
|
16
19
|
const UIStrings = {
|
|
17
20
|
/**
|
|
18
21
|
*@description Swatch icon element title in CSSPlugin of the Sources panel
|
|
@@ -14,6 +14,8 @@ import * as Coverage from '../coverage/coverage.js';
|
|
|
14
14
|
|
|
15
15
|
import {Plugin} from './Plugin.js';
|
|
16
16
|
|
|
17
|
+
// Plugin that shows a gutter with coverage information when available.
|
|
18
|
+
|
|
17
19
|
const UIStrings = {
|
|
18
20
|
/**
|
|
19
21
|
*@description Text for Coverage Status Bar Item in Sources Panel
|
|
@@ -158,24 +158,37 @@ type BreakpointDescription = {
|
|
|
158
158
|
|
|
159
159
|
export class DebuggerPlugin extends Plugin {
|
|
160
160
|
private editor: TextEditor.TextEditor.TextEditor|undefined = undefined;
|
|
161
|
+
// Set if the debugger is stopped on a breakpoint in this file
|
|
161
162
|
private executionLocation: Workspace.UISourceCode.UILocation|null = null;
|
|
163
|
+
// Track state of the control key because holding it makes debugger
|
|
164
|
+
// target locations show up in the editor
|
|
162
165
|
private controlDown: boolean = false;
|
|
163
|
-
private sourceMapInfobar: UI.Infobar.Infobar|null = null;
|
|
164
166
|
private controlTimeout: number|undefined = undefined;
|
|
167
|
+
private sourceMapInfobar: UI.Infobar.Infobar|null = null;
|
|
165
168
|
private readonly scriptsPanel: SourcesPanel;
|
|
166
169
|
private readonly breakpointManager: Bindings.BreakpointManager.BreakpointManager;
|
|
170
|
+
// Manages pop-overs shown when the debugger is active and the user
|
|
171
|
+
// hovers over an expression
|
|
167
172
|
private readonly popoverHelper: UI.PopoverHelper.PopoverHelper;
|
|
168
173
|
private scriptFileForDebuggerModel:
|
|
169
174
|
Map<SDK.DebuggerModel.DebuggerModel, Bindings.ResourceScriptMapping.ResourceScriptFile>;
|
|
170
175
|
// The current set of breakpoints for this file. The locations in
|
|
171
|
-
// here are
|
|
172
|
-
//
|
|
176
|
+
// here are kept in sync with their editor position. When a file's
|
|
177
|
+
// content is edited and later saved, these are used as a source of
|
|
178
|
+
// truth for re-creating the breakpoints.
|
|
173
179
|
private breakpoints: BreakpointDescription[] = [];
|
|
174
180
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration)
|
|
175
181
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
176
182
|
private continueToLocations: {from: number, to: number, async: boolean, click: () => void}[]|null = null;
|
|
177
183
|
private readonly liveLocationPool: Bindings.LiveLocation.LiveLocationPool;
|
|
184
|
+
// When the editor content is changed by the user, this becomes
|
|
185
|
+
// true. When the plugin is muted, breakpoints show up as disabled
|
|
186
|
+
// and can't be manipulated. It is cleared again when the content is
|
|
187
|
+
// saved.
|
|
178
188
|
private muted: boolean;
|
|
189
|
+
// If the plugin is initialized in muted state, we cannot correlated
|
|
190
|
+
// breakpoint position in the breakpoint manager with editor
|
|
191
|
+
// locations, so breakpoint manipulation is permanently disabled.
|
|
179
192
|
private initializedMuted: boolean;
|
|
180
193
|
private ignoreListInfobar: UI.Infobar.Infobar|null;
|
|
181
194
|
private prettyPrintInfobar!: UI.Infobar.Infobar|null;
|
|
@@ -236,6 +249,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
236
249
|
}
|
|
237
250
|
|
|
238
251
|
editorExtension(): CodeMirror.Extension {
|
|
252
|
+
// Kludge to hook editor keyboard events into the ShortcutRegistry
|
|
253
|
+
// system.
|
|
239
254
|
const handlers = this.shortcutHandlers();
|
|
240
255
|
|
|
241
256
|
return [
|
|
@@ -309,6 +324,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
309
324
|
}
|
|
310
325
|
|
|
311
326
|
editorInitialized(editor: TextEditor.TextEditor.TextEditor): void {
|
|
327
|
+
// Start asynchronous actions that require access to the editor
|
|
328
|
+
// instance
|
|
312
329
|
this.editor = editor;
|
|
313
330
|
computeNonBreakableLines(editor.state, this.uiSourceCode).then(linePositions => {
|
|
314
331
|
if (linePositions.length) {
|
|
@@ -589,8 +606,12 @@ export class DebuggerPlugin extends Plugin {
|
|
|
589
606
|
if (node.firstChild) {
|
|
590
607
|
return null;
|
|
591
608
|
}
|
|
592
|
-
while (
|
|
593
|
-
|
|
609
|
+
while (
|
|
610
|
+
node && node.name !== 'VariableDefinition' && node.name !== 'VariableName' &&
|
|
611
|
+
node.name !== 'MemberExpression' &&
|
|
612
|
+
!(node.name === 'PropertyName' && node.parent?.name === 'PatternProperty' &&
|
|
613
|
+
node.nextSibling?.name !== ':') &&
|
|
614
|
+
!(node.name === 'PropertyDefinition' && node.parent?.name === 'Property' && node.nextSibling?.name !== ':')) {
|
|
594
615
|
node = node.parent;
|
|
595
616
|
}
|
|
596
617
|
if (!node) {
|
|
@@ -681,6 +702,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
681
702
|
|
|
682
703
|
private onEditorUpdate(update: CodeMirror.ViewUpdate): void {
|
|
683
704
|
if (!update.changes.empty) {
|
|
705
|
+
// If the document changed, adjust known breakpoint positions
|
|
706
|
+
// for that change
|
|
684
707
|
for (const breakpointDesc of this.breakpoints) {
|
|
685
708
|
breakpointDesc.position = update.changes.mapPos(breakpointDesc.position);
|
|
686
709
|
}
|
|
@@ -807,6 +830,7 @@ export class DebuggerPlugin extends Plugin {
|
|
|
807
830
|
dialog.focusEditor();
|
|
808
831
|
}
|
|
809
832
|
|
|
833
|
+
// Create decorations to indicate the current debugging position
|
|
810
834
|
private computeExecutionDecorations(editorState: CodeMirror.EditorState, lineNumber: number, columnNumber: number):
|
|
811
835
|
CodeMirror.DecorationSet {
|
|
812
836
|
const {doc} = editorState;
|
|
@@ -953,6 +977,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
953
977
|
return namesPerLine;
|
|
954
978
|
}
|
|
955
979
|
|
|
980
|
+
// Highlight the locations the debugger can continue to (when
|
|
981
|
+
// Control is held)
|
|
956
982
|
private async showContinueToLocations(): Promise<void> {
|
|
957
983
|
this.popoverHelper.hidePopover();
|
|
958
984
|
const executionContext = UI.Context.Context.instance().flavor(SDK.RuntimeModel.ExecutionContext);
|
|
@@ -1094,6 +1120,8 @@ export class DebuggerPlugin extends Plugin {
|
|
|
1094
1120
|
return this.breakpoints.filter(b => b.position >= line.from && b.position <= line.to).map(b => b.breakpoint);
|
|
1095
1121
|
}
|
|
1096
1122
|
|
|
1123
|
+
// Compute the decorations for existing breakpoints (both on the
|
|
1124
|
+
// gutter and inline in the code)
|
|
1097
1125
|
private async computeBreakpointDecoration(state: CodeMirror.EditorState, breakpoints: BreakpointDescription[]):
|
|
1098
1126
|
Promise<BreakpointDecoration> {
|
|
1099
1127
|
const decorations: CodeMirror.Range<CodeMirror.Decoration>[] = [];
|
|
@@ -1298,7 +1326,7 @@ export class DebuggerPlugin extends Plugin {
|
|
|
1298
1326
|
Bindings.ResourceScriptMapping.ResourceScriptFile.Events.DidMergeToVM, this.didMergeToVM, this);
|
|
1299
1327
|
oldScriptFile.removeEventListener(
|
|
1300
1328
|
Bindings.ResourceScriptMapping.ResourceScriptFile.Events.DidDivergeFromVM, this.didDivergeFromVM, this);
|
|
1301
|
-
if (this.muted && !this.uiSourceCode.isDirty() && this.consistentScripts) {
|
|
1329
|
+
if (this.muted && !this.uiSourceCode.isDirty() && this.consistentScripts()) {
|
|
1302
1330
|
this.setMuted(false);
|
|
1303
1331
|
}
|
|
1304
1332
|
}
|
|
@@ -1516,7 +1544,7 @@ export class DebuggerPlugin extends Plugin {
|
|
|
1516
1544
|
}
|
|
1517
1545
|
}
|
|
1518
1546
|
|
|
1519
|
-
// Infobar panel state
|
|
1547
|
+
// Infobar panel state, used to show additional panels below the editor.
|
|
1520
1548
|
|
|
1521
1549
|
const addInfobar = CodeMirror.StateEffect.define<UI.Infobar.Infobar>();
|
|
1522
1550
|
const removeInfobar = CodeMirror.StateEffect.define<UI.Infobar.Infobar>();
|
|
@@ -12,6 +12,9 @@ import * as Snippets from '../snippets/snippets.js';
|
|
|
12
12
|
|
|
13
13
|
import {Plugin} from './Plugin.js';
|
|
14
14
|
|
|
15
|
+
// Plugin that tries to compile the editor content and highlights
|
|
16
|
+
// compilation errors.
|
|
17
|
+
|
|
15
18
|
export class JavaScriptCompilerPlugin extends Plugin {
|
|
16
19
|
private compiling: boolean = false;
|
|
17
20
|
private recompileScheduled: boolean = false;
|
|
@@ -11,6 +11,9 @@ import type * as TextEditor from '../../ui/components/text_editor/text_editor.js
|
|
|
11
11
|
|
|
12
12
|
import {Plugin} from './Plugin.js';
|
|
13
13
|
|
|
14
|
+
// Defines plugins that show profiling information in the editor
|
|
15
|
+
// gutter when available.
|
|
16
|
+
|
|
14
17
|
const UIStrings = {
|
|
15
18
|
/**
|
|
16
19
|
*@description The milisecond unit
|
|
@@ -52,7 +52,8 @@ import {SnippetsPlugin} from './SnippetsPlugin.js';
|
|
|
52
52
|
import {SourcesPanel} from './SourcesPanel.js';
|
|
53
53
|
|
|
54
54
|
function sourceFramePlugins(): (typeof Plugin)[] {
|
|
55
|
-
// The order of these plugins matters for toolbar items
|
|
55
|
+
// The order of these plugins matters for toolbar items and editor
|
|
56
|
+
// extension precedence
|
|
56
57
|
return [
|
|
57
58
|
CSSPlugin,
|
|
58
59
|
DebuggerPlugin,
|
|
@@ -74,6 +75,8 @@ export class UISourceCodeFrame extends
|
|
|
74
75
|
private uiSourceCodeEventListeners: Common.EventTarget.EventDescriptor[];
|
|
75
76
|
private messageAndDecorationListeners: Common.EventTarget.EventDescriptor[];
|
|
76
77
|
private readonly boundOnBindingChanged: () => void;
|
|
78
|
+
// The active plugins. These are created in setContent, and
|
|
79
|
+
// recreated when the binding changes
|
|
77
80
|
private plugins: Plugin[] = [];
|
|
78
81
|
private readonly errorPopoverHelper: UI.PopoverHelper.PopoverHelper;
|
|
79
82
|
|
|
@@ -114,6 +117,7 @@ export class UISourceCodeFrame extends
|
|
|
114
117
|
return [
|
|
115
118
|
super.editorConfiguration(doc),
|
|
116
119
|
rowMessages([...this.allMessages()]),
|
|
120
|
+
// Inject editor extensions from plugins
|
|
117
121
|
pluginCompartment.of(this.plugins.map(plugin => plugin.editorExtension())),
|
|
118
122
|
];
|
|
119
123
|
}
|
|
@@ -547,7 +551,11 @@ export type EventTypes = {
|
|
|
547
551
|
|
|
548
552
|
const pluginCompartment = new CodeMirror.Compartment();
|
|
549
553
|
|
|
550
|
-
// Row message management and display logic
|
|
554
|
+
// Row message management and display logic. The frame manages a
|
|
555
|
+
// collection of messages, organized by line (row), as a wavy
|
|
556
|
+
// underline starting at the start of the first message, up to the end
|
|
557
|
+
// of the line, with icons indicating the message severity and content
|
|
558
|
+
// at the end of the line.
|
|
551
559
|
|
|
552
560
|
function addMessage(rows: Workspace.UISourceCode.Message[][], message: Workspace.UISourceCode.Message):
|
|
553
561
|
Workspace.UISourceCode.Message[][] {
|
|
@@ -608,6 +616,7 @@ const setRowMessages = CodeMirror.StateEffect.define<RowMessages>();
|
|
|
608
616
|
|
|
609
617
|
const underlineMark = CodeMirror.Decoration.mark({class: 'cm-waveUnderline'});
|
|
610
618
|
|
|
619
|
+
// The widget shown at the end of a message annotation.
|
|
611
620
|
class MessageWidget extends CodeMirror.WidgetType {
|
|
612
621
|
constructor(readonly messages: Workspace.UISourceCode.Message[]) {
|
|
613
622
|
super();
|
|
@@ -58,133 +58,3 @@
|
|
|
58
58
|
.-theme-with-dark-background .source-frame-debugger-script {
|
|
59
59
|
--override-debugger-background-tint: rgb(61 61 0 / 50%);
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
@keyframes source-frame-value-update-highlight-animation {
|
|
63
|
-
from {
|
|
64
|
-
background-color: inherit;
|
|
65
|
-
color: inherit;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
10% {
|
|
69
|
-
background-color: var(--override-highlight-animation-10pc-background-color);
|
|
70
|
-
color: var(--override-highlight-animation-10pc-foreground-color);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
to {
|
|
74
|
-
background-color: inherit;
|
|
75
|
-
color: inherit;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
.source-frame-value-update-highlight {
|
|
80
|
-
animation: source-frame-value-update-highlight-animation 0.8s 1 cubic-bezier(0, 0, 0.2, 1);
|
|
81
|
-
border-radius: 2px;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.diff-entry-insert {
|
|
85
|
-
--override-diff-line-number-background-color: hsl(144deg 55% 49% / 20%);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.-theme-with-dark-background .diff-entry-insert,
|
|
89
|
-
:host-context(.-theme-with-dark-background) .diff-entry-insert {
|
|
90
|
-
--override-diff-line-number-background-color: rgb(61 199 116 / 20%);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.diff-entry-insert .diff-marker {
|
|
94
|
-
border-left: 4px solid var(--color-accent-green);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
.diff-entry-insert .CodeMirror-gutter-background {
|
|
98
|
-
background-color: var(--override-diff-line-number-background-color);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
.diff-entry-modify {
|
|
102
|
-
--override-diff-line-number-background-color: rgb(186 104 200 / 20%);
|
|
103
|
-
--override-diff-line-number-border-color: #9c27b0;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.-theme-with-dark-background .diff-entry-modify,
|
|
107
|
-
:host-context(.-theme-with-dark-background) .diff-entry-modify {
|
|
108
|
-
--override-diff-line-number-background-color: rgb(137 55 151 / 20%);
|
|
109
|
-
--override-diff-line-number-border-color: rgb(196 79 216);
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
.diff-entry-modify .diff-marker {
|
|
113
|
-
border-left: 4px solid var(--override-diff-line-number-border-color);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
.diff-entry-modify .CodeMirror-gutter-background {
|
|
117
|
-
background-color: var(--override-diff-line-number-background-color);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
.diff-entry-delete {
|
|
121
|
-
--override-diff-deletion-color: #d32f2f;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.-theme-with-dark-background .diff-entry-delete,
|
|
125
|
-
:host-context(.-theme-with-dark-background) .diff-entry-delete {
|
|
126
|
-
--override-diff-deletion-color: rgb(208 44 44);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.diff-entry-delete .diff-marker {
|
|
130
|
-
width: 0;
|
|
131
|
-
height: 0;
|
|
132
|
-
border-top: 6px solid transparent;
|
|
133
|
-
border-bottom: 6px solid transparent;
|
|
134
|
-
border-left: 6px solid var(--override-diff-deletion-color);
|
|
135
|
-
position: relative;
|
|
136
|
-
top: 6px;
|
|
137
|
-
cursor: pointer;
|
|
138
|
-
left: 0;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.diff-entry-delete .CodeMirror-gutter-background {
|
|
142
|
-
border-bottom: 2px solid var(--override-diff-deletion-color);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.CodeMirror-gutter-diff {
|
|
146
|
-
width: 4px;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
.highlight-line-modification {
|
|
150
|
-
--override-modification-background-fadeout-from: rgb(158 54 153 / 50%);
|
|
151
|
-
--override-modification-background-fadeout-90pc: rgb(158 54 153 / 0%);
|
|
152
|
-
--override-modification-foreground-fadeout-from: #fff;
|
|
153
|
-
|
|
154
|
-
animation: source-line-modification-background-fadeout 0.4s 0s;
|
|
155
|
-
animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.highlight-line-modification span {
|
|
159
|
-
animation: source-line-modification-foreground-fadeout 0.4s 0s;
|
|
160
|
-
animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
@keyframes source-line-modification-background-fadeout {
|
|
164
|
-
from {
|
|
165
|
-
background-color: var(--override-modification-background-fadeout-from);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
50% {
|
|
169
|
-
/* Purposefully uses the `from` color to delay the animation from 0-50% */
|
|
170
|
-
background-color: var(--override-modification-background-fadeout-from);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
90% {
|
|
174
|
-
background-color: var(--override-modification-background-fadeout-90pc);
|
|
175
|
-
}
|
|
176
|
-
to { background-color: transparent; }
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
@keyframes source-line-modification-foreground-fadeout {
|
|
180
|
-
from {
|
|
181
|
-
color: var(--override-modification-foreground-fadeout-from);
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
50% {
|
|
185
|
-
/* Purposefully uses the `from` color to delay the animation from 0-50% */
|
|
186
|
-
color: var(--override-modification-foreground-fadeout-from);
|
|
187
|
-
}
|
|
188
|
-
90% { color: initial; }
|
|
189
|
-
to { color: initial; }
|
|
190
|
-
}
|
|
@@ -651,6 +651,7 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
|
|
|
651
651
|
}
|
|
652
652
|
const cell = this.createTD(columnId);
|
|
653
653
|
cell.className = 'numeric-column';
|
|
654
|
+
cell.setAttribute('title', i18nString(UIStrings.fms, {PH1: value.toFixed(4)}));
|
|
654
655
|
const textDiv = cell.createChild('div');
|
|
655
656
|
textDiv.createChild('span').textContent = i18nString(UIStrings.fms, {PH1: value.toFixed(1)});
|
|
656
657
|
|
|
@@ -3,33 +3,9 @@
|
|
|
3
3
|
"composite": true
|
|
4
4
|
},
|
|
5
5
|
"files": [
|
|
6
|
-
"package/addon/comment/comment.js",
|
|
7
|
-
"package/addon/edit/closebrackets.js",
|
|
8
|
-
"package/addon/edit/matchbrackets.js",
|
|
9
|
-
"package/addon/fold/brace-fold.js",
|
|
10
|
-
"package/addon/fold/foldcode.js",
|
|
11
|
-
"package/addon/fold/foldgutter.js",
|
|
12
|
-
"package/addon/mode/multiplex.js",
|
|
13
|
-
"package/addon/mode/overlay.js",
|
|
14
|
-
"package/addon/mode/simple.js",
|
|
15
6
|
"package/addon/runmode/runmode-standalone.js",
|
|
16
|
-
"package/addon/selection/active-line.js",
|
|
17
|
-
"package/addon/selection/mark-selection.js",
|
|
18
|
-
"package/lib/codemirror.js",
|
|
19
|
-
"package/mode/clike/clike.js",
|
|
20
|
-
"package/mode/clojure/clojure.js",
|
|
21
|
-
"package/mode/coffeescript/coffeescript.js",
|
|
22
7
|
"package/mode/css/css.js",
|
|
23
|
-
"package/mode/htmlembedded/htmlembedded.js",
|
|
24
|
-
"package/mode/htmlmixed/htmlmixed.js",
|
|
25
8
|
"package/mode/javascript/javascript.js",
|
|
26
|
-
"package/mode/jsx/jsx.js",
|
|
27
|
-
"package/mode/livescript/livescript.js",
|
|
28
|
-
"package/mode/markdown/markdown.js",
|
|
29
|
-
"package/mode/php/php.js",
|
|
30
|
-
"package/mode/python/python.js",
|
|
31
|
-
"package/mode/shell/shell.js",
|
|
32
|
-
"package/mode/wast/wast.js",
|
|
33
9
|
"package/mode/xml/xml.js"
|
|
34
10
|
]
|
|
35
|
-
}
|
|
11
|
+
}
|