chrome-devtools-frontend 1.0.941095 → 1.0.943017
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/WATCHLISTS +1 -1
- package/config/gni/all_devtools_files.gni +0 -62
- package/config/gni/devtools_grd_files.gni +55 -19
- package/config/gni/devtools_image_files.gni +2 -3
- package/front_end/.eslintrc.js +12 -1
- package/front_end/Images/src/feedback_button_icon.svg +3 -0
- package/front_end/Images/src/{feedback_thin_16x16_icon.svg → survey_feedback_icon.svg} +1 -1
- package/front_end/Tests.js +1 -32
- package/front_end/core/common/Color.ts +5 -0
- package/front_end/core/i18n/locales/en-US.json +20 -29
- package/front_end/core/i18n/locales/en-XL.json +20 -29
- package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
- package/front_end/core/sdk/ConsoleModel.ts +26 -28
- package/front_end/core/sdk/DebuggerModel.ts +4 -14
- package/front_end/core/sdk/sdk-meta.ts +17 -3
- package/front_end/entrypoints/devtools_app/devtools_app.json +1 -11
- package/front_end/entrypoints/inspector/inspector.json +1 -3
- package/front_end/entrypoints/js_app/js_app.json +1 -3
- package/front_end/entrypoints/main/MainImpl.ts +26 -0
- package/front_end/entrypoints/node_app/node_app.json +1 -3
- package/front_end/entrypoints/shell/shell.js +0 -11
- package/front_end/entrypoints/shell/shell.json +1 -5
- package/front_end/entrypoints/worker_app/worker_app.json +1 -7
- package/front_end/generated/InspectorBackendCommands.js +19 -0
- package/front_end/generated/protocol-mapping.d.ts +31 -1
- package/front_end/generated/protocol-proxy-api.d.ts +34 -2
- package/front_end/generated/protocol.d.ts +81 -6
- package/front_end/global_typings/global_defs.d.ts +5 -0
- package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +2 -2
- package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +14 -2
- package/front_end/legacy_test_runner/legacy_test_runner.ts +10 -1
- package/front_end/legacy_test_runner/test_runner/TestRunner.js +11 -0
- package/front_end/models/formatter/SourceFormatter.ts +0 -10
- package/front_end/models/workspace/UISourceCode.ts +9 -42
- package/front_end/panels/animation/AnimationTimeline.ts +3 -3
- package/front_end/panels/application/ApplicationPanelSidebar.ts +3 -3
- package/front_end/panels/application/BackForwardCacheStrings.ts +3 -1
- package/front_end/panels/application/application-meta.ts +0 -3
- package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
- package/front_end/panels/application/components/ReportsGrid.ts +1 -1
- package/front_end/panels/console/ConsolePinPane.ts +21 -26
- package/front_end/panels/coverage/CoverageDecorationManager.ts +4 -5
- package/front_end/panels/coverage/CoverageView.ts +2 -105
- package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +11 -56
- package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -8
- package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
- package/front_end/panels/elements/components/StylePropertyEditor.ts +2 -0
- package/front_end/panels/elements/components/adornerSettingsPane.css +0 -4
- package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
- package/front_end/panels/emulation/DeviceModeView.ts +2 -1
- package/front_end/panels/emulation/InspectedPagePlaceholder.ts +3 -1
- package/front_end/panels/emulation/MediaQueryInspector.ts +3 -1
- package/front_end/panels/emulation/emulation-meta.ts +2 -4
- package/front_end/panels/issues/issues-meta.ts +0 -2
- package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -3
- package/front_end/panels/layers/module.json +0 -1
- package/front_end/panels/lighthouse/LighthousePanel.ts +2 -4
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -4
- package/front_end/panels/lighthouse/lighthouseStartView.css +4 -0
- package/front_end/panels/lighthouse/module.json +0 -6
- package/front_end/panels/media/media-meta.ts +0 -3
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -1
- package/front_end/panels/network/network-meta.ts +0 -3
- package/front_end/panels/profiler/CPUProfileView.ts +10 -3
- package/front_end/panels/profiler/profiler-meta.ts +0 -2
- package/front_end/panels/screencast/screencast-meta.ts +0 -3
- package/front_end/panels/security/security-meta.ts +0 -3
- package/front_end/panels/sources/BreakpointEditDialog.ts +16 -30
- package/front_end/panels/sources/CSSPlugin.ts +310 -331
- package/front_end/panels/sources/CallStackSidebarPane.ts +28 -34
- package/front_end/panels/sources/CoveragePlugin.ts +121 -6
- package/front_end/panels/sources/DebuggerPlugin.ts +1166 -1243
- package/front_end/panels/sources/EditingLocationHistoryManager.ts +71 -101
- package/front_end/panels/sources/GoToLineQuickOpen.ts +4 -3
- package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
- package/front_end/panels/sources/JavaScriptCompilerPlugin.ts +26 -23
- package/front_end/panels/sources/Plugin.ts +20 -4
- package/front_end/panels/sources/ProfilePlugin.ts +185 -0
- package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
- package/front_end/panels/sources/ScriptOriginPlugin.ts +0 -10
- package/front_end/panels/sources/SnippetsPlugin.ts +1 -10
- package/front_end/panels/sources/SourcesPanel.ts +6 -5
- package/front_end/panels/sources/SourcesView.ts +10 -8
- package/front_end/panels/sources/TabbedEditorContainer.ts +31 -27
- package/front_end/panels/sources/UISourceCodeFrame.ts +335 -470
- package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -2
- package/front_end/panels/sources/sources-legacy.ts +0 -6
- package/front_end/panels/sources/sources-meta.ts +1 -4
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/timeline-meta.ts +0 -5
- package/front_end/third_party/codemirror.next/bundle.ts +9 -13
- package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/javascript.js +2 -2
- package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -6
- package/front_end/third_party/codemirror.next/chunk/php.js +2 -6
- package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
- package/front_end/third_party/codemirror.next/chunk/xml.js +2 -2
- package/front_end/third_party/codemirror.next/codemirror.next.d.ts +279 -198
- package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
- package/front_end/third_party/codemirror.next/package.json +13 -11
- package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1128 -1158
- package/front_end/third_party/lighthouse/locales/ar-XB.json +211 -79
- package/front_end/third_party/lighthouse/locales/ar.json +213 -81
- package/front_end/third_party/lighthouse/locales/bg.json +211 -79
- package/front_end/third_party/lighthouse/locales/ca.json +212 -80
- package/front_end/third_party/lighthouse/locales/cs.json +211 -79
- package/front_end/third_party/lighthouse/locales/da.json +211 -79
- package/front_end/third_party/lighthouse/locales/de.json +211 -79
- package/front_end/third_party/lighthouse/locales/el.json +213 -81
- package/front_end/third_party/lighthouse/locales/en-GB.json +211 -79
- package/front_end/third_party/lighthouse/locales/en-US.json +186 -75
- package/front_end/third_party/lighthouse/locales/en-XA.json +211 -79
- package/front_end/third_party/lighthouse/locales/en-XL.json +186 -75
- package/front_end/third_party/lighthouse/locales/es-419.json +211 -79
- package/front_end/third_party/lighthouse/locales/es.json +212 -80
- package/front_end/third_party/lighthouse/locales/fi.json +211 -79
- package/front_end/third_party/lighthouse/locales/fil.json +211 -79
- package/front_end/third_party/lighthouse/locales/fr.json +211 -79
- package/front_end/third_party/lighthouse/locales/he.json +212 -80
- package/front_end/third_party/lighthouse/locales/hi.json +214 -82
- package/front_end/third_party/lighthouse/locales/hr.json +211 -79
- package/front_end/third_party/lighthouse/locales/hu.json +211 -79
- package/front_end/third_party/lighthouse/locales/id.json +211 -79
- package/front_end/third_party/lighthouse/locales/it.json +211 -79
- package/front_end/third_party/lighthouse/locales/ja.json +211 -79
- package/front_end/third_party/lighthouse/locales/ko.json +211 -79
- package/front_end/third_party/lighthouse/locales/lt.json +211 -79
- package/front_end/third_party/lighthouse/locales/lv.json +214 -82
- package/front_end/third_party/lighthouse/locales/nl.json +211 -79
- package/front_end/third_party/lighthouse/locales/no.json +211 -79
- package/front_end/third_party/lighthouse/locales/pl.json +211 -79
- package/front_end/third_party/lighthouse/locales/pt-PT.json +211 -79
- package/front_end/third_party/lighthouse/locales/pt.json +211 -79
- package/front_end/third_party/lighthouse/locales/ro.json +212 -80
- package/front_end/third_party/lighthouse/locales/ru.json +211 -79
- package/front_end/third_party/lighthouse/locales/sk.json +211 -79
- package/front_end/third_party/lighthouse/locales/sl.json +211 -79
- package/front_end/third_party/lighthouse/locales/sr-Latn.json +211 -79
- package/front_end/third_party/lighthouse/locales/sr.json +211 -79
- package/front_end/third_party/lighthouse/locales/sv.json +211 -79
- package/front_end/third_party/lighthouse/locales/ta.json +218 -86
- package/front_end/third_party/lighthouse/locales/te.json +251 -119
- package/front_end/third_party/lighthouse/locales/th.json +211 -79
- package/front_end/third_party/lighthouse/locales/tr.json +211 -79
- package/front_end/third_party/lighthouse/locales/uk.json +212 -80
- package/front_end/third_party/lighthouse/locales/vi.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh-HK.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh-TW.json +211 -79
- package/front_end/third_party/lighthouse/locales/zh.json +211 -79
- package/front_end/third_party/lighthouse/report/bundle.d.ts +72 -34
- package/front_end/third_party/lighthouse/report/bundle.js +698 -492
- package/front_end/third_party/lighthouse/report-assets/report-generator.js +1 -2
- package/front_end/third_party/lighthouse/report-assets/report.js +40 -35
- package/front_end/third_party/lighthouse/report-assets/standalone-template.html +2 -4
- package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +60 -68
- package/front_end/ui/components/data_grid/dataGrid.css +12 -10
- package/front_end/ui/components/docs/css_overview/start_view.html +25 -0
- package/front_end/ui/components/docs/css_overview/start_view.ts +14 -0
- package/front_end/ui/components/docs/icon_button/basic.ts +3 -3
- package/front_end/ui/components/docs/panel_feedback/button.html +25 -0
- package/front_end/ui/components/docs/panel_feedback/button.ts +18 -0
- package/front_end/ui/components/helpers/get-stylesheet.ts +0 -14
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
- package/front_end/ui/components/panel_feedback/FeedbackButton.ts +67 -0
- package/front_end/ui/components/panel_feedback/panel_feedback.ts +1 -0
- package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
- package/front_end/ui/components/text_editor/TextEditor.ts +79 -36
- package/front_end/ui/components/text_editor/config.ts +42 -26
- package/front_end/ui/components/text_editor/javascript.ts +2 -3
- package/front_end/ui/components/text_editor/position.ts +17 -0
- package/front_end/ui/components/text_editor/text_editor.ts +1 -0
- package/front_end/ui/components/text_editor/theme.ts +5 -1
- package/front_end/ui/legacy/Dialog.ts +3 -1
- package/front_end/ui/legacy/DropTarget.ts +2 -1
- package/front_end/ui/legacy/EmptyWidget.ts +2 -1
- package/front_end/ui/legacy/FilterBar.ts +2 -1
- package/front_end/ui/legacy/GlassPane.ts +4 -2
- package/front_end/ui/legacy/Infobar.ts +5 -8
- package/front_end/ui/legacy/InspectorView.ts +6 -1
- package/front_end/ui/legacy/ListWidget.ts +2 -1
- package/front_end/ui/legacy/PopoverHelper.ts +2 -1
- package/front_end/ui/legacy/ProgressIndicator.ts +2 -1
- package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +2 -1
- package/front_end/ui/legacy/ReportView.ts +2 -1
- package/front_end/ui/legacy/RootView.ts +2 -1
- package/front_end/ui/legacy/SearchableView.ts +2 -1
- package/front_end/ui/legacy/ShortcutRegistry.ts +11 -7
- package/front_end/ui/legacy/SoftContextMenu.ts +2 -1
- package/front_end/ui/legacy/SoftDropDown.ts +4 -2
- package/front_end/ui/legacy/SplitWidget.ts +2 -1
- package/front_end/ui/legacy/SuggestBox.ts +2 -1
- package/front_end/ui/legacy/TabbedPane.ts +2 -1
- package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -1
- package/front_end/ui/legacy/TextPrompt.ts +2 -1
- package/front_end/ui/legacy/Toolbar.ts +3 -2
- package/front_end/ui/legacy/Treeoutline.ts +3 -2
- package/front_end/ui/legacy/UIUtils.ts +16 -13
- package/front_end/ui/legacy/ViewManager.ts +2 -1
- package/front_end/ui/legacy/Widget.ts +1 -1
- package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -3
- package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -1
- package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +3 -1
- package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -1
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +35 -131
- package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +2 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +3 -1
- package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -1
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -2
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +3 -6
- package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -0
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +19 -14
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +501 -252
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +2 -0
- package/front_end/ui/legacy/components/source_frame/module.json +0 -3
- package/front_end/ui/legacy/components/source_frame/source_frame-legacy.ts +0 -11
- package/front_end/ui/legacy/components/source_frame/source_frame.ts +0 -2
- package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +2 -0
- package/front_end/ui/legacy/components/text_editor/cmdevtools.css +3 -1
- package/front_end/ui/legacy/components/text_editor/module.json +0 -3
- package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -15
- package/front_end/ui/legacy/radioButton.css +1 -13
- package/front_end/ui/legacy/textButton.css +5 -4
- package/front_end/ui/legacy/themeColors.css +36 -0
- package/front_end/ui/legacy/theme_support/theme_support_impl.ts +7 -9
- package/front_end/ui/legacy/utils/append-style.ts +9 -4
- package/front_end/ui/legacy/utils/create-shadow-root-with-core-styles.ts +2 -2
- package/front_end/ui/legacy/utils/inject-core-styles.ts +7 -4
- package/package.json +1 -1
- package/scripts/build/generate_css_js_files.js +23 -9
- package/scripts/build/ninja/generate_css.gni +10 -1
- package/scripts/eslint_rules/lib/check_css_import.js +2 -2
- package/scripts/eslint_rules/tests/check_css_import_test.js +12 -0
- package/front_end/Images/radioDot-dark-theme.png +0 -0
- package/front_end/Images/radioDot.png +0 -0
- package/front_end/emulated_devices/module.json +0 -6
- package/front_end/panels/application/module.json +0 -7
- package/front_end/panels/emulation/module.json +0 -11
- package/front_end/panels/issues/module.json +0 -6
- package/front_end/panels/js_profiler/module.json +0 -5
- package/front_end/panels/layer_viewer/module.json +0 -6
- package/front_end/panels/media/module.json +0 -6
- package/front_end/panels/network/module.json +0 -6
- package/front_end/panels/profiler/module.json +0 -6
- package/front_end/panels/screencast/module.json +0 -6
- package/front_end/panels/security/module.json +0 -5
- package/front_end/panels/timeline/module.json +0 -8
- package/front_end/third_party/lighthouse/report-assets/report.css +0 -1774
- package/front_end/ui/legacy/components/perf_ui/module.json +0 -13
- package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +0 -1030
- package/front_end/ui/legacy/module.json +0 -41
|
@@ -31,24 +31,35 @@ export const dynamicSetting = CM.Facet.define<DynamicSetting<unknown>>();
|
|
|
31
31
|
|
|
32
32
|
export class DynamicSetting<T> {
|
|
33
33
|
compartment = new CM.Compartment();
|
|
34
|
-
extension: CM.Extension;
|
|
35
34
|
|
|
36
35
|
constructor(
|
|
37
36
|
readonly settingName: string,
|
|
38
|
-
private readonly getExtension: (value: T
|
|
37
|
+
private readonly getExtension: (value: T) => CM.Extension,
|
|
39
38
|
) {
|
|
40
|
-
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
settingValue(): T {
|
|
42
|
+
return Common.Settings.Settings.instance().moduleSetting(this.settingName).get() as T;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
instance(): CM.Extension {
|
|
46
|
+
return [
|
|
47
|
+
this.compartment.of(this.getExtension(this.settingValue())),
|
|
48
|
+
dynamicSetting.of(this as DynamicSetting<unknown>),
|
|
49
|
+
];
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
sync(state: CM.EditorState, value: T): CM.StateEffect<unknown>|null {
|
|
44
53
|
const cur = this.compartment.get(state);
|
|
45
|
-
const needed = this.getExtension(value
|
|
54
|
+
const needed = this.getExtension(value);
|
|
46
55
|
return cur === needed ? null : this.compartment.reconfigure(needed);
|
|
47
56
|
}
|
|
48
57
|
|
|
49
58
|
static bool(name: string, enabled: CM.Extension, disabled: CM.Extension = empty): DynamicSetting<boolean> {
|
|
50
59
|
return new DynamicSetting<boolean>(name, val => val ? enabled : disabled);
|
|
51
60
|
}
|
|
61
|
+
|
|
62
|
+
static none: readonly DynamicSetting<unknown>[] = [];
|
|
52
63
|
}
|
|
53
64
|
|
|
54
65
|
export const tabMovesFocus = DynamicSetting.bool('textEditorTabMovesFocus', CM.keymap.of([{
|
|
@@ -82,23 +93,15 @@ export function guessIndent(doc: CM.Text): string {
|
|
|
82
93
|
values[space] = (values[space] || 0) + 1;
|
|
83
94
|
}
|
|
84
95
|
const minOccurrence = scanned * 0.05;
|
|
85
|
-
const
|
|
86
|
-
|
|
96
|
+
const shortest = Object.entries(values).reduce((shortest, [string, count]): string|null => {
|
|
97
|
+
return count < minOccurrence || shortest && shortest.length < string.length ? shortest : string;
|
|
98
|
+
}, null as string | null);
|
|
99
|
+
return shortest ?? Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
|
|
87
100
|
}
|
|
88
101
|
|
|
89
|
-
const
|
|
102
|
+
const deriveIndentUnit = CM.Prec.highest(CM.indentUnit.compute([], (state: CM.EditorState) => guessIndent(state.doc)));
|
|
90
103
|
|
|
91
|
-
|
|
92
|
-
let value = cachedIndentUnit[indent];
|
|
93
|
-
if (!value) {
|
|
94
|
-
value = cachedIndentUnit[indent] = CM.indentUnit.of(indent);
|
|
95
|
-
}
|
|
96
|
-
return value;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
export const autoDetectIndent = new DynamicSetting<boolean>('textEditorAutoDetectIndent', (on, state) => {
|
|
100
|
-
return on ? CM.Prec.override(getIndentUnit(guessIndent(state.doc))) : empty;
|
|
101
|
-
});
|
|
104
|
+
export const autoDetectIndent = DynamicSetting.bool('textEditorAutoDetectIndent', deriveIndentUnit);
|
|
102
105
|
|
|
103
106
|
function matcher(decorator: CM.MatchDecorator): CM.Extension {
|
|
104
107
|
return CM.ViewPlugin.define(
|
|
@@ -154,6 +157,16 @@ export const showWhitespace = new DynamicSetting<string>('showWhitespacesInEdito
|
|
|
154
157
|
|
|
155
158
|
export const allowScrollPastEof = DynamicSetting.bool('allowScrollPastEof', CM.scrollPastEnd());
|
|
156
159
|
|
|
160
|
+
const cachedIndentUnit: {[indent: string]: CM.Extension} = Object.create(null);
|
|
161
|
+
|
|
162
|
+
function getIndentUnit(indent: string): CM.Extension {
|
|
163
|
+
let value = cachedIndentUnit[indent];
|
|
164
|
+
if (!value) {
|
|
165
|
+
value = cachedIndentUnit[indent] = CM.indentUnit.of(indent);
|
|
166
|
+
}
|
|
167
|
+
return value;
|
|
168
|
+
}
|
|
169
|
+
|
|
157
170
|
export const indentUnit = new DynamicSetting<string>('textEditorIndent', getIndentUnit);
|
|
158
171
|
|
|
159
172
|
export const domWordWrap = DynamicSetting.bool('domWordWrap', CM.EditorView.lineWrapping);
|
|
@@ -184,22 +197,25 @@ function themeIsDark(): boolean {
|
|
|
184
197
|
|
|
185
198
|
const dummyDarkTheme = CM.EditorView.theme({}, {dark: true});
|
|
186
199
|
|
|
200
|
+
export function theme(): CM.Extension {
|
|
201
|
+
return [editorTheme, themeIsDark() ? dummyDarkTheme : []];
|
|
202
|
+
}
|
|
203
|
+
|
|
187
204
|
export function baseConfiguration(text: string): CM.Extension {
|
|
188
205
|
return [
|
|
189
|
-
|
|
190
|
-
themeIsDark() ? dummyDarkTheme : [],
|
|
206
|
+
theme(),
|
|
191
207
|
CM.highlightSpecialChars(),
|
|
192
208
|
CM.history(),
|
|
193
209
|
CM.drawSelection(),
|
|
194
210
|
CM.EditorState.allowMultipleSelections.of(true),
|
|
195
211
|
CM.indentOnInput(),
|
|
196
|
-
CodeHighlighter.CodeHighlighter.
|
|
212
|
+
CodeHighlighter.CodeHighlighter.highlightStyle,
|
|
197
213
|
CM.closeBrackets(),
|
|
198
214
|
baseKeymap,
|
|
199
|
-
tabMovesFocus,
|
|
200
|
-
bracketMatching,
|
|
201
|
-
indentUnit,
|
|
202
|
-
CM.Prec.
|
|
215
|
+
tabMovesFocus.instance(),
|
|
216
|
+
bracketMatching.instance(),
|
|
217
|
+
indentUnit.instance(),
|
|
218
|
+
CM.Prec.lowest(CM.EditorView.contentAttributes.of({'aria-label': i18nString(UIStrings.codeEditor)})),
|
|
203
219
|
detectLineSeparator(text),
|
|
204
220
|
autocompletion,
|
|
205
221
|
CM.tooltips({parent: getTooltipHost() as unknown as HTMLElement}),
|
|
@@ -221,7 +237,7 @@ function getTooltipHost(): ShadowRoot {
|
|
|
221
237
|
extensions: [
|
|
222
238
|
editorTheme,
|
|
223
239
|
themeIsDark() ? dummyDarkTheme : [],
|
|
224
|
-
CodeHighlighter.CodeHighlighter.
|
|
240
|
+
CodeHighlighter.CodeHighlighter.highlightStyle,
|
|
225
241
|
CM.showTooltip.of({
|
|
226
242
|
pos: 0,
|
|
227
243
|
create() {
|
|
@@ -9,9 +9,8 @@ import * as CodeMirror from '../../../third_party/codemirror.next/codemirror.nex
|
|
|
9
9
|
import * as UI from '../../legacy/legacy.js';
|
|
10
10
|
import {cursorTooltip} from './cursor_tooltip.js';
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
return javascriptLanguage.data.of({
|
|
12
|
+
export function completion(): CodeMirror.Extension {
|
|
13
|
+
return CodeMirror.javascript.javascriptLanguage.data.of({
|
|
15
14
|
autocomplete: javascriptCompletionSource,
|
|
16
15
|
});
|
|
17
16
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Copyright 2021 The Chromium Authors. All rights reserved.
|
|
2
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
3
|
+
// found in the LICENSE file.
|
|
4
|
+
|
|
5
|
+
import type * as CodeMirror from '../../../third_party/codemirror.next/codemirror.next.js';
|
|
6
|
+
|
|
7
|
+
export function toOffset(
|
|
8
|
+
doc: CodeMirror.Text, {lineNumber, columnNumber}: {lineNumber: number, columnNumber: number}): number {
|
|
9
|
+
const line = doc.line(Math.max(1, Math.min(doc.lines, lineNumber + 1)));
|
|
10
|
+
return Math.max(line.from, Math.min(line.to, line.from + columnNumber));
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export function toLineColumn(doc: CodeMirror.Text, offset: number): {lineNumber: number, columnNumber: number} {
|
|
14
|
+
offset = Math.max(0, Math.min(offset, doc.length));
|
|
15
|
+
const line = doc.lineAt(offset);
|
|
16
|
+
return {lineNumber: line.number - 1, columnNumber: offset - line.from};
|
|
17
|
+
}
|
|
@@ -52,6 +52,10 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
52
52
|
backgroundColor: 'var(--color-background)',
|
|
53
53
|
},
|
|
54
54
|
|
|
55
|
+
'.cm-lineNumbers': {
|
|
56
|
+
overflow: 'visible',
|
|
57
|
+
minWidth: '40px',
|
|
58
|
+
},
|
|
55
59
|
'.cm-lineNumbers .cm-gutterElement': {
|
|
56
60
|
color: 'var(--color-line-number)',
|
|
57
61
|
padding: '0 3px 0 9px',
|
|
@@ -74,7 +78,7 @@ export const editorTheme = CM.EditorView.theme({
|
|
|
74
78
|
},
|
|
75
79
|
|
|
76
80
|
'.cm-trailingWhitespace': {
|
|
77
|
-
backgroundColor: 'var(--color-
|
|
81
|
+
backgroundColor: 'var(--color-trailing-whitespace)',
|
|
78
82
|
},
|
|
79
83
|
|
|
80
84
|
'.cm-highlightedTab': {
|
|
@@ -39,6 +39,8 @@ import type {DevToolsCloseButton} from './UIUtils.js';
|
|
|
39
39
|
import type {WidgetElement} from './Widget.js';
|
|
40
40
|
import {WidgetFocusRestorer} from './Widget.js';
|
|
41
41
|
|
|
42
|
+
import dialogStyles from './dialog.css.legacy.js';
|
|
43
|
+
|
|
42
44
|
export class Dialog extends Common.ObjectWrapper.eventMixin<EventTypes, typeof GlassPane>(GlassPane) {
|
|
43
45
|
private tabIndexBehavior: OutsideTabIndexBehavior;
|
|
44
46
|
private tabIndexMap: Map<HTMLElement, number>;
|
|
@@ -50,7 +52,7 @@ export class Dialog extends Common.ObjectWrapper.eventMixin<EventTypes, typeof G
|
|
|
50
52
|
|
|
51
53
|
constructor() {
|
|
52
54
|
super();
|
|
53
|
-
this.registerRequiredCSS(
|
|
55
|
+
this.registerRequiredCSS(dialogStyles);
|
|
54
56
|
this.contentElement.tabIndex = 0;
|
|
55
57
|
this.contentElement.addEventListener('focus', () => this.widget().focus(), false);
|
|
56
58
|
this.widget().setDefaultFocusedElement(this.contentElement);
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import dropTargetStyles from './dropTarget.css.legacy.js';
|
|
5
6
|
import * as Utils from './utils/utils.js';
|
|
6
7
|
|
|
7
8
|
export class DropTarget {
|
|
@@ -71,7 +72,7 @@ export class DropTarget {
|
|
|
71
72
|
}
|
|
72
73
|
this.dragMaskElement = this.element.createChild('div', '');
|
|
73
74
|
const shadowRoot = Utils.createShadowRootWithCoreStyles(
|
|
74
|
-
this.dragMaskElement, {cssFile:
|
|
75
|
+
this.dragMaskElement, {cssFile: dropTargetStyles, delegatesFocus: undefined});
|
|
75
76
|
shadowRoot.createChild('div', 'drop-target-message').textContent = this.messageText;
|
|
76
77
|
this.dragMaskElement.addEventListener('drop', this.onDrop.bind(this), true);
|
|
77
78
|
this.dragMaskElement.addEventListener('dragleave', this.onDragLeave.bind(this), true);
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
32
32
|
|
|
33
|
+
import emptyWidgetStyles from './emptyWidget.css.legacy.js';
|
|
33
34
|
import {VBox} from './Widget.js';
|
|
34
35
|
import {XLink} from './XLink.js';
|
|
35
36
|
|
|
@@ -47,7 +48,7 @@ export class EmptyWidget extends VBox {
|
|
|
47
48
|
|
|
48
49
|
constructor(text: string) {
|
|
49
50
|
super();
|
|
50
|
-
this.registerRequiredCSS(
|
|
51
|
+
this.registerRequiredCSS(emptyWidgetStyles);
|
|
51
52
|
this.element.classList.add('empty-view-scroller');
|
|
52
53
|
this.contentElement = this.element.createChild('div', 'empty-view') as HTMLDivElement;
|
|
53
54
|
this.textElement = this.contentElement.createChild('div', 'empty-bold-text');
|
|
@@ -43,6 +43,7 @@ import {ToolbarSettingToggle} from './Toolbar.js';
|
|
|
43
43
|
import {Tooltip} from './Tooltip.js';
|
|
44
44
|
import {CheckboxLabel, createTextChild} from './UIUtils.js';
|
|
45
45
|
import {HBox} from './Widget.js';
|
|
46
|
+
import filterStyles from './filter.css.legacy.js';
|
|
46
47
|
|
|
47
48
|
const UIStrings = {
|
|
48
49
|
/**
|
|
@@ -79,7 +80,7 @@ export class FilterBar extends Common.ObjectWrapper.eventMixin<FilterBarEventTyp
|
|
|
79
80
|
|
|
80
81
|
constructor(name: string, visibleByDefault?: boolean) {
|
|
81
82
|
super();
|
|
82
|
-
this.registerRequiredCSS(
|
|
83
|
+
this.registerRequiredCSS(filterStyles);
|
|
83
84
|
this.enabled = true;
|
|
84
85
|
this.element.classList.add('filter-bar');
|
|
85
86
|
|
|
@@ -10,6 +10,7 @@ import {Icon} from './Icon.js';
|
|
|
10
10
|
import {deepElementFromEvent} from './UIUtils.js';
|
|
11
11
|
import type {WidgetElement} from './Widget.js';
|
|
12
12
|
import {Widget} from './Widget.js';
|
|
13
|
+
import glassPaneStyles from './glassPane.css.legacy.js';
|
|
13
14
|
|
|
14
15
|
export class GlassPane {
|
|
15
16
|
private readonly widgetInternal: Widget;
|
|
@@ -36,7 +37,7 @@ export class GlassPane {
|
|
|
36
37
|
this.element.shadowRoot.appendChild(this.arrowElement);
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
this.registerRequiredCSS(
|
|
40
|
+
this.registerRequiredCSS(glassPaneStyles);
|
|
40
41
|
this.setPointerEventsBehavior(PointerEventsBehavior.PierceGlassPane);
|
|
41
42
|
|
|
42
43
|
this.onMouseDownBound = this.onMouseDown.bind(this);
|
|
@@ -54,7 +55,8 @@ export class GlassPane {
|
|
|
54
55
|
return this.widgetInternal.isShowing();
|
|
55
56
|
}
|
|
56
57
|
|
|
57
|
-
registerRequiredCSS(cssFile: string): void {
|
|
58
|
+
registerRequiredCSS(cssFile: string|{cssContent: string}): void {
|
|
59
|
+
// eslint-disable-next-line no-restricted-syntax -- Should import styles https://crbug.com/1106746
|
|
58
60
|
this.widgetInternal.registerRequiredCSS(cssFile);
|
|
59
61
|
}
|
|
60
62
|
|
|
@@ -10,6 +10,7 @@ import * as ARIAUtils from './ARIAUtils.js';
|
|
|
10
10
|
import {Keys} from './KeyboardShortcut.js';
|
|
11
11
|
import {createTextButton} from './UIUtils.js';
|
|
12
12
|
import type {Widget} from './Widget.js';
|
|
13
|
+
import infobarStyles from './infobar.css.legacy.js';
|
|
13
14
|
|
|
14
15
|
const UIStrings = {
|
|
15
16
|
/**
|
|
@@ -46,9 +47,7 @@ export class Infobar {
|
|
|
46
47
|
private readonly closeContainer: HTMLElement;
|
|
47
48
|
private readonly toggleElement: HTMLButtonElement;
|
|
48
49
|
private readonly closeButton: HTMLElement;
|
|
49
|
-
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
51
|
-
private closeCallback: (() => any)|null;
|
|
50
|
+
private closeCallback: (() => void)|null;
|
|
52
51
|
private parentView?: Widget;
|
|
53
52
|
|
|
54
53
|
// TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
|
|
@@ -56,8 +55,8 @@ export class Infobar {
|
|
|
56
55
|
constructor(type: Type, text: string, actions?: InfobarAction[], disableSetting?: Common.Settings.Setting<any>) {
|
|
57
56
|
this.element = document.createElement('div');
|
|
58
57
|
this.element.classList.add('flex-none');
|
|
59
|
-
this.shadowRoot =
|
|
60
|
-
this.element, {cssFile:
|
|
58
|
+
this.shadowRoot =
|
|
59
|
+
Utils.createShadowRootWithCoreStyles(this.element, {cssFile: infobarStyles, delegatesFocus: undefined});
|
|
61
60
|
|
|
62
61
|
this.contentElement = this.shadowRoot.createChild('div', 'infobar infobar-' + type) as HTMLDivElement;
|
|
63
62
|
|
|
@@ -160,9 +159,7 @@ export class Infobar {
|
|
|
160
159
|
this.onResize();
|
|
161
160
|
}
|
|
162
161
|
|
|
163
|
-
|
|
164
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
165
|
-
setCloseCallback(callback: (() => any)|null): void {
|
|
162
|
+
setCloseCallback(callback: (() => void)|null): void {
|
|
166
163
|
this.closeCallback = callback;
|
|
167
164
|
}
|
|
168
165
|
|
|
@@ -52,6 +52,7 @@ import {ViewManager} from './ViewManager.js';
|
|
|
52
52
|
import type {Widget} from './Widget.js';
|
|
53
53
|
import {VBox, WidgetFocusRestorer} from './Widget.js';
|
|
54
54
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
55
|
+
import inspectorViewTabbedPaneStyles from './inspectorViewTabbedPane.css.legacy.js';
|
|
55
56
|
|
|
56
57
|
const UIStrings = {
|
|
57
58
|
/**
|
|
@@ -167,7 +168,7 @@ export class InspectorView extends VBox implements ViewLocationResolver {
|
|
|
167
168
|
|
|
168
169
|
this.tabbedPane = this.tabbedLocation.tabbedPane();
|
|
169
170
|
this.tabbedPane.element.classList.add('main-tabbed-pane');
|
|
170
|
-
this.tabbedPane.registerRequiredCSS(
|
|
171
|
+
this.tabbedPane.registerRequiredCSS(inspectorViewTabbedPaneStyles);
|
|
171
172
|
this.tabbedPane.addEventListener(TabbedPaneEvents.TabSelected, this.tabSelected, this);
|
|
172
173
|
this.tabbedPane.setAccessibleName(i18nString(UIStrings.panels));
|
|
173
174
|
this.tabbedPane.setTabDelegate(this.tabDelegate);
|
|
@@ -210,6 +211,10 @@ export class InspectorView extends VBox implements ViewLocationResolver {
|
|
|
210
211
|
return inspectorViewInstance;
|
|
211
212
|
}
|
|
212
213
|
|
|
214
|
+
static maybeGetInspectorViewInstance(): InspectorView|undefined {
|
|
215
|
+
return inspectorViewInstance;
|
|
216
|
+
}
|
|
217
|
+
|
|
213
218
|
wasShown(): void {
|
|
214
219
|
this.element.ownerDocument.addEventListener('keydown', this.keyDownBound, false);
|
|
215
220
|
}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
|
|
7
7
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
8
|
+
import listWidgetStyles from './listWidget.css.legacy.js';
|
|
8
9
|
import {Toolbar, ToolbarButton} from './Toolbar.js';
|
|
9
10
|
import {Tooltip} from './Tooltip.js';
|
|
10
11
|
import {createInput, createTextButton, ElementFocusRestorer} from './UIUtils.js';
|
|
@@ -49,7 +50,7 @@ export class ListWidget<T> extends VBox {
|
|
|
49
50
|
private emptyPlaceholder: Element|null;
|
|
50
51
|
constructor(delegate: Delegate<T>, delegatesFocus: boolean|undefined = true) {
|
|
51
52
|
super(true, delegatesFocus);
|
|
52
|
-
this.registerRequiredCSS(
|
|
53
|
+
this.registerRequiredCSS(listWidgetStyles);
|
|
53
54
|
this.delegate = delegate;
|
|
54
55
|
|
|
55
56
|
this.list = this.contentElement.createChild('div', 'list');
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
31
|
import {GlassPane, MarginBehavior, SizeBehavior} from './GlassPane.js';
|
|
32
|
+
import popoverStyles from './popover.css.legacy.js';
|
|
32
33
|
|
|
33
34
|
export class PopoverHelper {
|
|
34
35
|
private disableOnClick: boolean;
|
|
@@ -189,7 +190,7 @@ export class PopoverHelper {
|
|
|
189
190
|
|
|
190
191
|
private showPopover(document: Document): void {
|
|
191
192
|
const popover = new GlassPane();
|
|
192
|
-
popover.registerRequiredCSS(
|
|
193
|
+
popover.registerRequiredCSS(popoverStyles);
|
|
193
194
|
popover.setSizeBehavior(SizeBehavior.MeasureContent);
|
|
194
195
|
popover.setMarginBehavior(MarginBehavior.Arrow);
|
|
195
196
|
const request = this.scheduledRequest;
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
import type * as Common from '../../core/common/common.js';
|
|
32
32
|
import * as Utils from './utils/utils.js';
|
|
33
|
+
import progressIndicatorStyles from './progressIndicator.css.legacy.js';
|
|
33
34
|
|
|
34
35
|
export class ProgressIndicator implements Common.Progress.Progress {
|
|
35
36
|
element: HTMLDivElement;
|
|
@@ -46,7 +47,7 @@ export class ProgressIndicator implements Common.Progress.Progress {
|
|
|
46
47
|
this.element = document.createElement('div');
|
|
47
48
|
this.element.classList.add('progress-indicator');
|
|
48
49
|
this.shadowRoot = Utils.createShadowRootWithCoreStyles(
|
|
49
|
-
this.element, {cssFile:
|
|
50
|
+
this.element, {cssFile: progressIndicatorStyles, delegatesFocus: undefined});
|
|
50
51
|
this.contentElement = this.shadowRoot.createChild('div', 'progress-indicator-shadow-container');
|
|
51
52
|
|
|
52
53
|
this.labelElement = this.contentElement.createChild('div', 'title');
|
|
@@ -6,6 +6,7 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
6
6
|
|
|
7
7
|
import {Dialog} from './Dialog.js';
|
|
8
8
|
import {SizeBehavior} from './GlassPane.js';
|
|
9
|
+
import remoteDebuggingTerminatedScreenStyles from './remoteDebuggingTerminatedScreen.css.legacy.js';
|
|
9
10
|
import {createTextButton, formatLocalized} from './UIUtils.js';
|
|
10
11
|
import {VBox} from './Widget.js';
|
|
11
12
|
|
|
@@ -30,7 +31,7 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
|
30
31
|
export class RemoteDebuggingTerminatedScreen extends VBox {
|
|
31
32
|
constructor(reason: string) {
|
|
32
33
|
super(true);
|
|
33
|
-
this.registerRequiredCSS(
|
|
34
|
+
this.registerRequiredCSS(remoteDebuggingTerminatedScreenStyles);
|
|
34
35
|
const message = this.contentElement.createChild('div', 'message');
|
|
35
36
|
const reasonElement = message.createChild('span', 'reason');
|
|
36
37
|
reasonElement.textContent = reason;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
5
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
6
|
+
import reportViewStyles from './reportView.css.legacy.js';
|
|
6
7
|
import {Toolbar} from './Toolbar.js';
|
|
7
8
|
import {Tooltip} from './Tooltip.js';
|
|
8
9
|
import {VBox} from './Widget.js';
|
|
@@ -20,7 +21,7 @@ export class ReportView extends VBox {
|
|
|
20
21
|
private urlElement?: HTMLElement;
|
|
21
22
|
constructor(title?: string) {
|
|
22
23
|
super(true);
|
|
23
|
-
this.registerRequiredCSS(
|
|
24
|
+
this.registerRequiredCSS(reportViewStyles);
|
|
24
25
|
|
|
25
26
|
this.contentBox = this.contentElement.createChild('div', 'report-content-box');
|
|
26
27
|
this.headerElement = this.contentBox.createChild('div', 'report-header vbox');
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// Use of this source code is governed by a BSD-style license that can be
|
|
3
3
|
// found in the LICENSE file.
|
|
4
4
|
|
|
5
|
+
import rootViewStyles from './rootView.css.legacy.js';
|
|
5
6
|
import {VBox} from './Widget.js';
|
|
6
7
|
import {ZoomManager} from './ZoomManager.js';
|
|
7
8
|
|
|
@@ -11,7 +12,7 @@ export class RootView extends VBox {
|
|
|
11
12
|
super();
|
|
12
13
|
this.markAsRoot();
|
|
13
14
|
this.element.classList.add('root-view');
|
|
14
|
-
this.registerRequiredCSS(
|
|
15
|
+
this.registerRequiredCSS(rootViewStyles);
|
|
15
16
|
this.element.setAttribute('spellcheck', 'false');
|
|
16
17
|
}
|
|
17
18
|
|
|
@@ -39,6 +39,7 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
39
39
|
import * as ARIAUtils from './ARIAUtils.js';
|
|
40
40
|
import {HistoryInput} from './HistoryInput.js';
|
|
41
41
|
import {InspectorView} from './InspectorView.js';
|
|
42
|
+
import searchableViewStyles from './searchableView.css.legacy.js';
|
|
42
43
|
import {Toolbar, ToolbarButton, ToolbarToggle} from './Toolbar.js';
|
|
43
44
|
import {Tooltip} from './Tooltip.js';
|
|
44
45
|
import {createTextButton} from './UIUtils.js';
|
|
@@ -123,7 +124,7 @@ export class SearchableView extends VBox {
|
|
|
123
124
|
|
|
124
125
|
constructor(searchable: Searchable, replaceable: Replaceable|null, settingName?: string) {
|
|
125
126
|
super(true);
|
|
126
|
-
this.registerRequiredCSS(
|
|
127
|
+
this.registerRequiredCSS(searchableViewStyles);
|
|
127
128
|
searchableViewsByElement.set(this.element, this);
|
|
128
129
|
|
|
129
130
|
this.searchProvider = searchable;
|
|
@@ -144,27 +144,31 @@ export class ShortcutRegistry {
|
|
|
144
144
|
return this.devToolsDefaultShortcutActions.has(actionId);
|
|
145
145
|
}
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}): (arg0: Event) => void {
|
|
147
|
+
getShortcutListener(handlers: {[x: string]: () => Promise<boolean>}): (event: KeyboardEvent) => void {
|
|
148
|
+
const shortcuts = Object.keys(handlers).flatMap(action => [...this.actionToShortcut.get(action)]);
|
|
150
149
|
// We only want keys for these specific actions to get handled this
|
|
151
150
|
// way; all others should be allowed to bubble up.
|
|
152
151
|
const allowlistKeyMap = new ShortcutTreeNode(0, 0);
|
|
153
|
-
const shortcuts = Object.keys(handlers).flatMap(action => [...this.actionToShortcut.get(action)]);
|
|
154
152
|
shortcuts.forEach(shortcut => {
|
|
155
153
|
allowlistKeyMap.addKeyMapping(shortcut.descriptors.map(descriptor => descriptor.key), shortcut.action);
|
|
156
154
|
});
|
|
157
155
|
|
|
158
|
-
|
|
159
|
-
const key = KeyboardShortcut.makeKeyFromEvent(
|
|
156
|
+
return (event: KeyboardEvent): void => {
|
|
157
|
+
const key = KeyboardShortcut.makeKeyFromEvent(event);
|
|
160
158
|
const keyMap = this.activePrefixKey ? allowlistKeyMap.getNode(this.activePrefixKey.key()) : allowlistKeyMap;
|
|
161
159
|
if (!keyMap) {
|
|
162
160
|
return;
|
|
163
161
|
}
|
|
164
162
|
if (keyMap.getNode(key)) {
|
|
165
|
-
this.handleShortcut(
|
|
163
|
+
this.handleShortcut(event, handlers);
|
|
166
164
|
}
|
|
167
165
|
};
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
addShortcutListener(element: Element, handlers: {
|
|
169
|
+
[x: string]: () => Promise<boolean>,
|
|
170
|
+
}): (arg0: Event) => void {
|
|
171
|
+
const listener = this.getShortcutListener(handlers) as (event: Event) => void;
|
|
168
172
|
element.addEventListener('keydown', listener);
|
|
169
173
|
return listener;
|
|
170
174
|
}
|
|
@@ -37,6 +37,7 @@ import {AnchorBehavior, GlassPane, MarginBehavior, PointerEventsBehavior, SizeBe
|
|
|
37
37
|
import {Icon} from './Icon.js';
|
|
38
38
|
import * as ThemeSupport from './theme_support/theme_support.js'; // eslint-disable-line rulesdir/es_modules_import
|
|
39
39
|
import {createTextChild, ElementFocusRestorer} from './UIUtils.js';
|
|
40
|
+
import softContextMenuStyles from './softContextMenu.css.legacy.js';
|
|
40
41
|
|
|
41
42
|
const UIStrings = {
|
|
42
43
|
/**
|
|
@@ -101,7 +102,7 @@ export class SoftContextMenu {
|
|
|
101
102
|
this.glassPane = new GlassPane();
|
|
102
103
|
this.glassPane.setPointerEventsBehavior(
|
|
103
104
|
this.parentMenu ? PointerEventsBehavior.PierceGlassPane : PointerEventsBehavior.BlockedByGlassPane);
|
|
104
|
-
this.glassPane.registerRequiredCSS(
|
|
105
|
+
this.glassPane.registerRequiredCSS(softContextMenuStyles);
|
|
105
106
|
this.glassPane.setContentAnchorBox(anchorBox);
|
|
106
107
|
this.glassPane.setSizeBehavior(SizeBehavior.MeasureContent);
|
|
107
108
|
this.glassPane.setMarginBehavior(MarginBehavior.NoMargin);
|
|
@@ -14,6 +14,8 @@ import type {ListDelegate} from './ListControl.js';
|
|
|
14
14
|
import {ListControl, ListMode} from './ListControl.js';
|
|
15
15
|
import type {ItemsReplacedEvent, ListModel} from './ListModel.js';
|
|
16
16
|
import {Events as ListModelEvents} from './ListModel.js';
|
|
17
|
+
import softDropDownStyles from './softDropDown.css.legacy.js';
|
|
18
|
+
import softDropDownButtonStyles from './softDropDownButton.css.legacy.js';
|
|
17
19
|
|
|
18
20
|
const UIStrings = {
|
|
19
21
|
/**
|
|
@@ -46,7 +48,7 @@ export class SoftDropDown<T> implements ListDelegate<T> {
|
|
|
46
48
|
|
|
47
49
|
this.element = document.createElement('button');
|
|
48
50
|
this.element.classList.add('soft-dropdown');
|
|
49
|
-
Utils.appendStyle(this.element,
|
|
51
|
+
Utils.appendStyle(this.element, softDropDownButtonStyles);
|
|
50
52
|
this.titleElement = this.element.createChild('span', 'title');
|
|
51
53
|
const dropdownArrowIcon = Icon.create('smallicon-triangle-down');
|
|
52
54
|
this.element.appendChild(dropdownArrowIcon);
|
|
@@ -63,7 +65,7 @@ export class SoftDropDown<T> implements ListDelegate<T> {
|
|
|
63
65
|
this.width = 315;
|
|
64
66
|
Utils
|
|
65
67
|
.createShadowRootWithCoreStyles(this.glassPane.contentElement, {
|
|
66
|
-
cssFile:
|
|
68
|
+
cssFile: softDropDownStyles,
|
|
67
69
|
delegatesFocus: undefined,
|
|
68
70
|
})
|
|
69
71
|
.appendChild(this.list.element);
|
|
@@ -37,6 +37,7 @@ import {Events as ResizerWidgetEvents, SimpleResizerWidget} from './ResizerWidge
|
|
|
37
37
|
import {ToolbarButton} from './Toolbar.js';
|
|
38
38
|
import {Widget} from './Widget.js';
|
|
39
39
|
import {Events as ZoomManagerEvents, ZoomManager} from './ZoomManager.js';
|
|
40
|
+
import splitWidgetStyles from './splitWidget.css.legacy.js';
|
|
40
41
|
|
|
41
42
|
export class SplitWidget extends Common.ObjectWrapper.eventMixin<EventTypes, typeof Widget>(Widget) {
|
|
42
43
|
private sidebarElementInternal: HTMLElement;
|
|
@@ -77,7 +78,7 @@ export class SplitWidget extends Common.ObjectWrapper.eventMixin<EventTypes, typ
|
|
|
77
78
|
defaultSidebarHeight?: number, constraintsInDip?: boolean) {
|
|
78
79
|
super(true);
|
|
79
80
|
this.element.classList.add('split-widget');
|
|
80
|
-
this.registerRequiredCSS(
|
|
81
|
+
this.registerRequiredCSS(splitWidgetStyles);
|
|
81
82
|
|
|
82
83
|
this.contentElement.classList.add('shadow-split-widget');
|
|
83
84
|
this.sidebarElementInternal =
|
|
@@ -41,6 +41,7 @@ import type {ListDelegate} from './ListControl.js';
|
|
|
41
41
|
import {ListControl, ListMode} from './ListControl.js';
|
|
42
42
|
import {ListModel} from './ListModel.js';
|
|
43
43
|
import {measurePreferredSize} from './UIUtils.js';
|
|
44
|
+
import suggestBoxStyles from './suggestBox.css.legacy.js';
|
|
44
45
|
|
|
45
46
|
const UIStrings = {
|
|
46
47
|
/**
|
|
@@ -107,7 +108,7 @@ export class SuggestBox implements ListDelegate<Suggestion> {
|
|
|
107
108
|
this.glassPane.setAnchorBehavior(AnchorBehavior.PreferBottom);
|
|
108
109
|
this.glassPane.setOutsideClickCallback(this.hide.bind(this));
|
|
109
110
|
const shadowRoot = Utils.createShadowRootWithCoreStyles(
|
|
110
|
-
this.glassPane.contentElement, {cssFile:
|
|
111
|
+
this.glassPane.contentElement, {cssFile: suggestBoxStyles, delegatesFocus: undefined});
|
|
111
112
|
shadowRoot.appendChild(this.element);
|
|
112
113
|
}
|
|
113
114
|
|
|
@@ -43,6 +43,7 @@ import {installDragHandle, invokeOnceAfterBatchUpdate} from './UIUtils.js';
|
|
|
43
43
|
import type {Widget} from './Widget.js';
|
|
44
44
|
import {VBox} from './Widget.js';
|
|
45
45
|
import {Events as ZoomManagerEvents, ZoomManager} from './ZoomManager.js';
|
|
46
|
+
import tabbedPaneStyles from './tabbedPane.css.legacy.js';
|
|
46
47
|
|
|
47
48
|
const UIStrings = {
|
|
48
49
|
/**
|
|
@@ -110,7 +111,7 @@ export class TabbedPane extends Common.ObjectWrapper.eventMixin<EventTypes, type
|
|
|
110
111
|
|
|
111
112
|
constructor() {
|
|
112
113
|
super(true);
|
|
113
|
-
this.registerRequiredCSS(
|
|
114
|
+
this.registerRequiredCSS(tabbedPaneStyles);
|
|
114
115
|
this.element.classList.add('tabbed-pane');
|
|
115
116
|
this.contentElement.classList.add('tabbed-pane-shadow');
|
|
116
117
|
this.contentElement.tabIndex = -1;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
6
6
|
|
|
7
|
+
import targetCrashedScreenStyles from './targetCrashedScreen.css.legacy.js';
|
|
7
8
|
import {VBox} from './Widget.js';
|
|
8
9
|
|
|
9
10
|
const UIStrings = {
|
|
@@ -22,7 +23,7 @@ export class TargetCrashedScreen extends VBox {
|
|
|
22
23
|
private readonly hideCallback: () => void;
|
|
23
24
|
constructor(hideCallback: () => void) {
|
|
24
25
|
super(true);
|
|
25
|
-
this.registerRequiredCSS(
|
|
26
|
+
this.registerRequiredCSS(targetCrashedScreenStyles);
|
|
26
27
|
this.contentElement.createChild('div', 'message').textContent =
|
|
27
28
|
i18nString(UIStrings.devtoolsWasDisconnectedFromThe);
|
|
28
29
|
this.contentElement.createChild('div', 'message').textContent =
|