chrome-devtools-frontend 1.0.1579812 → 1.0.1581449

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 (316) hide show
  1. package/agents/prompts/creating-a-model.md +51 -0
  2. package/docs/feature-specs/elements-tree-edit-html.md +14 -0
  3. package/docs/feature-specs/elements-tree-node-title.md +46 -0
  4. package/front_end/core/host/UserMetrics.ts +3 -7
  5. package/front_end/core/root/Runtime.ts +0 -1
  6. package/front_end/core/sdk/NetworkManager.ts +0 -35
  7. package/front_end/core/sdk/OverlayModel.ts +10 -0
  8. package/front_end/devtools_compatibility.js +4 -0
  9. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  10. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +530 -0
  11. package/front_end/entrypoints/greendev_floaty/floaty.css +258 -0
  12. package/front_end/entrypoints/greendev_floaty/floaty.html +31 -0
  13. package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +422 -0
  14. package/front_end/entrypoints/inspector_main/InspectorMain.ts +0 -38
  15. package/front_end/generated/InspectorBackendCommands.ts +9 -3
  16. package/front_end/generated/SupportedCSSProperties.js +39 -31
  17. package/front_end/generated/protocol-mapping.d.ts +12 -0
  18. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  19. package/front_end/generated/protocol.ts +56 -2
  20. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +2 -2
  21. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +33 -8
  22. package/front_end/models/computed_style/computed_style.ts +9 -0
  23. package/front_end/models/issues_manager/CorsIssue.ts +11 -14
  24. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
  25. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +15 -0
  26. package/front_end/panels/ai_assistance/components/ChatInput.ts +15 -2
  27. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -0
  28. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  29. package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
  30. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
  31. package/front_end/panels/autofill/AutofillView.ts +1 -1
  32. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
  33. package/front_end/panels/changes/changesSidebar.css +5 -0
  34. package/front_end/panels/common/ExtensionPanel.ts +4 -0
  35. package/front_end/panels/common/FreDialog.ts +4 -0
  36. package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
  37. package/front_end/panels/coverage/CoverageListView.ts +18 -3
  38. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +11 -0
  39. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -8
  40. package/front_end/panels/elements/ElementsPanel.ts +4 -3
  41. package/front_end/panels/elements/ElementsSidebarPane.ts +11 -8
  42. package/front_end/panels/elements/ElementsTreeElement.ts +0 -1
  43. package/front_end/panels/elements/ElementsTreeOutline.ts +25 -15
  44. package/front_end/panels/elements/LayoutPane.ts +7 -8
  45. package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
  46. package/front_end/panels/elements/PlatformFontsWidget.ts +7 -5
  47. package/front_end/panels/elements/PropertiesWidget.ts +3 -6
  48. package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
  49. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  50. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
  51. package/front_end/panels/elements/elements.ts +1 -3
  52. package/front_end/panels/greendev/GreenDevPanel.css +241 -0
  53. package/front_end/panels/greendev/GreenDevPanel.ts +308 -0
  54. package/front_end/panels/greendev/GreenDevShared.ts +13 -0
  55. package/front_end/panels/greendev/greendev-meta.ts +52 -0
  56. package/front_end/panels/greendev/greendev.ts +9 -0
  57. package/front_end/panels/issues/CorsIssueDetailsView.ts +4 -4
  58. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  59. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  60. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  61. package/front_end/panels/media/PlayerListView.ts +1 -1
  62. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
  63. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
  64. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  65. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  66. package/front_end/panels/recorder/components/StepEditor.ts +3 -3
  67. package/front_end/panels/security/SecurityPanel.ts +0 -4
  68. package/front_end/panels/security/SecurityPanelSidebar.ts +2 -42
  69. package/front_end/panels/security/security-meta.ts +2 -14
  70. package/front_end/panels/security/security.ts +0 -4
  71. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -2
  72. package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
  73. package/front_end/panels/sources/components/HeadersView.ts +2 -2
  74. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
  75. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
  76. package/front_end/third_party/chromium/README.chromium +1 -1
  77. package/front_end/third_party/puppeteer/README.chromium +2 -2
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +35 -0
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +19 -0
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +16 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +21 -0
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +6 -0
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +13 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +56 -36
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -2
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +32 -8
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -1
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +32 -2
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -2
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +20 -0
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +25 -8
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +2 -0
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +23 -0
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +10 -6
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +29 -0
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +46 -6
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +5 -1
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +18 -0
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -2
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +13 -1
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +7 -2
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +43 -7
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +10 -1
  142. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +34 -4
  144. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +1 -0
  156. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -0
  159. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +4 -0
  161. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +2 -2
  164. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  166. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  167. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  168. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +129 -3
  171. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +233 -65
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +35 -0
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +19 -0
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +16 -1
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +21 -0
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +6 -0
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +13 -1
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +56 -36
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -2
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +30 -6
  192. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -1
  194. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +32 -2
  196. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -2
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +20 -0
  200. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  201. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -1
  202. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +25 -8
  204. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +2 -0
  206. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  207. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +23 -0
  208. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  209. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  210. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  211. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +10 -6
  212. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  213. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +29 -0
  217. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +46 -6
  219. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +5 -1
  221. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +19 -1
  223. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  224. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +3 -3
  225. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
  226. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +14 -2
  228. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js +3 -3
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +7 -2
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +43 -8
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +10 -1
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +31 -3
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +1 -0
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -0
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +4 -0
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +2 -2
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/types.d.ts +129 -3
  263. package/front_end/third_party/puppeteer/package/package.json +4 -4
  264. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +46 -0
  265. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +21 -0
  266. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
  267. package/front_end/third_party/puppeteer/package/src/api/Page.ts +23 -0
  268. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +88 -56
  269. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +33 -8
  270. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +61 -3
  271. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +23 -2
  272. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +29 -8
  273. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +30 -0
  274. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -2
  275. package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -0
  276. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +85 -8
  277. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +36 -1
  278. package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +5 -5
  279. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +23 -2
  280. package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +3 -3
  281. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +60 -8
  282. package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +36 -3
  283. package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +1 -1
  284. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  285. package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +1 -1
  286. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +1 -0
  287. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
  288. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +4 -0
  289. package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +8 -6
  290. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  291. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  292. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +12 -7
  293. package/front_end/ui/components/text_editor/AutocompleteHistory.ts +2 -1
  294. package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
  295. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  296. package/front_end/ui/legacy/ListControl.ts +1 -2
  297. package/front_end/ui/legacy/ListWidget.ts +1 -1
  298. package/front_end/ui/legacy/SearchableView.ts +5 -2
  299. package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
  300. package/front_end/ui/legacy/Treeoutline.ts +0 -1
  301. package/front_end/ui/legacy/Widget.ts +15 -0
  302. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
  303. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
  304. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +2 -1
  305. package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
  306. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
  307. package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
  308. package/mcp/mcp.ts +1 -0
  309. package/package.json +1 -1
  310. package/front_end/panels/security/CookieControlsTreeElement.ts +0 -21
  311. package/front_end/panels/security/CookieControlsView.ts +0 -447
  312. package/front_end/panels/security/CookieReportTreeElement.ts +0 -21
  313. package/front_end/panels/security/CookieReportView.ts +0 -549
  314. package/front_end/panels/security/cookieControlsView.css +0 -139
  315. package/front_end/panels/security/cookieReportView.css +0 -90
  316. /package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +0 -0
