chrome-devtools-frontend 1.0.1579812 → 1.0.1581449

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/agents/prompts/creating-a-model.md +51 -0
  2. package/docs/feature-specs/elements-tree-edit-html.md +14 -0
  3. package/docs/feature-specs/elements-tree-node-title.md +46 -0
  4. package/front_end/core/host/UserMetrics.ts +3 -7
  5. package/front_end/core/root/Runtime.ts +0 -1
  6. package/front_end/core/sdk/NetworkManager.ts +0 -35
  7. package/front_end/core/sdk/OverlayModel.ts +10 -0
  8. package/front_end/devtools_compatibility.js +4 -0
  9. package/front_end/entrypoints/devtools_app/devtools_app.ts +1 -0
  10. package/front_end/entrypoints/greendev_floaty/FloatyEntrypoint.ts +530 -0
  11. package/front_end/entrypoints/greendev_floaty/floaty.css +258 -0
  12. package/front_end/entrypoints/greendev_floaty/floaty.html +31 -0
  13. package/front_end/entrypoints/greendev_floaty/greendev_floaty.ts +422 -0
  14. package/front_end/entrypoints/inspector_main/InspectorMain.ts +0 -38
  15. package/front_end/generated/InspectorBackendCommands.ts +9 -3
  16. package/front_end/generated/SupportedCSSProperties.js +39 -31
  17. package/front_end/generated/protocol-mapping.d.ts +12 -0
  18. package/front_end/generated/protocol-proxy-api.d.ts +12 -0
  19. package/front_end/generated/protocol.ts +56 -2
  20. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.snapshot.txt +2 -2
  21. package/front_end/models/ai_assistance/agents/ContextSelectionAgent.ts +33 -8
  22. package/front_end/models/computed_style/computed_style.ts +9 -0
  23. package/front_end/models/issues_manager/CorsIssue.ts +11 -14
  24. package/front_end/panels/accessibility/AXBreadcrumbsPane.ts +3 -5
  25. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +15 -0
  26. package/front_end/panels/ai_assistance/components/ChatInput.ts +15 -2
  27. package/front_end/panels/ai_assistance/components/ChatView.ts +2 -0
  28. package/front_end/panels/animation/AnimationGroupPreviewUI.ts +1 -1
  29. package/front_end/panels/application/ServiceWorkerUpdateCycleView.ts +0 -1
  30. package/front_end/panels/application/components/BackForwardCacheView.ts +2 -4
  31. package/front_end/panels/autofill/AutofillView.ts +1 -1
  32. package/front_end/panels/browser_debugger/XHRBreakpointsSidebarPane.ts +0 -1
  33. package/front_end/panels/changes/changesSidebar.css +5 -0
  34. package/front_end/panels/common/ExtensionPanel.ts +4 -0
  35. package/front_end/panels/common/FreDialog.ts +4 -0
  36. package/front_end/panels/console/ConsoleViewMessage.ts +0 -1
  37. package/front_end/panels/coverage/CoverageListView.ts +18 -3
  38. package/front_end/panels/elements/AdoptedStyleSheetTreeElement.ts +11 -0
  39. package/front_end/panels/elements/ComputedStyleWidget.ts +12 -8
  40. package/front_end/panels/elements/ElementsPanel.ts +4 -3
  41. package/front_end/panels/elements/ElementsSidebarPane.ts +11 -8
  42. package/front_end/panels/elements/ElementsTreeElement.ts +0 -1
  43. package/front_end/panels/elements/ElementsTreeOutline.ts +25 -15
  44. package/front_end/panels/elements/LayoutPane.ts +7 -8
  45. package/front_end/panels/elements/MetricsSidebarPane.ts +2 -2
  46. package/front_end/panels/elements/PlatformFontsWidget.ts +7 -5
  47. package/front_end/panels/elements/PropertiesWidget.ts +3 -6
  48. package/front_end/panels/elements/StylesSidebarPane.ts +4 -3
  49. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +1 -1
  50. package/front_end/panels/elements/components/StylePropertyEditor.ts +1 -2
  51. package/front_end/panels/elements/elements.ts +1 -3
  52. package/front_end/panels/greendev/GreenDevPanel.css +241 -0
  53. package/front_end/panels/greendev/GreenDevPanel.ts +308 -0
  54. package/front_end/panels/greendev/GreenDevShared.ts +13 -0
  55. package/front_end/panels/greendev/greendev-meta.ts +52 -0
  56. package/front_end/panels/greendev/greendev.ts +9 -0
  57. package/front_end/panels/issues/CorsIssueDetailsView.ts +4 -4
  58. package/front_end/panels/lighthouse/LighthouseReportRenderer.ts +1 -1
  59. package/front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts +1 -1
  60. package/front_end/panels/linear_memory_inspector/components/ValueInterpreterDisplay.ts +1 -1
  61. package/front_end/panels/media/PlayerListView.ts +1 -1
  62. package/front_end/panels/network/NetworkLogViewColumns.ts +1 -2
  63. package/front_end/panels/network/components/RequestHeaderSection.ts +1 -1
  64. package/front_end/panels/protocol_monitor/JSONEditor.ts +1 -1
  65. package/front_end/panels/recorder/components/RecordingListView.ts +1 -1
  66. package/front_end/panels/recorder/components/StepEditor.ts +3 -3
  67. package/front_end/panels/security/SecurityPanel.ts +0 -4
  68. package/front_end/panels/security/SecurityPanelSidebar.ts +2 -42
  69. package/front_end/panels/security/security-meta.ts +2 -14
  70. package/front_end/panels/security/security.ts +0 -4
  71. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -2
  72. package/front_end/panels/sources/SourcesSearchScope.ts +2 -1
  73. package/front_end/panels/sources/components/HeadersView.ts +2 -2
  74. package/front_end/panels/timeline/components/BreadcrumbsUI.ts +1 -1
  75. package/front_end/panels/timeline/components/SidebarAnnotationsTab.ts +1 -1
  76. package/front_end/third_party/chromium/README.chromium +1 -1
  77. package/front_end/third_party/puppeteer/README.chromium +2 -2
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +35 -0
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js +19 -0
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts +16 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.d.ts.map +1 -1
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/BrowserContext.js.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +21 -0
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js +6 -0
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts +13 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.d.ts.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js +56 -36
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/locators/locators.js.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +2 -2
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +32 -8
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -1
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +32 -2
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +3 -2
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +20 -0
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +2 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +25 -8
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts +2 -0
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js +23 -0
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Browser.js.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +10 -6
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/UserContext.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts +29 -0
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js +46 -6
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Accessibility.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts +5 -1
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js +18 -0
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserContext.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js +2 -2
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/ExecutionContext.js.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js +13 -1
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/HTTPRequest.js.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js +2 -2
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/JSHandle.js.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +7 -2
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +43 -7
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +10 -1
  142. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +34 -4
  144. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/Cookie.d.ts.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/generated/injected.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +1 -0
  156. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +2 -0
  159. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts +4 -0
  161. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js +2 -2
  164. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/PuppeteerNode.js.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  166. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  167. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  168. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +129 -3
  171. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +233 -65
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +35 -0
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js +19 -0
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts +16 -1
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.d.ts.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/BrowserContext.js.map +1 -1
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +21 -0
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js +6 -0
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts +13 -1
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.d.ts.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js +56 -36
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/locators/locators.js.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +2 -2
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +30 -6
  192. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  193. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -1
  194. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +32 -2
  196. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +3 -2
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +20 -0
  200. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  201. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +2 -1
  202. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +25 -8
  204. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts +2 -0
  206. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.d.ts.map +1 -1
  207. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js +23 -0
  208. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Browser.js.map +1 -1
  209. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +3 -2
  210. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  211. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +10 -6
  212. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  213. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.d.ts.map +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/UserContext.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts +29 -0
  217. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  218. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js +46 -6
  219. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Accessibility.js.map +1 -1
  220. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts +5 -1
  221. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.d.ts.map +1 -1
  222. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js +19 -1
  223. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserContext.js.map +1 -1
  224. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js +3 -3
  225. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/ExecutionContext.js.map +1 -1
  226. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.d.ts.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js +14 -2
  228. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/HTTPRequest.js.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js +3 -3
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/JSHandle.js.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +7 -2
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +43 -8
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +10 -1
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +31 -3
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts +1 -1
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/Cookie.d.ts.map +1 -1
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts +1 -1
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.d.ts.map +1 -1
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/generated/injected.js.map +1 -1
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/XPathQuerySelector.js.map +1 -1
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +1 -0
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +2 -0
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts +4 -0
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/LaunchOptions.d.ts.map +1 -1
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.d.ts.map +1 -1
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js +2 -2
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/PuppeteerNode.js.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/types.d.ts +129 -3
  263. package/front_end/third_party/puppeteer/package/package.json +4 -4
  264. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +46 -0
  265. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +21 -0
  266. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
  267. package/front_end/third_party/puppeteer/package/src/api/Page.ts +23 -0
  268. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +88 -56
  269. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +33 -8
  270. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +61 -3
  271. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +23 -2
  272. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +29 -8
  273. package/front_end/third_party/puppeteer/package/src/bidi/core/Browser.ts +30 -0
  274. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +13 -2
  275. package/front_end/third_party/puppeteer/package/src/bidi/core/UserContext.ts +1 -0
  276. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +85 -8
  277. package/front_end/third_party/puppeteer/package/src/cdp/BrowserContext.ts +36 -1
  278. package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +5 -5
  279. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +23 -2
  280. package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +3 -3
  281. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +60 -8
  282. package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +36 -3
  283. package/front_end/third_party/puppeteer/package/src/common/Cookie.ts +1 -1
  284. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  285. package/front_end/third_party/puppeteer/package/src/injected/XPathQuerySelector.ts +1 -1
  286. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +1 -0
  287. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +2 -0
  288. package/front_end/third_party/puppeteer/package/src/node/LaunchOptions.ts +4 -0
  289. package/front_end/third_party/puppeteer/package/src/node/PuppeteerNode.ts +8 -6
  290. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  291. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  292. package/front_end/ui/components/suggestion_input/SuggestionInput.ts +12 -7
  293. package/front_end/ui/components/text_editor/AutocompleteHistory.ts +2 -1
  294. package/front_end/ui/components/text_editor/TextEditorHistory.ts +1 -1
  295. package/front_end/ui/components/tree_outline/TreeOutline.ts +1 -1
  296. package/front_end/ui/legacy/ListControl.ts +1 -2
  297. package/front_end/ui/legacy/ListWidget.ts +1 -1
  298. package/front_end/ui/legacy/SearchableView.ts +5 -2
  299. package/front_end/ui/legacy/SoftContextMenu.ts +1 -2
  300. package/front_end/ui/legacy/Treeoutline.ts +0 -1
  301. package/front_end/ui/legacy/Widget.ts +15 -0
  302. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +8 -4
  303. package/front_end/ui/legacy/components/data_grid/DataGridElement.ts +50 -1
  304. package/front_end/ui/legacy/components/data_grid/ViewportDataGrid.ts +2 -1
  305. package/front_end/ui/legacy/components/data_grid/data_grid.ts +1 -0
  306. package/front_end/ui/legacy/components/quick_open/FilteredListWidget.ts +1 -1
  307. package/front_end/ui/visual_logging/KnownContextValues.ts +13 -0
  308. package/mcp/mcp.ts +1 -0
  309. package/package.json +1 -1
  310. package/front_end/panels/security/CookieControlsTreeElement.ts +0 -21
  311. package/front_end/panels/security/CookieControlsView.ts +0 -447
  312. package/front_end/panels/security/CookieReportTreeElement.ts +0 -21
  313. package/front_end/panels/security/CookieReportView.ts +0 -549
  314. package/front_end/panels/security/cookieControlsView.css +0 -139
  315. package/front_end/panels/security/cookieReportView.css +0 -90
  316. /package/front_end/{panels/elements → models/computed_style}/ComputedStyleModel.ts +0 -0
