chrome-devtools-frontend 1.0.1650232 → 1.0.1650677
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/.agents/skills/version-control/SKILL.md +5 -1
- package/config/typescript/tsconfig.base.json +1 -0
- package/front_end/core/host/InspectorFrontendHostAPI.ts +0 -1
- package/front_end/core/host/UserMetrics.ts +0 -11
- package/front_end/devtools_compatibility.js +1 -2
- package/front_end/foundation/Universe.ts +7 -0
- package/front_end/models/ai_assistance/AiAgent2.ts +11 -1
- package/front_end/models/ai_assistance/README.md +4 -0
- package/front_end/models/ai_assistance/agents/AccessibilityAgent.ts +2 -0
- package/front_end/models/ai_assistance/agents/AiAgent.ts +3 -0
- package/front_end/models/ai_assistance/agents/PerformanceAgent.ts +2 -0
- package/front_end/models/ai_assistance/ai_assistance.ts +4 -0
- package/front_end/models/ai_assistance/skills/Skill.ts +1 -1
- package/front_end/models/ai_assistance/skills/SkillRegistry.ts +2 -0
- package/front_end/models/ai_assistance/skills/accessibility.md +13 -0
- package/front_end/models/ai_assistance/tools/GetLighthouseAudits.ts +54 -0
- package/front_end/models/ai_assistance/tools/ResolveLighthousePath.ts +124 -0
- package/front_end/models/ai_assistance/tools/Tool.ts +12 -2
- package/front_end/models/ai_assistance/tools/ToolRegistry.ts +4 -0
- package/front_end/models/persistence/NetworkPersistenceManager.ts +9 -1
- package/front_end/panels/ai_assistance/components/ChatMessage.ts +3 -11
- package/front_end/panels/common/ExtensionServer.ts +70 -50
- package/front_end/panels/elements/ElementsPanel.ts +1 -1
- package/front_end/panels/js_timeline/js_timeline-meta.ts +1 -2
- package/front_end/panels/network/RequestHeadersView.ts +2 -2
- package/front_end/panels/network/components/RequestHeadersView.css +1 -0
- package/front_end/panels/network/components/ResponseHeaderSection.css +5 -1
- package/front_end/panels/recorder/testing/RecorderHelpers.ts +2 -0
- package/front_end/panels/timeline/timeline-meta.ts +1 -1
- 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 +14 -0
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +60 -24
- package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +271 -164
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts +2 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js +11 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js +3 -10
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts +9 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.d.ts +13 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.js +14 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js +5 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/api/locators/locators.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BidiOverCdp.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserConnector.js +5 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/BrowserContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Deserializer.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Deserializer.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js +6 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/ExposedFunction.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/Realm.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js +11 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js +4 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Accessibility.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Binding.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Binding.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js +13 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Browser.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/BrowserConnector.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Connection.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Coverage.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Coverage.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ElementHandle.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ElementHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js +25 -4
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/EmulationManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ExecutionContext.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/ExecutionContext.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.js +9 -11
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Extension.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Frame.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js +7 -7
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/FrameManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPRequest.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/HTTPRequest.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/JSHandle.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/JSHandle.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts +3 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js +18 -10
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/NetworkManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js +17 -11
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Page.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/Target.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js +28 -10
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/TargetManager.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js +10 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebMCP.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.d.ts +3 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js +20 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/cdp/WebWorker.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js +11 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserConnector.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/BrowserWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CallbackRegistry.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/CallbackRegistry.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Configuration.d.ts +4 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Configuration.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts +26 -13
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/ConnectOptions.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts +1 -6
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js +24 -33
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/Debug.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/EventEmitter.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts +8 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js +8 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/common/util.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.d.ts +2 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.js +4 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/environment.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/generated/injected.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.js +15 -5
- package/front_end/third_party/puppeteer/package/lib/puppeteer/injected/TextContent.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts +5 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js +17 -16
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/BrowserLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js +14 -9
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ChromeLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/FirefoxLauncher.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/FirefoxLauncher.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js +2 -2
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/NodeWebSocketTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PipeTransport.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/PipeTransport.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts +20 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js +38 -9
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node/ScreenRecorder.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.d.ts +7 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.d.ts.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js +16 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/node-env-setup.js.map +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.d.ts +1 -0
- package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.d.ts.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.js +3 -8
- package/front_end/third_party/puppeteer/package/lib/puppeteer/puppeteer-core.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.d.ts +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js +3 -3
- package/front_end/third_party/puppeteer/package/lib/puppeteer/revisions.js.map +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.d.ts +1 -1
- package/front_end/third_party/puppeteer/package/lib/puppeteer/util/version.js +1 -1
- package/front_end/third_party/puppeteer/package/lib/types.d.ts +60 -24
- package/front_end/third_party/puppeteer/package/package.json +4 -4
- package/front_end/third_party/puppeteer/package/src/api/Browser.ts +4 -8
- package/front_end/third_party/puppeteer/package/src/api/BrowserContext.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/api/HTTPRequest.ts +10 -10
- package/front_end/third_party/puppeteer/package/src/api/JSHandle.ts +3 -10
- package/front_end/third_party/puppeteer/package/src/api/Page.ts +14 -8
- package/front_end/third_party/puppeteer/package/src/api/WebWorker.ts +30 -0
- package/front_end/third_party/puppeteer/package/src/api/locators/locators.ts +5 -5
- package/front_end/third_party/puppeteer/package/src/bidi/BidiOverCdp.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/Browser.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserConnector.ts +5 -3
- package/front_end/third_party/puppeteer/package/src/bidi/BrowserContext.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/bidi/Connection.ts +4 -4
- package/front_end/third_party/puppeteer/package/src/bidi/Deserializer.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/bidi/ExposedFunction.ts +6 -6
- package/front_end/third_party/puppeteer/package/src/bidi/Frame.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +4 -0
- package/front_end/third_party/puppeteer/package/src/bidi/Realm.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/cdp/Accessibility.ts +6 -4
- package/front_end/third_party/puppeteer/package/src/cdp/Binding.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Browser.ts +14 -2
- package/front_end/third_party/puppeteer/package/src/cdp/BrowserConnector.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Connection.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/Coverage.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/cdp/ElementHandle.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/EmulationManager.ts +36 -4
- package/front_end/third_party/puppeteer/package/src/cdp/ExecutionContext.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/Extension.ts +16 -17
- package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/FrameManager.ts +12 -7
- package/front_end/third_party/puppeteer/package/src/cdp/HTTPRequest.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/JSHandle.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/cdp/NetworkManager.ts +22 -11
- package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +18 -10
- package/front_end/third_party/puppeteer/package/src/cdp/Target.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/cdp/TargetManager.ts +37 -12
- package/front_end/third_party/puppeteer/package/src/cdp/WebMCP.ts +11 -9
- package/front_end/third_party/puppeteer/package/src/cdp/WebWorker.ts +33 -5
- package/front_end/third_party/puppeteer/package/src/common/BrowserConnector.ts +11 -0
- package/front_end/third_party/puppeteer/package/src/common/BrowserWebSocketTransport.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/CallbackRegistry.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/Configuration.ts +4 -2
- package/front_end/third_party/puppeteer/package/src/common/ConnectOptions.ts +26 -13
- package/front_end/third_party/puppeteer/package/src/common/Debug.ts +30 -40
- package/front_end/third_party/puppeteer/package/src/common/EventEmitter.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/common/util.ts +9 -1
- package/front_end/third_party/puppeteer/package/src/environment.ts +7 -3
- package/front_end/third_party/puppeteer/package/src/generated/injected.ts +1 -1
- package/front_end/third_party/puppeteer/package/src/injected/TextContent.ts +15 -5
- package/front_end/third_party/puppeteer/package/src/node/BrowserLauncher.ts +23 -23
- package/front_end/third_party/puppeteer/package/src/node/ChromeLauncher.ts +19 -13
- package/front_end/third_party/puppeteer/package/src/node/FirefoxLauncher.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/NodeWebSocketTransport.ts +2 -2
- package/front_end/third_party/puppeteer/package/src/node/PipeTransport.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/node/ScreenRecorder.ts +44 -9
- package/front_end/third_party/puppeteer/package/src/node-env-setup.ts +18 -0
- package/front_end/third_party/puppeteer/package/src/puppeteer-core.ts +5 -9
- package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
- package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
- package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
- package/front_end/tsconfig.json +1 -2
- package/inspector_overlay/tsconfig.json +3 -10
- package/mcp/tsconfig.json +1 -5
- package/package.json +1 -2
|
@@ -85,7 +85,8 @@ export class HostsPolicy {
|
|
|
85
85
|
}
|
|
86
86
|
|
|
87
87
|
class RegisteredExtension {
|
|
88
|
-
constructor(readonly
|
|
88
|
+
constructor(readonly origin: string, readonly name: string, readonly hostsPolicy: HostsPolicy,
|
|
89
|
+
readonly allowFileAccess: boolean) {
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
isAllowedOnTarget(inspectedURL?: Platform.DevToolsPath.UrlString): boolean {
|
|
@@ -104,6 +105,14 @@ class RegisteredExtension {
|
|
|
104
105
|
return false;
|
|
105
106
|
}
|
|
106
107
|
|
|
108
|
+
if (parsedURL.protocol === 'chrome-extension:') {
|
|
109
|
+
if (parsedURL.origin !== this.origin) {
|
|
110
|
+
if (!Root.Runtime.hostConfig.extensionsOnChromeUrls?.enabled) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
107
116
|
if (!ExtensionServer.canInspectURL(inspectedURL)) {
|
|
108
117
|
return false;
|
|
109
118
|
}
|
|
@@ -953,27 +962,45 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
953
962
|
*/
|
|
954
963
|
private extensionAllowedOnContentProvider(
|
|
955
964
|
contentProvider: TextUtils.ContentProvider.ContentProvider, port: MessagePort): boolean {
|
|
956
|
-
|
|
957
|
-
|
|
965
|
+
// 1. Exception for Scripts with sourceURL
|
|
966
|
+
if (contentProvider instanceof Workspace.UISourceCode.UISourceCode &&
|
|
967
|
+
contentProvider.contentType() === Common.ResourceType.resourceTypes.Script) {
|
|
968
|
+
const scripts =
|
|
969
|
+
Bindings.DebuggerWorkspaceBinding.DebuggerWorkspaceBinding.instance().scriptsForUISourceCode(contentProvider);
|
|
970
|
+
if (scripts.length > 0) {
|
|
971
|
+
const uiSourceCodeTarget =
|
|
972
|
+
Bindings.NetworkProject.NetworkProject.targetForUISourceCode(contentProvider) ?? undefined;
|
|
973
|
+
if (uiSourceCodeTarget && !this.extensionAllowedOnTarget(uiSourceCodeTarget, port)) {
|
|
974
|
+
return false;
|
|
975
|
+
}
|
|
976
|
+
return scripts.every(script => {
|
|
977
|
+
if (script.hasSourceURL) {
|
|
978
|
+
return this.extensionAllowedOnTarget(script.target(), port);
|
|
979
|
+
}
|
|
980
|
+
return this.extensionAllowedOnURL(script.contentURL(), port) &&
|
|
981
|
+
this.extensionAllowedOnTarget(script.target(), port);
|
|
982
|
+
});
|
|
983
|
+
}
|
|
958
984
|
}
|
|
959
985
|
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
986
|
+
// 2. Standard Policy: Both URL and Target must be allowed
|
|
987
|
+
|
|
988
|
+
// 2a. Check URL
|
|
989
|
+
if (!this.extensionAllowedOnURL(contentProvider.contentURL(), port)) {
|
|
990
|
+
return false;
|
|
963
991
|
}
|
|
964
992
|
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
if (
|
|
968
|
-
|
|
993
|
+
// 2b. Check Target (if one can be identified)
|
|
994
|
+
let target: SDK.Target.Target|undefined;
|
|
995
|
+
if (contentProvider instanceof SDK.NetworkRequest.NetworkRequest) {
|
|
996
|
+
target = SDK.NetworkManager.NetworkManager.forRequest(contentProvider)?.target();
|
|
997
|
+
} else if (contentProvider instanceof SDK.Resource.Resource) {
|
|
998
|
+
target = contentProvider.frame()?.resourceTreeModel().target();
|
|
999
|
+
} else if (contentProvider instanceof Workspace.UISourceCode.UISourceCode) {
|
|
1000
|
+
target = Bindings.NetworkProject.NetworkProject.targetForUISourceCode(contentProvider) ?? undefined;
|
|
969
1001
|
}
|
|
970
1002
|
|
|
971
|
-
return
|
|
972
|
-
if (script.hasSourceURL) {
|
|
973
|
-
return this.extensionAllowedOnTarget(script.target(), port);
|
|
974
|
-
}
|
|
975
|
-
return this.extensionAllowedOnURL(script.contentURL(), port);
|
|
976
|
-
});
|
|
1003
|
+
return !target || this.extensionAllowedOnTarget(target, port);
|
|
977
1004
|
}
|
|
978
1005
|
|
|
979
1006
|
/**
|
|
@@ -998,7 +1025,10 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
998
1025
|
return {uiSourceCode};
|
|
999
1026
|
}
|
|
1000
1027
|
|
|
1001
|
-
private extensionAllowedOnTarget(target: SDK.Target.Target, port: MessagePort): boolean {
|
|
1028
|
+
private extensionAllowedOnTarget(target: SDK.Target.Target|undefined, port: MessagePort): boolean {
|
|
1029
|
+
if (!target) {
|
|
1030
|
+
return false;
|
|
1031
|
+
}
|
|
1002
1032
|
return this.extensionAllowedOnURL(target.inspectedURL(), port);
|
|
1003
1033
|
}
|
|
1004
1034
|
|
|
@@ -1061,7 +1091,7 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1061
1091
|
return this.status.E_BADARG('command', `expected ${Extensions.ExtensionAPI.PrivateAPI.Commands.GetHAR}`);
|
|
1062
1092
|
}
|
|
1063
1093
|
const requests =
|
|
1064
|
-
Logs.NetworkLog.NetworkLog.instance().requests().filter(r => this.
|
|
1094
|
+
Logs.NetworkLog.NetworkLog.instance().requests().filter(r => this.extensionAllowedOnContentProvider(r, port));
|
|
1065
1095
|
const harLog = await HAR.Log.Log.build(requests, {sanitize: false});
|
|
1066
1096
|
for (let i = 0; i < harLog.entries.length; ++i) {
|
|
1067
1097
|
// @ts-expect-error
|
|
@@ -1310,26 +1340,34 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1310
1340
|
|
|
1311
1341
|
private notifyResourceAdded(event: Common.EventTarget.EventTargetEvent<Workspace.UISourceCode.UISourceCode>): void {
|
|
1312
1342
|
const uiSourceCode = event.data;
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1343
|
+
const target = Bindings.NetworkProject.NetworkProject.targetForUISourceCode(uiSourceCode);
|
|
1344
|
+
const targetUrl = target?.inspectedURL();
|
|
1345
|
+
this.postNotification(Extensions.ExtensionAPI.PrivateAPI.Events.ResourceAdded, [this.makeResource(uiSourceCode)],
|
|
1346
|
+
extension => extension.isAllowedOnTarget(uiSourceCode.url()) &&
|
|
1347
|
+
(!targetUrl || extension.isAllowedOnTarget(targetUrl)));
|
|
1316
1348
|
}
|
|
1317
1349
|
|
|
1318
1350
|
private notifyUISourceCodeContentCommitted(
|
|
1319
1351
|
event: Common.EventTarget.EventTargetEvent<Workspace.Workspace.WorkingCopyCommittedEvent>): void {
|
|
1320
1352
|
const {uiSourceCode, content} = event.data;
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1353
|
+
const target = Bindings.NetworkProject.NetworkProject.targetForUISourceCode(uiSourceCode);
|
|
1354
|
+
const targetUrl = target?.inspectedURL();
|
|
1355
|
+
this.postNotification(Extensions.ExtensionAPI.PrivateAPI.Events.ResourceContentCommitted,
|
|
1356
|
+
[this.makeResource(uiSourceCode), content],
|
|
1357
|
+
extension => extension.isAllowedOnTarget(uiSourceCode.url()) &&
|
|
1358
|
+
(!targetUrl || extension.isAllowedOnTarget(targetUrl)));
|
|
1324
1359
|
}
|
|
1325
1360
|
|
|
1326
1361
|
private async notifyRequestFinished(event: Common.EventTarget.EventTargetEvent<SDK.NetworkRequest.NetworkRequest>):
|
|
1327
1362
|
Promise<void> {
|
|
1328
1363
|
const request = event.data;
|
|
1329
1364
|
const entry = await HAR.Log.Entry.build(request, {sanitize: false});
|
|
1365
|
+
const networkManager = SDK.NetworkManager.NetworkManager.forRequest(request);
|
|
1366
|
+
const targetUrl = networkManager?.target()?.inspectedURL();
|
|
1330
1367
|
this.postNotification(
|
|
1331
1368
|
Extensions.ExtensionAPI.PrivateAPI.Events.NetworkRequestFinished, [this.requestId(request), entry],
|
|
1332
|
-
extension => extension.isAllowedOnTarget(entry.request.url)
|
|
1369
|
+
extension => extension.isAllowedOnTarget(entry.request.url as Platform.DevToolsPath.UrlString) &&
|
|
1370
|
+
(!targetUrl || extension.isAllowedOnTarget(targetUrl)));
|
|
1333
1371
|
}
|
|
1334
1372
|
|
|
1335
1373
|
private notifyElementsSelectionChanged(): void {
|
|
@@ -1388,7 +1426,8 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1388
1426
|
const startPageURL = new URL((startPage));
|
|
1389
1427
|
const extensionOrigin = startPageURL.origin;
|
|
1390
1428
|
const name = extensionInfo.name || `Extension ${extensionOrigin}`;
|
|
1391
|
-
const extensionRegistration =
|
|
1429
|
+
const extensionRegistration =
|
|
1430
|
+
new RegisteredExtension(extensionOrigin, name, hostsPolicy, Boolean(extensionInfo.allowFileAccess));
|
|
1392
1431
|
if (!extensionRegistration.isAllowedOnTarget(inspectedURL)) {
|
|
1393
1432
|
this.#pendingExtensions.push(extensionInfo);
|
|
1394
1433
|
return;
|
|
@@ -1494,11 +1533,11 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1494
1533
|
private registerAutosubscriptionTargetManagerHandler<Events, T extends keyof Events>(
|
|
1495
1534
|
eventTopic: string, modelClass: new(arg1: SDK.Target.Target) => SDK.SDKModel.SDKModel<Events>,
|
|
1496
1535
|
frontendEventType: T, handler: Common.EventTarget.EventListener<Events, T>): void {
|
|
1497
|
-
this.registerSubscriptionHandler(
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1536
|
+
this.registerSubscriptionHandler(eventTopic,
|
|
1537
|
+
() => SDK.TargetManager.TargetManager.instance().addModelListener(
|
|
1538
|
+
modelClass, frontendEventType, handler, this, {scoped: true}),
|
|
1539
|
+
() => SDK.TargetManager.TargetManager.instance().removeModelListener(
|
|
1540
|
+
modelClass, frontendEventType, handler, this));
|
|
1502
1541
|
}
|
|
1503
1542
|
|
|
1504
1543
|
private registerResourceContentCommittedHandler(
|
|
@@ -1609,25 +1648,6 @@ export class ExtensionServer extends Common.ObjectWrapper.ObjectWrapper<EventTyp
|
|
|
1609
1648
|
return this.status.E_FAILED('Permission denied');
|
|
1610
1649
|
}
|
|
1611
1650
|
|
|
1612
|
-
try {
|
|
1613
|
-
const parsedUrl = new URL(frame.url);
|
|
1614
|
-
let targetType = Host.UserMetrics.ExtensionEvalTarget.WEB_PAGE;
|
|
1615
|
-
if (parsedUrl.protocol === 'chrome-extension:') {
|
|
1616
|
-
if (parsedUrl.origin === securityOrigin) {
|
|
1617
|
-
targetType = Host.UserMetrics.ExtensionEvalTarget.SAME_EXTENSION;
|
|
1618
|
-
} else {
|
|
1619
|
-
targetType = Host.UserMetrics.ExtensionEvalTarget.OTHER_EXTENSION;
|
|
1620
|
-
if (!Root.Runtime.hostConfig.extensionsOnChromeUrls?.enabled) {
|
|
1621
|
-
return this.status.E_FAILED(
|
|
1622
|
-
'Access to extension URLs is restricted; use --extensions-on-chrome-urls to enable.');
|
|
1623
|
-
}
|
|
1624
|
-
}
|
|
1625
|
-
}
|
|
1626
|
-
Host.userMetrics.extensionEvalTarget(targetType);
|
|
1627
|
-
} catch {
|
|
1628
|
-
// Ignore invalid URLs.
|
|
1629
|
-
}
|
|
1630
|
-
|
|
1631
1651
|
void context
|
|
1632
1652
|
.evaluate(
|
|
1633
1653
|
{
|
|
@@ -1627,7 +1627,7 @@ export class PseudoStateMarkerDecorator implements MarkerDecorator {
|
|
|
1627
1627
|
return null;
|
|
1628
1628
|
}
|
|
1629
1629
|
return {
|
|
1630
|
-
color: '--sys-color-orange-bright',
|
|
1630
|
+
color: 'var(--sys-color-orange-bright)',
|
|
1631
1631
|
title: i18nString(UIStrings.elementStateS, {PH1: ':' + pseudoState.join(', :')}),
|
|
1632
1632
|
};
|
|
1633
1633
|
}
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
|
|
5
5
|
import * as Common from '../../core/common/common.js';
|
|
6
6
|
import * as i18n from '../../core/i18n/i18n.js';
|
|
7
|
-
import * as SDK from '../../core/sdk/sdk.js';
|
|
8
7
|
import * as UI from '../../ui/legacy/legacy.js';
|
|
9
8
|
import type * as Timeline from '../timeline/timeline.js';
|
|
10
9
|
|
|
@@ -72,7 +71,7 @@ UI.ViewManager.registerViewExtension({
|
|
|
72
71
|
isPreviewFeature: true,
|
|
73
72
|
async loadView(universe) {
|
|
74
73
|
const Timeline = await loadTimelineModule();
|
|
75
|
-
const resourceLoader = universe
|
|
74
|
+
const {pageResourceLoader: resourceLoader} = universe;
|
|
76
75
|
return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: true, resourceLoader});
|
|
77
76
|
},
|
|
78
77
|
});
|
|
@@ -412,7 +412,7 @@ function renderHeaderOverridesLink(input: ViewInput): Lit.LitTemplate {
|
|
|
412
412
|
class="link devtools-link"
|
|
413
413
|
jslogcontext="devtools-override"
|
|
414
414
|
>
|
|
415
|
-
<devtools-icon name="help" class="inline-icon
|
|
415
|
+
<devtools-icon name="help" class="inline-icon">
|
|
416
416
|
</devtools-icon>
|
|
417
417
|
</devtools-link>
|
|
418
418
|
<devtools-link
|
|
@@ -424,7 +424,7 @@ function renderHeaderOverridesLink(input: ViewInput): Lit.LitTemplate {
|
|
|
424
424
|
${fileIcon}${Persistence.NetworkPersistenceManager.HEADERS_FILENAME}
|
|
425
425
|
</devtools-link>
|
|
426
426
|
`;
|
|
427
|
-
|
|
427
|
+
// clang-format on
|
|
428
428
|
}
|
|
429
429
|
|
|
430
430
|
function renderRawHeaders(text: string): Lit.TemplateResult {
|
|
@@ -17,5 +17,9 @@ devtools-header-section-row:first-of-type {
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.add-header-button {
|
|
20
|
-
margin: -
|
|
20
|
+
margin: var(--sys-size-5) 0 var(--sys-size-5) var(--sys-size-4);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
devtools-header-section-row + .add-header-button {
|
|
24
|
+
margin-top: calc(-1 * var(--sys-size-3));
|
|
21
25
|
}
|
|
@@ -101,7 +101,7 @@ UI.ViewManager.registerViewExtension({
|
|
|
101
101
|
order: 50,
|
|
102
102
|
async loadView(universe) {
|
|
103
103
|
const Timeline = await loadTimelineModule();
|
|
104
|
-
const resourceLoader = universe
|
|
104
|
+
const {pageResourceLoader: resourceLoader} = universe;
|
|
105
105
|
return Timeline.TimelinePanel.TimelinePanel.instance({forceNew: true, resourceLoader});
|
|
106
106
|
},
|
|
107
107
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Name: Dependencies sourced from the upstream `chromium` repository
|
|
2
2
|
URL: Internal
|
|
3
3
|
Version: N/A
|
|
4
|
-
Revision:
|
|
4
|
+
Revision: 2f1db9960be2f98ba060d8856277091dc61ee03d
|
|
5
5
|
Update Mechanism: Manual (https://crbug.com/428069060)
|
|
6
6
|
License: BSD-3-Clause
|
|
7
7
|
License File: LICENSE
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
Name: Puppeteer Core
|
|
2
2
|
Short Name: Puppeteer Core
|
|
3
3
|
URL: https://github.com/puppeteer/puppeteer/tree/main/packages/puppeteer-core
|
|
4
|
-
Version: 25.1
|
|
4
|
+
Version: 25.2.1
|
|
5
5
|
License: Apache-2.0
|
|
6
6
|
License File: LICENSE
|
|
7
|
-
Revision:
|
|
7
|
+
Revision: 4a56c699e50f0cd5ff87dd10e43f7defaf3d95a0
|
|
8
8
|
Security Critical: no
|
|
9
9
|
Shipped: yes
|
|
10
10
|
Update Mechanism: Autoroll
|
|
@@ -19,6 +19,20 @@ npm i puppeteer # Downloads compatible Chrome during installation.
|
|
|
19
19
|
npm i puppeteer-core # Alternatively, install as a library, without downloading Chrome.
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
:::note
|
|
23
|
+
|
|
24
|
+
Modern package managers (including npm (see the [RFC](https://github.com/npm/rfcs/pull/868)), pnpm, Yarn, Bun, and Deno) block dependency install scripts by default. If the install script is blocked, Puppeteer will not download the browser during installation, leading to runtime errors.
|
|
25
|
+
|
|
26
|
+
You can manually download the required browsers after installation by running:
|
|
27
|
+
|
|
28
|
+
```bash npm2yarn
|
|
29
|
+
npx puppeteer browsers install
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Alternatively, you can configure your package manager to allow the install script to run (for example, with npm, by adding `"puppeteer"` to `"allowScripts"` in your `package.json`).
|
|
33
|
+
|
|
34
|
+
:::
|
|
35
|
+
|
|
22
36
|
## MCP
|
|
23
37
|
|
|
24
38
|
Install [`chrome-devtools-mcp`](https://github.com/ChromeDevTools/chrome-devtools-mcp),
|
|
@@ -557,15 +557,11 @@ export declare abstract class Browser extends EventEmitter<BrowserEvents> {
|
|
|
557
557
|
}>
|
|
558
558
|
): Promise<void>;
|
|
559
559
|
/**
|
|
560
|
-
* Installs an extension and returns the ID.
|
|
561
|
-
* available if the browser was created using `pipe: true` and the
|
|
562
|
-
* `--enable-unsafe-extension-debugging` flag is set.
|
|
560
|
+
* Installs an extension and returns the ID.
|
|
563
561
|
*/
|
|
564
562
|
abstract installExtension(path: string): Promise<string>;
|
|
565
563
|
/**
|
|
566
|
-
* Uninstalls an extension.
|
|
567
|
-
* was created using `pipe: true` and the
|
|
568
|
-
* `--enable-unsafe-extension-debugging` flag is set.
|
|
564
|
+
* Uninstalls an extension.
|
|
569
565
|
*/
|
|
570
566
|
abstract uninstallExtension(id: string): Promise<void>;
|
|
571
567
|
/**
|
|
@@ -1179,9 +1175,11 @@ export declare interface Configuration {
|
|
|
1179
1175
|
*/
|
|
1180
1176
|
temporaryDirectory?: string;
|
|
1181
1177
|
/**
|
|
1182
|
-
* Tells Puppeteer to not download during installation.
|
|
1178
|
+
* Tells Puppeteer to not download any of the browsers during installation.
|
|
1183
1179
|
*
|
|
1184
|
-
* Can be overridden by `PUPPETEER_SKIP_DOWNLOAD
|
|
1180
|
+
* Can be overridden by `PUPPETEER_SKIP_DOWNLOAD` or by specifying either
|
|
1181
|
+
* `skipDownload` property in each browser specific config or by providing
|
|
1182
|
+
* `PUPPETEER_FIREFOX_SKIP_DOWNLOAD` and `PUPPETEER_CHROME_SKIP_DOWNLOAD`.
|
|
1185
1183
|
*/
|
|
1186
1184
|
skipDownload?: boolean;
|
|
1187
1185
|
/**
|
|
@@ -1369,26 +1367,32 @@ export declare interface ConnectOptions {
|
|
|
1369
1367
|
/**
|
|
1370
1368
|
* A list of URL patterns to block.
|
|
1371
1369
|
*
|
|
1372
|
-
* This option allows you to restrict the browser from accessing specific
|
|
1373
|
-
*
|
|
1370
|
+
* This option allows you to restrict the browser from accessing specific URLs
|
|
1371
|
+
* or origins. It uses the standard
|
|
1372
|
+
* [URLPattern](https://urlpattern.spec.whatwg.org/) API to match URLs.
|
|
1374
1373
|
*
|
|
1375
|
-
* When connecting to an existing browser, Puppeteer will silently detach from
|
|
1376
|
-
* already open targets that violate the patterns.
|
|
1374
|
+
* When connecting to an existing browser, Puppeteer will silently detach from
|
|
1375
|
+
* any already open targets that violate the patterns.
|
|
1377
1376
|
*
|
|
1378
1377
|
* For any network requests made by the browser (including navigations and
|
|
1379
1378
|
* subresources like images or scripts), the request will fail with an error
|
|
1380
1379
|
* if the URL matches a blocked pattern.
|
|
1381
1380
|
*
|
|
1382
|
-
* @example Pattern to block a specific domain:
|
|
1383
|
-
* `*://example.com/*`
|
|
1381
|
+
* @example Pattern to block a specific domain: `*://example.com/*`
|
|
1384
1382
|
*
|
|
1385
|
-
* @example Pattern to block all subdomains:
|
|
1386
|
-
* `*://*.evil.com/*`
|
|
1383
|
+
* @example Pattern to block all subdomains: `*://*.evil.com/*`
|
|
1387
1384
|
*
|
|
1388
1385
|
* @remarks
|
|
1389
|
-
* Currently only supported for
|
|
1386
|
+
* Currently only supported for Chrome.
|
|
1390
1387
|
*
|
|
1391
|
-
*
|
|
1388
|
+
* The feature works while Puppeteer is attached to the CDP targets.
|
|
1389
|
+
* It intercepts requests in the network service in Chrome.
|
|
1390
|
+
* Chrome may perform some network access in other ways or
|
|
1391
|
+
* some web features may omit the network service.
|
|
1392
|
+
* The feature is meant as an additional guardrails to LLM-based
|
|
1393
|
+
* usage under Puppeteer control and not a complete network sandbox.
|
|
1394
|
+
* For complete network sandboxing, we recommend using
|
|
1395
|
+
* container/OS-level sandbox mechanism.
|
|
1392
1396
|
*
|
|
1393
1397
|
* Cannot be used along with {@link ConnectOptions.allowlist}.
|
|
1394
1398
|
*
|
|
@@ -1418,9 +1422,16 @@ export declare interface ConnectOptions {
|
|
|
1418
1422
|
* `*://*.example.com/*`
|
|
1419
1423
|
*
|
|
1420
1424
|
* @remarks
|
|
1421
|
-
* Currently only supported for
|
|
1425
|
+
* Currently only supported for Chrome.
|
|
1422
1426
|
*
|
|
1423
|
-
*
|
|
1427
|
+
* The feature works while Puppeteer is attached to the CDP targets.
|
|
1428
|
+
* It intercepts requests in the network service in Chrome.
|
|
1429
|
+
* Chrome may perform some network access in other ways or
|
|
1430
|
+
* some web features may omit the network service.
|
|
1431
|
+
* The feature is meant as an additional guardrails to LLM-based
|
|
1432
|
+
* usage under Puppeteer control and not a complete network sandbox.
|
|
1433
|
+
* For complete network sandboxing, we recommend using
|
|
1434
|
+
* container/OS-level sandbox mechanism.
|
|
1424
1435
|
*
|
|
1425
1436
|
* Cannot be used along with {@link ConnectOptions.blocklist}.
|
|
1426
1437
|
*
|
|
@@ -5753,7 +5764,8 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
|
|
|
5753
5764
|
/**
|
|
5754
5765
|
* A target this page was created from.
|
|
5755
5766
|
*
|
|
5756
|
-
* @deprecated
|
|
5767
|
+
* @deprecated To create CDP session use {@link Page.createCDPSession} directly. To
|
|
5768
|
+
* identify pages spawned by this one, use {@link PageEvent.Popup} event instead.
|
|
5757
5769
|
*/
|
|
5758
5770
|
abstract target(): Target;
|
|
5759
5771
|
/**
|
|
@@ -5789,9 +5801,8 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
|
|
|
5789
5801
|
*/
|
|
5790
5802
|
abstract get tracing(): Tracing;
|
|
5791
5803
|
/**
|
|
5792
|
-
* Experimental API for {@link https://github.com/webmachinelearning/webmcp
|
|
5793
|
-
*
|
|
5794
|
-
* `--enable-features=WebMCPTesting,DevToolsWebMCPSupport` flags enabled.
|
|
5804
|
+
* Experimental API for {@link https://github.com/webmachinelearning/webmcp| WebMCP}.
|
|
5805
|
+
* Requires Chrome 150+ with the `--enable-features=WebMCP` flag enabled.
|
|
5795
5806
|
*
|
|
5796
5807
|
* @experimental
|
|
5797
5808
|
*/
|
|
@@ -6829,6 +6840,11 @@ export declare abstract class Page extends EventEmitter<PageEvents> {
|
|
|
6829
6840
|
* ```
|
|
6830
6841
|
*/
|
|
6831
6842
|
abstract emulateMediaFeatures(features?: MediaFeature[]): Promise<void>;
|
|
6843
|
+
/**
|
|
6844
|
+
* @param locale - Locale to emulate on the page. Passing no locale disables
|
|
6845
|
+
* locale emulation.
|
|
6846
|
+
*/
|
|
6847
|
+
abstract emulateLocale(locale?: string): Promise<void>;
|
|
6832
6848
|
/**
|
|
6833
6849
|
* @param timezoneId - Changes the timezone of the page. See
|
|
6834
6850
|
* {@link https://source.chromium.org/chromium/chromium/deps/icu.git/+/faee8bc70570192d82d2978a71e2a615788597d1:source/data/misc/metaZones.txt | ICU’s metaZones.txt}
|
|
@@ -9762,6 +9778,26 @@ export declare abstract class WebWorker extends EventEmitter<WebWorkerEvents> {
|
|
|
9762
9778
|
func: Func | string,
|
|
9763
9779
|
...args: Params
|
|
9764
9780
|
): Promise<HandleFor<Awaited<ReturnType<Func>>>>;
|
|
9781
|
+
/**
|
|
9782
|
+
* Waits for the provided function, `workerFunction`, to return a truthy value when
|
|
9783
|
+
* evaluated in the page's context.
|
|
9784
|
+
*
|
|
9785
|
+
* @param workerFunction - Function to be evaluated in browser context until it
|
|
9786
|
+
* returns a truthy value.
|
|
9787
|
+
* @param options - Options for configuring waiting behavior.
|
|
9788
|
+
*/
|
|
9789
|
+
waitForFunction<
|
|
9790
|
+
Params extends unknown[],
|
|
9791
|
+
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>,
|
|
9792
|
+
>(
|
|
9793
|
+
workerFunction: Func | string,
|
|
9794
|
+
options?: {
|
|
9795
|
+
polling?: number;
|
|
9796
|
+
timeout?: number;
|
|
9797
|
+
signal?: AbortSignal;
|
|
9798
|
+
},
|
|
9799
|
+
...args: Params
|
|
9800
|
+
): Promise<HandleFor<Awaited<ReturnType<Func>>>>;
|
|
9765
9801
|
close(): Promise<void>;
|
|
9766
9802
|
}
|
|
9767
9803
|
|