8 Commits

28 changed files with 1098 additions and 1078 deletions

View File

@@ -37,11 +37,11 @@ clean: rc clean-artifacts
## EVEN RELEASES are AMO RELEASES
## ODD RELEASES are SELFHOSTED RELEASES
MOZ_VERSION=0.94
VERSION=0.93
MOZ_VERSION=0.98
VERSION=0.97
## INCREMENT THIS EVERY TIME YOU DO A RELEASE
LAST_VERSION=0.91
LAST_VERSION=0.95
YELLOW=F7E59A
ORANGE=FFC56D
@@ -354,6 +354,7 @@ ndtest:
-u http://idk.i2p/video.html \
-u http://idk.i2p \
-u http://stats.i2p \
-u http://tvndxxkxcstbtqfxg7iigco6bj22ff2y6jxikmk7wqkyadkhrd4a.b32.i2p \
-u https://ramble.pw \
-u https://ramble.pw/f/i2p \

View File

@@ -1,24 +1,24 @@
var titlepref = chrome.i18n.getMessage('titlePreface');
var titleprefpriv = chrome.i18n.getMessage('titlePrefacePrivate');
var webpref = chrome.i18n.getMessage('webPreface');
var webprefpriv = chrome.i18n.getMessage('webPrefacePrivate');
var routerpref = chrome.i18n.getMessage('routerPreface');
var routerprefpriv = chrome.i18n.getMessage('routerPrefacePrivate');
var mailpref = chrome.i18n.getMessage('mailPreface');
var mailprefpriv = chrome.i18n.getMessage('mailPrefacePrivate');
var torrentpref = chrome.i18n.getMessage('torrentPreface');
var torrentprefpriv = chrome.i18n.getMessage('torrentPrefacePrivate');
var tunnelpref = chrome.i18n.getMessage('i2ptunnelPreface');
var tunnelprefpriv = chrome.i18n.getMessage('i2ptunnelPrefacePrivate');
var ircpref = chrome.i18n.getMessage('ircPreface');
var ircprefpriv = chrome.i18n.getMessage('ircPrefacePrivate');
var extensionpref = chrome.i18n.getMessage('extensionPreface');
var muwirepref = chrome.i18n.getMessage('muwirePreface');
var muwireprefpriv = chrome.i18n.getMessage('muwirePrefacePrivate');
var botepref = chrome.i18n.getMessage('botePreface');
var titlepref = chrome.i18n.getMessage("titlePreface");
var titleprefpriv = chrome.i18n.getMessage("titlePrefacePrivate");
var webpref = chrome.i18n.getMessage("webPreface");
var webprefpriv = chrome.i18n.getMessage("webPrefacePrivate");
var routerpref = chrome.i18n.getMessage("routerPreface");
var routerprefpriv = chrome.i18n.getMessage("routerPrefacePrivate");
var mailpref = chrome.i18n.getMessage("mailPreface");
var mailprefpriv = chrome.i18n.getMessage("mailPrefacePrivate");
var torrentpref = chrome.i18n.getMessage("torrentPreface");
var torrentprefpriv = chrome.i18n.getMessage("torrentPrefacePrivate");
var tunnelpref = chrome.i18n.getMessage("i2ptunnelPreface");
var tunnelprefpriv = chrome.i18n.getMessage("i2ptunnelPrefacePrivate");
var ircpref = chrome.i18n.getMessage("ircPreface");
var ircprefpriv = chrome.i18n.getMessage("ircPrefacePrivate");
var extensionpref = chrome.i18n.getMessage("extensionPreface");
var muwirepref = chrome.i18n.getMessage("muwirePreface");
var muwireprefpriv = chrome.i18n.getMessage("muwirePrefacePrivate");
var botepref = chrome.i18n.getMessage("botePreface");
function onError(err) {
console.log('(background)', err);
console.log("(background)", err);
}
function onContextGotLog(contexts) {
@@ -33,13 +33,13 @@ function onContextsGot(contexts) {
console.log(`Name : ${context.name}`);
ids.push(context.name);
}
console.log('Checking new contexts');
console.log("Checking new contexts");
if (ids.indexOf(titlepref) == -1) {
browser.contextualIdentities
.create({
name: titlepref,
color: 'orange',
icon: 'fingerprint',
color: "orange",
icon: "fingerprint",
})
.then(onCreated, onNotCreated);
}
@@ -47,8 +47,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: webpref,
color: 'red',
icon: 'circle',
color: "red",
icon: "circle",
})
.then(onCreated, onNotCreated);
}
@@ -56,8 +56,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: routerpref,
color: 'blue',
icon: 'briefcase',
color: "blue",
icon: "briefcase",
})
.then(onCreated, onNotCreated);
}
@@ -65,8 +65,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: tunnelpref,
color: 'green',
icon: 'tree',
color: "green",
icon: "tree",
})
.then(onCreated, onNotCreated);
}
@@ -74,8 +74,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: mailpref,
color: 'yellow',
icon: 'briefcase',
color: "yellow",
icon: "briefcase",
})
.then(onCreated, onNotCreated);
}
@@ -83,8 +83,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: torrentpref,
color: 'purple',
icon: 'chill',
color: "purple",
icon: "chill",
})
.then(onCreated, onNotCreated);
}
@@ -92,8 +92,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: ircpref,
color: 'red',
icon: 'vacation',
color: "red",
icon: "vacation",
})
.then(onCreated, onNotCreated);
}
@@ -101,8 +101,8 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: muwirepref,
color: 'turquoise',
icon: 'gift',
color: "turquoise",
icon: "gift",
})
.then(onCreated, onNotCreated);
}
@@ -110,30 +110,30 @@ function onContextsGot(contexts) {
browser.contextualIdentities
.create({
name: botepref,
color: 'blue',
icon: 'fence',
color: "blue",
icon: "fence",
})
.then(onCreated, onNotCreated);
}
}
function onContextsError() {
console.log('Error finding contextual identities, is the API enabled?');
console.log("Error finding contextual identities, is the API enabled?");
}
function onCreated(context) {
console.log(' ID:', context.cookieStoreId, 'created.');
console.log(" ID:", context.cookieStoreId, "created.");
}
function onNotCreated(context) {
console.log('ID:', context.cookieStoreId, 'not created.');
console.log("ID:", context.cookieStoreId, "not created.");
}
browser.contextualIdentities.query({}).then(onContextsGot, onContextsError);
var gettingInfo = browser.runtime.getPlatformInfo();
gettingInfo.then((got) => {
if (got.os != 'android') {
if (got.os != "android") {
browser.windows.onCreated.addListener(themeWindow);
browser.windows.onFocusChanged.addListener(themeWindow);
browser.windows.onRemoved.addListener(themeWindow);
@@ -146,7 +146,7 @@ function themeWindowByTab(tabId) {
function tabWindow(tab) {
var gettingPlatformInfo = browser.runtime.getPlatformInfo();
gettingPlatformInfo.then((got) => {
if (got.os == 'android') {
if (got.os == "android") {
let getwindow = browser.tabs.get(tab.tabId);
getwindow.then(themeWindow);
} else {
@@ -155,7 +155,7 @@ function themeWindowByTab(tabId) {
}
});
}
if (typeof tabId === 'number') {
if (typeof tabId === "number") {
let tab = browser.tabs.get(tabId);
tab.then(tabWindow);
} else {
@@ -175,54 +175,50 @@ function isEmpty(obj) {
return true;
}
let btheme = {
colors: {
frame: "#363A68",
toolbar: "#363A68",
},
};
let dtheme = {
colors: {
frame: "#4456B7",
toolbar: "#4456B7",
},
};
function themeWindow(window) {
// Check if the window is in private browsing
function onThemeError() {
console.log('theme color set error');
console.log("theme color set error");
}
function dynamicTheme() {
if (window.incognito) {
browser.theme.update(window.id, {
colors: {
frame: '#4456B7',
toolbar: '#4456B7',
},
});
browser.theme.update(window.id, dtheme);
} else {
browser.theme.update(window.id, {
colors: {
frame: '#4456B7',
toolbar: '#4456B7',
},
});
browser.theme.update(window.id, dtheme);
}
}
function browserTheme() {
console.log('Active in I2P window');
console.log("Active in I2P window");
if (window.incognito) {
browser.theme.update(window.id, {
colors: {
frame: '#363A68',
toolbar: '#363A68',
},
});
browser.theme.update(window.id, btheme);
} else {
browser.theme.update(window.id, {
colors: {
frame: '#363A68',
toolbar: '#363A68',
},
});
browser.theme.update(window.id, btheme);
}
}
function logTabs(tabInfo) {
function onContextGotTheme(context) {
if (context.name == titlepref) {
browserTheme();
if (tabInfo[0].url.startsWith('https://')) {
if (tabInfo[0].url.startsWith("https://")) {
browser.pageAction.setPopup({
tabId: tabInfo[0].id,
popup: 'security.html',
popup: "security.html",
});
//console.log("(background) tabinfo", tabInfo[0].id)
browser.pageAction.show(tabInfo[0].id);
@@ -230,46 +226,53 @@ function themeWindow(window) {
//browser.pageAction.hide(tabInfo[0].id);
}
} else if (context.name == routerpref) {
console.log('Active in Router Console window');
console.log("Active in Router Console window");
dynamicTheme();
} else if (context.name == tunnelpref) {
console.log('Active in Hidden Services Manager window');
console.log("Active in Hidden Services Manager window");
dynamicTheme();
} else if (context.name == mailpref) {
console.log('Active in Web Mail window');
console.log("Active in Web Mail window");
dynamicTheme();
} else if (context.name == torrentpref) {
console.log('Active in Bittorrent window');
console.log("Active in Bittorrent window");
dynamicTheme();
} else if (context.name == botepref) {
console.log('Active in Bote window');
console.log("Active in Bote window");
dynamicTheme();
} else if (context.name == ircpref) {
console.log('Active in IRC window');
console.log("Active in IRC window");
dynamicTheme();
} else if (context.name == muwirepref) {
console.log('Active in MuWire window');
console.log("Active in MuWire window");
dynamicTheme();
}
}
if (
tabInfo[0].cookieStoreId != 'firefox-default' &&
tabInfo[0].cookieStoreId != 'firefox-private'
tabInfo[0].cookieStoreId != "firefox-default" &&
tabInfo[0].cookieStoreId != "firefox-private"
) {
browser.contextualIdentities
.get(tabInfo[0].cookieStoreId)
.then(onContextGotTheme, onThemeError);
} else {
console.log('Not active in I2P window');
console.log("Not active in I2P window");
function unSetTheme(them) {
console.log('unsetting theme', them);
console.log("unsetting theme", them);
if (Object.keys(them).length > 0) {
browser.theme.update(window.id, them.originalTheme);
try {
browser.theme.update(window.id, them.originalTheme);
} catch (e) {
console.log(
"Original theme set error. Your theme must have an SVG in it.",
e
);
}
} else {
browser.theme.update(window.id, { colors: null });
}
}
browser.storage.local.get('originalTheme').then(unSetTheme, onError);
browser.storage.local.get("originalTheme").then(unSetTheme, onError);
}
}
@@ -283,62 +286,62 @@ function themeWindow(window) {
function setTitle(window) {
// Check if the window is in private browsing
function onContextError() {
console.log('Context Error');
console.log("Context Error");
}
function setTitle(title, privtitle) {
if (window.incognito) {
browser.windows.update(window.id, {
titlePreface: privtitle + ': ',
titlePreface: privtitle + ": ",
});
} else {
browser.windows.update(window.id, {
titlePreface: title + ': ',
titlePreface: title + ": ",
});
}
}
function logTabs(tabInfo) {
function onContextGotTitle(context) {
if (context.name == titlepref) {
console.log('Active in I2P window');
console.log("Active in I2P window");
setTitle(titlepref, titleprefpriv);
} else if (context.name == muwirepref) {
console.log('Active in MuWire window');
console.log("Active in MuWire window");
setTitle(muwirepref, muwireprefpriv);
} else if (context.name == routerpref) {
console.log('Active in Router Console window');
console.log("Active in Router Console window");
setTitle(routerpref, routerprefpriv);
} else if (context.name == botepref) {
console.log('Active in Bote window');
console.log("Active in Bote window");
setTitle(botepref, boteprefpriv);
} else if (context.name == tunnelpref) {
console.log('Active in Hidden Services Manager window');
console.log("Active in Hidden Services Manager window");
setTitle(tunnelpref, tunnelprefpriv);
} else if (context.name == mailpref) {
console.log('Active in I2P Web Mail window');
console.log("Active in I2P Web Mail window");
setTitle(mailpref, mailprefpriv);
} else if (context.name == torrentpref) {
console.log('Active in I2P Torrent window');
console.log("Active in I2P Torrent window");
setTitle(torrentpref, torrentprefpriv);
} else if (context.name == ircpref) {
console.log('Active in IRC window');
console.log("Active in IRC window");
setTitle(ircpref, ircprefpriv);
}
}
if (
tabInfo[0].cookieStoreId != 'firefox-default' &&
tabInfo[0].cookieStoreId != 'firefox-private'
tabInfo[0].cookieStoreId != "firefox-default" &&
tabInfo[0].cookieStoreId != "firefox-private"
) {
browser.contextualIdentities
.get(tabInfo[0].cookieStoreId)
.then(onContextGotTitle, onContextError);
} else if (window.incognito) {
browser.windows.update(window.id, {
titlePreface: '',
titlePreface: "",
});
} else {
browser.windows.update(window.id, {
titlePreface: '',
titlePreface: "",
});
}
}
@@ -353,9 +356,9 @@ function setTitle(window) {
var gettingListenerInfo = browser.runtime.getPlatformInfo();
gettingListenerInfo.then((got) => {
function onPlatformError() {
console.log('Error finding platform info');
console.log("Error finding platform info");
}
if (got.os != 'android') {
if (got.os != "android") {
browser.tabs.onCreated.addListener(() => {
var getting = browser.windows.getCurrent({
populate: true,
@@ -375,39 +378,41 @@ function handleUpdated(updateInfo) {
function maybeSet(them) {
console.log("original theme found:", them, Object.keys(them).length);
try {
console.log(
"testing theme",
updateInfo.theme.colors.toolbar,
"!=",
btheme.colors.toolbar
);
console.log(
"testing theme",
updateInfo.theme.colors.toolbar,
"!=",
dtheme.colors.toolbar
);
if (
Object.keys(them).length == 0 ||
(them.originalTheme.colors == null &&
them.originalTheme.images == null &&
them.originalTheme.properties == null)
updateInfo.theme.colors.toolbar != dtheme.colors.toolbar &&
updateInfo.theme.colors.toolbar != btheme.colors.toolbar
) {
if (updateInfo.theme.colors != null) {
if (
updateInfo.theme.colors.frame != "#4456B7" &&
updateInfo.theme.colors.frame != "#363A68"
) {
function onSet() {
console.log("stored theme:", updateInfo.theme);
}
if (
updateInfo.theme.colors != null &&
updateInfo.theme.images != null &&
updateInfo.theme.properties != null
) {
console.log("storing theme:", updateInfo.theme);
browser.storage.local
.set({ originalTheme: updateInfo.theme })
.then(onSet, onError);
}
}
function onSet() {
console.log("stored theme:", updateInfo.theme);
}
} else {
console.log("keeping stored theme:", them);
/*if (
updateInfo.theme.colors != null &&
updateInfo.theme.images != null &&
updateInfo.theme.properties != null
) {*/
console.log("storing theme:", updateInfo.theme);
browser.storage.local
.set({ originalTheme: updateInfo.theme })
.then(onSet, onError);
//}
}
} catch (e) {
console.log("theme storage error", e);
}
}
console.log("Handling theme", updateInfo);
browser.storage.local.get("originalTheme").then(maybeSet, onError);
}

View File

@@ -1,30 +1,30 @@
function bookmarksSetup() {
var gettingInfo = browser.runtime.getPlatformInfo();
gettingInfo.then((got) => {
if (got.os != 'android') {
if (got.os != "android") {
function bookmarks(bookmarkToolbar) {
console.log('(bookmarks)', bookmarkToolbar);
console.log('Setting up bookmark toolbar', bookmarkToolbar);
console.log("(bookmarks)", bookmarkToolbar);
console.log("Setting up bookmark toolbar", bookmarkToolbar);
function bookHome(bookmarkItems) {
if (!bookmarkItems.length) {
function gotProxyInfo(info) {
let port = info.value.http.split(':')[1];
if (port == '7644') {
let port = info.value.http.split(":")[1];
if (port == "7644") {
let createRhizomeBookmark = browser.bookmarks.create({
url: 'about:I2p',
title: 'I2P Extension Home Page',
url: "about:I2p",
title: "I2P Extension Home Page",
parentId: bookmarkToolbar[0].id,
});
createRhizomeBookmark.then(onCreated);
} else {
let createBookmark = browser.bookmarks.create({
url: browser.runtime.getURL('home.html'),
title: 'I2P Extension Home Page',
url: browser.runtime.getURL("home.html"),
title: "I2P Extension Home Page",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onCreated);
}
console.log('(bookmarks) adding home page bookmark');
console.log("(bookmarks) adding home page bookmark");
}
console.log(
"(bookmarks) checking if we're running in an I2P Browser"
@@ -36,19 +36,19 @@ function bookmarksSetup() {
function bookTorrent(bookmarkItems) {
if (!bookmarkItems.length) {
function gotProxyInfo(info) {
let port = info.value.http.split(':')[1];
if (port == '7644') {
let port = info.value.http.split(":")[1];
if (port == "7644") {
let createBookmark = browser.bookmarks.create({
url: 'http://localhost:7657/i2psnark',
title: 'Bittorrent',
url: "http://localhost:7657/i2psnark",
title: "Bittorrent",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onCreated);
} else {
let createRhizomeBookmark = browser.bookmarks.create({
url:
'http://' + control_host + ':' + control_port + '/i2psnark',
title: 'Bittorrent',
"http://" + control_host + ":" + control_port + "/i2psnark",
title: "Bittorrent",
parentId: bookmarkToolbar[0].id,
});
createRhizomeBookmark.then(onCreated);
@@ -64,18 +64,18 @@ function bookmarksSetup() {
function bookConsole(bookmarkItems) {
if (!bookmarkItems.length) {
function gotProxyInfo(info) {
let port = info.value.http.split(':')[1];
if (port == '7644') {
let port = info.value.http.split(":")[1];
if (port == "7644") {
let createBookmark = browser.bookmarks.create({
url: 'http://localhost:7657/home',
title: 'I2P Console',
url: "http://localhost:7657/home",
title: "I2P Console",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onCreated);
} else {
let createRhizomeBookmark = browser.bookmarks.create({
url: 'http://' + control_host + ':' + control_port + '/home',
title: 'I2P Console',
url: "http://" + control_host + ":" + control_port + "/home",
title: "I2P Console",
parentId: bookmarkToolbar[0].id,
});
createRhizomeBookmark.then(onCreated);
@@ -91,24 +91,24 @@ function bookmarksSetup() {
function bookMail(bookmarkItems) {
if (!bookmarkItems.length) {
function gotProxyInfo(info) {
let port = info.value.http.split(':')[1];
if (port == '7644') {
let port = info.value.http.split(":")[1];
if (port == "7644") {
let createBookmark = browser.bookmarks.create({
url: 'http://localhost:7657/webmail',
title: 'Web Mail',
url: "http://localhost:7657/webmail",
title: "Web Mail",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onCreated);
} else {
let createRhizomeBookmark = browser.bookmarks.create({
url:
'http://' + control_host + ':' + control_port + '/webmail',
title: 'Web Mail',
"http://" + control_host + ":" + control_port + "/webmail",
title: "Web Mail",
parentId: bookmarkToolbar[0].id,
});
createRhizomeBookmark.then(onCreated);
}
console.log('(bookmarks) adding webmail bookmark');
console.log("(bookmarks) adding webmail bookmark");
}
console.log(
"(bookmarks) checking if we're running in an I2P Browser"
@@ -120,28 +120,28 @@ function bookmarksSetup() {
function bookI2PTunnel(bookmarkItems) {
if (!bookmarkItems.length) {
function gotProxyInfo(info) {
let port = info.value.http.split(':')[1];
if (port == '7644') {
let port = info.value.http.split(":")[1];
if (port == "7644") {
var createBookmark = browser.bookmarks.create({
url: 'http://localhost:7657/i2ptunnel',
title: 'Hidden Services Manager',
url: "http://localhost:7657/i2ptunnel",
title: "Hidden Services Manager",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onCreated);
} else {
var createRhizomeBookmark = browser.bookmarks.create({
url:
'http://' +
"http://" +
control_host +
':' +
":" +
control_port +
'/i2ptunnel',
title: 'Hidden Services Manager',
"/i2ptunnel",
title: "Hidden Services Manager",
parentId: bookmarkToolbar[0].id,
});
createRhizomeBookmark.then(onCreated);
}
console.log('(bookmarks) adding i2ptunnel bookmark');
console.log("(bookmarks) adding i2ptunnel bookmark");
}
console.log(
"(bookmarks) checking if we're running in an I2P Browser"
@@ -155,53 +155,53 @@ function bookmarksSetup() {
console.log(`An error : ${error}`);
}
function onCreated(node) {
console.log('Bookmarked', node);
console.log("Bookmarked", node);
}
var b0 = browser.bookmarks.search({
title: 'I2P Extension Home Page',
title: "I2P Extension Home Page",
});
b0.then(bookHome, onRejected);
var b1 = browser.bookmarks.search({
title: 'Bittorrent',
title: "Bittorrent",
});
b1.then(bookTorrent, onRejected);
var b2 = browser.bookmarks.search({
title: 'Hidden Services Manager',
title: "Hidden Services Manager",
});
b2.then(bookI2PTunnel, onRejected);
var b3 = browser.bookmarks.search({
title: 'Web Mail',
title: "Web Mail",
});
b3.then(bookMail, onRejected);
var b4 = browser.bookmarks.search({
title: 'I2P Console',
title: "I2P Console",
});
b4.then(bookConsole, onRejected);
defaultSettings['bookmarks_state'] = true;
defaultSettings["bookmarks_state"] = true;
}
var bt = browser.bookmarks.search({
query: 'Toolbar',
query: "Toolbar",
});
function toolDir(bookmarkToolbar) {
let defaultSettings = {};
chrome.storage.local.set(defaultSettings);
console.log('(bookmarks) created');
var ibbt = browser.bookmarks.search('I2P Toolbar');
console.log("(bookmarks) created");
var ibbt = browser.bookmarks.search("I2P Toolbar");
function setupDir(ibbt) {
function onToolbarCreated(node) {
var ibt = browser.bookmarks.search('I2P Toolbar');
var ibt = browser.bookmarks.search("I2P Toolbar");
ibt.then(bookmarks);
}
if (ibbt[0] == null) {
let createBookmark = browser.bookmarks.create({
title: 'I2P Toolbar',
title: "I2P Toolbar",
parentId: bookmarkToolbar[0].id,
});
createBookmark.then(onToolbarCreated);
@@ -225,7 +225,7 @@ function bookmarksSetup() {
}
function conditionalBookmarksSetup(obj) {
console.log('(bookmarks) state', obj.bookmarks_state);
console.log("(bookmarks) state", obj.bookmarks_state);
if (obj.bookmarks_state == false) {
bookmarksSetup();
}
@@ -235,11 +235,11 @@ function conditionalBookmarksSetup(obj) {
}
if (browser != null) {
let gettingStorage = browser.storage.local.get('bookmarks_state');
let gettingStorage = browser.storage.local.get("bookmarks_state");
gettingStorage.then(conditionalBookmarksSetup, bookmarksSetup);
}
const bookmarksButton = document.getElementById('bookmarksButton');
const bookmarksButton = document.getElementById("bookmarksButton");
if (bookmarksButton != null) {
bookmarksButton.addEventListener('click', bookmarksSetup);
bookmarksButton.addEventListener("click", bookmarksSetup);
}

28
cert.js
View File

@@ -1,42 +1,42 @@
function blankContent(id) {
let infoTitle = document.getElementById(id);
if (infoTitle === null) {
console.log('content error', id);
console.log("content error", id);
return;
}
infoTitle.textContent = '';
infoTitle.textContent = "";
}
function contentUpdateById(id, message) {
let infoTitle = document.getElementById(id);
let messageContent = chrome.i18n.getMessage(message);
if (infoTitle === null) {
console.log('content error', id, messageContent);
console.log("content error", id, messageContent);
return;
}
infoTitle.textContent = messageContent;
}
contentUpdateById('TypeLabel', 'siteLabel');
contentUpdateById("TypeLabel", "siteLabel");
contentUpdateById('CertLabel', 'certLabel');
contentUpdateById("CertLabel", "certLabel");
function tabCheck(tabInfo) {
// Information Section
console.log('(cert) checking tab');
var host = tabInfo[0].url.split('.i2p')[0] + '.i2p';
console.log("(cert) checking tab");
var host = tabInfo[0].url.split(".i2p")[0] + ".i2p";
if (host.length < 51) {
contentUpdateById('AddressInfo', 'isHostName');
contentUpdateById("AddressInfo", "isHostName");
} else {
if (host.endsWith('b32.i2p')) {
contentUpdateById('AddressInfo', 'isBase32');
if (host.endsWith("b32.i2p")) {
contentUpdateById("AddressInfo", "isBase32");
}
}
if (host.startsWith('https')) {
contentUpdateById('AddressCertInfo', 'certPresent');
console.log('(cert) initiating request to check server cert');
if (host.startsWith("https")) {
contentUpdateById("AddressCertInfo", "certPresent");
console.log("(cert) initiating request to check server cert");
fetch(host).then((response) => {
console.log('Updating cert information', response);
console.log("Updating cert information", response);
});
} else {
contentUpdateById("AddressCertInfo", "certAbsent");

View File

@@ -1,18 +1,18 @@
var proxy_scheme = 'HTTP';
var proxy_host = '127.0.0.1';
var proxy_port = '4444';
var proxy_scheme = "HTTP";
var proxy_host = "127.0.0.1";
var proxy_port = "4444";
var control_host = '127.0.0.1';
var control_port = '7657';
var control_host = "127.0.0.1";
var control_port = "7657";
var rpc_host = '127.0.0.1';
var rpc_port = '7657';
var rpc_path = 'jsonrpc';
var rpc_pass = 'itoopie';
var rpc_host = "127.0.0.1";
var rpc_port = "7657";
var rpc_path = "jsonrpc";
var rpc_pass = "itoopie";
var bt_rpc_host = '127.0.0.1';
var bt_rpc_port = '7657';
var bt_rpc_path = 'transmission/rpc';
var bt_rpc_pass = 'transmission';
var bt_rpc_host = "127.0.0.1";
var bt_rpc_port = "7657";
var bt_rpc_path = "transmission/rpc";
var bt_rpc_pass = "transmission";
var disable_history = false;

View File

@@ -2,52 +2,52 @@ function contentUpdateById(id, message) {
let infoTitle = document.getElementById(id);
let messageContent = chrome.i18n.getMessage(message);
if (infoTitle === null) {
console.log('content error', id, messageContent);
console.log("content error", id, messageContent);
return;
}
infoTitle.textContent = messageContent;
}
// Information Section
contentUpdateById('text-section-header', 'extensionName');
contentUpdateById('description', 'extensionDescription');
contentUpdateById('i2pbrowser-version', 'extensionVersion');
contentUpdateById('proxy-check', 'proxyFailedStatus');
contentUpdateById("text-section-header", "extensionName");
contentUpdateById("description", "extensionDescription");
contentUpdateById("i2pbrowser-version", "extensionVersion");
contentUpdateById("proxy-check", "proxyFailedStatus");
// Control Section
contentUpdateById('controlHeader', 'controlHeader');
contentUpdateById('controlExplain', 'controlExplain');
contentUpdateById('clear-browser-data', 'clearData');
contentUpdateById('clear-desc', 'clearDesc');
contentUpdateById('enable-web-rtc', 'enableWebRTC');
contentUpdateById('rtcDesc', 'rtcDesc');
contentUpdateById('disable-history', 'disableHistory');
contentUpdateById('histDesc', 'histDesc');
contentUpdateById("controlHeader", "controlHeader");
contentUpdateById("controlExplain", "controlExplain");
contentUpdateById("clear-browser-data", "clearData");
contentUpdateById("clear-desc", "clearDesc");
contentUpdateById("enable-web-rtc", "enableWebRTC");
contentUpdateById("rtcDesc", "rtcDesc");
contentUpdateById("disable-history", "disableHistory");
contentUpdateById("histDesc", "histDesc");
// Application Section
contentUpdateById('applicationHeader', 'applicationHeader');
contentUpdateById('applicationExplain', 'applicationExplain');
contentUpdateById('window-visit-index', 'windowVisitHelppage');
contentUpdateById('help', 'help');
contentUpdateById('window-visit-router', 'windowVisitConsole');
contentUpdateById('routerConsole', 'routerConsole');
contentUpdateById('window-visit-homepage', 'windowVisitHomepage');
contentUpdateById('abouthome', 'abouthome');
contentUpdateById('window-visit-i2ptunnel', 'windowVisitI2ptunnel');
contentUpdateById('i2ptunnel', 'i2ptunnel');
contentUpdateById('window-visit-susimail', 'windowVisitSusiMail');
contentUpdateById('susimail', 'susimail');
contentUpdateById('window-visit-snark', 'windowVisitSnark');
contentUpdateById('snark', 'snark');
contentUpdateById("applicationHeader", "applicationHeader");
contentUpdateById("applicationExplain", "applicationExplain");
contentUpdateById("window-visit-index", "windowVisitHelppage");
contentUpdateById("help", "help");
contentUpdateById("window-visit-router", "windowVisitConsole");
contentUpdateById("routerConsole", "routerConsole");
contentUpdateById("window-visit-homepage", "windowVisitHomepage");
contentUpdateById("abouthome", "abouthome");
contentUpdateById("window-visit-i2ptunnel", "windowVisitI2ptunnel");
contentUpdateById("i2ptunnel", "i2ptunnel");
contentUpdateById("window-visit-susimail", "windowVisitSusiMail");
contentUpdateById("susimail", "susimail");
contentUpdateById("window-visit-snark", "windowVisitSnark");
contentUpdateById("snark", "snark");
// Homepage Section
contentUpdateById('window-visit-webpage', 'windowVisitWebPage');
contentUpdateById('webpage', 'help');
contentUpdateById('window-visit-sources', 'windowVisitSources');
contentUpdateById('sources', 'sources');
contentUpdateById('window-visit-releases', 'windowVisitReleases');
contentUpdateById('releases', 'releases');
contentUpdateById("window-visit-webpage", "windowVisitWebPage");
contentUpdateById("webpage", "help");
contentUpdateById("window-visit-sources", "windowVisitSources");
contentUpdateById("sources", "sources");
contentUpdateById("window-visit-releases", "windowVisitReleases");
contentUpdateById("releases", "releases");
fetch('http://proxy.i2p').then((myJson) => {
contentUpdateById('proxy-check', 'proxySuccessStatus');
fetch("http://proxy.i2p").then((myJson) => {
contentUpdateById("proxy-check", "proxySuccessStatus");
});

View File

@@ -1,5 +1,5 @@
//var windowIds = []
var titlepref = chrome.i18n.getMessage('titlePreface');
var titlepref = chrome.i18n.getMessage("titlePreface");
function onError(error) {
console.log(`Error : ${error}`);
@@ -10,17 +10,17 @@ function eventHandler(event) {
console.log(`Created window : ${windowInfo.id}`);
browser.tabs.create({
windowId: windowInfo.id,
url: 'about:blank',
url: "about:blank",
cookieStoreId: event.target.dataset.identity,
});
}
if (event.target.dataset.action == 'create') {
if (event.target.dataset.action == "create") {
var creating = browser.tabs.create({
cookieStoreId: event.target.dataset.identity,
});
creating.then(onCreated, onError);
}
if (event.target.dataset.action == 'close-all') {
if (event.target.dataset.action == "close-all") {
browser.tabs
.query({
cookieStoreId: event.target.dataset.identity,

12
debian/changelog vendored
View File

@@ -1,3 +1,15 @@
i2psetproxy.js (0.97-1) UNRELEASED; urgency=low
* Fix theme issue, add x-i2p-torrentlocation HEADER support
-- idk <hankhill19580@gmail.com> FRI, 5 FEB 2021 1:02:55 -0400
i2psetproxy.js (0.95-1) UNRELEASED; urgency=low
* Fix github #102 and #103
-- idk <hankhill19580@gmail.com> Sat, 21 DEC 2020 6:15:05 -0400
i2psetproxy.js (0.93-1) UNRELEASED; urgency=low
* Emergency fix of the first one

View File

@@ -1,69 +1,69 @@
function routerHost(url) {
// console.log("(urlcheck) HANDLER URL CHECK");
let hostname = '';
let path = '';
let hostname = "";
let path = "";
function pathcheck(str) {
// console.log("(urlcheck) HANDLER PATH CHECK", str);
if (str != undefined) {
let final = str.split('/')[0];
if (final === 'i2ptunnelmgr' || final === 'i2ptunnel') {
console.log('(urlcheck) Tunnel application path', final);
return 'i2ptunnelmgr';
let final = str.split("/")[0];
if (final === "i2ptunnelmgr" || final === "i2ptunnel") {
console.log("(urlcheck) Tunnel application path", final);
return "i2ptunnelmgr";
} else if (
final === 'i2psnark' ||
final === 'torrents' ||
final.startsWith('transmission') ||
final.startsWith('tracker') ||
url.includes(':7662')
final === "i2psnark" ||
final === "torrents" ||
final.startsWith("transmission") ||
final.startsWith("tracker") ||
url.includes(":7662")
) {
console.log('(urlcheck) Torrent application path', final);
return 'i2psnark';
} else if (final === 'webmail' || final === 'susimail') {
console.log('(urlcheck) Mail application path', final);
return 'webmail';
} else if (final.startsWith('MuWire')) {
if (!url.includes('.png')) {
console.log('(urlcheck) MuWire application path', final);
return 'muwire';
console.log("(urlcheck) Torrent application path", final);
return "i2psnark";
} else if (final === "webmail" || final === "susimail") {
console.log("(urlcheck) Mail application path", final);
return "webmail";
} else if (final.startsWith("MuWire")) {
if (!url.includes(".png")) {
console.log("(urlcheck) MuWire application path", final);
return "muwire";
}
} else if (final.startsWith('i2pbote')) {
if (!url.includes('.png')) {
console.log('(urlcheck) I2PBote application path', final);
return 'i2pbote';
} else if (final.startsWith("i2pbote")) {
if (!url.includes(".png")) {
console.log("(urlcheck) I2PBote application path", final);
return "i2pbote";
}
} else if (
final === 'home' ||
final === 'console' ||
final === 'dns' ||
final === 'sitemap' ||
final.startsWith('config')
final === "home" ||
final === "console" ||
final === "dns" ||
final === "sitemap" ||
final.startsWith("config")
) {
console.log('(urlcheck) Console application path', final);
return 'routerconsole';
console.log("(urlcheck) Console application path", final);
return "routerconsole";
}
}
return true;
}
if (url.indexOf('://') > -1) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
path = url.replace(prefix + hostname + '/', '');
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
path = url.replace(prefix + hostname + "/", "");
} else if (identifyProtocolHandler(url)) {
let newurl = identifyProtocolHandler(url);
return routerHost(newurl);
} else {
hostname = url.split('/')[0];
path = url.replace(hostname + '/', '');
hostname = url.split("/")[0];
path = url.replace(hostname + "/", "");
}
if (hostname === control_host + ':' + control_port) {
if (hostname === control_host + ":" + control_port) {
//console.log("(hostcheck) router console found on configured ports");
return pathcheck(path);
}
if (hostname === 'localhost' + ':' + control_port) {
if (hostname === "localhost" + ":" + control_port) {
//console.log("(hostcheck) router console found on configured ports");
return pathcheck(path);
}
if (hostname === '127.0.0.1' + ':' + control_port) {
if (hostname === "127.0.0.1" + ":" + control_port) {
return pathcheck(path);
}
@@ -73,36 +73,36 @@ function routerHost(url) {
function identifyProtocolHandler(url) {
//console.log("looking for handler-able requests")
if (routerHost(url)) {
if (url.includes(encodeURIComponent('ext+rc:'))) {
return url.replace(encodeURIComponent('ext+rc:'), '');
} else if (url.includes('ext+rc:')) {
return url.replace('ext+rc:', '');
if (url.includes(encodeURIComponent("ext+rc:"))) {
return url.replace(encodeURIComponent("ext+rc:"), "");
} else if (url.includes("ext+rc:")) {
return url.replace("ext+rc:", "");
}
} else if (url.includes('ext+rc:')) {
} else if (url.includes("ext+rc:")) {
return url;
}
return false;
}
function trimHost(url) {
let hostname = '';
let prefix = '';
if (url.indexOf('://') > -1) {
prefix = url.substr(0, url.indexOf('://') + 3);
hostname = url.split('/')[2];
let hostname = "";
let prefix = "";
if (url.indexOf("://") > -1) {
prefix = url.substr(0, url.indexOf("://") + 3);
hostname = url.split("/")[2];
} else {
hostname = url.split('/')[0];
hostname = url.split("/")[0];
}
let path = url.replace(prefix + hostname, '');
console.log('(handler) path', prefix + hostname, path);
let path = url.replace(prefix + hostname, "");
console.log("(handler) path", prefix + hostname, path);
return path;
}
var handlerSetup = function(requestDetails) {
var handlerSetup = function (requestDetails) {
//console.log("checking protocol handler listener")
let rwurl = identifyProtocolHandler(requestDetails.url);
if (rwurl != false) {
console.log('(handler) rewrite URL requested', rwurl);
console.log("(handler) rewrite URL requested", rwurl);
requestDetails.redirectUrl = rwurl;
requestDetails.url = trimHost(rwurl);
requestDetails.originUrl = trimHost(rwurl);

34
home.js
View File

@@ -1,25 +1,25 @@
document.addEventListener('click', (clickEvent) => {
if (clickEvent.target.id === 'onboardingButtonZero') {
flipVisibility('onboardingContentZero');
} else if (clickEvent.target.id === 'onboardingButtonOne') {
flipVisibility('onboardingContentOne');
} else if (clickEvent.target.id === 'onboardingButtonTwo') {
flipVisibility('onboardingContentTwo');
} else if (clickEvent.target.id === 'onboardingButtonThree') {
flipVisibility('onboardingContentThree');
} else if (clickEvent.target.id === 'onboardingButtonFour') {
flipVisibility('onboardingContentFour');
} else if (clickEvent.target.id === 'fliplinks') {
flipVisibility('info-content');
document.addEventListener("click", (clickEvent) => {
if (clickEvent.target.id === "onboardingButtonZero") {
flipVisibility("onboardingContentZero");
} else if (clickEvent.target.id === "onboardingButtonOne") {
flipVisibility("onboardingContentOne");
} else if (clickEvent.target.id === "onboardingButtonTwo") {
flipVisibility("onboardingContentTwo");
} else if (clickEvent.target.id === "onboardingButtonThree") {
flipVisibility("onboardingContentThree");
} else if (clickEvent.target.id === "onboardingButtonFour") {
flipVisibility("onboardingContentFour");
} else if (clickEvent.target.id === "fliplinks") {
flipVisibility("info-content");
}
});
function flipVisibility(div) {
console.log('(home) seeking flippable', div);
console.log("(home) seeking flippable", div);
let flippable = document.getElementById(div);
if (flippable.style.display !== 'block') {
flippable.style.display = 'block';
if (flippable.style.display !== "block") {
flippable.style.display = "block";
} else {
flippable.style.display = 'none';
flippable.style.display = "none";
}
}

146
host.js
View File

@@ -1,15 +1,15 @@
function proxyHost(url) {
let hostname = '';
if (url.indexOf('://') > -1) {
hostname = url.split('/')[2];
let hostname = "";
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
} else {
hostname = url.split('/')[0];
hostname = url.split("/")[0];
}
if (hostname == 'proxy.i2p') {
if (hostname == "proxy.i2p") {
return true;
}
if (
hostname == 'c6lilt4cr5x7jifxridpkesf2zgfwqfchtp6laihr4pdqomq25iq.b32.i2p'
hostname == "c6lilt4cr5x7jifxridpkesf2zgfwqfchtp6laihr4pdqomq25iq.b32.i2p"
) {
return true;
}
@@ -17,16 +17,16 @@ function proxyHost(url) {
}
function localHost(url) {
let hostname = '';
if (url.indexOf('://') > -1) {
hostname = url.split('/')[2];
let hostname = "";
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
} else {
hostname = url.split('/')[0];
hostname = url.split("/")[0];
}
hostname = hostname.split(':')[0];
if (hostname === '127.0.0.1') {
hostname = hostname.split(":")[0];
if (hostname === "127.0.0.1") {
return true;
} else if (hostname === 'localhost') {
} else if (hostname === "localhost") {
return true;
}
@@ -35,122 +35,122 @@ function localHost(url) {
function extensionHost(url) {
if (url.originUrl !== undefined) {
var res = url.originUrl.startsWith(browser.runtime.getURL(''));
var res = url.originUrl.startsWith(browser.runtime.getURL(""));
if (res) return res;
}
if (url.url !== undefined) {
var res = url.url.startsWith(browser.runtime.getURL(''));
var res = url.url.startsWith(browser.runtime.getURL(""));
if (res) return res;
}
}
function i2pHostName(url) {
let hostname = '';
console.log('(hosts)', url);
let hostname = "";
console.log("(hosts)", url);
let u = new URL(url);
if (u.host.endsWith('.i2p')) {
if (u.host.endsWith(".i2p")) {
hostname = u.host;
} else if (url.includes('=')) {
if (url.includes('.i2p')) {
lsit = url.split('=');
} else if (url.includes("=")) {
if (url.includes(".i2p")) {
lsit = url.split("=");
for (let item in lsit) {
var items = lsit[item].split(`\ % `); //"\%")
for (let p in items) {
if (items[p].includes('.i2p')) {
hostname = items[p].replace('3D', 1);
if (items[p].includes(".i2p")) {
hostname = items[p].replace("3D", 1);
}
break;
}
if (hostname != '') {
if (hostname != "") {
break;
}
}
}
} else if (url.indexOf('://') > -1) {
hostname = url.split('/')[2];
} else if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
} else {
hostname = url.split('/')[0];
hostname = url.split("/")[0];
}
console.log('(hosts) scrub', hostname);
console.log("(hosts) scrub", hostname);
return hostname;
}
function i2pHost(url) {
let hostname = i2pHostName(url);
return hostname.endsWith('.i2p');
return hostname.endsWith(".i2p");
}
function routerHost(url) {
// console.log("(urlcheck) HOST URL CHECK");
let hostname = '';
let path = '';
let hostname = "";
let path = "";
function pathcheck(str) {
if (str != undefined) {
let final = str.split('/')[0];
if (final === 'i2ptunnelmgr' || final === 'i2ptunnel') {
console.log('(urlcheck) Tunnel application path', final);
return 'i2ptunnelmgr';
let final = str.split("/")[0];
if (final === "i2ptunnelmgr" || final === "i2ptunnel") {
console.log("(urlcheck) Tunnel application path", final);
return "i2ptunnelmgr";
} else if (
final === 'i2psnark' ||
final === 'torrents' ||
final.startsWith('transmission') ||
final.startsWith('tracker') ||
url.includes(':7662')
final === "i2psnark" ||
final === "torrents" ||
final.startsWith("transmission") ||
final.startsWith("tracker") ||
url.includes(":7662")
) {
console.log('(urlcheck) Torrent application path', final);
return 'i2psnark';
} else if (final === 'webmail' || final === 'susimail') {
console.log('(urlcheck) Mail application path', final);
return 'webmail';
} else if (final.startsWith('MuWire')) {
if (!url.includes('.png')) {
console.log('(urlcheck) MuWire application path', final);
return 'muwire';
console.log("(urlcheck) Torrent application path", final);
return "i2psnark";
} else if (final === "webmail" || final === "susimail") {
console.log("(urlcheck) Mail application path", final);
return "webmail";
} else if (final.startsWith("MuWire")) {
if (!url.includes(".png")) {
console.log("(urlcheck) MuWire application path", final);
return "muwire";
}
} else if (final.startsWith('i2pbote')) {
if (!url.includes('.png')) {
console.log('(urlcheck) I2PBote application path', final);
return 'i2pbote';
} else if (final.startsWith("i2pbote")) {
if (!url.includes(".png")) {
console.log("(urlcheck) I2PBote application path", final);
return "i2pbote";
}
} else if (
final === 'home' ||
final === 'console' ||
final === 'dns' ||
final === 'susidns' ||
final.startsWith('susidns') ||
final === 'sitemap' ||
final.startsWith('config')
final === "home" ||
final === "console" ||
final === "dns" ||
final === "susidns" ||
final.startsWith("susidns") ||
final === "sitemap" ||
final.startsWith("config")
) {
console.log('(urlcheck) Console application path', final);
return 'routerconsole';
console.log("(urlcheck) Console application path", final);
return "routerconsole";
}
}
return true;
}
if (url.indexOf('://') > -1) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
path = url.replace(prefix + hostname + '/', '');
if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
path = url.replace(prefix + hostname + "/", "");
} else if (identifyProtocolHandler(url)) {
let newurl = identifyProtocolHandler(url);
return routerHost(newurl);
} else {
hostname = url.split('/')[0];
path = url.replace(hostname + '/', '');
hostname = url.split("/")[0];
path = url.replace(hostname + "/", "");
}
if (hostname === control_host + ':' + control_port) {
if (hostname === control_host + ":" + control_port) {
return pathcheck(path);
}
if (hostname === 'localhost' + ':' + control_port) {
if (hostname === "localhost" + ":" + control_port) {
return pathcheck(path);
}
if (hostname === '127.0.0.1' + ':' + control_port) {
if (hostname === "127.0.0.1" + ":" + control_port) {
return pathcheck(path);
}
if (hostname === 'localhost' + ':' + 7070) {
if (hostname === "localhost" + ":" + 7070) {
return pathcheck(path);
}
if (hostname === '127.0.0.1' + ':' + 7070) {
if (hostname === "127.0.0.1" + ":" + 7070) {
return pathcheck(path);
}
return false;

View File

@@ -1,9 +1,9 @@
var hello = 'hello i2pcontrol';
var hello = "hello i2pcontrol";
function makeid(length) {
var result = '';
var result = "";
var characters =
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
var charactersLength = characters.length;
for (var i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
@@ -22,15 +22,15 @@ function send(
let requestBody = JSON.stringify(data);
//console.log("(i2pcontrol) sending request", requestBody);
let opts = {
method: 'POST', // *GET, POST, PUT, DELETE, etc.
mode: 'cors', // no-cors, *cors, same-origin
cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached
credentials: 'same-origin', // include, *same-origin, omit
method: "POST", // *GET, POST, PUT, DELETE, etc.
mode: "cors", // no-cors, *cors, same-origin
cache: "no-cache", // *default, no-cache, reload, force-cache, only-if-cached
credentials: "same-origin", // include, *same-origin, omit
headers: {
'Content-Type': 'application/json',
"Content-Type": "application/json",
},
redirect: 'follow', // manual, *follow, error
referrerPolicy: 'no-referrer', // no-referrer, *client
redirect: "follow", // manual, *follow, error
referrerPolicy: "no-referrer", // no-referrer, *client
body: requestBody, // body data type must match "Content-Type" header
};
const response = await fetch(url, opts);
@@ -39,7 +39,7 @@ function send(
//console.log("http://" + control_host + ":" + control_port + "/" + control_path)
return postData(
'http://' + control_host + ':' + control_port + '/' + control_path + '/',
"http://" + control_host + ":" + control_port + "/" + control_path + "/",
message
);
}
@@ -51,12 +51,12 @@ async function authenticate(
control_path = "jsonrpc"
) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'Authenticate';
json['params'] = new Object();
json['params']['API'] = 1;
json['params']['Password'] = password;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "Authenticate";
json["params"] = new Object();
json["params"]["API"] = 1;
json["params"]["Password"] = password;
return send(json, control_host, control_port, control_path);
}
@@ -81,14 +81,14 @@ async function Echo(
password = "itoopie"
) {
function echo(token) {
console.log('(i2pcontrol) testing I2PControl connection');
console.log("(i2pcontrol) testing I2PControl connection");
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'Echo';
json['params'] = new Object();
json['params']['Token'] = token;
json['params']['Echo'] = message;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "Echo";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"]["Echo"] = message;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -121,13 +121,13 @@ async function GetRate(
) {
function getrate(token) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'I2PControl';
json['params'] = new Object();
json['params']['Token'] = token;
json['params']['Stat'] = Query;
json['params']['Period'] = 2000;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "I2PControl";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"]["Stat"] = Query;
json["params"]["Period"] = 2000;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -160,12 +160,12 @@ async function I2PControl(
) {
function i2pcontrol(token) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'I2PControl';
json['params'] = new Object();
json['params']['Token'] = token;
json['params'][Query] = null;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "I2PControl";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"][Query] = null;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -204,12 +204,12 @@ async function RouterInfo(
) {
function routerinfo(token) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'RouterInfo';
json['params'] = new Object();
json['params']['Token'] = token;
json['params'][Query] = null;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "RouterInfo";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"][Query] = null;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -255,12 +255,12 @@ async function RouterManager(
) {
function routermanager(token) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'RouterManager';
json['params'] = new Object();
json['params']['Token'] = token;
json['params'][Query] = null;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "RouterManager";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"][Query] = null;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -300,12 +300,12 @@ async function NetworkSetting(
) {
function networksetting(token) {
var json = new Object();
json['id'] = makeid(6);
json['jsonrpc'] = '2.0';
json['method'] = 'NetworkSetting';
json['params'] = new Object();
json['params']['Token'] = token;
json['params'][Query] = null;
json["id"] = makeid(6);
json["jsonrpc"] = "2.0";
json["method"] = "NetworkSetting";
json["params"] = new Object();
json["params"]["Token"] = token;
json["params"][Query] = null;
return send(json, control_host, control_port, control_path);
}
let token = GetToken(password, control_host, control_port, control_path);
@@ -336,49 +336,49 @@ function UpdateNetworkSettingElementByID(
}
function UpdateContents() {
UpdateRouterInfoElementByID('i2p.router.status', 'router-status');
UpdateRouterInfoElementByID('i2p.router.uptime', 'router-uptime');
UpdateRouterInfoElementByID('i2p.router.version', 'router-version');
UpdateRouterInfoElementByID("i2p.router.status", "router-status");
UpdateRouterInfoElementByID("i2p.router.uptime", "router-uptime");
UpdateRouterInfoElementByID("i2p.router.version", "router-version");
UpdateRouterInfoElementByID(
'i2p.router.net.bw.inbound.1s',
'router-net-bw-inbound-1s'
"i2p.router.net.bw.inbound.1s",
"router-net-bw-inbound-1s"
);
UpdateRouterInfoElementByID(
'i2p.router.net.bw.inbound.15s',
'router-net-bw-inbound-15s'
"i2p.router.net.bw.inbound.15s",
"router-net-bw-inbound-15s"
);
UpdateRouterInfoElementByID(
'i2p.router.net.bw.outbound.1s',
'router-net-bw-outbound-1s'
"i2p.router.net.bw.outbound.1s",
"router-net-bw-outbound-1s"
);
UpdateRouterInfoElementByID(
'i2p.router.net.bw.outbound.15s',
'router-net-bw-outbound-15s'
"i2p.router.net.bw.outbound.15s",
"router-net-bw-outbound-15s"
);
UpdateRouterInfoElementByID('i2p.router.net.status', 'router-net-status');
UpdateRouterInfoElementByID("i2p.router.net.status", "router-net-status");
UpdateRouterInfoElementByID(
'i2p.router.net.tunnels.participating',
'router-net-tunnels-participating'
"i2p.router.net.tunnels.participating",
"router-net-tunnels-participating"
);
UpdateRouterInfoElementByID(
'i2p.router.netdb.activepeers',
'router-netdb-activepeers'
"i2p.router.netdb.activepeers",
"router-netdb-activepeers"
);
UpdateRouterInfoElementByID(
'i2p.router.netdb.fastpeers',
'router-netdb-fastpeers'
"i2p.router.netdb.fastpeers",
"router-netdb-fastpeers"
);
UpdateRouterInfoElementByID(
'i2p.router.netdb.highcapacitypeers',
'router-netdb-highcapacitypeers'
"i2p.router.netdb.highcapacitypeers",
"router-netdb-highcapacitypeers"
);
UpdateRouterInfoElementByID(
'i2p.router.netdb.isreseeding',
'router-netdb-isreseeding'
"i2p.router.netdb.isreseeding",
"router-netdb-isreseeding"
);
UpdateRouterInfoElementByID(
'i2p.router.netdb.knownpeers',
'router-netdb-knownpeers'
"i2p.router.netdb.knownpeers",
"router-netdb-knownpeers"
);
}
@@ -386,6 +386,6 @@ var done = Echo(hello);
done.then(Done);
function Done(output) {
console.log('(i2pcontrol) I2PControl connection tested,', output);
console.log("(i2pcontrol) I2PControl connection tested,", output);
return output;
}

View File

@@ -38,7 +38,7 @@
<ul>
<li>
<a href="magnet:?xt=urn:btih:991cc1181d816c20629caef454ebabf14785fbf7">Magnet Link</a>
<a href="magnet:?xt=urn:btih:7ec361c3ddc3fb904e369a19cdf4259af94af624">Magnet Link</a>
</li>
<li>

View File

@@ -2,9 +2,9 @@ function checkPeerConnection() {
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;
console.log("checking webrtc", webrtc);
if (document.getElementById("enable-web-rtc") !== null)
document.getElementById("enable-web-rtc").checked = webrtc;
});
}

View File

@@ -1,8 +1,8 @@
function gotCurrent(tab) {
function gotTitle(title) {
let addr = title;
document.getElementById('TypeInfo').innerHTML =
'<div class="AddressInfo"><a href="' + addr + '">' + addr + '</a></div>';
document.getElementById("TypeInfo").innerHTML =
'<div class="AddressInfo"><a href="' + addr + '">' + addr + "</a></div>";
}
console.log(tab);
var gettingTitle = browser.pageAction.getTitle({

View File

@@ -27,7 +27,7 @@
],
"manifest_version": 2,
"name": "__MSG_extensionName__",
"version": "0.91",
"version": "0.95",
"description": "__MSG_extensionDescription__",
"homepage_url": "https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox",
"icons": {

View File

@@ -4,168 +4,168 @@ function SetBookButton() {
}
function SetHostText() {
var hostid = document.getElementById('hostText');
hostid.textContent = chrome.i18n.getMessage('hostText');
var hostid = document.getElementById("hostText");
hostid.textContent = chrome.i18n.getMessage("hostText");
}
function SetPortText() {
var portid = document.getElementById('portText');
portid.textContent = chrome.i18n.getMessage('portText');
var portid = document.getElementById("portText");
portid.textContent = chrome.i18n.getMessage("portText");
}
function SetPortHelpText() {
var portid = document.getElementById('proxyHelpText');
portid.textContent = chrome.i18n.getMessage('proxyHelpText');
var portid = document.getElementById("proxyHelpText");
portid.textContent = chrome.i18n.getMessage("proxyHelpText");
}
function SetControlHostText() {
var controlhostid = document.getElementById('controlHostText');
controlhostid.textContent = chrome.i18n.getMessage('controlHostText');
var controlhostid = document.getElementById("controlHostText");
controlhostid.textContent = chrome.i18n.getMessage("controlHostText");
}
function SetControlPortText() {
var controlportid = document.getElementById('controlPortText');
controlportid.textContent = chrome.i18n.getMessage('controlPortText');
var controlportid = document.getElementById("controlPortText");
controlportid.textContent = chrome.i18n.getMessage("controlPortText");
}
function SetControlHelpText() {
var portid = document.getElementById('controlHelpText');
portid.textContent = chrome.i18n.getMessage('controlHelpText');
var portid = document.getElementById("controlHelpText");
portid.textContent = chrome.i18n.getMessage("controlHelpText");
}
function getBookmarksCreated() {
bookmarks_state = document.getElementById('bookmarks').value;
console.log('(options)Got i2p bookmarks state:', bookmarks_state);
bookmarks_state = document.getElementById("bookmarks");
console.log("(options)Got i2p bookmarks state:", bookmarks_state);
if (bookmarks_state == undefined) {
return false;
}
if (bookmarks_state == 'false') {
if (bookmarks_state.value == "false") {
return false;
}
if (bookmarks_state == 'true') {
if (bookmarks_state.value == "true") {
return true;
}
return false;
}
function getScheme() {
const proxy_scheme = document.querySelector('#proxy_scheme');
console.log('(options)Got i2p proxy scheme:', proxy_scheme.value);
if (proxy_scheme.value == 'HTTP') {
return 'http';
const proxy_scheme = document.querySelector("#proxy_scheme");
console.log("(options)Got i2p proxy scheme:", proxy_scheme.value);
if (proxy_scheme.value == "HTTP") {
return "http";
}
if (proxy_scheme.value == 'SOCKS') {
return 'socks';
if (proxy_scheme.value == "SOCKS") {
return "socks";
}
if (proxy_scheme.value == 'http') return 'http';
if (proxy_scheme.value == 'socks') return 'socks';
else return 'http';
if (proxy_scheme.value == "http") return "http";
if (proxy_scheme.value == "socks") return "socks";
else return "http";
}
function getHost() {
proxy_host = document.getElementById('host').value;
console.log('(options)Got i2p proxy host:', proxy_host);
proxy_host = document.getElementById("host").value;
console.log("(options)Got i2p proxy host:", proxy_host);
if (proxy_host == undefined) {
return '127.0.0.1';
return "127.0.0.1";
}
return proxy_host;
}
function getPort() {
proxy_port = document.getElementById('port').value;
console.log('(options)Got i2p proxy port:', proxy_port);
proxy_port = document.getElementById("port").value;
console.log("(options)Got i2p proxy port:", proxy_port);
if (proxy_port == undefined) {
return '4444';
return "4444";
}
return proxy_port;
}
function getControlHost() {
control_host = document.getElementById('controlhost').value;
console.log('(options)Got i2p control host:', control_host);
control_host = document.getElementById("controlhost").value;
console.log("(options)Got i2p control host:", control_host);
if (control_host == undefined) {
return '127.0.0.1';
return "127.0.0.1";
}
return control_host;
}
function getControlPort() {
control_port = document.getElementById('controlport').value;
console.log('(options)Got i2p control port:', control_port);
control_port = document.getElementById("controlport").value;
console.log("(options)Got i2p control port:", control_port);
if (control_port == undefined) {
return '4444';
return "4444";
}
return control_port;
}
function getRPCHost() {
rpc_host = document.getElementById('rpchost').value;
console.log('(options)Got i2pcontrol rpc host:', rpc_host);
rpc_host = document.getElementById("rpchost").value;
console.log("(options)Got i2pcontrol rpc host:", rpc_host);
if (rpc_host == undefined) {
return '127.0.0.1';
return "127.0.0.1";
}
return rpc_host;
}
function getRPCPort() {
rpc_port = document.getElementById('rpcport').value;
console.log('(options)Got i2pcontrol rpc port:', rpc_port);
rpc_port = document.getElementById("rpcport").value;
console.log("(options)Got i2pcontrol rpc port:", rpc_port);
if (rpc_port == undefined) {
return '7657';
return "7657";
}
return rpc_port;
}
function getRPCPath() {
rpc_path = document.getElementById('rpcpath').value;
console.log('(options)Got i2pcontrol rpc path:', rpc_path);
rpc_path = document.getElementById("rpcpath").value;
console.log("(options)Got i2pcontrol rpc path:", rpc_path);
if (rpc_path == undefined) {
return 'jsonrpc';
return "jsonrpc";
}
return rpc_path;
}
function getRPCPass() {
rpc_pass = document.getElementById('rpcpass').value;
console.log('(options)Got i2pcontrol rpc password:');
rpc_pass = document.getElementById("rpcpass").value;
console.log("(options)Got i2pcontrol rpc password:");
if (rpc_pass == undefined) {
return 'itoopie';
return "itoopie";
}
return rpc_pass;
}
function getBTRPCHost() {
bt_rpc_host = document.getElementById('btrpchost').value;
console.log('(options)Got torrent rpc host:', bt_rpc_host);
bt_rpc_host = document.getElementById("btrpchost").value;
console.log("(options)Got torrent rpc host:", bt_rpc_host);
if (bt_rpc_host == undefined) {
return '127.0.0.1';
return "127.0.0.1";
}
return bt_rpc_host;
}
function getBTRPCPort() {
bt_rpc_port = document.getElementById('btrpcport').value;
console.log('(options)Got torrent rpc port:', bt_rpc_port);
bt_rpc_port = document.getElementById("btrpcport").value;
console.log("(options)Got torrent rpc port:", bt_rpc_port);
if (bt_rpc_port == undefined) {
return '7657';
return "7657";
}
return bt_rpc_port;
}
function getBTRPCPath() {
bt_rpc_path = document.getElementById('btrpcpath').value;
console.log('(options)Got torrent rpc path:', bt_rpc_path);
bt_rpc_path = document.getElementById("btrpcpath").value;
console.log("(options)Got torrent rpc path:", bt_rpc_path);
if (bt_rpc_path == undefined) {
return 'transmission/rpc';
return "transmission/rpc";
}
return bt_rpc_path;
}
function getBTRPCPass() {
bt_rpc_pass = document.getElementById('btrpcpass').value;
console.log('(options)Got torrent rpc password:');
bt_rpc_pass = document.getElementById("btrpcpass").value;
console.log("(options)Got torrent rpc password:");
if (bt_rpc_pass == undefined) {
return 'itoopie';
return "itoopie";
}
return bt_rpc_pass;
}
@@ -173,88 +173,88 @@ function getBTRPCPass() {
function checkStoredSettings(storedSettings) {
function gotProxyInfo(info) {
let defaultSettings = {};
let host = info.value.http.split(':')[0];
let port = info.value.http.split(':')[1];
let host = info.value.http.split(":")[0];
let port = info.value.http.split(":")[1];
if (port != 7644) {
port = undefined;
}
console.log('(options)proxy', "'" + host + "'", ':', port);
if (!storedSettings['bookmarks_state'])
defaultSettings['bookmarks_state'] = false;
else defaultSettings['bookmarks_state'] = storedSettings['bookmarks_state'];
if (!storedSettings['proxy_scheme'])
defaultSettings['proxy_scheme'] = 'http';
else defaultSettings['proxy_scheme'] = storedSettings['proxy_scheme'];
if (!storedSettings['proxy_host']) {
if (host == '') defaultSettings['proxy_host'] = '127.0.0.1';
else defaultSettings['proxy_host'] = host;
} else defaultSettings['proxy_host'] = storedSettings['proxy_host'];
console.log("(options)proxy", "'" + host + "'", ":", port);
if (!storedSettings["bookmarks_state"])
defaultSettings["bookmarks_state"] = false;
else defaultSettings["bookmarks_state"] = storedSettings["bookmarks_state"];
if (!storedSettings["proxy_scheme"])
defaultSettings["proxy_scheme"] = "http";
else defaultSettings["proxy_scheme"] = storedSettings["proxy_scheme"];
if (!storedSettings["proxy_host"]) {
if (host == "") defaultSettings["proxy_host"] = "127.0.0.1";
else defaultSettings["proxy_host"] = host;
} else defaultSettings["proxy_host"] = storedSettings["proxy_host"];
if (!storedSettings['proxy_port']) {
if (port == undefined) defaultSettings['proxy_port'] = 4444;
else if (port == 7644) defaultSettings['proxy_port'] = port;
else defaultSettings['proxy_port'] = 4444;
} else defaultSettings['proxy_port'] = storedSettings.proxy_port;
if (!storedSettings["proxy_port"]) {
if (port == undefined) defaultSettings["proxy_port"] = 4444;
else if (port == 7644) defaultSettings["proxy_port"] = port;
else defaultSettings["proxy_port"] = 4444;
} else defaultSettings["proxy_port"] = storedSettings.proxy_port;
if (!storedSettings['control_host']) {
if (host == '') defaultSettings['control_host'] = '127.0.0.1';
else defaultSettings['control_host'] = host;
} else defaultSettings['control_host'] = storedSettings.control_host;
if (!storedSettings["control_host"]) {
if (host == "") defaultSettings["control_host"] = "127.0.0.1";
else defaultSettings["control_host"] = host;
} else defaultSettings["control_host"] = storedSettings.control_host;
if (!storedSettings['control_port']) {
defaultSettings['control_port'] = 7657;
} else defaultSettings['control_port'] = storedSettings.control_port;
if (!storedSettings["control_port"]) {
defaultSettings["control_port"] = 7657;
} else defaultSettings["control_port"] = storedSettings.control_port;
if (!storedSettings['rpc_host']) {
if (host == '') defaultSettings['rpc_host'] = '127.0.0.1';
else defaultSettings['rpc_host'] = host;
} else defaultSettings['rpc_host'] = storedSettings.rpc_host;
if (!storedSettings["rpc_host"]) {
if (host == "") defaultSettings["rpc_host"] = "127.0.0.1";
else defaultSettings["rpc_host"] = host;
} else defaultSettings["rpc_host"] = storedSettings.rpc_host;
if (!storedSettings['rpc_port']) {
defaultSettings['rpc_port'] = 7657;
} else defaultSettings['rpc_port'] = storedSettings.rpc_port;
if (!storedSettings["rpc_port"]) {
defaultSettings["rpc_port"] = 7657;
} else defaultSettings["rpc_port"] = storedSettings.rpc_port;
if (!storedSettings['rpc_path']) {
defaultSettings['rpc_path'] = 'jsonrpc';
} else defaultSettings['rpc_path'] = storedSettings.rpc_path;
if (!storedSettings["rpc_path"]) {
defaultSettings["rpc_path"] = "jsonrpc";
} else defaultSettings["rpc_path"] = storedSettings.rpc_path;
if (!storedSettings['rpc_pass']) {
defaultSettings['rpc_pass'] = 'itoopie';
} else defaultSettings['rpc_pass'] = storedSettings.rpc_pass;
if (!storedSettings["rpc_pass"]) {
defaultSettings["rpc_pass"] = "itoopie";
} else defaultSettings["rpc_pass"] = storedSettings.rpc_pass;
if (!storedSettings['bt_rpc_host']) {
if (host == '') defaultSettings['bt_rpc_host'] = '127.0.0.1';
else defaultSettings['bt_rpc_host'] = host;
} else defaultSettings['bt_rpc_host'] = storedSettings.bt_rpc_host;
if (!storedSettings["bt_rpc_host"]) {
if (host == "") defaultSettings["bt_rpc_host"] = "127.0.0.1";
else defaultSettings["bt_rpc_host"] = host;
} else defaultSettings["bt_rpc_host"] = storedSettings.bt_rpc_host;
if (!storedSettings['bt_rpc_port']) {
defaultSettings['bt_rpc_port'] = 7657;
} else defaultSettings['bt_rpc_port'] = storedSettings.bt_rpc_port;
if (!storedSettings["bt_rpc_port"]) {
defaultSettings["bt_rpc_port"] = 7657;
} else defaultSettings["bt_rpc_port"] = storedSettings.bt_rpc_port;
if (!storedSettings['bt_rpc_path']) {
defaultSettings['bt_rpc_path'] = 'transmission/';
} else defaultSettings['bt_rpc_path'] = storedSettings.bt_rpc_path;
if (!storedSettings["bt_rpc_path"]) {
defaultSettings["bt_rpc_path"] = "transmission/";
} else defaultSettings["bt_rpc_path"] = storedSettings.bt_rpc_path;
if (!storedSettings['bt_rpc_pass']) {
defaultSettings['bt_rpc_pass'] = 'transmission';
} else defaultSettings['bt_rpc_pass'] = storedSettings.bt_rpc_pass;
if (!storedSettings["bt_rpc_pass"]) {
defaultSettings["bt_rpc_pass"] = "transmission";
} else defaultSettings["bt_rpc_pass"] = storedSettings.bt_rpc_pass;
console.log('(options)(browserinfo) NATIVE PROXYSETTINGS', info.value);
defaultSettings['base_url'] =
'http://' +
defaultSettings['bt_rpc_host'] +
':' +
defaultSettings['bt_rpc_port'] +
'/' +
defaultSettings['bt_rpc_path'];
console.log("(options)(browserinfo) NATIVE PROXYSETTINGS", info.value);
defaultSettings["base_url"] =
"http://" +
defaultSettings["bt_rpc_host"] +
":" +
defaultSettings["bt_rpc_port"] +
"/" +
defaultSettings["bt_rpc_path"];
console.log(
'(options)',
defaultSettings['proxy_scheme'],
defaultSettings['proxy_host'],
defaultSettings['proxy_port'],
defaultSettings['control_host'],
defaultSettings['control_port'],
defaultSettings['base_url']
"(options)",
defaultSettings["proxy_scheme"],
defaultSettings["proxy_host"],
defaultSettings["proxy_port"],
defaultSettings["control_host"],
defaultSettings["control_port"],
defaultSettings["base_url"]
);
chrome.storage.local.set(defaultSettings);
@@ -266,75 +266,75 @@ function checkStoredSettings(storedSettings) {
function checkAndroidStoredSettings(storedSettings) {
let defaultSettings = {};
let host = '';
let port = '';
if (!storedSettings['bookmarks_state'])
defaultSettings['bookmarks_state'] = false;
else defaultSettings['bookmarks_state'] = storedSettings['bookmarks_state'];
if (!storedSettings['proxy_scheme']) defaultSettings['proxy_scheme'] = 'http';
else defaultSettings['proxy_scheme'] = storedSettings['proxy_scheme'];
if (!storedSettings['proxy_host']) {
if (host == '') defaultSettings['proxy_host'] = '127.0.0.1';
else defaultSettings['proxy_host'] = host;
} else defaultSettings['proxy_host'] = storedSettings['proxy_host'];
let host = "";
let port = "";
if (!storedSettings["bookmarks_state"])
defaultSettings["bookmarks_state"] = false;
else defaultSettings["bookmarks_state"] = storedSettings["bookmarks_state"];
if (!storedSettings["proxy_scheme"]) defaultSettings["proxy_scheme"] = "http";
else defaultSettings["proxy_scheme"] = storedSettings["proxy_scheme"];
if (!storedSettings["proxy_host"]) {
if (host == "") defaultSettings["proxy_host"] = "127.0.0.1";
else defaultSettings["proxy_host"] = host;
} else defaultSettings["proxy_host"] = storedSettings["proxy_host"];
if (!storedSettings['proxy_port']) {
if (port == undefined) defaultSettings['proxy_port'] = 4444;
else if (port == 7644) defaultSettings['proxy_port'] = port;
else defaultSettings['proxy_port'] = 4444;
} else defaultSettings['proxy_port'] = storedSettings.proxy_port;
if (!storedSettings["proxy_port"]) {
if (port == undefined) defaultSettings["proxy_port"] = 4444;
else if (port == 7644) defaultSettings["proxy_port"] = port;
else defaultSettings["proxy_port"] = 4444;
} else defaultSettings["proxy_port"] = storedSettings.proxy_port;
if (!storedSettings['control_host']) {
if (host == '') defaultSettings['control_host'] = '127.0.0.1';
else defaultSettings['control_host'] = host;
} else defaultSettings['control_host'] = storedSettings.control_host;
if (!storedSettings["control_host"]) {
if (host == "") defaultSettings["control_host"] = "127.0.0.1";
else defaultSettings["control_host"] = host;
} else defaultSettings["control_host"] = storedSettings.control_host;
if (!storedSettings['control_port']) {
defaultSettings['control_port'] = 7657;
} else defaultSettings['control_port'] = storedSettings.control_port;
if (!storedSettings["control_port"]) {
defaultSettings["control_port"] = 7657;
} else defaultSettings["control_port"] = storedSettings.control_port;
if (!storedSettings['rpc_host']) {
if (host == '') defaultSettings['rpc_host'] = '127.0.0.1';
else defaultSettings['rpc_host'] = host;
} else defaultSettings['rpc_host'] = storedSettings.rpc_host;
if (!storedSettings["rpc_host"]) {
if (host == "") defaultSettings["rpc_host"] = "127.0.0.1";
else defaultSettings["rpc_host"] = host;
} else defaultSettings["rpc_host"] = storedSettings.rpc_host;
if (!storedSettings['rpc_port']) {
defaultSettings['rpc_port'] = 7657;
} else defaultSettings['rpc_port'] = storedSettings.rpc_port;
if (!storedSettings["rpc_port"]) {
defaultSettings["rpc_port"] = 7657;
} else defaultSettings["rpc_port"] = storedSettings.rpc_port;
if (!storedSettings['rpc_path']) {
defaultSettings['rpc_path'] = 'jsonrpc';
} else defaultSettings['rpc_path'] = storedSettings.rpc_path;
if (!storedSettings["rpc_path"]) {
defaultSettings["rpc_path"] = "jsonrpc";
} else defaultSettings["rpc_path"] = storedSettings.rpc_path;
if (!storedSettings['rpc_pass']) {
defaultSettings['rpc_pass'] = 'itoopie';
} else defaultSettings['rpc_pass'] = storedSettings.rpc_pass;
if (!storedSettings["rpc_pass"]) {
defaultSettings["rpc_pass"] = "itoopie";
} else defaultSettings["rpc_pass"] = storedSettings.rpc_pass;
if (!storedSettings['bt_rpc_host']) {
if (host == '') defaultSettings['bt_rpc_host'] = '127.0.0.1';
else defaultSettings['bt_rpc_host'] = host;
} else defaultSettings['bt_rpc_host'] = storedSettings.bt_rpc_host;
if (!storedSettings["bt_rpc_host"]) {
if (host == "") defaultSettings["bt_rpc_host"] = "127.0.0.1";
else defaultSettings["bt_rpc_host"] = host;
} else defaultSettings["bt_rpc_host"] = storedSettings.bt_rpc_host;
if (!storedSettings['bt_rpc_port']) {
defaultSettings['bt_rpc_port'] = 7657;
} else defaultSettings['bt_rpc_port'] = storedSettings.bt_rpc_port;
if (!storedSettings["bt_rpc_port"]) {
defaultSettings["bt_rpc_port"] = 7657;
} else defaultSettings["bt_rpc_port"] = storedSettings.bt_rpc_port;
if (!storedSettings['bt_rpc_path']) {
defaultSettings['bt_rpc_path'] = 'transmission/rpc';
} else defaultSettings['bt_rpc_path'] = storedSettings.bt_rpc_path;
if (!storedSettings["bt_rpc_path"]) {
defaultSettings["bt_rpc_path"] = "transmission/rpc";
} else defaultSettings["bt_rpc_path"] = storedSettings.bt_rpc_path;
if (!storedSettings['bt_rpc_pass']) {
defaultSettings['bt_rpc_pass'] = 'transmission';
} else defaultSettings['bt_rpc_pass'] = storedSettings.bt_rpc_pass;
if (!storedSettings["bt_rpc_pass"]) {
defaultSettings["bt_rpc_pass"] = "transmission";
} else defaultSettings["bt_rpc_pass"] = storedSettings.bt_rpc_pass;
console.log('(options)(browserinfo) NATIVE PROXYSETTINGS', info.value);
console.log("(options)(browserinfo) NATIVE PROXYSETTINGS", info.value);
console.log(
'(options)',
defaultSettings['proxy_scheme'],
defaultSettings['proxy_host'],
defaultSettings['proxy_port'],
defaultSettings['control_host'],
defaultSettings['control_port']
"(options)",
defaultSettings["proxy_scheme"],
defaultSettings["proxy_host"],
defaultSettings["proxy_port"],
defaultSettings["control_host"],
defaultSettings["control_port"]
);
chrome.storage.local.set(defaultSettings);
return defaultSettings;
@@ -346,87 +346,87 @@ function onError(e) {
function storeSettings() {
let storableSettings = {};
storableSettings['bookmarks_state'] = getBookmarksCreated();
storableSettings['proxy_scheme'] = getScheme();
storableSettings['proxy_host'] = getHost();
storableSettings['proxy_port'] = getPort();
storableSettings['control_host'] = getControlHost();
storableSettings['control_port'] = getControlPort();
storableSettings['rpc_host'] = getRPCHost();
storableSettings['rpc_port'] = getRPCPort();
storableSettings['rpc_path'] = getRPCPath();
storableSettings['rpc_pass'] = getRPCPass();
storableSettings['bt_rpc_host'] = getBTRPCHost();
storableSettings['bt_rpc_port'] = getBTRPCPort();
storableSettings['bt_rpc_path'] = getBTRPCPath();
storableSettings['bt_rpc_pass'] = getBTRPCPass();
storableSettings['base_url'] =
'http://' + bt_rpc_host + ':' + bt_rpc_port + '/' + bt_rpc_path;
console.log('storing', storableSettings);
storableSettings["bookmarks_state"] = getBookmarksCreated();
storableSettings["proxy_scheme"] = getScheme();
storableSettings["proxy_host"] = getHost();
storableSettings["proxy_port"] = getPort();
storableSettings["control_host"] = getControlHost();
storableSettings["control_port"] = getControlPort();
storableSettings["rpc_host"] = getRPCHost();
storableSettings["rpc_port"] = getRPCPort();
storableSettings["rpc_path"] = getRPCPath();
storableSettings["rpc_pass"] = getRPCPass();
storableSettings["bt_rpc_host"] = getBTRPCHost();
storableSettings["bt_rpc_port"] = getBTRPCPort();
storableSettings["bt_rpc_path"] = getBTRPCPath();
storableSettings["bt_rpc_pass"] = getBTRPCPass();
storableSettings["base_url"] =
"http://" + bt_rpc_host + ":" + bt_rpc_port + "/" + bt_rpc_path;
console.log("storing", storableSettings);
chrome.storage.local.set(storableSettings);
}
function updateUI(restoredSettings) {
const selectList = document.querySelector('#proxy_scheme');
const selectList = document.querySelector("#proxy_scheme");
if (selectList != undefined) selectList.value = restoredSettings.proxy_scheme;
//console.log("(options)showing proxy scheme:", selectList.value);
console.log(restoredSettings);
const bms = document.getElementById('bookmarksState');
const bms = document.getElementById("bookmarksState");
if (bms != undefined) bms.checked = restoredSettings.bookmarks_state;
const hostitem = document.getElementById('host');
const hostitem = document.getElementById("host");
if (hostitem != undefined) hostitem.value = restoredSettings.proxy_host;
//console.log("(options)showing proxy host:", hostitem.value);
const portitem = document.getElementById('port');
const portitem = document.getElementById("port");
if (portitem != undefined) portitem.value = restoredSettings.proxy_port;
//console.log("(options)showing proxy port:", portitem.value);
const controlhostitem = document.getElementById('controlhost');
const controlhostitem = document.getElementById("controlhost");
if (controlhostitem == undefined)
controlhostitem.value = restoredSettings.control_host;
//console.log("(options)showing control host:", controlhostitem.value);
const controlportitem = document.getElementById('controlport');
const controlportitem = document.getElementById("controlport");
if (controlportitem == undefined)
controlportitem.value = restoredSettings.control_port;
//console.log("(options)showing control port:", controlportitem.value);
const rpchostitem = document.getElementById('rpchost');
const rpchostitem = document.getElementById("rpchost");
if (rpchostitem != undefined) rpchostitem.value = restoredSettings.rpc_host;
//console.log("(options)showing rpc host:", rpchostitem.value);
const rpcportitem = document.getElementById('rpcport');
const rpcportitem = document.getElementById("rpcport");
if (rpcportitem != undefined) rpcportitem.value = restoredSettings.rpc_port;
//console.log("(options)showing rpc port:", rpcportitem.value);
const rpcpathitem = document.getElementById('rpcpath');
const rpcpathitem = document.getElementById("rpcpath");
if (rpcpathitem != undefined) rpcpathitem.value = restoredSettings.rpc_path;
//console.log("(options)showing rpc path:", rpcpathitem.value);
const rpcpassitem = document.getElementById('rpcpass');
const rpcpassitem = document.getElementById("rpcpass");
if (rpcpassitem != undefined) rpcpassitem.value = restoredSettings.rpc_pass;
//console.log("(options)showing rpc pass:");
const btrpchostitem = document.getElementById('btrpchost');
const btrpchostitem = document.getElementById("btrpchost");
if (btrpchostitem != undefined)
btrpchostitem.value = restoredSettings.rpc_host;
btrpchostitem.value = restoredSettings.bt_rpc_host;
//console.log("(options)showing bt rpc host:", btrpchostitem.value);
const btrpcportitem = document.getElementById('btrpcport');
const btrpcportitem = document.getElementById("btrpcport");
if (btrpcportitem != undefined)
btrpcportitem.value = restoredSettings.rpc_port;
btrpcportitem.value = restoredSettings.bt_rpc_port;
//console.log("(options)showing rbt pc port:", rpcportitem.value);
const btrpcpathitem = document.getElementById('btrpcpath');
const btrpcpathitem = document.getElementById("btrpcpath");
if (btrpcpathitem != undefined)
btrpcpathitem.value = restoredSettings.rpc_path;
btrpcpathitem.value = restoredSettings.bt_rpc_path;
//console.log("(options)showing bt rpc path:", btrpcpathitem.value);
const btrpcpassitem = document.getElementById('btrpcpass');
const btrpcpassitem = document.getElementById("btrpcpass");
if (btrpcpassitem != undefined)
btrpcpassitem.value = restoredSettings.rpc_pass;
btrpcpassitem.value = restoredSettings.bt_rpc_pass;
//console.log("(options)showing bt rpc pass:");
SetBookButton();
@@ -444,18 +444,18 @@ function onError(e) {
var gettingInfo = browser.runtime.getPlatformInfo();
gettingInfo.then((got) => {
if (got.os != 'android') {
chrome.storage.local.get(function(got) {
if (got.os != "android") {
chrome.storage.local.get(function (got) {
let settings = checkStoredSettings(got);
settings.then(updateUI);
});
} else {
chrome.storage.local.get(function(got) {
chrome.storage.local.get(function (got) {
checkAndroidStoredSettings(got);
updateUI(got);
});
}
});
const saveButton = document.querySelector('#save-button');
saveButton.addEventListener('click', storeSettings);
const saveButton = document.querySelector("#save-button");
saveButton.addEventListener("click", storeSettings);

View File

@@ -2,19 +2,19 @@ var android = false;
var gettingInfo = browser.runtime.getPlatformInfo();
gettingInfo.then((got) => {
if (got.os == 'android') {
console.log('Running in Android detected');
if (got.os == "android") {
console.log("Running in Android detected");
android = true;
return true;
} else {
console.log('Running in Desktop detected');
console.log("Running in Desktop detected");
android = false;
return false;
}
});
function isDroid() {
console.log('android?', android);
console.log("android?", android);
if (android == undefined) {
return false;
}

View File

@@ -1,10 +1,10 @@
var titlepref = chrome.i18n.getMessage('titlePreface');
var titlepref = chrome.i18n.getMessage("titlePreface");
function onSet(result) {
if (result) {
console.log('->: Value was updated');
console.log("->: Value was updated");
} else {
console.log('-X: Value was not updated');
console.log("-X: Value was not updated");
}
}
@@ -14,7 +14,7 @@ function disableHyperlinkAuditing() {
var setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
value: false,
});
console.log('Disabling hyperlink auditing/val=', {
console.log("Disabling hyperlink auditing/val=", {
value: false,
});
setting.then(onSet);
@@ -23,7 +23,7 @@ function disableHyperlinkAuditing() {
// UNINSTALL ONLY
function enableHyperlinkAuditing() {
var setting = browser.privacy.websites.hyperlinkAuditingEnabled.clear();
console.log('Disabling hyperlink auditing/val=', {
console.log("Disabling hyperlink auditing/val=", {
value: false,
});
setting.then(onSet);
@@ -34,7 +34,7 @@ function enableFirstPartyIsolation() {
var setting = browser.privacy.websites.firstPartyIsolate.set({
value: true,
});
console.log('Enabling first party isolation/val=', {
console.log("Enabling first party isolation/val=", {
value: true,
});
setting.then(onSet);
@@ -43,7 +43,7 @@ function enableFirstPartyIsolation() {
// UNINSTALL ONLY
function disableFirstPartyIsolation() {
var setting = browser.privacy.websites.firstPartyIsolate.clear();
console.log('Enabling first party isolation/val=', {
console.log("Enabling first party isolation/val=", {
value: true,
});
setting.then(onSet);
@@ -57,13 +57,13 @@ function disableEvilCookies() {
getting.then((got) => {
var setting = browser.privacy.websites.cookieConfig.set({
value: {
behavior: 'reject_third_party',
behavior: "reject_third_party",
nonPersistentCookies: got.value.nonPersistentCookies,
},
});
console.log('Setting cookie behavior/val=', {
console.log("Setting cookie behavior/val=", {
value: {
behavior: 'reject_third_party',
behavior: "reject_third_party",
nonPersistentCookies: got.value.nonPersistentCookies,
},
});
@@ -421,33 +421,26 @@ function i2pHostName(url) {
if (u.host.endsWith(".i2p")) {
hostname = u.host;
} else if (url.includes("=")) {
console.log("(hosts) scrub 1", url);
if (url.includes(".i2p")) {
lsit = url.split("=");
console.log("(hosts) scrub 2", hostname);
for (let item in lsit) {
var items = lsit[item].split(`\ % `); //"\%")
for (let p in items) {
if (items[p].includes(".i2p")) {
hostname = items[p].replace("3D", 1);
}
console.log("(hosts) scrub 3", hostname);
break;
}
if (hostname != "") {
console.log("(hosts) scrub 4", hostname);
break;
}
}
}
} else if (url.indexOf("://") > -1) {
hostname = url.split("/")[2];
console.log("(hosts) scrub 5", hostname);
} else {
hostname = url.split("/")[0];
console.log("(hosts) scrub 6", hostname);
}
console.log("(hosts) scrub 7", hostname);
return hostname;
}

166
proxy.js
View File

@@ -1,10 +1,10 @@
var titlepref = chrome.i18n.getMessage('titlePreface');
var webpref = chrome.i18n.getMessage('webPreface');
var ircpref = chrome.i18n.getMessage('ircPreface');
var torrentpref = chrome.i18n.getMessage('torrentPreface');
var routerpref = chrome.i18n.getMessage('routerPreface');
var routerprefpriv = chrome.i18n.getMessage('routerPrefacePrivate');
var ircpref = chrome.i18n.getMessage('ircPreface');
var titlepref = chrome.i18n.getMessage("titlePreface");
var webpref = chrome.i18n.getMessage("webPreface");
var ircpref = chrome.i18n.getMessage("ircPreface");
var torrentpref = chrome.i18n.getMessage("torrentPreface");
var routerpref = chrome.i18n.getMessage("routerPreface");
var routerprefpriv = chrome.i18n.getMessage("routerPrefacePrivate");
var ircpref = chrome.i18n.getMessage("ircPreface");
browser.privacy.network.peerConnectionEnabled.set({
value: true,
@@ -14,17 +14,17 @@ chrome.privacy.network.networkPredictionEnabled.set({
value: false,
});
chrome.privacy.network.webRTCIPHandlingPolicy.set({
value: 'disable_non_proxied_udp',
value: "disable_non_proxied_udp",
});
console.log('Disabled unproxied UDP.');
console.log("Disabled unproxied UDP.");
function shouldProxyRequest(requestInfo) {
return requestInfo.parentFrameId != -1;
}
var handleContextProxyRequest = async function(requestDetails) {
var handleContextProxyRequest = async function (requestDetails) {
function ircProxy() {
if (!requestDetails.url.includes('7669')) {
if (!requestDetails.url.includes("7669")) {
proxy = {
type: getScheme(),
host: getHost(),
@@ -32,22 +32,22 @@ var handleContextProxyRequest = async function(requestDetails) {
};
return proxy;
}
if (requestDetails.url.includes(':7669')) {
if (requestDetails.url.includes(":7669")) {
proxy = null;
return proxy;
}
}
function btProxy() {
proxy = routerProxy();
if (requestDetails.url.includes(':7662')) {
if (requestDetails.url.includes(":7662")) {
proxy = null;
return proxy;
}
console.log('(bt proxy)', proxy);
console.log("(bt proxy)", proxy);
return proxy;
}
function mainProxy() {
console.log('(proxy) mainproxy 0');
console.log("(proxy) mainproxy 0");
proxy = {
type: getScheme(),
host: getHost(),
@@ -56,11 +56,11 @@ var handleContextProxyRequest = async function(requestDetails) {
let url = new URL(requestDetails.url);
if (
requestDetails.url.startsWith(
'http://' + getHost() + ':' + getConsolePort() + '/i2psnark/'
"http://" + getHost() + ":" + getConsolePort() + "/i2psnark/"
)
) {
//+url.host)) {
console.log('(proxy) mainproxy 2', url);
console.log("(proxy) mainproxy 2", url);
proxy = null;
}
return proxy;
@@ -79,20 +79,20 @@ var handleContextProxyRequest = async function(requestDetails) {
}
}
try {
var handleProxyRequest = function(context) {
var handleProxyRequest = function (context) {
proxy = {
type: getScheme(),
host: getHost(),
port: getPort(),
};
if (context == 'firefox-default' || context == 'firefox-private') {
if (context == "firefox-default" || context == "firefox-private") {
proxy = null;
return proxy;
}
if (context != undefined) {
console.log('(proxy), context', context);
console.log("(proxy), context", context);
proxy = routerProxy();
if (context.name == ircpref) {
proxy = ircProxy();
@@ -111,44 +111,48 @@ var handleContextProxyRequest = async function(requestDetails) {
} else {
if (!routerHost(requestDetails.url)) {
if (localHost(requestDetails.url)) {
if (requestDetails.url.includes(':7669')) {
if (requestDetails.url.includes(":7669")) {
proxy = null;
} else if (requestDetails.url.includes(':7662')) {
} else if (requestDetails.url.includes(":7662")) {
proxy = null;
} else {
console.log(
'(proxy) non-routerconsole localhost url, will not interfere',
"(proxy) non-routerconsole localhost url, will not interfere",
requestDetails.url
);
}
}
} else if (i2pHost(requestDetails.url)) {
}
if (i2pHost(requestDetails.url)) {
proxy = {
type: getScheme(),
host: getHost(),
port: getPort(),
};
}
if (requestDetails.url.includes("rpc")) {
console.log("(proxy for rpc url)", rpc);
}
//var tab = tabGet(requestDetails.tabId);
//tab.then(handleTabRequest,)
return proxy;
}
};
var contextGet = async function(tabInfo) {
var contextGet = async function (tabInfo) {
try {
context = await browser.contextualIdentities.get(tabInfo.cookieStoreId);
return context;
} catch (error) {
console.error(error);
return 'firefox-default';
return "firefox-default";
}
};
var tabGet = async function(tabId) {
var tabGet = async function (tabId) {
try {
let tabInfo = await browser.tabs.get(tabId);
return tabInfo;
} catch (error) {
console.log('(proxy)Tab error', error);
console.log("(proxy)Tab error", error);
}
};
if (proxyHost(requestDetails.url)) {
@@ -159,7 +163,7 @@ var handleContextProxyRequest = async function(requestDetails) {
};
return proxy;
}
if (requestDetails.originUrl == browser.runtime.getURL('security.html')) {
if (requestDetails.originUrl == browser.runtime.getURL("security.html")) {
proxy = {
type: getScheme(),
host: getHost(),
@@ -168,13 +172,13 @@ var handleContextProxyRequest = async function(requestDetails) {
return proxy;
}
if (
requestDetails.cookieStoreId == 'firefox-default' ||
requestDetails.cookieStoreId == 'firefox-private'
requestDetails.cookieStoreId == "firefox-default" ||
requestDetails.cookieStoreId == "firefox-private"
) {
return browser.proxy.settings.get({});
}
if (requestDetails.tabId > 0) {
if (requestDetails.url.includes('MuWire')) {
if (requestDetails.url.includes("MuWire")) {
return;
}
if (proxyHost(requestDetails.url)) {
@@ -203,64 +207,72 @@ var handleContextProxyRequest = async function(requestDetails) {
/*proxy = {};
console.log("(proxy)Returning unset Proxy", proxy);
return proxy;*/
} else {
proxy = {
type: getScheme(),
host: getHost(),
port: getPort(),
};
console.log("(proxy for rpc url)", rpc);
return proxy;
}
} catch (error) {
console.log('(proxy)Not using I2P Proxy.', error);
console.log("(proxy)Not using I2P Proxy.", error);
}
}
};
function SetupSettings() {
console.log('Initialising Settings');
console.log("Initialising Settings");
function onSetupError() {
console.log('Settings initialization error');
console.log("Settings initialization error");
}
//
function checkSchemeStoredSettings(storedSettings) {
if (storedSettings.proxy_scheme == undefined)
storedSettings.proxy_scheme = 'http';
storedSettings.proxy_scheme = "http";
else proxy_scheme = storedSettings.proxy_scheme;
console.log('Initialising Proxy Scheme', storedSettings.proxy_scheme);
console.log("Initialising Proxy Scheme", storedSettings.proxy_scheme);
setupProxy();
}
var gettingSchemeStoredSettings = browser.storage.local.get('proxy_scheme');
var gettingSchemeStoredSettings = browser.storage.local.get("proxy_scheme");
gettingSchemeStoredSettings.then(checkSchemeStoredSettings, onSetupError);
//
function checkHostStoredSettings(storedSettings) {
if (storedSettings.proxy_host == undefined)
storedSettings.proxy_host = '127.0.0.1';
storedSettings.proxy_host = "127.0.0.1";
else proxy_host = storedSettings.proxy_host;
console.log('Initialising Host', storedSettings.proxy_host);
console.log("Initialising Host", storedSettings.proxy_host);
setupProxy();
}
var gettingHostStoredSettings = browser.storage.local.get('proxy_host');
var gettingHostStoredSettings = browser.storage.local.get("proxy_host");
gettingHostStoredSettings.then(checkHostStoredSettings, onSetupError);
//
function checkPortStoredSettings(storedSettings) {
if (storedSettings.proxy_port == undefined)
storedSettings.proxy_port = '4444';
storedSettings.proxy_port = "4444";
else proxy_port = storedSettings.proxy_port;
console.log('Initialising Port', storedSettings.proxy_port);
console.log("Initialising Port", storedSettings.proxy_port);
setupProxy();
}
var gettingPortStoredSettings = browser.storage.local.get('proxy_port');
var gettingPortStoredSettings = browser.storage.local.get("proxy_port");
gettingPortStoredSettings.then(checkPortStoredSettings, onSetupError);
//
function checkControlHostStoredSettings(storedSettings) {
if (storedSettings.control_host == undefined)
storedSettings.control_host = '127.0.0.1';
storedSettings.control_host = "127.0.0.1";
else control_host = storedSettings.control_host;
console.log('Initialising Control Host', storedSettings.control_host);
console.log("Initialising Control Host", storedSettings.control_host);
setupProxy();
}
var gettingControlHostStoredSettings = browser.storage.local.get(
'control_host'
"control_host"
);
gettingControlHostStoredSettings.then(
checkControlHostStoredSettings,
@@ -270,14 +282,14 @@ function SetupSettings() {
//
function checkControlPortStoredSettings(storedSettings) {
if (storedSettings.control_port == undefined)
storedSettings.control_port = '7657';
storedSettings.control_port = "7657";
else control_port = storedSettings.control_port;
console.log('Initialising Control Port', storedSettings.control_port);
console.log("Initialising Control Port", storedSettings.control_port);
setupProxy();
}
var gettingControlPortStoredSettings = browser.storage.local.get(
'control_port'
"control_port"
);
gettingControlPortStoredSettings.then(
checkControlPortStoredSettings,
@@ -291,28 +303,28 @@ function SetupSettings() {
else disable_history = storedSettings.disable_history;
console.log(
'Initialising Disabled History',
"Initialising Disabled History",
storedSettings.disable_history
);
setupProxy();
}
var gettingHistoryStoredSettings = browser.storage.local.get(
'disable_history'
"disable_history"
);
gettingHistoryStoredSettings.then(checkHistoryStoredSettings, onSetupError);
}
function getScheme() {
if (proxy_scheme == 'HTTP') return 'http';
if (proxy_scheme == 'SOCKS') return 'socks';
if (proxy_scheme == 'http') return 'http';
if (proxy_scheme == 'socks') return 'socks';
else return 'http';
if (proxy_scheme == "HTTP") return "http";
if (proxy_scheme == "SOCKS") return "socks";
if (proxy_scheme == "http") return "http";
if (proxy_scheme == "socks") return "socks";
else return "http";
}
function getHost() {
if (proxy_host == undefined) {
proxy_host = '127.0.0.1';
proxy_host = "127.0.0.1";
}
return proxy_host;
}
@@ -320,8 +332,8 @@ function getHost() {
function getPort() {
if (proxy_port == undefined) {
var scheme = getScheme();
if (scheme == 'socks') proxy_port = '4446';
else proxy_port = '4444';
if (scheme == "socks") proxy_port = "4446";
else proxy_port = "4444";
}
return proxy_port;
}
@@ -329,41 +341,35 @@ function getPort() {
function getConsolePort() {
if (control_port == undefined) {
var scheme = getScheme();
if (scheme == 'socks') proxy_port = '7657';
else control_port = '7657';
if (scheme == "socks") proxy_port = "7657";
else control_port = "7657";
}
return control_port;
}
function setupProxy() {
console.log('Setting up Firefox WebExtension proxy');
console.log("Setting up Firefox WebExtension proxy");
browser.proxy.onRequest.addListener(handleContextProxyRequest, {
urls: ['<all_urls>'],
urls: ["<all_urls>"],
});
console.log('i2p settings created for WebExtension Proxy');
console.log("i2p settings created for WebExtension Proxy");
}
function update() {
console.log('restoring proxy scheme:', proxy_scheme);
console.log('restoring proxy host:', proxy_host);
console.log('restoring proxy port:', proxy_port);
console.log('restoring control host:', control_host);
console.log('restoring control port:', control_port);
console.log("restoring proxy scheme:", proxy_scheme);
console.log("restoring proxy host:", proxy_host);
console.log("restoring proxy port:", proxy_port);
console.log("restoring control host:", control_host);
console.log("restoring control port:", control_port);
}
function updateFromStorage() {
console.log('updating settings from storage');
chrome.storage.local.get(function() {
console.log("updating settings from storage");
chrome.storage.local.get(function () {
SetupSettings();
update();
setupProxy();
});
var gettingInfo = browser.runtime.getPlatformInfo();
gettingInfo.then((got) => {
if (got.os != 'android') {
browser.windows.getAll().then((wins) => wins.forEach(themeWindow));
}
});
}
updateFromStorage();
@@ -374,7 +380,7 @@ setupProxy();
var gettingListenerInfo = browser.runtime.getPlatformInfo();
gettingListenerInfo.then((got) => {
browser.windows.onCreated.addListener(() => {
chrome.storage.local.get(function() {
chrome.storage.local.get(function () {
setupProxy();
});
});

View File

@@ -4,13 +4,51 @@
<link type="text/html" rel="alternate" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases"/>
<link type="application/atom+xml" rel="self" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases.atom"/>
<title>Release notes from I2P-in-Private-Browsing-Mode-Firefox</title>
<updated>2020-12-14T19:47:34Z</updated>
<updated>2020-12-21T23:13:19Z</updated>
<entry>
<id>tag:github.com,2008:Repository/169256012/0.95</id>
<updated>2020-12-21T23:21:35Z</updated>
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.95"/>
<title>0.95</title>
<enclosure url="magnet:?xt=urn:btih:7ec361c3ddc3fb904e369a19cdf4259af94af624" type="application/x-bittorrent" />
<content type="html">&lt;p&gt;A simple plugin for configuring a Firefox based web browser to isolate I2P&lt;br&gt;
Browsing to a single contextual identity, thus creating an I2P in Private&lt;br&gt;
Browsing mode. It requires the use of a pre-installed I2P Router.&lt;br&gt;
i2psetproxy.js (0.95-1) UNRELEASED; urgency=low&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix github &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;763036769&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/102&quot; data-hovercard-type=&quot;issue&quot; data-hovercard-url=&quot;/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/102/hovercard&quot; href=&quot;https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/102&quot;&gt;#102&lt;/a&gt; and &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;763043125&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/103&quot; data-hovercard-type=&quot;issue&quot; data-hovercard-url=&quot;/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/103/hovercard&quot; href=&quot;https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/issues/103&quot;&gt;#103&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-- idk &lt;a href=&quot;mailto:hankhill19580@gmail.com&quot;&gt;hankhill19580@gmail.com&lt;/a&gt; Sat, 21 DEC 2020 6:15:05 -0400&lt;/p&gt;
&lt;p&gt;i2psetproxy.js (0.93-1) UNRELEASED; urgency=low&lt;/p&gt;</content>
<author>
<name>eyedeekay</name>
</author>
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&amp;v=4"/>
</entry>
<entry>
<id>tag:github.com,2008:Repository/169256012/0.93</id>
<updated>2020-12-14T22:20:08Z</updated>
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.93"/>
<title>0.93</title>
<content type="html">&lt;p&gt;A simple plugin for configuring a Firefox based web browser to isolate I2P&lt;br&gt;
Browsing to a single contextual identity, thus creating an I2P in Private&lt;br&gt;
Browsing mode. It requires the use of a pre-installed I2P Router.&lt;br&gt;
i2psetproxy.js (0.93-1) UNRELEASED; urgency=low&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Emergency fix of the first one&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-- idk &lt;a href=&quot;mailto:hankhill19580@gmail.com&quot;&gt;hankhill19580@gmail.com&lt;/a&gt; Sat, 14 DEC 2020 5:18:53 -0400&lt;/p&gt;
&lt;p&gt;i2psetproxy.js (0.91-1) UNRELEASED; urgency=low&lt;/p&gt;</content>
<author>
<name>eyedeekay</name>
</author>
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&amp;v=4"/>
</entry>
<entry>
<id>tag:github.com,2008:Repository/169256012/0.91</id>
<updated>2020-12-14T19:47:59Z</updated>
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.91"/>
<title>0.91</title>
<enclosure url="magnet:?xt=urn:btih:991cc1181d816c20629caef454ebabf14785fbf7" type="application/x-bittorrent" />
<content type="html">&lt;p&gt;A simple plugin for configuring a Firefox based web browser to isolate I2P&lt;br&gt;
Browsing to a single contextual identity, thus creating an I2P in Private&lt;br&gt;
Browsing mode. It requires the use of a pre-installed I2P Router.&lt;br&gt;
@@ -156,43 +194,4 @@ i2psetproxy.js (0.79-1) UNRELEASED; urgency=low&lt;/p&gt;
</author>
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&amp;v=4"/>
</entry>
<entry>
<id>tag:github.com,2008:Repository/169256012/0.75</id>
<updated>2020-06-23T03:22:59Z</updated>
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.75"/>
<title>0.75</title>
<content type="html">&lt;p&gt;A simple plugin for configuring a Firefox based web browser to isolate I2P&lt;br&gt;
Browsing to a single contextual identity, thus creating an I2P in Private&lt;br&gt;
Browsing mode. It requires the use of a pre-installed I2P Router.&lt;br&gt;
i2psetproxy.js (0.75-1) UNRELEASED; urgency=low&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Update bookmarks format&lt;/li&gt;
&lt;li&gt;Deprecate WebRTC State Management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-- idk &lt;a href=&quot;mailto:hankhill19580@gmail.com&quot;&gt;hankhill19580@gmail.com&lt;/a&gt; Mon, 22 JUN 2020 11:22:37 -0400&lt;/p&gt;
&lt;p&gt;i2psetproxy.js (0.73-1) UNRELEASED; urgency=low&lt;/p&gt;</content>
<author>
<name>eyedeekay</name>
</author>
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&amp;v=4"/>
</entry>
<entry>
<id>tag:github.com,2008:Repository/169256012/0.73</id>
<updated>2020-03-24T23:49:45Z</updated>
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.73"/>
<title>0.73</title>
<content type="html">&lt;p&gt;A simple plugin for configuring a Firefox based web browser to isolate I2P&lt;br&gt;
Browsing to a single contextual identity, thus creating an I2P in Private&lt;br&gt;
Browsing mode. It requires the use of a pre-installed I2P Router.&lt;br&gt;
i2psetproxy.js (0.73-1) UNRELEASED; urgency=low&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Fix incomplete bugfix from 0.69 again&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;-- idk &lt;a href=&quot;mailto:hankhill19580@gmail.com&quot;&gt;hankhill19580@gmail.com&lt;/a&gt; Tue, 24 MAR 2020 19:48:14 -0400&lt;/p&gt;
&lt;p&gt;i2psetproxy.js (0.71-1) UNRELEASED; urgency=low&lt;/p&gt;</content>
<author>
<name>eyedeekay</name>
</author>
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&amp;v=4"/>
</entry>
</feed>

View File

@@ -1,7 +1,7 @@
browser.runtime.onMessage.addListener((request) => {
var response = 'no-alt-location';
var response = "no-alt-location";
console.log(request);
if (request.req === 'i2p-location') {
if (request.req === "i2p-location") {
var tag = document.querySelector('meta[http-equiv="i2p-location"]');
if (tag != undefined) {
console.log(tag);
@@ -13,7 +13,7 @@ browser.runtime.onMessage.addListener((request) => {
if (tag) response = tag.content;
}
}
if (request.req === 'i2p-torrentlocation') {
if (request.req === "i2p-torrentlocation") {
var tag = document.querySelector('meta[http-equiv="i2p-torrentlocation"]');
if (tag != undefined) {
console.log(tag);

364
scrub.js
View File

@@ -1,25 +1,25 @@
var titlepref = chrome.i18n.getMessage('titlePreface');
var webpref = chrome.i18n.getMessage('webPreface');
var routerpref = chrome.i18n.getMessage('routerPreface');
var mailpref = chrome.i18n.getMessage('mailPreface');
var torrentpref = chrome.i18n.getMessage('torrentPreface');
var tunnelpref = chrome.i18n.getMessage('i2ptunnelPreface');
var ircpref = chrome.i18n.getMessage('ircPreface');
var extensionpref = chrome.i18n.getMessage('extensionPreface');
var muwirepref = chrome.i18n.getMessage('muwirePreface');
var botepref = chrome.i18n.getMessage('botePreface');
var titlepref = chrome.i18n.getMessage("titlePreface");
var webpref = chrome.i18n.getMessage("webPreface");
var routerpref = chrome.i18n.getMessage("routerPreface");
var mailpref = chrome.i18n.getMessage("mailPreface");
var torrentpref = chrome.i18n.getMessage("torrentPreface");
var tunnelpref = chrome.i18n.getMessage("i2ptunnelPreface");
var ircpref = chrome.i18n.getMessage("ircPreface");
var extensionpref = chrome.i18n.getMessage("extensionPreface");
var muwirepref = chrome.i18n.getMessage("muwirePreface");
var botepref = chrome.i18n.getMessage("botePreface");
var contextScrub = async function(requestDetails) {
var contextScrub = async function (requestDetails) {
function onHeaderError() {
console.log('Header scrub error');
console.log("Header scrub error");
}
try {
var headerScrub = function(context) {
var ua = 'MYOB/6.66 (AN/ON)';
var headerScrub = function (context) {
var ua = "MYOB/6.66 (AN/ON)";
if (!context) {
} else if (context.name == titlepref) {
for (var header of requestDetails.requestHeaders) {
if (header.name.toLowerCase() === 'user-agent') {
if (header.name.toLowerCase() === "user-agent") {
header.value = ua;
}
}
@@ -28,7 +28,7 @@ var contextScrub = async function(requestDetails) {
};
}
};
var contextGet = async function(tabInfo) {
var contextGet = async function (tabInfo) {
try {
//console.log("(scrub)Tab info from Function", tabInfo);
let context = await browser.contextualIdentities.get(
@@ -39,7 +39,7 @@ var contextScrub = async function(requestDetails) {
return undefined;
}
};
var tabGet = async function(tabId) {
var tabGet = async function (tabId) {
try {
//console.log("(scrub)Tab ID from Request", tabId);
let tabInfo = await browser.tabs.get(tabId);
@@ -56,11 +56,11 @@ var contextScrub = async function(requestDetails) {
return req;
}
} catch (error) {
console.log('(scrub)Not scrubbing non-I2P request.', error);
console.log("(scrub)Not scrubbing non-I2P request.", error);
}
}
};
var notMyContextNotMyProblem = async function() {
var notMyContextNotMyProblem = async function () {
var contexts = await browser.contextualIdentities.query({});
var context1 = await browser.contextualIdentities.query({
name: titlepref,
@@ -87,7 +87,7 @@ var notMyContextNotMyProblem = async function() {
name: botepref,
});
var othercontexts = [];
console.log('Contexts:', contexts);
console.log("Contexts:", contexts);
for (context in contexts) {
if (
contexts[context].cookieStoreId == context1[0].cookieStoreId ||
@@ -99,9 +99,9 @@ var notMyContextNotMyProblem = async function() {
contexts[context].cookieStoreId == context7[0].cookieStoreId
) {
console.log(
'Context found',
"Context found",
contexts[context].cookieStoreId,
'is my responsibility'
"is my responsibility"
);
} else {
//console.log("Context found", contexts[context].cookieStoreId, "is not my responsibility")
@@ -109,15 +109,15 @@ var notMyContextNotMyProblem = async function() {
}
}
return othercontexts;
}
};
var contextSetup = function(requestDetails) {
var contextSetup = function (requestDetails) {
function onContextError() {
console.log('Context launcher error');
console.log("Context launcher error");
}
//console.log("(isolate)Forcing I2P requests into context");
try {
var i2pTabFind = async function(tabId) {
var i2pTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: titlepref,
@@ -127,14 +127,14 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab() {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
}
browser.pageAction.setPopup({
tabId: tabId.id,
popup: 'security.html',
popup: "security.html",
});
browser.pageAction.show(tabId.id);
}
@@ -152,10 +152,10 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var routerTabFind = async function(tabId) {
var routerTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: routerpref,
@@ -165,9 +165,9 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -181,10 +181,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/home';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/home";
}
var created = browser.tabs.create({
active: true,
@@ -199,10 +199,10 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var i2ptunnelTabFind = async function(tabId) {
var i2ptunnelTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: tunnelpref,
@@ -212,9 +212,9 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -228,10 +228,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/i2ptunnelmgr/';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/i2ptunnelmgr/";
}
var created = browser.tabs.create({
active: true,
@@ -246,10 +246,10 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var snarkTabFind = async function(tabId) {
var snarkTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: torrentpref,
@@ -259,16 +259,16 @@ var contextSetup = function(requestDetails) {
name: titlepref,
});
let tmp = new URL(tabId.url);
console.log('(isolate)tabid host', tmp.host);
if (!requestDetails.url.includes('snark/' + tmp.host)) {
console.log("(isolate)tabid host", tmp.host);
if (!requestDetails.url.includes("snark/" + tmp.host)) {
// if (tabId.cookieStoreId != exemptContext[0].cookieStoreId){
function Create() {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -282,10 +282,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/i2psnark/';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/i2psnark/";
}
var created = browser.tabs.create({
active: true,
@@ -301,10 +301,10 @@ var contextSetup = function(requestDetails) {
}
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var muwireTabFind = async function(tabId) {
var muwireTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: muwirepref,
@@ -314,9 +314,9 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -330,10 +330,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/muwire/';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/muwire/";
}
var created = browser.tabs.create({
active: true,
@@ -348,10 +348,10 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var i2pboteTabFind = async function(tabId) {
var i2pboteTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: botepref,
@@ -361,9 +361,9 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -377,10 +377,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/i2pbote/';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/i2pbote/";
}
var created = browser.tabs.create({
active: true,
@@ -395,10 +395,10 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var mailTabFind = async function(tabId) {
var mailTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: mailpref,
@@ -408,9 +408,9 @@ var contextSetup = function(requestDetails) {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -424,10 +424,10 @@ var contextSetup = function(requestDetails) {
});
pins.then(closeOldTab, onError);
}
if (requestDetails.url.endsWith('xhr1.html')) {
hostname = url.split('/')[2];
let prefix = url.substr(0, url.indexOf('://') + 3);
requestDetails.url = prefix + hostname + '/webmail/';
if (requestDetails.url.endsWith("xhr1.html")) {
hostname = url.split("/")[2];
let prefix = url.substr(0, url.indexOf("://") + 3);
requestDetails.url = prefix + hostname + "/webmail/";
}
var created = browser.tabs.create({
active: true,
@@ -442,23 +442,23 @@ var contextSetup = function(requestDetails) {
return tabId;
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var ircTabFind = async function(tabId) {
var ircTabFind = async function (tabId) {
try {
var context = await browser.contextualIdentities.query({
name: ircpref,
});
if (tabId.cookieStoreId != context[0].cookieStoreId) {
if (requestDetails.url.includes(':7669')) {
if (requestDetails.url.includes(":7669")) {
function Create() {
function onCreated(tab) {
function closeOldTab(tabs) {
if (tabId.id != tab.id) {
console.log('(isolate) Closing un-isolated tab', tabId.id);
console.log('in favor of', tab.id);
console.log('with context', tab.cookieStoreId);
console.log("(isolate) Closing un-isolated tab", tabId.id);
console.log("in favor of", tab.id);
console.log("with context", tab.cookieStoreId);
browser.tabs.remove(tabId.id);
browser.tabs.move(tab.id, { index: 0 });
}
@@ -486,16 +486,16 @@ var contextSetup = function(requestDetails) {
}
}
} catch (error) {
console.log('(isolate)Context Error', error);
console.log("(isolate)Context Error", error);
}
};
var tabGet = async function(tabId) {
var tabGet = async function (tabId) {
try {
//console.log("(isolate)Tab ID from Request", tabId);
let tabInfo = await browser.tabs.get(tabId);
return tabInfo;
} catch (error) {
console.log('(isolate)Tab error', error);
console.log("(isolate)Tab error", error);
}
};
if (requestDetails == undefined) {
@@ -519,22 +519,22 @@ var contextSetup = function(requestDetails) {
let localhost = localHost(requestDetails.url);
let routerhost = routerHost(requestDetails.url);
if (routerhost) {
if (routerhost === 'i2ptunnelmgr') {
if (routerhost === "i2ptunnelmgr") {
var tunneltab = tab.then(i2ptunnelTabFind, onContextError);
return requestDetails;
} else if (routerhost === 'i2psnark') {
} else if (routerhost === "i2psnark") {
var snarktab = tab.then(snarkTabFind, onContextError);
return requestDetails;
} else if (routerhost === 'webmail') {
} else if (routerhost === "webmail") {
var mailtab = tab.then(mailTabFind, onContextError);
return requestDetails;
} else if (routerhost === 'muwire') {
} else if (routerhost === "muwire") {
var routertab = tab.then(muwireTabFind, onContextError);
return requestDetails;
} else if (routerhost === 'i2pbote') {
} else if (routerhost === "i2pbote") {
var routertab = tab.then(i2pboteTabFind, onContextError);
return requestDetails;
} else if (routerhost === 'routerconsole') {
} else if (routerhost === "routerconsole") {
var routertab = tab.then(routerTabFind, onContextError);
return requestDetails;
}
@@ -547,22 +547,22 @@ var contextSetup = function(requestDetails) {
// if (oldtab.cookieStoreId == 'firefox-default') {
if (i2pHost(requestDetails.url)) {
var thn = i2pHostName(requestDetails.url);
if (requestDetails.url.includes('=' + thn)) {
if (requestDetails.url.includes("=" + thn)) {
if (
!requestDetails.url.includes('://github.com') ||
!requestDetails.url.includes('://notabug.org') ||
!requestDetails.url.includes('://i2pgit.org') ||
!requestDetails.url.includes('://gitlab.com')
!requestDetails.url.includes("://github.com") ||
!requestDetails.url.includes("://notabug.org") ||
!requestDetails.url.includes("://i2pgit.org") ||
!requestDetails.url.includes("://gitlab.com")
) {
if (!localhost) {
console.log('(scrub)checking search hostnames =' + thn);
var tpt = requestDetails.url.split('=' + thn, 2);
console.log("(scrub)checking search hostnames =" + thn);
var tpt = requestDetails.url.split("=" + thn, 2);
requestDetails.url =
'http://' + thn + '/' + tpt[1].replace('%2F', '');
"http://" + thn + "/" + tpt[1].replace("%2F", "");
}
}
}
console.log('(scrub) new hostname', requestDetails.url);
console.log("(scrub) new hostname", requestDetails.url);
var setcookie = browser.cookies.set({
firstPartyDomain: i2pHostName(requestDetails.url),
url: requestDetails.url,
@@ -582,11 +582,11 @@ var contextSetup = function(requestDetails) {
}
}
} catch (error) {
console.log('(isolate)Not an I2P request, blackholing', error);
console.log("(isolate)Not an I2P request, blackholing", error);
}
};
var coolheadersSetup = function(e) {
var coolheadersSetup = function (e) {
var asyncSetPageAction = new Promise((resolve, reject) => {
window.setTimeout(() => {
if (e.tabId != undefined) {
@@ -594,103 +594,99 @@ var coolheadersSetup = function(e) {
popup.then(gotPopup);
}
function gotPopup(p) {
console.log('(scrub) checking popup', p);
console.log("(scrub) checking popup", p);
if (p.length != 0) return;
let headers = e.responseHeaders.filter((word) =>
word.name.toUpperCase().includes('I2P')
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')) {
console.log("(scrub) checking header", header);
if (header.name.toUpperCase().endsWith("I2P-LOCATION")) {
var tab = browser.tabs.get(e.tabId);
tab.then(altSrc);
function altSrc(tab) {
console.log('(scrub) X-I2P-LOCATION');
console.log("(scrub) X-I2P-LOCATION");
let url = new URL(header.value);
browser.pageAction.setPopup({
tabId: e.tabId,
popup: 'location.html',
popup: "location.html",
});
browser.pageAction.setIcon({
path: 'icons/i2plogo.png',
path: "icons/i2plogo.png",
tabId: e.tabId,
});
let eurl = new URL(tab.url);
browser.pageAction.setTitle({
tabId: e.tabId,
title: 'http://' + url.host + eurl.pathname,
title: "http://" + url.host + eurl.pathname,
});
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;
}
if (header.name.toUpperCase().endsWith("I2P-TORRENTLOCATION")) {
console.log("(scrub) checking header torrentlocation", header);
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 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;
}
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: e.tabId,
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;
}
}
}

View File

@@ -1,8 +1,8 @@
function gotCurrent(tab) {
function gotTitle(title) {
let addr = title;
document.getElementById('TypeInfo').innerHTML =
'<div class="AddressInfo"><a href="' + addr + '">' + addr + '</a></div>';
document.getElementById("TypeInfo").innerHTML =
'<div class="AddressInfo"><a href="' + addr + '">' + addr + "</a></div>";
}
console.log(tab);
var gettingTitle = browser.pageAction.getTitle({

View File

@@ -1,18 +1,18 @@
'use strict';
"use strict";
////// Session extraction
function setupExtractor() {
browser.webRequest.onHeadersReceived.removeListener(extractSession);
browser.storage.local.get('server').then(({ server }) => {
browser.storage.local.get("server").then(({ server }) => {
if (!server) {
return;
}
console.log('Session extractor setup for', server.base_url);
console.log("Session extractor setup for", server.base_url);
browser.webRequest.onBeforeSendHeaders.addListener(
extractSession,
{ urls: [server.base_url + '*'] },
['requestHeaders']
{ urls: [server.base_url + "*"] },
["requestHeaders"]
);
});
}

View File

@@ -1,30 +1,30 @@
'use strict';
"use strict";
////// RPC
function rpcCall(meth, args) {
return browser.storage.local.get(function(server) {
return browser.storage.local.get(function (server) {
const myHeaders = {
'Content-Type': 'application/json',
'x-transmission-session-id': server.session,
"Content-Type": "application/json",
"x-transmission-session-id": server.session,
};
//console.log("(torrent)", server.session)
if (server.username !== '' || server.btrpcpass !== '') {
myHeaders['Authorization'] =
'Basic ' +
btoa((server.username || '') + ':' + (server.btrpcpass || ''));
if (server.username !== "" || server.btrpcpass !== "") {
myHeaders["Authorization"] =
"Basic " +
btoa((server.username || "") + ":" + (server.btrpcpass || ""));
}
//console.log("(torrent) rpc", server.base_url);
return fetch(server.base_url + 'rpc', {
method: 'POST',
return fetch(server.base_url + "rpc", {
method: "POST",
headers: myHeaders,
body: JSON.stringify({ method: meth, arguments: args }),
credentials: 'include', // allows HTTPS client certs!
credentials: "include", // allows HTTPS client certs!
})
.then(function(response) {
const session = response.headers.get('x-transmission-session-id');
.then(function (response) {
const session = response.headers.get("x-transmission-session-id");
if (session) {
browser.storage.local.get({}).then(function(storage) {
browser.storage.local.get({}).then(function (storage) {
storage.session = session;
browser.storage.local.set(storage);
});
@@ -39,7 +39,7 @@ function rpcCall(meth, args) {
error.response = response;
throw error;
})
.then(function(response) {
.then(function (response) {
return response.json();
});
});
@@ -50,11 +50,11 @@ function rpcCall(meth, args) {
function formatSpeed(s) {
// Firefox shows 4 characters max
if (s < 1000 * 1000) {
return (s / 1000).toFixed() + 'K';
return (s / 1000).toFixed() + "K";
}
if (s < 1000 * 1000 * 1000) {
return (s / 1000 / 1000).toFixed() + 'M';
return (s / 1000 / 1000).toFixed() + "M";
}
// You probably don't have that download speed…
return (s / 1000 / 1000 / 1000).toFixed() + 'T';
return (s / 1000 / 1000 / 1000).toFixed() + "T";
}

View File

@@ -1,22 +1,27 @@
'use strict';
"use strict";
var TrpcCall = async function(meth, args) {
var TrpcCall = async function (meth, args) {
const server = await browser.storage.local.get(null);
const myHeaders = {
'Content-Type': 'application/json',
'x-transmission-session-id': server.session,
"Content-Type": "application/json",
"x-transmission-session-id": server.session,
};
console.log('(torrent) session', server.session);
if (server.username !== '' || server.btrpcpass !== '') {
myHeaders['Authorization'] =
'Basic ' + btoa((server.username || '') + ':' + (server.btrpcpass || ''));
console.log("(torrent) session", server.session);
if (server.username !== "" || server.bt_rpc_pass !== "") {
myHeaders["Authorization"] =
"Basic " +
btoa((server.username || "") + ":" + (server.bt_rpc_pass || ""));
}
console.log('(torrent) rpcurl', server.base_url + 'rpc');
return fetch(server.base_url + 'rpc', {
method: 'POST',
let req_url = "http://" + server.bt_rpc_host;
if (server.bt_rpc_port != 0) req_url += ":" + server.bt_rpc_port;
req_url += "/" + server.bt_rpc_path;
console.log("(torrent) rpcurl", req_url);
return fetch(req_url + "rpc", {
method: "POST",
headers: myHeaders,
body: JSON.stringify({ method: meth, arguments: args }),
credentials: 'include', // allows HTTPS client certs!
credentials: "include", // allows HTTPS client certs!
});
/*.then(function(response) {
@@ -32,13 +37,13 @@ var TrpcCall = async function(meth, args) {
error.response = response;
throw error;
});*/
}
};
const torrentsPane = document.getElementById('torrents-pane');
const configPane = document.getElementById('config-pane');
const torrentsPane = document.getElementById("torrents-pane");
const configPane = document.getElementById("config-pane");
for (const opener of document.querySelectorAll('.config-opener')) {
opener.addEventListener('click', (e) => {
for (const opener of document.querySelectorAll(".config-opener")) {
opener.addEventListener("click", (e) => {
browser.runtime.openOptionsPage();
});
}
@@ -141,11 +146,14 @@ function showTorrents(server) {
torrentsPane.hidden = false;
configPane.hidden = true;
for (const opener of document.querySelectorAll(".webui-opener")) {
opener.href = server.base_url + "web/";
let req_url = "http://" + server.bt_rpc_host;
if (server.bt_rpc_port != 0) req_url += ":" + server.bt_rpc_port;
req_url += "/" + server.bt_rpc_path;
opener.href = req_url + "web/";
}
console.log("(torrent) showing torrents");
refreshTorrents(server).catch((_) => refreshTorrentsLogErr(server));
setInterval(() => refreshTorrentsLogErr(server), 2000);
setInterval(() => refreshTorrentsLogErr(server), 60000);
}
//let store =