diff --git a/packages/playwright-core/src/client/browserContext.ts b/packages/playwright-core/src/client/browserContext.ts index 922fb03bfe..83655887e6 100644 --- a/packages/playwright-core/src/client/browserContext.ts +++ b/packages/playwright-core/src/client/browserContext.ts @@ -426,7 +426,7 @@ export class BrowserContext extends ChannelOwner } async storageState(options: { path?: string, indexedDB?: boolean } = {}): Promise { - const state = await this._channel.storageState({ indexedDB: options.indexedDB ?? true }); + const state = await this._channel.storageState({ indexedDB: options.indexedDB }); if (options.path) { await mkdirIfNeeded(options.path); await fs.promises.writeFile(options.path, JSON.stringify(state, undefined, 2), 'utf8'); diff --git a/packages/playwright-core/src/client/fetch.ts b/packages/playwright-core/src/client/fetch.ts index cb71b38c81..b386575e5c 100644 --- a/packages/playwright-core/src/client/fetch.ts +++ b/packages/playwright-core/src/client/fetch.ts @@ -261,7 +261,7 @@ export class APIRequestContext extends ChannelOwner { - const state = await this._channel.storageState({ indexedDB: options.indexedDB ?? true }); + const state = await this._channel.storageState({ indexedDB: options.indexedDB }); if (options.path) { await mkdirIfNeeded(options.path); await fs.promises.writeFile(options.path, JSON.stringify(state, undefined, 2), 'utf8'); diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index bd686114d8..d1e7c3d63c 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -235,7 +235,7 @@ scheme.APIRequestContextFetchLogResult = tObject({ log: tArray(tString), }); scheme.APIRequestContextStorageStateParams = tObject({ - indexedDB: tBoolean, + indexedDB: tOptional(tBoolean), }); scheme.APIRequestContextStorageStateResult = tObject({ cookies: tArray(tType('NetworkCookie')), @@ -995,7 +995,7 @@ scheme.BrowserContextSetOfflineParams = tObject({ }); scheme.BrowserContextSetOfflineResult = tOptional(tObject({})); scheme.BrowserContextStorageStateParams = tObject({ - indexedDB: tBoolean, + indexedDB: tOptional(tBoolean), }); scheme.BrowserContextStorageStateResult = tObject({ cookies: tArray(tType('NetworkCookie')), diff --git a/packages/playwright-core/src/server/browserContext.ts b/packages/playwright-core/src/server/browserContext.ts index 1fd7f4d6a1..c4469f52b0 100644 --- a/packages/playwright-core/src/server/browserContext.ts +++ b/packages/playwright-core/src/server/browserContext.ts @@ -508,7 +508,7 @@ export abstract class BrowserContext extends SdkObject { this._origins.add(origin); } - async storageState(indexedDB: boolean): Promise { + async storageState(indexedDB = true): Promise { const result: channels.BrowserContextStorageStateResult = { cookies: await this.cookies(), origins: [] diff --git a/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts b/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts index ba600f697e..6c2468176a 100644 --- a/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts +++ b/packages/playwright-core/src/server/dispatchers/networkDispatchers.ts @@ -194,8 +194,8 @@ export class APIRequestContextDispatcher extends Dispatcher { - return this._object.storageState(); + async storageState(params: channels.APIRequestContextStorageStateParams): Promise { + return this._object.storageState(params.indexedDB); } async dispose(params: channels.APIRequestContextDisposeParams, metadata: CallMetadata): Promise { diff --git a/packages/playwright-core/src/server/fetch.ts b/packages/playwright-core/src/server/fetch.ts index 0ecff57a5f..778fbcee95 100644 --- a/packages/playwright-core/src/server/fetch.ts +++ b/packages/playwright-core/src/server/fetch.ts @@ -133,7 +133,7 @@ export abstract class APIRequestContext extends SdkObject { abstract _defaultOptions(): FetchRequestOptions; abstract _addCookies(cookies: channels.NetworkCookie[]): Promise; abstract _cookies(url: URL): Promise; - abstract storageState(indexedDB: boolean): Promise; + abstract storageState(indexedDB?: boolean): Promise; private _storeResponseBody(body: Buffer): string { const uid = createGuid(); @@ -618,7 +618,7 @@ export class BrowserContextAPIRequestContext extends APIRequestContext { return await this._context.cookies(url.toString()); } - override async storageState(indexedDB: boolean): Promise { + override async storageState(indexedDB?: boolean): Promise { return this._context.storageState(indexedDB); } } @@ -684,7 +684,7 @@ export class GlobalAPIRequestContext extends APIRequestContext { return this._cookieStore.cookies(url); } - override async storageState(indexedDB: boolean): Promise { + override async storageState(indexedDB = true): Promise { return { cookies: this._cookieStore.allCookies(), origins: (this._origins || []).map(origin => ({ ...origin, indexedDB: indexedDB ? origin.indexedDB : [] })), diff --git a/packages/protocol/src/channels.d.ts b/packages/protocol/src/channels.d.ts index ed3365796c..522bbb779e 100644 --- a/packages/protocol/src/channels.d.ts +++ b/packages/protocol/src/channels.d.ts @@ -403,10 +403,10 @@ export type APIRequestContextFetchLogResult = { log: string[], }; export type APIRequestContextStorageStateParams = { - indexedDB: boolean, + indexedDB?: boolean, }; export type APIRequestContextStorageStateOptions = { - + indexedDB?: boolean, }; export type APIRequestContextStorageStateResult = { cookies: NetworkCookie[], @@ -1802,10 +1802,10 @@ export type BrowserContextSetOfflineOptions = { }; export type BrowserContextSetOfflineResult = void; export type BrowserContextStorageStateParams = { - indexedDB: boolean, + indexedDB?: boolean, }; export type BrowserContextStorageStateOptions = { - + indexedDB?: boolean, }; export type BrowserContextStorageStateResult = { cookies: NetworkCookie[], diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index d2eb339d1e..316ac8c2a8 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -377,7 +377,7 @@ APIRequestContext: storageState: parameters: - indexedDB: boolean + indexedDB: boolean? returns: cookies: type: array @@ -1237,7 +1237,7 @@ BrowserContext: storageState: parameters: - indexedDB: boolean + indexedDB: boolean? returns: cookies: type: array