diff --git a/docs/src/api/class-browsercontext.md b/docs/src/api/class-browsercontext.md index aa58a05c6d..681823e8a5 100644 --- a/docs/src/api/class-browsercontext.md +++ b/docs/src/api/class-browsercontext.md @@ -1024,9 +1024,9 @@ await browserContext.removeCookies({ path: '/api/v1' }); await browserContext.removeCookies({ name: 'session-id', domain: 'my-origin.com' }); ``` -### param: BrowserContext.removeCookies.cookies +### param: BrowserContext.removeCookies.criteria * since: v1.43 -- `cookies` <[Object]> +- `criteria` <[Object]> - `name` ?<[string]> - `domain` ?<[string]> - `path` ?<[string]> diff --git a/packages/playwright-core/src/client/browserContext.ts b/packages/playwright-core/src/client/browserContext.ts index 47fbc0317e..9d48a65c59 100644 --- a/packages/playwright-core/src/client/browserContext.ts +++ b/packages/playwright-core/src/client/browserContext.ts @@ -269,8 +269,8 @@ export class BrowserContext extends ChannelOwner await this._channel.clearCookies(); } - async removeCookies(cookies: network.RemoveNetworkCookieParam): Promise { - await this._channel.removeCookies({ cookies }); + async removeCookies(criteria: network.RemoveNetworkCookieParam): Promise { + await this._channel.removeCookies({ criteria }); } async grantPermissions(permissions: string[], options?: { origin?: string }): Promise { diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index 32019c67c1..06c4160e12 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -829,7 +829,7 @@ scheme.BrowserContextAddInitScriptResult = tOptional(tObject({})); scheme.BrowserContextClearCookiesParams = tOptional(tObject({})); scheme.BrowserContextClearCookiesResult = tOptional(tObject({})); scheme.BrowserContextRemoveCookiesParams = tObject({ - cookies: tObject({ + criteria: tObject({ name: tOptional(tString), domain: tOptional(tString), path: tOptional(tString), diff --git a/packages/playwright-core/src/server/browserContext.ts b/packages/playwright-core/src/server/browserContext.ts index 1217049a77..33a1109d50 100644 --- a/packages/playwright-core/src/server/browserContext.ts +++ b/packages/playwright-core/src/server/browserContext.ts @@ -276,20 +276,20 @@ export abstract class BrowserContext extends SdkObject { return await this.doGetCookies(urls as string[]); } - async removeCookies(cookies: {name?: string, domain?: string, path?: string}): Promise { - const setCookies = await this.cookies(); - - if (!cookies.name && !cookies.domain && !cookies.path) + async removeCookies(criteria: {name?: string, domain?: string, path?: string}): Promise { + if (!criteria.name && !criteria.domain && !criteria.path) return; - const filteredCookies = setCookies.filter(cookie => { - return !((!cookies.name || cookies.name === cookie.name) && - (!cookies.domain || cookies.domain === cookie.domain) && - (!cookies.path || cookies.path === cookie.path)); + const currentCookies = await this.cookies(); + + const cookiesToKeep = currentCookies.filter(cookie => { + return !((!criteria.name || criteria.name === cookie.name) && + (!criteria.domain || criteria.domain === cookie.domain) && + (!criteria.path || criteria.path === cookie.path)); }); await this.clearCookies(); - await this.addCookies(filteredCookies); + await this.addCookies(cookiesToKeep); } setHTTPCredentials(httpCredentials?: types.Credentials): Promise { diff --git a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts index 34edf24cfb..fc8b35825b 100644 --- a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts @@ -225,7 +225,7 @@ export class BrowserContextDispatcher extends Dispatcher { - await this._context.removeCookies(params.cookies); + await this._context.removeCookies(params.criteria); } async grantPermissions(params: channels.BrowserContextGrantPermissionsParams): Promise { diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index b04f16e603..5fa04dd43e 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -8450,9 +8450,9 @@ export interface BrowserContext { * await browserContext.removeCookies({ name: 'session-id', domain: 'my-origin.com' }); * ``` * - * @param cookies + * @param criteria */ - removeCookies(cookies: { + removeCookies(criteria: { name?: string; domain?: string; diff --git a/packages/protocol/src/channels.ts b/packages/protocol/src/channels.ts index d7e5bbd1b0..4f214df7f9 100644 --- a/packages/protocol/src/channels.ts +++ b/packages/protocol/src/channels.ts @@ -1525,7 +1525,7 @@ export type BrowserContextClearCookiesParams = {}; export type BrowserContextClearCookiesOptions = {}; export type BrowserContextClearCookiesResult = void; export type BrowserContextRemoveCookiesParams = { - cookies: { + criteria: { name?: string, domain?: string, path?: string, diff --git a/packages/protocol/src/protocol.yml b/packages/protocol/src/protocol.yml index b22c1269dd..0b3b387fe6 100644 --- a/packages/protocol/src/protocol.yml +++ b/packages/protocol/src/protocol.yml @@ -1034,7 +1034,7 @@ BrowserContext: removeCookies: parameters: - cookies: + criteria: type: object properties: name: string?