chrome-devtools-frontend 1.0.1522585 → 1.0.1525561

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 (357) 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/policy/slow-close.md +22 -19
  9. package/docs/ui_engineering.md +22 -0
  10. package/front_end/Tests.js +1 -1
  11. package/front_end/core/common/Color.ts +13 -9
  12. package/front_end/core/common/ColorConverter.ts +9 -7
  13. package/front_end/core/common/Gzip.ts +1 -1
  14. package/front_end/core/common/MapWithDefault.ts +5 -3
  15. package/front_end/core/common/ResourceType.ts +0 -12
  16. package/front_end/core/common/ReturnToPanel.ts +6 -4
  17. package/front_end/core/common/Trie.ts +4 -2
  18. package/front_end/core/host/AidaClient.ts +3 -3
  19. package/front_end/core/host/GdpClient.ts +7 -5
  20. package/front_end/core/host/InspectorFrontendHostAPI.ts +7 -5
  21. package/front_end/core/host/Platform.ts +5 -3
  22. package/front_end/core/host/UserMetrics.ts +6 -4
  23. package/front_end/core/platform/ArrayUtilities.ts +1 -1
  24. package/front_end/core/platform/StringUtilities.ts +34 -31
  25. package/front_end/core/root/Runtime.ts +1 -1
  26. package/front_end/core/sdk/CSSMetadata.ts +6 -4
  27. package/front_end/core/sdk/CSSPropertyParser.ts +17 -13
  28. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +19 -13
  29. package/front_end/core/sdk/ChildTargetManager.ts +35 -0
  30. package/front_end/core/sdk/DOMModel.ts +1 -1
  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/{models/source_map_scopes → core/sdk}/ScopeTreeCache.ts +8 -7
  42. package/front_end/core/sdk/ScreenCaptureModel.ts +24 -20
  43. package/front_end/core/sdk/Target.ts +7 -1
  44. package/front_end/core/sdk/TraceObject.ts +2 -2
  45. package/front_end/core/sdk/sdk.ts +2 -0
  46. package/front_end/entrypoints/formatter_worker/FormatterActions.ts +7 -0
  47. package/front_end/entrypoints/formatter_worker/ScopeParser.ts +15 -12
  48. package/front_end/entrypoints/formatter_worker/Substitute.ts +6 -4
  49. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +24 -16
  50. package/front_end/entrypoints/inspector_main/OutermostTargetSelector.ts +2 -1
  51. package/front_end/entrypoints/main/MainImpl.ts +6 -4
  52. package/front_end/generated/InspectorBackendCommands.js +2 -2
  53. package/front_end/generated/protocol-mapping.d.ts +3 -2
  54. package/front_end/generated/protocol-proxy-api.d.ts +3 -1
  55. package/front_end/generated/protocol.ts +7 -1
  56. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +55 -14
  57. package/front_end/models/ai_assistance/agents/StylingAgent.ts +83 -222
  58. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +23 -0
  59. package/front_end/models/ai_assistance/performance/AIContext.ts +19 -4
  60. package/front_end/models/ai_code_completion/AiCodeCompletion.ts +4 -2
  61. package/front_end/models/autofill_manager/AutofillManager.ts +4 -2
  62. package/front_end/models/cpu_profile/CPUProfileDataModel.ts +1 -1
  63. package/front_end/models/crux-manager/CrUXManager.ts +1 -1
  64. package/front_end/models/extensions/HostUrlPattern.ts +13 -5
  65. package/front_end/models/formatter/FormatterWorkerPool.ts +1 -1
  66. package/front_end/models/issues_manager/CookieDeprecationMetadataIssue.ts +1 -1
  67. package/front_end/models/issues_manager/CookieIssue.ts +2 -2
  68. package/front_end/models/issues_manager/MarkdownIssueDescription.ts +1 -1
  69. package/front_end/models/issues_manager/SharedDictionaryIssue.ts +20 -0
  70. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorInvalidTTLField.md +1 -0
  71. package/front_end/models/issues_manager/descriptions/sharedDictionaryWriteErrorNonIntegerTTLField.md +1 -0
  72. package/front_end/models/javascript_metadata/NativeFunctions.js +8 -0
  73. package/front_end/models/network_time_calculator/Calculator.ts +4 -2
  74. package/front_end/models/network_time_calculator/RequestTimeRanges.ts +6 -4
  75. package/front_end/models/source_map_scopes/NamesResolver.ts +8 -8
  76. package/front_end/models/source_map_scopes/source_map_scopes.ts +0 -2
  77. package/front_end/models/text_utils/ContentProvider.ts +6 -4
  78. package/front_end/models/trace/extras/TraceTree.ts +1 -1
  79. package/front_end/models/trace/handlers/FramesHandler.ts +7 -5
  80. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +13 -7
  81. package/front_end/models/trace/handlers/MetaHandler.ts +16 -14
  82. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +20 -8
  83. package/front_end/models/trace/handlers/helpers.ts +1 -1
  84. package/front_end/models/trace/handlers/types.ts +23 -19
  85. package/front_end/models/trace/helpers/Timing.ts +4 -2
  86. package/front_end/models/trace/helpers/Trace.ts +8 -4
  87. package/front_end/models/trace/insights/DocumentLatency.ts +1 -1
  88. package/front_end/models/trace/insights/INPBreakdown.ts +13 -2
  89. package/front_end/models/trace/insights/LCPBreakdown.ts +14 -2
  90. package/front_end/models/trace/insights/NetworkDependencyTree.ts +2 -2
  91. package/front_end/models/trace/types/File.ts +12 -8
  92. package/front_end/models/trace/types/Timing.ts +1 -1
  93. package/front_end/models/trace/types/TraceEvents.ts +37 -23
  94. package/front_end/models/trace_source_maps_resolver/SourceMapsResolver.ts +1 -1
  95. package/front_end/panels/ai_assistance/components/MarkdownRendererWithCodeBlock.ts +12 -10
  96. package/front_end/panels/application/KeyValueStorageItemsView.ts +31 -33
  97. package/front_end/panels/application/components/InterestGroupAccessGrid.ts +6 -11
  98. package/front_end/panels/application/components/OriginTrialTreeView.ts +7 -5
  99. package/front_end/panels/application/components/PermissionsPolicySection.ts +1 -0
  100. package/front_end/panels/application/components/ReportsGrid.ts +4 -10
  101. package/front_end/panels/application/components/SharedStorageAccessGrid.ts +5 -13
  102. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +1 -1
  103. package/front_end/panels/application/preloading/components/PreloadingGrid.ts +3 -7
  104. package/front_end/panels/application/preloading/components/PreloadingString.ts +2 -2
  105. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +3 -10
  106. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +4 -2
  107. package/front_end/panels/browser_debugger/browser_debugger-meta.ts +7 -5
  108. package/front_end/panels/changes/ChangesSidebar.ts +105 -96
  109. package/front_end/panels/changes/ChangesView.ts +69 -69
  110. package/front_end/panels/changes/CombinedDiffView.ts +1 -1
  111. package/front_end/panels/changes/changesSidebar.css +3 -0
  112. package/front_end/panels/changes/changesView.css +4 -0
  113. package/front_end/panels/console/ConsoleView.ts +2 -2
  114. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +22 -35
  115. package/front_end/panels/elements/ComputedStyleWidget.ts +1 -1
  116. package/front_end/panels/elements/ElementStatePaneWidget.ts +12 -0
  117. package/front_end/panels/elements/ElementsTreeElement.ts +9 -5
  118. package/front_end/panels/elements/ElementsTreeOutline.ts +11 -8
  119. package/front_end/panels/elements/PropertyRenderer.ts +19 -15
  120. package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -4
  121. package/front_end/panels/elements/StylesSidebarPane.ts +2 -2
  122. package/front_end/panels/elements/components/AccessibilityTreeNode.ts +4 -2
  123. package/front_end/panels/elements/components/AdornerManager.ts +5 -3
  124. package/front_end/panels/lighthouse/LighthouseController.ts +5 -0
  125. package/front_end/panels/linear_memory_inspector/LinearMemoryInspectorPane.ts +43 -46
  126. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +260 -157
  127. package/front_end/panels/linear_memory_inspector/components/linearMemoryInspector.css +28 -21
  128. package/front_end/panels/media/PlayerPropertiesView.ts +1 -1
  129. package/front_end/panels/network/NetworkDataGridNode.ts +2 -44
  130. package/front_end/panels/network/NetworkLogView.ts +6 -4
  131. package/front_end/panels/network/RequestPreviewView.ts +0 -7
  132. package/front_end/panels/network/components/RequestHeadersView.ts +0 -6
  133. package/front_end/panels/network/components/components.ts +0 -2
  134. package/front_end/panels/profiler/HeapSnapshotDataGrids.ts +1 -1
  135. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +4 -2
  136. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +12 -19
  137. package/front_end/panels/search/SearchResultsPane.ts +2 -3
  138. package/front_end/panels/security/IPProtectionView.ts +1 -1
  139. package/front_end/panels/settings/emulation/components/userAgentClientHintsForm.css +4 -0
  140. package/front_end/panels/settings/emulation/utils/StructuredHeaders.ts +45 -37
  141. package/front_end/panels/sources/BreakpointsViewUtils.ts +11 -9
  142. package/front_end/panels/sources/DebuggerPlugin.ts +8 -4
  143. package/front_end/panels/sources/SourcesPanel.ts +1 -1
  144. package/front_end/panels/sources/UISourceCodeFrame.ts +1 -1
  145. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +4 -2
  146. package/front_end/panels/timeline/CountersGraph.ts +12 -5
  147. package/front_end/panels/timeline/EasterEgg.d.ts +5 -3
  148. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +8 -6
  149. package/front_end/panels/timeline/ModificationsManager.ts +5 -3
  150. package/front_end/panels/timeline/ThreadAppender.ts +7 -5
  151. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +10 -8
  152. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +1 -1
  153. package/front_end/panels/timeline/TimelinePanel.ts +10 -8
  154. package/front_end/panels/timeline/TimelineSelection.ts +4 -2
  155. package/front_end/panels/timeline/TimelineUIUtils.ts +5 -3
  156. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +6 -4
  157. package/front_end/panels/timeline/components/Utils.ts +1 -1
  158. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +5 -3
  159. package/front_end/panels/timeline/utils/Helpers.ts +1 -1
  160. package/front_end/panels/utils/utils.ts +1 -7
  161. package/front_end/services/trace_bounds/TraceBounds.ts +4 -2
  162. package/front_end/services/tracing/PerformanceTracing.ts +1 -1
  163. package/front_end/third_party/chromium/README.chromium +1 -1
  164. package/front_end/third_party/codemirror.next/chunk/codemirror.js +1 -1
  165. package/front_end/third_party/codemirror.next/chunk/codemirror.js.map +1 -1
  166. package/front_end/third_party/codemirror.next/chunk/php.js +1 -1
  167. package/front_end/third_party/codemirror.next/chunk/php.js.map +1 -1
  168. package/front_end/third_party/codemirror.next/package.json +3 -2
  169. package/front_end/third_party/puppeteer/README.chromium +2 -2
  170. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts +8 -10
  171. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.d.ts.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js +8 -10
  173. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Dialog.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +28 -30
  175. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +27 -29
  177. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +34 -38
  179. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +34 -38
  181. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +8 -1
  183. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +12 -14
  185. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +92 -108
  187. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  188. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +33 -39
  189. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  190. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +5 -3
  192. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  196. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts +4 -2
  197. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +14 -5
  199. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
  200. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
  201. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  202. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +12 -6
  203. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  204. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +24 -2
  206. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  207. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -2
  208. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  209. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  210. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
  211. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  212. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
  213. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
  215. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts +6 -8
  217. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js +6 -8
  219. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Device.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  221. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts +1 -1
  224. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +6 -3
  226. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts +5 -7
  228. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +5 -7
  230. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  232. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  233. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  235. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +188 -224
  236. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +140 -166
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts +8 -10
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.d.ts.map +1 -1
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js +8 -10
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Dialog.js.map +1 -1
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +28 -30
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +27 -29
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +34 -38
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +34 -38
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +8 -1
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +12 -14
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +92 -108
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +33 -39
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +5 -3
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts +4 -2
  264. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +15 -6
  266. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
  268. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +12 -6
  270. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  272. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +24 -2
  273. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  274. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  275. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  276. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
  277. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts +13 -22
  279. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.d.ts.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js +13 -22
  281. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/PredefinedNetworkConditions.js.map +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts +6 -8
  283. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.d.ts.map +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js +6 -8
  285. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Device.js.map +1 -1
  286. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  287. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +6 -3
  291. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  292. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts +5 -7
  293. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  294. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +5 -7
  295. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
  296. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  297. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  298. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  299. package/front_end/third_party/puppeteer/package/lib/types.d.ts +188 -224
  300. package/front_end/third_party/puppeteer/package/package.json +3 -3
  301. package/front_end/third_party/puppeteer/package/src/api/Dialog.ts +8 -10
  302. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +27 -29
  303. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +34 -38
  304. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +17 -14
  305. package/front_end/third_party/puppeteer/package/src/api/Page.ts +92 -108
  306. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +5 -3
  307. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +5 -1
  308. package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +28 -3
  309. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +16 -7
  310. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +28 -2
  311. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
  312. package/front_end/third_party/puppeteer/package/src/cdp/PredefinedNetworkConditions.ts +13 -22
  313. package/front_end/third_party/puppeteer/package/src/common/Device.ts +6 -8
  314. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  315. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +6 -3
  316. package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +5 -7
  317. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  318. package/front_end/ui/components/chrome_link/ChromeLink.ts +4 -2
  319. package/front_end/ui/components/dialogs/Dialog.ts +13 -9
  320. package/front_end/ui/components/docs/linear_memory_inspector/basic.ts +21 -9
  321. package/front_end/ui/components/highlighting/HighlightElement.ts +77 -0
  322. package/front_end/ui/components/highlighting/HighlightManager.ts +58 -1
  323. package/front_end/ui/components/highlighting/highlighting.ts +2 -0
  324. package/front_end/ui/components/markdown_view/MarkdownImagesMap.ts +5 -3
  325. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +5 -3
  326. package/front_end/ui/components/menus/SelectMenu.ts +6 -4
  327. package/front_end/ui/components/survey_link/SurveyLink.ts +4 -2
  328. package/front_end/ui/components/text_editor/config.ts +10 -6
  329. package/front_end/ui/components/text_editor/javascript.ts +8 -4
  330. package/front_end/ui/components/tooltips/Tooltip.ts +22 -5
  331. package/front_end/ui/legacy/ForwardedInputEventHandler.ts +4 -2
  332. package/front_end/ui/legacy/GlassPane.ts +1 -1
  333. package/front_end/ui/legacy/SettingsUI.ts +1 -5
  334. package/front_end/ui/legacy/Treeoutline.ts +12 -33
  335. package/front_end/ui/legacy/UIUtils.ts +19 -1
  336. package/front_end/ui/legacy/components/color_picker/Spectrum.ts +12 -10
  337. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +30 -32
  338. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +1 -1
  339. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +25 -25
  340. package/front_end/ui/legacy/components/data_grid/dataGrid.css +5 -0
  341. package/front_end/ui/legacy/components/inline_editor/AnimationTimingModel.ts +4 -2
  342. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +4 -2
  343. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +8 -6
  344. package/front_end/ui/legacy/components/perf_ui/PieChart.ts +6 -4
  345. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +3 -3
  346. package/front_end/ui/legacy/components/source_frame/StreamingContentHexView.ts +18 -20
  347. package/front_end/ui/legacy/components/source_frame/XMLView.ts +22 -16
  348. package/front_end/ui/legacy/components/source_frame/xmlView.css +0 -2
  349. package/front_end/ui/legacy/components/utils/Linkifier.ts +6 -4
  350. package/front_end/ui/visual_logging/Debugging.ts +10 -6
  351. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -3
  352. package/inspector_overlay/common.ts +5 -3
  353. package/inspector_overlay/highlight_grid_common.ts +1 -1
  354. package/package.json +1 -1
  355. package/front_end/Images/src/bundle.svg +0 -3
  356. package/front_end/panels/network/components/WebBundleInfoView.css +0 -27
  357. package/front_end/panels/network/components/WebBundleInfoView.ts +0 -95
