chrome-devtools-frontend 1.0.1376716 → 1.0.1386602

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 (885) hide show
  1. package/.stylelintrc.json +2 -1
  2. package/config/gni/devtools_grd_files.gni +40 -11
  3. package/config/gni/devtools_image_files.gni +4 -0
  4. package/docs/README.md +4 -0
  5. package/docs/contributing/issues.md +13 -10
  6. package/docs/get_the_code.md +4 -1
  7. package/docs/policy/README.md +6 -0
  8. package/docs/policy/slow-close.md +52 -0
  9. package/docs/styleguide/ux/README.md +1 -0
  10. package/docs/styleguide/ux/numbers.md +106 -0
  11. package/front_end/Images/src/animation.svg +3 -0
  12. package/front_end/Images/src/brush-2.svg +3 -0
  13. package/front_end/Images/src/cookie_off.svg +3 -0
  14. package/front_end/Images/src/domain.svg +3 -0
  15. package/front_end/core/common/Color.ts +3 -3
  16. package/front_end/core/common/SettingRegistration.ts +8 -1
  17. package/front_end/core/host/AidaClient.ts +4 -3
  18. package/front_end/core/host/InspectorFrontendHost.ts +4 -0
  19. package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
  20. package/front_end/core/host/UserMetrics.ts +0 -8
  21. package/front_end/core/i18n/ByteUtilities.test.ts +34 -0
  22. package/front_end/core/i18n/ByteUtilities.ts +65 -0
  23. package/front_end/core/i18n/NumberFormatter.ts +75 -0
  24. package/front_end/core/i18n/i18n.ts +4 -0
  25. package/front_end/core/i18n/locales/af.json +1031 -887
  26. package/front_end/core/i18n/locales/am.json +1036 -892
  27. package/front_end/core/i18n/locales/ar.json +1039 -895
  28. package/front_end/core/i18n/locales/as.json +1032 -888
  29. package/front_end/core/i18n/locales/az.json +1034 -890
  30. package/front_end/core/i18n/locales/be.json +1031 -887
  31. package/front_end/core/i18n/locales/bg.json +1031 -887
  32. package/front_end/core/i18n/locales/bn.json +1033 -889
  33. package/front_end/core/i18n/locales/bs.json +1036 -892
  34. package/front_end/core/i18n/locales/ca.json +1031 -887
  35. package/front_end/core/i18n/locales/cs.json +1030 -886
  36. package/front_end/core/i18n/locales/cy.json +1032 -888
  37. package/front_end/core/i18n/locales/da.json +1031 -887
  38. package/front_end/core/i18n/locales/de.json +1033 -889
  39. package/front_end/core/i18n/locales/el.json +1031 -887
  40. package/front_end/core/i18n/locales/en-GB.json +1033 -889
  41. package/front_end/core/i18n/locales/es-419.json +1029 -885
  42. package/front_end/core/i18n/locales/es.json +1032 -888
  43. package/front_end/core/i18n/locales/et.json +1033 -889
  44. package/front_end/core/i18n/locales/eu.json +1031 -887
  45. package/front_end/core/i18n/locales/fa.json +1035 -891
  46. package/front_end/core/i18n/locales/fi.json +1035 -891
  47. package/front_end/core/i18n/locales/fil.json +1034 -890
  48. package/front_end/core/i18n/locales/fr-CA.json +1031 -887
  49. package/front_end/core/i18n/locales/fr.json +1049 -905
  50. package/front_end/core/i18n/locales/gl.json +1032 -888
  51. package/front_end/core/i18n/locales/gu.json +1035 -891
  52. package/front_end/core/i18n/locales/he.json +1031 -887
  53. package/front_end/core/i18n/locales/hi.json +1034 -890
  54. package/front_end/core/i18n/locales/hr.json +1031 -887
  55. package/front_end/core/i18n/locales/hu.json +1033 -889
  56. package/front_end/core/i18n/locales/hy.json +1046 -902
  57. package/front_end/core/i18n/locales/id.json +1023 -879
  58. package/front_end/core/i18n/locales/is.json +1032 -888
  59. package/front_end/core/i18n/locales/it.json +1031 -887
  60. package/front_end/core/i18n/locales/ja.json +1042 -898
  61. package/front_end/core/i18n/locales/ka.json +1034 -890
  62. package/front_end/core/i18n/locales/kk.json +1035 -891
  63. package/front_end/core/i18n/locales/km.json +1035 -891
  64. package/front_end/core/i18n/locales/kn.json +1036 -892
  65. package/front_end/core/i18n/locales/ko.json +1031 -887
  66. package/front_end/core/i18n/locales/ky.json +1032 -888
  67. package/front_end/core/i18n/locales/lo.json +1030 -886
  68. package/front_end/core/i18n/locales/lt.json +1032 -888
  69. package/front_end/core/i18n/locales/lv.json +1032 -888
  70. package/front_end/core/i18n/locales/mk.json +1032 -888
  71. package/front_end/core/i18n/locales/ml.json +1033 -889
  72. package/front_end/core/i18n/locales/mn.json +1034 -890
  73. package/front_end/core/i18n/locales/mr.json +1035 -891
  74. package/front_end/core/i18n/locales/ms.json +1033 -889
  75. package/front_end/core/i18n/locales/my.json +1033 -889
  76. package/front_end/core/i18n/locales/ne.json +1036 -892
  77. package/front_end/core/i18n/locales/nl.json +1033 -889
  78. package/front_end/core/i18n/locales/no.json +1036 -892
  79. package/front_end/core/i18n/locales/or.json +1043 -899
  80. package/front_end/core/i18n/locales/pa.json +1030 -886
  81. package/front_end/core/i18n/locales/pl.json +1032 -888
  82. package/front_end/core/i18n/locales/pt-PT.json +1033 -889
  83. package/front_end/core/i18n/locales/pt.json +1033 -889
  84. package/front_end/core/i18n/locales/ro.json +1029 -885
  85. package/front_end/core/i18n/locales/ru.json +1026 -882
  86. package/front_end/core/i18n/locales/si.json +1031 -887
  87. package/front_end/core/i18n/locales/sk.json +1033 -889
  88. package/front_end/core/i18n/locales/sl.json +1031 -887
  89. package/front_end/core/i18n/locales/sq.json +1061 -917
  90. package/front_end/core/i18n/locales/sr-Latn.json +1033 -889
  91. package/front_end/core/i18n/locales/sr.json +1033 -889
  92. package/front_end/core/i18n/locales/sv.json +1031 -887
  93. package/front_end/core/i18n/locales/sw.json +1033 -889
  94. package/front_end/core/i18n/locales/ta.json +1058 -914
  95. package/front_end/core/i18n/locales/te.json +1037 -893
  96. package/front_end/core/i18n/locales/th.json +1032 -888
  97. package/front_end/core/i18n/locales/tr.json +1031 -887
  98. package/front_end/core/i18n/locales/uk.json +1030 -886
  99. package/front_end/core/i18n/locales/ur.json +1031 -887
  100. package/front_end/core/i18n/locales/uz.json +1023 -879
  101. package/front_end/core/i18n/locales/vi.json +1032 -888
  102. package/front_end/core/i18n/locales/zh-HK.json +1032 -888
  103. package/front_end/core/i18n/locales/zh-TW.json +1032 -888
  104. package/front_end/core/i18n/locales/zh.json +1033 -889
  105. package/front_end/core/i18n/locales/zu.json +1032 -888
  106. package/front_end/core/i18n/time-utilities.test.ts +20 -2
  107. package/front_end/core/i18n/time-utilities.ts +125 -86
  108. package/front_end/core/platform/NumberUtilities.test.ts +3 -26
  109. package/front_end/core/platform/NumberUtilities.ts +0 -20
  110. package/front_end/core/root/Runtime.ts +6 -4
  111. package/front_end/core/sdk/CPUThrottlingManager.ts +4 -0
  112. package/front_end/core/sdk/CSSContainerQuery.test.ts +10 -16
  113. package/front_end/core/sdk/CSSContainerQuery.ts +3 -15
  114. package/front_end/core/sdk/CSSMatchedStyles.test.ts +4 -0
  115. package/front_end/core/sdk/CSSMatchedStyles.ts +5 -5
  116. package/front_end/core/sdk/CSSModel.ts +18 -0
  117. package/front_end/core/sdk/CSSPropertyParser.test.ts +16 -1
  118. package/front_end/core/sdk/CSSPropertyParser.ts +2 -2
  119. package/front_end/core/sdk/NetworkManager.test.ts +50 -0
  120. package/front_end/core/sdk/NetworkManager.ts +6 -4
  121. package/front_end/core/sdk/SourceMap.test.ts +5 -5
  122. package/front_end/core/sdk/SourceMapScopeChainEntry.test.ts +7 -2
  123. package/front_end/core/sdk/SourceMapScopeChainEntry.ts +2 -2
  124. package/front_end/core/sdk/SourceMapScopes.test.ts +112 -45
  125. package/front_end/core/sdk/SourceMapScopes.ts +39 -14
  126. package/front_end/core/sdk/SourceMapScopesInfo.test.ts +51 -50
  127. package/front_end/core/sdk/SourceMapScopesInfo.ts +1 -1
  128. package/front_end/core/sdk/sdk-meta.ts +35 -0
  129. package/front_end/devtools_compatibility.js +0 -1
  130. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  131. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +3 -3
  132. package/front_end/entrypoints/inspector_main/renderingOptions.css +1 -1
  133. package/front_end/entrypoints/main/ExecutionContextSelector.test.ts +13 -3
  134. package/front_end/entrypoints/main/ExecutionContextSelector.ts +23 -1
  135. package/front_end/entrypoints/main/MainImpl.ts +0 -5
  136. package/front_end/generated/ARIAProperties.js +4 -0
  137. package/front_end/generated/Deprecation.ts +0 -15
  138. package/front_end/generated/InspectorBackendCommands.js +9 -7
  139. package/front_end/generated/SupportedCSSProperties.js +14 -41
  140. package/front_end/generated/protocol-mapping.d.ts +15 -1
  141. package/front_end/generated/protocol-proxy-api.d.ts +14 -1
  142. package/front_end/generated/protocol.ts +27 -2
  143. package/front_end/models/bindings/IgnoreListManager.ts +25 -2
  144. package/front_end/models/crux-manager/CrUXManager.test.ts +25 -6
  145. package/front_end/models/crux-manager/CrUXManager.ts +23 -4
  146. package/front_end/models/extensions/ExtensionAPI.ts +9 -1
  147. package/front_end/models/extensions/ExtensionServer.test.ts +14 -0
  148. package/front_end/models/extensions/ExtensionServer.ts +28 -15
  149. package/front_end/models/heap_snapshot_model/HeapSnapshotModel.ts +2 -0
  150. package/front_end/models/issues_manager/CookieIssue.ts +79 -2
  151. package/front_end/models/issues_manager/IssuesManager.ts +1 -1
  152. package/front_end/models/issues_manager/descriptions/cookieExcludePortMismatch.md +8 -0
  153. package/front_end/models/issues_manager/descriptions/cookieExcludeSchemeMismatch.md +7 -0
  154. package/front_end/models/javascript_metadata/NativeFunctions.js +22 -25
  155. package/front_end/models/live-metrics/web-vitals-injected/{rollup.config.js → rollup.config.mjs} +1 -1
  156. package/front_end/models/persistence/EditFileSystemView.ts +20 -10
  157. package/front_end/models/persistence/WorkspaceSettingsTab.ts +50 -54
  158. package/front_end/models/persistence/editFileSystemView.css +38 -15
  159. package/front_end/models/persistence/workspaceSettingsTab.css +21 -87
  160. package/front_end/models/timeline_model/timeline_model.ts +0 -6
  161. package/front_end/models/trace/Processor.test.ts +18 -17
  162. package/front_end/models/trace/Processor.ts +10 -14
  163. package/front_end/models/trace/README.md +0 -1
  164. package/front_end/models/trace/extras/Metadata.test.ts +35 -2
  165. package/front_end/models/trace/extras/Metadata.ts +24 -5
  166. package/front_end/models/{timeline_model → trace/extras}/TimelineJSProfile.ts +19 -29
  167. package/front_end/models/{timeline_model/TimelineModelFilter.test.ts → trace/extras/TraceFilter.test.ts} +15 -17
  168. package/front_end/models/trace/extras/TraceFilter.ts +62 -0
  169. package/front_end/models/{timeline_model/TimelineProfileTree.test.ts → trace/extras/TraceTree.test.ts} +44 -43
  170. package/front_end/models/{timeline_model/TimelineProfileTree.ts → trace/extras/TraceTree.ts} +86 -70
  171. package/front_end/models/trace/extras/URLForEntry.ts +6 -5
  172. package/front_end/models/trace/extras/extras.ts +3 -0
  173. package/front_end/models/trace/handlers/AnimationHandler.ts +0 -8
  174. package/front_end/models/trace/handlers/ExtensionTraceDataHandler.ts +1 -11
  175. package/front_end/models/trace/handlers/FramesHandler.test.ts +1 -6
  176. package/front_end/models/trace/handlers/FramesHandler.ts +1 -14
  177. package/front_end/models/trace/handlers/GPUHandler.test.ts +0 -2
  178. package/front_end/models/trace/handlers/GPUHandler.ts +1 -25
  179. package/front_end/models/trace/handlers/ImagePaintingHandler.ts +15 -0
  180. package/front_end/models/trace/handlers/InitiatorsHandler.test.ts +0 -1
  181. package/front_end/models/trace/handlers/InitiatorsHandler.ts +0 -20
  182. package/front_end/models/trace/handlers/InvalidationsHandler.test.ts +0 -1
  183. package/front_end/models/trace/handlers/InvalidationsHandler.ts +0 -18
  184. package/front_end/models/trace/handlers/LargestImagePaintHandler.test.ts +2 -2
  185. package/front_end/models/trace/handlers/LargestImagePaintHandler.ts +63 -3
  186. package/front_end/models/trace/handlers/LargestTextPaintHandler.ts +3 -0
  187. package/front_end/models/trace/handlers/LayerTreeHandler.test.ts +0 -2
  188. package/front_end/models/trace/handlers/LayerTreeHandler.ts +1 -18
  189. package/front_end/models/trace/handlers/LayoutShiftsHandler.test.ts +0 -3
  190. package/front_end/models/trace/handlers/LayoutShiftsHandler.ts +1 -20
  191. package/front_end/models/trace/handlers/MemoryHandler.test.ts +0 -1
  192. package/front_end/models/trace/handlers/MemoryHandler.ts +3 -0
  193. package/front_end/models/trace/handlers/MetaHandler.test.ts +1 -32
  194. package/front_end/models/trace/handlers/MetaHandler.ts +2 -30
  195. package/front_end/models/trace/handlers/NetworkRequestsHandler.test.ts +0 -26
  196. package/front_end/models/trace/handlers/NetworkRequestsHandler.ts +4 -23
  197. package/front_end/models/trace/handlers/PageFramesHandler.ts +3 -0
  198. package/front_end/models/trace/handlers/RendererHandler.test.ts +0 -4
  199. package/front_end/models/trace/handlers/RendererHandler.ts +1 -24
  200. package/front_end/models/trace/handlers/SamplesHandler.test.ts +0 -5
  201. package/front_end/models/trace/handlers/SamplesHandler.ts +0 -26
  202. package/front_end/models/trace/handlers/ScreenshotsHandler.test.ts +0 -1
  203. package/front_end/models/trace/handlers/SelectorStatsHandler.ts +3 -0
  204. package/front_end/models/trace/handlers/ServerTimingsHandler.ts +1 -16
  205. package/front_end/models/trace/handlers/Threads.test.ts +1 -2
  206. package/front_end/models/trace/handlers/UserInteractionsHandler.test.ts +4 -27
  207. package/front_end/models/trace/handlers/UserInteractionsHandler.ts +16 -25
  208. package/front_end/models/trace/handlers/UserTimingsHandler.ts +0 -17
  209. package/front_end/models/trace/handlers/WorkersHandler.test.ts +0 -1
  210. package/front_end/models/trace/handlers/WorkersHandler.ts +0 -23
  211. package/front_end/models/trace/handlers/types.ts +1 -8
  212. package/front_end/models/trace/helpers/Timing.ts +8 -0
  213. package/front_end/models/trace/insights/{CumulativeLayoutShift.test.ts → CLSCulprits.test.ts} +21 -21
  214. package/front_end/models/trace/insights/{CumulativeLayoutShift.ts → CLSCulprits.ts} +32 -5
  215. package/front_end/models/trace/insights/Common.ts +5 -55
  216. package/front_end/models/trace/insights/DocumentLatency.test.ts +2 -2
  217. package/front_end/models/trace/insights/DocumentLatency.ts +39 -6
  218. package/front_end/models/trace/insights/FontDisplay.ts +31 -5
  219. package/front_end/models/trace/insights/ImageDelivery.test.ts +98 -0
  220. package/front_end/models/trace/insights/ImageDelivery.ts +183 -0
  221. package/front_end/models/trace/insights/InteractionToNextPaint.test.ts +1 -1
  222. package/front_end/models/trace/insights/InteractionToNextPaint.ts +32 -6
  223. package/front_end/models/trace/insights/LCPDiscovery.test.ts +58 -0
  224. package/front_end/models/trace/insights/LCPDiscovery.ts +122 -0
  225. package/front_end/models/trace/insights/{LargestContentfulPaint.test.ts → LCPPhases.test.ts} +6 -28
  226. package/front_end/models/trace/insights/{LargestContentfulPaint.ts → LCPPhases.ts} +59 -38
  227. package/front_end/models/trace/insights/{InsightRunners.ts → Models.ts} +5 -3
  228. package/front_end/models/trace/insights/RenderBlocking.test.ts +1 -1
  229. package/front_end/models/trace/insights/RenderBlocking.ts +41 -28
  230. package/front_end/models/trace/insights/SlowCSSSelector.ts +33 -5
  231. package/front_end/models/trace/insights/{ThirdPartyWeb.test.ts → ThirdParties.test.ts} +3 -3
  232. package/front_end/models/trace/insights/{ThirdPartyWeb.ts → ThirdParties.ts} +32 -5
  233. package/front_end/models/trace/insights/Viewport.test.ts +1 -1
  234. package/front_end/models/trace/insights/Viewport.ts +40 -9
  235. package/front_end/models/trace/insights/insights.ts +1 -1
  236. package/front_end/models/trace/insights/types.ts +22 -9
  237. package/front_end/models/trace/types/File.ts +7 -0
  238. package/front_end/models/trace/types/TraceEvents.ts +60 -24
  239. package/front_end/panels/animation/AnimationTimeline.ts +2 -4
  240. package/front_end/panels/application/ApplicationPanelSidebar.test.ts +0 -5
  241. package/front_end/panels/application/ApplicationPanelSidebar.ts +15 -21
  242. package/front_end/panels/application/IndexedDBViews.ts +4 -1
  243. package/front_end/panels/application/ServiceWorkerCacheViews.ts +4 -1
  244. package/front_end/panels/application/SharedStorageItemsView.test.ts +3 -3
  245. package/front_end/panels/application/SharedStorageItemsView.ts +5 -3
  246. package/front_end/panels/application/StorageView.test.ts +1 -1
  247. package/front_end/panels/application/StorageView.ts +3 -3
  248. package/front_end/panels/application/components/StorageMetadataView.ts +1 -2
  249. package/front_end/panels/application/resourcesSidebar.css +1 -1
  250. package/front_end/panels/browser_debugger/CategorizedBreakpointsSidebarPane.ts +1 -1
  251. package/front_end/panels/browser_debugger/DOMBreakpointsSidebarPane.ts +1 -1
  252. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +35 -32
  253. package/front_end/panels/browser_debugger/categorizedBreakpointsSidebarPane.css +1 -1
  254. package/front_end/panels/browser_debugger/xhrBreakpointsSidebarPane.css +1 -1
  255. package/front_end/panels/console/ConsoleViewMessage.test.ts +25 -0
  256. package/front_end/panels/console/ConsoleViewMessage.ts +23 -0
  257. package/front_end/panels/coverage/CoverageListView.ts +1 -1
  258. package/front_end/panels/coverage/CoverageView.ts +3 -3
  259. package/front_end/panels/developer_resources/DeveloperResourcesListView.ts +1 -1
  260. package/front_end/panels/elements/ClassesPaneWidget.ts +1 -1
  261. package/front_end/panels/elements/ComputedStyleModel.ts +9 -2
  262. package/front_end/panels/elements/ComputedStyleWidget.test.ts +72 -0
  263. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -0
  264. package/front_end/panels/elements/ElementStatePaneWidget.test.ts +85 -30
  265. package/front_end/panels/elements/ElementStatePaneWidget.ts +49 -26
  266. package/front_end/panels/elements/ElementsSidebarPane.ts +3 -3
  267. package/front_end/panels/elements/ElementsTreeElement.ts +25 -11
  268. package/front_end/panels/elements/LayersWidget.ts +1 -1
  269. package/front_end/panels/elements/MetricsSidebarPane.ts +12 -7
  270. package/front_end/panels/elements/PropertyMatchers.test.ts +7 -0
  271. package/front_end/panels/elements/PropertyMatchers.ts +6 -0
  272. package/front_end/panels/elements/StylePropertiesSection.ts +15 -6
  273. package/front_end/panels/elements/StylePropertyTreeElement.test.ts +3 -1
  274. package/front_end/panels/elements/StylePropertyTreeElement.ts +8 -3
  275. package/front_end/panels/elements/classesPaneWidget.css +1 -1
  276. package/front_end/panels/elements/stylePropertiesTreeOutline.css +2 -2
  277. package/front_end/panels/emulation/DeviceModeView.ts +1 -1
  278. package/front_end/panels/emulation/DeviceModeWrapper.ts +1 -1
  279. package/front_end/panels/emulation/InspectedPagePlaceholder.ts +1 -1
  280. package/front_end/panels/explain/components/ConsoleInsight.ts +8 -18
  281. package/front_end/panels/freestyler/AiAgent.test.ts +376 -50
  282. package/front_end/panels/freestyler/AiAgent.ts +251 -144
  283. package/front_end/panels/freestyler/AiHistoryStorage.test.ts +159 -0
  284. package/front_end/panels/freestyler/AiHistoryStorage.ts +73 -0
  285. package/front_end/panels/freestyler/DrJonesFileAgent.test.ts +113 -38
  286. package/front_end/panels/freestyler/DrJonesFileAgent.ts +56 -34
  287. package/front_end/panels/freestyler/DrJonesNetworkAgent.test.ts +29 -20
  288. package/front_end/panels/freestyler/DrJonesNetworkAgent.ts +39 -18
  289. package/front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts +44 -42
  290. package/front_end/panels/freestyler/DrJonesPerformanceAgent.ts +51 -22
  291. package/front_end/panels/freestyler/FreestylerAgent.test.ts +210 -28
  292. package/front_end/panels/freestyler/FreestylerAgent.ts +65 -26
  293. package/front_end/panels/freestyler/FreestylerPanel.test.ts +610 -39
  294. package/front_end/panels/freestyler/FreestylerPanel.ts +414 -255
  295. package/front_end/panels/freestyler/components/FreestylerChatUi.test.ts +126 -34
  296. package/front_end/panels/freestyler/components/FreestylerChatUi.ts +431 -280
  297. package/front_end/panels/freestyler/components/UserActionRow.ts +157 -47
  298. package/front_end/panels/freestyler/components/freestylerChatUi.css +90 -35
  299. package/front_end/panels/freestyler/components/userActionRow.css +41 -67
  300. package/front_end/panels/freestyler/freestyler-meta.ts +3 -11
  301. package/front_end/panels/freestyler/freestyler.ts +1 -0
  302. package/front_end/panels/issues/IssueAggregator.test.ts +50 -0
  303. package/front_end/panels/issues/IssueAggregator.ts +10 -10
  304. package/front_end/panels/issues/components/HideIssuesMenu.ts +2 -11
  305. package/front_end/panels/issues/issuesTree.css +1 -1
  306. package/front_end/panels/layer_viewer/LayerDetailsView.ts +2 -3
  307. package/front_end/panels/layer_viewer/Layers3DView.ts +1 -1
  308. package/front_end/panels/layer_viewer/PaintProfilerView.ts +6 -6
  309. package/front_end/panels/layers/LayersPanel.ts +1 -1
  310. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +46 -0
  311. package/front_end/panels/lighthouse/lighthouseStartView.css +1 -1
  312. package/front_end/panels/media/TickingFlameChart.ts +1 -1
  313. package/front_end/panels/mobile_throttling/ThrottlingSettingsTab.ts +26 -17
  314. package/front_end/panels/mobile_throttling/throttlingSettingsTab.css +25 -19
  315. package/front_end/panels/network/BinaryResourceView.ts +6 -7
  316. package/front_end/panels/network/BlockedURLsPane.ts +1 -1
  317. package/front_end/panels/network/EventSourceMessagesView.ts +1 -1
  318. package/front_end/panels/network/NetworkDataGridNode.ts +4 -3
  319. package/front_end/panels/network/NetworkLogView.test.ts +1 -1
  320. package/front_end/panels/network/NetworkLogView.ts +7 -8
  321. package/front_end/panels/network/NetworkPanel.ts +40 -32
  322. package/front_end/panels/network/NetworkWaterfallColumn.ts +1 -1
  323. package/front_end/panels/network/RequestTimingView.test.ts +35 -1
  324. package/front_end/panels/network/RequestTimingView.ts +96 -0
  325. package/front_end/panels/network/ResourceWebSocketFrameView.ts +2 -2
  326. package/front_end/panels/network/networkTimingTable.css +2 -1
  327. package/front_end/panels/performance_monitor/PerformanceMonitor.ts +1 -1
  328. package/front_end/panels/profiler/HeapProfileView.ts +10 -10
  329. package/front_end/panels/profiler/HeapSnapshotView.ts +2 -2
  330. package/front_end/panels/profiler/HeapTimelineOverview.ts +13 -13
  331. package/front_end/panels/profiler/IsolateSelector.ts +4 -5
  332. package/front_end/panels/profiler/LiveHeapProfileView.ts +3 -1
  333. package/front_end/panels/profiler/ProfileFlameChartDataProvider.ts +4 -4
  334. package/front_end/panels/profiler/ProfileSidebarTreeElement.ts +7 -6
  335. package/front_end/panels/profiler/ProfileView.ts +3 -3
  336. package/front_end/panels/profiler/profileLauncherView.css +1 -1
  337. package/front_end/panels/profiler/profilesSidebarTree.css +1 -1
  338. package/front_end/panels/recorder/components/RecordingView.ts +2 -2
  339. package/front_end/panels/recorder/injected/{rollup.config.js → rollup.config.mjs} +1 -1
  340. package/front_end/panels/recorder/recorderController.css +1 -5
  341. package/front_end/panels/security/CookieControlsTreeElement.ts +18 -0
  342. package/front_end/panels/security/CookieControlsView.test.ts +29 -0
  343. package/front_end/panels/security/CookieControlsView.ts +265 -0
  344. package/front_end/panels/security/CookieReportTreeElement.ts +1 -9
  345. package/front_end/panels/security/CookieReportView.test.ts +157 -0
  346. package/front_end/panels/security/CookieReportView.ts +316 -0
  347. package/front_end/panels/security/SecurityPanel.ts +12 -4
  348. package/front_end/panels/security/SecurityPanelSidebar.ts +6 -1
  349. package/front_end/panels/security/cookieControlsView.css +101 -0
  350. package/front_end/panels/security/cookieReportView.css +69 -0
  351. package/front_end/panels/security/security.ts +4 -0
  352. package/front_end/panels/security/sidebar.css +2 -3
  353. package/front_end/panels/sensors/LocationsSettingsTab.ts +26 -11
  354. package/front_end/panels/sensors/locationsSettingsTab.css +18 -18
  355. package/front_end/panels/settings/AISettingsTab.ts +6 -15
  356. package/front_end/panels/settings/KeybindsSettingsTab.ts +4 -3
  357. package/front_end/panels/settings/SettingsScreen.ts +64 -55
  358. package/front_end/panels/settings/aiSettingsTab.css +3 -14
  359. package/front_end/panels/settings/components/SyncSection.ts +1 -2
  360. package/front_end/panels/settings/components/syncSection.css +0 -10
  361. package/front_end/panels/settings/frameworkIgnoreListSettingsTab.css +4 -2
  362. package/front_end/panels/settings/keybindsSettingsTab.css +12 -10
  363. package/front_end/panels/settings/settings-meta.ts +3 -1
  364. package/front_end/panels/settings/settingsScreen.css +37 -125
  365. package/front_end/panels/sources/CallStackSidebarPane.ts +2 -2
  366. package/front_end/panels/sources/DebuggerPlugin.ts +9 -4
  367. package/front_end/panels/sources/NavigatorView.ts +12 -13
  368. package/front_end/panels/sources/navigatorTree.css +1 -1
  369. package/front_end/panels/sources/sourcesPanel.css +2 -2
  370. package/front_end/panels/timeline/ActiveFilters.ts +3 -4
  371. package/front_end/panels/timeline/AnimationsTrackAppender.ts +2 -9
  372. package/front_end/panels/timeline/AppenderUtils.ts +1 -1
  373. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +38 -41
  374. package/front_end/panels/timeline/CountersGraph.ts +2 -4
  375. package/front_end/panels/timeline/EventsTimelineTreeView.ts +7 -8
  376. package/front_end/panels/timeline/ExtensionTrackAppender.ts +4 -13
  377. package/front_end/panels/timeline/InteractionsTrackAppender.ts +3 -4
  378. package/front_end/panels/timeline/LayoutShiftsTrackAppender.ts +6 -12
  379. package/front_end/panels/timeline/README.md +2 -1
  380. package/front_end/panels/timeline/ServerTimingsTrackAppender.ts +1 -10
  381. package/front_end/panels/timeline/ThreadAppender.ts +9 -12
  382. package/front_end/panels/timeline/TimelineController.ts +14 -4
  383. package/front_end/panels/timeline/TimelineDetailsView.test.ts +3 -2
  384. package/front_end/panels/timeline/TimelineDetailsView.ts +18 -17
  385. package/front_end/panels/timeline/TimelineEventOverview.ts +3 -4
  386. package/front_end/panels/timeline/TimelineFilters.ts +3 -4
  387. package/front_end/panels/timeline/TimelineFlameChartDataProvider.test.ts +1 -1
  388. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +58 -46
  389. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +2 -3
  390. package/front_end/panels/timeline/TimelineFlameChartView.ts +54 -26
  391. package/front_end/panels/timeline/TimelineHistoryManager.test.ts +20 -15
  392. package/front_end/panels/timeline/TimelineHistoryManager.ts +46 -58
  393. package/front_end/panels/timeline/TimelineLayersView.ts +1 -1
  394. package/front_end/panels/timeline/TimelineLoader.test.ts +1 -2
  395. package/front_end/panels/timeline/TimelineLoader.ts +19 -4
  396. package/front_end/panels/timeline/TimelineMiniMap.ts +12 -2
  397. package/front_end/panels/timeline/TimelinePaintProfilerView.ts +1 -1
  398. package/front_end/panels/timeline/TimelinePanel.ts +161 -32
  399. package/front_end/panels/timeline/TimelineTreeView.test.ts +12 -13
  400. package/front_end/panels/timeline/TimelineTreeView.ts +98 -54
  401. package/front_end/panels/timeline/TimelineUIUtils.test.ts +2 -2
  402. package/front_end/panels/timeline/TimelineUIUtils.ts +56 -14
  403. package/front_end/panels/timeline/TimingsTrackAppender.ts +6 -13
  404. package/front_end/panels/timeline/components/FieldSettingsDialog.test.ts +1 -0
  405. package/front_end/panels/timeline/components/FieldSettingsDialog.ts +6 -1
  406. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +6 -7
  407. package/front_end/panels/timeline/components/LiveMetricsView.test.ts +15 -3
  408. package/front_end/panels/timeline/components/LiveMetricsView.ts +27 -44
  409. package/front_end/panels/timeline/components/MetricCard.test.ts +1 -1
  410. package/front_end/panels/timeline/components/MetricCard.ts +46 -0
  411. package/front_end/panels/timeline/components/NetworkRequestDetails.ts +3 -4
  412. package/front_end/panels/timeline/components/Sidebar.ts +1 -4
  413. package/front_end/panels/timeline/components/SidebarAnnotationsTab.test.ts +1 -1
  414. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +1 -1
  415. package/front_end/panels/timeline/components/SidebarSingleInsightSet.test.ts +23 -35
  416. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +53 -41
  417. package/front_end/panels/timeline/components/TimelineSummary.test.ts +75 -0
  418. package/front_end/panels/timeline/components/TimelineSummary.ts +101 -0
  419. package/front_end/panels/timeline/components/Utils.test.ts +49 -0
  420. package/front_end/panels/timeline/components/Utils.ts +2 -2
  421. package/front_end/panels/timeline/components/components.ts +2 -0
  422. package/front_end/panels/timeline/components/insights/BaseInsightComponent.test.ts +84 -0
  423. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +291 -0
  424. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +24 -62
  425. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +43 -72
  426. package/front_end/panels/timeline/components/insights/EventRef.ts +70 -2
  427. package/front_end/panels/timeline/components/insights/FontDisplay.ts +37 -61
  428. package/front_end/panels/timeline/components/insights/Helpers.ts +5 -212
  429. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +142 -0
  430. package/front_end/panels/timeline/components/insights/InteractionToNextPaint.ts +34 -69
  431. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +52 -103
  432. package/front_end/panels/timeline/components/insights/LCPPhases.ts +31 -92
  433. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +38 -64
  434. package/front_end/panels/timeline/components/insights/SidebarInsight.ts +3 -198
  435. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +59 -95
  436. package/front_end/panels/timeline/components/insights/Table.ts +6 -3
  437. package/front_end/panels/timeline/components/insights/ThirdParties.ts +51 -78
  438. package/front_end/panels/timeline/components/insights/Viewport.ts +27 -49
  439. package/front_end/panels/timeline/components/insights/{sidebarInsight.css → baseInsightComponent.css} +9 -9
  440. package/front_end/panels/timeline/components/insights/insights.ts +4 -0
  441. package/front_end/panels/timeline/components/insights/types.ts +0 -7
  442. package/front_end/panels/timeline/components/liveMetricsView.css +10 -18
  443. package/front_end/panels/timeline/components/metricCard.css +11 -0
  444. package/front_end/panels/timeline/components/sidebarInsightsTab.css +1 -1
  445. package/front_end/panels/timeline/components/timelineSummary.css +67 -0
  446. package/front_end/panels/timeline/docs/flame_chart_migration.md +1 -1
  447. package/front_end/panels/timeline/fixtures/traces/README.md +4 -0
  448. package/front_end/panels/timeline/fixtures/traces/image-delivery.json.gz +0 -0
  449. package/front_end/panels/timeline/overlays/OverlaysImpl.test.ts +5 -5
  450. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +35 -12
  451. package/front_end/panels/timeline/timeline-meta.ts +1 -1
  452. package/front_end/panels/timeline/timelineFlameChartView.css +1 -1
  453. package/front_end/panels/timeline/timelineFlamechartPopover.css +14 -4
  454. package/front_end/panels/timeline/timelineHistoryManager.css +7 -3
  455. package/front_end/panels/timeline/timelinePanel.css +0 -1
  456. package/front_end/panels/timeline/track_appenders/CompatibilityTracksAppender.test.ts +5 -5
  457. package/front_end/panels/timeline/track_appenders/ExtensionTrackAppender.test.ts +5 -6
  458. package/front_end/panels/timeline/track_appenders/LayoutShiftsTrackAppender.test.ts +11 -2
  459. package/front_end/panels/timeline/track_appenders/ServerTimingsTrackAppender.test.ts +0 -9
  460. package/front_end/panels/timeline/track_appenders/ThreadAppender.test.ts +37 -44
  461. package/front_end/panels/timeline/track_appenders/TimingsTrackAppender.test.ts +44 -30
  462. package/front_end/panels/timeline/utils/AICallTree.test.ts +105 -0
  463. package/front_end/panels/timeline/utils/AICallTree.ts +25 -24
  464. package/front_end/panels/timeline/utils/EntryName.ts +1 -2
  465. package/front_end/panels/timeline/utils/Helpers.ts +19 -0
  466. package/front_end/panels/timeline/utils/IgnoreList.test.ts +52 -0
  467. package/front_end/panels/timeline/utils/IgnoreList.ts +68 -7
  468. package/front_end/panels/timeline/utils/SourceMapsResolver.ts +2 -0
  469. package/front_end/panels/webauthn/webauthnPane.css +1 -1
  470. package/front_end/panels/whats_new/ReleaseNote.test.ts +90 -0
  471. package/front_end/panels/whats_new/ReleaseNoteText.ts +52 -0
  472. package/front_end/panels/whats_new/ReleaseNoteView.ts +157 -0
  473. package/front_end/panels/whats_new/WhatsNewImpl.ts +102 -0
  474. package/front_end/panels/whats_new/releaseNoteView.css +121 -0
  475. package/front_end/panels/whats_new/resources/WNDT.md +6 -0
  476. package/front_end/panels/whats_new/resources/whatsnew.avif +0 -0
  477. package/front_end/panels/whats_new/whats_new-meta.ts +142 -0
  478. package/front_end/panels/whats_new/whats_new.ts +13 -0
  479. package/front_end/services/puppeteer/PuppeteerConnection.ts +4 -3
  480. package/front_end/testing/EnvironmentHelpers.ts +6 -20
  481. package/front_end/testing/InsightHelpers.ts +4 -4
  482. package/front_end/testing/SourceMapEncoder.ts +27 -11
  483. package/front_end/testing/TraceHelpers.ts +3 -2
  484. package/front_end/testing/TraceLoader.ts +6 -2
  485. package/front_end/third_party/lighthouse/README.chromium +2 -2
  486. package/front_end/third_party/lighthouse/lighthouse-dt-bundle.js +1380 -1369
  487. package/front_end/third_party/lighthouse/locales/ar-XB.json +88 -85
  488. package/front_end/third_party/lighthouse/locales/ar.json +98 -95
  489. package/front_end/third_party/lighthouse/locales/bg.json +88 -85
  490. package/front_end/third_party/lighthouse/locales/ca.json +91 -88
  491. package/front_end/third_party/lighthouse/locales/cs.json +91 -88
  492. package/front_end/third_party/lighthouse/locales/da.json +94 -91
  493. package/front_end/third_party/lighthouse/locales/de.json +92 -89
  494. package/front_end/third_party/lighthouse/locales/el.json +92 -89
  495. package/front_end/third_party/lighthouse/locales/en-GB.json +89 -86
  496. package/front_end/third_party/lighthouse/locales/en-US.json +23 -20
  497. package/front_end/third_party/lighthouse/locales/en-XA.json +88 -85
  498. package/front_end/third_party/lighthouse/locales/en-XL.json +23 -20
  499. package/front_end/third_party/lighthouse/locales/es-419.json +92 -89
  500. package/front_end/third_party/lighthouse/locales/es.json +91 -88
  501. package/front_end/third_party/lighthouse/locales/fi.json +92 -89
  502. package/front_end/third_party/lighthouse/locales/fil.json +93 -90
  503. package/front_end/third_party/lighthouse/locales/fr.json +94 -91
  504. package/front_end/third_party/lighthouse/locales/he.json +97 -94
  505. package/front_end/third_party/lighthouse/locales/hi.json +92 -89
  506. package/front_end/third_party/lighthouse/locales/hr.json +90 -87
  507. package/front_end/third_party/lighthouse/locales/hu.json +90 -87
  508. package/front_end/third_party/lighthouse/locales/id.json +91 -88
  509. package/front_end/third_party/lighthouse/locales/it.json +90 -87
  510. package/front_end/third_party/lighthouse/locales/ja.json +90 -87
  511. package/front_end/third_party/lighthouse/locales/ko.json +90 -87
  512. package/front_end/third_party/lighthouse/locales/lt.json +90 -87
  513. package/front_end/third_party/lighthouse/locales/lv.json +91 -88
  514. package/front_end/third_party/lighthouse/locales/nl.json +90 -87
  515. package/front_end/third_party/lighthouse/locales/no.json +92 -89
  516. package/front_end/third_party/lighthouse/locales/pl.json +90 -87
  517. package/front_end/third_party/lighthouse/locales/pt-PT.json +111 -108
  518. package/front_end/third_party/lighthouse/locales/pt.json +97 -94
  519. package/front_end/third_party/lighthouse/locales/ro.json +94 -91
  520. package/front_end/third_party/lighthouse/locales/ru.json +93 -90
  521. package/front_end/third_party/lighthouse/locales/sk.json +93 -90
  522. package/front_end/third_party/lighthouse/locales/sl.json +91 -88
  523. package/front_end/third_party/lighthouse/locales/sr-Latn.json +91 -88
  524. package/front_end/third_party/lighthouse/locales/sr.json +91 -88
  525. package/front_end/third_party/lighthouse/locales/sv.json +92 -89
  526. package/front_end/third_party/lighthouse/locales/ta.json +101 -98
  527. package/front_end/third_party/lighthouse/locales/te.json +92 -89
  528. package/front_end/third_party/lighthouse/locales/th.json +95 -92
  529. package/front_end/third_party/lighthouse/locales/tr.json +91 -88
  530. package/front_end/third_party/lighthouse/locales/uk.json +93 -90
  531. package/front_end/third_party/lighthouse/locales/vi.json +95 -92
  532. package/front_end/third_party/lighthouse/locales/zh-HK.json +92 -89
  533. package/front_end/third_party/lighthouse/locales/zh-TW.json +98 -95
  534. package/front_end/third_party/lighthouse/locales/zh.json +96 -93
  535. package/front_end/third_party/puppeteer/README.chromium +2 -2
  536. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +10 -3
  537. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  538. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  539. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts +14 -3
  540. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.d.ts.map +1 -1
  541. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js +16 -2
  542. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/ElementHandle.js.map +1 -1
  543. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  544. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +3 -1
  545. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  546. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts +1 -0
  547. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  548. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js +1 -0
  549. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/HTTPRequest.js.map +1 -1
  550. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts +34 -5
  551. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.d.ts.map +1 -1
  552. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js +51 -2
  553. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Input.js.map +1 -1
  554. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +4 -0
  555. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  556. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  557. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  558. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js +10 -8
  559. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/ElementHandle.js.map +1 -1
  560. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  561. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +1 -1
  562. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  563. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts +14 -4
  564. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
  565. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +57 -23
  566. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
  567. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +1 -0
  568. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  569. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +3 -0
  570. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  571. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +3 -2
  572. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  573. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +10 -4
  574. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  575. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  576. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  577. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  578. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +2 -0
  579. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  580. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +7 -0
  581. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  582. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts +1 -1
  583. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  584. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js +13 -10
  585. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ElementHandle.js.map +1 -1
  586. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  587. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  588. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +3 -0
  589. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  590. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  591. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  592. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js +4 -4
  593. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPResponse.js.map +1 -1
  594. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts +15 -4
  595. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.d.ts.map +1 -1
  596. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js +55 -26
  597. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Input.js.map +1 -1
  598. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  599. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js +24 -12
  600. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/NetworkManager.js.map +1 -1
  601. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -0
  602. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  603. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -0
  604. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  605. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts +0 -8
  606. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  607. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js +2 -11
  608. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/CallbackRegistry.js.map +1 -1
  609. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +5 -0
  610. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  611. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +2 -1
  612. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  613. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +5 -2
  614. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  615. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts +30 -0
  616. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  617. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js +8 -0
  618. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/DownloadBehavior.js.map +1 -0
  619. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts +7 -0
  620. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.d.ts.map +1 -1
  621. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js +9 -1
  622. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Errors.js.map +1 -1
  623. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.d.ts.map +1 -1
  624. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js +5 -3
  625. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/WaitTask.js.map +1 -1
  626. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts +1 -0
  627. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/common.d.ts.map +1 -1
  628. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts +1 -1
  629. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.d.ts.map +1 -1
  630. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js +0 -3
  631. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/environment.js.map +1 -1
  632. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  633. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  634. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.d.ts +1 -1
  635. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/version.js +1 -1
  636. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  637. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  638. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +2 -2
  639. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  640. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  641. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  642. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  643. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts +14 -0
  644. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  645. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js +18 -0
  646. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/incremental-id-generator.js.map +1 -0
  647. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +100 -10
  648. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +291 -143
  649. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +10 -3
  650. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  651. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  652. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts +14 -3
  653. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.d.ts.map +1 -1
  654. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js +16 -2
  655. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/ElementHandle.js.map +1 -1
  656. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  657. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +3 -1
  658. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  659. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts +1 -0
  660. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.d.ts.map +1 -1
  661. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js +1 -0
  662. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/HTTPRequest.js.map +1 -1
  663. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +34 -5
  664. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  665. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js +51 -2
  666. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.js.map +1 -1
  667. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +4 -0
  668. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  669. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  670. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.d.ts.map +1 -1
  671. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js +10 -8
  672. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/ElementHandle.js.map +1 -1
  673. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  674. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +1 -1
  675. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  676. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts +14 -4
  677. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
  678. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +57 -23
  679. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
  680. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +1 -0
  681. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  682. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +3 -0
  683. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  684. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +3 -2
  685. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  686. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +10 -4
  687. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  688. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  689. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  690. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  691. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +2 -0
  692. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  693. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +7 -0
  694. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  695. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts +1 -1
  696. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.d.ts.map +1 -1
  697. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js +13 -10
  698. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ElementHandle.js.map +1 -1
  699. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts +1 -0
  700. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  701. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +3 -0
  702. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  703. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts +1 -2
  704. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.d.ts.map +1 -1
  705. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js +4 -4
  706. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPResponse.js.map +1 -1
  707. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts +15 -4
  708. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.d.ts.map +1 -1
  709. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js +55 -26
  710. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Input.js.map +1 -1
  711. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  712. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js +24 -12
  713. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/NetworkManager.js.map +1 -1
  714. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -0
  715. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  716. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -0
  717. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  718. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts +0 -8
  719. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.d.ts.map +1 -1
  720. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js +1 -9
  721. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/CallbackRegistry.js.map +1 -1
  722. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +5 -0
  723. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  724. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +2 -1
  725. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  726. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +5 -2
  727. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  728. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts +30 -0
  729. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.d.ts.map +1 -0
  730. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js +7 -0
  731. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/DownloadBehavior.js.map +1 -0
  732. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts +7 -0
  733. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.d.ts.map +1 -1
  734. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js +7 -0
  735. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Errors.js.map +1 -1
  736. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.d.ts.map +1 -1
  737. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js +5 -3
  738. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/WaitTask.js.map +1 -1
  739. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts +1 -0
  740. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/common.d.ts.map +1 -1
  741. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts +1 -1
  742. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.d.ts.map +1 -1
  743. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js +0 -3
  744. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/environment.js.map +1 -1
  745. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  746. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  747. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.d.ts +1 -1
  748. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/version.js +1 -1
  749. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  750. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +2 -2
  751. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  752. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  753. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  754. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts +14 -0
  755. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.d.ts.map +1 -0
  756. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js +15 -0
  757. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/incremental-id-generator.js.map +1 -0
  758. package/front_end/third_party/puppeteer/package/lib/types.d.ts +100 -10
  759. package/front_end/third_party/puppeteer/package/package.json +5 -5
  760. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +10 -3
  761. package/front_end/third_party/puppeteer/package/src/api/ElementHandle.ts +21 -3
  762. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +3 -1
  763. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +1 -0
  764. package/front_end/third_party/puppeteer/package/src/api/Input.ts +57 -8
  765. package/front_end/third_party/puppeteer/package/src/api/Page.ts +5 -0
  766. package/front_end/third_party/puppeteer/package/src/bidi/ElementHandle.ts +9 -7
  767. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -0
  768. package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +72 -31
  769. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
  770. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +11 -3
  771. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
  772. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +11 -0
  773. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +14 -9
  774. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +4 -0
  775. package/front_end/third_party/puppeteer/package/src/cdp/HTTPResponse.ts +3 -5
  776. package/front_end/third_party/puppeteer/package/src/cdp/Input.ts +71 -26
  777. package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +34 -17
  778. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +4 -0
  779. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +1 -15
  780. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +5 -0
  781. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +8 -1
  782. package/front_end/third_party/puppeteer/package/src/common/DownloadBehavior.ts +31 -0
  783. package/front_end/third_party/puppeteer/package/src/common/Errors.ts +7 -0
  784. package/front_end/third_party/puppeteer/package/src/common/WaitTask.ts +9 -9
  785. package/front_end/third_party/puppeteer/package/src/common/common.ts +1 -0
  786. package/front_end/third_party/puppeteer/package/src/environment.ts +1 -4
  787. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  788. package/front_end/third_party/puppeteer/package/src/generated/version.ts +1 -1
  789. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +2 -0
  790. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  791. package/front_end/third_party/puppeteer/package/src/util/incremental-id-generator.ts +20 -0
  792. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +2 -0
  793. package/front_end/ui/components/buttons/Button.test.ts +14 -0
  794. package/front_end/ui/components/buttons/Button.ts +27 -4
  795. package/front_end/ui/components/cards/card.css +7 -4
  796. package/front_end/ui/components/data_grid/DataGridControllerIntegrator.ts +4 -1
  797. package/front_end/ui/components/dialogs/ButtonDialog.test.ts +78 -0
  798. package/front_end/ui/components/dialogs/ButtonDialog.ts +131 -0
  799. package/front_end/ui/components/dialogs/Dialog.test.ts +43 -0
  800. package/front_end/ui/components/dialogs/Dialog.ts +63 -3
  801. package/front_end/ui/components/dialogs/ShortcutDialog.test.ts +15 -1
  802. package/front_end/ui/components/dialogs/ShortcutDialog.ts +33 -23
  803. package/front_end/ui/components/dialogs/buttonDialog.css +9 -0
  804. package/front_end/ui/components/dialogs/dialog.css +15 -4
  805. package/front_end/ui/components/dialogs/dialogs.ts +2 -0
  806. package/front_end/ui/components/dialogs/shortcutDialog.css +58 -38
  807. package/front_end/ui/components/docs/dialog/button_dialog.html +28 -0
  808. package/front_end/ui/components/docs/dialog/button_dialog.ts +29 -0
  809. package/front_end/ui/components/docs/freestyler/basic.ts +6 -8
  810. package/front_end/ui/components/docs/freestyler/empty_state.ts +6 -8
  811. package/front_end/ui/components/docs/performance_panel/basic.ts +1 -1
  812. package/front_end/ui/components/docs/performance_panel/timeline_history_manager.ts +6 -4
  813. package/front_end/ui/components/docs/performance_panel/track_example.html +1 -1
  814. package/front_end/ui/components/floating_button/FloatingButton.ts +3 -2
  815. package/front_end/ui/components/icon_button/fileSourceIcon.css +7 -3
  816. package/front_end/ui/components/issue_counter/IssueCounter.ts +15 -2
  817. package/front_end/ui/components/legacy_wrapper/LegacyWrapper.ts +1 -1
  818. package/front_end/ui/components/markdown_view/MarkdownView.test.ts +39 -17
  819. package/front_end/ui/components/markdown_view/MarkdownView.ts +92 -14
  820. package/front_end/ui/components/markdown_view/markdownView.css +15 -0
  821. package/front_end/ui/components/render_coordinator/RenderCoordinator.ts +24 -18
  822. package/front_end/ui/components/settings/SettingCheckbox.ts +3 -2
  823. package/front_end/ui/components/switch/SwitchImpl.ts +2 -2
  824. package/front_end/ui/legacy/ContextMenu.ts +2 -2
  825. package/front_end/ui/legacy/Infobar.ts +6 -0
  826. package/front_end/ui/legacy/InplaceEditor.ts +18 -14
  827. package/front_end/ui/legacy/InspectorView.ts +40 -0
  828. package/front_end/ui/legacy/ListWidget.ts +4 -2
  829. package/front_end/ui/legacy/TabbedPane.ts +0 -14
  830. package/front_end/ui/legacy/ThrottledWidget.ts +2 -2
  831. package/front_end/ui/legacy/Toolbar.ts +3 -3
  832. package/front_end/ui/legacy/UIUtils.ts +8 -13
  833. package/front_end/ui/legacy/Widget.ts +32 -0
  834. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +7 -2
  835. package/front_end/ui/legacy/components/data_grid/DataGrid.test.ts +6 -9
  836. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +43 -38
  837. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +21 -12
  838. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.test.ts +19 -0
  839. package/front_end/ui/legacy/components/inline_editor/LinkSwatch.ts +1 -1
  840. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +1 -1
  841. package/front_end/ui/legacy/components/perf_ui/ChartViewport.ts +2 -2
  842. package/front_end/ui/legacy/components/perf_ui/FilmStripView.ts +1 -1
  843. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +37 -47
  844. package/front_end/ui/legacy/components/perf_ui/OverviewGrid.ts +129 -100
  845. package/front_end/ui/legacy/components/perf_ui/TimelineGrid.ts +4 -2
  846. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.test.ts +9 -4
  847. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewCalculator.ts +23 -9
  848. package/front_end/ui/legacy/components/perf_ui/TimelineOverviewPane.ts +102 -43
  849. package/front_end/ui/legacy/components/perf_ui/flameChart.css +0 -2
  850. package/front_end/ui/legacy/components/perf_ui/perf_ui-meta.ts +4 -4
  851. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.test.ts +49 -0
  852. package/front_end/ui/legacy/components/source_frame/BinaryResourceViewFactory.ts +23 -46
  853. package/front_end/ui/legacy/components/source_frame/ImageView.ts +1 -1
  854. package/front_end/ui/legacy/components/utils/ImagePreview.ts +1 -1
  855. package/front_end/ui/legacy/components/utils/jsUtils.css +8 -0
  856. package/front_end/ui/legacy/filter.css +1 -1
  857. package/front_end/ui/legacy/inspectorCommon.css +1 -1
  858. package/front_end/ui/legacy/listWidget.css +4 -1
  859. package/front_end/ui/legacy/reportView.css +1 -1
  860. package/front_end/ui/legacy/textPrompt.css +1 -1
  861. package/front_end/ui/legacy/toolbar.css +7 -11
  862. package/front_end/ui/legacy/treeoutline.css +3 -1
  863. package/front_end/ui/visual_logging/KnownContextValues.ts +186 -1
  864. package/front_end/ui/visual_logging/LoggingConfig.ts +6 -2
  865. package/front_end/ui/visual_logging/LoggingDriver.test.ts +27 -1
  866. package/front_end/ui/visual_logging/LoggingDriver.ts +7 -4
  867. package/package.json +8 -8
  868. package/scripts/build/ninja/bundle.gni +3 -3
  869. package/scripts/build/{rollup.config.js → rollup.config.mjs} +4 -4
  870. package/scripts/build/wasm-as.py +1 -1
  871. package/scripts/devtools_paths.py +8 -4
  872. package/scripts/eslint_rules/tests/check_test_definitions_test.js +8 -3
  873. package/scripts/freestyler/auto_freestyler.js +12 -4
  874. package/scripts/freestyler/to_tsv.mjs +40 -0
  875. package/scripts/tools/update_goldens.py +11 -13
  876. package/scripts/tools/update_goldens_v2.py +1 -1
  877. package/front_end/models/timeline_model/TimelineModelFilter.ts +0 -61
  878. package/front_end/panels/timeline/components/insights/SidebarInsight.test.ts +0 -72
  879. package/front_end/ui/components/docs/two_states_counter/basic.html +0 -27
  880. package/front_end/ui/components/docs/two_states_counter/basic.ts +0 -45
  881. package/front_end/ui/components/two_states_counter/TwoStatesCounter.test.ts +0 -73
  882. package/front_end/ui/components/two_states_counter/TwoStatesCounter.ts +0 -104
  883. package/front_end/ui/components/two_states_counter/twoStatesCounter.css +0 -37
  884. package/front_end/ui/components/two_states_counter/two_states_counter.ts +0 -9
  885. /package/front_end/Images/{rollup.config.js → rollup.config.mjs} +0 -0
