chrome-devtools-frontend 1.0.1578729 → 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 (314) hide show
  1. package/agents/prompts/creating-a-model.md +51 -0
  2. package/docs/cookbook/devtools_on_devtools.md +2 -2
  3. package/docs/feature-specs/elements-gutter-decorators.md +40 -0
  4. package/docs/feature-specs/elements-tree-edit-html.md +14 -0
  5. package/docs/feature-specs/elements-tree-node-title.md +46 -0
  6. package/docs/feature-specs/elements-tree-selection-and-hover.md +31 -0
  7. package/docs/feature-specs/images/elements-gutter-decorators-multiple.png +0 -0
  8. package/docs/get_the_code.md +3 -3
  9. package/front_end/core/host/UserMetrics.ts +3 -7
  10. package/front_end/core/root/Runtime.ts +0 -1
  11. package/front_end/core/sdk/NetworkManager.ts +0 -35
  12. package/front_end/core/sdk/OverlayModel.ts +10 -0
  13. package/front_end/devtools_compatibility.js +4 -0
  14. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  15. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +530 -0
  16. package/front_end/entrypoints/greendev_floaty/floaty.css +258 -0
  17. package/front_end/entrypoints/greendev_floaty/floaty.html +31 -0
  18. package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +422 -0
  19. package/front_end/entrypoints/inspector_main/InspectorMain.ts +0 -38
  20. package/front_end/generated/ARIAProperties.js +0 -6
  21. package/front_end/generated/InspectorBackendCommands.ts +10 -4
  22. package/front_end/generated/SupportedCSSProperties.js +39 -31
  23. package/front_end/generated/protocol-mapping.d.ts +12 -0
  24. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  25. package/front_end/generated/protocol.ts +57 -2
  26. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +32 -2
  27. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +110 -6
  28. package/front_end/models/computed_style/computed_style.ts +9 -0
  29. package/front_end/models/issues_manager/CorsIssue.ts +11 -14
  30. package/front_end/models/javascript_metadata/NativeFunctions.js +4 -0
  31. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +33 -4
  32. package/front_end/panels/ai_assistance/components/ChatInput.ts +52 -19
  33. package/front_end/panels/ai_assistance/components/ChatMessage.ts +7 -4
  34. package/front_end/panels/ai_assistance/components/ChatView.ts +4 -0
  35. package/front_end/panels/ai_assistance/components/chatInput.css +10 -3
  36. package/front_end/panels/application/DeviceBoundSessionsView.ts +51 -76
  37. package/front_end/panels/changes/changesSidebar.css +5 -0
  38. package/front_end/panels/common/AiCodeGenerationTeaser.ts +2 -2
  39. package/front_end/panels/common/AiCodeGenerationUpgradeDialog.ts +4 -4
  40. package/front_end/panels/common/ExtensionPanel.ts +4 -0
  41. package/front_end/panels/common/FreDialog.ts +4 -0
  42. package/front_end/panels/coverage/CoverageListView.ts +18 -3
  43. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +89 -0
  44. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -8
  45. package/front_end/panels/elements/ElementsPanel.ts +4 -3
  46. package/front_end/panels/elements/ElementsSidebarPane.ts +11 -8
  47. package/front_end/panels/elements/ElementsTreeElement.ts +92 -121
  48. package/front_end/panels/elements/ElementsTreeOutline.ts +26 -15
  49. package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
  50. package/front_end/panels/elements/PlatformFontsWidget.ts +7 -5
  51. package/front_end/panels/elements/PropertiesWidget.ts +3 -6
  52. package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
  53. package/front_end/panels/elements/elements.ts +4 -3
  54. package/front_end/panels/elements/elementsTreeOutline.css +16 -5
  55. package/front_end/panels/greendev/GreenDevPanel.css +241 -0
  56. package/front_end/panels/greendev/GreenDevPanel.ts +308 -0
  57. package/front_end/panels/greendev/GreenDevShared.ts +13 -0
  58. package/front_end/panels/greendev/greendev-meta.ts +52 -0
  59. package/front_end/panels/greendev/greendev.ts +9 -0
  60. package/front_end/panels/issues/CorsIssueDetailsView.ts +4 -4
  61. package/front_end/panels/lighthouse/LighthouseStartView.ts +1 -1
  62. package/front_end/panels/lighthouse/lighthouseStartView.css +6 -0
  63. package/front_end/panels/network/NetworkLogView.ts +2 -5
  64. package/front_end/panels/security/SecurityPanel.ts +0 -4
  65. package/front_end/panels/security/SecurityPanelSidebar.ts +2 -42
  66. package/front_end/panels/security/security-meta.ts +2 -14
  67. package/front_end/panels/security/security.ts +0 -4
  68. package/front_end/panels/settings/EditFileSystemView.ts +8 -8
  69. package/front_end/panels/settings/SettingsScreen.ts +4 -4
  70. package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
  71. package/front_end/panels/timeline/overlays/OverlaysImpl.ts +47 -26
  72. package/front_end/panels/timeline/overlays/components/TimespanBreakdownOverlay.ts +121 -39
  73. package/front_end/panels/timeline/overlays/components/timespanBreakdownOverlay.css +106 -101
  74. package/front_end/third_party/chromium/README.chromium +1 -1
  75. package/front_end/third_party/puppeteer/README.chromium +2 -2
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +35 -0
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +19 -0
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +16 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +21 -0
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +6 -0
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +13 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +56 -36
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -2
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +32 -8
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -1
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +32 -2
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -2
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +20 -0
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +25 -8
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +2 -0
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +23 -0
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +10 -6
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +29 -0
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +46 -6
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +5 -1
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +18 -0
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -2
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +13 -1
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +7 -2
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +43 -7
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +10 -1
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +34 -4
  142. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +1 -1
  144. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +1 -0
  154. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -0
  157. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +4 -0
  159. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +2 -2
  162. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  164. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  165. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  166. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  168. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +129 -3
  169. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +233 -65
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +35 -0
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +19 -0
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +16 -1
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +21 -0
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +6 -0
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +13 -1
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +56 -36
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -2
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +30 -6
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -1
  192. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +32 -2
  194. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -2
  196. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +20 -0
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -1
  200. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  201. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +25 -8
  202. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +2 -0
  204. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +23 -0
  206. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  207. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  208. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  209. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +10 -6
  210. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  211. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  212. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js +1 -1
  213. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +29 -0
  215. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +46 -6
  217. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +5 -1
  219. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +19 -1
  221. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +3 -3
  223. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
  224. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +14 -2
  226. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js +3 -3
  228. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +7 -2
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +43 -8
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +10 -1
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +31 -3
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +1 -1
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +1 -0
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -0
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +4 -0
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +2 -2
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/types.d.ts +129 -3
  261. package/front_end/third_party/puppeteer/package/package.json +4 -4
  262. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +46 -0
  263. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +21 -0
  264. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
  265. package/front_end/third_party/puppeteer/package/src/api/Page.ts +23 -0
  266. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +88 -56
  267. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +33 -8
  268. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +61 -3
  269. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +23 -2
  270. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +29 -8
  271. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +30 -0
  272. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -2
  273. package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -0
  274. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +85 -8
  275. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +36 -1
  276. package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +5 -5
  277. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +23 -2
  278. package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +3 -3
  279. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +60 -8
  280. package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +36 -3
  281. package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +1 -1
  282. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  283. package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +1 -1
  284. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +1 -0
  285. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
  286. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +4 -0
  287. package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +8 -6
  288. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  289. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  290. package/front_end/ui/components/text_editor/AutocompleteHistory.ts +2 -1
  291. package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
  292. package/front_end/ui/legacy/InplaceEditor.ts +1 -1
  293. package/front_end/ui/legacy/SearchableView.ts +5 -2
  294. package/front_end/ui/legacy/Widget.ts +15 -0
  295. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +6 -0
  296. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
  297. package/front_end/ui/legacy/components/data_grid/SortableDataGrid.ts +59 -9
  298. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +2 -1
  299. package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
  300. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +28 -15
  301. package/front_end/ui/legacy/components/quick_open/CommandMenu.ts +2 -2
  302. package/front_end/ui/legacy/components/settings_ui/SettingsUI.ts +3 -3
  303. package/front_end/ui/legacy/components/source_frame/JSONView.ts +2 -3
  304. package/front_end/ui/visual_logging/Debugging.ts +1 -1
  305. package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
  306. package/mcp/mcp.ts +1 -0
  307. package/package.json +1 -1
  308. package/front_end/panels/security/CookieControlsTreeElement.ts +0 -21
  309. package/front_end/panels/security/CookieControlsView.ts +0 -447
  310. package/front_end/panels/security/CookieReportTreeElement.ts +0 -21
  311. package/front_end/panels/security/CookieReportView.ts +0 -549
  312. package/front_end/panels/security/cookieControlsView.css +0 -139
  313. package/front_end/panels/security/cookieReportView.css +0 -90
  314. /package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +0 -0
