Compare commits

...

61 Commits

Author SHA1 Message Date
idk
c2485eeea0 enable -private flag for temp identity in Shortcuts(as opposed to on-by-default or container-manged only) 2022-08-30 11:20:45 -04:00
idk
603c10ed9f un-comment broken Firefox languages now that we're compiling with NSIS v3 2022-08-30 11:19:08 -04:00
idk
7806b6f232 make sure to copy default hosts.txt file too 2022-08-30 09:45:40 -04:00
idk
3d67aa4dca eliminate redundant parentoptions 2022-08-29 19:53:52 -04:00
idk
646778680d This enables the jpackage to launch almost any browser as an I2P-enabled browser. It will choose Firefox variants first, Chromium variants second, and falls back to setting environment variables before spawning the browser process. It also removes the Firefox dependency from the NSIS build 2022-08-29 19:42:25 -04:00
idk
910aeed82c add /a to signer script 2022-08-29 09:44:18 -04:00
idk
2f0e553b20 update changelog 2022-08-28 23:16:39 -04:00
idk
bc33051d8d bump version 2022-08-28 13:58:32 -04:00
idk
e4d0be36c9 update UPDATES.html 2022-08-27 11:33:03 -04:00
idk
9374b1b274 update LICENSE.html 2022-08-27 11:32:59 -04:00
idk
e4e3df90dc update index.html 2022-08-27 11:32:55 -04:00
idk
acb66c97d0 update page title 2022-08-27 11:31:04 -04:00
idk
a8ac47966c update i2p.plugin.firefox version 2022-08-22 17:36:15 -04:00
idk
acf67d93c6 disable https-only mode to get rid of warning from profile 2022-08-21 19:01:40 -04:00
idk
07f7b84817 update the i2pfirefox version one last time 2022-08-21 18:15:04 -04:00
idk
c7a42e6447 Don't delay at launch time, delay at run/check time 2022-08-21 11:52:39 -04:00
idk
66e93709ca Delay launch by 2 seconds to make sure that router.ping is written before trying to launch a browser when a router is already running 2022-08-21 11:31:23 -04:00
idk
a7eba5f5ae Change message when refusing to start because we think I2P is already running 2022-08-21 11:18:09 -04:00
idk
ba0e2fb8c0 Reduce rate-limit on restarts to one a minute, 2 minutes is too long 2022-08-21 11:16:21 -04:00
idk
8ee2a1170e always copy i2ptunnel.config on first install but not updates 2022-08-21 10:46:48 -04:00
idk
a08046655b update i2p.firefox 2022-08-21 01:14:13 -04:00
idk
54be1d3acd don't return after private browsing check 2022-08-21 00:49:29 -04:00
idk
e7e40a96ba update i2p.firefox 2022-08-21 00:26:13 -04:00
idk
6de7e95a4b always install exe but don't always install own config files 2022-08-20 23:26:03 -04:00
idk
b4d9687eed Only copy new config files and certs 2022-08-20 10:08:41 -04:00
idk
73b779ba5c Only copy new config files and certs 2022-08-20 10:07:33 -04:00
idk
f4d55be5b4 Only use ShellExecAsUser if we are admin 2022-08-19 23:06:25 -04:00
idk
03ea86c345 just point back to ourselves in router.config 2022-08-19 20:37:28 -04:00
idk
1ba8327589 only update certificates and geoip config during update cycles 2022-08-19 19:21:17 -04:00
idk
50c8804c8a post-install launch using shortcut 2022-08-19 18:16:01 -04:00
idk
3d29135e50 change OutPath when launching post-install, never self-select an admin install 2022-08-19 17:51:37 -04:00
idk
419105420d change OutPath when launching post-install 2022-08-19 16:22:13 -04:00
idk
217f54db07 remove unused elevatorCallback, elevation for installs performed as an admin is now handled on the Java side and has been for a long time 2022-08-19 16:14:11 -04:00
idk
6afecedf59 use I2P.exe to launch when restarting through the installer and not the shortcut 2022-08-19 16:11:16 -04:00
idk
1347859bc5 supply args to CreateShortCut even if they are blank. Use I2PINSTEXE as shortcut target directory 2022-08-19 15:26:34 -04:00
idk
eafa1bf04d remove the bat files from the final product 2022-08-19 13:02:57 -04:00
idk
63e1326dae don't use batch scripts to launch browser anymore. 2022-08-19 12:06:36 -04:00
idk
50b00c6c88 launch I2P.exe with the shortcut instead of i2pbrowser.bat 2022-08-07 23:20:12 -04:00
idk
49d52e150b update i2pfirefox jar 2022-08-07 22:58:37 -04:00
idk
86e363d13e update i2pfirefox jar 2022-08-07 22:17:53 -04:00
idk
3930c6750d make the java launcher handle the Firefox launch automatically if the router is already running 2022-08-07 22:00:17 -04:00
idk
cead2e1133 prioritize host check 2022-08-07 21:36:09 -04:00
idk
82b85ca77f update i2pfirefox version 2022-08-07 21:30:19 -04:00
idk
06f7521e2e add i2pfirefox to the result if I2P is already running 2022-08-07 21:25:58 -04:00
idk
b7a9d57c73 add i2pfirefox lib to jar 2022-08-07 21:07:28 -04:00
idk
0219d14b48 update user-overrides 2022-08-07 19:42:41 -04:00
idk
1657111ddb switch to user-override for customizations, fix the extension scopes 2022-08-07 19:33:10 -04:00
idk
3329925e73 switch to user-override for customizations, fix the extension scopes 2022-08-07 19:30:20 -04:00
idk
e154064cbd check in new app-profile 2022-08-07 16:39:56 -04:00
idk
c784284b03 switch to user-override for customizations 2022-08-07 16:37:27 -04:00
idk
0efd2495b5 switch to full arkenfox user.js and just download it when we need to update. It won't be cleaned between builds yet. 2022-08-07 14:39:23 -04:00
idk
9ad49d1a10 update UPDATES.html 2022-07-31 18:00:57 -04:00
idk
53e476d849 update LICENSE.html 2022-07-31 18:00:53 -04:00
idk
4034033992 update index.html 2022-07-31 18:00:50 -04:00
idk
ca89346671 add style.css 2022-07-31 16:45:32 -04:00
idk
21879583cb update UPDATES.html 2022-07-31 16:36:30 -04:00
idk
3f7577245b update LICENSE.html 2022-07-31 16:36:27 -04:00
idk
c3e3e72575 update index.html 2022-07-31 16:36:24 -04:00
idk
6c33b34a40 update config.sh to point to java 18.0.2 2022-07-20 10:46:08 -04:00
idk
8ab325f826 put java at both end of path when temp-setting so it always points at the right one. 2022-07-19 00:39:50 -04:00
idk
ac5eddd5ac add user_pref("dom.image-lazy-loading.enabled", false) to user.js 2022-07-17 19:47:33 -04:00
41 changed files with 4886 additions and 753 deletions

0
.nojekyll Normal file
View File

107
LICENSE.html Normal file
View File

@ -0,0 +1,107 @@
<html>
<head>
<title>
I2P Easy-Install...
</title>
<meta name="author" content="eyedeekay" />
<meta name="description" content="i2p.firefox" />
<meta name="keywords" content="master" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="showhider.css" />
</head>
<body>
<div id="navbar">
<a href="#shownav">
Show navigation
</a>
<div id="shownav">
<div id="hidenav">
<ul>
<li>
<a href="index.html">
index
</a>
</li>
<li>
<a href="LICENSE.html">
LICENSE
</a>
</li>
<li>
<a href="UPDATES.html">
UPDATES
</a>
</li>
</ul>
<br>
<a href="#hidenav">
Hide Navigation
</a>
</div>
</div>
</div>
<p>
Copyright 2018
</p>
<p>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the “Software”), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
</p>
<p>
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
</p>
<p>
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</p>
<div>
<a href="#show">
Show license
</a>
<div id="show">
<div id="hide">
<pre><code>Copyright 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</code></pre>
<a href="#hide">
Hide license
</a>
</div>
</div>
</div>
<div>
<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
</div>
<div>
<a href="https://geti2p.net/">
<img src="i2plogo.png"></img>
I2P
</a>
</div>
</body>
</html>

View File

@ -1,5 +1,5 @@
I2P Browsing Profile for Firefox
================================
I2P Easy-Install Bundle for Windows(Also/formerly)I2P Browsing Profile for Firefox
==================================================================================
Features:
---------

144
UPDATES.html Normal file
View File

@ -0,0 +1,144 @@
<html>
<head>
<title>
I2P Easy-Install...
</title>
<meta name="author" content="eyedeekay" />
<meta name="description" content="i2p.firefox" />
<meta name="keywords" content="master" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="showhider.css" />
</head>
<body>
<div id="navbar">
<a href="#shownav">
Show navigation
</a>
<div id="shownav">
<div id="hidenav">
<ul>
<li>
<a href="index.html">
index
</a>
</li>
<li>
<a href="LICENSE.html">
LICENSE
</a>
</li>
<li>
<a href="UPDATES.html">
UPDATES
</a>
</li>
</ul>
<br>
<a href="#hidenav">
Hide Navigation
</a>
</div>
</div>
</div>
<h1>
Setting up an Update Server for an I2P Bundle
</h1>
<p>
It is important to set up a signed update server so that people are able to
safely and anonymously update your I2P bundle.
</p>
<h2>
The quick way:
</h2>
<p>
This process depends on my ability to push releases to github. If you are
forking, setting up a dev server, or taking over because I got hit by a bus,
youll need to do it the complete way.
</p>
<p>
For as long as I am building updates, you will be able to mirror the jpackaged
Windows bundle by cloning the repository
<code>
https://github.com/eyedeekay/i2p
</code>
and
running the
<code>
make docker run
</code>
target in that repository. You can retrieve the
base32 address of your update server by viewing the log with
<code>
docker logs eephttpd-jpackage | grep b32.i2p | tee eephttpd-address.md
</code>
. To
update the site, run
<code>
./update.site.sh
</code>
in that repository.
</p>
<p>
Once you have cloned the repository and started the container with
<code>
make docker run
</code>
, you can simply add
<code>
path/to/repo/update-site.sh
</code>
to your
<code>
crontab
</code>
and it will update at an interval of your choosing.
</p>
<h2>
The complete way:
</h2>
<p>
TODO: describe how to do it with less of the awesome fancy stuff I put together
to make it easier on myself to keep an update server going.
</p>
<div>
<a href="#show">
Show license
</a>
<div id="show">
<div id="hide">
<pre><code>Copyright 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</code></pre>
<a href="#hide">
Hide license
</a>
</div>
</div>
</div>
<div>
<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
</div>
<div>
<a href="https://geti2p.net/">
<img src="i2plogo.png"></img>
I2P
</a>
</div>
</body>
</html>

View File

@ -18,6 +18,7 @@ fi
COUNT="Ten Nine Eight Seven Six Five Four Three Two One"
which java
JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
if [ "$JAVA" -lt "14" ]; then
@ -64,8 +65,12 @@ if [ ! -f "$HERE/build/jna-platform.jar" ]; then
wget -O "$HERE/build/jna-platform.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/$JNA_VERSION/jna-platform-$JNA_VERSION.jar"
fi
if [ ! -f "$HERE/build/i2pfirefox.jar" ]; then
wget -O "$HERE/build/i2pfirefox.jar" https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/0.0.16/i2pfirefox.jar
fi
cd java
"$JAVA_HOME"/bin/javac -d ../build -classpath "$HERE/build/jna.jar":"$HERE/build/jna-platform.jar":"$HERE/build/i2p.jar":"$HERE/build/router.jar":"$HERE/build/routerconsole.jar" \
"$JAVA_HOME"/bin/javac -d ../build -classpath "$HERE/build/i2pfirefox.jar:$HERE/build/jna.jar":"$HERE/build/jna-platform.jar":"$HERE/build/i2p.jar":"$HERE/build/router.jar":"$HERE/build/routerconsole.jar" \
net/i2p/router/Elevator.java \
net/i2p/router/Shell32X.java \
net/i2p/router/WinLauncher.java \
@ -98,4 +103,4 @@ rm -rf I2P
--input build --main-jar launcher.jar --main-class net.i2p.router.WinLauncher
cp "$I2P_PKG/licenses/"* license/
cp "$HERE/../i2p.i2p.jpackage-build/LICENSE.txt" license/I2P.txt
cp "$HERE/../i2p.i2p.jpackage-build/LICENSE.txt" license/I2P.txt