@@ -514,17 +514,12 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
514
514
  }
515
515
 
516
516
  #handleRequestRedirect(
517
- client: CDPSession,
517
+ _client: CDPSession,
518
518
  request: CdpHTTPRequest,
519
519
  responsePayload: Protocol.Network.Response,
520
520
  extraInfo: Protocol.Network.ResponseReceivedExtraInfoEvent | null,
521
521
  ): void {
522
- const response = new CdpHTTPResponse(
523
- client,
524
- request,
525
- responsePayload,
526
- extraInfo,
527
- );
522
+ const response = new CdpHTTPResponse(request, responsePayload, extraInfo);
528
523
  request._response = response;
529
524
  request._redirectChain.push(request);
530
525
  response._resolveBody(
@@ -536,7 +531,7 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
536
531
  }
537
532
 
538
533
  #emitResponseEvent(
539
- client: CDPSession,
534
+ _client: CDPSession,
540
535
  responseReceived: Protocol.Network.ResponseReceivedEvent,
541
536
  extraInfo: Protocol.Network.ResponseReceivedExtraInfoEvent | null,
542
537
  ): void {
@@ -568,7 +563,6 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
568
563
  }
569
564
 
570
565
  const response = new CdpHTTPResponse(
571
- client,
572
566
  request,
573
567
  responseReceived.response,
574
568
  extraInfo,
@@ -627,10 +621,10 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
627
621
  event,
628
622
  );
