Compare commits

...

38 Commits
1.0.0 ... 1.0.1

Author SHA1 Message Date
idk
51039cf32b update I2PFirefox.html 2022-10-01 21:08:59 -04:00
idk
7867e774a4 update CHANGES.html 2022-10-01 21:08:37 -04:00
idk
3766b4458b update index.html 2022-10-01 21:08:34 -04:00
idk
6ddbfdbc0b improve support for using a firefox unpacked in a plugin directory 2022-10-01 20:58:14 -04:00
idk
9ae6287f88 update torbrowser.sh 2022-10-01 20:49:55 -04:00
idk
a4b5ede5cf update changelog 2022-10-01 20:35:20 -04:00
idk
9b79fb806b add support for running a Tor Browser unpacked to the portable dir directly 2022-10-01 20:34:19 -04:00
idk
63a684ed14 add a torbrowser download shell script. 2022-10-01 20:07:33 -04:00
idk
e577eb9119 update index.html 2022-10-01 19:49:52 -04:00
idk
fcd50d49bb fix name of script 2022-10-01 19:48:58 -04:00
idk
0e64f57f35 update VERSION.html 2022-10-01 19:24:36 -04:00
idk
53628a907f update I2PFirefox.html 2022-10-01 19:24:08 -04:00
idk
93b5db908a update I2PCommonBrowser.html 2022-10-01 19:24:06 -04:00
idk
625fc24c6b update I2PChromium.html 2022-10-01 19:23:56 -04:00
idk
48ad48dcba update CHANGES.html 2022-10-01 19:23:48 -04:00
idk
c6f01c48df update index.html 2022-10-01 19:23:46 -04:00
idk
c92941df14 update versionMd 2022-10-01 19:23:04 -04:00
idk
2cd46a1f6d bump version 2022-10-01 18:05:51 -04:00
idk
ded9b0a7f9 Quote all shell script args 2022-10-01 18:01:35 -04:00
idk
812c63e5e8 re-add Tor Browser support to OSX 2022-10-01 17:48:25 -04:00
idk
31449cbabb update changelog 2022-10-01 17:30:32 -04:00
idk
7d4e53b82c work around osx anti-automation measures 2022-10-01 17:26:19 -04:00
idk
fbd76aad9a update index.html 2022-10-01 13:44:53 -04:00
idk
128d0aa9f7 generate zips deterministically 2022-10-01 13:44:51 -04:00
idk
b1f7c68860 update VERSION.html 2022-10-01 13:44:20 -04:00
idk
768f9e3b71 update RELEASES.html 2022-10-01 13:44:09 -04:00
idk
2aab7b230d update index.html 2022-10-01 13:43:25 -04:00
idk
c037c97e94 generate zips deterministically 2022-10-01 13:43:23 -04:00
idk
5c05c3ee0f add a join function so args don't get passed in malformed ways 2022-10-01 13:23:27 -04:00
idk
20ec8dda68 note that Edgium performance and privacy are terrible 2022-09-30 18:28:55 -04:00
idk
0ec6a4a352 update index.html 2022-09-30 18:28:08 -04:00
idk
28b07aeba1 note that Edgium performance and privacy are terrible 2022-09-30 18:28:05 -04:00
idk
ddec443df4 don't do plugin in jar 2022-09-30 18:17:09 -04:00
idk
a79b2a6a97 fix compat when launching Chromium on OSX 2022-09-30 00:52:20 -04:00
idk
4c70d78401 fix osx compatibility for Firefox mode 2022-09-30 00:46:45 -04:00
idk
72920869d7 osx patches 2022-09-29 23:16:29 -04:00
idk
d6ebf85efc move profile upload to own script 2022-09-26 00:26:59 -04:00
idk
9eacfaaaab add profile upload script separate from release script 2022-09-25 17:03:14 -04:00
32 changed files with 571 additions and 257 deletions

View File

@ -138,6 +138,23 @@
<a id="returnhome" href="/">
/
</a>
<h2>
Sat, October 1
</h2>
<ul>
<li>
Work around anti-automation measures on OSX by writing final command out to shell script and running that
</li>
<li>
Deterministically generate .zip files
</li>
<li>
Add Tor Browser support to OSX
</li>
<li>
Improve Tor Browser support on Linux
</li>
</ul>
<h2>
Sun, September 25
</h2>

View File

@ -1,3 +1,11 @@
Sat, October 1
--------------
- Work around anti-automation measures on OSX by writing final command out to shell script and running that
- Deterministically generate .zip files
- Add Tor Browser support to OSX
- Improve Tor Browser support on Linux
Sun, September 25
-----------------

View File

