From aad61b3d0148b54a760ad235788018e45e59495b Mon Sep 17 00:00:00 2001 From: Chan Chak Shing Date: Sat, 23 May 2020 08:45:45 +0800 Subject: [PATCH 1/3] Update background.js --- chromium/background-scripts/background.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/chromium/background-scripts/background.js b/chromium/background-scripts/background.js index 4e1b97e37de2..4f7829cc046b 100644 --- a/chromium/background-scripts/background.js +++ b/chromium/background-scripts/background.js @@ -185,10 +185,12 @@ function updateState () { if (!tabs || tabs.length === 0) { return; } + + // tabUrl.host should be used to show the "disabled" status properly (#19293) const tabUrl = new URL(tabs[0].url); - const hostname = util.getNormalisedHostname(tabUrl.hostname); + const host = util.getNormalisedHostname(tabUrl.host); - if (isExtensionDisabledOnSite(hostname) || iconState == "disabled") { + if (isExtensionDisabledOnSite(host) || iconState == "disabled") { if ('setIcon' in chrome.browserAction) { chrome.browserAction.setIcon({ path: { From 93f564ac49ecc8ee7d56e6ac636d2022a87e7613 Mon Sep 17 00:00:00 2001 From: Chan Chak Shing Date: Sat, 23 May 2020 09:03:02 +0800 Subject: [PATCH 2/3] Update background.js --- chromium/background-scripts/background.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chromium/background-scripts/background.js b/chromium/background-scripts/background.js index 4f7829cc046b..8e75775dfc64 100644 --- a/chromium/background-scripts/background.js +++ b/chromium/background-scripts/background.js @@ -185,8 +185,8 @@ function updateState () { if (!tabs || tabs.length === 0) { return; } - - // tabUrl.host should be used to show the "disabled" status properly (#19293) + + // tabUrl.host should be used to show the "disabled" status properly (#19293) const tabUrl = new URL(tabs[0].url); const host = util.getNormalisedHostname(tabUrl.host); From 23b2d39095ce3fabbb8495955f567c448ca1d1cf Mon Sep 17 00:00:00 2001 From: Chan Chak Shing Date: Sat, 23 May 2020 11:13:39 +0800 Subject: [PATCH 3/3] Update getNormalisedHostname to handle port numbers --- chromium/background-scripts/util.js | 7 ++++++- chromium/test/util_test.js | 9 ++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/chromium/background-scripts/util.js b/chromium/background-scripts/util.js index 5a4097c0eca0..0879588e4bef 100644 --- a/chromium/background-scripts/util.js +++ b/chromium/background-scripts/util.js @@ -62,11 +62,16 @@ function loadExtensionFile(url, returnType) { /** * Remove tailing dots from hostname, e.g. "www.example.com." + * Preserve port numbers if they are used */ -function getNormalisedHostname(hostname) { +function getNormalisedHostname(host) { + let [ hostname, port ] = host.split(":"); while (hostname && hostname[hostname.length - 1] === '.' && hostname !== '.') { hostname = hostname.slice(0, -1); } + if (port) { + return `${hostname}:${port}`; + } return hostname; } diff --git a/chromium/test/util_test.js b/chromium/test/util_test.js index 211b41f923bd..af43df7440d1 100644 --- a/chromium/test/util_test.js +++ b/chromium/test/util_test.js @@ -49,9 +49,16 @@ describe('util.js', function() { }); describe('getNormalisedHostname', function() { - it('removes tailing dots', function() { + it('preserve port numbers', function() { + assert.strictEqual(util.getNormalisedHostname('example.com'), 'example.com'); + assert.strictEqual(util.getNormalisedHostname('example.com:8080'), 'example.com:8080'); + }); + + it('removes tailing dots and preserve port numbers', function() { assert.strictEqual(util.getNormalisedHostname('example.com.'), 'example.com'); + assert.strictEqual(util.getNormalisedHostname('example.com.:8080'), 'example.com:8080'); assert.strictEqual(util.getNormalisedHostname('example.com..'), 'example.com'); + assert.strictEqual(util.getNormalisedHostname('example.com..:8080'), 'example.com:8080'); }); it('preserves a single dot', function() {