diff options
| -rw-r--r-- | legacy_license_check.js | 26 | ||||
| -rw-r--r-- | main_background.js | 2 | 
2 files changed, 12 insertions, 16 deletions
| diff --git a/legacy_license_check.js b/legacy_license_check.js index 73d36bd..f3c27bc 100644 --- a/legacy_license_check.js +++ b/legacy_license_check.js @@ -2,6 +2,7 @@  * GNU LibreJS - A browser add-on to block nonfree nontrivial JavaScript.  * *  * Copyright (C) 2018 Nathan Nichols +* Copyright (C) 2022 Yuchen Pei  *  * This file is part of GNU LibreJS.  * @@ -22,7 +23,7 @@  const { licenses } = require('./license_definitions.js');  const { patternUtils } = require('./pattern_utils.js'); -const licStartLicEndRe = /@licstartThefollowingistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)(.*)?@licendTheaboveistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)/mi; +const LIC_RE = /@licstartThefollowingistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)(.*)?@licendTheaboveistheentirelicensenoticefortheJavaScriptcodeinthis(?:page|file)/mi;  /** @@ -67,28 +68,23 @@ const searchTable = function(strippedComment) {      }    }    console.log('No global license found.'); -  return false; - +  return null;  }  /** -*	Takes the "first comment available on the page" -*	returns true for "free" and false for anything else	 -*/ + * Checks whether licenseText, modulo whitespace, starts with + * a @licstart / @licend with a free license, returns the license name + * if so, and null otherwise. + */  const check = function(licenseText) { -  if (licenseText === undefined || licenseText === null || licenseText == '') { -    // not an inline script -    return false; +  if (licenseText === undefined || licenseText === null) { +    return null;    }    // remove whitespace    const stripped = patternUtils.removeWhitespace(licenseText);    // Search for @licstart/@licend -  // This assumes that there isn't anything before the comment -  const matches = stripped.match(licStartLicEndRe); -  if (matches == null) { -    return false; -  } -  return searchTable(matches[0]); +  const matches = stripped.match(LIC_RE); +  return matches && searchTable(matches[0]);  };  module.exports.check = check; diff --git a/main_background.js b/main_background.js index 73aa47b..8cd52b2 100644 --- a/main_background.js +++ b/main_background.js @@ -1052,7 +1052,7 @@ async function editHtml(html, documentUrl, tabId, frameId, whitelisted) {      }    } -  let license = false; +  let license = null;    if (first_script_src != '') {      license = legacy_license_lib.check(first_script_src);    } | 
