diff --git a/scrub.js b/scrub.js index c0a9a88..8a5cf53 100644 --- a/scrub.js +++ b/scrub.js @@ -653,77 +653,27 @@ var contextSetup = function(requestDetails) { var coolheadersSetup = function(e) { var asyncSetPageAction = new Promise((resolve, reject) => { window.setTimeout(() => { - let headers = e.responseHeaders.filter((word) => - word.name.toUpperCase().startsWith('X-I2P') - ); - for (i = headers.length - 1; i >= 0; i--) { - let header = headers[i]; - if (header.name.toUpperCase().endsWith('I2P-LOCATION')) { - browser.pageAction.setPopup({ - tabId: e.tabId, - popup: 'location.html', - }); - browser.pageAction.setIcon({ - path: 'icons/i2plogo.png', - tabId: e.tabId, - }); - browser.pageAction.setTitle({ - tabId: e.tabId, - title: header.value, - }); - browser.pageAction.show(e.tabId); - break; - } else { - if (header.name.toUpperCase().endsWith('I2P-TORRENTLOCATION')) { - var imgs = document.getElementsByTagName('img'); - for (let img of imgs) { - if (tmpsrc.host == location.host) { - img.src = - 'http://127.0.0.1:7657/i2psnark/' + - tmpsrc.host + - tmpsrc.pathname; - img.onerror = function() { - img.src = tmpsrc; - }; - } - } - var videos = document.getElementsByTagName('video'); - for (let video of videos) { - let tmpsrc = new URL(video.currentSrc); - if (tmpsrc.host == location.host) { - if (!video.innerHTML.includes('127.0.0.1')) { - innerHTML = video.innerHTML; - topInnerHTML = video.innerHTML.replace( - 'src="', - 'src="http://127.0.0.1:7657/i2psnark/' + location.host + '/' - ); - video.innerHTML = topInnerHTML; // + innerHTML; - video.onerror = function() { - video.innerHTML = topInnerHTML + innerHTML; - }; - } - } - } - var audios = document.getElementsByTagName('audio'); - for (let audio of audios) { - let tmpsrc = new URL(audio.currentSrc); - if (tmpsrc.host == location.host) { - if (!audio.innerHTML.includes('127.0.0.1')) { - innerHTML = audio.innerHTML; - topInnerHTML = audio.innerHTML.replace( - 'src="', - 'src="http://127.0.0.1:7657/i2psnark/' + location.host + '/' - ); - audio.innerHTML = topInnerHTML; // + innerHTML; - audio.onerror = function() { - audio.innerHTML = topInnerHTML + innerHTML; - }; - } - } - } + if (e.tabId != undefined){ + popup = browser.pageAction.getPopup({tabId: e.tabId}) + popup.then(gotPopup) + } + function gotPopup(p){ + console.log("(scrub) checking popup", p) + if (p.length != 0) return + /*if (p != undefined){ + return + }*/ + let headers = e.responseHeaders.filter((word) => + word.name.toUpperCase().includes('I2P') + ); + for (i = headers.length - 1; i >= 0; i--) { + let header = headers[i]; + console.log("(scrub) checking header", header) + if (header.name.toUpperCase().endsWith('I2P-LOCATION')) { + let url = new URL(header.value) browser.pageAction.setPopup({ - tabId: tabId.id, - popup: 'torrent.html', + tabId: e.tabId, + popup: 'location.html', }); browser.pageAction.setIcon({ path: 'icons/i2plogo.png', @@ -731,10 +681,73 @@ var coolheadersSetup = function(e) { }); browser.pageAction.setTitle({ tabId: e.tabId, - title: header.value, + title: "http://"+url.host, }); browser.pageAction.show(e.tabId); break; + } else { + if (header.name.toUpperCase().endsWith('I2P-TORRENTLOCATION')) { + var imgs = document.getElementsByTagName('img'); + for (let img of imgs) { + if (tmpsrc.host == location.host) { + img.src = + 'http://127.0.0.1:7657/i2psnark/' + + tmpsrc.host + + tmpsrc.pathname; + img.onerror = function() { + img.src = tmpsrc; + }; + } + } + var videos = document.getElementsByTagName('video'); + for (let video of videos) { + let tmpsrc = new URL(video.currentSrc); + if (tmpsrc.host == location.host) { + if (!video.innerHTML.includes('127.0.0.1')) { + innerHTML = video.innerHTML; + topInnerHTML = video.innerHTML.replace( + 'src="', + 'src="http://127.0.0.1:7657/i2psnark/' + location.host + '/' + ); + video.innerHTML = topInnerHTML; // + innerHTML; + video.onerror = function() { + video.innerHTML = topInnerHTML + innerHTML; + }; + } + } + } + var audios = document.getElementsByTagName('audio'); + for (let audio of audios) { + let tmpsrc = new URL(audio.currentSrc); + if (tmpsrc.host == location.host) { + if (!audio.innerHTML.includes('127.0.0.1')) { + innerHTML = audio.innerHTML; + topInnerHTML = audio.innerHTML.replace( + 'src="', + 'src="http://127.0.0.1:7657/i2psnark/' + location.host + '/' + ); + audio.innerHTML = topInnerHTML; // + innerHTML; + audio.onerror = function() { + audio.innerHTML = topInnerHTML + innerHTML; + }; + } + } + } + browser.pageAction.setPopup({ + tabId: tabId.id, + popup: 'torrent.html', + }); + browser.pageAction.setIcon({ + path: 'icons/i2plogo.png', + tabId: e.tabId, + }); + browser.pageAction.setTitle({ + tabId: e.tabId, + title: header.value, + }); + browser.pageAction.show(e.tabId); + break; + } } } }