Compare commits
16 Commits
themes-aga
...
thoroughly
Author | SHA1 | Date | |
---|---|---|---|
![]() |
49ce0162d1 | ||
![]() |
153a49e18f | ||
![]() |
88cc54217c | ||
![]() |
83bb92c0cb | ||
![]() |
f337e64b81 | ||
![]() |
42f90273e2 | ||
![]() |
616d8429b7 | ||
![]() |
3261fd1505 | ||
![]() |
4ea8fd4826 | ||
![]() |
c899f7b1e7 | ||
![]() |
02bc927262 | ||
![]() |
5393d7f26f | ||
![]() |
fa66c26b09 | ||
![]() |
3a770cb518 | ||
![]() |
db8508e75b | ||
![]() |
95e0642126 |
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.98
|
||||
VERSION=0.97
|
||||
MOZ_VERSION=0.100
|
||||
VERSION=0.99
|
||||
|
||||
## INCREMENT THIS EVERY TIME YOU DO A RELEASE
|
||||
LAST_VERSION=0.95
|
||||
LAST_VERSION=0.97
|
||||
|
||||
YELLOW=F7E59A
|
||||
ORANGE=FFC56D
|
||||
|
@@ -16,7 +16,7 @@
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"extensionVersion": {
|
||||
"message": "0.77",
|
||||
"message": "0.99",
|
||||
"description": "Version of the extension."
|
||||
},
|
||||
"proxyFailedStatus": {
|
||||
|
@@ -16,7 +16,7 @@
|
||||
"description": "Descripción de la extensión."
|
||||
},
|
||||
"extensionVersion": {
|
||||
"message": "0,77",
|
||||
"message": "0,99",
|
||||
"description": "Versión de la extensión."
|
||||
},
|
||||
"proxyFailedStatus": {
|
||||
|
@@ -215,16 +215,7 @@ function themeWindow(window) {
|
||||
function onContextGotTheme(context) {
|
||||
if (context.name == titlepref) {
|
||||
browserTheme();
|
||||
if (tabInfo[0].url.startsWith("https://")) {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tabInfo[0].id,
|
||||
popup: "security.html",
|
||||
});
|
||||
//console.log("(background) tabinfo", tabInfo[0].id)
|
||||
browser.pageAction.show(tabInfo[0].id);
|
||||
} else {
|
||||
//browser.pageAction.hide(tabInfo[0].id);
|
||||
}
|
||||
browser.pageAction.show(tabInfo[0].id);
|
||||
} else if (context.name == routerpref) {
|
||||
console.log("Active in Router Console window");
|
||||
dynamicTheme();
|
||||
@@ -378,35 +369,37 @@ function handleUpdated(updateInfo) {
|
||||
function maybeSet(them) {
|
||||
console.log("original theme found:", them, Object.keys(them).length);
|
||||
try {
|
||||
console.log(
|
||||
"testing theme",
|
||||
updateInfo.theme.colors.toolbar,
|
||||
"!=",
|
||||
btheme.colors.toolbar
|
||||
);
|
||||
console.log(
|
||||
"testing theme",
|
||||
updateInfo.theme.colors.toolbar,
|
||||
"!=",
|
||||
dtheme.colors.toolbar
|
||||
);
|
||||
if (
|
||||
updateInfo.theme.colors.toolbar != dtheme.colors.toolbar &&
|
||||
updateInfo.theme.colors.toolbar != btheme.colors.toolbar
|
||||
) {
|
||||
function onSet() {
|
||||
console.log("stored theme:", updateInfo.theme);
|
||||
}
|
||||
/*if (
|
||||
if (updateInfo.theme.colors != null) {
|
||||
console.log(
|
||||
"testing theme",
|
||||
updateInfo.theme.colors.toolbar,
|
||||
"!=",
|
||||
btheme.colors.toolbar
|
||||
);
|
||||
console.log(
|
||||
"testing theme",
|
||||
updateInfo.theme.colors.toolbar,
|
||||
"!=",
|
||||
dtheme.colors.toolbar
|
||||
);
|
||||
if (
|
||||
updateInfo.theme.colors.toolbar != dtheme.colors.toolbar &&
|
||||
updateInfo.theme.colors.toolbar != btheme.colors.toolbar
|
||||
) {
|
||||
function onSet() {
|
||||
console.log("stored theme:", updateInfo.theme);
|
||||
}
|
||||
/*if (
|
||||
updateInfo.theme.colors != null &&
|
||||
updateInfo.theme.images != null &&
|
||||
updateInfo.theme.properties != null
|
||||
) {*/
|
||||
console.log("storing theme:", updateInfo.theme);
|
||||
browser.storage.local
|
||||
.set({ originalTheme: updateInfo.theme })
|
||||
.then(onSet, onError);
|
||||
//}
|
||||
console.log("storing theme:", updateInfo.theme);
|
||||
browser.storage.local
|
||||
.set({ originalTheme: updateInfo.theme })
|
||||
.then(onSet, onError);
|
||||
//}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.log("theme storage error", e);
|
||||
@@ -471,20 +464,37 @@ browser.webRequest.onHeadersReceived.addListener(
|
||||
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);
|
||||
for (let context in ctx) {
|
||||
function conditionallyDelete(tabs) {
|
||||
if (tabs.length == 0) {
|
||||
browser.contextualIdentities.remove(context.cookieStoreId);
|
||||
}
|
||||
}
|
||||
var tabs = browser.tabs.query({ cookieStoreId: context.cookieStoreId });
|
||||
tabs.then(conditionallyDelete, onError);
|
||||
}
|
||||
var tabs = browser.tabs.query({ cookieStoreId: ctx[0].cookieStoreId });
|
||||
tabs.then(conditionallyDelete, onError);
|
||||
}
|
||||
getContext.then(checkTabs, onError);
|
||||
}
|
||||
|
||||
function onOpenedWindowCheck() {
|
||||
var getContext = browser.contextualIdentities.query({ name: titlepref });
|
||||
function checkTabs(ctx) {
|
||||
for (let context in ctx) {
|
||||
function conditionallyDelete(tabs) {
|
||||
if (tabs.length == 0) {
|
||||
browser.contextualIdentities.remove(context.cookieStoreId);
|
||||
}
|
||||
}
|
||||
var tabs = browser.tabs.query({ cookieStoreId: context.cookieStoreId });
|
||||
tabs.then(conditionallyDelete, onError);
|
||||
}
|
||||
}
|
||||
getContext.then(checkTabs, onError);
|
||||
}
|
||||
|
||||
onOpenedWindowCheck();
|
||||
|
||||
browser.tabs.onRemoved.addListener(onClosedWindowCheck);
|
||||
browser.windows.onRemoved.addListener(onClosedWindowCheck);
|
||||
browser.windows.onCreated.addListener(onClosedWindowCheck);
|
||||
browser.windows.onCreated.addListener(onOpenedWindowCheck);
|
||||
|
25
content.js
25
content.js
@@ -51,3 +51,28 @@ contentUpdateById("releases", "releases");
|
||||
fetch("http://proxy.i2p").then((myJson) => {
|
||||
contentUpdateById("proxy-check", "proxySuccessStatus");
|
||||
});
|
||||
|
||||
function hide(elements) {
|
||||
elements = elements.length ? elements : [elements];
|
||||
for (var index = 0; index < elements.length; index++) {
|
||||
elements[index].style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function unhide(elements) {
|
||||
elements = elements.length ? elements : [elements];
|
||||
for (var index = 0; index < elements.length; index++) {
|
||||
elements[index].style.display = "inline-block";
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: Don't hard-code this.
|
||||
fetch("http://127.0.0.1:7657/themes/console/light/images/i2plogo.png")
|
||||
.then((myJson) => {
|
||||
var consoleLinks = document.querySelectorAll(".application-info");
|
||||
unhide(consoleLinks);
|
||||
})
|
||||
.catch((error) => {
|
||||
var consoleLinks = document.querySelectorAll(".application-info");
|
||||
hide(consoleLinks);
|
||||
});
|
||||
|
7
debian/changelog
vendored
7
debian/changelog
vendored
@@ -1,3 +1,10 @@
|
||||
i2psetproxy.js (0.99-1) UNRELEASED; urgency=low
|
||||
|
||||
* Sweeping changes to styles
|
||||
* fix for issue when using noscript and visiting susimail
|
||||
|
||||
-- idk <hankhill19580@gmail.com> Mon, 24 May 2021 2:05:21 -0400
|
||||
|
||||
i2psetproxy.js (0.97-1) UNRELEASED; urgency=low
|
||||
|
||||
* Fix theme issue, add x-i2p-torrentlocation HEADER support
|
||||
|
@@ -19,8 +19,10 @@ function routerHost(url) {
|
||||
console.log("(urlcheck) Torrent application path", final);
|
||||
return "i2psnark";
|
||||
} else if (final === "webmail" || final === "susimail") {
|
||||
console.log("(urlcheck) Mail application path", final);
|
||||
return "webmail";
|
||||
if (!url.includes(".css")) {
|
||||
console.log("(urlcheck) Mail application path", final);
|
||||
return "webmail";
|
||||
}
|
||||
} else if (final.startsWith("MuWire")) {
|
||||
if (!url.includes(".png")) {
|
||||
console.log("(urlcheck) MuWire application path", final);
|
||||
@@ -35,6 +37,8 @@ function routerHost(url) {
|
||||
final === "home" ||
|
||||
final === "console" ||
|
||||
final === "dns" ||
|
||||
final === "susidns" ||
|
||||
final.startsWith("susidns") ||
|
||||
final === "sitemap" ||
|
||||
final.startsWith("config")
|
||||
) {
|
||||
|
383
home.css
383
home.css
@@ -1,34 +1,140 @@
|
||||
|
||||
|
||||
* {
|
||||
padding: 0;
|
||||
color: #1f1a24;
|
||||
margin: 0
|
||||
margin: 0;
|
||||
}
|
||||
a,
|
||||
button {
|
||||
color: #1f1a24;
|
||||
|
||||
html {
|
||||
margin: 0 4%;
|
||||
padding: 0 20px;
|
||||
min-height: 100%;
|
||||
background: #9ab;
|
||||
background: repeating-linear-gradient(to bottom, #9ab, #89a 2px);
|
||||
scrollbar-color: #bcd #789;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
padding: 20px 40px;
|
||||
font-family: Open Sans, Noto Sans, Segoe UI, sans-serif;
|
||||
font-size: 12pt;
|
||||
color: #495057;
|
||||
text-decoration: none;
|
||||
word-wrap: break-word;
|
||||
border-left: 1px solid #495057;
|
||||
border-right: 1px solid #495057;
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, .1);
|
||||
background: #f2f2f2;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4 {
|
||||
display: block;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-transform: uppercase;
|
||||
font-weight: 900;
|
||||
font-size: 200%;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 120%;
|
||||
}
|
||||
|
||||
h4 {
|
||||
margin-bottom: 5px;
|
||||
text-align: right;
|
||||
text-transform: none;
|
||||
font-size: 90%;
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 15px;
|
||||
width: 100%;
|
||||
line-height: 1.4;
|
||||
word-wrap: break-word;
|
||||
text-align: justify;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 10px 20px;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
li {
|
||||
margin-left: 0;
|
||||
padding: 12px 15px 15px 20px;
|
||||
width: calc(100% - 40px);
|
||||
text-align: justify;
|
||||
border: 1px solid #9ab;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff;
|
||||
background: #dee2e6;
|
||||
}
|
||||
|
||||
li li {
|
||||
padding-bottom: 0;
|
||||
width: calc(100% - 40px);
|
||||
text-align: left;
|
||||
border: none;
|
||||
border-top: 1px solid #9ab;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
li li:first-of-type {
|
||||
margin-top: 15px;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
li a:first-of-type {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#applicationExplain {
|
||||
float: unset;
|
||||
}
|
||||
|
||||
li+li {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
h3+ul, ul+h3, ul+h2 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
a, button {
|
||||
color: #3b6bbf;
|
||||
text-decoration: none;
|
||||
background: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0;
|
||||
padding: 3px;
|
||||
margin: auto
|
||||
}
|
||||
|
||||
.applicationDesc {
|
||||
color: #81888f;
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0
|
||||
outline: 0;
|
||||
}
|
||||
.applicationDesc:hover,
|
||||
a:hover,
|
||||
button:hover {
|
||||
color: #495057;
|
||||
|
||||
.applicationDesc:hover, a:hover, button:hover {
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
button {
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
@@ -36,137 +142,77 @@ button {
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0
|
||||
}
|
||||
body {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0
|
||||
}
|
||||
.button-list {
|
||||
min-height: 230px;
|
||||
min-width: 230px
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
.background {
|
||||
height: 100%
|
||||
}
|
||||
p {
|
||||
line-height: 32px;
|
||||
font-size: 17px;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0
|
||||
background-color: #f8f8ff;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.content {
|
||||
min-height: 3rem;
|
||||
padding: 1rem;
|
||||
margin: 1.5rem;
|
||||
display: block;
|
||||
border-radius: 2px;
|
||||
min-width: 100%
|
||||
}
|
||||
#header,
|
||||
.application-info,
|
||||
.browser-info,
|
||||
.extended-info,
|
||||
.search-info {
|
||||
min-height: 3rem;
|
||||
padding: 1rem;
|
||||
margin-top: 1.5rem;
|
||||
display: block;
|
||||
min-height: 3rem;
|
||||
min-width: 95%;
|
||||
display: inline-block;
|
||||
border: 1px solid #d9d9d6;
|
||||
border-radius: 2px;
|
||||
min-width: 100%
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
background: #f8f8ff;
|
||||
}
|
||||
h1 {
|
||||
margin: auto;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 32px;
|
||||
color: #e6e6e7;
|
||||
background: #1f1a24;
|
||||
width: 100%;
|
||||
border-radius: 2px 2px 0 0
|
||||
}
|
||||
h2,
|
||||
h3 {
|
||||
margin-right: auto;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 25px;
|
||||
color: #e6e6e7;
|
||||
border-radius: 2px 2px 0 0;
|
||||
background: #1f1a24;
|
||||
width: 100%;
|
||||
padding-left: 5%
|
||||
}
|
||||
h4 {
|
||||
margin-right: auto;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
font-weight: 600;
|
||||
font-size: 20px!important;
|
||||
color: #41465f;
|
||||
border-radius: 2px 2px 0 0;
|
||||
background: #1f1a24;
|
||||
width: 100%;
|
||||
padding-left: 5%
|
||||
|
||||
#header, .application-info, .browser-info, .extended-info, .search-info {
|
||||
margin-top: 1.5rem;
|
||||
padding: 1rem;
|
||||
min-height: 3rem;
|
||||
min-width: 95%;
|
||||
display: inline-block;
|
||||
border: 1px solid #d9d9d6;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
background: #f8f8ff;
|
||||
}
|
||||
|
||||
.showhider {
|
||||
margin-right: auto;
|
||||
font-family: "Droid Sans","Noto Sans",Ubuntu,"Segoe UI","Lucida Grande",Verdana,Helvetica,sans-serif;
|
||||
border: none;
|
||||
padding: 0!important;
|
||||
text-transform: uppercase;
|
||||
background: none !important;
|
||||
border: none;
|
||||
width: 90%;
|
||||
color: #3b6bbf;
|
||||
text-decoration: none;
|
||||
font-weight: 700;
|
||||
word-wrap: break-word;
|
||||
outline: 0;
|
||||
text-align: left
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#links .showhider {
|
||||
font-size: 25px
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.section-header {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
margin-bottom: 80px
|
||||
}
|
||||
ul {
|
||||
margin: auto;
|
||||
border-radius: 2px;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
li {
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
.center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
width: 50%
|
||||
margin-bottom: 80px;
|
||||
}
|
||||
|
||||
#readyness {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
margin: 1rem;
|
||||
width: 42%;
|
||||
min-width: 42%;
|
||||
background: #dee2e6;
|
||||
text-align: center!important;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 2px;
|
||||
display: block
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#onboarding {
|
||||
min-height: 5rem;
|
||||
padding: .5rem;
|
||||
@@ -175,107 +221,138 @@ li {
|
||||
width: 42%;
|
||||
min-width: 42%;
|
||||
font-size: 2rem;
|
||||
background: #a48fe1;
|
||||
text-align: center!important;
|
||||
border-radius: 2px
|
||||
border: 1px solid #a48fe1;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
#i2pbrowser-description {
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
width: 50%;
|
||||
min-width: 50%;
|
||||
display: block
|
||||
}
|
||||
html body ul.label-list li {
|
||||
list-style: none;
|
||||
float: left
|
||||
}
|
||||
html body ul.label-list li:nth-child(odd) {
|
||||
clear: left
|
||||
display: inline-block;
|
||||
background: #dee2e6;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
#linksExplain {
|
||||
min-height: 5rem;
|
||||
padding: .5rem;
|
||||
margin: .5rem;
|
||||
width: 30%;
|
||||
min-width: 30%;
|
||||
background: #dee2e6;
|
||||
text-align: center!important;
|
||||
border-radius: 2px
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
#applicationExplain,
|
||||
#controlExplain {
|
||||
|
||||
#applicationExplain, #controlExplain {
|
||||
min-height: 5rem;
|
||||
padding: .5rem;
|
||||
margin: .5rem;
|
||||
text-align: left!important;
|
||||
float: left
|
||||
width: 30%;
|
||||
min-width: 30%;
|
||||
background: #dee2e6;
|
||||
text-align: center!important;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
float: left;
|
||||
}
|
||||
|
||||
#proxyReady {
|
||||
min-height: 3rem;
|
||||
padding: .5rem;
|
||||
margin: .2rem;
|
||||
width: 38%;
|
||||
min-width: 38%;
|
||||
display: block;
|
||||
display: inline-block;
|
||||
background: #d9d9d6;
|
||||
float: right;
|
||||
text-align: center!important
|
||||
text-align: center!important;
|
||||
border: 1px solid #d9d9d6;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
#proxyUnready {
|
||||
min-height: 3rem;
|
||||
padding: .5rem;
|
||||
margin: .2rem;
|
||||
width: 38%;
|
||||
min-width: 38%;
|
||||
display: block;
|
||||
display: inline-block;
|
||||
float: right;
|
||||
text-align: center!important
|
||||
text-align: center!important;
|
||||
border: 1px solid #ffc56d;
|
||||
border-radius: 2px;
|
||||
background: #ffc56d;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
#consoleOn {
|
||||
min-height: 3rem;
|
||||
padding: .5rem;
|
||||
margin: .2rem;
|
||||
width: 38%;
|
||||
min-width: 38%;
|
||||
display: block;
|
||||
display: inline-block;
|
||||
float: left;
|
||||
text-align: center!important
|
||||
}
|
||||
.tabicon {
|
||||
min-width: 64px;
|
||||
min-height: 64px
|
||||
}
|
||||
li.application {
|
||||
text-align: left
|
||||
}
|
||||
button.applicationName {
|
||||
width: auto
|
||||
text-align: center!important;
|
||||
border: 1px solid #f7e59a;
|
||||
border-radius: 2px;
|
||||
background: #f7e59a;
|
||||
box-shadow: inset 0 0 0 1px #fff, 0 0 1px #ccc;
|
||||
}
|
||||
|
||||
.onboardingContent {
|
||||
font-size: .8rem!important;
|
||||
text-align: left;
|
||||
display: none
|
||||
display: none;
|
||||
}
|
||||
|
||||
#info-content {
|
||||
display: none
|
||||
display: none;
|
||||
}
|
||||
.consoleOn:hover #proxy-check,
|
||||
.proxyReady:hover #proxy-check {
|
||||
|
||||
.consoleOn:hover #proxy-check, .proxyReady:hover #proxy-check {
|
||||
visibility: visible;
|
||||
opacity: 1
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
margin: 3%
|
||||
}
|
||||
|
||||
img.readyness {
|
||||
height: 100%;
|
||||
width: auto
|
||||
width: auto;
|
||||
}
|
||||
input {
|
||||
color: #1f1a24
|
||||
|
||||
@media only screen and (max-width: 399px) {
|
||||
.application-info {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
#hidden {
|
||||
display: none
|
||||
|
||||
@media screen and (max-width: 1200px) {
|
||||
body {
|
||||
font-size: 10.5pt;
|
||||
}
|
||||
}
|
||||
|
||||
video {
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.hidden {
|
||||
visibility: none;
|
||||
display: none
|
||||
}
|
142
home.html
142
home.html
@@ -1,151 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="home.css" rel="stylesheet">
|
||||
<link href="search.css" rel="stylesheet">
|
||||
<link href="sidebar.css" rel="stylesheet">
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<!--<div>-->
|
||||
|
||||
<div class='background'>
|
||||
<div class='content'>
|
||||
<div class="text-section-header">
|
||||
<h1 id="text-section-header">I2P Browsing</h1>
|
||||
</div>
|
||||
|
||||
<div id="i2pbrowser-version">
|
||||
</div>
|
||||
|
||||
<div id="i2pbrowser-description">
|
||||
<p id="description">I2P in Private Browsing is a webextension to secure and enhance your I2P use in the browser.</p>
|
||||
|
||||
<p id="beta">This is an experimental product.</p>
|
||||
</div>
|
||||
|
||||
<div id="readyness">
|
||||
<!--<div id="consoleOn" class="hideIfI2PConsoleOff">
|
||||
<img class="readyness" src="http://proxy.i2p/themes/console/images/local_up.png" alt="Proxy is not ready."/>
|
||||
<span id="proxy-check">Proxy is ready.</span>
|
||||
</div>-->
|
||||
<!--<div id="proxyUnready" class="hideIfI2PProxyOn">The proxy is not ready yet.</div>-->
|
||||
|
||||
<div class="hideIfI2PProxyOff" id="proxyReady">
|
||||
<img alt="Proxy is not ready." class="readyness" src="http://proxy.i2p/themes/console/images/local_up.png"> <span id="proxy-check">Proxy is ready.</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="hideIfI2PConsoleOff" id="onboarding">
|
||||
<h3 id="onboardingTitle">New to I2P? Learn more here.</h3>
|
||||
|
||||
<h4 id="onboardingZero"><button class="showhider" id="onboardingButtonZero">Protect your Privacy</button>
|
||||
</h4>
|
||||
|
||||
<p class="onboardingContent" id="onboardingContentZero">I2P Browser allows you to surf the internet using the private and secure I2P network. When using it, you are protected against tracking, surveillance, and censorship as a first-class participant in the I2P network. I2P Browser isolates cookies and deletes your browser history after your session. These modifications ensure your privacy and security are protected in the browser.</p>
|
||||
|
||||
<h4 id="onboardingOne"><button class="showhider" id="onboardingButtonOne">Configure your Experience</button>
|
||||
</h4>
|
||||
|
||||
<p class="onboardingContent" id="onboardingContentOne">We also provide you with additional settings for bumping up your browser security. Our Security Settings allow you to block elements that could be used to attack your computer. Click below to see what the different options do. Note: By default, NoScript and HTTPS Everywhere are not included on the toolbar, but you can customize your toolbar to add them. With all the security and privacy features provided by I2P, your experience while browsing the internet may be a little different. Things may be a bit slower, and depending on your security level, some elements may not work or load. You may also be asked to prove you are a human and not a robot.</p>
|
||||
|
||||
<h4 id="onboardingTwo"><button class="showhider" id="onboardingButtonTwo">Share Files</button>
|
||||
</h4>
|
||||
|
||||
<p class="onboardingContent" id="onboardingContentTwo">I2P is capable of using peer-to-peer applications like BitTorrent, protecting your identity when you share files. Our anonymous bittorrent client is available in the browser.</p>
|
||||
|
||||
<h4 id="onboardingThree"><button class="showhider" id="onboardingButtonThree">Hidden e-mail</button>
|
||||
</h4>
|
||||
|
||||
<p class="onboardingContent" id="onboardingContentThree">There is also an anonymous e-mail service available inside of I2P, which is accessible from our browser via the menu directly below.</p>
|
||||
|
||||
<h4 id="onboardingFour"><button class="showhider" id="onboardingButtonFour">Experience Tips</button>
|
||||
</h4>
|
||||
|
||||
<p class="onboardingContent" id="onboardingContentFour">With all the security and privacy features provided by I2P, your experience while browsing the internet may be a little different. Things may be a bit slower, and depending on your security level, some elements may not work or load. You may also be asked to prove you are a human and not a robot.</p>
|
||||
</div>
|
||||
<!--<p class="hideIfI2POn">&aboutI2p.warn_not_running; <a href="about:i2p">&aboutI2p.refresh_text;</a> &aboutI2p.reccommend_not_running;</p>-->
|
||||
|
||||
<div class="application-info">
|
||||
<p class="hideIfI2PConsoleOff">
|
||||
</p>
|
||||
|
||||
<h3 id="applicationHeader">Applications</h3>
|
||||
|
||||
<p id="applicationExplain">These applications use I2P to provide them with security and privacy.</p>
|
||||
|
||||
<ul>
|
||||
<!--<li class="application">
|
||||
<a class="applicationName" href="http://legwork.i2p" id="window-link-toopie" target="_blank">Search:</a> <span class="applicationDesc" id="search">Legwork is an in-I2P search engine.</span>
|
||||
<div class="topnav">
|
||||
<form action="http://legwork.i2p/yacysearch.html?" method="get">
|
||||
<input id="search-query" name="query" placeholder="Search on legwork.i2p(Opens a new tab)" type="search"> <input id="search-submit" text="Submit" type="submit">
|
||||
</form>
|
||||
</div>
|
||||
</li>-->
|
||||
|
||||
<li class="application">
|
||||
<a class="applicationName" href="toopie.html" id="window-visit-toopie">Toopie</a> <span class="applicationDesc" id="toopie">For information about your I2P router status, go here:</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a class="applicationName" href="http://127.0.0.1:7657/" id="window-visit-router">Router Console</a> <span class="applicationDesc" id="routerConsole">The entrypoint for all other I2P applications is the I2P Router Console. To visit it, click here.</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a class="applicationName" href="http://127.0.0.1:7657/i2ptunnel" id="window-visit-i2ptunnel">Hidden Services Manager</a> <span class="applicationDesc" id="i2ptunnel">I2P has a web-based interface for configuring .i2p services like web sites, to set up your own web sites, go here:</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a class="applicationName" href="http://127.0.0.1:7657/susimail" id="window-visit-susimail">E-Mail</a> <span class="applicationDesc" id="susimail">I2P also bundles a webmail client which can be used to access in-I2P e-mail. To use it, go here:</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a class="applicationName" href="http://127.0.0.1:7657/i2psnark" id="window-visit-snark">BitTorrent</a> <span class="applicationDesc" id="snark">I2P is capable of anonymous Peer-to-Peer file sharing, to use the built-in bittorrent client go here:</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="extended-info">
|
||||
<h3 id="links"><button class="showhider" id="fliplinks">Links</button>
|
||||
</h3>
|
||||
|
||||
<div id="info-content">
|
||||
<p id="linksExplain">If you want to get more information about I2P, you can visit these links.</p>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li class="application">
|
||||
<a href="http://i2p-projekt.i2p/" id="window-visit-i2p">I2P Project Homepage:</a> <span class="applicationDesc" id="i2ppage">More information is available here.</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a href="/index.html" id="window-visit-homepage">Webextension Homepage:</a> <span class="applicationDesc" id="webpage">More information is available here.</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a href="http://git.idk.i2p/idk/I2P-in-Private-Browsing-Mode-Firefox" id="window-visit-sources">Source Code:</a> <span class="applicationDesc" id="sources">Browse the source of this webextension or contribute here.</span>
|
||||
</li>
|
||||
|
||||
<li class="application">
|
||||
<a href="http://git.idk.i2p/idk/I2P-in-Private-Browsing-Mode-Firefox/-/releases" id="window-visit-releases">Releases:</a> <span class="applicationDesc" id="releases">Check for new releases here.</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="home.js" type="text/javascript"></script>
|
||||
<script src="content.js" type="text/javascript"></script> <!--</div>-->
|
||||
</body>
|
||||
</html>
|
||||
|
26
host.js
26
host.js
@@ -34,14 +34,28 @@ function localHost(url) {
|
||||
}
|
||||
|
||||
function extensionHost(url) {
|
||||
var prefix = browser.runtime
|
||||
.getURL("")
|
||||
.replace("moz-extension://", "")
|
||||
.replace("/", "");
|
||||
if (url.originUrl !== undefined) {
|
||||
var res = url.originUrl.startsWith(browser.runtime.getURL(""));
|
||||
var originUrl = url.originUrl
|
||||
.replace("moz-extension://", "")
|
||||
.replace("/", "");
|
||||
// console.log("(urlcheck) Extension application path", originUrl);
|
||||
// console.log("(urlcheck) Extension application path", prefix);
|
||||
var res = originUrl.startsWith(prefix);
|
||||
// console.log("(urlcheck) Extension application path", res);
|
||||
if (res) return res;
|
||||
}
|
||||
if (url.url !== undefined) {
|
||||
var res = url.url.startsWith(browser.runtime.getURL(""));
|
||||
if (url.documentUrl !== undefined) {
|
||||
// console.log("(urlcheck) Extension application path", originUrl);
|
||||
// console.log("(urlcheck) Extension application path", prefix);
|
||||
var res = originUrl.startsWith(prefix);
|
||||
// console.log("(urlcheck) Extension application path", res);
|
||||
if (res) return res;
|
||||
}
|
||||
console.log("(urlcheck) Extension application path", url);
|
||||
}
|
||||
|
||||
function i2pHostName(url) {
|
||||
@@ -100,8 +114,10 @@ function routerHost(url) {
|
||||
console.log("(urlcheck) Torrent application path", final);
|
||||
return "i2psnark";
|
||||
} else if (final === "webmail" || final === "susimail") {
|
||||
console.log("(urlcheck) Mail application path", final);
|
||||
return "webmail";
|
||||
if (!url.includes(".css")) {
|
||||
console.log("(urlcheck) Mail application path", final);
|
||||
return "webmail";
|
||||
}
|
||||
} else if (final.startsWith("MuWire")) {
|
||||
if (!url.includes(".png")) {
|
||||
console.log("(urlcheck) MuWire application path", final);
|
||||
|
0
icons/README.md
Normal file
0
icons/README.md
Normal file
BIN
icons/infotoopie.png
Normal file
BIN
icons/infotoopie.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
BIN
icons/infotoopiebt.png
Normal file
BIN
icons/infotoopiebt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
BIN
icons/infotoopies.png
Normal file
BIN
icons/infotoopies.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 73 KiB |
BIN
icons/infotoopiesbt.png
Normal file
BIN
icons/infotoopiesbt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 50 KiB |
BIN
icons/local_up.png
Normal file
BIN
icons/local_up.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 404 B |
BIN
icons/toopie.png
BIN
icons/toopie.png
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
217
index.html
217
index.html
@@ -1,222 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>I2P in Private Browsing Mode</title>
|
||||
<link href="home.css" rel="stylesheet" type="text/css">
|
||||
<link href="sidebar.css" rel="stylesheet" type="text/css">
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>I2P in Private Browsing Mode(Firefox-Only)</h1>
|
||||
|
||||
<p>This is an webextension which introduces a set of new "Private Browsing" modes to Firefox-based browsers(Supporting webextensions) that makes it easier to configure a browser to use I2P securely and adds features for making I2P applications easier to use. It does this by isolating I2P-specific settings to Contextual Identities within Firefox, then loading them automatically when the user requests them. It also adds convenience and management features, like an embedded I2P console and Bittorrent integration with clients using the transmission-rpc API.</p>
|
||||
|
||||
<h2>Privacy Policy</h2>
|
||||
|
||||
<p>This browser extension does not collect any personal information. It requires access to local storage and browsing data permissions in order to delete them when directed to by the user. This browser extension does not transmit any information to any third party, nor will it, ever.</p>
|
||||
|
||||
<p>This browser extension cannot influence telemetry carried out by browser vendors to determine performance in their distribution channels, nor can it mitigate any other browser vendor telemetry.</p>
|
||||
|
||||
<p>This browser extension is entirely Free, Open-Source software.</p>
|
||||
|
||||
<h2>Installation(Cross-Platform):</h2>
|
||||
|
||||
<p>For desktop users this addon is available from addons.mozilla.org, where you will be able to recive automatic updates: <a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">I2P in Private Browsing</a>.</p>
|
||||
|
||||
<h2>Debian Installation:</h2>
|
||||
|
||||
<p>Should you prefer, it is possible to install this extension system-wide by side-loading it into Debian. You can generate your own deb file by running the command:</p>
|
||||
|
||||
<pre><code> make deb
|
||||
</code></pre>
|
||||
<p>and then you can install it with:</p>
|
||||
|
||||
<pre><code> sudo apt install ../i2psetproxy.js_*.deb
|
||||
</code></pre>
|
||||
<h2>Bittorrent Download:</h2>
|
||||
|
||||
<p>The self-hosted plugin is available from bittorrent both within the I2P and Clearnet Bittorrent network(With a web seed to support it in case one goes dead).</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="magnet:?xt=urn:btih:7ec361c3ddc3fb904e369a19cdf4259af94af624">Magnet Link</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="./i2ppb@eyedeekay.github.io.xpi.torrent">Get the .torrent file</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Usage:</h2>
|
||||
|
||||
<ul>
|
||||
<li>Basically, it "Just Works." After you install the plugin, browsing to an I2P domain will automatically stop the current tab and re-open the I2P site in an I2P Browser tab.</li>
|
||||
|
||||
<li>Besides that, four bookmarks are added to the "Bookmarks Toolbar," which will take you to visit your Java I2P applications, or the "Simplified I2P Landing Page" embedded in the plugin:</li>
|
||||
|
||||
<li><img alt="Landing page" src="lander.png" title="">
|
||||
</li>
|
||||
|
||||
<li>Also, there's a menu for accessing I2P functionality while you're browsing. It lets you control a few settings in a granular way.</li>
|
||||
|
||||
<li><img alt="Menu" src="menu.png" title="">
|
||||
</li>
|
||||
|
||||
<li>You can re-enable WebRTC but force it to always use the proxy that is enforced by the tab.</li>
|
||||
|
||||
<li>You can either force the browser to delete all history for I2P sites immediately, or you can close all your I2P Browser tabs at once and delete the history for I2P browsing when you're done.</li>
|
||||
|
||||
<li>That's all there is to it! Your browser is configured to safely use and administer I2P.</li>
|
||||
|
||||
<li>Optionally, you can add I2PSnark-RPC and use Bittorrent-over-I2P via the transmission-rpc interface. To do this, have a look at the torrent guide: <a href="torrent/index.html">Torrent guide</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Features</h3>
|
||||
|
||||
<ul>
|
||||
<li>[done] <strong>Provide</strong> a way to launch into an I2P-Specific contextual identity (container). Intercept requests to .i2p domains and automatically route them to the I2P container. Isolate the router console from other local applications by automatically intercepting requests to the router console to another container.</li>
|
||||
|
||||
<li><img alt="Visiting i2p-projekt.i2p" src="i2psetproxy.js.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[done] <strong>Indicate</strong> the I2P browser is in use visually. Find an acceptable way to indicate it on Android.</li>
|
||||
|
||||
<li><img alt="Visiting webmail" src="susimail.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[done] <strong>Set</strong> the http proxy to use the local I2P proxy automatically. Provide specific configuration for other types of I2P proxies(SOCKS, isolating HTTP)</li>
|
||||
|
||||
<li>[done] <strong>Disable</strong> risky webRTC features/offer the option to re-enable them with the proxy enforced.</li>
|
||||
|
||||
<li>[done] <strong>Change</strong> the color of the browser window to indicate that I2P is in use</li>
|
||||
|
||||
<li><img alt="Visiting i2ptunnel" src="i2ptunnel.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[ready] <strong>Provide</strong> help in a variety of languages.</li>
|
||||
|
||||
<li>[done] <strong>Monitor</strong> the health and readiness of the I2P router it is instructed to use. Currently the plugin checks whether the HTTP Proxy is working by fetching an image from "http://proxy.i2p" and displaying a result. A work-in-progress binding to i2pcontrol is available in ./i2pcontrol, it is inert at this time.</li>
|
||||
|
||||
<li><img alt="Visiting toopie.html" src="toopie.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[Done] <strong>Handle</strong> router console applications under their own origins and within their own contextual identity. (1) The router console is automatically confined to it's own container tab. (2) Use a custom protocol handler to place each i2p application/plugin under it's own origin, shortening router console URL's and placing applications under their own origin.</li>
|
||||
|
||||
<li><img alt="Visiting routerconsole" src="routerconsole.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[Done] <strong>Handle Torrents</strong> by talking to i2psnark-rpc plugin and then adding them directly into the Firefox downloads drop-downs, menus, etc. Enable the use of I2PSnark as a peer-to-peer delivery mechanism for media files.</li>
|
||||
|
||||
<li><img alt="Visiting i2psnark" src="i2psnark.png" title="">
|
||||
</li>
|
||||
|
||||
<li><img alt="Monitoring torrents" src="transmissionrpc.png" title="">
|
||||
</li>
|
||||
|
||||
<li><img alt="Distribute your site as a torrent." src="x-i2p-torrentlocation.png" title="">
|
||||
</li>
|
||||
|
||||
<li>[Started] <strong>Indicate</strong> the level of authenticity provided by TLS. TLS is optional on I2P for now, but some sites offer it anyway. TLS support is experimental and in the works.</li>
|
||||
|
||||
<li>[Started] <strong>Provide</strong> alternate, in-I2P destinations for web sites that want to mirror their content within I2P.</li>
|
||||
|
||||
<li>[Started] <strong>Enhance</strong> the I2P browsing experience by allowing site developers distribute some or all of their resources as torrents, allowing the torrents to be treated effectively as a CDN.</li>
|
||||
|
||||
<li>[barely started] <strong>Isolate</strong> traffic by contextual identity to it's own HTTP Proxy tunnel, each reflecting it's own pseudonymous identity within I2P. The contextual identities. For now, the contextual identities used to manage browsing are "I2P Browsing" and "Web Browsing" where I2P Browsing is capable of using an outproxy but in the case of traffic destined for the clearnet does not do header rewriting, and Web Browsing falls back to the Proxy configured in Firefox. The I2P Browsing will be expanded to
|
||||
<ul>
|
||||
<li>I2P Amnesiac Browsing: Use for General Browsing, stores no history and uses an HTTP Proxy with a very short tunnel-close timeout and no key-reuse.</li>
|
||||
|
||||
<li>I2P Social Networking: Use this for logging into social network accounts, forums, and other interactive asynchronous public communication platforms where your identity is behaviorally linkable. This has a very long tunnel-close timeout and key-reuse until specifically invoked.</li>
|
||||
|
||||
<li>I2P Blogging: Use this for posting content to the web interface of your blog or to other similar websites that you create content on.</li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li><img alt="Visiting clearweb" src="clearweb.png" title="">
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h3>Video</h3>
|
||||
|
||||
<ul>
|
||||
<li><img alt="Video of the plugin in action" src="i2psetproxy.js.gif" title="">
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Documents</h2>
|
||||
|
||||
<ul>
|
||||
<li><strong><a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/docs/Browser.Design.Documentation.pdf">Browser Outline</a></strong>: This document is an outline of each of the browser extension's feature panels in presentation form.</li>
|
||||
|
||||
<li><strong><a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/docs/Landing.Page.Documentation.pdf">Smart Lander Design</a></strong>: This is the original outline of the smart landing page which became the I2P home page within the browser and the drop-down control panel.</li>
|
||||
|
||||
<li><strong><a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/wiki/Other-Extensions">Other extensions</a></strong>: and how they work with this one.</li>
|
||||
</ul>
|
||||
|
||||
<h2>Super Extra Important Background Info:</h2>
|
||||
|
||||
<p>This plugin's viability is directly related to the viability of Mozilla and Tor's work on hardening Firefox itself and of particular interest are the "Uplift" and "Fusion(Firefox Using Onions)" projects.</p>
|
||||
|
||||
<h3>Links about Project Uplift</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/Tor_Uplift">Tor Uplift</a> is a project which brings important features of the Tor Browser to the mainstream of Firefox users by including patches from Tor Browser Bundle into Firefox where it is appropriate.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/FirstPartyIsolation">First Party Isolation</a> is a feature in Firefox and other browsers which keeps information from leaking across first-party domains.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/Fingerprinting">Fingerprinting</a> is a technique where a tracker attempts to extract unique information about a user from a side-channel in order to create an identifier that can be used to correlate the user across many sites.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/Fennec%2BTor_Project">Fennec</a> is Firefox for Android and this link has some analysis of the privacy consequences of the Android platform.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/Tor_Uplift/Tracking">Tracking</a> in Firefox is surveyed here.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Project uplift seems to have largely been accomplished?</p>
|
||||
|
||||
<h3>Links about Project Fusion</h3>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://wiki.mozilla.org/Security/Fusion">Project Fusion</a> or Firefox using Onions is a joint Mozilla/Tor effort to create an enhanced Private Browsing mode for Firefox which uses Tor.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://trac.torproject.org/projects/tor/wiki/org/meetings/2018Rome/Notes/FusionProject">Notes</a> from a meeting about Fusion.
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://blog.torproject.org/tor-heart-firefox">Tor at the Heart: Firefox</a> is a blog about Tor and the relationship they have to Firefox re: TBB, Fusion.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>The <strong>Other</strong> Version</h2>
|
||||
|
||||
<p>New versions of this extension create an I2P in Private Browsing mode instead, using container tabs.</p>
|
||||
|
||||
<p>Since this is a drastic change to the behavior of the old plugin, and since there is no UI a new entry for the new plugin has been made at a new location on addons.mozilla.org.</p>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<p>This is the new version: <a href="https://addons.mozilla.org/en-US/firefox/addon/i2p-in-private-browsing/">[link]</a></p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>This is the old version: <a href="https://addons.mozilla.org/en-US/firefox/addon/I2P-Proxy/">[link]</a></p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Android usage:</h2>
|
||||
|
||||
<p>Use the old version, on either an old version of Firefox(pre-68) or by enabling this custom collection: [Recommended Plugins] https://addons.mozilla.org/en-US/firefox/collections/14614396/I2P-Browser-Fork/</p>
|
||||
</body>
|
||||
</html>
|
||||
|
11
info.css
11
info.css
@@ -1,20 +1,19 @@
|
||||
body,
|
||||
html {
|
||||
width: 450px
|
||||
width: 600px
|
||||
}
|
||||
.panel {
|
||||
margin: 5px;
|
||||
width: 450px;
|
||||
height: 450px
|
||||
width: 500px
|
||||
}
|
||||
.panel-section-header {
|
||||
width: 450px
|
||||
width: 500px
|
||||
}
|
||||
#text-section-torrents-header {
|
||||
width: 450px
|
||||
width: 500px
|
||||
}
|
||||
span.identity {
|
||||
width: 450px;
|
||||
width: 500px;
|
||||
display: block;
|
||||
margin-left: 1em
|
||||
}
|
||||
|
@@ -1,95 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="/home.css" rel="stylesheet">
|
||||
<link href="options.css" rel="stylesheet">
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<section class="scheme-options">
|
||||
<span class="title">Proxy Scheme:</span> <select id="proxy_scheme">
|
||||
<option selected value="http">
|
||||
HTTP
|
||||
</option>
|
||||
<option value="socks5">
|
||||
SOCKS5
|
||||
</option>
|
||||
</select>
|
||||
</section>
|
||||
|
||||
<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>
|
||||
|
||||
<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 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>
|
||||
</section>
|
||||
<!--<section class="scheme-options identity-options">
|
||||
<div class="panel">
|
||||
<div id="identity-list">Identity list?</div>
|
||||
</div>
|
||||
</section>-->
|
||||
|
||||
<section class="scheme-options console-options" id="console-options">
|
||||
<div>
|
||||
<div class="title">
|
||||
Router Console Options
|
||||
</div>
|
||||
|
||||
<p id="controlHelpText">Configure your router console options here.</p>
|
||||
<label id="controlPortText">Console Host:</label> <input data="controlhost" id="controlhost" type="text" value="127.0.0.1">
|
||||
<br>
|
||||
<label id="controlHostText">Console Port:</label> <input data="controlport" id="controlport" type="text" value="7657">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="scheme-options control-options" id="control-options">
|
||||
<div>
|
||||
<div class="title">
|
||||
I2PControl RPC Client Options
|
||||
</div>
|
||||
|
||||
<p id="rpcHelpText">Configure your I2PControl options here.</p>
|
||||
<label id="rpcPortText">Control Host:</label> <input data="rpchost" id="rpchost" type="text" value="127.0.0.1">
|
||||
<br>
|
||||
<label id="rpcHostText">Control Port:</label> <input data="rpcport" id="rpcport" type="text" value="7657">
|
||||
<br>
|
||||
<label id="rpcPathText">Control Path:</label> <input data="rpcpath" id="rpcpath" type="text" value="jsonrpc">
|
||||
<br>
|
||||
<label id="rpcPassText">Control Password:</label> <input data="rpcpass" id="rpcpass" type="text" value="itoopie">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="scheme-options transmission-options" id="transmission-options">
|
||||
<div>
|
||||
<div class="title">
|
||||
Bittorrent RPC Client Options
|
||||
</div>
|
||||
|
||||
<p id="rpcHelpText">Configure your Bittorrent options here.</p>
|
||||
<label id="btRpcHostText">Torrent RPC Host:</label> <input data="btrpchost" id="btrpchost" type="text" value="127.0.0.1">
|
||||
<br>
|
||||
<label id="btRpcPortText">Torrent RPC Port:</label> <input data="btrpcport" id="btrpcport" type="text" value="7657">
|
||||
<br>
|
||||
<label id="btRpcPathText">Torrent RPC Path:</label> <input data="btrpcpath" id="btrpcpath" type="text" value="transmission/">
|
||||
<br>
|
||||
<label id="rpcPassText">Torrent RPC Password:</label> <input data="btrpcpass" id="btrpcpass" type="text" value="">
|
||||
</div>
|
||||
</section>
|
||||
<input id="save-button" type="button" value="Save preferences">
|
||||
<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>
|
||||
|
2
proxy.js
2
proxy.js
@@ -188,7 +188,7 @@ var handleContextProxyRequest = async function (requestDetails) {
|
||||
port: getPort(),
|
||||
};
|
||||
return proxy;
|
||||
} else if (extensionHost(requestDetails.url)) {
|
||||
} else if (extensionHost(requestDetails)) {
|
||||
return;
|
||||
} else if (i2pHost(requestDetails.url)) {
|
||||
var tab = tabGet(requestDetails.tabId);
|
||||
|
129
scrub.js
129
scrub.js
@@ -677,10 +677,17 @@ var coolheadersSetup = function (e) {
|
||||
tabId: e.tabId,
|
||||
popup: "torrent.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
tabId: e.tabId,
|
||||
});
|
||||
if (tab.url.startsWith("https")) {
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/infotoopiesbt.png",
|
||||
tabId: e.tabId,
|
||||
});
|
||||
} else {
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/infotoopiebt.png",
|
||||
tabId: e.tabId,
|
||||
});
|
||||
}
|
||||
browser.pageAction.setTitle({
|
||||
tabId: e.tabId,
|
||||
title: header.value,
|
||||
@@ -698,47 +705,107 @@ var coolheadersSetup = function (e) {
|
||||
|
||||
function getTabURL(tab) {
|
||||
if (tab.url.startsWith("https")) {
|
||||
try {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-location" })
|
||||
.then((response) => {
|
||||
if (response != undefined) {
|
||||
console.log("(scrub) i2p-location response object", 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);
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "security.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/infotoopies.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
console.log(tab.url);
|
||||
if (tab.url.includes(".i2p")) {
|
||||
//console.log("(background) tabinfo", tabInfo[0].id)
|
||||
try {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-torrentlocation" })
|
||||
.then((response) => {
|
||||
if (response != undefined && response != "") {
|
||||
console.log(
|
||||
"(pageaction) i2p-torrentlocation response object",
|
||||
response
|
||||
);
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "torrent.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/infotoopiesbt.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);
|
||||
} catch (e) {
|
||||
console.log("(pageaction)", e);
|
||||
});
|
||||
console.log("(pageaction)", tab.id, tab.url);
|
||||
} catch (e) {
|
||||
console.log("(pageaction)", e);
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-location" })
|
||||
.then((response) => {
|
||||
if (response != undefined) {
|
||||
console.log(
|
||||
"(pageaction) i2p-location response object",
|
||||
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);
|
||||
} catch (e) {
|
||||
console.log("(pageaction)", e);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (tab.url.includes(".i2p")) {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "security.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/infotoopie.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
console.log(tab.url);
|
||||
}
|
||||
try {
|
||||
browser.tabs
|
||||
.sendMessage(tab.id, { req: "i2p-torrentlocation" })
|
||||
.then((response) => {
|
||||
if (response != undefined) {
|
||||
console.log("(scrub) i2p-location response object", response);
|
||||
console.log(
|
||||
"(pageaction) i2p-torrentlocation response object",
|
||||
response
|
||||
);
|
||||
if (response.content.toUpperCase() != "NO-ALT-LOCATION") {
|
||||
browser.pageAction.setPopup({
|
||||
tabId: tab.id,
|
||||
popup: "torrent.html",
|
||||
});
|
||||
browser.pageAction.setIcon({
|
||||
path: "icons/i2plogo.png",
|
||||
path: "icons/infotoopiebt.png",
|
||||
tabId: tab.id,
|
||||
});
|
||||
browser.pageAction.setTitle({
|
||||
|
70
sectorrent.html
Normal file
70
sectorrent.html
Normal file
@@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="search.css" rel="stylesheet">
|
||||
<link href="home.css" rel="stylesheet"><!--<link href="info.css" rel="stylesheet">--><!--<link href="torrent/popup.css" rel="stylesheet">-->
|
||||
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="browserpanel">
|
||||
<div class="panel">
|
||||
<div class="section-header panel-section panel-section-header" id="headline">
|
||||
<div class="text-section-header" id="text-section-header">
|
||||
<h1 id="text-section-header">I2P Site Properties | This I2P Site has peer-to-peer resources.</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<ul>
|
||||
<li>
|
||||
<div class="address-info">
|
||||
<div id="addresstype">
|
||||
<span id="TypeLabel">Address Type:</span> <span id="Type"></span>
|
||||
<div id="TypeInfo">
|
||||
<span id="AddressInfo"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="tls-info">
|
||||
<div id="sitecert">
|
||||
<span id="CertLabel">Certificate Information:</span> <span id="Cert"></span>
|
||||
<div id="CertInfo">
|
||||
<span id="AddressCertInfo"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div id="signingcert">
|
||||
<span id="SignedLabel">Signed By:</span> <span id="Signed"></span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="panel">
|
||||
<p>
|
||||
To help distribute the site content, use the links below to join the swarm.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<div class="address-info">
|
||||
<span id="TorrentTypeLabel">Torrent Links:</span> <span id="Type"></span>
|
||||
<div id="TorrentTypeInfo">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<script src="cert.js"></script>
|
||||
<script src="torrent.js"></script>
|
||||
</body>
|
||||
</html>
|
@@ -1,55 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="search.css" rel="stylesheet">
|
||||
<link href="home.css" rel="stylesheet"><!--<link href="info.css" rel="stylesheet">--><!--<link href="torrent/popup.css" rel="stylesheet">-->
|
||||
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="browserpanel">
|
||||
<div class="panel">
|
||||
<div class="section-header panel-section panel-section-header" id="headline">
|
||||
<div class="text-section-header" id="text-section-header">
|
||||
<h1 id="text-section-header">I2P Site Properties</h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="panel">
|
||||
<ul>
|
||||
<li>
|
||||
<div class="address-info">
|
||||
<div id="addresstype">
|
||||
<span id="TypeLabel">Address Type:</span> <span id="Type"></span>
|
||||
<div id="TypeInfo">
|
||||
<span id="AddressInfo"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div class="tls-info">
|
||||
<div id="sitecert">
|
||||
<span id="CertLabel">Certificate Information:</span> <span id="Cert"></span>
|
||||
<div id="CertInfo">
|
||||
<span id="AddressCertInfo"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<div id="signingcert">
|
||||
<span id="SignedLabel">Signed By:</span> <span id="Signed"></span>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<script src="cert.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
81
toopie.html
81
toopie.html
@@ -1,86 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>I2P Router Information</title>
|
||||
<link href="home.css" rel="stylesheet" type="text/css">
|
||||
<link href="sidebar.css" rel="stylesheet" type="text/css">
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<script src="i2pcontrol/i2pcontrol.js"></script>
|
||||
<script src="info.js"></script>
|
||||
<script src="content.js"></script>
|
||||
<h1>I2P Router Information</h1>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="http://localhost:7657" target="_blank"><img alt="i2p router console" class="center" src="/icons/i2plogo.png"></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="button-list">
|
||||
<li><button id="label-router-restart" target="_blank"><img alt="Restart:" id="label-router-shutdown" src="/images/restart.svg"></button>
|
||||
<br>
|
||||
<span id="router-restart">Gracefully restart router</span>
|
||||
</li>
|
||||
|
||||
<li><button id="label-router-shutdown" target="_blank"><img alt="Shutdown:" id="label-router-shutdown" src="/images/shutdown.svg"></button>
|
||||
<br>
|
||||
<span id="router-shutdown">Gracefully shutdown router</span>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><button id="label-router-status" target="_blank">Status</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="label-list" id="label-status-list">
|
||||
<li><span id="label-router-status">Router Status:</span> <span id="router-status">Replace with Router Status</span></li>
|
||||
|
||||
<li><span id="label-router-uptime">Router Uptime(Ms):</span> <span id="router-uptime">Replace with Router Uptime</span></li>
|
||||
|
||||
<li><span id="label-router-version">Router Version:</span> <span id="router-version">Replace with Router Version</span></li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
<li><button id="label-router-bandwidth" target="_blank">Bandwidth</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="label-list" id="label-bandwidth-list">
|
||||
<li><span id="label-router-bw-outbound-1s">Outbound bw 1s:</span> <span id="router-net-bw-outbound-1s">Replace with Router Bandwidth Outbound 1s</span></li>
|
||||
|
||||
<li><span id="label-router-bw-outbound-15s">Outbound bw 15s:</span> <span id="router-net-bw-outbound-15s">Replace with Router Bandwidth Outbound 15s</span></li>
|
||||
|
||||
<li><span id="label-router-bw-inbound-1s">Inbound bw 1s:</span> <span id="router-net-bw-inbound-1s">Replace with Router Bandwidth Inbound 1s</span></li>
|
||||
|
||||
<li><span id="label-router-bw-inbound-15s">Inbound bw 15s:</span> <span id="router-net-bw-inbound-15s">Replace with Router Bandwidth Outbound 15s</span></li>
|
||||
</ul>
|
||||
<!--<li>
|
||||
<span id="label-router-net-status">Network Status:</span>
|
||||
<span id="router-net-status">Replace with Router Network Status</span>
|
||||
</li>-->
|
||||
|
||||
<ul>
|
||||
<li><button id="label-router-peers" target="_blank">Peers</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="label-list" id="label-peers-list">
|
||||
<li><span id="label-router-net-tunnels-participating">Transit Tunnels:</span> <span id="router-net-tunnels-participating">Replace with Router Participating Tunnel Count</span></li>
|
||||
|
||||
<li><span id="label-router-activepeers">Active Peers:</span> <span id="router-netdb-activepeers">Replace with Router Active Peers</span></li>
|
||||
|
||||
<li><span id="label-router-netdb-fastpeers">Fast Peers:</span> <span id="router-netdb-fastpeers">Replace with Router Fast Peers</span></li>
|
||||
|
||||
<li><span id="label-router-netdb-highcapacitypeers">High Capacity Peers:</span> <span id="router-netdb-highcapacitypeers">Replace with High Capacity Peers</span></li>
|
||||
|
||||
<li><span id="label-router-netdb-isreseeding">Reseed status:</span> <span id="router-netdb-isreseeding">Replace with Router netDB Reseeding Status</span></li>
|
||||
|
||||
<li><span id="label-router-netdb-knownpeers">Known Peers:</span> <span id="router-netdb-knownpeers">Replace with Router Known Peers</span></li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
</body>
|
||||
</html>
|
||||
|
150
window.html
150
window.html
@@ -1,159 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link href="search.css" rel="stylesheet">
|
||||
<link href="home.css" rel="stylesheet">
|
||||
<link href="info.css" rel="stylesheet"><!--<link href="torrent/popup.css" rel="stylesheet">-->
|
||||
|
||||
<title>
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="section-header panel-section panel-section-header" id="topbar">
|
||||
<!--<div class="text-section-header" id="text-section-header">-->
|
||||
<a href="#" id="browser-action"><img class="tabicon" height="32px" src="icons/browse.png" width="32px">Browse</a> <a href="#" id="torrent-action"><img class="tabicon" height="32px" src="icons/torrents.png" width="32px">Download</a> <!--</div>-->
|
||||
</div>
|
||||
|
||||
<div id="browserpanel">
|
||||
<div class="panel">
|
||||
<div class="section-header panel-section panel-section-header" id="headline">
|
||||
<div class="text-section-header">
|
||||
<h1 id="text-section-header">The Invisible Internet Browser</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="search-info">
|
||||
<div id="i2pbrowser-version">
|
||||
</div>
|
||||
|
||||
<div class="topnav">
|
||||
<a class="applicationName window-visit-homepage" href="#" id="window-visit-homepage" target="_blank">Home Page</a>
|
||||
<form action="http://yacy.idk.i2p/yacysearch.html?" method="get">
|
||||
<input id="search-query" name="query" placeholder="Search on yacy.idk.i2p(Opens a new tab)" type="search"> <input id="search-submit" text="Submit" type="submit">
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="hideIfI2PProxyOff" id="readyness">
|
||||
<img class="readyness" src="http://proxy.i2p/themes/console/images/local_up.png"> <span id="proxy-check">Proxy is ready.</span>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
|
||||
<div class="browser-info">
|
||||
<p class="hideIfI2PConsoleOff">
|
||||
</p>
|
||||
|
||||
<h3 id="controlHeader">Controls</h3>
|
||||
|
||||
<p id="controlExplain">These controls are used to tailor your I2P Browsing Experience</p>
|
||||
|
||||
<ul>
|
||||
<!--<li class="application">
|
||||
<a href="#" id="clear-browser-data">Clear Browsing Data:</a> <span class="applicationDesc" id="clear-desc">Use this to erase your browsing data.</span>
|
||||
</li>
|
||||
|
||||
<li class="application"><input id="enable-web-rtc" name="enablewebrtc" type="checkbox" value="webrtc"> <label for="enable-web-rtc">Enable WebRTC <strong>with Proxy?</strong></label> <span class="applicationDesc" id="rtcDesc">WebRTC is disabled by default, but can be enabled by checking this box.</span></li>-->
|
||||
|
||||
<li class="application">
|
||||
<div class="panel-section-separator">
|
||||
</div>
|
||||
|
||||
<div class="panel-section-identity">
|
||||
<div id="identity-list">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
<li class="application"><input id="disable-history" name="disablehistory" type="checkbox" value="history"> <label for="disable-history">Disable History in I2P Tabs</label> <span class="applicationDesc" id="histDesc">History is automatically cleared when your I2P tabs are closed. If you want to clear history as you go, check this box.</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!--<div class="panel-section-separator">
|
||||
</div>-->
|
||||
|
||||
<div class="application-info">
|
||||
<p class="hideIfI2PConsoleOff">
|
||||
</p>
|
||||
|
||||
<h3 id="applicationHeader">Applications</h3>
|
||||
|
||||
<p id="applicationExplain">These applications use I2P to provide them with security and privacy.</p>
|
||||
|
||||
<ul>
|
||||
<li class="application"><button class="applicationName window-visit-homepage" href="#" id="window-visit-index" target="_blank">Help Page</button> <span class="applicationDesc" id="abouthome">For more information about this extension, go here:</span></li>
|
||||
|
||||
<li class="application"><button class="applicationName window-visit-toopie" href="#" id="window-visit-toopie" target="_blank">Toopie</button> <span class="applicationDesc" id="toopie">For information about your I2P router status, go here:</span></li>
|
||||
|
||||
<li class="application"><button class="applicationName" id="window-visit-i2ptunnel" target="_blank">Hidden Services Manager</button> <span class="applicationDesc" id="i2ptunnel">I2P has a web-based interface for configuring .i2p services like web sites, to set up your own web sites, go here:</span></li>
|
||||
|
||||
<li class="application"><button class="applicationName" id="window-visit-susimail" target="_blank">E-Mail</button> <span class="applicationDesc" id="susimail">I2P also bundles a webmail client which can be used to access in-I2P e-mail. To use it, go here:</span></li>
|
||||
|
||||
<li class="application"><button class="applicationName" id="window-visit-snark" target="_blank">BitTorrent</button> <span class="applicationDesc" id="snark">I2P is capable of anonymous Peer-to-Peer file sharing, to use the built-in bittorrent client go here:</span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="torrentpanel">
|
||||
<div class="panel" id="torrentstatus">
|
||||
<div class="section-header panel-section panel-section-header">
|
||||
<div class="text-section-header" id="text-section-torrents-header">
|
||||
<h1>Torrent Downloads</h1>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="config-pane">
|
||||
<strong>Torrent RPC Configuration</strong>
|
||||
<br>
|
||||
The server address is not set yet.
|
||||
<br>
|
||||
<a class="config-opener" href="#">Open the settings</a> to continue.
|
||||
</div>
|
||||
|
||||
<div id="torrents-pane">
|
||||
<header>
|
||||
<h1>Torrent Controls</h1>
|
||||
<a class="webui-opener" href="#" target="_blank"><img alt="Open Web UI" src="images/i2plogo.png"></a> <!--<a class="config-opener" href="#">
|
||||
<img alt="Settings" src="images/gear.svg"></a>
|
||||
<a class="info-opener" href="https://github.com/myfreeweb/transmitter" target="_blank">
|
||||
<img alt="Extension Info" src="images/info.svg"></a>-->
|
||||
</header>
|
||||
<input id="torrents-search" placeholder="Search…" type="search">
|
||||
<template id="torrents-tpl">
|
||||
<ul>
|
||||
<li>
|
||||
<div class="torrent-head">
|
||||
<div class="torrent-name">
|
||||
</div>
|
||||
|
||||
<div class="torrent-speeds">
|
||||
</div>
|
||||
</div>
|
||||
<progress class="torrent-progress" max="100"></progress>
|
||||
</li>
|
||||
</ul>
|
||||
</template>
|
||||
|
||||
<ul id="torrents-list">
|
||||
</ul>
|
||||
|
||||
<div id="torrents-error">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="context.js"></script>
|
||||
<script src="privacy.js"></script>
|
||||
<script src="i2pcontrol/i2pcontrol.js"></script>
|
||||
<script src="info.js"></script>
|
||||
<script crossorigin="anonymous" src="content.js"></script>
|
||||
<script src="torrent/popup.js"></script>
|
||||
<script src="torrent/common.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user