chrome-devtools-frontend 1.0.1615539 → 1.0.1616061

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 (347) hide show
  1. package/front_end/generated/InspectorBackendCommands.ts +2 -1
  2. package/front_end/generated/SupportedCSSProperties.js +4 -0
  3. package/front_end/generated/protocol-mapping.d.ts +7 -0
  4. package/front_end/generated/protocol-proxy-api.d.ts +5 -0
  5. package/front_end/generated/protocol.ts +11 -0
  6. package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -4
  7. package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +3 -0
  8. package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +85 -47
  9. package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +32 -0
  10. package/front_end/models/bindings/SymbolizedError.ts +20 -0
  11. package/front_end/models/bindings/bindings.ts +2 -0
  12. package/front_end/panels/ai_assistance/components/ChatMessage.ts +28 -23
  13. package/front_end/panels/ai_assistance/components/chatMessage.css +1 -1
  14. package/front_end/panels/elements/PropertiesWidget.ts +8 -8
  15. package/front_end/third_party/chromium/README.chromium +1 -1
  16. package/front_end/third_party/puppeteer/README.chromium +2 -2
  17. package/front_end/third_party/puppeteer/package/README.md +2 -0
  18. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +12 -0
  19. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
  20. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
  21. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.d.ts +74 -0
  22. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.d.ts.map +1 -0
  23. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.js +68 -0
  24. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.js.map +1 -0
  25. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +8 -0
  26. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  27. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.d.ts +22 -0
  28. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.d.ts.map +1 -0
  29. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.js +8 -0
  30. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.js.map +1 -0
  31. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +35 -0
  32. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  33. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  34. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.d.ts +106 -4
  35. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.d.ts.map +1 -1
  36. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.js +29 -1
  37. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.js.map +1 -1
  38. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.d.ts +24 -2
  39. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.d.ts.map +1 -1
  40. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.js +15 -1
  41. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.js.map +1 -1
  42. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +2 -0
  43. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  44. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js +1 -0
  45. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  46. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -0
  47. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
  48. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +8 -0
  49. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
  50. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
  51. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js +2 -1
  52. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js.map +1 -1
  53. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -0
  54. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  55. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +6 -0
  56. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
  57. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +2 -0
  58. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
  59. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +9 -47
  60. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
  61. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
  62. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +0 -1
  63. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
  64. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +8 -1
  65. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  66. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +14 -1
  67. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  68. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts +4 -0
  69. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts.map +1 -1
  70. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +21 -0
  71. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
  72. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.d.ts.map +1 -1
  73. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.js +2 -2
  74. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.js.map +1 -1
  75. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -0
  76. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  77. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js +18 -0
  78. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
  79. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts +28 -0
  80. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
  81. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +67 -0
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +9 -2
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +56 -5
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.d.ts +17 -0
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.d.ts.map +1 -0
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.js +27 -0
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.js.map +1 -0
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.d.ts +16 -0
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.d.ts.map +1 -0
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.js +79 -0
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.js.map +1 -0
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +10 -0
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +26 -15
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +38 -0
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts +9 -3
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js +31 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +6 -0
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +49 -35
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.d.ts +3 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.d.ts.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.js +16 -7
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.js.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts +2 -0
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js +9 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts +218 -0
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts.map +1 -0
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js +288 -0
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js.map +1 -0
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts +4 -7
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +28 -3
  129. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
  130. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
  131. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
  132. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
  133. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
  134. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +9 -0
  135. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +36 -0
  137. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +7 -0
  139. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts +0 -11
  141. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts.map +1 -1
  142. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +3 -3
  143. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts +2 -0
  144. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +5 -2
  146. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
  147. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +0 -1
  149. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  151. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  152. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  153. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  154. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.js +1 -1
  155. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  157. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +7851 -6616
  159. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +1017 -305
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +12 -0
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.d.ts +74 -0
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.d.ts.map +1 -0
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.js +64 -0
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.js.map +1 -0
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +8 -0
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +1 -1
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.d.ts +22 -0
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.d.ts.map +1 -0
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.js +7 -0
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.js.map +1 -0
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +35 -0
  176. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  177. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  178. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.d.ts +106 -4
  179. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.d.ts.map +1 -1
  180. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.js +29 -1
  181. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.js.map +1 -1
  182. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.d.ts +24 -2
  183. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.d.ts.map +1 -1
  184. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.js +14 -0
  185. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.js.map +1 -1
  186. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +2 -0
  187. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  188. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js +1 -0
  189. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  190. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -0
  191. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
  192. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +8 -0
  193. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
  194. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
  195. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js +2 -1
  196. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js.map +1 -1
  197. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -0
  198. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
  199. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +6 -0
  200. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
  201. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +2 -0
  202. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
  203. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +8 -46
  204. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
  205. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
  206. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +0 -1
  207. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
  208. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +8 -1
  209. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  210. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +14 -1
  211. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  212. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts +4 -0
  213. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts.map +1 -1
  214. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +22 -1
  215. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
  216. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.d.ts.map +1 -1
  217. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.js +2 -2
  218. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.js.map +1 -1
  219. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts +3 -1
  220. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
  221. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js +18 -0
  222. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
  223. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts +28 -0
  224. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
  225. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +62 -0
  226. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
  227. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +9 -2
  228. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
  229. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +56 -5
  230. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
  231. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
  232. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
  233. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
  234. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.d.ts +17 -0
  235. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.d.ts.map +1 -0
  236. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.js +23 -0
  237. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.js.map +1 -0
  238. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.d.ts +16 -0
  239. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.d.ts.map +1 -0
  240. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.js +75 -0
  241. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.js.map +1 -0
  242. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +10 -0
  243. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
  244. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +26 -15
  245. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
  246. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +1 -1
  247. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
  248. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +38 -0
  249. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
  250. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts +9 -3
  251. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
  252. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js +31 -1
  253. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
  254. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +6 -0
  255. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  256. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +49 -35
  257. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  258. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.d.ts +3 -1
  259. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.d.ts.map +1 -1
  260. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.js +16 -7
  261. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.js.map +1 -1
  262. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts +2 -0
  263. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts.map +1 -1
  264. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js +9 -1
  265. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js.map +1 -1
  266. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts +218 -0
  267. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts.map +1 -0
  268. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js +282 -0
  269. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js.map +1 -0
  270. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts +4 -7
  271. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
  272. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +29 -4
  273. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
  274. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
  275. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
  276. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
  277. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
  278. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +9 -0
  279. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
  280. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +34 -0
  281. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
  282. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +7 -0
  283. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
  284. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts +0 -11
  285. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts.map +1 -1
  286. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/injected.d.ts +2 -2
  287. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +2 -0
  288. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
  289. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +5 -2
  290. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
  291. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
  292. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +0 -1
  293. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
  294. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts +1 -1
  295. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts.map +1 -1
  296. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  297. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  298. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  299. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.js +1 -1
  300. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.js.map +1 -1
  301. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  302. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  303. package/front_end/third_party/puppeteer/package/lib/types.d.ts +7851 -6616
  304. package/front_end/third_party/puppeteer/package/package.json +5 -6
  305. package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -0
  306. package/front_end/third_party/puppeteer/package/src/api/Extension.ts +98 -0
  307. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +9 -0
  308. package/front_end/third_party/puppeteer/package/src/api/Issue.ts +24 -0
  309. package/front_end/third_party/puppeteer/package/src/api/Page.ts +38 -0
  310. package/front_end/third_party/puppeteer/package/src/api/Realm.ts +111 -12
  311. package/front_end/third_party/puppeteer/package/src/api/WebWorker.ts +26 -4
  312. package/front_end/third_party/puppeteer/package/src/api/api.ts +2 -0
  313. package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +12 -0
  314. package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +2 -0
  315. package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +7 -0
  316. package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +13 -67
  317. package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +0 -1
  318. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +21 -2
  319. package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +39 -1
  320. package/front_end/third_party/puppeteer/package/src/bidi/Target.ts +2 -5
  321. package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +23 -0
  322. package/front_end/third_party/puppeteer/package/src/bidi/util.ts +94 -0
  323. package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +75 -2
  324. package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
  325. package/front_end/third_party/puppeteer/package/src/cdp/CdpIssue.ts +30 -0
  326. package/front_end/third_party/puppeteer/package/src/cdp/Extension.ts +101 -0
  327. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +32 -22
  328. package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +44 -3
  329. package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +40 -2
  330. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +61 -47
  331. package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +17 -7
  332. package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +14 -1
  333. package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +441 -0
  334. package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +38 -12
  335. package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
  336. package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +52 -0
  337. package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +7 -0
  338. package/front_end/third_party/puppeteer/package/src/common/types.ts +0 -14
  339. package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +7 -0
  340. package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +0 -1
  341. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  342. package/front_end/third_party/puppeteer/package/src/util/Mutex.ts +1 -1
  343. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  344. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +5 -0
  345. package/front_end/ui/legacy/Treeoutline.ts +13 -0
  346. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  347. package/package.json +1 -1
