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.
Files changed (254) hide show
  1. package/WATCHLISTS +1 -1
  2. package/config/gni/all_devtools_files.gni +0 -62
  3. package/config/gni/devtools_grd_files.gni +55 -19
  4. package/config/gni/devtools_image_files.gni +2 -3
  5. package/front_end/.eslintrc.js +12 -1
  6. package/front_end/Images/src/feedback_button_icon.svg +3 -0
  7. package/front_end/Images/src/{feedback_thin_16x16_icon.svg → survey_feedback_icon.svg} +1 -1
  8. package/front_end/Tests.js +1 -32
  9. package/front_end/core/common/Color.ts +5 -0
  10. package/front_end/core/i18n/locales/en-US.json +20 -29
  11. package/front_end/core/i18n/locales/en-XL.json +20 -29
  12. package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
  13. package/front_end/core/sdk/ConsoleModel.ts +26 -28
  14. package/front_end/core/sdk/DebuggerModel.ts +4 -14
  15. package/front_end/core/sdk/sdk-meta.ts +17 -3
  16. package/front_end/entrypoints/devtools_app/devtools_app.json +1 -11
  17. package/front_end/entrypoints/inspector/inspector.json +1 -3
  18. package/front_end/entrypoints/js_app/js_app.json +1 -3
  19. package/front_end/entrypoints/main/MainImpl.ts +26 -0
  20. package/front_end/entrypoints/node_app/node_app.json +1 -3
  21. package/front_end/entrypoints/shell/shell.js +0 -11
  22. package/front_end/entrypoints/shell/shell.json +1 -5
  23. package/front_end/entrypoints/worker_app/worker_app.json +1 -7
  24. package/front_end/generated/InspectorBackendCommands.js +19 -0
  25. package/front_end/generated/protocol-mapping.d.ts +31 -1
  26. package/front_end/generated/protocol-proxy-api.d.ts +34 -2
  27. package/front_end/generated/protocol.d.ts +81 -6
  28. package/front_end/global_typings/global_defs.d.ts +5 -0
  29. package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +2 -2
  30. package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +14 -2
  31. package/front_end/legacy_test_runner/legacy_test_runner.ts +10 -1
  32. package/front_end/legacy_test_runner/test_runner/TestRunner.js +11 -0
  33. package/front_end/models/formatter/SourceFormatter.ts +0 -10
  34. package/front_end/models/workspace/UISourceCode.ts +9 -42
  35. package/front_end/panels/animation/AnimationTimeline.ts +3 -3
  36. package/front_end/panels/application/ApplicationPanelSidebar.ts +3 -3
  37. package/front_end/panels/application/BackForwardCacheStrings.ts +3 -1
  38. package/front_end/panels/application/application-meta.ts +0 -3
  39. package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
  40. package/front_end/panels/application/components/ReportsGrid.ts +1 -1
  41. package/front_end/panels/console/ConsolePinPane.ts +21 -26
  42. package/front_end/panels/coverage/CoverageDecorationManager.ts +4 -5
  43. package/front_end/panels/coverage/CoverageView.ts +2 -105
  44. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +11 -56
  45. package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -8
  46. package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
  47. package/front_end/panels/elements/components/StylePropertyEditor.ts +2 -0
  48. package/front_end/panels/elements/components/adornerSettingsPane.css +0 -4
  49. package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
  50. package/front_end/panels/emulation/DeviceModeView.ts +2 -1
  51. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +3 -1
  52. package/front_end/panels/emulation/MediaQueryInspector.ts +3 -1
  53. package/front_end/panels/emulation/emulation-meta.ts +2 -4
  54. package/front_end/panels/issues/issues-meta.ts +0 -2
  55. package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -3
  56. package/front_end/panels/layers/module.json +0 -1
  57. package/front_end/panels/lighthouse/LighthousePanel.ts +2 -4
  58. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -4
  59. package/front_end/panels/lighthouse/lighthouseStartView.css +4 -0
  60. package/front_end/panels/lighthouse/module.json +0 -6
  61. package/front_end/panels/media/media-meta.ts +0 -3
  62. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -1
  63. package/front_end/panels/network/network-meta.ts +0 -3
  64. package/front_end/panels/profiler/CPUProfileView.ts +10 -3
  65. package/front_end/panels/profiler/profiler-meta.ts +0 -2
  66. package/front_end/panels/screencast/screencast-meta.ts +0 -3
  67. package/front_end/panels/security/security-meta.ts +0 -3
  68. package/front_end/panels/sources/BreakpointEditDialog.ts +16 -30
  69. package/front_end/panels/sources/CSSPlugin.ts +310 -331
  70. package/front_end/panels/sources/CallStackSidebarPane.ts +28 -34
  71. package/front_end/panels/sources/CoveragePlugin.ts +121 -6
  72. package/front_end/panels/sources/DebuggerPlugin.ts +1166 -1243
  73. package/front_end/panels/sources/EditingLocationHistoryManager.ts +71 -101
  74. package/front_end/panels/sources/GoToLineQuickOpen.ts +4 -3
  75. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
  76. package/front_end/panels/sources/JavaScriptCompilerPlugin.ts +26 -23
  77. package/front_end/panels/sources/Plugin.ts +20 -4
  78. package/front_end/panels/sources/ProfilePlugin.ts +185 -0
  79. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
  80. package/front_end/panels/sources/ScriptOriginPlugin.ts +0 -10
  81. package/front_end/panels/sources/SnippetsPlugin.ts +1 -10
  82. package/front_end/panels/sources/SourcesPanel.ts +6 -5
  83. package/front_end/panels/sources/SourcesView.ts +10 -8
  84. package/front_end/panels/sources/TabbedEditorContainer.ts +31 -27
  85. package/front_end/panels/sources/UISourceCodeFrame.ts +335 -470
  86. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -2
  87. package/front_end/panels/sources/sources-legacy.ts +0 -6
  88. package/front_end/panels/sources/sources-meta.ts +1 -4
  89. package/front_end/panels/sources/sources.ts +0 -2
  90. package/front_end/panels/timeline/timeline-meta.ts +0 -5
  91. package/front_end/third_party/codemirror.next/bundle.ts +9 -13
  92. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  93. package/front_end/third_party/codemirror.next/chunk/javascript.js +2 -2
  94. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -6
  95. package/front_end/third_party/codemirror.next/chunk/php.js +2 -6
  96. package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
  97. package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
  98. package/front_end/third_party/codemirror.next/chunk/xml.js +2 -2
  99. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +279 -198
  100. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  101. package/front_end/third_party/codemirror.next/package.json +13 -11
  102. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1128 -1158
  103. package/front_end/third_party/lighthouse/locales/ar-XB.json +211 -79
  104. package/front_end/third_party/lighthouse/locales/ar.json +213 -81
  105. package/front_end/third_party/lighthouse/locales/bg.json +211 -79
  106. package/front_end/third_party/lighthouse/locales/ca.json +212 -80
  107. package/front_end/third_party/lighthouse/locales/cs.json +211 -79
  108. package/front_end/third_party/lighthouse/locales/da.json +211 -79
  109. package/front_end/third_party/lighthouse/locales/de.json +211 -79
  110. package/front_end/third_party/lighthouse/locales/el.json +213 -81
  111. package/front_end/third_party/lighthouse/locales/en-GB.json +211 -79
  112. package/front_end/third_party/lighthouse/locales/en-US.json +186 -75
  113. package/front_end/third_party/lighthouse/locales/en-XA.json +211 -79
  114. package/front_end/third_party/lighthouse/locales/en-XL.json +186 -75
  115. package/front_end/third_party/lighthouse/locales/es-419.json +211 -79
  116. package/front_end/third_party/lighthouse/locales/es.json +212 -80
  117. package/front_end/third_party/lighthouse/locales/fi.json +211 -79
  118. package/front_end/third_party/lighthouse/locales/fil.json +211 -79
  119. package/front_end/third_party/lighthouse/locales/fr.json +211 -79
  120. package/front_end/third_party/lighthouse/locales/he.json +212 -80
  121. package/front_end/third_party/lighthouse/locales/hi.json +214 -82
  122. package/front_end/third_party/lighthouse/locales/hr.json +211 -79
  123. package/front_end/third_party/lighthouse/locales/hu.json +211 -79
  124. package/front_end/third_party/lighthouse/locales/id.json +211 -79
  125. package/front_end/third_party/lighthouse/locales/it.json +211 -79
  126. package/front_end/third_party/lighthouse/locales/ja.json +211 -79
  127. package/front_end/third_party/lighthouse/locales/ko.json +211 -79
  128. package/front_end/third_party/lighthouse/locales/lt.json +211 -79
  129. package/front_end/third_party/lighthouse/locales/lv.json +214 -82
  130. package/front_end/third_party/lighthouse/locales/nl.json +211 -79
  131. package/front_end/third_party/lighthouse/locales/no.json +211 -79
  132. package/front_end/third_party/lighthouse/locales/pl.json +211 -79
  133. package/front_end/third_party/lighthouse/locales/pt-PT.json +211 -79
  134. package/front_end/third_party/lighthouse/locales/pt.json +211 -79
  135. package/front_end/third_party/lighthouse/locales/ro.json +212 -80
  136. package/front_end/third_party/lighthouse/locales/ru.json +211 -79
  137. package/front_end/third_party/lighthouse/locales/sk.json +211 -79
  138. package/front_end/third_party/lighthouse/locales/sl.json +211 -79
  139. package/front_end/third_party/lighthouse/locales/sr-Latn.json +211 -79
  140. package/front_end/third_party/lighthouse/locales/sr.json +211 -79
  141. package/front_end/third_party/lighthouse/locales/sv.json +211 -79
  142. package/front_end/third_party/lighthouse/locales/ta.json +218 -86
  143. package/front_end/third_party/lighthouse/locales/te.json +251 -119
  144. package/front_end/third_party/lighthouse/locales/th.json +211 -79
  145. package/front_end/third_party/lighthouse/locales/tr.json +211 -79
  146. package/front_end/third_party/lighthouse/locales/uk.json +212 -80
  147. package/front_end/third_party/lighthouse/locales/vi.json +211 -79
  148. package/front_end/third_party/lighthouse/locales/zh-HK.json +211 -79
  149. package/front_end/third_party/lighthouse/locales/zh-TW.json +211 -79
  150. package/front_end/third_party/lighthouse/locales/zh.json +211 -79
  151. package/front_end/third_party/lighthouse/report/bundle.d.ts +72 -34
  152. package/front_end/third_party/lighthouse/report/bundle.js +698 -492
  153. package/front_end/third_party/lighthouse/report-assets/report-generator.js +1 -2
  154. package/front_end/third_party/lighthouse/report-assets/report.js +40 -35
  155. package/front_end/third_party/lighthouse/report-assets/standalone-template.html +2 -4
  156. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +60 -68
  157. package/front_end/ui/components/data_grid/dataGrid.css +12 -10
  158. package/front_end/ui/components/docs/css_overview/start_view.html +25 -0
  159. package/front_end/ui/components/docs/css_overview/start_view.ts +14 -0
  160. package/front_end/ui/components/docs/icon_button/basic.ts +3 -3
  161. package/front_end/ui/components/docs/panel_feedback/button.html +25 -0
  162. package/front_end/ui/components/docs/panel_feedback/button.ts +18 -0
  163. package/front_end/ui/components/helpers/get-stylesheet.ts +0 -14
  164. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
  165. package/front_end/ui/components/panel_feedback/FeedbackButton.ts +67 -0
  166. package/front_end/ui/components/panel_feedback/panel_feedback.ts +1 -0
  167. package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
  168. package/front_end/ui/components/text_editor/TextEditor.ts +79 -36
  169. package/front_end/ui/components/text_editor/config.ts +42 -26
  170. package/front_end/ui/components/text_editor/javascript.ts +2 -3
  171. package/front_end/ui/components/text_editor/position.ts +17 -0
  172. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  173. package/front_end/ui/components/text_editor/theme.ts +5 -1
  174. package/front_end/ui/legacy/Dialog.ts +3 -1
  175. package/front_end/ui/legacy/DropTarget.ts +2 -1
  176. package/front_end/ui/legacy/EmptyWidget.ts +2 -1
  177. package/front_end/ui/legacy/FilterBar.ts +2 -1
  178. package/front_end/ui/legacy/GlassPane.ts +4 -2
  179. package/front_end/ui/legacy/Infobar.ts +5 -8
  180. package/front_end/ui/legacy/InspectorView.ts +6 -1
  181. package/front_end/ui/legacy/ListWidget.ts +2 -1
  182. package/front_end/ui/legacy/PopoverHelper.ts +2 -1
  183. package/front_end/ui/legacy/ProgressIndicator.ts +2 -1
  184. package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +2 -1
  185. package/front_end/ui/legacy/ReportView.ts +2 -1
  186. package/front_end/ui/legacy/RootView.ts +2 -1
  187. package/front_end/ui/legacy/SearchableView.ts +2 -1
  188. package/front_end/ui/legacy/ShortcutRegistry.ts +11 -7
  189. package/front_end/ui/legacy/SoftContextMenu.ts +2 -1
  190. package/front_end/ui/legacy/SoftDropDown.ts +4 -2
  191. package/front_end/ui/legacy/SplitWidget.ts +2 -1
  192. package/front_end/ui/legacy/SuggestBox.ts +2 -1
  193. package/front_end/ui/legacy/TabbedPane.ts +2 -1
  194. package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -1
  195. package/front_end/ui/legacy/TextPrompt.ts +2 -1
  196. package/front_end/ui/legacy/Toolbar.ts +3 -2
  197. package/front_end/ui/legacy/Treeoutline.ts +3 -2
  198. package/front_end/ui/legacy/UIUtils.ts +16 -13
  199. package/front_end/ui/legacy/ViewManager.ts +2 -1
  200. package/front_end/ui/legacy/Widget.ts +1 -1
  201. package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -3
  202. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -1
  203. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +3 -1
  204. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -1
  205. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +35 -131
  206. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +2 -1
  207. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +3 -1
  208. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +2 -1
  209. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -2
  210. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
  211. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +3 -6
  212. package/front_end/ui/legacy/components/source_frame/FontView.ts +1 -0
  213. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -0
  214. package/front_end/ui/legacy/components/source_frame/JSONView.ts +1 -0
  215. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +19 -14
  216. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +501 -252
  217. package/front_end/ui/legacy/components/source_frame/XMLView.ts +2 -0
  218. package/front_end/ui/legacy/components/source_frame/module.json +0 -3
  219. package/front_end/ui/legacy/components/source_frame/source_frame-legacy.ts +0 -11
  220. package/front_end/ui/legacy/components/source_frame/source_frame.ts +0 -2
  221. package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +2 -0
  222. package/front_end/ui/legacy/components/text_editor/cmdevtools.css +3 -1
  223. package/front_end/ui/legacy/components/text_editor/module.json +0 -3
  224. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -15
  225. package/front_end/ui/legacy/radioButton.css +1 -13
  226. package/front_end/ui/legacy/textButton.css +5 -4
  227. package/front_end/ui/legacy/themeColors.css +36 -0
  228. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +7 -9
  229. package/front_end/ui/legacy/utils/append-style.ts +9 -4
  230. package/front_end/ui/legacy/utils/create-shadow-root-with-core-styles.ts +2 -2
  231. package/front_end/ui/legacy/utils/inject-core-styles.ts +7 -4
  232. package/package.json +1 -1
  233. package/scripts/build/generate_css_js_files.js +23 -9
  234. package/scripts/build/ninja/generate_css.gni +10 -1
  235. package/scripts/eslint_rules/lib/check_css_import.js +2 -2
  236. package/scripts/eslint_rules/tests/check_css_import_test.js +12 -0
  237. package/front_end/Images/radioDot-dark-theme.png +0 -0
  238. package/front_end/Images/radioDot.png +0 -0
  239. package/front_end/emulated_devices/module.json +0 -6
  240. package/front_end/panels/application/module.json +0 -7
  241. package/front_end/panels/emulation/module.json +0 -11
  242. package/front_end/panels/issues/module.json +0 -6
  243. package/front_end/panels/js_profiler/module.json +0 -5
  244. package/front_end/panels/layer_viewer/module.json +0 -6
  245. package/front_end/panels/media/module.json +0 -6
  246. package/front_end/panels/network/module.json +0 -6
  247. package/front_end/panels/profiler/module.json +0 -6
  248. package/front_end/panels/screencast/module.json +0 -6
  249. package/front_end/panels/security/module.json +0 -5
  250. package/front_end/panels/timeline/module.json +0 -8
  251. package/front_end/third_party/lighthouse/report-assets/report.css +0 -1774
  252. package/front_end/ui/legacy/components/perf_ui/module.json +0 -13
  253. package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +0 -1030
  254. 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, state: CM.EditorState) => CM.Extension,
