From 7b5eabcc37dcc6e867f81d7e4e965f945495db64 Mon Sep 17 00:00:00 2001 From: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com> Date: Wed, 20 Sep 2023 16:39:36 +0200 Subject: [PATCH] chore: BiDi setCacheEnabled (#10961) --- docs/api/puppeteer.page.setcacheenabled.md | 2 +- packages/puppeteer-core/src/api/Page.ts | 5 +---- packages/puppeteer-core/src/bidi/Page.ts | 7 +++++++ test/TestExpectations.json | 6 ++++++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/docs/api/puppeteer.page.setcacheenabled.md b/docs/api/puppeteer.page.setcacheenabled.md index 4dfebde4..4c80c3bf 100644 --- a/docs/api/puppeteer.page.setcacheenabled.md +++ b/docs/api/puppeteer.page.setcacheenabled.md @@ -10,7 +10,7 @@ Toggles ignoring cache for each request based on the enabled state. By default, ```typescript class Page { - setCacheEnabled(enabled?: boolean): Promise; + abstract setCacheEnabled(enabled?: boolean): Promise; } ``` diff --git a/packages/puppeteer-core/src/api/Page.ts b/packages/puppeteer-core/src/api/Page.ts index d8a79cc6..e9d706e1 100644 --- a/packages/puppeteer-core/src/api/Page.ts +++ b/packages/puppeteer-core/src/api/Page.ts @@ -2274,10 +2274,7 @@ export abstract class Page extends EventEmitter { * @param enabled - sets the `enabled` state of cache * @defaultValue `true` */ - async setCacheEnabled(enabled?: boolean): Promise; - async setCacheEnabled(): Promise { - throw new Error('Not implemented'); - } + abstract setCacheEnabled(enabled?: boolean): Promise; /** * @internal diff --git a/packages/puppeteer-core/src/bidi/Page.ts b/packages/puppeteer-core/src/bidi/Page.ts index a149bfad..cfa7763d 100644 --- a/packages/puppeteer-core/src/bidi/Page.ts +++ b/packages/puppeteer-core/src/bidi/Page.ts @@ -744,6 +744,13 @@ export class BidiPage extends Page { override isDragInterceptionEnabled(): boolean { return false; } + + override async setCacheEnabled(enabled?: boolean): Promise { + // TODO: handle CDP-specific cases such as mprach. + await this._client().send('Network.setCacheDisabled', { + cacheDisabled: !enabled, + }); + } } function isConsoleLogEntry( diff --git a/test/TestExpectations.json b/test/TestExpectations.json index 8f91c415..ae6f0bc5 100644 --- a/test/TestExpectations.json +++ b/test/TestExpectations.json @@ -4174,5 +4174,11 @@ "platforms": ["darwin", "linux", "win32"], "parameters": ["cdp", "chrome", "new-headless", "tabTarget"], "expectations": ["FAIL"] + }, + { + "testIdPattern": "[page.spec] Page Page.setCacheEnabled should enable or disable the cache based on the state passed", + "platforms": ["darwin", "linux", "win32"], + "parameters": ["chrome", "webDriverBiDi"], + "expectations": ["PASS"] } ]