diff --git a/packages/playwright-core/src/client/playwright.ts b/packages/playwright-core/src/client/playwright.ts index 7fcfd87201..0df04d6143 100644 --- a/packages/playwright-core/src/client/playwright.ts +++ b/packages/playwright-core/src/client/playwright.ts @@ -46,7 +46,7 @@ export class Playwright extends ChannelOwner { this.webkit._playwright = this; this._android = Android.from(initializer.android); this._electron = Electron.from(initializer.electron); - this._experimentalBidiFirefox = BrowserType.from(initializer.bidiFirefox); + this._experimentalBidiFirefox = BrowserType.from(initializer.bidi); this._experimentalBidiFirefox._playwright = this; this.devices = this._connection.localUtils()?.devices ?? {}; this.selectors = new Selectors(); diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index 8ba64ceec8..0ec06e23b3 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -321,7 +321,7 @@ scheme.RootInitializeResult = tObject({ }); scheme.PlaywrightInitializer = tObject({ chromium: tChannel(['BrowserType']), - bidiFirefox: tChannel(['BrowserType']), + bidi: tChannel(['BrowserType']), firefox: tChannel(['BrowserType']), webkit: tChannel(['BrowserType']), android: tChannel(['Android']), diff --git a/packages/playwright-core/src/server/bidi/bidiFirefox.ts b/packages/playwright-core/src/server/bidi/bidiFirefox.ts index 17382eabe5..1cb82a41b5 100644 --- a/packages/playwright-core/src/server/bidi/bidiFirefox.ts +++ b/packages/playwright-core/src/server/bidi/bidiFirefox.ts @@ -30,7 +30,7 @@ import { kBrowserCloseMessageId } from './bidiConnection'; export class BidiFirefox extends BrowserType { constructor(parent: SdkObject) { - super(parent, 'bidi-firefox'); + super(parent, 'firefox'); this._useBidi = true; } diff --git a/packages/playwright-core/src/server/bidi/bidiPage.ts b/packages/playwright-core/src/server/bidi/bidiPage.ts index 5eb785077f..0028b9fc95 100644 --- a/packages/playwright-core/src/server/bidi/bidiPage.ts +++ b/packages/playwright-core/src/server/bidi/bidiPage.ts @@ -39,7 +39,6 @@ export class BidiPage implements PageDelegate { readonly rawKeyboard: RawKeyboardImpl; readonly rawTouchscreen: RawTouchscreenImpl; readonly _page: Page; - // private readonly _pagePromise = new ManualPromise(); private readonly _pagePromise: Promise; readonly _session: BidiSession; readonly _opener: BidiPage | null; @@ -98,7 +97,6 @@ export class BidiPage implements PageDelegate { private _handleFrameTree(frameTree: bidi.BrowsingContext.Info) { this._onFrameAttached(frameTree.context, frameTree.parent || null); - // this._onFrameNavigated(frameTree.context, true); if (!frameTree.children) return; @@ -144,18 +142,19 @@ export class BidiPage implements PageDelegate { if (!frame) return; const delegate = new BidiExecutionContext(this._session, realmInfo); - let worldName: types.World|null = null; + let worldName: types.World; if (!realmInfo.sandbox) { worldName = 'main'; // Force creating utility world every time the main world is created (e.g. due to navigation). this._touchUtilityWorld(realmInfo.context); } else if (realmInfo.sandbox === UTILITY_WORLD_NAME) { worldName = 'utility'; + } else { + return; } const context = new dom.FrameExecutionContext(delegate, frame, worldName); (context as any)[contextDelegateSymbol] = delegate; - if (worldName) - frame._contextCreated(worldName, context); + frame._contextCreated(worldName, context); this._realmToContext.set(realmInfo.realm, context); } @@ -426,7 +425,7 @@ export class BidiPage implements PageDelegate { } rafCountForStablePosition(): number { - return process.platform === 'win32' ? 5 : 1; + return 1; } async getContentQuads(handle: dom.ElementHandle): Promise { diff --git a/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts b/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts index 4f39da78e9..cc0a259d75 100644 --- a/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/playwrightDispatcher.ts @@ -44,7 +44,7 @@ export class PlaywrightDispatcher extends Dispatcher bidiFirefoxExecutable, executablePathOrDie: (sdkLanguage: string) => executablePathOrDie('bidi-firefox', bidiFirefoxExecutable, bidiFirefox.installByDefault, sdkLanguage), installType: bidiFirefox.installByDefault ? 'download-by-default' : 'download-on-demand', - _validateHostRequirements: (sdkLanguage: string) => this._validateHostRequirements(sdkLanguage, 'bidi-firefox', bidiFirefox.dir, ['firefox'], [], ['firefox']), + _validateHostRequirements: (sdkLanguage: string) => this._validateHostRequirements(sdkLanguage, 'firefox', bidiFirefox.dir, ['firefox'], [], ['firefox']), downloadURLs: this._downloadURLs(bidiFirefox), browserVersion: bidiFirefox.browserVersion, _install: () => this._downloadExecutable(bidiFirefox, bidiFirefoxExecutable), @@ -741,7 +741,7 @@ export class Registry { return { type: 'channel', name, - browserName: 'bidi-firefox', + browserName: 'firefox', directory: undefined, executablePath: (sdkLanguage: string) => executablePath(sdkLanguage, false), executablePathOrDie: (sdkLanguage: string) => executablePath(sdkLanguage, true)!, diff --git a/packages/protocol/src/channels.ts b/packages/protocol/src/channels.ts index 3047b8f022..0aead445ab 100644 --- a/packages/protocol/src/channels.ts +++ b/packages/protocol/src/channels.ts @@ -560,7 +560,7 @@ export interface RootEvents { // ----------- Playwright ----------- export type PlaywrightInitializer = { chromium: BrowserTypeChannel, - bidiFirefox: BrowserTypeChannel, + bidi: BrowserTypeChannel, firefox: BrowserTypeChannel, webkit: BrowserTypeChannel, android: AndroidChannel, diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index f63d1d1d04..71fd44255d 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -668,7 +668,7 @@ Playwright: initializer: chromium: BrowserType - bidiFirefox: BrowserType + bidi: BrowserType firefox: BrowserType webkit: BrowserType android: Android diff --git a/tests/library/browser.spec.ts b/tests/library/browser.spec.ts index d8404a3ce1..17bdc14213 100644 --- a/tests/library/browser.spec.ts +++ b/tests/library/browser.spec.ts @@ -17,14 +17,6 @@ import { kTargetClosedErrorMessage } from '../config/errors'; import { browserTest as test, expect } from '../config/browserTest'; - -test('create 2 pages', async ({ browser, browserType }) => { - const context = await browser.newContext(); - const page = await context.newPage(); - await page.close(); - await context.close(); -}); - test('should return browserType', function({ browser, browserType }) { expect(browser.browserType()).toBe(browserType); });