diff --git a/README.asciidoc b/README.asciidoc index 326223511..67444c9fb 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -226,6 +226,7 @@ Contributors, sorted by the number of commits in descending order: * Lucas Hoffmann * Link * Larry Hynes +* Kirill A. Shutemov * Johannes Altmanninger * Jeremy Kaplan * Ismail @@ -265,7 +266,6 @@ Contributors, sorted by the number of commits in descending order: * Matthias Lisin * Marcel Schilling * Lazlow Carmichael -* Kirill A. Shutemov * Kevin Wang * Ján Kobezda * Johannes Martinsson diff --git a/qutebrowser/javascript/pac_utils.js b/qutebrowser/javascript/pac_utils.js index a6102df9f..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); @@ -78,7 +78,7 @@ function isInNet(ipaddr, pattern, maskstr) { } function isPlainHostName(host) { - return (host.search('\\\\.') == -1); + return (host.search('\\.') == -1); } function isResolvable(host) { @@ -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); } diff --git a/tests/unit/browser/webkit/network/test_pac.py b/tests/unit/browser/webkit/network/test_pac.py index dc9229dbf..e52b4e7ec 100644 --- a/tests/unit/browser/webkit/network/test_pac.py +++ b/tests/unit/browser/webkit/network/test_pac.py @@ -109,6 +109,15 @@ def test_myIpAddress(): _pac_equality_test("isResolvable(myIpAddress())", "true") +@pytest.mark.parametrize("host, expected", [ + ("example", "true"), + ("example.com", "false"), + ("www.example.com", "false"), +]) +def test_isPlainHostName(host, expected): + _pac_equality_test("isPlainHostName('{}')".format(host), expected) + + def test_proxyBindings(): _pac_equality_test("JSON.stringify(ProxyConfig.bindings)", "'{}'")