chrome-devtools-frontend 1.0.1650232 → 1.0.1651641

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 (282) hide show
  1. package/.agents/skills/version-control/SKILL.md +5 -1
  2. package/config/typescript/tsconfig.base.json +1 -0
  3. package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
  4. package/front_end/core/host/UserMetrics.ts +0 -11
  5. package/front_end/core/sdk/CSSMatchedStyles.ts +20 -4
  6. package/front_end/devtools_compatibility.js +1 -2
  7. package/front_end/entrypoints/heap_snapshot_worker/HeapSnapshot.ts +94 -0
  8. package/front_end/foundation/Universe.ts +7 -0
  9. package/front_end/generated/InspectorBackendCommands.ts +4 -1
  10. package/front_end/generated/SupportedCSSProperties.js +284 -0
  11. package/front_end/generated/protocol-mapping.d.ts +7 -0
  12. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  13. package/front_end/generated/protocol.ts +60 -0
  14. package/front_end/models/ai_assistance/AiAgent2.ts +11 -1
  15. package/front_end/models/ai_assistance/README.md +4 -0
  16. package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +2 -0
  17. package/front_end/models/ai_assistance/agents/AiAgent.ts +3 -0
  18. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -0
  19. package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
  20. package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
  21. package/front_end/models/ai_assistance/skills/SkillRegistry.ts +2 -0
  22. package/front_end/models/ai_assistance/skills/accessibility.md +13 -0
  23. package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +54 -0
  24. package/front_end/models/ai_assistance/tools/ResolveLighthousePath.ts +124 -0
  25. package/front_end/models/ai_assistance/tools/Tool.ts +12 -2
  26. package/front_end/models/ai_assistance/tools/ToolRegistry.ts +4 -0
  27. package/front_end/models/heap_snapshot/HeapSnapshotModel.ts +14 -0
  28. package/front_end/models/heap_snapshot/HeapSnapshotProxy.ts +4 -0
  29. package/front_end/models/javascript_metadata/NativeFunctions.js +4 -0
  30. package/front_end/models/persistence/NetworkPersistenceManager.ts +9 -1
  31. package/front_end/panels/ai_assistance/components/ChatMessage.ts +3 -11
  32. package/front_end/panels/common/ExtensionServer.ts +70 -50
  33. package/front_end/panels/elements/CSSSpecificityBreakdown.ts +106 -0
  34. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  35. package/front_end/panels/elements/StylePropertiesSection.ts +40 -13
  36. package/front_end/panels/elements/StylePropertyTreeElement.ts +6 -5
  37. package/front_end/panels/elements/components/CSSQuery.ts +119 -4
  38. package/front_end/panels/elements/elements.ts +3 -0
  39. package/front_end/panels/elements/stylesSidebarPane.css +34 -0
  40. package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -2
  41. package/front_end/panels/layer_viewer/PaintProfilerView.ts +0 -3
  42. package/front_end/panels/network/RequestHeadersView.ts +2 -2
  43. package/front_end/panels/network/components/RequestHeadersView.css +1 -0
  44. package/front_end/panels/network/components/ResponseHeaderSection.css +5 -1
  45. package/front_end/panels/recorder/testing/RecorderHelpers.ts +2 -0
  46. package/front_end/panels/timeline/timeline-meta.ts +1 -1
  47. package/front_end/third_party/chromium/README.chromium +1 -1
  48. package/front_end/third_party/puppeteer/README.chromium +2 -2
  49. package/front_end/third_party/puppeteer/package/README.md +14 -0
  50. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +60 -24
  51. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +271 -164
  52. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +2 -6
  53. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
  54. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js +2 -2
  55. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
  56. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +2 -2
  57. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
  58. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js +11 -7
  59. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js.map +1 -1
  60. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts.map +1 -1
  61. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js +3 -10
  62. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js.map +1 -1
  63. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +9 -4
  64. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
  65. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js +4 -4
  66. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
  67. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.d.ts +13 -0
  68. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.d.ts.map +1 -1
  69. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.js +14 -0
  70. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.js.map +1 -1
  71. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js +5 -5
  72. package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js.map +1 -1
  73. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +2 -2
  74. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
  75. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js +3 -3
  76. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js.map +1 -1
  77. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserConnector.js +5 -3
  78. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserConnector.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js +6 -6
  80. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts +1 -1
  82. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js +3 -3
  84. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Deserializer.js +2 -2
  86. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Deserializer.js.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js +6 -6
  88. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js +1 -1
  90. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts +1 -0
  92. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts.map +1 -1
  93. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js +3 -0
  94. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js.map +1 -1
  95. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js +1 -1
  96. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
  98. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js +11 -0
  100. package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.d.ts.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js +4 -4
  103. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Binding.js +3 -3
  105. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Binding.js.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +13 -2
  108. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/BrowserConnector.js +2 -2
  110. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/BrowserConnector.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js +2 -2
  112. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Coverage.js +2 -2
  114. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Coverage.js.map +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ElementHandle.js +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ElementHandle.js.map +1 -1
  117. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.d.ts +1 -0
  118. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
  119. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js +25 -4
  120. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js.map +1 -1
  121. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ExecutionContext.js +3 -3
  122. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ExecutionContext.js.map +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.d.ts.map +1 -1
  124. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.js +9 -11
  125. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +3 -3
  127. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js +7 -7
  130. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js.map +1 -1
  131. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPRequest.js +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPRequest.js.map +1 -1
  133. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/JSHandle.js +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/JSHandle.js.map +1 -1
  135. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts +3 -1
  136. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js +18 -10
  138. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js.map +1 -1
  139. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts +1 -0
  140. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js +17 -11
  142. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js +3 -3
  144. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js +28 -10
  147. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
  149. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +10 -6
  150. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
  151. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.d.ts +3 -0
  152. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js +20 -5
  154. package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js.map +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.d.ts.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +11 -0
  157. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js +2 -2
  159. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CallbackRegistry.js +2 -2
  161. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CallbackRegistry.js.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Configuration.d.ts +4 -2
  163. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Configuration.d.ts.map +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts +26 -13
  165. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  166. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +1 -6
  167. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
  168. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +24 -33
  169. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js +2 -2
  171. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js.map +1 -1
  172. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts +8 -1
  173. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js +8 -1
  175. package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js.map +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.d.ts +2 -0
  177. package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.d.ts.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.js +4 -2
  179. package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.js.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
  181. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
  183. package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.d.ts.map +1 -1
  185. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.js +15 -5
  186. package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.js.map +1 -1
  187. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts +5 -1
  188. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  189. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +17 -16
  190. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
  191. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js +14 -9
  193. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js.map +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/FirefoxLauncher.js +2 -2
  195. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/FirefoxLauncher.js.map +1 -1
  196. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js +2 -2
  197. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
  198. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PipeTransport.js +3 -3
  199. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PipeTransport.js.map +1 -1
  200. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +20 -0
  201. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
  202. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +38 -9
  203. package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +1 -1
  204. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.d.ts +7 -0
  205. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.d.ts.map +1 -0
  206. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js +16 -0
  207. package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js.map +1 -0
  208. package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.d.ts +1 -0
  209. package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.d.ts.map +1 -1
  210. package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.js +3 -8
  211. package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.js.map +1 -1
  212. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
  213. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
  214. package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
  215. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
  217. package/front_end/third_party/puppeteer/package/lib/types.d.ts +60 -24
  218. package/front_end/third_party/puppeteer/package/package.json +4 -4
  219. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +4 -8
  220. package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +2 -2
  221. package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +10 -10
  222. package/front_end/third_party/puppeteer/package/src/api/JSHandle.ts +3 -10
  223. package/front_end/third_party/puppeteer/package/src/api/Page.ts +14 -8
  224. package/front_end/third_party/puppeteer/package/src/api/WebWorker.ts +30 -0
  225. package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +5 -5
  226. package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +2 -2
  227. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +3 -3
  228. package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +5 -3
  229. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +6 -6
  230. package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +4 -4
  231. package/front_end/third_party/puppeteer/package/src/bidi/Deserializer.ts +2 -2
  232. package/front_end/third_party/puppeteer/package/src/bidi/ExposedFunction.ts +6 -6
  233. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -1
  234. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
  235. package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +1 -1
  236. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +11 -0
  237. package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +6 -4
  238. package/front_end/third_party/puppeteer/package/src/cdp/Binding.ts +3 -3
  239. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +14 -2
  240. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -2
  241. package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +2 -2
  242. package/front_end/third_party/puppeteer/package/src/cdp/Coverage.ts +2 -2
  243. package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +1 -1
  244. package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +36 -4
  245. package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +3 -3
  246. package/front_end/third_party/puppeteer/package/src/cdp/Extension.ts +16 -17
  247. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +3 -3
  248. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +12 -7
  249. package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +1 -1
  250. package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +1 -1
  251. package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +22 -11
  252. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +18 -10
  253. package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +3 -3
  254. package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +37 -12
  255. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +11 -9
  256. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +33 -5
  257. package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +11 -0
  258. package/front_end/third_party/puppeteer/package/src/common/BrowserWebSocketTransport.ts +2 -2
  259. package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +2 -2
  260. package/front_end/third_party/puppeteer/package/src/common/Configuration.ts +4 -2
  261. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +26 -13
  262. package/front_end/third_party/puppeteer/package/src/common/Debug.ts +30 -40
  263. package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +2 -2
  264. package/front_end/third_party/puppeteer/package/src/common/util.ts +9 -1
  265. package/front_end/third_party/puppeteer/package/src/environment.ts +7 -3
  266. package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
  267. package/front_end/third_party/puppeteer/package/src/injected/TextContent.ts +15 -5
  268. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +23 -23
  269. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +19 -13
  270. package/front_end/third_party/puppeteer/package/src/node/FirefoxLauncher.ts +2 -2
  271. package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +2 -2
  272. package/front_end/third_party/puppeteer/package/src/node/PipeTransport.ts +3 -3
  273. package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +44 -9
  274. package/front_end/third_party/puppeteer/package/src/node-env-setup.ts +18 -0
  275. package/front_end/third_party/puppeteer/package/src/puppeteer-core.ts +5 -9
  276. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  277. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  278. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  279. package/front_end/tsconfig.json +1 -2
  280. package/inspector_overlay/tsconfig.json +3 -10
  281. package/mcp/tsconfig.json +1 -5
  282. package/package.json +1 -2
