chrome-devtools-frontend 1.0.1547147 → 1.0.1547571

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 (212) hide show
  1. package/.stylelintrc.json +5 -1
  2. package/docs/contributing/infrastructure.md +2 -2
  3. package/eslint.config.mjs +3 -2
  4. package/front_end/Images/generate-css-vars.js +1 -1
  5. package/front_end/core/common/common.ts +0 -2
  6. package/front_end/core/i18n/collect-ui-strings.js +1 -1
  7. package/front_end/core/i18n/generate-locales-js.js +1 -1
  8. package/front_end/core/platform/HostRuntime.ts +14 -7
  9. package/front_end/core/platform/api/HostRuntime.ts +28 -3
  10. package/front_end/core/platform/browser/HostRuntime.ts +66 -5
  11. package/front_end/core/platform/node/HostRuntime.ts +76 -4
  12. package/front_end/core/sdk/AnimationModel.ts +1 -1
  13. package/front_end/core/sdk/CSSModel.ts +1 -1
  14. package/front_end/core/sdk/CSSProperty.ts +1 -1
  15. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +1 -1
  16. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  17. package/front_end/core/sdk/Cookie.ts +1 -1
  18. package/front_end/core/sdk/DOMModel.ts +2 -2
  19. package/front_end/core/sdk/DebuggerModel.ts +1 -1
  20. package/front_end/core/sdk/NetworkManager.ts +6 -0
  21. package/front_end/core/sdk/PreloadingModel.ts +1 -1
  22. package/front_end/core/sdk/RemoteObject.ts +1 -1
  23. package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
  24. package/front_end/core/sdk/Script.ts +4 -4
  25. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +2 -2
  26. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +15 -18
  27. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +8 -5
  28. package/front_end/entrypoints/main/ExecutionContextSelector.ts +1 -1
  29. package/front_end/entrypoints/main/MainImpl.ts +2 -2
  30. package/front_end/generated/Deprecation.ts +19 -0
  31. package/front_end/generated/InspectorBackendCommands.ts +4 -3
  32. package/front_end/generated/SupportedCSSProperties.js +13 -13
  33. package/front_end/generated/protocol-mapping.d.ts +2 -0
  34. package/front_end/generated/protocol-proxy-api.d.ts +4 -0
  35. package/front_end/generated/protocol.ts +16 -27
  36. package/front_end/models/ai_assistance/AiConversation.ts +104 -24
  37. package/front_end/models/ai_assistance/BuiltInAi.ts +131 -134
  38. package/front_end/models/ai_assistance/ChangeManager.ts +9 -0
  39. package/front_end/models/ai_assistance/ConversationHandler.ts +23 -48
  40. package/front_end/models/ai_assistance/agents/AiAgent.ts +8 -5
  41. package/front_end/models/ai_assistance/agents/StylingAgent.ts +0 -10
  42. package/front_end/models/formatter/FormatterWorkerPool.ts +9 -7
  43. package/front_end/models/har/Importer.ts +1 -1
  44. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +1 -1
  45. package/front_end/models/persistence/AutomaticFileSystemManager.ts +1 -1
  46. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
  47. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +80 -153
  48. package/front_end/panels/ai_assistance/components/ChatView.ts +54 -31
  49. package/front_end/panels/application/ExtensionStorageModel.ts +1 -1
  50. package/front_end/panels/application/FrameDetailsView.ts +62 -34
  51. package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
  52. package/front_end/panels/application/components/components.ts +0 -2
  53. package/front_end/panels/console/ConsoleInsightTeaser.ts +166 -100
  54. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  55. package/front_end/panels/console/ConsoleViewMessage.ts +77 -29
  56. package/front_end/panels/console/ConsoleViewport.ts +1 -1
  57. package/front_end/panels/console/consoleInsightTeaser.css +1 -0
  58. package/front_end/panels/coverage/CoverageModel.ts +2 -2
  59. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  60. package/front_end/panels/elements/ElementsTreeOutline.ts +17 -7
  61. package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -5
  62. package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -2
  63. package/front_end/panels/explain/components/ConsoleInsight.ts +1 -1
  64. package/front_end/panels/network/RequestConditionsDrawer.ts +64 -20
  65. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -1
  66. package/front_end/panels/profiler/HeapSnapshotProxy.ts +15 -14
  67. package/front_end/panels/recorder/components/StepEditor.ts +1 -1
  68. package/front_end/panels/security/SecurityPanelSidebar.ts +1 -3
  69. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
  70. package/front_end/panels/sources/CSSPlugin.ts +1 -1
  71. package/front_end/panels/sources/DebuggerPlugin.ts +2 -2
  72. package/front_end/panels/sources/NavigatorView.ts +1 -1
  73. package/front_end/panels/sources/SourcesSearchScope.ts +1 -1
  74. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +10 -2
  75. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  76. package/front_end/panels/timeline/TimelinePanel.ts +7 -7
  77. package/front_end/panels/timeline/TimelineUIUtils.ts +3 -1
  78. package/front_end/panels/timeline/enable-easter-egg.js +1 -1
  79. package/front_end/panels/timeline/utils/Treemap.ts +1 -1
  80. package/front_end/third_party/chromium/README.chromium +1 -1
  81. package/front_end/third_party/puppeteer/README.chromium +2 -2
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +66 -0
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -0
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +57 -0
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -0
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +2 -2
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js +1 -0
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +1 -6
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +0 -4
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +18 -23
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +16 -0
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +4 -62
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +9 -73
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -3
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +8 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +11 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +9 -10
  130. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +80 -81
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +66 -0
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -0
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +52 -0
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -0
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +2 -2
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js +1 -0
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +1 -6
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +0 -4
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +18 -23
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +16 -0
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +4 -62
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +6 -69
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -3
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +8 -1
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +11 -1
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/types.d.ts +9 -10
  177. package/front_end/third_party/puppeteer/package/package.json +3 -3
  178. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +79 -0
  179. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
  180. package/front_end/third_party/puppeteer/package/src/api/Page.ts +2 -2
  181. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  182. package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +1 -9
  183. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +21 -31
  184. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +18 -0
  185. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +6 -72
  186. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -4
  187. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +7 -2
  188. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +14 -0
  189. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  190. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  191. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  192. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +4 -0
  193. package/front_end/ui/components/text_editor/javascript.ts +1 -1
  194. package/front_end/ui/legacy/ListWidget.ts +51 -18
  195. package/front_end/ui/legacy/ReportView.ts +1 -1
  196. package/front_end/ui/legacy/TabbedPane.ts +3 -3
  197. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  198. package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +1 -1
  199. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +3 -2
  200. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +87 -111
  201. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -2
  202. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +40 -11
  203. package/front_end/ui/legacy/components/utils/jsUtils.css +28 -0
  204. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  205. package/front_end/ui/visual_logging/LoggingConfig.ts +2 -1
  206. package/inspector_overlay/tool_window_controls.ts +4 -1
  207. package/mcp/mcp.ts +1 -1
  208. package/package.json +2 -3
  209. package/front_end/core/common/Worker.ts +0 -60
  210. package/front_end/panels/application/components/StackTrace.ts +0 -238
  211. package/front_end/panels/application/components/stackTraceLinkButton.css +0 -16
  212. package/front_end/panels/application/components/stackTraceRow.css +0 -50
