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.
- package/WATCHLISTS +1 -1
- package/config/gni/all_devtools_files.gni +0 -64
- package/config/gni/devtools_grd_files.gni +54 -19
- package/config/gni/devtools_image_files.gni +1 -3
- package/front_end/.eslintrc.js +11 -1
- 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 +17 -29
- package/front_end/core/i18n/locales/en-XL.json +17 -29
- package/front_end/core/sdk/CPUProfilerModel.ts +7 -9
- package/front_end/core/sdk/ConsoleModel.ts +27 -33
- package/front_end/core/sdk/DebuggerModel.ts +4 -14
- package/front_end/core/sdk/sdk-meta.ts +17 -3
- package/front_end/entrypoints/device_mode_emulation_frame/device_mode_emulation_frame.ts +1 -1
- package/front_end/entrypoints/devtools_app/devtools_app.js +1 -1
- package/front_end/entrypoints/devtools_app/devtools_app.json +1 -12
- package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/heap_snapshot_worker/heap_snapshot_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/inspector/inspector.js +1 -1
- package/front_end/entrypoints/inspector/inspector.json +1 -3
- package/front_end/entrypoints/inspector_main/inspector_main-meta.ts +2 -3
- package/front_end/entrypoints/js_app/js_app.js +1 -1
- package/front_end/entrypoints/js_app/js_app.json +1 -3
- package/front_end/entrypoints/main/MainImpl.ts +26 -0
- package/front_end/entrypoints/main/main-meta.ts +1 -2
- package/front_end/entrypoints/ndb_app/ndb_app.js +1 -1
- package/front_end/entrypoints/node_app/node_app-meta.ts +0 -2
- package/front_end/entrypoints/node_app/node_app.js +1 -1
- package/front_end/entrypoints/node_app/node_app.json +1 -3
- package/front_end/entrypoints/node_main/node_main-meta.ts +0 -1
- package/front_end/entrypoints/shell/shell.js +0 -11
- package/front_end/entrypoints/shell/shell.json +1 -5
- package/front_end/entrypoints/wasmparser_worker/wasmparser_worker-entrypoint.ts +1 -1
- package/front_end/entrypoints/worker_app/worker_app.js +1 -1
- 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/legacy_test_runner/bindings_test_runner/IsolatedFilesystemTestRunner.js +2 -2
- package/front_end/legacy_test_runner/console_test_runner/console_test_runner.js +5 -1
- package/front_end/legacy_test_runner/legacy_test_runner.ts +10 -1
- package/front_end/legacy_test_runner/test_runner/TestRunner.js +3 -1
- package/front_end/models/formatter/SourceFormatter.ts +0 -10
- package/front_end/models/persistence/persistence-meta.ts +0 -1
- package/front_end/models/workspace/UISourceCode.ts +9 -42
- package/front_end/panels/accessibility/accessibility-meta.ts +0 -1
- package/front_end/panels/animation/AnimationTimeline.ts +3 -3
- package/front_end/panels/animation/animation-meta.ts +0 -1
- 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 -4
- package/front_end/panels/application/components/EndpointsGrid.ts +1 -1
- package/front_end/panels/application/components/ReportsGrid.ts +1 -1
- package/front_end/panels/application/components/stackTraceRow.css +8 -0
- package/front_end/panels/browser_debugger/browser_debugger-meta.ts +1 -2
- package/front_end/panels/changes/changes-meta.ts +0 -1
- package/front_end/panels/console/ConsolePinPane.ts +23 -32
- package/front_end/panels/console/ConsoleViewMessage.ts +8 -1
- package/front_end/panels/console/console-meta.ts +0 -1
- package/front_end/panels/console_counters/console_counters-meta.ts +0 -1
- package/front_end/panels/coverage/CoverageDecorationManager.ts +4 -5
- package/front_end/panels/coverage/CoverageView.ts +2 -105
- package/front_end/panels/coverage/coverage-meta.ts +0 -1
- 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/css_overview/css_overview-meta.ts +0 -1
- package/front_end/panels/developer_resources/developer_resources-meta.ts +0 -1
- 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/elements/elements-meta.ts +0 -1
- 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 -5
- package/front_end/panels/help/help-meta.ts +0 -1
- package/front_end/panels/input/input-meta.ts +0 -1
- package/front_end/panels/issues/issues-meta.ts +0 -3
- package/front_end/panels/js_profiler/js_profiler-meta.ts +0 -4
- package/front_end/panels/layers/layers-meta.ts +0 -4
- package/front_end/panels/lighthouse/LighthousePanel.ts +2 -4
- package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -4
- package/front_end/panels/lighthouse/lighthouse-meta.ts +0 -1
- 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 -4
- package/front_end/panels/mobile_throttling/mobile_throttling-meta.ts +0 -1
- package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -1
- package/front_end/panels/network/network-meta.ts +1 -5
- package/front_end/panels/performance_monitor/performance_monitor-meta.ts +0 -1
- package/front_end/panels/profiler/CPUProfileView.ts +10 -3
- package/front_end/panels/profiler/profiler-meta.ts +0 -3
- package/front_end/panels/protocol_monitor/protocol_monitor-meta.ts +0 -1
- package/front_end/panels/screencast/screencast-meta.ts +0 -4
- package/front_end/panels/security/security-meta.ts +0 -4
- package/front_end/panels/sensors/sensors-meta.ts +0 -1
- package/front_end/panels/settings/emulation/emulation-meta.ts +0 -1
- package/front_end/panels/settings/settings-meta.ts +0 -1
- 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 +2 -6
- package/front_end/panels/sources/sources.ts +0 -2
- package/front_end/panels/timeline/timeline-meta.ts +2 -9
- package/front_end/panels/web_audio/web_audio-meta.ts +0 -1
- package/front_end/panels/webauthn/webauthn-meta.ts +0 -1
- 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/component_docs.ts +14 -0
- package/front_end/ui/components/docs/create_breadcrumbs.ts +1 -1
- 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/toggle_dark_mode.ts +1 -0
- package/front_end/ui/components/docs/toggle_fonts.ts +2 -0
- package/front_end/ui/components/helpers/get-stylesheet.ts +0 -15
- package/front_end/ui/components/linear_memory_inspector/linear_memory_inspector-meta.ts +1 -2
- package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +1 -1
- 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/components/tree_outline/TreeOutline.ts +63 -8
- package/front_end/ui/components/tree_outline/TreeOutlineUtils.ts +8 -6
- 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 +3 -2
- 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 +4 -3
- package/front_end/ui/legacy/UIUtils.ts +17 -14
- package/front_end/ui/legacy/ViewManager.ts +2 -1
- package/front_end/ui/legacy/components/inline_editor/CSSAngle.ts +1 -2
- package/front_end/ui/legacy/components/inline_editor/cssAngle.css +4 -0
- package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +2 -2
- package/front_end/ui/legacy/components/object_ui/object_ui-meta.ts +0 -4
- package/front_end/ui/legacy/components/perf_ui/LineLevelProfile.ts +35 -131
- package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +0 -3
- package/front_end/ui/legacy/components/quick_open/filteredListWidget.css +2 -2
- package/front_end/ui/legacy/components/quick_open/quick_open-meta.ts +2 -3
- package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +3 -6
- package/front_end/ui/legacy/components/source_frame/FontView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/ImageView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/JSONView.ts +4 -1
- package/front_end/ui/legacy/components/source_frame/ResourceSourceFrame.ts +21 -15
- package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +501 -252
- package/front_end/ui/legacy/components/source_frame/XMLView.ts +7 -2
- 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/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/check_gn.js +0 -35
- package/scripts/eslint_rules/lib/es_modules_import.js +15 -8
- package/scripts/eslint_rules/tests/es_modules_import_test.js +8 -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 -6
- 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 -5
- package/front_end/panels/layers/module.json +0 -5
- package/front_end/panels/media/module.json +0 -5
- package/front_end/panels/network/module.json +0 -5
- package/front_end/panels/profiler/module.json +0 -5
- 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 -7
- package/front_end/third_party/lighthouse/report-assets/report.css +0 -1774
- package/front_end/ui/legacy/components/source_frame/SourcesTextEditor.ts +0 -1030
- package/front_end/ui/legacy/components/source_frame/messagesPopover.css +0 -32
- package/front_end/ui/legacy/components/source_frame/module.json +0 -14
- package/front_end/ui/legacy/module.json +0 -41
|
@@ -187,7 +187,6 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
let debuggerModel: SDK.DebuggerModel.DebuggerModel|null = details.debuggerModel;
|
|
191
190
|
this.notPausedMessageElement.classList.add('hidden');
|
|
192
191
|
|
|
193
192
|
const itemPromises = [];
|
|
@@ -209,32 +208,33 @@ export class CallStackSidebarPane extends UI.View.SimpleView implements UI.Conte
|
|
|
209
208
|
UI.Tooltip.Tooltip.install(this.callFrameWarningsElement, Array.from(uniqueWarnings).join('\n'));
|
|
210
209
|
}
|
|
211
210
|
|
|
212
|
-
let
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
debuggerModel = await SDK.DebuggerModel.DebuggerModel.modelForDebuggerId(details.asyncStackTraceId.debuggerId);
|
|
216
|
-
}
|
|
217
|
-
asyncStackTrace = debuggerModel ? await debuggerModel.fetchAsyncStackTrace(details.asyncStackTraceId) : null;
|
|
218
|
-
}
|
|
211
|
+
let debuggerModel = details.debuggerModel;
|
|
212
|
+
let asyncStackTraceId = details.asyncStackTraceId;
|
|
213
|
+
let asyncStackTrace: Protocol.Runtime.StackTrace|undefined|null = details.asyncStackTrace;
|
|
219
214
|
let previousStackTrace: Protocol.Runtime.CallFrame[]|SDK.DebuggerModel.CallFrame[] = details.callFrames;
|
|
220
|
-
let maxAsyncStackChainDepth = this
|
|
221
|
-
|
|
215
|
+
for (let {maxAsyncStackChainDepth} = this; maxAsyncStackChainDepth > 0; --maxAsyncStackChainDepth) {
|
|
216
|
+
if (!asyncStackTrace) {
|
|
217
|
+
if (!asyncStackTraceId) {
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
if (asyncStackTraceId.debuggerId) {
|
|
221
|
+
const dm = await SDK.DebuggerModel.DebuggerModel.modelForDebuggerId(asyncStackTraceId.debuggerId);
|
|
222
|
+
if (!dm) {
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
debuggerModel = dm;
|
|
226
|
+
}
|
|
227
|
+
asyncStackTrace = await debuggerModel.fetchAsyncStackTrace(asyncStackTraceId);
|
|
228
|
+
if (!asyncStackTrace) {
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
222
232
|
const title = UI.UIUtils.asyncStackTraceLabel(asyncStackTrace.description, previousStackTrace);
|
|
223
233
|
items.push(...await Item.createItemsForAsyncStack(
|
|
224
234
|
title, debuggerModel, asyncStackTrace.callFrames, this.locationPool, this.refreshItem.bind(this)));
|
|
225
|
-
|
|
226
|
-
--maxAsyncStackChainDepth;
|
|
227
235
|
previousStackTrace = asyncStackTrace.callFrames;
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
} else if (asyncStackTrace.parentId) {
|
|
231
|
-
if (asyncStackTrace.parentId.debuggerId) {
|
|
232
|
-
debuggerModel = await SDK.DebuggerModel.DebuggerModel.modelForDebuggerId(asyncStackTrace.parentId.debuggerId);
|
|
233
|
-
}
|
|
234
|
-
asyncStackTrace = debuggerModel ? await debuggerModel.fetchAsyncStackTrace(asyncStackTrace.parentId) : null;
|
|
235
|
-
} else {
|
|
236
|
-
asyncStackTrace = null;
|
|
237
|
-
}
|
|
236
|
+
asyncStackTraceId = asyncStackTrace.parentId;
|
|
237
|
+
asyncStackTrace = asyncStackTrace.parent;
|
|
238
238
|
}
|
|
239
239
|
this.showMoreMessageElement.classList.toggle('hidden', !asyncStackTrace);
|
|
240
240
|
this.items.replaceAll(items);
|
|
@@ -552,7 +552,7 @@ export class Item {
|
|
|
552
552
|
}
|
|
553
553
|
|
|
554
554
|
static async createItemsForAsyncStack(
|
|
555
|
-
title: string, debuggerModel: SDK.DebuggerModel.DebuggerModel
|
|
555
|
+
title: string, debuggerModel: SDK.DebuggerModel.DebuggerModel, frames: Protocol.Runtime.CallFrame[],
|
|
556
556
|
locationPool: Bindings.LiveLocation.LiveLocationPool, updateDelegate: (arg0: Item) => void): Promise<Item[]> {
|
|
557
557
|
const headerItemToItemsSet = new WeakMap<Item, Set<Item>>();
|
|
558
558
|
const asyncHeaderItem = new Item(title, updateDelegate);
|
|
@@ -563,17 +563,11 @@ export class Item {
|
|
|
563
563
|
const liveLocationPromises = [];
|
|
564
564
|
for (const frame of frames) {
|
|
565
565
|
const item = new Item(UI.UIUtils.beautifyFunctionName(frame.functionName), update);
|
|
566
|
-
const rawLocation =
|
|
567
|
-
debuggerModel.createRawLocationByScriptId(frame.scriptId, frame.lineNumber, frame.columnNumber)
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
item.updateDelegate(item);
|
|
572
|
-
} else {
|
|
573
|
-
liveLocationPromises.push(
|
|
574
|
-
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(
|
|
575
|
-
rawLocation, item.update.bind(item), locationPool));
|
|
576
|
-
}
|
|
566
|
+
const rawLocation =
|
|
567
|
+
debuggerModel.createRawLocationByScriptId(frame.scriptId, frame.lineNumber, frame.columnNumber);
|
|
568
|
+
liveLocationPromises.push(
|
|
569
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().createCallFrameLiveLocation(
|
|
570
|
+
rawLocation, item.update.bind(item), locationPool));
|
|
577
571
|
asyncFrameItems.push(item);
|
|
578
572
|
}
|
|
579
573
|
|
|
@@ -6,8 +6,10 @@ import * as i18n from '../../core/i18n/i18n.js';
|
|
|
6
6
|
import * as SDK from '../../core/sdk/sdk.js';
|
|
7
7
|
import * as Formatter from '../../models/formatter/formatter.js';
|
|
8
8
|
import type * as Workspace from '../../models/workspace/workspace.js';
|
|
9
|
-
import
|
|
9
|
+
import * as CodeMirror from '../../third_party/codemirror.next/codemirror.next.js';
|
|
10
|
+
import * as SourceFrame from '../../ui/legacy/components/source_frame/source_frame.js';
|
|
10
11
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
12
|
+
import type * as TextEditor from '../../ui/components/text_editor/text_editor.js';
|
|
11
13
|
import * as Coverage from '../coverage/coverage.js';
|
|
12
14
|
|
|
13
15
|
import {Plugin} from './Plugin.js';
|
|
@@ -35,16 +37,13 @@ const str_ = i18n.i18n.registerUIStrings('panels/sources/CoveragePlugin.ts', UIS
|
|
|
35
37
|
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
|
|
36
38
|
|
|
37
39
|
export class CoveragePlugin extends Plugin {
|
|
38
|
-
private uiSourceCode: Workspace.UISourceCode.UISourceCode;
|
|
39
40
|
private originalSourceCode: Workspace.UISourceCode.UISourceCode;
|
|
40
41
|
private infoInToolbar: UI.Toolbar.ToolbarButton;
|
|
41
42
|
private model: Coverage.CoverageModel.CoverageModel|null|undefined;
|
|
42
43
|
private coverage: Coverage.CoverageModel.URLCoverageInfo|null|undefined;
|
|
43
44
|
|
|
44
|
-
constructor(
|
|
45
|
-
|
|
46
|
-
super();
|
|
47
|
-
this.uiSourceCode = uiSourceCode;
|
|
45
|
+
constructor(uiSourceCode: Workspace.UISourceCode.UISourceCode) {
|
|
46
|
+
super(uiSourceCode);
|
|
48
47
|
this.originalSourceCode =
|
|
49
48
|
Formatter.SourceFormatter.SourceFormatter.instance().getOriginalUISourceCode(this.uiSourceCode);
|
|
50
49
|
this.infoInToolbar = new UI.Toolbar.ToolbarButton(i18nString(UIStrings.clickToShowCoveragePanel));
|
|
@@ -111,4 +110,120 @@ export class CoveragePlugin extends Plugin {
|
|
|
111
110
|
async rightToolbarItems(): Promise<UI.Toolbar.ToolbarItem[]> {
|
|
112
111
|
return [this.infoInToolbar];
|
|
113
112
|
}
|
|
113
|
+
|
|
114
|
+
editorExtension(): CodeMirror.Extension {
|
|
115
|
+
return coverageCompartment.of([]);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
private getCoverageManager(): Coverage.CoverageDecorationManager.CoverageDecorationManager|undefined {
|
|
119
|
+
return this.uiSourceCode.getDecorationData(SourceFrame.SourceFrame.DecoratorType.COVERAGE);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
editorInitialized(editor: TextEditor.TextEditor.TextEditor): void {
|
|
123
|
+
if (this.getCoverageManager()) {
|
|
124
|
+
this.startDecoUpdate(editor);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
decorationChanged(type: SourceFrame.SourceFrame.DecoratorType, editor: TextEditor.TextEditor.TextEditor): void {
|
|
129
|
+
if (type === SourceFrame.SourceFrame.DecoratorType.COVERAGE) {
|
|
130
|
+
this.startDecoUpdate(editor);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
private startDecoUpdate(editor: TextEditor.TextEditor.TextEditor): void {
|
|
135
|
+
const manager = this.getCoverageManager();
|
|
136
|
+
(manager ? manager.usageByLine(this.uiSourceCode) : Promise.resolve([])).then(usageByLine => {
|
|
137
|
+
const enabled = Boolean(editor.state.field(coverageState, false));
|
|
138
|
+
if (!usageByLine.length) {
|
|
139
|
+
if (enabled) {
|
|
140
|
+
editor.dispatch({effects: coverageCompartment.reconfigure([])});
|
|
141
|
+
}
|
|
142
|
+
} else if (!enabled) {
|
|
143
|
+
editor.dispatch({
|
|
144
|
+
effects: coverageCompartment.reconfigure([
|
|
145
|
+
coverageState.init(state => markersFromCoverageData(usageByLine, state)),
|
|
146
|
+
coverageGutter(this.uiSourceCode.url()),
|
|
147
|
+
theme,
|
|
148
|
+
]),
|
|
149
|
+
});
|
|
150
|
+
} else {
|
|
151
|
+
editor.dispatch({effects: setCoverageState.of(usageByLine)});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
114
155
|
}
|
|
156
|
+
|
|
157
|
+
const coveredMarker = new (class extends CodeMirror.GutterMarker {
|
|
158
|
+
elementClass = 'cm-coverageUsed';
|
|
159
|
+
})();
|
|
160
|
+
|
|
161
|
+
const notCoveredMarker = new (class extends CodeMirror.GutterMarker {
|
|
162
|
+
elementClass = 'cm-coverageUnused';
|
|
163
|
+
})();
|
|
164
|
+
|
|
165
|
+
function markersFromCoverageData(
|
|
166
|
+
usageByLine: (boolean|undefined)[], state: CodeMirror.EditorState): CodeMirror.RangeSet<CodeMirror.GutterMarker> {
|
|
167
|
+
const builder = new CodeMirror.RangeSetBuilder<CodeMirror.GutterMarker>();
|
|
168
|
+
for (let line = 0; line < usageByLine.length; line++) {
|
|
169
|
+
const usage = usageByLine[line];
|
|
170
|
+
if (usage !== undefined && line < state.doc.lines) {
|
|
171
|
+
const lineStart = state.doc.line(line + 1).from;
|
|
172
|
+
builder.add(lineStart, lineStart, usage ? coveredMarker : notCoveredMarker);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
return builder.finish();
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const setCoverageState = CodeMirror.StateEffect.define<(boolean | undefined)[]>();
|
|
179
|
+
|
|
180
|
+
const coverageState = CodeMirror.StateField.define<CodeMirror.RangeSet<CodeMirror.GutterMarker>>({
|
|
181
|
+
create(): CodeMirror.RangeSet<CodeMirror.GutterMarker> {
|
|
182
|
+
return CodeMirror.RangeSet.empty;
|
|
183
|
+
},
|
|
184
|
+
update(markers, tr) {
|
|
185
|
+
return tr.effects.reduce((markers, effect) => {
|
|
186
|
+
return effect.is(setCoverageState) ? markersFromCoverageData(effect.value, tr.state) : markers;
|
|
187
|
+
}, markers.map(tr.changes));
|
|
188
|
+
},
|
|
189
|
+
});
|
|
190
|
+
|
|
191
|
+
function coverageGutter(url: string): CodeMirror.Extension {
|
|
192
|
+
return CodeMirror.gutter({
|
|
193
|
+
markers: (view): CodeMirror.RangeSet<CodeMirror.GutterMarker> => view.state.field(coverageState),
|
|
194
|
+
|
|
195
|
+
domEventHandlers: {
|
|
196
|
+
click() {
|
|
197
|
+
UI.ViewManager.ViewManager.instance()
|
|
198
|
+
.showView('coverage')
|
|
199
|
+
.then(() => {
|
|
200
|
+
const view = UI.ViewManager.ViewManager.instance().view('coverage');
|
|
201
|
+
return view && view.widget();
|
|
202
|
+
})
|
|
203
|
+
.then(widget => {
|
|
204
|
+
const matchFormattedSuffix = url.match(/(.*):formatted$/);
|
|
205
|
+
const urlWithoutFormattedSuffix = (matchFormattedSuffix && matchFormattedSuffix[1]) || url;
|
|
206
|
+
(widget as Coverage.CoverageView.CoverageView).selectCoverageItemByUrl(urlWithoutFormattedSuffix);
|
|
207
|
+
});
|
|
208
|
+
return true;
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
|
|
212
|
+
class: 'cm-coverageGutter',
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
const coverageCompartment = new CodeMirror.Compartment();
|
|
217
|
+
|
|
218
|
+
const theme = CodeMirror.EditorView.baseTheme({
|
|
219
|
+
'.cm-coverageGutter': {
|
|
220
|
+
width: '5px',
|
|
221
|
+
marginLeft: '3px',
|
|
222
|
+
},
|
|
223
|
+
'.cm-coverageUnused': {
|
|
224
|
+
backgroundColor: 'var(--color-accent-red)',
|
|
225
|
+
},
|
|
226
|
+
'.cm-coverageUsed': {
|
|
227
|
+
backgroundColor: 'var(--color-coverage-used)',
|
|
228
|
+
},
|
|
229
|
+
});
|