use per-tab title prefixes, multilingual titles, multilingual menus
This commit is contained in:
@@ -8,11 +8,51 @@
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"titlePreface": {
|
||||
"message": "I2P Browser - ",
|
||||
"message": "I2P Browser",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"titlePrefacePrivate": {
|
||||
"message": "I2P Browser (Private) - ",
|
||||
"message": "I2P Browser (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"webPreface": {
|
||||
"message": "Web Browser",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"webPrefacePrivate": {
|
||||
"message": "Web Browser (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"routerPreface": {
|
||||
"message": "Router Console",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"routerPrefacePrivate": {
|
||||
"message": "Router Console (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"torrentsPreface": {
|
||||
"message": "Bittorrent",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"torrentsPrefacePrivate": {
|
||||
"message": "Bittorrent (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"mailPreface": {
|
||||
"message": "Web Mail",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"mailPrefacePrivate": {
|
||||
"message": "Web Mail (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"i2ptunnelPreface": {
|
||||
"message": "Hidden Services Manager",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"i2ptunnelPrefacePrivate": {
|
||||
"message": "Hidden Services Manager (Private)",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"resetMessage": {
|
||||
|
||||
@@ -1,3 +1,16 @@
|
||||
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");
|
||||
|
||||
function onGot(contexts) {
|
||||
var ids = [];
|
||||
for (let context of contexts) {
|
||||
@@ -5,55 +18,55 @@ function onGot(contexts) {
|
||||
ids.push(context.name);
|
||||
}
|
||||
console.log("Checking new contexts");
|
||||
if (ids.indexOf("I2P Browsing") == -1) {
|
||||
if (ids.indexOf(titlepref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "I2P Browsing",
|
||||
name: titlepref,
|
||||
color: "orange",
|
||||
icon: "fingerprint"
|
||||
})
|
||||
.then(onCreated, onError);
|
||||
}
|
||||
if (ids.indexOf("Web Browsing") == -1) {
|
||||
if (ids.indexOf(webpref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "Web Browsing",
|
||||
name: webpref,
|
||||
color: "red",
|
||||
icon: "circle"
|
||||
})
|
||||
.then(onCreated, onError);
|
||||
}
|
||||
if (ids.indexOf("Router Console") == -1) {
|
||||
if (ids.indexOf(routerpref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "Router Console",
|
||||
name: routerpref,
|
||||
color: "blue",
|
||||
icon: "briefcase"
|
||||
})
|
||||
.then(onCreated, onError);
|
||||
}
|
||||
if (ids.indexOf("Hidden Services Manager") == -1) {
|
||||
if (ids.indexOf(tunnelpref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "Hidden Services Manager",
|
||||
name: tunnelpref,
|
||||
color: "green",
|
||||
icon: "tree"
|
||||
})
|
||||
.then(onCreated, onError);
|
||||
}
|
||||
if (ids.indexOf("Web Mail") == -1) {
|
||||
if (ids.indexOf(mailpref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "Web Mail",
|
||||
name: mailpref,
|
||||
color: "yellow",
|
||||
icon: "briefcase"
|
||||
})
|
||||
.then(onCreated, onError);
|
||||
}
|
||||
if (ids.indexOf("Bittorrent") == -1) {
|
||||
if (ids.indexOf(torrentpref) == -1) {
|
||||
browser.contextualIdentities
|
||||
.create({
|
||||
name: "Bittorrent",
|
||||
name: torrentpref,
|
||||
color: "purple",
|
||||
icon: "chill"
|
||||
})
|
||||
@@ -79,9 +92,6 @@ if (!isDroid()) {
|
||||
chrome.tabs.onActivated.addListener(themeWindowByTab);
|
||||
}
|
||||
|
||||
var titlepref = chrome.i18n.getMessage("titlePreface");
|
||||
var titleprefpriv = chrome.i18n.getMessage("titlePrefacePrivate");
|
||||
|
||||
function themeWindowByTab(tabId) {
|
||||
function tabWindow(tab) {
|
||||
getwindow = browser.windows.get(tab.windowId);
|
||||
@@ -99,7 +109,7 @@ function themeWindow(window) {
|
||||
// Check if the window is in private browsing
|
||||
function logTabs(tabInfo) {
|
||||
function onGot(context) {
|
||||
if (context.name == "I2P Browsing") {
|
||||
if (context.name == titlepref) {
|
||||
console.log("Active in I2P window");
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
@@ -116,7 +126,7 @@ function themeWindow(window) {
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Router Console") {
|
||||
} else if (context.name == routerpref) {
|
||||
console.log("Active in Router Console window");
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
@@ -133,7 +143,7 @@ function themeWindow(window) {
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Hidden Services Manager") {
|
||||
} else if (context.name == tunnelpref) {
|
||||
console.log("Active in Hidden Services Manager window");
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
@@ -150,7 +160,7 @@ function themeWindow(window) {
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Web Mail") {
|
||||
} else if (context.name == mailpref) {
|
||||
console.log("Active in Web Mail window");
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
@@ -167,7 +177,7 @@ function themeWindow(window) {
|
||||
}
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Bittorrent") {
|
||||
} else if (context.name == torrentpref) {
|
||||
console.log("Active in Bittorrent window");
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
@@ -213,7 +223,7 @@ function setTitle(window) {
|
||||
console.log(tabInfo);
|
||||
|
||||
function onGot(context) {
|
||||
if (context.name == "I2P Browsing") {
|
||||
if (context.name == titlepref) {
|
||||
console.log("Active in I2P window");
|
||||
|
||||
if (window.incognito) {
|
||||
@@ -225,64 +235,63 @@ function setTitle(window) {
|
||||
titlePreface: titlepref
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Web Browsing") {
|
||||
} else if (context.name == webpref) {
|
||||
console.log("Active in Web window");
|
||||
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
titlePreface: ""
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
titlePreface: ""
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Router Console") {
|
||||
} else if (context.name == routerpref) {
|
||||
console.log("Active in Router Console window");
|
||||
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
titlePreface: routerprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
titlePreface: routerpref
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Hidden Services Manager") {
|
||||
} else if (context.name == tunnelpref) {
|
||||
console.log("Active in Hidden Services Manager window");
|
||||
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
titlePreface: tunnelprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
titlePreface: tunnelpref
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Web Mail") {
|
||||
} else if (context.name == mailpref) {
|
||||
console.log("Active in Web Mail window");
|
||||
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
titlePreface: mailprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
titlePreface: mailpref
|
||||
});
|
||||
}
|
||||
} else if (context.name == "Bittorrent") {
|
||||
} else if (context.name == torrentpref) {
|
||||
console.log("Active in I2P window");
|
||||
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
titlePreface: torrentprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
titlePreface: torrentpref
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -329,3 +338,14 @@ chrome.tabs.onCreated.addListener(() => {
|
||||
});
|
||||
getting.then(setTitle, onError);
|
||||
});
|
||||
|
||||
|
||||
function handleUpdated(updateInfo) {
|
||||
if (updateInfo.theme.colors) {
|
||||
console.log(`Theme was applied: ${updateInfo.theme}`);
|
||||
} else {
|
||||
console.log(`Theme was removed`);
|
||||
}
|
||||
}
|
||||
|
||||
browser.theme.onUpdated.addListener(handleUpdated);
|
||||
14
privacy.js
14
privacy.js
@@ -1,3 +1,15 @@
|
||||
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");
|
||||
|
||||
|
||||
function onSet(result) {
|
||||
if (result) {
|
||||
console.log("->: Value was updated");
|
||||
@@ -270,7 +282,7 @@ function forgetBrowsingData(storedSettings) {
|
||||
console.log("cleared Local Storage");
|
||||
|
||||
contexts = browser.contextualIdentities.query({
|
||||
name: "I2P Browsing"
|
||||
name: titlepref
|
||||
});
|
||||
|
||||
function deepCleanCookies(cookies) {
|
||||
|
||||
18
proxy.js
18
proxy.js
@@ -1,3 +1,15 @@
|
||||
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");
|
||||
|
||||
|
||||
browser.privacy.network.peerConnectionEnabled.set({
|
||||
value: false
|
||||
});
|
||||
@@ -23,7 +35,7 @@ var handleContextProxyRequest = async function(requestDetails) {
|
||||
proxyDns: false
|
||||
};
|
||||
if (context != undefined) {
|
||||
if (context.name == "I2P Browsing") {
|
||||
if (context.name == titlepref) {
|
||||
proxy = {
|
||||
type: getScheme(),
|
||||
host: getHost(),
|
||||
@@ -38,7 +50,7 @@ var handleContextProxyRequest = async function(requestDetails) {
|
||||
proxy.host + ":" + proxy.port
|
||||
);
|
||||
return proxy;
|
||||
} else if (context.name == "Router Console") {
|
||||
} else if (context.name == routerpref) {
|
||||
if (routerHost(requestDetails.url)) {
|
||||
return proxy;
|
||||
} else if (!routerHost(requestDetails.url)) {
|
||||
@@ -62,7 +74,7 @@ var handleContextProxyRequest = async function(requestDetails) {
|
||||
proxy.host + ":" + proxy.port
|
||||
);
|
||||
return proxy;
|
||||
} else if (context.name == "Web Browsing") {
|
||||
} else if (context.name == webpref) {
|
||||
if (localHost(requestDetails.url)) {
|
||||
if (!routerHost(requestDetails.url)) {
|
||||
proxy = {
|
||||
|
||||
31
scrub.js
31
scrub.js
@@ -1,10 +1,23 @@
|
||||
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 contextScrub = async function(requestDetails) {
|
||||
console.log("(scrub)Scrubbing info from contextualized request");
|
||||
try {
|
||||
var headerScrub = function(context) {
|
||||
if (!context) {
|
||||
console.error("Context not found");
|
||||
} else if (context.name == "I2P Browsing") {
|
||||
} else if (context.name == titlepref) {
|
||||
var ua = "MYOB/6.66 (AN/ON)";
|
||||
if (i2pHost(requestDetails.url)) {
|
||||
for (var header of requestDetails.requestHeaders) {
|
||||
@@ -17,7 +30,7 @@ var contextScrub = async function(requestDetails) {
|
||||
return {
|
||||
requestHeaders: requestDetails.requestHeaders
|
||||
};
|
||||
} else if (context.name == "Router Console") {
|
||||
} else if (context.name == routerpref) {
|
||||
var ua = "MYOB/6.66 (AN/ON)";
|
||||
if (i2pHost(requestDetails.url)) {
|
||||
for (var header of requestDetails.requestHeaders) {
|
||||
@@ -45,7 +58,7 @@ var contextScrub = async function(requestDetails) {
|
||||
var tabFind = async function(tabId) {
|
||||
try {
|
||||
context = await browser.contextualIdentities.query({
|
||||
name: "I2P Browsing"
|
||||
name: titlepref
|
||||
});
|
||||
tabId.cookieStoreId = context[0].cookieStoreId;
|
||||
console.log("(scrub) forcing context", tabId.cookieStoreId);
|
||||
@@ -96,7 +109,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var tabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "I2P Browsing"
|
||||
name: titlepref
|
||||
});
|
||||
if (tabId.cookieStoreId != context[0].cookieStoreId) {
|
||||
console.log(
|
||||
@@ -134,7 +147,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var routerTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "Router Console"
|
||||
name: routerpref
|
||||
});
|
||||
if (tabId.cookieStoreId != context[0].cookieStoreId) {
|
||||
console.log(
|
||||
@@ -172,7 +185,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var i2ptunnelTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "Hidden Services Manager"
|
||||
name: tunnelpref
|
||||
});
|
||||
if (tabId.cookieStoreId != context[0].cookieStoreId) {
|
||||
console.log(
|
||||
@@ -212,7 +225,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var snarkTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "Bittorrent"
|
||||
name: torrentpref
|
||||
});
|
||||
if (tabId.cookieStoreId != context[0].cookieStoreId) {
|
||||
console.log(
|
||||
@@ -250,7 +263,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var mailTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "Web Mail"
|
||||
name: mailpref
|
||||
});
|
||||
if (tabId.cookieStoreId != context[0].cookieStoreId) {
|
||||
console.log(
|
||||
@@ -288,7 +301,7 @@ var contextSetup = async function(requestDetails) {
|
||||
var anyTabFind = async function(tabId) {
|
||||
try {
|
||||
var context = await browser.contextualIdentities.query({
|
||||
name: "Web Browsing"
|
||||
name: webpref
|
||||
});
|
||||
console.log("(ISOLATE)", tabId.cookieStoreId);
|
||||
if (
|
||||
|
||||
Reference in New Issue
Block a user