From 7c22a312945a2bff41a2b5696a7e54f1c4c01cf2 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Thu, 6 Aug 2020 09:30:34 -0400 Subject: [PATCH] Remove experimental click-to-load disqus scriptlets As per AMO reviewer: > We will need you to remove the remote scripts in > > web_accessible_resources\disqus_embed.js - line 48 > web_accessible_resources\disqus_forums_embed.js - line 44 Related issue: - https://github.com/gorhill/uBlock/issues/1899 --- src/web_accessible_resources/disqus_embed.js | 58 ------------------- .../disqus_forums_embed.js | 52 ----------------- 2 files changed, 110 deletions(-) delete mode 100644 src/web_accessible_resources/disqus_embed.js delete mode 100644 src/web_accessible_resources/disqus_forums_embed.js diff --git a/src/web_accessible_resources/disqus_embed.js b/src/web_accessible_resources/disqus_embed.js deleted file mode 100644 index 571e2ef60f570..0000000000000 --- a/src/web_accessible_resources/disqus_embed.js +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************************* - - uBlock Origin - a browser extension to block requests. - Copyright (C) 2019-present Raymond Hill - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see {http://www.gnu.org/licenses/}. - - Home: https://github.com/gorhill/uBlock -*/ - -(function() { - 'use strict'; - const p = document.getElementById(window.disqus_container_id || 'disqus_thread'); - if ( p === null ) { return; } - const b = document.createElement('button'); - b.textContent = 'Disqus blocked by uBlock Origin: click to unblock'; - b.type = 'button'; - p.appendChild(b); - const loadDisqus = function(ev) { - b.remove(); - let disqusScript = - document.querySelector('script[src$=".disqus.com/embed.js"]'); - let newScript; - if ( disqusScript !== null ) { - disqusScript.remove(); - newScript = document.createElement('script'); - if ( disqusScript.hasAttributes() ) { - const attrs = disqusScript.attributes; - for ( let i = 0; i < attrs.length; i++ ) { - const attr = attrs[i]; - newScript.setAttribute(attr.name, attr.value); - } - } - } else if ( typeof self.disqus_shortname === 'string' ) { - newScript = document.createElement('script'); - newScript.async = true; - newScript.src = `//${self.disqus_shortname}.disqus.com/embed.js`; - } - if ( newScript === undefined ) { return; } - const t = Date.now().toString(); - newScript.src += '?_=1457540' + t.slice(-6); - document.body.appendChild(newScript); - ev.preventDefault(); - ev.stopPropagation(); - }; - b.addEventListener('click', loadDisqus, { once: true }); -})(); diff --git a/src/web_accessible_resources/disqus_forums_embed.js b/src/web_accessible_resources/disqus_forums_embed.js deleted file mode 100644 index df4b0f35bb699..0000000000000 --- a/src/web_accessible_resources/disqus_forums_embed.js +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - - uBlock Origin - a browser extension to block requests. - Copyright (C) 2019-present Raymond Hill - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see {http://www.gnu.org/licenses/}. - - Home: https://github.com/gorhill/uBlock - - Completely experimental: load Disqus on demand only. Purpose is to avoid - connecting to Disqus' servers, unless the user explicitly asks for the - comments to be loaded. - Works with following filters: - ||disqus.com/forums/*embed.js$script,redirect=disqus.com/forums/*embed.js - ||disqus.com/embed.js$script,redirect=disqus.com/embed.js - ||disqus.com/count.js$script - @@||disqus.com/embed.js?_=1457540*$script - If you want a site you regularly visit to always have the comment loaded, - just use an exception static filter. Example for wired.com: - @@||wired.disqus.com/embed.js - -*/ - -(function() { - 'use strict'; - const ee = document.getElementsByTagName('script'); - let i = ee.length, src; - while ( i-- ) { - src = ee[i].src || ''; - if ( src === '' ) { - continue; - } - if ( src.lastIndexOf('disqus.com/embed.js') === (src.length - 19) ) { - return; - } - } - const e = document.createElement('script'); - e.async = true; - e.src = '//' + window.disqus_shortname + '.disqus.com/embed.js'; - document.body.appendChild(e); -})();