629
623
  if (queuedEvents.loadingFinishedEvent) {
630
- this.#emitLoadingFinished(queuedEvents.loadingFinishedEvent);
624
+ this.#emitLoadingFinished(client, queuedEvents.loadingFinishedEvent);
631
625
  }
632
626
  if (queuedEvents.loadingFailedEvent) {
633
- this.#emitLoadingFailed(queuedEvents.loadingFailedEvent);
627
+ this.#emitLoadingFailed(client, queuedEvents.loadingFailedEvent);
634
628
  }
635
629
  return;
636
630
  }
@@ -654,7 +648,7 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
654
648
  }
655
649
 
656
650
  #onLoadingFinished(
657
- _client: CDPSession,
651
+ client: CDPSession,
658
652
  event: Protocol.Network.LoadingFinishedEvent,
659
653
  ): void {
660
654
  // If the response event for this request is still waiting on a
@@ -665,11 +659,14 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
665
659
  if (queuedEvents) {
666
660
  queuedEvents.loadingFinishedEvent = event;
667
661
  } else {
668
- this.#emitLoadingFinished(event);
662
+ this.#emitLoadingFinished(client, event);
669
663
  }
670
664
  }
671
665
 
672
- #emitLoadingFinished(event: Protocol.Network.LoadingFinishedEvent): void {
666
+ #emitLoadingFinished(
667
+ client: CDPSession,
668
+ event: Protocol.Network.LoadingFinishedEvent,
669
+ ): void {
673
670
  const request = this.#networkEventManager.getRequest(event.requestId);
674
671
  // For certain requestIds we never receive requestWillBeSent event.
675
672
  // @see https://crbug.com/750469
@@ -677,6 +674,8 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
677
674
  return;
678
675
  }
