Compare commits
83 Commits
Author | SHA1 | Date | |
---|---|---|---|
eb0bc93df6 | |||
e61cf40b8f | |||
1a79e565c3 | |||
2633f86920 | |||
9f9e898803 | |||
41c7e7df97 | |||
85fa719f39 | |||
c602ac151b | |||
376aeb63e7 | |||
24f61a5fc0 | |||
fd476b8a6e | |||
be19811fed | |||
1d54ea8358 | |||
38f65fffe0 | |||
2685d2cb74 | |||
ec3afa914e | |||
dbb7dfa5f2 | |||
fe17e3563b | |||
8fec4f6b22 | |||
b618047156 | |||
756fa1e8a8 | |||
a9fcc70fb1 | |||
c0ae89ef20 | |||
6ed0347f3f | |||
f9efb07349 | |||
e2595e0999 | |||
cc3895ff1d | |||
288d706a16 | |||
109e409415 | |||
697db7cce0 | |||
735c21c5c5 | |||
33f4f57797 | |||
1b5a7fa393 | |||
4d7143af60 | |||
3947d264db | |||
84c19bfdab | |||
3d12850334 | |||
28a81c061a | |||
7b2beaee44 | |||
17de473b28 | |||
0031901d86 | |||
4fd186f88f | |||
2b763a9de7 | |||
098cc0b4a8 | |||
b9778ed075 | |||
72c6c2f4e2 | |||
45554a3aa9 | |||
11ce176ed5 | |||
d5eb4da51d | |||
00edc2c928 | |||
af8ac433b8 | |||
000079f53a | |||
7a021f9364 | |||
afccb7d346 | |||
67cbcdd746 | |||
97f032b9c1 | |||
97f0372cac | |||
1f10c3c346 | |||
a6df69a0a4 | |||
76c8236ea8 | |||
24581ea695 | |||
073aa0df53 | |||
8b37ccfe33 | |||
84506f1310 | |||
010b1ca527 | |||
41fb2ff414 | |||
2446428481 | |||
0334246cee | |||
a5dede7178 | |||
1df56f7112 | |||
e4a42c8a4e | |||
c2f63fd47f | |||
418fa9a6a0 | |||
9bbb7b926a | |||
69f7af1b5c | |||
f469ee39c4 | |||
7203ba826e | |||
323bfa26a5 | |||
03911e0eb3 | |||
01c8b7601d | |||
8ffd4025ef | |||
2e7f875efe | |||
4909c59baf |
2
.gitignore
vendored
2
.gitignore
vendored
@ -22,3 +22,5 @@ i2pbrowser/
|
||||
/user.js
|
||||
arkenfoxnum
|
||||
/*.tar.gz
|
||||
/*.tar.xz
|
||||
/i2p.firefox.profile.*
|
1433
BUILD.html
Normal file
1433
BUILD.html
Normal file
File diff suppressed because it is too large
Load Diff
228
BUILD.md
Executable file
228
BUILD.md
Executable file
@ -0,0 +1,228 @@
|
||||
# Building
|
||||
|
||||
## Build Dependencies
|
||||
|
||||
You will need `ant` and java `java` and for building the jar. You will need
|
||||
`jpackage` for many of the potential build targets. I've been using Java 17
|
||||
on Debian mostly, on Debian and Ubuntu, install the dependencies with:
|
||||
|
||||
```sh
|
||||
sudo apt-get install openjdk-17* ant
|
||||
```
|
||||
|
||||
Some of the targets use scripts written in Go to help generate resources. If
|
||||
you want to update the profiles, you will need them. To install Go on Debian
|
||||
and Ubuntu:
|
||||
|
||||
```sh
|
||||
sudo apt-get install golang-go
|
||||
```
|
||||
|
||||
Add `$HOME/go/bin` to your `$PATH` so `ant` can find Go applications.
|
||||
|
||||
`export PATH=$PATH:$HOME/go/bin`
|
||||
|
||||
Then use Go to download the applications you need and add them to `$HOME/go/bin`.
|
||||
|
||||
If you want to build the Chromium profiles you will need a Go application
|
||||
called `crx3` which is used to interact with the Chrome app store to download
|
||||
and update extensions.
|
||||
|
||||
```sh
|
||||
go install github.com/mediabuyerbot/go-crx3/crx3@latest
|
||||
```
|
||||
|
||||
Another Go application, called `amo-version`, is used to fetch extensions from addons.mozilla.org.
|
||||
Like the Chrome profiles, generating the Firefox profiles requires this application. If you don't
|
||||
want to update the profiles, you don't need it.
|
||||
|
||||
```sh
|
||||
go install github.com/eyedeekay/amo-version@latest
|
||||
```
|
||||
|
||||
One last Go application, called `dzip` is used to generate zip files deterministically for
|
||||
redistribution.
|
||||
|
||||
```sh
|
||||
go install github.com/delicb/dzip@latest
|
||||
```
|
||||
|
||||
If you don't want to use it, you can work around it by creating a file called
|
||||
`dzip` in `/usr/local/bin/dzip` and adding the contents:
|
||||
|
||||
```sh
|
||||
#! /usr/bin/env sh
|
||||
zip -r $@
|
||||
```
|
||||
|
||||
This will break deterministic builds, but for testing it will continue to work. More elaborate
|
||||
scripts or other deterministic zip utilities can be easily substituted in by placing them
|
||||
in the `$PATH` under the name `dzip`.
|
||||
|
||||
For Fedora, use Yum, for Arch use pacman or something else but make sure to tell everyone
|
||||
about it. Once you have that installed, when building, make sure to add `$GOPATH/bin/`
|
||||
to your `$PATH`.
|
||||
|
||||
```sh
|
||||
export PATH=$PATH:$HOME/go/bin
|
||||
```
|
||||
|
||||
Will almost always work.
|
||||
|
||||
## Building
|
||||
|
||||
This is not actually a plugin yet, but it will be soon. The important bit is the jar.
|
||||
To generate that, you can either generate the full plugin, which will not work but
|
||||
produces the jar as a by-product, or you can:
|
||||
|
||||
```sh
|
||||
|
||||
ant jar
|
||||
```
|
||||
|
||||
To build just the jar. You'll know it worked if you can:
|
||||
|
||||
```sh
|
||||
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PFirefox
|
||||
```
|
||||
|
||||
and a new Firefox instance comes up with a fresh profile, ready-to-use for I2P browsing.
|
||||
|
||||
The cooler thing you can do with it is add it to an I2P distribution and somewhere in it,
|
||||
add a UI element that triggers something along the lines of this:
|
||||
|
||||
```java
|
||||
|
||||
// Firefox Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PFirefox");
|
||||
I2PFirefox i2pFirefox = new I2PFirefox();
|
||||
i2pFirefox.launch();
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
|
||||
// Chromium Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PChromium");
|
||||
I2PChromium i2pChromium = new I2PChromium();
|
||||
i2pChromium.launch();
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
|
||||
// Auto-Select Example, chooses Firefox first, then Chromium
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PBrowser");
|
||||
I2PBrowser i2pBrowser = new I2PBrowser();
|
||||
/*
|
||||
* toggle chromium to the top of the order by doing:
|
||||
I2PBrowser.chromiumFirst = true;
|
||||
*
|
||||
*/
|
||||
i2pBrowser.launch(privateBrowsing);
|
||||
}
|
||||
```
|
||||
|
||||
to add a browser management tool to it.
|
||||
|
||||
## Browser Discovery Methods
|
||||
|
||||
This tool looks for browsers on the host system, creates a workspace to use for I2P
|
||||
purposes, and launches the browser inside of that workspace. The details of the
|
||||
workspace vary from browser to browser but roughly corresponds to a browser profile.
|
||||
In order to be successful this tool uses 3 main types of browser discovery methods,
|
||||
in this order:
|
||||
|
||||
1. "Local" discovery, where a browser is in a subdirectory of the directory where you
|
||||
ran the launcher. This will only happen if the user unpacked a portable browser into
|
||||
the same directory where they ran the launcher.
|
||||
2. "Path-Based" discovery, where it scans common browser installation directories
|
||||
until it finds one which it can use. On Unix, it simply scans the directories on the
|
||||
`PATH` for a browser it knows about. On Windows, default paths to browser install
|
||||
directories are hard-coded and included in the binary. This is what usually happens.
|
||||
3. "System-Based" discovery, where it defers to the host system to make a choice
|
||||
about the browser and counts on browser vendors to honor the system proxy environment
|
||||
variables. This is a catch-all solution which works with most browsers, but does
|
||||
not apply any customizations.
|
||||
|
||||
There is a little subtlety here though.
|
||||
|
||||
- The path to Edgium on Windows will **always** resolve during path-based discovery,
|
||||
resulting in a positive test for Chromium when launching the browser in auto-select
|
||||
mode. So Windows will never reach stage 3 unless expressly forced to. If Firefox or
|
||||
a variant is installed, it will be chosen before Edgium unless directed otherwise.
|
||||
- Even though it will launch you into Edgium if it has no other choice, I recommend
|
||||
you do not use it. Edgium will in a constant, incessant way try to induce you to
|
||||
share your behavior with Microsoft. If you try to resist this, it negatively affects
|
||||
the performance of the browser. Google also does this with Chrome, ant this negatively
|
||||
affects Chrome performance too, but less than with Edgium. TL:DR Edgium sucks and is
|
||||
pointless and terrible. Literally any other browser would be better.
|
||||
- Linux is unaware of a Tor Browser path because Tor Browser is rarely, if ever,
|
||||
installed on-path. What is on path is virtually always a wrapper for Tor Browser
|
||||
which is installed either as the main user or it's own user. Linux will only use
|
||||
Tor Browser if it's discovered in "Local" mode. To set this up automatically, you
|
||||
can `cd` to the `I2P` directory where you unpacked the `.tar.gz` file, and run the
|
||||
`./lib/torbrowser.sh` script from there.
|
||||
- I really only test Phase 3 with Dillo and Edgium. **YMMV.**
|
||||
|
||||
## Usability vs Strict
|
||||
|
||||
This is basically a profile-management tool geared toward minimizing the
|
||||
differences between browser users which are passively discernible while
|
||||
they are browsing I2P. It assumes that they are part of a highly fragmented
|
||||
browsing environment where they are already unique, and therefore consolidation
|
||||
on configuration is a goal. However, this goal sometimes also conflicts with
|
||||
usability. To allow users a safe set of choices, we offer "Coarse" configuration
|
||||
in 2 modes. We recommend that you do not deviate from these configurations if
|
||||
you have browser application fingerprinting as a concern.
|
||||
|
||||
### Usability Mode
|
||||
|
||||
TODO: description
|
||||
|
||||
Pros: Allows a restricted subset of Javascript
|
||||
Pros: Less likely to try and reach the clearnet
|
||||
|
||||
Cons: Looks very different from Tor Browser
|
||||
Cons: Plugin updates can create temporary uniqueness
|
||||
|
||||
#### Usability Extension Set
|
||||
|
||||
- **I2P In Private Browsing**
|
||||
- **uMatrix**
|
||||
- **jsRestrictor**
|
||||
- **LocalCDN**
|
||||
- **Onion in Container Tabs**
|
||||
- **HTTPS EveryWhere** in some configurations
|
||||
|
||||
### Usability user.js characteristics
|
||||
|
||||
TODO: Summarize differences
|
||||
|
||||
### Strict Mode
|
||||
|
||||
TODO: description
|
||||
|
||||
Pros: Does not allow Javascript by default
|
||||
Pros: Looks a lot like Tor Browser especially if you're using Tor Browser
|
||||
|
||||
Cons: More work to use
|
||||
Cons: Temporary uniqueness can be created by enabling Javascript for specific sites
|
||||
Cons: More likely to try and reach the clearnet
|
||||
|
||||
#### Strict Extension Set
|
||||
|
||||
- **NoScript**
|
||||
- **I2P In Private Browsing**
|
||||
- **HTTPS EveryWhere** in some configurations
|
||||
|
||||
#### Strict user.js characteristics
|
||||
|
||||
TODO: Summarize differences
|
22
CHANGES.html
22
CHANGES.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
68
CONFIG.html
68
CONFIG.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -144,7 +164,7 @@
|
||||
/
|
||||
</a>
|
||||
<h1>
|
||||
Configuration of the Browser Launcher
|
||||
Configuring the Browser Launcher
|
||||
</h1>
|
||||
<p>
|
||||
It is possible to configure the Browser Launcher differently using a
|
||||
@ -167,8 +187,7 @@
|
||||
<code>
|
||||
$PLUGIN
|
||||
</code>
|
||||
directory for
|
||||
I2P Plugin installs.
|
||||
directory for I2P Plugin installs.
|
||||
</p>
|
||||
<h2>
|
||||
bins
|
||||
@ -177,9 +196,9 @@
|
||||
<code>
|
||||
bins
|
||||
</code>
|
||||
properties determine which Firefox or Chromium variants to use by matching the
|
||||
binary name. You can use these to configure custom Firefox or Chromium variants or
|
||||
disable others.
|
||||
properties determine which Firefox or Chromium
|
||||
variants to use by matching the binary name. You can use these to
|
||||
configure custom Firefox or Chromium variants or disable others.
|
||||
</p>
|
||||
<pre><code class="language-properties">firefox.bins.*
|
||||
chromium.bins.*
|
||||
@ -189,12 +208,13 @@ generic.bins.*
|
||||
<code>
|
||||
generic.bins
|
||||
</code>
|
||||
is only used on Unixes, and usually refers to
|
||||
is only used on Unixes, and usually
|
||||
refers to
|
||||
<code>
|
||||
sensible-browser
|
||||
</code>
|
||||
on common
|
||||
Linux distributions.
|
||||
on common Linux
|
||||
distributions.
|
||||
</p>
|
||||
<h2>
|
||||
paths
|
||||
@ -203,9 +223,10 @@ generic.bins.*
|
||||
<code>
|
||||
paths
|
||||
</code>
|
||||
properties determine where to search for Firefox or Chromium variants to use
|
||||
by trying to find a file matching the binary name by looking in a series of directories.
|
||||
You can use these to configure Firefox or Chromium in non-default install locations.
|
||||
properties determine where to search for Firefox
|
||||
or Chromium variants to use by trying to find a file matching the binary
|
||||
name by looking in a series of directories. You can use these to
|
||||
configure Firefox or Chromium in non-default install locations.
|
||||
</p>
|
||||
<pre><code class="language-properties">firefox.paths.*
|
||||
chromium.paths.*
|
||||
@ -216,34 +237,35 @@ chromium.paths.*
|
||||
<p>
|
||||
This properties file represents the defaults.
|
||||
</p>
|
||||
<pre><code class="language-properties"># Chromium configuration section
|
||||
<pre><code class="language-properties">#Chromium Configuration Section
|
||||
#Sun Oct 23 11:29:45 EDT 2022
|
||||
chromium.bins.linux=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.osx=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.windows=ungoogled-chromium.exe,chromium.exe,brave.exe,edge.exe,ungoogled-chromium.exe,chrome.exe
|
||||
chromium.paths.linux=/usr/bin,/usr/local/bin,/opt/chromium/bin,/snap/bin
|
||||
chromium.paths.osx=/Applications/Chromium.app/Contents/MacOS,/Applications/Chrome.app/Contents/MacOS,/Applications/Brave.app/Contents/MacOS
|
||||
chromium.paths.windows=/Google/Chrome/Application,/Google/Chrome/Application,/Google/Chrome/Application,/Chromium/Application,/Chromium/Application,/Chromium/Application,/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/Microsoft/Edge/Application,/Microsoft/Edge/Application
|
||||
|
||||
# Firefox configuration section
|
||||
firefox.bins.linux=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
chromium.paths.windows=C\:\\Users\\user\\AppData\\Local\\/Google/Chrome/Application,C\:\\Program Files (x86)\\/Google/Chrome/Application,/Google/Chrome/Application,C\:\\Users\\user\\AppData\\Local\\/Chromium/Application,C\:\\Program Files (x86)\\/Chromium/Application,/Chromium/Application,C\:\\Users\\user\\AppData\\Local\\/BraveSoftware/Brave Browser/Application,C\:\\Program Files (x86)\\/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/Microsoft/Edge/Application,C\:\\Program Files (x86)\\/Microsoft/Edge/Application
|
||||
</code></pre>
|
||||
<pre><code class="language-properties">firefox.bins.linux=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.osx=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.windows=firefox.exe,firefox-bin.exe,firefox-esr.exe,waterfox.exe,waterfox-bin.exe,librewolf.exe
|
||||
firefox.paths.linux=/usr/bin,/usr/local/bin,/opt/firefox/bin,/snap/bin
|
||||
firefox.paths.osx=/Applications/Tor Browser.app/Contents/MacOS,/Applications/Firefox.app/Contents/MacOS,/Applications/Waterfox.app/Contents/MacOS,/Applications/Librewolf.app/Contents/MacOS
|
||||
firefox.paths.windows=/home/idk/OneDrive/Desktop/Tor Browser/Browser,/home/idk/Desktop/Tor Browser/Browser,Mozilla Firefox,Mozilla Firefox,Waterfox,Waterfox,Librewolf
|
||||
|
||||
# Generic configuration section
|
||||
generic.bins.unix=sensible-browser,xdg-open,x-www-browser,gnome-www-browser,defaultbrowser,dillo,seamonkey,konqueror,galeon,surf,www-browser,links,lynx
|
||||
firefox.paths.windows=C\:\\Users\\user\\/OneDrive/Desktop/Tor Browser/Browser,C\:\\Users\\user\\/Desktop/Tor Browser/Browser,C\:\\Program Files (x86)\\/Mozilla Firefox,Mozilla Firefox,C\:\\Program Files (x86)\\/Waterfox,Waterfox,C\:\\Program Files (x86)\\/Librewolf
|
||||
</code></pre>
|
||||
<pre><code class="language-properties">generic.bins.unix=sensible-browser,xdg-open,x-www-browser,gnome-www-browser,defaultbrowser,dillo,seamonkey,konqueror,galeon,surf,www-browser,links,lynx
|
||||
</code></pre>
|
||||
<h3>
|
||||
Launching it with I2P
|
||||
</h3>
|
||||
<p>
|
||||
If you want this to be launched by I2P when you click “Launch I2P Browser”, edit
|
||||
If you want this to be launched by I2P when you click “Launch I2P
|
||||
Browser”, edit
|
||||
<code>
|
||||
router.config
|
||||
</code>
|
||||
in oder to contain the path to
|
||||
in oder to contain the
|
||||
path to
|
||||
<code>
|
||||
i2pbrowser
|
||||
</code>
|
||||
|
80
CONFIG.md
Normal file
80
CONFIG.md
Normal file
@ -0,0 +1,80 @@
|
||||
# Configuring the Browser Launcher
|
||||
|
||||
It is possible to configure the Browser Launcher differently using a
|
||||
`browser.config` in the `user.dir` for
|
||||
`.jar` and `jpackage` installs, or the
|
||||
`$PLUGIN` directory for I2P Plugin installs.
|
||||
|
||||
## bins
|
||||
|
||||
`bins` properties determine which Firefox or Chromium
|
||||
variants to use by matching the binary name. You can use these to
|
||||
configure custom Firefox or Chromium variants or disable others.
|
||||
|
||||
``` properties
|
||||
firefox.bins.*
|
||||
chromium.bins.*
|
||||
generic.bins.*
|
||||
```
|
||||
|
||||
`generic.bins` is only used on Unixes, and usually
|
||||
refers to `sensible-browser` on common Linux
|
||||
distributions.
|
||||
|
||||
## paths
|
||||
|
||||
`paths` properties determine where to search for Firefox
|
||||
or Chromium variants to use by trying to find a file matching the binary
|
||||
name by looking in a series of directories. You can use these to
|
||||
configure Firefox or Chromium in non-default install locations.
|
||||
|
||||
``` properties
|
||||
firefox.paths.*
|
||||
chromium.paths.*
|
||||
```
|
||||
|
||||
### Example Properties File
|
||||
|
||||
This properties file represents the defaults.
|
||||
|
||||
|
||||
```properties
|
||||
#Chromium Configuration Section
|
||||
#Sun Oct 23 11:29:45 EDT 2022
|
||||
chromium.bins.linux=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.osx=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.windows=ungoogled-chromium.exe,chromium.exe,brave.exe,edge.exe,ungoogled-chromium.exe,chrome.exe
|
||||
chromium.paths.linux=/usr/bin,/usr/local/bin,/opt/chromium/bin,/snap/bin
|
||||
chromium.paths.osx=/Applications/Chromium.app/Contents/MacOS,/Applications/Chrome.app/Contents/MacOS,/Applications/Brave.app/Contents/MacOS
|
||||
chromium.paths.windows=C\:\\Users\\user\\AppData\\Local\\/Google/Chrome/Application,C\:\\Program Files (x86)\\/Google/Chrome/Application,/Google/Chrome/Application,C\:\\Users\\user\\AppData\\Local\\/Chromium/Application,C\:\\Program Files (x86)\\/Chromium/Application,/Chromium/Application,C\:\\Users\\user\\AppData\\Local\\/BraveSoftware/Brave Browser/Application,C\:\\Program Files (x86)\\/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/Microsoft/Edge/Application,C\:\\Program Files (x86)\\/Microsoft/Edge/Application
|
||||
```
|
||||
|
||||
```properties
|
||||
firefox.bins.linux=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.osx=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.windows=firefox.exe,firefox-bin.exe,firefox-esr.exe,waterfox.exe,waterfox-bin.exe,librewolf.exe
|
||||
firefox.paths.linux=/usr/bin,/usr/local/bin,/opt/firefox/bin,/snap/bin
|
||||
firefox.paths.osx=/Applications/Tor Browser.app/Contents/MacOS,/Applications/Firefox.app/Contents/MacOS,/Applications/Waterfox.app/Contents/MacOS,/Applications/Librewolf.app/Contents/MacOS
|
||||
firefox.paths.windows=C\:\\Users\\user\\/OneDrive/Desktop/Tor Browser/Browser,C\:\\Users\\user\\/Desktop/Tor Browser/Browser,C\:\\Program Files (x86)\\/Mozilla Firefox,Mozilla Firefox,C\:\\Program Files (x86)\\/Waterfox,Waterfox,C\:\\Program Files (x86)\\/Librewolf
|
||||
```
|
||||
|
||||
```properties
|
||||
generic.bins.unix=sensible-browser,xdg-open,x-www-browser,gnome-www-browser,defaultbrowser,dillo,seamonkey,konqueror,galeon,surf,www-browser,links,lynx
|
||||
```
|
||||
|
||||
### Launching it with I2P
|
||||
|
||||
If you want this to be launched by I2P when you click "Launch I2P
|
||||
Browser", edit `router.config` in oder to contain the
|
||||
path to `i2pbrowser` for your platform.
|
||||
|
||||
``` properties
|
||||
routerconsole.browser=/path/to/i2pbrowser
|
||||
```
|
||||
|
||||
For example, if you installed it with the `.deb`
|
||||
`jpackage` , use:
|
||||
|
||||
``` properties
|
||||
routerconsole.browser=/opt/i2pbrowser/bin/i2pbrowser
|
||||
```
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
100
I2PChromium.html
100
I2PChromium.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -442,7 +462,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
chromiumBinsWindows
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L176">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L184">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -468,7 +488,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_CHROMIUM_SEARCH_PATHS_WINDOWS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L185">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L196">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -494,7 +514,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_ALL_CHROMIUM_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L199">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L210">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -520,7 +540,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_CHROMIUM_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L219">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L230">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -546,7 +566,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
NEARBY_CHROMIUM_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L233">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L244">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -572,7 +592,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
CHROMIUM_FINDER
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L287">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L337">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -598,7 +618,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
onlyValidChromiums
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L308">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L358">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -621,7 +641,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
topChromium
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L328">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L378">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -644,7 +664,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
topChromium
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L357">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L407">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -671,7 +691,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
defaultProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L375">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L425">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -694,7 +714,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
defaultProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L388">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L438">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -721,7 +741,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
privateProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L400">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L450">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -744,7 +764,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
privateProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L413">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L463">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -771,7 +791,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
appProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L435">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L485">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -794,7 +814,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
appProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L448">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L498">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -821,7 +841,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
processBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L495">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L545">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -848,7 +868,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launchAndDetatch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L616">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L666">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -877,7 +897,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launchAndDetatch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L623">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L673">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -906,7 +926,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L681">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L731">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -935,7 +955,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L687">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L737">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -964,7 +984,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L712">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L762">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -991,7 +1011,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L721">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L771">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1014,7 +1034,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
ValidURL
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L723">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L773">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1044,7 +1064,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
main
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L733">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L783">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1072,36 +1092,6 @@
|
||||
<br />
|
||||
| args | String[] | |
|
||||
</p>
|
||||
<h3>
|
||||
sleep
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L772">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: private
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Modifiers: static
|
||||
</li>
|
||||
<li>
|
||||
return: void
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| millis | int | |
|
||||
</p>
|
||||
<div id="sourcecode">
|
||||
<span id="sourcehead">
|
||||
<strong>
|
||||
|
@ -118,7 +118,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### chromiumBinsWindows [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L176)
|
||||
### chromiumBinsWindows [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L184)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -128,7 +128,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_CHROMIUM_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L185)
|
||||
### FIND_CHROMIUM_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L196)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -138,7 +138,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_ALL_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L199)
|
||||
### FIND_ALL_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L210)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -148,7 +148,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L219)
|
||||
### FIND_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L230)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -158,7 +158,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### NEARBY_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L233)
|
||||
### NEARBY_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L244)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -168,7 +168,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### CHROMIUM_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L287)
|
||||
### CHROMIUM_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L337)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -178,7 +178,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### onlyValidChromiums [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L308)
|
||||
### onlyValidChromiums [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L358)
|
||||
|
||||
+ Description: Check our list of chrome paths for a valid chrome binary. Just an existence check for now but should check versions in the future.
|
||||
+ Access: public
|
||||
@ -187,7 +187,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L328)
|
||||
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L378)
|
||||
|
||||
+ Description: Return the best available Chromium from the list of Chromiums we have.
|
||||
+ Access: public
|
||||
@ -196,7 +196,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L357)
|
||||
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L407)
|
||||
|
||||
+ Description: Return the best available Chromium from the list of Chromiums we have. if override is passed it will be validated and if it validates it will be used.
|
||||
+ Access: public
|
||||
@ -207,7 +207,7 @@ This method has no parameters.
|
||||
| overrideChromium | String | |
|
||||
|
||||
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L375)
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L425)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
|
||||
+ Access: public
|
||||
@ -216,7 +216,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L388)
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L438)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile. @args the arguments to pass to the Chromium binary
|
||||
+ Access: public
|
||||
@ -227,7 +227,7 @@ This method has no parameters.
|
||||
| args | String[] | |
|
||||
|
||||
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L400)
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L450)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
|
||||
+ Access: public
|
||||
@ -236,7 +236,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L413)
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L463)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
|
||||
+ Access: public
|
||||
@ -247,7 +247,7 @@ This method has no parameters.
|
||||
| args | String[] | the arguments to pass to the Chromium binary. |
|
||||
|
||||
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L435)
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L485)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
|
||||
+ Access: public
|
||||
@ -256,7 +256,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L448)
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L498)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
|
||||
+ Access: public
|
||||
@ -267,7 +267,7 @@ This method has no parameters.
|
||||
| args | String[] | the arguments to pass to the Chromium binary. |
|
||||
|
||||
|
||||
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L495)
|
||||
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L545)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile with a specific set of extended arguments.
|
||||
+ Access: public
|
||||
@ -278,7 +278,7 @@ This method has no parameters.
|
||||
| args | String[] | the extended arguments to pass to the Chromium binary. |
|
||||
|
||||
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L616)
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L666)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -290,7 +290,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L623)
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L673)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -302,7 +302,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L681)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L731)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Chromium with the profile directory.
|
||||
+ Access: public
|
||||
@ -314,7 +314,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L687)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L737)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -326,7 +326,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L712)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L762)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Chromium with the profile directory.
|
||||
+ Access: public
|
||||
@ -337,7 +337,7 @@ This method has no parameters.
|
||||
| privateWindow | boolean | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L721)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L771)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Chromium with the profile directory.
|
||||
+ Access: public
|
||||
@ -346,7 +346,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L723)
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L773)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -358,7 +358,7 @@ This method has no parameters.
|
||||
| inUrl | String | |
|
||||
|
||||
|
||||
### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L733)
|
||||
### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L783)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -370,15 +370,3 @@ This method has no parameters.
|
||||
| args | String[] | |
|
||||
|
||||
|
||||
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L772)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
+ Modifiers: static
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| millis | int | |
|
||||
|
||||
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -761,7 +781,7 @@
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: private
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
@ -835,6 +855,68 @@
|
||||
<br />
|
||||
| arr | String[] | |
|
||||
</p>
|
||||
<h3>
|
||||
sleep
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L469">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Modifiers: static
|
||||
</li>
|
||||
<li>
|
||||
return: void
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| millis | int | |
|
||||
</p>
|
||||
<h3>
|
||||
searchFile
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L477">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Modifiers: static
|
||||
</li>
|
||||
<li>
|
||||
return: File
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| file | File | |
|
||||
<br />
|
||||
| search | String | |
|
||||
</p>
|
||||
<div id="sourcecode">
|
||||
<span id="sourcehead">
|
||||
<strong>
|
||||
|
@ -251,7 +251,7 @@ This method has no parameters.
|
||||
### checkifPortIsOccupied [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L440)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
+ Access: public
|
||||
+ return: boolean
|
||||
|
||||
| Name | Type | Description |
|
||||
@ -283,3 +283,28 @@ This method has no parameters.
|
||||
| arr | String[] | |
|
||||
|
||||
|
||||
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L469)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
+ Modifiers: static
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| millis | int | |
|
||||
|
||||
|
||||
### searchFile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L477)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
+ Modifiers: static
|
||||
+ return: File
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| file | File | |
|
||||
| search | String | |
|
||||
|
||||
|
||||
|
104
I2PFirefox.html
104
I2PFirefox.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -487,7 +507,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
firefoxBinsWindows
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L175">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L182">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -513,7 +533,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_FIREFOX_SEARCH_PATHS_WINDOWS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L185">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L192">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -539,7 +559,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_ALL_FIREFOX_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L199">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L206">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -565,7 +585,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIND_FIREFOX_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L219">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L226">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -591,7 +611,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
NEARBY_FIREFOX_SEARCH_PATHS
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L233">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L241">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -617,7 +637,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
FIREFOX_FINDER
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L359">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L335">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -643,7 +663,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
onlyValidFirefoxes
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L380">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L356">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -666,7 +686,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
topFirefox
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L401">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L377">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -689,7 +709,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
topFirefox
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L431">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L407">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -716,7 +736,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
defaultProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L449">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L425">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -739,7 +759,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
defaultProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L461">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L437">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -766,7 +786,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
privateProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L475">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L451">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -789,7 +809,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
privateProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L488">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L464">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -816,7 +836,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
appProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L511">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L487">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -839,7 +859,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
appProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L524">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L500">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -866,7 +886,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
headlessProcessBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L545">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L521">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -893,7 +913,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
processBuilder
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L573">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L549">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -922,7 +942,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
usabilityMode
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L630">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L606">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -945,7 +965,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launchAndDetatch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L636">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L612">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -974,7 +994,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launchAndDetatch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L642">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L618">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1003,7 +1023,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L736">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L712">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1032,7 +1052,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L742">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L718">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1061,7 +1081,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L766">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L742">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1088,7 +1108,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L776">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L752">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1111,7 +1131,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
ValidURL
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L778">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L754">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1141,7 +1161,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
main
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L789">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L765">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -1169,36 +1189,6 @@
|
||||
<br />
|
||||
| args | String[] | |
|
||||
</p>
|
||||
<h3>
|
||||
sleep
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L826">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: private
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Modifiers: static
|
||||
</li>
|
||||
<li>
|
||||
return: void
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| millis | int | |
|
||||
</p>
|
||||
<div id="sourcecode">
|
||||
<span id="sourcehead">
|
||||
<strong>
|
||||
|
@ -136,7 +136,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### firefoxBinsWindows [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L175)
|
||||
### firefoxBinsWindows [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L182)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -146,7 +146,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_FIREFOX_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L185)
|
||||
### FIND_FIREFOX_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L192)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -156,7 +156,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_ALL_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L199)
|
||||
### FIND_ALL_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L206)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -166,7 +166,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIND_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L219)
|
||||
### FIND_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L226)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -176,7 +176,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### NEARBY_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L233)
|
||||
### NEARBY_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L241)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -186,7 +186,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### FIREFOX_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L359)
|
||||
### FIREFOX_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L335)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -196,7 +196,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### onlyValidFirefoxes [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L380)
|
||||
### onlyValidFirefoxes [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L356)
|
||||
|
||||
+ Description: Check our list of firefox paths for a valid firefox binary. Just an existence check for now but should check versions in the future.
|
||||
+ Access: public
|
||||
@ -205,7 +205,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L401)
|
||||
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L377)
|
||||
|
||||
+ Description: Return the best available Firefox from the list of Firefoxes we have.
|
||||
+ Access: public
|
||||
@ -214,7 +214,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L431)
|
||||
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L407)
|
||||
|
||||
+ Description: Return the best available Firefox from the list of Firefoxes we have. if override is passed it will be validated and if it validates it will be used.
|
||||
+ Access: public
|
||||
@ -225,7 +225,7 @@ This method has no parameters.
|
||||
| overrideFirefox | String | |
|
||||
|
||||
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L449)
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L425)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
|
||||
+ Access: public
|
||||
@ -234,7 +234,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L461)
|
||||
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L437)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
|
||||
+ Access: public
|
||||
@ -245,7 +245,7 @@ This method has no parameters.
|
||||
| args | String[] | the args to pass to the Firefox binary |
|
||||
|
||||
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L475)
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L451)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
|
||||
+ Access: public
|
||||
@ -254,7 +254,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L488)
|
||||
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L464)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
|
||||
+ Access: public
|
||||
@ -265,7 +265,7 @@ This method has no parameters.
|
||||
| args | String[] | the arguments to pass to the Firefox binary |
|
||||
|
||||
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L511)
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L487)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
|
||||
+ Access: public
|
||||
@ -274,7 +274,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L524)
|
||||
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L500)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
|
||||
+ Access: public
|
||||
@ -285,7 +285,7 @@ This method has no parameters.
|
||||
| args | String[] | the arguments to pass to the Firefox binary |
|
||||
|
||||
|
||||
### headlessProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L545)
|
||||
### headlessProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L521)
|
||||
|
||||
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --headless flag to open without a window.
|
||||
+ Access: public
|
||||
@ -296,7 +296,7 @@ This method has no parameters.
|
||||
| args | String[] | the arguments to pass to the Firefox binary |
|
||||
|
||||
|
||||
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L573)
|
||||
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L549)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -308,7 +308,7 @@ This method has no parameters.
|
||||
| app | boolean | |
|
||||
|
||||
|
||||
### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L630)
|
||||
### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L606)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -317,7 +317,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L636)
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L612)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -329,7 +329,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L642)
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L618)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -341,7 +341,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L736)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L712)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Firefox with the profile directory.
|
||||
+ Access: public
|
||||
@ -353,20 +353,20 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L718)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| privateWindow | int | |
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L742)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| privateWindow | int | |
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L766)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Firefox with the profile directory.
|
||||
+ Access: public
|
||||
+ return: void
|
||||
@ -376,7 +376,7 @@ This method has no parameters.
|
||||
| privateWindow | boolean | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L776)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L752)
|
||||
|
||||
+ Description: Populates a profile directory with a proxy configuration. Waits for an HTTP proxy on the port 4444 to be ready. Launches Firefox with the profile directory. Uses a semi-permanent profile.
|
||||
+ Access: public
|
||||
@ -385,7 +385,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L778)
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L754)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -397,7 +397,7 @@ This method has no parameters.
|
||||
| inUrl | String | |
|
||||
|
||||
|
||||
### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L789)
|
||||
### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L765)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -409,15 +409,3 @@ This method has no parameters.
|
||||
| args | String[] | |
|
||||
|
||||
|
||||
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L826)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
+ Modifiers: static
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| millis | int | |
|
||||
|
||||
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -499,7 +519,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
deleteRuntimeDirectory
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L315">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L325">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -525,7 +545,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
runtimeDirectory
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L331">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L341">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -555,7 +575,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
runtimeDirectory
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L343">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L353">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -579,119 +599,9 @@
|
||||
<p>
|
||||
This method has no parameters.
|
||||
</p>
|
||||
<h3>
|
||||
waitForProxy
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L365">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of 200 seconds.
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
return: true if the proxy is ready false if it is not.
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
This method has no parameters.
|
||||
</p>
|
||||
<h3>
|
||||
waitForProxy
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L375">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of the specified number of seconds.
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
return: true if the proxy is ready false if it is not.
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
</p>
|
||||
<h3>
|
||||
waitForProxy
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L387">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description: Waits for an HTTP proxy on the specified port to be ready. Returns false on timeout of the specified number of seconds.
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
return: true if the proxy is ready false if it is not.
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
<br />
|
||||
| port | int | the port to wait for the proxy to be ready on. |
|
||||
</p>
|
||||
<h3>
|
||||
waitForProxy
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L401">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description: Waits for an HTTP proxy on the specified port to be ready. Returns false on timeout of the specified number of seconds.
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: public
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
return: true if the proxy is ready false if it is not.
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
<br />
|
||||
| port | int | the port to wait for the proxy to be ready on. |
|
||||
<br />
|
||||
| host | String | the host to wait for the proxy to be ready on. |
|
||||
</p>
|
||||
<h3>
|
||||
launchAndDetatch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L415">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L368">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -720,7 +630,7 @@
|
||||
</p>
|
||||
<h3>
|
||||
launch
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L437">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L390">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -747,39 +657,9 @@
|
||||
<br />
|
||||
| url | String[] | |
|
||||
</p>
|
||||
<h3>
|
||||
sleep
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L455">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: private
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Modifiers: static
|
||||
</li>
|
||||
<li>
|
||||
return: void
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| millis | int | |
|
||||
</p>
|
||||
<h3>
|
||||
ValidURL
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L463">
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L408">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
@ -807,35 +687,6 @@
|
||||
<br />
|
||||
| inUrl | String | |
|
||||
</p>
|
||||
<h3>
|
||||
checkifPortIsOccupied
|
||||
<a href="src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L473">
|
||||
[src]
|
||||
</a>
|
||||
</h3>
|
||||
<ul>
|
||||
<li>
|
||||
Description:
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
Access: private
|
||||
<br />
|
||||
</li>
|
||||
<li>
|
||||
return: boolean
|
||||
<br />
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
| Name | Type | Description |
|
||||
<br />
|
||||
| —– | —– | —– |
|
||||
<br />
|
||||
| port | int | |
|
||||
<br />
|
||||
| host | String | |
|
||||
</p>
|
||||
<div id="sourcecode">
|
||||
<span id="sourcehead">
|
||||
<strong>
|
||||
|
@ -145,7 +145,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### deleteRuntimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L315)
|
||||
### deleteRuntimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L325)
|
||||
|
||||
+ Description: delete the runtime directory
|
||||
+ Access: public
|
||||
@ -155,7 +155,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L331)
|
||||
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L341)
|
||||
|
||||
+ Description: get the runtime directory creating it if create=true
|
||||
+ Access: public
|
||||
@ -167,7 +167,7 @@ This method has no parameters.
|
||||
| create | boolean | if true create the runtime directory if it does not exist |
|
||||
|
||||
|
||||
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L343)
|
||||
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L353)
|
||||
|
||||
+ Description: get the correct runtime directory
|
||||
+ Access: public
|
||||
@ -177,52 +177,7 @@ This method has no parameters.
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L365)
|
||||
|
||||
+ Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of 200 seconds.
|
||||
+ Access: public
|
||||
+ return: true if the proxy is ready false if it is not.
|
||||
|
||||
This method has no parameters.
|
||||
|
||||
|
||||
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L375)
|
||||
|
||||
+ Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of the specified number of seconds.
|
||||
+ Access: public
|
||||
+ return: true if the proxy is ready false if it is not.
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
|
||||
|
||||
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L387)
|
||||
|
||||
+ Description: Waits for an HTTP proxy on the specified port to be ready. Returns false on timeout of the specified number of seconds.
|
||||
+ Access: public
|
||||
+ return: true if the proxy is ready false if it is not.
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
| port | int | the port to wait for the proxy to be ready on. |
|
||||
|
||||
|
||||
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L401)
|
||||
|
||||
+ Description: Waits for an HTTP proxy on the specified port to be ready. Returns false on timeout of the specified number of seconds.
|
||||
+ Access: public
|
||||
+ return: true if the proxy is ready false if it is not.
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| timeout | int | the number of seconds to wait for the proxy to be ready. |
|
||||
| port | int | the port to wait for the proxy to be ready on. |
|
||||
| host | String | the host to wait for the proxy to be ready on. |
|
||||
|
||||
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L415)
|
||||
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L368)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -234,7 +189,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L437)
|
||||
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L390)
|
||||
|
||||
+ Description:
|
||||
+ Access: public
|
||||
@ -246,19 +201,7 @@ This method has no parameters.
|
||||
| url | String[] | |
|
||||
|
||||
|
||||
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L455)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
+ Modifiers: static
|
||||
+ return: void
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| millis | int | |
|
||||
|
||||
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L463)
|
||||
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L408)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
@ -270,15 +213,3 @@ This method has no parameters.
|
||||
| inUrl | String | |
|
||||
|
||||
|
||||
### checkifPortIsOccupied [[src]](src/java/net/i2p/i2pfirefox/I2PGenericUnsafeBrowser.java#L473)
|
||||
|
||||
+ Description:
|
||||
+ Access: private
|
||||
+ return: boolean
|
||||
|
||||
| Name | Type | Description |
|
||||
| ----- | ----- | ----- |
|
||||
| port | int | |
|
||||
| host | String | |
|
||||
|
||||
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
22
LICENSE.html
22
LICENSE.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
1147
LINUX.html
Normal file
1147
LINUX.html
Normal file
File diff suppressed because it is too large
Load Diff
35
LINUX.md
Normal file
35
LINUX.md
Normal file
@ -0,0 +1,35 @@
|
||||
### Linux Support
|
||||
|
||||
It's possible to use this package in the following binary formats on
|
||||
Linux. These packages are for the **`amd64`** architecture.
|
||||
|
||||
#### Linux jpackage: `.zip`
|
||||
|
||||
```sh
|
||||
mkdir ~/tmp-i2pbrowser && cd ~/tmp-i2pbrowser
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.3/i2pbrowser.zip
|
||||
unzip i2pbrowser.zip && cd i2pbrowser
|
||||
## THIS STEP IS OPTIONAL but it will force the system to use Tor Browser from within the i2pbrowser directory.
|
||||
# This probably offers better security than vanilla Firefox.
|
||||
# This will also make the directory the launcher is in relocatable to a flash drive, for instance.
|
||||
# This is commonly referred to as being portable.
|
||||
# If tor and torsocks are on the host system, Tor Browser will be downloaded over Tor.
|
||||
./lib/torbrowser.sh
|
||||
# end of optional step.
|
||||
./bin/i2pbrowser
|
||||
```
|
||||
|
||||
#### Debian/Ubuntu and variants Jpackage: `.deb`
|
||||
|
||||
1. Start your I2P Router
|
||||
2. Download the latest release `.deb` from [Github](https://github.com/eyedeekay/i2p.plugins.firefox/releases) and verify it's hash.
|
||||
3. Run `sudo apt-get install ./i2pbrowser*.deb`(Only needs to be done once per update)
|
||||
4. Use the applications menu shortcut to launch the pre-configured I2P browser
|
||||
|
||||
#### Fedora and variants Jpackage: `.rpm`
|
||||
|
||||
1. Start your I2P Router
|
||||
2. Download the latest release `.r[m` from [Github](https://github.com/eyedeekay/i2p.plugins.firefox/releases) and verify it's hash.
|
||||
3. Run `sudo rpm -i ./i2pbrowser*.rpm`(Only needs to be done the first time)
|
||||
4. Run `sudo rpm -U ./i2pbrowser*.rpm`(Only needs to be done once per update)
|
||||
5. Use the applications menu shortcut to launch the pre-configured I2P browser
|
33
OSX.md
Normal file
33
OSX.md
Normal file
@ -0,0 +1,33 @@
|
||||
Using this on OSX
|
||||
=================
|
||||
|
||||
This code will launch an I2P-Configured Browser on OSX, but at this time
|
||||
there are no packages for it because it's not possible for me to sign OSX
|
||||
packages. You can use the `.jar` file with any Java greater than Java 8.
|
||||
|
||||
```sh
|
||||
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.3/i2pfirefox.zip
|
||||
unzip i2pfirefox.zip
|
||||
./i2pfirefox.cmd
|
||||
|
||||
#or if you want to use a Chromium
|
||||
|
||||
./i2pchromium.cmd
|
||||
```
|
||||
|
||||
Building a `jpackage`
|
||||
---------------------
|
||||
|
||||
In order to build a `jpackage`, install at least Java 17. To set up Java
|
||||
17 and configure it to be the Java used by the system for the rest of the
|
||||
session, use these commands:
|
||||
|
||||
```sh
|
||||
brew install openjdk@17
|
||||
sudo ln -sfn /usr/local/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
|
||||
export JAVA_HOME=`/usr/libexec/java_home -v 17`
|
||||
```
|
||||
|
||||
Once you're finished, run `./osx-dmg.sh` in the repository root to produce a
|
||||
`.dmg` package.
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
240
README.md
240
README.md
@ -1,6 +1,6 @@
|
||||
# i2p.plugins.firefox
|
||||
|
||||
A port of the batch scripts from i2p.firefox to Java.
|
||||
A port of the batch scripts from `i2p.firefox` to Java.
|
||||
|
||||
**Status:** This package is maintained. It cannot solve all your problems. Fingerprinting
|
||||
is a reality in modern browsers. Exploits are too. This software attempts to provide a
|
||||
@ -41,10 +41,17 @@ directory for Firefox, and the `src/i2p.chromium.*.profile/extensions/*.js/*` di
|
||||
|
||||
### Using a Binary
|
||||
|
||||
```sh
|
||||
For platform specific instructions, see
|
||||
|
||||
- [LINUX.md](LINUX.md)/[LINUX.html](LINUX.html)
|
||||
- [OSX.md](OSX.md)/[OSX.html](OSX.html)
|
||||
- [WINDOWS.md](WINDOWS.md)/[WINDOWS.html](WINDOWS.html)
|
||||
|
||||
#### All platforms, using a zip: `.zip` and a non-bundled Java
|
||||
|
||||
```sh
|
||||
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.2/i2pfirefox.zip
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.3/i2pfirefox.zip
|
||||
unzip i2pfirefox.zip
|
||||
./i2pfirefox.cmd
|
||||
|
||||
@ -52,230 +59,3 @@ unzip i2pfirefox.zip
|
||||
|
||||
./i2pchromium.cmd
|
||||
```
|
||||
|
||||
### Build Dependencies
|
||||
|
||||
You will need `ant` and java `java` and for building the jar. You will need
|
||||
`jpackage` for many of the potential build targets. I've been using Java 17
|
||||
on Debian mostly, on Debian and Ubuntu, install the dependencies with:
|
||||
|
||||
```sh
|
||||
sudo apt-get install openjdk-17* ant
|
||||
```
|
||||
|
||||
Some of the targets use scripts written in Go to help generate resources. If
|
||||
you want to update the profiles, you will need them. To install Go on Debian
|
||||
and Ubuntu:
|
||||
|
||||
```sh
|
||||
sudo apt-get install golang-go
|
||||
```
|
||||
|
||||
Add `$HOME/go/bin` to your `$PATH` so `ant` can find Go applications.
|
||||
|
||||
`export PATH=$PATH:$HOME/go/bin`
|
||||
|
||||
Then use Go to download the applications you need and add them to `$HOME/go/bin`.
|
||||
|
||||
If you want to build the Chromium profiles you will need a Go application
|
||||
called `crx3` which is used to interact with the Chrome app store to download
|
||||
and update extensions.
|
||||
|
||||
```sh
|
||||
go install github.com/mediabuyerbot/go-crx3/crx3@latest
|
||||
```
|
||||
|
||||
Another Go application, called `amo-version`, is used to fetch extensions from addons.mozilla.org.
|
||||
Like the Chrome profiles, generating the Firefox profiles requires this application. If you don't
|
||||
want to update the profiles, you don't need it.
|
||||
|
||||
```sh
|
||||
go install github.com/eyedeekay/amo-version@latest
|
||||
```
|
||||
|
||||
One last Go application, called `dzip` is used to generate zip files deterministically for
|
||||
redistribution.
|
||||
|
||||
```sh
|
||||
go install github.com/delicb/dzip@latest
|
||||
```
|
||||
|
||||
If you don't want to use it, you can work around it by creating a file called
|
||||
`dzip` in `/usr/local/bin/dzip` and adding the contents:
|
||||
|
||||
```sh
|
||||
#! /usr/bin/env sh
|
||||
zip -r $@
|
||||
```
|
||||
|
||||
This will break deterministic builds, but for testing it will continue to work. More elaborate
|
||||
scripts or other deterministic zip utilities can be easily substituted in by placing them
|
||||
in the `$PATH` under the name `dzip`.
|
||||
|
||||
For Fedora, use Yum, for Arch use pacman or something else but make sure to tell everyone
|
||||
about it. Once you have that installed, when building, make sure to add `$GOPATH/bin/`
|
||||
to your `$PATH`.
|
||||
|
||||
```sh
|
||||
export PATH=$PATH:$HOME/go/bin
|
||||
```
|
||||
|
||||
Will almost always work.
|
||||
|
||||
### Building
|
||||
|
||||
This is not actually a plugin yet, but it will be soon. The important bit is the jar.
|
||||
To generate that, you can either generate the full plugin, which will not work but
|
||||
produces the jar as a by-product, or you can:
|
||||
|
||||
```sh
|
||||
|
||||
ant jar
|
||||
```
|
||||
|
||||
To build just the jar. You'll know it worked if you can:
|
||||
|
||||
```sh
|
||||
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PFirefox
|
||||
```
|
||||
|
||||
and a new Firefox instance comes up with a fresh profile, ready-to-use for I2P browsing.
|
||||
|
||||
The cooler thing you can do with it is add it to an I2P distribution and somewhere in it,
|
||||
add a UI element that triggers something along the lines of this:
|
||||
|
||||
```java
|
||||
|
||||
// Firefox Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PFirefox");
|
||||
I2PFirefox i2pFirefox = new I2PFirefox();
|
||||
i2pFirefox.launch();
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
|
||||
// Chromium Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PChromium");
|
||||
I2PChromium i2pChromium = new I2PChromium();
|
||||
i2pChromium.launch();
|
||||
}
|
||||
```
|
||||
|
||||
```java
|
||||
|
||||
// Auto-Select Example, chooses Firefox first, then Chromium
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PBrowser");
|
||||
I2PBrowser i2pBrowser = new I2PBrowser();
|
||||
/*
|
||||
* toggle chromium to the top of the order by doing:
|
||||
I2PBrowser.chromiumFirst = true;
|
||||
*
|
||||
*/
|
||||
i2pBrowser.launch(privateBrowsing);
|
||||
}
|
||||
```
|
||||
|
||||
to add a browser management tool to it.
|
||||
|
||||
### Browser Discovery Methods
|
||||
|
||||
This tool looks for browsers on the host system, creates a workspace to use for I2P
|
||||
purposes, and launches the browser inside of that workspace. The details of the
|
||||
workspace vary from browser to browser but roughly corresponds to a browser profile.
|
||||
In order to be successful this tool uses 3 main types of browser discovery methods,
|
||||
in this order:
|
||||
|
||||
1. "Local" discovery, where a browser is in a subdirectory of the directory where you
|
||||
ran the launcher. This will only happen if the user unpacked a portable browser into
|
||||
the same directory where they ran the launcher.
|
||||
2. "Path-Based" discovery, where it scans common browser installation directories
|
||||
until it finds one which it can use. On Unix, it simply scans the directories on the
|
||||
`PATH` for a browser it knows about. On Windows, default paths to browser install
|
||||
directories are hard-coded and included in the binary. This is what usually happens.
|
||||
3. "System-Based" discovery, where it defers to the host system to make a choice
|
||||
about the browser and counts on browser vendors to honor the system proxy environment
|
||||
variables. This is a catch-all solution which works with most browsers, but does
|
||||
not apply any customizations.
|
||||
|
||||
There is a little subtlety here though.
|
||||
|
||||
- The path to Edgium on Windows will **always** resolve during path-based discovery,
|
||||
resulting in a positive test for Chromium when launching the browser in auto-select
|
||||
mode. So Windows will never reach stage 3 unless expressly forced to. If Firefox or
|
||||
a variant is installed, it will be chosen before Edgium unless directed otherwise.
|
||||
- Even though it will launch you into Edgium if it has no other choice, I recommend
|
||||
you do not use it. Edgium will in a constant, incessant way try to induce you to
|
||||
share your behavior with Microsoft. If you try to resist this, it negatively affects
|
||||
the performance of the browser. Google also does this with Chrome, ant this negatively
|
||||
affects Chrome performance too, but less than with Edgium. TL:DR Edgium sucks and is
|
||||
pointless and terrible. Literally any other browser would be better.
|
||||
- Linux is unaware of a Tor Browser path because Tor Browser is rarely, if ever,
|
||||
installed on-path. What is on path is virtually always a wrapper for Tor Browser
|
||||
which is installed either as the main user or it's own user. Linux will only use
|
||||
Tor Browser if it's discovered in "Local" mode. To set this up automatically, you
|
||||
can `cd` to the `I2P` directory where you unpacked the `.tar.gz` file, and run the
|
||||
`./lib/torbrowser.sh` script from there.
|
||||
- I really only test Phase 3 with Dillo and Edgium. **YMMV.**
|
||||
|
||||
### Usability vs Strict
|
||||
|
||||
This is basically a profile-management tool geared toward minimizing the
|
||||
differences between browser users which are passively discernible while
|
||||
they are browsing I2P. It assumes that they are part of a highly fragmented
|
||||
browsing environment where they are already unique, and therefore consolidation
|
||||
on configuration is a goal. However, this goal sometimes also conflicts with
|
||||
usability. To allow users a safe set of choices, we offer "Coarse" configuration
|
||||
in 2 modes. We recommend that you do not deviate from these configurations if
|
||||
you have browser application fingerprinting as a concern.
|
||||
|
||||
#### Usability Mode
|
||||
|
||||
TODO: description
|
||||
|
||||
Pros: Allows a restricted subset of Javascript
|
||||
Pros: Less likely to try and reach the clearnet
|
||||
|
||||
Cons: Looks very different from Tor Browser
|
||||
Cons: Plugin updates can create temporary uniqueness
|
||||
|
||||
##### Usability Extension Set
|
||||
|
||||
- **I2P In Private Browsing**
|
||||
- **uMatrix**
|
||||
- **jsRestrictor**
|
||||
- **LocalCDN**
|
||||
- **Onion in Container Tabs**
|
||||
- **HTTPS EveryWhere** in some configurations
|
||||
|
||||
##### Usability user.js characteristics
|
||||
|
||||
TODO: Summarize differences
|
||||
|
||||
#### Strict Mode
|
||||
|
||||
TODO: description
|
||||
|
||||
Pros: Does not allow Javascript by default
|
||||
Pros: Looks a lot like Tor Browser especially if you're using Tor Browser
|
||||
|
||||
Cons: More work to use
|
||||
Cons: Temporary uniqueness can be created by enabling Javascript for specific sites
|
||||
Cons: More likely to try and reach the clearnet
|
||||
|
||||
##### Strict Extension Set
|
||||
|
||||
- **NoScript**
|
||||
- **I2P In Private Browsing**
|
||||
- **HTTPS EveryWhere** in some configurations
|
||||
|
||||
##### Strict user.js characteristics
|
||||
|
||||
TODO: Summarize differences
|
||||
|
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
22
TODO.html
22
TODO.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
22
USAGE.html
22
USAGE.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
22
VERSION.html
22
VERSION.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
|
1169
WINDOWS.html
Normal file
1169
WINDOWS.html
Normal file
File diff suppressed because it is too large
Load Diff
33
WINDOWS.md
Normal file
33
WINDOWS.md
Normal file
@ -0,0 +1,33 @@
|
||||
### Windows Support
|
||||
|
||||
It's possible to use this package on Windows, but it's recommended that
|
||||
you get it through the Easy-Install bundle which includes this functionality
|
||||
already. Use this only if you want to test new features or if you prefer
|
||||
an unbundled I2P router with an external JVM.
|
||||
|
||||
#### Windows Jpackage: `.zip`
|
||||
|
||||
**(Not Recommended! This functionality is already included in the Easy-Install Bundle for Windows)**
|
||||
|
||||
1. Start your I2P Router
|
||||
2. Download the latest release `.zip` from [Github](https://github.com/eyedeekay/i2p.plugins.firefox/releases) and verify it's hash.
|
||||
3. Unzip the `.zip` directory
|
||||
4. run the `i2pbrowser.exe` file inside the unzipped directory.
|
||||
|
||||
#### Windows Jpackage: `.msi`
|
||||
|
||||
**(Not Recommended! This functionality is already included in the Easy-Install Bundle for Windows)**
|
||||
|
||||
1. Start your I2P Router
|
||||
2. Download the latest release `.msi` from [Github](https://github.com/eyedeekay/i2p.plugins.firefox/releases) and verify it's hash.
|
||||
3. Run the `.msi` installer(Only needs to be done once per update)
|
||||
4. Use the start menu shortcut to launch the pre-configured I2P browser
|
||||
|
||||
#### Windows Jpackage: `.exe`
|
||||
|
||||
**(Not Recommended! This functionality is already included in the Easy-Install Bundle for Windows)**
|
||||
|
||||
1. Start your I2P Router
|
||||
2. Download the latest release `.exe` from [Github](https://github.com/eyedeekay/i2p.plugins.firefox/releases) and verify it's hash.
|
||||
3. Run the `.msi` installer(Only needs to be done once per update)
|
||||
4. Use the start menu shortcut to launch the pre-configured I2P browser
|
@ -1,15 +1,15 @@
|
||||
#Firefox Configuration Section
|
||||
#Sat Oct 22 23:43:17 EDT 2022
|
||||
#Chromium Configuration Section
|
||||
#Sun Oct 23 11:53:50 EDT 2022
|
||||
chromium.bins.linux=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.osx=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
chromium.bins.windows=ungoogled-chromium.exe,chromium.exe,brave.exe,edge.exe,ungoogled-chromium.exe,chrome.exe
|
||||
firefox.bins.windows=firefox.exe,firefox-bin.exe,firefox-esr.exe,waterfox.exe,waterfox-bin.exe,librewolf.exe
|
||||
firefox.bins.linux=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
chromium.paths.windows=/Google/Chrome/Application,/Google/Chrome/Application,/Google/Chrome/Application,/Chromium/Application,/Chromium/Application,/Chromium/Application,/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/BraveSoftware/Brave Browser/Application,/Microsoft/Edge/Application,/Microsoft/Edge/Application
|
||||
firefox.paths.windows=/home/idk/OneDrive/Desktop/Tor Browser/Browser,/home/idk/Desktop/Tor Browser/Browser,Mozilla Firefox,Mozilla Firefox,Waterfox,Waterfox,Librewolf
|
||||
firefox.paths.osx=/Applications/Tor Browser.app/Contents/MacOS,/Applications/Firefox.app/Contents/MacOS,/Applications/Waterfox.app/Contents/MacOS,/Applications/Librewolf.app/Contents/MacOS
|
||||
chromium.bins.linux=ungoogled-chromium,chromium,brave,edge,ungoogled-chromium,chrome
|
||||
firefox.bins.osx=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
chromium.paths.osx=/Applications/Chromium.app/Contents/MacOS,/Applications/Chrome.app/Contents/MacOS,/Applications/Brave.app/Contents/MacOS
|
||||
chromium.paths.linux=/usr/bin,/usr/local/bin,/opt/chromium/bin,/snap/bin
|
||||
chromium.paths.osx=/Applications/Chromium.app/Contents/MacOS,/Applications/Chrome.app/Contents/MacOS,/Applications/Brave.app/Contents/MacOS
|
||||
chromium.paths.windows=C\:/Users/user/AppData/Local/Google/Chrome/Application,C\:/Program Files/Google/Chrome/Application,C\:/Program Files (x86)/Google/Chrome/Application,C\:/Users/user/AppData/Local/Chromium/Application,C\:/Program Files/Chromium/Application,C\:/Program Files (x86)/Chromium/Application,C\:/Users/user/AppData/Local/BraveSoftware/Brave Browser/Application,C\:/Program Files/BraveSoftware/Brave Browser/Application,C\:/Program Files (x86)/BraveSoftware/Brave Browser/Application,C\:/Program Files (x86)/Microsoft/Edge/Application,C\:/Program Files/Microsoft/Edge/Application
|
||||
firefox.bins.linux=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.osx=firefox,firefox-bin,firefox-esr,waterfox,waterfox-bin,librewolf
|
||||
firefox.bins.windows=firefox.exe,firefox-bin.exe,firefox-esr.exe,waterfox.exe,waterfox-bin.exe,librewolf.exe
|
||||
firefox.paths.linux=/usr/bin,/usr/local/bin,/opt/firefox/bin,/snap/bin
|
||||
firefox.paths.osx=/Applications/Tor Browser.app/Contents/MacOS,/Applications/Firefox.app/Contents/MacOS,/Applications/Waterfox.app/Contents/MacOS,/Applications/Librewolf.app/Contents/MacOS
|
||||
firefox.paths.windows=C\:/Users/user/OneDrive/Desktop/Tor Browser/Browser,C\:/Users/user/Desktop/Tor Browser/Browser,C\:/Program Files/Mozilla Firefox,C\:/Program Files (x86)/Mozilla Firefox,C\:/Program Files/Waterfox,C\:/Program Files (x86)/Waterfox,C\:/Program Files/Librewolf
|
||||
generic.bins.unix=sensible-browser,xdg-open,x-www-browser,gnome-www-browser,defaultbrowser,dillo,seamonkey,konqueror,galeon,surf,www-browser,links,lynx
|
||||
|
7
browser.config.sh
Executable file
7
browser.config.sh
Executable file
@ -0,0 +1,7 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
rm -f browser.config
|
||||
ant clangFmt jar
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -outputconfig -nosystray "http://idk.i2p"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -outputconfig -nosystray "http://idk.i2p"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic -outputconfig -nosystray "http://idk.i2p"
|
@ -339,7 +339,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
|
||||
|
||||
<target name="buildNum">
|
||||
<buildnumber file="scripts/build.number" />
|
||||
<property name="release.number" value="1.0.2" />
|
||||
<property name="release.number" value="1.0.3" />
|
||||
<exec executable="echo" osfamily="unix">
|
||||
<arg value="${release.number}-${build.number}" />
|
||||
</exec>
|
||||
|
@ -1,6 +1,6 @@
|
||||
#! /usr/bin/env sh
|
||||
export GITHUB_USER=eyedeekay
|
||||
export GITHUB_REPO=i2p.plugins.firefox
|
||||
export GITHUB_NAME="Completes features for PWA-Like mode by flattening UI onto one toolbar"
|
||||
export GITHUB_NAME="Tweaks to how the Tor Browser integration works"
|
||||
export GITHUB_DESCRIPTION=$(cat CHANGES.md VERSION.md)
|
||||
export GITHUB_TAG=1.0.2
|
||||
export GITHUB_TAG=1.0.3
|
@ -10,6 +10,7 @@ jpackage --verbose \
|
||||
--linux-shortcut \
|
||||
--license-file LICENSE.md \
|
||||
--name i2pbrowser \
|
||||
--icon src/icon.png \
|
||||
--app-version "$GITHUB_TAG" \
|
||||
--input src/build \
|
||||
--main-jar i2pfirefox.jar \
|
||||
|
@ -2,7 +2,8 @@
|
||||
|
||||
TORSOCKS=$(which torsocks)
|
||||
if [ -f "${TORSOCKS}" ]; then
|
||||
. "${TORSOCKS}" on
|
||||
#. "${TORSOCKS}" on
|
||||
echo ""
|
||||
fi
|
||||
|
||||
version="$(curl -s https://aus1.torproject.org/torbrowser/update_3/release/downloads.json | jq -r ".version")"
|
||||
|
@ -22,6 +22,7 @@ jpackage --verbose \
|
||||
--license-file LICENSE.md \
|
||||
--name i2pbrowser \
|
||||
--app-version "$GITHUB_TAG" \
|
||||
--icon src/icon.png \
|
||||
--input src/build \
|
||||
--main-jar i2pfirefox.jar \
|
||||
--main-class net.i2p.i2pfirefox.I2PBrowser
|
||||
|
5
gngr.sh
Executable file
5
gngr.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
rm lib/jars/gngr.jar
|
||||
mkdir -p lib/jars/
|
||||
wget -c -O lib/jars/gngr.jar https://github.com/gngrOrg/gngr/releases/download/v0.3.16/gngr-0.3.16.jar
|
457
index.html
457
index.html
@ -27,6 +27,11 @@
|
||||
index
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="BUILD.html">
|
||||
BUILD
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="CHANGES.html">
|
||||
CHANGES
|
||||
@ -34,7 +39,7 @@
|
||||
</li>
|
||||
<li>
|
||||
<a href="CONFIG.html">
|
||||
CONFIG.html
|
||||
CONFIG
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
@ -107,6 +112,16 @@
|
||||
LICENSE
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="LINUX.html">
|
||||
LINUX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.html">
|
||||
OSX
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="PACKAGES.html">
|
||||
PACKAGES
|
||||
@ -132,6 +147,11 @@
|
||||
VERSION
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<br>
|
||||
<a href="#hidenav">
|
||||
@ -147,7 +167,11 @@
|
||||
i2p.plugins.firefox
|
||||
</h1>
|
||||
<p>
|
||||
A port of the batch scripts from i2p.firefox to Java.
|
||||
A port of the batch scripts from
|
||||
<code>
|
||||
i2p.firefox
|
||||
</code>
|
||||
to Java.
|
||||
</p>
|
||||
<p>
|
||||
<strong>
|
||||
@ -243,9 +267,47 @@
|
||||
<h3>
|
||||
Using a Binary
|
||||
</h3>
|
||||
<pre><code class="language-sh">
|
||||
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.2/i2pfirefox.zip
|
||||
<p>
|
||||
For platform specific instructions, see
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="LINUX.md">
|
||||
LINUX.md
|
||||
</a>
|
||||
/
|
||||
<a href="LINUX.html">
|
||||
LINUX.html
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="OSX.md">
|
||||
OSX.md
|
||||
</a>
|
||||
/
|
||||
<a href="OSX.html">
|
||||
OSX.html
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="WINDOWS.md">
|
||||
WINDOWS.md
|
||||
</a>
|
||||
/
|
||||
<a href="WINDOWS.html">
|
||||
WINDOWS.html
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h4>
|
||||
All platforms, using a zip:
|
||||
<code>
|
||||
.zip
|
||||
</code>
|
||||
and a non-bundled Java
|
||||
</h4>
|
||||
<pre><code class="language-sh">mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
|
||||
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.3/i2pfirefox.zip
|
||||
unzip i2pfirefox.zip
|
||||
./i2pfirefox.cmd
|
||||
|
||||
@ -253,391 +315,6 @@ unzip i2pfirefox.zip
|
||||
|
||||
./i2pchromium.cmd
|
||||
</code></pre>
|
||||
<h3>
|
||||
Build Dependencies
|
||||
</h3>
|
||||
<p>
|
||||
You will need
|
||||
<code>
|
||||
ant
|
||||
</code>
|
||||
and java
|
||||
<code>
|
||||
java
|
||||
</code>
|
||||
and for building the jar. You will need
|
||||
<code>
|
||||
jpackage
|
||||
</code>
|
||||
for many of the potential build targets. I’ve been using Java 17
|
||||
on Debian mostly, on Debian and Ubuntu, install the dependencies with:
|
||||
</p>
|
||||
<pre><code class="language-sh">sudo apt-get install openjdk-17* ant
|
||||
</code></pre>
|
||||
<p>
|
||||
Some of the targets use scripts written in Go to help generate resources. If
|
||||
you want to update the profiles, you will need them. To install Go on Debian
|
||||
and Ubuntu:
|
||||
</p>
|
||||
<pre><code class="language-sh">sudo apt-get install golang-go
|
||||
</code></pre>
|
||||
<p>
|
||||
Add
|
||||
<code>
|
||||
$HOME/go/bin
|
||||
</code>
|
||||
to your
|
||||
<code>
|
||||
$PATH
|
||||
</code>
|
||||
so
|
||||
<code>
|
||||
ant
|
||||
</code>
|
||||
can find Go applications.
|
||||
</p>
|
||||
<p>
|
||||
<code>
|
||||
export PATH=$PATH:$HOME/go/bin
|
||||
</code>
|
||||
</p>
|
||||
<p>
|
||||
Then use Go to download the applications you need and add them to
|
||||
<code>
|
||||
$HOME/go/bin
|
||||
</code>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
If you want to build the Chromium profiles you will need a Go application
|
||||
called
|
||||
<code>
|
||||
crx3
|
||||
</code>
|
||||
which is used to interact with the Chrome app store to download
|
||||
and update extensions.
|
||||
</p>
|
||||
<pre><code class="language-sh">go install github.com/mediabuyerbot/go-crx3/crx3@latest
|
||||
</code></pre>
|
||||
<p>
|
||||
Another Go application, called
|
||||
<code>
|
||||
amo-version
|
||||
</code>
|
||||
, is used to fetch extensions from addons.mozilla.org.
|
||||
Like the Chrome profiles, generating the Firefox profiles requires this application. If you don’t
|
||||
want to update the profiles, you don’t need it.
|
||||
</p>
|
||||
<pre><code class="language-sh">go install github.com/eyedeekay/amo-version@latest
|
||||
</code></pre>
|
||||
<p>
|
||||
One last Go application, called
|
||||
<code>
|
||||
dzip
|
||||
</code>
|
||||
is used to generate zip files deterministically for
|
||||
redistribution.
|
||||
</p>
|
||||
<pre><code class="language-sh">go install github.com/delicb/dzip@latest
|
||||
</code></pre>
|
||||
<p>
|
||||
If you don’t want to use it, you can work around it by creating a file called
|
||||
<code>
|
||||
dzip
|
||||
</code>
|
||||
in
|
||||
<code>
|
||||
/usr/local/bin/dzip
|
||||
</code>
|
||||
and adding the contents:
|
||||
</p>
|
||||
<pre><code class="language-sh">#! /usr/bin/env sh
|
||||
zip -r $@
|
||||
</code></pre>
|
||||
<p>
|
||||
This will break deterministic builds, but for testing it will continue to work. More elaborate
|
||||
scripts or other deterministic zip utilities can be easily substituted in by placing them
|
||||
in the
|
||||
<code>
|
||||
$PATH
|
||||
</code>
|
||||
under the name
|
||||
<code>
|
||||
dzip
|
||||
</code>
|
||||
.
|
||||
</p>
|
||||
<p>
|
||||
For Fedora, use Yum, for Arch use pacman or something else but make sure to tell everyone
|
||||
about it. Once you have that installed, when building, make sure to add
|
||||
<code>
|
||||
$GOPATH/bin/
|
||||
</code>
|
||||
to your
|
||||
<code>
|
||||
$PATH
|
||||
</code>
|
||||
.
|
||||
</p>
|
||||
<pre><code class="language-sh">export PATH=$PATH:$HOME/go/bin
|
||||
</code></pre>
|
||||
<p>
|
||||
Will almost always work.
|
||||
</p>
|
||||
<h3>
|
||||
Building
|
||||
</h3>
|
||||
<p>
|
||||
This is not actually a plugin yet, but it will be soon. The important bit is the jar.
|
||||
To generate that, you can either generate the full plugin, which will not work but
|
||||
produces the jar as a by-product, or you can:
|
||||
</p>
|
||||
<pre><code class="language-sh">
|
||||
ant jar
|
||||
</code></pre>
|
||||
<p>
|
||||
To build just the jar. You’ll know it worked if you can:
|
||||
</p>
|
||||
<pre><code class="language-sh">
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PFirefox
|
||||
</code></pre>
|
||||
<p>
|
||||
and a new Firefox instance comes up with a fresh profile, ready-to-use for I2P browsing.
|
||||
</p>
|
||||
<p>
|
||||
The cooler thing you can do with it is add it to an I2P distribution and somewhere in it,
|
||||
add a UI element that triggers something along the lines of this:
|
||||
</p>
|
||||
<pre><code class="language-java">
|
||||
// Firefox Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PFirefox");
|
||||
I2PFirefox i2pFirefox = new I2PFirefox();
|
||||
i2pFirefox.launch();
|
||||
}
|
||||
</code></pre>
|
||||
<pre><code class="language-java">
|
||||
// Chromium Example
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PChromium");
|
||||
I2PChromium i2pChromium = new I2PChromium();
|
||||
i2pChromium.launch();
|
||||
}
|
||||
</code></pre>
|
||||
<pre><code class="language-java">
|
||||
// Auto-Select Example, chooses Firefox first, then Chromium
|
||||
if (i2pIsRunning()) {
|
||||
logger.warning("I2P is already running");
|
||||
System.out.println("I2PBrowser");
|
||||
I2PBrowser i2pBrowser = new I2PBrowser();
|
||||
/*
|
||||
* toggle chromium to the top of the order by doing:
|
||||
I2PBrowser.chromiumFirst = true;
|
||||
*
|
||||
*/
|
||||
i2pBrowser.launch(privateBrowsing);
|
||||
}
|
||||
</code></pre>
|
||||
<p>
|
||||
to add a browser management tool to it.
|
||||
</p>
|
||||
<h3>
|
||||
Browser Discovery Methods
|
||||
</h3>
|
||||
<p>
|
||||
This tool looks for browsers on the host system, creates a workspace to use for I2P
|
||||
purposes, and launches the browser inside of that workspace. The details of the
|
||||
workspace vary from browser to browser but roughly corresponds to a browser profile.
|
||||
In order to be successful this tool uses 3 main types of browser discovery methods,
|
||||
in this order:
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
“Local” discovery, where a browser is in a subdirectory of the directory where you
|
||||
ran the launcher. This will only happen if the user unpacked a portable browser into
|
||||
the same directory where they ran the launcher.
|
||||
</li>
|
||||
<li>
|
||||
“Path-Based” discovery, where it scans common browser installation directories
|
||||
until it finds one which it can use. On Unix, it simply scans the directories on the
|
||||
<code>
|
||||
PATH
|
||||
</code>
|
||||
for a browser it knows about. On Windows, default paths to browser install
|
||||
directories are hard-coded and included in the binary. This is what usually happens.
|
||||
</li>
|
||||
<li>
|
||||
“System-Based” discovery, where it defers to the host system to make a choice
|
||||
about the browser and counts on browser vendors to honor the system proxy environment
|
||||
variables. This is a catch-all solution which works with most browsers, but does
|
||||
not apply any customizations.
|
||||
</li>
|
||||
</ol>
|
||||
<p>
|
||||
There is a little subtlety here though.
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
The path to Edgium on Windows will
|
||||
<strong>
|
||||
always
|
||||
</strong>
|
||||
resolve during path-based discovery,
|
||||
resulting in a positive test for Chromium when launching the browser in auto-select
|
||||
mode. So Windows will never reach stage 3 unless expressly forced to. If Firefox or
|
||||
a variant is installed, it will be chosen before Edgium unless directed otherwise.
|
||||
</li>
|
||||
<li>
|
||||
Even though it will launch you into Edgium if it has no other choice, I recommend
|
||||
you do not use it. Edgium will in a constant, incessant way try to induce you to
|
||||
share your behavior with Microsoft. If you try to resist this, it negatively affects
|
||||
the performance of the browser. Google also does this with Chrome, ant this negatively
|
||||
affects Chrome performance too, but less than with Edgium. TL:DR Edgium sucks and is
|
||||
pointless and terrible. Literally any other browser would be better.
|
||||
</li>
|
||||
<li>
|
||||
Linux is unaware of a Tor Browser path because Tor Browser is rarely, if ever,
|
||||
installed on-path. What is on path is virtually always a wrapper for Tor Browser
|
||||
which is installed either as the main user or it’s own user. Linux will only use
|
||||
Tor Browser if it’s discovered in “Local” mode. To set this up automatically, you
|
||||
can
|
||||
<code>
|
||||
cd
|
||||
</code>
|
||||
to the
|
||||
<code>
|
||||
I2P
|
||||
</code>
|
||||
directory where you unpacked the
|
||||
<code>
|
||||
.tar.gz
|
||||
</code>
|
||||
file, and run the
|
||||
<code>
|
||||
./lib/torbrowser.sh
|
||||
</code>
|
||||
script from there.
|
||||
</li>
|
||||
<li>
|
||||
I really only test Phase 3 with Dillo and Edgium.
|
||||
<strong>
|
||||
YMMV.
|
||||
</strong>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>
|
||||
Usability vs Strict
|
||||
</h3>
|
||||
<p>
|
||||
This is basically a profile-management tool geared toward minimizing the
|
||||
differences between browser users which are passively discernible while
|
||||
they are browsing I2P. It assumes that they are part of a highly fragmented
|
||||
browsing environment where they are already unique, and therefore consolidation
|
||||
on configuration is a goal. However, this goal sometimes also conflicts with
|
||||
usability. To allow users a safe set of choices, we offer “Coarse” configuration
|
||||
in 2 modes. We recommend that you do not deviate from these configurations if
|
||||
you have browser application fingerprinting as a concern.
|
||||
</p>
|
||||
<h4>
|
||||
Usability Mode
|
||||
</h4>
|
||||
<p>
|
||||
TODO: description
|
||||
</p>
|
||||
<p>
|
||||
Pros: Allows a restricted subset of Javascript
|
||||
Pros: Less likely to try and reach the clearnet
|
||||
</p>
|
||||
<p>
|
||||
Cons: Looks very different from Tor Browser
|
||||
Cons: Plugin updates can create temporary uniqueness
|
||||
</p>
|
||||
<h5>
|
||||
Usability Extension Set
|
||||
</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>
|
||||
I2P In Private Browsing
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
uMatrix
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
jsRestrictor
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
LocalCDN
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
Onion in Container Tabs
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
HTTPS EveryWhere
|
||||
</strong>
|
||||
in some configurations
|
||||
</li>
|
||||
</ul>
|
||||
<h5>
|
||||
Usability user.js characteristics
|
||||
</h5>
|
||||
<p>
|
||||
TODO: Summarize differences
|
||||
</p>
|
||||
<h4>
|
||||
Strict Mode
|
||||
</h4>
|
||||
<p>
|
||||
TODO: description
|
||||
</p>
|
||||
<p>
|
||||
Pros: Does not allow Javascript by default
|
||||
Pros: Looks a lot like Tor Browser especially if you’re using Tor Browser
|
||||
</p>
|
||||
<p>
|
||||
Cons: More work to use
|
||||
Cons: Temporary uniqueness can be created by enabling Javascript for specific sites
|
||||
Cons: More likely to try and reach the clearnet
|
||||
</p>
|
||||
<h5>
|
||||
Strict Extension Set
|
||||
</h5>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>
|
||||
NoScript
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
I2P In Private Browsing
|
||||
</strong>
|
||||
</li>
|
||||
<li>
|
||||
<strong>
|
||||
HTTPS EveryWhere
|
||||
</strong>
|
||||
in some configurations
|
||||
</li>
|
||||
</ul>
|
||||
<h5>
|
||||
Strict user.js characteristics
|
||||
</h5>
|
||||
<p>
|
||||
TODO: Summarize differences
|
||||
</p>
|
||||
<div id="sourcecode">
|
||||
<span id="sourcehead">
|
||||
<strong>
|
||||
|
@ -5,6 +5,7 @@ jpackage \
|
||||
--type dmg \
|
||||
--name i2pbrowser \
|
||||
--app-version "$GITHUB_TAG" \
|
||||
--icon src/icon.png \
|
||||
--input src/build \
|
||||
--main-jar i2pfirefox.jar \
|
||||
--main-class net.i2p.i2pfirefox.I2PBrowser
|
||||
|
@ -4,8 +4,12 @@
|
||||
ant distclean clangFmt versionMd
|
||||
./javadoc.sh
|
||||
NUMLINE=`grep release.number build.xml | head -n 1`
|
||||
READMELINE=`grep 'i2p.plugins.firefox/releases/download' README.md`
|
||||
READMELINE=`grep 'i2p.plugins.firefox/releases/download' README.md | grep i2pfirefox`
|
||||
sed -i "s|${READMELINE}|wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/${GITHUB_TAG}/i2pfirefox.zip|g" README.md
|
||||
READMELINE=`grep 'i2p.plugins.firefox/releases/download' LINUX.md | grep i2pbrowser`
|
||||
sed -i "s|${READMELINE}|wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/${GITHUB_TAG}/i2pbrowser.zip|g" LINUX.md
|
||||
READMELINE=`grep 'i2p.plugins.firefox/releases/download' OSX.md | grep i2pfirefox`
|
||||
sed -i "s|${READMELINE}|wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/${GITHUB_TAG}/i2pfirefox.zip|g" OSX.md
|
||||
sed -i "s|${NUMLINE}| <property name=\"release.number\" value=\"$GITHUB_TAG\" />|g" build.xml
|
||||
edgar && git push --all
|
||||
ant distclean tarball versionMd jar freeZip jpackage debian fedora
|
||||
|
@ -2,12 +2,12 @@
|
||||
|
||||
. ./config.sh
|
||||
./preprelease.sh
|
||||
./profiles-upload.sh
|
||||
github-release release --user "${GITHUB_USER}" \
|
||||
--repo "${GITHUB_REPO}" \
|
||||
--name "${GITHUB_NAME}" \
|
||||
--description "${GITHUB_DESCRIPTION}" \
|
||||
--tag "${GITHUB_TAG}"; true
|
||||
./profiles-upload.sh
|
||||
sleep 2s
|
||||
github-release edit --user "${GITHUB_USER}" \
|
||||
--repo "${GITHUB_REPO}" \
|
||||
|
@ -1,3 +1,3 @@
|
||||
#Build Number for ANT. Do not edit!
|
||||
#Sun Oct 23 01:34:16 EDT 2022
|
||||
build.number=130
|
||||
#Mon Oct 24 00:28:56 EDT 2022
|
||||
build.number=141
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
Profile Version
|
||||
===============
|
||||
|
||||
1.0.2-129
|
||||
1.0.3-140
|
||||
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
Profile Version
|
||||
===============
|
||||
|
||||
1.0.2-129
|
||||
1.0.3-140
|
||||
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
Profile Version
|
||||
===============
|
||||
|
||||
1.0.2-129
|
||||
1.0.3-140
|
||||
|
||||
|
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
Profile Version
|
||||
===============
|
||||
|
||||
1.0.2-129
|
||||
1.0.3-140
|
||||
|
||||
|
@ -107,8 +107,8 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
if (chromiumPathsProp != null)
|
||||
if (!chromiumPathsProp.equals(""))
|
||||
return chromiumPathsProp.split(",");
|
||||
return new String[] {"ungoogled-chromium", "chromium", "brave", "edge",
|
||||
"ungoogled-chromium", "chrome"};
|
||||
return new String[] {
|
||||
"ungoogled-chromium", "chromium", "brave", "edge", "msedge", "chrome"};
|
||||
}
|
||||
|
||||
private static String[] FIND_CHROMIUM_SEARCH_PATHS_UNIX() {
|
||||
@ -156,6 +156,14 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
String programFiles = System.getenv("ProgramFiles");
|
||||
String localAppData = System.getenv("LOCALAPPDATA");
|
||||
String programFiles86 = System.getenv("ProgramFiles(x86)");
|
||||
|
||||
if (programFiles == null)
|
||||
programFiles = "C:/Program Files/";
|
||||
if (programFiles86 == null)
|
||||
programFiles86 = "C:/Program Files (x86)/";
|
||||
if (!isWindows())
|
||||
localAppData = "C:/Users/user/AppData/Local/";
|
||||
|
||||
return new String[] {
|
||||
new File(localAppData, "/Google/Chrome/Application/").toString(),
|
||||
new File(programFiles, "/Google/Chrome/Application/").toString(),
|
||||
@ -178,9 +186,12 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
if (chromiumPathsProp != null)
|
||||
if (!chromiumPathsProp.equals(""))
|
||||
return chromiumPathsProp.split(",");
|
||||
return new String[] {
|
||||
"ungoogled-chromium.exe", "chromium.exe", "brave.exe", "edge.exe",
|
||||
"ungoogled-chromium.exe", "chrome.exe"};
|
||||
return new String[] {"ungoogled-chromium.exe",
|
||||
"chromium.exe",
|
||||
"brave.exe",
|
||||
"edge.exe",
|
||||
"msedge.exe",
|
||||
"chrome.exe"};
|
||||
}
|
||||
private static String[] FIND_CHROMIUM_SEARCH_PATHS_WINDOWS() {
|
||||
String[] path = chromiumPathsWindows();
|
||||
@ -233,29 +244,47 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
private static String[] NEARBY_CHROMIUM_SEARCH_PATHS() {
|
||||
// obtain the PLUGIN environment variable
|
||||
String plugin = System.getenv("PLUGIN");
|
||||
// search the plugin directory for anything named "ungoogled-chromium",
|
||||
// "chromium", "brave", "edge", "ungoogled-chromium", "chrome" up to a depth
|
||||
// of 2 directories deep. list the directories in the plugin directory
|
||||
if (plugin != null && !plugin.isEmpty()) {
|
||||
File pluginDir = new File(plugin);
|
||||
if (pluginDir.exists()) {
|
||||
File[] pluginDirs = pluginDir.listFiles();
|
||||
// list the files in the plugin directory
|
||||
for (File pluginDir1 : pluginDirs) {
|
||||
File[] pluginFiles = pluginDir1.listFiles();
|
||||
// list the files in the plugin directory
|
||||
if (pluginFiles != null) {
|
||||
for (File pluginFile : pluginFiles) {
|
||||
if (pluginFile.getName().equals("ungoogled-chromium") ||
|
||||
pluginFile.getName().equals("chromium") ||
|
||||
pluginFile.getName().equals("brave") ||
|
||||
pluginFile.getName().equals("edge") ||
|
||||
pluginFile.getName().equals("ungoogled-chromium") ||
|
||||
pluginFile.getName().equals("chrome")) {
|
||||
return new String[] {pluginFile.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isWindows()) {
|
||||
File searchResult = searchFile(pluginDir, "ungoogled-chromium.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "brave.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "chromium.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "edge.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "msedge.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "chrome.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
} else {
|
||||
File searchResult = searchFile(pluginDir, "ungoogled-chromium");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "brave");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "chromium");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "edge");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "msedge");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(pluginDir, "chrome");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -263,23 +292,44 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
// list the directories in the user.dir directory
|
||||
File userDir = new File(System.getProperty("user.dir"));
|
||||
if (userDir.exists()) {
|
||||
File[] userDirs = userDir.listFiles();
|
||||
// list the files in the user.dir directory
|
||||
for (File userDir1 : userDirs) {
|
||||
File[] userFiles = userDir1.listFiles();
|
||||
// list the files in the user.dir directory
|
||||
if (userFiles != null) {
|
||||
for (File userFile : userFiles) {
|
||||
if (userFile.getName().equals("ungoogled-chromium") ||
|
||||
userFile.getName().equals("chromium") ||
|
||||
userFile.getName().equals("brave") ||
|
||||
userFile.getName().equals("edge") ||
|
||||
userFile.getName().equals("ungoogled-chromium") ||
|
||||
userFile.getName().equals("chrome")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isWindows()) {
|
||||
File searchResult = searchFile(userDir, "ungoogled-chromium.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "brave.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "chromium.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "edge.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "msedge.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "chrome.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
} else {
|
||||
File searchResult = searchFile(userDir, "ungoogled-chromium");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "brave");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "chromium");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "edge");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "msedge");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "chrome");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
return new String[] {};
|
||||
@ -769,12 +819,4 @@ public class I2PChromium extends I2PCommonBrowser {
|
||||
i2pChromium.launch(privateBrowsing,
|
||||
visitURL.toArray(new String[visitURL.size()]));
|
||||
}
|
||||
private static void sleep(int millis) {
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException bad) {
|
||||
bad.printStackTrace();
|
||||
throw new RuntimeException(bad);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -437,7 +437,7 @@ public class I2PCommonBrowser {
|
||||
}
|
||||
return false;
|
||||
}
|
||||
private boolean checkifPortIsOccupied(int port, String host) {
|
||||
public boolean checkifPortIsOccupied(int port, String host) {
|
||||
try {
|
||||
Socket socket = new Socket(host, port);
|
||||
socket.close();
|
||||
@ -466,4 +466,27 @@ public class I2PCommonBrowser {
|
||||
}
|
||||
return val.toString();
|
||||
}
|
||||
public static void sleep(int millis) {
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException bad) {
|
||||
bad.printStackTrace();
|
||||
throw new RuntimeException(bad);
|
||||
}
|
||||
}
|
||||
public static File searchFile(File file, String search) {
|
||||
if (file.isDirectory()) {
|
||||
File[] arr = file.listFiles();
|
||||
for (File f : arr) {
|
||||
File found = searchFile(f, search);
|
||||
if (found != null)
|
||||
return found;
|
||||
}
|
||||
} else {
|
||||
if (file.getName().equals(search)) {
|
||||
return file;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -158,6 +158,13 @@ public class I2PFirefox extends I2PCommonBrowser {
|
||||
// know for sure.
|
||||
String programFiles86 = System.getenv("ProgramFiles(x86)");
|
||||
|
||||
if (programFiles == null)
|
||||
programFiles = "C:/Program Files/";
|
||||
if (programFiles86 == null)
|
||||
programFiles86 = "C:/Program Files (x86)/";
|
||||
if (!isWindows())
|
||||
userHome = "C:/Users/user/";
|
||||
|
||||
String[] tbPath = new String[] {
|
||||
new File(userHome, "/OneDrive/Desktop/Tor Browser/Browser/").toString(),
|
||||
new File(userHome, "/Desktop/Tor Browser/Browser/").toString()};
|
||||
@ -230,130 +237,99 @@ public class I2PFirefox extends I2PCommonBrowser {
|
||||
return FIND_ALL_FIREFOX_SEARCH_PATHS();
|
||||
}
|
||||
}
|
||||
|
||||
private static String[] NEARBY_FIREFOX_SEARCH_PATHS() {
|
||||
// obtain the PLUGIN environment variable
|
||||
String plugin = System.getenv("PLUGIN");
|
||||
// search the plugin directory for anything named "firefox", "firefox-bin",
|
||||
// "firefox-esr", "waterfox", "waterfox-bin", "librewolf" up to a depth of 2
|
||||
// directories deep. list the directories in the plugin directory
|
||||
if (plugin != null && !plugin.isEmpty()) {
|
||||
File userDir = new File(plugin);
|
||||
if (userDir.exists()) {
|
||||
File[] userDirs = userDir.listFiles();
|
||||
for (File userDir1 : userDirs) {
|
||||
File[] userFiles = userDir1.listFiles();
|
||||
if (userFiles != null) {
|
||||
for (File userFile : userFiles) {
|
||||
// logger.info("CHECKING NEARBY" + userFile.getAbsolutePath());
|
||||
if (userFile.isDirectory()) {
|
||||
File[] userFiles2 = userFile.listFiles();
|
||||
for (File userFile2 : userFiles2) {
|
||||
if (userFile2.isDirectory())
|
||||
continue;
|
||||
if (!isWindows()) {
|
||||
if (userFile2.getName().equals("firefox") ||
|
||||
userFile2.getName().equals("firefox-bin") ||
|
||||
userFile2.getName().equals("firefox-esr") ||
|
||||
userFile2.getName().equals("waterfox") ||
|
||||
userFile2.getName().equals("waterfox-bin") ||
|
||||
userFile2.getName().equals("librewolf")) {
|
||||
return new String[] {userFile2.getAbsolutePath()};
|
||||
}
|
||||
} else {
|
||||
if (userFile2.getName().equals("firefox.exe") ||
|
||||
userFile2.getName().equals("firefox-bin.exe") ||
|
||||
userFile2.getName().equals("firefox-esr.exe") ||
|
||||
userFile2.getName().equals("waterfox.exe") ||
|
||||
userFile2.getName().equals("waterfox-bin.exe") ||
|
||||
userFile2.getName().equals("librewolf.exe")) {
|
||||
return new String[] {userFile2.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isWindows()) {
|
||||
if (userFile.getName().equals("firefox") ||
|
||||
userFile.getName().equals("firefox-bin") ||
|
||||
userFile.getName().equals("firefox-esr") ||
|
||||
userFile.getName().equals("waterfox") ||
|
||||
userFile.getName().equals("waterfox-bin") ||
|
||||
userFile.getName().equals("librewolf")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
} else {
|
||||
if (userFile.getName().equals("firefox.exe") ||
|
||||
userFile.getName().equals("firefox-bin.exe") ||
|
||||
userFile.getName().equals("firefox-esr.exe") ||
|
||||
userFile.getName().equals("waterfox.exe") ||
|
||||
userFile.getName().equals("waterfox-bin.exe") ||
|
||||
userFile.getName().equals("librewolf.exe")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// now, do the same thing, but with user.dir instead of plugin
|
||||
// list the directories in the user.dir directory
|
||||
userDir = new File(System.getProperty("user.dir"));
|
||||
if (userDir.exists()) {
|
||||
File[] userDirs = userDir.listFiles();
|
||||
// list the files in the user.dir directory
|
||||
for (File userDir1 : userDirs) {
|
||||
File[] userFiles = userDir1.listFiles();
|
||||
if (userFiles != null) {
|
||||
for (File userFile : userFiles) {
|
||||
if (userFile.isDirectory()) {
|
||||
File[] userFiles2 = userFile.listFiles();
|
||||
for (File userFile2 : userFiles2) {
|
||||
if (userFile2.isDirectory())
|
||||
continue;
|
||||
if (isWindows()) {
|
||||
if (userFile2.getName().equals("firefox") ||
|
||||
userFile2.getName().equals("firefox-bin") ||
|
||||
userFile2.getName().equals("firefox-esr") ||
|
||||
userFile2.getName().equals("waterfox") ||
|
||||
userFile2.getName().equals("waterfox-bin") ||
|
||||
userFile2.getName().equals("librewolf")) {
|
||||
return new String[] {userFile2.getAbsolutePath()};
|
||||
}
|
||||
} else {
|
||||
if (userFile.getName().equals("firefox.exe") ||
|
||||
userFile.getName().equals("firefox-bin.exe") ||
|
||||
userFile.getName().equals("firefox-esr.exe") ||
|
||||
userFile.getName().equals("waterfox.exe") ||
|
||||
userFile.getName().equals("waterfox-bin.exe") ||
|
||||
userFile.getName().equals("librewolf.exe")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!isWindows()) {
|
||||
if (userFile.getName().equals("firefox") ||
|
||||
userFile.getName().equals("firefox-bin") ||
|
||||
userFile.getName().equals("firefox-esr") ||
|
||||
userFile.getName().equals("waterfox") ||
|
||||
userFile.getName().equals("waterfox-bin") ||
|
||||
userFile.getName().equals("librewolf")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
} else {
|
||||
if (userFile.getName().equals("firefox.exe") ||
|
||||
userFile.getName().equals("firefox-bin.exe") ||
|
||||
userFile.getName().equals("firefox-esr.exe") ||
|
||||
userFile.getName().equals("waterfox.exe") ||
|
||||
userFile.getName().equals("waterfox-bin.exe") ||
|
||||
userFile.getName().equals("librewolf.exe")) {
|
||||
return new String[] {userFile.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isWindows()) {
|
||||
File searchResult = searchFile(userDir, "firefox-esr.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox-bin.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox-bin.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "librewolf.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
} else {
|
||||
File searchResult = searchFile(userDir, "firefox-esr");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox-bin");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox-bin");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "librewolf");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
}
|
||||
// now, do the same thing, but with user.dir instead of plugin
|
||||
// list the directories in the user.dir directory
|
||||
File userDir = new File(System.getProperty("user.dir"));
|
||||
if (userDir.exists()) {
|
||||
if (isWindows()) {
|
||||
File searchResult = searchFile(userDir, "firefox-esr.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox-bin.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox-bin.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "librewolf.exe");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
} else {
|
||||
File searchResult = searchFile(userDir, "firefox-esr");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "firefox-bin");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "waterfox-bin");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
searchResult = searchFile(userDir, "librewolf");
|
||||
if (searchResult != null)
|
||||
return new String[] {searchResult.getAbsolutePath()};
|
||||
}
|
||||
}
|
||||
|
||||
return new String[] {};
|
||||
}
|
||||
private static String[] FIREFOX_FINDER() {
|
||||
@ -823,12 +799,12 @@ public class I2PFirefox extends I2PCommonBrowser {
|
||||
visitURL.toArray(new String[visitURL.size()]));
|
||||
}
|
||||
|
||||
private static void sleep(int millis) {
|
||||
/*private static void sleep(int millis) {
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException bad) {
|
||||
bad.printStackTrace();
|
||||
throw new RuntimeException(bad);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
@ -213,15 +213,15 @@ public class I2PGenericUnsafeBrowser extends I2PCommonBrowser {
|
||||
* @since 2.0.0
|
||||
*/
|
||||
private static String getDefaultOutOfRegistry(String hkeyquery) {
|
||||
String defaultValue = registryQuery(hkeyquery, "Default");
|
||||
String defaultValue = registryQuery(hkeyquery, "(Default)");
|
||||
if (defaultValue != null) {
|
||||
if (!defaultValue.equals(""))
|
||||
return defaultValue.split(" ")[0];
|
||||
return defaultValue;
|
||||
} else {
|
||||
defaultValue = followUserConfiguredBrowserToCommand(hkeyquery);
|
||||
if (defaultValue != null) {
|
||||
if (!defaultValue.equals(""))
|
||||
return defaultValue.split(" ")[0];
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
@ -276,7 +276,17 @@ public class I2PGenericUnsafeBrowser extends I2PCommonBrowser {
|
||||
|
||||
//
|
||||
public ProcessBuilder baseProcessBuilder(String[] args) {
|
||||
String browser = findUnsafeBrowserAnywhere();
|
||||
|
||||
String browser = findUnsafeBrowserAnywhere().split(" -")[0].trim();
|
||||
if (browser == null)
|
||||
System.exit(1);
|
||||
if (browser.contains("edge.exe") || browser.contains("msedge.exe")) {
|
||||
ArrayList<String> argsList = new ArrayList<String>(
|
||||
Arrays.asList("--user-data-dir=" +
|
||||
profileDirectory("", "generic", "unsafe", false)));
|
||||
argsList.addAll(Arrays.asList(args));
|
||||
args = argsList.toArray(args);
|
||||
}
|
||||
if (!browser.isEmpty()) {
|
||||
int arglength = 0;
|
||||
if (args != null)
|
||||
@ -355,63 +365,6 @@ public class I2PGenericUnsafeBrowser extends I2PCommonBrowser {
|
||||
return runtimeDirectory("");
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for an HTTP proxy on port 4444 to be ready.
|
||||
* Returns false on timeout of 200 seconds.
|
||||
*
|
||||
* @return true if the proxy is ready, false if it is not.
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public boolean waitForProxy() { return waitForProxy(DEFAULT_TIMEOUT); }
|
||||
|
||||
/**
|
||||
* Waits for an HTTP proxy on port 4444 to be ready.
|
||||
* Returns false on timeout of the specified number of seconds.
|
||||
*
|
||||
* @param timeout the number of seconds to wait for the proxy to be ready.
|
||||
* @return true if the proxy is ready, false if it is not.
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public boolean waitForProxy(int timeout) {
|
||||
return waitForProxy(timeout, 4444);
|
||||
}
|
||||
/**
|
||||
* Waits for an HTTP proxy on the specified port to be ready.
|
||||
* Returns false on timeout of the specified number of seconds.
|
||||
*
|
||||
* @param timeout the number of seconds to wait for the proxy to be ready.
|
||||
* @param port the port to wait for the proxy to be ready on.
|
||||
* @return true if the proxy is ready, false if it is not.
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public boolean waitForProxy(int timeout, int port) {
|
||||
return waitForProxy(timeout, port, "localhost");
|
||||
}
|
||||
|
||||
/**
|
||||
* Waits for an HTTP proxy on the specified port to be ready.
|
||||
* Returns false on timeout of the specified number of seconds.
|
||||
*
|
||||
* @param timeout the number of seconds to wait for the proxy to be ready.
|
||||
* @param port the port to wait for the proxy to be ready on.
|
||||
* @param host the host to wait for the proxy to be ready on.
|
||||
* @return true if the proxy is ready, false if it is not.
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public boolean waitForProxy(int timeout, int port, String host) {
|
||||
for (int i = 0; i < timeout; i++) {
|
||||
if (checkifPortIsOccupied(port, host)) {
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
Thread.sleep(1000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public Process launchAndDetatch(boolean privateWindow, String[] url) {
|
||||
validateUserDir();
|
||||
if (waitForProxy()) {
|
||||
@ -452,14 +405,6 @@ public class I2PGenericUnsafeBrowser extends I2PCommonBrowser {
|
||||
}
|
||||
}
|
||||
|
||||
private static void sleep(int millis) {
|
||||
try {
|
||||
Thread.sleep(millis);
|
||||
} catch (InterruptedException bad) {
|
||||
bad.printStackTrace();
|
||||
throw new RuntimeException(bad);
|
||||
}
|
||||
}
|
||||
private static String ValidURL(String inUrl) {
|
||||
String[] schemes = {"http", "https"};
|
||||
for (String scheme : schemes) {
|
||||
@ -470,15 +415,6 @@ public class I2PGenericUnsafeBrowser extends I2PCommonBrowser {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
private boolean checkifPortIsOccupied(int port, String host) {
|
||||
try {
|
||||
Socket socket = new Socket(host, port);
|
||||
socket.close();
|
||||
return true;
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
public static void main(String[] args) {
|
||||
|
@ -1,5 +1,74 @@
|
||||
package net.i2p.i2pfirefox;
|
||||
|
||||
public class I2PPureJavaBrowser {
|
||||
|
||||
import java.io.File;
|
||||
|
||||
//import org.lobobrowser.main;
|
||||
|
||||
public class I2PPureJavaBrowser extends I2PCommonBrowser {
|
||||
private final int DEFAULT_TIMEOUT = 200;
|
||||
public static String BROWSER = "";
|
||||
|
||||
//
|
||||
public ProcessBuilder baseProcessBuilder(String[] args) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* delete the runtime directory
|
||||
*
|
||||
* @return true if successful, false if not
|
||||
*/
|
||||
public static boolean deleteRuntimeDirectory() {
|
||||
File rtd = runtimeDirectory(true);
|
||||
if (rtd.exists()) {
|
||||
rtd.delete();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the runtime directory, creating it if create=true
|
||||
*
|
||||
* @param create if true, create the runtime directory if it does not exist
|
||||
* @return the runtime directory, or null if it could not be created
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public static File runtimeDirectory(boolean create) {
|
||||
String rtd = runtimeDirectory();
|
||||
return runtimeDirectory(create, rtd);
|
||||
}
|
||||
|
||||
/**
|
||||
* get the correct runtime directory
|
||||
*
|
||||
* @return the runtime directory, or null if it could not be created or
|
||||
* found
|
||||
* @since 0.0.18
|
||||
*/
|
||||
public static String runtimeDirectory() {
|
||||
// get the I2P_BROWSER_DIR environment variable
|
||||
String rtd = System.getenv("I2P_BROWSER_DIR");
|
||||
// if it is not null and not empty
|
||||
if (rtd != null && !rtd.isEmpty()) {
|
||||
// check if the file exists
|
||||
File rtdFile = new File(rtd);
|
||||
if (rtdFile.exists()) {
|
||||
// if it does, return it
|
||||
return rtd;
|
||||
}
|
||||
}
|
||||
return runtimeDirectory("");
|
||||
}
|
||||
|
||||
public Process launchAndDetatch(boolean privateWindow, String[] url) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void launch(boolean privateWindow, String[] url) {
|
||||
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
}
|
||||
}
|
||||
|
35
test-chromium.sh
Executable file
35
test-chromium.sh
Executable file
@ -0,0 +1,35 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
ant distclean
|
||||
ant jar
|
||||
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile tor-browser_en-US
|
||||
|
||||
echo "Testing Chromium with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium "http://127.0.0.1:7657" 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium "http://idk.i2p" 2> chrome.2.err 1> chrome.2.log
|
||||
echo "Testing Chromium with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Chromium with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -private "http://127.0.0.1:7657" 2> chrome.4.err 1> chrome.4.log
|
||||
|
||||
echo "Chromium tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile
|
||||
|
||||
echo "Testing Chromium with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -usability 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -usability "http://127.0.0.1:7657" 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -usability "http://idk.i2p" 2> chrome.2.err 1> chrome.2.log
|
||||
echo "Testing Chromium with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -usability "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Chromium with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -chromium -usability -private "http://127.0.0.1:7657" 2> chrome.4.err 1> chrome.4.log
|
||||
|
||||
echo "Chromium Usability-Mode tests completed"
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile
|
36
test-firefox.sh
Executable file
36
test-firefox.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
ant distclean
|
||||
ant jar
|
||||
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile tor-browser_en-US
|
||||
|
||||
echo "Testing Firefox with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox 2> fox.0.err 1> fox.0.log
|
||||
echo "Testing Firefox with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://127.0.0.1:7657" 2> fox.1.err 1> fox.1.log
|
||||
echo "Testing Firefox with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://idk.i2p" 2> fox.2.err 1> fox.2.log
|
||||
echo "Testing Firefox with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Firefox with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -private "http://127.0.0.1:7657" 2> fox.4.err 1> fox.4.log
|
||||
|
||||
echo "Firefox tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.firefox.usability.profile i2p.firefox.profile
|
||||
|
||||
echo "Testing Firefox with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -usability 2> fox.0.err 1> fox.0.log
|
||||
echo "Testing Firefox with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -usability "http://127.0.0.1:7657" 2> fox.1.err 1> fox.1.log
|
||||
echo "Testing Firefox with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -usability "http://idk.i2p" 2> fox.2.err 1> fox.2.log
|
||||
echo "Testing Firefox with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -usability "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Firefox with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -usability -private "http://127.0.0.1:7657" 2> fox.4.err 1> fox.4.log
|
||||
|
||||
echo "Firefox Usability-Mode tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile
|
19
test-torbrowser.sh
Executable file
19
test-torbrowser.sh
Executable file
@ -0,0 +1,19 @@
|
||||
#! /usr/bin/env sh
|
||||
|
||||
ant distclean
|
||||
ant jar
|
||||
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile
|
||||
|
||||
./etc/scripts/torbrowser.sh
|
||||
|
||||
echo "Testing Firefox with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox 2> fox.0.err 1> fox.0.log
|
||||
echo "Testing Firefox with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://127.0.0.1:7657" 2> fox.1.err 1> fox.1.log
|
||||
echo "Testing Firefox with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://idk.i2p" 2> fox.2.err 1> fox.2.log
|
||||
echo "Testing Firefox with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Firefox with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -firefox -private "http://127.0.0.1:7657" 2> fox.4.err 1> fox.4.log
|
86
test.sh
86
test.sh
@ -3,94 +3,32 @@
|
||||
ant distclean
|
||||
ant jar
|
||||
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile tor-browser_en-US
|
||||
|
||||
echo "Testing auto-selector with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser 2> auto.0.err 1> auto.0.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray 2> auto.0.err 1> auto.0.log
|
||||
echo "Testing auto-selector with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser "http://127.0.0.1:7657" 2> auto.1.err 1> auto.1.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray "http://127.0.0.1:7657" 2> auto.1.err 1> auto.1.log
|
||||
echo "Testing auto-selector with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser "http://idk.i2p" 2> auto.2.err 1> auto.2.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray "http://idk.i2p" 2> auto.2.err 1> auto.2.log
|
||||
echo "Testing auto-selector with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser "http://127.0.0.1:7657" "http://idk.i2p" 2> auto.3.err 1> auto.3.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray "http://127.0.0.1:7657" "http://idk.i2p" 2> auto.3.err 1> auto.3.log
|
||||
echo "Testing auto-selector with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -private "http://127.0.0.1:7657" 2> auto.4.err 1> auto.4.log
|
||||
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -private "http://127.0.0.1:7657" 2> auto.4.err 1> auto.4.log
|
||||
echo "Auto-Selector tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile
|
||||
|
||||
echo "Testing Chromium with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium "http://127.0.0.1:7657" 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium "http://idk.i2p" 2> chrome.2.err 1> chrome.2.log
|
||||
echo "Testing Chromium with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Chromium with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -private "http://127.0.0.1:7657" 2> chrome.4.err 1> chrome.4.log
|
||||
|
||||
echo "Chromium tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile
|
||||
|
||||
echo "Testing Chromium with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -usability 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -usability "http://127.0.0.1:7657" 2> chrome.1.err 1> chrome.1.log
|
||||
echo "Testing Chromium with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -usability "http://idk.i2p" 2> chrome.2.err 1> chrome.2.log
|
||||
echo "Testing Chromium with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -usability "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Chromium with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -chromium -usability -private "http://127.0.0.1:7657" 2> chrome.4.err 1> chrome.4.log
|
||||
|
||||
echo "Chromium Usability tests completed"
|
||||
sleep 2s
|
||||
|
||||
rm -rf i2p.firefox.base.profile i2p.firefox.profile
|
||||
|
||||
echo "Testing Firefox with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox 2> fox.0.err 1> fox.0.log
|
||||
echo "Testing Firefox with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox "http://127.0.0.1:7657" 2> fox.1.err 1> fox.1.log
|
||||
echo "Testing Firefox with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox "http://idk.i2p" 2> fox.2.err 1> fox.2.log
|
||||
echo "Testing Firefox with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Firefox with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -private "http://127.0.0.1:7657" 2> fox.4.err 1> fox.4.log
|
||||
|
||||
echo "Firefox tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.firefox.usability.profile i2p.firefox.profile
|
||||
|
||||
echo "Testing Firefox with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -usability 2> fox.0.err 1> fox.0.log
|
||||
echo "Testing Firefox with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -usability "http://127.0.0.1:7657" 2> fox.1.err 1> fox.1.log
|
||||
echo "Testing Firefox with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -usability "http://idk.i2p" 2> fox.2.err 1> fox.2.log
|
||||
echo "Testing Firefox with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -usability "http://127.0.0.1:7657" "http://idk.i2p" 2> fox.3.err 1> fox.3.log
|
||||
echo "Testing Firefox with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -firefox -usability -private "http://127.0.0.1:7657" 2> fox.4.err 1> fox.4.log
|
||||
|
||||
echo "Firefox Usability-Mode tests completed"
|
||||
sleep 2s
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile
|
||||
rm -rf i2p.chromium.base.profile i2p.chromium.profile i2p.firefox.base.profile i2p.firefox.profile i2p.firefox.usability.profile
|
||||
|
||||
echo "Testing UNSAFE auto-selector with no private and no URL parameters."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic 2> gen.0.err 1> gen.0.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -generic 2> gen.0.err 1> gen.0.log
|
||||
echo "Testing UNSAFE auto-selector with local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic "http://127.0.0.1:7657" 2> gen.1.err 1> gen.1.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -generic "http://127.0.0.1:7657" 2> gen.1.err 1> gen.1.log
|
||||
echo "Testing UNSAFE auto-selector with remote URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic "http://idk.i2p" 2> gen.2.err 1> gen.2.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -generic "http://idk.i2p" 2> gen.2.err 1> gen.2.log
|
||||
echo "Testing UNSAFE auto-selector with remote AND local URL parameter."
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic "http://127.0.0.1:7657" "http://idk.i2p" 2> gen.3.err 1> gen.3.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -generic "http://127.0.0.1:7657" "http://idk.i2p" 2> gen.3.err 1> gen.3.log
|
||||
echo "Testing UNSAFE auto-selector with private browsing parameter"
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -generic -private "http://127.0.0.1:7657" 2> gen.4.err 1> gen.4.log
|
||||
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PBrowser -nosystray -generic -private "http://127.0.0.1:7657" 2> gen.4.err 1> gen.4.log
|
||||
|
||||
echo "UNSAFE browser tests complete"
|
||||
|
||||
|
16
tor-browser-linux64-11.5.4_en-US.tar.xz.asc
Normal file
16
tor-browser-linux64-11.5.4_en-US.tar.xz.asc
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQIcBAABCgAGBQJjRyYHAAoJEOU9mJqeLUe/HbIQALBTyEB42g2+Dlufv8fvF2E2
|
||||
549sCPbkFHzKaH8ECeKfiZZDuTfLUmNUbnYD1/lxJtaUDj+u56sSF5V6us3HBgYN
|
||||
56Mh+miLv4Am9HEZXwCRtE/kRjbE3yuKjSqYpZkviPsK4PT1fBBg+aMtc8fUZk4y
|
||||
3BQZsvynie1OH2Qlw4XHMZUbHP7VlEAZCUWZTk8ai+mmqegmjtDc2NMNtZ03BGi7
|
||||
Rd5U03+9mmVQNiWcJZqZkzQg8x/tPQD0XmMH04mZ71dCukfsun+DykjVGUAktloj
|
||||
9XJ1aq+c3s4r/GXXXJ4sEnDe1QNBPOgEH5SLSiSAwwl531i5Oh2sO1U2ILC/PsnM
|
||||
MlZMbypMw2eVGIQgfXrWurWlSvKYw193Y7N4bjvvTQYkxmWWHegKtYj1Jmy5y4+q
|
||||
KypLjwD7QxDViRiQp5v8vzFAQ/0pacwT6D+r7ugAIrk9jFnl5dnHBDuBNHTdjPOI
|
||||
oyTnSFJkroMjpdzbDnta74FzyLBWMPPMD3L/LepJLW+iYcJDqDYCffTqCPDjJSco
|
||||
UgD71EiDSyM77wMKqEFzHzbNdW1Tmd88LoDc/erK9akbX4Xkhve0N/HFr+99c5rH
|
||||
5EzI2j/N3Kzwom/FYzT8saS5ljRdGD+APi7VKE9budDzlu0ZqIhK/zMIJ//JHi/O
|
||||
rmxTcTn5TaTfAMGhQUi/
|
||||
=yI0S
|
||||
-----END PGP SIGNATURE-----
|
BIN
tor.keyring
Normal file
BIN
tor.keyring
Normal file
Binary file not shown.
@ -11,6 +11,7 @@ jpackage \
|
||||
--win-shortcut-prompt \
|
||||
--win-per-user-install \
|
||||
--license-file LICENSE.md \
|
||||
--icon src/icon.png \
|
||||
--name i2pbrowser \
|
||||
--app-version "$GITHUB_TAG" \
|
||||
--input src/build \
|
||||
|
@ -11,6 +11,7 @@ jpackage \
|
||||
--input src/build \
|
||||
--main-jar i2pfirefox.jar \
|
||||
--resource-dir tmp \
|
||||
--icon src/icon.png \
|
||||
--main-class net.i2p.i2pfirefox.I2PBrowser
|
||||
rm -rf tmp
|
||||
cp -v LICENSE.md i2pbrowser-portable/LICENSE.md
|
||||
|
@ -11,6 +11,7 @@ jpackage \
|
||||
--win-shortcut-prompt \
|
||||
--win-per-user-install \
|
||||
--license-file LICENSE.md \
|
||||
--icon src/icon.png \
|
||||
--name i2pbrowser \
|
||||
--app-version "$GITHUB_TAG" \
|
||||
--input src/build \
|
||||
|
Reference in New Issue
Block a user