From b781047fbedbadc261e82650878255c8def1f01e Mon Sep 17 00:00:00 2001 From: Stef Gijsberts Date: Oct 31 2021 23:01:02 +0000 Subject: [PATCH 1/3] Convert "json" files to real json files This is needed to build the project using Webpack v2 or v3 [0]. The following commands were used for the conversion: $ mv licenses.json licenses.old.json $ cat licenses.old.json \ | sed $'s/module.exports = //g' \ | tr \' \" | tr -d ';' \ | sed $'s/licenses: /"licenses": /g' \ > licenses.json $ mv fname_data.json fname_data.old.json $ cat fname_data.old.json \ | sed $'s/module.exports = //g'\ | tr \' \" \ | tr -d ';' \ | sed $'s/fname_data : /"fname_data": /g' \ > fname_data.json [0]: https://webpack.js.org/migrate/3/#json-loader-is-not-required-anymore --- diff --git a/fname_data.json b/fname_data.json index e8ab932..5606007 100644 --- a/fname_data.json +++ b/fname_data.json @@ -1,5 +1,5 @@ -module.exports = { - fname_data : { +{ + "fname_data": { "WebGLShader": true, "WebGLShaderPrecisionFormat": true, "WebGLQuery": true, @@ -829,4 +829,4 @@ module.exports = { "NodeList": true, "StopIteration": true } -}; +} diff --git a/licenses.json b/licenses.json index a46a1da..875e676 100644 --- a/licenses.json +++ b/licenses.json @@ -1,219 +1,219 @@ -module.exports = { - licenses: { - 'Apache-2.0':{ - 'Name': 'Apache 2.0', - 'URL': 'http://www.apache.org/licenses/LICENSE-2.0', - 'Magnet link': 'magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt' - }, - 'Artistic-2.0':{ - 'Name': 'Artistic 2.0', - 'URL': 'http://www.perlfoundation.org/artistic_license_2_0', - 'Magnet link': 'magnet:?xt=urn:btih:54fd2283f9dbdf29466d2df1a98bf8f65cafe314&dn=artistic-2.0.txt' - }, - 'Boost':{ - 'Name': 'Boost', - 'URL': 'http://www.boost.org/LICENSE_1_0.txt', - 'Magnet link': 'magnet:?xt=urn:btih:89a97c535628232f2f3888c2b7b8ffd4c078cec0&dn=Boost-1.0.txt' - }, - 'CPAL-1.0':{ - 'Name': 'CPAL 1.0', - 'URL': 'http://opensource.org/licenses/cpal_1.0', - 'Magnet link': 'magnet:?xt=urn:btih:84143bc45939fc8fa42921d619a95462c2031c5c&dn=cpal-1.0.txt' - }, - 'CC0-1.0':{ - 'Name': 'CC0 1.0', - 'URL': 'http://creativecommons.org/publicdomain/zero/1.0/legalcode', - 'Magnet link': 'magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt' - }, - 'CC-BY-SA-1.0':{ - 'Name': 'CC-BY-SA 1.0', - 'URL': 'https://creativecommons.org/licenses/by-sa/1.0/', - 'Magnet link': '' - }, - 'CC-BY-SA-2.0':{ - 'Name': 'CC-BY-SA 2.0', - 'URL': 'https://creativecommons.org/licenses/by-sa/2.0/', - 'Magnet link': '' - }, - 'CC-BY-SA-2.5':{ - 'Name': 'CC-BY-SA 2.5', - 'URL': 'https://creativecommons.org/licenses/by-sa/2.5/', - 'Magnet link': '' - }, - 'CC-BY-SA-3.0':{ - 'Name': 'CC-BY-SA 3.0', - 'URL': 'https://creativecommons.org/licenses/by-sa/3.0/', - 'Magnet link': '' - }, - 'CC-BY-SA-4.0':{ - 'Name': 'CC-BY-SA 4.0', - 'URL': 'https://creativecommons.org/licenses/by-sa/4.0/', - 'Magnet link': '' - }, - 'CC-BY-1.0':{ - 'Name': 'CC-BY 1.0', - 'URL': 'https://creativecommons.org/licenses/by/1.0/', - 'Magnet link': '' - }, - 'CC-BY-2.0':{ - 'Name': 'CC-BY 2.0', - 'URL': 'https://creativecommons.org/licenses/by/2.0/', - 'Magnet link': '' - }, - 'CC-BY-2.5':{ - 'Name': 'CC-BY 2.5', - 'URL': 'https://creativecommons.org/licenses/by/2.5/', - 'Magnet link': '' - }, - 'CC-BY-3.0':{ - 'Name': 'CC-BY 3.0', - 'URL': 'https://creativecommons.org/licenses/by/3.0/', - 'Magnet link': '' - }, - 'CC-BY-4.0':{ - 'Name': 'CC-BY 4.0', - 'URL': 'https://creativecommons.org/licenses/by/4.0/', - 'Magnet link': '' - }, - 'EPL-1.0':{ - 'Name': 'EPL 1.0', - 'URL': 'http://www.eclipse.org/legal/epl-v10.html', - 'Magnet link': 'magnet:?xt=urn:btih:4c6a2ad0018cd461e9b0fc44e1b340d2c1828b22&dn=epl-1.0.txt' - }, - 'Expat':{ - 'Name': 'Expat', - 'URL': 'http://www.jclark.com/xml/copying.txt', - 'Magnet link': 'magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt' - }, - 'MIT':{ - 'Name': 'Expat', - 'URL': 'http://www.jclark.com/xml/copying.txt', - 'Magnet link': 'magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt' - }, - 'X11':{ - 'Name': 'X11', - 'URL': 'http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3', - 'Magnet link': 'magnet:?xt=urn:btih:5305d91886084f776adcf57509a648432709a7c7&dn=x11.txt' - }, - 'GPL-2.0':{ - 'Name': 'GPL 2.0', - 'URL': 'http://www.gnu.org/licenses/gpl-2.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt' - }, - 'GPL-3.0':{ - 'Name': 'GPL 3.0', - 'URL': 'http://www.gnu.org/licenses/gpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt' - }, - 'LGPL-2.1':{ - 'Name': 'LGPL 2.1', - 'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html', - 'Magnet link': 'magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt' - }, - 'LGPL-3.0':{ - 'Name': 'LGPL 3.0', - 'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt' - }, - 'AGPL-3.0':{ - 'Name': 'AGPL 3.0', - 'URL': 'http://www.gnu.org/licenses/agpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt' - }, - 'GPL-2.0-only':{ - 'Name': 'GPL 2.0', - 'URL': 'http://www.gnu.org/licenses/gpl-2.0.html', - 'Magnet link': '' - }, - 'GPL-3.0-only':{ - 'Name': 'GPL 3.0', - 'URL': 'http://www.gnu.org/licenses/gpl-3.0.html', - 'Magnet link': '' - }, - 'LGPL-2.1-only':{ - 'Name': 'LGPL 2.1', - 'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html', - 'Magnet link': '' - }, - 'LGPL-3.0-only':{ - 'Name': 'LGPL 3.0', - 'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html', - 'Magnet link': '' - }, - 'AGPL-3.0-only':{ - 'Name': 'AGPL 3.0', - 'URL': 'http://www.gnu.org/licenses/agpl-3.0.html', - 'Magnet link': '' - }, - 'GPL-2.0-or-later':{ - 'Name': 'GPL 2.0 or later', - 'URL': 'http://www.gnu.org/licenses/gpl-2.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt' - }, - 'GPL-3.0-or-later':{ - 'Name': 'GPL 3.0 or later', - 'URL': 'http://www.gnu.org/licenses/gpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt' - }, - 'LGPL-2.1-or-later':{ - 'Name': 'LGPL 2.1 or later', - 'URL': 'http://www.gnu.org/licenses/lgpl-2.1.html', - 'Magnet link': 'magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt' - }, - 'LGPL-3.0-or-later':{ - 'Name': 'LGPL 3.0 or later', - 'URL': 'http://www.gnu.org/licenses/lgpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt' - }, - 'AGPL-3.0-or-later':{ - 'Name': 'AGPL 3.0 or later', - 'URL': 'http://www.gnu.org/licenses/agpl-3.0.html', - 'Magnet link': 'magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt' - }, - 'ISC':{ - 'Name': 'ISC', - 'URL': 'https://www.isc.org/downloads/software-support-policy/isc-license/', - 'Magnet link': 'magnet:?xt=urn:btih:b8999bbaf509c08d127678643c515b9ab0836bae&dn=ISC.txt' - }, - 'MPL-2.0':{ - 'Name': 'MPL 2.0', - 'URL': 'http://www.mozilla.org/MPL/2.0', - 'Magnet link': 'magnet:?xt=urn:btih:3877d6d54b3accd4bc32f8a48bf32ebc0901502a&dn=mpl-2.0.txt' - }, - 'UPL-1.0': { - 'Name': 'UPL 1.0', - 'URL': 'https://oss.oracle.com/licenses/upl/', - 'Magnet link': 'magnet:?xt=urn:btih:478974f4d41c3fa84c4befba25f283527fad107d&dn=upl-1.0.txt' - }, - 'WTFPL': { - 'Name': 'WTFPL', - 'URL': 'http://www.wtfpl.net/txt/copying/', - 'Magnet link': 'magnet:?xt=urn:btih:723febf9f6185544f57f0660a41489c7d6b4931b&dn=wtfpl.txt' - }, - 'Unlicense':{ - 'Name': 'Unlicense', - 'URL': 'http://unlicense.org/UNLICENSE', - 'Magnet link': 'magnet:?xt=urn:btih:5ac446d35272cc2e4e85e4325b146d0b7ca8f50c&dn=unlicense.txt' - }, - 'FreeBSD':{ - 'Name': 'FreeBSD', - 'URL': 'http://www.freebsd.org/copyright/freebsd-license.html', - 'Magnet link': 'magnet:?xt=urn:btih:87f119ba0b429ba17a44b4bffcab33165ebdacc0&dn=freebsd.txt' - }, - 'BSD-2-Clause':{ - 'Name': 'FreeBSD (BSD-2-Clause)', - 'URL': 'http://www.freebsd.org/copyright/freebsd-license.html', - 'Magnet link': '' - }, - 'BSD-3-Clause':{ - 'Name': 'Modified BSD (BSD-3-Clause)', - 'URL': 'http://opensource.org/licenses/BSD-3-Clause', - 'Magnet link': 'magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt' - }, - 'XFree86-1.1':{ - 'Name': 'XFree86 1.1', - 'URL': 'http://www.xfree86.org/current/LICENSE4.html', - 'Magnet link': 'magnet:?xt=urn:btih:12f2ec9e8de2a3b0002a33d518d6010cc8ab2ae9&dn=xfree86.txt' +{ + "licenses": { + "Apache-2.0":{ + "Name": "Apache 2.0", + "URL": "http://www.apache.org/licenses/LICENSE-2.0", + "Magnet link": "magnet:?xt=urn:btih:8e4f440f4c65981c5bf93c76d35135ba5064d8b7&dn=apache-2.0.txt" + }, + "Artistic-2.0":{ + "Name": "Artistic 2.0", + "URL": "http://www.perlfoundation.org/artistic_license_2_0", + "Magnet link": "magnet:?xt=urn:btih:54fd2283f9dbdf29466d2df1a98bf8f65cafe314&dn=artistic-2.0.txt" + }, + "Boost":{ + "Name": "Boost", + "URL": "http://www.boost.org/LICENSE_1_0.txt", + "Magnet link": "magnet:?xt=urn:btih:89a97c535628232f2f3888c2b7b8ffd4c078cec0&dn=Boost-1.0.txt" + }, + "CPAL-1.0":{ + "Name": "CPAL 1.0", + "URL": "http://opensource.org/licenses/cpal_1.0", + "Magnet link": "magnet:?xt=urn:btih:84143bc45939fc8fa42921d619a95462c2031c5c&dn=cpal-1.0.txt" + }, + "CC0-1.0":{ + "Name": "CC0 1.0", + "URL": "http://creativecommons.org/publicdomain/zero/1.0/legalcode", + "Magnet link": "magnet:?xt=urn:btih:90dc5c0be029de84e523b9b3922520e79e0e6f08&dn=cc0.txt" + }, + "CC-BY-SA-1.0":{ + "Name": "CC-BY-SA 1.0", + "URL": "https://creativecommons.org/licenses/by-sa/1.0/", + "Magnet link": "" + }, + "CC-BY-SA-2.0":{ + "Name": "CC-BY-SA 2.0", + "URL": "https://creativecommons.org/licenses/by-sa/2.0/", + "Magnet link": "" + }, + "CC-BY-SA-2.5":{ + "Name": "CC-BY-SA 2.5", + "URL": "https://creativecommons.org/licenses/by-sa/2.5/", + "Magnet link": "" + }, + "CC-BY-SA-3.0":{ + "Name": "CC-BY-SA 3.0", + "URL": "https://creativecommons.org/licenses/by-sa/3.0/", + "Magnet link": "" + }, + "CC-BY-SA-4.0":{ + "Name": "CC-BY-SA 4.0", + "URL": "https://creativecommons.org/licenses/by-sa/4.0/", + "Magnet link": "" + }, + "CC-BY-1.0":{ + "Name": "CC-BY 1.0", + "URL": "https://creativecommons.org/licenses/by/1.0/", + "Magnet link": "" + }, + "CC-BY-2.0":{ + "Name": "CC-BY 2.0", + "URL": "https://creativecommons.org/licenses/by/2.0/", + "Magnet link": "" + }, + "CC-BY-2.5":{ + "Name": "CC-BY 2.5", + "URL": "https://creativecommons.org/licenses/by/2.5/", + "Magnet link": "" + }, + "CC-BY-3.0":{ + "Name": "CC-BY 3.0", + "URL": "https://creativecommons.org/licenses/by/3.0/", + "Magnet link": "" + }, + "CC-BY-4.0":{ + "Name": "CC-BY 4.0", + "URL": "https://creativecommons.org/licenses/by/4.0/", + "Magnet link": "" + }, + "EPL-1.0":{ + "Name": "EPL 1.0", + "URL": "http://www.eclipse.org/legal/epl-v10.html", + "Magnet link": "magnet:?xt=urn:btih:4c6a2ad0018cd461e9b0fc44e1b340d2c1828b22&dn=epl-1.0.txt" + }, + "Expat":{ + "Name": "Expat", + "URL": "http://www.jclark.com/xml/copying.txt", + "Magnet link": "magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt" + }, + "MIT":{ + "Name": "Expat", + "URL": "http://www.jclark.com/xml/copying.txt", + "Magnet link": "magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt" + }, + "X11":{ + "Name": "X11", + "URL": "http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3", + "Magnet link": "magnet:?xt=urn:btih:5305d91886084f776adcf57509a648432709a7c7&dn=x11.txt" + }, + "GPL-2.0":{ + "Name": "GPL 2.0", + "URL": "http://www.gnu.org/licenses/gpl-2.0.html", + "Magnet link": "magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt" + }, + "GPL-3.0":{ + "Name": "GPL 3.0", + "URL": "http://www.gnu.org/licenses/gpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt" + }, + "LGPL-2.1":{ + "Name": "LGPL 2.1", + "URL": "http://www.gnu.org/licenses/lgpl-2.1.html", + "Magnet link": "magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt" + }, + "LGPL-3.0":{ + "Name": "LGPL 3.0", + "URL": "http://www.gnu.org/licenses/lgpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt" + }, + "AGPL-3.0":{ + "Name": "AGPL 3.0", + "URL": "http://www.gnu.org/licenses/agpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt" + }, + "GPL-2.0-only":{ + "Name": "GPL 2.0", + "URL": "http://www.gnu.org/licenses/gpl-2.0.html", + "Magnet link": "" + }, + "GPL-3.0-only":{ + "Name": "GPL 3.0", + "URL": "http://www.gnu.org/licenses/gpl-3.0.html", + "Magnet link": "" + }, + "LGPL-2.1-only":{ + "Name": "LGPL 2.1", + "URL": "http://www.gnu.org/licenses/lgpl-2.1.html", + "Magnet link": "" + }, + "LGPL-3.0-only":{ + "Name": "LGPL 3.0", + "URL": "http://www.gnu.org/licenses/lgpl-3.0.html", + "Magnet link": "" + }, + "AGPL-3.0-only":{ + "Name": "AGPL 3.0", + "URL": "http://www.gnu.org/licenses/agpl-3.0.html", + "Magnet link": "" + }, + "GPL-2.0-or-later":{ + "Name": "GPL 2.0 or later", + "URL": "http://www.gnu.org/licenses/gpl-2.0.html", + "Magnet link": "magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt" + }, + "GPL-3.0-or-later":{ + "Name": "GPL 3.0 or later", + "URL": "http://www.gnu.org/licenses/gpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt" + }, + "LGPL-2.1-or-later":{ + "Name": "LGPL 2.1 or later", + "URL": "http://www.gnu.org/licenses/lgpl-2.1.html", + "Magnet link": "magnet:?xt=urn:btih:5de60da917303dbfad4f93fb1b985ced5a89eac2&dn=lgpl-2.1.txt" + }, + "LGPL-3.0-or-later":{ + "Name": "LGPL 3.0 or later", + "URL": "http://www.gnu.org/licenses/lgpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:0ef1b8170b3b615170ff270def6427c317705f85&dn=lgpl-3.0.txt" + }, + "AGPL-3.0-or-later":{ + "Name": "AGPL 3.0 or later", + "URL": "http://www.gnu.org/licenses/agpl-3.0.html", + "Magnet link": "magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt" + }, + "ISC":{ + "Name": "ISC", + "URL": "https://www.isc.org/downloads/software-support-policy/isc-license/", + "Magnet link": "magnet:?xt=urn:btih:b8999bbaf509c08d127678643c515b9ab0836bae&dn=ISC.txt" + }, + "MPL-2.0":{ + "Name": "MPL 2.0", + "URL": "http://www.mozilla.org/MPL/2.0", + "Magnet link": "magnet:?xt=urn:btih:3877d6d54b3accd4bc32f8a48bf32ebc0901502a&dn=mpl-2.0.txt" + }, + "UPL-1.0": { + "Name": "UPL 1.0", + "URL": "https://oss.oracle.com/licenses/upl/", + "Magnet link": "magnet:?xt=urn:btih:478974f4d41c3fa84c4befba25f283527fad107d&dn=upl-1.0.txt" + }, + "WTFPL": { + "Name": "WTFPL", + "URL": "http://www.wtfpl.net/txt/copying/", + "Magnet link": "magnet:?xt=urn:btih:723febf9f6185544f57f0660a41489c7d6b4931b&dn=wtfpl.txt" + }, + "Unlicense":{ + "Name": "Unlicense", + "URL": "http://unlicense.org/UNLICENSE", + "Magnet link": "magnet:?xt=urn:btih:5ac446d35272cc2e4e85e4325b146d0b7ca8f50c&dn=unlicense.txt" + }, + "FreeBSD":{ + "Name": "FreeBSD", + "URL": "http://www.freebsd.org/copyright/freebsd-license.html", + "Magnet link": "magnet:?xt=urn:btih:87f119ba0b429ba17a44b4bffcab33165ebdacc0&dn=freebsd.txt" + }, + "BSD-2-Clause":{ + "Name": "FreeBSD (BSD-2-Clause)", + "URL": "http://www.freebsd.org/copyright/freebsd-license.html", + "Magnet link": "" + }, + "BSD-3-Clause":{ + "Name": "Modified BSD (BSD-3-Clause)", + "URL": "http://opensource.org/licenses/BSD-3-Clause", + "Magnet link": "magnet:?xt=urn:btih:c80d50af7d3db9be66a4d0a86db0286e4fd33292&dn=bsd-3-clause.txt" + }, + "XFree86-1.1":{ + "Name": "XFree86 1.1", + "URL": "http://www.xfree86.org/current/LICENSE4.html", + "Magnet link": "magnet:?xt=urn:btih:12f2ec9e8de2a3b0002a33d518d6010cc8ab2ae9&dn=xfree86.txt" } } -}; +} From e6e019ba105abcb5266bc4d81f14d0f776deedb5 Mon Sep 17 00:00:00 2001 From: Stef Gijsberts Date: Nov 03 2021 18:42:10 +0000 Subject: [PATCH 2/3] Rename variable `document` to `doc` This is done because shadowing the global variable `document` can lead to unexpected results. --- diff --git a/bg/ExternalLicenses.js b/bg/ExternalLicenses.js index 33bcbf6..d5bcd4e 100644 --- a/bg/ExternalLicenses.js +++ b/bg/ExternalLicenses.js @@ -103,7 +103,7 @@ var ExternalLicenses = { * modify the rendered HTML but rather feed the content script on demand. * Returns true if the document has been actually modified, false otherwise. */ - optimizeDocument(document, cachePointer) { + optimizeDocument(doc, cachePointer) { let cache = {}; let {tabId, frameId, documentUrl} = cachePointer; let frameCache = cachedHrefs.get(tabId); @@ -112,12 +112,12 @@ var ExternalLicenses = { } frameCache.set(frameId, new Map([[documentUrl, cache]])); - let link = document.querySelector(`link[rel="jslicense"], link[data-jslicense="1"], a[rel="jslicense"], a[data-jslicense="1"]`); + let link = doc.querySelector(`link[rel="jslicense"], link[data-jslicense="1"], a[rel="jslicense"], a[data-jslicense="1"]`); if (link) { let href = link.getAttribute("href"); cache.webLabels = {href}; - let move = () => !!document.head.insertBefore(link, document.head.firstChild); - if (link.parentNode === document.head) { + let move = () => !!doc.head.insertBefore(link, doc.head.firstChild); + if (link.parentNode === doc.head) { for (let node; node = link.previousElementSibling;) { if (node.tagName.toUpperCase() === "SCRIPT") { return move(); @@ -125,7 +125,7 @@ var ExternalLicenses = { } } else { // the reference is only in the body if (link.tagName.toUpperCase() === "A") { - let newLink = document.createElement("link"); + let newLink = doc.createElement("link"); newLink.rel = "jslicense"; newLink.setAttribute("href", href); link = newLink; From 09b9c8bdb876dd305c0ab03556025dd08f8c1135 Mon Sep 17 00:00:00 2001 From: Stef Gijsberts Date: Nov 03 2021 19:05:27 +0000 Subject: [PATCH 3/3] Fix infinite loop LibreJS got stuck in an infinite loop whenever a occured inside a HTML head tag. This was due to a small programming mistake (refer to the git diff for details). It caused Icecat to become unresponsive (tested on Icecat 78.10.0esr). This notably affected users trying to visit lichess.org, and reportedly users trying to visit scratch.mit.edu [0]. [0]: https://lists.gnu.org/archive/html/bug-librejs/2020-06/msg00000.html --- diff --git a/bg/ExternalLicenses.js b/bg/ExternalLicenses.js index d5bcd4e..758b92d 100644 --- a/bg/ExternalLicenses.js +++ b/bg/ExternalLicenses.js @@ -118,7 +118,7 @@ var ExternalLicenses = { cache.webLabels = {href}; let move = () => !!doc.head.insertBefore(link, doc.head.firstChild); if (link.parentNode === doc.head) { - for (let node; node = link.previousElementSibling;) { + for (let node = link; node = node.previousElementSibling;) { if (node.tagName.toUpperCase() === "SCRIPT") { return move(); }