chrome-devtools-frontend 1.0.1550444 → 1.0.1555174

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 (466) hide show
  1. package/docs/styleguide/ux/components.md +34 -8
  2. package/eslint.config.mjs +7 -0
  3. package/front_end/Images/generate-css-vars.js +8 -4
  4. package/front_end/Images/src/spark.svg +10 -0
  5. package/front_end/core/common/Settings.ts +20 -8
  6. package/front_end/core/host/UserMetrics.ts +3 -1
  7. package/front_end/core/i18n/collect-ui-strings.js +19 -10
  8. package/front_end/core/i18n/generate-locales-js.js +4 -4
  9. package/front_end/core/protocol_client/CDPConnection.ts +1 -0
  10. package/front_end/core/protocol_client/InspectorBackend.ts +5 -1
  11. package/front_end/core/root/Runtime.ts +0 -12
  12. package/front_end/core/sdk/DOMModel.ts +38 -3
  13. package/front_end/core/sdk/DebuggerModel.ts +9 -4
  14. package/front_end/core/sdk/IsolateManager.ts +7 -0
  15. package/front_end/core/sdk/PageResourceLoader.ts +3 -3
  16. package/front_end/core/sdk/RehydratingConnection.ts +5 -2
  17. package/front_end/core/sdk/ResourceTreeModel.ts +0 -1
  18. package/front_end/entrypoints/main/MainImpl.ts +28 -10
  19. package/front_end/generated/SupportedCSSProperties.js +32 -0
  20. package/front_end/models/ai_assistance/AiConversation.ts +94 -4
  21. package/front_end/models/ai_assistance/agents/AiAgent.ts +30 -15
  22. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +179 -41
  23. package/front_end/models/ai_assistance/agents/StylingAgent.snapshot.txt +5 -0
  24. package/front_end/models/ai_assistance/agents/StylingAgent.ts +62 -0
  25. package/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts +2 -1
  26. package/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts +1 -7
  27. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.snapshot.txt +124 -12
  28. package/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts +125 -30
  29. package/front_end/models/ai_assistance/performance/AICallTree.ts +42 -0
  30. package/front_end/models/ai_code_generation/AiCodeGeneration.ts +12 -0
  31. package/front_end/models/issues_manager/Issue.ts +1 -0
  32. package/front_end/models/issues_manager/IssueAggregator.ts +9 -0
  33. package/front_end/models/issues_manager/IssuesManager.ts +5 -0
  34. package/front_end/models/issues_manager/PermissionElementIssue.ts +262 -0
  35. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabled.md +7 -0
  36. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluder.md +9 -0
  37. package/front_end/models/issues_manager/descriptions/permissionElementActivationDisabledWithOccluderParent.md +9 -0
  38. package/front_end/models/issues_manager/descriptions/permissionElementCspFrameAncestorsMissing.md +5 -0
  39. package/front_end/models/issues_manager/descriptions/permissionElementFencedFrameDisallowed.md +5 -0
  40. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooLarge.md +5 -0
  41. package/front_end/models/issues_manager/descriptions/permissionElementFontSizeTooSmall.md +5 -0
  42. package/front_end/models/issues_manager/descriptions/permissionElementGeolocationDeprecated.md +5 -0
  43. package/front_end/models/issues_manager/descriptions/permissionElementInsetBoxShadowUnsupported.md +5 -0
  44. package/front_end/models/issues_manager/descriptions/permissionElementInvalidDisplayStyle.md +5 -0
  45. package/front_end/models/issues_manager/descriptions/permissionElementInvalidSizeValue.md +5 -0
  46. package/front_end/models/issues_manager/descriptions/permissionElementInvalidType.md +5 -0
  47. package/front_end/models/issues_manager/descriptions/permissionElementInvalidTypeActivation.md +5 -0
  48. package/front_end/models/issues_manager/descriptions/permissionElementLowContrast.md +5 -0
  49. package/front_end/models/issues_manager/descriptions/permissionElementNonOpaqueColor.md +5 -0
  50. package/front_end/models/issues_manager/descriptions/permissionElementPaddingBottomUnsupported.md +6 -0
  51. package/front_end/models/issues_manager/descriptions/permissionElementPaddingRightUnsupported.md +6 -0
  52. package/front_end/models/issues_manager/descriptions/permissionElementPermissionsPolicyBlocked.md +5 -0
  53. package/front_end/models/issues_manager/descriptions/permissionElementRegistrationFailed.md +5 -0
  54. package/front_end/models/issues_manager/descriptions/permissionElementRequestInProgress.md +5 -0
  55. package/front_end/models/issues_manager/descriptions/permissionElementSecurityChecksFailed.md +5 -0
  56. package/front_end/models/issues_manager/descriptions/permissionElementTypeNotSupported.md +5 -0
  57. package/front_end/models/issues_manager/descriptions/permissionElementUntrustedEvent.md +7 -0
  58. package/front_end/models/issues_manager/issues_manager.ts +2 -0
  59. package/front_end/models/javascript_metadata/NativeFunctions.js +23 -23
  60. package/front_end/models/stack_trace/StackTraceModel.ts +37 -18
  61. package/front_end/models/trace/Processor.ts +14 -15
  62. package/front_end/models/trace/insights/Common.ts +2 -8
  63. package/front_end/models/trace/insights/types.ts +12 -2
  64. package/front_end/models/trace/types/TraceEvents.ts +4 -1
  65. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +28 -6
  66. package/front_end/panels/ai_assistance/ai_assistance-meta.ts +9 -23
  67. package/front_end/panels/ai_assistance/ai_assistance.ts +1 -0
  68. package/front_end/panels/ai_assistance/components/ChatView.ts +78 -2
  69. package/front_end/panels/ai_assistance/components/CollapsibleAssistanceContentWidget.ts +71 -0
  70. package/front_end/panels/ai_assistance/components/PerformanceAgentFlameChart.ts +126 -0
  71. package/front_end/panels/ai_assistance/components/PerformanceAgentMarkdownRenderer.ts +131 -2
  72. package/front_end/panels/ai_assistance/components/chatView.css +28 -0
  73. package/front_end/panels/ai_assistance/components/collapsibleAssistanceContentWidget.css +33 -0
  74. package/front_end/panels/application/AppManifestView.ts +1007 -521
  75. package/front_end/panels/application/ApplicationPanelSidebar.ts +1 -17
  76. package/front_end/panels/application/BounceTrackingMitigationsTreeElement.ts +2 -6
  77. package/front_end/panels/application/ExtensionStorageItemsView.ts +3 -5
  78. package/front_end/panels/application/KeyValueStorageItemsView.ts +3 -2
  79. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -2
  80. package/front_end/panels/application/components/BounceTrackingMitigationsView.ts +133 -118
  81. package/front_end/panels/application/preloading/PreloadingView.ts +46 -45
  82. package/front_end/panels/application/preloading/components/MismatchedPreloadingGrid.ts +80 -75
  83. package/front_end/panels/application/preloading/components/PreloadingDisabledInfobar.ts +169 -133
  84. package/front_end/panels/application/preloading/components/RuleSetDetailsView.ts +74 -93
  85. package/front_end/panels/application/preloading/components/RuleSetGrid.ts +142 -117
  86. package/front_end/panels/application/preloading/components/UsedPreloadingView.ts +51 -11
  87. package/front_end/panels/application/preloading/components/components.ts +0 -2
  88. package/front_end/panels/common/Annotation.ts +184 -0
  89. package/front_end/panels/common/AnnotationManager.ts +148 -11
  90. package/front_end/panels/common/ExtensionView.ts +47 -0
  91. package/front_end/panels/common/PersistenceUtils.ts +22 -25
  92. package/front_end/panels/common/annotation.css +40 -0
  93. package/front_end/panels/common/common.ts +1 -0
  94. package/front_end/panels/console/ConsoleInsightTeaser.ts +187 -5
  95. package/front_end/panels/console/ConsolePinPane.ts +437 -217
  96. package/front_end/panels/console/ConsolePrompt.ts +32 -223
  97. package/front_end/panels/console/ConsoleView.ts +67 -66
  98. package/front_end/panels/console/ConsoleViewMessage.ts +8 -3
  99. package/front_end/panels/console/consoleInsightTeaser.css +23 -0
  100. package/front_end/panels/console/consoleView.css +1 -1
  101. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
  102. package/front_end/panels/elements/ColorSwatchPopoverIcon.ts +2 -2
  103. package/front_end/panels/elements/ComputedStyleWidget.ts +16 -5
  104. package/front_end/panels/elements/ElementsPanel.ts +38 -12
  105. package/front_end/panels/elements/ElementsSidebarPane.ts +1 -3
  106. package/front_end/panels/elements/ElementsTreeElement.ts +313 -353
  107. package/front_end/panels/elements/ElementsTreeOutline.ts +39 -13
  108. package/front_end/panels/elements/StylePropertyTreeElement.ts +15 -14
  109. package/front_end/panels/elements/StylesSidebarPane.ts +1 -1
  110. package/front_end/panels/emulation/MediaQueryInspector.ts +171 -125
  111. package/front_end/panels/explain/components/ConsoleInsight.ts +175 -150
  112. package/front_end/panels/explain/components/consoleInsight.css +348 -347
  113. package/front_end/panels/issues/AffectedPermissionElementsView.ts +46 -0
  114. package/front_end/panels/issues/IssueView.ts +2 -0
  115. package/front_end/panels/issues/IssuesPane.ts +6 -0
  116. package/front_end/panels/layer_viewer/LayerDetailsView.ts +165 -149
  117. package/front_end/panels/layer_viewer/Layers3DView.ts +131 -78
  118. package/front_end/panels/lighthouse/LighthouseStatusView.ts +149 -100
  119. package/front_end/panels/linear_memory_inspector/components/LinearMemoryHighlightChipList.ts +90 -64
  120. package/front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts +25 -34
  121. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +60 -44
  122. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +170 -151
  123. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterSettings.ts +50 -51
  124. package/front_end/panels/linear_memory_inspector/components/valueInterpreterDisplay.css +0 -13
  125. package/front_end/panels/linear_memory_inspector/components/valueInterpreterSettings.css +20 -18
  126. package/front_end/panels/mobile_throttling/CalibrationController.ts +3 -1
  127. package/front_end/panels/network/NetworkDataGridNode.ts +14 -6
  128. package/front_end/panels/network/NetworkItemView.ts +42 -3
  129. package/front_end/panels/network/NetworkLogView.ts +10 -11
  130. package/front_end/panels/network/NetworkPanel.ts +63 -1
  131. package/front_end/panels/network/RequestInitiatorView.ts +146 -113
  132. package/front_end/panels/network/components/RequestHeaderSection.css +51 -50
  133. package/front_end/panels/network/components/RequestHeaderSection.ts +81 -71
  134. package/front_end/panels/network/components/RequestHeadersView.css +1 -1
  135. package/front_end/panels/network/components/RequestHeadersView.ts +26 -11
  136. package/front_end/panels/network/components/RequestTrustTokensView.css +24 -14
  137. package/front_end/panels/network/components/RequestTrustTokensView.ts +144 -140
  138. package/front_end/panels/profiler/IsolateSelector.ts +2 -1
  139. package/front_end/panels/protocol_monitor/ProtocolMonitor.ts +49 -33
  140. package/front_end/panels/recorder/RecorderController.ts +2 -3
  141. package/front_end/panels/recorder/components/ControlButton.ts +68 -34
  142. package/front_end/panels/recorder/components/CreateRecordingView.ts +9 -6
  143. package/front_end/panels/recorder/components/RecordingView.ts +81 -88
  144. package/front_end/panels/recorder/components/ReplaySection.ts +226 -145
  145. package/front_end/panels/recorder/{controllers → components}/SelectorPicker.ts +129 -52
  146. package/front_end/panels/recorder/components/StepEditor.ts +21 -67
  147. package/front_end/panels/recorder/components/StepView.ts +222 -180
  148. package/front_end/panels/recorder/components/TimelineSection.ts +69 -48
  149. package/front_end/panels/recorder/components/components.ts +2 -2
  150. package/front_end/panels/recorder/components/selectorPicker.css +14 -0
  151. package/front_end/panels/recorder/components/stepEditor.css +0 -5
  152. package/front_end/panels/recorder/components/stepView.css +196 -198
  153. package/front_end/panels/recorder/extensions/ExtensionManager.ts +4 -48
  154. package/front_end/panels/recorder/models/ScreenshotUtils.ts +17 -11
  155. package/front_end/panels/security/CookieControlsView.ts +30 -26
  156. package/front_end/panels/settings/components/SyncSection.ts +0 -1
  157. package/front_end/panels/sources/CSSPlugin.ts +3 -3
  158. package/front_end/panels/sources/CallStackSidebarPane.ts +60 -75
  159. package/front_end/panels/sources/SourcesPanel.ts +1 -11
  160. package/front_end/panels/sources/TabbedEditorContainer.ts +11 -8
  161. package/front_end/panels/sources/ThreadsSidebarPane.ts +96 -101
  162. package/front_end/panels/sources/threadsSidebarPane.css +6 -5
  163. package/front_end/panels/timeline/CompatibilityTracksAppender.ts +0 -1
  164. package/front_end/panels/timeline/InteractionsTrackAppender.ts +2 -3
  165. package/front_end/panels/timeline/TimelineFlameChartDataProvider.ts +23 -33
  166. package/front_end/panels/timeline/TimelineFlameChartNetworkDataProvider.ts +4 -3
  167. package/front_end/panels/timeline/TimelineFlameChartView.ts +12 -0
  168. package/front_end/panels/timeline/TimelinePanel.ts +3 -5
  169. package/front_end/panels/timeline/components/IgnoreListSetting.ts +164 -142
  170. package/front_end/panels/timeline/components/InteractionBreakdown.ts +48 -28
  171. package/front_end/panels/timeline/components/LayoutShiftDetails.ts +18 -23
  172. package/front_end/panels/timeline/components/NetworkRequestTooltip.ts +98 -73
  173. package/front_end/panels/timeline/components/Sidebar.ts +16 -7
  174. package/front_end/panels/timeline/components/SidebarInsightsTab.ts +174 -137
  175. package/front_end/panels/timeline/components/SidebarSingleInsightSet.ts +262 -291
  176. package/front_end/panels/timeline/components/Utils.ts +25 -0
  177. package/front_end/panels/timeline/components/insights/BaseInsightComponent.ts +210 -146
  178. package/front_end/panels/timeline/components/insights/CLSCulprits.ts +8 -20
  179. package/front_end/panels/timeline/components/insights/Cache.ts +0 -9
  180. package/front_end/panels/timeline/components/insights/Checklist.ts +53 -43
  181. package/front_end/panels/timeline/components/insights/DOMSize.ts +11 -33
  182. package/front_end/panels/timeline/components/insights/DocumentLatency.ts +6 -12
  183. package/front_end/panels/timeline/components/insights/DuplicatedJavaScript.ts +0 -9
  184. package/front_end/panels/timeline/components/insights/EventRef.ts +47 -109
  185. package/front_end/panels/timeline/components/insights/FontDisplay.ts +0 -9
  186. package/front_end/panels/timeline/components/insights/ForcedReflow.ts +0 -9
  187. package/front_end/panels/timeline/components/insights/INPBreakdown.ts +0 -9
  188. package/front_end/panels/timeline/components/insights/ImageDelivery.ts +1 -10
  189. package/front_end/panels/timeline/components/insights/ImageRef.ts +112 -0
  190. package/front_end/panels/timeline/components/insights/InsightRenderer.ts +91 -0
  191. package/front_end/panels/timeline/components/insights/LCPBreakdown.ts +0 -9
  192. package/front_end/panels/timeline/components/insights/LCPDiscovery.ts +11 -14
  193. package/front_end/panels/timeline/components/insights/LegacyJavaScript.ts +0 -9
  194. package/front_end/panels/timeline/components/insights/ModernHTTP.ts +0 -9
  195. package/front_end/panels/timeline/components/insights/NetworkDependencyTree.ts +6 -21
  196. package/front_end/panels/timeline/components/insights/NodeLink.ts +68 -43
  197. package/front_end/panels/timeline/components/insights/README.md +2 -3
  198. package/front_end/panels/timeline/components/insights/RenderBlocking.ts +0 -9
  199. package/front_end/panels/timeline/components/insights/SlowCSSSelector.ts +0 -9
  200. package/front_end/panels/timeline/components/insights/ThirdParties.ts +0 -9
  201. package/front_end/panels/timeline/components/insights/Viewport.ts +7 -19
  202. package/front_end/panels/timeline/components/insights/baseInsightComponent.css +5 -0
  203. package/front_end/panels/timeline/components/insights/insights.ts +2 -0
  204. package/front_end/panels/timeline/components/interactionBreakdown.css +15 -13
  205. package/front_end/panels/timeline/components/sidebarInsightsTab.css +50 -48
  206. package/front_end/panels/timeline/enable-easter-egg.js +7 -3
  207. package/front_end/third_party/chromium/README.chromium +1 -1
  208. package/front_end/third_party/puppeteer/README.chromium +2 -2
  209. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  210. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  211. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js +8 -0
  212. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BluetoothEmulation.js.map +1 -0
  213. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +87 -0
  214. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  217. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +5 -24
  219. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +5 -0
  221. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  224. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  226. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  227. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  228. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js +42 -0
  229. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  230. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -1
  231. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  232. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +10 -0
  233. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  235. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  236. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js +90 -0
  237. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  238. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -1
  239. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +3 -2
  241. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +4 -1
  243. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +5 -2
  245. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  247. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +14 -2
  249. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +7 -0
  252. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  256. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  257. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js +30 -0
  258. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  259. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +5 -2
  260. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +22 -3
  262. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  263. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  265. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  266. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  267. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +4 -6
  268. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  269. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +2 -2
  270. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  271. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +1 -1
  272. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
  273. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +2 -0
  274. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  275. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +8 -0
  276. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  277. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +8 -3
  279. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
  281. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
  283. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js +30 -0
  285. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/BrowserConnector.js.map +1 -1
  286. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +15 -0
  287. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  288. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts +1 -1
  290. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -13
  292. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  293. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +5 -3
  294. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js +17 -0
  296. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.js.map +1 -1
  297. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  298. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  299. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  300. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  301. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  303. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +221 -4
  304. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +182 -95
  305. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts +96 -0
  306. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.d.ts.map +1 -0
  307. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js +7 -0
  308. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BluetoothEmulation.js.map +1 -0
  309. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +87 -0
  310. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  311. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  312. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +2 -6
  313. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -1
  314. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +4 -22
  315. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -1
  316. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +5 -0
  317. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  318. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  319. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  320. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  321. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  322. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts +18 -0
  323. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.d.ts.map +1 -0
  324. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js +38 -0
  325. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BluetoothEmulation.js.map +1 -0
  326. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -1
  327. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  328. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +10 -0
  329. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  330. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts +27 -0
  331. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.d.ts.map +1 -0
  332. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js +85 -0
  333. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/DeviceRequestPrompt.js.map +1 -0
  334. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -1
  335. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  336. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +3 -2
  337. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  338. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +4 -1
  339. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  340. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +5 -2
  341. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  342. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +4 -0
  343. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  344. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +14 -2
  345. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  346. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
  347. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +7 -0
  348. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
  349. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +1 -1
  350. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  351. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts +18 -0
  352. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.d.ts.map +1 -0
  353. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js +26 -0
  354. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BluetoothEmulation.js.map +1 -0
  355. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +5 -2
  356. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  357. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +22 -3
  358. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  359. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts +1 -1
  360. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpSession.d.ts.map +1 -1
  361. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +2 -3
  362. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  363. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +2 -4
  364. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  365. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +2 -2
  366. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  367. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +2 -2
  368. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
  369. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +2 -0
  370. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  371. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +8 -0
  372. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  373. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  374. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +8 -3
  375. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
  376. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
  377. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
  378. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
  379. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
  380. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js +31 -1
  381. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/BrowserConnector.js.map +1 -1
  382. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +15 -0
  383. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  384. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts +1 -1
  385. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  386. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -13
  387. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  388. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +5 -3
  389. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  390. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js +16 -1
  391. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.js.map +1 -1
  392. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  393. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  394. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  395. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  396. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  397. package/front_end/third_party/puppeteer/package/lib/types.d.ts +221 -4
  398. package/front_end/third_party/puppeteer/package/package.json +4 -4
  399. package/front_end/third_party/puppeteer/package/src/api/BluetoothEmulation.ts +103 -0
  400. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +96 -1
  401. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +2 -10
  402. package/front_end/third_party/puppeteer/package/src/api/Page.ts +6 -0
  403. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  404. package/front_end/third_party/puppeteer/package/src/bidi/BluetoothEmulation.ts +52 -0
  405. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +15 -0
  406. package/front_end/third_party/puppeteer/package/src/bidi/DeviceRequestPrompt.ts +138 -0
  407. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +7 -3
  408. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +10 -2
  409. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +30 -2
  410. package/front_end/third_party/puppeteer/package/src/bidi/util.ts +8 -0
  411. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +1 -1
  412. package/front_end/third_party/puppeteer/package/src/cdp/BluetoothEmulation.ts +47 -0
  413. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +33 -3
  414. package/front_end/third_party/puppeteer/package/src/cdp/CdpSession.ts +1 -1
  415. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +3 -8
  416. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -2
  417. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +9 -4
  418. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +13 -0
  419. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +8 -3
  420. package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
  421. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +45 -1
  422. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +20 -0
  423. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +5 -17
  424. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +23 -7
  425. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  426. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  427. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +4 -0
  428. package/front_end/ui/components/annotations/AnnotationRepository.ts +153 -13
  429. package/front_end/ui/components/settings/SettingCheckbox.ts +4 -6
  430. package/front_end/ui/components/snackbars/Snackbars.docs.ts +0 -1
  431. package/front_end/ui/components/text_editor/AiCodeCompletionTeaserPlaceholder.ts +12 -3
  432. package/front_end/ui/components/text_editor/AiCodeGenerationProvider.ts +182 -0
  433. package/front_end/ui/components/text_editor/text_editor.ts +1 -0
  434. package/front_end/ui/helpers/OpenInNewTab.ts +5 -1
  435. package/front_end/ui/i18n/i18n.ts +9 -9
  436. package/front_end/ui/kit/icons/Icon.docs.ts +22 -65
  437. package/front_end/ui/kit/kit.ts +1 -0
  438. package/front_end/ui/kit/link/Link.docs.ts +15 -0
  439. package/front_end/ui/kit/link/Link.ts +151 -0
  440. package/front_end/ui/kit/link/link.css +27 -0
  441. package/front_end/ui/legacy/EmptyWidget.ts +6 -0
  442. package/front_end/ui/legacy/Floaty.ts +442 -0
  443. package/front_end/ui/legacy/InspectorView.ts +12 -0
  444. package/front_end/ui/legacy/ReportView.ts +1 -1
  445. package/front_end/ui/legacy/SelectMenu.docs.ts +0 -1
  446. package/front_end/ui/legacy/TabbedPane.ts +150 -65
  447. package/front_end/ui/legacy/Widget.ts +1 -3
  448. package/front_end/ui/legacy/components/cookie_table/CookiesTable.ts +1 -1
  449. package/front_end/ui/legacy/components/inline_editor/ColorSwatch.ts +36 -36
  450. package/front_end/ui/legacy/components/object_ui/JavaScriptREPL.ts +22 -37
  451. package/front_end/ui/legacy/components/object_ui/RemoteObjectPreviewFormatter.ts +31 -1
  452. package/front_end/ui/legacy/components/perf_ui/FlameChart.ts +2 -2
  453. package/front_end/ui/legacy/components/utils/Linkifier.ts +7 -11
  454. package/front_end/ui/legacy/floaty.css +77 -0
  455. package/front_end/ui/legacy/legacy.ts +2 -0
  456. package/front_end/ui/legacy/tabbedPane.css +4 -7
  457. package/front_end/ui/visual_logging/KnownContextValues.ts +7 -0
  458. package/inspector_overlay/loadCSS.rollup.js +5 -4
  459. package/package.json +2 -2
  460. package/front_end/panels/application/preloading/components/PreloadingMismatchedHeadersGrid.ts +0 -99
  461. package/front_end/panels/recorder/components/SelectButton.ts +0 -304
  462. package/front_end/panels/recorder/controllers/controllers.ts +0 -7
  463. package/front_end/ui/components/chrome_link/ChromeLink.ts +0 -76
  464. package/front_end/ui/components/chrome_link/chromeLink.css +0 -12
  465. package/front_end/ui/components/chrome_link/chrome_link.ts +0 -9
  466. /package/front_end/panels/recorder/components/{selectButton.css → replaySection.css} +0 -0
