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
@@ -107,10 +107,11 @@ export class AutocompleteHistory {
107
107
  }
108
108
  }
109
109
 
110
- next(): string|undefined {
110
+ next(currentText: string): string|undefined {
111
111
  if (this.#historyOffset === 1) {
112
112
  return undefined;
113
113
  }
114
+ this.#saveCurrentEdit(currentText);
114
115
  --this.#historyOffset;
115
116
  return this.#currentHistoryItem();
116
117
  }
@@ -48,7 +48,7 @@ export class TextEditorHistory {
48
48
 
49
49
  const text = editor.state.doc.toString();
50
50
  const history = this.#history;
51
- const newText = isBackward ? history.previous(text) : history.next();
51
+ const newText = isBackward ? history.previous(text) : history.next(text);
52
52
  if (newText === undefined) {
53
53
  return false;
54
54
  }
@@ -129,7 +129,7 @@ export class InplaceEditor<T> {
129
129
  }
130
130
 
131
131
  function defaultFinishHandler(event: KeyboardEvent): string {
132
- if (event.key === 'Enter') {
132
+ if (event.key === 'Enter' && !event.shiftKey) {
133
133
  return 'commit';
134
134
  }
135
135
  if (event.keyCode === Keys.Esc.code || event.key === Platform.KeyboardUtilities.ESCAPE_KEY) {
@@ -502,8 +502,10 @@ export class SearchableView extends VBox {
502
502
  private updateSearchNavigationButtonState(enabled: boolean): void {
503
503
  this.replaceButtonElement.disabled = !enabled;
504
504
  this.replaceAllButtonElement.disabled = !enabled;
505
- this.searchNavigationPrevElement.setEnabled(enabled);
506
- this.searchNavigationNextElement.setEnabled(enabled);
505
+ if (this.searchProvider.supportsMatchCounts?.() === true) {
506
+ this.searchNavigationPrevElement.setEnabled(enabled);
507
+ this.searchNavigationNextElement.setEnabled(enabled);
508
+ }
507
509
  }
508
510
 
509
511
  private updateSearchMatchesCountAndCurrentMatchIndex(matches: number, currentMatchIndex: number): void {
@@ -682,6 +684,7 @@ export class SearchableView extends VBox {
682
684
  const searchableViewsByElement = new WeakMap<Element, SearchableView>();
683
685
 
684
686
  export interface Searchable {
687
+ supportsMatchCounts?(): boolean;
685
688
  currentQuery?: string;
686
689
  currentSearchMatches?: number;
687
690
  onSearchCanceled(): void;
@@ -73,6 +73,7 @@ let currentUpdateQueue: Map<Widget, PromiseWithResolvers<void>>|null = null;
73
73
  const currentlyProcessed = new Set<Widget>();
74
74
  let nextUpdateQueue = new Map<Widget, PromiseWithResolvers<void>>();
75
75
  let pendingAnimationFrame: number|null = null;
76
+ let overallUpdatePromise: PromiseWithResolvers<void>|null = null;
76
77
 
77
78
  function enqueueIntoNextUpdateQueue(widget: Widget): Promise<void> {
78
79
  const scheduledUpdate = nextUpdateQueue.get(widget) ?? Promise.withResolvers<void>();
@@ -132,6 +133,10 @@ function runNextUpdate(): void {
132
133
  } else {
133
134
  currentUpdateQueue = null;
134
135
  currentlyProcessed.clear();
136
+ if (!pendingAnimationFrame && overallUpdatePromise) {
137
+ overallUpdatePromise.resolve();
138
+ overallUpdatePromise = null;
139
+ }
135
140
  }
136
141
  });
137
142
  }
@@ -414,6 +419,16 @@ export class Widget {
414
419
  return widgetMap.get(node);
415
420
  }
416
421
 
422
+ static get allUpdatesComplete(): Promise<void> {
423
+ if (!pendingAnimationFrame && !currentUpdateQueue) {
424
+ return Promise.resolve();
425
+ }
426
+ if (!overallUpdatePromise) {
427
+ overallUpdatePromise = Promise.withResolvers<void>();
428
+ }
429
+ return overallUpdatePromise.promise;
430
+ }
431
+
417
432
  static getOrCreateWidget(element: HTMLElement): Widget {
418
433
  const widget = Widget.get(element);
419
434
  if (widget) {
@@ -1679,6 +1679,8 @@ export const enum Events {
1679
1679
  OPENED_NODE = 'OpenedNode',
1680
1680
  SORTING_CHANGED = 'SortingChanged',
1681
1681
  PADDING_CHANGED = 'PaddingChanged',
1682
+ EXPANDED_NODE = 'ExpandedNode',
1683
+ COLLAPSED_NODE = 'CollapsedNode',
1682
1684
  }
1683
1685
 
1684
1686
  export interface EventTypes<T> {
@@ -1687,6 +1689,8 @@ export interface EventTypes<T> {
1687
1689
  [Events.OPENED_NODE]: DataGridNode<T>;
1688
1690
  [Events.SORTING_CHANGED]: void;
1689
1691
  [Events.PADDING_CHANGED]: void;
1692
+ [Events.EXPANDED_NODE]: DataGridNode<T>;
1693
+ [Events.COLLAPSED_NODE]: DataGridNode<T>;
1690
1694
  }
1691
1695
 
1692
1696
  export enum Order {
@@ -2227,6 +2231,7 @@ export class DataGridNode<T> {
2227
2231
  for (let i = 0; i < this.children.length; ++i) {
2228
2232
  this.children[i].revealed = false;
2229
2233
  }
2234
+ this.dataGrid?.dispatchEventToListeners(Events.COLLAPSED_NODE, this);
2230
2235
  }
2231
2236
 
2232
2237
  collapseRecursively(): void {
@@ -2284,6 +2289,7 @@ export class DataGridNode<T> {
2284
2289
  }
2285
2290
 
2286
2291
  this.expandedInternal = true;
2292
+ this.dataGrid?.dispatchEventToListeners(Events.EXPANDED_NODE, this);
2287
2293
  }
2288
2294
 
2289
2295
  expandRecursively(): void {
@@ -5,6 +5,7 @@
5
5
 
6
6
  import type * as Platform from '../../../../core/platform/platform.js';
7
7
  import type * as TextUtils from '../../../../models/text_utils/text_utils.js';
8
+ import * as Lit from '../../../lit/lit.js';
8
9
  import * as UI from '../../legacy.js';
9
10
 
10
11
  import dataGridStyles from './dataGrid.css.js';
@@ -81,6 +82,12 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
81
82
  this.#dataGrid.addEventListener(
82
83
  DataGridEvents.OPENED_NODE,
83
84
  e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('open')));
85
+ this.#dataGrid.addEventListener(
86
+ DataGridEvents.EXPANDED_NODE,
87
+ e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('expand')));
88
+ this.#dataGrid.addEventListener(
89
+ DataGridEvents.COLLAPSED_NODE,
90
+ e => (e.data as DataGridElementNode).configElement.dispatchEvent(new CustomEvent('collapse')));
84
91
  this.#dataGrid.addEventListener(DataGridEvents.SORTING_CHANGED, () => this.dispatchEvent(new CustomEvent('sort', {
85
92
  detail: {columnId: this.#dataGrid.sortColumnId(), ascending: this.#dataGrid.isSortOrderAscending()}
86
93
  })));
@@ -170,6 +177,14 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
170
177
  return this.#columns;
171
178
  }
172
179
 
180
+ #updateHasChildren(dataGridNode: DataGridElementNode, dataRow: Element): void {
181
+ let hasChildren = dataGridNode.children.length > 0;
182
+ if (!hasChildren) {
183
+ hasChildren = Boolean(dataRow.querySelector('td table'));
184
+ }
185
+ dataGridNode.setHasChildren(hasChildren);
186
+ }
187
+
173
188
  #updateColumns(): void {
174
189
  for (const column of Object.keys(this.#dataGrid.columns)) {
175
190
  this.#dataGrid.removeColumn(column);
@@ -292,6 +307,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
292
307
  const nextNode = this.#findNextExistingNode(element);
293
308
  const index = nextNode ? parentNode.children.indexOf(nextNode) : parentNode.children.length;
294
309
  const node = new DataGridElementNode(element, this);
310
+ this.#updateHasChildren(node, element);
295
311
  if ((parentRow || node.hasChildren()) && !this.#dataGrid.disclosureColumnId) {
296
312
  this.#dataGrid.disclosureColumnId = this.#columns[0].id;
297
313
  }
@@ -319,7 +335,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
319
335
  for (const element of this.#getDataRows(nodes)) {
320
336
  const node = DataGridElementNode.get(element);
321
337
  if (node) {
322
- node.remove();
338
+ DataGridElementNode.remove(node);
323
339
  }
324
340
  }
325
341
  }
@@ -344,6 +360,7 @@ class DataGridElement extends UI.UIUtils.HTMLElementWithLightDOMTemplate {
344
360
  } else if (attributeName === 'highlighted') {
345
361
  dataGridNode.setHighlighted(hasBooleanAttribute(dataRow, 'highlighted'));
346
362
  } else {
363
+ this.#updateHasChildren(dataGridNode, dataRow);
347
364
  dataGridNode.refresh();
348
365
  }
349
366
  }
@@ -591,3 +608,35 @@ export interface DataGridInternalToken {
591
608
  const INTERNAL_TOKEN: DataGridInternalToken = {
592
609
  token: 'DataGridInternalToken'
593
610
  };
611
+
612
+ export const ifExpanded = Lit.Directive.directive(class extends Lit.Directive.Directive {
613
+ #partInfo: {type: Lit.Directive.PartType, startNode: Node};
614
+ constructor(partInfo: Lit.Directive.PartInfo) {
615
+ if (partInfo.type !== Lit.Directive.PartType.CHILD) {
616
+ throw new Error('expand directive must be used in a child node');
617
+ }
618
+ super(partInfo);
619
+ this.#partInfo = partInfo as {type: Lit.Directive.PartType, startNode: Node};
620
+ }
621
+
622
+ render(content: () => Lit.TemplateResult): Lit.LitTemplate {
623
+ return this.#isInExpandedRow(this.#partInfo.startNode) ? content() : Lit.nothing;
624
+ }
625
+
626
+ #isInExpandedRow(element: Node|null|undefined): boolean {
627
+ if (!element) {
628
+ return false;
629
+ }
630
+ if (!(element instanceof HTMLElement)) {
631
+ element = element.parentNode;
632
+ }
633
+ if (!(element instanceof HTMLElement)) {
634
+ return false;
635
+ }
636
+ const node = DataGridElementNode.get(element.closest('tr') ?? undefined);
637
+ if (!node) {
638
+ return false;
639
+ }
640
+ return node.expanded;
641
+ }
642
+ });
@@ -22,10 +22,8 @@ export class SortableDataGrid<T> extends ViewportDataGrid<SortableDataGridNode<T
22
22
  }
23
23
 
24
24
  static NumericComparator<T>(columnId: string, a: SortableDataGridNode<T>, b: SortableDataGridNode<T>): number {
25
- const aValue = a.data[columnId];
26
- const bValue = b.data[columnId];
27
- const aNumber = Number(aValue instanceof Node ? aValue.textContent : aValue);
28
- const bNumber = Number(bValue instanceof Node ? bValue.textContent : bValue);
25
+ const aNumber = a.getNumericValue(columnId);
26
+ const bNumber = b.getNumericValue(columnId);
29
27
  return aNumber < bNumber ? -1 : (aNumber > bNumber ? 1 : 0);
30
28
  }
31
29
 
@@ -127,6 +125,54 @@ export class SortableDataGrid<T> extends ViewportDataGrid<SortableDataGridNode<T
127
125
  }
