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 id="returnhome" href="/">
/ /
</a> </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> <h2>
Sun, September 25 Sun, September 25
</h2> </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 Sun, September 25
----------------- -----------------

View File

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

View File

@ -18,7 +18,12 @@ package: net.i2p.i2pfirefox
</summary> </summary>
<ul> <ul>
<li>java.io.File</li> <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.ArrayList</li>
<li>java.util.Arrays</li>
<li>java.util.stream.Stream</li>
</ul> </ul>
</details> </details>
@ -39,7 +44,7 @@ package: net.i2p.i2pfirefox
## Methods ## 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: + Description:
+ Access: private + Access: private
@ -49,7 +54,7 @@ package: net.i2p.i2pfirefox
This method has no parameters. 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: + Description:
+ Access: private + Access: private
@ -59,7 +64,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -69,7 +74,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -79,7 +84,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -89,7 +94,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -99,7 +104,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -109,7 +114,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -119,7 +124,7 @@ This method has no parameters.
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. + 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 + Access: public
@ -128,7 +133,7 @@ This method has no parameters.
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. + Description: Return the best available Chromium from the list of Chromiums we have.
+ Access: public + Access: public
@ -137,7 +142,7 @@ This method has no parameters.
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. + 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 + Access: public
@ -148,7 +153,7 @@ This method has no parameters.
| overrideChromium | String | | | 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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public + Access: public
@ -157,7 +162,7 @@ This method has no parameters.
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 + Description: Build a ProcessBuilder for the top Chromium binary and the default profile. @args the arguments to pass to the Chromium binary
+ Access: public + Access: public
@ -168,7 +173,7 @@ This method has no parameters.
| args | String[] | | | 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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public + Access: public
@ -177,7 +182,7 @@ This method has no parameters.
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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public + Access: public
@ -188,7 +193,7 @@ This method has no parameters.
| args | String[] | the arguments to pass to the Chromium binary. | | 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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public + Access: public
@ -197,7 +202,7 @@ This method has no parameters.
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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile.
+ Access: public + Access: public
@ -208,7 +213,7 @@ This method has no parameters.
| args | String[] | the arguments to pass to the Chromium binary. | | 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. + Description: Build a ProcessBuilder for the top Chromium binary and the default profile with a specific set of extended arguments.
+ Access: public + Access: public
@ -219,7 +224,7 @@ This method has no parameters.
| args | String[] | the extended arguments to pass to the Chromium binary. | | 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: + Description:
+ Access: public + Access: public
@ -231,7 +236,7 @@ This method has no parameters.
| url | String[] | | | url | String[] | |
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L529) ### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L556)
+ Description: + Description:
+ Access: public + Access: public
@ -243,7 +248,7 @@ This method has no parameters.
| url | String[] | | | 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. + 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 + Access: public
@ -255,7 +260,7 @@ This method has no parameters.
| url | String[] | | | url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L592) ### launch [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L619)
+ Description: + Description:
+ Access: public + Access: public
@ -267,7 +272,7 @@ This method has no parameters.
| url | String[] | | | 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. + 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 + Access: public
@ -278,7 +283,7 @@ This method has no parameters.
| privateWindow | boolean | | | 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. + 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 + Access: public
@ -287,7 +292,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -299,7 +304,7 @@ This method has no parameters.
| inUrl | String | | | inUrl | String | |
### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L638) ### main [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L665)
+ Description: + Description:
+ Access: public + Access: public
@ -311,7 +316,7 @@ This method has no parameters.
| args | String[] | | | args | String[] | |
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L677) ### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PChromium.java#L704)
+ Description: + Description:
+ Access: private + Access: private

View File

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

View File