@@ -1,10 +1,14 @@
1
1
  ---
2
2
  name: devtools-version-control
3
- description: Use when managing branches, creating and uploading CLs, or handling stacked changes in the DevTools Gerrit-based workflow.
3
+ description: Use when starting a new task, creating a branch, switching branches, managing branches, creating and uploading CLs, or handling stacked changes in the DevTools Gerrit-based workflow. ALWAYS use this instead of running standard git checkout/switch commands for branch creation.
4
4
  ---
5
5
 
6
6
  # DevTools Version Control
7
7
 
8
+ > [!IMPORTANT]
9
+ > **DO NOT use standard Git commands like `git checkout -b` or `git switch -c` to create branches.**
10
+ > In Chrome DevTools, you MUST always use `git new-branch <branch-name>` (or `git new-branch --upstream_current <branch-name>` for stacked CLs). Standard commands fail to configure the correct upstream tracking branch required by `depot_tools` and Gerrit.
11
+
8
12
  ## Overview
9
13
  Chrome DevTools uses Gerrit for code review. The standard workflow is **one branch per Change List (CL)** and **one commit per branch**. Instead of multiple commits, you amend your single commit locally.
10
14
 
@@ -18,6 +18,7 @@
18
18
  "noFallthroughCasesInSwitch": true,
