aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhackademix <giorgio@maone.net>2019-02-12 23:47:09 +0100
committerhackademix <giorgio@maone.net>2019-02-13 00:05:00 +0100
commit77e9a691e7930adf2a776dc6a85bdf122b2ff511 (patch)
treebe20e2834d5c724802a038ec3af6c954721acc56
parent1f0ce1cd447770b981032152cf13276968350f0a (diff)
Fixed regression hiding some inline scripts and global license ref from UI reports.
-rw-r--r--html/display_panel/content/main_panel.js2
-rw-r--r--main_background.js18
2 files changed, 14 insertions, 6 deletions
diff --git a/html/display_panel/content/main_panel.js b/html/display_panel/content/main_panel.js
index f662b35..7934fee 100644
--- a/html/display_panel/content/main_panel.js
+++ b/html/display_panel/content/main_panel.js
@@ -111,7 +111,7 @@ function createList(data, group){
container.classList.add("empty");
}
// generate list
- let viewSourceToHuman = /^view-source:(.*)#line(\d+)\(([^)]*)\)/;
+ let viewSourceToHuman = /^view-source:(.*)#line(\d+)\(([^)]*)\).*/;
for (let entry of entries) {
let [scriptId, reason] = entry;
let li = liTemplate.cloneNode(true);
diff --git a/main_background.js b/main_background.js
index 3da5bc3..65ffe60 100644
--- a/main_background.js
+++ b/main_background.js
@@ -1039,7 +1039,7 @@ async function editHtml(html, documentUrl, tabId, frameId, whitelisted){
// get the potential inline source that can contain a license
for (let script of scripts) {
// The script must be in-line and exist
- if(script && !script.src){
+ if(script && !script.src) {
first_script_src = script.textContent;
break;
}
@@ -1049,13 +1049,21 @@ async function editHtml(html, documentUrl, tabId, frameId, whitelisted){
if (first_script_src != "") {
license = legacy_license_lib.check(first_script_src);
}
+
+ let findLine = finder => finder.test(html) && html.substring(0, finder.lastIndex).split(/\n/).length || 0;
if (read_metadata(meta_element) || license) {
console.log("Valid license for intrinsic events found");
- addReportEntry(tabId, url, {url, "accepted":[url, `Global license for the page: ${license}`]});
+ let line = 0;
+ if (meta_element) {
+ line = findLine(/id\s*=\s*['"]?LibreJS-info\b/gi);
+ } else if (license) {
+ line = html.substring(0, html.indexOf(first_script_src)).split(/\n/).length;
+ }
+ let viewUrl = line ? `view-source:${documentUrl}#line${line}(<${meta_element ? meta_element.tagName : "SCRIPT"}>)(0)` : url;
+ addReportEntry(tabId, url, {url, "accepted":[viewUrl, `Global license for the page: ${license}`]});
// Do not process inline scripts
scripts = [];
} else {
- let findLine = finder => finder.test(html) && html.substring(0, finder.lastIndex).split(/\n/).length || 0;
let modified = false;
// Deal with intrinsic events
let intrinsecindex = 0;
@@ -1069,7 +1077,7 @@ async function editHtml(html, documentUrl, tabId, frameId, whitelisted){
line = findLine(intrinsicFinder);
}
try {
- let url = `view-source:${documentUrl}#line${line}(<${element.tagName} ${attr.name}>)`;
+ let url = `view-source:${documentUrl}#line${line}(<${element.tagName} ${attr.name}>)(${intrinsicIndex})`;
let edited = await get_script(attr.value, url, tabId, whitelist.contains(url));
if (edited) {
let value = edited;
@@ -1092,7 +1100,7 @@ async function editHtml(html, documentUrl, tabId, frameId, whitelisted){
let line = findLine(scriptFinder);
if (!script.src && !(script.type && script.type !== "text/javascript")) {
let source = script.textContent;
- let url = `view-source:${documentUrl}#line${line}(<SCRIPT>)`;
+ let url = `view-source:${documentUrl}#line${line}(<SCRIPT>)(${i})`;
let edited = await get_script(source, url, tabId, whitelisted, i);
if (edited) {
let edited_source = edited[0];