commit 6909320776d9fdc7181db51d03596075534e2689 parent d7acf32ad905a3382cb2353577a96d29aa58f589 Author: Mark H Weaver <mhw@netris.org> Date: Mon, 15 Jun 2020 04:02:57 -0400 Remove bundled tortm-browser-button extension. This extension malfunctions with both IceCat and Firefox 68 ESR. It tells the user that it's connected to Tor, but fails to route traffic through it. Remove this extension from IceCat, pending further investigation. * data/extensions/tortm-browser-button@jeremybenthum: Remove. * data/update-extensions.sh: Remove associated bits. Diffstat:
41 files changed, 2 insertions(+), 966 deletions(-)
diff --git a/data/extensions/tortm-browser-button@jeremybenthum/META-INF/manifest.mf b/data/extensions/tortm-browser-button@jeremybenthum/META-INF/manifest.mf @@ -1,197 +0,0 @@ -Manifest-Version: 1.0 - -Name: manifest.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: V+IUNvf/AnE/bZv5Lbnm/CUIzTM= -SHA256-Digest: cKqLhBxA+/me/e3agjoVNlqzp0wLfgPjtq65by3oTaI= - -Name: data/icons/128.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 93I88LexoD1hgfreKoyhV5WMlRw= -SHA256-Digest: tE6WrRu12BbqH4HmD4NWVXean+U4+7unUz0UmetN3K4= - -Name: data/icons/16.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: WFv80V681ND1VV958kBA1y6PjOA= -SHA256-Digest: 6VR+kEhGc8aIgnj7jmvtCq/BTutMNcizsCKc8OgI7yk= - -Name: data/icons/32.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: TNeyTDhz+nsDuElFBEx390swkJs= -SHA256-Digest: 3qXvS80sYjoKNCYixjnLdKeIrf4BVgriBPgG3UEP49A= - -Name: data/icons/48.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: mhnrzrhJcQr7Ps3cx+Xo/HxT2o0= -SHA256-Digest: SbQLBp1TuYXM3ryO3MsU8xW8zAaV+BWzHqvmHCilIbo= - -Name: data/icons/64.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 6CPKzMpnY4yQgfpKlzJSC80MHlo= -SHA256-Digest: 25gQHIbDQZfofRJmoh8FKLW/8J5IZ8B7yYhQHM+8/JE= - -Name: data/icons/CHECK/128.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: eiVPuPV7i7bgETL3yTtKkEzeK6Y= -SHA256-Digest: U3qPy9zZLCYsM2wtbCeBoWJcNoq7OQ5wlZDAqnxn1YA= - -Name: data/icons/CHECK/16.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: c0foAU6nLARQk28kmzrPMrnRj6g= -SHA256-Digest: /A3c5KhLKF88znB9pdeAxVMkf7Pbyg3hVW+fJLRcKDo= - -Name: data/icons/CHECK/32.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: i8lN7tNFErTXTfunq7PW44BTquo= -SHA256-Digest: GGM8LU4ruq2R3hrUNNmlLUJpVLGQqyeQfp58dJ72QpM= - -Name: data/icons/CHECK/48.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 1vc3cx3fKQ8rgKQmxvlsvzBS4XA= -SHA256-Digest: kIuIYbD0yDUSHI45KOkD6IpZbeRqXC8q+n7GmE3J9Ow= - -Name: data/icons/CHECK/64.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: mc3p1OtoaNDHFjJmNDnAesR8Hic= -SHA256-Digest: 6LPVe2TwO2eRLHYVcbNn8DSQ6x9vW0aR+8vLl3lrffE= - -Name: data/icons/OFF/128.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 2YlToA6/FchraR5oDSU/mCYSM0I= -SHA256-Digest: 8FlmC6DSb1dREOJ0uxfYJzW7uGfH7sSA4TAphKQ76gg= - -Name: data/icons/OFF/16.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: xDxKCuUkBRcvYPtLdC+Bbv5eNy8= -SHA256-Digest: cbRAWfcl5up6VpChuYQDQlZCue1VV6BObQTAFeOI92I= - -Name: data/icons/OFF/32.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 9P9f5nRYzv48hc8rp222t93lU0k= -SHA256-Digest: NgU1FzX0jF3cIcAfpnaSkcMh3N4oRfmxnmP7pzpI/+s= - -Name: data/icons/OFF/48.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: SIhhf219ZvRCdUCsjpmHixfEbdA= -SHA256-Digest: OIJNMKRiJmeBtOgWh0c1Xx6FDr4mjuFgE5ep8Uc3cQs= - -Name: data/icons/OFF/64.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: aeYZk8tAIGNJZZ86kGncq0zwIAk= -SHA256-Digest: jOahYvjwt7uvNYDa9jE9AwKbJeVr0D4eVh3NEldahtA= - -Name: data/icons/ON/128.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 5sO+BvPASD2nYqZWEIvmADmxS7E= -SHA256-Digest: GmOidPVxEEZaS1UUrvTHYhReZ+DZ1a9f2/N4dXNQ4D4= - -Name: data/icons/ON/16.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ubD0AdvB+ANRX6o3xghjKmPteRw= -SHA256-Digest: T8grvY6Tf1OQeiM/AanugRnAu13zv3c7CpINWfjFKE0= - -Name: data/icons/ON/32.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: t7pGp1A+k3PWrgqZqs1KcAUOo5c= -SHA256-Digest: AyZyTMr1otpeI/PHm09nA53PFAG1j902J2KkDHNEbdE= - -Name: data/icons/ON/48.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: LFLPbA6EZs+di+d9nySlWzwPTmk= -SHA256-Digest: Z2pAWaV/AUYz0E6tFuK/1TB09AdnhvVTcEGepS8tIM8= - -Name: data/icons/ON/64.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: MO+Drz2UFW1rL/oCdP+VBeaviFQ= -SHA256-Digest: /+4/0+Q29MiPnTwRWHdJCwD0DW2hCKU2/OO/PZyrjEw= - -Name: data/popup/popup.css -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: nW5JPVWO8FhjBWwjqgB6fzoWR48= -SHA256-Digest: 6epb7Bg9BYXtLNUaYJa9ztNjd+P2g6MR2FoJuQI0IlU= - -Name: data/popup/popup.html -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: fO+VVPxy8l9YokSHzJVsRLJkuIo= -SHA256-Digest: N7UYb1FMJrPVU7SRYO9PvwtgAndlfAgDkk+Qmjv10OM= - -Name: data/popup/popup.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: J4CZ+OckL6AC60utoIBv2/0VGgY= -SHA256-Digest: kwnlzLK+kQ2aVA9TMrXVWTGDCuJ9EaWLym7JIE0UUXM= - -Name: data/popup/explore/explore.css -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: umZvuxafn7BhlrT9q6s/NU2GDOw= -SHA256-Digest: 04XTj78rPashGu1Pkx1y1S2lkuEdGJUtz/OHaoj9AO0= - -Name: data/popup/explore/explore.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: Py8llWHvD5oih/EFZZNvu/IxDv0= -SHA256-Digest: hgSGxpG7aDu0ni4rWQ0yc5ZHpmhVDTheWKAbZEkolFw= - -Name: data/popup/explore/explore.json -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: NZBGOiVSHIWKRwyce0g1mxvn/Aw= -SHA256-Digest: Scoy+Iuz+TfW8hcbctp0kThocmE3Ti+Qkwe7MQnghKY= - -Name: data/popup/icons/check.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: xO6PMc5SfU0X/p4lwo6lGC2JnsI= -SHA256-Digest: ZBbbaLdEDTbvabulVrxyupcMqqm1H7RSMmhKfgnvtnU= - -Name: data/popup/icons/install.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: dkC99cH8qiR5Y4cgwgA6MKVFk1k= -SHA256-Digest: 2kA8p+0BP9ebBdTUY45ou4NdUOftxOAzreWp8PRGKhQ= - -Name: data/popup/icons/ip.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: fg9ybnJxmzdxeGcoOgZmT53WxVg= -SHA256-Digest: 7NTmGTTU1McBkWcYh4ERWD9vWOwulK3Ny9BkKfAGNT0= - -Name: data/popup/icons/reload.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: pS/DiUByE/45UOmjHbjrdlu7wXk= -SHA256-Digest: oQZYYWo91HAQVB8BJIbNe7QwpiqCs/beYuorhRsSgZ8= - -Name: data/popup/icons/support.png -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: CQckYA/PRtkFwp/fku1NGY2RLWg= -SHA256-Digest: VqoScop6+sKXU0eLlDPwa2aSrX79uUP1vN9/vlk76uw= - -Name: lib/common.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: Bkv6X6sbiSB3/iXCM3CxW3bf3Mg= -SHA256-Digest: qADTsiEbjwXfd/Xc3bH8VelUvGx4Cqlr0prMtLXP8Uo= - -Name: lib/config.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: EZ0ikKOLlHFJYSvZ+hoBYRunGeQ= -SHA256-Digest: WXycIzkSIL8HddxqLX7WLC8c/agYPg+EUZ2WbxbfjLs= - -Name: lib/proxy.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: 4v2X/afLFhFDKBvLDi4KeEV9KEc= -SHA256-Digest: HLm4Vo/1mT6z7gdzr5UQRLQSPEOvf3asqKP8R0aIFsY= - -Name: lib/chrome/background.html -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: csd3attFBm8wL87EeHNeOEMzN3s= -SHA256-Digest: v1+fkVNX+9Ad6z1v5DwZtr1sb1FiIgpop3GsZYRU9Zw= - -Name: lib/chrome/chrome.js -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: yso0w/0n6kaRs48WZz7st2hIcS8= -SHA256-Digest: TREVYRsUu3CZR2m3AhFn5bK1J7EnP1HopreTGOaGfZI= - -Name: META-INF/cose.manifest -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: ZDcQUM/y8vCCXZufW9CEHHwxh9Q= -SHA256-Digest: ZX4YdDqtgqJATSYvfQMYr/YdqSqoU4rv8xzNH7CPt6k= - -Name: META-INF/cose.sig -Digest-Algorithms: SHA1 SHA256 -SHA1-Digest: TppDG3cQDtXqvULEI0s21HRPjWo= -SHA256-Digest: SKd6NkJckLYWWxV+1myEjnlfp1hOAIZtYvMuzUqTqH8= - diff --git a/data/extensions/tortm-browser-button@jeremybenthum/META-INF/mozilla.rsa b/data/extensions/tortm-browser-button@jeremybenthum/META-INF/mozilla.rsa Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/META-INF/mozilla.sf b/data/extensions/tortm-browser-button@jeremybenthum/META-INF/mozilla.sf @@ -1,4 +0,0 @@ -Signature-Version: 1.0 -SHA1-Digest-Manifest: seq4Td9srnHJOozZfwwELV/IQ9o= -SHA256-Digest-Manifest: nSXJeuo0ji0oY5LbVsRl7q0aSe+Rx+CoWMDCSClOMfM= - diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/128.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/128.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/16.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/16.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/32.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/32.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/48.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/48.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/64.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/64.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/128.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/128.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/16.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/16.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/32.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/32.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/48.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/48.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/64.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/CHECK/64.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/128.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/128.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/16.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/16.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/32.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/32.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/48.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/48.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/64.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/OFF/64.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/128.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/128.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/16.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/16.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/32.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/32.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/48.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/48.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/64.png b/data/extensions/tortm-browser-button@jeremybenthum/data/icons/ON/64.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.css b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.css @@ -1,120 +0,0 @@ -#explore { - padding: 0; - color: #555; - min-height: 17px; - position: relative; - box-sizing: border-box; - background: transparent; -} - -#explore span { - user-select: none; - vertical-align: middle; - -moz-user-select: none; - -webkit-user-select: none; -} - -#explore[data-loaded=true] { - border: 0; - padding: 3px; - font-size: 12px; - background: #FFF; - margin: 3px 0 0 0; - font-family: arial, sans-serif; -} - -#explore .container { - border: 0; - width: 100%; - margin: auto; - margin-top: 10px; - border-spacing: 0; - table-layout: fixed; -} - -#explore .container tr td { - border: 0; - margin: 0; - padding: 0; - padding: 0 1px; -} - -#explore .explore { - right: 0; - margin: 0; - padding: 0 3px; - font-size: 12px; - cursor: pointer; - z-index: 1000000; - line-height: 17px; - position: absolute; - color: rgba(0,0,0,0.5); -} - -#explore .close { - top: 3px; - right: 3px; - cursor: pointer; - font-size: 11px; - padding: 1px 8px; - position: absolute; - background-color: transparent; -} - -#explore a { - border: 0; - margin: 0; - color: #333; - padding: 3px; - display: flex; - text-align: center; - align-items: center; - text-decoration: none; - justify-content: center; -} - -#explore .icon { - margin: 0; - padding: 0; - width: 24px; - color: #FFF; - height: 24px; - font-size: 11px; - min-width: 24px; - line-height: 24px; - text-align: center; - font-weight: normal; - display: inline-block; - font-family: arial, sans-serif; -} - -#explore .spacer { - border-left: solid 1px rgba(0,0,0,0.2) !important; -} - -#explore .name { - padding: 0; - font-size: 12px; - overflow: hidden; - margin: 0 0 0 5px; - font-weight: normal; - white-space: nowrap; - display: inline-block; - text-overflow: ellipsis; - font-family: arial, sans-serif; -} - -#explore a, #explore .close, #explore .explore { - transition: 300ms ease all; - -moz-transition: 300ms ease all; - -webkit-transition: 300ms ease all; -} - -#explore .close:hover { - color: #FFF; - background-color: #C75050; -} - -#explore a:hover, #explore .explore:hover { - background-color: rgba(0,0,0,0.03); -} diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.js b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.js @@ -1,114 +0,0 @@ -{ - const INC = 50; - const SORT = localStorage.getItem('explore-sort') ? Number(localStorage.getItem('explore-sort')) : 1; - const COUNT = localStorage.getItem('explore-count') ? Number(localStorage.getItem('explore-count')) : (INC - 5); - - var randcolor = function () { - var color = [ - "#D92121", "#E77200", "#5E8C31", "#00755E", "#C7A00F", - "#0066FF", "#3F26BF", "#733380", "#BB3385", "#E30B5C", - "#CA3435", "#87421F", "#299617", "#E936A7", "#DB91EF", - "#214FC6", "#B56917", "#BB3385", "#652DC1", "#02A4D3" - ]; - /* */ - return color[Math.floor(Math.random() * color.length)]; - }; - - const cload = () => fetch("explore/explore.json").then(r => r.json()).then(build); - - const shuffle = function (a) { - for (let i = a.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [a[i], a[j]] = [a[j], a[i]]; - } - /* */ - return a; - }; - - const explore = () => { - const root = document.getElementById('explore'); - const span = document.createElement('span'); - span.textContent = '◱'; - span.title = 'Explore more'; - span.classList.add('explore'); - root.appendChild(span); - span.onclick = () => { - root.textContent = ''; - localStorage.setItem('explore-count', INC); - cload(); - }; - }; - - const build = json => { - if (json.length === 0) return; - /* */ - if (SORT % 4 === 0) { - json = shuffle(json); - localStorage.setItem('explore-sort', 1); - localStorage.setItem('explore-json', JSON.stringify(json)); - } else { - localStorage.setItem('explore-sort', SORT + 1); - json = localStorage.getItem('explore-json') ? JSON.parse(localStorage.getItem('explore-json')) : json; - } - /* */ - const root = document.getElementById('explore'); - root.textContent = 'Explore more'; - root.dataset.loaded = true; - /* */ - const table = document.createElement('table'); - const span = document.createElement('span'); - const tr = document.createElement('tr'); - /* */ - table.setAttribute("class", "container"); - span.classList.add('close'); - span.textContent = '✕'; - /* */ - span.onclick = () => { - root.textContent = ''; - root.dataset.loaded = false; - localStorage.setItem("explore-count", 0); - explore(); - }; - /* */ - root.appendChild(span); - table.appendChild(tr); - root.appendChild(table); - /* */ - json.slice(0, 4).forEach(({id, title}, index) => { - if (id && title) { - const a = document.createElement('a'); - const td = document.createElement('td'); - const short = chrome.runtime.getManifest().short_name; - const homepage = chrome.runtime.getManifest().homepage_url; - const url = homepage.split('/').slice(0, -1).join('/') + '/'; - a.href = url + id + ".html?context=explore&from=" + short; - a.target = '_blank'; - /* */ - const icon = document.createElement('span'); - icon.textContent = title.replace(' -', '').split(' ').map(e => e[0]).slice(0, 2).join('').toUpperCase(); - icon.style.backgroundColor = randcolor(); - icon.setAttribute("class", "icon"); - a.appendChild(icon); - /* */ - const name = document.createElement('span'); - name.setAttribute("class", "name"); - name.textContent = title; - a.appendChild(name); - /* */ - if (index) td.setAttribute("class", "spacer"); - td.appendChild(a); - tr.appendChild(td); - } - }); - }; - - if (COUNT >= INC) { - if (COUNT < INC + 4) cload(); else explore(); - /* */ - if (COUNT > INC + 5) localStorage.setItem('explore-count', INC); - else localStorage.setItem('explore-count', COUNT + 1); - } else { - explore(); - localStorage.setItem('explore-count', COUNT + 1); - } -} diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.json b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/explore/explore.json @@ -1,20 +0,0 @@ -[ - {"id": "smart-https", "title": "Smart HTTPS"}, - {"id": "cache-cleaner", "title": "Cache Cleaner"}, - {"id": "webrtc-control", "title": "WebRTC Control"}, - {"id": "webapi-blocker", "title": "WebAPI Blocker"}, - {"id": "cookie-switch", "title": "Cookie Switch ON|OFF"}, - {"id": "policy-control-wext", "title": "Policy Control"}, - {"id": "popup-blocking", "title": "Popup Blocker (Lite)"}, - {"id": "privacy-guard", "title": "Privacy Guard & Manager"}, - {"id": "restrict-to-domain", "title": "Restrict to Domain"}, - {"id": "font-defender", "title": "Font Fingerprint Defender"}, - {"id": "block-miners", "title": "NoMiner - Block Coin Miners"}, - {"id": "webgl-defender", "title": "WebGL Fingerprint Defender"}, - {"id": "canvas-defender", "title": "Canvas Fingerprint Defender"}, - {"id": "change-timezone", "title": "Change Timezone (Time Shift)"}, - {"id": "custom-useragent-string", "title": "Custom UserAgent String"}, - {"id": "change-geolocation", "title": "Change Geolocation (Location Guard)"}, - {"id": "audiocontext-defender", "title": "AudioContext Fingerprint Defender"}, - {"id": "access-control-allow-origin", "title": "Allow CORS: Access-Control-Allow-Origin"} -] diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/check.png b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/check.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/install.png b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/install.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/ip.png b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/ip.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/reload.png b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/reload.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/support.png b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/icons/support.png Binary files differ. diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.css b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.css @@ -1,117 +0,0 @@ -body { - border: 0; - margin: 0; - width: 460px; - padding: 0 1px; - overflow: hidden; -} - -table tr td { - padding: 0; - text-align: center; - transition: 300ms ease all; - font-family: arial, sans-serif; - -moz-transition: 300ms ease all; - -webkit-transition: 300ms ease all; -} - -p { - padding: 10px; - color: #7c4698; - margin: 5px 0 0 0; - user-select: none; - text-align: center; - -moz-user-select: none; - -webkit-user-select: none; -} - -.content { - width: 100%; - height: 100%; -} - -.controls, .footer { - width: 100%; - font-size: 12px; - border-spacing: 0; -} - -.controls { - height: 100%; - table-layout: fixed; -} - -.footer { - height: 36px; - border-left: 0; - border-right: 0; - margin-top: 5px; - border-top: solid 1px rgba(0,0,0,0.05); - border-bottom: solid 1px rgba(0,0,0,0.05); -} - -#ip {background: url("icons/ip.png") no-repeat center center} -#check {background: url("icons/check.png") no-repeat center center} -#reload {background: url("icons/reload.png") no-repeat center center} -#support {background: url("icons/support.png") no-repeat center center} -#install {background: url("icons/install.png") no-repeat center center} - -#ip, #check, #support, #install, #reload { - background-size: 14px; - cursor: pointer; - width: 32px; -} - -#status { - height: 36px; - color: #58316b; - font-size: 12px; - user-select: none; - text-align: center; - font-family: monospace; -} - -#ON, #OFF { - height: 90px; - cursor: pointer; - border-bottom: solid 1px transparent; -} - -#ON {background: url("../icons/ON/128.png") no-repeat center center} -#OFF {background: url("../icons/OFF/128.png") no-repeat center center} - -#ON[type="active"] {border-bottom: solid 1px #7c4698} -#OFF[type="active"] {border-bottom: solid 1px #a8a8a8} - -#ON, #OFF {background-size: 52px} - -#whitelist { - color: #333; - height: 72px; - margin: 0 auto; - font-size: 12px; - padding: 1px 5px; - font-family: monospace; - width: calc(100% - 20px); - border: solid 1px rgba(0,0,0,0.1); -} - -#ip:hover, -#ON:hover, -#OFF:hover, -#check:hover, -#reload:hover, -#install:hover, -#support:hover { - background-color: rgba(0,0,0,0.05) !important; -} - -#ip:active, -#ON:active, -#OFF:active, -#check:active, -#reload:active, -#install:active, -#support:active { - opacity: 0.7; -} diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.html b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.html @@ -1,37 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <meta charset="UTF-8"> - <link rel="stylesheet" type="text/css" href="popup.css"/> - <link rel="stylesheet" type="text/css" href="explore/explore.css"/> - </head> - <body> - <div class="content"> - <table class="controls"> - <tr> - <td title="Connect to TOR proxy" id="ON"></td> - <td title="Disconnect from TOR proxy" id="OFF"></td> - </tr> - <tr><td colspan=2><p class="description">Do not use proxy for the following addresses (comma separated)</p></td></tr> - <tr><td colspan=2><textarea id="whitelist" placeholder="i.e. <local>, foobar.com, *foobar.com, *.foobar.com, *foobar.com:99, https://x.*.y.com:99"></textarea></td></tr> - <tr> - <td colspan=2> - <table class="footer"> - <tr> - <td id="status">Onion Browser Button</td> - <td id="reload" title="Reload current tab"></td> - <td id="install" title="Download TOR patch files"></td> - <td id="check" title="Check tor connection"></td> - <td id="ip" title="What is my IP address"></td> - <td id="support" title="Support page"></td> - </tr> - </table> - </td> - </tr> - </table> - </div> - <div id="explore"></div> - <script async src="explore/explore.js"></script> - <script src="popup.js"></script> - </body> -</html> diff --git a/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.js b/data/extensions/tortm-browser-button@jeremybenthum/data/popup/popup.js @@ -1,52 +0,0 @@ -var background = (function () { - var tmp = {}; - chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - for (var id in tmp) { - if (tmp[id] && (typeof tmp[id] === "function")) { - if (request.path == 'background-to-popup') { - if (request.method === id) tmp[id](request.data); - } - } - } - }); - /* */ - return { - "receive": function (id, callback) {tmp[id] = callback}, - "send": function (id, data) {chrome.runtime.sendMessage({"path": 'popup-to-background', "method": id, "data": data})} - } -})(); - -var load = function () { - var whitelist = document.getElementById("whitelist"); - whitelist.addEventListener("change", function (e) { - var value = e.target ? e.target.value : ''; - background.send("popup-data", {"name": "bypassList", "whitelist": value}); - }); - /* */ - document.addEventListener("click", function (e) { - var id = e.target ? e.target.getAttribute("id") : null; - if (id && id !== "whitelist") background.send("popup-data", {"name": id}); - }); - /* */ - background.send("load"); - window.removeEventListener("load", load, false); -}; - -background.receive("tor-data", function (e) { - var ON = document.getElementById("ON"); - var OFF = document.getElementById("OFF"); - var status = document.getElementById("status"); - var whitelist = document.getElementById("whitelist"); - /* */ - status.textContent = e.log; - whitelist.value = e.whitelist; - /* */ - if (e.id === "CHECK") e.id = "ON"; - if (e.id === "ON" || e.id === "OFF") { - ON.removeAttribute("type"); - OFF.removeAttribute("type"); - document.getElementById(e.id).setAttribute("type", "active"); - } -}); - -window.addEventListener("load", load, false); diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/chrome/background.html b/data/extensions/tortm-browser-button@jeremybenthum/lib/chrome/background.html @@ -1,9 +0,0 @@ -<!DOCTYPE html> -<html> - <head><meta charset="utf-8"></head> - <body> - <script src="../proxy.js"></script> - <script src="../config.js"></script> - <script src="chrome.js"></script> - </body> -</html> diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/chrome/chrome.js b/data/extensions/tortm-browser-button@jeremybenthum/lib/chrome/chrome.js @@ -1,65 +0,0 @@ -var app = {}; - -app.button = {set icon (o) {chrome.browserAction.setIcon(o)}}; -app.version = function () {return chrome.runtime.getManifest().version}; -app.homepage = function () {return chrome.runtime.getManifest().homepage_url}; -chrome.runtime.setUninstallURL(app.homepage() + "?v=" + app.version() + "&type=uninstall", function () {}); - -app.tab = { - "reload": function (url) {chrome.tabs.reload(function () {})}, - "open": function (url) {chrome.tabs.create({"url": url, "active": true})} -}; - -chrome.runtime.onInstalled.addListener(function (e) { - window.setTimeout(function () { - var previous = e.previousVersion !== undefined && e.previousVersion !== app.version(); - var doupdate = previous && parseInt((Date.now() - config.welcome.lastupdate) / (24 * 3600 * 1000)) > 45; - if (e.reason === "install" || (e.reason === "update" && doupdate)) { - var parameter = (e.previousVersion ? "&p=" + e.previousVersion : '') + "&type=" + e.reason; -// app.tab.open(app.homepage() + "?v=" + app.version() + parameter); - config.welcome.lastupdate = Date.now(); - } - }, 3000); -}); - -app.storage = (function () { - var objs = {}; - window.setTimeout(function () { - chrome.storage.local.get(null, function (o) { - objs = o; - var script = document.createElement("script"); - script.src = "../common.js"; - document.body.appendChild(script); - }); - }, 300); - /* */ - return { - "read": function (id) {return objs[id]}, - "write": function (id, data) { - var tmp = {}; - tmp[id] = data; - objs[id] = data; - chrome.storage.local.set(tmp, function () {}); - } - } -})(); - -app.popup = (function () { - var tmp = {}; - chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) { - for (var id in tmp) { - if (tmp[id] && (typeof tmp[id] === "function")) { - if (request.path === 'popup-to-background') { - if (request.method === id) tmp[id](request.data); - } - } - } - }); - /* */ - return { - "receive": function (id, callback) {tmp[id] = callback}, - "send": function (id, data, tabId) { - chrome.runtime.sendMessage({"path": 'background-to-popup', "method": id, "data": data}); - } - } -})(); diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/common.js b/data/extensions/tortm-browser-button@jeremybenthum/lib/common.js @@ -1,95 +0,0 @@ -var core = { - "popup": { - "send": function () { - tor.icon(tor.id); - app.popup.send("tor-data", { - "id": tor.id, - "log": tor.log, - "whitelist": config.addon.whitelist - }); - } - }, - "apply": { - "proxy": function (callback) { - if (tor.id === "OFF") chrome.proxy.settings.set({"scope": "regular", "value": {"mode": "system"}}, callback); - else chrome.proxy.settings.set({ - "scope": "regular", - "value": { - "mode": "fixed_servers", - "rules": { - "bypassList": tor.bypassList, - "singleProxy": {"scheme": "socks5", "host": "127.0.0.1", "port": 9050} - } - } - }, callback); - } - } -}; - -var tor = { - "id": "OFF", - "bypassList": [], - "log": "Onion Browser Button", - "stop": function () { - tor.id = "OFF"; - tor.log = "TOR proxy is disabled"; - core.apply.proxy(core.popup.send); - }, - "start": function () { - tor.id = "ON"; - tor.log = "Connected to 127.0.0.1:9050"; - config.notifications.create("TOR is running. Connected to 127.0.0.1:9050"); - tor.bypassList = config.addon.whitelist ? config.addon.whitelist.split(',') : []; - core.apply.proxy(core.popup.send); - }, - "once": function (callback) { - tor.id = "CHECK"; - tor.log = "Checking tor proxy connection..."; - tor.bypassList = config.addon.whitelist ? config.addon.whitelist.split(',') : []; - core.apply.proxy(function () {window.setTimeout(function () {callback(true)}, 300)}); - core.popup.send(); - }, - "icon": function (state) { - app.button.icon = { - "path": { - "16": "../../data/icons/" + (state ? state + "/" : '') + "16.png", - "32": "../../data/icons/" + (state ? state + "/" : '') + "32.png", - "48": "../../data/icons/" + (state ? state + "/" : '') + "48.png", - "64": "../../data/icons/" + (state ? state + "/" : '') + "64.png" - } - }; - }, - "update": function () { - if (config.addon.state === "ON") { - tor.once(function () { - var url = config.url.tor + "?t=" + new Date().getTime() + "&r=" + Math.round(Math.random() * 10000); - config.request(url, function (e) { - if (e === "ok") config.addon.state === "ON" ? tor.start() : tor.stop(); - else { - tor.stop(); - config.notifications.create("TOR is NOT running. Please connect your computer to TOR network and try again."); - } - }); - }); - } else tor.stop(); - } -}; - -app.popup.receive("popup-data", function (e) { - if (e.name === "reload") app.tab.reload(); - if (e.name === "ip") app.tab.open(config.url.ip); - if (e.name === "check") app.tab.open(config.url.tor); - if (e.name === "support") app.tab.open(app.homepage()); - if (e.name === "install") app.tab.open(config.url.github); - if (e.name === "bypassList") { - config.addon.whitelist = e.whitelist; - tor.update(); - } - if (e.name === "ON" || e.name === "OFF") { - config.addon.state = e.name; - tor.update(); - } -}); - -window.setTimeout(tor.update, 0); -app.popup.receive("load", core.popup.send); diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/config.js b/data/extensions/tortm-browser-button@jeremybenthum/lib/config.js @@ -1,48 +0,0 @@ -var config = {}; - -config.url = { - "tor": "https://check.torproject.org/", - "ip": "https://webbrowsertools.com/ip-address/", - "github": "https://github.com/jeremy-jr-benthum/tor-button/releases", -}; - -config.welcome = { - set lastupdate (val) {app.storage.write("lastupdate", val)}, - get lastupdate () {return app.storage.read("lastupdate") !== undefined ? app.storage.read("lastupdate") : 0} -}; - -config.addon = { - set state (val) {app.storage.write("state", val)}, - set whitelist (val) {app.storage.write("whitelist", val)}, - get whitelist () {return app.storage.read("whitelist") || ''}, - get state () {return app.storage.read("state") !== undefined ? app.storage.read("state") : "OFF"} -}; - -config.request = function (url, callback) { - var xhr = new XMLHttpRequest(); - try { - xhr.onload = function () {xhr.status >= 200 && xhr.status < 304 ? callback("ok") : callback("error")}; - xhr.open("HEAD", url, true); - xhr.onerror = function () {callback("error")}; - xhr.ontimeout = function () {callback("error")}; - xhr.send(''); - } catch (e) {callback("error")} -}; - -config.notifications = (function () { - chrome.notifications.onClicked.addListener(function (id) { - if (id === config.notifications.id) app.tab.open(app.homepage() + "#faq"); - }); - /* */ - return { - "id": "onion-button-notifications-id", - "create": function (message) { - chrome.notifications.create(config.notifications.id, { - "type": "basic", - "message": message, - "title": "Onion Browser Button", - "iconUrl": /Firefox/.test(navigator.userAgent) ? "data/icons/64.png" : chrome.runtime.getURL("data/icons/64.png") - }, function () {}); - } - } -})(); diff --git a/data/extensions/tortm-browser-button@jeremybenthum/lib/proxy.js b/data/extensions/tortm-browser-button@jeremybenthum/lib/proxy.js @@ -1,56 +0,0 @@ -if (/Firefox/.test(navigator.userAgent)) { - chrome.proxy = {"settings": {}}; - chrome.proxy.convert = { - "to": ({value}) => { - const mode = value.mode; - const settings = { - "autoLogin": value.noPrompt, - "proxyDNS": value.remoteDNS, - "autoConfigUrl": mode === 'pac_script' ? value.pacScript.url : '', - "socksVersion": mode === 'fixed_servers' && value.rules.singleProxy.scheme === 'socks5' ? 5 : 4, - "passthrough": mode === 'fixed_servers' && value.rules.bypassList && value.rules.bypassList.length ? value.rules.bypassList.join(', ') : '', - "proxyType": {'direct': 'none', 'system': 'system', 'auto_detect': 'autoDetect', 'fixed_servers': 'manual', 'pac_script': 'autoConfig'}[mode] - }; - /* */ - if (mode === 'fixed_servers') { - const rules = value.rules; - const url = ({host, port, scheme}) => {return host && port ? (scheme === "https" ? "https://" : '') + (host.trim().replace(/.*:\/\//, '') + ':' + port) : ''}; - if (rules.singleProxy.scheme.startsWith('socks')) { - settings.http = settings.ssl = settings.ftp = ''; - settings.socks = url(rules.singleProxy); - } else settings.ssl = settings.ftp = settings.http = url(rules.singleProxy); - } - /* */ - return {"value": settings}; - }, - "from": ({value}) => { - const config = {"value": {"remoteDNS": value.proxyDNS, "noPrompt": value.autoLogin}}; - config.value.mode = {'none': 'direct', 'system': 'system', 'autoDetect': 'auto_detect', 'manual': 'fixed_servers', 'autoConfig': 'pac_script'}[value.proxyType]; - if (value.proxyType === 'autoConfig' || value.proxyType === 'manual') config.value.rules = {}; - /* */ - if (value.proxyType === 'autoConfig') config.value.pacScript = {"url": value.autoConfigUrl}; - else if (value.proxyType === 'manual') { - config.value.rules.bypassList = value.passthrough ? value.passthrough.split(', ') : []; - const type = url => {return value.socks ? 'socks' + value.socksVersion : (url.startsWith('https://') ? 'https' : 'http')}; - const parse = url => { - const scheme = type(url); - const [host, port] = url.split('://')[0].split(':'); - return {scheme, host, "port": Number(port)}; - }; - /* */ - config.value.rules.singleProxy = parse(value.http || value.socks); - } - /* */ - return config; - } - }; - /* */ - chrome.proxy.settings.clear = (o, callback) => browser.proxy.settings.clear(o).then(callback); - chrome.proxy.settings.get = (o, callback) => browser.proxy.settings.get(o).then(e => callback(chrome.proxy.convert.from(e))); - chrome.proxy.settings.set = async(o, callback = function () {}) => { - const settings = chrome.proxy.convert.to(o); - await browser.proxy.settings.clear({}); - browser.proxy.settings.set(settings); - callback(); - }; -} diff --git a/data/extensions/tortm-browser-button@jeremybenthum/manifest.json b/data/extensions/tortm-browser-button@jeremybenthum/manifest.json @@ -1,28 +0,0 @@ -{ - "applications": { "gecko": { "id": "tortm-browser-button@jeremybenthum" } }, - "version": "0.1.8", - "manifest_version": 2, - "short_name": "onion-button", - "name": "Onion Browser Button", - "background": {"page": "lib/chrome/background.html"}, - "homepage_url": "https://mybrowseraddon.com/tor-button.html", - "description": "Easily browse the internet using TOR proxy with just one click!", - "permissions": ["proxy", "storage", "notifications", "https://check.torproject.org/*"], - "browser_action": { - "default_title": "Onion Browser Button", - "default_popup": "data/popup/popup.html", - "default_icon": { - "16": "data/icons/16.png", - "32": "data/icons/32.png", - "48": "data/icons/48.png", - "64": "data/icons/64.png" - } - }, - "icons": { - "16": "data/icons/16.png", - "32": "data/icons/32.png", - "48": "data/icons/48.png", - "64": "data/icons/64.png", - "128": "data/icons/128.png" - } -} diff --git a/data/update-extensions.sh b/data/update-extensions.sh @@ -2,7 +2,7 @@ set -e -for extension in librejs https-everywhere librejs-usps-compatibility submit-me tortm-browser-button viewtube disable-polymer-youtube; do +for extension in librejs https-everywhere librejs-usps-compatibility submit-me viewtube disable-polymer-youtube; do rm -rf /tmp/update-extension mkdir /tmp/update-extension @@ -18,7 +18,6 @@ for extension in librejs https-everywhere librejs-usps-compatibility submit-me t ID=$(grep '"id":' /tmp/update-extension/manifest.json |head -n1|cut -d \" -f 4) fi - [ $extension = "tortm-browser-button" ] && ID="tortm-browser-button@jeremybenthum" [ $extension = "use-google-drive-with-librejs" ] && ID="google_drive@0xbeef.coffee" [ -z $ID ] && ID=$extension"@extension" @@ -27,10 +26,9 @@ for extension in librejs https-everywhere librejs-usps-compatibility submit-me t done -sed '/app\.tab\.open.*parameter.*/s=^=//=' -i extensions/tortm-browser-button@jeremybenthum/lib/chrome/chrome.js sed '/autoUpdateRulesets/s/true/false/' -i extensions/https-everywhere@eff.org/pages/options/ux.js extensions/https-everywhere@eff.org/background-scripts/update.js -for ID in viewtube@extension disable-polymer-youtube@extension tortm-browser-button@jeremybenthum; do +for ID in viewtube@extension disable-polymer-youtube@extension; do sed 's/^{/{\n "applications": { "gecko": { "id": "'$ID'" } },/' -i extensions/$ID/manifest.json done