aboutsummaryrefslogtreecommitdiffstats
path: root/background.js
diff options
context:
space:
mode:
authorTeddy Wing2021-09-08 22:59:57 +0200
committerTeddy Wing2021-09-08 22:59:57 +0200
commit0f8cd3a8708a26049513c448dd89da568bab1fac (patch)
tree37579e9d45090fc94f490db553440189e49c3858 /background.js
parentba12ee4dce5cda80a8ecb43760555f10bce6ccb6 (diff)
parente45127b404ce194e389b447b68a33957ad9f3492 (diff)
downloadLegibility-0f8cd3a8708a26049513c448dd89da568bab1fac.tar.bz2
Merge branch 'domain-wildcards'
Diffstat (limited to 'background.js')
-rw-r--r--background.js44
1 files changed, 40 insertions, 4 deletions
diff --git a/background.js b/background.js
index c898d8c..5bde79a 100644
--- a/background.js
+++ b/background.js
@@ -26,10 +26,46 @@ browser.runtime.onMessage.addListener(function(message) {
var url = new URL(details.url);
if (url.hostname === message.domain) {
- browser.tabs.insertCSS(
- details.tabId,
- { file: '/css/' + message.domain + '.css' }
- );
+ wildcard_domains(message.domain)
+ .forEach(function(domain) {
+ browser.tabs.insertCSS(
+ details.tabId,
+ { file: '/css/' + domain + '.css' }
+ );
+ });
}
});
});
+
+
+// Build a list of wildcard domains from the given hostname.
+//
+// Example:
+//
+// wildcard_domains('en.wikipedia.org');
+// => [ '%', '%.org', '%.wikipedia.org', 'en.wikipedia.org' ]
+function wildcard_domains (hostname) {
+ var domain_parts = hostname.split('.');
+ var domains = [];
+
+ for (var i = domain_parts.length - 1; i >= 0; i--) {
+ var domain;
+
+ if (domains[domains.length - 1]) {
+ var domain = domain_parts[i] + '.' + domains[domains.length - 1];
+ }
+ else {
+ var domain = domain_parts[i];
+ }
+
+ domains.push(domain);
+ }
+
+ for (var i = 0; i < domains.length - 1; i++) {
+ domains[i] = '%.' + domains[i];
+ }
+
+ domains.unshift('%');
+
+ return domains;
+}