2019-11-25 20:19:44 -05:00
|
|
|
function checkPeerConnection() {
|
2022-05-08 17:18:54 -04:00
|
|
|
let getting = browser.privacy.network.peerConnectionEnabled.get({});
|
|
|
|
getting.then((got) => {
|
|
|
|
let webrtc = got.value;
|
|
|
|
console.log('checking webrtc', webrtc);
|
|
|
|
if (document.getElementById('enable-web-rtc') !== null)
|
|
|
|
document.getElementById('enable-web-rtc').checked = webrtc;
|
|
|
|
});
|
2019-11-25 20:19:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
checkPeerConnection();
|
|
|
|
|
2020-01-12 01:18:26 -05:00
|
|
|
function checkSnowflake() {
|
2022-05-08 17:18:54 -04:00
|
|
|
try {
|
|
|
|
function snowflake(snowflake) {
|
|
|
|
console.log("snowflake plugin found, leaving WebRTC alone", snowflake);
|
|
|
|
AssurePeerConnection();
|
|
|
|
}
|
|
|
|
var snowflakeInfo = browser.management.get(
|
|
|
|
"{b11bea1f-a888-4332-8d8a-cec2be7d24b9}"
|
|
|
|
);
|
|
|
|
snowflakeInfo.then(snowflake);
|
|
|
|
} catch (err) {
|
|
|
|
console.log("snowflake not found", err);
|
2020-01-11 23:14:58 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-01-12 01:18:26 -05:00
|
|
|
checkSnowflake();
|
2020-01-11 23:14:58 -05:00
|
|
|
|
2019-11-25 20:19:44 -05:00
|
|
|
function checkHistory() {
|
2022-05-08 17:18:54 -04:00
|
|
|
let getting = browser.storage.local.get("disable_history");
|
|
|
|
getting.then((got) => {
|
|
|
|
let disable_history = got.disable_history;
|
|
|
|
if (disable_history == undefined) {
|
|
|
|
disable_history = false;
|
|
|
|
}
|
|
|
|
console.log("checking history", disable_history);
|
|
|
|
if (document.getElementById("disable-history") !== null)
|
|
|
|
document.getElementById("disable-history").checked = disable_history;
|
|
|
|
});
|
2019-11-25 20:19:44 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
checkHistory();
|
|
|
|
|
2020-11-10 21:48:08 -05:00
|
|
|
document.addEventListener("click", (clickEvent) => {
|
2022-05-08 17:18:54 -04:00
|
|
|
if (clickEvent.target.id === "window-create-help-panel") {
|
|
|
|
let createData = {
|
|
|
|
type: "panel",
|
|
|
|
incognito: true,
|
|
|
|
};
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(() => {
|
|
|
|
console.log("The help panel has been created");
|
|
|
|
});
|
|
|
|
} else if (clickEvent.target.id === "window-create-news-panel") {
|
|
|
|
let createData = {
|
|
|
|
type: "panel",
|
|
|
|
incognito: true,
|
|
|
|
};
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(() => {
|
|
|
|
console.log("The news panel has been created");
|
|
|
|
});
|
|
|
|
} else if (clickEvent.target.id === "visit-irc") {
|
|
|
|
browser.sidebarAction.setPanel({ panel: "http://127.0.0.1:7669" });
|
|
|
|
browser.sidebarAction.open();
|
|
|
|
} else if (clickEvent.target.id === "generate-fresh-tunnel") {
|
|
|
|
function refreshIdentity() {
|
|
|
|
console.log("Generating new identity");
|
|
|
|
const Http = new XMLHttpRequest();
|
|
|
|
const url = "http://" + controlHost + ":" + controlPort;
|
|
|
|
Http.open("GET", url);
|
|
|
|
Http.send();
|
|
|
|
Http.onreadystatechange = (event) => {
|
|
|
|
console.log(Http.responseText);
|
|
|
|
};
|
|
|
|
}
|
|
|
|
refreshIdentity();
|
|
|
|
} else if (clickEvent.target.id === "label-router-restart") {
|
|
|
|
console.log("attempting to initiate graceful restart");
|
|
|
|
RouterManager("RestartGraceful");
|
|
|
|
} else if (clickEvent.target.id === "label-router-shutdown") {
|
|
|
|
console.log("attempting to initiate graceful shutdown");
|
|
|
|
RouterManager("ShutdownGraceful");
|
|
|
|
} else if (clickEvent.target.id === "label-router-status") {
|
|
|
|
if (document.getElementById("label-status-list").style.display !== "none") {
|
|
|
|
console.log("hiding label-status-list");
|
|
|
|
document.getElementById("label-status-list").style.display = "none";
|
|
|
|
} else {
|
|
|
|
console.log("showing label-status-list");
|
|
|
|
document.getElementById("label-status-list").style.display = "block";
|
|
|
|
}
|
|
|
|
} else if (clickEvent.target.id === "label-router-peers") {
|
|
|
|
if (document.getElementById("label-peers-list").style.display !== "none") {
|
|
|
|
console.log("hiding label-peers-list");
|
|
|
|
document.getElementById("label-peers-list").style.display = "none";
|
|
|
|
} else {
|
|
|
|
console.log("showing label-peers-list");
|
|
|
|
document.getElementById("label-peers-list").style.display = "block";
|
|
|
|
}
|
|
|
|
} else if (clickEvent.target.id === "label-router-bandwidth") {
|
|
|
|
if (
|
|
|
|
document.getElementById("label-bandwidth-list").style.display !== "none"
|
|
|
|
) {
|
|
|
|
console.log("hiding label-bandwidth-list");
|
|
|
|
document.getElementById("label-bandwidth-list").style.display = "none";
|
|
|
|
} else {
|
|
|
|
console.log("showing label-bandwidth-list");
|
|
|
|
document.getElementById("label-bandwidth-list").style.display = "block";
|
|
|
|
}
|
|
|
|
} else if (clickEvent.target.id === "search-submit") {
|
|
|
|
console.log("attempting to create search tab");
|
|
|
|
goSearch();
|
|
|
|
} else if (clickEvent.target.id === "browser-action") {
|
|
|
|
console.log("showing a browser action");
|
|
|
|
showBrowsing();
|
|
|
|
} else if (clickEvent.target.id === "torrent-action") {
|
|
|
|
console.log("showing a torrent action");
|
|
|
|
showTorrentsMenu();
|
|
|
|
} else if (clickEvent.target.id === "window-preface-title") {
|
|
|
|
console.log("attempting to create homepage tab");
|
|
|
|
goHome();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-index") {
|
|
|
|
console.log("attempting to create index tab");
|
|
|
|
goIndex();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-torrent") {
|
|
|
|
console.log("attempting to create torrent tab");
|
|
|
|
goTorrent();
|
|
|
|
} else if (clickEvent.target.id === "torrentui-opener") {
|
|
|
|
console.log("attempting to create torrent tab");
|
|
|
|
goSnark();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-help") {
|
|
|
|
console.log("attempting to create torrent tab");
|
|
|
|
goHelp();
|
2022-09-30 16:16:03 -04:00
|
|
|
} else if (clickEvent.target.id === "window-visit-console") {
|
|
|
|
console.log("attempting to create torrent tab");
|
|
|
|
goConsole();
|
2022-05-08 17:18:54 -04:00
|
|
|
} else if (clickEvent.target.id === "window-visit-homepage") {
|
|
|
|
console.log("attempting to create homepage tab");
|
|
|
|
goHome();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-toopie") {
|
|
|
|
console.log("attempting to create toopie tab");
|
|
|
|
goToopie();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-i2ptunnel") {
|
|
|
|
console.log("attempting to create i2ptunnel tab");
|
|
|
|
goTunnel();
|
2022-10-03 02:04:28 -04:00
|
|
|
} else if (clickEvent.target.id === "window-visit-i2p") {
|
|
|
|
console.log("attempting to visit project homepage");
|
|
|
|
goHomepage();
|
2022-05-08 17:18:54 -04:00
|
|
|
} else if (clickEvent.target.id === "window-visit-susimail") {
|
|
|
|
console.log("attempting to create susimail tab");
|
|
|
|
goMail();
|
|
|
|
} else if (clickEvent.target.id === "window-visit-snark") {
|
|
|
|
console.log("attempting to create snark tab");
|
|
|
|
goSnark();
|
|
|
|
} else if (clickEvent.target.id === "clear-browser-data") {
|
|
|
|
forgetBrowsingData();
|
|
|
|
} else if (clickEvent.target.id === "check-i2p-control") {
|
|
|
|
//echo("I2P Router Detected", "panel-section-i2pcontrol-check");
|
|
|
|
} else if (clickEvent.target.id === "enable-web-rtc") {
|
|
|
|
if (clickEvent.target.checked) {
|
|
|
|
browser.runtime.sendMessage({ rtc: "enableWebRTC" });
|
|
|
|
} else {
|
|
|
|
browser.runtime.sendMessage({ rtc: "disableWebRTC" });
|
|
|
|
}
|
|
|
|
checkPeerConnection();
|
|
|
|
return;
|
|
|
|
} else if (clickEvent.target.id === "disable-history") {
|
|
|
|
if (clickEvent.target.checked) {
|
|
|
|
browser.runtime.sendMessage({ history: "disableHistory" });
|
|
|
|
} else {
|
|
|
|
browser.runtime.sendMessage({ history: "enableHistory" });
|
|
|
|
}
|
|
|
|
return;
|
2020-09-09 23:23:02 -04:00
|
|
|
}
|
2019-03-13 17:50:51 -04:00
|
|
|
|
2022-05-08 17:18:54 -04:00
|
|
|
clickEvent.preventDefault();
|
2019-10-06 15:18:10 -04:00
|
|
|
});
|
2019-11-10 22:24:10 -05:00
|
|
|
|
2022-05-08 17:18:54 -04:00
|
|
|
window.onload = function(e) {
|
|
|
|
if (document.getElementById("label-peers-list") != null) {
|
|
|
|
document.getElementById("label-peers-list").style.display = "none";
|
|
|
|
}
|
|
|
|
if (document.getElementById("label-bandwidth-list") != null) {
|
|
|
|
document.getElementById("label-bandwidth-list").style.display = "none";
|
|
|
|
}
|
2020-11-10 21:48:08 -05:00
|
|
|
};
|
2020-09-09 23:23:02 -04:00
|
|
|
|
2019-11-10 22:24:10 -05:00
|
|
|
function proxyReadiness() {
|
2022-05-08 17:18:54 -04:00
|
|
|
console.log(this.responseText);
|
2019-11-10 22:24:10 -05:00
|
|
|
}
|
|
|
|
|
2019-11-26 23:26:33 -05:00
|
|
|
var gettingInfo = browser.runtime.getPlatformInfo();
|
2020-11-10 21:48:08 -05:00
|
|
|
gettingInfo.then((got) => {
|
2022-05-08 17:18:54 -04:00
|
|
|
if (got.os != "android") {
|
|
|
|
browser.history.onVisited.addListener(onVisited);
|
|
|
|
}
|
2019-11-26 23:26:33 -05:00
|
|
|
});
|
2019-11-25 20:19:44 -05:00
|
|
|
|
2020-01-14 18:18:13 -05:00
|
|
|
function showBrowsing() {
|
2022-05-08 17:18:54 -04:00
|
|
|
var x = document.getElementById("browserpanel");
|
|
|
|
x.style.display = "block";
|
|
|
|
var y = document.getElementById("torrentpanel");
|
|
|
|
y.style.display = "none";
|
2020-01-14 17:46:26 -05:00
|
|
|
}
|
|
|
|
|
2020-01-25 00:06:28 -05:00
|
|
|
function showTorrentsMenu() {
|
2022-05-08 17:18:54 -04:00
|
|
|
var x = document.getElementById("browserpanel");
|
|
|
|
x.style.display = "none";
|
|
|
|
var y = document.getElementById("torrentpanel");
|
|
|
|
y.style.display = "block";
|
2020-01-14 17:46:26 -05:00
|
|
|
}
|
|
|
|
|
2019-11-22 13:24:19 -05:00
|
|
|
function goHome() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Help tab created");
|
|
|
|
}
|
|
|
|
|
|
|
|
function gotProxyInfo(info) {
|
|
|
|
let port = info.value.http.split(":")[1];
|
|
|
|
if (port == "7644") {
|
|
|
|
let createRhizomeData = {
|
|
|
|
url: "about:I2p",
|
|
|
|
};
|
|
|
|
console.log("visiting homepage");
|
|
|
|
let creating = browser.tabs.create(createRhizomeData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
|
|
|
} else {
|
|
|
|
let createData = {
|
|
|
|
url: "home.html",
|
|
|
|
};
|
|
|
|
console.log("visiting homepage");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
|
|
|
}
|
|
|
|
console.log("(bookmarks) adding home page bookmark");
|
|
|
|
}
|
|
|
|
if (browser.windows != undefined) {
|
|
|
|
console.log("(bookmarks) checking if we're running in an I2P Browser");
|
|
|
|
var gettingProxyInfo = browser.proxy.settings.get({});
|
|
|
|
gettingProxyInfo.then(gotProxyInfo);
|
2019-11-23 14:24:56 -05:00
|
|
|
}
|
2020-01-02 15:43:24 -05:00
|
|
|
}
|
|
|
|
|
2020-01-11 22:32:25 -05:00
|
|
|
function goIndex() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Help tab not created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "index.html",
|
|
|
|
};
|
|
|
|
console.log("visiting help");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2020-01-11 22:32:25 -05:00
|
|
|
}
|
|
|
|
|
2021-05-26 15:11:46 -04:00
|
|
|
function goTorrent() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Torrent Help tab not created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "torrent/index.html",
|
|
|
|
};
|
|
|
|
console.log("visiting torrent help");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2021-05-26 15:11:46 -04:00
|
|
|
}
|
|
|
|
|
2022-10-03 02:04:28 -04:00
|
|
|
function goHomepage() {
|
|
|
|
function onTabError() {
|
|
|
|
console.log("i2p-projekt tab not created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "http://i2p-projekt.i2p",
|
|
|
|
};
|
|
|
|
console.log("visiting i2p-projekt");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
|
|
|
}
|
|
|
|
|
2021-05-26 15:11:46 -04:00
|
|
|
function goHelp() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Torrent Help tab not created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "i2pcontrol/index.html",
|
|
|
|
};
|
|
|
|
console.log("visiting torrent help");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2021-05-26 15:11:46 -04:00
|
|
|
}
|
|
|
|
|
2020-01-12 18:01:25 -05:00
|
|
|
function goToopie() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Toopie tab created");
|
|
|
|
}
|
|
|
|
console.log("visiting toopie");
|
|
|
|
let creating = browser.sidebarAction.open();
|
2022-10-02 17:10:50 -04:00
|
|
|
browser.sidebarAction.setPanel({ panel: browser.runtime.getURL("/toopie.html") });
|
2022-05-08 17:18:54 -04:00
|
|
|
creating.then(onTabCreated, onTabError);
|
2020-01-12 18:01:25 -05:00
|
|
|
}
|
|
|
|
|
2020-01-02 15:43:24 -05:00
|
|
|
function onTabCreated() {
|
2022-05-08 17:18:54 -04:00
|
|
|
console.log("Tab Created");
|
2019-11-22 17:49:27 -05:00
|
|
|
}
|
|
|
|
|
2020-01-11 22:01:37 -05:00
|
|
|
function goSearch() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Search tab created");
|
|
|
|
}
|
|
|
|
let createData = {
|
2022-09-27 18:39:05 -04:00
|
|
|
url: "http://cuss2sgthm5wfipnnztrjdvtaczb22hnmr2ohnaqqqz3jf6ubf3a.b32.i2p/yacysearch.html?" +
|
2022-05-08 17:18:54 -04:00
|
|
|
"query=" +
|
|
|
|
document.getElementById("search-query").value,
|
|
|
|
};
|
|
|
|
console.log("visiting legwork");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2020-01-11 22:01:37 -05:00
|
|
|
}
|
|
|
|
|
2020-01-25 01:52:43 -05:00
|
|
|
function routerAddr() {
|
2022-05-08 17:18:54 -04:00
|
|
|
if (!control_host) var control_host = "127.0.0.1";
|
|
|
|
if (!control_port) var control_port = "7657";
|
|
|
|
return control_host + ":" + control_port;
|
2020-01-25 01:48:31 -05:00
|
|
|
}
|
|
|
|
|
2022-09-30 16:16:03 -04:00
|
|
|
function goConsole() {
|
|
|
|
function onTabError() {
|
|
|
|
console.log("Console tab created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "http://" + routerAddr() + "/home",
|
|
|
|
};
|
|
|
|
console.log("visiting router console");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
|
|
|
}
|
|
|
|
|
2019-11-22 17:49:27 -05:00
|
|
|
function goTunnel() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("I2PTunnel tab created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "http://" + routerAddr() + "/i2ptunnel",
|
|
|
|
};
|
|
|
|
console.log("visiting i2ptunnel");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2019-11-22 17:49:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
function goMail() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Mail tab created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "http://" + routerAddr() + "/susimail",
|
|
|
|
};
|
|
|
|
console.log("visiting mail");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating(onTabCreated, onTabError);
|
2019-11-22 17:49:27 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
function goSnark() {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onTabError() {
|
|
|
|
console.log("Snark tab created");
|
|
|
|
}
|
|
|
|
let createData = {
|
|
|
|
url: "http://" + routerAddr() + "/i2psnark",
|
|
|
|
};
|
|
|
|
console.log("visiting snark");
|
|
|
|
let creating = browser.tabs.create(createData);
|
|
|
|
creating.then(onTabCreated, onTabError);
|
2019-11-22 13:24:19 -05:00
|
|
|
}
|
2019-11-10 22:24:10 -05:00
|
|
|
|
2019-11-25 20:19:44 -05:00
|
|
|
function onVisited(historyItem) {
|
2022-05-08 17:18:54 -04:00
|
|
|
function onCleaned(results) {
|
|
|
|
if (results.length) {
|
|
|
|
console.log(" was not removed");
|
|
|
|
} else {
|
|
|
|
console.log(" was removed");
|
|
|
|
}
|
2019-11-25 20:19:44 -05:00
|
|
|
}
|
2019-11-10 22:24:10 -05:00
|
|
|
|
2022-05-08 17:18:54 -04:00
|
|
|
function onRemoved() {
|
|
|
|
var searching = browser.history.search({
|
|
|
|
text: historyItem.url,
|
|
|
|
startTime: 0,
|
|
|
|
});
|
|
|
|
searching.then(onCleaned);
|
|
|
|
}
|
|
|
|
if (!history) {
|
|
|
|
if (i2pHost(historyItem.url)) {
|
|
|
|
var deletingUrl = browser.history.deleteUrl(historyItem.url);
|
|
|
|
}
|
|
|
|
deletingUrl.then(onRemoved);
|
2019-12-24 16:51:38 -05:00
|
|
|
}
|
2019-11-10 22:24:10 -05:00
|
|
|
}
|
2020-01-13 17:14:08 -05:00
|
|
|
|
2020-01-22 21:18:11 -05:00
|
|
|
if (UpdateContents !== undefined) UpdateContents();
|
2020-01-13 17:14:08 -05:00
|
|
|
|
|
|
|
const minutes = 0.2;
|
|
|
|
const interval = minutes * 60 * 1000;
|
|
|
|
|
2022-05-08 17:18:54 -04:00
|
|
|
setInterval(function() {
|
|
|
|
if (UpdateContents !== undefined) UpdateContents();
|
2022-10-03 20:48:20 -04:00
|
|
|
}, interval);
|