679
676
 
677
+ this.#maybeReassignOOPIFRequestClient(client, request);
678
+
680
679
  // Under certain conditions we never get the Network.responseReceived
681
680
  // event from protocol. @see https://crbug.com/883475
682
681
  if (request.response()) {
@@ -687,7 +686,7 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
687
686
  }
688
687
 
689
688
  #onLoadingFailed(
690
- _client: CDPSession,
689
+ client: CDPSession,
691
690
  event: Protocol.Network.LoadingFailedEvent,
692
691
  ): void {
693
692
  // If the response event for this request is still waiting on a
@@ -698,17 +697,21 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
698
697
  if (queuedEvents) {
699
698
  queuedEvents.loadingFailedEvent = event;
700
699
  } else {
701
- this.#emitLoadingFailed(event);
700
+ this.#emitLoadingFailed(client, event);
702
701
  }
703
702
  }
704
703
 
705
- #emitLoadingFailed(event: Protocol.Network.LoadingFailedEvent): void {
704
+ #emitLoadingFailed(
705
+ client: CDPSession,
706
+ event: Protocol.Network.LoadingFailedEvent,
707
+ ): void {
706
708
  const request = this.#networkEventManager.getRequest(event.requestId);
707
709
  // For certain requestIds we never receive requestWillBeSent event.
708
710
  // @see https://crbug.com/750469
709
711
  if (!request) {
710
712
  return;
711
713
  }
714
+ this.#maybeReassignOOPIFRequestClient(client, request);
712
715
  request._failureText = event.errorText;
713
716
  const response = request.response();
714
717
  if (response) {
@@ -717,4 +720,18 @@ export class NetworkManager extends EventEmitter<NetworkManagerEvents> {
717
720
  this.#forgetRequest(request, true);
718
721
  this.emit(NetworkManagerEvent.RequestFailed, request);
719
722
  }
723
+
724
+ #maybeReassignOOPIFRequestClient(
725
+ client: CDPSession,
726
+ request: CdpHTTPRequest,
727
+ ): void {
728
+ // Document requests for OOPIFs start in the parent frame but are adopted by their
729
+ // child frame, meaning their loadingFinished and loadingFailed events are fired on
730
+ // the child session. In this case we reassign the request CDPSession to ensure all
731
+ // subsequent actions use the correct session (e.g. retrieving response body in
732
+ // HTTPResponse).
733
+ if (client !== request.client && request.isNavigationRequest()) {
734
+ request.client = client;
735
+ }
736
+ }
720
737
  }