@ -58,7 +58,7 @@ package: net.i2p.i2pfirefox
## Methods ## 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 + Description: get the runtime directory creating it if create=true
+ Access: protected + Access: protected
@ -71,7 +71,7 @@ package: net.i2p.i2pfirefox
| override | String | | | 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 + Description: get the correct runtime directory
+ Access: protected + Access: protected
@ -83,7 +83,7 @@ package: net.i2p.i2pfirefox
| override | String | | | 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 + Description: get the profile directory creating it if necessary
+ Access: protected + Access: protected
@ -97,7 +97,7 @@ package: net.i2p.i2pfirefox
| app | boolean | | | app | boolean | |
### profileDir [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L208) ### profileDir [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L230)
+ Description: + Description:
+ Access: protected + Access: protected
@ -111,7 +111,7 @@ package: net.i2p.i2pfirefox
| app | boolean | | | app | boolean | |
### unpackProfile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L218) ### unpackProfile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L240)
+ Description: + Description:
+ Access: protected + Access: protected
@ -124,7 +124,7 @@ package: net.i2p.i2pfirefox
| base | String | | | base | String | |
### copyDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L264) ### copyDirectory [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L286)
+ Description: + Description:
+ Access: protected + Access: protected
@ -139,7 +139,7 @@ package: net.i2p.i2pfirefox
| base | String | | | base | String | |
### copyDirectoryCompatibityMode [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L280) ### copyDirectoryCompatibityMode [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L302)
+ Description: + Description:
+ Access: private + Access: private
@ -154,7 +154,7 @@ package: net.i2p.i2pfirefox
| base | String | | | base | String | |
### copyFile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L289) ### copyFile [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L311)
+ Description: + Description:
+ Access: private + Access: private
@ -167,7 +167,7 @@ package: net.i2p.i2pfirefox
| destinationFile | File | | | destinationFile | File | |
### validateProfileFirstRun [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L300) ### validateProfileFirstRun [[src]](src/java/net/i2p/i2pfirefox/I2PCommonBrowser.java#L322)
+ Description: + Description:
+ Access: public + Access: public
@ -179,7 +179,7 @@ package: net.i2p.i2pfirefox
| profileDirectory | String | | | 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. + Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of 200 seconds.
+ Access: public + Access: public
@ -188,7 +188,7 @@ package: net.i2p.i2pfirefox
This method has no parameters. 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. + Description: Waits for an HTTP proxy on port 4444 to be ready. Returns false on timeout of the specified number of seconds.
+ Access: public + 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. | | 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. + 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 + Access: public
@ -211,7 +211,7 @@ This method has no parameters.
| port | int | the port to wait for the proxy to be ready on. | | 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. + 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 + Access: public
@ -224,7 +224,7 @@ This method has no parameters.
| host | String | the host to wait for the proxy to be ready on. | | 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: + Description:
+ Access: private + Access: private
@ -236,7 +236,7 @@ This method has no parameters.
| host | String | | | 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. + Description: Alters the proxy timeout to customized value time in seconds. May be zero.
+ Access: public + Access: public
@ -247,3 +247,15 @@ This method has no parameters.
| time | int | | | 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> <li>
java.io.File java.io.File
</li> </li>
<li>
java.io.FileWriter
</li>
<li> <li>
java.io.IOException java.io.IOException
</li> </li>
<li>
java.io.PrintWriter
</li>
<li> <li>
java.util.ArrayList java.util.ArrayList
</li> </li>
<li>
java.util.Arrays
</li>
<li> <li>
java.util.concurrent.TimeUnit java.util.concurrent.TimeUnit
</li> </li>
<li>
java.util.stream.Stream
</li>
</ul> </ul>
<br /> <br />
</details> </details>
@ -250,7 +262,7 @@
</h2> </h2>
<h3> <h3>
FIND_FIREFOX_SEARCH_PATHS_UNIX 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] [src]
</a> </a>
</h3> </h3>
@ -276,7 +288,7 @@
</p> </p>
<h3> <h3>
FIND_FIREFOX_SEARCH_PATHS_OSX 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] [src]
</a> </a>
</h3> </h3>
@ -302,7 +314,7 @@
</p> </p>
<h3> <h3>
FIND_FIREFOX_SEARCH_PATHS_WINDOWS 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] [src]
</a> </a>
</h3> </h3>
@ -328,7 +340,7 @@
</p> </p>
<h3> <h3>
FIND_ALL_FIREFOX_SEARCH_PATHS 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] [src]
</a> </a>
</h3> </h3>
@ -354,7 +366,7 @@
</p> </p>
<h3> <h3>
FIND_FIREFOX_SEARCH_PATHS 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] [src]
</a> </a>
</h3> </h3>
@ -380,7 +392,7 @@
</p> </p>
<h3> <h3>
NEARBY_FIREFOX_SEARCH_PATHS 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] [src]
</a> </a>
</h3> </h3>
@ -406,7 +418,7 @@
</p> </p>
<h3> <h3>
FIREFOX_FINDER FIREFOX_FINDER
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L202"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L235">
[src] [src]
</a> </a>
</h3> </h3>
@ -432,7 +444,7 @@
</p> </p>
<h3> <h3>
getOperatingSystem getOperatingSystem
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L214"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L247">
[src] [src]
</a> </a>
</h3> </h3>
@ -458,7 +470,7 @@
</p> </p>
<h3> <h3>
onlyValidFirefoxes onlyValidFirefoxes
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L236"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L269">
[src] [src]
</a> </a>
</h3> </h3>
@ -481,7 +493,7 @@
</p> </p>
<h3> <h3>
topFirefox topFirefox
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L256"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L289">
[src] [src]
</a> </a>
</h3> </h3>
@ -504,7 +516,7 @@
</p> </p>
<h3> <h3>
topFirefox topFirefox
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L285"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L318">
[src] [src]
</a> </a>
</h3> </h3>
@ -531,7 +543,7 @@
</p> </p>
<h3> <h3>
defaultProcessBuilder defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L303"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L336">
[src] [src]
</a> </a>
</h3> </h3>
@ -554,7 +566,7 @@
</p> </p>
<h3> <h3>
defaultProcessBuilder defaultProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L315"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L348">
[src] [src]
</a> </a>
</h3> </h3>
@ -581,7 +593,7 @@
</p> </p>
<h3> <h3>
privateProcessBuilder privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L329"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L362">
[src] [src]
</a> </a>
</h3> </h3>
@ -604,7 +616,7 @@
</p> </p>
<h3> <h3>
privateProcessBuilder privateProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L342"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L375">
[src] [src]
</a> </a>
</h3> </h3>
@ -631,7 +643,7 @@
</p> </p>
<h3> <h3>
appProcessBuilder appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L365"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L398">
[src] [src]
</a> </a>
</h3> </h3>
@ -654,7 +666,7 @@
</p> </p>
<h3> <h3>
appProcessBuilder appProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L378"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L411">
[src] [src]
</a> </a>
</h3> </h3>
@ -681,7 +693,7 @@
</p> </p>
<h3> <h3>
headlessProcessBuilder headlessProcessBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L399"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L432">
[src] [src]
</a> </a>
</h3> </h3>
@ -708,7 +720,7 @@
</p> </p>
<h3> <h3>
processBuilder processBuilder
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L427"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L460">
[src] [src]
</a> </a>
</h3> </h3>
@ -737,7 +749,7 @@
</p> </p>
<h3> <h3>
usabilityMode usabilityMode
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L453"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L518">
[src] [src]
</a> </a>
</h3> </h3>
@ -760,7 +772,7 @@
</p> </p>
<h3> <h3>
launchAndDetatch launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L459"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L524">
[src] [src]
</a> </a>
</h3> </h3>
@ -789,7 +801,7 @@
</p> </p>
<h3> <h3>
launchAndDetatch launchAndDetatch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L465"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L530">
[src] [src]
</a> </a>
</h3> </h3>
@ -818,7 +830,7 @@
</p> </p>
<h3> <h3>
launch launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L558"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L623">
[src] [src]
</a> </a>
</h3> </h3>
@ -847,7 +859,7 @@
</p> </p>
<h3> <h3>
launch launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L564"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L629">
[src] [src]
</a> </a>
</h3> </h3>
@ -876,7 +888,7 @@
</p> </p>
<h3> <h3>
launch launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L588"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L653">
[src] [src]
</a> </a>
</h3> </h3>
@ -903,7 +915,7 @@
</p> </p>
<h3> <h3>
launch launch
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L598"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L663">
[src] [src]
</a> </a>
</h3> </h3>
@ -926,7 +938,7 @@
</p> </p>
<h3> <h3>
ValidURL ValidURL
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L600"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L665">
[src] [src]
</a> </a>
</h3> </h3>
@ -956,7 +968,7 @@
</p> </p>
<h3> <h3>
main main
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L611"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L676">
[src] [src]
</a> </a>
</h3> </h3>
@ -986,7 +998,7 @@
</p> </p>
<h3> <h3>
sleep sleep
<a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L648"> <a href="src/java/net/i2p/i2pfirefox/I2PFirefox.java#L713">
[src] [src]
</a> </a>
</h3> </h3>

