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
@@ -0,0 +1,422 @@
1
+ // Copyright 2026 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
+ /* eslint-disable @devtools/no-imperative-dom-api */
5
+
6
+ import '../../core/sdk/sdk-meta.js';
7
+ import '../../models/workspace/workspace-meta.js';
8
+ import '../../panels/sensors/sensors-meta.js';
9
+ import '../inspector_main/inspector_main-meta.js';
10
+ import '../main/main-meta.js';
11
+
12
+ import * as Common from '../../core/common/common.js';
13
+ import * as Host from '../../core/host/host.js';
14
+ import * as i18n from '../../core/i18n/i18n.js';
15
+ import * as Root from '../../core/root/root.js';
16
+ import * as SDK from '../../core/sdk/sdk.js';
17
+ import * as Foundation from '../../foundation/foundation.js';
18
+ import type * as Protocol from '../../generated/protocol.js';
19
+ import * as AiAssistance from '../../models/ai_assistance/ai_assistance.js';
20
+
21
+ const {AidaClient} = Host.AidaClient;
22
+ const {ResponseType} = AiAssistance.AiAgent;
23
+ const {NodeContext, StylingAgent} = AiAssistance.StylingAgent;
24
+
25
+ class GreenDevFloaty {
26
+ #chatContainer: HTMLDivElement;
27
+ #textField: HTMLInputElement;
28
+ #playButton: HTMLButtonElement;
29
+ #node?: SDK.DOMModel.DOMNode;
30
+ #agent?: StylingAgent;
31
+ #nodeContext?: NodeContext;
32
+ #backendNodeId?: Protocol.DOM.BackendNodeId;
33
+ // Switching this to false can help while investigating tool conflicts.
34
+ #highlightNodeOnWindowFocus = false;
35
+
36
+ constructor(document: Document) {
37
+ this.#chatContainer = document.getElementById('chat-container') as HTMLDivElement;
38
+ this.#textField = document.querySelector('.green-dev-floaty-dialog-text-field') as HTMLInputElement;
39
+ this.#playButton = document.querySelector('.green-dev-floaty-dialog-play-button') as HTMLButtonElement;
40
+
41
+ this.#playButton.addEventListener('click', () => {
42
+ if (this.#node) {
43
+ void this.runConversation();
44
+ }
45
+ });
46
+
47
+ if (this.#highlightNodeOnWindowFocus) {
48
+ window.addEventListener('focus', () => {
49
+ if (this.#node) {
50
+ this.#node.highlight();
51
+ }
52
+ });
53
+ } else {
54
+ console.error('Node highlighting on focus disabled');
55
+ }
56
+
57
+ const nodeDescriptionElement =
58
+ document.querySelector('.green-dev-floaty-dialog-node-description') as HTMLDivElement;
59
+ nodeDescriptionElement.addEventListener('mousemove', () => {
60
+ if (this.#node) {
61
+ this.#node.highlight();
62
+ }
63
+ });
64
+ nodeDescriptionElement.addEventListener('mouseleave', () => {
65
+ if (this.#node && this.#backendNodeId) {
66
+ // Refresh the anchor by re-sending the show command.
67
+ const msg = JSON.stringify({
68
+ id: 9999,
69
+ method: 'Overlay.setShowGreenDevFloatyAnchor',
70
+ params: {greenDevFloatyHighlightConfig: {backendNodeId: this.#backendNodeId}}
71
+ });
72
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.sendMessageToBackend(msg);
73
+ }
74
+ });
75
+
76
+ this.#textField.addEventListener('keydown', event => {
77
+ if (event.key === 'Enter' && this.#node) {
78
+ void this.runConversation();
79
+ }
80
+ });
81
+
82
+ this.#textField.focus();
83
+ }
84
+
85
+ static instance(opts: {
86
+ forceNew: boolean|null,
87
+ document: Document,
88
+ } = {forceNew: null, document}): GreenDevFloaty {
89
+ const {forceNew, document} = opts;
90
+ if (!greenDevFloatyInstance || forceNew) {
91
+ greenDevFloatyInstance = new GreenDevFloaty(document);
92
+ }
93
+
94
+ return greenDevFloatyInstance;
95
+ }
96
+
97
+ setNode(node: SDK.DOMModel.DOMNode): void {
98
+ if (this.#node === node) {
99
+ return;
100
+ }
101
+ this.#node = node;
102
+ this.#backendNodeId = node.backendNodeId();
103
+
104
+ // Highlight the node on the page.
105
+ void node.domModel().overlayModel().clearHighlight();
106
+ if (this.#highlightNodeOnWindowFocus) {
107
+ node.highlight();
108
+ }
109
+
110
+ this.#textField.focus();
111
+
112
+ // Reset conversation for a new node
113
+ this.#agent = undefined;
114
+ this.#nodeContext = undefined;
115
+
116
+ const nodeDescriptionElement = document.querySelector('.green-dev-floaty-dialog-node-description');
117
+ if (nodeDescriptionElement) {
118
+ const id = node.getAttribute('id');
119
+ if (id) {
120
+ nodeDescriptionElement.textContent = `#${id}`;
121
+ } else {
122
+ const classes = node.classNames().join('.');
123
+ nodeDescriptionElement.textContent = node.nodeName().toLowerCase() + (classes ? `.${classes}` : '');
124
+ }
125
+ }
126
+ }
127
+
128
+ #addMessage(text: string, isUser: boolean): {content: HTMLDivElement, details?: HTMLDivElement} {
129
+ const messageElement = document.createElement('div');
130
+ messageElement.className = `message ${isUser ? 'user-message' : 'ai-message'}`;
131
+
132
+ const content = document.createElement('div');
133
+ content.className = 'message-content';
134
+ content.textContent = text;
135
+ messageElement.appendChild(content);
136
+
137
+ let details: HTMLDivElement|undefined;
138
+ if (!isUser) {
139
+ details = document.createElement('div');
140
+ details.className = 'message-details';
141
+ details.style.display = 'none';
142
+ messageElement.appendChild(details);
143
+
144
+ const toggle = document.createElement('div');
145
+ toggle.className = 'message-details-toggle';
146
+ toggle.textContent = 'Show details';
147
+ toggle.onclick = () => {
148
+ if (details) {
149
+ const isHidden = details.style.display === 'none';
150
+ details.style.display = isHidden ? 'block' : 'none';
151
+ toggle.textContent = isHidden ? 'Hide details' : 'Show details';
152
+ }
153
+ };
154
+ messageElement.appendChild(toggle);
155
+ }
156
+
157
+ this.#chatContainer.appendChild(messageElement);
158
+ this.#chatContainer.scrollTop = this.#chatContainer.scrollHeight;
159
+ return {content, details};
160
+ }
161
+
162
+ async runConversation(): Promise<void> {
163
+ const query = this.#textField.value || this.#textField.placeholder;
164
+ this.#textField.value = '';
165
+
166
+ if (!this.#node) {
167
+ return;
168
+ }
169
+
170
+ if (!this.#agent) {
171
+ const aidaClient = new AidaClient();
172
+ this.#agent = new StylingAgent({aidaClient});
173
+ this.#nodeContext = new NodeContext(this.#node);
174
+ }
175
+
176
+ this.#addMessage(query, true);
177
+ const {content: aiContent, details: aiDetails} = this.#addMessage('Thinking...', false);
178
+
179
+ try {
180
+ if (!this.#nodeContext) {
181
+ throw new Error('Node context is not set.');
182
+ }
183
+ for await (const result of this.#agent.run(query, {selected: this.#nodeContext})) {
184
+ switch (result.type) {
185
+ case ResponseType.ANSWER:
186
+ aiContent.textContent = result.text;
187
+ break;
188
+ case ResponseType.ERROR:
189
+ aiContent.textContent = `Error: ${result.error}`;
190
+ break;
191
+ case ResponseType.THOUGHT:
192
+ if (aiDetails) {
193
+ const thought = document.createElement('div');
194
+ thought.className = 'thought';
195
+ thought.textContent = `Thought: ${result.thought}`;
196
+ aiDetails.appendChild(thought);
197
+ }
198
+ break;
199
+ case ResponseType.ACTION:
200
+ if (aiDetails) {
201
+ const action = document.createElement('div');
202
+ action.className = 'action';
203
+ action.textContent = `Action: ${result.code}\nOutput: ${result.output}`;
204
+ aiDetails.appendChild(action);
205
+ }
206
+ break;
207
+ case ResponseType.SIDE_EFFECT:
208
+ if (aiDetails) {
209
+ const se = document.createElement('div');
210
+ se.className = 'side-effect';
211
+ se.textContent = 'Side effect detected, auto-approving for Floaty...';
212
+ aiDetails.appendChild(se);
213
+ }
214
+ // For Floaty, we might want to auto-approve or show a button.
215
+ // Let's try auto-approving for now to see if it unblocks.
216
+ result.confirm(true);
217
+ break;
218
+ default:
219
+ console.error('Unhandled response type:', result.type, result);
220
+ break;
221
+ }
222
+ this.#chatContainer.scrollTop = this.#chatContainer.scrollHeight;
223
+ }
224
+ } catch (e) {
225
+ console.error('Caught exception in runConversation:', e);
226
+ aiContent.textContent = `Exception: ${e instanceof Error ? e.message : String(e)}`;
227
+ }
228
+ }
229
+ }
230
+
231
+ let greenDevFloatyInstance: GreenDevFloaty;
232
+
233
+ async function init(): Promise<void> {
234
+ try {
235
+ Root.Runtime.Runtime.setPlatform(Host.Platform.platform());
236
+ const [config, prefs] = await Promise.all([
237
+ new Promise<Root.Runtime.HostConfig>(resolve => {
238
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.getHostConfig(resolve);
239
+ }),
240
+ new Promise<Record<string, string>>(
241
+ resolve => Host.InspectorFrontendHost.InspectorFrontendHostInstance.getPreferences(resolve)),
242
+ ]);
243
+
244
+ Object.assign(Root.Runtime.hostConfig, config);
245
+
246
+ // Register necessary experiments to avoid "Unknown experiment" errors.
247
+ Root.Runtime.experiments.register(
248
+ Root.ExperimentNames.ExperimentName.CAPTURE_NODE_CREATION_STACKS, 'Capture node creation stacks');
249
+ Root.Runtime.experiments.register(
250
+ Root.ExperimentNames.ExperimentName.INSTRUMENTATION_BREAKPOINTS, 'Enable instrumentation breakpoints');
251
+ Root.Runtime.experiments.register(
252
+ Root.ExperimentNames.ExperimentName.USE_SOURCE_MAP_SCOPES, 'Use scope information from source maps');
253
+ Root.Runtime.experiments.register(Root.ExperimentNames.ExperimentName.LIVE_HEAP_PROFILE, 'Live heap profile');
254
+ Root.Runtime.experiments.register(Root.ExperimentNames.ExperimentName.PROTOCOL_MONITOR, 'Protocol Monitor');
255
+ Root.Runtime.experiments.register(
256
+ Root.ExperimentNames.ExperimentName.SAMPLING_HEAP_PROFILER_TIMELINE, 'Sampling heap profiler timeline');
257
+ Root.Runtime.experiments.register(Root.ExperimentNames.ExperimentName.APCA, 'APCA');
258
+
259
+ const WINDOW_LOCAL_STORAGE: Common.Settings.SettingsBackingStore = {
260
+ register(_setting: string): void{},
261
+ async get(setting: string): Promise<string> {
262
+ return window.localStorage.getItem(setting) as unknown as string;
263
+ },
264
+ set(setting: string, value: string): void {
265
+ window.localStorage.setItem(setting, value);
266
+ },
267
+ remove(setting: string): void {
268
+ window.localStorage.removeItem(setting);
269
+ },
270
+ clear: () => window.localStorage.clear(),
271
+ };
272
+
273
+ const hostUnsyncedStorage: Common.Settings.SettingsBackingStore = {
274
+ register: (name: string) =>
275
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.registerPreference(name, {synced: false}),
276
+ set: Host.InspectorFrontendHost.InspectorFrontendHostInstance.setPreference,
277
+ get: (name: string) => {
278
+ return new Promise(resolve => {
279
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.getPreference(name, resolve);
280
+ });
281
+ },
282
+ remove: Host.InspectorFrontendHost.InspectorFrontendHostInstance.removePreference,
283
+ clear: Host.InspectorFrontendHost.InspectorFrontendHostInstance.clearPreferences,
284
+ };
285
+ const hostSyncedStorage: Common.Settings.SettingsBackingStore = {
286
+ ...hostUnsyncedStorage,
287
+ register: (name: string) =>
288
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.registerPreference(name, {synced: true}),
289
+ };
290
+
291
+ const syncedStorage = new Common.Settings.SettingsStorage(prefs, hostSyncedStorage, '');
292
+ const globalStorage = new Common.Settings.SettingsStorage(prefs, hostUnsyncedStorage, '');
293
+ const localStorage = new Common.Settings.SettingsStorage(window.localStorage, WINDOW_LOCAL_STORAGE, '');
294
+
295
+ Common.Settings.Settings.instance({
296
+ forceNew: true,
297
+ syncedStorage,
298
+ globalStorage,
299
+ localStorage,
300
+ settingRegistrations: Common.SettingRegistration.getRegisteredSettings(),
301
+ });
302
+
303
+ const settingLanguage = Common.Settings.Settings.instance().moduleSetting<string>('language').get();
304
+ i18n.DevToolsLocale.DevToolsLocale.instance({
305
+ create: true,
306
+ data: {
307
+ navigatorLanguage: navigator.language,
308
+ settingLanguage,
309
+ lookupClosestDevToolsLocale: i18n.i18n.lookupClosestSupportedDevToolsLocale,
310
+ },
311
+ });
312
+
313
+ const universe = new Foundation.Universe.Universe({
314
+ settingsCreationOptions: {
315
+ syncedStorage,
316
+ globalStorage,
317
+ localStorage,
318
+ settingRegistrations: Common.SettingRegistration.getRegisteredSettings(),
319
+ }
320
+ });
321
+ Root.DevToolsContext.setGlobalInstance(universe.context);
322
+
323
+ // Register a revealer that brings the floaty to the front.
324
+ Common.Revealer.registerRevealer({
325
+ contextTypes() {
326
+ return [SDK.DOMModel.DeferredDOMNode, SDK.DOMModel.DOMNode];
327
+ },
328
+ async loadRevealer() {
329
+ return {
330
+ async reveal() {
331
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.bringToFront();
332
+ },
333
+ };
334
+ },
335
+ });
336
+
337
+ await i18n.i18n.fetchAndRegisterLocaleData('en-US');
338
+
339
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.connectionReady();
340
+
341
+ const hash = window.location.hash.substring(1);
342
+ const params = new URLSearchParams(hash);
343
+ const x = parseInt(params.get('x') || '0', 10);
344
+ const y = parseInt(params.get('y') || '0', 10);
345
+ const backendNodeId = parseInt(params.get('backendNodeId') || '0', 10);
346
+
347
+ const floaty = GreenDevFloaty.instance({forceNew: null, document});
348
+
349
+ await SDK.Connections.initMainConnection(
350
+ async () => {
351
+ const targetManager = SDK.TargetManager.TargetManager.instance();
352
+
353
+ targetManager.createTarget('main', 'Main', SDK.Target.Type.FRAME, null);
354
+
355
+ // Wait for the target to be attached and initialized.
356
+ const mainTarget = await new Promise<SDK.Target.Target|null>((resolve, reject) => {
357
+ const target = targetManager.primaryPageTarget();
358
+ if (target) {
359
+ resolve(target);
360
+ return;
361
+ }
362
+ const observer = {
363
+ targetAdded: (target: SDK.Target.Target) => {
364
+ if (target === targetManager.primaryPageTarget()) {
365
+ targetManager.unobserveTargets(observer);
366
+ resolve(target);
367
+ }
368
+ },
369
+ targetRemoved: () => {},
370
+ };
371
+ targetManager.observeTargets(observer);
372
+ setTimeout(() => reject(new Error('Timeout waiting for primary page target')), 10000);
373
+ });
374
+
375
+ if (!mainTarget) {
376
+ console.error('Failed to obtain mainTarget');
377
+ return;
378
+ }
379
+
380
+ const domModel = mainTarget.model(SDK.DOMModel.DOMModel);
381
+ if (!domModel) {
382
+ console.error('DOMModel not found on mainTarget');
383
+ return;
384
+ }
385
+
386
+ let node: SDK.DOMModel.DOMNode|null = null;
387
+ if (backendNodeId) {
388
+ const nodesMap =
389
+ await domModel.pushNodesByBackendIdsToFrontend(new Set([backendNodeId as Protocol.DOM.BackendNodeId]));
390
+ node = nodesMap?.get(backendNodeId as Protocol.DOM.BackendNodeId) || null;
391
+ } else {
392
+ node = await domModel.nodeForLocation(x, y, true);
393
+ }
394
+
395
+ if (node) {
396
+ floaty.setNode(node);
397
+ } else {
398
+ console.error('No node found');
399
+ }
400
+
401
+ // Trigger overlay.
402
+ const showAnchor = (): void => {
403
+ if (backendNodeId) {
404
+ const msg = JSON.stringify({
405
+ id: 9999,
406
+ method: 'Overlay.setShowGreenDevFloatyAnchor',
407
+ params: {greenDevFloatyHighlightConfig: {backendNodeId}}
408
+ });
409
+ Host.InspectorFrontendHost.InspectorFrontendHostInstance.sendMessageToBackend(msg);
410
+ }
411
+ };
412
+ showAnchor();
413
+ },
414
+ () => {
415
+ console.error('Connection lost');
416
+ });
417
+ } catch (err) {
418
+ console.error('Error during init():', err);
419
+ }
420
+ }
421
+
422
+ void init();
@@ -9,7 +9,6 @@ import * as Root from '../../core/root/root.js';
9
9
  import * as SDK from '../../core/sdk/sdk.js';
