diff options
Diffstat (limited to '')
-rw-r--r-- | remote/test/puppeteer/packages/puppeteer-core/src/cdp/Browser.ts | 93 |
1 files changed, 2 insertions, 91 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Browser.ts b/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Browser.ts index 5c8a4c24da..9ae2cbfff1 100644 --- a/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Browser.ts +++ b/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Browser.ts @@ -12,20 +12,18 @@ import type {DebugInfo} from '../api/Browser.js'; import { Browser as BrowserBase, BrowserEvent, - WEB_PERMISSION_TO_PROTOCOL_PERMISSION, type BrowserCloseCallback, type BrowserContextOptions, type IsPageTargetCallback, - type Permission, type TargetFilterCallback, } from '../api/Browser.js'; -import {BrowserContext, BrowserContextEvent} from '../api/BrowserContext.js'; +import {BrowserContextEvent} from '../api/BrowserContext.js'; import {CDPSessionEvent, type CDPSession} from '../api/CDPSession.js'; import type {Page} from '../api/Page.js'; import type {Target} from '../api/Target.js'; import type {Viewport} from '../common/Viewport.js'; -import {assert} from '../util/assert.js'; +import {CdpBrowserContext} from './BrowserContext.js'; import {ChromeTargetManager} from './ChromeTargetManager.js'; import type {Connection} from './Connection.js'; import {FirefoxTargetManager} from './FirefoxTargetManager.js'; @@ -424,90 +422,3 @@ export class CdpBrowser extends BrowserBase { }; } } - -/** - * @internal - */ -export class CdpBrowserContext extends BrowserContext { - #connection: Connection; - #browser: CdpBrowser; - #id?: string; - - constructor(connection: Connection, browser: CdpBrowser, contextId?: string) { - super(); - this.#connection = connection; - this.#browser = browser; - this.#id = contextId; - } - - override get id(): string | undefined { - return this.#id; - } - - override targets(): CdpTarget[] { - return this.#browser.targets().filter(target => { - return target.browserContext() === this; - }); - } - - override async pages(): Promise<Page[]> { - const pages = await Promise.all( - this.targets() - .filter(target => { - return ( - target.type() === 'page' || - (target.type() === 'other' && - this.#browser._getIsPageTargetCallback()?.(target)) - ); - }) - .map(target => { - return target.page(); - }) - ); - return pages.filter((page): page is Page => { - return !!page; - }); - } - - override isIncognito(): boolean { - return !!this.#id; - } - - override async overridePermissions( - origin: string, - permissions: Permission[] - ): Promise<void> { - const protocolPermissions = permissions.map(permission => { - const protocolPermission = - WEB_PERMISSION_TO_PROTOCOL_PERMISSION.get(permission); - if (!protocolPermission) { - throw new Error('Unknown permission: ' + permission); - } - return protocolPermission; - }); - await this.#connection.send('Browser.grantPermissions', { - origin, - browserContextId: this.#id || undefined, - permissions: protocolPermissions, - }); - } - - override async clearPermissionOverrides(): Promise<void> { - await this.#connection.send('Browser.resetPermissions', { - browserContextId: this.#id || undefined, - }); - } - - override newPage(): Promise<Page> { - return this.#browser._createPageInContext(this.#id); - } - - override browser(): CdpBrowser { - return this.#browser; - } - - override async close(): Promise<void> { - assert(this.#id, 'Non-incognito profiles cannot be closed!'); - await this.#browser._disposeContext(this.#id); - } -} |