2022-08-07 03:11:33 +00:00
|
|
|
# i2p.plugins.firefox
|
|
|
|
|
|
|
|
A port of the batch scripts from i2p.firefox to Java.
|
|
|
|
|
|
|
|
## Getting started
|
|
|
|
|
2022-08-20 18:58:50 -04:00
|
|
|
### Using a Binary
|
|
|
|
|
|
|
|
```sh
|
|
|
|
|
|
|
|
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
|
2022-08-20 21:04:45 -04:00
|
|
|
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/0.0.10/i2pfirefox.zip
|
2022-08-20 18:58:50 -04:00
|
|
|
unzip i2pfirefox.zip
|
2022-08-20 20:23:27 -04:00
|
|
|
./i2pfirefox.cmd
|
2022-08-20 18:58:50 -04:00
|
|
|
|
|
|
|
#or if you want to use a Chromium
|
|
|
|
|
2022-08-20 20:23:27 -04:00
|
|
|
./i2pchromium.cmd
|
2022-08-20 18:58:50 -04:00
|
|
|
```
|
|
|
|
|
2022-08-20 22:47:51 -04:00
|
|
|
### Build Dependencies
|
|
|
|
|
|
|
|
You will need `ant`, `java` and for building the Chromium profile, a Go application
|
|
|
|
called `crx3` which is used to interact with the Chrome app store. 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 golang-go
|
|
|
|
go install github.com/mediabuyerbot/go-crx3/crx3@latest
|
|
|
|
```
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
### Building
|
2022-08-07 03:11:33 +00:00
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
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:
|
2022-08-07 03:11:33 +00:00
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
```sh
|
2022-08-07 22:22:49 -04:00
|
|
|
|
2022-08-19 18:30:14 -04:00
|
|
|
ant jar
|
2022-08-07 03:11:33 +00:00
|
|
|
```
|
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
To build just the jar. You'll know it worked if you can:
|
2022-08-07 03:11:33 +00:00
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
```sh
|
2022-08-07 22:22:49 -04:00
|
|
|
|
2022-08-07 13:59:32 -04:00
|
|
|
java -cp ./src/build/i2pfirefox.jar net.i2p.i2pfirefox.I2PFirefox
|
|
|
|
```
|
2022-08-07 03:11:33 +00:00
|
|
|
|
2022-08-08 15:29:47 -04:00
|
|
|
and a new Firefox instance comes up with a fresh profile, ready-to-use for I2P browsing.
|
2022-08-07 22:21:13 -04:00
|
|
|
|
|
|
|
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
|
2022-08-07 22:22:49 -04:00
|
|
|
|
2022-08-20 20:32:55 -04:00
|
|
|
// Firefox Example
|
2022-08-07 22:21:13 -04:00
|
|
|
if (i2pIsRunning()) {
|
|
|
|
logger.warning("I2P is already running");
|
|
|
|
System.out.println("I2PFirefox");
|
|
|
|
I2PFirefox i2pFirefox = new I2PFirefox();
|
|
|
|
i2pFirefox.launch();
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-08-20 20:32:55 -04:00
|
|
|
```java
|
|
|
|
|
|
|
|
// Chromium Example
|
|
|
|
if (i2pIsRunning()) {
|
|
|
|
logger.warning("I2P is already running");
|
|
|
|
System.out.println("I2PChromium");
|
|
|
|
I2PChromium i2pChromium = new I2PChromium();
|
|
|
|
i2pChromium.launch();
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-08-21 23:49:08 -04:00
|
|
|
```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);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-08-07 22:24:19 -04:00
|
|
|
to add a browser management tool to it.
|