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
@@ -176,19 +176,6 @@ const UIStrings = {
176
176
  * @description Text that appears on a button for the manifest resource type filter.
177
177
  */
178
178
  manifest: 'Manifest',
179
- /**
180
- * @description Text in App Manifest View of the Application panel
181
- */
182
- noManifestDetected: 'No manifest detected',
183
- /**
184
- * @description Description text on manifests in App Manifest View of the Application panel which describes the app manifest view tab
185
- */
186
- manifestDescription:
187
- 'A manifest defines how your app appears on phone’s home screens and what the app looks like on launch.',
188
- /**
189
- * @description Text in App Manifest View of the Application panel
190
- */
191
- appManifest: 'Manifest',
192
179
  /**
193
180
  * @description Text in Application Panel Sidebar of the Application panel
194
181
  */
@@ -1156,10 +1143,7 @@ export class AppManifestTreeElement extends ApplicationPanelTreeElement {
1156
1143
  const icon = createIcon('document');
1157
1144
  this.setLeadingIcons([icon]);
1158
1145
  self.onInvokeElement(this.listItemElement, this.onInvoke.bind(this));
1159
- const emptyView = new UI.EmptyWidget.EmptyWidget(
1160
- i18nString(UIStrings.noManifestDetected), i18nString(UIStrings.manifestDescription));
1161
- const reportView = new UI.ReportView.ReportView(i18nString(UIStrings.appManifest));
1162
- this.view = new AppManifestView(emptyView, reportView, new Common.Throttler.Throttler(1000));
1146
+ this.view = new AppManifestView();
1163
1147
  UI.ARIAUtils.setLabel(this.listItemElement, i18nString(UIStrings.onInvokeManifestAlert));
1164
1148
  const handleExpansion = (hasManifest: boolean): void => {
1165
1149
  this.setExpandable(hasManifest);
@@ -5,9 +5,7 @@
5
5
  import * as Host from '../../core/host/host.js';
6
6
  import * as i18n from '../../core/i18n/i18n.js';
7
7
  import type * as Platform from '../../core/platform/platform.js';
8
- import * as LegacyWrapper from '../../ui/components/legacy_wrapper/legacy_wrapper.js';
9
8
  import {createIcon} from '../../ui/kit/kit.js';
10
- import * as UI from '../../ui/legacy/legacy.js';
11
9
 
12
10
  import {ApplicationPanelTreeElement} from './ApplicationPanelTreeElement.js';
13
11
  import * as ApplicationComponents from './components/components.js';
@@ -23,8 +21,7 @@ const str_ = i18n.i18n.registerUIStrings('panels/application/BounceTrackingMitig
23
21
  export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
24
22
 
25
23
  export class BounceTrackingMitigationsTreeElement extends ApplicationPanelTreeElement {
26
- private view?: LegacyWrapper.LegacyWrapper.LegacyWrapper<
27
- UI.Widget.Widget, ApplicationComponents.BounceTrackingMitigationsView.BounceTrackingMitigationsView>;
24
+ private view?: ApplicationComponents.BounceTrackingMitigationsView.BounceTrackingMitigationsView;
28
25
 
29
26
  constructor(resourcesPanel: ResourcesPanel) {
30
27
  super(resourcesPanel, i18nString(UIStrings.bounceTrackingMitigations), false, 'bounce-tracking-mitigations');
@@ -39,8 +36,7 @@ export class BounceTrackingMitigationsTreeElement extends ApplicationPanelTreeEl
39
36
  override onselect(selectedByUser?: boolean): boolean {
40
37
  super.onselect(selectedByUser);
41
38
  if (!this.view) {
42
- this.view = LegacyWrapper.LegacyWrapper.legacyWrapper(
43
- UI.Widget.Widget, new ApplicationComponents.BounceTrackingMitigationsView.BounceTrackingMitigationsView());
39
+ this.view = new ApplicationComponents.BounceTrackingMitigationsView.BounceTrackingMitigationsView();
44
40
  }
45
41
  this.showView(this.view);
46
42
  Host.userMetrics.panelShown('bounce-tracking-mitigations');
@@ -1,7 +1,6 @@
1
1
  // Copyright 2024 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-imperative-dom-api */
5
4
 
6
5
  /*
7
6
  * Copyright (C) 2008 Nokia Inc. All rights reserved.
@@ -74,10 +73,9 @@ export class ExtensionStorageItemsView extends KeyValueStorageItemsView {
74
73
  Common.ObjectWrapper.ObjectWrapper<ExtensionStorageItemsDispatcher.EventTypes>;
75
74
 
76
75
  constructor(extensionStorage: ExtensionStorage, view?: KeyValueStorageItemsViewFunction) {
77
- super(i18nString(UIStrings.extensionStorageItems), 'extension-storage', true, view);
78
-
79
- this.element.setAttribute('jslog', `${VisualLogging.pane().context('extension-storage-data')}`);
80
- this.element.classList.add('storage-view', 'table');
76
+ super(
77
+ i18nString(UIStrings.extensionStorageItems), 'extension-storage', true, view, undefined,
78
+ {jslog: `${VisualLogging.pane().context('extension-storage-data')}`, classes: ['storage-view', 'table']});
81
79
 
82
80
  this.extensionStorageItemsDispatcher =
83
81
  new Common.ObjectWrapper.ObjectWrapper<ExtensionStorageItemsDispatcher.EventTypes>();
@@ -31,6 +31,7 @@
31
31
  import * as i18n from '../../core/i18n/i18n.js';
32
32
  import * as Geometry from '../../models/geometry/geometry.js';
33
33
  import * as UI from '../../ui/legacy/legacy.js';
34
+ import type {WidgetOptions} from '../../ui/legacy/Widget.js';
34
35
  import {Directives as LitDirectives, html, nothing, render} from '../../ui/lit/lit.js';
35
36
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
36
37
 
@@ -110,7 +111,7 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
110
111
 
111
112
  constructor(
112
113
  title: string, id: string, editable: boolean, view?: View,
113
- metadataView?: ApplicationComponents.StorageMetadataView.StorageMetadataView) {
114
+ metadataView?: ApplicationComponents.StorageMetadataView.StorageMetadataView, opts?: WidgetOptions) {
114
115
  metadataView ??= new ApplicationComponents.StorageMetadataView.StorageMetadataView();
115
116
  if (!view) {
116
117
  view = (input: ViewInput, output: ViewOutput, target: HTMLElement) => {
@@ -168,7 +169,7 @@ export abstract class KeyValueStorageItemsView extends UI.Widget.VBox {
168
169
  target);
169
170
  };
170
171
  }
171
- super();
172
+ super(opts);
172
173
  this.metadataView = metadataView;
173
174
  this.#editable = editable;
174
175
  this.#view = view;
@@ -2,10 +2,10 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import '../../../ui/components/chrome_link/chrome_link.js';
6
5
  import '../../../ui/components/expandable_list/expandable_list.js';
7
6
  import '../../../ui/components/report_view/report_view.js';
8
7
  import '../../../ui/legacy/legacy.js';
8
+ import '../../../ui/kit/kit.js';
9
9
 
10
10
  import * as Common from '../../../core/common/common.js';
11
11
  import * as i18n from '../../../core/i18n/i18n.js';
@@ -341,7 +341,7 @@ function maybeRenderReasonContext(explanation: Protocol.Page.BackForwardCacheNot
341
341
  const link = 'chrome://extensions/?id=' + explanation.context as Platform.DevToolsPath.UrlString;
342
342
  // clang-format off
343
343
  return html`${i18nString(UIStrings.blockingExtensionId)}
344
- <devtools-chrome-link .href=${link}>${explanation.context}</devtools-chrome-link>`;
344
+ <devtools-link .href=${link}>${explanation.context}</devtools-link>`;
345
345
  // clang-format on
346
346
  }
347
347
  return nothing;
@@ -1,7 +1,6 @@
1
1
  // Copyright 2023 The Chromium Authors
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
- /* eslint-disable @devtools/no-lit-render-outside-of-view */
5
4
 
6
5
  import '../../../ui/components/report_view/report_view.js';
7
6
  import '../../../ui/legacy/components/data_grid/data_grid.js';
@@ -9,7 +8,7 @@ import '../../../ui/legacy/components/data_grid/data_grid.js';
9
8
  import * as i18n from '../../../core/i18n/i18n.js';
10
9
  import * as SDK from '../../../core/sdk/sdk.js';
11
10
  import * as Buttons from '../../../ui/components/buttons/buttons.js';
12
- import * as LegacyWrapper from '../../../ui/components/legacy_wrapper/legacy_wrapper.js';
11
+ import * as UI from '../../../ui/legacy/legacy.js';
13
12
  import * as Lit from '../../../ui/lit/lit.js';
14
13
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
15
14
 
@@ -58,7 +57,8 @@ const UIStrings = {
58
57
  const str_ = i18n.i18n.registerUIStrings('panels/application/components/BounceTrackingMitigationsView.ts', UIStrings);
59
58
  export const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
60
59
 
61
- const enum ScreenStatusType {
60
+ export const enum ScreenStatusType {
61
+ INITIALIZING = 'Initializing',
62
62
  RUNNING = 'Running',
63
63
  RESULT = 'Result',
64
64
  DISABLED = 'Disabled',
@@ -68,119 +68,155 @@ export interface BounceTrackingMitigationsViewData {
68
68
  trackingSites: string[];
69
69
  }
70
70
 
71
- export class BounceTrackingMitigationsView extends LegacyWrapper.LegacyWrapper.WrappableComponent {
72
- readonly #shadow = this.attachShadow({mode: 'open'});
73
- #trackingSites: string[] = [];
74
- #screenStatus = ScreenStatusType.RESULT;
75
- #checkedFeature = false;
76
- #seenButtonClick = false;
77
-
78
- connectedCallback(): void {
79
- void this.#render();
80
- this.parentElement?.classList.add('overflow-auto');
81
- }
71
+ export interface ViewInput {
72
+ screenStatus: ScreenStatusType;
73
+ trackingSites: string[];
74
+ seenButtonClick: boolean;
75
+ runMitigations: () => Promise<void>;
76
+ }
82
77
 
83
- async #render(): Promise<void> {
84
- // clang-format off
85
- Lit.render(html`
86
- <style>${bounceTrackingMitigationsViewStyles}</style>
87
- <devtools-report .data=${{reportTitle: i18nString(UIStrings.bounceTrackingMitigationsTitle)}}
88
- jslog=${VisualLogging.pane('bounce-tracking-mitigations')}>
89
- ${await this.#renderMainFrameInformation()}
90
- </devtools-report>
91
- `, this.#shadow, {host: this});
92
- // clang-format on
78
+ const renderForceRunButton = (input: ViewInput): Lit.TemplateResult => {
79
+ const isMitigationRunning = (input.screenStatus === ScreenStatusType.RUNNING);
80
+
81
+ // clang-format off
82
+ return html`
83
+ <devtools-button
84
+ aria-label=${i18nString(UIStrings.forceRun)}
85
+ .disabled=${isMitigationRunning}
86
+ .spinner=${isMitigationRunning}
87
+ .variant=${Buttons.Button.Variant.PRIMARY}
88
+ @click=${input.runMitigations}
89
+ jslog=${VisualLogging.action('force-run').track({click: true})}>
90
+ ${isMitigationRunning ? html`
91
+ ${i18nString(UIStrings.runningMitigations)}`:`
92
+ ${i18nString(UIStrings.forceRun)}
93
+ `}
94
+ </devtools-button>
95
+ `;
96
+ // clang-format on
97
+ };
98
+
99
+ const renderDeletedSitesOrNoSitesMessage = (input: ViewInput): Lit.LitTemplate => {
100
+ if (!input.seenButtonClick) {
101
+ return Lit.nothing;
93
102
  }
94
103
 
95
- async #renderMainFrameInformation(): Promise<Lit.TemplateResult> {
96
- if (!this.#checkedFeature) {
97
- await this.#checkFeatureState();
98
- }
99
-
100
- if (this.#screenStatus === ScreenStatusType.DISABLED) {
101
- // clang-format off
102
- return html`
103
- <devtools-report-section>
104
- ${i18nString(UIStrings.featureDisabled)}
105
- </devtools-report-section>
106
- `;
107
- // clang-format on
108
- }
109
-
104
+ if (input.trackingSites.length === 0) {
110
105
  // clang-format off
111
106
  return html`
112
107
  <devtools-report-section>
113
- ${this.#renderForceRunButton()}
114
- </devtools-report-section>
115
- ${this.#renderDeletedSitesOrNoSitesMessage()}
116
- <devtools-report-divider>
117
- </devtools-report-divider>
118
- <devtools-report-section>
119
- <x-link href="https://privacycg.github.io/nav-tracking-mitigations/#bounce-tracking-mitigations" class="link"
120
- jslog=${VisualLogging.link('learn-more').track({click: true})}>
121
- ${i18nString(UIStrings.learnMore)}
122
- </x-link>
108
+ ${(input.screenStatus === ScreenStatusType.RUNNING) ? html`
109
+ ${i18nString(UIStrings.checkingPotentialTrackers)}`:`
110
+ ${i18nString(UIStrings.noPotentialBounceTrackersIdentified)}
111
+ `}
123
112
  </devtools-report-section>
124
113
  `;
125
114
  // clang-format on
126
115
  }
127
116
 
128
- #renderForceRunButton(): Lit.TemplateResult {
129
- const isMitigationRunning = (this.#screenStatus === ScreenStatusType.RUNNING);
117
+ // clang-format off
118
+ return html`
119
+ <devtools-report-section>
120
+ <devtools-data-grid striped inline>
121
+ <table>
122
+ <tr>
123
+ <th id="sites" weight="10" sortable>
124
+ ${i18nString(UIStrings.stateDeletedFor)}
125
+ </th>
126
+ </tr>
127
+ ${input.trackingSites.map(site => html`
128
+ <tr><td>${site}</td></tr>`)}
129
+ </table>
130
+ </devtools-data-grid>
131
+ </devtools-report-section>
132
+ `;
133
+ // clang-format on
134
+ };
135
+
136
+ const renderMainFrameInformation = (input: ViewInput): Lit.LitTemplate => {
137
+ if (input.screenStatus === ScreenStatusType.INITIALIZING) {
138
+ return Lit.nothing;
139
+ }
130
140
 
141
+ if (input.screenStatus === ScreenStatusType.DISABLED) {
131
142
  // clang-format off
132
143
  return html`
133
- <devtools-button
134
- aria-label=${i18nString(UIStrings.forceRun)}
135
- .disabled=${isMitigationRunning}
136
- .spinner=${isMitigationRunning}
137
- .variant=${Buttons.Button.Variant.PRIMARY}
138
- @click=${this.#runMitigations}
139
- jslog=${VisualLogging.action('force-run').track({click: true})}>
140
- ${isMitigationRunning ? html`
141
- ${i18nString(UIStrings.runningMitigations)}`:`
142
- ${i18nString(UIStrings.forceRun)}
143
- `}
144
- </devtools-button>
144
+ <devtools-report-section>
145
+ ${i18nString(UIStrings.featureDisabled)}
146
+ </devtools-report-section>
145
147
  `;
146
148
  // clang-format on
147
149
  }
148
150
 
149
- #renderDeletedSitesOrNoSitesMessage(): Lit.LitTemplate {
150
- if (!this.#seenButtonClick) {
151
- return Lit.nothing;
152
- }
151
+ // clang-format off
152
+ return html`
153
+ <devtools-report-section>
154
+ ${renderForceRunButton(input)}
155
+ </devtools-report-section>
156
+ ${renderDeletedSitesOrNoSitesMessage(input)}
157
+ <devtools-report-divider>
158
+ </devtools-report-divider>
159
+ <devtools-report-section>
160
+ <x-link href="https://privacycg.github.io/nav-tracking-mitigations/#bounce-tracking-mitigations" class="link"
161
+ jslog=${VisualLogging.link('learn-more').track({click: true})}>
162
+ ${i18nString(UIStrings.learnMore)}
163
+ </x-link>
164
+ </devtools-report-section>
165
+ `;
166
+ // clang-format on
167
+ };
168
+
169
+ export const DEFAULT_VIEW = (input: ViewInput, _output: undefined, target: HTMLElement): void => {
170
+ // clang-format off
171
+ Lit.render(html`
172
+ <style>${bounceTrackingMitigationsViewStyles}</style>
173
+ <style>${UI.inspectorCommonStyles}</style>
174
+ <devtools-report .data=${{reportTitle: i18nString(UIStrings.bounceTrackingMitigationsTitle)}}
175
+ jslog=${VisualLogging.pane('bounce-tracking-mitigations')}>
176
+ ${renderMainFrameInformation(input)}
177
+ </devtools-report>
178
+ `, target);
179
+ // clang-format on
180
+ };
181
+
182
+ type ViewFunction = typeof DEFAULT_VIEW;
183
+
184
+ export class BounceTrackingMitigationsView extends UI.Widget.Widget {
185
+ #trackingSites: string[] = [];
186
+ #screenStatus = ScreenStatusType.INITIALIZING;
187
+ #seenButtonClick = false;
188
+ #view: ViewFunction;
189
+
190
+ constructor(element?: HTMLElement, view: ViewFunction = DEFAULT_VIEW) {
191
+ super(element, {useShadowDom: true, classes: ['overflow-auto']});
153
192
 
154
- if (this.#trackingSites.length === 0) {
155
- // clang-format off
156
- return html`
157
- <devtools-report-section>
158
- ${(this.#screenStatus === ScreenStatusType.RUNNING) ? html`
159
- ${i18nString(UIStrings.checkingPotentialTrackers)}`:`
160
- ${i18nString(UIStrings.noPotentialBounceTrackersIdentified)}
161
- `}
162
- </devtools-report-section>
163
- `;
164
- // clang-format on
193
+ this.#view = view;
194
+
195
+ const mainTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
196
+ if (!mainTarget) {
197
+ this.#screenStatus = ScreenStatusType.RESULT;
198
+ } else {
199
+ void mainTarget.systemInfo().invoke_getFeatureState({featureState: 'DIPS'}).then(state => {
200
+ this.#screenStatus = state.featureEnabled ? ScreenStatusType.RESULT : ScreenStatusType.DISABLED;
201
+ this.requestUpdate();
202
+ });
165
203
  }
204
+ }
166
205
 
167
- // clang-format off
168
- return html`
169
- <devtools-report-section>
170
- <devtools-data-grid striped inline>
171
- <table>
172
- <tr>
173
- <th id="sites" weight="10" sortable>
174
- ${i18nString(UIStrings.stateDeletedFor)}
175
- </th>
176
- </tr>
177
- ${this.#trackingSites.map(site => html`
178
- <tr><td>${site}</td></tr>`)}
179
- </table>
180
- </devtools-data-grid>
181
- </devtools-report-section>
182
- `;
183
- // clang-format on
206
+ override wasShown(): void {
207
+ super.wasShown();
208
+ this.requestUpdate();
209
+ }
210
+
211
+ override performUpdate(): void {
212
+ this.#view(
213
+ {
214
+ screenStatus: this.#screenStatus,
215
+ trackingSites: this.#trackingSites,
216
+ seenButtonClick: this.#seenButtonClick,
217
+ runMitigations: this.#runMitigations.bind(this),
218
+ },
219
+ undefined, this.contentElement);
184
220
  }
185
221
 
186
222
  async #runMitigations(): Promise<void> {
@@ -192,7 +228,7 @@ export class BounceTrackingMitigationsView extends LegacyWrapper.LegacyWrapper.W
192
228
  this.#seenButtonClick = true;
193
229
  this.#screenStatus = ScreenStatusType.RUNNING;
194
230
 
195
- void this.#render();
231
+ this.requestUpdate();
196
232
 
197
233
  const response = await mainTarget.storageAgent().invoke_runBounceTrackingMitigations();
198
234
  this.#trackingSites = [];
@@ -205,27 +241,6 @@ export class BounceTrackingMitigationsView extends LegacyWrapper.LegacyWrapper.W
205
241
 
206
242
  #renderMitigationsResult(): void {
207
243
  this.#screenStatus = ScreenStatusType.RESULT;
208
- void this.#render();
209
- }
210
-
211
- async #checkFeatureState(): Promise<void> {
212
- this.#checkedFeature = true;
213
-
214
- const mainTarget = SDK.TargetManager.TargetManager.instance().primaryPageTarget();
215
- if (!mainTarget) {
216
- return;
217
- }
218
-
219
- if (!(await mainTarget.systemInfo().invoke_getFeatureState({featureState: 'DIPS'})).featureEnabled) {
220
- this.#screenStatus = ScreenStatusType.DISABLED;
221
- }
222
- }
223
- }
224
-
225
- customElements.define('devtools-bounce-tracking-mitigations-view', BounceTrackingMitigationsView);
226
-
227
- declare global {
228
- interface HTMLElementTagNameMap {
229
- 'devtools-bounce-tracking-mitigations-view': BounceTrackingMitigationsView;
244
+ this.requestUpdate();
230
245
  }
231
246
  }
@@ -16,7 +16,7 @@ import * as Buttons from '../../../ui/components/buttons/buttons.js';
16
16
  // eslint-disable-next-line @devtools/es-modules-import
17
17
  import emptyWidgetStyles from '../../../ui/legacy/emptyWidget.css.js';
18
18
  import * as UI from '../../../ui/legacy/legacy.js';
19
- import {html, render} from '../../../ui/lit/lit.js';
19
+ import {Directives, html, render} from '../../../ui/lit/lit.js';
20
20
  import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
21
21
 
22
22
  import * as PreloadingComponents from './components/components.js';
@@ -25,6 +25,8 @@ import type * as PreloadingHelper from './helper/helper.js';
25
25
  import preloadingViewStyles from './preloadingView.css.js';
26
26
  import preloadingViewDropDownStyles from './preloadingViewDropDown.css.js';
27
27
 
28
+ const {createRef, ref} = Directives;
29
+
28
30
  const UIStrings = {
29
31
  /**
30
32
  * @description DropDown title for filtering preloading attempts by rule set
@@ -195,10 +197,12 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
195
197
  private focusedRuleSetId: Protocol.Preload.RuleSetId|null = null;
196
198
 
197
199
  private readonly warningsContainer: HTMLDivElement;
198
- private readonly warningsView = new PreloadingWarningsView();
200
+ private readonly warningsView = new PreloadingComponents.PreloadingDisabledInfobar.PreloadingDisabledInfobar();
199
201
  private readonly hsplit: HTMLElement;
200
202
  private readonly ruleSetGrid = new PreloadingComponents.RuleSetGrid.RuleSetGrid();
201
- private readonly ruleSetDetails = new PreloadingComponents.RuleSetDetailsView.RuleSetDetailsView();
203
+ private readonly ruleSetGridContainerRef = createRef<HTMLDivElement>();
204
+ private readonly ruleSetDetailsRef:
205
+ Directives.Ref<UI.Widget.WidgetElement<PreloadingComponents.RuleSetDetailsView.RuleSetDetailsView>>;
202
206
 
203
207
  private shouldPrettyPrint = Common.Settings.Settings.instance().moduleSetting('auto-pretty-print-minified').get();
204
208
 
@@ -212,8 +216,9 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
212
216
  SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.MODEL_UPDATED, this.render, this,
213
217
  {scoped: true});
214
218
  SDK.TargetManager.TargetManager.instance().addModelListener(
215
- SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED,
216
- this.warningsView.onWarningsUpdated, this.warningsView, {scoped: true});
219
+ SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED, e => {
220
+ Object.assign(this.warningsView, e.data);
221
+ }, this, {scoped: true});
217
222
 
218
223
  // this (VBox)
219
224
  // +- warningsContainer
@@ -232,7 +237,10 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
232
237
  this.contentElement.insertBefore(this.warningsContainer, this.contentElement.firstChild);
233
238
  this.warningsView.show(this.warningsContainer);
234
239
 
235
- this.ruleSetGrid.addEventListener('select', this.onRuleSetsGridCellFocused.bind(this));
240
+ this.ruleSetGrid.addEventListener(
241
+ PreloadingComponents.RuleSetGrid.Events.SELECT, this.onRuleSetsGridCellFocused, this);
242
+ this.ruleSetDetailsRef =
243
+ createRef<UI.Widget.WidgetElement<PreloadingComponents.RuleSetDetailsView.RuleSetDetailsView>>();
236
244
  const onPrettyPrintToggle = (): void => {
237
245
  this.shouldPrettyPrint = !this.shouldPrettyPrint;
238
246
  this.updateRuleSetDetails();
@@ -253,11 +261,13 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
253
261
  </div>
254
262
  </div>
255
263
  <devtools-split-view sidebar-position="second">
256
- <div slot="main">
257
- ${this.ruleSetGrid}
264
+ <div slot="main" ${ref(this.ruleSetGridContainerRef)}>
258
265
  </div>
259
266
  <div slot="sidebar" jslog=${VisualLogging.section('rule-set-details')}>
260
- ${this.ruleSetDetails}
267
+ <devtools-widget .widgetConfig=${UI.Widget.widgetConfig(PreloadingComponents.RuleSetDetailsView.RuleSetDetailsView, {
268
+ ruleSet: this.getRuleSet(),
269
+ shouldPrettyPrint: this.shouldPrettyPrint,
270
+ })} ${ref(this.ruleSetDetailsRef)}></devtools-widget>
261
271
  </div>
262
272
  </devtools-split-view>
263
273
  <div class="pretty-print-button" style="border-top: 1px solid var(--sys-color-divider)">
@@ -298,10 +308,12 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
298
308
  }
299
309
 
300
310
  private updateRuleSetDetails(): void {
301
- const id = this.focusedRuleSetId;
302
- const ruleSet = id === null ? null : this.model.getRuleSetById(id);
303
- this.ruleSetDetails.shouldPrettyPrint = this.shouldPrettyPrint;
304
- this.ruleSetDetails.data = ruleSet;
311
+ const ruleSet = this.getRuleSet();
312
+ const widget = this.ruleSetDetailsRef.value?.getWidget();
313
+ if (widget) {
314
+ widget.shouldPrettyPrint = this.shouldPrettyPrint;
315
+ widget.ruleSet = ruleSet;
316
+ }
305
317
 
306
318
  if (ruleSet === null) {
307
319
  this.hsplit.setAttribute('sidebar-visibility', 'hidden');
@@ -310,6 +322,11 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
310
322
  }
311
323
  }
312
324
 
325
+ private getRuleSet(): Protocol.Preload.RuleSet|null {
326
+ const id = this.focusedRuleSetId;
327
+ return id === null ? null : this.model.getRuleSetById(id);
328
+ }
329
+
313
330
  render(): void {
314
331
  // Update rule sets grid
315
332
  const countsByRuleSetId = this.model.getPreloadCountsByRuleSetId();
@@ -320,14 +337,18 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
320
337
  preloadsStatusSummary: PreloadingUIUtils.preloadsStatusSummary(countsByStatus),
321
338
  };
322
339
  });
323
- this.ruleSetGrid.update({rows: ruleSetRows, pageURL: pageURL()});
340
+ this.ruleSetGrid.data = {rows: ruleSetRows, pageURL: pageURL()};
324
341
  this.contentElement.classList.toggle('empty', ruleSetRows.length === 0);
325
342
  this.updateRuleSetDetails();
343
+
344
+ const container = this.ruleSetGridContainerRef.value;
345
+ if (container && this.ruleSetGrid.element.parentElement !== container) {
346
+ this.ruleSetGrid.show(container);
347
+ }
326
348
  }
327
349
 
328
- private onRuleSetsGridCellFocused(event: Event): void {
329
- const focusedEvent = event as CustomEvent<Protocol.Preload.RuleSetId>;
330
- this.focusedRuleSetId = focusedEvent.detail;
350
+ private onRuleSetsGridCellFocused(event: Common.EventTarget.EventTargetEvent<Protocol.Preload.RuleSetId>): void {
351
+ this.focusedRuleSetId = event.data;
331
352
  this.render();
332
353
  }
333
354
 
@@ -338,10 +359,6 @@ export class PreloadingRuleSetView extends UI.Widget.VBox {
338
359
  getRuleSetGridForTest(): PreloadingComponents.RuleSetGrid.RuleSetGrid {
339
360
  return this.ruleSetGrid;
340
361
  }
341
-
342
- getRuleSetDetailsForTest(): PreloadingComponents.RuleSetDetailsView.RuleSetDetailsView {
343
- return this.ruleSetDetails;
344
- }
345
362
  }
346
363
 
347
364
  export class PreloadingAttemptView extends UI.Widget.VBox {
@@ -351,7 +368,7 @@ export class PreloadingAttemptView extends UI.Widget.VBox {
351
368
  private focusedPreloadingAttemptId: SDK.PreloadingModel.PreloadingAttemptId|null = null;
352
369
 
353
370
  private readonly warningsContainer: HTMLDivElement;
354
- private readonly warningsView = new PreloadingWarningsView();
371
+ private readonly warningsView = new PreloadingComponents.PreloadingDisabledInfobar.PreloadingDisabledInfobar();
355
372
  private readonly preloadingGrid = new PreloadingComponents.PreloadingGrid.PreloadingGrid();
356
373
  private readonly preloadingDetails =
357
374
  new PreloadingComponents.PreloadingDetailsReportView.PreloadingDetailsReportView();
@@ -370,8 +387,9 @@ export class PreloadingAttemptView extends UI.Widget.VBox {
370
387
  SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.MODEL_UPDATED, this.render, this,
371
388
  {scoped: true});
372
389
  SDK.TargetManager.TargetManager.instance().addModelListener(
373
- SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED,
374
- this.warningsView.onWarningsUpdated, this.warningsView, {scoped: true});
390
+ SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED, e => {
391
+ Object.assign(this.warningsView, e.data);
392
+ }, this, {scoped: true});
375
393
 
376
394
  // this (VBox)
377
395
  // +- warningsContainer
@@ -515,7 +533,7 @@ export class PreloadingSummaryView extends UI.Widget.VBox {
515
533
  private model: SDK.PreloadingModel.PreloadingModel;
516
534
 
517
535
  private readonly warningsContainer: HTMLDivElement;
518
- private readonly warningsView = new PreloadingWarningsView();
536
+ private readonly warningsView = new PreloadingComponents.PreloadingDisabledInfobar.PreloadingDisabledInfobar();
519
537
  private readonly usedPreloading = new PreloadingComponents.UsedPreloadingView.UsedPreloadingView();
520
538
 
521
539
  constructor(model: SDK.PreloadingModel.PreloadingModel) {
@@ -531,8 +549,9 @@ export class PreloadingSummaryView extends UI.Widget.VBox {
531
549
  SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.MODEL_UPDATED, this.render, this,
532
550
  {scoped: true});
533
551
  SDK.TargetManager.TargetManager.instance().addModelListener(
534
- SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED,
535
- this.warningsView.onWarningsUpdated, this.warningsView, {scoped: true});
552
+ SDK.PreloadingModel.PreloadingModel, SDK.PreloadingModel.Events.WARNINGS_UPDATED, e => {
553
+ Object.assign(this.warningsView, e.data);
554
+ }, this, {scoped: true});
536
555
 
537
556
  this.warningsContainer = document.createElement('div');
538
557
  this.warningsContainer.classList.add('flex-none');
@@ -715,21 +734,3 @@ class PreloadingRuleSetSelector implements
715
734
  _toElement: Element|null): void {
716
735
  }
717
736
  }
718
-
719
- export class PreloadingWarningsView extends UI.Widget.VBox {
720
- private readonly infobar = new PreloadingComponents.PreloadingDisabledInfobar.PreloadingDisabledInfobar();
721
-
722
- constructor() {
723
- super();
724
- this.registerRequiredCSS(emptyWidgetStyles);
725
- }
726
-
727
- override wasShown(): void {
728
- super.wasShown();
729
- this.contentElement.append(this.infobar);
730
- }
731
-
732
- onWarningsUpdated(args: Common.EventTarget.EventTargetEvent<Protocol.Preload.PreloadEnabledStateUpdatedEvent>): void {
733
- this.infobar.data = args.data;
734
- }
735
- }