@@ -552,6 +552,10 @@ export class CdpPage extends Page {
552
552
  return this._timeoutSettings.timeout();
553
553
  }
554
554
 
555
+ override getDefaultNavigationTimeout(): number {
556
+ return this._timeoutSettings.navigationTimeout();
557
+ }
558
+
555
559
  override async queryObjects<Prototype>(
556
560
  prototypeHandle: JSHandle<Prototype>,
557
561
  ): Promise<JSHandle<Prototype[]>> {
@@ -6,6 +6,7 @@
6
6
 
7
7
  import {Deferred} from '../util/Deferred.js';
8
8
  import {rewriteError} from '../util/ErrorLike.js';
9
+ import {createIncrementalIdGenerator} from '../util/incremental-id-generator.js';
9
10
 
10
11
  import {ProtocolError, TargetCloseError} from './Errors.js';
11
12
  import {debugError} from './util.js';
@@ -159,18 +160,3 @@ export class Callback {
159
160
  return this.#label;
160
161
  }
161
162
  }
162
-
163
- /**
164
- * @internal
165
- */
166
- export function createIncrementalIdGenerator(): GetIdFn {
167
- let id = 0;
168
- return (): number => {
169
- return ++id;
170
- };
171
- }
172
-
173
- /**
174
- * @internal
175
- */
176
- export type GetIdFn = () => number;
@@ -12,6 +12,7 @@ import type {
12
12
  } from '../api/Browser.js';
