Compare commits
596 Commits
0.31
...
android-tr
Author | SHA1 | Date | |
---|---|---|---|
![]() |
5cd23c5b3a | ||
![]() |
7bfc4f8c66 | ||
![]() |
ffc29deb8e | ||
![]() |
78a01f6cc1 | ||
![]() |
d09bb59a1f | ||
![]() |
e2f8a439b6 | ||
![]() |
95a282c07f | ||
![]() |
02f3cc871d | ||
![]() |
5d260c5a3e | ||
![]() |
b5758839e1 | ||
![]() |
a473da6a8e | ||
![]() |
75b4ff4b60 | ||
![]() |
d3cf9e8686 | ||
![]() |
7bd7701aeb | ||
![]() |
87c3a62f25 | ||
![]() |
4bc984a72d | ||
![]() |
7b6438dce5 | ||
![]() |
80d5367fed | ||
![]() |
a7902632bc | ||
![]() |
199e6577bb | ||
![]() |
00fd0aed62 | ||
![]() |
daaebe027d | ||
![]() |
3d39e75ffd | ||
![]() |
e013c093d8 | ||
![]() |
5b51fc2c27 | ||
![]() |
65e43abe02 | ||
![]() |
7f810f86d0 | ||
![]() |
899974c339 | ||
![]() |
6f30aeaf06 | ||
![]() |
d285063b4f | ||
![]() |
ffa282671b | ||
![]() |
e9acc1fe35 | ||
![]() |
04ebfedb84 | ||
![]() |
23d451cf92 | ||
![]() |
44628a1358 | ||
![]() |
04782aa099 | ||
![]() |
ff4302eb2b | ||
![]() |
9185a4daf2 | ||
![]() |
6b6a73dbdb | ||
![]() |
1729656189 | ||
![]() |
08b31efbfc | ||
![]() |
e124d61115 | ||
![]() |
e6e914cefe | ||
![]() |
4d2e68f79d | ||
![]() |
b5bb8ec694 | ||
![]() |
f0651edb06 | ||
![]() |
49ce0162d1 | ||
![]() |
153a49e18f | ||
![]() |
88cc54217c | ||
![]() |
83bb92c0cb | ||
![]() |
f337e64b81 | ||
![]() |
42f90273e2 | ||
![]() |
616d8429b7 | ||
![]() |
3261fd1505 | ||
![]() |
4ea8fd4826 | ||
![]() |
c899f7b1e7 | ||
![]() |
02bc927262 | ||
![]() |
5393d7f26f | ||
![]() |
fa66c26b09 | ||
![]() |
eec31ad3db | ||
![]() |
3a770cb518 | ||
![]() |
7de36bc86c | ||
![]() |
c0bf732253 | ||
![]() |
49948a524e | ||
![]() |
ac792dbcd5 | ||
![]() |
db8508e75b | ||
![]() |
95e0642126 | ||
![]() |
54b5be97e2 | ||
![]() |
8bebe2a920 | ||
![]() |
fedb2d3707 | ||
![]() |
b605ea515f | ||
![]() |
a38d18c049 | ||
![]() |
a0be345f86 | ||
![]() |
e08ce1c71e | ||
![]() |
f25a29052f | ||
![]() |
13c5042006 | ||
![]() |
01ce1a2f13 | ||
![]() |
8430e3b952 | ||
![]() |
ac09b72be3 | ||
![]() |
d901711c7b | ||
![]() |
88517a7b52 | ||
![]() |
39eb695522 | ||
![]() |
009bac364c | ||
![]() |
9741b21def | ||
![]() |
df7bc109ed | ||
![]() |
8cd9b53be3 | ||
![]() |
9db61be253 | ||
![]() |
78a1794568 | ||
![]() |
aa9805e107 | ||
![]() |
a992553ffb | ||
![]() |
3a30961cd1 | ||
![]() |
a6aba7b5f7 | ||
![]() |
26c4152bf6 | ||
![]() |
8230fe92a7 | ||
![]() |
6d0cda9e67 | ||
![]() |
12992c461b | ||
![]() |
531963c1c0 | ||
![]() |
8bfb7cdd27 | ||
![]() |
40899889a0 | ||
![]() |
bc88ca80fd | ||
![]() |
3b3744ffff | ||
![]() |
9cd6ce888e | ||
![]() |
7b2216a12f | ||
![]() |
1946669b82 | ||
![]() |
bb14021bc0 | ||
![]() |
51510abaed | ||
![]() |
f837eb18d5 | ||
![]() |
bf4b160dcd | ||
![]() |
7bd08ab6e0 | ||
![]() |
647c0523e8 | ||
![]() |
58b874d17f | ||
![]() |
969d2769fd | ||
![]() |
d88d6b2f61 | ||
![]() |
b420dc0a28 | ||
![]() |
0489a2774f | ||
![]() |
49f394acca | ||
![]() |
dd788b15ca | ||
![]() |
84981fa801 | ||
![]() |
d328dd1ca0 | ||
![]() |
590f2c7cd8 | ||
![]() |
e93ad94c89 | ||
![]() |
203decf121 | ||
![]() |
5ab871b51f | ||
![]() |
858d03fa2b | ||
![]() |
374ce51eff | ||
![]() |
cd3dafe9c8 | ||
![]() |
8c256241cb | ||
![]() |
18cc8eb962 | ||
![]() |
f1fd2f6fb6 | ||
![]() |
691dff77a0 | ||
![]() |
0910986d52 | ||
![]() |
8d4e38ccdf | ||
![]() |
e67c266ce0 | ||
![]() |
9c12df60d2 | ||
![]() |
5fb224fdfa | ||
![]() |
9a0daa480d | ||
![]() |
b041f7f8c7 | ||
![]() |
42cb2aae64 | ||
![]() |
449e3dbee6 | ||
![]() |
422bfa6c18 | ||
![]() |
f1909ec923 | ||
![]() |
a3bb8a6fe9 | ||
![]() |
3596a7e6fd | ||
![]() |
1d9b3b5001 | ||
![]() |
cf99bde088 | ||
![]() |
c3d73649a0 | ||
![]() |
a4336b105f | ||
![]() |
a56bf3101d | ||
![]() |
7822c7b9fe | ||
![]() |
15fffd25dc | ||
![]() |
1c7ec493cb | ||
![]() |
11fd9efd31 | ||
![]() |
08a1e73008 | ||
![]() |
e09546d6bb | ||
![]() |
fa0aedda92 | ||
![]() |
105aaed014 | ||
![]() |
fff55eadd6 | ||
![]() |
db43f2760a | ||
![]() |
ba0d4abc53 | ||
![]() |
65636c2b5e | ||
![]() |
4c2a7978f2 | ||
![]() |
7e97ab766a | ||
![]() |
16b1990bd9 | ||
![]() |
2c7b092376 | ||
![]() |
100f27b4be | ||
![]() |
357b1a93b4 | ||
![]() |
d8d075bd76 | ||
![]() |
9fefb82c57 | ||
![]() |
566f987483 | ||
![]() |
0a0d065b6a | ||
![]() |
69186671ed | ||
![]() |
ede59d7c3a | ||
![]() |
4012bdea45 | ||
![]() |
6d6dce88dd | ||
![]() |
0ba0aafa7c | ||
![]() |
87f9df4af7 | ||
![]() |
09de46cadf | ||
![]() |
a2be795853 | ||
![]() |
cf91b77e8d | ||
![]() |
a37387fa89 | ||
![]() |
658f162193 | ||
![]() |
1e71e8bdce | ||
![]() |
53b9732cae | ||
![]() |
c89bfa8f1e | ||
![]() |
cf7d137d00 | ||
![]() |
bc1ef95a16 | ||
![]() |
342ead307d | ||
![]() |
2bc6e9dfc2 | ||
![]() |
7219667fdb | ||
![]() |
abc1882004 | ||
![]() |
0d0656bcc0 | ||
![]() |
bbda71c8b5 | ||
![]() |
6eb6afab81 | ||
![]() |
a677552690 | ||
![]() |
7758822256 | ||
![]() |
4296fcb132 | ||
![]() |
a7746d867b | ||
![]() |
ea333b3cec | ||
![]() |
b9ac5a5072 | ||
![]() |
1401726f54 | ||
![]() |
11c03fb2aa | ||
![]() |
b4d1108e9c | ||
![]() |
a6b7f29bbd | ||
![]() |
1eb293d754 | ||
![]() |
f3a61d2619 | ||
![]() |
0b1aa5941b | ||
![]() |
ad5882501d | ||
![]() |
e014619881 | ||
![]() |
677c5c6a68 | ||
![]() |
a3217e2bcf | ||
![]() |
4ab7069015 | ||
![]() |
3a13270479 | ||
![]() |
a8eb2b90a2 | ||
![]() |
e54754a83a | ||
![]() |
7f3b6c7359 | ||
![]() |
50ff84111d | ||
![]() |
984643e1b2 | ||
![]() |
917fd00771 | ||
![]() |
97ee549d40 | ||
![]() |
e0232fa3bc | ||
![]() |
8d23820c65 | ||
![]() |
8a6d11594f | ||
![]() |
58dadaefc7 | ||
![]() |
eb92f1b275 | ||
![]() |
4862b0692f | ||
![]() |
377ab1d6b1 | ||
![]() |
cceeb4b613 | ||
![]() |
f109d66ab7 | ||
![]() |
0a447caa82 | ||
![]() |
1f7be5c9c3 | ||
![]() |
cd0d55d06f | ||
![]() |
8c40a01b2f | ||
![]() |
8e6832cf6c | ||
![]() |
311b837ef4 | ||
![]() |
d751622d7c | ||
![]() |
6406f70824 | ||
![]() |
96ee234a17 | ||
![]() |
87c52a0931 | ||
![]() |
d0136f2c6d | ||
![]() |
d0f4ff9fbb | ||
![]() |
2d1ae1fab8 | ||
![]() |
f8d99c8fca | ||
![]() |
aeeedc8d4c | ||
![]() |
e9e3ce085a | ||
![]() |
a192d17e68 | ||
![]() |
62d93a64c0 | ||
![]() |
aad47b03b1 | ||
![]() |
bc8317bd19 | ||
![]() |
1d209c52c8 | ||
![]() |
28901b8e65 | ||
![]() |
2ba386dc53 | ||
![]() |
25b1628b7c | ||
![]() |
f4d7217ce3 | ||
![]() |
89f64fa1be | ||
![]() |
0176755b72 | ||
![]() |
759b7f930e | ||
![]() |
7a9f347a5c | ||
![]() |
7f83404453 | ||
![]() |
e194893227 | ||
![]() |
299e6c5ba3 | ||
![]() |
0b2a615048 | ||
![]() |
49c4b09804 | ||
![]() |
be7e76524d | ||
![]() |
8be88b92a8 | ||
![]() |
b0014a3a1d | ||
![]() |
4e8b5ffd72 | ||
![]() |
f87cb9808a | ||
![]() |
b8f2d9a2c0 | ||
![]() |
76048db188 | ||
![]() |
36a87d8005 | ||
![]() |
cab085e88b | ||
![]() |
5fbd32e6eb | ||
![]() |
1de2a9e1c6 | ||
![]() |
a706eaa81f | ||
![]() |
90783c8e08 | ||
![]() |
3926cea990 | ||
![]() |
9eb0ed05ca | ||
![]() |
b3b1f138ee | ||
![]() |
db7448e19c | ||
![]() |
ce6caa0ddb | ||
![]() |
23908bae18 | ||
![]() |
9900d72709 | ||
![]() |
0bd4c09b02 | ||
![]() |
7ae922c4bc | ||
![]() |
2526de4b97 | ||
![]() |
8ee34ffd6a | ||
![]() |
d92954b738 | ||
![]() |
c5dfbe617a | ||
![]() |
bcb7830a63 | ||
![]() |
47760ab1df | ||
![]() |
52da62dcd3 | ||
![]() |
62cf0bdb1d | ||
![]() |
21d44755c3 | ||
![]() |
38d1170d87 | ||
![]() |
eb07a7079c | ||
![]() |
4f7a226574 | ||
![]() |
e8c94b2255 | ||
![]() |
c4b320e8f4 | ||
![]() |
bd4cd77905 | ||
![]() |
5068856c3d | ||
![]() |
5485ec60a1 | ||
![]() |
cd6061def5 | ||
![]() |
0e1f5921d6 | ||
![]() |
518e04a40b | ||
![]() |
87edb2c448 | ||
![]() |
c17910e501 | ||
![]() |
2be96865b6 | ||
![]() |
ba8e45d878 | ||
![]() |
55c800e048 | ||
![]() |
15a0e838b3 | ||
![]() |
fdbc208bfe | ||
![]() |
6db47ecca0 | ||
![]() |
e2326bcadb | ||
![]() |
d94074b0ce | ||
![]() |
b412103994 | ||
![]() |
b84de0b10e | ||
![]() |
3b6c164ce5 | ||
![]() |
2831ab9759 | ||
![]() |
72954ceda6 | ||
![]() |
923688b914 | ||
![]() |
79cdeade98 | ||
![]() |
aeda8818e2 | ||
![]() |
aea232e56b | ||
![]() |
8d1a76922c | ||
![]() |
708c15308d | ||
![]() |
b70b112c1b | ||
![]() |
12b5f8e7cc | ||
![]() |
14fe263e24 | ||
![]() |
e0226b4645 | ||
![]() |
b1220ca11c | ||
![]() |
5c3c56e415 | ||
![]() |
f07e6d8173 | ||
![]() |
82b9670f28 | ||
![]() |
609cc71f32 | ||
![]() |
965311627e | ||
![]() |
3b2112076b | ||
![]() |
5c268f8b3d | ||
![]() |
50e198ed2c | ||
![]() |
29d4d0b3c8 | ||
![]() |
01695e812a | ||
![]() |
d9dd454e8c | ||
![]() |
915a86c223 | ||
![]() |
a99a7067cb | ||
![]() |
074ff44066 | ||
![]() |
e54435f65d | ||
![]() |
7c48260713 | ||
![]() |
bcbe8dfd94 | ||
![]() |
7a04512440 | ||
![]() |
84d1600c35 | ||
![]() |
03e45cb00d | ||
![]() |
068548089d | ||
![]() |
07cdf98970 | ||
![]() |
12461b7277 | ||
![]() |
abb006addf | ||
![]() |
8b28bd23c1 | ||
![]() |
3d2cd87b92 | ||
![]() |
2d91e0c009 | ||
![]() |
4e30e1c613 | ||
![]() |
907a9e7d20 | ||
![]() |
ec7655bfa9 | ||
![]() |
a84f29d9f1 | ||
![]() |
de8eb976db | ||
![]() |
24fd8a98c3 | ||
![]() |
a06b349d5f | ||
![]() |
855febc1b4 | ||
![]() |
e49f7a7daf | ||
![]() |
2e9ae83daa | ||
![]() |
c222b4ed0b | ||
![]() |
493b1e3cfb | ||
![]() |
85aad86268 | ||
![]() |
7946b7592f | ||
![]() |
e79b6c7d22 | ||
![]() |
461ec921b2 | ||
![]() |
7169018292 | ||
![]() |
3dbce313a0 | ||
![]() |
db6c275321 | ||
![]() |
e2b631fafa | ||
![]() |
95ed7cb751 | ||
![]() |
e20f0d8552 | ||
![]() |
8b44325565 | ||
![]() |
4f8db01542 | ||
![]() |
e245aff6bd | ||
![]() |
7501f4c1a5 | ||
![]() |
9b02651985 | ||
![]() |
e04db247e8 | ||
![]() |
4e30e1077b | ||
![]() |
040b57781e | ||
![]() |
07ca54a885 | ||
![]() |
e125b77d11 | ||
![]() |
851e3854a7 | ||
![]() |
0d414130a7 | ||
![]() |
25a7b523f9 | ||
![]() |
3d0b7db6dc | ||
![]() |
2e8727a309 | ||
![]() |
01fbf32acd | ||
![]() |
e2642553b5 | ||
![]() |
d04709e3a5 | ||
![]() |
10dd0af335 | ||
![]() |
b33a7b623b | ||
![]() |
55841f8421 | ||
![]() |
303bd90d84 | ||
![]() |
274eb1a98b | ||
![]() |
4e544dd9e4 | ||
![]() |
6fe1bc3fb5 | ||
![]() |
4897ceff7f | ||
![]() |
8551a13494 | ||
![]() |
064ec504b5 | ||
![]() |
16c9fbb19f | ||
![]() |
ca58d2e307 | ||
![]() |
fc89fe9ada | ||
![]() |
d6ece55d71 | ||
![]() |
ff9a1484b0 | ||
![]() |
70e3bee4da | ||
![]() |
cd25d95fdf | ||
![]() |
65c914a9d0 | ||
![]() |
c0bb7e234d | ||
![]() |
3fefc88a38 | ||
![]() |
5a5cc51536 | ||
![]() |
25ec2d58c1 | ||
![]() |
f896f6ef92 | ||
![]() |
e10d96905b | ||
![]() |
9e015c51ef | ||
![]() |
ff9ba99476 | ||
![]() |
ce4ec0cdfc | ||
![]() |
5b9c706cc9 | ||
![]() |
2aba15f280 | ||
![]() |
fd5364ab8e | ||
![]() |
08639cbf43 | ||
![]() |
52ba8fa837 | ||
![]() |
2b69ff05cf | ||
![]() |
6a8a9039c9 | ||
![]() |
3a52c4e2a6 | ||
![]() |
2fb1d71ae9 | ||
![]() |
185467937c | ||
![]() |
64c5c05b82 | ||
![]() |
4615513bb2 | ||
![]() |
3b63ba945d | ||
![]() |
1911641cd0 | ||
![]() |
e18eeaf934 | ||
![]() |
ea92d4a5b8 | ||
![]() |
51cc8c96e1 | ||
![]() |
12fff599f0 | ||
![]() |
30231ab974 | ||
![]() |
1362ca32d9 | ||
![]() |
0c64c301c9 | ||
![]() |
38147d45e1 | ||
![]() |
093db8443c | ||
![]() |
56a220136b | ||
![]() |
e903349e4c | ||
![]() |
175683a8ed | ||
![]() |
d7449a5e8a | ||
![]() |
3bcbfc1e58 | ||
![]() |
13210031e6 | ||
![]() |
5a2acc1c1c | ||
![]() |
4aed7e0db4 | ||
![]() |
f4d2334900 | ||
![]() |
7902aded0a | ||
![]() |
256a990ebc | ||
![]() |
ff883a2a9a | ||
![]() |
d1943b4262 | ||
![]() |
c96ec6c3b7 | ||
![]() |
6467ea6f63 | ||
![]() |
352d71af26 | ||
![]() |
ab7774ea29 | ||
![]() |
4e00c72d5f | ||
![]() |
acd7adc9c1 | ||
![]() |
94f0124f0f | ||
![]() |
89523390de | ||
![]() |
77f57d7f1e | ||
![]() |
a33afc52d3 | ||
![]() |
b06facacb0 | ||
![]() |
bd4c9c0658 | ||
![]() |
b23b90baa1 | ||
![]() |
5b6224f9ce | ||
![]() |
232ada5ed3 | ||
![]() |
2fab8e042f | ||
![]() |
749ff30b5b | ||
![]() |
f0b4a0a849 | ||
![]() |
870eaa6e3e | ||
![]() |
c7af1a0d72 | ||
![]() |
4c10cd2855 | ||
![]() |
6f45363692 | ||
![]() |
8d14c945f3 | ||
![]() |
070955225d | ||
![]() |
9987325f1a | ||
![]() |
2bbeed8385 | ||
![]() |
875fe8b86d | ||
![]() |
b2184119f7 | ||
![]() |
cb5fa75616 | ||
![]() |
5c7a80997f | ||
![]() |
32035348c1 | ||
![]() |
049b79753e | ||
![]() |
25c24757d4 | ||
![]() |
2d17f4fb0f | ||
![]() |
916ee81668 | ||
![]() |
1dd48e4344 | ||
![]() |
c93e16875f | ||
![]() |
fbaf1dca30 | ||
![]() |
527e91b6cf | ||
![]() |
ee0ca69195 | ||
![]() |
709854c1d1 | ||
![]() |
9ebdcc94c5 | ||
![]() |
9e07c3e554 | ||
![]() |
399365b2b7 | ||
![]() |
52381453fb | ||
![]() |
317034cb5a | ||
![]() |
e9b5060203 | ||
![]() |
2ea3bc169b | ||
![]() |
f4c45c4834 | ||
![]() |
80bcf6e7ea | ||
![]() |
b7a887c578 | ||
![]() |
731a929a88 | ||
![]() |
8eb75be6ec | ||
![]() |
30ce917afa | ||
![]() |
0d5fb3c1bd | ||
![]() |
6d5f56922b | ||
![]() |
8b0bea4e7d | ||
![]() |
92057d459d | ||
![]() |
0c30b2e921 | ||
![]() |
df1d971a4d | ||
![]() |
9bd7485d4a | ||
![]() |
c98f0399d2 | ||
![]() |
15a20cc25f | ||
![]() |
b342039e8f | ||
![]() |
343cec93e2 | ||
![]() |
b05ee528fd | ||
![]() |
d7c4340b4c | ||
![]() |
e819532f29 | ||
![]() |
a1a9c8221e | ||
![]() |
1ebf80b644 | ||
![]() |
3727987dd3 | ||
![]() |
34e1251292 | ||
![]() |
fdf777640d | ||
![]() |
4cde00c7de | ||
![]() |
92ce8431a2 | ||
![]() |
f233972323 | ||
![]() |
f27a59c193 | ||
![]() |
b9200a4313 | ||
![]() |
b7ebbd5b79 | ||
![]() |
e631c82363 | ||
![]() |
43e6818324 | ||
![]() |
fc019c58bb | ||
![]() |
2e8a61de2e | ||
![]() |
d770abcce8 | ||
![]() |
ecda2d7102 | ||
![]() |
f670bef983 | ||
![]() |
aa71f917a6 | ||
![]() |
33cfbc324a | ||
![]() |
38d5dcb929 | ||
![]() |
994b021a95 | ||
![]() |
c2f321b26b | ||
![]() |
04d58b33be | ||
![]() |
a7562fd66e | ||
![]() |
595f02c01b | ||
![]() |
3d4a49827f | ||
![]() |
fa579b8586 | ||
![]() |
58b91e1a80 | ||
![]() |
997689806b | ||
![]() |
df4d9e93a6 | ||
![]() |
6cd37b51c0 | ||
![]() |
924dd29323 | ||
![]() |
c92c0caa0f | ||
![]() |
b278450aea | ||
![]() |
1f014dd37e | ||
![]() |
a87722b6fc | ||
![]() |
c0ea4df7ec | ||
![]() |
3a2fca2f26 | ||
![]() |
ec1f547f09 | ||
![]() |
d1643e8c71 | ||
![]() |
52f695691c | ||
![]() |
1619181fc9 | ||
![]() |
fa3c94b736 | ||
![]() |
c61aa13ffc | ||
![]() |
ab0282bde9 | ||
![]() |
86913e18d3 | ||
![]() |
c4a2fa6ec0 | ||
![]() |
14b246fc00 | ||
![]() |
577c10aee7 | ||
![]() |
a51fd5ffa7 | ||
![]() |
08eeb054c3 | ||
![]() |
af08c3d800 | ||
![]() |
e6f1fbbe8b | ||
![]() |
73943f9d43 | ||
![]() |
1edd41900f | ||
![]() |
b9d6171c8d | ||
![]() |
00dd8fe597 | ||
![]() |
556e797945 | ||
![]() |
32997bdf68 | ||
![]() |
2ae30167ab | ||
![]() |
3febeb5214 | ||
![]() |
222e3b442b | ||
![]() |
6d5b2217cb | ||
![]() |
a6860e50be | ||
![]() |
918bb09226 | ||
![]() |
3b6fbd6ef1 | ||
![]() |
b42ec59d41 |
252
.eslintrc.js
Normal file
252
.eslintrc.js
Normal file
@@ -0,0 +1,252 @@
|
||||
module.exports = {
|
||||
env: {
|
||||
browser: true,
|
||||
es6: true,
|
||||
webextensions: true,
|
||||
},
|
||||
extends: "eslint:recommended",
|
||||
globals: {
|
||||
Atomics: "readonly",
|
||||
SharedArrayBuffer: "readonly",
|
||||
},
|
||||
parserOptions: {
|
||||
ecmaVersion: 2018,
|
||||
},
|
||||
rules: {
|
||||
"accessor-pairs": "error",
|
||||
"array-bracket-newline": "error",
|
||||
"array-bracket-spacing": ["error", "never"],
|
||||
"array-callback-return": "error",
|
||||
"array-element-newline": "error",
|
||||
"arrow-body-style": "error",
|
||||
"arrow-parens": ["error", "as-needed"],
|
||||
"arrow-spacing": [
|
||||
"error",
|
||||
{
|
||||
after: true,
|
||||
before: true,
|
||||
},
|
||||
],
|
||||
"block-scoped-var": "off",
|
||||
"block-spacing": "error",
|
||||
"brace-style": ["error", "1tbs"],
|
||||
"callback-return": "error",
|
||||
camelcase: "off",
|
||||
"capitalized-comments": "off",
|
||||
"class-methods-use-this": "error",
|
||||
"comma-dangle": "error",
|
||||
"comma-spacing": [
|
||||
"error",
|
||||
{
|
||||
after: true,
|
||||
before: false,
|
||||
},
|
||||
],
|
||||
"comma-style": ["error", "last"],
|
||||
complexity: "error",
|
||||
"computed-property-spacing": ["error", "never"],
|
||||
"consistent-return": "off",
|
||||
"consistent-this": "error",
|
||||
curly: "error",
|
||||
"default-case": "error",
|
||||
"default-param-last": "error",
|
||||
"dot-location": "off",
|
||||
"dot-notation": "off",
|
||||
"eol-last": "error",
|
||||
eqeqeq: "off",
|
||||
"func-call-spacing": "error",
|
||||
"func-name-matching": "error",
|
||||
"func-names": "off",
|
||||
"func-style": "off",
|
||||
"function-call-argument-newline": ["error", "consistent"],
|
||||
"function-paren-newline": "off",
|
||||
"generator-star-spacing": "error",
|
||||
"global-require": "error",
|
||||
"guard-for-in": "error",
|
||||
"handle-callback-err": "error",
|
||||
"id-blacklist": "error",
|
||||
"id-length": "error",
|
||||
"id-match": "error",
|
||||
"implicit-arrow-linebreak": ["error", "beside"],
|
||||
indent: "off",
|
||||
"indent-legacy": "off",
|
||||
"init-declarations": "error",
|
||||
"jsx-quotes": "error",
|
||||
"key-spacing": "error",
|
||||
"keyword-spacing": [
|
||||
"error",
|
||||
{
|
||||
after: true,
|
||||
before: true,
|
||||
},
|
||||
],
|
||||
"line-comment-position": "error",
|
||||
"linebreak-style": ["error", "unix"],
|
||||
"lines-around-comment": "off",
|
||||
"lines-around-directive": "error",
|
||||
"lines-between-class-members": "error",
|
||||
"max-classes-per-file": "error",
|
||||
"max-depth": "error",
|
||||
"max-len": "error",
|
||||
"max-lines": "off",
|
||||
"max-lines-per-function": "off",
|
||||
"max-nested-callbacks": "error",
|
||||
"max-params": "error",
|
||||
"max-statements": "off",
|
||||
"max-statements-per-line": "error",
|
||||
"multiline-comment-style": ["error", "bare-block"],
|
||||
"multiline-ternary": "error",
|
||||
"new-cap": "off",
|
||||
"new-parens": "error",
|
||||
"newline-after-var": "off",
|
||||
"newline-before-return": "off",
|
||||
"newline-per-chained-call": "error",
|
||||
"no-alert": "error",
|
||||
"no-array-constructor": "error",
|
||||
"no-await-in-loop": "error",
|
||||
"no-bitwise": "error",
|
||||
"no-buffer-constructor": "error",
|
||||
"no-caller": "error",
|
||||
"no-catch-shadow": "error",
|
||||
"no-confusing-arrow": "error",
|
||||
"no-console": "off",
|
||||
"no-continue": "error",
|
||||
"no-div-regex": "error",
|
||||
"no-duplicate-imports": "error",
|
||||
"no-else-return": "off",
|
||||
"no-empty-function": "error",
|
||||
"no-eq-null": "error",
|
||||
"no-eval": "error",
|
||||
"no-extend-native": "error",
|
||||
"no-extra-bind": "error",
|
||||
"no-extra-label": "error",
|
||||
"no-extra-parens": "error",
|
||||
"no-floating-decimal": "error",
|
||||
"no-implicit-coercion": "error",
|
||||
"no-implicit-globals": "off",
|
||||
"no-implied-eval": "error",
|
||||
"no-import-assign": "error",
|
||||
"no-inline-comments": "error",
|
||||
"no-inner-declarations": "off",
|
||||
"no-invalid-this": "error",
|
||||
"no-iterator": "error",
|
||||
"no-label-var": "error",
|
||||
"no-labels": "error",
|
||||
"no-lone-blocks": "error",
|
||||
"no-lonely-if": "error",
|
||||
"no-loop-func": "error",
|
||||
"no-magic-numbers": "off",
|
||||
"no-mixed-operators": "error",
|
||||
"no-mixed-requires": "error",
|
||||
"no-multi-assign": "error",
|
||||
"no-multi-spaces": "error",
|
||||
"no-multi-str": "error",
|
||||
"no-multiple-empty-lines": "error",
|
||||
"no-native-reassign": "error",
|
||||
"no-negated-condition": "error",
|
||||
"no-negated-in-lhs": "error",
|
||||
"no-nested-ternary": "error",
|
||||
"no-new": "error",
|
||||
"no-new-func": "error",
|
||||
"no-new-object": "error",
|
||||
"no-new-require": "error",
|
||||
"no-new-wrappers": "error",
|
||||
"no-octal-escape": "error",
|
||||
"no-param-reassign": "error",
|
||||
"no-path-concat": "error",
|
||||
"no-plusplus": "error",
|
||||
"no-process-env": "error",
|
||||
"no-process-exit": "error",
|
||||
"no-proto": "error",
|
||||
"no-restricted-globals": "error",
|
||||
"no-restricted-imports": "error",
|
||||
"no-restricted-modules": "error",
|
||||
"no-restricted-properties": "error",
|
||||
"no-restricted-syntax": "error",
|
||||
"no-return-assign": "error",
|
||||
"no-return-await": "error",
|
||||
"no-script-url": "error",
|
||||
"no-self-compare": "error",
|
||||
"no-sequences": "error",
|
||||
"no-shadow": "error",
|
||||
"no-spaced-func": "error",
|
||||
"no-sync": "error",
|
||||
"no-tabs": "error",
|
||||
"no-template-curly-in-string": "error",
|
||||
"no-ternary": "error",
|
||||
"no-throw-literal": "error",
|
||||
"no-trailing-spaces": "error",
|
||||
"no-undef-init": "error",
|
||||
"no-undefined": "off",
|
||||
"no-underscore-dangle": "error",
|
||||
"no-unmodified-loop-condition": "error",
|
||||
"no-unneeded-ternary": "error",
|
||||
"no-unused-expressions": "error",
|
||||
"no-unused-vars": "off",
|
||||
"no-use-before-define": "off",
|
||||
"no-useless-call": "error",
|
||||
"no-useless-computed-key": "error",
|
||||
"no-useless-concat": "error",
|
||||
"no-useless-constructor": "error",
|
||||
"no-useless-rename": "error",
|
||||
"no-useless-return": "error",
|
||||
"no-var": "off",
|
||||
"no-void": "error",
|
||||
"no-warning-comments": "error",
|
||||
"no-whitespace-before-property": "error",
|
||||
"nonblock-statement-body-position": "error",
|
||||
"object-curly-newline": "error",
|
||||
"object-curly-spacing": "off",
|
||||
"object-property-newline": "error",
|
||||
"object-shorthand": "error",
|
||||
"one-var": "off",
|
||||
"one-var-declaration-per-line": "error",
|
||||
"operator-assignment": "error",
|
||||
"operator-linebreak": "error",
|
||||
"padded-blocks": "off",
|
||||
"padding-line-between-statements": "error",
|
||||
"prefer-arrow-callback": "off",
|
||||
"prefer-const": "off",
|
||||
"prefer-destructuring": "off",
|
||||
"prefer-named-capture-group": "error",
|
||||
"prefer-numeric-literals": "error",
|
||||
"prefer-object-spread": "error",
|
||||
"prefer-promise-reject-errors": "error",
|
||||
"prefer-reflect": "error",
|
||||
"prefer-regex-literals": "error",
|
||||
"prefer-rest-params": "error",
|
||||
"prefer-spread": "error",
|
||||
"prefer-template": "off",
|
||||
"quote-props": "off",
|
||||
quotes: ["error", "double"],
|
||||
radix: "error",
|
||||
"require-await": "error",
|
||||
"require-jsdoc": "off",
|
||||
"require-unicode-regexp": "error",
|
||||
"rest-spread-spacing": "error",
|
||||
semi: "error",
|
||||
"semi-spacing": "error",
|
||||
"semi-style": ["error", "last"],
|
||||
"sort-imports": "error",
|
||||
"sort-keys": "off",
|
||||
"sort-vars": "error",
|
||||
"space-before-blocks": "error",
|
||||
"space-before-function-paren": "off",
|
||||
"space-in-parens": ["error", "never"],
|
||||
"space-infix-ops": "error",
|
||||
"space-unary-ops": "error",
|
||||
"spaced-comment": "off",
|
||||
strict: ["error", "never"],
|
||||
"switch-colon-spacing": "error",
|
||||
"symbol-description": "error",
|
||||
"template-curly-spacing": "error",
|
||||
"template-tag-spacing": "error",
|
||||
"unicode-bom": ["error", "never"],
|
||||
"valid-jsdoc": "error",
|
||||
"vars-on-top": "off",
|
||||
"wrap-iife": "error",
|
||||
"wrap-regex": "error",
|
||||
"yield-star-spacing": "error",
|
||||
yoda: ["error", "never"],
|
||||
},
|
||||
};
|
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,2 +1,5 @@
|
||||
README.md.asc
|
||||
|
||||
node_modules/
|
||||
web-ext-artifacts
|
||||
releases.diff
|
||||
.releases.atom
|
3
.web-extension-id
Normal file
3
.web-extension-id
Normal file
@@ -0,0 +1,3 @@
|
||||
# This file was created by https://github.com/mozilla/web-ext
|
||||
# Your auto-generated extension ID for addons.mozilla.org is:
|
||||
i2ppb@eyedeekay.github.io
|
21
LICENSE
21
LICENSE
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2019 idk
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
400
Makefile
400
Makefile
@@ -1,76 +1,380 @@
|
||||
PREFIX:=/usr
|
||||
|
||||
PREFIX?=/usr
|
||||
|
||||
default: zip
|
||||
|
||||
PWD=`pwd`
|
||||
|
||||
install: uninstall
|
||||
install -d $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
|
||||
install -d options $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io/options
|
||||
install -d icons $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io/icons
|
||||
install -d _locales $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io/_locales
|
||||
install background.js $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install proxy.js $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install info.js $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install content.js $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install info.css $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install window.html $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install manifest.json $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io/
|
||||
install README.md $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install LICENSE $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
ln -sf $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2psetproxy.js@eyedeekay.github.io
|
||||
mkdir -p $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
|
||||
@echo $(PWD)
|
||||
cp -v ./* $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/; true
|
||||
cp -vr ./i2pcontrol $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/i2pcontrol
|
||||
cp -vr ./torrent $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/torrent
|
||||
cp -vr ./_locales $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/_locales
|
||||
cp -vr ./icons $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/icons
|
||||
cp -vr ./options $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io/options
|
||||
make link
|
||||
|
||||
link:
|
||||
ln -sf $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2ppb@eyedeekay.github.io
|
||||
|
||||
uninstall:
|
||||
rm -rf $(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2psetproxy.js@eyedeekay.github.io
|
||||
rm -rf $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io \
|
||||
$(PREFIX)/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2ppb@eyedeekay.github.io
|
||||
|
||||
clobber:
|
||||
rm -f ../i2psetproxy.js.zip ../i2p_proxy*.xpi
|
||||
|
||||
VERSION=1.27
|
||||
ls:
|
||||
ls -lah $(PREFIX)/share/webext/i2ppb@eyedeekay.github.io; \
|
||||
ls -lah $(PREFIX)/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}
|
||||
|
||||
xpi:
|
||||
mv ~/Downloads/i2p_proxy-$(VERSION)-an+fx.xpi ../i2psetproxy.js@eyedeekay.github.io.xpi
|
||||
clean: rc clean-artifacts
|
||||
rm -fr ../i2psetproxy.js.zip ../i2p_proxy*.xpi *.torrent #../i2psetproxy.js_*.*
|
||||
|
||||
cp:
|
||||
cp ../i2psetproxy.js@eyedeekay.github.io.xpi ./i2psetproxy.js@eyedeekay.github.io.xpi
|
||||
## EVEN RELEASES are AMO RELEASES
|
||||
## ODD RELEASES are SELFHOSTED RELEASES
|
||||
|
||||
MOZ_VERSION=0.114
|
||||
VERSION=0.113
|
||||
|
||||
## INCREMENT THIS EVERY TIME YOU DO A RELEASE
|
||||
LAST_VERSION=0.111.1
|
||||
|
||||
YELLOW=F7E59A
|
||||
ORANGE=FFC56D
|
||||
GREY=D9D9D6
|
||||
BLUE=A4C8E1
|
||||
PURPLE=A48fE1
|
||||
|
||||
colors:
|
||||
@echo " yellow $(YELLOW) \n orange $(ORANGE) \n grey $(GREY) \n blue $(BLUE) \n purple $(PURPLE)"
|
||||
|
||||
amo-readme:
|
||||
markdown README.md | \
|
||||
sed 's|<p>||g' | \
|
||||
sed 's|</p>||g' | \
|
||||
sed 's|<h1>|<strong>|g' | \
|
||||
sed 's|</h1>|</strong>|g' | \
|
||||
sed 's|<h2>|<strong>|g' | \
|
||||
sed 's|</h2>|</strong>|g' | \
|
||||
sed 's|<h3>|<strong>|g' | \
|
||||
sed 's|</h3>|</strong>|g' | \
|
||||
grep -v '<img' > amo-index.html
|
||||
|
||||
MAGNET=`rhash --magnet i2ppb@eyedeekay.github.io.xpi.torrent`
|
||||
|
||||
index:
|
||||
@echo "<!DOCTYPE html>" > index.html
|
||||
@echo "<html>" >> index.html
|
||||
@echo "<head>" >> index.html
|
||||
@echo " <title>I2P in Private Browsing Mode</title>" >> index.html
|
||||
@echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"home.css\" />" >> index.html
|
||||
@echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"sidebar.css\" />" >> index.html
|
||||
@echo "</head>" >> index.html
|
||||
@echo "<body>" >> index.html
|
||||
sed "s|magnetsub|[Magnet Link]($(MAGNET))|g" README.md | sed 's|README.md|index.html|g' | markdown >> index.html
|
||||
@echo "</body>" >> index.html
|
||||
@echo "</html>" >> index.html
|
||||
|
||||
torrenthelp:
|
||||
@echo "<!DOCTYPE html>" > torrent/index.html
|
||||
@echo "<html>" >> torrent/index.html
|
||||
@echo "<head>" >> torrent/index.html
|
||||
@echo " <title>I2P in Private Browsing Mode</title>" >> torrent/index.html
|
||||
@echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"../home.css\" />" >> torrent/index.html
|
||||
@echo " <link rel=\"stylesheet\" type=\"text/css\" href=\"../sidebar.css\" />" >> torrent/index.html
|
||||
@echo "</head>" >> torrent/index.html
|
||||
@echo "<body>" >> torrent/index.html
|
||||
sed "s|magnetsub|[Magnet Link]($(MAGNET))|g" torrent/README.md | markdown >> torrent/index.html
|
||||
@echo "</body>" >> torrent/index.html
|
||||
@echo "</html>" >> torrent/index.html
|
||||
|
||||
xpi: getxpi
|
||||
|
||||
version:
|
||||
sed -i 's|7647|7657|g' *.js* torrent/*.js*
|
||||
sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(VERSION)\",|g' manifest.json
|
||||
# sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(VERSION)\",|g' manifest.json
|
||||
find . -name 'messages.json' -exec sed -i 's|$(LAST_VERSION)|$(VERSION)|g' {} \;
|
||||
find . -name 'messages.json' -exec sed -i 's|$(MOZ_VERSION)|$(VERSION)|g' {} \;
|
||||
|
||||
moz-version:
|
||||
sed -i 's|7647|7657|g' *.js* torrent/*.js*
|
||||
sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(MOZ_VERSION)\",|g' manifest.json
|
||||
# sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(MOZ_VERSION)\",|g' manifest.json
|
||||
find . -name 'messages.json' -exec sed -i 's|$(LAST_VERSION)|$(MOZ_VERSION)|g' {} \;
|
||||
find . -name 'messages.json' -exec sed -i 's|$(VERSION)|$(MOZ_VERSION)|g' {} \;
|
||||
|
||||
rhz-version:
|
||||
sed -i 's|$(shell grep "\"version\": " manifest.json)| \"version\": \"$(VERSION)1\",|g' manifest.json
|
||||
# sed -i 's|$(shell grep "\"version_name\": " manifest.json)| \"version_name\": \"$(VERSION)1-rhizome\",|g' manifest.json
|
||||
sed -i 's|7657|7647|g' *.js* torrent/*.js*
|
||||
|
||||
zip: version
|
||||
zip --exclude="./i2psetproxy.js@eyedeekay.github.io.xpi" \
|
||||
--exclude="i2psetproxy.js.png" -r -FS ../i2psetproxy.js.zip *
|
||||
zip --exclude="./i2ppb@eyedeekay.github.io.xpi" \
|
||||
--exclude="./i2psetproxy.js@eyedeekay.github.io.xpi" \
|
||||
--exclude="./i2psetproxy.js.png" \
|
||||
--exclude="./i2psetproxy.js.gif" \
|
||||
--exclude="./package.json" \
|
||||
--exclude="./package-lock.json" \
|
||||
--exclude="./.node_modules" \
|
||||
--exclude="./node_modules" \
|
||||
--exclude="./.git" \
|
||||
--exclude="*/*.xpi" \
|
||||
--exclude="web-ext-artifacts" \
|
||||
--exclude="./*.pdf" -r -FS ../i2psetproxy.js.zip *
|
||||
|
||||
profile-install:
|
||||
cp ./i2psetproxy.js@eyedeekay.github.io.xpi $(HOME)/.mozilla/firefox/firefox.profile.i2p/firefox.profile.i2p/extensions
|
||||
cp ./i2psetproxy.js@eyedeekay.github.io.xpi $(HOME)/.mozilla/firefox/.firefox.profile.i2p.default/extensions
|
||||
rc:
|
||||
@grep "$(VERSION)" debian/changelog
|
||||
@echo "changelog is prepared"
|
||||
rm -f *.xpi
|
||||
|
||||
to-profile:
|
||||
cp ./i2psetproxy.js@eyedeekay.github.io.xpi $(PREFIX)/local/lib/firefox.profile.i2p/firefox.profile.i2p/extensions/
|
||||
rtest: rc index torrenthelp
|
||||
|
||||
pi: profile-install
|
||||
release: rc index torrenthelp
|
||||
cat desc debian/changelog | grep -B 10 "$(LAST_VERSION)" | gothub release -p -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n $(VERSION) -d -; true
|
||||
|
||||
DESC="A simple plugin for configuring an i2p browser."
|
||||
update-release:
|
||||
cat desc debian/changelog | grep -B 10 "$(LAST_VERSION)" | gothub edit -p -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n $(VERSION) -d -; true
|
||||
|
||||
release:
|
||||
gothub release -u eyedeekay -r i2psetproxy.js -t $(VERSION) -n $(VERSION) -d $(DESC)
|
||||
delete-release:
|
||||
gothub delete -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION); true
|
||||
|
||||
upload:
|
||||
gothub upload -u eyedeekay -r i2psetproxy.js -t $(VERSION) -n "i2psetproxy.js@eyedeekay.github.io.xpi" -f "../i2psetproxy.js@eyedeekay.github.io.xpi"
|
||||
recreate-release: delete-release release upload
|
||||
|
||||
lib: libpolyfill
|
||||
upload: upload-xpi upload-deb
|
||||
|
||||
libpolyfill:
|
||||
wget -O chromium/browser-polyfill.min.js https://unpkg.com/webextension-polyfill/dist/browser-polyfill.min.js
|
||||
full-release: release submit upload-xpi torrent upload-torrent deb upload-deb upload-rss seed
|
||||
|
||||
fmt:
|
||||
find . -name '*.js' -exec jsfmt -w {} \;
|
||||
WEB_EXT_API_KEY=AMO_KEY
|
||||
WEB_EXT_API_SECRET=AMO_SECRET
|
||||
|
||||
deborig:
|
||||
rm -rfv ../i2psetproxy.js-$(VERSION)
|
||||
cp -rv . ../i2psetproxy.js-$(VERSION)
|
||||
tar --exclude='./.git' -cvzf ../i2psetproxy.js-$(VERSION).tar.gz .
|
||||
|
||||
-include ../api_keys_moz.mk
|
||||
|
||||
tk:
|
||||
echo $(WEB_EXT_API_KEY)
|
||||
|
||||
submit: moz-submit moz-sign
|
||||
|
||||
clean-artifacts:
|
||||
rm -fr web-ext-artifacts/*
|
||||
|
||||
##ODD NUMBERED, SELF-DISTRIBUTED VERSIONS HERE!
|
||||
moz-sign: version clean-artifacts
|
||||
@echo "Using the 'sign' target to instantly sign an extension for self-distribution"
|
||||
@echo "requires a JWT API Key and Secret from addons.mozilla.org to be made available"
|
||||
@echo "to the Makefile under the variables WEB_EXT_API_KEY and WEB_EXT_API_SECRET."
|
||||
$(HOME)/web-ext/bin/web-ext sign --channel unlisted --config-discovery false --api-key $(WEB_EXT_API_KEY) --api-secret $(WEB_EXT_API_SECRET) --timeout 900000 #--api-url-prefix http://localhost:3000/api/v4
|
||||
make copyss
|
||||
sleep 5
|
||||
|
||||
copyss:
|
||||
cp web-ext-artifacts/*.xpi ../i2ppb@eyedeekay.github.io.xpi; true
|
||||
|
||||
##EVEN NUMBERED, MOZILLA-DISTRIBUTED VERSIONS HERE!
|
||||
moz-submit: moz-version
|
||||
@echo "Using the 'submit' target to instantly sign an extension for Mozilla distribution"
|
||||
@echo "requires a JWT API Key and Secret from addons.mozilla.org to be made available"
|
||||
@echo "to the Makefile under the variables WEB_EXT_API_KEY and WEB_EXT_API_SECRET."
|
||||
mv manifest.json .manifest.json
|
||||
grep -v update_url .manifest.json > manifest.json
|
||||
$(HOME)/web-ext/bin/web-ext sign --channel listed --config-discovery false --api-key $(WEB_EXT_API_KEY) --api-secret $(WEB_EXT_API_SECRET) --timeout 900000 --verbose #--api-url-prefix http://localhost:3000/api/v4
|
||||
sleep 5
|
||||
mv .manifest.json manifest.json
|
||||
|
||||
rhz-submit: rhz-version
|
||||
@echo "Rhizome releases are disabled while browser is completed."
|
||||
#@echo "Using the 'sign' target to instantly sign an extension for self-distribution"
|
||||
#@echo "requires a JWT API Key and Secret from addons.mozilla.org to be made available"
|
||||
#@echo "to the Makefile under the variables WEB_EXT_API_KEY and WEB_EXT_API_SECRET."
|
||||
#$HOME/node_modules/web-ext-submit/extender.sh --channel unlisted --config-discovery false --api-key $(WEB_EXT_API_KEY) --api-secret $(WEB_EXT_API_SECRET); true
|
||||
#cp web-ext-artifacts/*.xpi ./i2ppb@eyedeekay.github.io.xpi
|
||||
|
||||
getxpi:
|
||||
gothub download -t $(VERSION) -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -n i2ppb@eyedeekay.github.io.xpi
|
||||
mv ./i2ppb@eyedeekay.github.io.xpi ../i2ppb-$(VERSION)@eyedeekay.github.io.xpi
|
||||
cp ../i2ppb-$(VERSION)@eyedeekay.github.io.xpi ../i2ppb@eyedeekay.github.io.xpi
|
||||
|
||||
torrent: getxpi
|
||||
rm -f "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent"
|
||||
mktorrent -a http://w7tpbzncbcocrqtwwm3nezhnnsw4ozadvi2hmvzdhrqzfxfum7wa.b32.i2p/a \
|
||||
-a http://zviyq72xcmjupynn5y2f5qa3u7bxyu34jnqmwt6czte2l7idxm7q.b32.i2p/announce \
|
||||
-a http://s5ikrdyjwbcgxmqetxb3nyheizftms7euacuub2hic7defkh3xhq.b32.i2p/a \
|
||||
-a http://uajd4nctepxpac4c4bdyrdw7qvja2a5u3x25otfhkptcjgd53ioq.b32.i2p/announce \
|
||||
-a http://explodie.org:6969/announce \
|
||||
-a http://tracker.opentrackr.org:1337/announce \
|
||||
-a http://tracker.kamigami.org:2710/announce \
|
||||
-a http://tracker.internetwarriors.net:1337/announce \
|
||||
-a http://tracker.darli.net:6611/announce \
|
||||
-a http://tracker.corpscorp.online:80/announce \
|
||||
-a http://tracker.bz:80/announce \
|
||||
-a http://tracker.bt4g.com:2095/announce \
|
||||
-a http://retracker.sevstar.net:2710/announce \
|
||||
-a http://h4.trakx.nibba.trade:80/announce \
|
||||
-a http://www.proxmox.com:6969/announce \
|
||||
-a http://www.loushao.net:8080/announce \
|
||||
-a http://vps02.net.orel.ru:80/announce \
|
||||
-a http://tracker4.itzmx.com:2710/announce \
|
||||
-a http://tracker3.itzmx.com:6961/announce \
|
||||
-a http://tracker2.itzmx.com:6961/announce \
|
||||
-a http://tracker1.itzmx.com:8080/announce \
|
||||
-a http://tracker01.loveapp.com:6789/announce \
|
||||
-a http://tracker.zerobytes.xyz:1337/announce \
|
||||
-a http://tracker.yoshi210.com:6969/announce \
|
||||
-a http://tracker.torrentyorg.pl:80/announce \
|
||||
-a http://tracker.nyap2p.com:8080/announce \
|
||||
-a http://tracker.lelux.fi:80/announce \
|
||||
-a http://tracker.gbitt.info:80/announce \
|
||||
-a http://pow7.com:80/announce \
|
||||
-a http://opentracker.i2p.rocks:6969/announce \
|
||||
-a http://open.acgtracker.com:1096/announce \
|
||||
-a http://open.acgnxtracker.com:80/announce \
|
||||
-a http://mail2.zelenaya.net:80/announce \
|
||||
-a http://acg.rip:6699/announce \
|
||||
-n "i2ppb-$(VERSION)@eyedeekay.github.io.xpi" \
|
||||
-o "i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" \
|
||||
-w https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases/download/$(VERSION)/i2ppb@eyedeekay.github.io.xpi \
|
||||
../i2ppb@eyedeekay.github.io.xpi; true
|
||||
cp -v "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" "./i2ppb@eyedeekay.github.io.xpi.torrent"
|
||||
make index
|
||||
|
||||
upload-torrent:
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2ppb@eyedeekay.github.io.xpi.torrent" -f "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent"
|
||||
|
||||
upload-xpi:
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2ppb@eyedeekay.github.io.xpi" -f "../i2ppb@eyedeekay.github.io.xpi"
|
||||
|
||||
upload-deb:
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1_amd64.deb" -f "../i2psetproxy.js_$(VERSION)-1_amd64.deb"
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION).orig.tar.gz" -f "../i2psetproxy.js_$(VERSION).orig.tar.gz"
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1.debian.tar.xz" -f "../i2psetproxy.js_$(VERSION)-1.debian.tar.xz"
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1.dsc" -f "../i2psetproxy.js_$(VERSION)-1.dsc"
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1_amd64.changes" -f "../i2psetproxy.js_$(VERSION)-1_amd64.changes"
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psetproxy.js_$(VERSION)-1_amd64.buildinfo" -f "../i2psetproxy.js_$(VERSION)-1_amd64.buildinfo"
|
||||
|
||||
upload-docs:
|
||||
gothub release -p -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "Documentation" -d "PDF's and text about the extension"; true
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "Landing Page Documentation.pdf" -f ../smartlander.pdf
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "Browser Design Documentation.pdf" -f ../browser.pdf
|
||||
|
||||
fmt: fmt-css fmt-html fmt-js
|
||||
|
||||
fmt-css:
|
||||
cleancss -O1 all -O2 all --format beautify home.css -o .home.css && mv .home.css home.css
|
||||
cleancss -O1 all -O2 all --format beautify info.css -o .info.css && mv .info.css info.css
|
||||
cleancss -O1 all -O2 all --format beautify search.css -o .search.css && mv .search.css search.css
|
||||
cleancss -O1 all -O2 all --format beautify sidebar.css -o .sidebar.css && mv .sidebar.css sidebar.css
|
||||
cleancss -O1 all -O2 all --format beautify options/options.css -o options/.options.css && mv options/.options.css options/options.css
|
||||
|
||||
fmt-html:
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes index.html > .index.html; mv .index.html index.html
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes window.html > .window.html; mv .window.html window.html
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes home.html > .home.html; mv .home.html home.html
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes toopie.html > .toopie.html; mv .toopie.html toopie.html
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes security.html > .security.html; mv .security.html security.html
|
||||
tidy --as-xhtml --drop-empty-elements no --input-xml --tidy-mark no -indent --indent-spaces 4 -wrap 0 --new-blocklevel-tags article,header,footer --new-inline-tags video,audio,canvas,ruby,rt,rp --break-before-br yes --sort-attributes alpha --vertical-space yes options/options.html > options/.options.html; mv options/.options.html options/options.html
|
||||
|
||||
fmt-js:
|
||||
fixjsstyle *.js
|
||||
fixjsstyle options/*.js
|
||||
fixjsstyle torrent/*.js
|
||||
fixjsstyle i2pcontrol/*.js
|
||||
fixjsstyle manifest.json
|
||||
#find . -path ./node_modules -prune -o -name '*.json' -exec fixjsstyle --write {} \;
|
||||
|
||||
fmt-prettier:
|
||||
find . -name '*.js*' -exec $(HOME)/node_modules/.bin/prettier -w {} \;
|
||||
|
||||
lint:
|
||||
|
||||
gjslint *.js; true
|
||||
#eslint --color *.js
|
||||
|
||||
deborig: version
|
||||
rm -rf ../i2psetproxy.js-$(VERSION)
|
||||
mkdir -p ../i2psetproxy.js-$(VERSION)
|
||||
cp -r ./* ../i2psetproxy.js-$(VERSION)
|
||||
cd ../i2psetproxy.js-$(VERSION) && \
|
||||
rm -rf web-ext-artifacts .git node_modules && \
|
||||
tar \
|
||||
-cvz \
|
||||
--exclude=i2psetproxy.js.gif \
|
||||
--exclude=*.pdf \
|
||||
-f ../i2psetproxy.js_$(VERSION).orig.tar.gz \
|
||||
.
|
||||
|
||||
deb: deborig
|
||||
cd ../i2psetproxy.js-$(VERSION) && debuild -us -uc -rfakeroot
|
||||
|
||||
-include mirrors.mk
|
||||
|
||||
dat:
|
||||
wget -c -O dat.js https://bundle.run/dat-js
|
||||
|
||||
rss: torrent
|
||||
rm -f releases.diff
|
||||
mv releases.atom .releases.atom
|
||||
wget https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox/releases.atom
|
||||
sed -i "s|<title>$(VERSION)</title>|<title>$(VERSION)</title>\n <enclosure url=\"$(MAGNET)\" type=\"application/x-bittorrent\" />|g" releases.atom
|
||||
|
||||
upload-rss: rss
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "releases.atom" -f releases.atom
|
||||
|
||||
upload-updatemanifest:
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t docs -n "updateManifest.json" -f updateManifest.json
|
||||
|
||||
webext:
|
||||
$(HOME)/web-ext/bin/web-ext run --firefox /usr/bin/firefox -u "about:devtools-toolbox?type=extension&id=i2ppb%40eyedeekay.github.io"
|
||||
|
||||
snark-mirror:
|
||||
http_proxy=http://127.0.0.1:4444 wget -c -O ../i2psnark-rpc.su3 http://stats.i2p/i2p/plugins/i2psnark-rpc.su3
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psnark-rpc.su3" -f ../i2psnark-rpc.su3
|
||||
http_proxy=http://127.0.0.1:4444 wget -c -O ../i2psnark-rpc-update.su3 http://stats.i2p/i2p/plugins/i2psnark-rpc-update.su3
|
||||
gothub upload -R -u eyedeekay -r I2P-in-Private-Browsing-Mode-Firefox -t $(VERSION) -n "i2psnark-rpc-update.su3" -f ../i2psnark-rpc-update.su3
|
||||
|
||||
seed:
|
||||
cp -v "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" "$(HOME)/.i2p/i2psnark"
|
||||
cp -v "../i2ppb-$(VERSION)@eyedeekay.github.io.xpi" "$(HOME)/.i2p/i2psnark"
|
||||
|
||||
wire:
|
||||
cp -v "./i2ppb-$(VERSION)@eyedeekay.github.io.xpi.torrent" "$(HOME)/i2p/MuWireDownloads/"
|
||||
cp -v "../i2ppb-$(VERSION)@eyedeekay.github.io.xpi" "$(HOME)/i2p/MuWireDownloads/"
|
||||
|
||||
ndtest:
|
||||
$(HOME)/web-ext/bin/web-ext run --firefox /usr/bin/firefox -u about:debugging \
|
||||
-u http://127.0.0.1:7657/home \
|
||||
-u http://127.0.0.1:7657/i2ptunnel \
|
||||
-u http://127.0.0.1:7657/i2psnark \
|
||||
-u http://127.0.0.1:7657/webmail \
|
||||
-u http://127.0.0.1:7657/MuWire \
|
||||
-u http://idk.i2p/video.html \
|
||||
-u http://idk.i2p \
|
||||
-u http://stats.i2p \
|
||||
-u http://tvndxxkxcstbtqfxg7iigco6bj22ff2y6jxikmk7wqkyadkhrd4a.b32.i2p \
|
||||
-u https://ramble.pw \
|
||||
-u https://ramble.pw/f/i2p \
|
||||
|
||||
lht-test:
|
||||
$(HOME)/web-ext/bin/web-ext run --firefox /usr/bin/firefox -u about:debugging \
|
||||
-u http://localhost:7657/home \
|
||||
-u http://localhost:7657/i2ptunnel \
|
||||
-u http://localhost:7657/i2psnark \
|
||||
-u http://localhost:7657/webmail \
|
||||
-u http://localhost:7657/MuWire/ \
|
||||
-u http://idk.i2p
|
||||
|
||||
android:
|
||||
$(HOME)/web-ext/bin/web-ext run --target firefox-android \
|
||||
--android-device NE1GAM7780819544 \
|
||||
--browser-console
|
||||
|
||||
run:
|
||||
$(HOME)/web-ext/bin/web-ext run --firefox /usr/bin/firefox -u about:debugging
|
||||
|
||||
chromium:
|
||||
$(HOME)/web-ext/bin/web-ext run --target chromium
|
||||
|
42
README.md
42
README.md
@@ -1,42 +0,0 @@
|
||||
i2psetproxy.js
|
||||
==============
|
||||
|
||||
WebExtension that does extended configuration of a dedicated I2P browser. While
|
||||
**experimental**, it's capable of enforcing the use of the I2P Proxy without
|
||||
needing to touch about:config and disables several
|
||||
fingerprinting/de-anonymization vectors on it's own. It is also the easiest way
|
||||
to configure an I2P browser on Android without requiring the user to root their
|
||||
device.
|
||||
|
||||
Android usage:
|
||||
--------------
|
||||
|
||||
Open the following link [Github Releases Version](https://github.com/eyedeekay/i2psetproxy.js/releases/download/1.26/i2psetproxy.js@eyedeekay.github.io.xpi)
|
||||
in the browser you want to use for I2P. Firefox will warn you that it is about
|
||||
to install an extension and indicate the permissions required. Read them over
|
||||
and when you're ready, accept them. That's all it should take, your browser is
|
||||
now configured to use I2P.
|
||||
|
||||
### addons.mozilla.org
|
||||
|
||||
If you would prefer to recieve automatic updates from AMO, the correct product
|
||||
page for this plugin is [I2P-proxy](https://addons.mozilla.org/en-US/firefox/addon/I2P-proxy/).
|
||||
This absolutely requires a working outproxy. If you want to avoid the use of AMO
|
||||
for updates, you can download the identical plugin from this repository's
|
||||
releases page. The latest AMO Plugin will always be identical to the latest
|
||||
github release, except for the version number, which must be incremented for
|
||||
submission to AMO.
|
||||
|
||||
### Features
|
||||
|
||||
* [done] **Indicate** the I2P browser is in use visually
|
||||
* [done] **Set** the http proxy to use the local I2P proxy
|
||||
* [done] **Disable** risky webRTC features
|
||||
* [done] **Change** the color of the browser window to indicate that I2P is in use
|
||||
* [done-ish] **Reset** the HTTP Proxy tunnel to generate a new destination on-demand
|
||||
* it does this by working in conjunction with this [standalone HTTP proxy](https://github.com/eyedeekay/httptunnel), currently disabled*
|
||||
* [ready] **Provide** help in a variety of languages.
|
||||
|
||||
### Screenshot
|
||||
|
||||

|
@@ -1,66 +0,0 @@
|
||||
{
|
||||
"extensionName": {
|
||||
"message": "i2psetproxy.js",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"extensionDescription": {
|
||||
"message": "Set up a browser to use the i2p http proxy automatically",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"titlePreface": {
|
||||
"message": "I2P Browser - ",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"titlePrefacePrivate": {
|
||||
"message": "I2P Browser (Private) - ",
|
||||
"description": "Preface for the browser titlebar"
|
||||
},
|
||||
"resetMessage": {
|
||||
"message": "Reset Tunnel",
|
||||
"description": "Message for the Reset Tunnel button"
|
||||
},
|
||||
"infoTitle": {
|
||||
"message": "I2P Help",
|
||||
"description": "Title for the help menu"
|
||||
},
|
||||
"infoMessage": {
|
||||
"message": "You are now free to browse the eepWeb! Your browser is now configured to browse anonymously on the I2P network. As you browse, your traffic will be routed through other network nodes to disguise it's origin, both from the server and from the nodes themselves.",
|
||||
"description": "Help Message"
|
||||
},
|
||||
"helpMessage": {
|
||||
"message": "Get additional help",
|
||||
"description": "Help Message"
|
||||
},
|
||||
"newsMessage": {
|
||||
"message": "Visit the I2P Blog to learn the latest about i2p.",
|
||||
"description": "Help Message"
|
||||
},
|
||||
"forumMessage": {
|
||||
"message": "Visit the I2P Forum to learn more or ask for assistance",
|
||||
"description": "Help Message"
|
||||
},
|
||||
"clearData": {
|
||||
"message": "Clear all browsing data",
|
||||
"description": "Help Message"
|
||||
},
|
||||
"hostText": {
|
||||
"message": "Host: ",
|
||||
"description": "Host for the HTTP or SOCKS5 Proxy"
|
||||
},
|
||||
"portText": {
|
||||
"message": "Port: ",
|
||||
"description": "Port for the HTTP or SOCKS5 Proxy"
|
||||
},
|
||||
"controlHelpText": {
|
||||
"message": "These options will be inert if used with the default i2p HTTP or SOCKS proxy.",
|
||||
"description": "Help for configuring the options for the Reset Tunnel button"
|
||||
},
|
||||
"controlHostText": {
|
||||
"message": "Control Host: ",
|
||||
"description": "Host for the Reset Tunnel button"
|
||||
},
|
||||
"controlPortText": {
|
||||
"message": "Control Port: ",
|
||||
"description": "Port for the Reset Tunnel button"
|
||||
}
|
||||
}
|
@@ -1,83 +0,0 @@
|
||||
|
||||
function getChrome() {
|
||||
if (browser.runtime.getBrowserInfo == undefined) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
function isDroid() {
|
||||
if (!getChrome()) {
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os == "android") {
|
||||
console.log("android detected")
|
||||
return true
|
||||
} else {
|
||||
console.log("desktop detected")
|
||||
return false
|
||||
}
|
||||
});
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
if (!isDroid()) {
|
||||
chrome.windows.onCreated.addListener(themeWindow);
|
||||
}
|
||||
|
||||
var titlepref = chrome.i18n.getMessage("titlePreface");
|
||||
var titleprefpriv = chrome.i18n.getMessage("titlePrefacePrivate");
|
||||
|
||||
function themeWindow(window) {
|
||||
// Check if the window is in private browsing
|
||||
if (window.incognito) {
|
||||
chrome.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: "#2D4470",
|
||||
toolbar: "#2D4470",
|
||||
}
|
||||
});
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.theme.update(window.id, {
|
||||
colors: {
|
||||
frame: "#9DABD5",
|
||||
toolbar: "#9DABD5",
|
||||
}
|
||||
});
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setTitle(window) {
|
||||
if (window.incognito) {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titleprefpriv
|
||||
});
|
||||
} else {
|
||||
chrome.windows.update(window.id, {
|
||||
titlePreface: titlepref
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setTitleError(window) {
|
||||
alert("plugin error setting title on", window.id)
|
||||
}
|
||||
|
||||
chrome.windows.onCreated.addListener(() => {
|
||||
const gettingStoredSettings = chrome.storage.local.get();
|
||||
gettingStoredSettings.then(setupProxy, onError);
|
||||
});
|
||||
|
||||
chrome.tabs.onCreated.addListener(() => {
|
||||
const getting = browser.windows.getCurrent({
|
||||
populate: true
|
||||
});
|
||||
getting.then(setTitle, setTitleError);
|
||||
});
|
903
chromium/browser-polyfill.min.js
vendored
903
chromium/browser-polyfill.min.js
vendored
@@ -1,903 +0,0 @@
|
||||
(function(a, b) {
|
||||
if ("function" == typeof define && define.amd) {
|
||||
define("webextension-polyfill", ["module"], b);
|
||||
} else if ("undefined" != typeof exports) {
|
||||
b(module);
|
||||
} else {
|
||||
var c = {
|
||||
exports: {}
|
||||
};
|
||||
b(c), a.browser = c.exports
|
||||
}
|
||||
})(this, function(a) {
|
||||
"use strict";
|
||||
if ("undefined" == typeof browser || Object.getPrototypeOf(browser) !== Object.prototype) {
|
||||
a.exports = (e => {
|
||||
const f = {
|
||||
alarms: {
|
||||
clear: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
clearAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
get: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
bookmarks: {
|
||||
create: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getChildren: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getRecent: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getSubTree: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getTree: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
move: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeTree: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
search: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
update: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
}
|
||||
},
|
||||
browserAction: {
|
||||
disable: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
enable: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
getBadgeBackgroundColor: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getBadgeText: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getPopup: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getTitle: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
openPopup: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
setBadgeBackgroundColor: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
setBadgeText: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
setIcon: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
setPopup: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
setTitle: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
}
|
||||
},
|
||||
browsingData: {
|
||||
remove: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
},
|
||||
removeCache: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeCookies: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeDownloads: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeFormData: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeHistory: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeLocalStorage: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removePasswords: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removePluginData: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
settings: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
commands: {
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
contextMenus: {
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
update: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
}
|
||||
},
|
||||
cookies: {
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAllCookieStores: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
set: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
devtools: {
|
||||
inspectedWindow: {
|
||||
eval: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2,
|
||||
singleCallbackArg: !1
|
||||
}
|
||||
},
|
||||
panels: {
|
||||
create: {
|
||||
minArgs: 3,
|
||||
maxArgs: 3,
|
||||
singleCallbackArg: !0
|
||||
}
|
||||
}
|
||||
},
|
||||
downloads: {
|
||||
cancel: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
download: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
erase: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getFileIcon: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
open: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
pause: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeFile: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
resume: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
search: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
show: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
}
|
||||
},
|
||||
extension: {
|
||||
isAllowedFileSchemeAccess: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
isAllowedIncognitoAccess: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
history: {
|
||||
addUrl: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
deleteAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
deleteRange: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
deleteUrl: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getVisits: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
search: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
i18n: {
|
||||
detectLanguage: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAcceptLanguages: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
identity: {
|
||||
launchWebAuthFlow: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
idle: {
|
||||
queryState: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
management: {
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
getSelf: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
setEnabled: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
},
|
||||
uninstallSelf: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
notifications: {
|
||||
clear: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
create: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
getPermissionLevel: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
update: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
}
|
||||
},
|
||||
pageAction: {
|
||||
getPopup: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getTitle: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
hide: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
setIcon: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
setPopup: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
setTitle: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
},
|
||||
show: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1,
|
||||
fallbackToNoCallback: !0
|
||||
}
|
||||
},
|
||||
permissions: {
|
||||
contains: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
request: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
runtime: {
|
||||
getBackgroundPage: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
getBrowserInfo: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
getPlatformInfo: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
openOptionsPage: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
requestUpdateCheck: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
sendMessage: {
|
||||
minArgs: 1,
|
||||
maxArgs: 3
|
||||
},
|
||||
sendNativeMessage: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
},
|
||||
setUninstallURL: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
sessions: {
|
||||
getDevices: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getRecentlyClosed: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
restore: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
storage: {
|
||||
local: {
|
||||
clear: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
get: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getBytesInUse: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
set: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
managed: {
|
||||
get: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getBytesInUse: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
sync: {
|
||||
clear: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
get: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getBytesInUse: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
set: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
tabs: {
|
||||
captureVisibleTab: {
|
||||
minArgs: 0,
|
||||
maxArgs: 2
|
||||
},
|
||||
create: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
detectLanguage: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
discard: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
duplicate: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
executeScript: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getCurrent: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
},
|
||||
getZoom: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getZoomSettings: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
highlight: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
insertCSS: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
move: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
},
|
||||
query: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
reload: {
|
||||
minArgs: 0,
|
||||
maxArgs: 2
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
removeCSS: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
sendMessage: {
|
||||
minArgs: 2,
|
||||
maxArgs: 3
|
||||
},
|
||||
setZoom: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
setZoomSettings: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
update: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
}
|
||||
},
|
||||
topSites: {
|
||||
get: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
webNavigation: {
|
||||
getAllFrames: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
getFrame: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
},
|
||||
webRequest: {
|
||||
handlerBehaviorChanged: {
|
||||
minArgs: 0,
|
||||
maxArgs: 0
|
||||
}
|
||||
},
|
||||
windows: {
|
||||
create: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 2
|
||||
},
|
||||
getAll: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getCurrent: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
getLastFocused: {
|
||||
minArgs: 0,
|
||||
maxArgs: 1
|
||||
},
|
||||
remove: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
update: {
|
||||
minArgs: 2,
|
||||
maxArgs: 2
|
||||
}
|
||||
}
|
||||
};
|
||||
if (0 === Object.keys(f).length) {
|
||||
throw new Error("api-metadata.json has not been included in browser-polyfill");
|
||||
}
|
||||
class g extends WeakMap {
|
||||
constructor(v, w = void 0) {
|
||||
super(w), this.createItem = v
|
||||
}
|
||||
get(v) {
|
||||
return this.has(v) || this.set(v, this.createItem(v)), super.get(v)
|
||||
}
|
||||
}
|
||||
const h = v => {
|
||||
return v && "object" == typeof v && "function" == typeof v.then
|
||||
};
|
||||
const i = (v, w) => {
|
||||
return (...x) => {
|
||||
e.runtime.lastError ? v.reject(e.runtime.lastError) : w.singleCallbackArg || 1 >= x.length && !1 !== w.singleCallbackArg ? v.resolve(x[0]) : v.resolve(x)
|
||||
}
|
||||
};
|
||||
const j = v => 1 == v ? "argument" : "arguments";
|
||||
const k = (v, w) => {
|
||||
return function(y, ...z) {
|
||||
if (z.length < w.minArgs) {
|
||||
throw new Error(`Expected at least ${w.minArgs} ${j(w.minArgs)} for ${v}(), got ${z.length}`);
|
||||
}
|
||||
if (z.length > w.maxArgs) {
|
||||
throw new Error(`Expected at most ${w.maxArgs} ${j(w.maxArgs)} for ${v}(), got ${z.length}`);
|
||||
}
|
||||
return new Promise((A, B) => {
|
||||
if (w.fallbackToNoCallback) {
|
||||
try {
|
||||
y[v](...z, i({
|
||||
resolve: A,
|
||||
reject: B
|
||||
}, w))
|
||||
} catch ( C ) {
|
||||
console.warn(`${v} API method doesn't seem to support the callback parameter, ` + "falling back to call it without a callback: ", C), y[v](...z), w.fallbackToNoCallback = !1, w.noCallback = !0, A()
|
||||
}
|
||||
} else {
|
||||
w.noCallback ? (y[v](...z), A()) : y[v](...z, i({
|
||||
resolve: A,
|
||||
reject: B
|
||||
}, w))
|
||||
}
|
||||
})
|
||||
}
|
||||
};
|
||||
const l = (v, w, x) => {
|
||||
return new Proxy(w, {
|
||||
apply(y, z, A) {
|
||||
return x.call(z, v, ...A)
|
||||
}
|
||||
})
|
||||
};
|
||||
let m = Function.call.bind(Object.prototype.hasOwnProperty);
|
||||
const n = (v, w = {}, x = {}) => {
|
||||
let y = Object.create(null);
|
||||
let z = {
|
||||
has(B, C) {
|
||||
return C in v || C in y
|
||||
},
|
||||
get(B, C) {
|
||||
if (C in y) {
|
||||
return y[C];
|
||||
}
|
||||
if (C in v) {
|
||||
let E = v[C];
|
||||
if ("function" == typeof E) {
|
||||
if ("function" == typeof w[C]) {
|
||||
E = l(v, v[C], w[C]);
|
||||
} else if (m(x, C)) {
|
||||
let F = k(C, x[C]);
|
||||
E = l(v, v[C], F)
|
||||
} else {
|
||||
E = E.bind(v);
|
||||
}
|
||||
} else if ("object" == typeof E && null !== E && (m(w, C) || m(x, C))) {
|
||||
E = n(E, w[C], x[C]);
|
||||
} else {
|
||||
return Object.defineProperty(y, C, {
|
||||
configurable: !0,
|
||||
enumerable: !0,
|
||||
get() {
|
||||
return v[C]
|
||||
},
|
||||
set(F) {
|
||||
v[C] = F
|
||||
}
|
||||
}), E;
|
||||
}
|
||||
return y[C] = E, E
|
||||
}
|
||||
},
|
||||
set(B, C, D) {
|
||||
return C in y ? y[C] = D : v[C] = D, !0
|
||||
},
|
||||
defineProperty(B, C, D) {
|
||||
return Reflect.defineProperty(y, C, D)
|
||||
},
|
||||
deleteProperty(B, C) {
|
||||
return Reflect.deleteProperty(y, C)
|
||||
}
|
||||
};
|
||||
let A = Object.create(v);
|
||||
return new Proxy(A, z)
|
||||
};
|
||||
const o = v => ({
|
||||
addListener(w, x, ...y) {
|
||||
w.addListener(v.get(x), ...y)
|
||||
},
|
||||
hasListener(w, x) {
|
||||
return w.hasListener(v.get(x))
|
||||
},
|
||||
removeListener(w, x) {
|
||||
w.removeListener(v.get(x))
|
||||
}
|
||||
});
|
||||
let p = !1;
|
||||
const q = new g(v => {
|
||||
return "function" == typeof v ? function(x, y, z) {
|
||||
let B;
|
||||
let D;
|
||||
let A = !1;
|
||||
let C = new Promise(G => {
|
||||
B = function(H) {
|
||||
p || (console.warn("Returning a Promise is the preferred way to send a reply from an onMessage/onMessageExternal listener, as the sendResponse will be removed from the specs (See https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onMessage)", new Error().stack), p = !0), A = !0, G(H)
|
||||
}
|
||||
});
|
||||
try {
|
||||
D = v(x, y, B)
|
||||
} catch ( G ) {
|
||||
D = Promise.reject(G)
|
||||
}
|
||||
const E = !0 !== D && h(D);
|
||||
if (!0 !== D && !E && !A) {
|
||||
return !1;
|
||||
}
|
||||
const F = G => {
|
||||
G.then(H => {
|
||||
z(H)
|
||||
}, H => {
|
||||
let I;
|
||||
I = H && (H instanceof Error || "string" == typeof H.message) ? H.message : "An unexpected error occurred", z({
|
||||
__mozWebExtensionPolyfillReject__: !0,
|
||||
message: I
|
||||
})
|
||||
}).catch(H => {
|
||||
console.error("Failed to send onMessage rejected reply", H)
|
||||
})
|
||||
};
|
||||
return E ? F(D) : F(C), !0
|
||||
} : v
|
||||
});
|
||||
const r = ({reject:v, resolve:w} ,x) => {
|
||||
e.runtime.lastError ? e.runtime.lastError.message === "The message port closed before a response was received." ? w() : v(e.runtime.lastError) : x && x.__mozWebExtensionPolyfillReject__ ? v(new Error(x.message)) : w(x)
|
||||
};
|
||||
const s = (v, w, x, ...y) => {
|
||||
if (y.length < w.minArgs) {
|
||||
throw new Error(`Expected at least ${w.minArgs} ${j(w.minArgs)} for ${v}(), got ${y.length}`);
|
||||
}
|
||||
if (y.length > w.maxArgs) {
|
||||
throw new Error(`Expected at most ${w.maxArgs} ${j(w.maxArgs)} for ${v}(), got ${y.length}`);
|
||||
}
|
||||
return new Promise((z, A) => {
|
||||
const B = r.bind(null, {
|
||||
resolve: z,
|
||||
reject: A
|
||||
});
|
||||
y.push(B), x.sendMessage(...y)
|
||||
})
|
||||
};
|
||||
const t = {
|
||||
runtime: {
|
||||
onMessage: o(q),
|
||||
onMessageExternal: o(q),
|
||||
sendMessage: s.bind(null, "sendMessage", {
|
||||
minArgs: 1,
|
||||
maxArgs: 3
|
||||
})
|
||||
},
|
||||
tabs: {
|
||||
sendMessage: s.bind(null, "sendMessage", {
|
||||
minArgs: 2,
|
||||
maxArgs: 3
|
||||
})
|
||||
}
|
||||
};
|
||||
const u = {
|
||||
clear: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
get: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
},
|
||||
set: {
|
||||
minArgs: 1,
|
||||
maxArgs: 1
|
||||
}
|
||||
};
|
||||
return f.privacy = {
|
||||
network: {
|
||||
networkPredictionEnabled: u,
|
||||
webRTCIPHandlingPolicy: u
|
||||
},
|
||||
services: {
|
||||
passwordSavingEnabled: u
|
||||
},
|
||||
websites: {
|
||||
hyperlinkAuditingEnabled: u,
|
||||
referrersEnabled: u
|
||||
}
|
||||
}, n(e, t, f)
|
||||
})(chrome)
|
||||
} else {
|
||||
a.exports = browser
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=browser-polyfill.min.js.map
|
||||
|
||||
// webextension-polyfill v.0.4.0 (https://github.com/mozilla/webextension-polyfill)
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
17
content.js
17
content.js
@@ -1,17 +0,0 @@
|
||||
var infoTitle = document.getElementById('text-section-header');
|
||||
infoTitle.textContent = chrome.i18n.getMessage("infoTitle");
|
||||
|
||||
var infoMessage = document.getElementById('text-section-helptext');
|
||||
infoMessage.textContent = chrome.i18n.getMessage("infoMessage");
|
||||
|
||||
var helpMessage = document.getElementById('window-create-forum-panel');
|
||||
helpMessage.textContent = chrome.i18n.getMessage("forumMessage");
|
||||
/*
|
||||
var helpMessage = document.getElementById('window-create-help-panel');
|
||||
helpMessage.textContent = chrome.i18n.getMessage("helpMessage")
|
||||
*/
|
||||
var newsMessage = document.getElementById('window-create-news-panel');
|
||||
newsMessage.textContent = chrome.i18n.getMessage("newsMessage");
|
||||
|
||||
var clearData = document.getElementById("clear-browser-data")
|
||||
clearData.textContent = chrome.i18n.getMessage("clearData");
|
8
debian/README.Debian
vendored
8
debian/README.Debian
vendored
@@ -1,8 +0,0 @@
|
||||
i2psetproxy.js for Debian
|
||||
|
||||
Please edit this to provide information specific to
|
||||
this i2psetproxy.js Debian package.
|
||||
|
||||
(Automatically generated by debmake Version 4.3.1)
|
||||
|
||||
-- idk <hankhill19580@gmail.com> Thu, 01 Aug 2019 00:32:39 -0400
|
6
debian/changelog
vendored
6
debian/changelog
vendored
@@ -1,6 +0,0 @@
|
||||
i2psetproxy.js (1.27-1) UNRELEASED; urgency=low
|
||||
|
||||
* Initial release. Closes: #nnnn
|
||||
<nnnn is the bug number of your ITP>
|
||||
|
||||
-- idk <hankhill19580@gmail.com> Thu, 01 Aug 2019 00:32:39 -0400
|
1
debian/compat
vendored
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
11
|
17
debian/control
vendored
17
debian/control
vendored
@@ -1,17 +0,0 @@
|
||||
Source: i2psetproxy.js
|
||||
Section: unknown
|
||||
Priority: optional
|
||||
Maintainer: idk <hankhill19580@gmail.com>
|
||||
Build-Depends: debhelper (>=11~)
|
||||
Standards-Version: 4.1.4
|
||||
Homepage: https://github.com/eyedeekay/i2psetproxy.js
|
||||
|
||||
Package: i2psetproxy.js
|
||||
Architecture: any
|
||||
Multi-Arch: foreign
|
||||
Depends: ${misc:Depends}, ${shlibs:Depends}
|
||||
Description: Plugin for configuring i2p in Firefox and Chromium
|
||||
This is a webextension which safely configures a Browser on the
|
||||
Debian operating system to use I2P. i2psetproxy.js users form
|
||||
their own anonymity set, like TAILS users or Brave users do on
|
||||
the Tor network.
|
66
debian/copyright
vendored
66
debian/copyright
vendored
@@ -1,66 +0,0 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: i2psetproxy.js
|
||||
Source: https://github.com/eyedeekay/i2psetproxy.js
|
||||
#
|
||||
# Please double check copyright with the licensecheck(1) command.
|
||||
|
||||
Files: .gitignore
|
||||
Makefile
|
||||
README.md
|
||||
_locales/en/messages.json
|
||||
background.js
|
||||
content.js
|
||||
experiments/i2ptab.md
|
||||
experiments/tunblink.md
|
||||
i2psetproxy.js.png
|
||||
i2psetproxy.js@eyedeekay.github.io.xpi
|
||||
icons/toopie.png
|
||||
info.css
|
||||
info.js
|
||||
manifest.json
|
||||
options/options.css
|
||||
options/options.js
|
||||
privacy.js
|
||||
proxy.js
|
||||
Copyright: MIT
|
||||
License: MIT
|
||||
|
||||
Files: chromium/browser-polyfill.min.js
|
||||
Copyright: __NO_COPYRIGHT__ in: chromium/browser-polyfill.min.js
|
||||
License: MPL-2.0
|
||||
This Source Code Form is subject to the terms of the Mozilla Public
|
||||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# xml and html files (skipped):
|
||||
# window.html
|
||||
# options/options.html
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Files marked as NO_LICENSE_TEXT_FOUND may be covered by the following
|
||||
# license/copyright files.
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# License file: LICENSE
|
||||
MIT License
|
||||
.
|
||||
Copyright (c) 2019 idk
|
||||
.
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@@ -1 +0,0 @@
|
||||
# You must remove unused comment lines for the released package.
|
22
debian/rules
vendored
22
debian/rules
vendored
@@ -1,22 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_install:
|
||||
install -d $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$$(pwd)/debian/i2psetproxy.js/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/
|
||||
install -d options $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io/options
|
||||
install -d icons $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io/icons
|
||||
install -d _locales $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io/_locales
|
||||
install background.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install proxy.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install info.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install content.js $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install info.css $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install window.html $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install manifest.json $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io/
|
||||
install README.md $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
install LICENSE $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io
|
||||
ln -sf $$(pwd)/debian/i2psetproxy.js/usr/share/webext/i2psetproxy.js@eyedeekay.github.io \
|
||||
$$(pwd)/debian/i2psetproxy.js/usr/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/i2psetproxy.js@eyedeekay.github.io
|
1
debian/source/format
vendored
1
debian/source/format
vendored
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
2
debian/source/local-options
vendored
2
debian/source/local-options
vendored
@@ -1,2 +0,0 @@
|
||||
#abort-on-upstream-changes
|
||||
#unapply-patches
|
1
debian/watch
vendored
1
debian/watch
vendored
@@ -1 +0,0 @@
|
||||
version=3
|
@@ -1,3 +0,0 @@
|
||||
Private Browsing with I2P Tab
|
||||
=============================
|
||||
|
@@ -1,45 +0,0 @@
|
||||
Usage with standalone HTTP Proxy
|
||||
--------------------------------
|
||||
|
||||
This functionality is currently disabled.
|
||||
|
||||
I developed a simple HTTP proxy that can be used with this extension to enable the
|
||||
user to initiate a re-start of the HTTP proxy tunnel, with a new set of keys and a
|
||||
new destination. This, combined with re-setting the browser settings back to the
|
||||
original defaults(which is also done by the HTTP Proxy when re-initiated), amounts
|
||||
to a "Fresh Identity" feature for the I2P browser.
|
||||
|
||||
Before you begin, get the [Standalone HTTP proxy from here](http://github.com/eyedeekay/httptunnel)
|
||||
and run it like so:
|
||||
|
||||
httpproxy -littleboss=start
|
||||
|
||||
You can also use 'go get'
|
||||
|
||||
go get -u github.com/eyedeekay/httptunnel/httpproxy
|
||||
|
||||
If you change the default host and port, you will need to alter the following guide.
|
||||
|
||||
In order to use it with the custom HTTP proxy, open the "Add-On's" menu and select
|
||||
the options for the i2psetproxy.js plugin. Change the "Proxy" configuration from
|
||||
|
||||
Host: 127.0.0.1
|
||||
Port: 4444
|
||||
|
||||
to
|
||||
|
||||
Host: 127.0.0.1
|
||||
Port: 7950
|
||||
|
||||
and change the "Control" configuration from:
|
||||
|
||||
Host: 127.0.0.1
|
||||
Port: 4444
|
||||
|
||||
to
|
||||
|
||||
Host: 127.0.0.1
|
||||
Port: 7951
|
||||
|
||||
Now, when you press the Toopie button in the toolbar, you will see in the output
|
||||
of the HTTP proxy that it has been re-started.
|
Binary file not shown.
Before Width: | Height: | Size: 357 KiB |
Binary file not shown.
BIN
icons/toopie.png
BIN
icons/toopie.png
Binary file not shown.
Before Width: | Height: | Size: 18 KiB |
12
info.css
12
info.css
@@ -1,12 +0,0 @@
|
||||
html, body {
|
||||
width: 350px;
|
||||
}
|
||||
|
||||
a {
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.panel {
|
||||
margin: 5px;
|
||||
}
|
49
info.js
49
info.js
@@ -1,49 +0,0 @@
|
||||
document.addEventListener("click", (e) => {
|
||||
function getCurrentWindow() {
|
||||
return chrome.windows.getCurrent();
|
||||
}
|
||||
|
||||
if (e.target.id === "window-create-help-panel") {
|
||||
let createData = {
|
||||
type: "panel",
|
||||
incognito: true,
|
||||
};
|
||||
let creating = chrome.windows.create(createData);
|
||||
creating.then(() => {
|
||||
console.log("The help panel has been created");
|
||||
});
|
||||
} else if (e.target.id === "window-create-news-panel") {
|
||||
let createData = {
|
||||
type: "panel",
|
||||
incognito: true,
|
||||
};
|
||||
let creating = chrome.windows.create(createData);
|
||||
creating.then(() => {
|
||||
console.log("The news panel has been created");
|
||||
});
|
||||
} else if (e.target.id === "generate-fresh-tunnel") {
|
||||
function RefreshIdentity() {
|
||||
console.log("Generating new identity")
|
||||
const Http = new XMLHttpRequest();
|
||||
const url = 'http://' + controlHost + ":" + controlPort
|
||||
Http.open("GET", url);
|
||||
Http.send();
|
||||
Http.onreadystatechange = (e) => {
|
||||
console.log(Http.responseText)
|
||||
}
|
||||
}
|
||||
RefreshIdentity();
|
||||
} else if (e.target.id === "window-preface-title") {
|
||||
getCurrentWindow().then((currentWindow) => {
|
||||
let updateInfo = {
|
||||
titlePreface: "I2P Help | "
|
||||
}
|
||||
chrome.windows.update(currentWindow.id, updateInfo);
|
||||
});
|
||||
} else if (e.target.id === "clear-browser-data") {
|
||||
forgetBrowsingData()
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
});
|
@@ -1,41 +1,80 @@
|
||||
{
|
||||
"applications": {
|
||||
"gecko": {
|
||||
"id": "i2psetproxy.js@eyedeekay.github.io",
|
||||
"strict_min_version": "60.0"
|
||||
"id": "i2ppb@eyedeekay.github.io",
|
||||
"strict_min_version": "85.0"
|
||||
}
|
||||
},
|
||||
"permissions": [
|
||||
"theme",
|
||||
"alarms",
|
||||
"browsingData",
|
||||
"management",
|
||||
"notifications",
|
||||
"proxy",
|
||||
"privacy",
|
||||
"storage",
|
||||
"webNavigation",
|
||||
"webRequest",
|
||||
"webRequestBlocking",
|
||||
"contextualIdentities",
|
||||
"cookies",
|
||||
"tabs",
|
||||
"<all_urls>"
|
||||
],
|
||||
"manifest_version": 2,
|
||||
"name": "__MSG_extensionName__",
|
||||
"version": "1.27",
|
||||
"version": "0.113",
|
||||
"description": "__MSG_extensionDescription__",
|
||||
"homepage_url": "https://github.com/eyedeekay/i2psetproxy.js",
|
||||
"homepage_url": "https://github.com/eyedeekay/I2P-in-Private-Browsing-Mode-Firefox",
|
||||
"icons": {
|
||||
"48": "icons/toopie.png"
|
||||
"48": "icons/i2plogo.png"
|
||||
},
|
||||
"browser_action": {
|
||||
"browser_style": true,
|
||||
"default_icon": "icons/toopie.png",
|
||||
"default_icon": "icons/i2plogo.png",
|
||||
"default_title": "__MSG_extensionName__",
|
||||
"default_popup": "window.html"
|
||||
},
|
||||
"page_action": {
|
||||
"browser_style": true,
|
||||
"default_title": "__MSG_toopieTLS__",
|
||||
"default_icon": "icons/i2plogo.png",
|
||||
"show_matches": [
|
||||
"http://*.i2p/*",
|
||||
"https://*.i2p/*",
|
||||
"http://*.b32.i2p/*",
|
||||
"https://*.b32.i2p/*"
|
||||
],
|
||||
"pinned": true
|
||||
},
|
||||
"options_ui": {
|
||||
"page": "options/options.html"
|
||||
},
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"js": ["script.js"]
|
||||
}
|
||||
],
|
||||
"background": {
|
||||
"scripts": ["chromium/browser-polyfill.min.js", "background.js", "proxy.js", "info.js", "privacy.js" ]
|
||||
"persistent": true,
|
||||
"scripts": [
|
||||
"config.js",
|
||||
"torrent/common.js",
|
||||
"torrent/background.js",
|
||||
"i2pcontrol/i2pcontrol.js",
|
||||
"host.js",
|
||||
"privacy.js",
|
||||
"platform.js",
|
||||
"background.js",
|
||||
"handler.js",
|
||||
"proxy.js",
|
||||
"info.js",
|
||||
"home.js",
|
||||
"scrub.js",
|
||||
"bookmarks.js"
|
||||
]
|
||||
},
|
||||
"default_locale": "en"
|
||||
}
|
||||
|
||||
|
@@ -1,62 +0,0 @@
|
||||
body {
|
||||
width: 25em;
|
||||
font-family: "Open Sans Light", sans-serif;
|
||||
font-size: 0.9em;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
section.scheme-options {
|
||||
padding: 0.5em 0;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
#clear-button {
|
||||
margin: 0 1.3em 1em 0;
|
||||
}
|
||||
|
||||
section.scheme-options input,
|
||||
section.scheme-options>select,
|
||||
#clear-button {
|
||||
float: right;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
padding: 0.2em 0;
|
||||
}
|
||||
|
||||
label:hover {
|
||||
background-color: #EAEFF2;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
html, body {
|
||||
width: 350px;
|
||||
}
|
||||
|
||||
a {
|
||||
margin: 10px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.panel {
|
||||
margin: 5px;
|
||||
}
|
||||
|
||||
span.identity {
|
||||
width: 100px;
|
||||
display: inline-block;
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.control-options {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.identity-options {
|
||||
display: none;
|
||||
}
|
@@ -1,51 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="options.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<section class="scheme-options">
|
||||
<span class="title">Proxy Scheme:</span>
|
||||
<select id="proxy_scheme">
|
||||
<option value="http" selected="selected">HTTP</option>
|
||||
<option value="socks5">SOCKS5</option>
|
||||
</select>
|
||||
</section>
|
||||
|
||||
<section class="scheme-options proxy-options">
|
||||
<div class="title" >Proxy Options</div>
|
||||
|
||||
<label id="portText">Host: </label>
|
||||
<input type="text" data="host" id="host" value="127.0.0.1"/>
|
||||
<br>
|
||||
<label id="hostText">Port: </label>
|
||||
<input type="text" data="port" id="port" value="4444"/>
|
||||
|
||||
</section>
|
||||
<section class="scheme-options identity-options">
|
||||
<div class="panel">
|
||||
<div id="identity-list">Identity list?</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="scheme-options control-options">
|
||||
<div class="title" >Controller Options</div>
|
||||
<p id="controlHelpText"> These options will be inert if used with the default i2p HTTP or SOCKS
|
||||
proxy. </p>
|
||||
<label id="controlPortText">Control Host: </label>
|
||||
<input type="text" data="controlhost" id="controlhost" value="127.0.0.1"/>
|
||||
<br>
|
||||
<label id="controlHostText">Control Port: </label>
|
||||
<input type="text" data="controlport" id="controlport" value="4444"/>
|
||||
|
||||
</section>
|
||||
|
||||
<input type="button" value="Save preferences" id="save-button"/>
|
||||
|
||||
<script src="options.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
@@ -1,214 +0,0 @@
|
||||
|
||||
function isDroid() {
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os == "android") {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function SetHostText() {
|
||||
var hostid = document.getElementById('hostText');
|
||||
hostid.textContent = chrome.i18n.getMessage("hostText");
|
||||
}
|
||||
|
||||
function SetPortText() {
|
||||
var portid = document.getElementById('portText');
|
||||
portid.textContent = chrome.i18n.getMessage("portText");
|
||||
}
|
||||
|
||||
function SetControlHostText() {
|
||||
var controlhostid = document.getElementById('controlHostText');
|
||||
controlhostid.textContent = chrome.i18n.getMessage("controlHostText");
|
||||
}
|
||||
|
||||
function setupProxy() {
|
||||
var controlHost = getControlHost()
|
||||
var controlPort = getControlPort();
|
||||
var Host = getHost()
|
||||
var Port = getPort()
|
||||
var Scheme = getScheme()
|
||||
if (!getChrome()) {
|
||||
function handleProxyRequest(requestInfo) {
|
||||
console.log("proxying request via listener")
|
||||
console.log(" ", Scheme, Host, ":", Port,)
|
||||
return {
|
||||
type: Scheme,
|
||||
host: Host,
|
||||
port: Port,
|
||||
proxyDns: true
|
||||
}
|
||||
}
|
||||
console.log("Setting up Firefox WebExtension proxy")
|
||||
browser.proxy.onRequest.addListener(handleProxyRequest, {
|
||||
urls: ["<all_urls>"]
|
||||
});
|
||||
console.log("i2p settings created for WebExtension Proxy")
|
||||
} else {
|
||||
var config = {
|
||||
mode: "fixed_servers",
|
||||
rules: {
|
||||
singleProxy: {
|
||||
scheme: Scheme,
|
||||
host: Host,
|
||||
port: parseInt(Port),
|
||||
},
|
||||
}
|
||||
};
|
||||
chrome.proxy.settings.set(
|
||||
{
|
||||
value: config,
|
||||
scope: 'regular'
|
||||
}, function() {});
|
||||
}
|
||||
}
|
||||
|
||||
function SetControlPortText() {
|
||||
var controlportid = document.getElementById('controlPortText');
|
||||
controlportid.textContent = chrome.i18n.getMessage("controlPortText");
|
||||
}
|
||||
|
||||
function SetControlHelpText() {
|
||||
var portid = document.getElementById('controlHelpText');
|
||||
portid.textContent = chrome.i18n.getMessage("controlHelpText");
|
||||
}
|
||||
|
||||
function getScheme() {
|
||||
const proxy_scheme = document.querySelector("#proxy_scheme");
|
||||
console.log("Got i2p proxy scheme:", proxy_scheme.value);
|
||||
if (proxy_scheme == "HTTP") {
|
||||
return "http"
|
||||
}
|
||||
if (proxy_scheme == "SOCKS") {
|
||||
return "socks"
|
||||
}
|
||||
return proxy_scheme.value;
|
||||
}
|
||||
|
||||
function getHost() {
|
||||
proxy_host = document.getElementById("host").value
|
||||
console.log("Got i2p proxy host:", proxy_host);
|
||||
if (proxy_host == undefined) {
|
||||
return "127.0.0.1"
|
||||
}
|
||||
return proxy_host;
|
||||
}
|
||||
|
||||
function getPort() {
|
||||
proxy_port = document.getElementById("port").value
|
||||
console.log("Got i2p proxy port:", proxy_port);
|
||||
if (proxy_port == undefined) {
|
||||
return "4444"
|
||||
}
|
||||
return proxy_port;
|
||||
}
|
||||
|
||||
function getControlHost() {
|
||||
control_host = document.getElementById("controlhost").value
|
||||
console.log("Got i2p control host:", control_host);
|
||||
if (control_host == undefined) {
|
||||
return "127.0.0.1"
|
||||
}
|
||||
return control_host;
|
||||
}
|
||||
|
||||
function getControlPort() {
|
||||
control_port = document.getElementById("controlport").value
|
||||
console.log("Got i2p control port:", control_port);
|
||||
if (control_port == undefined) {
|
||||
return "4444"
|
||||
}
|
||||
return control_port;
|
||||
}
|
||||
|
||||
function checkStoredSettings(storedSettings) {
|
||||
let defaultSettings = {};
|
||||
if (!storedSettings.proxy_scheme) {
|
||||
defaultSettings["proxy_scheme"] = "http"
|
||||
}
|
||||
if (!storedSettings.proxy_host) {
|
||||
defaultSettings["proxy_host"] = "127.0.0.1"
|
||||
}
|
||||
if (!storedSettings.proxy_port) {
|
||||
defaultSettings["proxy_port"] = 4444
|
||||
}
|
||||
if (!storedSettings.control_host) {
|
||||
defaultSettings["control_host"] = "127.0.0.1"
|
||||
}
|
||||
if (!storedSettings.control_port) {
|
||||
defaultSettings["control_port"] = 4444
|
||||
}
|
||||
chrome.storage.local.set(defaultSettings);
|
||||
}
|
||||
|
||||
function onError(e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
function storeSettings() {
|
||||
let proxy_scheme = getScheme()
|
||||
let proxy_host = getHost()
|
||||
let proxy_port = getPort()
|
||||
let control_host = getControlHost()
|
||||
let control_port = getControlPort()
|
||||
chrome.storage.local.set({
|
||||
proxy_scheme,
|
||||
proxy_host,
|
||||
proxy_port,
|
||||
control_host,
|
||||
control_port,
|
||||
});
|
||||
console.log("storing proxy scheme:", proxy_scheme)
|
||||
console.log("storing proxy host:", proxy_host)
|
||||
console.log("storing proxy port:", proxy_port)
|
||||
console.log("storing control host:", control_host)
|
||||
console.log("storing control port:", control_port)
|
||||
setupProxy()
|
||||
}
|
||||
|
||||
function updateUI(restoredSettings) {
|
||||
|
||||
const selectList = document.querySelector("#proxy_scheme")
|
||||
selectList.value = restoredSettings.proxy_scheme
|
||||
console.log("showing proxy scheme:", selectList.value)
|
||||
|
||||
const hostitem = document.getElementById("host")
|
||||
hostitem.value = restoredSettings.proxy_host
|
||||
console.log("showing proxy host:", hostitem.value)
|
||||
|
||||
const portitem = document.getElementById("port")
|
||||
portitem.value = restoredSettings.proxy_port
|
||||
console.log("showing proxy port:", portitem.value)
|
||||
|
||||
const controlhostitem = document.getElementById("controlhost")
|
||||
controlhostitem.value = restoredSettings.control_host
|
||||
console.log("showing control host:", controlhostitem.value)
|
||||
|
||||
const controlportitem = document.getElementById("controlport")
|
||||
controlportitem.value = restoredSettings.control_port
|
||||
console.log("showing control port:", controlportitem.value)
|
||||
|
||||
SetHostText()
|
||||
SetPortText()
|
||||
SetControlHostText()
|
||||
SetControlPortText()
|
||||
SetControlHelpText()
|
||||
setupProxy()
|
||||
}
|
||||
|
||||
function onError(e) {
|
||||
console.error(e);
|
||||
}
|
||||
chrome.storage.local.get(function(got) {
|
||||
checkStoredSettings(got)
|
||||
updateUI(got)
|
||||
});
|
||||
|
||||
const saveButton = document.querySelector("#save-button");
|
||||
saveButton.addEventListener("click", storeSettings);
|
||||
|
||||
//EXPERIMENTAL: Open in I2P Tab
|
||||
|
242
privacy.js
242
privacy.js
@@ -1,242 +0,0 @@
|
||||
|
||||
function getChrome() {
|
||||
if (chrome.runtime.getBrowserInfo == undefined) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
function onSet(result) {
|
||||
if (result) {
|
||||
console.log("->: Value was updated");
|
||||
} else {
|
||||
console.log("-X: Value was not updated");
|
||||
}
|
||||
}
|
||||
|
||||
// This disables queries to centralized databases of bad URLs to screen for
|
||||
// risky sites in your browser
|
||||
function disableHyperlinkAuditing() {
|
||||
if (!getChrome()){
|
||||
var setting = browser.privacy.websites.hyperlinkAuditingEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling hyperlink auditing/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
}
|
||||
|
||||
// This enables first-party isolation
|
||||
function enableFirstPartyIsolation() {
|
||||
if (!getChrome()) {
|
||||
var setting = browser.privacy.websites.firstPartyIsolate.set({
|
||||
value: true
|
||||
});
|
||||
console.log("Enabling first party isolation/val=", {
|
||||
value: true
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
}
|
||||
|
||||
// This rejects tracking cookies and third-party cookies but it
|
||||
// LEAVES "Persistent" Cookies unmodified in favor of an option in the content
|
||||
// interface for now
|
||||
function disableEvilCookies() {
|
||||
if (!getChrome()) {
|
||||
var getting = browser.privacy.websites.cookieConfig.get({});
|
||||
getting.then((got) => {
|
||||
var setting = browser.privacy.websites.cookieConfig.set(
|
||||
{value: {behavior: "reject_third_party",
|
||||
nonPersistentCookies: got.value.nonPersistentCookies}}
|
||||
);
|
||||
console.log("Setting cookie behavior/val=", {value: {behavior: "reject_third_party",
|
||||
nonPersistentCookies: got.value.nonPersistentCookies}})
|
||||
setting.then(onSet);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// Make sure that they're gone
|
||||
/*function disableBadCookies(){
|
||||
var setting = browser.privacy.websites.thirdPartyCookiesAllowed.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling third party cookies/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}*/
|
||||
|
||||
// this disables the use of referrer headers
|
||||
function disableReferrers() {
|
||||
if (!getChrome()){
|
||||
var setting = browser.privacy.websites.referrersEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Disabling referrer headers/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
}
|
||||
|
||||
// enable fingerprinting resistent features(letterboxing and stuff)
|
||||
function enableResistFingerprinting() {
|
||||
if (!getChrome()){
|
||||
var setting = browser.privacy.websites.referrersEnabled.set({
|
||||
value: true
|
||||
});
|
||||
console.log("Enabling resist fingerprinting/val=", {
|
||||
value: true
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
}
|
||||
|
||||
// This is essentially a blocklist of clearnet web-sites known to do bad tracking
|
||||
function enableTrackingProtection() {
|
||||
if (!getChrome()) {
|
||||
var setting = browser.privacy.websites.trackingProtectionMode.set({
|
||||
value: "always"
|
||||
});
|
||||
console.log("Enabling tracking protection/val=", {
|
||||
value: "always"
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
}
|
||||
|
||||
// This disables protected content, which is a form of digital restrictions
|
||||
// management dependent on identifying information
|
||||
function disableDigitalRestrictionsManagement() {
|
||||
if (!getChrome()){
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os == "win") {
|
||||
var setting = browser.privacy.websites.protectedContentEnabled.set({
|
||||
value: false
|
||||
});
|
||||
console.log("Setting Protected Content(Digital Restrictions Management) false/val=", {
|
||||
value: false
|
||||
})
|
||||
setting.then(onSet);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setAllPrivacy() {
|
||||
disableHyperlinkAuditing()
|
||||
enableFirstPartyIsolation()
|
||||
disableEvilCookies()
|
||||
disableReferrers()
|
||||
enableTrackingProtection()
|
||||
enableResistFingerprinting()
|
||||
disableDigitalRestrictionsManagement()
|
||||
}
|
||||
|
||||
setAllPrivacy()
|
||||
|
||||
function ResetPeerConnection(){
|
||||
if (!getChrome()) {
|
||||
browser.privacy.network.peerConnectionEnabled.set({value: false});
|
||||
browser.privacy.network.networkPredictionEnabled.set({value: false});
|
||||
}
|
||||
chrome.privacy.network.webRTCIPHandlingPolicy.set({value: "disable_non_proxied_udp"});
|
||||
console.log("Re-disabled WebRTC")
|
||||
}
|
||||
|
||||
function EnablePeerConnection(){
|
||||
if (!getChrome()) {
|
||||
browser.privacy.network.peerConnectionEnabled.set({value: true});
|
||||
browser.privacy.network.networkPredictionEnabled.set({value: false});
|
||||
}
|
||||
chrome.privacy.network.webRTCIPHandlingPolicy.set({value: "disable_non_proxied_udp"});
|
||||
console.log("Enabled WebRTC")
|
||||
}
|
||||
|
||||
ResetPeerConnection()
|
||||
|
||||
function ResetDisableSavePasswords(){
|
||||
browser.privacy.services.passwordSavingEnabled.set({value: false});
|
||||
console.log("Re-disabled saved passwords")
|
||||
}
|
||||
|
||||
function EnableSavePasswords(){
|
||||
browser.privacy.services.passwordSavingEnabled.set({value: true});
|
||||
console.log("Enabled saved passwords")
|
||||
}
|
||||
|
||||
//ResetDisableSavePasswords()
|
||||
|
||||
|
||||
var defaultSettings = {
|
||||
since: "forever",
|
||||
dataTypes: ["history", "downloads", "cache", "cookies", "passwords", "pluginData", "formData", "serviceWorkers"]
|
||||
};
|
||||
|
||||
var appSettings = {
|
||||
since: "forever",
|
||||
dataTypes: [""]
|
||||
};
|
||||
|
||||
function onError(e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
function checkStoredSettings(storedSettings) {
|
||||
chrome.storage.local.set(appSettings);
|
||||
}
|
||||
|
||||
if (!getChrome()){
|
||||
const gettingStoredSettings = browser.storage.local.get();
|
||||
gettingStoredSettings.then(checkStoredSettings, onError);
|
||||
}
|
||||
|
||||
function forgetBrowsingData(storedSettings) {
|
||||
|
||||
function getSince(selectedSince) {
|
||||
if (selectedSince === "forever") {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const times = {
|
||||
hour: () => { return 1000 * 60 * 60 },
|
||||
day: () => { return 1000 * 60 * 60 * 24 },
|
||||
week: () => { return 1000 * 60 * 60 * 24 * 7}
|
||||
}
|
||||
|
||||
const sinceMilliseconds = times[selectedSince].call();
|
||||
return Date.now() - sinceMilliseconds;
|
||||
}
|
||||
|
||||
function getTypes(selectedTypes) {
|
||||
let dataTypes = {};
|
||||
for (let item of selectedTypes) {
|
||||
dataTypes[item] = true;
|
||||
}
|
||||
return dataTypes;
|
||||
}
|
||||
|
||||
const since = getSince(defaultSettings.since);
|
||||
const dataTypes = getTypes(defaultSettings.dataTypes);
|
||||
|
||||
function notify() {
|
||||
let dataTypesString = Object.keys(dataTypes).join(", ");
|
||||
let sinceString = new Date(since).toLocaleString();
|
||||
browser.notifications.create({
|
||||
"type": "basic",
|
||||
"title": "Removed browsing data",
|
||||
"message": `Removed ${dataTypesString}\nsince ${sinceString}`
|
||||
});
|
||||
}
|
||||
|
||||
browser.browsingData.remove({since}, dataTypes).then(notify);
|
||||
|
||||
setAllPrivacy()
|
||||
ResetPeerConnection()
|
||||
|
||||
}
|
203
proxy.js
203
proxy.js
@@ -1,203 +0,0 @@
|
||||
|
||||
function getChrome() {
|
||||
if (browser.runtime.getBrowserInfo == undefined) {
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
function isDroid() {
|
||||
if (!getChrome()) {
|
||||
var gettingInfo = browser.runtime.getPlatformInfo();
|
||||
gettingInfo.then((got) => {
|
||||
if (got.os == "android") {
|
||||
console.log("android detected")
|
||||
return true
|
||||
} else {
|
||||
console.log("desktop detected")
|
||||
return false
|
||||
}
|
||||
});
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
if (!getChrome()) {
|
||||
browser.privacy.network.peerConnectionEnabled.set({
|
||||
value: false
|
||||
});
|
||||
}
|
||||
|
||||
chrome.privacy.network.networkPredictionEnabled.set({
|
||||
value: false
|
||||
});
|
||||
chrome.privacy.network.webRTCIPHandlingPolicy.set({
|
||||
value: "disable_non_proxied_udp"
|
||||
});
|
||||
|
||||
console.log("Preliminarily disabled WebRTC.")
|
||||
|
||||
function shouldProxyRequest(requestInfo) {
|
||||
return requestInfo.parentFrameId != -1;
|
||||
}
|
||||
|
||||
function handleProxyRequest(requestInfo) {
|
||||
console.log(`Proxying: ${requestInfo.url}`);
|
||||
console.log(" ", getScheme(), getHost(), ":", getPort(),)
|
||||
return {
|
||||
type: getScheme(),
|
||||
host: getHost(),
|
||||
port: getPort()
|
||||
};
|
||||
}
|
||||
|
||||
var proxy_scheme = "HTTP"
|
||||
|
||||
function getScheme() {
|
||||
if (proxy_scheme == undefined) {
|
||||
proxy_scheme = "http"
|
||||
}
|
||||
if (proxy_scheme == "HTTP") {
|
||||
proxy_scheme = "http"
|
||||
}
|
||||
if (proxy_scheme == "SOCKS") {
|
||||
proxy_scheme = "socks"
|
||||
}
|
||||
if (proxy_scheme != "http" && proxy_scheme != "socks") {
|
||||
proxy_scheme = "http"
|
||||
}
|
||||
console.log("Got i2p proxy scheme:", proxy_scheme);
|
||||
return proxy_scheme;
|
||||
}
|
||||
|
||||
var proxy_host = "127.0.0.1"
|
||||
|
||||
function getHost() {
|
||||
if (proxy_host == undefined) {
|
||||
proxy_host = "127.0.0.1"
|
||||
}
|
||||
console.log("Got i2p proxy host:", proxy_host);
|
||||
return proxy_host;
|
||||
}
|
||||
|
||||
var proxy_port = "4444"
|
||||
|
||||
function getPort() {
|
||||
if (proxy_port == undefined) {
|
||||
var scheme = getScheme()
|
||||
if (scheme == "socks") {
|
||||
proxy_port = "4446"
|
||||
} else {
|
||||
proxy_port = "4444"
|
||||
}
|
||||
}
|
||||
console.log("Got i2p proxy port:", proxy_port);
|
||||
return proxy_port;
|
||||
}
|
||||
|
||||
var control_host = "127.0.0.1"
|
||||
|
||||
function getControlHost() {
|
||||
if (control_host == undefined) {
|
||||
return "127.0.0.1"
|
||||
}
|
||||
console.log("Got i2p control host:", control_host);
|
||||
return control_host;
|
||||
}
|
||||
|
||||
var control_port = "4444"
|
||||
|
||||
function getControlPort() {
|
||||
if (control_port == undefined) {
|
||||
return "4444"
|
||||
}
|
||||
console.log("Got i2p control port:", control_port);
|
||||
return control_port;
|
||||
}
|
||||
|
||||
function setupProxy() {
|
||||
var controlHost = getControlHost()
|
||||
var controlPort = getControlPort();
|
||||
var Host = getHost()
|
||||
var Port = getPort()
|
||||
var Scheme = getScheme()
|
||||
if (!getChrome()) {
|
||||
function handleProxyRequest(requestInfo) {
|
||||
console.log("proxying request via listener")
|
||||
console.log(" ", Scheme, Host, ":", Port,)
|
||||
return {
|
||||
type: Scheme,
|
||||
host: Host,
|
||||
port: Port,
|
||||
proxyDns: true
|
||||
}
|
||||
}
|
||||
console.log("Setting up Firefox WebExtension proxy")
|
||||
browser.proxy.onRequest.addListener(handleProxyRequest, {
|
||||
urls: ["<all_urls>"]
|
||||
});
|
||||
console.log("i2p settings created for WebExtension Proxy")
|
||||
} else {
|
||||
var config = {
|
||||
mode: "fixed_servers",
|
||||
rules: {
|
||||
singleProxy: {
|
||||
scheme: Scheme,
|
||||
host: Host,
|
||||
port: parseInt(Port),
|
||||
},
|
||||
}
|
||||
};
|
||||
chrome.proxy.settings.set(
|
||||
{
|
||||
value: config,
|
||||
scope: 'regular'
|
||||
}, function() {});
|
||||
}
|
||||
}
|
||||
|
||||
function checkStoredSettings(storedSettings) {
|
||||
let defaultSettings = {};
|
||||
if (!storedSettings.proxy_scheme) {
|
||||
defaultSettings["proxy_scheme"] = "http"
|
||||
}
|
||||
if (!storedSettings.proxy_host) {
|
||||
defaultSettings["proxy_host"] = "127.0.0.1"
|
||||
}
|
||||
if (!storedSettings.proxy_port) {
|
||||
defaultSettings["proxy_port"] = 4444
|
||||
}
|
||||
if (!storedSettings.control_host) {
|
||||
defaultSettings["control_host"] = "127.0.0.1"
|
||||
}
|
||||
if (!storedSettings.control_port) {
|
||||
defaultSettings["control_port"] = 4444
|
||||
}
|
||||
chrome.storage.local.set(defaultSettings);
|
||||
}
|
||||
|
||||
function update(restoredSettings) {
|
||||
proxy_scheme = restoredSettings.proxy_scheme
|
||||
console.log("restoring proxy scheme:", proxy_scheme)
|
||||
proxy_host = restoredSettings.proxy_host
|
||||
console.log("restoring proxy host:", proxy_host)
|
||||
proxy_port = restoredSettings.proxy_port
|
||||
console.log("restoring proxy port:", proxy_port)
|
||||
control_host = restoredSettings.control_host
|
||||
console.log("restoring control host:", control_host)
|
||||
control_port = restoredSettings.control_port
|
||||
console.log("restoring control port:", control_port)
|
||||
}
|
||||
|
||||
chrome.storage.local.get(function(got) {
|
||||
checkStoredSettings(got)
|
||||
update(got)
|
||||
setupProxy()
|
||||
});
|
||||
|
||||
// Theme all currently open windows
|
||||
if (!getChrome()) {
|
||||
if (!isDroid()) {
|
||||
browser.windows.getAll().then(wins => wins.forEach(themeWindow));
|
||||
}
|
||||
}
|
44
window.html
44
window.html
@@ -1,44 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="info.css"/>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="panel">
|
||||
<div class="panel-section panel-section-header">
|
||||
<div id="text-section-header" class="text-section-header">I2P Assistance</div>
|
||||
</div>
|
||||
|
||||
<div id="text-section-helptext">
|
||||
You are now free to browse the eepWeb!
|
||||
|
||||
Your browser is now configured to browse anonymously on the I2P network.
|
||||
As you browse, your traffic will be routed through other network nodes
|
||||
to disguise it's origin, both from the server and from the nodes
|
||||
themselves.
|
||||
|
||||
</div>
|
||||
|
||||
<div class="panel-section-separator"></div>
|
||||
<!-- This is where I'll eventually put the tunnel control panel -->
|
||||
<!-- <a href="#" id="generate-fresh-tunnel> Generate a Fresh Tunnel</a>"-->
|
||||
<!-- -->
|
||||
<strong><a href="#" id="clear-browser-data">Clear all browsing data</a></strong><br>
|
||||
<!--<strong><a href="#" id="temp-enable-webrtc">Temporarily enable WebRTC</a></strong><br>-->
|
||||
<div class="panel-section-separator"></div>
|
||||
<a href="http://i2pforum.i2p" id="window-create-forum-panel">Visit the I2P Forums</a><br>
|
||||
<a href="http://i2p-projekt.i2p/blog" id="window-create-news-panel">Get the latest I2P News</a><br>
|
||||
<div class="panel-section-separator"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<script src="privacy.js"></script>
|
||||
<script src="info.js"></script>
|
||||
<script src="content.js"></script>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
Reference in New Issue
Block a user