Compare commits
22 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
647c0523e8 | ||
![]() |
58b874d17f | ||
![]() |
969d2769fd | ||
![]() |
d88d6b2f61 | ||
![]() |
b420dc0a28 | ||
![]() |
0489a2774f | ||
![]() |
49f394acca | ||
![]() |
dd788b15ca | ||
![]() |
84981fa801 | ||
![]() |
d328dd1ca0 | ||
![]() |
590f2c7cd8 | ||
![]() |
e93ad94c89 | ||
![]() |
203decf121 | ||
![]() |
5ab871b51f | ||
![]() |
858d03fa2b | ||
![]() |
374ce51eff | ||
![]() |
cd3dafe9c8 | ||
![]() |
8c256241cb | ||
![]() |
18cc8eb962 | ||
![]() |
f1fd2f6fb6 | ||
![]() |
691dff77a0 | ||
![]() |
0910986d52 |
6
Makefile
6
Makefile
@@ -37,11 +37,11 @@ clean: rc clean-artifacts
|
||||
## EVEN RELEASES are AMO RELEASES
|
||||
## ODD RELEASES are SELFHOSTED RELEASES
|
||||
|
||||
MOZ_VERSION=0.84
|
||||
VERSION=0.83
|
||||
MOZ_VERSION=0.88
|
||||
VERSION=0.87
|
||||
|
||||
## INCREMENT THIS EVERY TIME YOU DO A RELEASE
|
||||
LAST_VERSION=0.81
|
||||
LAST_VERSION=0.85
|
||||
|
||||
YELLOW=F7E59A
|
||||
ORANGE=FFC56D
|
||||
|
@@ -167,6 +167,14 @@
|
||||
"message": "Dispatch IRC (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"botePreface": {
|
||||
"message": "I2P-Bote Mail",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"botePrefacePrivate": {
|
||||
"message": "I2P-Bote Mail (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"routerPreface": {
|
||||
"message": "Router Console",
|
||||
"description": "Preface for the browser titlebar"
|
||||
|
249
background.js
249
background.js
@@ -14,6 +14,7 @@ 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 botepref = chrome.i18n.getMessage('botePreface');
|
||||
|
||||
function onContextsGot(contexts) {
|
||||
var ids = [];
|
||||
@@ -94,6 +95,15 @@ function onContextsGot(contexts) {
|
||||
})
|
||||
.then(onCreated, onNotCreated);
|
||||
}
|
||||
if (ids.indexOf(botepref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: botepref,
|
||||
color: 'blue',
|
||||
icon: 'fence',
|
||||
})
|
||||
.then(onCreated, onNotCreated);
|
||||
}
|
||||
}
|
||||
|
||||
function onContextsError() {
|
||||
@@ -159,25 +169,45 @@ function themeWindow(window) {
|
||||
function onThemeError() {
|
||||
console.log('theme color set error');
|
||||
}
|
||||
function dynamicTheme() {
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
function browserTheme() {
|
||||
console.log('Active in I2P window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#363A68',
|
||||
toolbar: '#363A68',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#363A68',
|
||||
toolbar: '#363A68',
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
function logTabs(tabInfo) {
|
||||
function onContextGotTheme(context) {
|
||||
if (context.name == titlepref) {
|
||||
console.log('Active in I2P window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#363A68',
|
||||
toolbar: '#363A68',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#363A68',
|
||||
toolbar: '#363A68',
|
||||
},
|
||||
});
|
||||
}
|
||||
browserTheme();
|
||||
if (tabInfo[0].url.startsWith('https://')) {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tabInfo[0].id,
|
||||
@@ -190,72 +220,25 @@ function themeWindow(window) {
|
||||
}
|
||||
} else if (context.name == routerpref) {
|
||||
console.log('Active in Router Console window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
}
|
||||
dynamicTheme();
|
||||
} else if (context.name == tunnelpref) {
|
||||
console.log('Active in Hidden Services Manager window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
}
|
||||
dynamicTheme();
|
||||
} else if (context.name == mailpref) {
|
||||
console.log('Active in Web Mail window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
}
|
||||
dynamicTheme();
|
||||
} else if (context.name == torrentpref) {
|
||||
console.log('Active in Bittorrent window');
|
||||
if (window.incognito) {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
} else {
|
||||
browser.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: '#4456B7',
|
||||
toolbar: '#4456B7',
|
||||
},
|
||||
});
|
||||
}
|
||||
dynamicTheme();
|
||||
} else if (context.name == botepref) {
|
||||
console.log('Active in Bote window');
|
||||
dynamicTheme();
|
||||
} else if (context.name == ircpref) {
|
||||
console.log('Active in IRC window');
|
||||
dynamicTheme();
|
||||
} else if (context.name == muwirepref) {
|
||||
console.log('Active in MuWire window');
|
||||
dynamicTheme();
|
||||
}
|
||||
}
|
||||
if (
|
||||
@@ -291,90 +274,43 @@ function setTitle(window) {
|
||||
function onContextError() {
|
||||
console.log('Context Error');
|
||||
}
|
||||
function setTitle(title, privtitle) {
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: privtitle + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: title + ': ',
|
||||
});
|
||||
}
|
||||
}
|
||||
function logTabs(tabInfo) {
|
||||
function onContextGotTitle(context) {
|
||||
if (context.name == titlepref) {
|
||||
console.log('Active in I2P window');
|
||||
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titlepref + ': ',
|
||||
});
|
||||
}
|
||||
} else if (context.name == webpref) {
|
||||
console.log('Active in Web window');
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: webprefpriv + ' - ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: webpref + ' - ',
|
||||
});
|
||||
}
|
||||
setTitle(titlepref, titleprefpriv);
|
||||
} else if (context.name == muwirepref) {
|
||||
console.log('Active in MuWire window');
|
||||
setTitle(muwirepref, muwireprefpriv);
|
||||
} else if (context.name == routerpref) {
|
||||
console.log('Active in Router Console window');
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv + ' - ' + routerprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titlepref + ' - ' + routerpref + ': ',
|
||||
});
|
||||
}
|
||||
setTitle(routerpref, routerprefpriv);
|
||||
} else if (context.name == botepref) {
|
||||
console.log('Active in Bote window');
|
||||
setTitle(botepref, boteprefpriv);
|
||||
} else if (context.name == tunnelpref) {
|
||||
console.log('Active in Hidden Services Manager window');
|
||||
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv + ' - ' + tunnelprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titlepref + ' - ' + tunnelpref + ': ',
|
||||
});
|
||||
}
|
||||
setTitle(tunnelpref, tunnelprefpriv);
|
||||
} else if (context.name == mailpref) {
|
||||
console.log('Active in I2P Web Mail window');
|
||||
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv + ' - ' + mailprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titlepref + ' - ' + mailpref + ': ',
|
||||
});
|
||||
}
|
||||
setTitle(mailpref, mailprefpriv);
|
||||
} else if (context.name == torrentpref) {
|
||||
console.log('Active in I2P Torrent window');
|
||||
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv + ' - ' + torrentprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: titlepref + ' - ' + torrentpref + ': ',
|
||||
});
|
||||
}
|
||||
setTitle(torrentpref, torrentprefpriv);
|
||||
} else if (context.name == ircpref) {
|
||||
console.log('Active in IRC window');
|
||||
|
||||
if (window.incognito) {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: ircprefpriv + ' - ' + ircprefpriv + ': ',
|
||||
});
|
||||
} else {
|
||||
browser.windows.update(window.id, {
|
||||
titlePreface: ircpref + ' - ' + ircpref + ': ',
|
||||
});
|
||||
}
|
||||
setTitle(ircpref, ircprefpriv);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -513,3 +449,24 @@ browser.webRequest.onHeadersReceived.addListener(
|
||||
{ urls: ["<all_urls>"] },
|
||||
["blocking", "responseHeaders"]
|
||||
);
|
||||
|
||||
function onClosedWindowCheck() {
|
||||
var getContext = browser.contextualIdentities.query({ name: titlepref });
|
||||
function checkTabs(ctx) {
|
||||
function conditionallyDelete(tabs) {
|
||||
if (tabs.length == 0) {
|
||||
browser.contextualIdentities.remove(ctx[0].cookieStoreId);
|
||||
browser.contextualIdentities
|
||||
.query({})
|
||||
.then(onContextsGot, onContextsError);
|
||||
}
|
||||
}
|
||||
var tabs = browser.tabs.query({ cookieStoreId: ctx[0].cookieStoreId });
|
||||
tabs.then(conditionallyDelete, onError);
|
||||
}
|
||||
getContext.then(checkTabs, onError);
|
||||
}
|
||||
|
||||
browser.tabs.onRemoved.addListener(onClosedWindowCheck);
|
||||
browser.windows.onRemoved.addListener(onClosedWindowCheck);
|
||||
browser.windows.onCreated.addListener(onClosedWindowCheck);
|
||||
|
418
bookmarks.js
418
bookmarks.js
@@ -1,213 +1,245 @@
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os != 'android') {
|
||||
function 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 createRhizomeBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createBookmark.then(onCreated);
|
||||
function bookmarksSetup() {
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os != 'android') {
|
||||
function bookmarks(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 createRhizomeBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
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"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
}
|
||||
function bookTorrent(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
function bookTorrent(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
}
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
}
|
||||
function bookConsole(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
function bookConsole(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
}
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
}
|
||||
function bookMail(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
function bookMail(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
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',
|
||||
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"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
let gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
}
|
||||
function bookI2PTunnel(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
var createBookmark = browser.bookmarks.create({
|
||||
url: 'http://localhost:7657/i2ptunnel',
|
||||
title: 'Hidden Services Manager',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createBookmark.then(onCreated);
|
||||
} else {
|
||||
var createRhizomeBookmark = browser.bookmarks.create({
|
||||
url:
|
||||
'http://' + control_host + ':' + control_port + '/i2ptunnel',
|
||||
title: 'Hidden Services Manager',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createRhizomeBookmark.then(onCreated);
|
||||
function bookI2PTunnel(bookmarkItems) {
|
||||
if (!bookmarkItems.length) {
|
||||
function gotProxyInfo(info) {
|
||||
let port = info.value.http.split(':')[1];
|
||||
if (port == '7644') {
|
||||
var createBookmark = browser.bookmarks.create({
|
||||
url: 'http://localhost:7657/i2ptunnel',
|
||||
title: 'Hidden Services Manager',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createBookmark.then(onCreated);
|
||||
} else {
|
||||
var createRhizomeBookmark = browser.bookmarks.create({
|
||||
url:
|
||||
'http://' +
|
||||
control_host +
|
||||
':' +
|
||||
control_port +
|
||||
'/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"
|
||||
);
|
||||
var gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
console.log(
|
||||
"(bookmarks) checking if we're running in an I2P Browser"
|
||||
);
|
||||
var gettingProxyInfo = browser.proxy.settings.get({});
|
||||
gettingProxyInfo.then(gotProxyInfo);
|
||||
}
|
||||
|
||||
function onRejected(error) {
|
||||
console.log(`An error : ${error}`);
|
||||
}
|
||||
function onCreated(node) {
|
||||
console.log('Bookmarked', node);
|
||||
}
|
||||
|
||||
var b0 = browser.bookmarks.search({
|
||||
title: 'I2P Extension Home Page',
|
||||
});
|
||||
b0.then(bookHome, onRejected);
|
||||
|
||||
var b1 = browser.bookmarks.search({
|
||||
title: 'Bittorrent',
|
||||
});
|
||||
b1.then(bookTorrent, onRejected);
|
||||
|
||||
var b2 = browser.bookmarks.search({
|
||||
title: 'Hidden Services Manager',
|
||||
});
|
||||
b2.then(bookI2PTunnel, onRejected);
|
||||
|
||||
var b3 = browser.bookmarks.search({
|
||||
title: 'Web Mail',
|
||||
});
|
||||
b3.then(bookMail, onRejected);
|
||||
|
||||
var b4 = browser.bookmarks.search({
|
||||
title: 'I2P Console',
|
||||
});
|
||||
b4.then(bookConsole, onRejected);
|
||||
}
|
||||
|
||||
var bt = browser.bookmarks.search({
|
||||
query: 'Toolbar',
|
||||
});
|
||||
|
||||
function toolDir(bookmarkToolbar) {
|
||||
let defaultSettings = {};
|
||||
defaultSettings['bookmarks_state'] = true;
|
||||
chrome.storage.local.set(defaultSettings);
|
||||
console.log('(bookmarks) created');
|
||||
var ibbt = browser.bookmarks.search('I2P Toolbar');
|
||||
function setupDir(ibbt) {
|
||||
function onToolbarCreated(node) {
|
||||
var ibt = browser.bookmarks.search('I2P Toolbar');
|
||||
ibt.then(bookmarks);
|
||||
}
|
||||
if (ibbt[0] == null) {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
title: 'I2P Toolbar',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createBookmark.then(onToolbarCreated);
|
||||
}
|
||||
}
|
||||
ibbt.then(setupDir);
|
||||
}
|
||||
bt.then(toolDir);
|
||||
|
||||
function handleCreated(id, bookmarkInfo) {
|
||||
//var propValue;
|
||||
for (var propName in bookmarkInfo) {
|
||||
let propValue = bookmarkInfo[propName];
|
||||
console.log(propName, propValue);
|
||||
}
|
||||
}
|
||||
|
||||
function onRejected(error) {
|
||||
console.log(`An error : ${error}`);
|
||||
}
|
||||
function onCreated(node) {
|
||||
console.log('Bookmarked', node);
|
||||
}
|
||||
|
||||
var b0 = browser.bookmarks.search({
|
||||
title: 'I2P Extension Home Page',
|
||||
});
|
||||
b0.then(bookHome, onRejected);
|
||||
|
||||
var b1 = browser.bookmarks.search({
|
||||
title: 'Bittorrent',
|
||||
});
|
||||
b1.then(bookTorrent, onRejected);
|
||||
|
||||
var b2 = browser.bookmarks.search({
|
||||
title: 'Hidden Services Manager',
|
||||
});
|
||||
b2.then(bookI2PTunnel, onRejected);
|
||||
|
||||
var b3 = browser.bookmarks.search({
|
||||
title: 'Web Mail',
|
||||
});
|
||||
b3.then(bookMail, onRejected);
|
||||
|
||||
var b4 = browser.bookmarks.search({
|
||||
title: 'I2P Console',
|
||||
});
|
||||
b4.then(bookConsole, onRejected);
|
||||
browser.bookmarks.onCreated.addListener(handleCreated);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var bt = browser.bookmarks.search({
|
||||
query: 'Toolbar',
|
||||
});
|
||||
|
||||
function toolDir(bookmarkToolbar) {
|
||||
var ibbt = browser.bookmarks.search('I2P Toolbar');
|
||||
function setupDir(ibbt) {
|
||||
function onToolbarCreated(node) {
|
||||
var ibt = browser.bookmarks.search('I2P Toolbar');
|
||||
ibt.then(bookmarks);
|
||||
}
|
||||
if (ibbt[0] == null) {
|
||||
let createBookmark = browser.bookmarks.create({
|
||||
title: 'I2P Toolbar',
|
||||
parentId: bookmarkToolbar[0].id,
|
||||
});
|
||||
createBookmark.then(onToolbarCreated);
|
||||
}
|
||||
}
|
||||
ibbt.then(setupDir);
|
||||
}
|
||||
bt.then(toolDir);
|
||||
|
||||
function handleCreated(id, bookmarkInfo) {
|
||||
//var propValue;
|
||||
for (var propName in bookmarkInfo) {
|
||||
let propValue = bookmarkInfo[propName];
|
||||
console.log(propName, propValue);
|
||||
}
|
||||
}
|
||||
|
||||
browser.bookmarks.onCreated.addListener(handleCreated);
|
||||
function conditionalBookmarksSetup(obj) {
|
||||
console.log('(bookmarks) state', obj.bookmarks_state);
|
||||
if (obj.bookmarks_state == false) {
|
||||
bookmarksSetup();
|
||||
}
|
||||
});
|
||||
if (obj.bookmarks_state == undefined) {
|
||||
bookmarksSetup();
|
||||
}
|
||||
}
|
||||
|
||||
if (browser != null) {
|
||||
let gettingStorage = browser.storage.local.get('bookmarks_state');
|
||||
gettingStorage.then(conditionalBookmarksSetup, bookmarksSetup);
|
||||
}
|
||||
|
||||
const bookmarksButton = document.getElementById('bookmarksButton');
|
||||
if (bookmarksButton != null) {
|
||||
bookmarksButton.addEventListener('click', bookmarksSetup);
|
||||
}
|
||||
|
@@ -49,6 +49,5 @@ contentUpdateById('window-visit-releases', 'windowVisitReleases');
|
||||
contentUpdateById('releases', 'releases');
|
||||
|
||||
fetch('http://proxy.i2p').then((myJson) => {
|
||||
console.log('FETCH RESULT', myJson);
|
||||
contentUpdateById('proxy-check', 'proxySuccessStatus');
|
||||
});
|
||||
|
15
debian/changelog
vendored
15
debian/changelog
vendored
@@ -1,3 +1,18 @@
|
||||
i2psetproxy.js (0.87-1) UNRELEASED; urgency=low
|
||||
|
||||
* Disable searching for i2p sites in non-i2p search engines
|
||||
* Add contexts for i2pbote and Dispatch
|
||||
* Remain in tighter control of x-i2p-torrentlocation priority
|
||||
|
||||
-- idk <hankhill19580@gmail.com> Sat, 10 NOV 2020 1:33:50 -0400
|
||||
|
||||
i2psetproxy.js (0.85-1) UNRELEASED; urgency=low
|
||||
|
||||
* Fix a bug which was causing i2psnark to fail to isolate.
|
||||
|
||||
-- idk <hankhill19580@gmail.com> Sat, 10 NOV 2020 1:33:50 -0400
|
||||
|
||||
|
||||
i2psetproxy.js (0.83-1) UNRELEASED; urgency=low
|
||||
|
||||
* Add a tab for I2P-Native Dispatch
|
||||
|
10
handler.js
10
handler.js
@@ -1,7 +1,9 @@
|
||||
function routerHost(url) {
|
||||
// console.log("(urlcheck) HANDLER URL CHECK");
|
||||
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') {
|
||||
@@ -11,7 +13,8 @@ function routerHost(url) {
|
||||
final === 'i2psnark' ||
|
||||
final === 'torrents' ||
|
||||
final.startsWith('transmission') ||
|
||||
final.startsWith('tracker')
|
||||
final.startsWith('tracker') ||
|
||||
url.includes(':7662')
|
||||
) {
|
||||
console.log('(urlcheck) Torrent application path', final);
|
||||
return 'i2psnark';
|
||||
@@ -23,6 +26,11 @@ function routerHost(url) {
|
||||
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 === 'home' ||
|
||||
final === 'console' ||
|
||||
|
6
home.css
6
home.css
@@ -272,4 +272,10 @@ img.readyness {
|
||||
}
|
||||
input {
|
||||
color: #1f1a24
|
||||
}
|
||||
#hidden {
|
||||
display: none
|
||||
}
|
||||
.hidden {
|
||||
display: none
|
||||
}
|
37
host.js
37
host.js
@@ -46,7 +46,24 @@ function extensionHost(url) {
|
||||
|
||||
function i2pHostName(url) {
|
||||
let hostname = '';
|
||||
if (url.indexOf('://') > -1) {
|
||||
console.log('(hosts)', url);
|
||||
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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (hostname != '') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (url.indexOf('://') > -1) {
|
||||
hostname = url.split('/')[2];
|
||||
} else {
|
||||
hostname = url.split('/')[0];
|
||||
@@ -60,6 +77,7 @@ function i2pHost(url) {
|
||||
}
|
||||
|
||||
function routerHost(url) {
|
||||
// console.log("(urlcheck) HOST URL CHECK");
|
||||
let hostname = '';
|
||||
let path = '';
|
||||
function pathcheck(str) {
|
||||
@@ -72,7 +90,8 @@ function routerHost(url) {
|
||||
final === 'i2psnark' ||
|
||||
final === 'torrents' ||
|
||||
final.startsWith('transmission') ||
|
||||
final.startsWith('tracker')
|
||||
final.startsWith('tracker') ||
|
||||
url.includes(':7662')
|
||||
) {
|
||||
console.log('(urlcheck) Torrent application path', final);
|
||||
return 'i2psnark';
|
||||
@@ -84,6 +103,11 @@ function routerHost(url) {
|
||||
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 === 'home' ||
|
||||
final === 'console' ||
|
||||
@@ -111,15 +135,6 @@ function routerHost(url) {
|
||||
if (hostname === control_host + ':' + control_port) {
|
||||
return pathcheck(path);
|
||||
}
|
||||
if (hostname === control_host + ':' + '7662') {
|
||||
return pathcheck(path);
|
||||
}
|
||||
if (hostname === 'localhost' + ':' + '7662') {
|
||||
return pathcheck(path);
|
||||
}
|
||||
if (hostname === '127.0.0.1' + ':' + '7662') {
|
||||
return pathcheck(path);
|
||||
}
|
||||
if (hostname === 'localhost' + ':' + control_port) {
|
||||
return pathcheck(path);
|
||||
}
|
||||
|
Binary file not shown.
@@ -38,7 +38,7 @@
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="magnet:?xt=urn:btih:988d73b46899c1495eeea5ed137605ab277470be">Magnet Link</a>
|
||||
<a href="magnet:?xt=urn:btih:8d0e4b7965826328d2d857487116a6af997807e1">Magnet Link</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
|
12
info.js
12
info.js
@@ -61,6 +61,9 @@ document.addEventListener("click", (clickEvent) => {
|
||||
creating.then(() => {
|
||||
console.log("The news panel has been created");
|
||||
});
|
||||
} else if (clickEvent.target.id === "visit-irc") {
|
||||
browser.sidebarAction.setPanel({ panel: "http://127.0.0.1:7669" });
|
||||
browser.sidebarAction.open();
|
||||
} else if (clickEvent.target.id === "generate-fresh-tunnel") {
|
||||
function refreshIdentity() {
|
||||
console.log("Generating new identity");
|
||||
@@ -332,3 +335,12 @@ const interval = minutes * 60 * 1000;
|
||||
setInterval(function () {
|
||||
if (UpdateContents !== undefined) UpdateContents();
|
||||
}, interval);
|
||||
|
||||
fetch("http://127.0.0.1:7669").then((myJson) => {
|
||||
if (myJson.status == 200) {
|
||||
let irc = document.getElementById("visit-irc");
|
||||
if (irc != null) {
|
||||
irc.classList.remove("hidden");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
@@ -16,6 +16,7 @@
|
||||
"proxy",
|
||||
"privacy",
|
||||
"storage",
|
||||
"webNavigation",
|
||||
"webRequest",
|
||||
"webRequestBlocking",
|
||||
"contextualIdentities",
|
||||
@@ -26,7 +27,7 @@
|
||||
],
|
||||
"manifest_version": 2,
|
||||
"name": "__MSG_extensionName__",
|
||||
"version": "0.82",
|
||||
"version": "0.85",
|
||||
"description": "__MSG_extensionDescription__",
|
||||
"homepage_url": "https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox",
|
||||
"icons": {
|
||||
|
@@ -19,16 +19,21 @@
|
||||
</select>
|
||||
</section>
|
||||
|
||||
<section class="scheme-options proxy-options" id="proxy-options">
|
||||
<div class="title">
|
||||
Proxy Options
|
||||
</div>
|
||||
<section class="scheme-options">
|
||||
<span class="title">Bookmarks Status:</span> <input id="bookmarksState" name="bookmarksstate" type="checkbox" value="bookmarksstate"> <label for="bookmarksState">Bookmarks were created at install-time. <button id="bookmarksButton" type="submit">Re-Create Bookmarks</button></label>
|
||||
</section>
|
||||
|
||||
<p id="proxyHelpText">
|
||||
<section class="scheme-options proxy-options" id="proxy-options">
|
||||
<label for="bookmarksState"></label>
|
||||
<div class="title">
|
||||
<label for="bookmarksState">Proxy Options</label>
|
||||
</div>
|
||||
<label for="bookmarksState"></label>
|
||||
<p id="proxyHelpText"><label for="bookmarksState"></label>
|
||||
</p>
|
||||
<label id="portText">Host:</label> <input data="host" id="host" type="text" value="127.0.0.1">
|
||||
<label for="bookmarksState"><label id="portText">Host:</label> <input data="host" id="host" type="text" value="127.0.0.1">
|
||||
<br>
|
||||
<label id="hostText">Port:</label> <input data="port" id="port" type="text" value="4444">
|
||||
<label id="hostText">Port:</label> <input data="port" id="port" type="text" value="4444"></label>
|
||||
</section>
|
||||
<!--<section class="scheme-options identity-options">
|
||||
<div class="panel">
|
||||
@@ -83,7 +88,8 @@
|
||||
</div>
|
||||
</section>
|
||||
<input id="save-button" type="button" value="Save preferences">
|
||||
<script src="options.js"></script> <!--<script src="/torrent/browser-polyfill.min.js"></script>
|
||||
<script src="options.js"></script>
|
||||
<script src="/bookmarks.js"></script> <!--<script src="/torrent/browser-polyfill.min.js"></script>
|
||||
<script src="/torrent/options.js"></script>-->
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -1,3 +1,8 @@
|
||||
function SetBookButton() {
|
||||
// var bmid = document.getElementById("bookmark");
|
||||
//bmid.textContent = chrome.i18n.getMessage("bookmarkButton");
|
||||
}
|
||||
|
||||
function SetHostText() {
|
||||
var hostid = document.getElementById('hostText');
|
||||
hostid.textContent = chrome.i18n.getMessage('hostText');
|
||||
@@ -28,6 +33,21 @@ function SetControlHelpText() {
|
||||
portid.textContent = chrome.i18n.getMessage('controlHelpText');
|
||||
}
|
||||
|
||||
function getBookmarksCreated() {
|
||||
bookmarks_state = document.getElementById('bookmarks').value;
|
||||
console.log('(options)Got i2p bookmarks state:', bookmarks_state);
|
||||
if (bookmarks_state == undefined) {
|
||||
return false;
|
||||
}
|
||||
if (bookmarks_state == 'false') {
|
||||
return false;
|
||||
}
|
||||
if (bookmarks_state == 'true') {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function getScheme() {
|
||||
const proxy_scheme = document.querySelector('#proxy_scheme');
|
||||
console.log('(options)Got i2p proxy scheme:', proxy_scheme.value);
|
||||
@@ -159,6 +179,9 @@ function checkStoredSettings(storedSettings) {
|
||||
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'];
|
||||
@@ -245,6 +268,9 @@ 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']) {
|
||||
@@ -320,6 +346,7 @@ function onError(e) {
|
||||
|
||||
function storeSettings() {
|
||||
let storableSettings = {};
|
||||
storableSettings['bookmarks_state'] = getBookmarksCreated();
|
||||
storableSettings['proxy_scheme'] = getScheme();
|
||||
storableSettings['proxy_host'] = getHost();
|
||||
storableSettings['proxy_port'] = getPort();
|
||||
@@ -341,15 +368,19 @@ function storeSettings() {
|
||||
|
||||
function updateUI(restoredSettings) {
|
||||
const selectList = document.querySelector('#proxy_scheme');
|
||||
if (selectList == undefined) selectList.value = restoredSettings.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');
|
||||
if (bms != undefined) bms.checked = restoredSettings.bookmarks_state;
|
||||
|
||||
const hostitem = document.getElementById('host');
|
||||
if (hostitem == undefined) hostitem.value = restoredSettings.proxy_host;
|
||||
if (hostitem != undefined) hostitem.value = restoredSettings.proxy_host;
|
||||
//console.log("(options)showing proxy host:", hostitem.value);
|
||||
|
||||
const portitem = document.getElementById('port');
|
||||
if (portitem == undefined) portitem.value = restoredSettings.proxy_port;
|
||||
if (portitem != undefined) portitem.value = restoredSettings.proxy_port;
|
||||
//console.log("(options)showing proxy port:", portitem.value);
|
||||
|
||||
const controlhostitem = document.getElementById('controlhost');
|
||||
@@ -363,41 +394,42 @@ function updateUI(restoredSettings) {
|
||||
//console.log("(options)showing control port:", controlportitem.value);
|
||||
|
||||
const rpchostitem = document.getElementById('rpchost');
|
||||
if (rpchostitem == undefined) rpchostitem.value = restoredSettings.rpc_host;
|
||||
if (rpchostitem != undefined) rpchostitem.value = restoredSettings.rpc_host;
|
||||
//console.log("(options)showing rpc host:", rpchostitem.value);
|
||||
|
||||
const rpcportitem = document.getElementById('rpcport');
|
||||
if (rpcportitem == undefined) rpcportitem.value = restoredSettings.rpc_port;
|
||||
if (rpcportitem != undefined) rpcportitem.value = restoredSettings.rpc_port;
|
||||
//console.log("(options)showing rpc port:", rpcportitem.value);
|
||||
|
||||
const rpcpathitem = document.getElementById('rpcpath');
|
||||
if (rpcpathitem == undefined) rpcpathitem.value = restoredSettings.rpc_path;
|
||||
if (rpcpathitem != undefined) rpcpathitem.value = restoredSettings.rpc_path;
|
||||
//console.log("(options)showing rpc path:", rpcpathitem.value);
|
||||
|
||||
const rpcpassitem = document.getElementById('rpcpass');
|
||||
if (rpcpassitem == undefined) rpcpassitem.value = restoredSettings.rpc_pass;
|
||||
if (rpcpassitem != undefined) rpcpassitem.value = restoredSettings.rpc_pass;
|
||||
//console.log("(options)showing rpc pass:");
|
||||
|
||||
const btrpchostitem = document.getElementById('btrpchost');
|
||||
if (btrpchostitem == undefined)
|
||||
if (btrpchostitem != undefined)
|
||||
btrpchostitem.value = restoredSettings.rpc_host;
|
||||
//console.log("(options)showing bt rpc host:", btrpchostitem.value);
|
||||
|
||||
const btrpcportitem = document.getElementById('btrpcport');
|
||||
if (btrpcportitem == undefined)
|
||||
if (btrpcportitem != undefined)
|
||||
btrpcportitem.value = restoredSettings.rpc_port;
|
||||
//console.log("(options)showing rbt pc port:", rpcportitem.value);
|
||||
|
||||
const btrpcpathitem = document.getElementById('btrpcpath');
|
||||
if (btrpcpathitem == undefined)
|
||||
if (btrpcpathitem != undefined)
|
||||
btrpcpathitem.value = restoredSettings.rpc_path;
|
||||
//console.log("(options)showing bt rpc path:", btrpcpathitem.value);
|
||||
|
||||
const btrpcpassitem = document.getElementById('btrpcpass');
|
||||
if (btrpcpassitem == undefined)
|
||||
if (btrpcpassitem != undefined)
|
||||
btrpcpassitem.value = restoredSettings.rpc_pass;
|
||||
//console.log("(options)showing bt rpc pass:");
|
||||
|
||||
SetBookButton();
|
||||
SetHostText();
|
||||
SetPortText();
|
||||
SetPortHelpText();
|
||||
|
22
privacy.js
22
privacy.js
@@ -328,7 +328,24 @@ function forgetBrowsingData(storedSettings) {
|
||||
|
||||
function i2pHostName(url) {
|
||||
let hostname = "";
|
||||
if (url.indexOf("://") > -1) {
|
||||
console.log("(hosts)", url);
|
||||
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);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (hostname != "") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (url.indexOf("://") > -1) {
|
||||
hostname = url.split("/")[2];
|
||||
} else {
|
||||
hostname = url.split("/")[0];
|
||||
@@ -338,6 +355,9 @@ function i2pHostName(url) {
|
||||
|
||||
function i2pHost(url) {
|
||||
let hostname = i2pHostName(url);
|
||||
if (hostname.endsWith(".i2p")) {
|
||||
console.log("(hostname) i2p", hostname);
|
||||
}
|
||||
return hostname.endsWith(".i2p");
|
||||
}
|
||||
|
||||
|
10
proxy.js
10
proxy.js
@@ -3,6 +3,7 @@ var webpref = chrome.i18n.getMessage('webPreface');
|
||||
var ircpref = chrome.i18n.getMessage('ircPreface');
|
||||
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,
|
||||
@@ -33,6 +34,15 @@ var handleContextProxyRequest = async function(requestDetails) {
|
||||
}
|
||||
console.log('(proxy), context', context);
|
||||
if (context != undefined) {
|
||||
if (context.name == ircpref) {
|
||||
if (!requestDetails.url.includes('7669')) {
|
||||
proxy = {
|
||||
type: getScheme(),
|
||||
host: getHost(),
|
||||
port: getPort(),
|
||||
};
|
||||
}
|
||||
}
|
||||
if (context.name == titlepref) {
|
||||
if (!requestDetails.url.includes('/i2psnark/')) {
|
||||
console.log('URL', requestDetails.url);
|
||||
|
@@ -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-11-08T02:44:07Z</updated>
|
||||
<updated>2020-11-11T06:44:09Z</updated>
|
||||
<entry>
|
||||
<id>tag:github.com,2008:Repository/169256012/0.85</id>
|
||||
<updated>2020-11-11T06:44:44Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.85"/>
|
||||
<title>0.85</title>
|
||||
<enclosure url="magnet:?xt=urn:btih:8d0e4b7965826328d2d857487116a6af997807e1" type="application/x-bittorrent" />
|
||||
<content type="html"><p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br>
|
||||
Browsing to a single contextual identity, thus creating an I2P in Private<br>
|
||||
Browsing mode. It requires the use of a pre-installed I2P Router.<br>
|
||||
i2psetproxy.js (0.85-1) UNRELEASED; urgency=low</p>
|
||||
<ul>
|
||||
<li>Fix a bug which was causing i2psnark to fail to isolate.</li>
|
||||
</ul>
|
||||
<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Sat, 10 NOV 2020 1:33:50 -0400</p>
|
||||
<p>i2psetproxy.js (0.83-1) UNRELEASED; urgency=low</p></content>
|
||||
<author>
|
||||
<name>eyedeekay</name>
|
||||
</author>
|
||||
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&v=4"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>tag:github.com,2008:Repository/169256012/0.83</id>
|
||||
<updated>2020-11-11T04:00:27Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.83"/>
|
||||
<title>0.83</title>
|
||||
<content type="html"><p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br>
|
||||
Browsing to a single contextual identity, thus creating an I2P in Private<br>
|
||||
Browsing mode. It requires the use of a pre-installed I2P Router.<br>
|
||||
i2psetproxy.js (0.83-1) UNRELEASED; urgency=low</p>
|
||||
<ul>
|
||||
<li>Add a tab for I2P-Native Dispatch</li>
|
||||
</ul>
|
||||
<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Sat, 10 NOV 2020 22:00:01 -0400</p>
|
||||
<p>i2psetproxy.js (0.81-1) UNRELEASED; urgency=low</p></content>
|
||||
<author>
|
||||
<name>eyedeekay</name>
|
||||
</author>
|
||||
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&v=4"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>tag:github.com,2008:Repository/169256012/0.81</id>
|
||||
<updated>2020-11-08T02:44:34Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.81"/>
|
||||
<title>0.81</title>
|
||||
<enclosure url="magnet:?xt=urn:btih:988d73b46899c1495eeea5ed137605ab277470be" type="application/x-bittorrent" />
|
||||
<content type="html"><p>Browsing mode. It requires the use of a pre-installed I2P Router.<br>
|
||||
i2psetproxy.js (0.81-1) UNRELEASED; urgency=low</p>
|
||||
<ul>
|
||||
@@ -157,43 +195,4 @@ i2psetproxy.js (0.67-1) UNRELEASED; urgency=low</p>
|
||||
</author>
|
||||
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&v=4"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>tag:github.com,2008:Repository/169256012/0.65</id>
|
||||
<updated>2020-03-18T03:01:20Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.65"/>
|
||||
<title>0.65</title>
|
||||
<content type="html"><p>Browsing to a single contextual identity, thus creating an I2P in Private<br>
|
||||
Browsing mode. It requires the use of a pre-installed I2P Router.<br>
|
||||
i2psetproxy.js (0.65-1) UNRELEASED; urgency=low</p>
|
||||
<ul>
|
||||
<li>Initial prototype of certs implementation</li>
|
||||
<li>Use "pinned apptabs" to minimize the number of tabs occupied by an app</li>
|
||||
<li>Get ready for self-hosted updates but with bittorrent because it's cooler</li>
|
||||
</ul>
|
||||
<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Tue, 17 MAR 2020 22:58:55 -0400</p>
|
||||
<p>i2psetproxy.js (0.63-1) UNRELEASED; urgency=low</p></content>
|
||||
<author>
|
||||
<name>eyedeekay</name>
|
||||
</author>
|
||||
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&v=4"/>
|
||||
</entry>
|
||||
<entry>
|
||||
<id>tag:github.com,2008:Repository/169256012/0.63</id>
|
||||
<updated>2020-03-02T23:01:58Z</updated>
|
||||
<link rel="alternate" type="text/html" href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/tag/0.63"/>
|
||||
<title>0.63</title>
|
||||
<content type="html"><p>A simple plugin for configuring a Firefox based web browser to isolate I2P<br>
|
||||
Browsing to a single contextual identity, thus creating an I2P in Private<br>
|
||||
Browsing mode. It requires the use of a pre-installed I2P Router.<br>
|
||||
i2psetproxy.js (0.63-1) UNRELEASED; urgency=low</p>
|
||||
<ul>
|
||||
<li>other containerizers bugfix</li>
|
||||
</ul>
|
||||
<p>-- idk <a href="mailto:hankhill19580@gmail.com">hankhill19580@gmail.com</a> Mon, 02 MAR 2020 17:54:26 -0400</p>
|
||||
<p>i2psetproxy.js (0.61-1) UNRELEASED; urgency=low</p></content>
|
||||
<author>
|
||||
<name>eyedeekay</name>
|
||||
</author>
|
||||
<media:thumbnail height="30" width="30" url="https://avatars3.githubusercontent.com/u/8733713?s=60&v=4"/>
|
||||
</entry>
|
||||
</feed>
|
||||
|
242
script.js
242
script.js
@@ -1,5 +1,6 @@
|
||||
browser.runtime.onMessage.addListener((request) => {
|
||||
var response = '';
|
||||
console.log(request);
|
||||
if (request.req === 'i2p-location') {
|
||||
response = 'no-alt-location';
|
||||
const metas = document.getElementsByTagName('meta');
|
||||
@@ -15,181 +16,86 @@ browser.runtime.onMessage.addListener((request) => {
|
||||
} catch {};
|
||||
}
|
||||
}
|
||||
|
||||
if (request.req === 'i2p-torrentlocation') {
|
||||
response = 'no-alt-location';
|
||||
const metas = document.getElementsByTagName('meta');
|
||||
for (let i = 0; i < metas.length; i++) {
|
||||
try {
|
||||
tag = metas[i].getAttribute('http-equiv');
|
||||
if (tag.toUpperCase() === 'I2P-TORRENTLOCATION') {
|
||||
response = metas[i].getAttribute('content');
|
||||
var imgs = document.getElementsByTagName('img');
|
||||
for (let img of imgs) {
|
||||
let tmpsrc = new URL(img.src);
|
||||
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 links = document.getElementsByTagName('a');
|
||||
console.log('Listing link', links);
|
||||
for (let link of links) {
|
||||
console.log('(Changing Link)', link);
|
||||
let tmpsrc = new URL(link.href);
|
||||
// console.log("link", tmpsrc.host, tmpsrc.pathname)
|
||||
if (tmpsrc.host == location.host) {
|
||||
if (
|
||||
!tmpsrc.pathname.endsWith('html') &&
|
||||
!tmpsrc.pathname.endsWith('htm') &&
|
||||
!tmpsrc.pathname.endsWith('php') &&
|
||||
!tmpsrc.pathname.endsWith('jsp') &&
|
||||
!tmpsrc.pathname.endsWith('asp') &&
|
||||
!tmpsrc.pathname.endsWith('aspx') &&
|
||||
!tmpsrc.pathname.endsWith('atom') &&
|
||||
!tmpsrc.pathname.endsWith('rss') &&
|
||||
!tmpsrc.pathname.endsWith('/') &&
|
||||
tmpsrc.pathname.includes('.')
|
||||
) {
|
||||
console.log('link', tmpsrc.host, tmpsrc.pathname);
|
||||
link.href =
|
||||
'http://127.0.0.1:7657/i2psnark/' +
|
||||
tmpsrc.host +
|
||||
tmpsrc.pathname;
|
||||
link.onerror = function() {
|
||||
window.location.href = tmpsrc.href;
|
||||
};
|
||||
}
|
||||
//if (!tmpsrc.pathname.endsWith('html')) { // && !tmpsrc.pathname.endsWith('htm') &&
|
||||
// !tmpsrc.pathname.endsWith('php') && !tmpsrc.pathname.endsWith('jsp') &&
|
||||
// !tmpsrc.pathname.endsWith('asp') && !tmpsrc.pathname.endsWith('aspx') &&
|
||||
// tmpsrc.pathname.includes('.') && !tmpsrc..pathname.endsWith('/')) {
|
||||
//console.log('http://127.0.0.1:7657/i2psnark/' + tmpsrc.host + tmpsrc.pathname;)
|
||||
//link.href = 'http://127.0.0.1:7657/i2psnark/' + tmpsrc.host + tmpsrc.pathname;
|
||||
//link.onerror = function() {
|
||||
//link.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
var tag = document.querySelector('meta[http-equiv="i2p-torrentlocation"]');
|
||||
console.log(tag);
|
||||
if (tag) {
|
||||
response = tag.content;
|
||||
var imgs = document.getElementsByTagName('img');
|
||||
console.log('rewriting torrent link');
|
||||
for (let img of imgs) {
|
||||
let tmpsrc = new URL(img.src);
|
||||
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) {
|
||||
video.setAttribute('preload', 'none');
|
||||
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;
|
||||
};
|
||||
}
|
||||
}
|
||||
if (tag.toUpperCase() === 'X-I2P-TORRENTLOCATION') {
|
||||
response = metas[i].getAttribute('content');
|
||||
var imgs = document.getElementsByTagName('img');
|
||||
for (let img of imgs) {
|
||||
let tmpsrc = new URL(img.src);
|
||||
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 links = document.getElementsByTagName('a');
|
||||
console.log('Listing link', links);
|
||||
for (let link of links) {
|
||||
console.log('(Changing Link)', link);
|
||||
let tmpsrc = new URL(link.href);
|
||||
//console.log("link", tmpsrc.host, tmpsrc.pathname)
|
||||
if (tmpsrc.host == location.host) {
|
||||
if (
|
||||
!tmpsrc.pathname.endsWith('html') &&
|
||||
!tmpsrc.pathname.endsWith('htm') &&
|
||||
!tmpsrc.pathname.endsWith('php') &&
|
||||
!tmpsrc.pathname.endsWith('jsp') &&
|
||||
!tmpsrc.pathname.endsWith('asp') &&
|
||||
!tmpsrc.pathname.endsWith('aspx') &&
|
||||
!tmpsrc.pathname.endsWith('atom') &&
|
||||
!tmpsrc.pathname.endsWith('rss') &&
|
||||
!tmpsrc.pathname.endsWith('/') &&
|
||||
tmpsrc.pathname.includes('.')
|
||||
) {
|
||||
console.log('link', tmpsrc.host, tmpsrc.pathname);
|
||||
link.href =
|
||||
'http://127.0.0.1:7657/i2psnark/' +
|
||||
tmpsrc.host +
|
||||
tmpsrc.pathname;
|
||||
link.onerror = function() {
|
||||
window.location.href = tmpsrc.href;
|
||||
};
|
||||
}
|
||||
//if (!tmpsrc.pathname.endsWith('html')) { // && !tmpsrc.pathname.endsWith('htm') &&
|
||||
// !tmpsrc.pathname.endsWith('php') && !tmpsrc.pathname.endsWith('jsp') &&
|
||||
// !tmpsrc.pathname.endsWith('asp') && !tmpsrc.pathname.endsWith('aspx') &&
|
||||
// tmpsrc.pathname.includes('.') && !tmpsrc..pathname.endsWith('/')) {
|
||||
//console.log('http://127.0.0.1:7657/i2psnark/' + tmpsrc.host + tmpsrc.pathname;)
|
||||
//link.href = 'http://127.0.0.1:7657/i2psnark/' + tmpsrc.host + tmpsrc.pathname;
|
||||
//link.onerror = function() {
|
||||
//link.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;
|
||||
}
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
var audios = document.getElementsByTagName('audio');
|
||||
for (let audio of audios) {
|
||||
audio.setAttribute('preload', 'none');
|
||||
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;
|
||||
};
|
||||
}
|
||||
}
|
||||
} catch {};
|
||||
}
|
||||
var links = document.getElementsByTagName('a');
|
||||
for (let link of links) {
|
||||
let tmpsrc = new URL(link.href);
|
||||
if (tmpsrc.host == location.host) {
|
||||
if (
|
||||
!tmpsrc.pathname.endsWith('html') &&
|
||||
!tmpsrc.pathname.endsWith('htm') &&
|
||||
!tmpsrc.pathname.endsWith('php') &&
|
||||
!tmpsrc.pathname.endsWith('jsp') &&
|
||||
!tmpsrc.pathname.endsWith('asp') &&
|
||||
!tmpsrc.pathname.endsWith('aspx') &&
|
||||
!tmpsrc.pathname.endsWith('atom') &&
|
||||
!tmpsrc.pathname.endsWith('rss') &&
|
||||
!tmpsrc.pathname.endsWith('/') &&
|
||||
tmpsrc.pathname.includes('.')
|
||||
) {
|
||||
link.href =
|
||||
'http://127.0.0.1:7657/i2psnark/' + tmpsrc.host + tmpsrc.pathname;
|
||||
link.onerror = function() {
|
||||
window.location.href = tmpsrc.href;
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return Promise.resolve({ content: response });
|
||||
|
205
scrub.js
205
scrub.js
@@ -7,6 +7,7 @@ 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) {
|
||||
function onHeaderError() {
|
||||
@@ -111,6 +112,9 @@ var notMyContextNotMyProblem = async function() {
|
||||
var context7 = await browser.contextualIdentities.query({
|
||||
name: muwirepref,
|
||||
});
|
||||
var context7 = await browser.contextualIdentities.query({
|
||||
name: botepref,
|
||||
});
|
||||
var othercontexts = [];
|
||||
console.log('Contexts:', contexts);
|
||||
for (context in contexts) {
|
||||
@@ -140,6 +144,7 @@ var contextSetup = function(requestDetails) {
|
||||
function onContextError() {
|
||||
console.log('Context launcher error');
|
||||
}
|
||||
console.log('(scrub) host', requestDetails.url);
|
||||
//console.log("(isolate)Forcing I2P requests into context");
|
||||
try {
|
||||
var i2pTabFind = async function(tabId) {
|
||||
@@ -241,7 +246,7 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('in favor of', tab.id);
|
||||
console.log('with context', tab.cookieStoreId);
|
||||
browser.tabs.remove(tabId.id);
|
||||
browser.tabs.move(tab.id, { index: 1 });
|
||||
browser.tabs.move(tab.id, { index: 0 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
@@ -284,8 +289,8 @@ var contextSetup = function(requestDetails) {
|
||||
name: titlepref,
|
||||
});
|
||||
let tmp = new URL(tabId.url);
|
||||
console.log('tabid host', tmp.host);
|
||||
if (!requestDetails.url.includes(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) {
|
||||
@@ -295,7 +300,7 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('in favor of', tab.id);
|
||||
console.log('with context', tab.cookieStoreId);
|
||||
browser.tabs.remove(tabId.id);
|
||||
browser.tabs.move(tab.id, { index: 2 });
|
||||
browser.tabs.move(tab.id, { index: 0 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
@@ -343,7 +348,7 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('in favor of', tab.id);
|
||||
console.log('with context', tab.cookieStoreId);
|
||||
browser.tabs.remove(tabId.id);
|
||||
browser.tabs.move(tab.id, { index: 4 });
|
||||
browser.tabs.move(tab.id, { index: 0 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
@@ -376,6 +381,53 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('(isolate)Context Error', error);
|
||||
}
|
||||
};
|
||||
var i2pboteTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: botepref,
|
||||
});
|
||||
if (tabId.cookieStoreId != context[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);
|
||||
browser.tabs.remove(tabId.id);
|
||||
browser.tabs.move(tab.id, { index: 0 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
browser.tabs.remove(tabs[index].id);
|
||||
}
|
||||
}
|
||||
var pins = browser.tabs.query({
|
||||
cookieStoreId: context[0].cookieStoreId,
|
||||
});
|
||||
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/';
|
||||
}
|
||||
var created = browser.tabs.create({
|
||||
active: true,
|
||||
pinned: true,
|
||||
cookieStoreId: context[0].cookieStoreId,
|
||||
url: requestDetails.url,
|
||||
});
|
||||
created.then(onCreated, onContextError);
|
||||
}
|
||||
var gettab = browser.tabs.get(tabId.id);
|
||||
gettab.then(Create, onContextError);
|
||||
return tabId;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('(isolate)Context Error', error);
|
||||
}
|
||||
};
|
||||
var mailTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
@@ -390,7 +442,7 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('in favor of', tab.id);
|
||||
console.log('with context', tab.cookieStoreId);
|
||||
browser.tabs.remove(tabId.id);
|
||||
browser.tabs.move(tab.id, { index: 3 });
|
||||
browser.tabs.move(tab.id, { index: 0 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
@@ -438,6 +490,7 @@ var contextSetup = function(requestDetails) {
|
||||
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 });
|
||||
}
|
||||
for (index = 0; index < tabs.length; index++) {
|
||||
if (index != tabs.length - 1)
|
||||
@@ -565,6 +618,14 @@ var contextSetup = function(requestDetails) {
|
||||
if (requestDetails.tabId > 0) {
|
||||
var tab = tabGet(requestDetails.tabId);
|
||||
if (i2pHost(requestDetails.url)) {
|
||||
var thn = i2pHostName(requestDetails.url);
|
||||
if (requestDetails.url.includes('=' + thn)) {
|
||||
console.log('(scrub)checking search hostnames =' + thn);
|
||||
var tpt = requestDetails.url.split('=' + thn, 2);
|
||||
requestDetails.url =
|
||||
'http://' + thn + '/' + tpt[1].replace('%2F', '');
|
||||
}
|
||||
console.log('(scrub) new hostname', requestDetails.url);
|
||||
var setcookie = browser.cookies.set({
|
||||
firstPartyDomain: i2pHostName(requestDetails.url),
|
||||
url: requestDetails.url,
|
||||
@@ -592,6 +653,9 @@ var contextSetup = function(requestDetails) {
|
||||
} else if (routerhost === 'muwire') {
|
||||
var routertab = tab.then(muwireTabFind, onContextError);
|
||||
return requestDetails;
|
||||
} else if (routerhost === 'i2pbote') {
|
||||
var routertab = tab.then(i2pboteTabFind, onContextError);
|
||||
return requestDetails;
|
||||
} else if (routerhost === 'routerconsole') {
|
||||
var routertab = tab.then(routerTabFind, onContextError);
|
||||
return requestDetails;
|
||||
@@ -763,61 +827,88 @@ var coolheadersSetup = function(e) {
|
||||
return asyncSetPageAction;
|
||||
};
|
||||
|
||||
function getClearTab(tobj) {
|
||||
function getTabURL(tab) {
|
||||
if (tab.url.startsWith("https")) {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-location" })
|
||||
.then((response) => {
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "location.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
browser.pageAction.setTitle({
|
||||
tabId: tab.id,
|
||||
title: response.content,
|
||||
});
|
||||
browser.pageAction.show(tab.id);
|
||||
}
|
||||
});
|
||||
console.log("(pageaction)", tab.id, tab.url);
|
||||
} else {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-torrentlocation" })
|
||||
.then((response) => {
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "torrent.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
browser.pageAction.setTitle({
|
||||
tabId: tab.id,
|
||||
title: response.content,
|
||||
});
|
||||
browser.pageAction.show(tab.id);
|
||||
}
|
||||
});
|
||||
console.log("(pageaction)", tab.id, tab.url);
|
||||
}
|
||||
}
|
||||
if (typeof tobj == "number") {
|
||||
browser.tabs.get(tobj).then(getTabURL, onError);
|
||||
function getTabURL(tab) {
|
||||
console.log("(scrub)", tab);
|
||||
if (tab.url.startsWith("https")) {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-location" })
|
||||
.then((response) => {
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "location.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
browser.pageAction.setTitle({
|
||||
tabId: tab.id,
|
||||
title: response.content,
|
||||
});
|
||||
browser.pageAction.show(tab.id);
|
||||
}
|
||||
});
|
||||
console.log("(pageaction)", tab.id, tab.url);
|
||||
} else {
|
||||
browser.tabs.get(tobj.tabId).then(getTabURL, onError);
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-torrentlocation" })
|
||||
.then((response) => {
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "torrent.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
browser.pageAction.setTitle({
|
||||
tabId: tab.id,
|
||||
title: response.content,
|
||||
});
|
||||
browser.pageAction.show(tab.id);
|
||||
}
|
||||
});
|
||||
console.log("(pageaction)", tab.id, tab.url);
|
||||
}
|
||||
}
|
||||
|
||||
function getClearTab(tobj) {
|
||||
if (typeof tobj == "number") {
|
||||
browser.tabs.get(tobj).then(getTabURL, onError);
|
||||
}
|
||||
if (typeof tobj.tabId == "number") {
|
||||
console.log("(scrub) tobj", tobj);
|
||||
browser.tabs.get(tobj.tabId).then(getTabURL, onError);
|
||||
} else {
|
||||
for (let tab in tobj.tabIds) {
|
||||
console.log("(scrub) tab", tobj, tab, tobj.tabIds[tab]);
|
||||
browser.tabs.get(tobj.tabIds[tab]).then(getTabURL, onError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const filter = {
|
||||
url: [{ hostContains: ".i2p" }],
|
||||
};
|
||||
|
||||
function logOnDOMContentLoaded(details) {
|
||||
console.log(`onDOMContentLoaded: ${details.url}`);
|
||||
}
|
||||
|
||||
browser.webNavigation.onDOMContentLoaded.addListener(getClearTab, filter);
|
||||
|
||||
browser.tabs.onActivated.addListener(getClearTab);
|
||||
browser.tabs.onUpdated.addListener(getClearTab);
|
||||
browser.tabs.onAttached.addListener(getClearTab);
|
||||
browser.tabs.onCreated.addListener(getClearTab);
|
||||
browser.tabs.onDetached.addListener(getClearTab);
|
||||
browser.tabs.onHighlighted.addListener(getClearTab);
|
||||
browser.tabs.onMoved.addListener(getClearTab);
|
||||
browser.tabs.onRemoved.addListener(getClearTab);
|
||||
browser.tabs.onReplaced.addListener(getClearTab);
|
||||
browser.tabs.onZoomChange.addListener(getClearTab);
|
||||
|
||||
function reloadTabs(tabs) {
|
||||
for (let tab of tabs) {
|
||||
@@ -837,9 +928,11 @@ querying.then(reloadTabs, onError);
|
||||
browser.webRequest.onHeadersReceived.addListener(
|
||||
coolheadersSetup,
|
||||
{ urls: ["<all_urls>"] },
|
||||
["blocking", "responseHeaders"]
|
||||
["responseHeaders"]
|
||||
);
|
||||
|
||||
//browser.webNavigation.onDOMContentLoaded.addListener(getClearTab)
|
||||
|
||||
browser.webRequest.onBeforeRequest.addListener(
|
||||
contextSetup,
|
||||
{ urls: ["<all_urls>"] },
|
||||
|
@@ -14,4 +14,10 @@ button {
|
||||
}
|
||||
.button-list {
|
||||
display: inline
|
||||
}
|
||||
#hidden {
|
||||
display: none
|
||||
}
|
||||
.hidden {
|
||||
display: none
|
||||
}
|
@@ -40,6 +40,7 @@
|
||||
|
||||
<div id="i2pbrowser-description">
|
||||
<p id="description">You are now able to use I2P in this browser.</p>
|
||||
<button class="hidden" id="visit-irc">Visit IRC</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Reference in New Issue
Block a user