19
19
 
20
20
  "experimentalDecorators": true,
21
+ "allowSyntheticDefaultImports": true,
21
22
 
22
23
  "composite": true,
23
24
  "declaration": true,
@@ -556,6 +556,5 @@ export const enum EnumeratedHistogram {
556
556
  LighthouseCategoryUsed = 'DevTools.LighthouseCategoryUsed',
557
557
  SwatchActivated = 'DevTools.SwatchActivated',
558
558
  BuiltInAiAvailability = 'DevTools.BuiltInAiAvailability',
559
- ExtensionEvalTarget = 'DevTools.ExtensionEvalTarget',
560
559
  // LINT.ThenChange(/front_end/devtools_compatibility.js:EnumeratedHistogram)
561
560
  }
@@ -254,10 +254,6 @@ export class UserMetrics {
254
254
  'DevTools.Insights.ShortTeaserGenerationTime', timeInMilliseconds);
255
255
  }
256
256
 
257
- extensionEvalTarget(target: ExtensionEvalTarget): void {
258
- InspectorFrontendHostInstance.recordEnumeratedHistogram(
259
- EnumeratedHistogram.ExtensionEvalTarget, target, ExtensionEvalTarget.MAX_VALUE);
260
- }
261
257
  }
262
258
 
263
259
  /**
@@ -1197,10 +1193,3 @@ export const enum BuiltInAiAvailability {
1197
1193
  DISABLED_NO_GPU = 9,
1198
1194
  MAX_VALUE = 10,
1199
1195
  }
1200
-
1201
- export const enum ExtensionEvalTarget {
1202
- WEB_PAGE = 0,
1203
- SAME_EXTENSION = 1,
1204
- OTHER_EXTENSION = 2,
1205
- MAX_VALUE = 3,
1206
- }
@@ -895,7 +895,7 @@ export class CSSMatchedStyles {
895
895
  return domCascade ? domCascade.findAvailableCSSVariables(style) : [];
896
896
  }
897
897
 
898
- computeCSSVariable(style: CSSStyleDeclaration, variableName: string): CSSVariableValue|null {
898
+ computeCSSVariable(style: CSSStyleDeclaration, variableName: string, containerNode?: DOMNode): CSSVariableValue|null {
899
899
  if (style.parentRule instanceof CSSKeyframeRule) {
900
900
  // The resolution of the variables inside of a CSS keyframe rule depends on where this keyframe rule is used.
901
901
  // So, we need to find the style with active CSS property `animation-name` that equals to the keyframe's name.
@@ -914,7 +914,7 @@ export class CSSMatchedStyles {
914
914
  }
915
915
 
916
916
  const domCascade = this.#styleToDOMCascade.get(style);
917
- return domCascade ? domCascade.computeCSSVariable(style, variableName) : null;
917
+ return domCascade ? domCascade.computeCSSVariable(style, variableName, containerNode) : null;
918
918
  }
919
919
 
920
920
  computeAttribute(style: CSSStyleDeclaration, attributeName: string, type: CSSType): string|null {
@@ -1030,6 +1030,10 @@ class NodeCascade {
1030
1030
  this.#node = node;
1031
1031
  }
1032
1032
 
1033
+ node(): DOMNode {
1034
+ return this.#node;
1035
+ }
1036
+
1033
1037
  computeActiveProperties(): void {
1034
1038
  this.propertiesState.clear();
1035
1039
  this.propertiesOverriddenByAnimation.clear();
@@ -1374,9 +1378,21 @@ class DOMInheritanceCascade {
1374
1378
  }
1375
1379
  }
1376
1380
 
1377
- computeCSSVariable(style: CSSStyleDeclaration, variableName: string): CSSVariableValue|null {
1381
+ nodeToNodeCascade(node: DOMNode): NodeCascade|null {
1382
+ for (const nodeCascade of this.#nodeCascades) {
1383
+ if (nodeCascade.node() === node) {
1384
+ return nodeCascade;
1385
+ }
1386
+ }
1387
+ if (this.#fallbackCascade) {
1388
+ return this.#fallbackCascade.nodeToNodeCascade(node);
1389
+ }
1390
+ return null;
1391
+ }
1392
+
1393
+ computeCSSVariable(style: CSSStyleDeclaration, variableName: string, containerNode?: DOMNode): CSSVariableValue|null {
1378
1394
  this.ensureInitialized();
1379
- const nodeCascade = this.#styleToNodeCascade.get(style);
1395
+ const nodeCascade = containerNode ? this.nodeToNodeCascade(containerNode) : this.#styleToNodeCascade.get(style);
1380
1396
  if (!nodeCascade) {
1381
1397
  return null;
1382
1398
  }
@@ -444,8 +444,7 @@
444
444
  TimelineNavigationSettingState: 'DevTools.TimelineNavigationSettingState',
445
445
  SyncSetting: 'DevTools.SyncSetting',
446
446
  SwatchActivated: 'DevTools.SwatchActivated',
447
- BuiltInAiAvailability: 'DevTools.BuiltInAiAvailability',
448
- ExtensionEvalTarget: 'DevTools.ExtensionEvalTarget'
447
+ BuiltInAiAvailability: 'DevTools.BuiltInAiAvailability'
449
448
  // LINT.ThenChange(/front_end/core/host/InspectorFrontendHostAPI.ts:EnumeratedHistogram)
450
449
  };
451
450
 
@@ -528,6 +528,52 @@ export class HeapSnapshotNode implements HeapSnapshotItem {
528
528
  value |= detachedness; // Set the new bits.
529
529
  this.#setDetachednessAndClassIndex(value);
530
530
  }
531
+
532
+ findInternalEdgeTarget(name: string): HeapSnapshotNode|undefined {
533
+ for (let iter = this.edges(); iter.hasNext(); iter.next()) {
534
+ const edge = iter.edge;
535
+ if (!edge.isInternal()) {
536
+ continue;
537
+ }
538
+ if (edge.name() === name) {
539
+ return edge.node();
540
+ }
541
+ }
542
+ return undefined;
543
+ }
544
+
545
+ // V8 represents boolean values in heap snapshots as a virtual node of type 'number'
546
+ // and name 'bool', which has an internal edge named 'value' pointing to a string node
547
+ // with name 'true' or 'false'.
548
+ // See V8's FindOrCreateBoolEntry in heap-snapshot-generator.cc.
549
+ nodeValueAsBool(): boolean|undefined {
550
+ if (this.rawType() !== this.snapshot.nodeNumberType) {
551
+ return undefined;
552
+ }
553
+ if (this.rawName() !== 'bool') {
554
+ return undefined;
555
+ }
556
+ const valNode = this.findInternalEdgeTarget('value');
557
+ if (!valNode) {
558
+ return undefined;
559
+ }
560
+ const rawName = valNode.rawName();
561
+ if (rawName === 'true') {
562
+ return true;
563
+ }
564
+ if (rawName === 'false') {
565
+ return false;
566
+ }
567
+ return undefined;
568
+ }
569
+
570
+ nodeIsTruncatedString(): boolean {
571
+ const truncNode = this.findInternalEdgeTarget('truncated');
572
+ if (!truncNode) {
573
+ return false;
574
+ }
575
+ return truncNode.nodeValueAsBool() === true;
576
+ }
531
577
  }
532
578
 
533
579
  export class HeapSnapshotNodeIterator implements HeapSnapshotItemIterator {
@@ -903,6 +949,7 @@ export abstract class HeapSnapshot {
903
949
  nodeSyntheticType!: number;
904
950
  nodeClosureType!: number;
905
951
  nodeRegExpType!: number;
952
+ nodeNumberType!: number;
906
953
  edgeFieldsCount!: number;
907
954
  edgeTypeOffset!: number;
908
955
  edgeNameOffset!: number;
@@ -983,6 +1030,7 @@ export abstract class HeapSnapshot {
983
1030
  this.nodeSyntheticType = this.nodeTypes.indexOf('synthetic');
984
1031
  this.nodeClosureType = this.nodeTypes.indexOf('closure');
985
1032
  this.nodeRegExpType = this.nodeTypes.indexOf('regexp');
1033
+ this.nodeNumberType = this.nodeTypes.indexOf('number');
986
1034
 
987
1035
  this.edgeFieldsCount = meta.edge_fields.length;
988
1036
  this.edgeTypeOffset = meta.edge_fields.indexOf('type');
@@ -1316,6 +1364,52 @@ export abstract class HeapSnapshot {
1316
1364
  return this.getAggregatesByClassKey(false, key, filter);
1317
1365
  }
1318
1366
 
1367
+ getDuplicateStrings(): HeapSnapshotModel.HeapSnapshotModel.DuplicateStringGroup[] {
1368
+ const filter = this.createNamedFilter('duplicatedStrings');
1369
+ const groupsMap = new Map<string, HeapSnapshotModel.HeapSnapshotModel.DuplicateStringGroup>();
1370
+ const node = this.createNode(0);
1371
+
1372
+ for (let i = 0; i < this.nodeCount; ++i) {
1373
+ node.nodeIndex = i * this.nodeFieldCount;
1374
+ if (filter(node)) {
1375
+ const name = node.name();
1376
+ const truncated = node.nodeIsTruncatedString();
1377
+
1378
+ // Note that there is exactly one group for each duplicated string value. So
1379
+ // truncated strings might end up in the same group as non-truncated strings if the
1380
+ // prefix matches the non-truncated string. This should be unlikely though and we
1381
+ // don't handle this here to avoid that additional complexity.
1382
+ let group = groupsMap.get(name);
1383
+ if (!group) {
1384
+ group = {
1385
+ value: name,
1386
+ count: 0,
1387
+ totalSelfSize: 0,
1388
+ totalRetainedSize: 0,
1389
+ nodes: [],
1390
+ truncated,
1391
+ };
1392
+ groupsMap.set(name, group);
1393
+ } else if (truncated) {
1394
+ // Make sure the truncated flag is set in case the group was initially created by a
1395
+ // non-truncated string.
1396
+ group.truncated = true;
1397
+ }
1398
+ group.count++;
1399
+ group.totalSelfSize += node.selfSize();
1400
+ group.totalRetainedSize += node.retainedSize();
1401
+ group.nodes.push({
1402
+ id: node.id(),
1403
+ selfSize: node.selfSize(),
1404
+ retainedSize: node.retainedSize(),
1405
+ distance: node.distance(),
1406
+ });
1407
+ }
1408
+ }
1409
+
1410
+ return Array.from(groupsMap.values()).sort((a, b) => b.totalRetainedSize - a.totalRetainedSize);
1411
+ }
1412
+
1319
1413
  private createNodeIdFilter(minNodeId: number, maxNodeId: number): (arg0: HeapSnapshotNode) => boolean {
1320
1414
  function nodeIdFilter(node: HeapSnapshotNode): boolean {
1321
1415
  const id = node.id();
@@ -14,6 +14,9 @@ export interface CreationOptions {
14
14
  }
15
15
 
16
16
  export class Universe {
17
+ // TODO(crbug.com/493763857): Once a singleton is no longer a singleton (i.e. it has no 'instance')
18
+ // static method, we can move it out of the `DevToolsContext` and store it
19
+ // directly on the `Universe`.
17
20
  readonly context: Root.DevToolsContext.DevToolsContext;
18
21
 
19
22
  constructor(options: CreationOptions) {
@@ -59,4 +62,8 @@ export class Universe {
59
62
  resourceMapping, targetManager, ignoreListManager, workspace);
60
63
  context.set(Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding, debuggerWorkspaceBinding);
61
64
  }
65
+
66
+ get pageResourceLoader(): SDK.PageResourceLoader.PageResourceLoader {
67
+ return this.context.get(SDK.PageResourceLoader.PageResourceLoader);
68
+ }
62
69
  }
@@ -91,7 +91,7 @@ inspectorBackend.registerEnum("Audits.GenericIssueErrorType", {FormLabelForNameE
91
91
  inspectorBackend.registerEnum("Audits.ClientHintIssueReason", {MetaTagAllowListInvalidOrigin: "MetaTagAllowListInvalidOrigin", MetaTagModifiedHTML: "MetaTagModifiedHTML"});
92
92
  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", 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", NotSignedInWithIdp: "NotSignedInWithIdp", MissingTransientUserActivation: "MissingTransientUserActivation", ReplacedByActiveMode: "ReplacedByActiveMode", RelyingPartyOriginIsOpaque: "RelyingPartyOriginIsOpaque", TypeNotMatching: "TypeNotMatching", UiDismissedNoEmbargo: "UiDismissedNoEmbargo", CorsError: "CorsError", SuppressedBySegmentationPlatform: "SuppressedBySegmentationPlatform"});
93
93
  inspectorBackend.registerEnum("Audits.FederatedAuthUserInfoRequestIssueReason", {NotSameOrigin: "NotSameOrigin", NotIframe: "NotIframe", NotPotentiallyTrustworthy: "NotPotentiallyTrustworthy", NoAPIPermission: "NoApiPermission", NotSignedInWithIdp: "NotSignedInWithIdp", NoAccountSharingPermission: "NoAccountSharingPermission", InvalidConfigOrWellKnown: "InvalidConfigOrWellKnown", InvalidAccountsResponse: "InvalidAccountsResponse", NoReturningUserFromFetchedAccounts: "NoReturningUserFromFetchedAccounts"});
94
- inspectorBackend.registerEnum("Audits.EmailVerificationRequestIssueReason", {InvalidEmail: "InvalidEmail", DnsFetchFailed: "DnsFetchFailed", DnsInvalidRecord: "DnsInvalidRecord", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", WellKnownMissingIssuanceEndpoint: "WellKnownMissingIssuanceEndpoint", WellKnownIssuanceEndpointCrossOrigin: "WellKnownIssuanceEndpointCrossOrigin", WellKnownUnsupportedSigningAlgorithm: "WellKnownUnsupportedSigningAlgorithm", TokenHttpNotFound: "TokenHttpNotFound", TokenNoResponse: "TokenNoResponse", TokenInvalidResponse: "TokenInvalidResponse", TokenInvalidContentType: "TokenInvalidContentType", TokenMalformedSdJwt: "TokenMalformedSdJwt", TokenInvalidSdJwt: "TokenInvalidSdJwt", KeyBindingSigningFailed: "KeyBindingSigningFailed", RpOriginIsOpaque: "RpOriginIsOpaque", WellKnownMissingAccountsEndpoint: "WellKnownMissingAccountsEndpoint", UserLoggedOut: "UserLoggedOut", WellKnownAccountsEndpointCrossOrigin: "WellKnownAccountsEndpointCrossOrigin", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsInvalidContentType: "AccountsInvalidContentType", AccountsEmptyList: "AccountsEmptyList", EmailVerificationWellKnownHttpNotFound: "EmailVerificationWellKnownHttpNotFound", EmailVerificationWellKnownNoResponse: "EmailVerificationWellKnownNoResponse", EmailVerificationWellKnownInvalidResponse: "EmailVerificationWellKnownInvalidResponse", EmailVerificationWellKnownInvalidContentType: "EmailVerificationWellKnownInvalidContentType", JwksHttpNotFound: "JwksHttpNotFound", JwksInvalidResponse: "JwksInvalidResponse", TokenVerificationSdJwtUnsupportedHeaderAlg: "TokenVerificationSdJwtUnsupportedHeaderAlg", TokenVerificationSdJwtMissingIss: "TokenVerificationSdJwtMissingIss", TokenVerificationSdJwtMissingIat: "TokenVerificationSdJwtMissingIat", TokenVerificationSdJwtMissingCnf: "TokenVerificationSdJwtMissingCnf", TokenVerificationSdJwtMissingEmail: "TokenVerificationSdJwtMissingEmail", TokenVerificationSdJwtInvalidIssuedAt: "TokenVerificationSdJwtInvalidIssuedAt", TokenVerificationSdJwtInvalidIssuer: "TokenVerificationSdJwtInvalidIssuer", TokenVerificationSdJwtJwksMissingKeys: "TokenVerificationSdJwtJwksMissingKeys", TokenVerificationSdJwtSignatureFailed: "TokenVerificationSdJwtSignatureFailed", TokenVerificationSdJwtInvalidEmailVerified: "TokenVerificationSdJwtInvalidEmailVerified", TokenVerificationSdJwtInvalidEmail: "TokenVerificationSdJwtInvalidEmail", TokenVerificationSdJwtInvalidHolderKey: "TokenVerificationSdJwtInvalidHolderKey", TokenVerificationKbInvalidTyp: "TokenVerificationKbInvalidTyp", TokenVerificationKbMissingAud: "TokenVerificationKbMissingAud", TokenVerificationKbMissingNonce: "TokenVerificationKbMissingNonce", TokenVerificationKbMissingIat: "TokenVerificationKbMissingIat", TokenVerificationKbMissingSdHash: "TokenVerificationKbMissingSdHash", TokenVerificationKbInvalidIssuedAt: "TokenVerificationKbInvalidIssuedAt", TokenVerificationKbInvalidAudience: "TokenVerificationKbInvalidAudience", TokenVerificationKbInvalidNonce: "TokenVerificationKbInvalidNonce", TokenVerificationKbInvalidSdHash: "TokenVerificationKbInvalidSdHash", TokenVerificationKbMissingCnf: "TokenVerificationKbMissingCnf", TokenVerificationKbSignatureFailed: "TokenVerificationKbSignatureFailed"});
94
+ inspectorBackend.registerEnum("Audits.EmailVerificationRequestIssueReason", {InvalidEmail: "InvalidEmail", DnsFetchFailed: "DnsFetchFailed", DnsInvalidRecord: "DnsInvalidRecord", WellKnownHttpNotFound: "WellKnownHttpNotFound", WellKnownNoResponse: "WellKnownNoResponse", WellKnownInvalidResponse: "WellKnownInvalidResponse", WellKnownListEmpty: "WellKnownListEmpty", WellKnownInvalidContentType: "WellKnownInvalidContentType", WellKnownMissingIssuanceEndpoint: "WellKnownMissingIssuanceEndpoint", WellKnownIssuanceEndpointCrossOrigin: "WellKnownIssuanceEndpointCrossOrigin", WellKnownUnsupportedSigningAlgorithm: "WellKnownUnsupportedSigningAlgorithm", TokenHttpNotFound: "TokenHttpNotFound", TokenNoResponse: "TokenNoResponse", TokenInvalidResponse: "TokenInvalidResponse", TokenInvalidContentType: "TokenInvalidContentType", TokenMalformedSdJwt: "TokenMalformedSdJwt", TokenInvalidSdJwt: "TokenInvalidSdJwt", KeyBindingSigningFailed: "KeyBindingSigningFailed", RpOriginIsOpaque: "RpOriginIsOpaque", WellKnownMissingAccountsEndpoint: "WellKnownMissingAccountsEndpoint", UserLoggedOut: "UserLoggedOut", WellKnownAccountsEndpointCrossOrigin: "WellKnownAccountsEndpointCrossOrigin", AccountsHttpNotFound: "AccountsHttpNotFound", AccountsNoResponse: "AccountsNoResponse", AccountsInvalidResponse: "AccountsInvalidResponse", AccountsInvalidContentType: "AccountsInvalidContentType", AccountsEmptyList: "AccountsEmptyList", EmailVerificationWellKnownHttpNotFound: "EmailVerificationWellKnownHttpNotFound", EmailVerificationWellKnownNoResponse: "EmailVerificationWellKnownNoResponse", EmailVerificationWellKnownInvalidResponse: "EmailVerificationWellKnownInvalidResponse", EmailVerificationWellKnownInvalidContentType: "EmailVerificationWellKnownInvalidContentType", JwksHttpNotFound: "JwksHttpNotFound", JwksInvalidResponse: "JwksInvalidResponse", TokenVerificationSdJwtUnsupportedHeaderAlg: "TokenVerificationSdJwtUnsupportedHeaderAlg", TokenVerificationSdJwtInvalidTyp: "TokenVerificationSdJwtInvalidTyp", TokenVerificationSdJwtMissingIss: "TokenVerificationSdJwtMissingIss", TokenVerificationSdJwtMissingIat: "TokenVerificationSdJwtMissingIat", TokenVerificationSdJwtMissingCnf: "TokenVerificationSdJwtMissingCnf", TokenVerificationSdJwtMissingEmail: "TokenVerificationSdJwtMissingEmail", TokenVerificationSdJwtInvalidIssuedAt: "TokenVerificationSdJwtInvalidIssuedAt", TokenVerificationSdJwtInvalidIssuer: "TokenVerificationSdJwtInvalidIssuer", TokenVerificationSdJwtJwksMissingKeys: "TokenVerificationSdJwtJwksMissingKeys", TokenVerificationSdJwtSignatureFailed: "TokenVerificationSdJwtSignatureFailed", TokenVerificationSdJwtInvalidEmailVerified: "TokenVerificationSdJwtInvalidEmailVerified", TokenVerificationSdJwtInvalidEmail: "TokenVerificationSdJwtInvalidEmail", TokenVerificationSdJwtInvalidHolderKey: "TokenVerificationSdJwtInvalidHolderKey", TokenVerificationKbInvalidTyp: "TokenVerificationKbInvalidTyp", TokenVerificationKbMissingAud: "TokenVerificationKbMissingAud", TokenVerificationKbMissingNonce: "TokenVerificationKbMissingNonce", TokenVerificationKbMissingIat: "TokenVerificationKbMissingIat", TokenVerificationKbMissingSdHash: "TokenVerificationKbMissingSdHash", TokenVerificationKbInvalidIssuedAt: "TokenVerificationKbInvalidIssuedAt", TokenVerificationKbInvalidAudience: "TokenVerificationKbInvalidAudience", TokenVerificationKbInvalidNonce: "TokenVerificationKbInvalidNonce", TokenVerificationKbInvalidSdHash: "TokenVerificationKbInvalidSdHash", TokenVerificationKbMissingCnf: "TokenVerificationKbMissingCnf", TokenVerificationKbSignatureFailed: "TokenVerificationKbSignatureFailed"});
95
95
  inspectorBackend.registerEnum("Audits.PartitioningBlobURLInfo", {BlockedCrossPartitionFetching: "BlockedCrossPartitionFetching", EnforceNoopenerForNavigation: "EnforceNoopenerForNavigation"});
96
96
  inspectorBackend.registerEnum("Audits.ElementAccessibilityIssueReason", {DisallowedSelectChild: "DisallowedSelectChild", DisallowedOptGroupChild: "DisallowedOptGroupChild", NonPhrasingContentOptionChild: "NonPhrasingContentOptionChild", InteractiveContentOptionChild: "InteractiveContentOptionChild", InteractiveContentLegendChild: "InteractiveContentLegendChild", InteractiveContentSummaryDescendant: "InteractiveContentSummaryDescendant"});
97
97
  inspectorBackend.registerEnum("Audits.StyleSheetLoadingIssueReason", {LateImportRule: "LateImportRule", RequestFailed: "RequestFailed"});
@@ -965,6 +965,7 @@ inspectorBackend.registerType("Network.LoadNetworkResourceOptions", [{"name": "d
965
965
  inspectorBackend.registerEnum("Overlay.LineStylePattern", {Dashed: "dashed", Dotted: "dotted"});
966
966
  inspectorBackend.registerEnum("Overlay.ContrastAlgorithm", {Aa: "aa", Aaa: "aaa", Apca: "apca"});
967
967
  inspectorBackend.registerEnum("Overlay.ColorFormat", {Rgb: "rgb", Hsl: "hsl", Hwb: "hwb", Hex: "hex"});
968
+ inspectorBackend.registerEnum("Overlay.DisplayCutoutShape", {Pill: "pill", Notch: "notch", Circle: "circle", Rectangle: "rectangle"});
968
969
  inspectorBackend.registerEnum("Overlay.InspectMode", {SearchForNode: "searchForNode", SearchForUAShadowDOM: "searchForUAShadowDOM", CaptureAreaScreenshot: "captureAreaScreenshot", None: "none"});
969
970
  inspectorBackend.registerEvent("Overlay.inspectNodeRequested", ["backendNodeId"]);
970
971
  inspectorBackend.registerEvent("Overlay.nodeHighlightRequested", ["nodeId"]);
@@ -1000,6 +1001,7 @@ inspectorBackend.registerCommand("Overlay.setShowHitTestBorders", [{"name": "sho
1000
1001
  inspectorBackend.registerCommand("Overlay.setShowWebVitals", [{"name": "show", "type": "boolean", "optional": false, "description": "", "typeRef": null}], [], "Deprecated, no longer has any effect.");
1001
1002
  inspectorBackend.registerCommand("Overlay.setShowViewportSizeOnResize", [{"name": "show", "type": "boolean", "optional": false, "description": "Whether to paint size or not.", "typeRef": null}], [], "Paints viewport size upon main frame resize.");
1002
1003
  inspectorBackend.registerCommand("Overlay.setShowHinge", [{"name": "hingeConfig", "type": "object", "optional": true, "description": "hinge data, null means hideHinge", "typeRef": "Overlay.HingeConfig"}], [], "Add a dual screen device hinge");
1004
+ inspectorBackend.registerCommand("Overlay.setShowDisplayCutout", [{"name": "displayCutoutConfig", "type": "object", "optional": true, "description": "display cutout data, null means hide display cutout", "typeRef": "Overlay.DisplayCutoutConfig"}], [], "Add a display cutout overlay.");
1003
1005
  inspectorBackend.registerCommand("Overlay.setShowIsolatedElements", [{"name": "isolatedElementHighlightConfigs", "type": "array", "optional": false, "description": "An array of node identifiers and descriptors for the highlight appearance.", "typeRef": "Overlay.IsolatedElementHighlightConfig"}], [], "Show elements in isolation mode with overlays.");
1004
1006
  inspectorBackend.registerCommand("Overlay.setShowWindowControlsOverlay", [{"name": "windowControlsOverlayConfig", "type": "object", "optional": true, "description": "Window Controls Overlay data, null means hide Window Controls Overlay", "typeRef": "Overlay.WindowControlsOverlayConfig"}], [], "Show Window Controls Overlay for PWA");
1005
1007
  inspectorBackend.registerType("Overlay.SourceOrderConfig", [{"name": "parentOutlineColor", "type": "object", "optional": false, "description": "the color to outline the given element in.", "typeRef": "DOM.RGBA"}, {"name": "childOutlineColor", "type": "object", "optional": false, "description": "the color to outline the child elements in.", "typeRef": "DOM.RGBA"}]);
@@ -1014,6 +1016,7 @@ inspectorBackend.registerType("Overlay.FlexNodeHighlightConfig", [{"name": "flex
1014
1016
  inspectorBackend.registerType("Overlay.ScrollSnapContainerHighlightConfig", [{"name": "snapportBorder", "type": "object", "optional": true, "description": "The style of the snapport border (default: transparent)", "typeRef": "Overlay.LineStyle"}, {"name": "snapAreaBorder", "type": "object", "optional": true, "description": "The style of the snap area border (default: transparent)", "typeRef": "Overlay.LineStyle"}, {"name": "scrollMarginColor", "type": "object", "optional": true, "description": "The margin highlight fill color (default: transparent).", "typeRef": "DOM.RGBA"}, {"name": "scrollPaddingColor", "type": "object", "optional": true, "description": "The padding highlight fill color (default: transparent).", "typeRef": "DOM.RGBA"}]);
1015
1017
  inspectorBackend.registerType("Overlay.ScrollSnapHighlightConfig", [{"name": "scrollSnapContainerHighlightConfig", "type": "object", "optional": false, "description": "A descriptor for the highlight appearance of scroll snap containers.", "typeRef": "Overlay.ScrollSnapContainerHighlightConfig"}, {"name": "nodeId", "type": "number", "optional": false, "description": "Identifier of the node to highlight.", "typeRef": "DOM.NodeId"}]);
1016
1018
  inspectorBackend.registerType("Overlay.HingeConfig", [{"name": "rect", "type": "object", "optional": false, "description": "A rectangle represent hinge", "typeRef": "DOM.Rect"}, {"name": "contentColor", "type": "object", "optional": true, "description": "The content box highlight fill color (default: a dark color).", "typeRef": "DOM.RGBA"}, {"name": "outlineColor", "type": "object", "optional": true, "description": "The content box highlight outline color (default: transparent).", "typeRef": "DOM.RGBA"}]);
1019
+ inspectorBackend.registerType("Overlay.DisplayCutoutConfig", [{"name": "rect", "type": "object", "optional": false, "description": "A rectangle representing the cutout bounds.", "typeRef": "DOM.Rect"}, {"name": "shape", "type": "string", "optional": false, "description": "Shape used to draw the cutout.", "typeRef": "Overlay.DisplayCutoutShape"}, {"name": "borderRadius", "type": "number", "optional": true, "description": "Border radius for rounded cutout shapes.", "typeRef": null}, {"name": "upperRadius", "type": "number", "optional": true, "description": "Upper shoulder radius for notch cutout shapes.", "typeRef": null}, {"name": "lowerRadius", "type": "number", "optional": true, "description": "Lower transition radius for notch cutout shapes.", "typeRef": null}, {"name": "cx", "type": "number", "optional": true, "description": "Center x coordinate for circle cutout shapes.", "typeRef": null}, {"name": "cy", "type": "number", "optional": true, "description": "Center y coordinate for circle cutout shapes.", "typeRef": null}, {"name": "radius", "type": "number", "optional": true, "description": "Radius for circle cutout shapes.", "typeRef": null}, {"name": "contentColor", "type": "object", "optional": true, "description": "The cutout fill color (default: black).", "typeRef": "DOM.RGBA"}]);
1017
1020
  inspectorBackend.registerType("Overlay.WindowControlsOverlayConfig", [{"name": "showCSS", "type": "boolean", "optional": false, "description": "Whether the title bar CSS should be shown when emulating the Window Controls Overlay.", "typeRef": null}, {"name": "selectedPlatform", "type": "string", "optional": false, "description": "Selected platforms to show the overlay.", "typeRef": null}, {"name": "themeColor", "type": "string", "optional": false, "description": "The theme color defined in app manifest.", "typeRef": null}]);
1018
1021
  inspectorBackend.registerType("Overlay.ContainerQueryHighlightConfig", [{"name": "containerQueryContainerHighlightConfig", "type": "object", "optional": false, "description": "A descriptor for the highlight appearance of container query containers.", "typeRef": "Overlay.ContainerQueryContainerHighlightConfig"}, {"name": "nodeId", "type": "number", "optional": false, "description": "Identifier of the container node to highlight.", "typeRef": "DOM.NodeId"}]);
1019
1022
  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"}]);