chrome-devtools-frontend 1.0.1555430 → 1.0.1558690

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 (232) hide show
  1. package/front_end/core/common/Object.ts +5 -1
  2. package/front_end/core/host/ResourceLoader.ts +1 -1
  3. package/front_end/core/host/UserMetrics.ts +3 -1
  4. package/front_end/core/sdk/DOMModel.ts +7 -0
  5. package/front_end/core/sdk/NetworkManager.ts +0 -7
  6. package/front_end/core/sdk/SourceMap.ts +16 -2
  7. package/front_end/core/sdk/SourceMapManager.ts +1 -1
  8. package/front_end/core/sdk/SourceMapScopesInfo.ts +11 -4
  9. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +3 -0
  10. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +119 -8
  11. package/front_end/entrypoints/formatter_worker/Substitute.ts +1 -1
  12. package/front_end/entrypoints/main/GlobalAiButton.ts +5 -1
  13. package/front_end/generated/Deprecation.ts +0 -7
  14. package/front_end/generated/InspectorBackendCommands.ts +4 -4
  15. package/front_end/generated/protocol.ts +9 -1
  16. package/front_end/models/ai_assistance/AiConversation.ts +71 -10
  17. package/front_end/models/ai_assistance/ArtifactsManager.ts +67 -0
  18. package/front_end/models/ai_assistance/ConversationHandler.ts +3 -2
  19. package/front_end/models/ai_assistance/agents/AiAgent.ts +17 -27
  20. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +151 -3
  21. package/front_end/models/ai_assistance/agents/StylingAgent.ts +1 -1
  22. package/front_end/models/ai_assistance/ai_assistance.ts +2 -0
  23. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +0 -2
  24. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +3 -3
  25. package/front_end/models/annotations/AnnotationRepository.ts +2 -2
  26. package/front_end/models/bindings/CompilerScriptMapping.ts +7 -6
  27. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +4 -4
  28. package/front_end/models/greendev/Prototypes.ts +56 -0
  29. package/front_end/models/greendev/README.md +5 -0
  30. package/front_end/models/greendev/greendev.ts +5 -0
  31. package/front_end/models/javascript_metadata/NativeFunctions.js +2 -2
  32. package/front_end/models/stack_trace/StackTraceImpl.ts +5 -3
  33. package/front_end/models/stack_trace/StackTraceModel.ts +53 -40
  34. package/front_end/models/trace/EventsSerializer.ts +8 -2
  35. package/front_end/models/trace/extras/TraceTree.ts +4 -2
  36. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +2 -2
  37. package/front_end/models/trace/insights/LCPDiscovery.ts +0 -2
  38. package/front_end/models/trace/types/TraceEvents.ts +0 -1
  39. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +96 -91
  40. package/front_end/panels/ai_assistance/aiAssistancePanel.css +16 -0
  41. package/front_end/panels/ai_assistance/components/ArtifactsViewer.ts +109 -7
  42. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -2
  43. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +7 -8
  44. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +15 -8
  45. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +9 -9
  46. package/front_end/panels/ai_assistance/components/artifactsViewer.css +6 -1
  47. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +5 -6
  48. package/front_end/panels/application/AppManifestView.ts +360 -391
  49. package/front_end/panels/application/ApplicationPanelSidebar.ts +24 -57
  50. package/front_end/panels/application/CookieItemsView.ts +1 -0
  51. package/front_end/panels/application/OpenedWindowDetailsView.ts +2 -0
  52. package/front_end/panels/application/ServiceWorkersView.ts +2 -0
  53. package/front_end/panels/application/SharedStorageTreeElement.ts +3 -0
  54. package/front_end/panels/application/StorageView.ts +1 -0
  55. package/front_end/panels/application/appManifestView.css +49 -1
  56. package/front_end/panels/application/components/ProtocolHandlersView.ts +2 -2
  57. package/front_end/panels/console/ConsoleViewMessage.ts +4 -3
  58. package/front_end/panels/elements/ElementsTreeElement.ts +30 -1
  59. package/front_end/panels/elements/ElementsTreeOutline.ts +1 -1
  60. package/front_end/panels/elements/ElementsTreeOutlineRenderer.ts +7 -1
  61. package/front_end/panels/elements/components/AdornerManager.ts +8 -0
  62. package/front_end/panels/emulation/DeviceModeToolbar.ts +3 -1
  63. package/front_end/panels/issues/AffectedResourcesView.ts +0 -1
  64. package/front_end/panels/lighthouse/LighthousePanel.ts +10 -0
  65. package/front_end/panels/lighthouse/lighthousePanel.css +46 -3
  66. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +4 -8
  67. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +148 -97
  68. package/front_end/panels/linear_memory_inspector/components/LinearMemoryViewer.ts +1 -1
  69. package/front_end/panels/linear_memory_inspector/components/linearMemoryValueInterpreter.css +37 -35
  70. package/front_end/panels/network/NetworkLogViewColumns.ts +9 -9
  71. package/front_end/panels/network/RequestCookiesView.ts +125 -141
  72. package/front_end/panels/network/components/RequestHeadersView.ts +2 -2
  73. package/front_end/panels/network/requestCookiesView.css +22 -20
  74. package/front_end/panels/recorder/components/RecordingView.ts +3 -3
  75. package/front_end/panels/recorder/components/StepView.ts +2 -1
  76. package/front_end/panels/settings/SettingsScreen.ts +133 -1
  77. package/front_end/panels/settings/keybindsSettingsTab.css +4 -0
  78. package/front_end/panels/settings/settings-meta.ts +24 -0
  79. package/front_end/panels/settings/settingsScreen.css +4 -0
  80. package/front_end/panels/sources/CallStackSidebarPane.ts +7 -3
  81. package/front_end/panels/sources/DebuggerPausedMessage.ts +125 -90
  82. package/front_end/panels/sources/SourcesPanel.ts +10 -7
  83. package/front_end/panels/sources/UISourceCodeFrame.ts +3 -17
  84. package/front_end/panels/sources/debuggerPausedMessage.css +8 -0
  85. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +2 -1
  86. package/front_end/panels/timeline/components/sidebarInsightsTab.css +2 -0
  87. package/front_end/third_party/acorn/estree-legacy.d.ts +4 -0
  88. package/front_end/third_party/chromium/README.chromium +1 -1
  89. package/front_end/third_party/puppeteer/README.chromium +2 -2
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +12 -0
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.d.ts.map +1 -1
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/CDPSession.js.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +14 -2
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +3 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +6 -0
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +0 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +0 -20
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +3 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +10 -14
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -0
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Connection.d.ts.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +12 -0
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.d.ts +1 -0
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.js +22 -0
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/EmulationManager.js.map +1 -1
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +3 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +9 -2
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +21 -7
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/EventEmitter.d.ts.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +26 -0
  142. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +86 -20
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +12 -0
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/CDPSession.js.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +14 -2
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +3 -1
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +6 -0
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +0 -1
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +0 -20
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +3 -1
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +11 -15
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -0
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Connection.d.ts.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -1
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +12 -0
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.d.ts +1 -0
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.js +22 -0
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/EmulationManager.js.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +3 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +9 -2
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +21 -7
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/EventEmitter.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/types.d.ts +26 -0
  193. package/front_end/third_party/puppeteer/package/package.json +2 -2
  194. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +18 -0
  195. package/front_end/third_party/puppeteer/package/src/api/CDPSession.ts +1 -2
  196. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +2 -4
  197. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +2 -4
  198. package/front_end/third_party/puppeteer/package/src/api/Page.ts +18 -6
  199. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +13 -0
  200. package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +0 -33
  201. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +14 -28
  202. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +19 -0
  203. package/front_end/third_party/puppeteer/package/src/bidi/core/Connection.ts +3 -2
  204. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +19 -0
  205. package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +30 -0
  206. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +15 -6
  207. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +29 -10
  208. package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +3 -3
  209. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  210. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  211. package/front_end/ui/components/icon_button/iconButton.css +3 -1
  212. package/front_end/ui/components/report_view/ReportView.docs.ts +37 -0
  213. package/front_end/ui/components/report_view/ReportView.ts +12 -6
  214. package/front_end/ui/components/report_view/report.css +16 -0
  215. package/front_end/ui/components/settings/SettingCheckbox.ts +1 -1
  216. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +135 -7
  217. package/front_end/ui/components/text_editor/config.ts +6 -6
  218. package/front_end/ui/legacy/ContextMenu.ts +11 -2
  219. package/front_end/ui/legacy/Floaty.ts +5 -9
  220. package/front_end/ui/legacy/InspectorView.ts +2 -1
  221. package/front_end/ui/legacy/ReportView.ts +5 -4
  222. package/front_end/ui/legacy/TextPrompt.ts +1 -1
  223. package/front_end/ui/legacy/Toolbar.ts +4 -0
  224. package/front_end/ui/legacy/UIUtils.ts +0 -2
  225. package/front_end/ui/legacy/Widget.ts +7 -0
  226. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +18 -3
  227. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +3 -3
  228. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +6 -0
  229. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +0 -1
  230. package/front_end/ui/legacy/reportView.css +0 -24
  231. package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
  232. package/package.json +1 -1