@@ -29,12 +29,8 @@ import {
29
29
  type WaitForOptions,
30
30
  } from '../api/Frame.js';
31
31
  import {PageEvent, type WaitTimeoutOptions} from '../api/Page.js';
32
+ import type {Realm} from '../api/Realm.js';
32
33
  import {Accessibility} from '../cdp/Accessibility.js';
33
- import type {ConsoleMessageType} from '../common/ConsoleMessage.js';
34
- import {
35
- ConsoleMessage,
36
- type ConsoleMessageLocation,
37
- } from '../common/ConsoleMessage.js';
38
34
  import {TargetCloseError, UnsupportedOperation} from '../common/Errors.js';
39
35
  import type {TimeoutSettings} from '../common/TimeoutSettings.js';
40
36
  import type {Awaitable, HandleFor} from '../common/types.js';
@@ -50,34 +46,22 @@ import {BidiCdpSession} from './CDPSession.js';
50
46
  import type {BrowsingContext} from './core/BrowsingContext.js';
51
47
  import type {Navigation} from './core/Navigation.js';
52
48
  import type {Request} from './core/Request.js';
53
- import {BidiDeserializer} from './Deserializer.js';
54
49
  import {BidiDialog} from './Dialog.js';
55
50
  import {BidiElementHandle} from './ElementHandle.js';