@ -184,9 +184,24 @@
<li>
java.io.File
</li>
<li>
java.io.FileWriter
</li>
<li>
java.io.IOException
</li>
<li>
java.io.PrintWriter
</li>
<li>
java.util.ArrayList
</li>
<li>
java.util.Arrays
</li>
<li>
java.util.stream.Stream
</li>
</ul>
<br />
</details>
@ -228,7 +243,7 @@
</h2>
<h3>
FIND_CHROMIUM_SEARCH_PATHS_UNIX
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L51">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L56">
[src]
</a>
</h3>
@ -254,7 +269,7 @@
</p>
<h3>
FIND_CHROMIUM_SEARCH_PATHS_OSX
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L67">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L72">
[src]
</a>
</h3>
@ -280,7 +295,7 @@
</p>
<h3>
FIND_CHROMIUM_SEARCH_PATHS_WINDOWS
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L85">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L84">
[src]
</a>
</h3>
@ -306,7 +321,7 @@
</p>
<h3>
FIND_ALL_CHROMIUM_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L122">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L121">
[src]
</a>
</h3>
@ -332,7 +347,7 @@
</p>
<h3>
FIND_CHROMIUM_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L142">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L141">
[src]
</a>
</h3>
@ -358,7 +373,7 @@
</p>
<h3>
NEARBY_CHROMIUM_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L156">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L155">
[src]
</a>
</h3>
@ -384,7 +399,7 @@
</p>
<h3>
CHROMIUM_FINDER
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L210">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L209">
[src]
</a>
</h3>
@ -410,7 +425,7 @@
</p>
<h3>
getOperatingSystem
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L222">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L221">
[src]
</a>
</h3>
@ -436,7 +451,7 @@
</p>
<h3>
onlyValidChromiums
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L244">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L243">
[src]
</a>
</h3>
@ -459,7 +474,7 @@
</p>
<h3>
topChromium
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L264">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L263">
[src]
</a>
</h3>
@ -482,7 +497,7 @@
</p>
<h3>
topChromium
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L293">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L292">
[src]
</a>
</h3>
@ -509,7 +524,7 @@
</p>
<h3>
defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L311">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L310">
[src]
</a>
</h3>
@ -532,7 +547,7 @@
</p>
<h3>
defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L324">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L323">
[src]
</a>
</h3>
@ -559,7 +574,7 @@
</p>
<h3>
privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L336">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L335">
[src]
</a>
</h3>
@ -582,7 +597,7 @@
</p>
<h3>
privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L349">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L348">
[src]
</a>
</h3>
@ -609,7 +624,7 @@
</p>
<h3>
appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L371">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L370">
[src]
</a>
</h3>
@ -632,7 +647,7 @@
</p>
<h3>
appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L384">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L383">
[src]
</a>
</h3>
@ -659,7 +674,7 @@
</p>
<h3>
processBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L431">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L430">
[src]
</a>
</h3>
@ -686,7 +701,7 @@
</p>
<h3>
launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L522">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L549">
[src]
</a>
</h3>
@ -715,7 +730,7 @@
</p>
<h3>
launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L529">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L556">
[src]
</a>
</h3>
@ -744,7 +759,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L586">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L613">
[src]
</a>
</h3>
@ -773,7 +788,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L592">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L619">
[src]
</a>
</h3>
@ -802,7 +817,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L617">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L644">
[src]
</a>
</h3>
@ -829,7 +844,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L626">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L653">
[src]
</a>
</h3>
@ -852,7 +867,7 @@
</p>
<h3>
ValidURL
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L628">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L655">
[src]
</a>
</h3>
@ -882,7 +897,7 @@
</p>
<h3>
main
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L638">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L665">
[src]
</a>
</h3>
@ -912,7 +927,7 @@
</p>
<h3>
sleep
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L677">
<a href="src/java/net/i2p/i2pfirefox/I2PChromium.java#L704">
[src]
</a>
</h3>

View File

@ -18,7 +18,12 @@ package: net.i2p.i2pfirefox
</summary>
<ul>
<li>java.io.File</li>
<li>java.io.FileWriter</li>
<li>java.io.IOException</li>
<li>java.io.PrintWriter</li>
<li>java.util.ArrayList</li>
<li>java.util.Arrays</li>
<li>java.util.stream.Stream</li>
</ul>
</details>
@ -39,7 +44,7 @@ package: net.i2p.i2pfirefox
## Methods
### FIND_CHROMIUM_SEARCH_PATHS_UNIX [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L51)
### FIND_CHROMIUM_SEARCH_PATHS_UNIX [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L56)
+ Description:
+ Access: private
@ -49,7 +54,7 @@ package: net.i2p.i2pfirefox
This method has no parameters.
### FIND_CHROMIUM_SEARCH_PATHS_OSX [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L67)
### FIND_CHROMIUM_SEARCH_PATHS_OSX [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L72)
+ Description:
+ Access: private
@ -59,7 +64,7 @@ This method has no parameters.
This method has no parameters.
### FIND_CHROMIUM_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L85)
### FIND_CHROMIUM_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L84)
+ Description:
+ Access: private
@ -69,7 +74,7 @@ This method has no parameters.
This method has no parameters.
### FIND_ALL_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L122)
### FIND_ALL_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L121)
+ Description:
+ Access: private
@ -79,7 +84,7 @@ This method has no parameters.
This method has no parameters.
### FIND_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L142)
### FIND_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L141)
+ Description:
+ Access: private
@ -89,7 +94,7 @@ This method has no parameters.
This method has no parameters.
### NEARBY_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L156)
### NEARBY_CHROMIUM_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L155)
+ Description:
+ Access: private
@ -99,7 +104,7 @@ This method has no parameters.
This method has no parameters.
### CHROMIUM_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L210)
### CHROMIUM_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L209)
+ Description:
+ Access: private
@ -109,7 +114,7 @@ This method has no parameters.
This method has no parameters.
### getOperatingSystem [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L222)
### getOperatingSystem [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L221)
+ Description:
+ Access: private
@ -119,7 +124,7 @@ This method has no parameters.
This method has no parameters.
### onlyValidChromiums [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L244)
### onlyValidChromiums [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L243)
+ 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
@ -128,7 +133,7 @@ This method has no parameters.
This method has no parameters.
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L264)
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L263)
+ Description: Return the best available Chromium from the list of Chromiums we have.
+ Access: public
@ -137,7 +142,7 @@ This method has no parameters.
This method has no parameters.
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L293)
### topChromium [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L292)
+ 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
@ -148,7 +153,7 @@ This method has no parameters.
| overrideChromium | String | |
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L311)
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L310)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public
@ -157,7 +162,7 @@ This method has no parameters.
This method has no parameters.
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L324)
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L323)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile. @args the arguments to pass to the Chromium binary
+ Access: public
@ -168,7 +173,7 @@ This method has no parameters.
| args | String[] | |
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L336)
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L335)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public
@ -177,7 +182,7 @@ This method has no parameters.
This method has no parameters.
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L349)
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L348)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public
@ -188,7 +193,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#L371)
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L370)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public
@ -197,7 +202,7 @@ This method has no parameters.
This method has no parameters.
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L384)
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L383)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public
@ -208,7 +213,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#L431)
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L430)
+ Description: Build a ProcessBuilder for the top Chromium binary and the default profile with a specific set of extended arguments.
+ Access: public
@ -219,7 +224,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#L522)
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L549)
+ Description:
+ Access: public
@ -231,7 +236,7 @@ This method has no parameters.
| url | String[] | |
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L529)
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L556)
+ Description:
+ Access: public
@ -243,7 +248,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L586)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L613)
+ 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
@ -255,7 +260,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L592)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L619)
+ Description:
+ Access: public
@ -267,7 +272,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L617)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L644)
+ 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
@ -278,7 +283,7 @@ This method has no parameters.
| privateWindow | boolean | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L626)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L653)
+ 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
@ -287,7 +292,7 @@ This method has no parameters.
This method has no parameters.
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L628)
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L655)
+ Description:
+ Access: private
@ -299,7 +304,7 @@ This method has no parameters.
| inUrl | String | |
### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L638)
### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L665)
+ Description:
+ Access: public
@ -311,7 +316,7 @@ This method has no parameters.
| args | String[] | |
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L677)
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L704)
+ Description:
+ Access: private

