chrome-devtools-frontend 1.0.941208 → 1.0.943182

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 (289) hide show
  1. package/WATCHLISTS +1 -1
  2. package/config/gni/all_devtools_files.gni +0 -64
  3. package/config/gni/devtools_grd_files.gni +54 -19
  4. package/config/gni/devtools_image_files.gni +1 -3
  5. package/front_end/.eslintrc.js +11 -1
  6. package/front_end/Images/src/{feedback_thin_16x16_icon.svg → survey_feedback_icon.svg} +1 -1
  7. package/front_end/Tests.js +1 -32
  8. package/front_end/core/common/Color.ts +5 -0
  9. package/front_end/core/i18n/locales/en-US.json +17 -29
  10. package/front_end/core/i18n/locales/en-XL.json +17 -29
  11. package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
  12. package/front_end/core/sdk/ConsoleModel.ts +27 -33
  13. package/front_end/core/sdk/DebuggerModel.ts +4 -14
  14. package/front_end/core/sdk/sdk-meta.ts +17 -3
  15. package/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.ts +1 -1
  16. package/front_end/entrypoints/devtools_app/devtools_app.js +1 -1
  17. package/front_end/entrypoints/devtools_app/devtools_app.json +1 -12
  18. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
  19. package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.ts +1 -1
  20. package/front_end/entrypoints/inspector/inspector.js +1 -1
  21. package/front_end/entrypoints/inspector/inspector.json +1 -3
  22. package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +2 -3
  23. package/front_end/entrypoints/js_app/js_app.js +1 -1
  24. package/front_end/entrypoints/js_app/js_app.json +1 -3
  25. package/front_end/entrypoints/main/MainImpl.ts +26 -0
  26. package/front_end/entrypoints/main/main-meta.ts +1 -2
  27. package/front_end/entrypoints/ndb_app/ndb_app.js +1 -1
  28. package/front_end/entrypoints/node_app/node_app-meta.ts +0 -2
  29. package/front_end/entrypoints/node_app/node_app.js +1 -1
  30. package/front_end/entrypoints/node_app/node_app.json +1 -3
  31. package/front_end/entrypoints/node_main/node_main-meta.ts +0 -1
  32. package/front_end/entrypoints/shell/shell.js +0 -11
  33. package/front_end/entrypoints/shell/shell.json +1 -5
  34. package/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.ts +1 -1
  35. package/front_end/entrypoints/worker_app/worker_app.js +1 -1
  36. package/front_end/entrypoints/worker_app/worker_app.json +1 -7
  37. package/front_end/generated/InspectorBackendCommands.js +19 -0
  38. package/front_end/generated/protocol-mapping.d.ts +31 -1
  39. package/front_end/generated/protocol-proxy-api.d.ts +34 -2
  40. package/front_end/generated/protocol.d.ts +81 -6
  41. package/front_end/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +2 -2
  42. package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +5 -1
  43. package/front_end/legacy_test_runner/legacy_test_runner.ts +10 -1
  44. package/front_end/legacy_test_runner/test_runner/TestRunner.js +3 -1
  45. package/front_end/models/formatter/SourceFormatter.ts +0 -10
  46. package/front_end/models/persistence/persistence-meta.ts +0 -1
  47. package/front_end/models/workspace/UISourceCode.ts +9 -42
  48. package/front_end/panels/accessibility/accessibility-meta.ts +0 -1
  49. package/front_end/panels/animation/AnimationTimeline.ts +3 -3
  50. package/front_end/panels/animation/animation-meta.ts +0 -1
  51. package/front_end/panels/application/ApplicationPanelSidebar.ts +3 -3
  52. package/front_end/panels/application/BackForwardCacheStrings.ts +3 -1
  53. package/front_end/panels/application/application-meta.ts +0 -4
  54. package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
  55. package/front_end/panels/application/components/ReportsGrid.ts +1 -1
  56. package/front_end/panels/application/components/stackTraceRow.css +8 -0
  57. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +1 -2
  58. package/front_end/panels/changes/changes-meta.ts +0 -1
  59. package/front_end/panels/console/ConsolePinPane.ts +23 -32
  60. package/front_end/panels/console/ConsoleViewMessage.ts +8 -1
  61. package/front_end/panels/console/console-meta.ts +0 -1
  62. package/front_end/panels/console_counters/console_counters-meta.ts +0 -1
  63. package/front_end/panels/coverage/CoverageDecorationManager.ts +4 -5
  64. package/front_end/panels/coverage/CoverageView.ts +2 -105
  65. package/front_end/panels/coverage/coverage-meta.ts +0 -1
  66. package/front_end/panels/css_overview/components/CSSOverviewStartView.ts +11 -56
  67. package/front_end/panels/css_overview/components/cssOverviewStartView.css +1 -8
  68. package/front_end/panels/css_overview/css_overview-meta.ts +0 -1
  69. package/front_end/panels/developer_resources/developer_resources-meta.ts +0 -1
  70. package/front_end/panels/elements/ElementsTreeElement.ts +4 -9
  71. package/front_end/panels/elements/components/StylePropertyEditor.ts +2 -0
  72. package/front_end/panels/elements/components/adornerSettingsPane.css +0 -4
  73. package/front_end/panels/elements/elements-meta.ts +0 -1
  74. package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
  75. package/front_end/panels/emulation/DeviceModeView.ts +2 -1
  76. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +3 -1
  77. package/front_end/panels/emulation/MediaQueryInspector.ts +3 -1
  78. package/front_end/panels/emulation/emulation-meta.ts +2 -5
  79. package/front_end/panels/help/help-meta.ts +0 -1
  80. package/front_end/panels/input/input-meta.ts +0 -1
  81. package/front_end/panels/issues/issues-meta.ts +0 -3
  82. package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -4
  83. package/front_end/panels/layers/layers-meta.ts +0 -4
  84. package/front_end/panels/lighthouse/LighthousePanel.ts +2 -4
  85. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -4
  86. package/front_end/panels/lighthouse/lighthouse-meta.ts +0 -1
  87. package/front_end/panels/lighthouse/lighthouseStartView.css +4 -0
  88. package/front_end/panels/lighthouse/module.json +0 -6
  89. package/front_end/panels/media/media-meta.ts +0 -4
  90. package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +0 -1
  91. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -1
  92. package/front_end/panels/network/network-meta.ts +1 -5
  93. package/front_end/panels/performance_monitor/performance_monitor-meta.ts +0 -1
  94. package/front_end/panels/profiler/CPUProfileView.ts +10 -3
  95. package/front_end/panels/profiler/profiler-meta.ts +0 -3
  96. package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +0 -1
  97. package/front_end/panels/screencast/screencast-meta.ts +0 -4
  98. package/front_end/panels/security/security-meta.ts +0 -4
  99. package/front_end/panels/sensors/sensors-meta.ts +0 -1
  100. package/front_end/panels/settings/emulation/emulation-meta.ts +0 -1
  101. package/front_end/panels/settings/settings-meta.ts +0 -1
  102. package/front_end/panels/sources/BreakpointEditDialog.ts +16 -30
  103. package/front_end/panels/sources/CSSPlugin.ts +310 -331
  104. package/front_end/panels/sources/CallStackSidebarPane.ts +28 -34
  105. package/front_end/panels/sources/CoveragePlugin.ts +121 -6
  106. package/front_end/panels/sources/DebuggerPlugin.ts +1166 -1243
  107. package/front_end/panels/sources/EditingLocationHistoryManager.ts +71 -101
  108. package/front_end/panels/sources/GoToLineQuickOpen.ts +4 -3
  109. package/front_end/panels/sources/InplaceFormatterEditorAction.ts +3 -3
  110. package/front_end/panels/sources/JavaScriptCompilerPlugin.ts +26 -23
  111. package/front_end/panels/sources/Plugin.ts +20 -4
  112. package/front_end/panels/sources/ProfilePlugin.ts +185 -0
  113. package/front_end/panels/sources/ScriptFormatterEditorAction.ts +3 -3
  114. package/front_end/panels/sources/ScriptOriginPlugin.ts +0 -10
  115. package/front_end/panels/sources/SnippetsPlugin.ts +1 -10
  116. package/front_end/panels/sources/SourcesPanel.ts +6 -5
  117. package/front_end/panels/sources/SourcesView.ts +10 -8
  118. package/front_end/panels/sources/TabbedEditorContainer.ts +31 -27
  119. package/front_end/panels/sources/UISourceCodeFrame.ts +335 -470
  120. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +3 -2
  121. package/front_end/panels/sources/sources-legacy.ts +0 -6
  122. package/front_end/panels/sources/sources-meta.ts +2 -6
  123. package/front_end/panels/sources/sources.ts +0 -2
  124. package/front_end/panels/timeline/timeline-meta.ts +2 -9
  125. package/front_end/panels/web_audio/web_audio-meta.ts +0 -1
  126. package/front_end/panels/webauthn/webauthn-meta.ts +0 -1
  127. package/front_end/third_party/codemirror.next/bundle.ts +9 -13
  128. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  129. package/front_end/third_party/codemirror.next/chunk/javascript.js +2 -2
  130. package/front_end/third_party/codemirror.next/chunk/markdown.js +2 -6
  131. package/front_end/third_party/codemirror.next/chunk/php.js +2 -6
  132. package/front_end/third_party/codemirror.next/chunk/python.js +1 -1
  133. package/front_end/third_party/codemirror.next/chunk/wast.js +1 -1
  134. package/front_end/third_party/codemirror.next/chunk/xml.js +2 -2
  135. package/front_end/third_party/codemirror.next/codemirror.next.d.ts +279 -198
  136. package/front_end/third_party/codemirror.next/codemirror.next.js +1 -1
  137. package/front_end/third_party/codemirror.next/package.json +13 -11
  138. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1128 -1158
  139. package/front_end/third_party/lighthouse/locales/ar-XB.json +211 -79
  140. package/front_end/third_party/lighthouse/locales/ar.json +213 -81
  141. package/front_end/third_party/lighthouse/locales/bg.json +211 -79
  142. package/front_end/third_party/lighthouse/locales/ca.json +212 -80
  143. package/front_end/third_party/lighthouse/locales/cs.json +211 -79
  144. package/front_end/third_party/lighthouse/locales/da.json +211 -79
  145. package/front_end/third_party/lighthouse/locales/de.json +211 -79
  146. package/front_end/third_party/lighthouse/locales/el.json +213 -81
  147. package/front_end/third_party/lighthouse/locales/en-GB.json +211 -79
  148. package/front_end/third_party/lighthouse/locales/en-US.json +186 -75
  149. package/front_end/third_party/lighthouse/locales/en-XA.json +211 -79
  150. package/front_end/third_party/lighthouse/locales/en-XL.json +186 -75
  151. package/front_end/third_party/lighthouse/locales/es-419.json +211 -79
  152. package/front_end/third_party/lighthouse/locales/es.json +212 -80
  153. package/front_end/third_party/lighthouse/locales/fi.json +211 -79
  154. package/front_end/third_party/lighthouse/locales/fil.json +211 -79
  155. package/front_end/third_party/lighthouse/locales/fr.json +211 -79
  156. package/front_end/third_party/lighthouse/locales/he.json +212 -80
  157. package/front_end/third_party/lighthouse/locales/hi.json +214 -82
  158. package/front_end/third_party/lighthouse/locales/hr.json +211 -79
  159. package/front_end/third_party/lighthouse/locales/hu.json +211 -79
  160. package/front_end/third_party/lighthouse/locales/id.json +211 -79
  161. package/front_end/third_party/lighthouse/locales/it.json +211 -79
  162. package/front_end/third_party/lighthouse/locales/ja.json +211 -79
  163. package/front_end/third_party/lighthouse/locales/ko.json +211 -79
  164. package/front_end/third_party/lighthouse/locales/lt.json +211 -79
  165. package/front_end/third_party/lighthouse/locales/lv.json +214 -82
  166. package/front_end/third_party/lighthouse/locales/nl.json +211 -79
  167. package/front_end/third_party/lighthouse/locales/no.json +211 -79
  168. package/front_end/third_party/lighthouse/locales/pl.json +211 -79
  169. package/front_end/third_party/lighthouse/locales/pt-PT.json +211 -79
  170. package/front_end/third_party/lighthouse/locales/pt.json +211 -79
  171. package/front_end/third_party/lighthouse/locales/ro.json +212 -80
  172. package/front_end/third_party/lighthouse/locales/ru.json +211 -79
  173. package/front_end/third_party/lighthouse/locales/sk.json +211 -79
  174. package/front_end/third_party/lighthouse/locales/sl.json +211 -79
  175. package/front_end/third_party/lighthouse/locales/sr-Latn.json +211 -79
  176. package/front_end/third_party/lighthouse/locales/sr.json +211 -79
  177. package/front_end/third_party/lighthouse/locales/sv.json +211 -79
  178. package/front_end/third_party/lighthouse/locales/ta.json +218 -86
  179. package/front_end/third_party/lighthouse/locales/te.json +251 -119
  180. package/front_end/third_party/lighthouse/locales/th.json +211 -79
  181. package/front_end/third_party/lighthouse/locales/tr.json +211 -79
  182. package/front_end/third_party/lighthouse/locales/uk.json +212 -80
  183. package/front_end/third_party/lighthouse/locales/vi.json +211 -79
  184. package/front_end/third_party/lighthouse/locales/zh-HK.json +211 -79
  185. package/front_end/third_party/lighthouse/locales/zh-TW.json +211 -79
  186. package/front_end/third_party/lighthouse/locales/zh.json +211 -79
  187. package/front_end/third_party/lighthouse/report/bundle.d.ts +72 -34
  188. package/front_end/third_party/lighthouse/report/bundle.js +698 -492
  189. package/front_end/third_party/lighthouse/report-assets/report-generator.js +1 -2
  190. package/front_end/third_party/lighthouse/report-assets/report.js +40 -35
  191. package/front_end/third_party/lighthouse/report-assets/standalone-template.html +2 -4
  192. package/front_end/ui/components/code_highlighter/CodeHighlighter.ts +60 -68
  193. package/front_end/ui/components/data_grid/dataGrid.css +12 -10
  194. package/front_end/ui/components/docs/component_docs.ts +14 -0
  195. package/front_end/ui/components/docs/create_breadcrumbs.ts +1 -1
  196. package/front_end/ui/components/docs/css_overview/start_view.html +25 -0
  197. package/front_end/ui/components/docs/css_overview/start_view.ts +14 -0
  198. package/front_end/ui/components/docs/icon_button/basic.ts +3 -3
  199. package/front_end/ui/components/docs/toggle_dark_mode.ts +1 -0
  200. package/front_end/ui/components/docs/toggle_fonts.ts +2 -0
  201. package/front_end/ui/components/helpers/get-stylesheet.ts +0 -15
  202. package/front_end/ui/components/linear_memory_inspector/linear_memory_inspector-meta.ts +1 -2
  203. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
  204. package/front_end/ui/components/survey_link/SurveyLink.ts +1 -1
  205. package/front_end/ui/components/text_editor/TextEditor.ts +79 -36
  206. package/front_end/ui/components/text_editor/config.ts +42 -26
  207. package/front_end/ui/components/text_editor/javascript.ts +2 -3
  208. package/front_end/ui/components/text_editor/position.ts +17 -0
  209. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  210. package/front_end/ui/components/text_editor/theme.ts +5 -1
  211. package/front_end/ui/components/tree_outline/TreeOutline.ts +63 -8
  212. package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +8 -6
  213. package/front_end/ui/legacy/Dialog.ts +3 -1
  214. package/front_end/ui/legacy/DropTarget.ts +2 -1
  215. package/front_end/ui/legacy/EmptyWidget.ts +2 -1
  216. package/front_end/ui/legacy/FilterBar.ts +2 -1
  217. package/front_end/ui/legacy/GlassPane.ts +4 -2
  218. package/front_end/ui/legacy/Infobar.ts +5 -8
  219. package/front_end/ui/legacy/InspectorView.ts +6 -1
  220. package/front_end/ui/legacy/ListWidget.ts +2 -1
  221. package/front_end/ui/legacy/PopoverHelper.ts +2 -1
  222. package/front_end/ui/legacy/ProgressIndicator.ts +2 -1
  223. package/front_end/ui/legacy/RemoteDebuggingTerminatedScreen.ts +2 -1
  224. package/front_end/ui/legacy/ReportView.ts +2 -1
  225. package/front_end/ui/legacy/RootView.ts +2 -1
  226. package/front_end/ui/legacy/SearchableView.ts +2 -1
  227. package/front_end/ui/legacy/ShortcutRegistry.ts +11 -7
  228. package/front_end/ui/legacy/SoftContextMenu.ts +3 -2
  229. package/front_end/ui/legacy/SoftDropDown.ts +4 -2
  230. package/front_end/ui/legacy/SplitWidget.ts +2 -1
  231. package/front_end/ui/legacy/SuggestBox.ts +2 -1
  232. package/front_end/ui/legacy/TabbedPane.ts +2 -1
  233. package/front_end/ui/legacy/TargetCrashedScreen.ts +2 -1
  234. package/front_end/ui/legacy/TextPrompt.ts +2 -1
  235. package/front_end/ui/legacy/Toolbar.ts +3 -2
  236. package/front_end/ui/legacy/Treeoutline.ts +4 -3
  237. package/front_end/ui/legacy/UIUtils.ts +17 -14
  238. package/front_end/ui/legacy/ViewManager.ts +2 -1
  239. package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +1 -2
  240. package/front_end/ui/legacy/components/inline_editor/cssAngle.css +4 -0
  241. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +2 -2
  242. package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -4
  243. package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +35 -131
  244. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -3
  245. package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
  246. package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -3
  247. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +3 -6
  248. package/front_end/ui/legacy/components/source_frame/FontView.ts +4 -1
  249. package/front_end/ui/legacy/components/source_frame/ImageView.ts +4 -1
  250. package/front_end/ui/legacy/components/source_frame/JSONView.ts +4 -1
  251. package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +21 -15
  252. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +501 -252
  253. package/front_end/ui/legacy/components/source_frame/XMLView.ts +7 -2
  254. package/front_end/ui/legacy/components/source_frame/source_frame-legacy.ts +0 -11
  255. package/front_end/ui/legacy/components/source_frame/source_frame.ts +0 -2
  256. package/front_end/ui/legacy/components/text_editor/CodeMirrorTextEditor.ts +2 -0
  257. package/front_end/ui/legacy/components/text_editor/cmdevtools.css +3 -1
  258. package/front_end/ui/legacy/components/text_editor/module.json +0 -3
  259. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -15
  260. package/front_end/ui/legacy/radioButton.css +1 -13
  261. package/front_end/ui/legacy/textButton.css +5 -4
  262. package/front_end/ui/legacy/themeColors.css +36 -0
  263. package/front_end/ui/legacy/theme_support/theme_support_impl.ts +7 -9
  264. package/front_end/ui/legacy/utils/create-shadow-root-with-core-styles.ts +2 -2
  265. package/front_end/ui/legacy/utils/inject-core-styles.ts +7 -4
  266. package/package.json +1 -1
  267. package/scripts/check_gn.js +0 -35
  268. package/scripts/eslint_rules/lib/es_modules_import.js +15 -8
  269. package/scripts/eslint_rules/tests/es_modules_import_test.js +8 -0
  270. package/front_end/Images/radioDot-dark-theme.png +0 -0
  271. package/front_end/Images/radioDot.png +0 -0
  272. package/front_end/emulated_devices/module.json +0 -6
  273. package/front_end/panels/application/module.json +0 -6
  274. package/front_end/panels/emulation/module.json +0 -11
  275. package/front_end/panels/issues/module.json +0 -6
  276. package/front_end/panels/js_profiler/module.json +0 -5
  277. package/front_end/panels/layer_viewer/module.json +0 -5
  278. package/front_end/panels/layers/module.json +0 -5
  279. package/front_end/panels/media/module.json +0 -5
  280. package/front_end/panels/network/module.json +0 -5
  281. package/front_end/panels/profiler/module.json +0 -5
  282. package/front_end/panels/screencast/module.json +0 -6
  283. package/front_end/panels/security/module.json +0 -5
  284. package/front_end/panels/timeline/module.json +0 -7
  285. package/front_end/third_party/lighthouse/report-assets/report.css +0 -1774
  286. package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +0 -1030
  287. package/front_end/ui/legacy/components/source_frame/messagesPopover.css +0 -32
  288. package/front_end/ui/legacy/components/source_frame/module.json +0 -14
  289. package/front_end/ui/legacy/module.json +0 -41