View File

@ -1,3 +1,9 @@
2022-08-28 idk
* Migrate away from batch scripts and simply launch a browser if I2P is already running.
This is more flexible, stable, and simplet to install
* Improves compatibility with detatched and un-bundled routers on the same system
* Fixes bugs in Firefox path finding
2022-05-8 idk
* Add translations for Arabic, German, French, Italian, Japanese, Portuguese, Russian,
and Chinese.

View File

@ -9,10 +9,10 @@
## Other potential values(NOT exhaustive):
PATH="$PATH:/c/Program Files/Java/jdk-18.0.1.1/bin/"
export PATH="$PATH:/c/Program Files/Java/jdk-18.0.1.1/bin/"
JAVA_HOME="/c/Program Files/Java/jdk-18.0.1.1"
export JAVA_HOME="/c/Program Files/Java/jdk-18.0.1.1"
PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
export PATH="/c/Program Files/Java/jdk-18.0.2/bin/:$PATH:/c/Program Files/Java/jdk-18.0.2/bin/"
JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
export JAVA_HOME="/c/Program Files/Java/jdk-18.0.2"
#export PATH="$PATH:/c/Program Files/Eclipse Adoptium/jdk-17.0.3/bin/"
#export JAVA_HOME="/c/Program Files/Eclipse Adoptium/jdk-17.0.3"
#export PATH="$PATH:/c/Program Files/OpenJDK/jdk-17.0.3/bin/"

BIN
i2plogo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -6,12 +6,12 @@ export JNA_VERSION=5.11.0
#Comment this out to build from an alternate branch or
# the tip of the master branch.
VERSIONMAJOR=1
VERSIONMINOR=8
VERSIONMINOR=9
VERSIONBUILD=0
I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
export I2P_VERSION="$VERSIONMAJOR.$VERSIONMINOR.$VERSIONBUILD"
VERSION=i2p-1.8.0
export VERSION=i2p-1.8.0
VERSION=i2p-1.9.0
export VERSION=i2p-1.9.0
#Uncomment this to build from the tip of the master.
#I2P_VERSION=1.8.0

723
index.html Normal file
View File