13
13
 
14
14
  import type {ConnectionTransport} from './ConnectionTransport.js';
15
+ import type {DownloadBehavior} from './DownloadBehavior.js';
15
16
  import type {Viewport} from './Viewport.js';
16
17
 
17
18
  /**
@@ -54,6 +55,10 @@ export interface BrowserConnectOptions {
54
55
  * @defaultValue '\{width: 800, height: 600\}'
55
56
  */
56
57
  defaultViewport?: Viewport | null;
58
+ /**
59
+ * Sets the download behavior for the context.
60
+ */
61
+ downloadBehavior?: DownloadBehavior;
57
62
  /**
58
63
  * Slows down Puppeteer operations by the specified amount of milliseconds to
59
64
  * aid debugging.
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import type {Frame} from '../api/Frame.js';
7
8
  import type {JSHandle} from '../api/JSHandle.js';
8
9
 
9
10
  /**
@@ -60,6 +61,7 @@ export class ConsoleMessage {
60
61
  #text: string;
61
62
  #args: JSHandle[];
62
63
  #stackTraceLocations: ConsoleMessageLocation[];
64
+ #frame?: Frame;
63
65
 
64
66
  /**
65
67
  * @internal
@@ -69,11 +71,13 @@ export class ConsoleMessage {
69
71
  text: string,
70
72
  args: JSHandle[],
71
73
  stackTraceLocations: ConsoleMessageLocation[],
74
+ frame?: Frame,
72
75
  ) {
73
76
  this.#type = type;
74
77
  this.#text = text;
75
78
  this.#args = args;
76
79
  this.#stackTraceLocations = stackTraceLocations;
80
+ this.#frame = frame;
77
81
  }
78
82
 
79
83
  /**
@@ -101,7 +105,10 @@ export class ConsoleMessage {
101
105
  * The location of the console message.
102
106
  */
