chrome-devtools-frontend 1.0.1522145 → 1.0.1524741

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 (348) hide show
  1. package/AUTHORS +1 -0
  2. package/docs/README.md +1 -0
  3. package/docs/policy/README.md +1 -0
  4. package/docs/policy/console-policy.md +144 -0
  5. package/docs/policy/images/console-policy1.png +0 -0
  6. package/docs/policy/images/console-policy2.png +0 -0
  7. package/docs/policy/images/console-policy3.png +0 -0
  8. package/docs/ui_engineering.md +98 -0
  9. package/front_end/Tests.js +1 -1
  10. package/front_end/core/common/Color.ts +13 -9
  11. package/front_end/core/common/ColorConverter.ts +9 -7
  12. package/front_end/core/common/Gzip.ts +1 -1
  13. package/front_end/core/common/MapWithDefault.ts +5 -3
  14. package/front_end/core/common/ResourceType.ts +0 -12
  15. package/front_end/core/common/ReturnToPanel.ts +6 -4
  16. package/front_end/core/common/Trie.ts +4 -2
  17. package/front_end/core/host/AidaClient.ts +3 -3
  18. package/front_end/core/host/GdpClient.ts +7 -5
  19. package/front_end/core/host/InspectorFrontendHostAPI.ts +7 -5
  20. package/front_end/core/host/Platform.ts +5 -3
  21. package/front_end/core/host/UserMetrics.ts +6 -4
  22. package/front_end/core/platform/ArrayUtilities.ts +1 -1
  23. package/front_end/core/platform/StringUtilities.ts +34 -31
  24. package/front_end/core/root/Runtime.ts +1 -1
  25. package/front_end/core/sdk/CSSMetadata.ts +6 -4
  26. package/front_end/core/sdk/CSSPropertyParser.ts +17 -13
  27. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +19 -13
  28. package/front_end/core/sdk/ChildTargetManager.ts +35 -0
  29. package/front_end/core/sdk/DOMModel.ts +1 -1
  30. package/front_end/core/sdk/EnhancedTracesParser.ts +13 -6
  31. package/front_end/core/sdk/EventBreakpointsModel.ts +4 -2
  32. package/front_end/core/sdk/HttpReasonPhraseStrings.ts +4 -2
  33. package/front_end/core/sdk/NetworkManager.ts +8 -48
  34. package/front_end/core/sdk/NetworkRequest.ts +0 -28
  35. package/front_end/core/sdk/PageResourceLoader.ts +1 -1
  36. package/front_end/core/sdk/PreloadingModel.ts +22 -18
  37. package/front_end/core/sdk/RehydratingConnection.ts +1 -1
  38. package/front_end/core/sdk/RehydratingObject.ts +1 -1
  39. package/front_end/core/sdk/RemoteObject.ts +1 -1
  40. package/front_end/core/sdk/ResourceTreeModel.ts +2 -0
  41. package/front_end/core/sdk/ScreenCaptureModel.ts +24 -20
  42. package/front_end/core/sdk/Target.ts +7 -1
  43. package/front_end/core/sdk/TraceObject.ts +2 -2
  44. package/front_end/entrypoints/formatter_worker/Substitute.ts +6 -4
  45. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -16
  46. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -1
  47. package/front_end/entrypoints/main/MainImpl.ts +6 -4
  48. package/front_end/generated/Deprecation.ts +4 -4
  49. package/front_end/generated/InspectorBackendCommands.js +2 -2
  50. package/front_end/generated/protocol-mapping.d.ts +3 -2
  51. package/front_end/generated/protocol-proxy-api.d.ts +3 -1
  52. package/front_end/generated/protocol.ts +7 -1
  53. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +600 -0
  54. package/front_end/models/ai_assistance/agents/StylingAgent.ts +83 -222
  55. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +23 -0
  56. package/front_end/models/ai_assistance/performance/AIContext.ts +19 -4
  57. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +4 -2
  58. package/front_end/models/autofill_manager/AutofillManager.ts +4 -2
  59. package/front_end/models/cpu_profile/CPUProfileDataModel.ts +1 -1
  60. package/front_end/models/crux-manager/CrUXManager.ts +1 -1
  61. package/front_end/models/extensions/HostUrlPattern.ts +13 -5
  62. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
  63. package/front_end/models/issues_manager/CookieIssue.ts +2 -2
  64. package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
  65. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +20 -0
  66. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  67. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  68. package/front_end/models/javascript_metadata/NativeFunctions.js +9 -1
  69. package/front_end/models/network_time_calculator/Calculator.ts +4 -2
  70. package/front_end/models/network_time_calculator/RequestTimeRanges.ts +6 -4
  71. package/front_end/models/source_map_scopes/NamesResolver.ts +7 -5
  72. package/front_end/models/text_utils/ContentProvider.ts +6 -4
  73. package/front_end/models/trace/LanternComputationData.ts +1 -0
  74. package/front_end/models/trace/extras/TraceTree.ts +1 -1
  75. package/front_end/models/trace/handlers/FramesHandler.ts +7 -5
  76. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +13 -7
  77. package/front_end/models/trace/handlers/MetaHandler.ts +16 -14
  78. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +30 -8
  79. package/front_end/models/trace/handlers/helpers.ts +1 -1
  80. package/front_end/models/trace/handlers/types.ts +23 -19
  81. package/front_end/models/trace/helpers/Timing.ts +4 -2
  82. package/front_end/models/trace/helpers/Trace.ts +8 -4
  83. package/front_end/models/trace/insights/DocumentLatency.ts +10 -11
  84. package/front_end/models/trace/insights/INPBreakdown.ts +13 -2
  85. package/front_end/models/trace/insights/LCPBreakdown.ts +14 -2
  86. package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -2
  87. package/front_end/models/trace/types/File.ts +12 -8
  88. package/front_end/models/trace/types/Timing.ts +1 -1
  89. package/front_end/models/trace/types/TraceEvents.ts +43 -28
  90. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +1 -1
  91. package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +12 -10
  92. package/front_end/panels/application/KeyValueStorageItemsView.ts +31 -33
  93. package/front_end/panels/application/components/InterestGroupAccessGrid.ts +6 -11
  94. package/front_end/panels/application/components/OriginTrialTreeView.ts +7 -5
  95. package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -0
  96. package/front_end/panels/application/components/ReportsGrid.ts +4 -10
  97. package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -13
  98. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
  99. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +3 -7
  100. package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -2
  101. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +3 -10
  102. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -2
  103. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +7 -5
  104. package/front_end/panels/changes/ChangesSidebar.ts +97 -95
  105. package/front_end/panels/changes/changesSidebar.css +3 -0
  106. package/front_end/panels/console/ConsoleView.ts +2 -2
  107. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +22 -35
  108. package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
  109. package/front_end/panels/elements/ElementStatePaneWidget.ts +12 -0
  110. package/front_end/panels/elements/ElementsTreeElement.ts +9 -5
  111. package/front_end/panels/elements/ElementsTreeOutline.ts +11 -8
  112. package/front_end/panels/elements/PropertyRenderer.ts +19 -15
  113. package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -4
  114. package/front_end/panels/elements/StylesSidebarPane.ts +2 -2
  115. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +4 -2
  116. package/front_end/panels/elements/components/AdornerManager.ts +5 -3
  117. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +6 -4
  118. package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
  119. package/front_end/panels/network/NetworkDataGridNode.ts +2 -44
  120. package/front_end/panels/network/NetworkLogView.ts +6 -4
  121. package/front_end/panels/network/RequestPreviewView.ts +0 -7
  122. package/front_end/panels/network/components/RequestHeadersView.ts +0 -6
  123. package/front_end/panels/network/components/components.ts +0 -2
  124. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +1 -1
  125. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +4 -2
  126. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +40 -48
  127. package/front_end/panels/search/SearchResultsPane.ts +2 -3
  128. package/front_end/panels/security/IPProtectionView.ts +1 -1
  129. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +4 -0
  130. package/front_end/panels/settings/emulation/utils/StructuredHeaders.ts +45 -37
  131. package/front_end/panels/sources/BreakpointsViewUtils.ts +11 -9
  132. package/front_end/panels/sources/DebuggerPlugin.ts +8 -4
  133. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  134. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  135. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +4 -2
  136. package/front_end/panels/timeline/CountersGraph.ts +12 -5
  137. package/front_end/panels/timeline/EasterEgg.d.ts +5 -3
  138. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +8 -6
  139. package/front_end/panels/timeline/ModificationsManager.ts +5 -3
  140. package/front_end/panels/timeline/ThreadAppender.ts +7 -5
  141. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +10 -8
  142. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
  143. package/front_end/panels/timeline/TimelineFlameChartView.ts +17 -0
  144. package/front_end/panels/timeline/TimelinePanel.ts +15 -8
  145. package/front_end/panels/timeline/TimelineSelection.ts +4 -2
  146. package/front_end/panels/timeline/TimelineUIUtils.ts +17 -6
  147. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +6 -4
  148. package/front_end/panels/timeline/components/ExportTraceOptions.ts +21 -9
  149. package/front_end/panels/timeline/components/Utils.ts +1 -1
  150. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +5 -3
  151. package/front_end/panels/timeline/timelineDetailsView.css +5 -0
  152. package/front_end/panels/timeline/utils/Helpers.ts +1 -1
  153. package/front_end/panels/utils/utils.ts +1 -7
  154. package/front_end/services/trace_bounds/TraceBounds.ts +4 -2
  155. package/front_end/services/tracing/PerformanceTracing.ts +1 -1
  156. package/front_end/third_party/chromium/README.chromium +1 -1
  157. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  158. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  159. package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
  160. package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
  161. package/front_end/third_party/codemirror.next/package.json +3 -2
  162. package/front_end/third_party/puppeteer/README.chromium +2 -2
  163. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts +8 -10
  164. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js +8 -10
  166. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +28 -30
  168. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +27 -29
  170. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +34 -38
  172. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  173. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +34 -38
  174. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  175. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +8 -1
  176. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  177. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +12 -14
  178. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +92 -108
  180. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +33 -39
  182. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +5 -3
  185. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  188. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +4 -2
  190. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +14 -5
  192. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
  194. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +12 -6
  196. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +24 -2
  199. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  200. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -2
  201. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  202. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
  204. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
  206. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
  207. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
  208. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
  209. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts +6 -8
  210. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts.map +1 -1
  211. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js +6 -8
  212. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js.map +1 -1
  213. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts +1 -1
  217. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +6 -3
  219. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts +5 -7
  221. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +5 -7
  223. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
  224. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  225. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  226. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  228. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +188 -224
  229. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +140 -166
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts +8 -10
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts.map +1 -1
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js +8 -10
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +28 -30
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +27 -29
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +34 -38
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +34 -38
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +8 -1
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +12 -14
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +92 -108
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +33 -39
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +5 -3
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +4 -2
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +15 -6
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +12 -6
  263. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +24 -2
  266. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  268. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
  270. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
  272. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
  274. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts +6 -8
  276. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js +6 -8
  278. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js.map +1 -1
  279. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  281. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  283. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +6 -3
  284. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  285. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts +5 -7
  286. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  287. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +5 -7
  288. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  290. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  291. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  292. package/front_end/third_party/puppeteer/package/lib/types.d.ts +188 -224
  293. package/front_end/third_party/puppeteer/package/package.json +3 -3
  294. package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +8 -10
  295. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +27 -29
  296. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +34 -38
  297. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +17 -14
  298. package/front_end/third_party/puppeteer/package/src/api/Page.ts +92 -108
  299. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +5 -3
  300. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +5 -1
  301. package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +28 -3
  302. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +16 -7
  303. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +28 -2
  304. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
  305. package/front_end/third_party/puppeteer/package/src/cdp/PredefinedNetworkConditions.ts +13 -22
  306. package/front_end/third_party/puppeteer/package/src/common/Device.ts +6 -8
  307. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  308. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +6 -3
  309. package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +5 -7
  310. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  311. package/front_end/ui/components/chrome_link/ChromeLink.ts +4 -2
  312. package/front_end/ui/components/dialogs/Dialog.ts +13 -9
  313. package/front_end/ui/components/highlighting/HighlightElement.ts +77 -0
  314. package/front_end/ui/components/highlighting/HighlightManager.ts +37 -0
  315. package/front_end/ui/components/highlighting/highlighting.ts +2 -0
  316. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +5 -3
  317. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +5 -3
  318. package/front_end/ui/components/menus/SelectMenu.ts +6 -4
  319. package/front_end/ui/components/survey_link/SurveyLink.ts +4 -2
  320. package/front_end/ui/components/text_editor/config.ts +10 -6
  321. package/front_end/ui/components/text_editor/javascript.ts +8 -4
  322. package/front_end/ui/components/tooltips/Tooltip.ts +13 -4
  323. package/front_end/ui/legacy/ForwardedInputEventHandler.ts +4 -2
  324. package/front_end/ui/legacy/GlassPane.ts +1 -1
  325. package/front_end/ui/legacy/SettingsUI.ts +1 -5
  326. package/front_end/ui/legacy/Treeoutline.ts +12 -33
  327. package/front_end/ui/legacy/UIUtils.ts +19 -1
  328. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +12 -10
  329. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +30 -32
  330. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
  331. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +25 -25
  332. package/front_end/ui/legacy/components/data_grid/dataGrid.css +5 -0
  333. package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +4 -2
  334. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +4 -2
  335. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +8 -6
  336. package/front_end/ui/legacy/components/perf_ui/PieChart.ts +6 -4
  337. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -3
  338. package/front_end/ui/legacy/components/source_frame/XMLView.ts +22 -16
  339. package/front_end/ui/legacy/components/source_frame/xmlView.css +0 -2
  340. package/front_end/ui/legacy/components/utils/Linkifier.ts +6 -4
  341. package/front_end/ui/visual_logging/Debugging.ts +10 -6
  342. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -3
  343. package/inspector_overlay/common.ts +5 -3
  344. package/inspector_overlay/highlight_grid_common.ts +1 -1
  345. package/package.json +1 -1
  346. package/front_end/Images/src/bundle.svg +0 -3
  347. package/front_end/panels/network/components/WebBundleInfoView.css +0 -27
  348. package/front_end/panels/network/components/WebBundleInfoView.ts +0 -95
