use per-tab title prefixes, multilingual titles, multilingual menus

This commit is contained in:
idk
2019-11-11 23:31:37 -05:00
parent e819532f29
commit d7c4340b4c
5 changed files with 149 additions and 52 deletions

View File

@@ -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": {

View File

@@ -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);

View File

@@ -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) {

View File

@@ -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 = {

View File

@@ -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 (