@ -0,0 +1,723 @@
<html>
<head>
<title>
I2P Easy-Install...
</title>
<meta name="author" content="eyedeekay" />
<meta name="description" content="i2p.firefox" />
<meta name="keywords" content="master" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="showhider.css" />
</head>
<body>
<div id="navbar">
<a href="#shownav">
Show navigation
</a>
<div id="shownav">
<div id="hidenav">
<ul>
<li>
<a href="index.html">
index
</a>
</li>
<li>
<a href="LICENSE.html">
LICENSE
</a>
</li>
<li>
<a href="UPDATES.html">
UPDATES
</a>
</li>
</ul>
<br>
<a href="#hidenav">
Hide Navigation
</a>
</div>
</div>
</div>
<h1>
I2P Easy-Install Bundle for Windows(Also/formerly)I2P Browsing Profile for Firefox
</h1>
<h2>
Features:
</h2>
<ul>
<li>
Automatically select an up-to-date, secure Firefox or Tor Browser(On Windows) variant
</li>
<li>
Automatically configure a profile for I2P
</li>
<li>
Automatically block-list all non-I2P local destinations
</li>
<li>
Enable first-party isolation, anti-fingerprinting, letterboxing
</li>
<li>
Automatically sandbox I2P, Non-I2P, and I2P-Application cookiestores
</li>
</ul>
<h2>
Build Dependencies:
</h2>
<p>
To build this, you will need the following software packages (all available in Debian) :
</p>
<ul>
<li>
make
</li>
<li>
nsis
</li>
<li>
dos2unix
</li>
<li>
curl
</li>
<li>
jq
</li>
</ul>
<p>
In addition, you will need the NSIS plugin “ShellExecAsUser” which you can get from the
<a href="https://nsis.sourceforge.io/ShellExecAsUser_plug-in" rel="nofollow">
NSIS Wiki Page
</a>
. In order to install
the plugin on Debian, Ubuntu, or using
<code>
WSL
</code>
, you can download the:
<a href="https://nsis.sourceforge.io/mediawiki/images/6/68/ShellExecAsUser_amd64-Unicode.7z" rel="nofollow">
7zip release
</a>
and copy the content of
<code>
Plugins
</code>
to
<code>
/usr/share/nsis/Plugins
</code>
.
</p>
<pre><code>cp -rv Plugins/* /usr/share/nsis/Plugins/
</code></pre>
<p>
To build a Debian package, youll also need
</p>
<ul>
<li>
checkinstall
</li>
</ul>
<h2>
Preparation
</h2>
<p>
Before you build, run the targets
</p>
<pre><code> make clean-extensions
make extensions
</code></pre>
<p>
to update the extensions to point to their latest versions.
</p>
<h2>
Windows Build
</h2>
<p>
After installing the dependencies and completing the preparations,
just run
<code>
make
</code>
. This will produce three files:
</p>
<p>
profile.tgz - the firefox profile, plus a shell script which will
launch it if Firefox is found in the $PATH on Unix-Like operating
systems.
app-profile.tgz - the Firefox profile plus a launcher shell script,
which will launch a
<em>
modified
</em>
Firefox without a URL bar as a router
console wrapper.
install.exe - the windows installer, which sets up shortcuts to
launch Firefox on Windows.
</p>
<p>
When generating a Windows build its important to make sure that the
licenses for all the bundled softare are included. This should happen
automatically. When bundling software, describe the terms and where
they are applied in the
<code>
LICENSE.index
</code>
, then add the full license
to the
<code>
licenses
</code>
directory. Then, add the full license to the
<code>
cat
</code>
command in the
<code>
build/licenses
</code>
make target. The build/licenses
target is run automatically during the build process.
</p>
<h2>
Unix Support
</h2>
<p>
It is possible to use these profiles on Linux and possibly other
Unixes, if Firefox is already installed on the system. It can be
installed system-wide using the
<code>
make install
</code>
target. Running
<code>
make install
</code>
requires root, and requires
<code>
make
</code>
to have been run
first. To install on Unix, system-wide, run:
</p>
<pre><code> make
sudo make install
</code></pre>
<p>
To run without installing them system wide, unpack the
<code>
profile*.tgz
</code>
to a location of your choice and run the
<code>
i2pbrowser.sh
</code>
script. This
will start a Firefox profile configured to use I2P.
</p>
<pre><code> tar xvf profile-0.3.tgz
cd profile
./i2pbrowser.sh
</code></pre>
<p>
If you want to run the app-like i2pconfig browser, then follow the
same steps with app-profile*.tgz.
</p>
<pre><code> tar xvf app-profile-0.3.tgz
cd app-profile
./i2pconfig.sh
</code></pre>
<p>
To generate a
<code>
deb
</code>
package, install the package
<code>
checkinstall
</code>
and run
the
<code>
make checkinstall
</code>
target after building with
<code>
make
</code>
.
</p>
<pre><code> make
make checkinstall
sudo apt install ./i2p-firefox*.deb
</code></pre>
<p>
If you want to set up i2pconfig to run when you start the service
with
<code>
sudo service i2p start
</code>
then you can run the script:
</p>
<pre><code> /usr/local/bin/i2p-config-service-setup
</code></pre>
<h2>
Including a jpackaged I2P Router
</h2>
<p>
In order to include a jpackaged(dependency-free) I2P router in the Profile
Bundle you will need to build the jpackaged I2P router as an “App Image” on
a Windows system and place it into a directory called
<code>
I2P
</code>
in your
<code>
i2p.firefox
</code>
checkout.
</p>
<p>
Assuming a working java and jpackage environment on your Windows system, the
following command should generate a suitable “App Image” in a directory
called “I2P.”
</p>
<pre><code> export I2P_VERSION=0.9.49
cp -R ../i2p.i2p/pkg-temp/lib build/lib
jpackage --type app-image --name I2P --app-version &#34;$I2P_VERSION&#34; \
--verbose \
--resource-dir build/lib \
--input build/lib --main-jar router.jar --main-class net.i2p.router.RouterLaunch
</code></pre>
<p>
Transfer the I2P directory to the machine where you build i2p.firefox if
necessary, then complete the regular build instructions. If a jpackaged I2P router
isnt present to use at build time, the inclusion will be skipped automatically
with a non-fatal warning.
</p>
<p>
In the near future, Ill start providing a pre-built app image to ease the
build process for non-Windows users.
</p>
<h2>
End-to-End Windows build process using WSL
</h2>
<p>
<strong>
If youve already done this once, you can just use:
</strong>
<code>
./build.sh &amp;&amp; wsl make
</code>
<strong>
in
<code>
git bash
</code>
</strong>
to automatically build an installer.
</p>
<p>
<strong>
Prerequisites:
</strong>
You need to have OpenJDK 14 or greater installed and configured
with your
<code>
%JAVA_HOME%
</code>
environment variable configured and
<code>
%JAVA_HOME%/bin
</code>
on
your
<code>
%PATH%
</code>
. You need to have Apache Ant installed and configured with
<code>
%ANT_HOME%
</code>
environment variable configured and
<code>
%ANT_HOME%/bin
</code>
on your
<code>
%PATH%
</code>
. You must have
Cygwin installed. You must have
<code>
NSIS.exe
</code>
installed and
<code>
makensis
</code>
available on your
<code>
%PATH%
</code>
. You must have Git for Windows installed. When installing git for Windows,
you should select “Checkout as is, commit as is” and leave line-endings alone.
</p>
<ol>
<li>
<p>
<a href="https://docs.microsoft.com/en-us/windows/wsl/install-win10#manual-installation-steps" rel="nofollow">
Set up Windows Subsystem for Linux per Microsofts instructions
</a>
</p>
</li>
<li>
<p>
<a href="https://www.microsoft.com/store/apps/9n6svws3rx71" rel="nofollow">
Install Ubuntu Focal per Microsofts instructions
</a>
</p>
</li>
<li>
<p>
Open Git Bash.
</p>
</li>
<li>
<p>
Install prerequisites
<code>
wsl sudo apt-get update &amp;&amp; sudo apt-get install make nsis dos2unix curl jq
</code>
</p>
</li>
<li>
<p>
Clone
<code>
i2p.i2p
</code>
and
<code>
i2p.firefox
</code>
</p>
<pre><code>git clone https://github.com/i2p/i2p.i2p
git clone https://github.com/i2p/i2p.firefox
</code></pre>
</li>
<li>
<p>
Move to the i2p.i2p directory. Build the .jar files required to build the App Image
inside i2p.i2p. Return to home.
</p>
<pre><code>cd i2p.i2p
ant clean pkg
cd ..
</code></pre>
</li>
<li>
<p>
Move into the i2p.firefox directory. Run the
<code>
./build.sh
</code>
script.
</p>
<pre><code>cd i2p.firefox
./build.sh
</code></pre>
</li>
<li>
<p>
Compile the NSIS installer using WSL.
</p>
<pre><code>wsl make
</code></pre>
</li>
</ol>
<h2>
End-to-End Windows build process using Cygwin
</h2>
<p>
I highly recommend you look into the Chocolatey package manager, which makes it much
easier to configure these tools and keep them up to date.
</p>
<p>
<strong>
Prerequisites:
</strong>
You need to have OpenJDK 14 or greater installed and configured
with your
<code>
%JAVA_HOME%
</code>
environment variable configured and
<code>
%JAVA_HOME%/bin
</code>
on
your
<code>
%PATH%
</code>
. You need to have Apache Ant installed and configured with
<code>
%ANT_HOME%
</code>
environment variable configured and
<code>
%ANT_HOME%/bin
</code>
on your
<code>
%PATH%
</code>
. You must have
WSL and git bash installed. You must have
<code>
NSIS.exe
</code>
installed and
<code>
makensis
</code>
available on your
<code>
%PATH%
</code>
. You must have Git for Windows installed. When installing git for Windows, you should
select “Checkout as is, commit as is” and leave line-endings alone.
</p>
<p>
TODO: Add links to the respective instructions for each of these.
</p>
<ol>
<li>
<p>
Run the Cygwin
<code>
setup-$arch.exe
</code>
for your platform to set up new packages. Select the
<code>
make
</code>
<code>
jq
</code>
<code>
dos2unix
</code>
and
<code>
curl
</code>
packages.
</p>
</li>
<li>
<p>
Open a cygwin terminal.
</p>
</li>
<li>
<p>
Clone
<code>
i2p.i2p
</code>
and
<code>
i2p.firefox
</code>
</p>
<pre><code>git clone https://github.com/i2p/i2p.i2p
git clone https://github.com/i2p/i2p.firefox
</code></pre>
</li>
<li>
<p>
Move to the i2p.i2p directory. Build the .jar files required to build the App Image
inside i2p.i2p. Return to home.
</p>
<pre><code>cd i2p.i2p
ant clean pkg
cd ..
</code></pre>
</li>
<li>
<p>
Move into the i2p.firefox directory. Run the
<code>
./build.sh
</code>
script.
</p>
<pre><code>cd i2p.firefox
./build.sh
</code></pre>
</li>
<li>
<p>
Run
<code>
make
</code>
to build the installer.
</p>
</li>
</ol>
<h2>
Doing a Release
</h2>
<p>
Once you have the installer
<code>
.exe
</code>
file produced by NSIS, youre almost ready to
do a release. As a final step, someone must sign the
<code>
.exe
</code>
file using a
Certificate which Windows will recognize. The current signer of the Windows
bundle is Zlatinb. Standard Windows signing tools are used.
</p>
<pre><code># Release Copypasta
./clean.sh
wsl make distclean
wsl make clean-extensions
wsl make extensions
./build.sh
wsl make
./sign.sh
</code></pre>
<h2>
Building a signed update file
</h2>
<p>
Building a signed update file for automatically updating a Windows I2P router
requires you to either be using linux, or have Go installed in your Cygwin or WSL environment.
On Linux(Where I sign the su3 files), this works:
</p>
<pre><code> make su3
</code></pre>
<p>
to run the signing tool if necessary and then package the installer in a
signed update file.
</p>
<h2>
Docker Support
</h2>
<p>
You can use a Docker container to install this browser profile as well. In order
to do this, you can run the commands:
</p>
<pre><code> xhost + local:docker
docker run -it --rm \
--net=host \
-e DISPLAY=unix$(DISPLAY) \
-v /tmp/.X11-unix:/tmp/.X11-unix \
geti2p/i2p.firefox firefox --profile /src/build/profile
</code></pre>
<p>
To build and run the container locally, clone this repository and run the
</p>
<pre><code> make run
</code></pre>
<p>
target.
</p>
<h2>
Issues
</h2>
<p>
To report issues against this browser profile, please file issues
at
<a href="https://i2pgit.org/i2p-hackers/i2p.firefox" rel="nofollow">
the official Gitlab
</a>
or the
<a href="https://github.com/i2p/i2p.firefox" rel="nofollow">
Github Mirror
</a>
. Issues
pertaining to the plugins may be reported to their upstream
maintainers if its determined that our configuration is not at
fault.
</p>
<p>
NoScript is developed on Github by
<code>
hackademix
</code>
and the community:
-
<a href="https://github.com/hackademix/noscript" rel="nofollow">
https://github.com/hackademix/noscript
</a>
</p>
<p>
HTTPS Everywhere is developed on Github by the EFF:
-
<a href="https://github.com/EFForg/https-everywhere" rel="nofollow">
https://github.com/EFForg/https-everywhere
</a>
</p>
<p>
I2P in Private Browsing is developed on Gitlab and Github by idk and the community:
-
<a href="https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox" rel="nofollow">
https://i2pgit.org/idk/I2P-in-Private-Browsing-Mode-Firefox
</a>
-
<a href="https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox" rel="nofollow">
https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox
</a>
</p>
<div>
<a href="#show">
Show license
</a>
<div id="show">
<div id="hide">
<pre><code>Copyright 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
</code></pre>
<a href="#hide">
Hide license
</a>
</div>
</div>
</div>
<div>
<iframe src="https://snowflake.torproject.org/embed.html" width="320" height="240" frameborder="0" scrolling="no"></iframe>
</div>
<div>
<a href="https://geti2p.net/">
<img src="i2plogo.png"></img>
I2P
</a>
</div>
</body>
</html>

View File

@ -2,6 +2,7 @@ package net.i2p.router;
import java.io.*;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.*;
import java.util.logging.FileHandler;
@ -17,6 +18,7 @@ import net.i2p.update.UpdateManager;
import net.i2p.update.UpdatePostProcessor;
import net.i2p.util.SystemVersion;
import net.i2p.update.*;
import net.i2p.i2pfirefox.*;
import static net.i2p.update.UpdateType.*;
@ -48,6 +50,14 @@ public class WinLauncher {
} catch (IOException e) {
e.printStackTrace();
}
boolean privateBrowsing = false;
if (args != null && args.length > 0) {
logger.info("checking for private browsing");
if (args[0].equals("-private")) {
privateBrowsing = true;
logger.info("private browsing is true, profile will be discarded at end of session");
}
}
File programs = selectProgramFile();
if (!programs.exists())
@ -67,7 +77,10 @@ public class WinLauncher {
if (i2pIsRunning()) {
logger.warning("I2P is already running");
System.exit(0);
I2PBrowser i2pBrowser = new I2PBrowser();
System.out.println("i2pBrowser");
i2pBrowser.launch(privateBrowsing);
return;
}
System.setProperty("i2p.dir.base", programs.getAbsolutePath());
@ -88,27 +101,40 @@ public class WinLauncher {
RouterLaunch.main(args);
}
// see https://stackoverflow.com/questions/434718/sockets-discover-port-availability-using-java
public static boolean isAvailable(int portNr) {
boolean portFree;
try (var ignored = new ServerSocket(portNr)) {
portFree = true;
} catch (IOException e) {
portFree = false;
}
return portFree;
}
private static boolean i2pIsRunning() {
// check if there's something listening on port 7657
sleep(2000);
// check if there's something listening on port 7657(Router Console)
if (!isAvailable(7657)) {
return true;
}
// check if there's something listening on port 7654(I2CP)
if (!isAvailable(7654)) {
return true;
}
// check for the existence of router.ping file, if it's less then 2 minutes old,
// exit
File home = selectHome();
File ping = new File(home, "router.ping");
if (ping.exists()) {
long diff = System.currentTimeMillis() - ping.lastModified();
if (diff < 2 * 60 * 1000) {
logger.info("router.ping exists and is less than 2 minutes old, I2P appears to be running already.");
if (diff < 60 * 1000) {
logger.info("router.ping exists and is less than 1 minute old, I2P appears to be running already.");
logger.info("If I2P is not running, wait 60 seconds and try again.");
return true;
}
}
try {
InetAddress localhost = InetAddress.getLocalHost();
Socket s = new Socket(localhost, 7657);
s.close();
return true;
} catch (IOException e) {
return false;
}
return false;
}
private static final Runnable REGISTER_UPP = () -> {

20
license/ABOUT-Jetty.html Normal file
View File

@ -0,0 +1,20 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>
<p>19 May, 2009</p>
<h3>License</h3>
<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). The Content is dual licensed and is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 (&quot;EPL&quot;) as well as the Apache Software License Version 2.0. A copy of the EPL is available
at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>. A copy of the ASL is available at <a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>. For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may apply to your use of any object code in the Content. Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
</body>
</html>

View File

@ -0,0 +1,319 @@
<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="ProgId" content="Word.Document">
<meta name="Generator" content="Microsoft Word 9">
<meta name="Originator" content="Microsoft Word 9">
<title>Eclipse Public License - Version 1.0</title>
<!--[if gte mso 9]><xml>
<o:DocumentProperties>
<o:Revision>2</o:Revision>
<o:TotalTime>3</o:TotalTime>
<o:Created>2004-03-05T23:03:00Z</o:Created>
<o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved>
<o:Pages>4</o:Pages>
<o:Words>1626</o:Words>
<o:Characters>9270</o:Characters>
<o:Lines>77</o:Lines>
<o:Paragraphs>18</o:Paragraphs>
<o:CharactersWithSpaces>11384</o:CharactersWithSpaces>
<o:Version>9.4402</o:Version>
</o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
<w:WordDocument>
<w:TrackRevisions/>
</w:WordDocument>
</xml><![endif]-->
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;
mso-font-charset:0;
mso-generic-font-family:swiss;
mso-font-pitch:variable;
mso-font-signature:553679495 -2147483648 8 0 66047 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p
{margin-right:0in;
mso-margin-top-alt:auto;
mso-margin-bottom-alt:auto;
margin-left:0in;
mso-pagination:widow-orphan;
font-size:12.0pt;
font-family:"Times New Roman";
mso-fareast-font-family:"Times New Roman";}
p.BalloonText, li.BalloonText, div.BalloonText
{mso-style-name:"Balloon Text";
margin:0in;
margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:8.0pt;
font-family:Tahoma;
mso-fareast-font-family:"Times New Roman";}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.25in 1.0in 1.25in;
mso-header-margin:.5in;
mso-footer-margin:.5in;
mso-paper-source:0;}
div.Section1
{page:Section1;}
-->
</style>
</head><body style="" lang="EN-US">
<div class="Section1">
<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b>
</p>
<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER
THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE,
REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE
OF THIS AGREEMENT.</span> </p>
<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p>
<p><span style="font-size: 10pt;">"Contribution" means:</span> </p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
in the case of the initial Contributor, the initial code and documentation
distributed under this Agreement, and<br clear="left">
b) in the case of each subsequent Contributor:</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
changes to the Program, and</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
additions to the Program;</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where
such changes and/or additions to the Program originate from and are distributed
by that particular Contributor. A Contribution 'originates' from a Contributor
if it was added to the Program by such Contributor itself or anyone acting on
such Contributor's behalf. Contributions do not include additions to the
Program which: (i) are separate modules of software distributed in conjunction
with the Program under their own license agreement, and (ii) are not derivative
works of the Program. </span></p>
<p><span style="font-size: 10pt;">"Contributor" means any person or
entity that distributes the Program.</span> </p>
<p><span style="font-size: 10pt;">"Licensed Patents " mean patent
claims licensable by a Contributor which are necessarily infringed by the use
or sale of its Contribution alone or when combined with the Program. </span></p>
<p><span style="font-size: 10pt;">"Program" means the Contributions
distributed in accordance with this Agreement.</span> </p>
<p><span style="font-size: 10pt;">"Recipient" means anyone who
receives the Program under this Agreement, including all Contributors.</span> </p>
<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
Subject to the terms of this Agreement, each Contributor hereby grants Recipient
a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly
display, publicly perform, distribute and sublicense the Contribution of such
Contributor, if any, and such derivative works, in source code and object code
form.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free
patent license under Licensed Patents to make, use, sell, offer to sell, import
and otherwise transfer the Contribution of such Contributor, if any, in source
code and object code form. This patent license shall apply to the combination
of the Contribution and the Program if, at the time the Contribution is added
by the Contributor, such addition of the Contribution causes such combination
to be covered by the Licensed Patents. The patent license shall not apply to
any other combinations which include the Contribution. No hardware per se is
licensed hereunder. </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c)
Recipient understands that although each Contributor grants the licenses to its
Contributions set forth herein, no assurances are provided by any Contributor
that the Program does not infringe the patent or other intellectual property
rights of any other entity. Each Contributor disclaims any liability to Recipient
for claims brought by any other entity based on infringement of intellectual
property rights or otherwise. As a condition to exercising the rights and
licenses granted hereunder, each Recipient hereby assumes sole responsibility
to secure any other intellectual property rights needed, if any. For example,
if a third party patent license is required to allow Recipient to distribute
the Program, it is Recipient's responsibility to acquire that license before
distributing the Program.</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d)
Each Contributor represents that to its knowledge it has sufficient copyright
rights in its Contribution, if any, to grant the copyright license set forth in
this Agreement. </span></p>
<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p>
<p><span style="font-size: 10pt;">A Contributor may choose to distribute the
Program in object code form under its own license agreement, provided that:</span>
</p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
it complies with the terms and conditions of this Agreement; and</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b)
its license agreement:</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i)
effectively disclaims on behalf of all Contributors all warranties and
conditions, express and implied, including warranties or conditions of title
and non-infringement, and implied warranties or conditions of merchantability
and fitness for a particular purpose; </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii)
effectively excludes on behalf of all Contributors all liability for damages,
including direct, indirect, special, incidental and consequential damages, such
as lost profits; </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii)
states that any provisions which differ from this Agreement are offered by that
Contributor alone and not by any other party; and</span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv)
states that source code for the Program is available from such Contributor, and
informs licensees how to obtain it in a reasonable manner on or through a
medium customarily used for software exchange.<span style="color: blue;"> </span></span></p>
<p><span style="font-size: 10pt;">When the Program is made available in source
code form:</span> </p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a)
it must be made available under this Agreement; and </span></p>
<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a
copy of this Agreement must be included with each copy of the Program. </span></p>
<p><span style="font-size: 10pt;">Contributors may not remove or alter any
copyright notices contained within the Program. </span></p>
<p><span style="font-size: 10pt;">Each Contributor must identify itself as the
originator of its Contribution, if any, in a manner that reasonably allows
subsequent Recipients to identify the originator of the Contribution. </span></p>
<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p>
<p><span style="font-size: 10pt;">Commercial distributors of software may
accept certain responsibilities with respect to end users, business partners
and the like. While this license is intended to facilitate the commercial use
of the Program, the Contributor who includes the Program in a commercial
product offering should do so in a manner which does not create potential
liability for other Contributors. Therefore, if a Contributor includes the
Program in a commercial product offering, such Contributor ("Commercial
Contributor") hereby agrees to defend and indemnify every other
Contributor ("Indemnified Contributor") against any losses, damages and
costs (collectively "Losses") arising from claims, lawsuits and other
legal actions brought by a third party against the Indemnified Contributor to
the extent caused by the acts or omissions of such Commercial Contributor in
connection with its distribution of the Program in a commercial product
offering. The obligations in this section do not apply to any claims or Losses
relating to any actual or alleged intellectual property infringement. In order
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
Contributor in writing of such claim, and b) allow the Commercial Contributor
to control, and cooperate with the Commercial Contributor in, the defense and
any related settlement negotiations. The Indemnified Contributor may participate
in any such claim at its own expense.</span> </p>
<p><span style="font-size: 10pt;">For example, a Contributor might include the
Program in a commercial product offering, Product X. That Contributor is then a
Commercial Contributor. If that Commercial Contributor then makes performance
claims, or offers warranties related to Product X, those performance claims and
warranties are such Commercial Contributor's responsibility alone. Under this
section, the Commercial Contributor would have to defend claims against the
other Contributors related to those performance claims and warranties, and if a
court requires any other Contributor to pay any damages as a result, the
Commercial Contributor must pay those damages.</span> </p>
<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p>
<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
responsible for determining the appropriateness of using and distributing the
Program and assumes all risks associated with its exercise of rights under this
Agreement , including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs or
equipment, and unavailability or interruption of operations. </span></p>
<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p>
<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS
AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.</span> </p>
<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p>
<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid
or unenforceable under applicable law, it shall not affect the validity or
enforceability of the remainder of the terms of this Agreement, and without
further action by the parties hereto, such provision shall be reformed to the
minimum extent necessary to make such provision valid and enforceable.</span> </p>
<p><span style="font-size: 10pt;">If Recipient institutes patent litigation
against any entity (including a cross-claim or counterclaim in a lawsuit)
alleging that the Program itself (excluding combinations of the Program with
other software or hardware) infringes such Recipient's patent(s), then such
Recipient's rights granted under Section 2(b) shall terminate as of the date
such litigation is filed. </span></p>
<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement
shall terminate if it fails to comply with any of the material terms or
conditions of this Agreement and does not cure such failure in a reasonable
period of time after becoming aware of such noncompliance. If all Recipient's
rights under this Agreement terminate, Recipient agrees to cease use and
distribution of the Program as soon as reasonably practicable. However,
Recipient's obligations under this Agreement and any licenses granted by
Recipient relating to the Program shall continue and survive. </span></p>
<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute
copies of this Agreement, but in order to avoid inconsistency the Agreement is
copyrighted and may only be modified in the following manner. The Agreement
Steward reserves the right to publish new versions (including revisions) of
this Agreement from time to time. No one other than the Agreement Steward has
the right to modify this Agreement. The Eclipse Foundation is the initial
Agreement Steward. The Eclipse Foundation may assign the responsibility to
serve as the Agreement Steward to a suitable separate entity. Each new version
of the Agreement will be given a distinguishing version number. The Program
(including Contributions) may always be distributed subject to the version of
the Agreement under which it was received. In addition, after a new version of
the Agreement is published, Contributor may elect to distribute the Program
(including its Contributions) under the new version. Except as expressly stated
in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to
the intellectual property of any Contributor under this Agreement, whether
expressly, by implication, estoppel or otherwise. All rights in the Program not
expressly granted under this Agreement are reserved.</span> </p>
<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the
State of New York and the intellectual property laws of the United States of
America. No party to this Agreement will bring a legal action under this
Agreement more than one year after the cause of action arose. Each party waives
its rights to a jury trial in any resulting litigation.</span> </p>
<p class="MsoNormal"><!--[if !supportEmptyParas]-->&nbsp;<!--[endif]--><o:p></o:p></p>
</div>
</body></html>

111
license/NOTICE-Jetty.html Normal file
View File

@ -0,0 +1,111 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Eclipse.org Software User Agreement</title>
</head><body lang="EN-US" link="blue" vlink="purple">
<h2>Eclipse Foundation Software User Agreement</h2>
<p>March 17, 2005</p>
<h3>Usage Of Content</h3>
<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
(COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE
OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
<h3>Applicable Licenses</h3>
<p>Unless otherwise indicated, all Content made available by the
Eclipse Foundation is provided to you under the terms and conditions of
the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is
provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, "Program" will mean the Content.</p>
<p>Content includes, but is not limited to, source code, object code,
documentation and other files maintained in the Eclipse.org CVS
repository ("Repository") in CVS modules ("Modules") and made available
as downloadable archives ("Downloads").</p>
<ul>
<li>Content may be structured and packaged into modules to
facilitate delivering, extending, and upgrading the Content. Typical
modules may include plug-ins ("Plug-ins"), plug-in fragments
("Fragments"), and features ("Features").</li>
<li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&#8482; ARchive) in a directory named "plugins".</li>
<li>A
Feature is a bundle of one or more Plug-ins and/or Fragments and
associated material. Each Feature may be packaged as a sub-directory in
a directory named "features". Within a Feature, files named
"feature.xml" may contain a list of the names and version numbers of
the Plug-ins and/or Fragments associated with that Feature.</li>
<li>Features
may also include other Features ("Included Features"). Within a
Feature, files named "feature.xml" may contain a list of the names and
version numbers of Included Features.</li>
</ul>
<p>The terms and conditions governing Plug-ins and Fragments should be
contained in files named "about.html" ("Abouts"). The terms and
conditions governing Features and
Included Features should be contained in files named "license.html"
("Feature Licenses"). Abouts and Feature Licenses may be located in any
directory of a Download or Module
including, but not limited to the following locations:</p>
<ul>
<li>The top-level (root) directory</li>
<li>Plug-in and Fragment directories</li>
<li>Inside Plug-ins and Fragments packaged as JARs</li>
<li>Sub-directories of the directory named "src" of certain Plug-ins</li>
<li>Feature directories</li>
</ul>
<p>Note: if a Feature made available by the Eclipse Foundation is
installed using the Eclipse Update Manager, you must agree to a license
("Feature Update License") during the
installation process. If the Feature contains Included Features, the
Feature Update License should either provide you with the terms and
conditions governing the Included Features or
inform you where you can locate them. Feature Update Licenses may be
found in the "license" property of files named "feature.properties"
found within a Feature.
Such Abouts, Feature Licenses, and Feature Update Licenses contain the
terms and conditions (or references to such terms and conditions) that
govern your use of the associated Content in
that directory.</p>
<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER
TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
CONDITIONS. SOME OF THESE
OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
<ul>
<li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
<li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
<li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
<li>IBM Public License 1.0 (available at <a href="http://oss.software.ibm.com/developerworks/opensource/license10.html">http://oss.software.ibm.com/developerworks/opensource/license10.html</a>)</li>
<li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
<li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
</ul>
<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
or Feature Update License is provided, please
contact the Eclipse Foundation to determine what terms and conditions
govern that particular Content.</p>
<h3>Cryptography</h3>
<p>Content may contain encryption software. The country in which you
are currently may have restrictions on the import, possession, and use,
and/or re-export to another country, of encryption software. BEFORE
using any encryption software, please check the country's laws,
regulations and policies concerning the import, possession, or use, and
re-export of encryption software, to see if this is permitted.</p>
<small>Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.</small>
</body></html>

View File

@ -1,5 +1,5 @@
Apache Tomcat
Copyright 1999-2021 The Apache Software Foundation
Copyright 1999-2022 The Apache Software Foundation
This product includes software developed at
The Apache Software Foundation (https://www.apache.org/).

View File

@ -7,8 +7,16 @@ app-profile.tgz: app-profile
install -m755 src/unix/i2pconfig.sh build/app-profile/i2pconfig.sh
cd build && tar -czf app-profile-$(PROFILE_VERSION).tgz app-profile && cp app-profile-$(PROFILE_VERSION).tgz ../
src/app-profile/user.js:
wget -O src/app-profile/user.js "https://github.com/arkenfox/user.js/raw/master/user.js"
sed -i 's|user_pref("extensions.autoDisableScopes", 15);|user_pref("extensions.autoDisableScopes", 0);|g src/app-profile/user.js
sed -i 's|user_pref("extensions.enabledScopes", 5);|user_pref("extensions.enabledScopes", 1);|g' src/app-profile/user.js
sed -i 's|user_pref("dom.security.https_only_mode", true);|user_pref("dom.security.https_only_mode", false);|g' src/app-profile/user.js
build/app-profile/user.js: build/app-profile src/app-profile/user.js
cp src/app-profile/user.js build/app-profile/user.js
cp src/app-profile/user-overrides.js build/app-profile/user-overrides.js
build/app-profile/prefs.js: build/app-profile src/app-profile/prefs.js
cp src/app-profile/prefs.js build/app-profile/prefs.js

View File

@ -8,25 +8,25 @@ build/win:
mkdir -p build/win/
build/win/common.bat:
cp src/win/common.bat build/win/common.bat
#cp src/win/common.bat build/win/common.bat
build/win/copy-config-profile.bat:
cp src/win/copy-config-profile.bat build/win/copy-config-profile.bat
#cp src/win/copy-config-profile.bat build/win/copy-config-profile.bat
build/win/copy-profile.bat:
cp src/win/launchi2p.bat build/win/copy-profile.bat
#cp src/win/launchi2p.bat build/win/copy-profile.bat
build/win/launchi2p.bat:
cp src/win/launchi2p.bat build/win/launchi2p.bat
#cp src/win/launchi2p.bat build/win/launchi2p.bat
build/win/i2pbrowser.bat: build/win/common.bat build/win/copy-config-profile.bat build/win/copy-profile.bat build/win/launchi2p.bat
cp src/win/i2pbrowser.bat build/win/i2pbrowser.bat
#cp src/win/i2pbrowser.bat build/win/i2pbrowser.bat
build/win/i2pconfig.bat: build/win/common.bat build/win/copy-config-profile.bat build/win/copy-profile.bat build/win/launchi2p.bat
cp src/win/i2pconfig.bat build/win/i2pconfig.bat
#cp src/win/i2pconfig.bat build/win/i2pconfig.bat
build/win/i2pbrowser-private.bat: build/win/common.bat build/win/copy-config-profile.bat build/win/copy-profile.bat build/win/launchi2p.bat
cp src/win/i2pbrowser-private.bat build/win/i2pbrowser-private.bat
#cp src/win/i2pbrowser-private.bat build/win/i2pbrowser-private.bat
launchers: build/win build/win/i2pbrowser.bat build/win/i2pbrowser-private.bat build/win/i2pconfig.bat

View File

@ -8,8 +8,15 @@ profile.tgz: .version profile
install -m755 src/unix/i2pbrowser.sh build/profile/i2pbrowser.sh
cd build && tar -czf profile-$(PROFILE_VERSION).tgz profile && cp profile-$(PROFILE_VERSION).tgz ../
src/profile/user.js:
wget -O src/profile/user.js "https://github.com/arkenfox/user.js/raw/master/user.js"
sed -i 's|user_pref("extensions.autoDisableScopes", 15);|user_pref("extensions.autoDisableScopes", 0);|g src/profile/user.js
sed -i 's|user_pref("extensions.enabledScopes", 5);|user_pref("extensions.enabledScopes", 1);|g' src/profile/user.js
sed -i 's|user_pref("dom.security.https_only_mode", true);|user_pref("dom.security.https_only_mode", false);|g' src/profile/user.js
build/profile/user.js: build/profile src/profile/user.js
cp src/profile/user.js build/profile/user.js
cp src/profile/user-overrides.js build/profile/user-overrides.js
build/profile/prefs.js: build/profile src/profile/prefs.js
cp src/profile/prefs.js build/profile/prefs.js

View File

@ -1,3 +1,5 @@
router.updateURL=http://ekm3fu6fr5pxudhwjmdiea5dovc3jdi66hjgop4c7z7dfaw7spca.b32.i2p/i2pwinupdate.su3
router.newsURL=http://dn3tvalnjz432qkqsvpfdqrwpqkw3ye4n4i2uyfr4jexvo3sp5ka.b32.i2p/news/win/beta/news.su3
router.backupNewsURL=http://tc73n4kivdroccekirco7rhgxdg5f3cjvbaapabupeyzrqwv5guq.b32.i2p/win/beta/news.su3
routerconsole.browser=I2P.exe
router.disableTunnelTesting=false

10
showhider.css Normal file
View File

@ -0,0 +1,10 @@
/* edgar showhider CSS file */
#show {display:none; }
#hide {display:block; }
#show:target {display: block; }
#hide:target {display: none; }
#shownav {display:none; }
#hidenav {display:block; }
#shownav:target {display: block; }
#hidenav:target {display: none; }