View File

@ -283,7 +283,7 @@
</h2>
<h3>
runtimeDirectory
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L131">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L153">
[src]
</a>
</h3>
@ -315,7 +315,7 @@
</p>
<h3>
runtimeDirectory
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L148">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L170">
[src]
</a>
</h3>
@ -345,7 +345,7 @@
</p>
<h3>
profileDirectory
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L196">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L218">
[src]
</a>
</h3>
@ -379,7 +379,7 @@
</p>
<h3>
profileDir
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L208">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L230">
[src]
</a>
</h3>
@ -413,7 +413,7 @@
</p>
<h3>
unpackProfile
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L218">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L240">
[src]
</a>
</h3>
@ -444,7 +444,7 @@
</p>
<h3>
copyDirectory
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L264">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L286">
[src]
</a>
</h3>
@ -480,7 +480,7 @@
</p>
<h3>
copyDirectoryCompatibityMode
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L280">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L302">
[src]
</a>
</h3>
@ -516,7 +516,7 @@
</p>
<h3>
copyFile
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L289">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L311">
[src]
</a>
</h3>
@ -548,7 +548,7 @@
</p>
<h3>
validateProfileFirstRun
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L300">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L322">
[src]
</a>
</h3>
@ -578,7 +578,7 @@
</p>
<h3>
waitForProxy
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L326">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L348">
[src]
</a>
</h3>
@ -601,7 +601,7 @@
</p>
<h3>
waitForProxy
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L336">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L358">
[src]
</a>
</h3>
@ -628,7 +628,7 @@
</p>
<h3>
waitForProxy
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L348">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L370">
[src]
</a>
</h3>
@ -657,7 +657,7 @@
</p>
<h3>
waitForProxy
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L363">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L385">
[src]
</a>
</h3>
@ -688,7 +688,7 @@
</p>
<h3>
checkifPortIsOccupied
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L381">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L403">
[src]
</a>
</h3>
@ -717,7 +717,7 @@
</p>
<h3>
setProxyTimeoutTime
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L396">
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L418">
[src]
</a>
</h3>
@ -742,6 +742,36 @@
<br />
| time | int | |
</p>
<h3>
join
<a href="src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L423">
[src]
</a>
</h3>
<ul>
<li>
Description:
<br />
</li>
<li>
Access: protected
<br />
</li>
<li>
Modifiers: static
</li>
<li>
return: String
<br />
</li>
</ul>
<p>
| Name | Type | Description |
<br />
| &mdash;&ndash; | &mdash;&ndash; | &mdash;&ndash; |
<br />
| arr | String[] | |
</p>
<div id="sourcecode">
<span id="sourcehead">
<strong>

View File

@ -58,7 +58,7 @@ package: net.i2p.i2pfirefox
## Methods
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L131)
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L153)
+ Description: get the runtime directory creating it if create=true
+ Access: protected
@ -71,7 +71,7 @@ package: net.i2p.i2pfirefox
| override | String | |
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L148)
### runtimeDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L170)
+ Description: get the correct runtime directory
+ Access: protected
@ -83,7 +83,7 @@ package: net.i2p.i2pfirefox
| override | String | |
### profileDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L196)
### profileDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L218)
+ Description: get the profile directory creating it if necessary
+ Access: protected
@ -97,7 +97,7 @@ package: net.i2p.i2pfirefox
| app | boolean | |
### profileDir [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L208)
### profileDir [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L230)
+ Description:
+ Access: protected
@ -111,7 +111,7 @@ package: net.i2p.i2pfirefox
| app | boolean | |
### unpackProfile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L218)
### unpackProfile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L240)
+ Description:
+ Access: protected
@ -124,7 +124,7 @@ package: net.i2p.i2pfirefox
| base | String | |
### copyDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L264)
### copyDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L286)
+ Description:
+ Access: protected
@ -139,7 +139,7 @@ package: net.i2p.i2pfirefox
| base | String | |
### copyDirectoryCompatibityMode [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L280)
### copyDirectoryCompatibityMode [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L302)
+ Description:
+ Access: private
@ -154,7 +154,7 @@ package: net.i2p.i2pfirefox
| base | String | |
### copyFile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L289)
### copyFile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L311)
+ Description:
+ Access: private
@ -167,7 +167,7 @@ package: net.i2p.i2pfirefox
| destinationFile | File | |
### validateProfileFirstRun [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L300)
### validateProfileFirstRun [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L322)
+ Description:
+ Access: public
@ -179,7 +179,7 @@ package: net.i2p.i2pfirefox
| profileDirectory | String | |
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L326)
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L348)
+ Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of 200 seconds.
+ Access: public
@ -188,7 +188,7 @@ package: net.i2p.i2pfirefox
This method has no parameters.
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L336)
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L358)
+ Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of the specified number of seconds.
+ Access: public
@ -199,7 +199,7 @@ This method has no parameters.
| timeout | int | the number of seconds to wait for the proxy to be ready. |
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L348)
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L370)
+ 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
@ -211,7 +211,7 @@ This method has no parameters.
| port | int | the port to wait for the proxy to be ready on. |
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L363)
### waitForProxy [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L385)
+ Description: Waits for an HTTP proxy on the specified port to be ready. Returns false on timeout of the specified number of seconds. If the timeout is zero or less the check is disabled and always returns true.
+ Access: public
@ -224,7 +224,7 @@ This method has no parameters.
| host | String | the host to wait for the proxy to be ready on. |
### checkifPortIsOccupied [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L381)
### checkifPortIsOccupied [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L403)
+ Description:
+ Access: private
@ -236,7 +236,7 @@ This method has no parameters.
| host | String | |
### setProxyTimeoutTime [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L396)
### setProxyTimeoutTime [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L418)
+ Description: Alters the proxy timeout to customized value time in seconds. May be zero.
+ Access: public
@ -247,3 +247,15 @@ This method has no parameters.
| time | int | |
### join [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L423)
+ Description:
+ Access: protected
+ Modifiers: static
+ return: String
| Name | Type | Description |
| ----- | ----- | ----- |
| arr | String[] | |