@@ -85,8 +85,10 @@ export function extractOriginFromTrace(firstNavigationURL: string): string|null
85
85
  }
86
86
 
87
87
  export type EventsInThread<T extends Types.Events.Event> = Map<Types.Events.ThreadID, T[]>;
88
- // Each thread contains events. Events indicate the thread and process IDs, which are
89
- // used to store the event in the correct process thread entry below.
88
+ /**
89
+ * Each thread contains events. Events indicate the thread and process IDs, which are
90
+ * used to store the event in the correct process thread entry below.
91
+ **/
90
92
  export function addEventToProcessThread<T extends Types.Events.Event>(
91
93
  event: T,
92
94
  eventsInProcessThread: Map<Types.Events.ProcessID, EventsInThread<T>>,
@@ -822,8 +824,10 @@ export function extractSampleTraceId(event: Types.Events.Event): number|null {
822
824
  return event.args?.sampleTraceId ?? event.args?.data?.sampleTraceId ?? null;
823
825
  }
824
826
 
825
- // This exactly matches Trace.Styles.visibleTypes. See the runtime verification in maybeInitStylesMap.
826
- // TODO(crbug.com/410884528)
827
+ /**
828
+ * This exactly matches Trace.Styles.visibleTypes. See the runtime verification in maybeInitStylesMap.
829
+ * TODO(crbug.com/410884528)
830
+ **/
827
831
  export const VISIBLE_TRACE_EVENT_TYPES = new Set<Types.Events.Name>([
828
832
  Types.Events.Name.ABORT_POST_TASK_CALLBACK,
829
833
  Types.Events.Name.ANIMATION,
@@ -110,7 +110,7 @@ function getServerResponseTime(request: Types.Events.SyntheticNetworkRequest): T
110
110
  return null;
111
111
  }
112
112
 
113
- const ms = Helpers.Timing.microToMilli(request.args.data.syntheticData.waiting);
113
+ const ms = Helpers.Timing.microToMilli(request.args.data.syntheticData.serverResponseTime);
114
114
  return Math.round(ms) as Types.Timing.Milli;
115
115
  }
116
116
 
@@ -3,7 +3,7 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import * as i18n from '../../../core/i18n/i18n.js';
6
- import type * as Handlers from '../handlers/handlers.js';
6
+ import * as Handlers from '../handlers/handlers.js';
7
7
  import * as Helpers from '../helpers/helpers.js';
8
8
  import type {SyntheticInteractionPair} from '../types/TraceEvents.js';
9
9
  import type * as Types from '../types/types.js';
@@ -67,13 +67,24 @@ export function isINPBreakdownInsight(insight: InsightModel): insight is INPBrea
67
67
  }