@@ -1,7 +1,6 @@
1
1
  // Copyright 2020 The Chromium Authors
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
- /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
4
 
6
5
  import '../../../ui/kit/kit.js';
7
6
 
@@ -35,42 +34,149 @@ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
35
34
  const {render, html} = Lit;
36
35
  const {widgetConfig} = UI.Widget;
37
36
 
38
- export interface LinearMemoryValueInterpreterData {
39
- value: ArrayBuffer;
40
- valueTypes: Set<ValueType>;
37
+ export interface ViewInput {
41
38
  endianness: Endianness;
42
- valueTypeModes?: Map<ValueType, ValueTypeMode>;
39
+ buffer: ArrayBuffer;
40
+ valueTypes: Set<ValueType>;
41
+ valueTypeModes: Map<ValueType, ValueTypeMode>;
43
42
  memoryLength: number;
43
+ showSettings: boolean;
44
44
  onValueTypeModeChange: (type: ValueType, mode: ValueTypeMode) => void;
45
45
  onJumpToAddressClicked: (address: number) => void;
46
46
  onEndiannessChanged: (endianness: Endianness) => void;
47
47
  onValueTypeToggled: (type: ValueType, checked: boolean) => void;
48
+ onSettingsToggle: () => void;
48
49
  }
49
50
 
50
- export class LinearMemoryValueInterpreter extends HTMLElement {
51
- readonly #shadow = this.attachShadow({mode: 'open'});
52
- #onValueTypeModeChange: (type: ValueType, mode: ValueTypeMode) => void = () => {};
53
- #onJumpToAddressClicked: (address: number) => void = () => {};
54
- #onEndiannessChanged: (endianness: Endianness) => void = () => {};
55
- #onValueTypeToggled: (type: ValueType, checked: boolean) => void = () => {};
51
+ function renderEndiannessSetting(
52
+ onEndiannessChanged: (endianness: Endianness) => void, currentEndiannes: Endianness): Lit.TemplateResult {
53
+ // Disabled until https://crbug.com/1079231 is fixed.
54
+ // clang-format off
55
+ return html`
56
+ <label data-endianness-setting="true" title=${i18nString(UIStrings.changeEndianness)}>
57
+ <select
58
+ jslog=${VisualLogging.dropDown('linear-memory-inspector.endianess').track({change: true})}
59
+ style="border: none;"
60
+ data-endianness="true" @change=${(e: Event) => onEndiannessChanged((e.target as HTMLSelectElement).value as Endianness)}>
61
+ ${[Endianness.LITTLE, Endianness.BIG].map(endianness => {
62
+ return html`<option value=${endianness} .selected=${currentEndiannes === endianness}
63
+ jslog=${VisualLogging.item(Platform.StringUtilities.toKebabCase(endianness)).track({click: true})}>${
64
+ i18n.i18n.lockedString(endianness)}</option>`;
65
+ })}
66
+ </select>
67
+ </label>
68
+ `;
69
+ // clang-format on
70
+ }
71
+
72
+ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLElement): void => {
73
+ // Disabled until https://crbug.com/1079231 is fixed.
74
+ // clang-format off
75
+ render(html`
76
+ <style>${UI.inspectorCommonStyles}</style>
77
+ <style>${linearMemoryValueInterpreterStyles}</style>
78
+ <div class="value-interpreter">
79
+ <div class="settings-toolbar">
80
+ ${renderEndiannessSetting(input.onEndiannessChanged, input.endianness)}
81
+ <devtools-button data-settings="true" class="toolbar-button ${input.showSettings ? '' : 'disabled'}"
82
+ title=${i18nString(UIStrings.toggleValueTypeSettings)} @click=${input.onSettingsToggle}
83
+ jslog=${VisualLogging.toggleSubpane('linear-memory-inspector.toggle-value-settings').track({ click: true })}
84
+ .iconName=${'gear'}
85
+ .toggledIconName=${'gear-filled'}
86
+ .toggleType=${Buttons.Button.ToggleType.PRIMARY}
87
+ .variant=${Buttons.Button.Variant.ICON_TOGGLE}
88
+ ></devtools-button>
89
+ </div>
90
+ <span class="divider"></span>
91
+ <div>
92
+ ${input.showSettings ?
93
+ html`
94
+ <devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterSettings, {
95
+ valueTypes: input.valueTypes, onToggle: input.onValueTypeToggled
96
+ })}>
97
+ </devtools-widget>` :
98
+ html`
99
+ <devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterDisplay, {
100
+ buffer: input.buffer,
101
+ valueTypes: input.valueTypes,
102
+ endianness: input.endianness,
103
+ valueTypeModes: input.valueTypeModes,
104
+ memoryLength: input.memoryLength,
105
+ onValueTypeModeChange: input.onValueTypeModeChange,
106
+ onJumpToAddressClicked: input.onJumpToAddressClicked,
107
+ })}>
108
+ </devtools-widget>`}
109
+ </div>
110
+ </div>
111
+ `,
112
+ target,
113
+ );
114
+ // clang-format on
115
+ };
116
+
117
+ export type View = typeof DEFAULT_VIEW;
118
+
119
+ export class LinearMemoryValueInterpreter extends UI.Widget.Widget {
120
+ readonly #view: View;
56
121
  #endianness = Endianness.LITTLE;
57
122
  #buffer = new ArrayBuffer(0);
58
123
  #valueTypes = new Set<ValueType>();
59
124
  #valueTypeModeConfig = new Map<ValueType, ValueTypeMode>();
60
125
  #memoryLength = 0;
61
126
  #showSettings = false;
127
+ #onValueTypeModeChange: (type: ValueType, mode: ValueTypeMode) => void = () => {};
128
+ #onJumpToAddressClicked: (address: number) => void = () => {};
129
+ #onEndiannessChanged: (endianness: Endianness) => void = () => {};
130
+ #onValueTypeToggled: (type: ValueType, checked: boolean) => void = () => {};
131
+
132
+ constructor(element?: HTMLElement, view: View = DEFAULT_VIEW) {
133
+ super(element);
134
+ this.#view = view;
135
+ }
136
+
137
+ set buffer(value: ArrayBuffer) {
138
+ this.#buffer = value;
139
+ this.requestUpdate();
140
+ }
62
141
 
63
- set data(data: LinearMemoryValueInterpreterData) {
64
- this.#endianness = data.endianness;
65
- this.#buffer = data.value;
66
- this.#valueTypes = data.valueTypes;
67
- this.#valueTypeModeConfig = data.valueTypeModes || new Map();
68
- this.#memoryLength = data.memoryLength;
69
- this.#onValueTypeModeChange = data.onValueTypeModeChange;
70
- this.#onJumpToAddressClicked = data.onJumpToAddressClicked;
71
- this.#onEndiannessChanged = data.onEndiannessChanged;
72
- this.#onValueTypeToggled = data.onValueTypeToggled;
73
- this.#render();
142
+ get buffer(): ArrayBuffer {
143
+ return this.#buffer;
144
+ }
145
+
146
+ set valueTypes(value: Set<ValueType>) {
147
+ this.#valueTypes = value;
148
+ this.requestUpdate();
149
+ }
150
+
151
+ get valueTypes(): Set<ValueType> {
152
+ return this.#valueTypes;
153
+ }
154
+
155
+ set valueTypeModes(value: Map<ValueType, ValueTypeMode>) {
156
+ this.#valueTypeModeConfig = value;
157
+ this.requestUpdate();
158
+ }
159
+
160
+ get valueTypeModes(): Map<ValueType, ValueTypeMode> {
161
+ return this.#valueTypeModeConfig;
162
+ }
163
+
164
+ set endianness(value: Endianness) {
165
+ this.#endianness = value;
166
+ this.requestUpdate();
167
+ }
168
+
169
+ get endianness(): Endianness {
170
+ return this.#endianness;
171
+ }
172
+
173
+ set memoryLength(value: number) {
174
+ this.#memoryLength = value;
175
+ this.requestUpdate();
176
+ }
177
+
178
+ get memoryLength(): number {
179
+ return this.#memoryLength;
74
180
  }
75
181
 
76
182
  get onValueTypeModeChange(): (type: ValueType, mode: ValueTypeMode) => void {
@@ -79,7 +185,7 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
79
185
 
80
186
  set onValueTypeModeChange(value: (type: ValueType, mode: ValueTypeMode) => void) {
81
187
  this.#onValueTypeModeChange = value;
82
- this.#render();
188
+ this.requestUpdate();
83
189
  }
84
190
 
85
191
  get onJumpToAddressClicked(): (address: number) => void {
@@ -88,7 +194,7 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
88
194
 
89
195
  set onJumpToAddressClicked(value: (address: number) => void) {
90
196
  this.#onJumpToAddressClicked = value;
91
- this.#render();
197
+ this.requestUpdate();
92
198
  }
93
199
 
94
200
  get onEndiannessChanged(): (endianness: Endianness) => void {
@@ -97,7 +203,7 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
97
203
 
98
204
  set onEndiannessChanged(value: (endianness: Endianness) => void) {
99
205
  this.#onEndiannessChanged = value;
100
- this.#render();
206
+ this.performUpdate();
101
207
  }
102
208
 
103
209
  get onValueTypeToggled(): (type: ValueType, checked: boolean) => void {
@@ -106,83 +212,28 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
106
212
 
107
213
  set onValueTypeToggled(value: (type: ValueType, checked: boolean) => void) {
108
214
  this.#onValueTypeToggled = value;
109
- this.#render();
110
- }
111
-
112
- #render(): void {
113
- // Disabled until https://crbug.com/1079231 is fixed.
114
- // clang-format off
115
- render(html`
116
- <style>${UI.inspectorCommonStyles}</style>
117
- <style>${linearMemoryValueInterpreterStyles}</style>
118
- <div class="value-interpreter">
119
- <div class="settings-toolbar">
120
- ${this.#renderEndiannessSetting()}
121
- <devtools-button data-settings="true" class="toolbar-button ${this.#showSettings ? '' : 'disabled'}"
122
- title=${i18nString(UIStrings.toggleValueTypeSettings)} @click=${this.#onSettingsToggle}
123
- jslog=${VisualLogging.toggleSubpane('linear-memory-inspector.toggle-value-settings').track({click: true})}
124
- .iconName=${'gear'}
125
- .toggledIconName=${'gear-filled'}
126
- .toggleType=${Buttons.Button.ToggleType.PRIMARY}
127
- .variant=${Buttons.Button.Variant.ICON_TOGGLE}
128
- ></devtools-button>
129
- </div>
130
- <span class="divider"></span>
131
- <div>
132
- ${this.#showSettings ?
133
- html`
134
- <devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterSettings, {
135
- valueTypes: this.#valueTypes, onToggle: this.#onValueTypeToggled })}>
136
- </devtools-widget>` :
137
- html`
138
- <devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterDisplay, {
139
- buffer: this.#buffer,
140
- valueTypes: this.#valueTypes,
141
- endianness: this.#endianness,
142
- valueTypeModes: this.#valueTypeModeConfig,
143
- memoryLength: this.#memoryLength,
144
- onValueTypeModeChange: this.#onValueTypeModeChange,
145
- onJumpToAddressClicked: this.#onJumpToAddressClicked,
146
- })}>
147
- </devtools-widget>`}
148
- </div>
149
- </div>
150
- `,
151
- this.#shadow, { host: this },
152
- );
153
- // clang-format on
215
+ this.performUpdate();
154
216
  }
155
217
 
156
- #renderEndiannessSetting(): Lit.TemplateResult {
157
- // Disabled until https://crbug.com/1079231 is fixed.
158
- // clang-format off
159
- return html`
160
- <label data-endianness-setting="true" title=${i18nString(UIStrings.changeEndianness)}>
161
- <select
162
- jslog=${VisualLogging.dropDown('linear-memory-inspector.endianess').track({change: true})}
163
- style="border: none;"
164
- data-endianness="true" @change=${(e: Event) => this.#onEndiannessChanged((e.target as HTMLSelectElement).value as Endianness)}>
165
- ${[Endianness.LITTLE, Endianness.BIG].map(endianness => {
166
- return html`<option value=${endianness} .selected=${this.#endianness === endianness}
167
- jslog=${VisualLogging.item(Platform.StringUtilities.toKebabCase(endianness)).track({click: true})}>${
168
- i18n.i18n.lockedString(endianness)}</option>`;
169
- })}
170
- </select>
171
- </label>
172
- `;
173
- // clang-format on
218
+ override performUpdate(): void {
219
+ const viewInput: ViewInput = {
220
+ endianness: this.#endianness,
221
+ buffer: this.#buffer,
222
+ valueTypes: this.#valueTypes,
223
+ valueTypeModes: this.#valueTypeModeConfig,
224
+ memoryLength: this.#memoryLength,
225
+ showSettings: this.#showSettings,
226
+ onValueTypeModeChange: this.#onValueTypeModeChange,
227
+ onJumpToAddressClicked: this.#onJumpToAddressClicked,
228
+ onEndiannessChanged: this.#onEndiannessChanged,
229
+ onValueTypeToggled: this.#onValueTypeToggled,
230
+ onSettingsToggle: this.#onSettingsToggle.bind(this),
231
+ };
232
+ this.#view(viewInput, undefined, this.contentElement);
174
233
  }
175
234
 
176
235
  #onSettingsToggle(): void {
177
236
  this.#showSettings = !this.#showSettings;
178
- this.#render();
179
- }
180
- }
181
-
182
- customElements.define('devtools-linear-memory-inspector-interpreter', LinearMemoryValueInterpreter);
183
-
184
- declare global {
185
- interface HTMLElementTagNameMap {
186
- 'devtools-linear-memory-inspector-interpreter': LinearMemoryValueInterpreter;
237
+ this.requestUpdate();
187
238
  }
188
239
  }
@@ -47,7 +47,7 @@ const BYTE_GROUP_SIZE = 4;
47
47
  export class LinearMemoryViewer extends HTMLElement {
48
48
  readonly #shadow = this.attachShadow({mode: 'open'});
49
49
 
50
- readonly #resizeObserver = new ResizeObserver(() => this.#resize());
50
+ readonly #resizeObserver = new ResizeObserver(() => requestAnimationFrame(this.#resize.bind(this)));
51
51
  #isObservingResize = false;
52
52
 
53
53
  #memory = new Uint8Array();
@@ -4,44 +4,46 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
 
7
- :host {
8
- flex: auto;
9
- display: flex;
10
- }
7
+ @scope to (devtools-widget > *) {
8
+ :scope {
9
+ flex: auto;
10
+ display: flex;
11
+ }
11
12
 
12
- .value-interpreter {
13
- border: 1px solid var(--sys-color-divider);
14
- background-color: var(--sys-color-cdt-base-container);
15
- overflow: hidden;
16
- width: 400px;
17
- }
13
+ .value-interpreter {
14
+ border: 1px solid var(--sys-color-divider);
15
+ background-color: var(--sys-color-cdt-base-container);
16
+ overflow: hidden;
17
+ width: 400px;
18
+ }
18
19
 
19
- .settings-toolbar {
20
- min-height: 26px;
21
- display: flex;
22
- flex-wrap: nowrap;
23
- justify-content: space-between;
24
- padding-left: var(--sys-size-3);
25
- padding-right: var(--sys-size-3);
26
- align-items: center;
27
- }
20
+ .settings-toolbar {
21
+ min-height: 26px;
22
+ display: flex;
23
+ flex-wrap: nowrap;
24
+ justify-content: space-between;
25
+ padding-left: var(--sys-size-3);
26
+ padding-right: var(--sys-size-3);
27
+ align-items: center;
28
+ }
28
29
 
29
- .settings-toolbar-button {
30
- padding: 0;
31
- width: 20px;
32
- height: 20px;
33
- border: none;
34
- outline: none;
35
- background-color: transparent;
36
- }
30
+ .settings-toolbar-button {
31
+ padding: 0;
32
+ width: 20px;
33
+ height: 20px;
34
+ border: none;
35
+ outline: none;
36
+ background-color: transparent;
37
+ }
37
38
 
38
- .settings-toolbar-button.active devtools-icon {
39
- color: var(--icon-toggled);
40
- }
39
+ .settings-toolbar-button.active devtools-icon {
40
+ color: var(--icon-toggled);
41
+ }
41
42
 
42
- .divider {
43
- display: block;
44
- height: 1px;
45
- margin-bottom: 12px;
46
- background-color: var(--sys-color-divider);
43
+ .divider {
44
+ display: block;
45
+ height: 1px;
46
+ margin-bottom: 12px;
47
+ background-color: var(--sys-color-divider);
48
+ }
47
49
  }
@@ -31,11 +31,11 @@ const UIStrings = {
31
31
  /**
32
32
  * @description A context menu item in the Network Log View Columns of the Network panel
33
33
  */
34
- responseHeaders: 'Response Headers',
34
+ responseHeaders: 'Response headers',
35
35
  /**
36
36
  * @description A context menu item in the Network Log View Columns of the Network panel
37
37
  */
38
- requestHeaders: 'Request Headers',
38
+ requestHeaders: 'Request headers',
39
39
  /**
40
40
  * @description Text in Network Log View Columns of the Network panel
41
41
  */
@@ -43,19 +43,19 @@ const UIStrings = {
43
43
  /**
44
44
  * @description Text for the start time of an activity
45
45
  */
46
- startTime: 'Start Time',
46
+ startTime: 'Start time',
47
47
  /**
48
48
  * @description Text in Network Log View Columns of the Network panel
49
49
  */
50
- responseTime: 'Response Time',
50
+ responseTime: 'Response time',
51
51
  /**
52
52
  * @description Text in Network Log View Columns of the Network panel
53
53
  */
54
- endTime: 'End Time',
54
+ endTime: 'End time',
55
55
  /**
56
56
  * @description Text in Network Log View Columns of the Network panel
57
57
  */
58
- totalDuration: 'Total Duration',
58
+ totalDuration: 'Total duration',
59
59
  /**
60
60
  * @description Text for the latency of a task
61
61
  */
@@ -99,7 +99,7 @@ const UIStrings = {
99
99
  /**
100
100
  * @description Text in Network Log View Columns of the Network panel
101
101
  */
102
- remoteAddress: 'Remote Address',
102
+ remoteAddress: 'Remote address',
103
103
  /**
104
104
  * @description Text that refers to some types
105
105
  */
@@ -115,7 +115,7 @@ const UIStrings = {
115
115
  /**
116
116
  * @description Column header in the Network log view of the Network panel
117
117
  */
118
- initiatorAddressSpace: 'Initiator Address Space',
118
+ initiatorAddressSpace: 'Initiator address space',
119
119
  /**
120
120
  * @description Text for web cookies
121
121
  */
@@ -147,7 +147,7 @@ const UIStrings = {
147
147
  /**
148
148
  * @description Text in Network Log View Columns of the Network panel
149
149
  */
150
- remoteAddressSpace: 'Remote Address Space',
150
+ remoteAddressSpace: 'Remote address space',
151
151
  /**
152
152
  * @description Text to show whether a request is ad-related
153
153
  */