Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
e810d7f194 |
@@ -1,302 +0,0 @@
|
||||
{
|
||||
"extensionName": {
|
||||
"message": "I2P en navegación privada",
|
||||
"description": "Nombre de la extensión."
|
||||
},
|
||||
"toopieName": {
|
||||
"message": "toopie.html",
|
||||
"description": "Nombre de la barra lateral."
|
||||
},
|
||||
"toopieTLS": {
|
||||
"message": "Propiedades del sitio",
|
||||
"description": "Nombre del panel de seguridad."
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Su navegador ahora está configurado para usar I2P.",
|
||||
"description": "Descripción de la extensión."
|
||||
},
|
||||
"extensionVersion": {
|
||||
"message": "0,77",
|
||||
"description": "Versión de la extensión."
|
||||
},
|
||||
"proxyFailedStatus": {
|
||||
"message": "El proxy no está listo",
|
||||
"description": "Estado fallido del proxy."
|
||||
},
|
||||
"proxySuccessStatus": {
|
||||
"message": "El proxy está listo",
|
||||
"description": "Estado fallido del proxy."
|
||||
},
|
||||
"controlHeader": {
|
||||
"message": "Control",
|
||||
"description": "Título del panel de control."
|
||||
},
|
||||
"controlExplain": {
|
||||
"message": "Estos controles se utilizan para personalizar su experiencia de navegación I2P",
|
||||
"description": "Introduce el panel de control."
|
||||
},
|
||||
"clearData": {
|
||||
"message": "Borrar datos de navegación:",
|
||||
"description": "Elemento de menú Borrar datos de navegación."
|
||||
},
|
||||
"clearDesc": {
|
||||
"message": "Use esto para borrar sus datos de navegación I2P.",
|
||||
"description": "Borrar descripción de la acción de datos de navegación."
|
||||
},
|
||||
"enableWebRTC": {
|
||||
"message": "¿Habilitar WebRTC con proxy?",
|
||||
"description": "Etiqueta de casilla de verificación de WebRTC."
|
||||
},
|
||||
"rtcDesc": {
|
||||
"message": "WebRTC está deshabilitado de forma predeterminada, pero puede volver a encenderlo y forzarlo para que respete el proxy. Si es un usuario de la extensión del navegador Snowflake, esta opción está deshabilitada y WebRTC está activado de forma predeterminada.",
|
||||
"description": "Descripción de la acción de WebRTC"
|
||||
},
|
||||
"disableHistory": {
|
||||
"message": "¿Deshabilitar el historial en las pestañas I2P?",
|
||||
"description": "Etiqueta de casilla de verificación del historial."
|
||||
},
|
||||
"histDesc": {
|
||||
"message": "El historial se borra automáticamente cuando se cierran las pestañas de I2P. Si desea borrar el historial sobre la marcha, marque esta casilla.",
|
||||
"description": "Descripción de la acción del historial"
|
||||
},
|
||||
"applicationHeader": {
|
||||
"message": "Aplicaciones",
|
||||
"description": "Encabezado de la sección de aplicaciones."
|
||||
},
|
||||
"applicationExplain": {
|
||||
"message": "Estas aplicaciones funcionan con I2P directamente para brindarles seguridad y privacidad.",
|
||||
"description": "Descripción de la sección de aplicación."
|
||||
},
|
||||
"windowVisitConsole": {
|
||||
"message": "Consola del enrutador:",
|
||||
"description": "Etiqueta de la consola del enrutador."
|
||||
},
|
||||
"routerConsole": {
|
||||
"message": "El punto de entrada para todas las demás aplicaciones I2P es la consola del enrutador I2P. Para visitarla, haga clic aquí.",
|
||||
"description": "Descripción de la consola del enrutador."
|
||||
},
|
||||
"windowVisitHomepage": {
|
||||
"message": "Página de inicio:",
|
||||
"description": "Página de inicio para la etiqueta de extensión."
|
||||
},
|
||||
"abouthome": {
|
||||
"message": "Para obtener más información sobre esta extensión, visite esta página.",
|
||||
"description": "Descripción de la página del botón de extensión."
|
||||
},
|
||||
"windowVisitHelppage": {
|
||||
"message": "Página de ayuda:",
|
||||
"description": "Página de ayuda para la etiqueta de extensión."
|
||||
},
|
||||
"help": {
|
||||
"message": "Para obtener más información sobre esta extensión, visite esta página.",
|
||||
"description": "Descripción de la página del botón de extensión."
|
||||
},
|
||||
"windowVisitI2ptunnel": {
|
||||
"message": "Administrador de servicios ocultos:",
|
||||
"description": "Título para i2ptunnel"
|
||||
},
|
||||
"i2ptunnel": {
|
||||
"message": "I2P tiene una interfaz basada en web para configurar servicios .i2p como sitios web que puede configurar.",
|
||||
"description": "Descripción de i2ptunnel"
|
||||
},
|
||||
"windowVisitSusimail": {
|
||||
"message": "Correo electrónico:",
|
||||
"descripción": "Título del correo electrónico"
|
||||
},
|
||||
"susimail": {
|
||||
"message": "I2P también incluye un cliente de correo web que se puede utilizar para acceder al correo electrónico in-I2P.",
|
||||
"description": "Descripción para correo electrónico"
|
||||
},
|
||||
"windowVisitSnark": {
|
||||
"message": "Bittorrent:",
|
||||
"description": "Título para Bittorrent"
|
||||
},
|
||||
"snark": {
|
||||
"message": "I2P es capaz de compartir archivos de igual a igual de forma anónima utilizando la aplicación bittorrent incorporada.",
|
||||
"description": "Descripción de Bittorrent"
|
||||
},
|
||||
"windowVisitSources": {
|
||||
"message": "Código fuente de extensión:",
|
||||
"description": "Título del enlace del código fuente"
|
||||
},
|
||||
"sources": {
|
||||
"message": "Examine el código fuente aquí",
|
||||
"description": "Descripción del enlace del código fuente"
|
||||
},
|
||||
"windowVisitWebPage": {
|
||||
"message": "Página de inicio de la extensión:",
|
||||
"description": "Visita la página de inicio de la extensión en Github"
|
||||
},
|
||||
"homepage": {
|
||||
"message": "Hay más información disponible aquí",
|
||||
"description": "Encontrar más información"
|
||||
},
|
||||
"windowVisitReleases": {
|
||||
"message": "Extension Releases:",
|
||||
"description": "Visite la página de lanzamiento"
|
||||
},
|
||||
"releases": {
|
||||
"message": "Compruebe si hay nuevas versiones aquí",
|
||||
"description": "Descripción de la nueva página de lanzamiento"
|
||||
},
|
||||
"titlePreface": {
|
||||
"message": "Navegador I2P",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"titlePrefacePrivate": {
|
||||
"message": "Navegador I2P (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"extensionPreface": {
|
||||
"message": "Gestión I2P",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"webPreface": {
|
||||
"message": "Navegador web",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"webPrefacePrivate": {
|
||||
"message": "Navegador web (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"ircPreface": {
|
||||
"message": "Envío de IRC",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"ircPrefacePrivate": {
|
||||
"message": "Despacho de IRC (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"botePreface": {
|
||||
"message": "I2P-Bote Mail",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"botePrefacePrivate": {
|
||||
"message": "I2P-Bote Mail (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"routerPreface": {
|
||||
"message": "Consola del enrutador",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"routerPrefacePrivate": {
|
||||
"message": "Consola del enrutador (privada)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"torrentPreface": {
|
||||
"message": "Bittorrent",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"torrentPrefacePrivate": {
|
||||
"message": "Bittorrent (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"mailPreface": {
|
||||
"message": "Correo web",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"mailPrefacePrivate": {
|
||||
"message": "Correo web (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"i2ptunnelPreface": {
|
||||
"message": "Administrador de servicios ocultos",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"i2ptunnelPrefacePrivate": {
|
||||
"message": "Administrador de servicios ocultos (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"muwirePreface": {
|
||||
"message": "MuWire",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"muwirePrefacePrivate": {
|
||||
"message": "MuWire (privado)",
|
||||
"description": "Prefacio de la barra de título del navegador"
|
||||
},
|
||||
"resetMessage": {
|
||||
"message": "Reset Tunnel",
|
||||
"description": "Mensaje para el botón Reset Tunnel"
|
||||
},
|
||||
"infoTitle": {
|
||||
"message": "Ayuda I2P",
|
||||
"description": "Título del menú de ayuda"
|
||||
},
|
||||
"infoMessage": {
|
||||
"message": "¡Ahora puede navegar libremente por eepWeb! Su navegador ahora está configurado para navegar de forma anónima en la red I2P. Mientras navega, su tráfico se enrutará a través de otros nodos de red para disfrazar su origen, tanto desde el servidor de los propios nodos. ",
|
||||
"description": "Mensaje de ayuda"
|
||||
},
|
||||
"helpMessage": {
|
||||
"message": "Obtén ayuda adicional",
|
||||
"description": "Mensaje de ayuda"
|
||||
},
|
||||
"newsMessage": {
|
||||
"message": "Visite el blog de I2P para conocer las últimas novedades sobre i2p.",
|
||||
"description": "Mensaje de ayuda"
|
||||
},
|
||||
"forumMessage": {
|
||||
"message": "Visite el Foro I2P para obtener más información o solicitar ayuda",
|
||||
"description": "Mensaje de ayuda"
|
||||
},
|
||||
"proxyHelpText": {
|
||||
"message": "Configure aquí su proxy I2P",
|
||||
"description": "Ayuda para configurar las opciones del botón Reset Tunnel"
|
||||
},
|
||||
"hostText": {
|
||||
"message": "Anfitrión:",
|
||||
"description": "Host para el proxy HTTP o SOCKS5"
|
||||
},
|
||||
"portText": {
|
||||
"message": "Puerto:",
|
||||
"description": "Puerto para el proxy HTTP o SOCKS5"
|
||||
},
|
||||
"controlHelpText": {
|
||||
"message": "Configure aquí la consola de su enrutador.",
|
||||
"description": "Ayuda para configurar las opciones del botón Reset Tunnel"
|
||||
},
|
||||
"controlHostText": {
|
||||
"message": "Host de control:",
|
||||
"description": "Host para la consola del enrutador"
|
||||
},
|
||||
"controlPortText": {
|
||||
"message": "Puerto de control:",
|
||||
"description": "Puerto para la consola del enrutador"
|
||||
},
|
||||
"controlHostValue": {
|
||||
"message": "127.0.0.1",
|
||||
"description": "Host para la consola del enrutador"
|
||||
},
|
||||
"controlPortValue": {
|
||||
"message": "7657",
|
||||
"description": "Puerto para la consola del enrutador"
|
||||
},
|
||||
"isBase32": {
|
||||
"message": "Dirección con formato I2P Base32",
|
||||
"description": "Mensaje para el panel de información del sitio base32"
|
||||
},
|
||||
"isHostName": {
|
||||
"message": "Nombre de host de salto I2P",
|
||||
"description": "Mensaje para el nombre de host del panel de información del sitio"
|
||||
},
|
||||
"siteLabel": {
|
||||
"message": "Dirección / Información del sitio:",
|
||||
"description": "Etiqueta para la información del sitio i2p"
|
||||
},
|
||||
"certLabel": {
|
||||
"message": "Información del certificado:",
|
||||
"description": "Etiqueta para la información del certificado"
|
||||
},
|
||||
"certAbsent": {
|
||||
"message": "Este sitio no está usando HTTPS. I2P aún lo verifica criptográficamente.",
|
||||
"description": "Contenido de la información del certificado si no está"
|
||||
},
|
||||
"certPresent": {
|
||||
"message": "Este sitio utiliza HTTPS. HTTPS sobre I2P es experimental y requiere certificados autofirmados o autorizaciones raíz alternativas.",
|
||||
"description": "Contenido de la información del certificado si está presente"
|
||||
},
|
||||
"protocolHandlerValue": {
|
||||
"message": "http://127.0.0.1:7657/i2psnark/?nofilter_newURL=%s&action=Add&foo=Add+torrent",
|
||||
"description": "Valor para el controlador de protocolo magnético"
|
||||
}
|
||||
}
|
384
home.css
384
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,133 @@ 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 {
|
||||
display: none
|
||||
}
|
8
host.js
8
host.js
@@ -47,10 +47,7 @@ function extensionHost(url) {
|
||||
function i2pHostName(url) {
|
||||
let hostname = '';
|
||||
console.log('(hosts)', url);
|
||||
let u = new URL(url);
|
||||
if (u.host.endsWith('.i2p')) {
|
||||
hostname = u.host;
|
||||
} else if (url.includes('=')) {
|
||||
if (url.includes('=')) {
|
||||
if (url.includes('.i2p')) {
|
||||
lsit = url.split('=');
|
||||
for (let item in lsit) {
|
||||
@@ -71,7 +68,6 @@ function i2pHostName(url) {
|
||||
} else {
|
||||
hostname = url.split('/')[0];
|
||||
}
|
||||
console.log('(hosts) scrub', hostname);
|
||||
return hostname;
|
||||
}
|
||||
|
||||
@@ -116,8 +112,6 @@ function routerHost(url) {
|
||||
final === 'home' ||
|
||||
final === 'console' ||
|
||||
final === 'dns' ||
|
||||
final === 'susidns' ||
|
||||
final.startsWith('susidns') ||
|
||||
final === 'sitemap' ||
|
||||
final.startsWith('config')
|
||||
) {
|
||||
|
14
privacy.js
14
privacy.js
@@ -417,37 +417,27 @@ function forgetBrowsingData(storedSettings) {
|
||||
function i2pHostName(url) {
|
||||
let hostname = "";
|
||||
console.log("(hosts)", url);
|
||||
let u = new URL(url);
|
||||
if (u.host.endsWith(".i2p")) {
|
||||
hostname = u.host;
|
||||
} else if (url.includes("=")) {
|
||||
console.log("(hosts) scrub 1", url);
|
||||
if (url.includes("=")) {
|
||||
if (url.includes(".i2p")) {
|
||||
lsit = url.split("=");
|
||||
console.log("(hosts) scrub 2", hostname);
|
||||
for (let item in lsit) {
|
||||
var items = lsit[item].split(`\ % `); //"\%")
|
||||
var items = lsit[item].split(`\%`); //"\%")
|
||||
for (let p in items) {
|
||||
if (items[p].includes(".i2p")) {
|
||||
hostname = items[p].replace("3D", 1);
|
||||
}
|
||||
console.log("(hosts) scrub 3", hostname);
|
||||
break;
|
||||
}
|
||||
if (hostname != "") {
|
||||
console.log("(hosts) scrub 4", hostname);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (url.indexOf("://") > -1) {
|
||||
hostname = url.split("/")[2];
|
||||
console.log("(hosts) scrub 5", hostname);
|
||||
} else {
|
||||
hostname = url.split("/")[0];
|
||||
console.log("(hosts) scrub 6", hostname);
|
||||
}
|
||||
console.log("(hosts) scrub 7", hostname);
|
||||
return hostname;
|
||||
}
|
||||
|
||||
|
139
scrub.js
139
scrub.js
@@ -489,6 +489,80 @@ var contextSetup = function(requestDetails) {
|
||||
console.log('(isolate)Context Error', error);
|
||||
}
|
||||
};
|
||||
var normalTabFind = async function(tabId) {
|
||||
if (tabId == undefined) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
var anoncontext = await browser.contextualIdentities.query({
|
||||
name: titlepref,
|
||||
});
|
||||
var irccontext = await browser.contextualIdentities.query({
|
||||
name: ircpref,
|
||||
});
|
||||
var othercontexts = await notMyContextNotMyProblem();
|
||||
var nmp = false;
|
||||
for (context in othercontexts) {
|
||||
if (tabId.cookieStoreId == othercontexts[context].cookieStoreId) {
|
||||
console.log('Not my problem');
|
||||
nmp = true;
|
||||
}
|
||||
}
|
||||
if (
|
||||
tabId.cookieStoreId == 'firefox-default' ||
|
||||
tabId.cookieStoreId == 'firefox-private' ||
|
||||
tabId.cookieStoreId == anoncontext[0].cookieStoreId ||
|
||||
tabId.cookieStoreId == irccontext[0].cookieStoreId ||
|
||||
nmp
|
||||
) {
|
||||
console.log(
|
||||
'(ISOLATE)',
|
||||
tabId.cookieStoreId,
|
||||
'not',
|
||||
anoncontext[0].cookieStoreId,
|
||||
irccontext[0].cookieStoreId
|
||||
);
|
||||
return;
|
||||
} else {
|
||||
function Create() {
|
||||
function onCreated(tab) {
|
||||
function closeOldTab() {
|
||||
if (
|
||||
tabId.id != tab.id &&
|
||||
tabId.cookieStoreId != tab.cookieStoreId
|
||||
) {
|
||||
console.log(
|
||||
'(isolate) Closing isolated tab',
|
||||
tabId.id,
|
||||
'with context',
|
||||
tabId.cookieStoreId
|
||||
);
|
||||
console.log(
|
||||
'(isolate) in favor of',
|
||||
tab.id,
|
||||
'with context',
|
||||
tab.cookieStoreId
|
||||
);
|
||||
browser.tabs.remove(tabId.id);
|
||||
}
|
||||
}
|
||||
closeOldTab(tab);
|
||||
}
|
||||
var created = browser.tabs.create({
|
||||
active: true,
|
||||
cookieStoreId: 'firefox-default',
|
||||
url: requestDetails.url,
|
||||
});
|
||||
created.then(onCreated, onContextError);
|
||||
}
|
||||
var gettab = browser.tabs.get(tabId.id);
|
||||
gettab.then(Create, onContextError);
|
||||
return tabId;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('(isolate)Context Error', error);
|
||||
}
|
||||
};
|
||||
var tabGet = async function(tabId) {
|
||||
try {
|
||||
//console.log("(isolate)Tab ID from Request", tabId);
|
||||
@@ -514,8 +588,36 @@ var contextSetup = function(requestDetails) {
|
||||
if (requestDetails.tabId > 0) {
|
||||
var tab = tabGet(requestDetails.tabId);
|
||||
tab.then(isolate);
|
||||
|
||||
function isolate(oldtab) {
|
||||
// if (oldtab.cookieStoreId == 'firefox-default') {
|
||||
if (i2pHost(requestDetails.url)) {
|
||||
var thn = i2pHostName(requestDetails.url);
|
||||
if (requestDetails.url.includes('=' + thn)) {
|
||||
if (
|
||||
!requestDetails.url.includes('github.com') ||
|
||||
!requestDetails.url.includes('notabug.org') ||
|
||||
!requestDetails.url.includes('i2pgit.org') ||
|
||||
!requestDetails.url.includes('gitlab.com')
|
||||
) {
|
||||
console.log('(scrub)checking search hostnames =' + thn);
|
||||
var tpt = requestDetails.url.split('=' + thn, 2);
|
||||
requestDetails.url =
|
||||
'http://' + thn + '/' + tpt[1].replace('%2F', '');
|
||||
}
|
||||
}
|
||||
console.log('(scrub) new hostname', requestDetails.url);
|
||||
var setcookie = browser.cookies.set({
|
||||
firstPartyDomain: i2pHostName(requestDetails.url),
|
||||
url: requestDetails.url,
|
||||
secure: true,
|
||||
});
|
||||
setcookie.then(onContextGotLog, onContextError);
|
||||
var i2ptab = tab.then(i2pTabFind, onContextError);
|
||||
return requestDetails;
|
||||
}
|
||||
if (extensionHost(requestDetails)) {
|
||||
return requestDetails;
|
||||
}
|
||||
let localhost = localHost(requestDetails.url);
|
||||
let routerhost = routerHost(requestDetails.url);
|
||||
if (routerhost) {
|
||||
@@ -543,41 +645,10 @@ var contextSetup = function(requestDetails) {
|
||||
var irctab = tab.then(ircTabFind, onContextError);
|
||||
return requestDetails;
|
||||
}
|
||||
}
|
||||
// if (oldtab.cookieStoreId == 'firefox-default') {
|
||||
if (i2pHost(requestDetails.url)) {
|
||||
var thn = i2pHostName(requestDetails.url);
|
||||
if (requestDetails.url.includes('=' + thn)) {
|
||||
if (
|
||||
!requestDetails.url.includes('://github.com') ||
|
||||
!requestDetails.url.includes('://notabug.org') ||
|
||||
!requestDetails.url.includes('://i2pgit.org') ||
|
||||
!requestDetails.url.includes('://gitlab.com')
|
||||
) {
|
||||
if (!localhost) {
|
||||
console.log('(scrub)checking search hostnames =' + thn);
|
||||
var tpt = requestDetails.url.split('=' + thn, 2);
|
||||
requestDetails.url =
|
||||
'http://' + thn + '/' + tpt[1].replace('%2F', '');
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log('(scrub) new hostname', requestDetails.url);
|
||||
var setcookie = browser.cookies.set({
|
||||
firstPartyDomain: i2pHostName(requestDetails.url),
|
||||
url: requestDetails.url,
|
||||
secure: true,
|
||||
});
|
||||
setcookie.then(onContextGotLog, onContextError);
|
||||
if (!routerhost) {
|
||||
var i2ptab = tab.then(i2pTabFind, onContextError);
|
||||
}
|
||||
var normalTab = tab.then(normalTabFind, onContextError);
|
||||
return requestDetails;
|
||||
//return requestDetails;
|
||||
}
|
||||
if (extensionHost(requestDetails)) {
|
||||
return requestDetails;
|
||||
}
|
||||
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user