View File

@ -184,15 +184,27 @@
<li>
java.io.File
</li>
<li>
java.io.FileWriter
</li>
<li>
java.io.IOException
</li>
<li>
java.io.PrintWriter
</li>
<li>
java.util.ArrayList
</li>
<li>
java.util.Arrays
</li>
<li>
java.util.concurrent.TimeUnit
</li>
<li>
java.util.stream.Stream
</li>
</ul>
<br />
</details>
@ -250,7 +262,7 @@
</h2>
<h3>
FIND_FIREFOX_SEARCH_PATHS_UNIX
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L44">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L48">
[src]
</a>
</h3>
@ -276,7 +288,7 @@
</p>
<h3>
FIND_FIREFOX_SEARCH_PATHS_OSX
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L59">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L63">
[src]
</a>
</h3>
@ -302,7 +314,7 @@
</p>
<h3>
FIND_FIREFOX_SEARCH_PATHS_WINDOWS
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L76">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L81">
[src]
</a>
</h3>
@ -328,7 +340,7 @@
</p>
<h3>
FIND_ALL_FIREFOX_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L112">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L117">
[src]
</a>
</h3>
@ -354,7 +366,7 @@
</p>
<h3>
FIND_FIREFOX_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L132">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L137">
[src]
</a>
</h3>
@ -380,7 +392,7 @@
</p>
<h3>
NEARBY_FIREFOX_SEARCH_PATHS
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L146">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L151">
[src]
</a>
</h3>
@ -406,7 +418,7 @@
</p>
<h3>
FIREFOX_FINDER
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L202">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L235">
[src]
</a>
</h3>
@ -432,7 +444,7 @@
</p>
<h3>
getOperatingSystem
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L214">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L247">
[src]
</a>
</h3>
@ -458,7 +470,7 @@
</p>
<h3>
onlyValidFirefoxes
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L236">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L269">
[src]
</a>
</h3>
@ -481,7 +493,7 @@
</p>
<h3>
topFirefox
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L256">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L289">
[src]
</a>
</h3>
@ -504,7 +516,7 @@
</p>
<h3>
topFirefox
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L285">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L318">
[src]
</a>
</h3>
@ -531,7 +543,7 @@
</p>
<h3>
defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L303">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L336">
[src]
</a>
</h3>
@ -554,7 +566,7 @@
</p>
<h3>
defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L315">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L348">
[src]
</a>
</h3>
@ -581,7 +593,7 @@
</p>
<h3>
privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L329">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L362">
[src]
</a>
</h3>
@ -604,7 +616,7 @@
</p>
<h3>
privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L342">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L375">
[src]
</a>
</h3>
@ -631,7 +643,7 @@
</p>
<h3>
appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L365">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L398">
[src]
</a>
</h3>
@ -654,7 +666,7 @@
</p>
<h3>
appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L378">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L411">
[src]
</a>
</h3>
@ -681,7 +693,7 @@
</p>
<h3>
headlessProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L399">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L432">
[src]
</a>
</h3>
@ -708,7 +720,7 @@
</p>
<h3>
processBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L427">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L460">
[src]
</a>
</h3>
@ -737,7 +749,7 @@
</p>
<h3>
usabilityMode
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L453">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L518">
[src]
</a>
</h3>
@ -760,7 +772,7 @@
</p>
<h3>
launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L459">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L524">
[src]
</a>
</h3>
@ -789,7 +801,7 @@
</p>
<h3>
launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L465">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L530">
[src]
</a>
</h3>
@ -818,7 +830,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L558">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L623">
[src]
</a>
</h3>
@ -847,7 +859,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L564">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L629">
[src]
</a>
</h3>
@ -876,7 +888,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L588">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L653">
[src]
</a>
</h3>
@ -903,7 +915,7 @@
</p>
<h3>
launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L598">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L663">
[src]
</a>
</h3>
@ -926,7 +938,7 @@
</p>
<h3>
ValidURL
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L600">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L665">
[src]
</a>
</h3>
@ -956,7 +968,7 @@
</p>
<h3>
main
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L611">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L676">
[src]
</a>
</h3>
@ -986,7 +998,7 @@
</p>
<h3>
sleep
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L648">
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L713">
[src]
</a>
</h3>

View File