37
+ private readonly getExtension: (value: T) => CM.Extension,
39
38
  ) {
40
- this.extension = [this.compartment.of(empty), dynamicSetting.of(this as DynamicSetting<unknown>)];
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, state);
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 sorted = Object.entries(values).filter(e => e[1] > minOccurrence).sort((a, b) => a[1] - b[1]);
86
- return sorted.length ? sorted[0][0] : Common.Settings.Settings.instance().moduleSetting('textEditorIndent').get();
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 cachedIndentUnit: {[indent: string]: CM.Extension} = Object.create(null);
102
+ const deriveIndentUnit = CM.Prec.highest(CM.indentUnit.compute([], (state: CM.EditorState) => guessIndent(state.doc)));
90
103
 
91
- function getIndentUnit(indent: string): CM.Extension {
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
- editorTheme,
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.getHighlightStyle(CM),
212
+ CodeHighlighter.CodeHighlighter.highlightStyle,
197
213
  CM.closeBrackets(),
198
214
  baseKeymap,
199
- tabMovesFocus,
200
- bracketMatching,
201
- indentUnit,
202
- CM.Prec.fallback(CM.EditorView.contentAttributes.of({'aria-label': i18nString(UIStrings.codeEditor)})),
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.getHighlightStyle(CM),
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 async function completion(): Promise<CodeMirror.Extension> {
13
- const {javascriptLanguage} = await CodeMirror.javascript();
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
+ }
@@ -4,4 +4,5 @@
4
4
 
5
5
  export * as Config from './config.js';
6
6
  export * as JavaScript from './javascript.js';
7
+ export * as Position from './position.js';
7
8
  export * as TextEditor from './TextEditor.js';
@@ -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-error-text)',
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('ui/legacy/dialog.css');
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: 'ui/legacy/dropTarget.css', delegatesFocus: undefined});
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('ui/legacy/emptyWidget.css');
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('ui/legacy/filter.css');
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('ui/legacy/glassPane.css');
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
- // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
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 = Utils.createShadowRootWithCoreStyles(
60
- this.element, {cssFile: 'ui/legacy/infobar.css', delegatesFocus: undefined});
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
- // TODO(crbug.com/1172300) Ignored during the jsdoc to ts migration
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('ui/legacy/inspectorViewTabbedPane.css');
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('ui/legacy/listWidget.css');
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('ui/legacy/popover.css');
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: 'ui/legacy/progressIndicator.css', delegatesFocus: undefined});
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('ui/legacy/remoteDebuggingTerminatedScreen.css');
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('ui/legacy/reportView.css');
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('ui/legacy/rootView.css');
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('ui/legacy/searchableView.css');
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
- addShortcutListener(element: Element, handlers: {
148
- [x: string]: () => Promise<boolean>,
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
- const listener = (event: Event): void => {
159
- const key = KeyboardShortcut.makeKeyFromEvent((event as KeyboardEvent));
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((event as KeyboardEvent), handlers);
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('ui/legacy/softContextMenu.css');
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, 'ui/legacy/softDropDownButton.css');
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: 'ui/legacy/softDropDown.css',
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('ui/legacy/splitWidget.css');
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: 'ui/legacy/suggestBox.css', delegatesFocus: undefined});
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('ui/legacy/tabbedPane.css');
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('ui/legacy/targetCrashedScreen.css');
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 =