View File

@ -18,9 +18,13 @@ package: net.i2p.i2pfirefox
</summary> </summary>
<ul> <ul>
<li>java.io.File</li> <li>java.io.File</li>
<li>java.io.FileWriter</li>
<li>java.io.IOException</li> <li>java.io.IOException</li>
<li>java.io.PrintWriter</li>
<li>java.util.ArrayList</li> <li>java.util.ArrayList</li>
<li>java.util.Arrays</li>
<li>java.util.concurrent.TimeUnit</li> <li>java.util.concurrent.TimeUnit</li>
<li>java.util.stream.Stream</li>
</ul> </ul>
</details> </details>
@ -48,7 +52,7 @@ package: net.i2p.i2pfirefox
## Methods ## 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: + Description:
+ Access: private + Access: private
@ -58,7 +62,7 @@ package: net.i2p.i2pfirefox
This method has no parameters. 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: + Description:
+ Access: private + Access: private
@ -68,7 +72,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -78,7 +82,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -88,7 +92,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -98,7 +102,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -108,7 +112,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -118,7 +122,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -128,7 +132,7 @@ This method has no parameters.
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. + 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 + Access: public
@ -137,7 +141,7 @@ This method has no parameters.
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. + Description: Return the best available Firefox from the list of Firefoxes we have.
+ Access: public + Access: public
@ -146,7 +150,7 @@ This method has no parameters.
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. + 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 + Access: public
@ -157,7 +161,7 @@ This method has no parameters.
| overrideFirefox | String | | | 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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
+ Access: public + Access: public
@ -166,7 +170,7 @@ This method has no parameters.
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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile.
+ Access: public + Access: public
@ -177,7 +181,7 @@ This method has no parameters.
| args | String[] | the args to pass to the Firefox binary | | 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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public + Access: public
@ -186,7 +190,7 @@ This method has no parameters.
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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public + Access: public
@ -197,7 +201,7 @@ This method has no parameters.
| args | String[] | the arguments to pass to the Firefox binary | | 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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public + Access: public
@ -206,7 +210,7 @@ This method has no parameters.
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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --private-window flag to open a window.
+ Access: public + Access: public
@ -217,7 +221,7 @@ This method has no parameters.
| args | String[] | the arguments to pass to the Firefox binary | | 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. + Description: Build a ProcessBuilder for the top Firefox binary and the default profile. Pass the --headless flag to open without a window.
+ Access: public + Access: public
@ -228,7 +232,7 @@ This method has no parameters.
| args | String[] | the arguments to pass to the Firefox binary | | 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: + Description:
+ Access: public + Access: public
@ -240,7 +244,7 @@ This method has no parameters.
| app | boolean | | | app | boolean | |
### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L453) ### usabilityMode [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L518)
+ Description: + Description:
+ Access: private + Access: private
@ -249,7 +253,7 @@ This method has no parameters.
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: + Description:
+ Access: public + Access: public
@ -261,7 +265,7 @@ This method has no parameters.
| url | String[] | | | url | String[] | |
### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L465) ### launchAndDetatch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L530)
+ Description: + Description:
+ Access: public + Access: public
@ -273,7 +277,7 @@ This method has no parameters.
| url | String[] | | | 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. + 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 + Access: public
@ -285,7 +289,7 @@ This method has no parameters.
| url | String[] | | | url | String[] | |
### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L564) ### launch [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L629)
+ Description: + Description:
+ Access: public + Access: public
@ -297,7 +301,7 @@ This method has no parameters.
| url | String[] | | | 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. + 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 + Access: public
@ -308,7 +312,7 @@ This method has no parameters.
| privateWindow | boolean | | | 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. + 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 + Access: public
@ -317,7 +321,7 @@ This method has no parameters.
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: + Description:
+ Access: private + Access: private
@ -329,7 +333,7 @@ This method has no parameters.
| inUrl | String | | | inUrl | String | |
### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L611) ### main [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L676)
+ Description: + Description:
+ Access: public + Access: public
@ -341,7 +345,7 @@ This method has no parameters.
| args | String[] | | | args | String[] | |
### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L648) ### sleep [[src]](src/java/net/i2p/i2pfirefox/I2PFirefox.java#L713)
+ Description: + Description:
+ Access: private + Access: private