56
51
  import {ExposableFunction} from './ExposedFunction.js';
57
52
  import {BidiHTTPRequest, requests} from './HTTPRequest.js';
58
53
  import type {BidiHTTPResponse} from './HTTPResponse.js';
59
- import {BidiJSHandle} from './JSHandle.js';
60
54
  import type {BidiPage} from './Page.js';
61
55
  import type {BidiRealm} from './Realm.js';
62
56
  import {BidiFrameRealm} from './Realm.js';
63
- import {rewriteNavigationError} from './util.js';
57
+ import {
58
+ getConsoleMessage,
59
+ isConsoleLogEntry,
60
+ isJavaScriptLogEntry,
61
+ rewriteNavigationError,
62
+ } from './util.js';
64
63
  import {BidiWebWorker} from './WebWorker.js';
65
64
 
66
- // TODO: Remove this and map CDP the correct method.
67
- // Requires breaking change.
68
- function convertConsoleMessageLevel(method: string): ConsoleMessageType {
69
- switch (method) {
70
- case 'group':
71
- return 'startGroup';
72
- case 'groupCollapsed':
73
- return 'startGroupCollapsed';
74
- case 'groupEnd':
75
- return 'endGroup';
76
- default:
77
- return method as ConsoleMessageType;
78
- }
79
- }
80
-
81
65
  export class BidiFrame extends Frame {
82
66
  static from(
83
67
  parent: BidiPage | BidiFrame,
@@ -178,30 +162,16 @@ export class BidiFrame extends Frame {
178
162
  return;
179
163
  }
180
164
  if (isConsoleLogEntry(entry)) {
165
+ if (!this.page().listenerCount(PageEvent.Console)) {
166
+ return;
167
+ }
181
168
  const args = entry.args.map(arg => {
182
169
  return this.mainRealm().createHandle(arg);
183
170
  });
184
171
 
185
- const text = args
186
- .reduce((value, arg) => {
187
- const parsedValue =
188
- arg instanceof BidiJSHandle && arg.isPrimitiveValue
189
- ? BidiDeserializer.deserialize(arg.remoteValue())
190
- : arg.toString();
191
- return `${value} ${parsedValue}`;
192
- }, '')
193
- .slice(1);
194
-
195
172
  this.page().trustedEmitter.emit(
196
173
  PageEvent.Console,
197
- new ConsoleMessage(
198
- convertConsoleMessageLevel(entry.method),
199
- text,
200
- args,
201
- getStackTraceLocations(entry.stackTrace),
202
- this,
203
- undefined,
204
- ),
174
+ getConsoleMessage(entry, args, this),
205
175
  );
206
176
  } else if (isJavaScriptLogEntry(entry)) {
207
177
  const error = new Error(entry.text ?? '');
@@ -638,32 +608,8 @@ export class BidiFrame extends Frame {
638
608
  [element.remoteValue() as Bidi.Script.SharedReference],
639
609
  );
640
610
  }
641
- }
642
-
643
- function isConsoleLogEntry(
644
- event: Bidi.Log.Entry,
645
- ): event is Bidi.Log.ConsoleLogEntry {
646
- return event.type === 'console';
647
- }
648
611
 
649
- function isJavaScriptLogEntry(
650
- event: Bidi.Log.Entry,
651
- ): event is Bidi.Log.JavascriptLogEntry {
652
- return event.type === 'javascript';
653
- }
654
-
655
- function getStackTraceLocations(
656
- stackTrace?: Bidi.Script.StackTrace,
657
- ): ConsoleMessageLocation[] {
658
- const stackTraceLocations: ConsoleMessageLocation[] = [];
659
- if (stackTrace) {
660
- for (const callFrame of stackTrace.callFrames) {
661
- stackTraceLocations.push({
662
- url: callFrame.url,
663
- lineNumber: callFrame.lineNumber,
664
- columnNumber: callFrame.columnNumber,
665
- });
666
- }
612
+ override extensionRealms(): Realm[] {
613
+ throw new UnsupportedOperation();
667
614
  }
668
- return stackTraceLocations;
669
615
  }
@@ -732,7 +732,6 @@ export class BidiTouchscreen extends Touchscreen {
732
732
  width: 0.5 * 2, // 2 times default touch radius.
733
733
  height: 0.5 * 2, // 2 times default touch radius.
734
734
  pressure: 0.5,
735
- altitudeAngle: Math.PI / 2,
736
735
  };
737
736
  const touch = new BidiTouchHandle(this.#page, this, id, x, y, properties);
738
737
  await touch.start(options);
@@ -13,6 +13,7 @@ import type {WindowId} from '../api/Browser.js';
13
13
  import type {CDPSession} from '../api/CDPSession.js';
14
14
  import type {DeviceRequestPrompt} from '../api/DeviceRequestPrompt.js';
15
15
  import type {BoundingBox} from '../api/ElementHandle.js';
16
+ import type {Extension} from '../api/Extension.js';
16
17
  import type {WaitForOptions} from '../api/Frame.js';
17
18
  import type {HTTPResponse} from '../api/HTTPResponse.js';
18
19
  import type {
@@ -30,6 +31,7 @@ import {
30
31
  type NewDocumentScriptEvaluation,
31
32
  type ScreenshotOptions,
32
33
  } from '../api/Page.js';
34
+ import type {Target} from '../api/Target.js';
33
35
  import {Coverage} from '../cdp/Coverage.js';
34
36
  import {EmulationManager} from '../cdp/EmulationManager.js';
35
37
  import type {
@@ -37,6 +39,7 @@ import type {
37
39
  NetworkConditions,
38
40
  } from '../cdp/NetworkManager.js';
39
41
  import {Tracing} from '../cdp/Tracing.js';
42
+ import type {WebMCP} from '../cdp/WebMCP.js';
40
43
  import type {
41
44
  CookiePartitionKey,
42
45
  Cookie,
@@ -51,6 +54,7 @@ import type {PDFOptions} from '../common/PDFOptions.js';
51
54
  import type {Awaitable} from '../common/types.js';
52
55
  import {evaluationString, parsePDFOptions, timeout} from '../common/util.js';
53
56
  import type {Viewport} from '../common/Viewport.js';
57
+ import type {Realm} from '../puppeteer-core.js';
54
58
  import {assert} from '../util/assert.js';
55
59
  import {bubble} from '../util/decorators.js';
56
60
  import {Deferred} from '../util/Deferred.js';
@@ -95,6 +99,9 @@ export class BidiPage extends Page {
95
99
  readonly mouse: BidiMouse;
96
100
  readonly touchscreen: BidiTouchscreen;
97
101
  readonly tracing: Tracing;
102
+ override get webmcp(): WebMCP {
103
+ throw new UnsupportedOperation();
104
+ }
98
105
  readonly coverage: Coverage;
99
106
  readonly #cdpEmulationManager: EmulationManager;
100
107
 
@@ -217,6 +224,10 @@ export class BidiPage extends Page {
217
224
  return this.#frame;
218
225
  }
219
226
 
227
+ override async triggerExtensionAction(_extension: Extension): Promise<void> {
228
+ throw new UnsupportedOperation();
229
+ }
230
+
220
231
  override async emulateFocusedPage(enabled: boolean): Promise<void> {
221
232
  return await this.#cdpEmulationManager.emulateFocus(enabled);
222
233
  }
@@ -661,8 +672,12 @@ export class BidiPage extends Page {
661
672
  throw new UnsupportedOperation();
662
673
  }
663
674
 
664
- override target(): never {
665
- throw new UnsupportedOperation();
675
+ override target(): Target {
676
+ const target = this.browserContext().getTargetForPage(this);
677
+ if (!target) {
678
+ throw new Error('Target not found for page');
679
+ }
680
+ return target;
666
681
  }
667
682
 
668
683
  override async waitForFileChooser(
@@ -1005,6 +1020,10 @@ export class BidiPage extends Page {
1005
1020
  override get bluetooth(): BluetoothEmulation {
1006
1021
  return this.mainFrame().browsingContext.bluetooth;
1007
1022
  }
1023
+
1024
+ override extensionRealms(): Realm[] {
1025
+ throw new UnsupportedOperation();
1026
+ }
1008
1027
  }
1009
1028
 
1010
1029
  // eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
@@ -5,8 +5,10 @@
5
5
  */
6
6
  import * as Bidi from 'webdriver-bidi-protocol';
7
7
 
8
+ import type {Extension} from '../api/Extension.js';
8
9
  import type {JSHandle} from '../api/JSHandle.js';
9
10
  import {Realm} from '../api/Realm.js';
11
+ import {WebWorkerEvent} from '../api/WebWorker.js';
10
12
  import {ARIAQueryHandler} from '../common/AriaQueryHandler.js';
11
13
  import {LazyArg} from '../common/LazyArg.js';
12
14
  import {scriptInjector} from '../common/ScriptInjector.js';
@@ -20,6 +22,7 @@ import {
20
22
  PuppeteerURL,
21
23
  SOURCE_URL_REGEX,
22
24
  } from '../common/util.js';
25
+ import {UnsupportedOperation} from '../index-browser.js';
23
26
  import type {PuppeteerInjectedUtil} from '../injected/injected.js';
24
27
  import {AsyncIterableUtil} from '../util/AsyncIterableUtil.js';
25
28
  import {stringifyFunction} from '../util/Function.js';
@@ -36,7 +39,12 @@ import {ExposableFunction} from './ExposedFunction.js';
36
39
  import type {BidiFrame} from './Frame.js';
37
40
  import {BidiJSHandle} from './JSHandle.js';
38
41
  import {BidiSerializer} from './Serializer.js';
39
- import {createEvaluationError, rewriteEvaluationError} from './util.js';
42
+ import {
43
+ createEvaluationError,
44
+ getConsoleMessage,
45
+ isConsoleLogEntry,
46
+ rewriteEvaluationError,
47
+ } from './util.js';
40
48
  import type {BidiWebWorker} from './WebWorker.js';
41
49
 
42
50
  /**
@@ -281,6 +289,14 @@ export abstract class BidiRealm extends Realm {
281
289
  await handle.dispose();
282
290
  return await transferredHandle;
283
291
  }
292
+
293
+ extension(): Promise<Extension | null> {
294
+ throw new UnsupportedOperation();
295
+ }
296
+
297
+ override get origin(): string {
298
+ throw new UnsupportedOperation();
299
+ }
284
300
  }
285
301
 
286
302
  /**
@@ -400,6 +416,28 @@ export class BidiWorkerRealm extends BidiRealm {
400
416
  this.#worker = frame;
401
417
  }
402
418
 
419
+ override initialize(): void {
420
+ super.initialize();
421
+ this.realm.on('log', entry => {
422
+ if (
423
+ isConsoleLogEntry(entry) &&
424
+ this.#worker.listenerCount(WebWorkerEvent.Console)
425
+ ) {
426
+ const args = entry.args.map(arg => {
427
+ return this.createHandle(arg);
428
+ });
429
+
430
+ const message = getConsoleMessage(
431
+ entry,
432
+ args,
433
+ undefined,
434
+ this.realm.id,
435
+ );
436
+ this.#worker.emit(WebWorkerEvent.Console, message);
437
+ }
438
+ });
439
+ }
440
+
403
441
  override get environment(): BidiWebWorker {
404
442
  return this.#worker;
405
443
  }
@@ -63,10 +63,7 @@ export class BidiPageTarget extends Target {
63
63
  return this.#page;
64
64
  }
65
65
  override async asPage(): Promise<BidiPage> {
66
- return BidiPage.from(
67
- this.browserContext(),
68
- this.#page.mainFrame().browsingContext,
69
- );
66
+ return await this.page();
70
67
  }
71
68
  override url(): string {
72
69
  return this.#page.url();
@@ -110,7 +107,7 @@ export class BidiFrameTarget extends Target {
110
107
  return this.#page;
111
108
  }
112
109
  override async asPage(): Promise<BidiPage> {
113
- return BidiPage.from(this.browserContext(), this.#frame.browsingContext);
110
+ return await this.page();
114
111
  }
115
112
  override url(): string {
116
113
  return this.#frame.url();
@@ -43,6 +43,8 @@ export abstract class Realm extends EventEmitter<{
43
43
  worker: DedicatedWorkerRealm;
44
44
  /** Emitted when a shared worker is created in the realm. */
45
45
  sharedworker: SharedWorkerRealm;
46
+ /** Emitted whenever a log entry is added to the realm. */
47
+ log: Bidi.Log.Entry;
46
48
  }> {
47
49
  #reason?: string;
48
50
  protected readonly disposables = new DisposableStack();
@@ -207,6 +209,13 @@ export class WindowRealm extends Realm {
207
209
 
208
210
  this.emit('worker', realm);
209
211
  });
212
+
213
+ sessionEmitter.on('log.entryAdded', entry => {
214
+ if (entry.source.realm !== this.id) {
215
+ return;
216
+ }
217
+ this.emit('log', entry);
218
+ });
210
219
  }
211
220
 
212
221
  override get session(): Session {
@@ -278,6 +287,13 @@ export class DedicatedWorkerRealm extends Realm {
278
287
 
279
288
  this.emit('worker', realm);
280
289
  });
290
+
291
+ sessionEmitter.on('log.entryAdded', entry => {
292
+ if (entry.source.realm !== this.id) {
293
+ return;
294
+ }
295
+ this.emit('log', entry);
296
+ });
281
297
  }
282
298
 
283
299
  override get session(): Session {
@@ -330,6 +346,13 @@ export class SharedWorkerRealm extends Realm {
330
346
 
331
347
  this.emit('worker', realm);
332
348
  });
349
+
350
+ sessionEmitter.on('log.entryAdded', entry => {
351
+ if (entry.source.realm !== this.id) {
352
+ return;
353
+ }
354
+ this.emit('log', entry);
355
+ });
333
356
  }
334
357
 
335
358
  override get session(): Session {
@@ -6,10 +6,104 @@
6
6
 
7
7
  import type * as Bidi from 'webdriver-bidi-protocol';
8
8
 
9
+ import type {Frame} from '../api/Frame.js';
10
+ import {ConsoleMessage} from '../common/ConsoleMessage.js';
11
+ import type {
12
+ ConsoleMessageLocation,
13
+ ConsoleMessageType,
14
+ } from '../common/ConsoleMessage.js';
9
15
  import {ProtocolError, TimeoutError} from '../common/Errors.js';
10
16
  import {PuppeteerURL} from '../common/util.js';
11
17
 
18
+ import type {BidiElementHandle} from './bidi.js';
12
19
  import {BidiDeserializer} from './Deserializer.js';
20
+ import {BidiJSHandle} from './JSHandle.js';
21
+
22
+ /**
23
+ * @internal
24
+ *
25
+ * TODO: Remove this and map CDP the correct method.
26
+ * Requires breaking change.
27
+ */
28
+ export function convertConsoleMessageLevel(method: string): ConsoleMessageType {
29
+ switch (method) {
30
+ case 'group':
31
+ return 'startGroup';
32
+ case 'groupCollapsed':
33
+ return 'startGroupCollapsed';
34
+ case 'groupEnd':
35
+ return 'endGroup';
36
+ default:
37
+ return method as ConsoleMessageType;
38
+ }
39
+ }
40
+
41
+ /**
42
+ * @internal
43
+ */
44
+ export function getStackTraceLocations(
45
+ stackTrace?: Bidi.Script.StackTrace,
46
+ ): ConsoleMessageLocation[] {
47
+ const stackTraceLocations: ConsoleMessageLocation[] = [];
48
+ if (stackTrace) {
49
+ for (const callFrame of stackTrace.callFrames) {
50
+ stackTraceLocations.push({
51
+ url: callFrame.url,
52
+ lineNumber: callFrame.lineNumber,
53
+ columnNumber: callFrame.columnNumber,
54
+ });
55
+ }
56
+ }
57
+ return stackTraceLocations;
58
+ }
59
+
60
+ /**
61
+ * @internal
62
+ */
63
+ export function getConsoleMessage(
64
+ entry: Bidi.Log.ConsoleLogEntry,
65
+ args: Array<BidiJSHandle<unknown> | BidiElementHandle<Node>>,
66
+ frame?: Frame,
67
+ targetId?: string,
68
+ ): ConsoleMessage {
69
+ const text = args
70
+ .reduce((value, arg) => {
71
+ const parsedValue =
72
+ arg instanceof BidiJSHandle && arg.isPrimitiveValue
73
+ ? BidiDeserializer.deserialize(arg.remoteValue())
74
+ : arg.toString();
75
+ return `${value} ${parsedValue}`;
76
+ }, '')
77
+ .slice(1);
78
+
79
+ return new ConsoleMessage(
80
+ convertConsoleMessageLevel(entry.method),
81
+ text,
82
+ args,
83
+ getStackTraceLocations(entry.stackTrace),
84
+ frame,
85
+ undefined,
86
+ targetId,
87
+ );
88
+ }
89
+
90
+ /**
91
+ * @internal
92
+ */
93
+ export function isConsoleLogEntry(
94
+ event: Bidi.Log.Entry,
95
+ ): event is Bidi.Log.ConsoleLogEntry {
96
+ return event.type === 'console';
97
+ }
98
+
99
+ /**
100
+ * @internal
101
+ */
102
+ export function isJavaScriptLogEntry(
103
+ event: Bidi.Log.Entry,
104
+ ): event is Bidi.Log.JavascriptLogEntry {
105
+ return event.type === 'javascript';
106
+ }
13
107
 
14
108
  /**
15
109
  * @internal
@@ -23,6 +23,7 @@ import {
23
23
  } from '../api/Browser.js';
24
24
  import {BrowserContextEvent} from '../api/BrowserContext.js';
25
25
  import {CDPSessionEvent} from '../api/CDPSession.js';
26
+ import type {Extension} from '../api/Extension.js';
26
27
  import type {Page} from '../api/Page.js';
27
28
  import type {Target} from '../api/Target.js';
28
29
  import type {DownloadBehavior} from '../common/DownloadBehavior.js';
@@ -31,6 +32,7 @@ import type {Viewport} from '../common/Viewport.js';
31
32
  import {CdpBrowserContext} from './BrowserContext.js';
32
33
  import type {CdpCDPSession} from './CdpSession.js';
33
34
  import type {Connection} from './Connection.js';
35
+ import {CdpExtension} from './Extension.js';
34
36
  import {
35
37
  DevToolsTarget,
36
38
  InitializationStatus,
@@ -67,6 +69,7 @@ export class CdpBrowser extends BrowserBase {
67
69
  isPageTargetCallback?: IsPageTargetCallback,
68
70
  waitForInitiallyDiscoveredTargets = true,
69
71
  networkEnabled = true,
72
+ issuesEnabled = true,
70
73
  handleDevToolsAsPage = false,
71
74
  ): Promise<CdpBrowser> {
72
75
  const browser = new CdpBrowser(
@@ -79,6 +82,7 @@ export class CdpBrowser extends BrowserBase {
79
82
  isPageTargetCallback,
80
83
  waitForInitiallyDiscoveredTargets,
81
84
  networkEnabled,
85
+ issuesEnabled,
82
86
  handleDevToolsAsPage,
83
87
  );
84
88
  if (acceptInsecureCerts) {
@@ -98,8 +102,10 @@ export class CdpBrowser extends BrowserBase {
98
102
  #defaultContext: CdpBrowserContext;
99
103
  #contexts = new Map<string, CdpBrowserContext>();
100
104
  #networkEnabled = true;
105
+ #issuesEnabled = true;
101
106
  #targetManager: TargetManager;
102
107
  #handleDevToolsAsPage = false;
108
+ #extensions = new Map<string, Extension>();
103
109
 
104
110
  constructor(
105
111
  connection: Connection,
@@ -111,10 +117,12 @@ export class CdpBrowser extends BrowserBase {
111
117
  isPageTargetCallback?: IsPageTargetCallback,
112
118
  waitForInitiallyDiscoveredTargets = true,
113
119
  networkEnabled = true,
120
+ issuesEnabled = true,
114
121
  handleDevToolsAsPage = false,
115
122
  ) {
116
123
  super();
117
124
  this.#networkEnabled = networkEnabled;
125
+ this.#issuesEnabled = issuesEnabled;
118
126
  this.#defaultViewport = defaultViewport;
119
127
  this.#process = process;
120
128
  this.#connection = connection;
@@ -442,11 +450,38 @@ export class CdpBrowser extends BrowserBase {
442
450
 
443
451
  override async installExtension(path: string): Promise<string> {
444
452
  const {id} = await this.#connection.send('Extensions.loadUnpacked', {path});
453
+ this.#extensions.delete(id);
445
454
  return id;
446
455
  }
447
456
 
448
- override uninstallExtension(id: string): Promise<void> {
449
- return this.#connection.send('Extensions.uninstall', {id});
457
+ override async uninstallExtension(id: string): Promise<void> {
458
+ await this.#connection.send('Extensions.uninstall', {id});
459
+
460
+ // Currently sending the Extensions.uninstall command does not trigger
461
+ // the Target.targetDestroyed event for service workers. This causes
462
+ // flakiness in the extension tests.
463
+ // TODO(nroscino): Remove this once the event is correctly emitted.
464
+ const targetDestroyedPromises = [];
465
+ for (const [targetId, targetInfo] of this._targetManager()
466
+ .getDiscoveredTargetInfos()
467
+ .entries()) {
468
+ if (targetInfo.url.includes(id) && targetInfo.type === 'service_worker') {
469
+ this._targetManager().addToIgnoreTarget(targetId);
470
+ targetDestroyedPromises.push(
471
+ new Promise(resolve => {
472
+ return setTimeout(() => {
473
+ this.#connection.emit('Target.targetDestroyed', {
474
+ targetId: targetId,
475
+ });
476
+ resolve(null);
477
+ }, 0);
478
+ }),
479
+ );
480
+ }
481
+ }
482
+ await Promise.all(targetDestroyedPromises);
483
+
484
+ this.#extensions.delete(id);
450
485
  }
451
486
 
452
487
  override async screens(): Promise<ScreenInfo[]> {
@@ -528,6 +563,13 @@ export class CdpBrowser extends BrowserBase {
528
563
  return Promise.resolve();
529
564
  }
530
565
 
566
+ /**
567
+ * @internal
568
+ */
569
+ get _connection(): Connection {
570
+ return this.#connection;
571
+ }
572
+
531
573
  override get connected(): boolean {
532
574
  return !this.#connection._closed;
533
575
  }
@@ -545,4 +587,35 @@ export class CdpBrowser extends BrowserBase {
545
587
  override isNetworkEnabled(): boolean {
546
588
  return this.#networkEnabled;
547
589
  }
590
+
591
+ override async extensions(): Promise<Map<string, Extension>> {
592
+ const response = await this.#connection.send('Extensions.getExtensions');
593
+
594
+ const extensionsMap = new Map<string, Extension>();
595
+
596
+ for (const currExtension of response.extensions) {
597
+ if (this.#extensions.has(currExtension.id)) {
598
+ extensionsMap.set(
599
+ currExtension.id,
600
+ this.#extensions.get(currExtension.id)!,
601
+ );
602
+ } else {
603
+ const newExtension = new CdpExtension(
604
+ currExtension.id,
605
+ currExtension.version,
606
+ currExtension.name,
607
+ this,
608
+ );
609
+
610
+ extensionsMap.set(currExtension.id, newExtension);
611
+ }
612
+ }
613
+
614
+ this.#extensions = extensionsMap;
615
+ return this.#extensions;
616
+ }
617
+
618
+ override isIssuesEnabled(): boolean {
619
+ return this.#issuesEnabled;
620
+ }
548
621
  }
@@ -26,6 +26,7 @@ export async function _connectToCdpBrowser(
26
26
  const {
27
27
  acceptInsecureCerts = false,
28
28
  networkEnabled = true,
29
+ issuesEnabled = true,
29
30
  defaultViewport = DEFAULT_VIEWPORT,
30
31
  downloadBehavior,
31
32
  targetFilter,
@@ -62,6 +63,7 @@ export async function _connectToCdpBrowser(
62
63
  isPageTarget,
63
64
  undefined,
64
65
  networkEnabled,
66
+ issuesEnabled,
65
67
  handleDevToolsAsPage,
66
68
  );
67
69
  return browser;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google Inc.
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import type {Protocol} from 'devtools-protocol';
8
+
9
+ import type {Issue} from '../api/Issue.js';
10
+
11
+ /**
12
+ * @internal
13
+ */
14
+ export class CdpIssue implements Issue {
15
+ #code: Protocol.Audits.InspectorIssueCode;
16
+ #details: Protocol.Audits.InspectorIssueDetails;
17
+
18
+ constructor(issue: Protocol.Audits.InspectorIssue) {
19
+ this.#code = issue.code;
20
+ this.#details = issue.details;
21
+ }
22
+
23
+ get code(): Protocol.Audits.InspectorIssueCode {
24
+ return this.#code;
25
+ }
26
+
27
+ get details(): Protocol.Audits.InspectorIssueDetails {
28
+ return this.#details;
29
+ }
30
+ }