From 877f06aacba840a9ae0852fbbd6e05fba8105cb0 Mon Sep 17 00:00:00 2001 From: JoelEinbinder Date: Tue, 25 Jul 2017 02:01:10 -0700 Subject: [PATCH] Remove userAgent getter (#126) If needed, the user agent could be fetched via querying `navigator.userAgent` in page. Closes #110 --- docs/api.md | 4 ---- lib/NetworkManager.js | 12 +----------- lib/Page.js | 11 +---------- phantom_shim/WebPage.js | 2 +- test/test.js | 2 +- 5 files changed, 4 insertions(+), 27 deletions(-) diff --git a/docs/api.md b/docs/api.md index 9b40658bbfd..b1af5194302 100644 --- a/docs/api.md +++ b/docs/api.md @@ -57,7 +57,6 @@ + [page.type(text)](#pagetypetext) + [page.uploadFile(selector, ...filePaths)](#pageuploadfileselector-filepaths) + [page.url()](#pageurl) - + [page.userAgent()](#pageuseragent) + [page.viewport()](#pageviewport) + [page.waitFor(target[, options])](#pagewaitfortarget-options) + [page.waitForNavigation(options)](#pagewaitfornavigationoptions) @@ -601,9 +600,6 @@ To press a special key, use [`page.press`](#pagepresskey-options). This is a shortcut for [page.mainFrame().url()](#frameurl) -#### page.userAgent() -- returns: <[string]> Returns user agent. - #### page.viewport() - returns: <[Object]> An object with the save fields as described in [page.setViewport](#pagesetviewportviewport) diff --git a/lib/NetworkManager.js b/lib/NetworkManager.js index 11e1f5eec28..019a152c781 100644 --- a/lib/NetworkManager.js +++ b/lib/NetworkManager.js @@ -19,16 +19,14 @@ const helper = require('./helper'); class NetworkManager extends EventEmitter { /** * @param {!Connection} client - * @param {string} userAgent */ - constructor(client, userAgent) { + constructor(client) { super(); this._client = client; this._requestInterceptor = null; /* @type {!Map} */ this._idToRequest = new Map(); this._httpHeaders = {}; - this._userAgent = userAgent; this._client.on('Network.requestWillBeSent', this._onRequestWillBeSent.bind(this)); this._client.on('Network.requestIntercepted', this._onRequestIntercepted.bind(this)); @@ -61,17 +59,9 @@ class NetworkManager extends EventEmitter { * @return {!Promise} */ async setUserAgent(userAgent) { - this._userAgent = userAgent; return this._client.send('Network.setUserAgentOverride', { userAgent }); } - /** - * @return {string} - */ - userAgent() { - return this._userAgent; - } - /** * @param {?function(!InterceptedRequest)} interceptor * @return {!Promise} diff --git a/lib/Page.js b/lib/Page.js index 1e667a4dbce..bf7f23d7501 100644 --- a/lib/Page.js +++ b/lib/Page.js @@ -39,12 +39,10 @@ class Page extends EventEmitter { client.send('Runtime.enable', {}), client.send('Security.enable', {}), ]); - let userAgentExpression = helper.evaluationString(() => window.navigator.userAgent); - let {result:{value: userAgent}} = await client.send('Runtime.evaluate', { expression: userAgentExpression, returnByValue: true }); let keyboard = new Keyboard(client); let mouse = new Mouse(client, keyboard); let frameManager = await FrameManager.create(client, mouse); - let networkManager = new NetworkManager(client, userAgent); + let networkManager = new NetworkManager(client); let page = new Page(client, frameManager, networkManager, screenshotTaskQueue, mouse, keyboard); // Initialize default page size. await page.setViewport({width: 400, height: 300}); @@ -197,13 +195,6 @@ class Page extends EventEmitter { return this._networkManager.setUserAgent(userAgent); } - /** - * @return {string} - */ - userAgent() { - return this._networkManager.userAgent(); - } - /** * @param {!Object} exceptionDetails */ diff --git a/phantom_shim/WebPage.js b/phantom_shim/WebPage.js index 06c5eaf9614..2b0a08d4ee5 100644 --- a/phantom_shim/WebPage.js +++ b/phantom_shim/WebPage.js @@ -597,7 +597,7 @@ class WebPageSettings { * @return {string} */ get userAgent() { - return this._page.userAgent(); + return await(this._page.evaluate(() => window.navigator.userAgent)); } } diff --git a/test/test.js b/test/test.js index 2fceca333cc..7ad443baa19 100644 --- a/test/test.js +++ b/test/test.js @@ -988,7 +988,7 @@ describe('Puppeteer', function() { describe('Page.setUserAgent', function() { it('should work', SX(async function() { - expect(page.userAgent()).toContain('Mozilla'); + expect(await page.evaluate(() => navigator.userAgent)).toContain('Mozilla'); page.setUserAgent('foobar'); page.navigate(EMPTY_PAGE); let request = await server.waitForRequest('/empty.html');