View File

@ -44,7 +44,7 @@ directory for Firefox, and the `src/i2p.chromium.*.profile/extensions/*.js/*` di
```sh ```sh
mkdir ~/tmp-i2pfirefox && cd ~/tmp-i2pfirefox 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 unzip i2pfirefox.zip
./i2pfirefox.cmd ./i2pfirefox.cmd
@ -93,6 +93,25 @@ want to update the profiles, you don't need it.
go install github.com/eyedeekay/amo-version@latest 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 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/` about it. Once you have that installed, when building, make sure to add `$GOPATH/bin/`
to your `$PATH`. 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 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 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. 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, - 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 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 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. 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.** - I really only test Phase 3 with Dillo and Edgium. **YMMV.**
### Usability vs Strict ### Usability vs Strict

View File

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

View File

@ -12,8 +12,8 @@ noscript
11.4.11 11.4.11
https://addons.mozilla.org/firefox/downloads/file/4002416/noscript-11.4.11.xpi https://addons.mozilla.org/firefox/downloads/file/4002416/noscript-11.4.11.xpi
localcdn-fork-of-decentraleyes localcdn-fork-of-decentraleyes
2.6.35 2.6.36
https://addons.mozilla.org/firefox/downloads/file/4003760/localcdn_fork_of_decentraleyes-2.6.35.xpi https://addons.mozilla.org/firefox/downloads/file/4009967/localcdn_fork_of_decentraleyes-2.6.36.xpi
https-everywhere https-everywhere
2021.7.13 2021.7.13
https://addons.mozilla.org/firefox/downloads/file/3809748/https_everywhere-2021.7.13.xpi 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"> <project basedir="." default="all" name="i2pfirefox">
<property file="override.properties"/> <property file="override.properties"/>
<target name="all" depends="clean,i2pFirefoxBaseProfileZip,i2pChromiumBaseProfileZip,plugin" /> <target name="all" depends="clean,i2pFirefoxBaseProfileZip,i2pChromiumBaseProfileZip,jar" />
<target name="war" > <target name="war" >
<ant dir="src" target="build" /> <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="-rf" />
<arg value="i2p.firefox.base.profile.zip" /> <arg value="i2p.firefox.base.profile.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true" dir="src"> <exec executable="dzip" failonerror="true" dir="src">
<arg value="-r"/>
<arg value="i2p.firefox.base.profile.zip"/> <arg value="i2p.firefox.base.profile.zip"/>
<arg value="i2p.firefox.base.profile"/> <arg value="i2p.firefox.base.profile"/>
</exec> </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="-rf" />
<arg value="i2p.firefox.usability.profile.zip" /> <arg value="i2p.firefox.usability.profile.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true" dir="src"> <exec executable="dzip" failonerror="true" dir="src">
<arg value="-r"/>
<arg value="i2p.firefox.usability.profile.zip"/> <arg value="i2p.firefox.usability.profile.zip"/>
<arg value="i2p.firefox.usability.profile"/> <arg value="i2p.firefox.usability.profile"/>
</exec> </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="-rf" />
<arg value="i2p.chromium.base.profile.zip" /> <arg value="i2p.chromium.base.profile.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true" dir="src"> <exec executable="dzip" failonerror="true" dir="src">
<arg value="-r"/>
<arg value="i2p.chromium.base.profile.zip"/> <arg value="i2p.chromium.base.profile.zip"/>
<arg value="i2p.chromium.base.profile"/> <arg value="i2p.chromium.base.profile"/>
</exec> </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="-rf" />
<arg value="i2p.chromium.usability.profile.zip" /> <arg value="i2p.chromium.usability.profile.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true" dir="src"> <exec executable="dzip" failonerror="true" dir="src">
<arg value="-r"/>
<arg value="i2p.chromium.usability.profile.zip"/> <arg value="i2p.chromium.usability.profile.zip"/>
<arg value="i2p.chromium.usability.profile"/> <arg value="i2p.chromium.usability.profile"/>
</exec> </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="-rf" />
<arg value="i2pbrowser.zip" /> <arg value="i2pbrowser.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true"> <exec executable="dzip" failonerror="true">
<arg value="-r"/>
<arg value="i2pfirefox.zip"/> <arg value="i2pfirefox.zip"/>
<arg value="src/build/i2pfirefox.jar"/> <arg value="src/build/i2pfirefox.jar"/>
<arg value="i2pfirefox.cmd"/> <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="i2pchromium-private.cmd"/>
<arg value="i2pfirefox-usability.cmd"/> <arg value="i2pfirefox-usability.cmd"/>
<arg value="i2pchromium-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="i2pchromium-usability-private.cmd"/>
<arg value="LICENSE.md"/> <arg value="LICENSE.md"/>
<arg value="README.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"> <target name="buildNum">
<buildnumber file="scripts/build.number" /> <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"> <exec executable="echo" osfamily="unix">
<arg value="${release.number}-${build.number}" /> <arg value="${release.number}-${build.number}" />
</exec> </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="-rf" />
<arg value="i2pbrowser.zip" /> <arg value="i2pbrowser.zip" />
</exec> </exec>
<exec executable="zip" failonerror="true"> <exec executable="dzip" failonerror="true">
<arg value="-r"/>
<arg value="i2pbrowser.zip"/> <arg value="i2pbrowser.zip"/>
<arg value="i2pbrowser"/> <arg value="i2pbrowser"/>
</exec> </exec>

View File

@ -1,6 +1,6 @@
#! /usr/bin/env sh #! /usr/bin/env sh
export GITHUB_USER=eyedeekay export GITHUB_USER=eyedeekay
export GITHUB_REPO=i2p.plugins.firefox 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_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> </h3>
<pre><code class="language-sh"> <pre><code class="language-sh">
mkdir ~/tmp-i2pfirefox &amp;&amp; cd ~/tmp-i2pfirefox 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 unzip i2pfirefox.zip
./i2pfirefox.cmd ./i2pfirefox.cmd
@ -325,6 +325,43 @@ unzip i2pfirefox.zip
</p> </p>
<pre><code class="language-sh">go install github.com/eyedeekay/amo-version@latest <pre><code class="language-sh">go install github.com/eyedeekay/amo-version@latest
</code></pre> </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> <p>
For Fedora, use Yum, for Arch use pacman or something else but make sure to tell everyone 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 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 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. a variant is installed, it will be chosen before Edgium unless directed otherwise.
</li> </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> <li>
Linux is unaware of a Tor Browser path because Tor Browser is rarely, if ever, 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 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 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. Tor Browser if it&rsquo;s discovered in &ldquo;Local&rdquo; mode.
</li> </li>
<li>
The above is also true of OSX for now but doesn&rsquo;t have to remain so.
</li>
<li> <li>
I really only test Phase 3 with Dillo and Edgium. I really only test Phase 3 with Dillo and Edgium.
<strong> <strong>

View File

@ -3,7 +3,6 @@
jpackage \ jpackage \
--verbose \ --verbose \
--type dmg \ --type dmg \
--license-file LICENSE.md \
--name i2pbrowser \ --name i2pbrowser \
--app-version "$GITHUB_TAG" \ --app-version "$GITHUB_TAG" \
--input src/build \ --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 . ./config.sh
./preprelease.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}" \ github-release release --user "${GITHUB_USER}" \
--repo "${GITHUB_REPO}" \ --repo "${GITHUB_REPO}" \
--name "${GITHUB_NAME}" \ --name "${GITHUB_NAME}" \

View File

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

View File

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

Binary file not shown.

View File

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

Binary file not shown.

View File

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

Binary file not shown.

View File

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

View File

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

View File

@ -1,7 +1,12 @@
package net.i2p.i2pfirefox; package net.i2p.i2pfirefox;
import java.io.File; import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;
/** /**
* I2PChromium.java * I2PChromium.java
@ -66,20 +71,14 @@ public class I2PChromium extends I2PCommonBrowser {
} }
private static String[] FIND_CHROMIUM_SEARCH_PATHS_OSX() { private static String[] FIND_CHROMIUM_SEARCH_PATHS_OSX() {
String[] path = String[] path =
new String[] {"/Applications/Chromium.app/Contents/MacOS/", new String[] {"/Applications/Chromium.app", "/Applications/Chrome.app",
"/Applications/Waterfox.app/Contents/MacOS/", "/Applications/Brave.app"};
"/Applications/Librewolf.app/Contents/MacOS/"}; String[] exePath = new String[path.length];
String[] exes =
new String[] {"ungoogled-chromium", "chromium", "brave", "edge",
"ungoogled-chromium", "chrome"};
String[] exePath = new String[path.length * exes.length];
int i = 0; int i = 0;
for (String s : path) { for (String s : path) {
for (String exe : exes) { exePath[i] = s;
exePath[i] = s + "/" + exe;
i++; i++;
} }
}
return exePath; return exePath;
} }
private static String[] FIND_CHROMIUM_SEARCH_PATHS_WINDOWS() { private static String[] FIND_CHROMIUM_SEARCH_PATHS_WINDOWS() {
@ -511,13 +510,41 @@ public class I2PChromium extends I2PCommonBrowser {
} }
} }
} }
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( return new ProcessBuilder(newArgs).directory(
I2PChromiumProfileBuilder.runtimeDirectory(true)); I2PChromiumProfileBuilder.runtimeDirectory(true));
} else { }
}
logger.info("No Chromium found."); logger.info("No Chromium found.");
return new ProcessBuilder(args); return new ProcessBuilder(args);
} }
}
public Process launchAndDetatch(boolean privateWindow, String[] url) { public Process launchAndDetatch(boolean privateWindow, String[] url) {
int privateWindowInt = 0; int privateWindowInt = 0;

View File

@ -110,6 +110,28 @@ public class I2PCommonBrowser {
return false; 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); } // public static void logger.info(String line) { logger.info(line); }
private static File logFile() { private static File logFile() {
@ -394,4 +416,17 @@ public class I2PCommonBrowser {
* @param time * @param time
*/ */
public void setProxyTimeoutTime(int time) { CONFIGURED_TIMEOUT = 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; package net.i2p.i2pfirefox;
import java.io.File; import java.io.File;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
/** /**
* I2PFirefox.java * I2PFirefox.java
@ -58,9 +62,10 @@ public class I2PFirefox extends I2PCommonBrowser {
} }
private static String[] FIND_FIREFOX_SEARCH_PATHS_OSX() { private static String[] FIND_FIREFOX_SEARCH_PATHS_OSX() {
String[] path = String[] path =
new String[] {"/Applications/Firefox.app/Contents/MacOS/", new String[] {"/Applications/Tor Browser.app/Contents/MacOS",
"/Applications/Waterfox.app/Contents/MacOS/", "/Applications/Firefox.app/Contents/MacOS",
"/Applications/Librewolf.app/Contents/MacOS/"}; "/Applications/Waterfox.app/Contents/MacOS",
"/Applications/Librewolf.app/Contents/MacOS"};
String[] exes = new String[] {"firefox", "firefox-bin", "firefox-esr", String[] exes = new String[] {"firefox", "firefox-bin", "firefox-esr",
"waterfox", "waterfox-bin", "librewolf"}; "waterfox", "waterfox-bin", "librewolf"};
String[] exePath = new String[path.length * exes.length]; 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 // "firefox-esr", "waterfox", "waterfox-bin", "librewolf" up to a depth of 2
// directories deep. list the directories in the plugin directory // directories deep. list the directories in the plugin directory
if (plugin != null && !plugin.isEmpty()) { if (plugin != null && !plugin.isEmpty()) {
File pluginDir = new File(plugin); File userDir = new File(plugin);
if (pluginDir.exists()) { if (userDir.exists()) {
File[] pluginDirs = pluginDir.listFiles(); File[] userDirs = userDir.listFiles();
// list the files in the plugin directory for (File userDir1 : userDirs) {
for (File pluginDir1 : pluginDirs) { File[] userFiles = userDir1.listFiles();
File[] pluginFiles = pluginDir1.listFiles(); if (userFiles != null) {
// list the files in the plugin directory for (File userFile : userFiles) {
if (pluginFiles != null) { // logger.info("CHECKING NEARBY" + userFile.getAbsolutePath());
for (File pluginFile : pluginFiles) { if (userFile.isDirectory()) {
if (pluginFile.getName().equals("firefox") || File[] userFiles2 = userFile.listFiles();
pluginFile.getName().equals("firefox-bin") || for (File userFile2 : userFiles2) {
pluginFile.getName().equals("firefox-esr") || if (userFile2.isDirectory())
pluginFile.getName().equals("waterfox") || continue;
pluginFile.getName().equals("waterfox-bin") || if (userFile2.getName().equals("firefox") ||
pluginFile.getName().equals("librewolf")) { userFile2.getName().equals("firefox-bin") ||
return new String[] {pluginFile.getAbsolutePath()}; 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 // list the files in the user.dir directory
for (File userDir1 : userDirs) { for (File userDir1 : userDirs) {
File[] userFiles = userDir1.listFiles(); File[] userFiles = userDir1.listFiles();
// list the files in the user.dir directory
if (userFiles != null) { if (userFiles != null) {
for (File userFile : userFiles) { for (File userFile : userFiles) {
if (userFile.isDirectory()) if (userFile.isDirectory()) {
File[] userFiles2 = userFile.listFiles();
for (File userFile2 : userFiles2) {
if (userFile2.isDirectory())
continue; 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") || if (userFile.getName().equals("firefox") ||
userFile.getName().equals("firefox-bin") || userFile.getName().equals("firefox-bin") ||
userFile.getName().equals("firefox-esr") || userFile.getName().equals("firefox-esr") ||
@ -442,12 +475,44 @@ public class I2PFirefox extends I2PCommonBrowser {
} }
} }
} }
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( return new ProcessBuilder(newArgs).directory(
I2PFirefoxProfileBuilder.runtimeDirectory(true)); I2PFirefoxProfileBuilder.runtimeDirectory(true));
} else { }
} // else {
logger.info("No Firefox found."); logger.info("No Firefox found.");
return new ProcessBuilder(args); return new ProcessBuilder(args);
} //}
// return null;
} }
private String usabilityMode() { private String usabilityMode() {