@@ -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
 
@@ -81,6 +81,7 @@ inspectorBackend.registerEnum("Audits.AttributionReportingIssueType", {Permissio
81
81
  inspectorBackend.registerEnum("Audits.SharedDictionaryError", {UseErrorCrossOriginNoCorsRequest: "UseErrorCrossOriginNoCorsRequest", UseErrorDictionaryLoadFailure: "UseErrorDictionaryLoadFailure", UseErrorMatchingDictionaryNotUsed: "UseErrorMatchingDictionaryNotUsed", UseErrorUnexpectedContentDictionaryHeader: "UseErrorUnexpectedContentDictionaryHeader", WriteErrorCossOriginNoCorsRequest: "WriteErrorCossOriginNoCorsRequest", WriteErrorDisallowedBySettings: "WriteErrorDisallowedBySettings", WriteErrorExpiredResponse: "WriteErrorExpiredResponse", WriteErrorFeatureDisabled: "WriteErrorFeatureDisabled", WriteErrorInsufficientResources: "WriteErrorInsufficientResources", WriteErrorInvalidMatchField: "WriteErrorInvalidMatchField", WriteErrorInvalidStructuredHeader: "WriteErrorInvalidStructuredHeader", WriteErrorInvalidTTLField: "WriteErrorInvalidTTLField", WriteErrorNavigationRequest: "WriteErrorNavigationRequest", WriteErrorNoMatchField: "WriteErrorNoMatchField", WriteErrorNonIntegerTTLField: "WriteErrorNonIntegerTTLField", WriteErrorNonListMatchDestField: "WriteErrorNonListMatchDestField", WriteErrorNonSecureContext: "WriteErrorNonSecureContext", WriteErrorNonStringIdField: "WriteErrorNonStringIdField", WriteErrorNonStringInMatchDestList: "WriteErrorNonStringInMatchDestList", WriteErrorNonStringMatchField: "WriteErrorNonStringMatchField", WriteErrorNonTokenTypeField: "WriteErrorNonTokenTypeField", WriteErrorRequestAborted: "WriteErrorRequestAborted", WriteErrorShuttingDown: "WriteErrorShuttingDown", WriteErrorTooLongIdField: "WriteErrorTooLongIdField", WriteErrorUnsupportedType: "WriteErrorUnsupportedType"});
82
82
  inspectorBackend.registerEnum("Audits.SRIMessageSignatureError", {MissingSignatureHeader: "MissingSignatureHeader", MissingSignatureInputHeader: "MissingSignatureInputHeader", InvalidSignatureHeader: "InvalidSignatureHeader", InvalidSignatureInputHeader: "InvalidSignatureInputHeader", SignatureHeaderValueIsNotByteSequence: "SignatureHeaderValueIsNotByteSequence", SignatureHeaderValueIsParameterized: "SignatureHeaderValueIsParameterized", SignatureHeaderValueIsIncorrectLength: "SignatureHeaderValueIsIncorrectLength", SignatureInputHeaderMissingLabel: "SignatureInputHeaderMissingLabel", SignatureInputHeaderValueNotInnerList: "SignatureInputHeaderValueNotInnerList", SignatureInputHeaderValueMissingComponents: "SignatureInputHeaderValueMissingComponents", SignatureInputHeaderInvalidComponentType: "SignatureInputHeaderInvalidComponentType", SignatureInputHeaderInvalidComponentName: "SignatureInputHeaderInvalidComponentName", SignatureInputHeaderInvalidHeaderComponentParameter: "SignatureInputHeaderInvalidHeaderComponentParameter", SignatureInputHeaderInvalidDerivedComponentParameter: "SignatureInputHeaderInvalidDerivedComponentParameter", SignatureInputHeaderKeyIdLength: "SignatureInputHeaderKeyIdLength", SignatureInputHeaderInvalidParameter: "SignatureInputHeaderInvalidParameter", SignatureInputHeaderMissingRequiredParameters: "SignatureInputHeaderMissingRequiredParameters", ValidationFailedSignatureExpired: "ValidationFailedSignatureExpired", ValidationFailedInvalidLength: "ValidationFailedInvalidLength", ValidationFailedSignatureMismatch: "ValidationFailedSignatureMismatch", ValidationFailedIntegrityMismatch: "ValidationFailedIntegrityMismatch"});
83
83
  inspectorBackend.registerEnum("Audits.UnencodedDigestError", {MalformedDictionary: "MalformedDictionary", UnknownAlgorithm: "UnknownAlgorithm", IncorrectDigestType: "IncorrectDigestType", IncorrectDigestLength: "IncorrectDigestLength"});
84
+ inspectorBackend.registerEnum("Audits.ConnectionAllowlistError", {InvalidHeader: "InvalidHeader", MoreThanOneList: "MoreThanOneList", ItemNotInnerList: "ItemNotInnerList", InvalidAllowlistItemType: "InvalidAllowlistItemType", ReportingEndpointNotToken: "ReportingEndpointNotToken", InvalidUrlPattern: "InvalidUrlPattern"});
84
85
  inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameError: "FormLabelForNameError", FormDuplicateIdForInputError: "FormDuplicateIdForInputError", FormInputWithNoLabelError: "FormInputWithNoLabelError", FormAutocompleteAttributeEmptyError: "FormAutocompleteAttributeEmptyError", FormEmptyIdAndNameAttributesForInputError: "FormEmptyIdAndNameAttributesForInputError", FormAriaLabelledByToNonExistingIdError: "FormAriaLabelledByToNonExistingIdError", FormInputAssignedAutocompleteValueToIdOrNameAttributeError: "FormInputAssignedAutocompleteValueToIdOrNameAttributeError", FormLabelHasNeitherForNorNestedInputError: "FormLabelHasNeitherForNorNestedInputError", FormLabelForMatchesNonExistingIdError: "FormLabelForMatchesNonExistingIdError", FormInputHasWrongButWellIntendedAutocompleteValueError: "FormInputHasWrongButWellIntendedAutocompleteValueError", ResponseWasBlockedByORB: "ResponseWasBlockedByORB", NavigationEntryMarkedSkippable: "NavigationEntryMarkedSkippable", AutofillAndManualTextPolicyControlledFeaturesInfo: "AutofillAndManualTextPolicyControlledFeaturesInfo", AutofillPolicyControlledFeatureInfo: "AutofillPolicyControlledFeatureInfo", ManualTextPolicyControlledFeatureInfo: "ManualTextPolicyControlledFeatureInfo"});