@ -18,9 +18,13 @@ package: net.i2p.i2pfirefox
</summary>
<ul>
<li>java.io.File</li>
<li>java.io.FileWriter</li>
<li>java.io.IOException</li>
<li>java.io.PrintWriter</li>
<li>java.util.ArrayList</li>
<li>java.util.Arrays</li>
<li>java.util.concurrent.TimeUnit</li>
<li>java.util.stream.Stream</li>
</ul>
</details>
@ -48,7 +52,7 @@ package: net.i2p.i2pfirefox
## Methods
### FIND_FIREFOX_SEARCH_PATHS_UNIX [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L44)
### FIND_FIREFOX_SEARCH_PATHS_UNIX [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L48)
+ Description:
+ Access: private
@ -58,7 +62,7 @@ package: net.i2p.i2pfirefox
This method has no parameters.
### FIND_FIREFOX_SEARCH_PATHS_OSX [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L59)
### FIND_FIREFOX_SEARCH_PATHS_OSX [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L63)
+ Description:
+ Access: private
@ -68,7 +72,7 @@ This method has no parameters.
This method has no parameters.
### FIND_FIREFOX_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L76)
### FIND_FIREFOX_SEARCH_PATHS_WINDOWS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L81)
+ Description:
+ Access: private
@ -78,7 +82,7 @@ This method has no parameters.
This method has no parameters.
### FIND_ALL_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L112)
### FIND_ALL_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L117)
+ Description:
+ Access: private
@ -88,7 +92,7 @@ This method has no parameters.
This method has no parameters.
### FIND_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L132)
### FIND_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L137)
+ Description:
+ Access: private
@ -98,7 +102,7 @@ This method has no parameters.
This method has no parameters.
### NEARBY_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L146)
### NEARBY_FIREFOX_SEARCH_PATHS [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L151)
+ Description:
+ Access: private
@ -108,7 +112,7 @@ This method has no parameters.
This method has no parameters.
### FIREFOX_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L202)
### FIREFOX_FINDER [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L235)
+ Description:
+ Access: private
@ -118,7 +122,7 @@ This method has no parameters.
This method has no parameters.
### getOperatingSystem [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L214)
### getOperatingSystem [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L247)
+ Description:
+ Access: private
@ -128,7 +132,7 @@ This method has no parameters.
This method has no parameters.
### onlyValidFirefoxes [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L236)
### onlyValidFirefoxes [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L269)
+ 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
@ -137,7 +141,7 @@ This method has no parameters.
This method has no parameters.
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L256)
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L289)
+ Description: Return the best available Firefox from the list of Firefoxes we have.
+ Access: public
@ -146,7 +150,7 @@ This method has no parameters.
This method has no parameters.
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L285)
### topFirefox [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L318)
+ 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
@ -157,7 +161,7 @@ This method has no parameters.
| overrideFirefox | String | |
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L303)
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L336)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
+ Access: public
@ -166,7 +170,7 @@ This method has no parameters.
This method has no parameters.
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L315)
### defaultProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L348)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
+ Access: public
@ -177,7 +181,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#L329)
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L362)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public
@ -186,7 +190,7 @@ This method has no parameters.
This method has no parameters.
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L342)
### privateProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L375)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public
@ -197,7 +201,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#L365)
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L398)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public
@ -206,7 +210,7 @@ This method has no parameters.
This method has no parameters.
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L378)
### appProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L411)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public
@ -217,7 +221,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#L399)
### headlessProcessBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L432)
+ Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --headless flag to open without a window.
+ Access: public
@ -228,7 +232,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#L427)
### processBuilder [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L460)
+ Description:
+ Access: public
@ -240,7 +244,7 @@ This method has no parameters.
| app | boolean | |
### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L453)
### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L518)
+ Description:
+ Access: private
@ -249,7 +253,7 @@ This method has no parameters.
This method has no parameters.
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L459)
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L524)
+ Description:
+ Access: public
@ -261,7 +265,7 @@ This method has no parameters.
| url | String[] | |
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L465)
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L530)
+ Description:
+ Access: public
@ -273,7 +277,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L558)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L623)
+ 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
@ -285,7 +289,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L564)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L629)
+ Description:
+ Access: public
@ -297,7 +301,7 @@ This method has no parameters.
| url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L588)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L653)
+ 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
@ -308,7 +312,7 @@ This method has no parameters.
| privateWindow | boolean | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L598)
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L663)
+ 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
@ -317,7 +321,7 @@ This method has no parameters.
This method has no parameters.
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L600)
### ValidURL [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L665)
+ Description:
+ Access: private
@ -329,7 +333,7 @@ This method has no parameters.
| inUrl | String | |
### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L611)
### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L676)
+ Description:
+ Access: public
@ -341,7 +345,7 @@ This method has no parameters.
| args | String[] | |
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L648)
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L713)
+ Description:
+ Access: private

View File

@ -44,7 +44,7 @@ directory for Firefox, and the `src/i2p.chromium.*.profile/extensions/*.js/*` di
```sh
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.0/i2pfirefox.zip
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.1/i2pfirefox.zip
unzip i2pfirefox.zip
./i2pfirefox.cmd
@ -93,6 +93,25 @@ want to update the profiles, you don't need it.
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`.
@ -192,11 +211,16 @@ There is a little subtlety here though.
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.
- The above is also true of OSX for now but doesn't have to remain so.
- I really only test Phase 3 with Dillo and Edgium. **YMMV.**
### Usability vs Strict

View File

@ -151,8 +151,8 @@ noscript
11.4.11
https://addons.mozilla.org/firefox/downloads/file/4002416/noscript-11.4.11.xpi
localcdn-fork-of-decentraleyes
2.6.35
https://addons.mozilla.org/firefox/downloads/file/4003760/localcdn_fork_of_decentraleyes-2.6.35.xpi
2.6.36
https://addons.mozilla.org/firefox/downloads/file/4009967/localcdn_fork_of_decentraleyes-2.6.36.xpi
https-everywhere
2021.7.13
https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-2021.7.13.xpi

View File