103
107
  location(): ConsoleMessageLocation {
104
- return this.#stackTraceLocations[0] ?? {};
108
+ return (
109
+ this.#stackTraceLocations[0] ??
110
+ (this.#frame ? {url: this.#frame.url()} : {})
111
+ );
105
112
  }
106
113
 
107
114
  /**
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Google Inc.
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @public
9
+ */
10
+ export type DownloadPolicy = 'deny' | 'allow' | 'allowAndName' | 'default';
11
+
12
+ /**
13
+ * @public
14
+ */
15
+ export interface DownloadBehavior {
16
+ /**
17
+ * Whether to allow all or deny all download requests, or use default behavior if
18
+ * available.
19
+ *
20
+ * @remarks
21
+ * Setting this to `allowAndName` will name all files according to their download guids.
22
+ */
23
+ policy: DownloadPolicy;
24
+ /**
25
+ * The default path to save downloaded files to.
26
+ *
27
+ * @remarks
28
+ * Setting this is required if behavior is set to `allow` or `allowAndName`.
29
+ */
30
+ downloadPath?: string;
31
+ }
@@ -38,6 +38,13 @@ export class PuppeteerError extends Error {
38
38
  */
39
39
  export class TimeoutError extends PuppeteerError {}
40
40
 
41
+ /**
42
+ * TouchError is thrown when an attempt is made to move or end a touch that does
43
+ * not exist.
44
+ * @public
45
+ */
46
+ export class TouchError extends PuppeteerError {}
47
+
41
48
  /**
42
49
  * ProtocolError is emitted whenever there is an error from the protocol.
43
50
  *
@@ -56,15 +56,9 @@ export class WaitTask<T = unknown> {
56
56
  this.#polling = options.polling;
57
57
  this.#root = options.root;
58
58
  this.#signal = options.signal;
59
- this.#signal?.addEventListener(
60
- 'abort',
61
- () => {
62
- void this.terminate(this.#signal?.reason);
63
- },
64
- {
65
- once: true,
66
- },
67
- );
59
+ this.#signal?.addEventListener('abort', this.#onAbortSignal, {
60
+ once: true,
61
+ });
68
62
 
69
63
  switch (typeof fn) {
70
64
  case 'string':
@@ -176,6 +170,8 @@ export class WaitTask<T = unknown> {
176
170
  async terminate(error?: Error): Promise<void> {
177
171
  this.#world.taskManager.delete(this);
178
172
 
173
+ this.#signal?.removeEventListener('abort', this.#onAbortSignal);
174
+
179
175
  clearTimeout(this.#timeout);
180
176
 
181
177
  if (error && !this.#result.finished()) {
@@ -242,6 +238,10 @@ export class WaitTask<T = unknown> {
242
238
  cause: error,
243
239
  });
244
240
  }
241
+
242
+ #onAbortSignal = () => {
243
+ void this.terminate(this.#signal?.reason);
244
+ };
245
245
  }
246
246
 
247
247
  /**
@@ -39,3 +39,4 @@ export * from './util.js';
39
39
  export type * from './Viewport.js';
40
40
  export * from './WaitTask.js';
41
41
  export * from './XPathQueryHandler.js';
42
+ export type * from './DownloadBehavior.js';
@@ -16,7 +16,7 @@ export const isNode = !!(typeof process !== 'undefined' && process.version);
16
16
 
17
17
  export interface EnvironmentDependencies {
18
18
  fs: typeof FS;
19
- path: typeof Path;
19
+ path?: typeof Path;
20
20
  ScreenRecorder: typeof ScreenRecorder;
21
21
  }
22
22
 
@@ -31,9 +31,6 @@ export const environment: {
31
31
  get fs(): typeof FS {
32
32
  throw new Error('fs is not available in this environment');
33
33
  },
34
- get path(): typeof Path {
35
- throw new Error('path is not available in this environment');
36
- },
37
34
  get ScreenRecorder(): typeof ScreenRecorder {
38
35
  throw new Error('ScreenRecorder is not available in this environment');
39
36
  },
@@ -5,4 +5,4 @@
5
5
  *
6
6
  * @internal
7
7
  */
8
- export const source = "\"use strict\";var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)g(t,r,{get:e[r],enumerable:!0})},J=(t,e,r,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of B(e))!Y.call(t,n)&&n!==r&&g(t,n,{get:()=>e[n],enumerable:!(o=X(e,n))||o.enumerable});return t};var z=t=>J(g({},\"__esModule\",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=z(pe);var N=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends N{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(n=>n instanceof t?(n.#n&&r.add(n),n.valueOrThrow()):n);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error(\"Timeout cleared\"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#n;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#n=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#n),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#s;valueOrThrow(){return this.#s||(this.#s=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#s}};var L=new Map,F=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var x={};l(x,{ariaQuerySelector:()=>G,ariaQuerySelectorAll:()=>b});var G=(t,e)=>globalThis.__ariaQuerySelector(t,e),b=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var E={};l(E,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{customQuerySelectors:()=>P});var v=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(n,i)=>{for(let s of o(n,i))return s;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(n,i)=>{let s=o(n,i);return s?[s]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error(\"At least one query method must be defined.\");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new v;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&!r&&s.matches(e)&&(r=s)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&s.matches(e)&&r.push(s)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var y=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}},w=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let n=await this.#e();if(!n){window.requestAnimationFrame(o);return}e.resolve(n),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,\"Polling never started.\"),this.#r.finished()||this.#r.reject(new Error(\"Polling stopped\"))}result(){return u(this.#r,\"Polling never started.\"),this.#r.valueOrThrow()}},T=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set([\"checkbox\",\"image\",\"radio\"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),ne=new Set([\"SCRIPT\",\"STYLE\"]),f=t=>!ne.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,j=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},W=new WeakSet,se=new MutationObserver(t=>{for(let e of t)j(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:\"\",immediate:[]},!f(t)))return e;let r=\"\";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener(\"input\",o=>{j(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??\"\",r+=o.nodeValue??\"\";continue}r&&e.immediate.push(r),r=\"\",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),W.has(t)||(se.observe(t,{childList:!0,characterData:!0,subtree:!0}),W.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let n;o.shadowRoot?n=m(o.shadowRoot,e):n=m(o,e);for(let i of n)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>S,pierceAll:()=>O});var ie=[\"hidden\",\"collapse\"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),n=o&&!ie.includes(o.visibility)&&!ae(r);return e===n?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>\"shadowRoot\"in t&&t.shadowRoot instanceof ShadowRoot;function*S(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=S(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var Q={};l(Q,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let n=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],s;for(;(s=n.iterateNext())&&(i.push(s),!(r&&i.length===r)););for(let h=0;h<i.length;h++)s=i[h],yield s,delete i[h]};var ue=/[-\\w\\P{ASCII}*]/u,H=(r=>(r.Descendent=\">>>\",r.Child=\">>>>\",r))(H||{}),V=t=>\"querySelectorAll\"in t,M=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){if(typeof this.#o==\"string\")switch(this.#o.trimStart()){case\":scope\":this.#t();break}for(;this.#o!==void 0;this.#t()){let e=this.#o;typeof e==\"string\"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let n of r.parentElement.children)if(++o,n===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case\"text\":yield*m(r,e.value);break;case\"xpath\":yield*q(r,e.value);break;case\"aria\":yield*b(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case\">>>>\":{this.elements=a.flatMap(this.elements,S),this.#t();break}case\">>>\":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},D=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let n=0;for(let s=e.previousSibling;s;s=s.previousSibling)++n;let i=this.calculate(e.parentNode,[n]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[n=-1,...i]=e;return r===n?U(o,i):r<n?-1:1},de=async function*(t){let e=new Set;for await(let o of t)e.add(o);let r=new D;yield*[...e.values()].map(o=>[o,r.calculate(o)]).sort(([,o],[,n])=>U(o,n)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let n=0;return o.some(i=>(typeof i==\"string\"?++n:n=0,n>1))}))throw new Error(\"Multiple deep combinators found in sequence.\");return de(a.flatMap(r,o=>{let n=new M(t,o);return n.run(),n.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...x,...A,...R,..._,...C,...k,...Q,...E,Deferred:c,createFunction:F,createTextContent:d,IntervalPoller:T,isSuitableNodeForTextMatching:f,MutationPoller:y,RAFPoller:w}),he=me;\n";
8
+ export const source = "\"use strict\";var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var l=(t,e)=>{for(var r in e)g(t,r,{get:e[r],enumerable:!0})},J=(t,e,r,o)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let n of B(e))!Y.call(t,n)&&n!==r&&g(t,n,{get:()=>e[n],enumerable:!(o=X(e,n))||o.enumerable});return t};var z=t=>J(g({},\"__esModule\",{value:!0}),t);var pe={};l(pe,{default:()=>he});module.exports=z(pe);var N=class extends Error{constructor(e,r){super(e,r),this.name=this.constructor.name}get[Symbol.toStringTag](){return this.constructor.name}},p=class extends N{};var c=class t{static create(e){return new t(e)}static async race(e){let r=new Set;try{let o=e.map(n=>n instanceof t?(n.#n&&r.add(n),n.valueOrThrow()):n);return await Promise.race(o)}finally{for(let o of r)o.reject(new Error(\"Timeout cleared\"))}}#e=!1;#r=!1;#o;#t;#a=new Promise(e=>{this.#t=e});#n;#i;constructor(e){e&&e.timeout>0&&(this.#i=new p(e.message),this.#n=setTimeout(()=>{this.reject(this.#i)},e.timeout))}#l(e){clearTimeout(this.#n),this.#o=e,this.#t()}resolve(e){this.#r||this.#e||(this.#e=!0,this.#l(e))}reject(e){this.#r||this.#e||(this.#r=!0,this.#l(e))}resolved(){return this.#e}finished(){return this.#e||this.#r}value(){return this.#o}#s;valueOrThrow(){return this.#s||(this.#s=(async()=>{if(await this.#a,this.#r)throw this.#o;return this.#o})()),this.#s}};var L=new Map,F=t=>{let e=L.get(t);return e||(e=new Function(`return ${t}`)(),L.set(t,e),e)};var x={};l(x,{ariaQuerySelector:()=>G,ariaQuerySelectorAll:()=>b});var G=(t,e)=>globalThis.__ariaQuerySelector(t,e),b=async function*(t,e){yield*await globalThis.__ariaQuerySelectorAll(t,e)};var E={};l(E,{cssQuerySelector:()=>K,cssQuerySelectorAll:()=>Z});var K=(t,e)=>t.querySelector(e),Z=function(t,e){return t.querySelectorAll(e)};var A={};l(A,{customQuerySelectors:()=>P});var v=class{#e=new Map;register(e,r){if(!r.queryOne&&r.queryAll){let o=r.queryAll;r.queryOne=(n,i)=>{for(let s of o(n,i))return s;return null}}else if(r.queryOne&&!r.queryAll){let o=r.queryOne;r.queryAll=(n,i)=>{let s=o(n,i);return s?[s]:[]}}else if(!r.queryOne||!r.queryAll)throw new Error(\"At least one query method must be defined.\");this.#e.set(e,{querySelector:r.queryOne,querySelectorAll:r.queryAll})}unregister(e){this.#e.delete(e)}get(e){return this.#e.get(e)}clear(){this.#e.clear()}},P=new v;var R={};l(R,{pierceQuerySelector:()=>ee,pierceQuerySelectorAll:()=>te});var ee=(t,e)=>{let r=null,o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&!r&&s.matches(e)&&(r=s)}while(!r&&i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r},te=(t,e)=>{let r=[],o=n=>{let i=document.createTreeWalker(n,NodeFilter.SHOW_ELEMENT);do{let s=i.currentNode;s.shadowRoot&&o(s.shadowRoot),!(s instanceof ShadowRoot)&&s!==n&&s.matches(e)&&r.push(s)}while(i.nextNode())};return t instanceof Document&&(t=t.documentElement),o(t),r};var u=(t,e)=>{if(!t)throw new Error(e)};var y=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=new MutationObserver(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())}),this.#o.observe(this.#r,{childList:!0,subtree:!0,attributes:!0})}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(this.#o.disconnect(),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}},w=class{#e;#r;constructor(e){this.#e=e}async start(){let e=this.#r=c.create(),r=await this.#e();if(r){e.resolve(r);return}let o=async()=>{if(e.finished())return;let n=await this.#e();if(!n){window.requestAnimationFrame(o);return}e.resolve(n),await this.stop()};window.requestAnimationFrame(o)}async stop(){u(this.#r,\"Polling never started.\"),this.#r.finished()||this.#r.reject(new Error(\"Polling stopped\"))}result(){return u(this.#r,\"Polling never started.\"),this.#r.valueOrThrow()}},S=class{#e;#r;#o;#t;constructor(e,r){this.#e=e,this.#r=r}async start(){let e=this.#t=c.create(),r=await this.#e();if(r){e.resolve(r);return}this.#o=setInterval(async()=>{let o=await this.#e();o&&(e.resolve(o),await this.stop())},this.#r)}async stop(){u(this.#t,\"Polling never started.\"),this.#t.finished()||this.#t.reject(new Error(\"Polling stopped\")),this.#o&&(clearInterval(this.#o),this.#o=void 0)}result(){return u(this.#t,\"Polling never started.\"),this.#t.valueOrThrow()}};var _={};l(_,{PCombinator:()=>H,pQuerySelector:()=>fe,pQuerySelectorAll:()=>$});var a=class{static async*map(e,r){for await(let o of e)yield await r(o)}static async*flatMap(e,r){for await(let o of e)yield*r(o)}static async collect(e){let r=[];for await(let o of e)r.push(o);return r}static async first(e){for await(let r of e)return r}};var C={};l(C,{textQuerySelectorAll:()=>m});var re=new Set([\"checkbox\",\"image\",\"radio\"]),oe=t=>t instanceof HTMLSelectElement||t instanceof HTMLTextAreaElement||t instanceof HTMLInputElement&&!re.has(t.type),ne=new Set([\"SCRIPT\",\"STYLE\"]),f=t=>!ne.has(t.nodeName)&&!document.head?.contains(t),I=new WeakMap,j=t=>{for(;t;)I.delete(t),t instanceof ShadowRoot?t=t.host:t=t.parentNode},W=new WeakSet,se=new MutationObserver(t=>{for(let e of t)j(e.target)}),d=t=>{let e=I.get(t);if(e||(e={full:\"\",immediate:[]},!f(t)))return e;let r=\"\";if(oe(t))e.full=t.value,e.immediate.push(t.value),t.addEventListener(\"input\",o=>{j(o.target)},{once:!0,capture:!0});else{for(let o=t.firstChild;o;o=o.nextSibling){if(o.nodeType===Node.TEXT_NODE){e.full+=o.nodeValue??\"\",r+=o.nodeValue??\"\";continue}r&&e.immediate.push(r),r=\"\",o.nodeType===Node.ELEMENT_NODE&&(e.full+=d(o).full)}r&&e.immediate.push(r),t instanceof Element&&t.shadowRoot&&(e.full+=d(t.shadowRoot).full),W.has(t)||(se.observe(t,{childList:!0,characterData:!0,subtree:!0}),W.add(t))}return I.set(t,e),e};var m=function*(t,e){let r=!1;for(let o of t.childNodes)if(o instanceof Element&&f(o)){let n;o.shadowRoot?n=m(o.shadowRoot,e):n=m(o,e);for(let i of n)yield i,r=!0}r||t instanceof Element&&f(t)&&d(t).full.includes(e)&&(yield t)};var k={};l(k,{checkVisibility:()=>le,pierce:()=>T,pierceAll:()=>O});var ie=[\"hidden\",\"collapse\"],le=(t,e)=>{if(!t)return e===!1;if(e===void 0)return t;let r=t.nodeType===Node.TEXT_NODE?t.parentElement:t,o=window.getComputedStyle(r),n=o&&!ie.includes(o.visibility)&&!ae(r);return e===n?t:!1};function ae(t){let e=t.getBoundingClientRect();return e.width===0||e.height===0}var ce=t=>\"shadowRoot\"in t&&t.shadowRoot instanceof ShadowRoot;function*T(t){ce(t)?yield t.shadowRoot:yield t}function*O(t){t=T(t).next().value,yield t;let e=[document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT)];for(let r of e){let o;for(;o=r.nextNode();)o.shadowRoot&&(yield o.shadowRoot,e.push(document.createTreeWalker(o.shadowRoot,NodeFilter.SHOW_ELEMENT)))}}var Q={};l(Q,{xpathQuerySelectorAll:()=>q});var q=function*(t,e,r=-1){let n=(t.ownerDocument||document).evaluate(e,t,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),i=[],s;for(;(s=n.iterateNext())&&(i.push(s),!(r&&i.length===r)););for(let h=0;h<i.length;h++)s=i[h],yield s,delete i[h]};var ue=/[-\\w\\P{ASCII}*]/u,H=(r=>(r.Descendent=\">>>\",r.Child=\">>>>\",r))(H||{}),V=t=>\"querySelectorAll\"in t,M=class{#e;#r=[];#o=void 0;elements;constructor(e,r){this.elements=[e],this.#e=r,this.#t()}async run(){if(typeof this.#o==\"string\")switch(this.#o.trimStart()){case\":scope\":this.#t();break}for(;this.#o!==void 0;this.#t()){let e=this.#o;typeof e==\"string\"?e[0]&&ue.test(e[0])?this.elements=a.flatMap(this.elements,async function*(r){V(r)&&(yield*r.querySelectorAll(e))}):this.elements=a.flatMap(this.elements,async function*(r){if(!r.parentElement){if(!V(r))return;yield*r.querySelectorAll(e);return}let o=0;for(let n of r.parentElement.children)if(++o,n===r)break;yield*r.parentElement.querySelectorAll(`:scope>:nth-child(${o})${e}`)}):this.elements=a.flatMap(this.elements,async function*(r){switch(e.name){case\"text\":yield*m(r,e.value);break;case\"xpath\":yield*q(r,e.value);break;case\"aria\":yield*b(r,e.value);break;default:let o=P.get(e.name);if(!o)throw new Error(`Unknown selector type: ${e.name}`);yield*o.querySelectorAll(r,e.value)}})}}#t(){if(this.#r.length!==0){this.#o=this.#r.shift();return}if(this.#e.length===0){this.#o=void 0;return}let e=this.#e.shift();switch(e){case\">>>>\":{this.elements=a.flatMap(this.elements,T),this.#t();break}case\">>>\":{this.elements=a.flatMap(this.elements,O),this.#t();break}default:this.#r=e,this.#t();break}}},D=class{#e=new WeakMap;calculate(e,r=[]){if(e===null)return r;e instanceof ShadowRoot&&(e=e.host);let o=this.#e.get(e);if(o)return[...o,...r];let n=0;for(let s=e.previousSibling;s;s=s.previousSibling)++n;let i=this.calculate(e.parentNode,[n]);return this.#e.set(e,i),[...i,...r]}},U=(t,e)=>{if(t.length+e.length===0)return 0;let[r=-1,...o]=t,[n=-1,...i]=e;return r===n?U(o,i):r<n?-1:1},de=async function*(t){let e=new Set;for await(let o of t)e.add(o);let r=new D;yield*[...e.values()].map(o=>[o,r.calculate(o)]).sort(([,o],[,n])=>U(o,n)).map(([o])=>o)},$=function(t,e){let r=JSON.parse(e);if(r.some(o=>{let n=0;return o.some(i=>(typeof i==\"string\"?++n:n=0,n>1))}))throw new Error(\"Multiple deep combinators found in sequence.\");return de(a.flatMap(r,o=>{let n=new M(t,o);return n.run(),n.elements}))},fe=async function(t,e){for await(let r of $(t,e))return r;return null};var me=Object.freeze({...x,...A,...R,..._,...C,...k,...Q,...E,Deferred:c,createFunction:F,createTextContent:d,IntervalPoller:S,isSuitableNodeForTextMatching:f,MutationPoller:y,RAFPoller:w}),he=me;\n";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * @internal
3
3
  */
4
- export const packageVersion = '23.6.1';
4
+ export const packageVersion = '23.9.0';
@@ -84,6 +84,7 @@ export abstract class BrowserLauncher {
84
84
  handleSIGHUP = true,
85
85
  acceptInsecureCerts = false,
86
86
  defaultViewport = DEFAULT_VIEWPORT,
87
+ downloadBehavior,
87
88
  slowMo = 0,
88
89
  timeout = 30000,
89
90
  waitForInitialPage = true,
@@ -206,6 +207,7 @@ export abstract class BrowserLauncher {
206
207
  [],
207
208
  acceptInsecureCerts,
208
209
  defaultViewport,
210
+ downloadBehavior,
209
211
  browserProcess.nodeProcess,
210
212
  browserCloseCallback,
211
213
  options.targetFilter,
@@ -8,7 +8,7 @@
8
8
  * @internal
9
9
  */
10
10
  export const PUPPETEER_REVISIONS = Object.freeze({
11
- chrome: '130.0.6723.69',
12
- 'chrome-headless-shell': '130.0.6723.69',
13
- firefox: 'stable_131.0.3',
11
+ chrome: '131.0.6778.85',
12
+ 'chrome-headless-shell': '131.0.6778.85',
13
+ firefox: 'stable_132.0.2',
14
14
  });
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2024 Google Inc.
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * @internal
9
+ */
10
+ export function createIncrementalIdGenerator(): GetIdFn {
11
+ let id = 0;
12
+ return (): number => {
13
+ return ++id;
14
+ };
15
+ }
16
+
17
+ /**
18
+ * @internal
19
+ */
20
+ export type GetIdFn = () => number;
@@ -104,6 +104,7 @@
104
104
  "package/lib/esm/puppeteer/common/CustomQueryHandler.js",
105
105
  "package/lib/esm/puppeteer/common/Debug.js",
106
106
  "package/lib/esm/puppeteer/common/Device.js",
107
+ "package/lib/esm/puppeteer/common/DownloadBehavior.js",
107
108
  "package/lib/esm/puppeteer/common/Errors.js",
108
109
  "package/lib/esm/puppeteer/common/EventEmitter.js",
109
110
  "package/lib/esm/puppeteer/common/FileChooser.js",
@@ -168,6 +169,7 @@
168
169
  "package/lib/esm/puppeteer/util/decorators.js",
169
170
  "package/lib/esm/puppeteer/util/disposable.js",
170
171
  "package/lib/esm/puppeteer/util/encoding.js",
172
+ "package/lib/esm/puppeteer/util/incremental-id-generator.js",
171
173
  "package/lib/esm/puppeteer/util/util.js",
172
174
  "package/lib/esm/third_party/mitt/mitt.js",
173
175
  "package/lib/esm/third_party/parsel-js/parsel-js.js",
@@ -166,6 +166,20 @@ describe('Button', () => {
166
166
  assert.isFalse(innerButton.classList.contains('small'));
167
167
  });
168
168
 
169
+ it('prevents only "keydown" events for Enter and Space to bubble up', () => {
170
+ const button = renderButton({variant: Buttons.Button.Variant.PRIMARY});
171
+ const onKeydown = sinon.spy();
172
+ button.addEventListener('keydown', onKeydown);
173
+
174
+ const innerButton = button.shadowRoot!.querySelector('button') as HTMLButtonElement;
175
+ dispatchKeyDownEvent(innerButton, {bubbles: true, composed: true, key: 'Enter'});
176
+ dispatchKeyDownEvent(innerButton, {bubbles: true, composed: true, key: ' '});
177
+ dispatchKeyDownEvent(innerButton, {bubbles: true, composed: true, key: 'x'});
178
+
179
+ assert.isTrue(onKeydown.calledOnce);
180
+ assert.strictEqual(onKeydown.getCall(0).args[0].key, 'x');
181
+ });
182
+
169
183
  describe('in forms', () => {
170
184
  function renderForm(data: Buttons.Button.ButtonData = {
171
185
  variant: Buttons.Button.Variant.PRIMARY,
@@ -300,6 +300,28 @@ export class Button extends HTMLElement {
300
300
  }
301
301
  }
302
302
 
303
+ /**
304
+ * Handles "keydown" events on the internal `<button>` element.
305
+ *
306
+ * This callback stops propagation of "keydown" events for Enter and Space
307
+ * originating from the `<button>` element, to ensure that this custom element
308
+ * can safely be used within parent elements (such as the `TreeOutline`) that
309
+ * do have "keydown" handlers as well.
310
+ *
311
+ * Without this special logic, the Enter and Space events would be
312
+ * consumed by parent elements, and no "click" event would be generated from
313
+ * this button.
314
+ *
315
+ * @param event the "keydown" event.
316
+ * @see https://crbug.com/373168872
317
+ */
318
+ #onKeydown(event: KeyboardEvent): void {
319
+ if (event.key !== 'Enter' && event.key !== ' ') {
320
+ return;
321
+ }
322
+ event.stopPropagation();
323
+ }
324
+
303
325
  #isToolbarVariant(): boolean {
304
326
  return this.#props.variant === Variant.TOOLBAR || this.#props.variant === Variant.PRIMARY_TOOLBAR;
305
327
  }
@@ -362,10 +384,11 @@ export class Button extends HTMLElement {
362
384
  LitHtml.render(
363
385
  html`
364
386
  <button title=${ifDefined(this.#props.title)}
365
- .disabled=${this.#props.disabled}
366
- class=${classMap(classes)}
367
- aria-pressed=${ifDefined(this.#props.toggled)}
368
- jslog=${ifDefined(jslog)}
387
+ .disabled=${this.#props.disabled}
388
+ class=${classMap(classes)}
389
+ aria-pressed=${ifDefined(this.#props.toggled)}
390
+ jslog=${ifDefined(jslog)}
391
+ @keydown=${this.#onKeydown}
369
392
  >${hasIcon
370
393
  ? html`
371
394
  <devtools-icon name=${ifDefined(this.#props.toggled ? this.#props.toggledIconName : this.#props.iconName || this.#props.iconUrl)}>
@@ -4,14 +4,17 @@
4
4
  * found in the LICENSE file.
5
5
  */
6
6
  :host {
7
- max-width: var(--sys-size-37);
7
+ display: flex;
8
+ max-width: var(--sys-size-35);
8
9
  width: 100%;
9
10
  }
10
11
 
11
12
  .card {
13
+ break-inside: avoid;
12
14
  min-width: var(--sys-size-31);
13
- max-width: var(--sys-size-37);
14
- margin: var(--sys-size-3) var(--sys-size-5) var(--sys-size-5) var(--sys-size-5);
15
+ max-width: var(--sys-size-35);
16
+ margin: var(--sys-size-3) var(--sys-size-6) var(--sys-size-5) var(--sys-size-5);
17
+ flex: 1;
15
18
  }
16
19
 
17
20
  .heading-wrapper {
@@ -35,7 +38,7 @@ slot[name="heading-suffix"]::slotted(*) {
35
38
 
36
39
  .content-container {
37
40
  border-radius: var(--sys-shape-corner-small);
38
- box-shadow: var(--sys-elevation-level3);
41
+ box-shadow: var(--sys-elevation-level2);
39
42
  display: flex;
40
43
  flex-direction: column;
41
44
  background: var(--app-color-card-background);
@@ -35,7 +35,10 @@ export class DataGridControllerIntegrator extends UI.Widget.VBox {
35
35
  return this.#data;
36
36
  }
37
37
 
38
- update(data: Readonly<DataGridControllerData>): void {
38
+ override update(data?: Readonly<DataGridControllerData>): void {
39
+ if (!data) {
40
+ return;
41
+ }
39
42
  this.#data = data;
40
43
  // Setting of `dataGrid.data` is compute heavy because of the
41
44
  // filtering logic. Thus, we're debouncing calls to the setter.
@@ -0,0 +1,78 @@
1
+ // Copyright 2024 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import * as Helpers from '../../../testing/DOMHelpers.js'; // eslint-disable-line rulesdir/es_modules_import
6
+ import * as Buttons from '../buttons/buttons.js';
7
+ import * as Coordinator from '../render_coordinator/render_coordinator.js';
8
+
9
+ import * as Dialogs from './dialogs.js';
10
+
11
+ const coordinator = Coordinator.RenderCoordinator.RenderCoordinator.instance();
12
+
13
+ describe('ButtonDialog', () => {
14
+ async function getButtonDialog(fieldToTest?: Partial<Dialogs.ButtonDialog.ButtonDialogData>) {
15
+ const defaultMinimumButtonDialogData: Dialogs.ButtonDialog.ButtonDialogData = {
16
+ openOnRender: false,
17
+ iconName: 'help',
18
+ variant: Buttons.Button.Variant.TOOLBAR,
19
+ dialogTitle: '',
20
+ };
21
+ const buttonDialog = new Dialogs.ButtonDialog.ButtonDialog();
22
+ buttonDialog.data = Object.assign(defaultMinimumButtonDialogData, fieldToTest);
23
+
24
+ Helpers.renderElementIntoDOM(buttonDialog);
25
+ await coordinator.done();
26
+
27
+ return buttonDialog;
28
+ }
29
+
30
+ function getButtonFromButtonDialog(buttonDialog: Dialogs.ButtonDialog.ButtonDialog): Buttons.Button.Button {
31
+ assert.isNotNull(buttonDialog.shadowRoot);
32
+ const button = buttonDialog.shadowRoot.querySelector('devtools-button');
33
+ if (!button) {
34
+ assert.fail('devtools-button not found');
35
+ }
36
+ assert.instanceOf(button, HTMLElement);
37
+ return button;
38
+ }
39
+
40
+ function getDialogFromButtonDialog(buttonDialog: Dialogs.ButtonDialog.ButtonDialog): Dialogs.Dialog.Dialog {
41
+ assert.isNotNull(buttonDialog.shadowRoot);
42
+ const dialog = buttonDialog.shadowRoot.querySelector('devtools-dialog');
43
+ if (!dialog) {
44
+ assert.fail('devtools-dialog not found');
45
+ }
46
+ assert.instanceOf(dialog, HTMLElement);
47
+ return dialog;
48
+ }
49
+
50
+ it('should display dialog on initial render when provided prop', async () => {
51
+ const buttonDialog = await getButtonDialog({
52
+ openOnRender: true,
53
+ });
54
+ const dialog = getDialogFromButtonDialog(buttonDialog);
55
+
56
+ assert.isTrue(dialog.hasAttribute('open'));
57
+ });
58
+
59
+ it('should not display dialog on initial render by default', async () => {
60
+ const buttonDialog = await getButtonDialog({
61
+ openOnRender: false,
62
+ });
63
+ const dialog = getDialogFromButtonDialog(buttonDialog);
64
+
65
+ assert.isFalse(dialog.hasAttribute('open'));
66
+ });
67
+
68
+ it('Opens if button is clicked', async () => {
69
+ const buttonDialog = await getButtonDialog({});
70
+ const dialog = getDialogFromButtonDialog(buttonDialog);
71
+ assert.isFalse(dialog.hasAttribute('open'));
72
+
73
+ const button = getButtonFromButtonDialog(buttonDialog);
74
+ button.click();
75
+ await coordinator.done();
76
+ assert.isTrue(dialog.hasAttribute('open'));
77
+ });
78
+ });