From 7b0f7d59aa1979707e0f47b9d7f9f92a262b53fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EF=BD=81=EF=BD=99=EF=BD=95=EF=BD=8D=EF=BD=89=C2=A0=20?= =?UTF-8?q?=EF=BD=99=EF=BD=95?= Date: Thu, 4 May 2017 23:56:40 +0000 Subject: [PATCH] Use fast-url-parser Fix #8707 Test Plan: Make sure automated tests pass. --- app/common/urlParse.js | 20 ++++++++++++++++++-- package.json | 1 + 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/common/urlParse.js b/app/common/urlParse.js index 7a73333d69..1418f0df3b 100644 --- a/app/common/urlParse.js +++ b/app/common/urlParse.js @@ -3,7 +3,7 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ const LRUCache = require('lru-cache') -const urlParse = require('url').parse +const urlParse = require('fast-url-parser').parse const config = require('../../js/constants/config') let cachedUrlParse = new LRUCache(config.cache.urlParse) @@ -14,7 +14,23 @@ module.exports = (url, ...args) => { return Object.assign({}, parsedUrl) } - parsedUrl = urlParse(url, ...args) + // In fast-url-parser href, port, prependSlash, protocol, and query + // are lazy so access them. + const raw = urlParse(url, ...args) + parsedUrl = { + auth: raw.auth, + hash: raw.hash, + host: raw.host, + hostname: raw.hostname, + href: raw.href, + path: raw.path, + pathname: raw.pathname, + port: raw.port, + protocol: raw.protocol, + query: raw.query, + search: raw.search, + slashes: raw.slashes + } cachedUrlParse.set(url, parsedUrl) return parsedUrl } diff --git a/package.json b/package.json index 1d543bc98c..11c753e6aa 100644 --- a/package.json +++ b/package.json @@ -94,6 +94,7 @@ "clipboard-copy": "^1.0.0", "electron-localshortcut": "^0.6.0", "electron-squirrel-startup": "brave/electron-squirrel-startup", + "fast-url-parser": "^1.1.3", "file-loader": "^0.8.5", "font-awesome": "^4.5.0", "font-awesome-webpack": "0.0.4",