Skip to content

Commit aabdac8

Browse files
authored
api: remove Page.setCacheEnabled (#1231)
1 parent 1bf5b61 commit aabdac8

File tree

8 files changed

+9
-77
lines changed

8 files changed

+9
-77
lines changed

docs/api.md

+2-9
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ Indicates that the browser is connected.
209209
- `locale` <?[string]> Specify user locale, for example `en-GB`, `de-DE`, etc. Locale will affect `navigator.language` value, `Accept-Language` request header value as well as number and date formatting rules.
210210
- `permissions` <[Object]> A map from origin keys to permissions values. See [browserContext.setPermissions](#browsercontextsetpermissionsorigin-permissions) for more details.
211211
- `extraHTTPHeaders` <[Object]> An object containing additional HTTP headers to be sent with every request. All header values must be strings.
212-
- `offline` <[boolean]> Whether to emulate network being offline for the browser context.
212+
- `offline` <[boolean]> Whether to emulate network being offline. Defaults to `false`.
213213
- returns: <[Promise]<[BrowserContext]>>
214214

215215
Creates a new browser context. It won't share cookies/cache with other browser contexts.
@@ -244,7 +244,7 @@ Creates a new browser context. It won't share cookies/cache with other browser c
244244
- `locale` <?[string]> Specify user locale, for example `en-GB`, `de-DE`, etc. Locale will affect `navigator.language` value, `Accept-Language` request header value as well as number and date formatting rules.
245245
- `permissions` <[Object]> A map from origin keys to permissions values. See [browserContext.setPermissions](#browsercontextsetpermissionsorigin-permissions) for more details.
246246
- `extraHTTPHeaders` <[Object]> An object containing additional HTTP headers to be sent with every request. All header values must be strings.
247-
- `offline` <[boolean]> Whether to emulate network being offline for the browser context.
247+
- `offline` <[boolean]> Whether to emulate network being offline. Defaults to `false`.
248248
- returns: <[Promise]<[Page]>>
249249

250250
Creates a new page in a new browser context. Closing this page will close the context as well.
@@ -637,7 +637,6 @@ page.removeListener('request', logRequest);
637637
- [page.route(url, handler)](#pagerouteurl-handler)
638638
- [page.screenshot([options])](#pagescreenshotoptions)
639639
- [page.select(selector, value[, options])](#pageselectselector-value-options)
640-
- [page.setCacheEnabled([enabled])](#pagesetcacheenabledenabled)
641640
- [page.setContent(html[, options])](#pagesetcontenthtml-options)
642641
- [page.setDefaultNavigationTimeout(timeout)](#pagesetdefaultnavigationtimeouttimeout)
643642
- [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout)
@@ -1434,12 +1433,6 @@ page.select('select#colors', { value: 'blue' }, { index: 2 }, 'red');
14341433

14351434
Shortcut for [page.mainFrame().select()](#frameselectselector-values)
14361435

1437-
#### page.setCacheEnabled([enabled])
1438-
- `enabled` <[boolean]> sets the `enabled` state of the cache. Defaults to `true`.
1439-
- returns: <[Promise]>
1440-
1441-
Toggles ignoring cache for each request based on the enabled state. By default, caching is enabled.
1442-
14431436
#### page.setContent(html[, options])
14441437
- `html` <[string]> HTML markup to assign to the page.
14451438
- `options` <[Object]> Parameters which might have the following properties:

src/chromium/crNetworkManager.ts

+2-14
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ export class CRNetworkManager {
3333
private _attemptedAuthentications = new Set<string>();
3434
private _userRequestInterceptionEnabled = false;
3535
private _protocolRequestInterceptionEnabled = false;
36-
private _userCacheDisabled = false;
3736
private _requestIdToInterceptionId = new Map<string, string>();
3837
private _eventListeners: RegisteredListener[];
3938

@@ -77,11 +76,6 @@ export class CRNetworkManager {
7776
});
7877
}
7978

80-
async setCacheEnabled(enabled: boolean) {
81-
this._userCacheDisabled = !enabled;
82-
await this._updateProtocolCacheDisabled();
83-
}
84-
8579
async setRequestInterception(value: boolean) {
8680
this._userRequestInterceptionEnabled = value;
8781
await this._updateProtocolRequestInterception();
@@ -94,26 +88,20 @@ export class CRNetworkManager {
9488
this._protocolRequestInterceptionEnabled = enabled;
9589
if (enabled) {
9690
await Promise.all([
97-
this._updateProtocolCacheDisabled(),
91+
this._client.send('Network.setCacheDisabled', { cacheDisabled: true }),
9892
this._client.send('Fetch.enable', {
9993
handleAuthRequests: true,
10094
patterns: [{urlPattern: '*'}],
10195
}),
10296
]);
10397
} else {
10498
await Promise.all([
105-
this._updateProtocolCacheDisabled(),
99+
this._client.send('Network.setCacheDisabled', { cacheDisabled: false }),
106100
this._client.send('Fetch.disable')
107101
]);
108102
}
109103
}
110104

111-
async _updateProtocolCacheDisabled() {
112-
await this._client.send('Network.setCacheDisabled', {
113-
cacheDisabled: this._userCacheDisabled || this._protocolRequestInterceptionEnabled
114-
});
115-
}
116-
117105
_onRequestWillBeSent(event: Protocol.Network.requestWillBeSentPayload) {
118106
// Request interception doesn't happen for data URLs with Network Service.
119107
if (this._protocolRequestInterceptionEnabled && !event.request.url.startsWith('data:')) {

src/chromium/crPage.ts

-4
Original file line numberDiff line numberDiff line change
@@ -372,10 +372,6 @@ export class CRPage implements PageDelegate {
372372
await this._client.send('Emulation.setEmulatedMedia', { media: mediaType || '', features });
373373
}
374374

375-
setCacheEnabled(enabled: boolean): Promise<void> {
376-
return this._networkManager.setCacheEnabled(enabled);
377-
}
378-
379375
async setRequestInterception(enabled: boolean): Promise<void> {
380376
await this._networkManager.setRequestInterception(enabled);
381377
}

src/firefox/ffPage.ts

-4
Original file line numberDiff line numberDiff line change
@@ -271,10 +271,6 @@ export class FFPage implements PageDelegate {
271271
});
272272
}
273273

274-
async setCacheEnabled(enabled: boolean): Promise<void> {
275-
await this._session.send('Page.setCacheDisabled', {cacheDisabled: !enabled});
276-
}
277-
278274
async setRequestInterception(enabled: boolean): Promise<void> {
279275
await this._networkManager.setRequestInterception(enabled);
280276
}

src/page.ts

-10
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ export interface PageDelegate {
4848
updateExtraHTTPHeaders(): Promise<void>;
4949
setViewportSize(viewportSize: types.Size): Promise<void>;
5050
setEmulateMedia(mediaType: types.MediaType | null, colorScheme: types.ColorScheme | null): Promise<void>;
51-
setCacheEnabled(enabled: boolean): Promise<void>;
5251
setRequestInterception(enabled: boolean): Promise<void>;
5352
authenticate(credentials: types.Credentials | null): Promise<void>;
5453
setFileChooserIntercepted(enabled: boolean): Promise<void>;
@@ -79,7 +78,6 @@ type PageState = {
7978
mediaType: types.MediaType | null;
8079
colorScheme: types.ColorScheme | null;
8180
extraHTTPHeaders: network.Headers | null;
82-
cacheEnabled: boolean | null;
8381
interceptNetwork: boolean | null;
8482
credentials: types.Credentials | null;
8583
hasTouch: boolean | null;
@@ -145,7 +143,6 @@ export class Page extends platform.EventEmitter {
145143
mediaType: null,
146144
colorScheme: null,
147145
extraHTTPHeaders: null,
148-
cacheEnabled: null,
149146
interceptNetwork: null,
150147
credentials: null,
151148
hasTouch: null,
@@ -390,13 +387,6 @@ export class Page extends platform.EventEmitter {
390387
await this._delegate.evaluateOnNewDocument(await helper.evaluationScript(script, args));
391388
}
392389

393-
async setCacheEnabled(enabled: boolean = true) {
394-
if (this._state.cacheEnabled === enabled)
395-
return;
396-
this._state.cacheEnabled = enabled;
397-
await this._delegate.setCacheEnabled(enabled);
398-
}
399-
400390
async route(url: types.URLMatch, handler: (request: network.Request) => void) {
401391
if (!this._state.interceptNetwork) {
402392
this._state.interceptNetwork = true;

src/webkit/wkPage.ts

-7
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,6 @@ export class WKPage implements PageDelegate {
129129

130130
if (this._page._state.interceptNetwork)
131131
promises.push(session.send('Network.setInterceptionEnabled', { enabled: true, interceptRequests: true }));
132-
if (this._page._state.cacheEnabled === false)
133-
promises.push(session.send('Network.setResourceCachingDisabled', { disabled: true }));
134132

135133
const contextOptions = this._page.context()._options;
136134
if (contextOptions.userAgent)
@@ -422,11 +420,6 @@ export class WKPage implements PageDelegate {
422420
await Promise.all(promises);
423421
}
424422

425-
async setCacheEnabled(enabled: boolean): Promise<void> {
426-
const disabled = !enabled;
427-
await this._updateState('Network.setResourceCachingDisabled', { disabled });
428-
}
429-
430423
async setRequestInterception(enabled: boolean): Promise<void> {
431424
await this._updateState('Network.setInterceptionEnabled', { enabled, interceptRequests: enabled });
432425
}

test/navigation.spec.js

+5-6
Original file line numberDiff line numberDiff line change
@@ -1027,22 +1027,21 @@ module.exports.describe = function({testRunner, expect, playwright, MAC, WIN, FF
10271027
expect(error.stack).toContain('Frame.goto')
10281028
});
10291029
it('should return matching responses', async({page, server}) => {
1030-
// Disable cache: otherwise, chromium will cache similar requests.
1031-
await page.setCacheEnabled(false);
10321030
await page.goto(server.EMPTY_PAGE);
10331031
// Attach three frames.
10341032
const frames = [
10351033
await utils.attachFrame(page, 'frame1', server.EMPTY_PAGE),
10361034
await utils.attachFrame(page, 'frame2', server.EMPTY_PAGE),
10371035
await utils.attachFrame(page, 'frame3', server.EMPTY_PAGE),
10381036
];
1039-
// Navigate all frames to the same URL.
10401037
const serverResponses = [];
1041-
server.setRoute('/one-style.html', (req, res) => serverResponses.push(res));
1038+
server.setRoute('/0.html', (req, res) => serverResponses.push(res));
1039+
server.setRoute('/1.html', (req, res) => serverResponses.push(res));
1040+
server.setRoute('/2.html', (req, res) => serverResponses.push(res));
10421041
const navigations = [];
10431042
for (let i = 0; i < 3; ++i) {
1044-
navigations.push(frames[i].goto(server.PREFIX + '/one-style.html'));
1045-
await server.waitForRequest('/one-style.html');
1043+
navigations.push(frames[i].goto(server.PREFIX + '/' + i + '.html'));
1044+
await server.waitForRequest('/' + i + '.html');
10461045
}
10471046
// Respond from server out-of-order.
10481047
const serverResponseTexts = ['AAA', 'BBB', 'CCC'];

test/page.spec.js

-23
Original file line numberDiff line numberDiff line change
@@ -756,29 +756,6 @@ module.exports.describe = function({testRunner, expect, headless, playwright, FF
756756
});
757757
});
758758

759-
describe('Page.setCacheEnabled', function() {
760-
it('should enable or disable the cache based on the state passed', async({page, server}) => {
761-
await page.goto(server.PREFIX + '/cached/one-style.html');
762-
// WebKit does r.setCachePolicy(ResourceRequestCachePolicy::ReloadIgnoringCacheData);
763-
// when navigating to the same url, load empty.html to avoid that.
764-
await page.goto(server.EMPTY_PAGE);
765-
const [cachedRequest] = await Promise.all([
766-
server.waitForRequest('/cached/one-style.html'),
767-
page.goto(server.PREFIX + '/cached/one-style.html'),
768-
]);
769-
// Rely on "if-modified-since" caching in our test server.
770-
expect(cachedRequest.headers['if-modified-since']).not.toBe(undefined);
771-
772-
await page.setCacheEnabled(false);
773-
await page.goto(server.EMPTY_PAGE);
774-
const [nonCachedRequest] = await Promise.all([
775-
server.waitForRequest('/cached/one-style.html'),
776-
page.goto(server.PREFIX + '/cached/one-style.html'),
777-
]);
778-
expect(nonCachedRequest.headers['if-modified-since']).toBe(undefined);
779-
});
780-
});
781-
782759
describe('Page.title', function() {
783760
it('should return the page title', async({page, server}) => {
784761
await page.goto(server.PREFIX + '/title.html');

0 commit comments

Comments
 (0)