10
10
  import type * as Protocol from '../../generated/protocol.js';
11
11
  import * as MobileThrottling from '../../panels/mobile_throttling/mobile_throttling.js';
12
- import * as Security from '../../panels/security/security.js';
13
12
  import * as Components from '../../ui/legacy/components/utils/utils.js';
14
13
  import * as UI from '../../ui/legacy/legacy.js';
15
14
  import * as Lit from '../../ui/lit/lit.js';
@@ -110,43 +109,6 @@ export class InspectorMainImpl implements Common.Runnable.Runnable {
110
109
  Host.InspectorFrontendHostAPI.Events.ReloadInspectedPage, ({data: hard}) => {
111
110
  SDK.ResourceTreeModel.ResourceTreeModel.reloadAllPages(hard);
112
111
  });
113
-
114
- // Skip possibly showing the cookie control reload banner if devtools UI is not enabled or if there is an enterprise policy blocking third party cookies
115
- if (!Root.Runtime.hostConfig.devToolsPrivacyUI?.enabled ||
116
- Root.Runtime.hostConfig.thirdPartyCookieControls?.managedBlockThirdPartyCookies === true) {
117
- return;
118
- }
119
-
120
- // Third party cookie control settings according to the browser
121
- const browserCookieControls = Root.Runtime.hostConfig.thirdPartyCookieControls;
122
-
123
- // Devtools cookie controls settings
124
- const cookieControlOverrideSetting =
125
- Common.Settings.Settings.instance().createSetting('cookie-control-override-enabled', undefined);
126
- const gracePeriodMitigationDisabledSetting =
127
- Common.Settings.Settings.instance().createSetting('grace-period-mitigation-disabled', undefined);
128
- const heuristicMitigationDisabledSetting =
129
- Common.Settings.Settings.instance().createSetting('heuristic-mitigation-disabled', undefined);
130
-
131
- // If there are saved cookie control settings, check to see if they differ from the browser config. If they do, prompt a page reload so the user will see the cookie controls behavior.
132
- if (cookieControlOverrideSetting.get() !== undefined) {
133
- if (browserCookieControls?.thirdPartyCookieRestrictionEnabled !== cookieControlOverrideSetting.get()) {
134
- Security.CookieControlsView.showInfobar();
135
- return;
136
- }
137
-
138
- // If the devtools third-party cookie control is active, we also need to check if there's a discrepancy in the mitigation behavior.
139
- if (cookieControlOverrideSetting.get()) {
140
- if (browserCookieControls?.thirdPartyCookieMetadataEnabled === gracePeriodMitigationDisabledSetting.get()) {
141
- Security.CookieControlsView.showInfobar();
142
- return;
143
- }
144
- if (browserCookieControls?.thirdPartyCookieHeuristicsEnabled === heuristicMitigationDisabledSetting.get()) {
145
- Security.CookieControlsView.showInfobar();
146
- return;
147
- }
148
- }
149
- }
150
112
  }
151
113
  }
152
114
 
@@ -1314,9 +1314,6 @@ export const config = {
1314
1314
  ]
1315
1315
  },
1316
1316
  {
1317
- "implicitValues": {
1318
- "aria-live": "off"
1319
- },
1320
1317
  "name": "marquee",
1321
1318
  "nameFrom": [
1322
1319
  "author"
@@ -1975,9 +1972,6 @@ export const config = {
1975
1972
  ]
1976
1973
  },
1977
1974
  {
1978
- "implicitValues": {
1979
- "aria-live": "off"
1980
- },
1981
1975
  "name": "timer",
1982
1976
  "nameFrom": [
1983
1977
  "author"