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.
- package/front_end/generated/InspectorBackendCommands.ts +2 -1
- package/front_end/generated/SupportedCSSProperties.js +4 -0
- package/front_end/generated/protocol-mapping.d.ts +7 -0
- package/front_end/generated/protocol-proxy-api.d.ts +5 -0
- package/front_end/generated/protocol.ts +11 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +5 -4
- package/front_end/models/ai_assistance/agents/PerformanceAgent.snapshot.txt +3 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +85 -47
- package/front_end/models/bindings/DebuggerWorkspaceBinding.ts +32 -0
- package/front_end/models/bindings/SymbolizedError.ts +20 -0
- package/front_end/models/bindings/bindings.ts +2 -0
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +28 -23
- package/front_end/panels/ai_assistance/components/chatMessage.css +1 -1
- package/front_end/panels/elements/PropertiesWidget.ts +8 -8
- package/front_end/third_party/chromium/README.chromium +1 -1
- package/front_end/third_party/puppeteer/README.chromium +2 -2
- package/front_end/third_party/puppeteer/package/README.md +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts +12 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.d.ts +74 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.js +68 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Extension.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.d.ts +22 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Issue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.d.ts +106 -4
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.js +29 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.d.ts +24 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.js +15 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js +9 -47
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +8 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +14 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js +21 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts +28 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js +67 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts +9 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js +56 -5
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.d.ts +17 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.js +27 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/CdpIssue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.d.ts +16 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.js +79 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Extension.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +10 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js +26 -15
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js +38 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts +9 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js +31 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +49 -35
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.js +16 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts +218 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js +288 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebMCP.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts +4 -7
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js +28 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts +9 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js +36 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts +0 -11
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/types.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +7851 -6616
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +1017 -305
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts +12 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.d.ts +74 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.js +64 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Extension.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +8 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.d.ts +22 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.js +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Issue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +35 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.d.ts +106 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.js +29 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.d.ts +24 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.js +14 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js +8 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js +2 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts +5 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js +8 -46
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Input.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +8 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +14 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts +4 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js +22 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js +18 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts +28 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js +62 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts +9 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js +56 -5
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.d.ts +17 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.js +23 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/CdpIssue.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.d.ts +16 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.js +75 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Extension.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +10 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js +26 -15
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js +38 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts +9 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js +31 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/IsolatedWorld.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +6 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +49 -35
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.js +16 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js +9 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts +218 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js +282 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebMCP.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts +4 -7
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js +29 -4
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js +1 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/cdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts +9 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js +34 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/utils.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts +0 -11
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/types.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/injected/injected.d.ts +2 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js +5 -2
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js +0 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/puppeteer-core-browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/Mutex.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +7851 -6616
- package/front_end/third_party/puppeteer/package/package.json +5 -6
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +13 -0
- package/front_end/third_party/puppeteer/package/src/api/Extension.ts +98 -0
- package/front_end/third_party/puppeteer/package/src/api/Frame.ts +9 -0
- package/front_end/third_party/puppeteer/package/src/api/Issue.ts +24 -0
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +38 -0
- package/front_end/third_party/puppeteer/package/src/api/Realm.ts +111 -12
- package/front_end/third_party/puppeteer/package/src/api/WebWorker.ts +26 -4
- package/front_end/third_party/puppeteer/package/src/api/api.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +12 -0
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +13 -67
- package/front_end/third_party/puppeteer/package/src/bidi/Input.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +21 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +39 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Target.ts +2 -5
- package/front_end/third_party/puppeteer/package/src/bidi/core/Realm.ts +23 -0
- package/front_end/third_party/puppeteer/package/src/bidi/util.ts +94 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +75 -2
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -0
- package/front_end/third_party/puppeteer/package/src/cdp/CdpIssue.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Extension.ts +101 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +32 -22
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +44 -3
- package/front_end/third_party/puppeteer/package/src/cdp/IsolatedWorld.ts +40 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +61 -47
- package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +17 -7
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +14 -1
- package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +441 -0
- package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +38 -12
- package/front_end/third_party/puppeteer/package/src/cdp/cdp.ts +1 -0
- package/front_end/third_party/puppeteer/package/src/cdp/utils.ts +52 -0
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/common/types.ts +0 -14
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +7 -0
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +0 -1
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/Mutex.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +5 -0
- package/front_end/ui/legacy/Treeoutline.ts +13 -0
- package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2026 Google Inc.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import type {Page, Target, WebWorker} from '../api/api.js';
|
|
7
|
+
import {Extension} from '../api/api.js';
|
|
8
|
+
import {debugError} from '../common/util.js';
|
|
9
|
+
import {isErrorLike} from '../util/ErrorLike.js';
|
|
10
|
+
|
|
11
|
+
import type {CdpBrowser} from './Browser.js';
|
|
12
|
+
import {isTargetClosedError} from './Connection.js';
|
|
13
|
+
|
|
14
|
+
export class CdpExtension extends Extension {
|
|
15
|
+
// needed to access the CDPSession to trigger an extension action.
|
|
16
|
+
#browser: CdpBrowser;
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* @internal
|
|
20
|
+
*/
|
|
21
|
+
constructor(id: string, version: string, name: string, browser: CdpBrowser) {
|
|
22
|
+
super(id, version, name);
|
|
23
|
+
this.#browser = browser;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async workers(): Promise<WebWorker[]> {
|
|
27
|
+
const targets = this.#browser.targets();
|
|
28
|
+
|
|
29
|
+
const extensionWorkers = targets.filter((target: Target) => {
|
|
30
|
+
const targetUrl = target.url();
|
|
31
|
+
return (
|
|
32
|
+
target.type() === 'service_worker' &&
|
|
33
|
+
targetUrl.startsWith('chrome-extension://' + this.id)
|
|
34
|
+
);
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const workers: WebWorker[] = [];
|
|
38
|
+
for (const target of extensionWorkers) {
|
|
39
|
+
try {
|
|
40
|
+
const worker = await target.worker();
|
|
41
|
+
|
|
42
|
+
if (worker) {
|
|
43
|
+
workers.push(worker);
|
|
44
|
+
}
|
|
45
|
+
} catch (err) {
|
|
46
|
+
if (this.#canIgnoreError(err)) {
|
|
47
|
+
debugError(err);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
throw err;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return workers;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
async pages(): Promise<Page[]> {
|
|
58
|
+
const targets = this.#browser.targets();
|
|
59
|
+
|
|
60
|
+
const extensionPages = targets.filter((target: Target) => {
|
|
61
|
+
const targetUrl = target.url();
|
|
62
|
+
return (
|
|
63
|
+
(target.type() === 'page' || target.type() === 'background_page') &&
|
|
64
|
+
targetUrl.startsWith('chrome-extension://' + this.id)
|
|
65
|
+
);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
const pages = await Promise.all(
|
|
69
|
+
extensionPages.map(async target => {
|
|
70
|
+
try {
|
|
71
|
+
return await target.asPage();
|
|
72
|
+
} catch (err) {
|
|
73
|
+
if (this.#canIgnoreError(err)) {
|
|
74
|
+
debugError(err);
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
throw err;
|
|
78
|
+
}
|
|
79
|
+
}),
|
|
80
|
+
);
|
|
81
|
+
|
|
82
|
+
return pages.filter((page): page is Page => {
|
|
83
|
+
return page !== null;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
async triggerAction(page: Page): Promise<void> {
|
|
88
|
+
await this.#browser._connection.send('Extensions.triggerAction', {
|
|
89
|
+
id: this.id,
|
|
90
|
+
targetId: page._tabId,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
#canIgnoreError(error: unknown): boolean {
|
|
95
|
+
return (
|
|
96
|
+
isErrorLike(error) &&
|
|
97
|
+
(isTargetClosedError(error) ||
|
|
98
|
+
error.message.includes('No target with given id found'))
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
@@ -15,6 +15,7 @@ import type {HTTPResponse} from '../api/HTTPResponse.js';
|
|
|
15
15
|
import type {WaitTimeoutOptions} from '../api/Page.js';
|
|
16
16
|
import {UnsupportedOperation} from '../common/Errors.js';
|
|
17
17
|
import {debugError} from '../common/util.js';
|
|
18
|
+
import type {Realm} from '../puppeteer-core.js';
|
|
18
19
|
import {Deferred} from '../util/Deferred.js';
|
|
19
20
|
import {disposeSymbol} from '../util/disposable.js';
|
|
20
21
|
import {isErrorLike} from '../util/ErrorLike.js';
|
|
@@ -52,6 +53,7 @@ export class CdpFrame extends Frame {
|
|
|
52
53
|
override accessibility: Accessibility;
|
|
53
54
|
|
|
54
55
|
worlds: IsolatedWorldChart;
|
|
56
|
+
extensionWorlds: Record<string, IsolatedWorld> = {};
|
|
55
57
|
|
|
56
58
|
constructor(
|
|
57
59
|
frameManager: FrameManager,
|
|
@@ -69,10 +71,15 @@ export class CdpFrame extends Frame {
|
|
|
69
71
|
|
|
70
72
|
this._loaderId = '';
|
|
71
73
|
this.worlds = {
|
|
72
|
-
[MAIN_WORLD]: new IsolatedWorld(
|
|
74
|
+
[MAIN_WORLD]: new IsolatedWorld(
|
|
75
|
+
this,
|
|
76
|
+
this._frameManager.timeoutSettings,
|
|
77
|
+
MAIN_WORLD,
|
|
78
|
+
),
|
|
73
79
|
[PUPPETEER_WORLD]: new IsolatedWorld(
|
|
74
80
|
this,
|
|
75
81
|
this._frameManager.timeoutSettings,
|
|
82
|
+
PUPPETEER_WORLD,
|
|
76
83
|
),
|
|
77
84
|
};
|
|
78
85
|
|
|
@@ -84,30 +91,23 @@ export class CdpFrame extends Frame {
|
|
|
84
91
|
this._onLoadingStopped();
|
|
85
92
|
});
|
|
86
93
|
|
|
87
|
-
this.worlds[MAIN_WORLD]
|
|
88
|
-
'consoleapicalled',
|
|
89
|
-
this.#onMainWorldConsoleApiCalled.bind(this),
|
|
90
|
-
);
|
|
91
|
-
this.worlds[MAIN_WORLD].emitter.on(
|
|
92
|
-
'bindingcalled',
|
|
93
|
-
this.#onMainWorldBindingCalled.bind(this),
|
|
94
|
-
);
|
|
94
|
+
this.registerWorldListeners(this.worlds[MAIN_WORLD]);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
/**
|
|
98
|
+
* @internal
|
|
99
|
+
*/
|
|
100
|
+
registerWorldListeners(world: IsolatedWorld): void {
|
|
101
|
+
world.emitter.on('consoleapicalled', event => {
|
|
102
|
+
this._frameManager.emit(FrameManagerEvent.ConsoleApiCalled, [
|
|
103
|
+
world,
|
|
104
|
+
event,
|
|
105
|
+
]);
|
|
106
|
+
});
|
|
105
107
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
event,
|
|
110
|
-
]);
|
|
108
|
+
world.emitter.on('bindingcalled', event => {
|
|
109
|
+
this._frameManager.emit(FrameManagerEvent.BindingCalled, [world, event]);
|
|
110
|
+
});
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
/**
|
|
@@ -417,6 +417,9 @@ export class CdpFrame extends Frame {
|
|
|
417
417
|
this.#detached = true;
|
|
418
418
|
this.worlds[MAIN_WORLD][disposeSymbol]();
|
|
419
419
|
this.worlds[PUPPETEER_WORLD][disposeSymbol]();
|
|
420
|
+
for (const extensionWorld of Object.values(this.extensionWorlds)) {
|
|
421
|
+
extensionWorld[disposeSymbol]();
|
|
422
|
+
}
|
|
420
423
|
}
|
|
421
424
|
|
|
422
425
|
exposeFunction(): never {
|
|
@@ -435,6 +438,13 @@ export class CdpFrame extends Frame {
|
|
|
435
438
|
.mainRealm()
|
|
436
439
|
.adoptBackendNode(backendNodeId)) as ElementHandle<HTMLIFrameElement>;
|
|
437
440
|
}
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* @public
|
|
444
|
+
*/
|
|
445
|
+
override extensionRealms(): Realm[] {
|
|
446
|
+
return Object.values(this.extensionWorlds);
|
|
447
|
+
}
|
|
438
448
|
}
|
|
439
449
|
|
|
440
450
|
/**
|
|
@@ -8,7 +8,7 @@ import type {Protocol} from 'devtools-protocol';
|
|
|
8
8
|
|
|
9
9
|
import {type CDPSession, CDPSessionEvent} from '../api/CDPSession.js';
|
|
10
10
|
import {FrameEvent} from '../api/Frame.js';
|
|
11
|
-
import type
|
|
11
|
+
import {PageEvent, type NewDocumentScriptEvaluation} from '../api/Page.js';
|
|
12
12
|
import {EventEmitter} from '../common/EventEmitter.js';
|
|
13
13
|
import type {TimeoutSettings} from '../common/TimeoutSettings.js';
|
|
14
14
|
import {debugError, PuppeteerURL, UTILITY_WORLD_NAME} from '../common/util.js';
|
|
@@ -18,6 +18,7 @@ import {disposeSymbol} from '../util/disposable.js';
|
|
|
18
18
|
import {isErrorLike} from '../util/ErrorLike.js';
|
|
19
19
|
|
|
20
20
|
import type {Binding} from './Binding.js';
|
|
21
|
+
import {CdpIssue} from './CdpIssue.js';
|
|
21
22
|
import {CdpPreloadScript} from './CdpPreloadScript.js';
|
|
22
23
|
import type {CdpCDPSession} from './CdpSession.js';
|
|
23
24
|
import {isTargetClosedError} from './Connection.js';
|
|
@@ -27,14 +28,14 @@ import {CdpFrame} from './Frame.js';
|
|
|
27
28
|
import type {FrameManagerEvents} from './FrameManagerEvents.js';
|
|
28
29
|
import {FrameManagerEvent} from './FrameManagerEvents.js';
|
|
29
30
|
import {FrameTree} from './FrameTree.js';
|
|
30
|
-
import
|
|
31
|
+
import {IsolatedWorld} from './IsolatedWorld.js';
|
|
31
32
|
import {MAIN_WORLD, PUPPETEER_WORLD} from './IsolatedWorlds.js';
|
|
32
33
|
import {NetworkManager} from './NetworkManager.js';
|
|
33
34
|
import type {CdpPage} from './Page.js';
|
|
34
35
|
import type {CdpTarget} from './Target.js';
|
|
35
36
|
|
|
36
37
|
const TIME_FOR_WAITING_FOR_SWAP = 100; // ms.
|
|
37
|
-
|
|
38
|
+
const CHROME_EXTENSION_PREFIX = 'chrome-extension://';
|
|
38
39
|
/**
|
|
39
40
|
* A frame manager manages the frames for a given {@link Page | page}.
|
|
40
41
|
*
|
|
@@ -201,6 +202,9 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
|
|
|
201
202
|
await this.#frameTreeHandled?.valueOrThrow();
|
|
202
203
|
this.#onLifecycleEvent(event);
|
|
203
204
|
});
|
|
205
|
+
session.on('Audits.issueAdded', event => {
|
|
206
|
+
this.#page.emit(PageEvent.Issue, new CdpIssue(event.issue));
|
|
207
|
+
});
|
|
204
208
|
}
|
|
205
209
|
|
|
206
210
|
async initialize(client: CDPSession, frame?: CdpFrame | null): Promise<void> {
|
|
@@ -231,6 +235,7 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
|
|
|
231
235
|
...(frame ? Array.from(this.#bindings.values()) : []).map(binding => {
|
|
232
236
|
return frame?.addExposedFunctionBinding(binding);
|
|
233
237
|
}),
|
|
238
|
+
this.#page.browser().isIssuesEnabled() && client.send('Audits.enable'),
|
|
234
239
|
]);
|
|
235
240
|
} catch (error) {
|
|
236
241
|
this.#frameTreeHandled?.resolve();
|
|
@@ -536,11 +541,29 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
|
|
|
536
541
|
}
|
|
537
542
|
}
|
|
538
543
|
|
|
544
|
+
#isExtensionOrigin(origin: string) {
|
|
545
|
+
return origin.startsWith(CHROME_EXTENSION_PREFIX);
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
#extractExtensionId(origin: string): string | null {
|
|
549
|
+
if (!origin || !this.#isExtensionOrigin(origin)) {
|
|
550
|
+
return null;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
const pathPart = origin.substring(CHROME_EXTENSION_PREFIX.length);
|
|
554
|
+
const slashIndex = pathPart.indexOf('/');
|
|
555
|
+
|
|
556
|
+
// if there's no / it means that pathPart is now the extensionId, otherwise
|
|
557
|
+
// we take everything until the first /
|
|
558
|
+
return slashIndex === -1 ? pathPart : pathPart.substring(0, slashIndex);
|
|
559
|
+
}
|
|
560
|
+
|
|
539
561
|
#onExecutionContextCreated(
|
|
540
562
|
contextPayload: Protocol.Runtime.ExecutionContextDescription,
|
|
541
563
|
session: CDPSession,
|
|
542
564
|
): void {
|
|
543
565
|
const auxData = contextPayload.auxData as {frameId?: string} | undefined;
|
|
566
|
+
const origin = contextPayload.origin;
|
|
544
567
|
const frameId = auxData && auxData.frameId;
|
|
545
568
|
const frame = typeof frameId === 'string' ? this.frame(frameId) : undefined;
|
|
546
569
|
let world: IsolatedWorld | undefined;
|
|
@@ -556,8 +579,26 @@ export class FrameManager extends EventEmitter<FrameManagerEvents> {
|
|
|
556
579
|
// connections so we might end up creating multiple isolated worlds.
|
|
557
580
|
// We can use either.
|
|
558
581
|
world = frame.worlds[PUPPETEER_WORLD];
|
|
582
|
+
} else if (this.#isExtensionOrigin(origin)) {
|
|
583
|
+
const extId = this.#extractExtensionId(origin);
|
|
584
|
+
|
|
585
|
+
if (!extId) {
|
|
586
|
+
debugError('Error while parsing extension id');
|
|
587
|
+
return;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
if (frame.extensionWorlds[extId]) {
|
|
591
|
+
world = frame.extensionWorlds[extId];
|
|
592
|
+
} else {
|
|
593
|
+
world = new IsolatedWorld(frame, this.timeoutSettings, extId);
|
|
594
|
+
frame.extensionWorlds[extId] = world;
|
|
595
|
+
frame.registerWorldListeners(world);
|
|
596
|
+
world.origin = origin;
|
|
597
|
+
world.setWorldId(extId);
|
|
598
|
+
}
|
|
559
599
|
}
|
|
560
600
|
}
|
|
601
|
+
|
|
561
602
|
// If there is no world, the context is not meant to be handled by us.
|
|
562
603
|
if (!world) {
|
|
563
604
|
return;
|
|
@@ -9,6 +9,7 @@ import type {Protocol} from 'devtools-protocol';
|
|
|
9
9
|
import {firstValueFrom, map, raceWith} from '../../third_party/rxjs/rxjs.js';
|
|
10
10
|
import type {CDPSession} from '../api/CDPSession.js';
|
|
11
11
|
import type {ElementHandle} from '../api/ElementHandle.js';
|
|
12
|
+
import type {Extension} from '../api/Extension.js';
|
|
12
13
|
import type {JSHandle} from '../api/JSHandle.js';
|
|
13
14
|
import {Realm} from '../api/Realm.js';
|
|
14
15
|
import {EventEmitter} from '../common/EventEmitter.js';
|
|
@@ -24,9 +25,10 @@ import {disposeSymbol} from '../util/disposable.js';
|
|
|
24
25
|
import {CdpElementHandle} from './ElementHandle.js';
|
|
25
26
|
import type {ExecutionContext} from './ExecutionContext.js';
|
|
26
27
|
import type {CdpFrame} from './Frame.js';
|
|
27
|
-
import type {
|
|
28
|
+
import type {PUPPETEER_WORLD} from './IsolatedWorlds.js';
|
|
29
|
+
import {MAIN_WORLD} from './IsolatedWorlds.js';
|
|
28
30
|
import {CdpJSHandle} from './JSHandle.js';
|
|
29
|
-
import
|
|
31
|
+
import {CdpWebWorker} from './WebWorker.js';
|
|
30
32
|
|
|
31
33
|
/**
|
|
32
34
|
* @internal
|
|
@@ -66,15 +68,19 @@ export type IsolatedWorldEmitter = EventEmitter<{
|
|
|
66
68
|
export class IsolatedWorld extends Realm {
|
|
67
69
|
#context?: ExecutionContext;
|
|
68
70
|
#emitter: IsolatedWorldEmitter = new EventEmitter();
|
|
71
|
+
#worldId: string | symbol;
|
|
72
|
+
#origin?: string;
|
|
69
73
|
|
|
70
74
|
readonly #frameOrWorker: CdpFrame | CdpWebWorker;
|
|
71
75
|
|
|
72
76
|
constructor(
|
|
73
77
|
frameOrWorker: CdpFrame | CdpWebWorker,
|
|
74
78
|
timeoutSettings: TimeoutSettings,
|
|
79
|
+
worldId: string | symbol,
|
|
75
80
|
) {
|
|
76
81
|
super(timeoutSettings);
|
|
77
82
|
this.#frameOrWorker = frameOrWorker;
|
|
83
|
+
this.#worldId = worldId;
|
|
78
84
|
}
|
|
79
85
|
|
|
80
86
|
get environment(): CdpFrame | CdpWebWorker {
|
|
@@ -263,4 +269,36 @@ export class IsolatedWorld extends Realm {
|
|
|
263
269
|
super[disposeSymbol]();
|
|
264
270
|
this.#emitter.removeAllListeners();
|
|
265
271
|
}
|
|
272
|
+
|
|
273
|
+
override get origin(): string | undefined {
|
|
274
|
+
return this.#origin;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
set origin(origin: string) {
|
|
278
|
+
this.#origin = origin;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
setWorldId(worldId: string | symbol): void {
|
|
282
|
+
this.#worldId = worldId;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async extension(): Promise<Extension | null> {
|
|
286
|
+
if (this.#frameOrWorker instanceof CdpWebWorker) {
|
|
287
|
+
throw new Error('Unable to get extension from Realm');
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
if (this.#worldId === MAIN_WORLD) {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
if (typeof this.#worldId === 'string') {
|
|
295
|
+
const extensions = await this.#frameOrWorker._frameManager
|
|
296
|
+
.page()
|
|
297
|
+
.browser()
|
|
298
|
+
.extensions();
|
|
299
|
+
return extensions.get(this.#worldId) ?? null;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
return null;
|
|
303
|
+
}
|
|
266
304
|
}
|
|
@@ -13,6 +13,7 @@ import type {BrowserContext} from '../api/BrowserContext.js';
|
|
|
13
13
|
import {CDPSessionEvent, type CDPSession} from '../api/CDPSession.js';
|
|
14
14
|
import type {DeviceRequestPrompt} from '../api/DeviceRequestPrompt.js';
|
|
15
15
|
import type {ElementHandle} from '../api/ElementHandle.js';
|
|
16
|
+
import type {Extension} from '../api/Extension.js';
|
|
16
17
|
import type {Frame, WaitForOptions} from '../api/Frame.js';
|
|
17
18
|
import type {HTTPResponse} from '../api/HTTPResponse.js';
|
|
18
19
|
import type {JSHandle} from '../api/JSHandle.js';
|
|
@@ -32,10 +33,8 @@ import {
|
|
|
32
33
|
type ScreenshotOptions,
|
|
33
34
|
type WaitTimeoutOptions,
|
|
34
35
|
} from '../api/Page.js';
|
|
35
|
-
import {
|
|
36
|
-
|
|
37
|
-
type ConsoleMessageType,
|
|
38
|
-
} from '../common/ConsoleMessage.js';
|
|
36
|
+
import {WebWorker, WebWorkerEvent} from '../api/WebWorker.js';
|
|
37
|
+
import {ConsoleMessage} from '../common/ConsoleMessage.js';
|
|
39
38
|
import type {
|
|
40
39
|
Cookie,
|
|
41
40
|
DeleteCookiesRequest,
|
|
@@ -60,6 +59,7 @@ import {
|
|
|
60
59
|
} from '../common/util.js';
|
|
61
60
|
import type {Viewport} from '../common/Viewport.js';
|
|
62
61
|
import {environment} from '../environment.js';
|
|
62
|
+
import type {Realm} from '../index-browser.js';
|
|
63
63
|
import {assert} from '../util/assert.js';
|
|
64
64
|
import {Deferred} from '../util/Deferred.js';
|
|
65
65
|
import {AsyncDisposableStack} from '../util/disposable.js';
|
|
@@ -86,21 +86,14 @@ import {TargetManagerEvent} from './TargetManageEvents.js';
|
|
|
86
86
|
import type {TargetManager} from './TargetManager.js';
|
|
87
87
|
import {Tracing} from './Tracing.js';
|
|
88
88
|
import {
|
|
89
|
+
convertConsoleMessageLevel,
|
|
89
90
|
createClientError,
|
|
91
|
+
createConsoleMessage,
|
|
90
92
|
pageBindingInitString,
|
|
91
|
-
valueFromJSHandle,
|
|
92
93
|
} from './utils.js';
|
|
94
|
+
import {WebMCP} from './WebMCP.js';
|
|
93
95
|
import {CdpWebWorker} from './WebWorker.js';
|
|
94
96
|
|
|
95
|
-
function convertConsoleMessageLevel(method: string): ConsoleMessageType {
|
|
96
|
-
switch (method) {
|
|
97
|
-
case 'warning':
|
|
98
|
-
return 'warn';
|
|
99
|
-
default:
|
|
100
|
-
return method as ConsoleMessageType;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
97
|
/**
|
|
105
98
|
* @internal
|
|
106
99
|
*/
|
|
@@ -156,6 +149,7 @@ export class CdpPage extends Page {
|
|
|
156
149
|
#frameManager: FrameManager;
|
|
157
150
|
#emulationManager: EmulationManager;
|
|
158
151
|
#tracing: Tracing;
|
|
152
|
+
#webmcp: WebMCP;
|
|
159
153
|
#bindings = new Map<string, Binding>();
|
|
160
154
|
#exposedFunctions = new Map<string, string>();
|
|
161
155
|
#coverage: Coverage;
|
|
@@ -182,6 +176,7 @@ export class CdpPage extends Page {
|
|
|
182
176
|
this.#frameManager = new FrameManager(client, this, this._timeoutSettings);
|
|
183
177
|
this.#emulationManager = new EmulationManager(client);
|
|
184
178
|
this.#tracing = new Tracing(client);
|
|
179
|
+
this.#webmcp = new WebMCP(client, this.#frameManager);
|
|
185
180
|
this.#coverage = new Coverage(client);
|
|
186
181
|
this.#viewport = null;
|
|
187
182
|
|
|
@@ -303,6 +298,7 @@ export class CdpPage extends Page {
|
|
|
303
298
|
this.#touchscreen.updateClient(newSession);
|
|
304
299
|
this.#emulationManager.updateClient(newSession);
|
|
305
300
|
this.#tracing.updateClient(newSession);
|
|
301
|
+
this.#webmcp.updateClient(newSession);
|
|
306
302
|
this.#coverage.updateClient(newSession);
|
|
307
303
|
await this.#frameManager.swapFrameTree(newSession);
|
|
308
304
|
this.#setupPrimaryTargetListeners();
|
|
@@ -368,11 +364,29 @@ export class CdpPage extends Page {
|
|
|
368
364
|
session.target().url(),
|
|
369
365
|
session.target()._targetId,
|
|
370
366
|
session.target().type(),
|
|
371
|
-
this.#onConsoleAPI.bind(this),
|
|
372
367
|
this.#handleException.bind(this),
|
|
373
368
|
this.#frameManager.networkManager,
|
|
374
369
|
);
|
|
375
370
|
this.#workers.set(session.id(), worker);
|
|
371
|
+
worker.internalEmitter.on(WebWorkerEvent.Console, message => {
|
|
372
|
+
const noListenersForConsoleOnPage =
|
|
373
|
+
this.listenerCount(PageEvent.Console) === 0;
|
|
374
|
+
const noListenersForConsoleOnWorker =
|
|
375
|
+
worker.listenerCount(WebWorkerEvent.Console) === 0;
|
|
376
|
+
|
|
377
|
+
if (noListenersForConsoleOnPage && noListenersForConsoleOnWorker) {
|
|
378
|
+
// eslint-disable-next-line max-len -- The comment is long.
|
|
379
|
+
// eslint-disable-next-line @puppeteer/use-using -- These are not owned by this function.
|
|
380
|
+
for (const arg of message.args()) {
|
|
381
|
+
void arg.dispose().catch(debugError);
|
|
382
|
+
}
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
if (!noListenersForConsoleOnPage) {
|
|
387
|
+
this.emit(PageEvent.Console, message);
|
|
388
|
+
}
|
|
389
|
+
});
|
|
376
390
|
this.emit(PageEvent.WorkerCreated, worker);
|
|
377
391
|
}
|
|
378
392
|
session.on(CDPSessionEvent.Ready, this.#onAttachedToTarget);
|
|
@@ -384,6 +398,7 @@ export class CdpPage extends Page {
|
|
|
384
398
|
this.#frameManager.initialize(this.#primaryTargetClient),
|
|
385
399
|
this.#primaryTargetClient.send('Performance.enable'),
|
|
386
400
|
this.#primaryTargetClient.send('Log.enable'),
|
|
401
|
+
this.#webmcp.initialize(),
|
|
387
402
|
]);
|
|
388
403
|
} catch (err) {
|
|
389
404
|
if (isErrorLike(err) && isTargetClosedError(err)) {
|
|
@@ -574,6 +589,10 @@ export class CdpPage extends Page {
|
|
|
574
589
|
return this.#tracing;
|
|
575
590
|
}
|
|
576
591
|
|
|
592
|
+
override get webmcp(): WebMCP {
|
|
593
|
+
return this.#webmcp;
|
|
594
|
+
}
|
|
595
|
+
|
|
577
596
|
override frames(): Frame[] {
|
|
578
597
|
return this.#frameManager.frames();
|
|
579
598
|
}
|
|
@@ -905,32 +924,28 @@ export class CdpPage extends Page {
|
|
|
905
924
|
#onConsoleAPI(
|
|
906
925
|
world: IsolatedWorld,
|
|
907
926
|
event: Protocol.Runtime.ConsoleAPICalledEvent,
|
|
927
|
+
values?: JSHandle[],
|
|
908
928
|
): void {
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
if (!this.listenerCount(PageEvent.Console)) {
|
|
914
|
-
values.forEach(arg => {
|
|
915
|
-
return arg.dispose();
|
|
929
|
+
if (!values) {
|
|
930
|
+
values = event.args.map(arg => {
|
|
931
|
+
return world.createCdpHandle(arg);
|
|
916
932
|
});
|
|
917
|
-
return;
|
|
918
|
-
}
|
|
919
|
-
const textTokens = [];
|
|
920
|
-
// eslint-disable-next-line max-len -- The comment is long.
|
|
921
|
-
// eslint-disable-next-line @puppeteer/use-using -- These are not owned by this function.
|
|
922
|
-
for (const arg of values) {
|
|
923
|
-
textTokens.push(valueFromJSHandle(arg));
|
|
924
933
|
}
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
934
|
+
|
|
935
|
+
const hasPageConsoleListeners = this.listenerCount(PageEvent.Console) > 0;
|
|
936
|
+
const hasWorkerConsoleListeners =
|
|
937
|
+
world.environment instanceof WebWorker &&
|
|
938
|
+
world.environment.listenerCount(WebWorkerEvent.Console) > 0;
|
|
939
|
+
|
|
940
|
+
if (!hasPageConsoleListeners) {
|
|
941
|
+
if (!hasWorkerConsoleListeners) {
|
|
942
|
+
// eslint-disable-next-line max-len -- The comment is long.
|
|
943
|
+
// eslint-disable-next-line @puppeteer/use-using -- These are not owned by this function.
|
|
944
|
+
for (const value of values) {
|
|
945
|
+
void value.dispose().catch(debugError);
|
|
946
|
+
}
|
|
933
947
|
}
|
|
948
|
+
return;
|
|
934
949
|
}
|
|
935
950
|
|
|
936
951
|
let targetId;
|
|
@@ -938,16 +953,7 @@ export class CdpPage extends Page {
|
|
|
938
953
|
targetId = world.environment.client.target()._targetId;
|
|
939
954
|
}
|
|
940
955
|
|
|
941
|
-
|
|
942
|
-
convertConsoleMessageLevel(event.type),
|
|
943
|
-
textTokens.join(' '),
|
|
944
|
-
values,
|
|
945
|
-
stackTraceLocations,
|
|
946
|
-
undefined,
|
|
947
|
-
event.stackTrace,
|
|
948
|
-
targetId,
|
|
949
|
-
);
|
|
950
|
-
this.emit(PageEvent.Console, message);
|
|
956
|
+
this.emit(PageEvent.Console, createConsoleMessage(event, values, targetId));
|
|
951
957
|
}
|
|
952
958
|
|
|
953
959
|
async #onBindingCalled(
|
|
@@ -1049,6 +1055,10 @@ export class CdpPage extends Page {
|
|
|
1049
1055
|
await this.#primaryTargetClient.send('Page.setBypassCSP', {enabled});
|
|
1050
1056
|
}
|
|
1051
1057
|
|
|
1058
|
+
override async triggerExtensionAction(extension: Extension): Promise<void> {
|
|
1059
|
+
return await extension.triggerAction(this);
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1052
1062
|
override async emulateMediaType(type?: string): Promise<void> {
|
|
1053
1063
|
return await this.#emulationManager.emulateMediaType(type);
|
|
1054
1064
|
}
|
|
@@ -1312,6 +1322,10 @@ export class CdpPage extends Page {
|
|
|
1312
1322
|
override get bluetooth(): BluetoothEmulation {
|
|
1313
1323
|
return this.#cdpBluetoothEmulation;
|
|
1314
1324
|
}
|
|
1325
|
+
|
|
1326
|
+
override extensionRealms(): Realm[] {
|
|
1327
|
+
return this.mainFrame().extensionRealms();
|
|
1328
|
+
}
|
|
1315
1329
|
}
|
|
1316
1330
|
|
|
1317
1331
|
const supportedMetrics = new Set<string>([
|
|
@@ -42,6 +42,9 @@ export class CdpTarget extends Target {
|
|
|
42
42
|
_initializedDeferred = Deferred.create<InitializationStatus>();
|
|
43
43
|
_isClosedDeferred = Deferred.create<void>();
|
|
44
44
|
_targetId: string;
|
|
45
|
+
_asPagePromise?: Promise<Page>;
|
|
46
|
+
/** @internal */
|
|
47
|
+
pagePromise?: Promise<Page>;
|
|
45
48
|
|
|
46
49
|
/**
|
|
47
50
|
* To initialize the target for use, call initialize.
|
|
@@ -70,13 +73,23 @@ export class CdpTarget extends Target {
|
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
override async asPage(): Promise<Page> {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
+
if (this.pagePromise) {
|
|
77
|
+
const page = await this.pagePromise;
|
|
78
|
+
if (page) {
|
|
79
|
+
return page;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
if (!this._asPagePromise) {
|
|
83
|
+
const session = this._session();
|
|
84
|
+
this._asPagePromise = (
|
|
85
|
+
session
|
|
86
|
+
? Promise.resolve(session)
|
|
87
|
+
: this._sessionFactory()(/* isAutoAttachEmulated=*/ false)
|
|
88
|
+
).then(client => {
|
|
76
89
|
return CdpPage._create(client, this, null);
|
|
77
90
|
});
|
|
78
91
|
}
|
|
79
|
-
return await
|
|
92
|
+
return (await this._asPagePromise) ?? null;
|
|
80
93
|
}
|
|
81
94
|
|
|
82
95
|
_subtype(): string | undefined {
|
|
@@ -206,7 +219,6 @@ export class CdpTarget extends Target {
|
|
|
206
219
|
*/
|
|
207
220
|
export class PageTarget extends CdpTarget {
|
|
208
221
|
#defaultViewport?: Viewport;
|
|
209
|
-
protected pagePromise?: Promise<Page>;
|
|
210
222
|
|
|
211
223
|
constructor(
|
|
212
224
|
targetInfo: Protocol.Target.TargetInfo,
|
|
@@ -284,7 +296,6 @@ export class WorkerTarget extends CdpTarget {
|
|
|
284
296
|
override async worker(): Promise<CdpWebWorker | null> {
|
|
285
297
|
if (!this.#workerPromise) {
|
|
286
298
|
const session = this._session();
|
|
287
|
-
// TODO(einbinder): Make workers send their console logs.
|
|
288
299
|
this.#workerPromise = (
|
|
289
300
|
session
|
|
290
301
|
? Promise.resolve(session)
|
|
@@ -295,7 +306,6 @@ export class WorkerTarget extends CdpTarget {
|
|
|
295
306
|
this._getTargetInfo().url,
|
|
296
307
|
this._targetId,
|
|
297
308
|
this.type(),
|
|
298
|
-
() => {} /* consoleAPICalled */,
|
|
299
309
|
() => {} /* exceptionThrown */,
|
|
300
310
|
undefined /* networkManager */,
|
|
301
311
|
);
|