@@ -1,238 +0,0 @@
1
- // Copyright 2021 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
-
6
- import '../../../ui/components/expandable_list/expandable_list.js';
7
-
8
- import * as i18n from '../../../core/i18n/i18n.js';
9
- import type * as SDK from '../../../core/sdk/sdk.js';
10
- import type * as Protocol from '../../../generated/protocol.js';
11
- import * as Components from '../../../ui/legacy/components/utils/utils.js';
12
- import * as UI from '../../../ui/legacy/legacy.js';
13
- import {html, nothing, render, type TemplateResult} from '../../../ui/lit/lit.js';
14
- import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
15
-
16
- import stackTraceLinkButtonStyles from './stackTraceLinkButton.css.js';
17
- import stackTraceRowStyles from './stackTraceRow.css.js';
18
-
19
- const {widgetConfig} = UI.Widget;
20
-
21
- const UIStrings = {
22
- /**
23
- * @description Error message stating that something went wrong when trying to render stack trace
24
- */
25
- cannotRenderStackTrace: 'Cannot render stack trace',
26
- /**
27
- * @description A link to show more frames in the stack trace if more are available. Never 0.
28
- */
29
- showSMoreFrames: '{n, plural, =1 {Show # more frame} other {Show # more frames}}',
30
- /**
31
- * @description A link to rehide frames that are by default hidden.
32
- */
33
- showLess: 'Show less',
34
- /**
35
- * @description Label for a stack trace. If a frame is created programmatically (i.e. via JavaScript), there is a
36
- * stack trace for the line of code which caused the creation of the iframe. This is the stack trace we are showing here.
37
- */
38
- creationStackTrace: 'Frame Creation `Stack Trace`',
39
- } as const;
40
- const str_ = i18n.i18n.registerUIStrings('panels/application/components/StackTrace.ts', UIStrings);
41
- const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
42
-
43
- export interface StackTraceData {
44
- creationStackTraceData: {
45
- creationStackTrace: Protocol.Runtime.StackTrace|null,
46
- creationStackTraceTarget: SDK.Target.Target|null,
47
- };
48
- buildStackTraceRows: (
49
- stackTrace: Protocol.Runtime.StackTrace,
50
- target: SDK.Target.Target|null,
51
- linkifier: Components.Linkifier.Linkifier,
52
- tabStops: boolean|undefined,
53
- updateCallback?: (arg0: Array<Components.JSPresentationUtils.StackTraceRegularRow|
54
- Components.JSPresentationUtils.StackTraceAsyncRow>) => void,
55
- ) => Array<Components.JSPresentationUtils.StackTraceRegularRow|Components.JSPresentationUtils.StackTraceAsyncRow>;
56
- }
57
-
58
- interface StackTraceRowViewInput {
59
- stackTraceRowItem: Components.JSPresentationUtils.StackTraceRegularRow|null;
60
- }
61
-
62
- type StackTraceRowView = (input: StackTraceRowViewInput, output: undefined, target: HTMLElement) => void;
63
- const ROW_DEFAULT_VIEW: StackTraceRowView = (input, output, target) => {
64
- if (!input.stackTraceRowItem) {
65
- return;
66
- }
67
- // clang-format off
68
- render(html`
69
- <style>${stackTraceRowStyles}</style>
70
- <div class="stack-trace-row">
71
- <div class="stack-trace-function-name text-ellipsis" title=${input.stackTraceRowItem.functionName}>
72
- ${input.stackTraceRowItem.functionName}
73
- </div>
74
- <div class="stack-trace-source-location">
75
- ${input.stackTraceRowItem.link ? html`
76
- <div class="text-ellipsis">\xA0@\xA0${input.stackTraceRowItem.link}</div>` :
77
- nothing}
78
- </div>
79
- </div>`, target);
80
- // clang-format on
81
- };
82
-
83
- export class StackTraceRow extends UI.Widget.Widget {
84
- constructor(element?: HTMLElement, view = ROW_DEFAULT_VIEW) {
85
- super(element, {useShadowDom: true});
86
- this.#view = view;
87
- }
88
-
89
- stackTraceRowItem: Components.JSPresentationUtils.StackTraceRegularRow|null = null;
90
- #view: StackTraceRowView;
91
-
92
- override performUpdate(): void {
93
- this.#view(this, undefined, this.contentElement);
94
- }
95
- }
96
-
97
- interface StackTraceLinkViewInput {
98
- onShowAllClick: () => void;
99
- hiddenCallFramesCount: number|null;
100
- expandedView: boolean;
101
- }
102
-
103
- type StackTraceLinkView = (input: StackTraceLinkViewInput, output: undefined, target: HTMLElement) => void;
104
- const LINK_DEFAULT_VIEW: StackTraceLinkView = (input, output, target) => {
105
- if (!input.hiddenCallFramesCount) {
106
- return;
107
- }
108
- const linkText = input.expandedView ? i18nString(UIStrings.showLess) :
109
- i18nString(UIStrings.showSMoreFrames, {n: input.hiddenCallFramesCount});
110
- // clang-format off
111
- render(html`
112
- <style>${stackTraceLinkButtonStyles}</style>
113
- <div class="stack-trace-row">
114
- <button class="link" @click=${() => input.onShowAllClick()}>
115
- ${linkText}
116
- </button>
117
- </div>`, target);
118
- // clang-format on
119
- };
120
-
121
- export class StackTraceLinkButton extends UI.Widget.Widget {
122
- onShowAllClick: () => void = () => {};
123
- hiddenCallFramesCount: number|null = null;
124
- expandedView = false;
125
- #view: StackTraceLinkView;
126
-
127
- constructor(element?: HTMLElement, view = LINK_DEFAULT_VIEW) {
128
- super(element, {useShadowDom: true});
129
- this.#view = view;
130
- }
131
-
132
- override performUpdate(): void {
133
- this.#view(this, undefined, this.contentElement);
134
- }
135
- }
136
-
137
- export class StackTrace extends UI.Widget.Widget {
138
- readonly #linkifier = new Components.Linkifier.Linkifier();
139
- #stackTraceRows:
140
- Array<Components.JSPresentationUtils.StackTraceRegularRow|Components.JSPresentationUtils.StackTraceAsyncRow> = [];
141
- #showHidden = false;
142
-
143
- constructor(element?: HTMLElement) {
144
- super(element, {useShadowDom: true});
145
- }
146
-
147
- set data(data: StackTraceData) {
148
- const {creationStackTrace, creationStackTraceTarget} = data.creationStackTraceData;
149
- if (creationStackTrace) {
150
- this.#stackTraceRows = data.buildStackTraceRows(
151
- creationStackTrace, creationStackTraceTarget, this.#linkifier, true,
152
- this.#onStackTraceRowsUpdated.bind(this));
153
- }
154
- this.#render();
155
- }
156
-
157
- #onStackTraceRowsUpdated(
158
- stackTraceRows:
159
- Array<Components.JSPresentationUtils.StackTraceRegularRow|Components.JSPresentationUtils.StackTraceAsyncRow>):
160
- void {
161
- this.#stackTraceRows = stackTraceRows;
162
- this.#render();
163
- }
164
-
165
- #onToggleShowAllClick(): void {
166
- this.#showHidden = !this.#showHidden;
167
- this.#render();
168
- }
169
-
170
- createRowTemplates(): TemplateResult[] {
171
- const expandableRows = [];
172
- let hiddenCallFramesCount = 0;
173
- for (const item of this.#stackTraceRows) {
174
- let ignoreListHide = false;
175
- // TODO(crbug.com/1183325): fix race condition with uiLocation still being null here
176
- // Note: This has always checked whether the call frame location *in the generated
177
- // code* is ignore-listed or not. This can change after the live location updates,
178
- // and is handled again in the linkifier live location update callback.
179
- if ('link' in item && item.link) {
180
- const uiLocation = Components.Linkifier.Linkifier.uiLocation(item.link);
181
- ignoreListHide = Boolean(uiLocation?.isIgnoreListed());
182
- }
183
- if (this.#showHidden || !ignoreListHide) {
184
- if ('functionName' in item) {
185
- expandableRows.push(html`
186
- <devtools-widget data-stack-trace-row .widgetConfig=${widgetConfig(StackTraceRow, {
187
- stackTraceRowItem: item
188
- })}></devtools-widget>`);
189
- }
190
- if ('asyncDescription' in item) {
191
- expandableRows.push(html`
192
- <div>${item.asyncDescription}</div>
193
- `);
194
- }
195
- }
196
- if ('functionName' in item && ignoreListHide) {
197
- hiddenCallFramesCount++;
198
- }
199
- }
200
- if (hiddenCallFramesCount) {
201
- // Disabled until https://crbug.com/1079231 is fixed.
202
- // clang-format off
203
- expandableRows.push(html`
204
- <devtools-widget data-stack-trace-row .widgetConfig=${widgetConfig(StackTraceLinkButton, {
205
- onShowAllClick: this.#onToggleShowAllClick.bind(this),
206
- hiddenCallFramesCount,
207
- expandedView: this.#showHidden})}>
208
- </devtools-widget>
209
- `);
210
- // clang-format on
211
- }
212
-
213
- return expandableRows;
214
- }
215
-
216
- #render(): void {
217
- if (!this.#stackTraceRows.length) {
218
- // Disabled until https://crbug.com/1079231 is fixed.
219
- // clang-format off
220
- render(
221
- html`
222
- <span>${i18nString(UIStrings.cannotRenderStackTrace)}</span>
223
- `,
224
- this.contentElement, {host: this});
225
- return;
226
- }
227
-
228
- const expandableRows = this.createRowTemplates();
229
- render(
230
- html`
231
- <devtools-expandable-list .data=${{rows: expandableRows, title: i18nString(UIStrings.creationStackTrace)}}
232
- jslog=${VisualLogging.tree()}>
233
- </devtools-expandable-list>
234
- `,
235
- this.contentElement, {host: this});
236
- // clang-format on
237
- }
238
- }
@@ -1,16 +0,0 @@
1
- /*
2
- * Copyright 2021 The Chromium Authors
3
- * Use of this source code is governed by a BSD-style license that can be
4
- * found in the LICENSE file.
5
- */
6
-
7
- button.link {
8
- color: var(--sys-color-primary);
9
- text-decoration: underline;
10
- cursor: pointer;
11
- outline-offset: 2px;
12
- border: none;
13
- background: none;
14
- font-family: inherit;
15
- font-size: inherit;
16
- }
@@ -1,50 +0,0 @@
1
- /*
2
- * Copyright 2021 The Chromium Authors
3
- * Use of this source code is governed by a BSD-style license that can be
4
- * found in the LICENSE file.
5
- */
6
-
7
- .stack-trace-row {
8
- display: flex;
9
- }
10
-
11
- .stack-trace-function-name {
12
- width: 100px;
13
- }
14
-
15
- .stack-trace-source-location {
16
- display: flex;
17
- overflow: hidden;
18
- }
19
-
20
- .text-ellipsis {
21
- overflow: hidden;
22
- text-overflow: ellipsis;
23
- white-space: nowrap;
24
- }
25
-
26
- .stack-trace-source-location .text-ellipsis {
27
- padding-right: 2px;
28
- }
29
-
30
- .ignore-list-link {
31
- opacity: 60%;
32
- }
33
-
34
- .link,
35
- .devtools-link {
36
- color: var(--sys-color-primary);
37
- text-decoration: underline;
38
- cursor: pointer;
39
- outline-offset: 2px;
40
- border: none;
41
- background: none;
42
- font-family: inherit;
43
- font-size: var(--sys-size-6);
44
-
45
- &:focus-visible {
46
- outline: 2px solid var(--sys-color-state-focus-ring);
47
- outline-offset: 0;
48
- border-radius: var(--sys-shape-corner-extra-small);
49
- }
50
- }