@@ -481,7 +481,8 @@ export class SourcesPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
481
481
  } else {
482
482
  this.showEditor();
483
483
  }
484
- this.sourcesViewInternal.showSourceLocation(uiSourceCode, lineNumber, columnNumber, omitFocus);
484
+ this.sourcesViewInternal.showSourceLocation(
485
+ uiSourceCode, lineNumber === undefined ? undefined : {lineNumber, columnNumber}, omitFocus);
485
486
  }
486
487
 
487
488
  private showEditor(): void {
@@ -534,8 +535,7 @@ export class SourcesPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
534
535
  if (window.performance.now() - this.lastModificationTime < lastModificationTimeout) {
535
536
  return;
536
537
  }
537
- this.sourcesViewInternal.showSourceLocation(
538
- uiLocation.uiSourceCode, uiLocation.lineNumber, uiLocation.columnNumber, undefined, true);
538
+ this.sourcesViewInternal.showSourceLocation(uiLocation.uiSourceCode, uiLocation, undefined, true);
539
539
  }
540
540
 
541
541
  private lastModificationTimeoutPassedForTest(): void {
@@ -825,7 +825,7 @@ export class SourcesPanel extends UI.Panel.Panel implements UI.ContextMenu.Provi
825
825
  if (!(target instanceof UISourceCodeFrame)) {
826
826
  return;
827
827
  }
828
- if (target.uiSourceCode().contentType().isFromSourceMap() || target.textEditor.selection().isEmpty()) {
828
+ if (target.uiSourceCode().contentType().isFromSourceMap() || target.textEditor.state.selection.main.empty) {
829
829
  return;
830
830
  }
831
831
  contextMenu.debugSection().appendAction('debugger.evaluate-selection');
@@ -1312,7 +1312,8 @@ export class DebuggingActionDelegate implements UI.ActionRegistration.ActionDele
1312
1312
  case 'debugger.evaluate-selection': {
1313
1313
  const frame = UI.Context.Context.instance().flavor(UISourceCodeFrame);
1314
1314
  if (frame) {
1315
- let text = frame.textEditor.text(frame.textEditor.selection());
1315
+ const {state: editorState} = frame.textEditor;
1316
+ let text = editorState.sliceDoc(editorState.selection.main.from, editorState.selection.main.to);
1316
1317
  const executionContext = UI.Context.Context.instance().flavor(SDK.RuntimeModel.ExecutionContext);
1317
1318
  if (executionContext) {
1318
1319
  const message = SDK.ConsoleModel.ConsoleModel.instance().addCommandMessage(executionContext, text);
@@ -84,7 +84,7 @@ export class SourcesView extends Common.ObjectWrapper.eventMixin<EventTypes, typ
84
84
  this.editorContainer.addEventListener(TabbedEditorContainerEvents.EditorSelected, this.editorSelected, this);
85
85
  this.editorContainer.addEventListener(TabbedEditorContainerEvents.EditorClosed, this.editorClosed, this);
86
86
 
87
- this.historyManager = new EditingLocationHistoryManager(this, this.currentSourceFrame.bind(this));
87
+ this.historyManager = new EditingLocationHistoryManager(this);
88
88
 
89
89
  this.toolbarContainerElementInternal = this.element.createChild('div', 'sources-toolbar');
90
90
  if (!Root.Runtime.experiments.isEnabled('sourcesPrettyPrint')) {
@@ -350,15 +350,18 @@ export class SourcesView extends Common.ObjectWrapper.eventMixin<EventTypes, typ
350
350
  }
351
351
 
352
352
  showSourceLocation(
353
- uiSourceCode: Workspace.UISourceCode.UISourceCode, lineNumber?: number, columnNumber?: number,
353
+ uiSourceCode: Workspace.UISourceCode.UISourceCode, location?: {lineNumber: number, columnNumber?: number}|number,
354
354
  omitFocus?: boolean, omitHighlight?: boolean): void {
355
- this.historyManager.updateCurrentState();
355
+ const currentFrame = this.currentSourceFrame();
356
+ if (currentFrame) {
357
+ this.historyManager.updateCurrentState(
358
+ currentFrame.uiSourceCode(), currentFrame.textEditor.state.selection.main.head);
359
+ }
356
360
  this.editorContainer.showFile(uiSourceCode);
357
361
  const currentSourceFrame = this.currentSourceFrame();
358
- if (currentSourceFrame && typeof lineNumber === 'number') {
359
- currentSourceFrame.revealPosition(lineNumber, columnNumber, !omitHighlight);
362
+ if (currentSourceFrame && location) {
363
+ currentSourceFrame.revealPosition(location, !omitHighlight);
360
364
  }
361
- this.historyManager.pushNewState();
362
365
  const visibleView = this.visibleView();
363
366
  if (!omitFocus && visibleView) {
364
367
  visibleView.focus();
@@ -440,8 +443,7 @@ export class SourcesView extends Common.ObjectWrapper.eventMixin<EventTypes, typ
440
443
  currentSourceFrame.setSearchableView(this.searchableViewInternal);
441
444
  }
442
445
 
443
- this.searchableViewInternal.setReplaceable(
444
- Boolean(currentSourceFrame) && (currentSourceFrame ? currentSourceFrame.canEditSource() : false));
446
+ this.searchableViewInternal.setReplaceable(Boolean(currentSourceFrame?.canEditSource()));
445
447
  this.searchableViewInternal.refreshSearch();
446
448
  this.updateToolbarChangedListener();
447
449
  this.updateScriptViewToolbarItems();
@@ -35,6 +35,7 @@ import * as Extensions from '../../models/extensions/extensions.js';
35
35
  import * as Persistence from '../../models/persistence/persistence.js';
36
36
  import * as TextUtils from '../../models/text_utils/text_utils.js';
37
37
  import * as Workspace from '../../models/workspace/workspace.js';
38
+ import type * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
38
39
  import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
39
40
  import * as UI from '../../ui/legacy/legacy.js';
40
41
  import * as Snippets from '../snippets/snippets.js';
@@ -220,45 +221,48 @@ export class TabbedEditorContainer extends Common.ObjectWrapper.ObjectWrapper<Ev
220
221
  if (!this.currentView || !(this.currentView instanceof SourceFrame.SourceFrame.SourceFrameImpl)) {
221
222
  return;
222
223
  }
223
- this.currentView.textEditor.addEventListener(
224
- SourceFrame.SourcesTextEditor.Events.ScrollChanged, this.scrollChanged, this);
225
- this.currentView.textEditor.addEventListener(
226
- SourceFrame.SourcesTextEditor.Events.SelectionChanged, this.selectionChanged, this);
224
+ this.currentView.addEventListener(SourceFrame.SourceFrame.Events.EditorUpdate, this.onEditorUpdate, this);
225
+ this.currentView.addEventListener(SourceFrame.SourceFrame.Events.EditorScroll, this.onScrollChanged, this);
227
226
  }
228
227
 
229
228
  private removeViewListeners(): void {
230
229
  if (!this.currentView || !(this.currentView instanceof SourceFrame.SourceFrame.SourceFrameImpl)) {
231
230
  return;
232
231
  }
233
- this.currentView.textEditor.removeEventListener(
234
- SourceFrame.SourcesTextEditor.Events.ScrollChanged, this.scrollChanged, this);
235
- this.currentView.textEditor.removeEventListener(
236
- SourceFrame.SourcesTextEditor.Events.SelectionChanged, this.selectionChanged, this);
232
+ this.currentView.removeEventListener(SourceFrame.SourceFrame.Events.EditorUpdate, this.onEditorUpdate, this);
233
+ this.currentView.removeEventListener(SourceFrame.SourceFrame.Events.EditorScroll, this.onScrollChanged, this);
237
234
  }
238
235
 
239
- private scrollChanged({data: lineNumber}: Common.EventTarget.EventTargetEvent<number>): void {
240
- if (this.scrollTimer) {
241
- clearTimeout(this.scrollTimer);
242
- }
243
- this.scrollTimer = window.setTimeout(saveHistory.bind(this), 100);
244
- if (this.currentFileInternal) {
245
- this.history.updateScrollLineNumber(this.currentFileInternal.url(), lineNumber);
246
- }
247
-
248
- function saveHistory(this: TabbedEditorContainer): void {
249
- this.history.save(this.previouslyViewedFilesSetting);
236
+ private onScrollChanged(): void {
237
+ if (this.currentView instanceof SourceFrame.SourceFrame.SourceFrameImpl) {
238
+ if (this.scrollTimer) {
239
+ clearTimeout(this.scrollTimer);
240
+ }
241
+ this.scrollTimer = window.setTimeout(() => this.history.save(this.previouslyViewedFilesSetting), 100);
242
+ if (this.currentFileInternal) {
243
+ const {editor} = this.currentView.textEditor;
244
+ const topBlock = editor.blockAtHeight(editor.scrollDOM.getBoundingClientRect().top);
245
+ const topLine = editor.state.doc.lineAt(topBlock.from).number - 1;
246
+ this.history.updateScrollLineNumber(this.currentFileInternal.url(), topLine);
247
+ }
250
248
  }
251
249
  }
252
250
 
253
- private selectionChanged({data: range}: Common.EventTarget.EventTargetEvent<TextUtils.TextRange.TextRange>): void {
254
- if (this.currentFileInternal) {
255
- this.history.updateSelectionRange(this.currentFileInternal.url(), range);
256
- }
257
- this.history.save(this.previouslyViewedFilesSetting);
251
+ private onEditorUpdate({data: update}: Common.EventTarget.EventTargetEvent<CodeMirror.ViewUpdate>): void {
252
+ if (update.docChanged || update.selectionSet) {
253
+ const {main} = update.state.selection;
254
+ const lineFrom = update.state.doc.lineAt(main.from), lineTo = update.state.doc.lineAt(main.to);
255
+ const range = new TextUtils.TextRange.TextRange(
256
+ lineFrom.number - 1, main.from - lineFrom.from, lineTo.number - 1, main.to - lineTo.from);
257
+ if (this.currentFileInternal) {
258
+ this.history.updateSelectionRange(this.currentFileInternal.url(), range);
259
+ }
260
+ this.history.save(this.previouslyViewedFilesSetting);
258
261
 
259
- if (this.currentFileInternal) {
260
- Extensions.ExtensionServer.ExtensionServer.instance().sourceSelectionChanged(
261
- this.currentFileInternal.url(), range);
262
+ if (this.currentFileInternal) {
263
+ Extensions.ExtensionServer.ExtensionServer.instance().sourceSelectionChanged(
264
+ this.currentFileInternal.url(), range);
265
+ }
262
266
  }
263
267
  }
264
268