View File

@ -40,6 +40,6 @@ if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
linuxsign I2P-Profile-Installer-$I2P_VERSION.exe
cp "I2P-Profile-Installer-$I2P_VERSION.exe" "I2P-Profile-Installer-$I2P_VERSION-signed.exe"
else
signtool.exe sign "I2P-Profile-Installer-$I2P_VERSION.exe"
signtool.exe sign /a "I2P-Profile-Installer-$I2P_VERSION.exe"
cp "I2P-Profile-Installer-$I2P_VERSION.exe" "I2P-Profile-Installer-$I2P_VERSION-signed.exe"
fi

View File

@ -60,4 +60,6 @@ user_pref("webgl.disable-fail-if-major-performance-caveat", true);
user_pref("webgl.enable-webgl2", false);
user_pref("media.navigator.enabled", false);
user_pref("dom.w3c_touch_events.enabled", false);
user_pref("browser.display.use_system_colors", false);
user_pref("browser.display.use_system_colors", false);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 1);

View File

@ -0,0 +1,229 @@
/*
Overrides#
for Extension Preferences# Tor Browser Bundle# Do not edit this file.##This file is modified from a file included in the Tor Browser Bundle.##Copyright 2017 The Tor Project.See LICENSE.tor#
for licensing information.
HTTPS Everywhere Preferences:
*/
user_pref("extensions.https_everywhere._observatory.popup_shown", true);
user_pref("extensions.https_everywhere.toolbar_hint_shown", true);
/*
NoScript Preferences: #In order to disable all scripts by
default, uncomment the following line...#user_pref("capability.policy.maonoscript.javascript.enabled", "noAccess");#
and comment out the following line
*/
user_pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
user_pref("capability.policy.maonoscript.sites", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.default", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.mandatory", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.ABE.enabled", false);
user_pref("noscript.ABE.notify", false);
user_pref("noscript.ABE.wanIpAsLocal", false);
user_pref("noscript.confirmUnblock", false);
user_pref("noscript.contentBlocker", true);
user_pref("noscript.firstRunRedirection", false);
user_pref("noscript.global", true);
user_pref("noscript.gtemp", "");
user_pref("noscript.opacizeObject", 3);
user_pref("noscript.forbidWebGL", true);
user_pref("noscript.forbidFonts", true);
user_pref("noscript.options.tabSelectedIndexes", "5,0,0");
user_pref("noscript.policynames", "");
user_pref("noscript.secureCookies", true);
user_pref("noscript.showAllowPage", false);
user_pref("noscript.showBaseDomain", false);
user_pref("noscript.showDistrust", false);
user_pref("noscript.showRecentlyBlocked", false);
user_pref("noscript.showTemp", false);
user_pref("noscript.showTempToPerm", false);
user_pref("noscript.showUntrusted", false);
user_pref("noscript.STS.enabled", false);
user_pref("noscript.subscription.lastCheck", -142148139);
user_pref("noscript.temp", "");
user_pref("noscript.untrusted", "");
user_pref("noscript.forbidMedia", true);
user_pref("noscript.allowWhitelistUpdates", false);
user_pref("noscript.fixLinks", false);
// Now handled by plugins.click_to_play // Not in this one.
user_pref("noscript.forbidFlash", true);
user_pref("noscript.forbidSilverlight", true);
user_pref("noscript.forbidJava", true);
user_pref("noscript.forbidPlugins", true);
// Usability tweaks
user_pref("noscript.showPermanent", false);
user_pref("noscript.showTempAllowPage", true);
user_pref("noscript.showRevokeTemp", true);
user_pref("noscript.notify", false);
user_pref("noscript.autoReload", true);
user_pref("noscript.autoReload.allTabs", false);
user_pref("noscript.cascadePermissions", true);
user_pref("noscript.restrictSubdocScripting", true);
user_pref("noscript.showVolatilePrivatePermissionsToggle", false);
user_pref("noscript.volatilePrivatePermissions", true);
user_pref("noscript.clearClick", 0);
user_pref("intl.locale.matchOS", false);
user_pref("extensions.https_everywhere._observatory.enabled", false);
user_pref("extensions.https_everywhere.options.autoUpdateRulesets", false);
user_pref("extensions.https_everywhere.globalEnabled", false);
user_pref("extensions.https_everywhere._observatory.submit_during_tor", false);
user_pref("extensions.https_everywhere._observatory.submit_during_nontor", false);
user_pref("extensions.https_everywhere._observatory.use_custom_proxy", true);
user_pref("extensions.https_everywhere._observatory.proxy_host", "127.0.0.1");
user_pref("extensions.https_everywhere._observatory.proxy_port", 4444);
user_pref("extensions.torbutton.use_nontor_proxy", true);
//For socket conversion: in the future, I'll need to make TBB communicate with
//i2p over a unix socket. Fortunately, this is how you do that. It will be
//configurable in a similar way to the host:port configuration when that happens.
//user_pref("extensions.torlauncher.socks_port_use_ipc", );
//user_pref("extensions.torlauncher.socks_ipc_path", "");
// TODO: this is a Tor Browser specific setting which is ignored on Firefox. If
// I make it true, the SOCKS outproxy will have something to connect to. But I
// need to test more to find out if that's prudent.
user_pref("extensions.torlauncher.start_tor", false);
//user_pref("extensions.torlauncher.default_bridge_type", "");
user_pref("extensions.torlauncher.prompt_at_startup", false);
// Resist-fingerprinting and first-party isolation enable
user_pref("privacy.resistFingerprinting", true);
user_pref("privacy.firstparty.isolate", true);
// Use i2p http proxy for all connections and set homepage to safe local form.
// DON'T allow access to the admin panel from the profile we browse i2p with.
user_pref("network.proxy.no_proxies_on", "127.0.0.1:7657,localhost:7657,127.0.0.1:7662,localhost:7662,127.0.0.1:7669,localhost:7669");
user_pref("network.proxy.type", 1);
user_pref("network.proxy.http", "127.0.0.1");
user_pref("network.proxy.http_port", 4444);
user_pref("network.proxy.ssl", "127.0.0.1");
user_pref("network.proxy.ssl_port", 4444);
user_pref("network.proxy.ftp", "127.0.0.1");
user_pref("network.proxy.ftp_port", 4444);
user_pref("network.proxy.socks", "127.0.0.1");
user_pref("network.proxy.socks_port", 4444);
user_pref("network.proxy.share_proxy_settings", true);
user_pref("browser.startup.homepage", "http://127.0.0.1:7657/home");
// Privacy-harden and disable irrelevant features.
user_pref("app.normandy.api_url", "");
user_pref("app.normandy.enabled", false);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("beacon.enabled", false);
user_pref("browser.aboutHomeSnippets.updateUrl", "");
user_pref("browser.cache.disk_cache_ssl", false);
user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.offline.enable", false);
user_pref("browser.disableResetPrompt", true);
user_pref("browser.display.use_document_fonts", 0);
user_pref("browser.fixup.alternate.enabled", false);
user_pref("browser.formfill.enable", false);
user_pref("browser.library.activity-stream.enabled", false);
user_pref("browser.newtabpage.activity-stream.disableSnippets", true);
user_pref("browser.newtabpage.activity-stream.enabled", false);
user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", false);
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.feeds.topsites", false);
user_pref("browser.newtabpage.activity-stream.prerender", false);
user_pref("browser.newtabpage.activity-stream.showSearch", false);
user_pref("browser.newtabpage.enhanced", false);
user_pref("browser.newtabpage.introShown", true);
user_pref("browser.newtab.preload", false);
user_pref("browser.onboarding.enabled", false);
user_pref("browser.pagethumbnails.capturing_disabled", true);
user_pref("browser.safebrowsing.appRepURL", "");
user_pref("browser.safebrowsing.blockedURIs.enabled", false);
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.url", "");
user_pref("browser.safebrowsing.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.search.geoip.timeout", 1);
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.selfsupport.url", "");
user_pref("browser.send_pings", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.startup.homepage_override.mstone", "ignore");
user_pref("browser.startup.page", 0);
user_pref("browser.toolbarbuttons.introduced.pocket-button", true);
user_pref("browser.urlbar.speculativeConnect.enabled", false);
user_pref("browser.urlbar.trimURLs", false);
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.enable_performance", false);
user_pref("dom.enable_performance_navigation_timing", false);
user_pref("dom.enable_resource_timing", false);
user_pref("dom.event.clipboardevents.enabled", false);
user_pref("dom.gamepad.enabled", false);
user_pref("dom.indexedDB.enabled", false);
user_pref("dom.min_timeout_value", 400);
user_pref("dom.push.connection.enabled", false);
user_pref("dom.push.enabled", false);
user_pref("dom.serviceWorkers.enabled", false);
user_pref("dom.serviceWorkers.interception.enabled", false);
user_pref("dom.storage.enabled", false);
user_pref("dom.webaudio.enabled", false);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 1);
user_pref("extensions.getAddons.cache.enabled", false);
user_pref("extensions.getAddons.showPane", false);
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.screenshots.disabled", true);
user_pref("extensions.webservice.discoverURL", "");
user_pref("geo.enabled", false);
user_pref("geo.wifi.uri", "");
user_pref("gfx.downloadable_fonts.disable_cache", true);
user_pref("javascript.options.shared_memory", false);
user_pref("layout.css.visited_links_enabled", false);
user_pref("media.autoplay.enabled", false);
user_pref("media.cache_size", 0);
user_pref("media.navigator.enabled", false);
user_pref("media.peerconnection.ice.no_host", true);
user_pref("media.video_stats.enabled", false);
user_pref("captivedetect.canonicalURL", "");
user_pref("network.captive-portal-service.enabled", false);
user_pref("network.cookie.cookieBehavior", 1);
user_pref("network.cookie.lifetimePolicy", 2);
user_pref("network.dns.disablePrefetch", true);
user_pref("network.http.referer.spoofSource", true);
user_pref("network.http.referer.trimmingPolicy", 2);
user_pref("network.http.referer.XOriginPolicy", 2);
user_pref("network.prefetch-next", false);
user_pref("privacy.donottrackheader.enabled", true);
user_pref("privacy.donottrackheader.value", 1);
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.coverage.opt-out", true);
user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.server", "");
user_pref("toolkit.telemetry.unified", false);
user_pref("webgl.disabled", true);
user_pref("browser.chrome.errorReporter.infoURL", "");
user_pref("breakpad.reportURL", "");
//user_pref("browser.newtabpage.activity-stream.default.sites", "");
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
user_pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", false);
user_pref("browser.newtabpage.enabled", true);
user_pref("browser.newtabpage.activity-stream.default.sites", "http://planet.i2p/,http://legwork.i2p/,http://i2pwiki.i2p/,http://i2pforums.i2p/,http://zzz.i2p/");
user_pref("dom.security.https_only_mode", false);
user_pref("keyword.enabled", false);
user_pref("extensions.allowPrivateBrowsingByDefault", true);
user_pref("extensions.PrivateBrowsing.notification", false);
user_pref("browser.newtabpage.activity-stream.feeds.topsites", true);
user_pref("ui.use_standins_for_native_colors", true);
user_pref("webgl.disable-extensions", true);
user_pref("webgl.min_capability_mode", true);
user_pref("webgl.disable-fail-if-major-performance-caveat", true);
user_pref("webgl.enable-webgl2", false);
user_pref("dom.w3c_touch_events.enabled", false);
user_pref("browser.privatebrowsing.autostart", false);
user_pref("browser.display.use_system_colors", false);

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
1.8.0
1.9.0

View File

@ -14,23 +14,13 @@ UniCode true
!include i2pbrowser-jpackage.nsi
!include FindProcess.nsh
var FFINSTEXE
var FFNONTORINSTEXE
var I2PINSTEXE
Var PARENTOPTIONS
SetOverwrite on
!define FFINSTEXE
!define FFNONTORINSTEXE
!define FFINSTEXE32 "$PROGRAMFILES32\Mozilla Firefox\"
!define FFINSTEXE64 "$PROGRAMFILES64\Mozilla Firefox\"
!define I2PINSTEXE
!define I2PINSTEXE32 "$PROGRAMFILES32\i2p"
!define I2PINSTEXE64 "$PROGRAMFILES64\i2p"
!define I2PINSTEXE_USERMODE "$LOCALAPPDATA\i2p"
!define RAM_NEEDED_FOR_64BIT 0x80000000
InstallDir "$PROGRAMFILES64\${COMPANYNAME}\${APPNAME}"
@ -111,15 +101,15 @@ RequestExecutionLevel user
!insertmacro MUI_LANGUAGE "Basque"
!insertmacro MUI_LANGUAGE "Welsh"
# Commented out languages below do not compile on NSIS v2
# !insertmacro MUI_LANGUAGE "Asturian"
# !insertmacro MUI_LANGUAGE "Pashto"
# !insertmacro MUI_LANGUAGE "ScotsGaelic"
# !insertmacro MUI_LANGUAGE "Georgian"
# !insertmacro MUI_LANGUAGE "Vietnamese"
# !insertmacro MUI_LANGUAGE "Armenian"
# !insertmacro MUI_LANGUAGE "Corsican"
# !insertmacro MUI_LANGUAGE "Tatar"
# !insertmacro MUI_LANGUAGE "Hindi"
!insertmacro MUI_LANGUAGE "Asturian"
!insertmacro MUI_LANGUAGE "Pashto"
!insertmacro MUI_LANGUAGE "ScotsGaelic"
!insertmacro MUI_LANGUAGE "Georgian"
!insertmacro MUI_LANGUAGE "Vietnamese"
!insertmacro MUI_LANGUAGE "Armenian"
!insertmacro MUI_LANGUAGE "Corsican"
!insertmacro MUI_LANGUAGE "Tatar"
!insertmacro MUI_LANGUAGE "Hindi"
### END LANGUAGES
# small speed optimization
@ -130,13 +120,6 @@ RequestExecutionLevel user
PageEx license
licensetext "${LICENSE_TITLE}"
licensedata "licenses\LICENSE.txt"
#PageCallbacks elevatorCallback
PageExEnd
PageEx directory
dirtext "${FIREFOX_MESSAGE}"
dirvar $FFINSTEXE
dirvar $FFNONTORINSTEXE
PageCallbacks firefoxDetect
PageExEnd
PageEx directory
dirtext "${I2P_MESSAGE}"
@ -145,75 +128,47 @@ PageEx directory
PageExEnd
Page instfiles
!include i2pbrowser-mozcompat.nsi
#!include i2pbrowser-mozcompat.nsi
Function .onInit
StrCpy $I2PINSTEXE "${I2PINSTEXE64}"
StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}"
UserInfo::GetAccountType
pop $0
${If} $0 != "admin"
StrCpy $INSTDIR "$LOCALAPPDATA\${COMPANYNAME}\${APPNAME}"
StrCpy $I2PINSTEXE "${I2PINSTEXE_USERMODE}"
${EndIf}
${If} ${FileExists} "${I2PINSTEXE32}\i2p.exe"
StrCpy $I2PINSTEXE "${I2PINSTEXE32}"
${EndIf}
${If} ${FileExists} "${I2PINSTEXE64}\i2p.exe"
StrCpy $I2PINSTEXE "${I2PINSTEXE64}"
${EndIf}
!insertmacro MUI_LANGDLL_DISPLAY
Call ShouldInstall64Bit
${If} $0 == 1
${If} ${FileExists} "${FFINSTEXE64}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE64}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE64}"
${ElseIf} ${FileExists} "${FFINSTEXE32}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE32}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE32}"
${EndIf}
${If} ${FileExists} "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\"
${EndIf}
${If} ${FileExists} "$PROFILE\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\Desktop\Tor Browser\Browser\"
${EndIf}
${Else}
${If} ${FileExists} "${FFINSTEXE32}\firefox.exe"
StrCpy $FFINSTEXE "${FFINSTEXE32}"
StrCpy $FFNONTORINSTEXE "${FFINSTEXE32}"
${EndIf}
${If} ${FileExists} "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\OneDrive\Desktop\Tor Browser\Browser\"
${EndIf}
${If} ${FileExists} "$PROFILE\Desktop\Tor Browser\Browser\firefox.exe"
StrCpy $FFINSTEXE "$PROFILE\Desktop\Tor Browser\Browser\"
${EndIf}
${EndIf}
#Call ShouldInstall64Bit
# look for user installs
FunctionEnd
Function firefoxDetect
${If} ${FileExists} "$FFINSTEXE\firefox.exe"
Abort directory
${EndIf}
FunctionEnd
Function routerDetect
${If} ${FileExists} "$I2PINSTEXE"
Abort directory
${Else}
createDirectory $I2PINSTEXE
SetOutPath $I2PINSTEXE
File /nonfatal /a /r "I2P\"
File /nonfatal /a /r "I2P\I2P.exe"
File /nonfatal "I2P\config\jpackaged"
createDirectory $I2PINSTEXE
SetOutPath $I2PINSTEXE
File /a /r "I2P\"
File /nonfatal /a /r "I2P\I2P.exe"
File "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\"
File /nonfatal /a /r "I2P/config/*"
createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\"
IfFileExists $I2PINSTEXE\router.config +2 0
File /a /r "I2P/config/router.config"
IfFileExists $I2PINSTEXE\clients.config +2 0
File /a /r "I2P/config/clients.config"
IfFileExists $I2PINSTEXE\wrapper.config +2 0
File /a /r "I2P/config/wrapper.config"
IfFileExists $I2PINSTEXE\hosts.txt +2 0
File /a /r "I2P/config/hosts.txt"
IfFileExists $I2PINSTEXE\eepsite +2 0
File /a /r "I2P/config/eepsite"
IfFileExists $I2PINSTEXE\webapps +2 0
File /a /r "I2P/config/webapps"
File /a /r "I2P/config/certificates"
File /a /r "I2P/config/geoip"
File /a /r "I2P/config/i2ptunnel.config"
Abort directory
${EndIf}
Abort directory
FunctionEnd
Function installerFunction
@ -237,33 +192,19 @@ ${If} ${Silent}
${If} ${Silent}
ReadEnvStr $0 OLD_I2P_VERSION
${If} $0 < ${I2P_VERSION}
rmDir /r $I2PINSTEXE/app
rmDir /r $I2PINSTEXE/runtime
File /nonfatal /a /r "I2P\"
File /nonfatal "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\"
File /nonfatal /a /r "I2P/config/*"
call routerDetect
${EndIf}
${Else}
rmDir /r $I2PINSTEXE/app
rmDir /r $I2PINSTEXE/runtime
File /nonfatal /a /r "I2P\"
File /nonfatal "I2P\config\jpackaged"
createDirectory "$I2PINSTEXE\"
SetOutPath "$I2PINSTEXE\"
File /nonfatal /a /r "I2P/config/*"
call routerDetect
${EndIf}
${EndIf}
# Install the launcher scripts
createDirectory "$INSTDIR"
SetOutPath "$INSTDIR"
File "win/*"
#SetOutPath "$INSTDIR"
#File "win/*"
# Install the licenses
createDirectory "$INSTDIR\licenses"
@ -280,28 +221,16 @@ ${If} ${Silent}
SetOutPath "$INSTDIR\firefox.profile.config.i2p"
File /a /r "app-profile/*"
SetOutPath "$INSTDIR"
SetOutPath "$I2PINSTEXE"
createDirectory "$SMPROGRAMS\${APPNAME}"
CreateShortCut "$SMPROGRAMS\${APPNAME}\Browse I2P.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pbrowser.bat$\" ${CONSOLE_URL}" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$SMPROGRAMS\${APPNAME}\Browse I2P - Temporary Identity.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pbrowser-private.bat$\"" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$SMPROGRAMS\${APPNAME}\Browse I2P.lnk" "$I2PINSTEXE\I2P.exe" "" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$SMPROGRAMS\${APPNAME}\Browse I2P - Temporary Identity.lnk" "$I2PINSTEXE\I2P.exe -private" "" "$INSTDIR\ui2pbrowser_icon.ico"
; CreateShortCut "$SMPROGRAMS\${APPNAME}\I2P Applications.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pconfig.bat$\"" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$DESKTOP\Browse I2P.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pbrowser.bat$\" ${CONSOLE_URL}" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$DESKTOP\Browse I2P - Temporary Identity.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pbrowser-private.bat$\"" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$DESKTOP\Browse I2P.lnk" "$I2PINSTEXE\I2P.exe" "" "$INSTDIR\ui2pbrowser_icon.ico"
CreateShortCut "$DESKTOP\Browse I2P - Temporary Identity.lnk" "$I2PINSTEXE\I2P.exe -private" "" "$INSTDIR\ui2pbrowser_icon.ico"
; CreateShortCut "$DESKTOP\I2P Applications.lnk" "C:\Windows\system32\cmd.exe" "/c $\"$INSTDIR\i2pconfig.bat$\"" "$INSTDIR\ui2pbrowser_icon.ico"
;# Point the browser config setting in the base router.config
FileOpen $0 "$I2PINSTEXE\router.config" a
FileSeek $0 0 END
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileWrite $0 "routerconsole.browser=$\"$INSTDIR\i2pconfig.bat$\""
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileWrite $0 "router.disableTunnelTesting=false"
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileClose $0
SetOutPath "$INSTDIR"
SetShellVarContext current
Var /Global I2PAPPDATA
@ -319,20 +248,7 @@ ${If} ${Silent}
SetOutPath "$I2PAPPDATA"
IfFileExists "$LOCALAPPDATA\I2P\eepsite\docroot" +2 0
File /nonfatal /a /r "I2P\eepsite"
;# Point the browser config setting in the working config
FileOpen $0 "$I2PAPPDATA\router.config" a
FileSeek $0 0 END
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileWrite $0 "routerconsole.browser=$\"$INSTDIR\i2pconfig.bat$\""
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileWrite $0 "router.disableTunnelTesting=false"
FileWriteByte $0 "13"
FileWriteByte $0 "10"
FileClose $0
File /a /r "I2P\eepsite"
createDirectory "$I2PINSTEXE"
SetOutPath "$I2PINSTEXE"
@ -345,20 +261,6 @@ ${If} ${Silent}
CreateShortCut "$SMPROGRAMS\${APPNAME}\Uninstall-${APPNAME}.lnk" "$INSTDIR\uninstall-i2pbrowser.exe"
FunctionEnd
Function elevatorCallback
${GetOptions} $CMDLINE "/p" $PARENTOPTIONS
${If} "${PARENTOPTIONS}" != ""
StrCpy $PARENTOPTIONS "-ArgumentList '$PARENTOPTIONS'"
${EndIf}
${If} ${FileExists} "${I2PINSTEXE64}\i2p.exe"
ExecShell open "powershell -Command Start-Process .\$EXEFILE -Wait -Verb RunAs $PARENTOPTIONS"
#Quit
${ElseIf} ${FileExists} "${I2PINSTEXE32}\i2p.exe"
ExecShell open "powershell -Command Start-Process .\$EXEFILE -Wait -Verb RunAs $PARENTOPTIONS"
#Quit
${EndIf}
FunctionEnd
# start default section
Section Install
@ -374,7 +276,6 @@ Section "uninstall"
Delete $I2PINSTEXE\*
rmDir /r "$I2PINSTEXE"
${EndIf}
# Remove shortcuts and folders
Delete "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk"
@ -404,12 +305,26 @@ SectionEnd
!insertmacro MUI_PAGE_FINISH
Function LaunchLink
SetOutPath "$I2PINSTEXE"
StrCpy $OUTDIR $I2PINSTEXE
${If} ${Silent}
ReadEnvStr $0 RESTART_I2P
${If} $0 != ""
ShellExecAsUser::ShellExecAsUser "open" "$DESKTOP\Browse I2P.lnk"
UserInfo::GetAccountType
pop $0
${If} $0 == "admin"
ShellExecAsUser::ShellExecAsUser "open" "$DESKTOP\Browse I2P.lnk"
${Else}
ExecShell "" "$DESKTOP\Browse I2P.lnk"
${EndIf}
${EndIf}
${Else}
ShellExecAsUser::ShellExecAsUser "open" "$DESKTOP\Browse I2P.lnk"
UserInfo::GetAccountType
pop $0
${If} $0 == "admin"
ShellExecAsUser::ShellExecAsUser "open" "$DESKTOP\Browse I2P.lnk"
${Else}
ExecShell "" "$DESKTOP\Browse I2P.lnk"
${EndIf}
${EndIf}
FunctionEnd