@@ -180,7 +180,6 @@ export class ServiceWorkerUpdateCycleView {
180
180
  const tr = this.tableElement.createChild('tr', 'service-worker-update-timeline');
181
181
  tr.setAttribute('jslog', `${VisualLogging.treeItem('update-timeline').track({
182
182
  click: true,
183
- resize: true,
184
183
  keydown: 'ArrowLeft|ArrowRight|ArrowUp|ArrowDown|Enter|Space',
185
184
  })}`);
186
185
  this.rows.push(tr);
@@ -353,7 +353,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
353
353
  }
354
354
  const rows = [html`<div>${i18nString(UIStrings.framesPerIssue, {n: frames.length})}</div>`];
355
355
  rows.push(...frames.map(url => html`<div class="text-ellipsis" title=${url}
356
- jslog=${VisualLogging.treeItem().track({resize: true})}>${url}</div>`));
356
+ jslog=${VisualLogging.treeItem()}>${url}</div>`));
357
357
  return html`
358
358
  <div class="details-list"
359
359
  jslog=${VisualLogging.tree('frames-per-issue')}>
@@ -361,9 +361,7 @@ function renderFramesPerReason(frames: string[]|undefined): LitTemplate {
361
361
  rows,
362
362
  title: i18nString(UIStrings.framesPerIssue, {n: frames.length}),
363
363
  } as ExpandableList.ExpandableList.ExpandableListData}
364
- jslog=${VisualLogging.treeItem().track({
365
- resize: true
366
- })}></devtools-expandable-list>
364
+ jslog=${VisualLogging.treeItem()}></devtools-expandable-list>
367
365
  </div>
368
366
  `;
369
367
  }
@@ -144,7 +144,7 @@ const DEFAULT_VIEW: View = (input: ViewInput, _output: ViewOutput, target: HTMLE
144
144
  // clang-format off
145
145
  return html`
146
146
  <span class=${spanClasses}
147
- jslog=${VisualLogging.item('matched-address-item').track({hover: true, resize: true})}
147
+ jslog=${VisualLogging.item('matched-address-item').track({hover: true})}
148
148
  @mouseenter=${() => input.onHighlightMatchesInAddress(startIndex)}
149
149
  @mouseleave=${input.onClearHighlightedMatches}>
150
150
  ${templateLines}
@@ -238,7 +238,6 @@ export class XHRBreakpointsSidebarPane extends UI.Widget.VBox implements UI.Cont
238
238
  listItemElement.setAttribute('jslog', `${VisualLogging.item().track({
239
239
  click: true,
240
240
  dblclick: true,
241
- resize: true,
242
241
  keydown: 'ArrowUp|ArrowDown|PageUp|PageDown|Enter|Space',
243
242
  })}`);
244
243
  return listItemElement;
@@ -14,6 +14,11 @@ devtools-icon {
14
14
  margin-right: var(--sys-size-4);
15
15
  }
16
16
 
17
+ .tree-element-title > div {
18
+ display: flex;
19
+ align-items: center;
20
+ }
21
+
17
22
  .navigator-sm-script-tree-item devtools-icon,
18
23
  .navigator-script-tree-item devtools-icon,
19
24
  .navigator-snippet-tree-item devtools-icon {
@@ -52,6 +52,10 @@ export class ExtensionPanel extends UI.Panel.Panel implements UI.SearchableView.
52
52
  this.id, Extensions.ExtensionAPI.PrivateAPI.Panels.SearchAction.PerformSearch, query);
53
53
  }
54
54
 
