From bcc85a0969077d122e5d8d2fb5c1061999a8ae48 Mon Sep 17 00:00:00 2001 From: Jan Scheffler Date: Wed, 5 May 2021 09:50:50 +0200 Subject: [PATCH] fix: make targetFilter synchronous (#7203) --- docs/api.md | 4 ++-- src/common/Browser.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/api.md b/docs/api.md index 52700f00..fc03d7f5 100644 --- a/docs/api.md +++ b/docs/api.md @@ -516,7 +516,7 @@ Clears all registered handlers. - `slowMo` <[number]> Slows down Puppeteer operations by the specified amount of milliseconds. Useful so that you can see what is going on. - `transport` <[ConnectionTransport]> **Experimental** Specify a custom transport object for Puppeteer to use. - `product` <[string]> Possible values are: `chrome`, `firefox`. Defaults to `chrome`. - - `targetFilter` |[boolean]> Use this function to decide if Puppeteer should connect to the given target. If a `targetFilter` is provided, Puppeteer only connects to targets for which `targetFilter` returns `true`. By default, Puppeteer connects to all available targets. + - `targetFilter` Use this function to decide if Puppeteer should connect to the given target. If a `targetFilter` is provided, Puppeteer only connects to targets for which `targetFilter` returns `true`. By default, Puppeteer connects to all available targets. - returns: <[Promise]<[Browser]>> This methods attaches Puppeteer to an existing browser instance. @@ -624,7 +624,7 @@ try { - `devtools` <[boolean]> Whether to auto-open a DevTools panel for each tab. If this option is `true`, the `headless` option will be set `false`. - `pipe` <[boolean]> Connects to the browser over a pipe instead of a WebSocket. Defaults to `false`. - `extraPrefsFirefox` <[Object]> Additional [preferences](https://developer.mozilla.org/en-US/docs/Mozilla/Preferences/Preference_reference) that can be passed to Firefox (see `PUPPETEER_PRODUCT`) - - `targetFilter` |[boolean]> Use this function to decide if Puppeteer should connect to the given target. If a `targetFilter` is provided, Puppeteer only connects to targets for which `targetFilter` returns `true`. By default, Puppeteer connects to all available targets. + - `targetFilter` Use this function to decide if Puppeteer should connect to the given target. If a `targetFilter` is provided, Puppeteer only connects to targets for which `targetFilter` returns `true`. By default, Puppeteer connects to all available targets. - returns: <[Promise]<[Browser]>> Promise which resolves to browser instance. You can use `ignoreDefaultArgs` to filter out `--mute-audio` from default arguments: diff --git a/src/common/Browser.ts b/src/common/Browser.ts index d4acb4cf..ea40dd31 100644 --- a/src/common/Browser.ts +++ b/src/common/Browser.ts @@ -34,7 +34,7 @@ export type BrowserCloseCallback = () => Promise | void; */ export type TargetFilterCallback = ( target: Protocol.Target.TargetInfo -) => Promise | boolean; +) => boolean; const WEB_PERMISSION_TO_PROTOCOL_PERMISSION = new Map< Permission, @@ -342,7 +342,7 @@ export class Browser extends EventEmitter { ? this._contexts.get(browserContextId) : this._defaultContext; - const shouldAttachToTarget = await this._targetFilterCallback(targetInfo); + const shouldAttachToTarget = this._targetFilterCallback(targetInfo); if (!shouldAttachToTarget) { return; }