Upgrading puppeteer 22 to 23
Breaking22.15.0 → 23.11.1Breaking3New8Changed29Fixed2Other2
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- Remove support for NPM configuration.
- Rename product to browser.
- Support multiple browser downloads for Puppeteer.
Must act 3 items need code or config changes
Adds chromium-bidi 0.11.0, typed-query-selector ^2.12.0.
What you must change
Breaking3
Remove support for NPM configuration.
Rename product to browser.
Support multiple browser downloads for Puppeteer.
API changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- removed:
function downloadBrowser(): Promise<void> - added:
function downloadBrowsers(): Promise<void>
- changed:
const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode
- removed:
function downloadBrowser(): Promise<void> - added:
function downloadBrowsers(): Promise<void>
- changed:
const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode
- removed:
abstract class ProductLauncher - removed:
abstract method BrowserContext.isIncognito(): boolean - removed:
abstract method Frame.isOOPFrame(): boolean - removed:
abstract method ProductLauncher.defaultArgs(object: BrowserLaunchArgumentOptions): string[] - removed:
abstract method ProductLauncher.executablePath(channel?: ChromeReleaseChannel): string - removed:
function clearCustomQueryHandlers(): void - removed:
function customQueryHandlerNames(): string[] - removed:
function registerCustomQueryHandler(name: string, handler: CustomQueryHandler): void - removed:
function unregisterCustomQueryHandler(name: string): void - removed:
get ProductLauncher.product(): Product - removed:
get PuppeteerNode.defaultProduct(): Product - removed:
get PuppeteerNode.lastLaunchedProduct(): Product - removed:
interface BrowserConnectOptions - removed:
interface BrowserLaunchArgumentOptions - removed:
interface PuppeteerLaunchOptions extends LaunchOptions, BrowserLaunchArgumentOptions, BrowserConnectOptions - removed:
method ProductLauncher.launch(options?: PuppeteerNodeLaunchOptions): Promise<Browser> - removed:
property BrowserConnectOptions.defaultViewport?: Viewport | null - removed:
property BrowserConnectOptions.ignoreHTTPSErrors?: boolean - removed:
property BrowserConnectOptions.protocol?: ProtocolType - removed:
property BrowserConnectOptions.protocolTimeout?: number - removed:
property BrowserConnectOptions.slowMo?: number - removed:
property BrowserConnectOptions.targetFilter?: TargetFilterCallback - removed:
property BrowserLaunchArgumentOptions.args?: string[] - removed:
property BrowserLaunchArgumentOptions.debuggingPort?: number - removed:
property BrowserLaunchArgumentOptions.devtools?: boolean - removed:
property BrowserLaunchArgumentOptions.headless?: boolean | 'shell' - removed:
property BrowserLaunchArgumentOptions.userDataDir?: string - removed:
property Configuration.browserRevision?: string - removed:
property Configuration.defaultProduct?: Product - removed:
property Configuration.downloadBaseUrl?: string - removed:
property Configuration.skipChromeDownload?: boolean - removed:
property Configuration.skipChromeHeadlessShellDownload?: boolean - removed:
property LaunchOptions.product?: Product - removed:
property PuppeteerLaunchOptions.extraPrefsFirefox?: Record<string, unknown> - removed:
property PuppeteerLaunchOptions.product?: Product - removed:
type Product = 'chrome' | 'firefox' - changed:
abstract method HTTPResponse.buffer(): Promise<Buffer> → method HTTPResponse.buffer(): Promise<Buffer> - changed:
abstract method Page.pdf(options?: PDFOptions): Promise<Buffer> → abstract method Page.pdf(options?: PDFOptions): Promise<Uint8Array> - changed:
abstract method Touchscreen.touchEnd(): Promise<void> → method Touchscreen.touchEnd(): Promise<void> - changed:
abstract method Touchscreen.touchMove(x: number, y: number): Promise<void> → method Touchscreen.touchMove(x: number, y: number): Promise<void> - changed:
abstract method Touchscreen.touchStart(x: number, y: number): Promise<void> → abstract method Touchscreen.touchStart(x: number, y: number): Promise<TouchHandle> - changed:
const puppeteer: PuppeteerNode → const puppeteer: PuppeteerCore.PuppeteerNode - changed:
constructor Connection(url: string, transport: ConnectionTransport, delay?: number, timeout?: number) → constructor Connection(url: string, transport: ConnectionTransport, delay?: number, timeout?: number, rawErrors?: boolean) - changed:
interface ConnectOptions extends BrowserConnectOptions → interface ConnectOptions - changed:
interface LaunchOptions → interface LaunchOptions extends ConnectOptions - changed:
method ElementHandle.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Buffer> → method ElementHandle.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Uint8Array> - changed:
method ElementHandle.touchMove(this: ElementHandle<Element>): Promise<void> → method ElementHandle.touchMove(this: ElementHandle<Element>, touch?: TouchHandle): Promise<void> - changed:
method ElementHandle.touchStart(this: ElementHandle<Element>): Promise<void> → method ElementHandle.touchStart(this: ElementHandle<Element>): Promise<TouchHandle> - changed:
method Page.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Buffer> → method Page.screenshot(options?: Readonly<ScreenshotOptions>): Promise<Uint8Array> - changed:
method PuppeteerNode.defaultArgs(options?: BrowserLaunchArgumentOptions): string[] → method PuppeteerNode.defaultArgs(options?: LaunchOptions): string[] - changed:
method PuppeteerNode.executablePath(channel?: ChromeReleaseChannel): string → method PuppeteerNode.executablePath(): string - changed:
method PuppeteerNode.launch(options?: PuppeteerLaunchOptions): Promise<Browser> → method PuppeteerNode.launch(options?: LaunchOptions): Promise<Browser> - changed:
method Tracing.stop(): Promise<Buffer | undefined> → method Tracing.stop(): Promise<Uint8Array | undefined> - changed:
property Cookie.partitionKey?: string → property Cookie.partitionKey?: CookiePartitionKey | string - changed:
property CookieParam.partitionKey?: string → property CookieParam.partitionKey?: CookiePartitionKey | string - changed:
property ResponseForRequest.headers: Record<string, unknown> → property ResponseForRequest.headers: Record<string, string | string[] | unknown> - changed:
type NodeFor<ComplexSelector extends string> = TypeSelectorOfComplexSelector<ComplexSelector> extends infer TypeSelector ? TypeSelector extends keyof HTMLElementTagNameMap | keyof SVGElementTagNameMap ? Ele… → type NodeFor<ComplexSelector extends string> = ParseSelector<ComplexSelector> - changed:
type PuppeteerNodeLaunchOptions = BrowserLaunchArgumentOptions & LaunchOptions & BrowserConnectOptions → type PuppeteerNodeLaunchOptions = LaunchOptions - added:
abstract class BrowserLauncher - added:
abstract method BrowserContext.cookies(): Promise<Cookie[]> - added:
abstract method BrowserContext.setCookie(...cookies: CookieData[]): Promise<void> - added:
abstract method BrowserLauncher.defaultArgs(object: LaunchOptions): string[] - added:
abstract method BrowserLauncher.executablePath(channel?: ChromeReleaseChannel, validatePath?: boolean): string - added:
abstract method ElementHandle.backendNodeId(): Promise<number> - added:
abstract method HTTPResponse.content(): Promise<Uint8Array> - added:
abstract method Page.getDefaultNavigationTimeout(): number - added:
class TouchError extends PuppeteerError - added:
export { Session } - added:
function convertCookiesPartitionKeyFromPuppeteerToCdp(partitionKey: CookiePartitionKey | string | undefined): Protocol.Network.CookiePartitionKey | undefined - added:
get BrowserLauncher.browser(): SupportedBrowser - added:
get PuppeteerNode.defaultBrowser(): SupportedBrowser - added:
get PuppeteerNode.lastLaunchedBrowser(): SupportedBrowser - added:
interface ChromeHeadlessShellSettings - added:
interface ChromeSettings - added:
interface CookieData - added:
interface CookiePartitionKey - added:
interface DownloadBehavior - added:
interface FirefoxSettings - added:
interface SupportedWebDriverCapabilities - added:
interface TouchHandle - added:
method Browser.cookies(): Promise<Cookie[]> - added:
method Browser.deleteCookie(...cookies: Cookie[]): Promise<void> - added:
method Browser.setCookie(...cookies: Cookie[]): Promise<void> - added:
method BrowserContext.deleteCookie(...cookies: Cookie[]): Promise<void> - added:
method BrowserLauncher.launch(options?: LaunchOptions): Promise<Browser> - added:
method PuppeteerNode.executablePath(channel: ChromeReleaseChannel): string - added:
method PuppeteerNode.executablePath(options: LaunchOptions): string - added:
method TouchHandle.end(): Promise<void> - added:
method TouchHandle.move(x: number, y: number): Promise<void> - added:
property BrowserContextOptions.downloadBehavior?: DownloadBehavior - added:
property ChromeHeadlessShellSettings.downloadBaseUrl?: string - added:
property ChromeHeadlessShellSettings.skipDownload?: boolean - added:
property ChromeHeadlessShellSettings.version?: string - added:
property ChromeSettings.downloadBaseUrl?: string - added:
property ChromeSettings.skipDownload?: boolean - added:
property ChromeSettings.version?: string - added:
property Configuration.chrome?: ChromeSettings - added:
property Configuration.defaultBrowser?: SupportedBrowser - added:
property Configuration.firefox?: FirefoxSettings - added:
property Configuration['chrome-headless-shell']?: ChromeHeadlessShellSettings - added:
property ConnectOptions.acceptInsecureCerts?: boolean - added:
property ConnectOptions.capabilities?: SupportedWebDriverCapabilities - added:
property ConnectOptions.defaultViewport?: Viewport | null - added:
property ConnectOptions.downloadBehavior?: DownloadBehavior - added:
property ConnectOptions.protocol?: ProtocolType - added:
property ConnectOptions.protocolTimeout?: number - added:
property ConnectOptions.slowMo?: number - added:
property ConnectOptions.targetFilter?: TargetFilterCallback - added:
property CookieData.domain: string - added:
property CookieData.expires?: number - added:
property CookieData.httpOnly?: boolean - added:
property CookieData.name: string - added:
property CookieData.partitionKey?: CookiePartitionKey | string - added:
property CookieData.path?: string - added:
property CookieData.priority?: CookiePriority - added:
property CookieData.sameParty?: boolean - added:
property CookieData.sameSite?: CookieSameSite - added:
property CookieData.secure?: boolean - added:
property CookieData.sourceScheme?: CookieSourceScheme - added:
property CookieData.value: string - added:
property CookiePartitionKey.hasCrossSiteAncestor?: boolean - added:
property CookiePartitionKey.sourceOrigin: string - added:
property DeleteCookiesRequest.partitionKey?: CookiePartitionKey | string - added:
property DownloadBehavior.downloadPath?: string - added:
property DownloadBehavior.policy: DownloadPolicy - added:
property FirefoxSettings.downloadBaseUrl?: string - added:
property FirefoxSettings.skipDownload?: boolean - added:
property FirefoxSettings.version?: string - added:
property LaunchOptions.args?: string[] - added:
property LaunchOptions.browser?: SupportedBrowser - added:
property LaunchOptions.debuggingPort?: number - added:
property LaunchOptions.devtools?: boolean - added:
property LaunchOptions.headless?: boolean | 'shell' - added:
property LaunchOptions.userDataDir?: string - added:
property SnapshotOptions.includeIframes?: boolean - added:
property SupportedWebDriverCapabilities.alwaysMatch?: SupportedWebDriverCapability - added:
property SupportedWebDriverCapabilities.firstMatch?: SupportedWebDriverCapability[] - added:
property WaitForTargetOptions.signal?: AbortSignal - added:
type BrowserConnectOptions = ConnectOptions - added:
type BrowserLaunchArgumentOptions = LaunchOptions - added:
type DownloadPolicy = 'deny' | 'allow' | 'allowAndName' | 'default' - added:
type PuppeteerLaunchOptions = LaunchOptions - added:
type SupportedBrowser = 'chrome' | 'firefox' - added:
type SupportedWebDriverCapability = Exclude<Session.CapabilityRequest, 'unhandledPromptBehavior' | 'acceptInsecureCerts'>