View File

@ -1 +1 @@
!define I2P_VERSION 1.8.0
!define I2P_VERSION 1.9.0

View File

@ -1,3 +1,3 @@
!define VERSIONMAJOR 1
!define VERSIONMINOR 8
!define VERSIONMINOR 9
!define VERSIONBUILD 0

View File

@ -59,4 +59,7 @@ user_pref("webgl.enable-webgl2", false);
user_pref("media.navigator.enabled", false);
user_pref("dom.w3c_touch_events.enabled", false);
user_pref("browser.privatebrowsing.autostart", false);
user_pref("browser.display.use_system_colors", false);
user_pref("browser.display.use_system_colors", false);
user_pref("dom.image-lazy-loading.enabled", false)
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 1);

View File

@ -0,0 +1,229 @@
/*
Overrides#
for Extension Preferences# Tor Browser Bundle# Do not edit this file.##This file is modified from a file included in the Tor Browser Bundle.##Copyright 2017 The Tor Project.See LICENSE.tor#
for licensing information.
HTTPS Everywhere Preferences:
*/
user_pref("extensions.https_everywhere._observatory.popup_shown", true);
user_pref("extensions.https_everywhere.toolbar_hint_shown", true);
/*
NoScript Preferences: #In order to disable all scripts by
default, uncomment the following line...#user_pref("capability.policy.maonoscript.javascript.enabled", "noAccess");#
and comment out the following line
*/
user_pref("capability.policy.maonoscript.javascript.enabled", "allAccess");
user_pref("capability.policy.maonoscript.sites", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.default", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.mandatory", "[System+Principal] about: about:tbupdate about:tor chrome: resource: blob: mediasource: moz-extension: moz-safe-about: about:neterror about:certerror about:feeds about:tabcrashed about:cache");
user_pref("noscript.ABE.enabled", false);
user_pref("noscript.ABE.notify", false);
user_pref("noscript.ABE.wanIpAsLocal", false);
user_pref("noscript.confirmUnblock", false);
user_pref("noscript.contentBlocker", true);
user_pref("noscript.firstRunRedirection", false);
user_pref("noscript.global", true);
user_pref("noscript.gtemp", "");
user_pref("noscript.opacizeObject", 3);
user_pref("noscript.forbidWebGL", true);
user_pref("noscript.forbidFonts", true);
user_pref("noscript.options.tabSelectedIndexes", "5,0,0");
user_pref("noscript.policynames", "");
user_pref("noscript.secureCookies", true);
user_pref("noscript.showAllowPage", false);
user_pref("noscript.showBaseDomain", false);
user_pref("noscript.showDistrust", false);
user_pref("noscript.showRecentlyBlocked", false);
user_pref("noscript.showTemp", false);
user_pref("noscript.showTempToPerm", false);
user_pref("noscript.showUntrusted", false);
user_pref("noscript.STS.enabled", false);
user_pref("noscript.subscription.lastCheck", -142148139);
user_pref("noscript.temp", "");
user_pref("noscript.untrusted", "");
user_pref("noscript.forbidMedia", true);
user_pref("noscript.allowWhitelistUpdates", false);
user_pref("noscript.fixLinks", false);
// Now handled by plugins.click_to_play // Not in this one.
user_pref("noscript.forbidFlash", true);
user_pref("noscript.forbidSilverlight", true);
user_pref("noscript.forbidJava", true);
user_pref("noscript.forbidPlugins", true);
// Usability tweaks
user_pref("noscript.showPermanent", false);
user_pref("noscript.showTempAllowPage", true);
user_pref("noscript.showRevokeTemp", true);
user_pref("noscript.notify", false);
user_pref("noscript.autoReload", true);
user_pref("noscript.autoReload.allTabs", false);
user_pref("noscript.cascadePermissions", true);
user_pref("noscript.restrictSubdocScripting", true);
user_pref("noscript.showVolatilePrivatePermissionsToggle", false);
user_pref("noscript.volatilePrivatePermissions", true);
user_pref("noscript.clearClick", 0);
user_pref("intl.locale.matchOS", false);
user_pref("extensions.https_everywhere._observatory.enabled", false);
user_pref("extensions.https_everywhere.options.autoUpdateRulesets", false);
user_pref("extensions.https_everywhere.globalEnabled", false);
user_pref("extensions.https_everywhere._observatory.submit_during_tor", false);
user_pref("extensions.https_everywhere._observatory.submit_during_nontor", false);
user_pref("extensions.https_everywhere._observatory.use_custom_proxy", true);
user_pref("extensions.https_everywhere._observatory.proxy_host", "127.0.0.1");
user_pref("extensions.https_everywhere._observatory.proxy_port", 4444);
user_pref("extensions.torbutton.use_nontor_proxy", true);
//For socket conversion: in the future, I'll need to make TBB communicate with
//i2p over a unix socket. Fortunately, this is how you do that. It will be
//configurable in a similar way to the host:port configuration when that happens.
//user_pref("extensions.torlauncher.socks_port_use_ipc", );
//user_pref("extensions.torlauncher.socks_ipc_path", "");
// TODO: this is a Tor Browser specific setting which is ignored on Firefox. If
// I make it true, the SOCKS outproxy will have something to connect to. But I
// need to test more to find out if that's prudent.
user_pref("extensions.torlauncher.start_tor", false);
//user_pref("extensions.torlauncher.default_bridge_type", "");
user_pref("extensions.torlauncher.prompt_at_startup", false);
// Resist-fingerprinting and first-party isolation enable
user_pref("privacy.resistFingerprinting", true);
user_pref("privacy.firstparty.isolate", true);
// Use i2p http proxy for all connections and set homepage to safe local form.
// DON'T allow access to the admin panel from the profile we browse i2p with.
user_pref("network.proxy.no_proxies_on", "127.0.0.1:7657,localhost:7657,127.0.0.1:7662,localhost:7662,127.0.0.1:7669,localhost:7669");
user_pref("network.proxy.type", 1);
user_pref("network.proxy.http", "127.0.0.1");
user_pref("network.proxy.http_port", 4444);
user_pref("network.proxy.ssl", "127.0.0.1");
user_pref("network.proxy.ssl_port", 4444);
user_pref("network.proxy.ftp", "127.0.0.1");
user_pref("network.proxy.ftp_port", 4444);
user_pref("network.proxy.socks", "127.0.0.1");
user_pref("network.proxy.socks_port", 4444);
user_pref("network.proxy.share_proxy_settings", true);
user_pref("browser.startup.homepage", "http://127.0.0.1:7657/home");
// Privacy-harden and disable irrelevant features.
user_pref("app.normandy.api_url", "");
user_pref("app.normandy.enabled", false);
user_pref("app.update.auto", false);
user_pref("app.update.enabled", false);
user_pref("beacon.enabled", false);
user_pref("browser.aboutHomeSnippets.updateUrl", "");
user_pref("browser.cache.disk_cache_ssl", false);
user_pref("browser.cache.disk.enable", false);
user_pref("browser.cache.offline.enable", false);
user_pref("browser.disableResetPrompt", true);
user_pref("browser.display.use_document_fonts", 0);
user_pref("browser.fixup.alternate.enabled", false);
user_pref("browser.formfill.enable", false);
user_pref("browser.library.activity-stream.enabled", false);
user_pref("browser.newtabpage.activity-stream.disableSnippets", true);
user_pref("browser.newtabpage.activity-stream.enabled", false);
user_pref("browser.newtabpage.activity-stream.feeds.section.highlights", false);
user_pref("browser.newtabpage.activity-stream.feeds.snippets", false);
user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
user_pref("browser.newtabpage.activity-stream.feeds.topsites", false);
user_pref("browser.newtabpage.activity-stream.prerender", false);
user_pref("browser.newtabpage.activity-stream.showSearch", false);
user_pref("browser.newtabpage.enhanced", false);
user_pref("browser.newtabpage.introShown", true);
user_pref("browser.newtab.preload", false);
user_pref("browser.onboarding.enabled", false);
user_pref("browser.pagethumbnails.capturing_disabled", true);
user_pref("browser.safebrowsing.appRepURL", "");
user_pref("browser.safebrowsing.blockedURIs.enabled", false);
user_pref("browser.safebrowsing.downloads.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.enabled", false);
user_pref("browser.safebrowsing.downloads.remote.url", "");
user_pref("browser.safebrowsing.enabled", false);
user_pref("browser.safebrowsing.malware.enabled", false);
user_pref("browser.safebrowsing.phishing.enabled", false);
user_pref("browser.search.geoip.timeout", 1);
user_pref("browser.search.suggest.enabled", false);
user_pref("browser.selfsupport.url", "");
user_pref("browser.send_pings", false);
user_pref("browser.shell.checkDefaultBrowser", false);
user_pref("browser.startup.homepage_override.mstone", "ignore");
user_pref("browser.startup.page", 0);
user_pref("browser.toolbarbuttons.introduced.pocket-button", true);
user_pref("browser.urlbar.speculativeConnect.enabled", false);
user_pref("browser.urlbar.trimURLs", false);
user_pref("datareporting.healthreport.uploadEnabled", false);
user_pref("datareporting.policy.dataSubmissionEnabled", false);
user_pref("dom.battery.enabled", false);
user_pref("dom.enable_performance", false);
user_pref("dom.enable_performance_navigation_timing", false);
user_pref("dom.enable_resource_timing", false);
user_pref("dom.event.clipboardevents.enabled", false);
user_pref("dom.gamepad.enabled", false);
user_pref("dom.indexedDB.enabled", false);
user_pref("dom.min_timeout_value", 400);
user_pref("dom.push.connection.enabled", false);
user_pref("dom.push.enabled", false);
user_pref("dom.serviceWorkers.enabled", false);
user_pref("dom.serviceWorkers.interception.enabled", false);
user_pref("dom.storage.enabled", false);
user_pref("dom.webaudio.enabled", false);
user_pref("extensions.autoDisableScopes", 0);
user_pref("extensions.enabledScopes", 1);
user_pref("extensions.getAddons.cache.enabled", false);
user_pref("extensions.getAddons.showPane", false);
user_pref("extensions.pocket.enabled", false);
user_pref("extensions.screenshots.disabled", true);
user_pref("extensions.webservice.discoverURL", "");
user_pref("geo.enabled", false);
user_pref("geo.wifi.uri", "");
user_pref("gfx.downloadable_fonts.disable_cache", true);
user_pref("javascript.options.shared_memory", false);
user_pref("layout.css.visited_links_enabled", false);
user_pref("media.autoplay.enabled", false);
user_pref("media.cache_size", 0);
user_pref("media.navigator.enabled", false);
user_pref("media.peerconnection.ice.no_host", true);
user_pref("media.video_stats.enabled", false);
user_pref("captivedetect.canonicalURL", "");
user_pref("network.captive-portal-service.enabled", false);
user_pref("network.cookie.cookieBehavior", 1);
user_pref("network.cookie.lifetimePolicy", 2);
user_pref("network.dns.disablePrefetch", true);
user_pref("network.http.referer.spoofSource", true);
user_pref("network.http.referer.trimmingPolicy", 2);
user_pref("network.http.referer.XOriginPolicy", 2);
user_pref("network.prefetch-next", false);
user_pref("privacy.donottrackheader.enabled", true);
user_pref("privacy.donottrackheader.value", 1);
user_pref("toolkit.telemetry.archive.enabled", false);
user_pref("toolkit.telemetry.coverage.opt-out", true);
user_pref("toolkit.telemetry.enabled", false);
user_pref("toolkit.telemetry.server", "");
user_pref("toolkit.telemetry.unified", false);
user_pref("webgl.disabled", true);
user_pref("browser.chrome.errorReporter.infoURL", "");
user_pref("breakpad.reportURL", "");
//user_pref("browser.newtabpage.activity-stream.default.sites", "");
user_pref("browser.newtabpage.activity-stream.showSponsoredTopSites", false);
user_pref("browser.newtabpage.activity-stream.showSponsored", false);
user_pref("services.sync.prefs.sync.browser.newtabpage.activity-stream.showSponsored", false);
user_pref("browser.newtabpage.enabled", true);
user_pref("browser.newtabpage.activity-stream.default.sites", "http://planet.i2p/,http://legwork.i2p/,http://i2pwiki.i2p/,http://i2pforums.i2p/,http://zzz.i2p/");
user_pref("dom.security.https_only_mode", false);
user_pref("keyword.enabled", false);
user_pref("extensions.allowPrivateBrowsingByDefault", true);
user_pref("extensions.PrivateBrowsing.notification", false);
user_pref("browser.newtabpage.activity-stream.feeds.topsites", true);
user_pref("ui.use_standins_for_native_colors", true);
user_pref("webgl.disable-extensions", true);
user_pref("webgl.min_capability_mode", true);
user_pref("webgl.disable-fail-if-major-performance-caveat", true);
user_pref("webgl.enable-webgl2", false);
user_pref("dom.w3c_touch_events.enabled", false);
user_pref("browser.privatebrowsing.autostart", false);
user_pref("browser.display.use_system_colors", false);