@@ -582,27 +582,25 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
582
582
  <devtools-report>
583
583
  <devtools-report-section-header role="heading" aria-level="2">${
584
584
  i18nString(UIStrings.sessionConfig)}</devtools-report-section-header>
585
- ${renderKeyValue(i18nString(UIStrings.keySite), key.site, 'dbsc-site')}
586
- ${renderKeyValue(i18nString(UIStrings.keyId), key.id, 'dbsc-id')}
587
- ${renderKeyValue(i18nString(UIStrings.refreshUrl), sessionAndEvents.session.refreshUrl, 'dbsc-refresh-url')}
588
- ${
589
- renderKeyValue(
590
- i18nString(UIStrings.expiryDate), new Date(sessionAndEvents.session.expiryDate * 1000).toLocaleString(),
591
- 'dbsc-expiry-date')}
592
- ${
593
- renderKeyValue(
594
- i18nString(UIStrings.cachedChallenge), sessionAndEvents.session.cachedChallenge || '',
595
- 'dbsc-cached-challenge')}
596
- ${
597
- renderKeyValue(
598
- i18nString(UIStrings.allowedRefreshInitiators),
599
- sessionAndEvents.session.allowedRefreshInitiators.join(', '), 'dbsc-allowed-refresh-initiators')}
585
+ <devtools-report-key>${i18nString(UIStrings.keySite)}</devtools-report-key>
586
+ <devtools-report-value>${key.site}</devtools-report-value>
587
+ <devtools-report-key>${i18nString(UIStrings.keyId)}</devtools-report-key>
588
+ <devtools-report-value>${key.id}</devtools-report-value>
589
+ <devtools-report-key>${i18nString(UIStrings.refreshUrl)}</devtools-report-key>
590
+ <devtools-report-value>${sessionAndEvents.session.refreshUrl}</devtools-report-value>
591
+ <devtools-report-key>${i18nString(UIStrings.expiryDate)}</devtools-report-key>
592
+ <devtools-report-value>${
593
+ new Date(sessionAndEvents.session.expiryDate * 1000).toLocaleString()}</devtools-report-value>
594
+ <devtools-report-key>${i18nString(UIStrings.cachedChallenge)}</devtools-report-key>
595
+ <devtools-report-value>${sessionAndEvents.session.cachedChallenge || ''}</devtools-report-value>
596
+ <devtools-report-key>${i18nString(UIStrings.allowedRefreshInitiators)}</devtools-report-key>
597
+ <devtools-report-value>${sessionAndEvents.session.allowedRefreshInitiators.join(', ')}</devtools-report-value>
600
598
  <devtools-report-section-header role="heading" aria-level="2">${
601
599
  i18nString(UIStrings.scope)}</devtools-report-section-header>
