@cloudflare/puppeteer
Version:
A high-level API to control headless Chrome over the DevTools Protocol
88 lines • 2.66 kB
TypeScript
import { launch } from '@puppeteer/browsers';
import type { Browser } from '../api/Browser.js';
import { Connection } from '../cdp/Connection.js';
import type { Product } from '../common/Product.js';
import type { BrowserLaunchArgumentOptions, ChromeReleaseChannel, PuppeteerNodeLaunchOptions } from './LaunchOptions.js';
import type { PuppeteerNode } from './PuppeteerNode.js';
/**
* @internal
*/
export interface ResolvedLaunchArgs {
isTempUserDataDir: boolean;
userDataDir: string;
executablePath: string;
args: string[];
}
/**
* Describes a launcher - a class that is able to create and launch a browser instance.
*
* @public
*/
export declare abstract class ProductLauncher {
#private;
/**
* @internal
*/
puppeteer: PuppeteerNode;
/**
* @internal
*/
protected actualBrowserRevision?: string;
/**
* @internal
*/
constructor(puppeteer: PuppeteerNode, product: Product);
get product(): Product;
launch(options?: PuppeteerNodeLaunchOptions): Promise<Browser>;
abstract executablePath(channel?: ChromeReleaseChannel): string;
abstract defaultArgs(object: BrowserLaunchArgumentOptions): string[];
/**
* Set only for Firefox, after the launcher resolves the `latest` revision to
* the actual revision.
* @internal
*/
getActualBrowserRevision(): string | undefined;
/**
* @internal
*/
protected abstract computeLaunchArguments(options: PuppeteerNodeLaunchOptions): Promise<ResolvedLaunchArgs>;
/**
* @internal
*/
protected abstract cleanUserDataDir(path: string, opts: {
isTemp: boolean;
}): Promise<void>;
/**
* @internal
*/
protected closeBrowser(browserProcess: ReturnType<typeof launch>, cdpConnection?: Connection): Promise<void>;
/**
* @internal
*/
protected waitForPageTarget(browser: Browser, timeout: number): Promise<void>;
/**
* @internal
*/
protected createCdpSocketConnection(browserProcess: ReturnType<typeof launch>, opts: {
timeout: number;
protocolTimeout: number | undefined;
slowMo: number;
}): Promise<Connection>;
/**
* @internal
*/
protected createCdpPipeConnection(browserProcess: ReturnType<typeof launch>, opts: {
timeout: number;
protocolTimeout: number | undefined;
slowMo: number;
}): Promise<Connection>;
/**
* @internal
*/
protected getProfilePath(): string;
/**
* @internal
*/
protected resolveExecutablePath(headless?: boolean | 'shell'): string;
}
//# sourceMappingURL=ProductLauncher.d.ts.map