68
68
 
69
69
  function finalize(partialModel: PartialInsightModel<INPBreakdownInsightModel>): INPBreakdownInsightModel {
70
+ let state: INPBreakdownInsightModel['state'] = 'pass';
71
+ if (partialModel.longestInteractionEvent) {
72
+ const classification = Handlers.ModelHandlers.UserInteractions.scoreClassificationForInteractionToNextPaint(
73
+ partialModel.longestInteractionEvent.dur);
74
+ if (classification === Handlers.ModelHandlers.PageLoadMetrics.ScoreClassification.GOOD) {
75
+ state = 'informative';
76
+ } else {
77
+ state = 'fail';
78
+ }
79
+ }
80
+
70
81
  return {
71
82
  insightKey: InsightKeys.INP_BREAKDOWN,
72
83
  strings: UIStrings,
73
84
  title: i18nString(UIStrings.title),
74
85
  description: i18nString(UIStrings.description),
75
86
  category: InsightCategory.INP,
76
- state: partialModel.longestInteractionEvent ? 'informative' : 'pass',
87
+ state,
77
88
  ...partialModel,
78
89
  };
79
90
  }
@@ -65,7 +65,7 @@ export const UIStrings = {
65
65
  const str_ = i18n.i18n.registerUIStrings('models/trace/insights/LCPBreakdown.ts', UIStrings);
66
66
  export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
67
67
 
68
- // A TraceWindow plus its UIString.
68
+ /** A TraceWindow plus its UIString. **/
69
69
  export type Subpart = Types.Timing.TraceWindowMicro&{label: Common.UIString.LocalizedString};
70
70
  interface LCPSubparts {
71
71
  /**
@@ -180,13 +180,25 @@ function finalize(partialModel: PartialInsightModel<LCPBreakdownInsightModel>):
180
180
  if (partialModel.lcpRequest) {
181
181
  relatedEvents.push(partialModel.lcpRequest);
182
182
  }
183
+
184
+ let state: LCPBreakdownInsightModel['state'] = 'pass';
185
+ if (partialModel.lcpMs !== undefined) {
186
+ const classification = Handlers.ModelHandlers.PageLoadMetrics.scoreClassificationForLargestContentfulPaint(
187
+ Helpers.Timing.milliToMicro(partialModel.lcpMs));
188
+ if (classification === Handlers.ModelHandlers.PageLoadMetrics.ScoreClassification.GOOD) {
189
+ state = 'informative';
190
+ } else {
191
+ state = 'fail';
192
+ }
193
+ }
194
+
183
195
  return {
184
196
  insightKey: InsightKeys.LCP_BREAKDOWN,
185
197
  strings: UIStrings,
186
198
  title: i18nString(UIStrings.title),
187
199
  description: i18nString(UIStrings.description),
188
200
  category: InsightCategory.LCP,
189
- state: partialModel.lcpEvent || partialModel.lcpRequest ? 'informative' : 'pass',
201
+ state,
190
202
  ...partialModel,
191
203
  relatedEvents,
192
204
  };
@@ -458,7 +458,7 @@ export function handleLinkResponseHeader(linkHeaderValue: string): Array<{url: s
458
458
  return preconnectedOrigins;
459
459
  }
460
460
 
461
- // Export the function for test purpose.
461
+ /** Export the function for test purpose. **/
462
462
  export function generatePreconnectedOrigins(
463
463
  data: Handlers.Types.HandlerData, context: InsightSetContextWithNavigation,
464
464
  contextRequests: Types.Events.SyntheticNetworkRequest[],
@@ -584,7 +584,7 @@ function candidateRequestsByOrigin(
584
584
  return origins;
585
585
  }
586
586
 
587
- // Export the function for test purpose.
587
+ /** Export the function for test purpose. **/
588
588
  export function generatePreconnectCandidates(
589
589
  data: Handlers.Types.HandlerData, context: InsightSetContextWithNavigation,
590
590
  contextRequests: Types.Events.SyntheticNetworkRequest[]): PreconnectCandidate[] {
@@ -124,17 +124,19 @@ export function isEntriesLinkAnnotation(annotation: Annotation): annotation is E
124
124
  return annotation.type === 'ENTRIES_LINK';
125
125
  }
126
126
 
127
- // Serializable keys are created for trace events to be able to save
128
- // references to timeline events in a trace file. These keys enable
129
- // user modifications that can be saved. See go/cpq:event-data-json for
130
- // more details on the key format.
127
+ /**
128
+ * Serializable keys are created for trace events to be able to save
129
+ * references to timeline events in a trace file. These keys enable
130
+ * user modifications that can be saved. See go/cpq:event-data-json for
131
+ * more details on the key format.
132
+ **/
131
133
  export type RawEventKey = `${EventKeyType.RAW_EVENT}-${number}`;
132
134
  export type SyntheticEventKey = `${EventKeyType.SYNTHETIC_EVENT}-${number}`;
133
135
  export type ProfileCallKey = `${EventKeyType.PROFILE_CALL}-${ProcessID}-${ThreadID}-${SampleIndex}-${Protocol.integer}`;
134
136
  export type LegacyTimelineFrameKey = `${EventKeyType.LEGACY_TIMELINE_FRAME}-${number}`;
135
137
  export type SerializableKey = RawEventKey|ProfileCallKey|SyntheticEventKey|LegacyTimelineFrameKey;
136
138
 
137
- // Serializable keys values objects contain data that maps the keys to original Trace Events
139
+ /** Serializable keys values objects contain data that maps the keys to original Trace Events **/
138
140
  export interface RawEventKeyValues {
139
141
  type: EventKeyType.RAW_EVENT;
140
142
  rawIndex: number;
@@ -172,9 +174,11 @@ export interface Modifications {
172
174
  annotations: SerializedAnnotations;
173
175
  }
174
176
 
175
- // IMPORTANT: this is the same as PerfUI.FlameChart.PersistedGroupConfig
176
- // However, the PerfUI code should not depend on the model/trace, and similarly
177
- // this model cannot depend on that code, so we duplicate it.
177
+ /**
178
+ * IMPORTANT: this is the same as PerfUI.FlameChart.PersistedGroupConfig
179
+ * However, the PerfUI code should not depend on the model/trace, and similarly
180
+ * this model cannot depend on that code, so we duplicate it.
181
+ **/
178
182
  export interface TrackVisualConfig {
179
183
  hidden: boolean;
180
184
  expanded: boolean;
@@ -25,6 +25,6 @@ export interface TraceWindow<TimeFormat extends Micro|Milli> {
25
25
  range: TimeFormat;
26
26
  }
27
27
 
28
- // See front_end/models/trace/helpers/Timing.ts for helpful utility functions like traceWindowFromMicroSeconds
28
+ /** See front_end/models/trace/helpers/Timing.ts for helpful utility functions like traceWindowFromMicroSeconds **/
29
29
  export type TraceWindowMicro = TraceWindow<Micro>;
30
30
  export type TraceWindowMilli = TraceWindow<Milli>;
@@ -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',
@@ -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> {
@@ -1618,8 +1624,10 @@ const enum FrameType {
1618
1624
  BACKFILL = 'BACKFILL',
1619
1625
  }
1620
1626
 
1621
- // TODO(crbug.com/409484302): Remove once Chrome migrates from
1622
- // 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
+ **/
1623
1631
  export interface OldChromeFrameReporterArgs {
1624
1632
  chrome_frame_reporter: ChromeFrameReporter;
1625
1633
  }
@@ -1640,13 +1648,15 @@ export function isPipelineReporter(event: Event): event is PipelineReporter {
1640
1648
  return event.name === Name.PIPELINE_REPORTER;
1641
1649
  }
1642
1650
 
1643
- // A type used for synthetic events created based on a raw trace event.
1644
- // A branded type is used to ensure not all events can be typed as
1645
- // SyntheticBased and prevent places different to the
1646
- // SyntheticEventsManager from creating synthetic events. This is
1647
- // because synthetic events need to be registered in order to resolve
1648
- // serialized event keys into event objects, so we ensure events are
1649
- // 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
+ **/
1650
1660
  export interface SyntheticBased<Ph extends Phase = Phase, T extends Event = Event> extends Event {
1651
1661
  ph: Ph;
1652
1662
  rawSourceEvent: T;
@@ -1657,9 +1667,11 @@ export function isSyntheticBased(event: Event): event is SyntheticBased {
1657
1667
  return 'rawSourceEvent' in event;
1658
1668
  }
1659
1669
 
1660
- // Nestable async events with a duration are made up of two distinct
1661
- // events: the begin, and the end. We need both of them to be able to
1662
- // 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
+ **/
1663
1675
  export interface SyntheticEventPair<T extends PairableAsync = PairableAsync> extends SyntheticBased<Phase, T> {
1664
1676
  rawSourceEvent: T;
1665
1677
  name: T['name'];
@@ -1856,7 +1868,7 @@ export function isRasterTask(event: Event): event is RasterTask {
1856
1868
  return event.name === Name.RASTER_TASK;
1857
1869
  }
1858
1870
 
1859
- // 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. **/
1860
1872
  export interface CompositeLayers extends Instant {
1861
1873
  name: Name.COMPOSITE_LAYERS;
1862
1874
  args: Args&{
@@ -2273,7 +2285,7 @@ export function isResourceReceivedData(
2273
2285
  return event.name === 'ResourceReceivedData';
2274
2286
  }
2275
2287
 
2276
- // Any event where we receive data (and get an encodedDataLength)
2288
+ /** Any event where we receive data (and get an encodedDataLength) **/
2277
2289
  export function isReceivedDataEvent(
2278
2290
  event: Event,
2279
2291
  ): event is ResourceReceivedData|ResourceFinish|ResourceReceiveResponse {
@@ -3132,8 +3144,10 @@ export const enum Name {
3132
3144
  LINK_PRECONNECT = 'LinkPreconnect',
3133
3145
  }
3134
3146
 
3135
- // NOT AN EXHAUSTIVE LIST: just some categories we use and refer
3136
- // to in multiple places.
3147
+ /**
3148
+ * NOT AN EXHAUSTIVE LIST: just some categories we use and refer
3149
+ * to in multiple places.
3150
+ **/
3137
3151
  export const Categories = {
3138
3152
  Console: 'blink.console',
3139
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;