@@ -0,0 +1,262 @@
1
+ // Copyright 2025 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ import type * as SDK from '../../core/sdk/sdk.js';
6
+ import * as Protocol from '../../generated/protocol.js';
7
+
8
+ import {type AffectedElement, Issue, IssueCategory, IssueKind} from './Issue.js';
9
+ import type {MarkdownIssueDescription} from './MarkdownIssueDescription.js';
10
+
11
+ export class PermissionElementIssue extends Issue<Protocol.Audits.PermissionElementIssueDetails> {
12
+ #issueDetails: Protocol.Audits.PermissionElementIssueDetails;
13
+
14
+ constructor(
15
+ issueDetails: Protocol.Audits.PermissionElementIssueDetails, issuesModel: SDK.IssuesModel.IssuesModel|null) {
16
+ const issueCode = [
17
+ Protocol.Audits.InspectorIssueCode.PermissionElementIssue,
18
+ issueDetails.issueType,
19
+ ].join('::');
20
+ super(issueCode, issueDetails, issuesModel);
21
+ this.#issueDetails = issueDetails;
22
+ }
23
+
24
+ getCategory(): IssueCategory {
25
+ return IssueCategory.PERMISSION_ELEMENT;
26
+ }
27
+
28
+ getDescription(): MarkdownIssueDescription|null {
29
+ const issueType = this.#issueDetails.issueType;
30
+
31
+ switch (issueType) {
32
+ case Protocol.Audits.PermissionElementIssueType.InvalidType:
33
+ return {
34
+ file: 'permissionElementInvalidType.md',
35
+ substitutions: new Map([
36
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
37
+ ]),
38
+ links: [],
39
+ };
40
+ case Protocol.Audits.PermissionElementIssueType.FencedFrameDisallowed:
41
+ return {
42
+ file: 'permissionElementFencedFrameDisallowed.md',
43
+ substitutions: new Map([
44
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
45
+ ]),
46
+ links: [],
47
+ };
48
+ case Protocol.Audits.PermissionElementIssueType.CspFrameAncestorsMissing:
49
+ return {
50
+ file: 'permissionElementCspFrameAncestorsMissing.md',
51
+ substitutions: new Map([
52
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
53
+ ]),
54
+ links: [],
55
+ };
56
+ case Protocol.Audits.PermissionElementIssueType.PermissionsPolicyBlocked:
57
+ return {
58
+ file: 'permissionElementPermissionsPolicyBlocked.md',
59
+ substitutions: new Map([
60
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
61
+ ['PLACEHOLDER_PermissionName', this.#issueDetails.permissionName || ''],
62
+ ]),
63
+ links: [],
64
+ };
65
+ case Protocol.Audits.PermissionElementIssueType.PaddingRightUnsupported:
66
+ return {
67
+ file: 'permissionElementPaddingRightUnsupported.md',
68
+ substitutions: new Map([
69
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
70
+ ]),
71
+ links: [],
72
+ };
73
+ case Protocol.Audits.PermissionElementIssueType.PaddingBottomUnsupported:
74
+ return {
75
+ file: 'permissionElementPaddingBottomUnsupported.md',
76
+ substitutions: new Map([
77
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
78
+ ]),
79
+ links: [],
80
+ };
81
+ case Protocol.Audits.PermissionElementIssueType.InsetBoxShadowUnsupported:
82
+ return {
83
+ file: 'permissionElementInsetBoxShadowUnsupported.md',
84
+ substitutions: new Map([
85
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
86
+ ]),
87
+ links: [],
88
+ };
89
+ case Protocol.Audits.PermissionElementIssueType.RequestInProgress:
90
+ return {
91
+ file: 'permissionElementRequestInProgress.md',
92
+ substitutions: new Map([
93
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
94
+ ]),
95
+ links: [],
96
+ };
97
+ case Protocol.Audits.PermissionElementIssueType.UntrustedEvent:
98
+ return {
99
+ file: 'permissionElementUntrustedEvent.md',
100
+ substitutions: new Map([
101
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
102
+ ]),
103
+ links: [],
104
+ };
105
+ case Protocol.Audits.PermissionElementIssueType.RegistrationFailed:
106
+ return {
107
+ file: 'permissionElementRegistrationFailed.md',
108
+ substitutions: new Map([
109
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
110
+ ]),
111
+ links: [],
112
+ };
113
+ case Protocol.Audits.PermissionElementIssueType.TypeNotSupported:
114
+ return {
115
+ file: 'permissionElementTypeNotSupported.md',
116
+ substitutions: new Map([
117
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
118
+ ]),
119
+ links: [],
120
+ };
121
+ case Protocol.Audits.PermissionElementIssueType.InvalidTypeActivation:
122
+ return {
123
+ file: 'permissionElementInvalidTypeActivation.md',
124
+ substitutions: new Map([
125
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
126
+ ]),
127
+ links: [],
128
+ };
129
+ case Protocol.Audits.PermissionElementIssueType.SecurityChecksFailed:
130
+ return {
131
+ file: 'permissionElementSecurityChecksFailed.md',
132
+ substitutions: new Map([
133
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
134
+ ]),
135
+ links: [],
136
+ };
137
+ case Protocol.Audits.PermissionElementIssueType.ActivationDisabled: {
138
+ if (this.#issueDetails.occluderNodeInfo && this.#issueDetails.occluderParentNodeInfo) {
139
+ return {
140
+ file: 'permissionElementActivationDisabledWithOccluderParent.md',
141
+ substitutions: new Map([
142
+ ['PLACEHOLDER_DisableReason', this.#issueDetails.disableReason || ''],
143
+ ['PLACEHOLDER_OccluderInfo', this.#issueDetails.occluderNodeInfo || ''],
144
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
145
+ ['PLACEHOLDER_OccluderParentInfo', this.#issueDetails.occluderParentNodeInfo || ''],
146
+ ]),
147
+ links: [],
148
+ };
149
+ }
150
+
151
+ if (this.#issueDetails.occluderNodeInfo) {
152
+ return {
153
+ file: 'permissionElementActivationDisabledWithOccluder.md',
154
+ substitutions: new Map([
155
+ ['PLACEHOLDER_DisableReason', this.#issueDetails.disableReason || ''],
156
+ ['PLACEHOLDER_OccluderInfo', this.#issueDetails.occluderNodeInfo || ''],
157
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
158
+ ]),
159
+ links: [],
160
+ };
161
+ }
162
+
163
+ return {
164
+ file: 'permissionElementActivationDisabled.md',
165
+ substitutions: new Map([
166
+ ['PLACEHOLDER_DisableReason', this.#issueDetails.disableReason || ''],
167
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
168
+ ]),
169
+ links: [],
170
+ };
171
+ }
172
+ case Protocol.Audits.PermissionElementIssueType.GeolocationDeprecated:
173
+ return {
174
+ file: 'permissionElementGeolocationDeprecated.md',
175
+ links: [],
176
+ };
177
+ case Protocol.Audits.PermissionElementIssueType.InvalidDisplayStyle:
178
+ return {
179
+ file: 'permissionElementInvalidDisplayStyle.md',
180
+ substitutions: new Map([
181
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
182
+ ]),
183
+ links: [],
184
+ };
185
+ case Protocol.Audits.PermissionElementIssueType.NonOpaqueColor:
186
+ return {
187
+ file: 'permissionElementNonOpaqueColor.md',
188
+ substitutions: new Map([
189
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
190
+ ]),
191
+ links: [],
192
+ };
193
+ case Protocol.Audits.PermissionElementIssueType.LowContrast:
194
+ return {
195
+ file: 'permissionElementLowContrast.md',
196
+ substitutions: new Map([
197
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
198
+ ]),
199
+ links: [],
200
+ };
201
+ case Protocol.Audits.PermissionElementIssueType.FontSizeTooSmall:
202
+ return {
203
+ file: 'permissionElementFontSizeTooSmall.md',
204
+ substitutions: new Map([
205
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
206
+ ]),
207
+ links: [],
208
+ };
209
+ case Protocol.Audits.PermissionElementIssueType.FontSizeTooLarge:
210
+ return {
211
+ file: 'permissionElementFontSizeTooLarge.md',
212
+ substitutions: new Map([
213
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
214
+ ]),
215
+ links: [],
216
+ };
217
+ case Protocol.Audits.PermissionElementIssueType.InvalidSizeValue:
218
+ return {
219
+ file: 'permissionElementInvalidSizeValue.md',
220
+ substitutions: new Map([
221
+ ['PLACEHOLDER_Type', this.#issueDetails.type || ''],
222
+ ]),
223
+ links: [],
224
+ };
225
+ default:
226
+ console.warn('Unknown PermissionElementIssueType:', issueType);
227
+ return null;
228
+ }
229
+ }
230
+
231
+ override elements(): Iterable<AffectedElement> {
232
+ if (this.#issueDetails.nodeId) {
233
+ const target = this.model()?.target();
234
+ const result = [{
235
+ backendNodeId: this.#issueDetails.nodeId,
236
+ nodeName: this.#issueDetails.type || 'Affected element',
237
+ target: target || null,
238
+ }];
239
+ return result;
240
+ }
241
+ return [];
242
+ }
243
+
244
+ getKind(): IssueKind {
245
+ return this.#issueDetails.isWarning ? IssueKind.IMPROVEMENT : IssueKind.PAGE_ERROR;
246
+ }
247
+
248
+ primaryKey(): string {
249
+ return `${Protocol.Audits.InspectorIssueCode.PermissionElementIssue}-${JSON.stringify(this.#issueDetails)}`;
250
+ }
251
+
252
+ static fromInspectorIssue(
253
+ issuesModel: SDK.IssuesModel.IssuesModel|null,
254
+ inspectorIssue: Protocol.Audits.InspectorIssue): PermissionElementIssue[] {
255
+ const permissionElementIssueDetails = inspectorIssue.details.permissionElementIssueDetails;
256
+ if (!permissionElementIssueDetails) {
257
+ console.warn('Permission element issue without details received.');
258
+ return [];
259
+ }
260
+ return [new PermissionElementIssue(permissionElementIssueDetails, issuesModel)];
261
+ }
262
+ }
@@ -0,0 +1,7 @@
1
+ # Activation disabled
2
+
3
+ The "{PLACEHOLDER_Type}" element could not be activated for the following reason: {PLACEHOLDER_DisableReason}.
4
+
5
+ To resolve this issue, ensure that the element follows all styling restrictions and is fully visible to the user.
6
+
7
+ You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -0,0 +1,9 @@
1
+ # Activation disabled
2
+
3
+ The "{PLACEHOLDER_Type}" element could not be activated for the following reason: {PLACEHOLDER_DisableReason}.
4
+
5
+ The element is occluded by: "{PLACEHOLDER_OccluderInfo}"
6
+
7
+ To resolve this issue, ensure that the element follows all styling restrictions and is fully visible to the user.
8
+
9
+ You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -0,0 +1,9 @@
1
+ # Activation disabled
2
+
3
+ The "{PLACEHOLDER_Type}" element could not be activated for the following reason: {PLACEHOLDER_DisableReason}.
4
+
5
+ The element is occluded by: "{PLACEHOLDER_OccluderInfo}" (parent element: "{PLACEHOLDER_OccluderParentInfo}")
6
+
7
+ To resolve this issue, ensure that the element follows all styling restrictions and is fully visible to the user.
8
+
9
+ You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -0,0 +1,5 @@
1
+ # CSP `frame-ancestors` missing
2
+
3
+ The "{PLACEHOLDER_Type}" element is used in a cross-origin iframe, but the required `frame-ancestors` Content Security Policy directive is missing.
4
+
5
+ To resolve this issue, add a `frame-ancestors` Content Security Policy directive to the iframe.
@@ -0,0 +1,5 @@
1
+ # Fenced frame disallowed
2
+
3
+ The "{PLACEHOLDER_Type}" element is not allowed in a fenced frame.
4
+
5
+ To resolve this issue, ensure the element is not used in a fenced frame.
@@ -0,0 +1,5 @@
1
+ # Font size too large
2
+
3
+ The "{PLACEHOLDER_Type}" element's font size is too large.
4
+
5
+ To resolve this issue, ensure that the element's font is at most 'xx-large'.
@@ -0,0 +1,5 @@
1
+ # Font size too small
2
+
3
+ The "{PLACEHOLDER_Type}" element's font size is too small.
4
+
5
+ To resolve this issue, ensure that the element's font is at least 'small'.
@@ -0,0 +1,5 @@
1
+ # Geolocation deprecated
2
+
3
+ Using `<permission type="geolocation">` is deprecated.
4
+
5
+ To resolve this issue, use the `<geolocation>` element instead.
@@ -0,0 +1,5 @@
1
+ # Unsupported inset box shadow
2
+
3
+ The "{PLACEHOLDER_Type}" element does not support `inset` box shadows.
4
+
5
+ To resolve this issue, remove the `inset` keyword from the relevant stylesheet.
@@ -0,0 +1,5 @@
1
+ # Invalid display style
2
+
3
+ The "{PLACEHOLDER_Type}" element has an invalid display style. Values that result in an unsupported layout are not allowed.
4
+
5
+ To resolve this issue, consider using 'inline-block', 'block', or 'flex' instead.
@@ -0,0 +1,5 @@
1
+ # Invalid size value
2
+
3
+ Content, intrinsic, or stretch sizes are not supported as values for the min/max width and height of the "{PLACEHOLDER_Type}" element.
4
+
5
+ To resolve this issue, use absolute or relative lengths for the element's width and height.
@@ -0,0 +1,5 @@
1
+ # Invalid type attribute
2
+
3
+ The "{PLACEHOLDER_Type}" type is not supported.
4
+
5
+ To resolve this issue, ensure the element's type is one of the supported values: "camera", "microphone", "geolocation", "camera microphone".
@@ -0,0 +1,5 @@
1
+ # Invalid type activation
2
+
3
+ An element with the "{PLACEHOLDER_Type}" type was attempted to be activated. However this type is not supported.
4
+
5
+ To resolve this issue, ensure the element's type is one of the supported values: "camera", "microphone", "geolocation", "camera microphone".
@@ -0,0 +1,5 @@
1
+ # Low contrast
2
+
3
+ The contrast between the text color and background color of the "{PLACEHOLDER_Type}" element is too low.
4
+
5
+ To resolve this issue, ensure that your text/background colors have more contrast between them.
@@ -0,0 +1,5 @@
1
+ # Non-opaque color
2
+
3
+ The text color or background color of the "{PLACEHOLDER_Type}" element is non-opaque.
4
+
5
+ To resolve this issue, ensure the element's text and background colors have their alpha channel value at 100%.
@@ -0,0 +1,6 @@
1
+ # Unsupported bottom padding
2
+
3
+ The "{PLACEHOLDER_Type}" element does not support `padding-bottom`.
4
+ `padding-bottom` is always set to be identical to `padding-top`.
5
+
6
+ To resolve this issue, ensure the element's `padding-bottom` is unset or identical to `padding-top`.
@@ -0,0 +1,6 @@
1
+ # Unsupported right padding
2
+
3
+ The "{PLACEHOLDER_Type}" element does not support `padding-right`.
4
+ `padding-right` is always set to be identical to `padding-left`.
5
+
6
+ To resolve this issue, ensure the element's `padding-right` is unset or identical to `padding-left`.
@@ -0,0 +1,5 @@
1
+ # Permissions policy blocked
2
+
3
+ The "{PLACEHOLDER_Type}" element is blocked by the "{PLACEHOLDER_PermissionName}" permission policy.
4
+
5
+ To resolve this issue, ensure the frame which contains the element is loaded with the appropriate permission policy by its embedder.
@@ -0,0 +1,5 @@
1
+ # Quota exceeded
2
+
3
+ The "{PLACEHOLDER_Type}" element has surpassed the maximum instances quota per page.
4
+
5
+ To resolve this issue, ensure that you have no more than 3 elements of the same type per page.
@@ -0,0 +1,5 @@
1
+ # Request in progress
2
+
3
+ A permission request on the "{PLACEHOLDER_Type}" element was prevented because a previous request is still in progress.
4
+
5
+ To resolve this issue, ensure that the site does not allow users to interact with the element behind the current content scrim (for example by moving the element to a document in a new window, which is not covered by the scrim).
@@ -0,0 +1,5 @@
1
+ # Activation disabled (quota)
2
+
3
+ The "{PLACEHOLDER_Type}" element could not be activated because the page's quota has been exceeded.
4
+
5
+ To resolve this issue, ensure that you have no more than 3 elements of the same type per page.
@@ -0,0 +1,5 @@
1
+ # Permission not supported
2
+
3
+ The permission type "{PLACEHOLDER_Type}" is not supported by this browser and therefore the element will not be functional.
4
+
5
+ To resolve this issue, ensure the element's type is one of the supported values: "camera", "microphone", "geolocation", "camera microphone".
@@ -0,0 +1,7 @@
1
+ # Untrusted event
2
+
3
+ The "{PLACEHOLDER_Type}" element can only be activated by actual user clicks, not simulated ones.
4
+
5
+ To resolve this issue, do not use frameworks which simulate click events, (e.g. via `click()`) and do not prevent the `DOMActivate` event.
6
+
7
+ You can use the command line flag `--runtime-enabled-features=BypassPepcSecurityForTesting` to bypass this behavior for testing purposes.
@@ -24,6 +24,7 @@ import * as LowTextContrastIssue from './LowTextContrastIssue.js';
24
24
  import * as MarkdownIssueDescription from './MarkdownIssueDescription.js';
25
25
  import * as MixedContentIssue from './MixedContentIssue.js';
26
26
  import * as PartitioningBlobURLIssue from './PartitioningBlobURLIssue.js';
27
+ import * as PermissionElementIssue from './PermissionElementIssue.js';
27
28
  import * as PropertyRuleIssue from './PropertyRuleIssue.js';
28
29
  import * as QuirksModeIssue from './QuirksModeIssue.js';
29
30
  import * as RelatedIssue from './RelatedIssue.js';
@@ -57,6 +58,7 @@ export {
57
58
  MarkdownIssueDescription,
58
59
  MixedContentIssue,
59
60
  PartitioningBlobURLIssue,
61
+ PermissionElementIssue,
60
62
  PropertyRuleIssue,
61
63
  QuirksModeIssue,
62
64
  RelatedIssue,
@@ -3154,7 +3154,7 @@ export const NativeFunctions = [
3154
3154
  },
3155
3155
  {
3156
3156
  name: "initKeyboardEvent",
3157
- signatures: [["typeArg","?bubblesArg","?cancelableArg","?viewArg","?keyArg","?locationArg","?ctrlKey","?altKey","?shiftKey","?metaKey"],["type","?bubbles","?cancelable","?view","?keyIdentifier","?location","?ctrlKey","?altKey","?shiftKey","?metaKey"]]
3157
+ signatures: [["typeArg","?bubblesArg","?cancelableArg","?viewArg","?keyArg","?locationArg","?ctrlKey","?altKey","?shiftKey","?metaKey"]]
3158
3158
  },
3159
3159
  {
3160
3160
  name: "setKeyframes",
@@ -6203,6 +6203,10 @@ export const NativeFunctions = [
6203
6203
  name: "CSSMathProduct",
6204
6204
  signatures: [["...args"]]
6205
6205
  },
6206
+ {
6207
+ name: "CSSMathRandom",
6208
+ signatures: [["baseValue","min","max","?step"]]
6209
+ },
6206
6210
  {
6207
6211
  name: "CSSMathSum",
6208
6212
  signatures: [["...args"]]
@@ -6607,6 +6611,10 @@ export const NativeFunctions = [
6607
6611
  name: "when",
6608
6612
  signatures: [["type","?options"]]
6609
6613
  },
6614
+ {
6615
+ name: "Event",
6616
+ signatures: [["type","?eventInitDict"]]
6617
+ },
6610
6618
  {
6611
6619
  name: "setFormControlRange",
6612
6620
  signatures: [["element","start","end"]]
@@ -6733,10 +6741,6 @@ export const NativeFunctions = [
6733
6741
  name: "TextUpdateEvent",
6734
6742
  signatures: [["type","?options"]]
6735
6743
  },
6736
- {
6737
- name: "AnimationEvent",
6738
- signatures: [["type","?eventInitDict"]]
6739
- },
6740
6744
  {
6741
6745
  name: "AnimationPlaybackEvent",
6742
6746
  signatures: [["type","?eventInitDict"]]
@@ -6765,10 +6769,6 @@ export const NativeFunctions = [
6765
6769
  name: "ErrorEvent",
6766
6770
  signatures: [["type","?eventInitDict"]]
6767
6771
  },
6768
- {
6769
- name: "FocusEvent",
6770
- signatures: [["type","?eventInitDict"]]
6771
- },
6772
6772
  {
6773
6773
  name: "HashChangeEvent",
6774
6774
  signatures: [["type","?eventInitDict"]]
@@ -6781,10 +6781,6 @@ export const NativeFunctions = [
6781
6781
  name: "InterestEvent",
6782
6782
  signatures: [["type","?eventInitDict"]]
6783
6783
  },
6784
- {
6785
- name: "KeyboardEvent",
6786
- signatures: [["type","?eventInitDict"]]
6787
- },
6788
6784
  {
6789
6785
  name: "MessageEvent",
6790
6786
  signatures: [["type","?eventInitDict"]]
@@ -6825,14 +6821,6 @@ export const NativeFunctions = [
6825
6821
  name: "ToggleEvent",
6826
6822
  signatures: [["type","?eventInitDict"]]
6827
6823
  },
6828
- {
6829
- name: "TouchEvent",
6830
- signatures: [["type","?eventInitDict"]]
6831
- },
6832
- {
6833
- name: "TransitionEvent",
6834
- signatures: [["type","?eventInitDict"]]
6835
- },
6836
6824
  {
6837
6825
  name: "UIEvent",
6838
6826
  signatures: [["type","?eventInitDict"]]
@@ -7157,6 +7145,10 @@ export const NativeFunctions = [
7157
7145
  name: "NavigationCurrentEntryChangeEvent",
7158
7146
  signatures: [["type","eventInit"]]
7159
7147
  },
7148
+ {
7149
+ name: "addHandler",
7150
+ signatures: [["handler"]]
7151
+ },
7160
7152
  {
7161
7153
  name: "updateCurrentEntry",
7162
7154
  signatures: [["options"]]
@@ -7602,11 +7594,11 @@ export const NativeFunctions = [
7602
7594
  },
7603
7595
  {
7604
7596
  name: "drawElement",
7605
- signatures: [["element","x","y","?dwidth","?dheight"]]
7597
+ signatures: [["element","dx","dy","?dwidth","?dheight"]]
7606
7598
  },
7607
7599
  {
7608
7600
  name: "drawElementImage",
7609
- signatures: [["element","x","y","?dwidth","?dheight"]]
7601
+ signatures: [["element","dx","dy","?dwidth","?dheight"],["element","sx","sy","swidth","sheight","dx","dy","?dwidth","?dheight"]]
7610
7602
  },
7611
7603
  {
7612
7604
  name: "Path2D",
@@ -7802,6 +7794,10 @@ export const NativeFunctions = [
7802
7794
  name: "GamepadEvent",
7803
7795
  signatures: [["type","?eventInitDict"]]
7804
7796
  },
7797
+ {
7798
+ name: "GamepadRawInputChangeEvent",
7799
+ signatures: [["type","?eventInitDict"]]
7800
+ },
7805
7801
  {
7806
7802
  name: "addStroke",
7807
7803
  signatures: [["stroke"]]
@@ -8424,6 +8420,10 @@ export const NativeFunctions = [
8424
8420
  name: "RTCSessionDescription",
8425
8421
  signatures: [["?descriptionInitDict"]]
8426
8422
  },
8423
+ {
8424
+ name: "copyPayloadTo",
8425
+ signatures: [["destination"]]
8426
+ },
8427
8427
  {
8428
8428
  name: "RtcTransport",
8429
8429
  signatures: [["name"]]
@@ -37,25 +37,12 @@ export class StackTraceModel extends SDK.SDKModel.SDKModel<unknown> {
37
37
 
38
38
  async createFromProtocolRuntime(stackTrace: Protocol.Runtime.StackTrace, rawFramesToUIFrames: TranslateRawFrames):
39
39
  Promise<StackTrace.StackTrace.StackTrace> {
40
- const translatePromises: Array<Promise<unknown>> = [];
41
-
42
- const fragment = this.#createFragment(stackTrace.callFrames);
43
- translatePromises.push(this.#translateFragment(fragment, rawFramesToUIFrames));
44
-
45
- const asyncFragments: AsyncFragmentImpl[] = [];
46
- const debuggerModel = this.target().model(SDK.DebuggerModel.DebuggerModel);
47
- if (debuggerModel) {
48
- for await (const {stackTrace: asyncStackTrace, target} of debuggerModel.iterateAsyncParents(stackTrace)) {
49
- const model = StackTraceModel.#modelForTarget(target);
50
- const asyncFragment = model.#createFragment(asyncStackTrace.callFrames);
51
- translatePromises.push(model.#translateFragment(asyncFragment, rawFramesToUIFrames));
52
- asyncFragments.push(new AsyncFragmentImpl(asyncStackTrace.description ?? '', asyncFragment));
53
- }
54
- }
40
+ const [syncFragment, asyncFragments] = await Promise.all([
41
+ this.#createSyncFragment(stackTrace, rawFramesToUIFrames),
42
+ this.#createAsyncFragments(stackTrace, rawFramesToUIFrames),
43
+ ]);
55
44
 
56
- await Promise.all(translatePromises);
57
-
58
- return new StackTraceImpl(fragment, asyncFragments);
45
+ return new StackTraceImpl(syncFragment, asyncFragments);
59
46
  }
60
47
 
61
48
  /** Trigger re-translation of all fragments with the provide script in their call stack */
@@ -81,6 +68,38 @@ export class StackTraceModel extends SDK.SDKModel.SDKModel<unknown> {
81
68
  }
82
69
  }
83
70
 
71
+ async #createSyncFragment(stackTrace: Protocol.Runtime.StackTrace, rawFramesToUIFrames: TranslateRawFrames):
72
+ Promise<FragmentImpl> {
73
+ const fragment = this.#createFragment(stackTrace.callFrames);
74
+ await this.#translateFragment(fragment, rawFramesToUIFrames);
75
+ return fragment;
76
+ }
77
+
78
+ async #createAsyncFragments(
79
+ stackTraceOrPausedEvent: Protocol.Runtime.StackTrace|Protocol.Debugger.PausedEvent,
80
+ rawFramesToUIFrames: TranslateRawFrames): Promise<AsyncFragmentImpl[]> {
81
+ const asyncFragments: AsyncFragmentImpl[] = [];
82
+ const translatePromises: Array<Promise<unknown>> = [];
83
+
84
+ const debuggerModel = this.target().model(SDK.DebuggerModel.DebuggerModel);
85
+ if (debuggerModel) {
86
+ for await (
87
+ const {stackTrace: asyncStackTrace, target} of debuggerModel.iterateAsyncParents(stackTraceOrPausedEvent)) {
88
+ if (asyncStackTrace.callFrames.length === 0) {
89
+ // Skip empty async fragments, they don't add value.
90
+ continue;
91
+ }
92
+ const model = StackTraceModel.#modelForTarget(target);
93
+ const fragment = model.#createFragment(asyncStackTrace.callFrames);
94
+ translatePromises.push(model.#translateFragment(fragment, rawFramesToUIFrames));
95
+ asyncFragments.push(new AsyncFragmentImpl(asyncStackTrace.description ?? '', fragment));
96
+ }
97
+ }
98
+
99
+ await Promise.all(translatePromises);
100
+ return asyncFragments;
101
+ }
102
+
84
103
  #createFragment(frames: RawFrame[]): FragmentImpl {
85
104
  return FragmentImpl.getOrCreate(this.#trie.insert(frames));
86
105
  }