diff --git a/packages/playwright-core/src/client/android.ts b/packages/playwright-core/src/client/android.ts index 6c7a9e44ae..651bcbe3e9 100644 --- a/packages/playwright-core/src/client/android.ts +++ b/packages/playwright-core/src/client/android.ts @@ -274,8 +274,10 @@ export class AndroidDevice extends ChannelOwner i async launchBrowser(options: types.BrowserContextOptions & { pkg?: string } = {}): Promise { const contextOptions = await prepareBrowserContextParams(options); - const { context } = await this._channel.launchBrowser(contextOptions); - return BrowserContext.from(context) as BrowserContext; + const result = await this._channel.launchBrowser(contextOptions); + const context = BrowserContext.from(result.context) as BrowserContext; + context._setOptions(contextOptions, {}); + return context; } async waitForEvent(event: string, optionsOrPredicate: types.WaitForEventOptions = {}): Promise { diff --git a/tests/android/browser.spec.ts b/tests/android/browser.spec.ts index 2590ef791b..d1b54206b9 100644 --- a/tests/android/browser.spec.ts +++ b/tests/android/browser.spec.ts @@ -14,6 +14,7 @@ * limitations under the License. */ +import fs from 'fs'; import { androidTest as test, expect } from './androidTest'; test.afterAll(async ({ androidDevice }) => { @@ -155,3 +156,19 @@ test('should be able to pass context options', async ({ androidDevice, httpsServ expect(await page.evaluate(() => matchMedia('(prefers-color-scheme: light)').matches)).toBe(false); await context.close(); }); + +test('should record har', async ({ androidDevice }) => { + test.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/28015' }); + const harPath = test.info().outputPath('test.har'); + + const context = await androidDevice.launchBrowser({ + recordHar: { path: harPath } + }); + const [page] = context.pages(); + await page.goto('data:text/html,Hello'); + await page.waitForLoadState('domcontentloaded'); + await context.close(); + + const log = JSON.parse(fs.readFileSync(harPath).toString())['log']; + expect(log.pages[0].title).toBe('Hello'); +});