602
- ${renderKeyValue(i18nString(UIStrings.origin), inclusionRules.origin, 'dbsc-origin')}
603
- ${
604
- renderKeyValue(
605
- i18nString(UIStrings.includeSite), boolToString(inclusionRules.includeSite), 'dbsc-include-site')}
600
+ <devtools-report-key>${i18nString(UIStrings.origin)}</devtools-report-key>
601
+ <devtools-report-value>${inclusionRules.origin}</devtools-report-value>
602
+ <devtools-report-key>${i18nString(UIStrings.includeSite)}</devtools-report-key>
603
+ <devtools-report-value>${boolToString(inclusionRules.includeSite)}</devtools-report-value>
606
604
  </devtools-report>
607
605
  ${
608
606
  inclusionRules.urlRules.length > 0 ? html`
@@ -710,78 +708,62 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: ViewOutput, target: HTML
710
708
  const creationEventDetails =
711
709
  selectedEvent?.creationEventDetails &&
712
710
  html`
713
- ${
714
- renderKeyValue(
715
- i18nString(UIStrings.fetchResult), fetchResultToString(selectedEvent.creationEventDetails.fetchResult),
716
- 'dbsc-creation-fetch-result')}
717
- ${
718
- selectedEvent.creationEventDetails.newSession &&
719
- html`
720
- ${
721
- renderKeyValue(
722
- i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
723
- 'dbsc-creation-updated-session-config')}
711
+ <devtools-report-key>${i18nString(UIStrings.fetchResult)}</devtools-report-key>
712
+ <devtools-report-value>${
713
+ fetchResultToString(selectedEvent.creationEventDetails.fetchResult)}</devtools-report-value>
714
+ ${selectedEvent.creationEventDetails.newSession && html`
715
+ <devtools-report-key>${i18nString(UIStrings.updatedSessionConfig)}</devtools-report-key>
716
+ <devtools-report-value>${i18nString(UIStrings.yes)}</devtools-report-value>
724
717
  `}
725
718
  `;
726
719
  const refreshEventDetails =
727
720
  selectedEvent?.refreshEventDetails &&
728
721
  html`
729
- ${
730
- renderKeyValue(
731
- i18nString(UIStrings.refreshResult),
732
- refreshResultToString(selectedEvent.refreshEventDetails.refreshResult), 'dbsc-refresh-result')}
733
- ${
734
- renderKeyValue(
735
- i18nString(UIStrings.causedAnyRequestDeferrals),
736
- boolToString(!selectedEvent.refreshEventDetails.wasFullyProactiveRefresh),
737
- 'dbsc-refresh-was-fully-proactive-refresh')}
722
+ <devtools-report-key>${i18nString(UIStrings.refreshResult)}</devtools-report-key>
723
+ <devtools-report-value>${
724
+ refreshResultToString(selectedEvent.refreshEventDetails.refreshResult)}</devtools-report-value>
725
+ <devtools-report-key>${i18nString(UIStrings.causedAnyRequestDeferrals)}</devtools-report-key>
726
+ <devtools-report-value>${
727
+ boolToString(!selectedEvent.refreshEventDetails.wasFullyProactiveRefresh)}</devtools-report-value>
738
728
  ${
739
729
  selectedEvent.refreshEventDetails.fetchResult &&
740
730
  html`
741
- ${
742
- renderKeyValue(
743
- i18nString(UIStrings.fetchResult), fetchResultToString(selectedEvent.refreshEventDetails.fetchResult),
744
- 'dbsc-refresh-fetch-result')}
731
+ <devtools-report-key>${i18nString(UIStrings.fetchResult)}</devtools-report-key>
732
+ <devtools-report-value>${
733
+ fetchResultToString(selectedEvent.refreshEventDetails.fetchResult)}</devtools-report-value>
745
734
  `}
746
- ${
747
- selectedEvent.refreshEventDetails.newSession &&
748
- html`
749
- ${
750
- renderKeyValue(
751
- i18nString(UIStrings.updatedSessionConfig), i18nString(UIStrings.yes),
752
- 'dbsc-refresh-updated-session-config')}
735
+ ${selectedEvent.refreshEventDetails.newSession && html`
736
+ <devtools-report-key>${i18nString(UIStrings.updatedSessionConfig)}</devtools-report-key>
737
+ <devtools-report-value>${i18nString(UIStrings.yes)}</devtools-report-value>
753
738
  `}
754
739
  `;
755
740
  const challengeEventDetails =
756
741
  selectedEvent?.challengeEventDetails &&
757
742
  html`
758
- ${
759
- renderKeyValue(
760
- i18nString(UIStrings.challengeResult),
761
- challengeResultToString(selectedEvent.challengeEventDetails.challengeResult), 'dbsc-challenge-result')}
762
- ${
763
- renderKeyValue(
764
- i18nString(UIStrings.challenge), selectedEvent.challengeEventDetails.challenge, 'dbsc-challenge')}
743
+ <devtools-report-key>${i18nString(UIStrings.challengeResult)}</devtools-report-key>
744
+ <devtools-report-value>${
745
+ challengeResultToString(selectedEvent.challengeEventDetails.challengeResult)}</devtools-report-value>
746
+ <devtools-report-key>${i18nString(UIStrings.challenge)}</devtools-report-key>
747
+ <devtools-report-value>${selectedEvent.challengeEventDetails.challenge}</devtools-report-value>
765
748
  `;
766
749
  const terminationEventDetails =
767
750
  selectedEvent?.terminationEventDetails &&
768
751
  html`
769
- ${
770
- renderKeyValue(
771
- i18nString(UIStrings.deletionReason),
772
- deletionReasonToString(selectedEvent.terminationEventDetails.deletionReason), 'dbsc-termination-reason')}
752
+ <devtools-report-key>${i18nString(UIStrings.deletionReason)}</devtools-report-key>
753
+ <devtools-report-value>${
754
+ deletionReasonToString(selectedEvent.terminationEventDetails.deletionReason)}</devtools-report-value>
773
755
  `;
774
756
  const eventDetailsContentHtml = selectedEvent ?
775
757
  html`
776
758
  <devtools-report>
777
- ${renderKeyValue(i18nString(UIStrings.keySite), selectedEvent.site, 'dbsc-event-site')}
778
- ${
779
- selectedEvent.sessionId &&
780
- renderKeyValue(i18nString(UIStrings.sessionId), selectedEvent.sessionId, 'dbsc-event-session-id')}
781
- ${renderKeyValue(i18nString(UIStrings.type), getEventTypeString(selectedEvent), 'dbsc-event-type')}
782
- ${
783
- renderKeyValue(
784
- i18nString(UIStrings.eventResult), succeededToString(selectedEvent.succeeded), 'dbsc-event-result')}
759
+ <devtools-report-key>${i18nString(UIStrings.keySite)}</devtools-report-key>
760
+ <devtools-report-value>${selectedEvent.site}</devtools-report-value>
761
+ <devtools-report-key>${i18nString(UIStrings.sessionId)}</devtools-report-key>
762
+ <devtools-report-value>${selectedEvent.sessionId}</devtools-report-value>
763
+ <devtools-report-key>${i18nString(UIStrings.type)}</devtools-report-key>
764
+ <devtools-report-value>${getEventTypeString(selectedEvent)}</devtools-report-value>
765
+ <devtools-report-key>${i18nString(UIStrings.eventResult)}</devtools-report-key>
766
+ <devtools-report-value>${succeededToString(selectedEvent.succeeded)}</devtools-report-value>
785
767
  ${creationEventDetails}
786
768
  ${refreshEventDetails}
787
769
  ${challengeEventDetails}
@@ -888,13 +870,6 @@ export class DeviceBoundSessionsView extends UI.Widget.VBox {
888
870
  }
889
871
  }
890
872
 
891
- function renderKeyValue(key: string, value: string, id: string): TemplateResult {
892
- return html`
893
- <devtools-report-key id=${id}>${key}</devtools-report-key>
894
- <devtools-report-value role="text" aria-describedby=${id}>${value}</devtools-report-value>
895
- `;
896
- }
897
-
898
873
  function ruleTypeToString(ruleType: Protocol.Network.DeviceBoundSessionUrlRuleRuleType): string {
899
874
  switch (ruleType) {
900
875
  case Protocol.Network.DeviceBoundSessionUrlRuleRuleType.Exclude:
@@ -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 {
@@ -18,11 +18,11 @@ const UIStringsNotTranslate = {
18
18
  /**
19
19
  * @description Text for teaser to generate code.
20
20
  */
21
- ctrlItoGenerateCode: 'Ctrl+I to generate code',
21
+ ctrlItoGenerateCode: 'ctrl+i to generate code',
22
22
  /**
23
23
  * @description Text for teaser to generate code in Mac.
24
24
  */
25
- cmdItoGenerateCode: 'Cmd+I to generate code',
25
+ cmdItoGenerateCode: 'cmd+i to generate code',
26
26
  /**
27
27
  * @description Aria label for teaser to generate code.
28
28
  */
@@ -22,16 +22,16 @@ const UIStringsNotTranslate = {
22
22
  * @description First item in the description.
23
23
  */
24
24
  describeCodeInComment:
25
- 'Pressing Ctrl+I on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment.',
25
+ 'Pressing ctrl+i on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment',
26
26
  /**
27
27
  * @description First item in the description.
28
28
  */
29
29
  describeCodeInCommentForMacOs:
30
- 'Pressing Cmd+I on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment.',
30
+ 'Pressing cmd+i on a comment in the Console and Sources panels now generates entire code blocks based on the instructions in the comment',
31
31
  /**
32
32
  * @description Second item in the description.
33
33
  */
34
- asYouType: 'You will still receive the real-time, as-you-type suggestions to help you code faster.',
34
+ asYouType: 'You will still receive the real-time, as-you-type suggestions to help you code faster',
35
35
  /**
36
36
  * @description Third item in the description.
37
37
  */
@@ -97,7 +97,7 @@ export class AiCodeGenerationUpgradeDialog {
97
97
  <div class="right-buttons">
98
98
  <devtools-button
99
99
  @click=${() => {
100
- result.resolve(true);
100
+ result.resolve(false);
101
101
  void UI.ViewManager.ViewManager.instance().showView('chrome-ai');
102
102
  }}
103
103
  jslogcontext="ai-code-generation-upgrade-dialog.manage-in-settings"
@@ -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
  }
@@ -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
@@ -11,6 +11,19 @@ import * as UI from '../../ui/legacy/legacy.js';
11
11
  import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
12
12
  import {PanelUtils} from '../utils/utils.js';
13
13
 
14
+ import type {EditorHandles} from './ElementsTreeElement.js';
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
+
14
27
  export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
15
28
  private eventListener: Common.EventTarget.EventDescriptor|null = null;
16
29
 
@@ -58,6 +71,8 @@ export class AdoptedStyleSheetTreeElement extends UI.TreeOutline.TreeElement {
58
71
  }
59
72
 
60
73
  export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeElement {
74
+ private editing: EditorHandles|null = null;
75
+
61
76
  constructor(private readonly styleSheetHeader: SDK.CSSStyleSheetHeader.CSSStyleSheetHeader) {
62
77
  super('');
63
78
  }
@@ -69,6 +84,9 @@ export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeEle
69
84
  }
70
85
 
71
86
  override onunbind(): void {
87
+ if (this.editing) {
88
+ this.editing.cancel();
89
+ }
72
90
  this.styleSheetHeader.cssModel().removeEventListener(
73
91
  SDK.CSSModel.Events.StyleSheetChanged, this.onStyleSheetChanged, this);
74
92
  }
@@ -91,4 +109,75 @@ export class AdoptedStyleSheetContentsTreeElement extends UI.TreeOutline.TreeEle
91
109
  void this.onpopulate();
92
110
  }
93
111
  }
112
+
113
+ override ondblclick(event: Event): boolean {
114
+ if (this.editing) {
115
+ return false;
116
+ }
117
+ void this.startEditing(event.target as Element);
118
+ return false;
119
+ }
120
+
121
+ override onenter(): boolean {
122
+ if (this.editing) {
123
+ return false;
124
+ }
125
+ const target = this.listItemElement.querySelector('.webkit-html-text-node');
126
+ if (target) {
127
+ void this.startEditing(target);
128
+ return true;
129
+ }
130
+ return false;
131
+ }
132
+
133
+ private async startEditing(target: Element): Promise<void> {
134
+ if (this.editing || UI.UIUtils.isBeingEdited(target)) {
135
+ return;
136
+ }
137
+
138
+ const textNode = target.enclosingNodeOrSelfWithClass('webkit-html-text-node');
139
+ if (!textNode) {
140
+ return;
141
+ }
142
+
143
+ const data = await this.styleSheetHeader.requestContentData();
144
+ textNode.textContent = (TextUtils.ContentData.ContentData.isError(data) || !data.isTextContent) ? '' : data.text;
145
+
146
+ const config =
147
+ new UI.InplaceEditor.Config(this.editingCommitted.bind(this), () => this.editingCancelled(), undefined);
148
+
149
+ const editorHandles = UI.InplaceEditor.InplaceEditor.startEditing(textNode, config);
150
+ if (!editorHandles) {
151
+ return;
152
+ }
153
+
154
+ this.editing = {
155
+ commit: editorHandles.commit,
156
+ cancel: editorHandles.cancel,
157
+ editor: undefined,
158
+ resize: () => {},
159
+ };
160
+
161
+ const componentSelection = this.listItemElement.getComponentSelection();
162
+ componentSelection?.selectAllChildren(textNode);
163
+ }
164
+
165
+ private async editingCommitted(element: Element, newText: string, oldText: string|null): Promise<void> {
166
+ this.editing = null;
167
+
168
+ if (newText !== oldText) {
169
+ await this.styleSheetHeader.cssModel().setStyleSheetText(this.styleSheetHeader.id, newText, false);
170
+ }
171
+
172
+ this.editingCancelled();
173
+ }
174
+
175
+ private editingCancelled(): void {
176
+ this.editing = null;
177
+ void this.onpopulate();
178
+ }
179
+
180
+ isEditing(): boolean {
181
+ return this.editing !== null;
182
+ }
94
183
  }
@@ -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 {