128
126
 
129
127
  export class SortableDataGridNode<T> extends ViewportDataGridNode<SortableDataGridNode<T>> {
128
+ #numericData = new Map<string, number>();
129
+ #childrenDirty = true;
130
+ #lastSortingFunction: (<T>(a: SortableDataGridNode<T>, b: SortableDataGridNode<T>) => number)|null = null;
131
+
132
+ override get data(): DataGridData {
133
+ return super.data;
134
+ }
135
+
136
+ override set data(x: DataGridData) {
137
+ this.#numericData.clear();
138
+ super.data = x;
139
+ }
140
+
141
+ getNumericValue(columnId: string): number {
142
+ let value = this.#numericData.get(columnId);
143
+ if (value === undefined) {
144
+ const rawValue = this.data[columnId];
145
+ value = Number(rawValue instanceof Node ? rawValue.textContent : rawValue);
146
+ this.#numericData.set(columnId, value);
147
+ }
148
+ return value;
149
+ }
150
+
151
+ override insertChild(child: SortableDataGridNode<T>, index: number): void {
152
+ super.insertChild(child, index);
153
+ this.#childrenDirty = true;
154
+ }
155
+
156
+ override removeChild(child: SortableDataGridNode<T>): void {
157
+ super.removeChild(child);
158
+ this.#childrenDirty = true;
159
+ }
160
+
161
+ override refresh(): void {
162
+ this.#numericData.clear();
163
+ super.refresh();
164
+ (this.parent as SortableDataGridNode<T>| null)?.markChildrenDirty();
165
+ }
166
+
167
+ override expand(): void {
168
+ super.expand();
169
+ this.sortChildren();
170
+ }
171
+
172
+ markChildrenDirty(): void {
173
+ this.#childrenDirty = true;
174
+ }
175
+
130
176
  insertChildOrdered(node: SortableDataGridNode<T>): void {
131
177
  const dataGrid = (this.dataGrid as SortableDataGrid<T>| null);
132
178
  if (dataGrid) {
@@ -139,13 +185,17 @@ export class SortableDataGridNode<T> extends ViewportDataGridNode<SortableDataGr
139
185
 
140
186
  sortChildren(): void {
141
187
  const dataGrid = (this.dataGrid as SortableDataGrid<T>| null);
142
- if (!dataGrid) {
188
+ if (!dataGrid || !this.expanded) {
143
189
  return;
144
190
  }
145
- (this.children as Array<SortableDataGridNode<T>>).sort(dataGrid.sortingFunction);
146
- for (let i = 0; i < this.children.length; ++i) {
147
- const child = (this.children[i] as SortableDataGridNode<T>);
148
- child.recalculateSiblings(i);
191
+ if (this.#childrenDirty || this.#lastSortingFunction !== dataGrid.sortingFunction) {
192
+ (this.children as Array<SortableDataGridNode<T>>).sort(dataGrid.sortingFunction);
193
+ this.#childrenDirty = false;
194
+ this.#lastSortingFunction = dataGrid.sortingFunction;
195
+ for (let i = 0; i < this.children.length; ++i) {
196
+ const child = (this.children[i] as SortableDataGridNode<T>);
197
+ child.recalculateSiblings(i);
198
+ }
149
199
  }
150
200
  for (let i = 0; i < this.children.length; ++i) {
151
201
  const child = (this.children[i] as SortableDataGridNode<T>);
@@ -7,7 +7,7 @@ import * as Platform from '../../../../core/platform/platform.js';
7
7
  import type * as TextUtils from '../../../../models/text_utils/text_utils.js';
8
8
  import * as RenderCoordinator from '../../../components/render_coordinator/render_coordinator.js';
9
9
 
10
- import {type DataGridData, DataGridImpl, DataGridNode, type Parameters} from './DataGrid.js';
10
+ import {type DataGridData, DataGridImpl, DataGridNode, Events as DataGridEvents, type Parameters} from './DataGrid.js';
11
11
 
12
12
  let nextId = 0;
13
13
 
@@ -492,6 +492,7 @@ export class ViewportDataGridNode<T> extends DataGridNode<ViewportDataGridNode<T
492
492
  (this.dataGrid as ViewportDataGrid<T>).announceSelectedGridNode();
493
493
  }
494
494
  (this.dataGrid as ViewportDataGrid<T>).scheduleUpdateStructure();
495
+ this.dataGrid?.dispatchEventToListeners(DataGridEvents.COLLAPSED_NODE, this);
495
496
  }
496
497
 
497
498
  override expand(): void {
@@ -13,4 +13,5 @@ import * as ShowMoreDataGridNode from './ShowMoreDataGridNode.js';
13
13
  import * as SortableDataGrid from './SortableDataGrid.js';
14
14
  import * as ViewportDataGrid from './ViewportDataGrid.js';
15
15
 
16
+ export {ifExpanded} from './DataGridElement.js';
16
17
  export {DataGrid, ShowMoreDataGridNode, SortableDataGrid, ViewportDataGrid};
@@ -496,16 +496,16 @@ export const getObjectPropertiesSectionFrom = (element: Element): ObjectProperti
496
496
 
497
497
  export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow {
498
498
  private readonly root: ObjectTree;
499
- editable: boolean;
499
+ readonly editable: boolean;
500
500
  readonly #objectTreeElement: RootElement;
501
501
  titleElement: Element;
502
502
  skipProtoInternal?: boolean;
503
503
  constructor(
504
504
  object: SDK.RemoteObject.RemoteObject, title?: string|Element|null, linkifier?: Components.Linkifier.Linkifier,
505
- showOverflow?: boolean) {
505
+ showOverflow?: boolean, editable = true) {
506
506
  super();
507
507
  this.root = new ObjectTree(object);
508
- this.editable = true;
508
+ this.editable = editable;
509
509
  if (!showOverflow) {
510
510
  this.setHideOverflow(true);
511
511
  }
@@ -549,14 +549,10 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
549
549
  const propertyValue =
550
550
  ObjectPropertiesSection.createPropertyValue(object, /* wasThrown */ false, /* showPreview */ true);
551
551
  shadowRoot.appendChild(propertyValue);
552
- const objectPropertiesSection = new ObjectPropertiesSection(object, titleElement, linkifier);
553
- objectPropertiesSection.editable = false;
552
+ const objectPropertiesSection = new ObjectPropertiesSection(object, titleElement, linkifier, undefined, !readOnly);
554
553
  if (skipProto) {
555
554
  objectPropertiesSection.skipProto();
556
555
  }
557
- if (readOnly) {
558
- objectPropertiesSection.setEditable(false);
559
- }
560
556
 
561
557
  return objectPropertiesSection;
562
558
  }
@@ -863,10 +859,6 @@ export class ObjectPropertiesSection extends UI.TreeOutline.TreeOutlineInShadow
863
859
  this.#objectTreeElement.expand();
864
860
  }
865
861
 
866
- setEditable(value: boolean): void {
867
- this.editable = value;
868
- }
869
-
870
862
  objectTreeElement(): UI.TreeOutline.TreeElement {
871
863
  return this.#objectTreeElement;
872
864
  }
@@ -998,6 +990,7 @@ export class RootElement extends UI.TreeOutline.TreeElement {
998
990
  export const InitialVisibleChildrenLimit = 200;
999
991
 
1000
992
  export interface ObjectPropertyViewInput {
993
+ editable: boolean;
1001
994
  startEditing(): unknown;
1002
995
  invokeGetter(getter: SDK.RemoteObject.RemoteObject): unknown;
1003
996
  onAutoComplete(expression: string, filter: string, force: boolean): unknown;
@@ -1075,7 +1068,7 @@ export const OBJECT_PROPERTY_DEFAULT_VIEW: ObjectPropertyView = (input, output,
1075
1068
  return;
1076
1069
  }
1077
1070
  event.consume(true);
1078
- if (property.value && !property.value.customPreview() && (property.writable || property.setter)) {
1071
+ if (input.editable && property.value && !property.value.customPreview() && (property.writable || property.setter)) {
1079
1072
  input.startEditing();
1080
1073
  }
1081
1074
  };
@@ -1125,6 +1118,7 @@ export class ObjectPropertyWidget extends UI.Widget.Widget {
1125
1118
  readonly #view: ObjectPropertyView;
1126
1119
  #expanded = false;
1127
1120
  #linkifier: Components.Linkifier.Linkifier|undefined;
1121
+ #editable = false;
1128
1122
 
1129
1123
  constructor(target?: HTMLElement, view = OBJECT_PROPERTY_DEFAULT_VIEW) {
1130
1124
  super(target);
@@ -1161,11 +1155,20 @@ export class ObjectPropertyWidget extends UI.Widget.Widget {
1161
1155
  this.requestUpdate();
1162
1156
  }
1163
1157
 
1158
+ get editable(): boolean {
1159
+ return this.#editable;
1160
+ }
1161
+ set editable(val: boolean) {
1162
+ this.#editable = val;
1163
+ this.requestUpdate();
1164
+ }
1165
+
1164
1166
  override performUpdate(): void {
1165
1167
  if (!this.#property) {
1166
1168
  return;
1167
1169
  }
1168
1170
  const input: ObjectPropertyViewInput = {
1171
+ editable: this.#editable,
1169
1172
  expanded: this.#expanded,
1170
1173
  editing: this.#editing,
1171
1174
  editingEnded: this.#editingEnded.bind(this),
@@ -1366,6 +1369,13 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
1366
1369
  return this.#widget.editing;
1367
1370
  }
1368
1371
 
1372
+ get editable(): boolean {
1373
+ return this.#widget.editable;
1374
+ }
1375
+ set editable(val: boolean) {
1376
+ this.#widget.editable = val;
1377
+ }
1378
+
1369
1379
  // This is called by layout tests
1370
1380
  async applyExpression(expression: string): Promise<void> {
1371
1381
  await this.property.setValue(expression);
@@ -1424,6 +1434,10 @@ export class ObjectPropertyTreeElement extends UI.TreeOutline.TreeElement {
1424
1434
  this.#widget.show(this.listItemElement);
1425
1435
  this.#widget.property = this.property;
1426
1436
  this.#widget.linkifier = this.linkifier;
1437
+ this.#widget.editable = this.treeOutline instanceof ObjectPropertiesSectionsTreeOutline ||
1438
+ this.treeOutline instanceof ObjectPropertiesSection ?
1439
+ this.treeOutline.editable :
1440
+ false;
1427
1441
  }
1428
1442
 
1429
1443
  override onexpand(): void {
@@ -1775,11 +1789,10 @@ export class Renderer implements UI.UIUtils.Renderer {
1775
1789
  throw new Error('Can\'t render ' + object);
1776
1790
  }
1777
1791
  const title = options?.title;
1778
- const section = new ObjectPropertiesSection(object, title);
1792
+ const section = new ObjectPropertiesSection(object, title, undefined, undefined, Boolean(options?.editable));
1779
1793
  if (!title) {
1780
1794
  section.titleLessMode();
1781
1795
  }
1782
- section.editable = Boolean(options?.editable);
1783
1796
  if (options?.expand) {
1784
1797
  section.firstChild()?.expand();
1785
1798
  }
@@ -20,7 +20,7 @@ const UIStrings = {
20
20
  /**
21
21
  * @description Message to display if a setting change requires a reload of DevTools
22
22
  */
23
- oneOrMoreSettingsHaveChanged: 'One or more settings have changed which requires a reload to take effect',
23
+ settingsChangedReloadDevTools: 'Settings changed. To apply, reload DevTools.',
24
24
  /**
25
25
  * @description Text in Command Menu of the Command Menu
26
26
  */
@@ -122,7 +122,7 @@ export class CommandMenu {
122
122
 
123
123
  if (reloadRequired) {
124
124
  UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
125
- i18nString(UIStrings.oneOrMoreSettingsHaveChanged));
125
+ i18nString(UIStrings.settingsChangedReloadDevTools));
126
126
  }
127
127
  },
128
128
  availableHandler,
@@ -19,7 +19,7 @@ const UIStrings = {
19
19
  /**
20
20
  * @description Message to display if a setting change requires a reload of DevTools
21
21
  */
22
- oneOrMoreSettingsHaveChanged: 'One or more settings have changed which requires a reload to take effect',
22
+ settingsChangedReloadDevTools: 'Settings changed. To apply, reload DevTools.',
23
23
  } as const;
24
24
  const str_ = i18n.i18n.registerUIStrings('ui/legacy/components/settings_ui/SettingsUI.ts', UIStrings);
25
25
  const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
@@ -94,7 +94,7 @@ const createSettingSelect = function(
94
94
  if (reloadWarning) {
95
95
  reloadWarning.classList.remove('hidden');
96
96
  UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
97
- i18nString(UIStrings.oneOrMoreSettingsHaveChanged));
97
+ i18nString(UIStrings.settingsChangedReloadDevTools));
98
98
  }
99
99
  }
100
100
  };
@@ -111,7 +111,7 @@ export const createControlForSetting = function(
111
111
  component.onchange = () => {
112
112
  if (setting.reloadRequired()) {
113
113
  UI.InspectorView.InspectorView.instance().displayReloadRequiredWarning(
114
- i18nString(UIStrings.oneOrMoreSettingsHaveChanged));
114
+ i18nString(UIStrings.settingsChangedReloadDevTools));
115
115
  }
116
116
  };
117
117
  return component;
@@ -147,10 +147,9 @@ export class JSONView extends UI.Widget.VBox implements UI.SearchableView.Search
147
147
 
148
148
  const obj = SDK.RemoteObject.RemoteObject.fromLocalObject(this.parsedJSON.data);
149
149
  const title = this.parsedJSON.prefix + obj.description + this.parsedJSON.suffix;
150
- this.treeOutline =
151
- new ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection(obj, title, undefined, true /* showOverflow */);
150
+ this.treeOutline = new ObjectUI.ObjectPropertiesSection.ObjectPropertiesSection(
151
+ obj, title, undefined, true /* showOverflow */, false /* editable */);
152
152
  this.treeOutline.enableContextMenu();
153
- this.treeOutline.setEditable(false);
154
153
  if (!this.startCollapsed) {
155
154
  this.treeOutline.expand();
156
155
  }
@@ -793,7 +793,7 @@ export async function expectVeEvents(expectedEvents: TestLogEntry[]): Promise<vo
793
793
  checkPendingEventExpectation();
794
794
 
795
795
  const timeout = setTimeout(() => {
796
- if (pendingEventExpectation?.missingEvents) {
796
+ if (pendingEventExpectation?.missingEvents?.length) {
797
797
  const allLogs = veDebugEventsLog.filter(ve => {
798
798
  if ('interaction' in ve) {
799
799
  // Very noisy in the error and not providing context
@@ -923,6 +923,12 @@ export const knownContextValues = new Set([
923
923
  'content-type',
924
924
  'content-visibility',
925
925
  'context',
926
+ 'context-change-drjones-file',
927
+ 'context-change-drjones-network-request',
928
+ 'context-change-drjones-performance',
929
+ 'context-change-freestyler',
930
+ 'context-change-none',
931
+ 'context-change-performance-insight',
926
932
  'context3',
927
933
  'contextmenu',
928
934
  'continue',
@@ -1770,6 +1776,7 @@ export const knownContextValues = new Set([
1770
1776
  'gotpointercapture',
1771
1777
  'grace-period-link',
1772
1778
  'grace-period-mitigation-disabled',
1779
+ 'greendev',
1773
1780
  'greendev-ai-annotations-enabled',
1774
1781
  'greendev-artifact-viewer-enabled',
1775
1782
  'greendev-copy-to-gemini-enabled',
@@ -2515,6 +2522,7 @@ export const knownContextValues = new Set([
2515
2522
  'margin-left',
2516
2523
  'margin-right',
2517
2524
  'margin-top',
2525
+ 'margin-trim',
2518
2526
  'marker',
2519
2527
  'marker-end',
2520
2528
  'marker-mid',
@@ -3261,6 +3269,7 @@ export const knownContextValues = new Set([
3261
3269
  'rule-inset',
3262
3270
  'rule-interior-inset',
3263
3271
  'rule-outset',
3272
+ 'rule-overlap',
3264
3273
  'rule-set',
3265
3274
  'rule-set-details',
3266
3275
  'rule-style',
@@ -3689,6 +3698,7 @@ export const knownContextValues = new Set([
3689
3698
  'start-conversation-drjones-performance',
3690
3699
  'start-conversation-freestyler',
3691
3700
  'start-conversation-performance-insight',
3701
+ 'start-conversation-performance-none',
3692
3702
  'start-new-chat',
3693
3703
  'start-recording',
3694
3704
  'start-time',
@@ -3894,6 +3904,9 @@ export const knownContextValues = new Set([
3894
3904
  'timeline-tree-current-thread',
3895
3905
  'timeline-tree-group-by',
3896
3906
  'timeline-trigger',
3907
+ 'timeline-trigger-activation-range',
3908
+ 'timeline-trigger-activation-range-end',
3909
+ 'timeline-trigger-activation-range-start',
3897
3910
  'timeline-trigger-active-range',
3898
3911
  'timeline-trigger-active-range-end',
3899
3912
  'timeline-trigger-active-range-start',
package/mcp/mcp.ts CHANGED
@@ -53,6 +53,7 @@ export {
53
53
  export * as MarkdownIssueDescription from '../front_end/models/issues_manager/MarkdownIssueDescription.js';
54
54
  export * as StackTrace from '../front_end/models/stack_trace/stack_trace.js';
55
55
  export * as TraceEngine from '../front_end/models/trace/trace.js';
56
+ export {IgnoreListManager} from '../front_end/models/workspace/IgnoreListManager.js';
56
57
  export * as Marked from '../front_end/third_party/marked/marked.js';
57
58
 
58
59
  installInspectorFrontendHost(new McpHostBindings());
package/package.json CHANGED
@@ -105,5 +105,5 @@
105
105
  "flat-cache": "6.1.12"
106
106
  }
107
107
  },
108
- "version": "1.0.1578729"
108
+ "version": "1.0.1581449"
109
109
  }
@@ -1,21 +0,0 @@
1
- // Copyright 2024 The Chromium Authors
2
- // Use of this source code is governed by a BSD-style license that can be
3
- // found in the LICENSE file.
4
- import {createIcon} from '../../ui/kit/kit.js';
5
-
6
- import {SecurityPanelSidebarTreeElement} from './SecurityPanelSidebarTreeElement.js';
7
-
8
- export class CookieControlsTreeElement extends SecurityPanelSidebarTreeElement {
9
- constructor(title: string, jslogContext: string|number) {
10
- super(title, false, jslogContext);
11
- this.setLeadingIcons([createIcon('gear', 'cookie-icon')]);
12
- }
13
-
14
- override get elemId(): string {
15
- return 'controls';
16
- }
17
-
18
- override showElement(): void {
19
- this.listItemElement.dispatchEvent(new CustomEvent('showFlagControls', {bubbles: true, composed: true}));
20
- }
21
- }