@ -12,8 +12,8 @@ noscript
11.4.11
https://addons.mozilla.org/firefox/downloads/file/4002416/noscript-11.4.11.xpi
localcdn-fork-of-decentraleyes
2.6.35
https://addons.mozilla.org/firefox/downloads/file/4003760/localcdn_fork_of_decentraleyes-2.6.35.xpi
2.6.36
https://addons.mozilla.org/firefox/downloads/file/4009967/localcdn_fork_of_decentraleyes-2.6.36.xpi
https-everywhere
2021.7.13
https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-2021.7.13.xpi

View File

@ -2,7 +2,7 @@
<project basedir="." default="all" name="i2pfirefox">
<property file="override.properties"/>
<target name="all" depends="clean,i2pFirefoxBaseProfileZip,i2pChromiumBaseProfileZip,plugin" />
<target name="all" depends="clean,i2pFirefoxBaseProfileZip,i2pChromiumBaseProfileZip,jar" />
<target name="war" >
<ant dir="src" target="build" />
@ -177,8 +177,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2p.firefox.base.profile.zip" />
</exec>
<exec executable="zip" failonerror="true" dir="src">
<arg value="-r"/>
<exec executable="dzip" failonerror="true" dir="src">
<arg value="i2p.firefox.base.profile.zip"/>
<arg value="i2p.firefox.base.profile"/>
</exec>
@ -189,8 +188,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2p.firefox.usability.profile.zip" />
</exec>
<exec executable="zip" failonerror="true" dir="src">
<arg value="-r"/>
<exec executable="dzip" failonerror="true" dir="src">
<arg value="i2p.firefox.usability.profile.zip"/>
<arg value="i2p.firefox.usability.profile"/>
</exec>
@ -201,8 +199,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2p.chromium.base.profile.zip" />
</exec>
<exec executable="zip" failonerror="true" dir="src">
<arg value="-r"/>
<exec executable="dzip" failonerror="true" dir="src">
<arg value="i2p.chromium.base.profile.zip"/>
<arg value="i2p.chromium.base.profile"/>
</exec>
@ -213,8 +210,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2p.chromium.usability.profile.zip" />
</exec>
<exec executable="zip" failonerror="true" dir="src">
<arg value="-r"/>
<exec executable="dzip" failonerror="true" dir="src">
<arg value="i2p.chromium.usability.profile.zip"/>
<arg value="i2p.chromium.usability.profile"/>
</exec>
@ -225,8 +221,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2pbrowser.zip" />
</exec>
<exec executable="zip" failonerror="true">
<arg value="-r"/>
<exec executable="dzip" failonerror="true">
<arg value="i2pfirefox.zip"/>
<arg value="src/build/i2pfirefox.jar"/>
<arg value="i2pfirefox.cmd"/>
@ -235,7 +230,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="i2pchromium-private.cmd"/>
<arg value="i2pfirefox-usability.cmd"/>
<arg value="i2pchromium-usability.cmd"/>
<arg value="i2pfirefox-usability-private.cmd"/>
<arg value="i2pfirefox-private-usability.cmd"/>
<arg value="i2pchromium-usability-private.cmd"/>
<arg value="LICENSE.md"/>
<arg value="README.md"/>
@ -330,7 +325,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.0" />
<property name="release.number" value="1.0.1" />
<exec executable="echo" osfamily="unix">
<arg value="${release.number}-${build.number}" />
</exec>
@ -464,8 +459,7 @@ Linux(because the top command will be run and the script will exit).\n\nBoth det
<arg value="-rf" />
<arg value="i2pbrowser.zip" />
</exec>
<exec executable="zip" failonerror="true">
<arg value="-r"/>
<exec executable="dzip" failonerror="true">
<arg value="i2pbrowser.zip"/>
<arg value="i2pbrowser"/>
</exec>

View File

@ -1,6 +1,6 @@
#! /usr/bin/env sh
export GITHUB_USER=eyedeekay
export GITHUB_REPO=i2p.plugins.firefox
export GITHUB_NAME="Add app-mode for local-only browsing, buildsystem improvements"
export GITHUB_NAME="Make OSX support as good as everywhere else"
export GITHUB_DESCRIPTION=$(cat CHANGES.md VERSION.md)
export GITHUB_TAG=1.0.0
export GITHUB_TAG=1.0.1

22
etc/scripts/torbrowser.sh Executable file
View File

@ -0,0 +1,22 @@
#!/bin/sh
version="$(curl -s https://aus1.torproject.org/torbrowser/update_3/release/downloads.json | jq -r ".version")"
locale="en-US" # mention your locale. default = en-US
if [ -d /etc/default/locale ]; then
. /etc/default/locale
locale=$(echo "${LANG}" | cut -d . -f1)
fi
if [ ! -f ./tor.keyring ]; then
gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org
gpg --output ./tor.keyring --export torbrowser@torproject.org
fi
if [ ! -f "tor-browser-linux64-"$version"_"$locale".tar.xz" ]; then
wget -cv "https://www.torproject.org/dist/torbrowser/"$version"/tor-browser-linux64-"$version"_"$locale".tar.xz"
wget -cv "https://www.torproject.org/dist/torbrowser/"$version"/tor-browser-linux64-"$version"_"$locale".tar.xz.asc"
fi
gpgv --keyring ./tor.keyring "tor-browser-linux64-"$version"_"$locale".tar.xz.asc" "tor-browser-linux64-"$version"_"$locale".tar.xz"
tar xvJf "tor-browser-linux64-"$version"_"$locale".tar.xz"

View File

