feat(firefox): support Page.setJavascriptEnabled (#3970)

This patch implements:
- Page.setJavascriptEnabled
- Page.setCacheEnabled
This commit is contained in:
Andrey Lushnikov 2019-02-08 20:57:16 -08:00 committed by GitHub
parent edb6f62824
commit b82cc150d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 10 deletions

View File

@ -110,6 +110,20 @@ class Page extends EventEmitter {
await this._session.send('Page.setUserAgent', {userAgent}); await this._session.send('Page.setUserAgent', {userAgent});
} }
/**
* @param {string} userAgent
*/
async setJavaScriptEnabled(enabled) {
await this._session.send('Page.setJavascriptEnabled', {enabled});
}
/**
* @param {string} userAgent
*/
async setCacheEnabled(enabled) {
await this._session.send('Page.setCacheDisabled', {cacheDisabled: !enabled});
}
/** /**
* @param {{viewport: !Puppeteer.Viewport, userAgent: string}} options * @param {{viewport: !Puppeteer.Viewport, userAgent: string}} options
*/ */

View File

@ -9,7 +9,7 @@
"node": ">=8.9.4" "node": ">=8.9.4"
}, },
"puppeteer": { "puppeteer": {
"firefox_revision": "ba500612786aac157fa44e6b4d04c852f51ea35c" "firefox_revision": "592ca01fa3d2566a9f494e2df8ca6876c5b5b4bb"
}, },
"scripts": { "scripts": {
"install": "node install.js", "install": "node install.js",

View File

@ -908,7 +908,7 @@ module.exports.addTests = function({testRunner, expect, headless, Errors, Device
}); });
}); });
describe_fails_ffox('Page.setJavaScriptEnabled', function() { describe('Page.setJavaScriptEnabled', function() {
it('should work', async({page, server}) => { it('should work', async({page, server}) => {
await page.setJavaScriptEnabled(false); await page.setJavaScriptEnabled(false);
await page.goto('data:text/html, <script>var something = "forbidden"</script>'); await page.goto('data:text/html, <script>var something = "forbidden"</script>');
@ -922,18 +922,22 @@ module.exports.addTests = function({testRunner, expect, headless, Errors, Device
}); });
}); });
describe_fails_ffox('Page.setCacheEnabled', function() { describe('Page.setCacheEnabled', function() {
it('should enable or disable the cache based on the state passed', async({page, server}) => { it('should enable or disable the cache based on the state passed', async({page, server}) => {
const responses = new Map();
page.on('response', r => responses.set(r.url().split('/').pop(), r));
await page.goto(server.PREFIX + '/cached/one-style.html'); await page.goto(server.PREFIX + '/cached/one-style.html');
await page.reload(); const [cachedRequest] = await Promise.all([
expect(responses.get('one-style.css').fromCache()).toBe(true); server.waitForRequest('/cached/one-style.html'),
page.reload(),
]);
// Rely on "if-modified-since" caching in our test server.
expect(cachedRequest.headers['if-modified-since']).not.toBe(undefined);
await page.setCacheEnabled(false); await page.setCacheEnabled(false);
await page.reload({waitUntil: 'networkidle2'}); const [nonCachedRequest] = await Promise.all([
expect(responses.get('one-style.css').fromCache()).toBe(false); server.waitForRequest('/cached/one-style.html'),
page.reload(),
]);
expect(nonCachedRequest.headers['if-modified-since']).toBe(undefined);
}); });
}); });