55
+ supportsMatchCounts(): boolean {
56
+ return false;
57
+ }
58
+
55
59
  jumpToNextSearchResult(): void {
56
60
  this.server.notifySearchAction(this.id, Extensions.ExtensionAPI.PrivateAPI.Panels.SearchAction.NextSearchResult);
57
61
  }
@@ -54,6 +54,7 @@ export class FreDialog {
54
54
  if (ariaLabel) {
55
55
  dialog.setAriaLabel(ariaLabel);
56
56
  }
57
+ dialog.contentElement.tabIndex = -1;
57
58
  const result = Promise.withResolvers<boolean>();
58
59
  // clang-format off
59
60
  Lit.render(html`
@@ -131,6 +132,9 @@ export class FreDialog {
131
132
  dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MEASURE_CONTENT);
132
133
  dialog.setDimmed(true);
133
134
  dialog.show();
135
+ // Explicitly calling focus as `dialog.show()` does not put the FRE
136
+ // dialog in focus.
137
+ dialog.contentElement.focus();
134
138
 
135
139
  return result.promise;
136
140
  }
@@ -1425,7 +1425,6 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
1425
1425
  this.elementInternal.className = 'console-message-wrapper';
1426
1426
  this.elementInternal.setAttribute('jslog', `${VisualLogging.item('console-message').track({
1427
1427
  click: true,
1428
- resize: true,
1429
1428
  keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Enter|Space|Home|End',
1430
1429
  })}`);
1431
1430
  this.elementInternal.removeChildren();
@@ -3,18 +3,20 @@
3
3
  // found in the LICENSE file.
4
4
 
5
5
  import '../../ui/components/highlighting/highlighting.js';
6
- import '../../ui/legacy/components/data_grid/data_grid.js';
7
6
 
8
7
  import * as Common from '../../core/common/common.js';
9
8
  import * as i18n from '../../core/i18n/i18n.js';
10
9
  import type * as Platform from '../../core/platform/platform.js';
11
10
  import * as Workspace from '../../models/workspace/workspace.js';
11
+ import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
12
12
  import * as UI from '../../ui/legacy/legacy.js';
13
13
  import {Directives, html, nothing, render, type TemplateResult} from '../../ui/lit/lit.js';
14
14
 
15
15
  import coverageListViewStyles from './coverageListView.css.js';
16
16
  import {CoverageType} from './CoverageModel.js';
17
17
 
18
+ const {ifExpanded} = DataGrid;
19
+
18
20
  export interface CoverageListItem {
19
21
  url: Platform.DevToolsPath.UrlString;
20
22
  type: CoverageType;
@@ -143,7 +145,10 @@ interface ViewInput {
143
145
  selectedUrl: Platform.DevToolsPath.UrlString|null;
144
146
  maxSize: number;
145
147
  onOpen: (url: Platform.DevToolsPath.UrlString) => void;
148
+ onExpand: () => void;
149
+ onCollapse: () => void;
146
150
  highlightRegExp: RegExp|null;
151
+ expandedUrls: Set<Platform.DevToolsPath.UrlString>;
147
152
  }
148
153
 
149
154
  type View = (input: ViewInput, output: object, target: HTMLElement) => void;
@@ -181,6 +186,7 @@ export class CoverageListView extends UI.Widget.VBox {
181
186
  #coverageInfo: CoverageListItem[] = [];
182
187
  #selectedUrl: Platform.DevToolsPath.UrlString|null = null;
183
188
  #maxSize = 0;
189
+ #expandedUrls = new Set<Platform.DevToolsPath.UrlString>();
184
190
  #view: View;
185
191
 
186
192
  constructor(element?: HTMLElement, view = DEFAULT_VIEW) {
@@ -213,9 +219,16 @@ export class CoverageListView extends UI.Widget.VBox {
213
219
  items: this.#coverageInfo,
214
220
  selectedUrl: this.#selectedUrl,
215
221
  maxSize: this.#maxSize,
222
+ expandedUrls: this.#expandedUrls,
216
223
  onOpen: (url: Platform.DevToolsPath.UrlString) => {
217
224
  this.selectedUrl = url;
218
225
  },
226
+ onExpand: () => {
227
+ this.requestUpdate();
228
+ },
229
+ onCollapse: () => {
230
+ this.requestUpdate();
231
+ },
219
232
  highlightRegExp: this.#highlightRegExp,
220
233
  };
221
234
  this.#view(input, {}, this.contentElement);
@@ -281,7 +294,9 @@ function renderItem(info: CoverageListItem, input: ViewInput): TemplateResult {
281
294
  return html`
282
295
  <style>${coverageListViewStyles}</style>
283
296
  <tr data-url=${info.url} selected=${info.url === input.selectedUrl}
284
- @open=${() => input.onOpen(info.url)}>
297
+ @open=${() => input.onOpen(info.url)}
298
+ @expand=${() => input.onExpand()}
299
+ @collapse=${() => input.onCollapse()}>
285
300
  <td data-value=${info.url} title=${info.url} aria-label=${info.url}>
286
301
  <devtools-highlight ranges=${highlightRange(info.url)} class="url-outer" aria-hidden="true">
287
302
  <div class="url-prefix">${splitURL ? splitURL[1] : info.url}</div>
@@ -325,7 +340,7 @@ function renderItem(info: CoverageListItem, input: ViewInput): TemplateResult {
325
340
  </td>
326
341
  ${info.sources.length > 0 ? html`
327
342
  <td><table>
328
- ${repeat(info.sources, source => source.url, source => renderItem(source, input))}
343
+ ${ifExpanded(() => html`${repeat(info.sources, source => source.url, source => renderItem(source, input))}`)}
329
344
  </table></td>` : nothing}
330
345
  </tr>`;
331
346
  // clang-format on
@@ -13,6 +13,17 @@ import {PanelUtils} from '../utils/utils.js';
13
13
 
14
14
  import type {EditorHandles} from './ElementsTreeElement.js';
15
15
 
16
+ export class AdoptedStyleSheetSetTreeElement extends UI.TreeOutline.TreeElement {
17
+ constructor(readonly adoptedStyleSheets: SDK.DOMModel.AdoptedStyleSheet[]) {
18
+ super('');
19
+ const documentElement = this.listItemElement.createChild('span');
20
+ UI.UIUtils.createTextChild(documentElement, '#adopted-style-sheets');
21
+ for (const adoptedStyleSheet of adoptedStyleSheets) {
22
+ this.appendChild(new AdoptedStyleSheetTreeElement(adoptedStyleSheet));
23
+ }
24
+ }
25
+ }
26
+
16
27
  export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
17
28
  private eventListener: Common.EventTarget.EventDescriptor|null = null;
18
29
 
@@ -38,6 +38,7 @@ import * as Common from '../../core/common/common.js';
38
38
  import * as i18n from '../../core/i18n/i18n.js';
39
39
  import * as Platform from '../../core/platform/platform.js';
40
40
  import * as SDK from '../../core/sdk/sdk.js';
41
+ import * as ComputedStyleModule from '../../models/computed_style/computed_style.js';
41
42
  import * as TreeOutline from '../../ui/components/tree_outline/tree_outline.js';
42
43
  import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
43
44
  import * as Components from '../../ui/legacy/components/utils/utils.js';
@@ -45,7 +46,6 @@ import * as UI from '../../ui/legacy/legacy.js';
45
46
  import * as Lit from '../../ui/lit/lit.js';
46
47
 
47
48
  import * as ElementsComponents from './components/components.js';
48
- import {type ComputedStyle, type ComputedStyleModel, Events} from './ComputedStyleModel.js';
49
49
  import computedStyleSidebarPaneStyles from './computedStyleSidebarPane.css.js';
50
50
  import {ImagePreviewPopover} from './ImagePreviewPopover.js';
51
51
  import {PlatformFontsWidget} from './PlatformFontsWidget.js';
@@ -262,7 +262,7 @@ type ComputedStyleData = {
262
262
  };
263
263
 
264
264
  export class ComputedStyleWidget extends UI.Widget.VBox {
265
- private computedStyleModel: ComputedStyleModel;
265
+ private computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel;
266
266
  private readonly showInheritedComputedStylePropertiesSetting: Common.Settings.Setting<boolean>;
267
267
  private readonly groupComputedStylesSetting: Common.Settings.Setting<boolean>;
268
268
  input: UI.Toolbar.ToolbarInput;
@@ -274,15 +274,17 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
274
274
  #computedStylesTree = new TreeOutline.TreeOutline.TreeOutline<ComputedStyleData>();
275
275
  #treeData?: TreeOutline.TreeOutline.TreeOutlineData<ComputedStyleData>;
276
276
 
277
- constructor(computedStyleModel: ComputedStyleModel) {
277
+ constructor(computedStyleModel: ComputedStyleModule.ComputedStyleModel.ComputedStyleModel) {
278
278
  super({useShadowDom: true});
279
279
  this.registerRequiredCSS(computedStyleSidebarPaneStyles);
280
280
 
281
281
  this.contentElement.classList.add('styles-sidebar-computed-style-widget');
282
282
 
283
283
  this.computedStyleModel = computedStyleModel;
284
- this.computedStyleModel.addEventListener(Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
285
- this.computedStyleModel.addEventListener(Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
284
+ this.computedStyleModel.addEventListener(
285
+ ComputedStyleModule.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
286
+ this.computedStyleModel.addEventListener(
287
+ ComputedStyleModule.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
286
288
 
287
289
  this.showInheritedComputedStylePropertiesSetting =
288
290
  Common.Settings.Settings.instance().createSetting('show-inherited-computed-style-properties', false);
@@ -374,8 +376,9 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
374
376
  }
375
377
  }
376
378
 
377
- private async rebuildAlphabeticalList(nodeStyle: ComputedStyle, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles):
378
- Promise<void> {
379
+ private async rebuildAlphabeticalList(
380
+ nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle,
381
+ matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles): Promise<void> {
379
382
  this.imagePreviewPopover.hide();
380
383
  this.linkifier.reset();
381
384
  const cssModel = this.computedStyleModel.cssModel();
@@ -417,7 +420,8 @@ export class ComputedStyleWidget extends UI.Widget.VBox {
417
420
  }
418
421
 
419
422
  private async rebuildGroupedList(
420
- nodeStyle: ComputedStyle|null, matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null): Promise<void> {
423
+ nodeStyle: ComputedStyleModule.ComputedStyleModel.ComputedStyle|null,
424
+ matchedStyles: SDK.CSSMatchedStyles.CSSMatchedStyles|null): Promise<void> {
421
425
  this.imagePreviewPopover.hide();
422
426
  this.linkifier.reset();
423
427
  const cssModel = this.computedStyleModel.cssModel();
@@ -41,6 +41,7 @@ import * as Root from '../../core/root/root.js';
41
41
  import * as SDK from '../../core/sdk/sdk.js';
42
42
  import type * as Protocol from '../../generated/protocol.js';
43
43
  import * as Annotations from '../../models/annotations/annotations.js';
44
+ import * as ComputedStyle from '../../models/computed_style/computed_style.js';
44
45
  import * as PanelCommon from '../../panels/common/common.js';
45
46
  import type * as Adorners from '../../ui/components/adorners/adorners.js';
46
47
  import * as Buttons from '../../ui/components/buttons/buttons.js';
@@ -52,7 +53,6 @@ import type {AXTreeNodeData} from './AccessibilityTreeUtils.js';
52
53
  import {AccessibilityTreeView} from './AccessibilityTreeView.js';
53
54
  import {ColorSwatchPopoverIcon} from './ColorSwatchPopoverIcon.js';
54
55
  import * as ElementsComponents from './components/components.js';
55
- import {ComputedStyleModel} from './ComputedStyleModel.js';
56
56
  import {ComputedStyleWidget} from './ComputedStyleWidget.js';
57
57
  import elementsPanelStyles from './elementsPanel.css.js';
58
58
  import {DOMTreeWidget, type ElementsTreeOutline} from './ElementsTreeOutline.js';
@@ -242,7 +242,7 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
242
242
 
243
243
  private cssStyleTrackerByCSSModel: Map<SDK.CSSModel.CSSModel, SDK.CSSModel.CSSPropertyTracker>;
244
244
  #domTreeWidget: DOMTreeWidget;
245
- #computedStyleModel: ComputedStyleModel;
245
+ #computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
246
246
 
247
247
  getTreeOutlineForTesting(): ElementsTreeOutline|undefined {
248
248
  return this.#domTreeWidget.getTreeOutlineForTesting();
@@ -302,7 +302,8 @@ export class ElementsPanel extends UI.Panel.Panel implements UI.SearchableView.S
302
302
 
303
303
  crumbsContainer.appendChild(this.breadcrumbs);
304
304
 
305
- this.#computedStyleModel = new ComputedStyleModel(UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode));
305
+ this.#computedStyleModel = new ComputedStyle.ComputedStyleModel.ComputedStyleModel(
306
+ UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode));
306
307
  UI.Context.Context.instance().addFlavorChangeListener(SDK.DOMModel.DOMNode, event => {
307
308
  this.#computedStyleModel.node = event.data;
308
309
  this.evaluateTrackingComputedStyleUpdatesForNode();
@@ -4,20 +4,22 @@
4
4
 
5
5
  import type * as Common from '../../core/common/common.js';
6
6
  import type * as SDK from '../../core/sdk/sdk.js';
7
+ import * as ComputedStyle from '../../models/computed_style/computed_style.js';
7
8
  import * as UI from '../../ui/legacy/legacy.js';
8
9
 
9
- import {type ComputedStyleModel, type CSSModelChangedEvent, Events} from './ComputedStyleModel.js';
10
-
11
10
  export class ElementsSidebarPane extends UI.Widget.VBox {
12
- protected computedStyleModelInternal: ComputedStyleModel;
13
- constructor(computedStyleModel: ComputedStyleModel, options: UI.Widget.WidgetOptions = {}) {
11
+ protected computedStyleModelInternal: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
12
+ constructor(
13
+ computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, options: UI.Widget.WidgetOptions = {}) {
14
14
  options.useShadowDom = options.useShadowDom ?? true;
15
15
  options.classes = options.classes ?? [];
16
16
  options.classes.push('flex-none');
17
17
  super(options);
18
18
  this.computedStyleModelInternal = computedStyleModel;
19
- this.computedStyleModelInternal.addEventListener(Events.CSS_MODEL_CHANGED, this.onCSSModelChanged, this);
20
- this.computedStyleModelInternal.addEventListener(Events.COMPUTED_STYLE_CHANGED, this.onComputedStyleChanged, this);
19
+ this.computedStyleModelInternal.addEventListener(
20
+ ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.onCSSModelChanged, this);
21
+ this.computedStyleModelInternal.addEventListener(
22
+ ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.onComputedStyleChanged, this);
21
23
  }
22
24
 
23
25
  node(): SDK.DOMModel.DOMNode|null {
@@ -28,7 +30,7 @@ export class ElementsSidebarPane extends UI.Widget.VBox {
28
30
  return this.computedStyleModelInternal.cssModel();
29
31
  }
30
32
 
31
- computedStyleModel(): ComputedStyleModel {
33
+ computedStyleModel(): ComputedStyle.ComputedStyleModel.ComputedStyleModel {
32
34
  return this.computedStyleModelInternal;
33
35
  }
34
36
 
@@ -36,7 +38,8 @@ export class ElementsSidebarPane extends UI.Widget.VBox {
36
38
  return;
37
39
  }
38
40
 
39
- onCSSModelChanged(_event: Common.EventTarget.EventTargetEvent<CSSModelChangedEvent|null>): void {
41
+ onCSSModelChanged(
42
+ _event: Common.EventTarget.EventTargetEvent<ComputedStyle.ComputedStyleModel.CSSModelChangedEvent|null>): void {
40
43
  }
41
44
 
42
45
  onComputedStyleChanged(): void {
@@ -721,7 +721,6 @@ export class ElementsTreeElement extends UI.TreeOutline.TreeElement {
721
721
  this.listItemElement.setAttribute(
722
722
  'jslog', `${VisualLogging.treeItem().parent('elementsTreeOutline').track({
723
723
  keydown: 'ArrowUp|ArrowDown|ArrowLeft|ArrowRight|Backspace|Delete|Enter|Space|Home|End',
724
- resize: true,
725
724
  drag: true,
726
725
  click: true,
727
726
  })}`);
@@ -47,7 +47,7 @@ import * as UI from '../../ui/legacy/legacy.js';
47
47
  import {html, nothing, render} from '../../ui/lit/lit.js';
48
48
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
49
49
 
50
- import {AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
50
+ import {AdoptedStyleSheetSetTreeElement, AdoptedStyleSheetTreeElement} from './AdoptedStyleSheetTreeElement.js';
51
51
  import {getElementIssueDetails} from './ElementIssueUtils.js';
52
52
  import {ElementsPanel} from './ElementsPanel.js';
53
53
  import {ElementsTreeElement, InitialChildrenLimit, isOpeningTag} from './ElementsTreeElement.js';
@@ -917,15 +917,21 @@ export class ElementsTreeOutline extends
917
917
  }
918
918
 
919
919
  highlightAdoptedStyleSheet(adoptedStyleSheet: SDK.DOMModel.AdoptedStyleSheet): void {
920
- const parentNode = !this.includeRootDOMNode && adoptedStyleSheet.parent === this.rootDOMNode && this.rootDOMNode ?
920
+ const parentDOMNode =
921
+ !this.includeRootDOMNode && adoptedStyleSheet.parent === this.rootDOMNode && this.rootDOMNode ?
921
922
  this.rootElement() :
922
923
  this.createTreeElementFor(adoptedStyleSheet.parent);
923
- if (!parentNode) {
924
+ if (!parentDOMNode) {
925
+ return;
926
+ }
927
+ const parentNode = parentDOMNode.firstChild();
928
+ if (!(parentNode && parentNode instanceof AdoptedStyleSheetSetTreeElement)) {
924
929
  return;
925
930
  }
926
931
 
927
932
  for (const child of parentNode.children()) {
928
933
  if (child instanceof AdoptedStyleSheetTreeElement && child.adoptedStyleSheet === adoptedStyleSheet) {
934
+ parentNode.expand();
929
935
  child.highlight();
930
936
  return;
931
937
  }
@@ -980,8 +986,8 @@ export class ElementsTreeOutline extends
980
986
  this.dispatchEventToListeners(ElementsTreeOutline.Events.ElementsTreeUpdated, nodes);
981
987
  }
982
988
 
983
- findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet): ElementsTreeElement|null {
984
- if (node instanceof SDK.DOMModel.AdoptedStyleSheet) {
989
+ findTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]): ElementsTreeElement|null {
990
+ if (node instanceof Array) {
985
991
  return null;
986
992
  }
987
993
  let treeElement = this.lookUpTreeElement(node);
@@ -1768,10 +1774,10 @@ export class ElementsTreeOutline extends
1768
1774
  }
1769
1775
  }
1770
1776
 
1771
- private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet, isClosingTag?: boolean):
1777
+ private createElementTreeElement(node: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], isClosingTag?: boolean):
1772
1778
  UI.TreeOutline.TreeElement {
1773
- if (node instanceof SDK.DOMModel.AdoptedStyleSheet) {
1774
- return new AdoptedStyleSheetTreeElement(node);
1779
+ if (node instanceof Array) {
1780
+ return new AdoptedStyleSheetSetTreeElement(node);
1775
1781
  }
1776
1782
  const treeElement = new ElementsTreeElement(node, isClosingTag);
1777
1783
  treeElement.setExpandable(!isClosingTag && this.hasVisibleChildren(node));
@@ -1800,8 +1806,12 @@ export class ElementsTreeOutline extends
1800
1806
  return treeElement.childAt(index) as ElementsTreeElement;
1801
1807
  }
1802
1808
 
1803
- private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet> {
1804
- let visibleChildren = [...node.adoptedStyleSheetsForNode, ...ElementsTreeElement.visibleShadowRoots(node)];
1809
+ private visibleChildren(node: SDK.DOMModel.DOMNode): Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> {
1810
+ const visibleChildren: Array<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]> = [];
1811
+ if (node.adoptedStyleSheetsForNode.length) {
1812
+ visibleChildren.push(node.adoptedStyleSheetsForNode);
1813
+ }
1814
+ visibleChildren.push(...ElementsTreeElement.visibleShadowRoots(node));
1805
1815
 
1806
1816
  const contentDocument = node.contentDocument();
1807
1817
  if (contentDocument) {
@@ -1838,7 +1848,7 @@ export class ElementsTreeOutline extends
1838
1848
  if (!this.showHTMLCommentsSetting.get()) {
1839
1849
  children = children.filter(n => n.nodeType() !== Node.COMMENT_NODE);
1840
1850
  }
1841
- visibleChildren = visibleChildren.concat(children);
1851
+ visibleChildren.push(...children);
1842
1852
  }
1843
1853
 
1844
1854
  const afterPseudoElement = node.afterPseudoElement();
@@ -1927,7 +1937,7 @@ export class ElementsTreeOutline extends
1927
1937
  }
1928
1938
 
1929
1939
  insertChildElement(
1930
- treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet,
1940
+ treeElement: ElementsTreeElement|TopLayerContainer, child: SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[],
1931
1941
  index: number, isClosingTag?: boolean): UI.TreeOutline.TreeElement {
1932
1942
  const newElement = this.createElementTreeElement(child, isClosingTag);
1933
1943
  treeElement.insertChild(newElement, index);
@@ -1957,12 +1967,12 @@ export class ElementsTreeOutline extends
1957
1967
 
1958
1968
  const node = treeElement.node();
1959
1969
  const visibleChildren = this.visibleChildren(node);
1960
- const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet>(visibleChildren);
1970
+ const visibleChildrenSet = new Set<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[]>(visibleChildren);
1961
1971
 
1962
1972
  // Remove any tree elements that no longer have this node as their parent and save
1963
1973
  // all existing elements that could be reused. This also removes closing tag element.
1964
- const existingTreeElements =
1965
- new Map<SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet, UI.TreeOutline.TreeElement&ElementsTreeElement>();
1974
+ const existingTreeElements = new Map<
1975
+ SDK.DOMModel.DOMNode|SDK.DOMModel.AdoptedStyleSheet[], UI.TreeOutline.TreeElement&ElementsTreeElement>();
1966
1976
  for (let i = treeElement.childCount() - 1; i >= 0; --i) {
1967
1977
  const existingTreeElement = treeElement.childAt(i);
1968
1978
  if (!(existingTreeElement instanceof ElementsTreeElement)) {
@@ -228,27 +228,26 @@ const DEFAULT_VIEW: View = (input, output, target) => {
228
228
  event.preventDefault();
229
229
  }
230
230
  };
231
- // clang-format off
232
231
  const renderElement = (element: LayoutElement): Lit.LitTemplate => html`<div
233
232
  class="element"
234
- jslog=${VisualLogging.item().track({resize: true})}>
233
+ jslog=${VisualLogging.item()}>
235
234
  <devtools-checkbox
236
235
  data-element="true"
237
236
  class="checkbox-label"
238
237
  .checked=${element.enabled}
239
238
  @change=${(e: Event) => input.onElementToggle(element, e)}
240
- jslog=${VisualLogging.toggle().track({click: true, resize: true })}>
239
+ jslog=${VisualLogging.toggle().track({
240
+ click: true
241
+ })}>
241
242
  <span
242
243
  class="node-text-container"
243
244
  data-label="true"
244
245
  @mouseenter=${(e: MouseEvent) => input.onMouseEnter(element, e)}
245
246
  @mouseleave=${(e: MouseEvent) => input.onMouseLeave(element, e)}>
246
247
  <devtools-node-text .data=${{
247
- nodeId: element.domId,
248
- nodeTitle: element.name,
249
- nodeClasses: element.domClasses
250
- }}>
251
- </devtools-node-text>
248
+ nodeId: element.domId, nodeTitle: element.name, nodeClasses: element.domClasses,
249
+ }
250
+ }></devtools-node-text>
252
251
  </span>
253
252
  </devtools-checkbox>
254
253
  <label
@@ -33,11 +33,11 @@
33
33
  import * as Common from '../../core/common/common.js';
34
34
  import * as Platform from '../../core/platform/platform.js';
35
35
  import * as SDK from '../../core/sdk/sdk.js';
36
+ import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
36
37
  import * as UI from '../../ui/legacy/legacy.js';
37
38
  import {Directives, html, type LitTemplate, nothing, render} from '../../ui/lit/lit.js';
38
39
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
39
40
 
40
- import type {ComputedStyleModel} from './ComputedStyleModel.js';
41
41
  import {ElementsSidebarPane} from './ElementsSidebarPane.js';
42
42
  import metricsSidebarPaneStyles from './metricsSidebarPane.css.js';
43
43
 
@@ -190,7 +190,7 @@ export class MetricsSidebarPane extends ElementsSidebarPane {
190
190
  private isEditingMetrics?: boolean;
191
191
  private view: View;
192
192
 
193
- constructor(computedStyleModel: ComputedStyleModel, view = DEFAULT_VIEW) {
193
+ constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, view = DEFAULT_VIEW) {
194
194
  super(computedStyleModel, {jslog: `${VisualLogging.pane('styles-metrics')}`});
195
195
  this.registerRequiredCSS(metricsSidebarPaneStyles);
196
196
 
@@ -4,10 +4,10 @@
4
4
 
5
5
  import * as i18n from '../../core/i18n/i18n.js';
6
6
  import type * as Protocol from '../../generated/protocol.js';
7
+ import * as ComputedStyle from '../../models/computed_style/computed_style.js';
7
8
  import * as UI from '../../ui/legacy/legacy.js';
8
9
  import {html, render} from '../../ui/lit/lit.js';
9
10
 
10
- import {type ComputedStyleModel, Events as ComputedStyleModelEvents} from './ComputedStyleModel.js';
11
11
  import platformFontsWidgetStyles from './platformFontsWidget.css.js';
12
12
 
13
13
  const UIStrings = {
@@ -78,17 +78,19 @@ export const DEFAULT_VIEW: View = (input, _output, target) => {
78
78
  };
79
79
 
80
80
  export class PlatformFontsWidget extends UI.Widget.VBox {
81
- private readonly sharedModel: ComputedStyleModel;
81
+ private readonly sharedModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel;
82
82
  readonly #view: View;
83
83
 
84
- constructor(sharedModel: ComputedStyleModel, view: View = DEFAULT_VIEW) {
84
+ constructor(sharedModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel, view: View = DEFAULT_VIEW) {
85
85
  super({useShadowDom: true});
86
86
  this.#view = view;
87
87
  this.registerRequiredCSS(platformFontsWidgetStyles);
88
88
 
89
89
  this.sharedModel = sharedModel;
90
- this.sharedModel.addEventListener(ComputedStyleModelEvents.CSS_MODEL_CHANGED, this.requestUpdate, this);
91
- this.sharedModel.addEventListener(ComputedStyleModelEvents.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
90
+ this.sharedModel.addEventListener(
91
+ ComputedStyle.ComputedStyleModel.Events.CSS_MODEL_CHANGED, this.requestUpdate, this);
92
+ this.sharedModel.addEventListener(
93
+ ComputedStyle.ComputedStyleModel.Events.COMPUTED_STYLE_CHANGED, this.requestUpdate, this);
92
94
  }
93
95
 
94
96
  override async performUpdate(): Promise<void> {
@@ -189,14 +189,11 @@ export class PropertiesWidget extends UI.Widget.VBox {
189
189
  }
190
190
 
191
191
  const treeElement = this.treeOutline.rootElement();
192
- let {properties} = await SDK.RemoteObject.RemoteObject.loadFromObjectPerProto(object, true /* generatePreview */);
193
192
  treeElement.removeChildren();
194
- if (properties === null) {
195
- properties = [];
196
- }
193
+ const root = new ObjectUI.ObjectPropertiesSection.ObjectTree(
194
+ object, ObjectUI.ObjectPropertiesSection.ObjectPropertiesMode.OWN_AND_INTERNAL_AND_INHERITED);
197
195
  ObjectUI.ObjectPropertiesSection.ObjectPropertyTreeElement.populateWithProperties(
198
- treeElement, {properties: properties.map(p => new ObjectUI.ObjectPropertiesSection.ObjectTreeNode(p))},
199
- true /* skipProto */, true /* skipGettersAndSetters */);
196
+ treeElement, await root.populateChildrenIfNeeded(), true /* skipProto */, true /* skipGettersAndSetters */);
200
197
  this.internalFilterProperties();
201
198
  }
202
199
  this.#view(
@@ -43,6 +43,7 @@ import * as Root from '../../core/root/root.js';
43
43
  import * as SDK from '../../core/sdk/sdk.js';
44
44
  import * as Protocol from '../../generated/protocol.js';
45
45
  import * as Bindings from '../../models/bindings/bindings.js';
46
+ import type * as ComputedStyle from '../../models/computed_style/computed_style.js';
46
47
  import * as TextUtils from '../../models/text_utils/text_utils.js';
47
48
  import {createIcon, Icon} from '../../ui/kit/kit.js';
48
49
  import * as InlineEditor from '../../ui/legacy/components/inline_editor/inline_editor.js';
@@ -52,7 +53,6 @@ import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
52
53
  import * as PanelsCommon from '../common/common.js';
53
54
 
54
55
  import * as ElementsComponents from './components/components.js';
55
- import type {ComputedStyleModel, CSSModelChangedEvent} from './ComputedStyleModel.js';
56
56
  import {ElementsPanel} from './ElementsPanel.js';
57
57
  import {ElementsSidebarPane} from './ElementsSidebarPane.js';
58
58
  import {ImagePreviewPopover} from './ImagePreviewPopover.js';
@@ -204,7 +204,7 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
204
204
  #updateAbortController?: AbortController;
205
205
  #updateComputedStylesAbortController?: AbortController;
206
206
 
207
- constructor(computedStyleModel: ComputedStyleModel) {
207
+ constructor(computedStyleModel: ComputedStyle.ComputedStyleModel.ComputedStyleModel) {
208
208
  super(computedStyleModel, {delegatesFocus: true});
209
209
  this.setMinimumSize(96, 26);
210
210
  this.registerRequiredCSS(stylesSidebarPaneStyles);
@@ -729,7 +729,8 @@ export class StylesSidebarPane extends Common.ObjectWrapper.eventMixin<EventType
729
729
  }
730
730
  }
731
731
 
732
- override onCSSModelChanged(event: Common.EventTarget.EventTargetEvent<CSSModelChangedEvent>): void {
732
+ override onCSSModelChanged(
733
+ event: Common.EventTarget.EventTargetEvent<ComputedStyle.ComputedStyleModel.CSSModelChangedEvent>): void {
733
734
  const edit = event?.data && 'edit' in event.data ? event.data.edit : null;
734
735
  if (edit) {
735
736
  for (const section of this.allSections()) {
@@ -303,7 +303,7 @@ export class ElementsBreadcrumbs extends HTMLElement {
303
303
  data-crumb="true"
304
304
  >
305
305
  <a href="#" draggable=false class="crumb-link"
306
- jslog=${VisualLogging.item().track({click:true, resize:true})}
306
+ jslog=${VisualLogging.item().track({click:true})}
307
307
  @click=${this.#onCrumbClick(crumb.node)}
308
308
  @mousemove=${this.#onCrumbMouseMove(crumb.node)}
309
309
  @mouseleave=${this.#onCrumbMouseLeave(crumb.node)}
@@ -194,8 +194,7 @@ export class StylePropertyEditor extends HTMLElement {
194
194
  return html`
195
195
  <button title=${title}
196
196
  class=${classes}
197
- jslog=${
198
- VisualLogging.item().track({click: true, resize: true}).context(`${propertyName}-${propertyValue}`)}
197
+ jslog=${VisualLogging.item().track({click: true}).context(`${propertyName}-${propertyValue}`)}
199
198
  @click=${() => this.#onButtonClick(propertyName, propertyValue, selected)}>
200
199
  <devtools-icon style=${transform} name=${iconInfo.iconName}>
201
200
  </devtools-icon>