@ -240,7 +240,7 @@
</h3>
<pre><code class="language-sh">
mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.0/i2pfirefox.zip
wget https://github.com/eyedeekay/i2p.plugins.firefox/releases/download/1.0.1/i2pfirefox.zip
unzip i2pfirefox.zip
./i2pfirefox.cmd
@ -325,6 +325,43 @@ unzip i2pfirefox.zip
</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&rsquo;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
@ -447,15 +484,20 @@ if (i2pIsRunning()) {
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&rsquo;s own user. Linux will only use
Tor Browser if it&rsquo;s discovered in &ldquo;Local&rdquo; mode.
</li>
<li>
The above is also true of OSX for now but doesn&rsquo;t have to remain so.
</li>
<li>
I really only test Phase 3 with Dillo and Edgium.
<strong>

View File

@ -3,7 +3,6 @@
jpackage \
--verbose \
--type dmg \
--license-file LICENSE.md \
--name i2pbrowser \
--app-version "$GITHUB_TAG" \
--input src/build \

39
profiles-upload.sh Executable file
View File

@ -0,0 +1,39 @@
#! /usr/bin/env sh
. ./config.sh
profilezipsum=$(sha256sum src/i2p.chromium.base.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Chromium strict extensions ${profilezipsum}" \
--name "i2p.chromium.base.profile.zip" \
--file "src/i2p.chromium.base.profile.zip" \
--replace
echo "Uploaded Chromium base profile"
profilezipsum=$(sha256sum src/i2p.chromium.usability.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Chromium usability extensions ${profilezipsum}" \
--name "i2p.chromium.usability.profile.zip" \
--file "src/i2p.chromium.usability.profile.zip" \
--replace
echo "Uploaded Chromium usability profile"
profilezipsum=$(sha256sum src/i2p.firefox.base.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Firefox strict profile ${profilezipsum}" \
--name "i2p.firefox.base.profile.zip" \
--file "src/i2p.firefox.base.profile.zip" \
--replace
echo "Uploaded Firefox base profile"
profilezipsum=$(sha256sum src/i2p.firefox.usability.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Firefox usability profile ${profilezipsum}" \
--name "i2p.firefox.usability.profile.zip" \
--file "src/i2p.firefox.usability.profile.zip" \
--replace
echo "Uploaded Firefox usability profile"

View File

@ -2,42 +2,6 @@
. ./config.sh
./preprelease.sh
profilezipsum=$(sha256sum src/i2p.chromium.base.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Chromium strict extensions ${profilezipsum}" \
--name "i2p.chromium.base.profile.zip" \
--file "src/i2p.chromium.base.profile.zip" \
--replace
echo "Uploaded Chromium base profile"
profilezipsum=$(sha256sum src/i2p.chromium.usability.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Chromium usability extensions ${profilezipsum}" \
--name "i2p.chromium.usability.profile.zip" \
--file "src/i2p.chromium.usability.profile.zip" \
--replace
echo "Uploaded Chromium usability profile"
profilezipsum=$(sha256sum src/i2p.firefox.base.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Firefox strict profile ${profilezipsum}" \
--name "i2p.firefox.base.profile.zip" \
--file "src/i2p.firefox.base.profile.zip" \
--replace
echo "Uploaded Firefox base profile"
profilezipsum=$(sha256sum src/i2p.firefox.usability.profile.zip)
github-release upload --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--tag "${GITHUB_TAG}" \
--label "Firefox usability profile ${profilezipsum}" \
--name "i2p.firefox.usability.profile.zip" \
--file "src/i2p.firefox.usability.profile.zip" \
--replace
echo "Uploaded Firefox usability profile"
github-release release --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \
--name "${GITHUB_NAME}" \

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Sun Sep 25 16:21:47 EDT 2022
build.number=108
#Sat Oct 01 21:07:15 EDT 2022
build.number=115

View File

@ -25,7 +25,7 @@
</target>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile">
<mkdir dir="./build" />

Binary file not shown.

View File

@ -1,5 +1,5 @@
Profile Version
===============
1.0.0-107
1.0.1-114

Binary file not shown.

View File

@ -1,5 +1,5 @@
Profile Version
===============
1.0.0-107
1.0.1-114

Binary file not shown.

View File

@ -1,5 +1,5 @@
Profile Version
===============
1.0.0-107
1.0.1-114

View File

@ -1,5 +1,5 @@
Profile Version
===============
1.0.0-107
1.0.1-114

View File

@ -1,7 +1,12 @@
package net.i2p.i2pfirefox;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;
/**
* I2PChromium.java
@ -66,19 +71,13 @@ public class I2PChromium extends I2PCommonBrowser {
}
private static String[] FIND_CHROMIUM_SEARCH_PATHS_OSX() {
String[] path =
new String[] {"/Applications/Chromium.app/Contents/MacOS/",
"/Applications/Waterfox.app/Contents/MacOS/",
"/Applications/Librewolf.app/Contents/MacOS/"};
String[] exes =
new String[] {"ungoogled-chromium", "chromium", "brave", "edge",
"ungoogled-chromium", "chrome"};
String[] exePath = new String[path.length * exes.length];
new String[] {"/Applications/Chromium.app", "/Applications/Chrome.app",
"/Applications/Brave.app"};
String[] exePath = new String[path.length];
int i = 0;
for (String s : path) {
for (String exe : exes) {
exePath[i] = s + "/" + exe;
i++;
}
exePath[i] = s;
i++;
}
return exePath;
}
@ -511,12 +510,40 @@ public class I2PChromium extends I2PCommonBrowser {
}
}
}
return new ProcessBuilder(newArgs).directory(
I2PChromiumProfileBuilder.runtimeDirectory(true));
} else {
logger.info("No Chromium found.");
return new ProcessBuilder(args);
if (isOSX()) {
String argString = join(Arrays.copyOfRange(newArgs, 1, newArgs.length));
String[] fg = {""};
String[] lastArgs =
Stream.concat(Arrays.stream(newArgs), Arrays.stream(fg))
.toArray(String[] ::new);
// String[] finalArgs = Stream.concat(Arrays.stream(initArgs),
// Arrays.stream(lastArgs)).toArray(String[]::new);
File bashScript = new File("i2pchromium.sh");
if (bashScript.exists()) {
bashScript.delete();
}
try {
FileWriter bWriter = new FileWriter(bashScript);
PrintWriter bpWriter = new PrintWriter(bWriter);
bpWriter.println("#! /usr/bin/env sh");
bpWriter.println(join(lastArgs));
bpWriter.close();
bWriter.close();
if (!bashScript.canExecute()) {
bashScript.setExecutable(true);
}
return new ProcessBuilder(bashScript.getAbsolutePath())
.directory(I2PFirefoxProfileBuilder.runtimeDirectory(true));
} catch (IOException e) {
logger.warning(e.toString());
}
} else {
return new ProcessBuilder(newArgs).directory(
I2PChromiumProfileBuilder.runtimeDirectory(true));
}
}
logger.info("No Chromium found.");
return new ProcessBuilder(args);
}
public Process launchAndDetatch(boolean privateWindow, String[] url) {

View File

@ -110,6 +110,28 @@ public class I2PCommonBrowser {
return false;
}
protected static boolean isOSX() {
String osName = System.getProperty("os.name");
logger.info("os.name" + osName);
if (osName.contains("OSX"))
return true;
if (osName.contains("osx"))
return true;
if (osName.contains("mac"))
return true;
if (osName.contains("Mac"))
return true;
if (osName.contains("apple"))
return true;
if (osName.contains("Apple"))
return true;
if (osName.contains("Darwin"))
return true;
if (osName.contains("darwin"))
return true;
return false;
}
// public static void logger.info(String line) { logger.info(line); }
private static File logFile() {
@ -394,4 +416,17 @@ public class I2PCommonBrowser {
* @param time
*/
public void setProxyTimeoutTime(int time) { CONFIGURED_TIMEOUT = time; }
/**
*
*/
protected static String join(String[] arr) {
StringBuilder val = new StringBuilder("");
for (int x = 0; x < arr.length; x++) {
val.append(" \"");
val.append(arr[x]);
val.append("\"");
}
return val.toString();
}
}

View File

@ -1,9 +1,13 @@
package net.i2p.i2pfirefox;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
/**
* I2PFirefox.java
@ -58,9 +62,10 @@ public class I2PFirefox extends I2PCommonBrowser {
}
private static String[] FIND_FIREFOX_SEARCH_PATHS_OSX() {
String[] path =
new String[] {"/Applications/Firefox.app/Contents/MacOS/",
"/Applications/Waterfox.app/Contents/MacOS/",
"/Applications/Librewolf.app/Contents/MacOS/"};
new String[] {"/Applications/Tor Browser.app/Contents/MacOS",
"/Applications/Firefox.app/Contents/MacOS",
"/Applications/Waterfox.app/Contents/MacOS",
"/Applications/Librewolf.app/Contents/MacOS"};
String[] exes = new String[] {"firefox", "firefox-bin", "firefox-esr",
"waterfox", "waterfox-bin", "librewolf"};
String[] exePath = new String[path.length * exes.length];
@ -150,22 +155,37 @@ public class I2PFirefox extends I2PCommonBrowser {
// "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 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("firefox") ||
pluginFile.getName().equals("firefox-bin") ||
pluginFile.getName().equals("firefox-esr") ||
pluginFile.getName().equals("waterfox") ||
pluginFile.getName().equals("waterfox-bin") ||
pluginFile.getName().equals("librewolf")) {
return new String[] {pluginFile.getAbsolutePath()};
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 (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")) {
logger.info("FOUND NEARBY" + userFile2.getAbsolutePath());
return new String[] {userFile2.getAbsolutePath()};
}
}
}
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()};
}
}
}
@ -180,11 +200,24 @@ public class I2PFirefox extends I2PCommonBrowser {
// 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.isDirectory())
continue;
if (userFile.isDirectory()) {
File[] userFiles2 = userFile.listFiles();
for (File userFile2 : userFiles2) {
if (userFile2.isDirectory())
continue;
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")) {
logger.info("FOUND NEARBY" + userFile2.getAbsolutePath());
return new String[] {userFile2.getAbsolutePath()};
}
}
}
if (userFile.getName().equals("firefox") ||
userFile.getName().equals("firefox-bin") ||
userFile.getName().equals("firefox-esr") ||
@ -442,12 +475,44 @@ public class I2PFirefox extends I2PCommonBrowser {
}
}
}
return new ProcessBuilder(newArgs).directory(
I2PFirefoxProfileBuilder.runtimeDirectory(true));
} else {
logger.info("No Firefox found.");
return new ProcessBuilder(args);
}
if (isOSX()) {
String[] fg = {""};
String[] lastArgs =
Stream.concat(Arrays.stream(newArgs), Arrays.stream(fg))
.toArray(String[] ::new);
// String[] finalArgs = Stream.concat(Arrays.stream(initArgs),
// Arrays.stream(lastArgs)).toArray(String[]::new);
File bashScript = new File("i2pfirefox.sh");
if (bashScript.exists()) {
bashScript.delete();
}
try {
FileWriter bWriter = new FileWriter(bashScript);
PrintWriter bpWriter = new PrintWriter(bWriter);
bpWriter.println("#! /usr/bin/env sh");
bpWriter.println(join(lastArgs));
bpWriter.close();
bWriter.close();
if (!bashScript.canExecute()) {
bashScript.setExecutable(true);
}
return new ProcessBuilder(bashScript.getAbsolutePath())
.directory(I2PFirefoxProfileBuilder.runtimeDirectory(true));
} catch (IOException e) {
logger.warning(e.toString());
}
return null;
} else {
return new ProcessBuilder(newArgs).directory(
I2PFirefoxProfileBuilder.runtimeDirectory(true));
}
} // else {
logger.info("No Firefox found.");
return new ProcessBuilder(args);
//}
// return null;
}
private String usabilityMode() {