feat(playwright-core): add remove cookies api
Change removeCookies signature and logic
This commit is contained in:
parent
a4b39a3353
commit
32fd26cdff
|
|
@ -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]>
|
||||
|
|
|
|||
|
|
@ -269,8 +269,8 @@ export class BrowserContext extends ChannelOwner<channels.BrowserContextChannel>
|
|||
await this._channel.clearCookies();
|
||||
}
|
||||
|
||||
async removeCookies(cookies: network.RemoveNetworkCookieParam): Promise<void> {
|
||||
await this._channel.removeCookies({ cookies });
|
||||
async removeCookies(criteria: network.RemoveNetworkCookieParam): Promise<void> {
|
||||
await this._channel.removeCookies({ criteria });
|
||||
}
|
||||
|
||||
async grantPermissions(permissions: string[], options?: { origin?: string }): Promise<void> {
|
||||
|
|
|
|||
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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<void> {
|
||||
const setCookies = await this.cookies();
|
||||
|
||||
if (!cookies.name && !cookies.domain && !cookies.path)
|
||||
async removeCookies(criteria: {name?: string, domain?: string, path?: string}): Promise<void> {
|
||||
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<void> {
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ export class BrowserContextDispatcher extends Dispatcher<BrowserContext, channel
|
|||
}
|
||||
|
||||
async removeCookies(params: channels.BrowserContextRemoveCookiesParams): Promise<void> {
|
||||
await this._context.removeCookies(params.cookies);
|
||||
await this._context.removeCookies(params.criteria);
|
||||
}
|
||||
|
||||
async grantPermissions(params: channels.BrowserContextGrantPermissionsParams): Promise<void> {
|
||||
|
|
|
|||
4
packages/playwright-core/types/types.d.ts
vendored
4
packages/playwright-core/types/types.d.ts
vendored
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -1034,7 +1034,7 @@ BrowserContext:
|
|||
|
||||
removeCookies:
|
||||
parameters:
|
||||
cookies:
|
||||
criteria:
|
||||
type: object
|
||||
properties:
|
||||
name: string?
|
||||
|
|
|
|||
Loading…
Reference in a new issue