]> cat aescling's git repositories - mastodon.git/commitdiff
Handle Mastodon-generated links for targets starting with “www.” properly
authorThibaut Girka <thib@sitedethib.com>
Thu, 1 Aug 2019 13:18:38 +0000 (15:18 +0200)
committerThibG <thib@sitedethib.com>
Sun, 4 Aug 2019 20:25:56 +0000 (22:25 +0200)
app/javascript/flavours/glitch/components/status_content.js

index b129e9a8b98fcbf7d8a854dd5fa9e75b2878ecd6..fba30d6ebfc3908edf097941ad33f2490445ff2a 100644 (file)
@@ -54,7 +54,7 @@ const isLinkMisleading = (link, checkUrlLike = true) => {
   const targetURL = new URL(link.href);
 
   // The following may not work with international domain names
-  if (linkText === targetURL.origin || linkText === targetURL.host || 'www.' + linkText === targetURL.host || linkText.startsWith(targetURL.origin + '/') || linkText.startsWith(targetURL.host + '/')) {
+  if (linkText === targetURL.origin || linkText === targetURL.host || 'www.' + linkText === targetURL.host || linkText.startsWith(targetURL.origin + '/') || linkText.startsWith(targetURL.host + '/') || ('www.' + linkText).startsWith(targetURL.host + '/')) {
     return false;
   }
 
@@ -62,7 +62,7 @@ const isLinkMisleading = (link, checkUrlLike = true) => {
   const hostname = decodeIDNA(targetURL.hostname);
   const host = targetURL.host.replace(targetURL.hostname, hostname);
   const origin = targetURL.origin.replace(targetURL.host, host);
-  if (linkText === origin || linkText === host || linkText.startsWith(origin + '/') || linkText.startsWith(host + '/')) {
+  if (linkText === origin || linkText === host || 'www.' + linkText === host || linkText.startsWith(origin + '/') || linkText.startsWith(host + '/') || ('www.' + linkText).startsWith(host + '/')) {
     return false;
   }