Files
i2p.plugins.firefox/README.md

104 lines
2.4 KiB
Markdown
Raw Normal View History

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
```
### 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.