@@ -8,7 +8,7 @@ import type * as Protocol from '../../../generated/protocol.js';
8
8
 
9
9
  import type {Micro, Milli, Seconds, TraceWindowMicro} from './Timing.js';
10
10
 
11
- // Trace Events.
11
+ /** Trace Events. **/
12
12
  export const enum Phase {
13
13
  // Standard
14
14
  BEGIN = 'B',
@@ -124,10 +124,10 @@ export interface TraceFrame {
124
124
  processId: ProcessID;
125
125
  url: string;
126
126
  parent?: string;
127
- // Added to Chromium in April 2024:
127
+ // Added to Chrome in April 2024:
128
128
  // crrev.com/c/5424783
129
129
  isOutermostMainFrame?: boolean;
130
- // Added to Chromium in June 2024:
130
+ // Added to Chrome in June 2024:
131
131
  // crrev.com/c/5595033
132
132
  isInPrimaryMainFrame?: boolean;
133
133
  }
@@ -282,8 +282,10 @@ export interface End extends Event {
282
282
  */
283
283
  export type SyntheticComplete = Complete;
284
284
 
285
- // TODO(paulirish): Migrate to the new (Sept 2024) EventTiming trace events.
286
- // See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/timing/window_performance.cc;l=900-901;drc=b503c262e425eae59ced4a80d59d176ed07152c7
285
+ /**
286
+ * TODO(paulirish): Migrate to the new (Sept 2024) EventTiming trace events.
287
+ * See https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/timing/window_performance.cc;l=900-901;drc=b503c262e425eae59ced4a80d59d176ed07152c7
288
+ **/
287
289
  export type EventTimingBeginOrEnd = EventTimingBegin|EventTimingEnd;
288
290
 
289
291
  export interface EventTimingBegin extends Event {
@@ -336,9 +338,11 @@ export interface SyntheticNetworkRedirect {
336
338
  dur: Micro;
337
339
  }
338
340
 
339
- // ProcessedArgsData is used to store the processed data of a network
340
- // request. Which is used to distinguish from the date we extract from the
341
- // trace event directly.
341
+ /**
342
+ * ProcessedArgsData is used to store the processed data of a network
343
+ * request. Which is used to distinguish from the date we extract from the
344
+ * trace event directly.
345
+ **/
342
346
  interface SyntheticArgsData {
343
347
  dnsLookup: Micro;
344
348
  download: Micro;
@@ -359,8 +363,10 @@ interface SyntheticArgsData {
359
363
  ssl: Micro;
360
364
  stalled: Micro;
361
365
  totalTime: Micro;
362
- /** Server response time (receiveHeadersEnd - sendEnd) */
366
+ /** receiveHeadersEnd - sendEnd */
363
367
  waiting: Micro;
368
+ /** receiveHeadersStart - sendEnd */
369
+ serverResponseTime: Micro;
364
370
  }
365
371
 
366
372
  export interface SyntheticNetworkRequest extends Complete, SyntheticBased<Phase.COMPLETE> {
@@ -415,6 +421,8 @@ export interface SyntheticNetworkRequest extends Complete, SyntheticBased<Phase.
415
421
  initiator?: Initiator,
416
422
  requestMethod?: string,
417
423
  timing?: ResourceReceiveResponseTimingData,
424
+ /** Server response time according to Lightrider. */
425
+ lrServerResponseTime?: Milli,
418
426
  },
419
427
  };
420
428
  cat: 'loading';
@@ -549,7 +557,6 @@ export function isAuctionWorkletDoneWithProcess(event: Event): event is AuctionW
549
557
  * consuming screenshot events from the ScreenshotHandler, you must make sure
550
558
  * to have your code deal with the two different formats.
551
559
  */
552
- // These are nullable because in January 2025 a CL in Chromium
553
560
  export interface LegacyScreenshot extends Event {
554
561
  /**
555
562
  * @deprecated This value is incorrect. Use ScreenshotHandler.getPresentationTimestamp()
@@ -745,7 +752,7 @@ export interface LargestContentfulPaintCandidate extends Mark {
745
752
  nodeId: Protocol.DOM.BackendNodeId,
746
753
  loadingAttr: string,
747
754
  type?: string,
748
- // Landed in Chromium M140: crrev.com/c/6702010
755
+ // Landed in Chrome M140: crrev.com/c/6702010
749
756
  nodeName?: string,
750
757
  },
751
758
  };
@@ -990,7 +997,7 @@ export interface SyntheticLayoutShift extends Omit<LayoutShift, 'name'>, Synthet
990
997
  export const NO_NAVIGATION = 'NO_NAVIGATION';
991
998
 
992
999
  /**
993
- * This maybe be a navigation id string from Chromium, or `NO_NAVIGATION`, which represents the
1000
+ * This maybe be a navigation id string from Chrome, or `NO_NAVIGATION`, which represents the
994
1001
  * portion of the trace for which we don't have any navigation event for (as it happeneded prior
995
1002
  * to the trace start).
996
1003
  */
@@ -1617,8 +1624,10 @@ const enum FrameType {
1617
1624
  BACKFILL = 'BACKFILL',
1618
1625
  }
1619
1626
 
1620
- // TODO(crbug.com/409484302): Remove once Chrome migrates from
1621
- // ChromeTrackEvent.chrome_frame_reporter to ChromeTrackEvent.frame_reporter.
1627
+ /**
1628
+ * TODO(crbug.com/409484302): Remove once Chrome migrates from
1629
+ * ChromeTrackEvent.chrome_frame_reporter to ChromeTrackEvent.frame_reporter.
1630
+ **/
1622
1631
  export interface OldChromeFrameReporterArgs {
1623
1632
  chrome_frame_reporter: ChromeFrameReporter;
1624
1633
  }
@@ -1639,13 +1648,15 @@ export function isPipelineReporter(event: Event): event is PipelineReporter {
1639
1648
  return event.name === Name.PIPELINE_REPORTER;
1640
1649
  }
1641
1650
 
1642
- // A type used for synthetic events created based on a raw trace event.
1643
- // A branded type is used to ensure not all events can be typed as
1644
- // SyntheticBased and prevent places different to the
1645
- // SyntheticEventsManager from creating synthetic events. This is
1646
- // because synthetic events need to be registered in order to resolve
1647
- // serialized event keys into event objects, so we ensure events are
1648
- // registered at the time they are created by the SyntheticEventsManager.
1651
+ /**
1652
+ * A type used for synthetic events created based on a raw trace event.
1653
+ * A branded type is used to ensure not all events can be typed as
1654
+ * SyntheticBased and prevent places different to the
1655
+ * SyntheticEventsManager from creating synthetic events. This is
1656
+ * because synthetic events need to be registered in order to resolve
1657
+ * serialized event keys into event objects, so we ensure events are
1658
+ * registered at the time they are created by the SyntheticEventsManager.
1659
+ **/
1649
1660
  export interface SyntheticBased<Ph extends Phase = Phase, T extends Event = Event> extends Event {
1650
1661
  ph: Ph;
1651
1662
  rawSourceEvent: T;
@@ -1656,9 +1667,11 @@ export function isSyntheticBased(event: Event): event is SyntheticBased {
1656
1667
  return 'rawSourceEvent' in event;
1657
1668
  }
1658
1669
 
1659
- // Nestable async events with a duration are made up of two distinct
1660
- // events: the begin, and the end. We need both of them to be able to
1661
- // display the right information, so we create these synthetic events.
1670
+ /**
1671
+ * Nestable async events with a duration are made up of two distinct
1672
+ * events: the begin, and the end. We need both of them to be able to
1673
+ * display the right information, so we create these synthetic events.
1674
+ **/
1662
1675
  export interface SyntheticEventPair<T extends PairableAsync = PairableAsync> extends SyntheticBased<Phase, T> {
1663
1676
  rawSourceEvent: T;
1664
1677
  name: T['name'];
@@ -1855,7 +1868,7 @@ export function isRasterTask(event: Event): event is RasterTask {
1855
1868
  return event.name === Name.RASTER_TASK;
1856
1869
  }
1857
1870
 
1858
- // CompositeLayers has been replaced by "Commit", but we support both to not break old traces being imported.
1871
+ /** CompositeLayers has been replaced by "Commit", but we support both to not break old traces being imported. **/
1859
1872
  export interface CompositeLayers extends Instant {
1860
1873
  name: Name.COMPOSITE_LAYERS;
1861
1874
  args: Args&{
@@ -2272,7 +2285,7 @@ export function isResourceReceivedData(
2272
2285
  return event.name === 'ResourceReceivedData';
2273
2286
  }
2274
2287
 
2275
- // Any event where we receive data (and get an encodedDataLength)
2288
+ /** Any event where we receive data (and get an encodedDataLength) **/
2276
2289
  export function isReceivedDataEvent(
2277
2290
  event: Event,
2278
2291
  ): event is ResourceReceivedData|ResourceFinish|ResourceReceiveResponse {
@@ -3131,8 +3144,10 @@ export const enum Name {
3131
3144
  LINK_PRECONNECT = 'LinkPreconnect',
3132
3145
  }
3133
3146
 
3134
- // NOT AN EXHAUSTIVE LIST: just some categories we use and refer
3135
- // to in multiple places.
3147
+ /**
3148
+ * NOT AN EXHAUSTIVE LIST: just some categories we use and refer
3149
+ * to in multiple places.
3150
+ **/
3136
3151
  export const Categories = {
3137
3152
  Console: 'blink.console',
3138
3153
  UserTiming: 'blink.user_timing',
@@ -22,7 +22,7 @@ export class SourceMappingsUpdated extends Event {
22
22
  }
23
23
  }
24
24
 
25
- // The code location key is created as a concatenation of its fields.
25
+ /** The code location key is created as a concatenation of its fields. **/
26
26
  export const resolvedCodeLocationDataNames = new Map<string, ResolvedCodeLocationData|null>();
27
27
 
28
28
  export class SourceMapsResolver extends EventTarget {
@@ -6,16 +6,18 @@ import type * as Marked from '../../../third_party/marked/marked.js';
6
6
  import * as MarkdownView from '../../../ui/components/markdown_view/markdown_view.js';
7
7
  import type * as Lit from '../../../ui/lit/lit.js';
8
8
 
9
- // The model returns multiline code blocks in an erroneous way with the language being in new line.
10
- // This renderer takes that into account and correctly updates the parsed multiline token with the language
11
- // correctly identified and stripped from the content.
12
- // Example:
13
- // ```
14
- // css <-- This should have been on the first line.
15
- // * {
16
- // color: red;
17
- // }
18
- // ```
9
+ /**
10
+ * The model returns multiline code blocks in an erroneous way with the language being in new line.
11
+ * This renderer takes that into account and correctly updates the parsed multiline token with the language
12
+ * correctly identified and stripped from the content.
13
+ * Example:
14
+ * ```
15
+ * css <-- This should have been on the first line.
16
+ * * {
17
+ * color: red;
18
+ * }
19
+ * ```
20
+ **/
19
21
  export class MarkdownRendererWithCodeBlock extends MarkdownView.MarkdownView.MarkdownInsightRenderer {
20
22
  override templateForToken(token: Marked.Marked.MarkedToken): Lit.TemplateResult|null {
21
23
  if (token.type === 'code') {
@@ -77,13 +77,12 @@ export interface ViewInput {
77
77
  selectedKey: string|null;
78
78
  editable: boolean;
79
79
  preview: Widget;
80
- onSelect: (event: CustomEvent<HTMLElement|null>) => void;
81
- onSort: (event: CustomEvent<{columnId: string, ascending: boolean}>) => void;
82
- onCreate: (event: CustomEvent<{key: string, value: string}>) => void;
80
+ onSelect: (item: {key: string, value: string}|null) => void;
81
+ onSort: (ascending: boolean) => void;
82
+ onCreate: (key: string, value: string) => void;
83
83
  onReferesh: () => void;
84
- onEdit:
85
- (event: CustomEvent<{node: HTMLElement, columnId: string, valueBeforeEditing: string, newText: string}>) => void;
86
- onDelete: (event: CustomEvent<HTMLElement>) => void;
84
+ onEdit: (key: string, value: string, columnId: string, valueBeforeEditing: string, newText: string) => void;
85
+ onDelete: (key: string) => void;
87
86
  }
88
87
 
89
88
  interface ViewOutput {
@@ -130,12 +129,10 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
130
129
  .name=${`${id}-datagrid-with-preview`}
131
130
  striped
132
131
  style="flex: auto"
133
- @select=${input.onSelect}
134
- @sort=${input.onSort}
132
+ @sort=${(e: CustomEvent<{columnId: string, ascending: boolean}>) => input.onSort(e.detail.ascending)}
135
133
  @refresh=${input.onReferesh}
136
- @create=${input.onCreate}
137
- @edit=${input.onEdit}
138
- @delete=${input.onDelete}
134
+ @create=${(e: CustomEvent<{key: string, value: string}>) => input.onCreate(e.detail.key, e.detail.value)}
135
+ @deselect=${() => input.onSelect(null)}
139
136
  >
140
137
  <table>
141
138
  <tr>
@@ -148,6 +145,10 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
148
145
  </tr>
149
146
  ${repeat(input.items, item => item.key, item => html`
150
147
  <tr data-key=${item.key} data-value=${item.value}
148
+ @select=${() => input.onSelect(item)}
149
+ @edit=${(e: CustomEvent<{columnId: string, valueBeforeEditing: string, newText: string}>) =>
150
+ input.onEdit(item.key, item.value, e.detail.columnId, e.detail.valueBeforeEditing, e.detail.newText)}
151
+ @delete=${() => input.onDelete(item.key)}
151
152
  selected=${(input.selectedKey === item.key) || nothing}>
152
153
  <td>${item.key}</td>
153
154
  <td>${item.value.substr(0, MAX_VALUE_LENGTH)}</td>
@@ -202,27 +203,25 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
202
203
  selectedKey: this.#selectedKey,
203
204
  editable: this.#editable,
204
205
  preview: this.#preview,
205
- onSelect: (event: CustomEvent<HTMLElement|null>) => {
206
- this.#toolbar?.setCanDeleteSelected(Boolean(event.detail));
207
- if (!event.detail) {
206
+ onSelect: (item: {key: string, value: string}|null) => {
207
+ this.#toolbar?.setCanDeleteSelected(Boolean(item));
208
+ if (!item) {
208
209
  void this.#previewEntry(null);
209
210
  } else {
210
- void this.#previewEntry({key: event.detail.dataset.key || '', value: event.detail.dataset.value || ''});
211
+ void this.#previewEntry(item);
211
212
  }
212
213
  },
213
- onSort: (event: CustomEvent<{columnId: string, ascending: boolean}>) => {
214
- this.#isSortOrderAscending = event.detail.ascending;
214
+ onSort: (ascending: boolean) => {
215
+ this.#isSortOrderAscending = ascending;
215
216
  },
216
- onCreate: (event: CustomEvent<{key: string, value: string}>) => {
217
- this.#createCallback(event.detail.key, event.detail.value || '');
217
+ onCreate: (key: string, value: string) => {
218
+ this.#createCallback(key, value);
218
219
  },
219
- onEdit:
220
- (event: CustomEvent<{node: HTMLElement, columnId: string, valueBeforeEditing: string, newText: string}>) => {
221
- this.#editingCallback(
222
- event.detail.node, event.detail.columnId, event.detail.valueBeforeEditing, event.detail.newText);
223
- },
224
- onDelete: (event: CustomEvent<HTMLElement>) => {
225
- this.#deleteCallback(event.detail.dataset.key || '');
220
+ onEdit: (key: string, value: string, columnId: string, valueBeforeEditing: string, newText: string) => {
221
+ this.#editingCallback(key, value, columnId, valueBeforeEditing, newText);
222
+ },
223
+ onDelete: (key: string) => {
224
+ this.#deleteCallback(key);
226
225
  },
227
226
  onReferesh: () => {
228
227
  this.refreshItems();
@@ -316,7 +315,7 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
316
315
  return true;
317
316
  }
318
317
 
319
- #editingCallback(editingNode: HTMLElement, columnIdentifier: string, oldText: string, newText: string): void {
318
+ #editingCallback(key: string, value: string, columnIdentifier: string, oldText: string, newText: string): void {
320
319
  if (!this.isEditAllowed(columnIdentifier, oldText, newText)) {
321
320
  return;
322
321
  }
@@ -324,13 +323,12 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
324
323
  if (typeof oldText === 'string') {
325
324
  this.removeItem(oldText);
326
325
  }
327
- this.setItem(newText, editingNode.dataset.value || '');
328
- this.#removeDupes(newText, editingNode.dataset.value || '');
329
- editingNode.dataset.key = newText;
330
- void this.#previewEntry({key: newText, value: editingNode.dataset.value || ''});
326
+ this.setItem(newText, value);
327
+ this.#removeDupes(newText, value);
328
+ void this.#previewEntry({key: newText, value});
331
329
  } else {
332
- this.setItem(editingNode.dataset.key || '', newText);
333
- void this.#previewEntry({key: editingNode.dataset.key || '', value: newText});
330
+ this.setItem(key, newText);
331
+ void this.#previewEntry({key, value: newText});
334
332
  }
335
333
  }
336
334
 
@@ -102,8 +102,9 @@ export class InterestGroupAccessGrid extends HTMLElement {
102
102
  }
103
103
 
104
104
  #renderGrid(): Lit.TemplateResult {
105
+ // clang-format off
105
106
  return html`
106
- <devtools-data-grid @select=${this.#onSelect} striped inline>
107
+ <devtools-data-grid striped inline>
107
108
  <table>
108
109
  <tr>
109
110
  <th id="event-time" sortable weight="10">${i18nString(UIStrings.eventTime)}</td>
@@ -111,8 +112,8 @@ export class InterestGroupAccessGrid extends HTMLElement {
111
112
  <th id="event-group-owner" sortable weight="10">${i18nString(UIStrings.groupOwner)}</td>
112
113
  <th id="event-group-name" sortable weight="10">${i18nString(UIStrings.groupName)}</td>
113
114
  </tr>
114
- ${this.#datastores.map((event, index) => html`
115
- <tr data-index=${index}>
115
+ ${this.#datastores.map(event => html`
116
+ <tr @select=${() => this.dispatchEvent(new CustomEvent('select', {detail: event}))}>
116
117
  <td>${new Date(1e3 * event.accessTime).toLocaleString()}</td>
117
118
  <td>${event.type}</td>
118
119
  <td>${event.ownerOrigin}</td>
@@ -120,14 +121,8 @@ export class InterestGroupAccessGrid extends HTMLElement {
120
121
  </tr>
121
122
  `)}
122
123
  </table>
123
- </devtools-data-grid>
124
- `;
125
- }
126
-
127
- #onSelect(event: CustomEvent<HTMLElement|null>): void {
128
- if (event.detail) {
129
- this.dispatchEvent(new CustomEvent('select', {detail: this.#datastores[Number(event.detail.dataset.index)]}));
130
- }
124
+ </devtools-data-grid>`;
125
+ // clang-format on
131
126
  }
132
127
  }
133
128
 
@@ -109,11 +109,13 @@ customElements.define('devtools-resources-origin-trial-tree-view-badge', Badge);
109
109
 
110
110
  type TreeNode<DataType> = TreeOutline.TreeOutlineUtils.TreeNode<DataType>;
111
111
 
112
- // The Origin Trial Tree has 4 levels of content:
113
- // - Origin Trial (has multiple Origin Trial tokens)
114
- // - Origin Trial Token (has only 1 raw token text)
115
- // - Fields in Origin Trial Token
116
- // - Raw Origin Trial Token text (folded because the content is long)
112
+ /**
113
+ * The Origin Trial Tree has 4 levels of content:
114
+ * - Origin Trial (has multiple Origin Trial tokens)
115
+ * - Origin Trial Token (has only 1 raw token text)
116
+ * - Fields in Origin Trial Token
117
+ * - Raw Origin Trial Token text (folded because the content is long)
118
+ **/
117
119
  export type OriginTrialTreeNodeData = Protocol.Page.OriginTrial|Protocol.Page.OriginTrialTokenWithStatus|string;
118
120
 
119
121
  function constructOriginTrialTree(originTrial: Protocol.Page.OriginTrial): TreeNode<OriginTrialTreeNodeData> {
@@ -79,6 +79,7 @@ export function renderIconLink(
79
79
  <devtools-button
80
80
  .iconName=${iconName}
81
81
  title=${title}
82
+ aria-label=${title}
82
83
  .variant=${Buttons.Button.Variant.ICON}
83
84
  .size=${Buttons.Button.Size.SMALL}
84
85
  @click=${clickHandler}
@@ -58,7 +58,7 @@ export interface ReportsGridData {
58
58
  export interface ViewInput {
59
59
  reports: Protocol.Network.ReportingApiReport[];
60
60
  protocolMonitorExperimentEnabled: boolean;
61
- onSelect: (e: CustomEvent<HTMLElement|null>) => void;
61
+ onSelect: (id: string) => void;
62
62
  }
63
63
 
64
64
  export const DEFAULT_VIEW = (input: ViewInput, output: undefined, target: HTMLElement): void => {
@@ -69,7 +69,7 @@ export const DEFAULT_VIEW = (input: ViewInput, output: undefined, target: HTMLEl
69
69
  <div class="reporting-container" jslog=${VisualLogging.section('reports')}>
70
70
  <div class="reporting-header">${i18n.i18n.lockedString('Reports')}</div>
71
71
  ${input.reports.length > 0 ? html`
72
- <devtools-data-grid striped @select=${input.onSelect}>
72
+ <devtools-data-grid striped>
73
73
  <table>
74
74
  <tr>
75
75
  ${input.protocolMonitorExperimentEnabled ? html`
@@ -91,7 +91,7 @@ export const DEFAULT_VIEW = (input: ViewInput, output: undefined, target: HTMLEl
91
91
  <th id="body" weight="20">${i18n.i18n.lockedString('Body')}</th>
92
92
  </tr>
93
93
  ${input.reports.map(report => html`
94
- <tr data-id=${report.id}>
94
+ <tr @select=${() =>input.onSelect(report.id)}>
95
95
  ${input.protocolMonitorExperimentEnabled ? html`<td>${report.id}</td>` : ''}
96
96
  <td>${report.initiatorUrl}</td>
97
97
  <td>${report.type}</td>
@@ -133,17 +133,11 @@ export class ReportsGrid extends UI.Widget.Widget {
133
133
  this.requestUpdate();
134
134
  }
135
135
 
136
- #onSelect = (e: CustomEvent<HTMLElement|null>): void => {
137
- if (e.detail?.dataset.id) {
138
- this.onReportSelected(e.detail.dataset.id);
139
- }
140
- };
141
-
142
136
  override performUpdate(): void {
143
137
  const viewInput = {
144
138
  reports: this.reports,
145
139
  protocolMonitorExperimentEnabled: this.#protocolMonitorExperimentEnabled,
146
- onSelect: this.#onSelect,
140
+ onSelect: this.onReportSelected,
147
141
  };
148
142
  this.#view(viewInput, undefined, this.contentElement);
149
143
  }
@@ -84,7 +84,7 @@ export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
84
84
 
85
85
  export interface ViewInput {
86
86
  events: Protocol.Storage.SharedStorageAccessedEvent[];
87
- onSelect: (event: CustomEvent<HTMLElement>) => void;
87
+ onSelect: (event: Protocol.Storage.SharedStorageAccessedEvent) => void;
88
88
  }
89
89
  export type View = (input: ViewInput, output: object, target: HTMLElement) => void;
90
90
  export const DEFAULT_VIEW: View = (input, _output, target) => {
@@ -108,7 +108,7 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
108
108
  <devtools-icon class="info-icon medium" name="info"
109
109
  title=${i18nString(UIStrings.allSharedStorageEvents)}>
110
110
  </devtools-icon>
111
- <devtools-data-grid striped inline @select=${input.onSelect}>
111
+ <devtools-data-grid striped inline>
112
112
  <table>
113
113
  <thead>
114
114
  <tr>
@@ -133,8 +133,8 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
133
133
  </tr>
134
134
  </thead>
135
135
  <tbody>
136
- ${input.events.map((event, index) => html`
137
- <tr data-index=${index}>
136
+ ${input.events.map(event => html`
137
+ <tr @select=${() =>input.onSelect(event)}>
138
138
  <td data-value=${event.accessTime}>
139
139
  ${new Date(1e3 * event.accessTime).toLocaleString()}
140
140
  </td>
@@ -181,16 +181,8 @@ export class SharedStorageAccessGrid extends UI.Widget.Widget {
181
181
  this.#view(
182
182
  {
183
183
  events: this.#events,
184
- onSelect: this.#onSelectEvent.bind(this),
184
+ onSelect: this.#onSelect.bind(this),
185
185
  },
186
186
  {}, this.contentElement);
187
187
  }
188
-
189
- #onSelectEvent(event: CustomEvent<HTMLElement>): void {
190
- const index = parseInt(event.detail?.dataset.index || '', 10);
191
- const datastore = isNaN(index) ? undefined : this.#events[index];
192
- if (datastore) {
193
- this.#onSelect(datastore);
194
- }
195
- }
196
188
  }
@@ -99,7 +99,7 @@ export interface MismatchedPreloadingGridData {
99
99
  rows: MismatchedPreloadingGridRow[];
100
100
  }
101
101
 
102
- // Grid component to show prerendering attempts.
102
+ /** Grid component to show prerendering attempts. **/
103
103
  export class MismatchedPreloadingGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<UI.Widget.VBox> {
104
104
  readonly #shadow = this.attachShadow({mode: 'open'});
105
105
  #data: MismatchedPreloadingGridData|null = null;
@@ -54,7 +54,7 @@ export interface PreloadingGridRow {
54
54
  ruleSets: Protocol.Preload.RuleSet[];
55
55
  }
56
56
 
57
- // Grid component to show prerendering attempts.
57
+ /** Grid component to show prerendering attempts. **/
58
58
  export class PreloadingGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<UI.Widget.VBox> {
59
59
 
60
60
  readonly #shadow = this.attachShadow({mode: 'open'});
@@ -81,7 +81,7 @@ export class PreloadingGrid extends LegacyWrapper.LegacyWrapper.WrappableCompone
81
81
  render(html`
82
82
  <style>${preloadingGridStyles}</style>
83
83
  <div class="preloading-container">
84
- <devtools-data-grid striped @select=${this.#onPreloadingGridCellFocused}>
84
+ <devtools-data-grid striped>
85
85
  <table>
86
86
  <tr>
87
87
  <th id="url" weight="40" sortable>${i18n.i18n.lockedString('URL')}</th>
@@ -97,7 +97,7 @@ export class PreloadingGrid extends LegacyWrapper.LegacyWrapper.WrappableCompone
97
97
  (prerenderStatus === PreloadingStatus.FAILURE &&
98
98
  (prefetchStatus === PreloadingStatus.READY || prefetchStatus === PreloadingStatus.SUCCESS));
99
99
  const hasError = row.pipeline.getOriginallyTriggered().status === PreloadingStatus.FAILURE;
100
- return html`<tr data-id=${row.id}>
100
+ return html`<tr @select=${() => this.dispatchEvent(new CustomEvent('select', {detail: row.id}))}>
101
101
  <td title=${attempt.key.url}>${this.#urlShort(row, securityOrigin)}</td>
102
102
  <td>${capitalizedAction(attempt.action)}</td>
103
103
  <td>${row.ruleSets.length === 0 ? '' : ruleSetTagOrLocationShort(row.ruleSets[0], pageURL)}</td>
@@ -125,10 +125,6 @@ export class PreloadingGrid extends LegacyWrapper.LegacyWrapper.WrappableCompone
125
125
  // clang-format on
126
126
  }
127
127
 
128
- #onPreloadingGridCellFocused(event: CustomEvent<HTMLElement>): void {
129
- this.dispatchEvent(new CustomEvent('select', {detail: event.detail.dataset.id}));
130
- }
131
-
132
128
  // Shorten URL if a preloading attempt is same-origin.
133
129
  #urlShort(row: PreloadingGridRow, securityOrigin: string|null): string {
134
130
  const url = row.pipeline.getOriginallyTriggered().key.url;
@@ -445,7 +445,7 @@ export const PrefetchReasonDescription: Record<string, {name: () => Platform.UIS
445
445
  PrefetchEvictedAfterBrowsingDataRemoved: {name: i18nLazyString(UIStrings.PrefetchEvictedAfterBrowsingDataRemoved)},
446
446
  };
447
447
 
448
- // Decoding PrefetchFinalStatus prefetchAttempt to failure description.
448
+ /** Decoding PrefetchFinalStatus prefetchAttempt to failure description. **/
449
449
  export function prefetchFailureReason({prefetchStatus}: SDK.PreloadingModel.PrefetchAttempt): string|null {
450
450
  // If you face an error on rolling CDP changes, see
451
451
  // https://docs.google.com/document/d/1PnrfowsZMt62PX1EvvTp2Nqs3ji1zrklrAEe1JYbkTk
@@ -534,7 +534,7 @@ export function prefetchFailureReason({prefetchStatus}: SDK.PreloadingModel.Pref
534
534
  }
535
535
  }
536
536
 
537
- // Detailed failure reason for PrerenderFinalStatus.
537
+ /** Detailed failure reason for PrerenderFinalStatus. **/
538
538
  export function prerenderFailureReason(attempt: SDK.PreloadingModel.PrerenderAttempt): string|null {
539
539
  // If you face an error on rolling CDP changes, see
540
540
  // https://docs.google.com/document/d/1PnrfowsZMt62PX1EvvTp2Nqs3ji1zrklrAEe1JYbkTk
@@ -63,7 +63,7 @@ export interface RuleSetGridRow {
63
63
  preloadsStatusSummary: string;
64
64
  }
65
65
 
66
- // Grid component to show SpeculationRules rule sets.
66
+ /** Grid component to show SpeculationRules rule sets. **/
67
67
  export class RuleSetGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<UI.Widget.VBox> {
68
68
  readonly #shadow = this.attachShadow({mode: 'open'});
69
69
  #data: RuleSetGridData|null = null;
@@ -128,7 +128,7 @@ export class RuleSetGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<
128
128
  Lit.render(html`
129
129
  <style>${ruleSetGridStyles}</style>
130
130
  <div class="ruleset-container" jslog=${VisualLogging.pane('preloading-rules')}>
131
- <devtools-data-grid striped @select=${this.#onRowSelected}>
131
+ <devtools-data-grid striped>
132
132
  <table>
133
133
  <tr>
134
134
  <th id="rule-set" weight="20" sortable>
@@ -143,7 +143,7 @@ export class RuleSetGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<
143
143
  const revealInElements = ruleSet.backendNodeId !== undefined;
144
144
  const revealInNetwork = ruleSet.url !== undefined && ruleSet.requestId;
145
145
  return html`
146
- <tr data-id=${ruleSet.id}>
146
+ <tr @select=${() => this.dispatchEvent(new CustomEvent('select', {detail: ruleSet.id}))}>
147
147
  <td>
148
148
  ${revealInElements || revealInNetwork ? html`
149
149
  <button class="link" role="link"
@@ -204,13 +204,6 @@ export class RuleSetGrid extends LegacyWrapper.LegacyWrapper.WrappableComponent<
204
204
  `, this.#shadow, {host: this});
205
205
  // clang-format on
206
206
  }
207
-
208
- #onRowSelected(event: CustomEvent<HTMLElement>): void {
209
- const ruleSetId = event.detail.dataset.id;
210
- if (ruleSetId !== undefined) {
211
- this.dispatchEvent(new CustomEvent('select', {detail: ruleSetId}));
212
- }
213
- }
214
207
  }
215
208
 
216
209
  customElements.define('devtools-resources-ruleset-grid', RuleSetGrid);
@@ -138,8 +138,10 @@ export const enum UsedKind {
138
138
  NO_PRELOADS = 'NoPreloads',
139
139
  }
140
140
 
141
- // TODO(kenoss): Rename this class and file once https://crrev.com/c/4933567 landed.
142
- // This also shows summary of speculations initiated by this page.
141
+ /**
142
+ * TODO(kenoss): Rename this class and file once https://crrev.com/c/4933567 landed.
143
+ * This also shows summary of speculations initiated by this page.
144
+ **/
143
145
  export class UsedPreloadingView extends LegacyWrapper.LegacyWrapper.WrappableComponent<UI.Widget.VBox> {
144
146
  readonly #shadow = this.attachShadow({mode: 'open'});
145
147
  #data: UsedPreloadingViewData = {
@@ -101,11 +101,13 @@ function maybeRetrieveContextTypes<T = unknown>(
101
101
 
102
102
  let loadedSourcesModule: (typeof Sources|undefined);
103
103
 
104
- // The sources module is imported here because the view with id `navigator-network`
105
- // is implemented by `NetworkNavigatorView` in sources. It cannot be registered
106
- // in the sources module as it belongs to the shell app and thus all apps
107
- // that extend from shell will have such view registered. This would cause a
108
- // collision with node_app as a separate view with the same id is registered in it.
104
+ /**
105
+ * The sources module is imported here because the view with id `navigator-network`
106
+ * is implemented by `NetworkNavigatorView` in sources. It cannot be registered
107
+ * in the sources module as it belongs to the shell app and thus all apps
108
+ * that extend from shell will have such view registered. This would cause a
109
+ * collision with node_app as a separate view with the same id is registered in it.
110
+ **/
109
111
  async function loadSourcesModule(): Promise<typeof Sources> {
110
112
  if (!loadedSourcesModule) {
111
113
  loadedSourcesModule = await import('../sources/sources.js');