File diff suppressed because it is too large Load Diff

View File

@ -1 +1 @@
1.8.0
1.9.0

View File

@ -1,18 +0,0 @@
@echo off
SET "MYPATH=%~dp0"
set ProgramFiles64=%ProgramFiles: (x86)=%
set "I2PData=%LocalAppData%\I2P\"
if exist "%LocalAppData%\I2P\I2P.exe" (
set "I2PPath=%LocalAppData%\I2P\"
)
if exist "%ProgramFiles64%\I2P\I2P.exe" (
set "I2PPath=%ProgramFiles64%\I2P\"
)
if exist "%ProgramFiles(x86)%\I2P\I2P.exe" (
set "I2PPath=%ProgramFiles(x86)%\I2P\"
)

View File

@ -1,12 +0,0 @@
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p\" (
echo "profile is configured" & xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.config.i2p\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p\extensions"
) else (
echo "configuring profile" & xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.config.i2p" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p"
)
xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.config.i2p\user.js" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p\user.js*"
xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.config.i2p\prefs.js" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p\prefs.js*"

View File

@ -1,12 +0,0 @@
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
if exist "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\" (
echo "profile is configured, updating extensions" & xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.i2p\extensions" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\extensions"
) else (
echo "configuring profile" & xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.i2p" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p"
)
xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.i2p\user.js" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\user.js*"
xcopy /s /i /y "%I2PData%I2PBrowser-Launcher\firefox.profile.i2p\prefs.js" "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p\prefs.js*"

