From ac3c8bb319c789d981b65d97df1e6959023a4534 Mon Sep 17 00:00:00 2001 From: "Kirill A. Shutemov" Date: Tue, 21 Feb 2017 15:23:27 +0300 Subject: [PATCH] pac_utils.js: remove excessive escaping Looks like the implementation was derived from Mozilla's nsProxyAutoConfig.js, which is evaluated twice. It requires double escaping. In our case excessive escaping is harmful. In particular it makes ip-matching regexp in isInNet() invalid and makes it really slow as we go to dnsResolve() all the time, even when it's not needed. Signed-off-by: Kirill A. Shutemov --- qutebrowser/javascript/pac_utils.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/qutebrowser/javascript/pac_utils.js b/qutebrowser/javascript/pac_utils.js index b4540c18a..0aba4c070 100644 --- a/qutebrowser/javascript/pac_utils.js +++ b/qutebrowser/javascript/pac_utils.js @@ -61,7 +61,7 @@ function convert_addr(ipchars) { } function isInNet(ipaddr, pattern, maskstr) { - var test = /^(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3})$/ + var test = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ .exec(ipaddr); if (test == null) { ipaddr = dnsResolve(ipaddr); @@ -92,9 +92,9 @@ function localHostOrDomainIs(host, hostdom) { } function shExpMatch(url, pattern) { - pattern = pattern.replace(/\\./g, '\\\\.'); - pattern = pattern.replace(/\\*/g, '.*'); - pattern = pattern.replace(/\\?/g, '.'); + pattern = pattern.replace(/\./g, '\\.'); + pattern = pattern.replace(/\*/g, '.*'); + pattern = pattern.replace(/\?/g, '.'); var newRe = new RegExp('^'+pattern+'$'); return newRe.test(url); }