85
86
  inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
86
87
  inspectorBackend.registerEnum("Audits.FederatedAuthRequestIssueReason", {ShouldEmbargo: "ShouldEmbargo", TooManyRequests: "TooManyRequests", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", ConfigNotInWellKnown: "ConfigNotInWellKnown", WellKnownTooBig: "WellKnownTooBig", ConfigHttpNotFound: "ConfigHttpNotFound", ConfigNoResponse: "ConfigNoResponse", ConfigInvalidResponse: "ConfigInvalidResponse", ConfigInvalidContentType: "ConfigInvalidContentType", ClientMetadataHttpNotFound: "ClientMetadataHttpNotFound", ClientMetadataNoResponse: "ClientMetadataNoResponse", ClientMetadataInvalidResponse: "ClientMetadataInvalidResponse", ClientMetadataInvalidContentType: "ClientMetadataInvalidContentType", IdpNotPotentiallyTrustworthy: "IdpNotPotentiallyTrustworthy", DisabledInSettings: "DisabledInSettings", DisabledInFlags: "DisabledInFlags", ErrorFetchingSignin: "ErrorFetchingSignin", InvalidSigninResponse: "InvalidSigninResponse", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsListEmpty: "AccountsListEmpty", AccountsInvalidContentType: "AccountsInvalidContentType", IdTokenHttpNotFound: "IdTokenHttpNotFound", IdTokenNoResponse: "IdTokenNoResponse", IdTokenInvalidResponse: "IdTokenInvalidResponse", IdTokenIdpErrorResponse: "IdTokenIdpErrorResponse", IdTokenCrossSiteIdpErrorResponse: "IdTokenCrossSiteIdpErrorResponse", IdTokenInvalidRequest: "IdTokenInvalidRequest", IdTokenInvalidContentType: "IdTokenInvalidContentType", ErrorIdToken: "ErrorIdToken", Canceled: "Canceled", RpPageNotVisible: "RpPageNotVisible", SilentMediationFailure: "SilentMediationFailure", ThirdPartyCookiesBlocked: "ThirdPartyCookiesBlocked", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", InvalidFieldsSpecified: "InvalidFieldsSpecified", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
@@ -91,7 +92,7 @@ inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImport
91
92
  inspectorBackend.registerEnum("Audits.PropertyRuleIssueReason", {InvalidSyntax: "InvalidSyntax", InvalidInitialValue: "InvalidInitialValue", InvalidInherits: "InvalidInherits", InvalidName: "InvalidName"});
92
93
  inspectorBackend.registerEnum("Audits.UserReidentificationIssueType", {BlockedFrameNavigation: "BlockedFrameNavigation", BlockedSubresource: "BlockedSubresource", NoisedCanvasReadback: "NoisedCanvasReadback"});
93
94
  inspectorBackend.registerEnum("Audits.PermissionElementIssueType", {InvalidType: "InvalidType", FencedFrameDisallowed: "FencedFrameDisallowed", CspFrameAncestorsMissing: "CspFrameAncestorsMissing", PermissionsPolicyBlocked: "PermissionsPolicyBlocked", PaddingRightUnsupported: "PaddingRightUnsupported", PaddingBottomUnsupported: "PaddingBottomUnsupported", InsetBoxShadowUnsupported: "InsetBoxShadowUnsupported", RequestInProgress: "RequestInProgress", UntrustedEvent: "UntrustedEvent", RegistrationFailed: "RegistrationFailed", TypeNotSupported: "TypeNotSupported", InvalidTypeActivation: "InvalidTypeActivation", SecurityChecksFailed: "SecurityChecksFailed", ActivationDisabled: "ActivationDisabled", GeolocationDeprecated: "GeolocationDeprecated", InvalidDisplayStyle: "InvalidDisplayStyle", NonOpaqueColor: "NonOpaqueColor", LowContrast: "LowContrast", FontSizeTooSmall: "FontSizeTooSmall", FontSizeTooLarge: "FontSizeTooLarge", InvalidSizeValue: "InvalidSizeValue"});
94
- inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue"});
95
+ inspectorBackend.registerEnum("Audits.InspectorIssueCode", {CookieIssue: "CookieIssue", MixedContentIssue: "MixedContentIssue", BlockedByResponseIssue: "BlockedByResponseIssue", HeavyAdIssue: "HeavyAdIssue", ContentSecurityPolicyIssue: "ContentSecurityPolicyIssue", SharedArrayBufferIssue: "SharedArrayBufferIssue", LowTextContrastIssue: "LowTextContrastIssue", CorsIssue: "CorsIssue", AttributionReportingIssue: "AttributionReportingIssue", QuirksModeIssue: "QuirksModeIssue", PartitioningBlobURLIssue: "PartitioningBlobURLIssue", NavigatorUserAgentIssue: "NavigatorUserAgentIssue", GenericIssue: "GenericIssue", DeprecationIssue: "DeprecationIssue", ClientHintIssue: "ClientHintIssue", FederatedAuthRequestIssue: "FederatedAuthRequestIssue", BounceTrackingIssue: "BounceTrackingIssue", CookieDeprecationMetadataIssue: "CookieDeprecationMetadataIssue", StylesheetLoadingIssue: "StylesheetLoadingIssue", FederatedAuthUserInfoRequestIssue: "FederatedAuthUserInfoRequestIssue", PropertyRuleIssue: "PropertyRuleIssue", SharedDictionaryIssue: "SharedDictionaryIssue", ElementAccessibilityIssue: "ElementAccessibilityIssue", SRIMessageSignatureIssue: "SRIMessageSignatureIssue", UnencodedDigestIssue: "UnencodedDigestIssue", ConnectionAllowlistIssue: "ConnectionAllowlistIssue", UserReidentificationIssue: "UserReidentificationIssue", PermissionElementIssue: "PermissionElementIssue"});
95
96
  inspectorBackend.registerEvent("Audits.issueAdded", ["issue"]);
96
97
  inspectorBackend.registerEnum("Audits.GetEncodedResponseRequestEncoding", {Webp: "webp", Jpeg: "jpeg", Png: "png"});
97
98
  inspectorBackend.registerCommand("Audits.getEncodedResponse", [{"name": "requestId", "type": "string", "optional": false, "description": "Identifier of the network request to get content for.", "typeRef": "Network.RequestId"}, {"name": "encoding", "type": "string", "optional": false, "description": "The encoding to use.", "typeRef": "Audits.GetEncodedResponseRequestEncoding"}, {"name": "quality", "type": "number", "optional": true, "description": "The quality of the encoding (0-1). (defaults to 1)", "typeRef": null}, {"name": "sizeOnly", "type": "boolean", "optional": true, "description": "Whether to only return the size information (defaults to false).", "typeRef": null}], ["body", "originalSize", "encodedSize"], "Returns the response body and size if it were re-encoded with the specified settings. Only applies to images.");
@@ -118,6 +119,7 @@ inspectorBackend.registerType("Audits.NavigatorUserAgentIssueDetails", [{"name":
118
119
  inspectorBackend.registerType("Audits.SharedDictionaryIssueDetails", [{"name": "sharedDictionaryError", "type": "string", "optional": false, "description": "", "typeRef": "Audits.SharedDictionaryError"}, {"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}]);
119
120
  inspectorBackend.registerType("Audits.SRIMessageSignatureIssueDetails", [{"name": "error", "type": "string", "optional": false, "description": "", "typeRef": "Audits.SRIMessageSignatureError"}, {"name": "signatureBase", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "integrityAssertions", "type": "array", "optional": false, "description": "", "typeRef": "string"}, {"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}]);
120
121
  inspectorBackend.registerType("Audits.UnencodedDigestIssueDetails", [{"name": "error", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UnencodedDigestError"}, {"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}]);
122
+ inspectorBackend.registerType("Audits.ConnectionAllowlistIssueDetails", [{"name": "error", "type": "string", "optional": false, "description": "", "typeRef": "Audits.ConnectionAllowlistError"}, {"name": "request", "type": "object", "optional": false, "description": "", "typeRef": "Audits.AffectedRequest"}]);
121
123
  inspectorBackend.registerType("Audits.GenericIssueDetails", [{"name": "errorType", "type": "string", "optional": false, "description": "Issues with the same errorType are aggregated in the frontend.", "typeRef": "Audits.GenericIssueErrorType"}, {"name": "frameId", "type": "string", "optional": true, "description": "", "typeRef": "Page.FrameId"}, {"name": "violatingNodeId", "type": "number", "optional": true, "description": "", "typeRef": "DOM.BackendNodeId"}, {"name": "violatingNodeAttribute", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "request", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedRequest"}]);
122
124
  inspectorBackend.registerType("Audits.DeprecationIssueDetails", [{"name": "affectedFrame", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AffectedFrame"}, {"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "", "typeRef": "Audits.SourceCodeLocation"}, {"name": "type", "type": "string", "optional": false, "description": "One of the deprecation names from third_party/blink/renderer/core/frame/deprecation/deprecation.json5", "typeRef": null}]);
123
125
  inspectorBackend.registerType("Audits.BounceTrackingIssueDetails", [{"name": "trackingSites", "type": "array", "optional": false, "description": "", "typeRef": "string"}]);
@@ -132,7 +134,7 @@ inspectorBackend.registerType("Audits.StylesheetLoadingIssueDetails", [{"name":
132
134
  inspectorBackend.registerType("Audits.PropertyRuleIssueDetails", [{"name": "sourceCodeLocation", "type": "object", "optional": false, "description": "Source code position of the property rule.", "typeRef": "Audits.SourceCodeLocation"}, {"name": "propertyRuleIssueReason", "type": "string", "optional": false, "description": "Reason why the property rule was discarded.", "typeRef": "Audits.PropertyRuleIssueReason"}, {"name": "propertyValue", "type": "string", "optional": true, "description": "The value of the property rule property that failed to parse", "typeRef": null}]);
133
135
  inspectorBackend.registerType("Audits.UserReidentificationIssueDetails", [{"name": "type", "type": "string", "optional": false, "description": "", "typeRef": "Audits.UserReidentificationIssueType"}, {"name": "request", "type": "object", "optional": true, "description": "Applies to BlockedFrameNavigation and BlockedSubresource issue types.", "typeRef": "Audits.AffectedRequest"}, {"name": "sourceCodeLocation", "type": "object", "optional": true, "description": "Applies to NoisedCanvasReadback issue type.", "typeRef": "Audits.SourceCodeLocation"}]);
134
136
  inspectorBackend.registerType("Audits.PermissionElementIssueDetails", [{"name": "issueType", "type": "string", "optional": false, "description": "", "typeRef": "Audits.PermissionElementIssueType"}, {"name": "type", "type": "string", "optional": true, "description": "The value of the type attribute.", "typeRef": null}, {"name": "nodeId", "type": "number", "optional": true, "description": "The node ID of the <permission> element.", "typeRef": "DOM.BackendNodeId"}, {"name": "isWarning", "type": "boolean", "optional": true, "description": "True if the issue is a warning, false if it is an error.", "typeRef": null}, {"name": "permissionName", "type": "string", "optional": true, "description": "Fields for message construction: Used for messages that reference a specific permission name", "typeRef": null}, {"name": "occluderNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occlusion", "typeRef": null}, {"name": "occluderParentNodeInfo", "type": "string", "optional": true, "description": "Used for messages about occluder's parent", "typeRef": null}, {"name": "disableReason", "type": "string", "optional": true, "description": "Used for messages about activation disabled reason", "typeRef": null}]);
135
- inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}]);
137
+ inspectorBackend.registerType("Audits.InspectorIssueDetails", [{"name": "cookieIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieIssueDetails"}, {"name": "mixedContentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.MixedContentIssueDetails"}, {"name": "blockedByResponseIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BlockedByResponseIssueDetails"}, {"name": "heavyAdIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.HeavyAdIssueDetails"}, {"name": "contentSecurityPolicyIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ContentSecurityPolicyIssueDetails"}, {"name": "sharedArrayBufferIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedArrayBufferIssueDetails"}, {"name": "lowTextContrastIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.LowTextContrastIssueDetails"}, {"name": "corsIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CorsIssueDetails"}, {"name": "attributionReportingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.AttributionReportingIssueDetails"}, {"name": "quirksModeIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.QuirksModeIssueDetails"}, {"name": "partitioningBlobURLIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PartitioningBlobURLIssueDetails"}, {"name": "navigatorUserAgentIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.NavigatorUserAgentIssueDetails"}, {"name": "genericIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.GenericIssueDetails"}, {"name": "deprecationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.DeprecationIssueDetails"}, {"name": "clientHintIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ClientHintIssueDetails"}, {"name": "federatedAuthRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthRequestIssueDetails"}, {"name": "bounceTrackingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.BounceTrackingIssueDetails"}, {"name": "cookieDeprecationMetadataIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.CookieDeprecationMetadataIssueDetails"}, {"name": "stylesheetLoadingIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.StylesheetLoadingIssueDetails"}, {"name": "propertyRuleIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PropertyRuleIssueDetails"}, {"name": "federatedAuthUserInfoRequestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.FederatedAuthUserInfoRequestIssueDetails"}, {"name": "sharedDictionaryIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SharedDictionaryIssueDetails"}, {"name": "elementAccessibilityIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ElementAccessibilityIssueDetails"}, {"name": "sriMessageSignatureIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.SRIMessageSignatureIssueDetails"}, {"name": "unencodedDigestIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UnencodedDigestIssueDetails"}, {"name": "connectionAllowlistIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.ConnectionAllowlistIssueDetails"}, {"name": "userReidentificationIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.UserReidentificationIssueDetails"}, {"name": "permissionElementIssueDetails", "type": "object", "optional": true, "description": "", "typeRef": "Audits.PermissionElementIssueDetails"}]);
136
138
  inspectorBackend.registerType("Audits.InspectorIssue", [{"name": "code", "type": "string", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueCode"}, {"name": "details", "type": "object", "optional": false, "description": "", "typeRef": "Audits.InspectorIssueDetails"}, {"name": "issueId", "type": "string", "optional": true, "description": "A unique id for this issue. May be omitted if no other entity (e.g. exception, CDP message, etc.) is referencing this issue.", "typeRef": "Audits.IssueId"}]);
137
139
 
138
140
  // Autofill.
@@ -767,7 +769,7 @@ inspectorBackend.registerEnum("Network.RenderBlockingBehavior", {Blocking: "Bloc
767
769
  inspectorBackend.registerEnum("Network.RequestReferrerPolicy", {UnsafeUrl: "unsafe-url", NoReferrerWhenDowngrade: "no-referrer-when-downgrade", NoReferrer: "no-referrer", Origin: "origin", OriginWhenCrossOrigin: "origin-when-cross-origin", SameOrigin: "same-origin", StrictOrigin: "strict-origin", StrictOriginWhenCrossOrigin: "strict-origin-when-cross-origin"});
768
770
  inspectorBackend.registerEnum("Network.CertificateTransparencyCompliance", {Unknown: "unknown", NotCompliant: "not-compliant", Compliant: "compliant"});
769
771
  inspectorBackend.registerEnum("Network.BlockedReason", {Other: "other", Csp: "csp", MixedContent: "mixed-content", Origin: "origin", Inspector: "inspector", Integrity: "integrity", SubresourceFilter: "subresource-filter", ContentType: "content-type", CoepFrameResourceNeedsCoepHeader: "coep-frame-resource-needs-coep-header", CoopSandboxedIframeCannotNavigateToCoopPage: "coop-sandboxed-iframe-cannot-navigate-to-coop-page", CorpNotSameOrigin: "corp-not-same-origin", CorpNotSameOriginAfterDefaultedToSameOriginByCoep: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep", CorpNotSameOriginAfterDefaultedToSameOriginByDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-dip", CorpNotSameOriginAfterDefaultedToSameOriginByCoepAndDip: "corp-not-same-origin-after-defaulted-to-same-origin-by-coep-and-dip", CorpNotSameSite: "corp-not-same-site", SriMessageSignatureMismatch: "sri-message-signature-mismatch"});
770
- inspectorBackend.registerEnum("Network.CorsError", {DisallowedByMode: "DisallowedByMode", InvalidResponse: "InvalidResponse", WildcardOriginNotAllowed: "WildcardOriginNotAllowed", MissingAllowOriginHeader: "MissingAllowOriginHeader", MultipleAllowOriginValues: "MultipleAllowOriginValues", InvalidAllowOriginValue: "InvalidAllowOriginValue", AllowOriginMismatch: "AllowOriginMismatch", InvalidAllowCredentials: "InvalidAllowCredentials", CorsDisabledScheme: "CorsDisabledScheme", PreflightInvalidStatus: "PreflightInvalidStatus", PreflightDisallowedRedirect: "PreflightDisallowedRedirect", PreflightWildcardOriginNotAllowed: "PreflightWildcardOriginNotAllowed", PreflightMissingAllowOriginHeader: "PreflightMissingAllowOriginHeader", PreflightMultipleAllowOriginValues: "PreflightMultipleAllowOriginValues", PreflightInvalidAllowOriginValue: "PreflightInvalidAllowOriginValue", PreflightAllowOriginMismatch: "PreflightAllowOriginMismatch", PreflightInvalidAllowCredentials: "PreflightInvalidAllowCredentials", PreflightMissingAllowExternal: "PreflightMissingAllowExternal", PreflightInvalidAllowExternal: "PreflightInvalidAllowExternal", InvalidAllowMethodsPreflightResponse: "InvalidAllowMethodsPreflightResponse", InvalidAllowHeadersPreflightResponse: "InvalidAllowHeadersPreflightResponse", MethodDisallowedByPreflightResponse: "MethodDisallowedByPreflightResponse", HeaderDisallowedByPreflightResponse: "HeaderDisallowedByPreflightResponse", RedirectContainsCredentials: "RedirectContainsCredentials", InsecurePrivateNetwork: "InsecurePrivateNetwork", InvalidPrivateNetworkAccess: "InvalidPrivateNetworkAccess", NoCorsRedirectModeNotFollow: "NoCorsRedirectModeNotFollow", LocalNetworkAccessPermissionDenied: "LocalNetworkAccessPermissionDenied"});
772
+ inspectorBackend.registerEnum("Network.CorsError", {DisallowedByMode: "DisallowedByMode", InvalidResponse: "InvalidResponse", WildcardOriginNotAllowed: "WildcardOriginNotAllowed", MissingAllowOriginHeader: "MissingAllowOriginHeader", MultipleAllowOriginValues: "MultipleAllowOriginValues", InvalidAllowOriginValue: "InvalidAllowOriginValue", AllowOriginMismatch: "AllowOriginMismatch", InvalidAllowCredentials: "InvalidAllowCredentials", CorsDisabledScheme: "CorsDisabledScheme", PreflightInvalidStatus: "PreflightInvalidStatus", PreflightDisallowedRedirect: "PreflightDisallowedRedirect", PreflightWildcardOriginNotAllowed: "PreflightWildcardOriginNotAllowed", PreflightMissingAllowOriginHeader: "PreflightMissingAllowOriginHeader", PreflightMultipleAllowOriginValues: "PreflightMultipleAllowOriginValues", PreflightInvalidAllowOriginValue: "PreflightInvalidAllowOriginValue", PreflightAllowOriginMismatch: "PreflightAllowOriginMismatch", PreflightInvalidAllowCredentials: "PreflightInvalidAllowCredentials", PreflightMissingAllowExternal: "PreflightMissingAllowExternal", PreflightInvalidAllowExternal: "PreflightInvalidAllowExternal", InvalidAllowMethodsPreflightResponse: "InvalidAllowMethodsPreflightResponse", InvalidAllowHeadersPreflightResponse: "InvalidAllowHeadersPreflightResponse", MethodDisallowedByPreflightResponse: "MethodDisallowedByPreflightResponse", HeaderDisallowedByPreflightResponse: "HeaderDisallowedByPreflightResponse", RedirectContainsCredentials: "RedirectContainsCredentials", InsecureLocalNetwork: "InsecureLocalNetwork", InvalidLocalNetworkAccess: "InvalidLocalNetworkAccess", NoCorsRedirectModeNotFollow: "NoCorsRedirectModeNotFollow", LocalNetworkAccessPermissionDenied: "LocalNetworkAccessPermissionDenied"});
771
773
  inspectorBackend.registerEnum("Network.ServiceWorkerResponseSource", {CacheStorage: "cache-storage", HttpCache: "http-cache", FallbackCode: "fallback-code", Network: "network"});
772
774
  inspectorBackend.registerEnum("Network.TrustTokenParamsRefreshPolicy", {UseCached: "UseCached", Refresh: "Refresh"});
773
775
  inspectorBackend.registerEnum("Network.TrustTokenOperationType", {Issuance: "Issuance", Redemption: "Redemption", Signing: "Signing"});
@@ -941,6 +943,8 @@ inspectorBackend.registerEnum("Overlay.InspectMode", {SearchForNode: "searchForN
941
943
  inspectorBackend.registerEvent("Overlay.inspectNodeRequested", ["backendNodeId"]);
942
944
  inspectorBackend.registerEvent("Overlay.nodeHighlightRequested", ["nodeId"]);
943
945
  inspectorBackend.registerEvent("Overlay.screenshotRequested", ["viewport"]);
946
+ inspectorBackend.registerEvent("Overlay.inspectPanelShowRequested", ["backendNodeId"]);
947
+ inspectorBackend.registerEvent("Overlay.inspectedElementWindowRestored", ["backendNodeId"]);
944
948
  inspectorBackend.registerEvent("Overlay.inspectModeCanceled", []);
945
949
  inspectorBackend.registerCommand("Overlay.disable", [], [], "Disables domain notifications.");
946
950
  inspectorBackend.registerCommand("Overlay.enable", [], [], "Enables domain notifications.");
@@ -962,6 +966,7 @@ inspectorBackend.registerCommand("Overlay.setShowGridOverlays", [{"name": "gridN
962
966
  inspectorBackend.registerCommand("Overlay.setShowFlexOverlays", [{"name": "flexNodeHighlightConfigs", "type": "array", "optional": false, "description": "An array of node identifiers and descriptors for the highlight appearance.", "typeRef": "Overlay.FlexNodeHighlightConfig"}], [], "");
963
967
  inspectorBackend.registerCommand("Overlay.setShowScrollSnapOverlays", [{"name": "scrollSnapHighlightConfigs", "type": "array", "optional": false, "description": "An array of node identifiers and descriptors for the highlight appearance.", "typeRef": "Overlay.ScrollSnapHighlightConfig"}], [], "");
964
968
  inspectorBackend.registerCommand("Overlay.setShowContainerQueryOverlays", [{"name": "containerQueryHighlightConfigs", "type": "array", "optional": false, "description": "An array of node identifiers and descriptors for the highlight appearance.", "typeRef": "Overlay.ContainerQueryHighlightConfig"}], [], "");
969
+ inspectorBackend.registerCommand("Overlay.setShowInspectedElementAnchor", [{"name": "inspectedElementAnchorConfig", "type": "object", "optional": false, "description": "Node identifier for which to show an anchor for.", "typeRef": "Overlay.InspectedElementAnchorConfig"}], [], "");
965
970
  inspectorBackend.registerCommand("Overlay.setShowPaintRects", [{"name": "result", "type": "boolean", "optional": false, "description": "True for showing paint rectangles", "typeRef": null}], [], "Requests that backend shows paint rectangles");
966
971
  inspectorBackend.registerCommand("Overlay.setShowLayoutShiftRegions", [{"name": "result", "type": "boolean", "optional": false, "description": "True for showing layout shift regions", "typeRef": null}], [], "Requests that backend shows layout shift regions");
967
972
  inspectorBackend.registerCommand("Overlay.setShowScrollBottleneckRects", [{"name": "show", "type": "boolean", "optional": false, "description": "True for showing scroll bottleneck rects", "typeRef": null}], [], "Requests that backend shows scroll bottleneck rects");
@@ -988,6 +993,7 @@ inspectorBackend.registerType("Overlay.ContainerQueryHighlightConfig", [{"name":
988
993
  inspectorBackend.registerType("Overlay.ContainerQueryContainerHighlightConfig", [{"name": "containerBorder", "type": "object", "optional": true, "description": "The style of the container border.", "typeRef": "Overlay.LineStyle"}, {"name": "descendantBorder", "type": "object", "optional": true, "description": "The style of the descendants' borders.", "typeRef": "Overlay.LineStyle"}]);
989
994
  inspectorBackend.registerType("Overlay.IsolatedElementHighlightConfig", [{"name": "isolationModeHighlightConfig", "type": "object", "optional": false, "description": "A descriptor for the highlight appearance of an element in isolation mode.", "typeRef": "Overlay.IsolationModeHighlightConfig"}, {"name": "nodeId", "type": "number", "optional": false, "description": "Identifier of the isolated element to highlight.", "typeRef": "DOM.NodeId"}]);
990
995
  inspectorBackend.registerType("Overlay.IsolationModeHighlightConfig", [{"name": "resizerColor", "type": "object", "optional": true, "description": "The fill color of the resizers (default: transparent).", "typeRef": "DOM.RGBA"}, {"name": "resizerHandleColor", "type": "object", "optional": true, "description": "The fill color for resizer handles (default: transparent).", "typeRef": "DOM.RGBA"}, {"name": "maskColor", "type": "object", "optional": true, "description": "The fill color for the mask covering non-isolated elements (default: transparent).", "typeRef": "DOM.RGBA"}]);
996
+ inspectorBackend.registerType("Overlay.InspectedElementAnchorConfig", [{"name": "nodeId", "type": "number", "optional": true, "description": "Identifier of the node to highlight.", "typeRef": "DOM.NodeId"}, {"name": "backendNodeId", "type": "number", "optional": true, "description": "Identifier of the backend node to highlight.", "typeRef": "DOM.BackendNodeId"}]);
991
997
 
992
998
  // PWA.
993
999
  inspectorBackend.registerEnum("PWA.DisplayMode", {Standalone: "standalone", Browser: "browser"});