View File

@ -1,27 +0,0 @@
@echo on
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
call "%MYPATH%launchi2p.bat"
call "%MYPATH%copy-profile.bat"
timeout /t 3
if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank
exit
)
if exist "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank
exit
)
if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" (
start "i2pbrowser" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -private-window about:blank
exit
)
exit

View File

@ -1,27 +0,0 @@
@echo on
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
call "%MYPATH%launchi2p.bat"
call "%MYPATH%copy-profile.bat"
timeout /t 3
if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -url %1
exit
)
if exist "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -url %1
exit
)
if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" (
start "i2pbrowser" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.i2p" -url %1
exit
)
exit

View File

@ -1,23 +0,0 @@
@echo off
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
call "%MYPATH%copy-config-profile.bat"
if exist "%ProgramFiles%\Mozilla Firefox\firefox.exe" (
start "i2pbrowser" "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p" -url %1
exit
)
if exist "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p" -url %1
exit
)
if exist "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" (
start "i2pbrowser" "%USERPROFILE%/OneDrive/Desktop/Tor Browser/Browser/firefox.exe" -no-remote -profile "%LOCALAPPDATA%\I2PBrowser-Launcher\firefox.profile.config.i2p" -url %1
exit
)
exit

View File

@ -1,17 +0,0 @@
@echo on
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
echo "check if I2P is already running"
::only launch I2P if the proxy is not up on 4444
netstat /o /a /n | findstr "LISTENING" | findstr "7657" >nul 2>nul && (
echo "I2P is already running, not launching"
) || (
echo "I2P is not running, launching"
echo start "i2p" /D %I2PPath% i2p.exe
start "i2p" /D %I2PPath% i2p.exe
)

View File

@ -1,8 +0,0 @@
SET "MYPATH=%~dp0"
call "%MYPATH%common.bat"
set TEST=TEST
echo testing: %TEST% path to me: %MYPATH% path to I2P %I2PPath%

157
style.css Normal file
View File

@ -0,0 +1,157 @@
/* edgar default CSS file */
body {
font-family: "Roboto";
font-family: monospace;
text-align: justify;
background-color: #373636;
color: whitesmoke;
font-size: 1.15em;
}
ul {
width: 55%;
display: block;
}
ol {
width: 55%;
display: block;
}
li {
margin-top: 1%;
}
p {
max-width: 90%;
margin-top: 1%;
margin-left: 3%;
margin-right: 3%;
}
img {
float: left;
top: 5%;
left: 5%;
max-width: 60%;
display: inline;
}
.inline {
display: inline;
}
.link-button:focus {
outline: none;
}
.link-button:active {
color: red;
}
code {
font-family: monospace;
border-radius: 5%;
padding: 1%;
border-color: darkgray;
font-size: .9em;
}
a {
color: #C6D9FE;
padding: 1%;
}
ul li {
color: #C6D9FE;
}
iframe {
background: aliceblue;
border-radius: 15%;
margin: 2%;
}
.container {
width: 36vw;
height: 64vh;
display: inline-block;
margin: 0;
padding: 0;
}
.editor-toolbar a {
display: inline-block;
text-align: center;
text-decoration: none !important;
color: whitesmoke !important;
}
#feed {
width: 60vw;
height: unset !important;
margin: 0;
padding: 0;
float: right;
background-color: #373636;
color: whitesmoke;
border: #C6D9FE solid 1px;
}
.thread-post,
.thread {
color: whitesmoke !important;
background-color: #373636;
border: 1px solid darkgray;
font-size: inherit;
padding-top: 1%;
padding-bottom: 1%;
}
.thread-post {
margin-left: 4%;
}
input {
text-align: center;
color: whitesmoke !important;
background-color: #373636;
border: 1px solid darkgray;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
padding-top: 1%;
padding-bottom: 1%;
}
.thread-hash {
text-align: right;
color: whitesmoke !important;
background-color: #373636;
border: 1px solid darkgray;
font-size: inherit;
padding-top: 1%;
padding-bottom: 1%;
}
.post-body {
text-align: left;
color: whitesmoke !important;
font-size: inherit;
padding-top: 1%;
padding-bottom: 1%;
}
#show {display:none; }
#hide {display:block; }
#show:target {display: block; }
#hide:target {display: none; }
#shownav {display:none; }
#hidenav {display:block; }
#shownav:target {display: block; }
#hidenav:target {display: none; }
#navbar {
float: right;
width: 10%;
}