Compare commits
737 Commits
1.0.0-a.14
...
1.0.1-a
Author | SHA1 | Date | |
---|---|---|---|
![]() |
359af36098 | ||
![]() |
3cad9e9629 | ||
![]() |
fe631c21d5 | ||
![]() |
1647dc78a2 | ||
![]() |
b05dd8f8a0 | ||
![]() |
dcaf5a1636 | ||
![]() |
1dc3122bd3 | ||
![]() |
424bcd8161 | ||
![]() |
d38174483f | ||
![]() |
eefb7220d1 | ||
![]() |
035568d81f | ||
![]() |
14c5425276 | ||
![]() |
564e3b5b82 | ||
![]() |
d7cd0ab2c4 | ||
![]() |
71d542f62b | ||
![]() |
473776c0f7 | ||
![]() |
193e1598b0 | ||
![]() |
6846b83985 | ||
![]() |
7eebce2fde | ||
![]() |
a5787a77f3 | ||
![]() |
a60816ee2a | ||
![]() |
8f7b8506a6 | ||
![]() |
41dd9b684e | ||
![]() |
b9d343962f | ||
![]() |
329becfff6 | ||
![]() |
0ff30f0a58 | ||
![]() |
10721816f3 | ||
![]() |
c7e22d5d84 | ||
![]() |
2681955405 | ||
![]() |
81930a0e9c | ||
![]() |
9c202c84c1 | ||
![]() |
2e8daaf9c2 | ||
![]() |
bafd5bb012 | ||
![]() |
2246cb1c91 | ||
![]() |
6df8a4b5bc | ||
![]() |
c35494cbcf | ||
![]() |
53570aba42 | ||
![]() |
0c10aebe3e | ||
![]() |
520f4a1598 | ||
![]() |
b4df509523 | ||
![]() |
bd5bb1282f | ||
![]() |
d9980d1c9f | ||
![]() |
9e02951276 | ||
![]() |
3ea87ba79e | ||
![]() |
795edae41e | ||
![]() |
a9e86c84e4 | ||
![]() |
644aab3ed0 | ||
![]() |
5ae2cc8989 | ||
![]() |
0992236bb6 | ||
![]() |
0c916dc3b9 | ||
![]() |
26a15abfd4 | ||
![]() |
b73f16f09a | ||
![]() |
6508c86dca | ||
![]() |
02e51fc828 | ||
![]() |
d4791df40b | ||
![]() |
9de1e518d8 | ||
![]() |
8c539fa4f4 | ||
![]() |
41829a1bd9 | ||
![]() |
503a7531ef | ||
![]() |
87cd7da948 | ||
![]() |
fa72ba1719 | ||
![]() |
a140fa19e9 | ||
![]() |
dadbab9708 | ||
![]() |
6681e0d39b | ||
![]() |
6ae26931b0 | ||
![]() |
dbf14a5071 | ||
![]() |
50a06d19d4 | ||
![]() |
f8f9d55a53 | ||
![]() |
5e23e8a8b4 | ||
![]() |
cf6c72df08 | ||
![]() |
5da6922894 | ||
![]() |
cf0d35f7c9 | ||
![]() |
f1c1169d42 | ||
![]() |
00ee15236f | ||
![]() |
873bcbc24d | ||
![]() |
ad4f43d46d | ||
![]() |
3a2b027019 | ||
![]() |
313c1161ff | ||
![]() |
cb6e77ac51 | ||
![]() |
a1453aebbd | ||
![]() |
a546d053ae | ||
![]() |
160a449086 | ||
![]() |
bb56066857 | ||
![]() |
65b178e594 | ||
![]() |
73e05b6582 | ||
![]() |
019c676182 | ||
![]() |
2357ea5027 | ||
![]() |
e29c70edd2 | ||
![]() |
016d8eb806 | ||
![]() |
84aed3a780 | ||
![]() |
44c31582da | ||
![]() |
54145170c9 | ||
![]() |
45d0dac197 | ||
![]() |
6a983664fb | ||
![]() |
c6fd3c9c0b | ||
![]() |
26705f20e0 | ||
![]() |
06602ffaa2 | ||
![]() |
c6050a2246 | ||
![]() |
2961aeed08 | ||
![]() |
8023190d4d | ||
![]() |
65f6bf862b | ||
![]() |
6d3b20062e | ||
![]() |
af98bb7758 | ||
![]() |
2ea30c98aa | ||
![]() |
096d1f305c | ||
![]() |
bf723e0251 | ||
![]() |
0d8bede377 | ||
![]() |
6a19315350 | ||
![]() |
9f50343a8f | ||
![]() |
66ffbf1c9a | ||
![]() |
490a6822d4 | ||
![]() |
3565b77557 | ||
![]() |
667321e728 | ||
![]() |
0e57c961c8 | ||
![]() |
da36c5e375 | ||
![]() |
9e251af4a7 | ||
![]() |
1bbac89727 | ||
![]() |
6b20c47f06 | ||
![]() |
22ffac163d | ||
![]() |
8b4bed667c | ||
![]() |
83f71e446e | ||
![]() |
100223ae56 | ||
![]() |
08fe9a5cc7 | ||
![]() |
14ff60b6ad | ||
![]() |
c08c235be3 | ||
![]() |
06638a06f7 | ||
![]() |
264496925f | ||
![]() |
a840822c78 | ||
![]() |
ba71697278 | ||
![]() |
811d925400 | ||
![]() |
76fa8435cf | ||
![]() |
24a1c3e1c2 | ||
![]() |
0e63b1705e | ||
![]() |
80136189b1 | ||
![]() |
b0e7e8cb0d | ||
![]() |
68cbdd9465 | ||
![]() |
84d82c7c4e | ||
![]() |
69e6e4fccd | ||
![]() |
40949076d6 | ||
![]() |
34b54b38d3 | ||
![]() |
00d74ae459 | ||
![]() |
6c335507a5 | ||
![]() |
ef5ef77cbd | ||
![]() |
1c580faab8 | ||
![]() |
9d3fd17c18 | ||
![]() |
d4bbe0fa7b | ||
![]() |
977a2a81dd | ||
![]() |
3350a64a44 | ||
![]() |
7c68779e98 | ||
![]() |
a5e7bd6212 | ||
![]() |
79c0402c70 | ||
![]() |
8ec5473b97 | ||
![]() |
daf4bd48b2 | ||
![]() |
7b75bc8748 | ||
![]() |
150f2fe685 | ||
![]() |
10805c9abb | ||
![]() |
2609cfa754 | ||
![]() |
1be24abb4b | ||
![]() |
8fa89ae960 | ||
![]() |
b8682d9612 | ||
![]() |
06b51725b0 | ||
![]() |
54b34d86b7 | ||
![]() |
b098cff025 | ||
![]() |
e1ef0e4771 | ||
![]() |
a478f7f989 | ||
![]() |
849754a78f | ||
![]() |
af263d931b | ||
![]() |
1eca3d893f | ||
![]() |
7bfe75b859 | ||
![]() |
163668d031 | ||
![]() |
822cafbaad | ||
![]() |
76f264c7c2 | ||
![]() |
04381ea1b0 | ||
![]() |
044bef2266 | ||
![]() |
5e2075e901 | ||
![]() |
380f9f4a7b | ||
![]() |
6b601a7be6 | ||
![]() |
08df5e69ac | ||
![]() |
866b90a884 | ||
![]() |
46fdd7dcc1 | ||
![]() |
41020b7565 | ||
![]() |
1f6e24c192 | ||
![]() |
faecb40361 | ||
![]() |
0c925aef25 | ||
![]() |
195148c1c9 | ||
![]() |
c468c8ba96 | ||
![]() |
831a75a774 | ||
![]() |
d9313efa3e | ||
![]() |
ad95eed29f | ||
![]() |
15a79848af | ||
![]() |
985133748e | ||
![]() |
c6a78fe978 | ||
![]() |
028bd529cf | ||
![]() |
7d10943d84 | ||
![]() |
5b8041a62a | ||
![]() |
306839e274 | ||
![]() |
a7cf75980f | ||
![]() |
7cab991702 | ||
![]() |
374b0f7e2e | ||
![]() |
851de67432 | ||
![]() |
0ff12624ea | ||
![]() |
ff93f63630 | ||
![]() |
cb83aca94a | ||
![]() |
c1c616e431 | ||
![]() |
8f893d0cf5 | ||
![]() |
6605249b2a | ||
![]() |
aab319623c | ||
![]() |
00b8d3443d | ||
![]() |
700d1e9357 | ||
![]() |
f7612bd61a | ||
![]() |
f1134c50c1 | ||
![]() |
9873e66430 | ||
![]() |
fa871a586b | ||
![]() |
165bed9101 | ||
![]() |
2ec8175a3e | ||
![]() |
6e6aef15cb | ||
![]() |
7609e718af | ||
![]() |
34acabd43c | ||
![]() |
0a3ee66633 | ||
![]() |
00fb5c24f9 | ||
![]() |
4752eae590 | ||
![]() |
a44d6c129f | ||
![]() |
abefe733a6 | ||
![]() |
a1b2406c27 | ||
![]() |
31797a564e | ||
![]() |
0949b9f25d | ||
![]() |
0b408f4001 | ||
![]() |
02ddf51b4e | ||
![]() |
cf2ef5528d | ||
![]() |
d206509c19 | ||
![]() |
629813bce2 | ||
![]() |
17be7d83ed | ||
![]() |
e461dd9927 | ||
![]() |
d0a0c822ca | ||
![]() |
8c69add93f | ||
![]() |
2bf2bc10b0 | ||
![]() |
040db36477 | ||
![]() |
a8178bb16f | ||
![]() |
b199007543 | ||
![]() |
faeec9bc32 | ||
![]() |
cc276bd3c6 | ||
![]() |
9e88f80d13 | ||
![]() |
b1d88a1ffb | ||
![]() |
2fbc627fbb | ||
![]() |
c2ed555ec3 | ||
![]() |
7728fc6cda | ||
![]() |
bf3511467e | ||
![]() |
e9fe95dacd | ||
![]() |
7dab354bc1 | ||
![]() |
7636a1f015 | ||
![]() |
e302828f17 | ||
![]() |
6ada0bb2aa | ||
![]() |
37adddc0ed | ||
![]() |
7ef180fe7e | ||
![]() |
80e99b649d | ||
![]() |
762b18ff1e | ||
![]() |
9f3b50d84a | ||
![]() |
a132748dc2 | ||
![]() |
69d2696666 | ||
![]() |
4d6c2c3650 | ||
![]() |
3ce32d6516 | ||
![]() |
1590ea7944 | ||
![]() |
acf057acc5 | ||
![]() |
54395acd2a | ||
![]() |
0fe51f1a73 | ||
![]() |
379e74b8b1 | ||
![]() |
18baa341fc | ||
![]() |
dd86acde88 | ||
![]() |
cda31c11e9 | ||
![]() |
753a34eebf | ||
![]() |
13b78a8fc1 | ||
![]() |
a374ab186a | ||
![]() |
74e3407a42 | ||
![]() |
3e5742be0d | ||
![]() |
881f556534 | ||
![]() |
5ce28c0136 | ||
![]() |
74f304ef18 | ||
![]() |
467b444535 | ||
![]() |
0fc27c755e | ||
![]() |
cf9b266bca | ||
![]() |
ced7d3c4a6 | ||
![]() |
e78fa3f544 | ||
![]() |
dfa316831f | ||
![]() |
668124e1d0 | ||
![]() |
9eb70c3b79 | ||
![]() |
94463e9fa5 | ||
![]() |
1522afd6ca | ||
![]() |
01e8d7f495 | ||
![]() |
d8db68a92d | ||
![]() |
2dc6b1109e | ||
![]() |
200d74d14c | ||
![]() |
fa601a6aaa | ||
![]() |
1cf4458cd9 | ||
![]() |
385a275337 | ||
![]() |
b1be94a29d | ||
![]() |
7ca9ba00b5 | ||
![]() |
8f909cf418 | ||
![]() |
76c84c605d | ||
![]() |
2195a9804e | ||
![]() |
ba289ca71f | ||
![]() |
604ac5dd49 | ||
![]() |
98b2c582f2 | ||
![]() |
2ab5f5f9d9 | ||
![]() |
85b97d790a | ||
![]() |
b07f2ebbd6 | ||
![]() |
2cbf882258 | ||
![]() |
27d0d6805f | ||
![]() |
649bc32b1f | ||
![]() |
504737f4ea | ||
![]() |
10eae96486 | ||
![]() |
dd9124a99a | ||
![]() |
7b836d1232 | ||
![]() |
00e0892c31 | ||
![]() |
c44b844770 | ||
![]() |
2cdb14c184 | ||
![]() |
912aeba7b4 | ||
![]() |
10aad8c6ed | ||
![]() |
296cb9c44f | ||
![]() |
619d54ddc6 | ||
![]() |
c0923fbe0a | ||
![]() |
689789f2e9 | ||
![]() |
2eaf348eda | ||
![]() |
1f25a3c502 | ||
![]() |
4d9d8be4a4 | ||
![]() |
7bf5aa2015 | ||
![]() |
c2762c4eb9 | ||
![]() |
f5f3792165 | ||
![]() |
212e6e4bf8 | ||
![]() |
ca6f7c0b3a | ||
![]() |
70df8829fb | ||
![]() |
b586880d44 | ||
![]() |
758a5cc44a | ||
![]() |
985a3f433c | ||
![]() |
95545dcec9 | ||
![]() |
541d2f7baa | ||
![]() |
b5566038e2 | ||
![]() |
bcf8b190d7 | ||
![]() |
3ad9874ded | ||
![]() |
32ef547349 | ||
![]() |
9ad90e7298 | ||
![]() |
f2a8c3665d | ||
![]() |
98e97585e1 | ||
![]() |
fcb95175de | ||
![]() |
63bf09bc3c | ||
![]() |
b39570d9e5 | ||
![]() |
d83908bcff | ||
![]() |
a7f6a1ef4f | ||
![]() |
f849bc0a1a | ||
![]() |
dd5d8dce77 | ||
![]() |
82f933af93 | ||
![]() |
52485459a9 | ||
![]() |
6a4e81d1a1 | ||
![]() |
9b3afb58cd | ||
![]() |
802a7300e0 | ||
![]() |
87ca7d2d73 | ||
![]() |
1cdb0404fd | ||
![]() |
09b3197aa4 | ||
![]() |
4fe83e8f25 | ||
![]() |
b8361cc8ea | ||
![]() |
ac37939c6e | ||
![]() |
81a2b5b874 | ||
![]() |
094295ba93 | ||
![]() |
7bea297965 | ||
![]() |
378ea1cab1 | ||
![]() |
f22e1f6503 | ||
![]() |
0345322c06 | ||
![]() |
61cf75f84c | ||
![]() |
866b9d74ef | ||
![]() |
d5bbcd0617 | ||
![]() |
78fa236bec | ||
![]() |
35fb5f510e | ||
![]() |
cc340432ba | ||
![]() |
d87315da49 | ||
![]() |
bf4e47f8fb | ||
![]() |
162a98fd1b | ||
![]() |
a6aeafa668 | ||
![]() |
31bd7b14dd | ||
![]() |
ab793ff424 | ||
![]() |
043755c1a0 | ||
![]() |
42a0140d8d | ||
![]() |
ed923b73cc | ||
![]() |
06adcdbcb6 | ||
![]() |
7f4265dfe4 | ||
![]() |
cd3a09d26b | ||
![]() |
09585654ee | ||
![]() |
67bc214cc9 | ||
![]() |
4cef2dd304 | ||
![]() |
c313c95c81 | ||
![]() |
7427fa0017 | ||
![]() |
10c10523f1 | ||
![]() |
21c537f000 | ||
![]() |
4920433736 | ||
![]() |
57e2c4af0a | ||
![]() |
9652725e84 | ||
![]() |
21635d9d63 | ||
![]() |
c7845a8e8f | ||
![]() |
c0aa1664cb | ||
![]() |
f72e38fd54 | ||
![]() |
d39ae862d6 | ||
![]() |
00d0eb8fc8 | ||
![]() |
80866de5fe | ||
![]() |
3dbb8a9bc2 | ||
![]() |
a47edaefaa | ||
![]() |
0c7dbbc2c6 | ||
![]() |
45515149e0 | ||
![]() |
b8da76745d | ||
![]() |
7d55d670ee | ||
![]() |
a74ec9650c | ||
![]() |
fdb5627da6 | ||
![]() |
60687d6b03 | ||
![]() |
dd68add538 | ||
![]() |
ea34bec55a | ||
![]() |
3def55d48b | ||
![]() |
5c4c3e6fb2 | ||
![]() |
c0d101aef0 | ||
![]() |
cc022ddd2f | ||
![]() |
511ca88aec | ||
![]() |
9217e32439 | ||
![]() |
2444bb04fc | ||
![]() |
c502719bd7 | ||
![]() |
d3a9ec4b3c | ||
![]() |
8a646bcc95 | ||
![]() |
92959769df | ||
![]() |
e4d56fd7d9 | ||
![]() |
b77f864668 | ||
![]() |
e02a44b20b | ||
![]() |
eb2d91256f | ||
![]() |
ff9876ebac | ||
![]() |
d6ddb542e9 | ||
![]() |
8ba6ba14e8 | ||
![]() |
6c58c9d61c | ||
![]() |
6f0609dd8c | ||
![]() |
ebba41c735 | ||
![]() |
65e040d987 | ||
![]() |
29a85db998 | ||
![]() |
d50a745e95 | ||
![]() |
a5854174c7 | ||
![]() |
5ef37aa079 | ||
![]() |
4c622d1429 | ||
![]() |
5593e7c437 | ||
![]() |
940bbae367 | ||
![]() |
4d8558929c | ||
![]() |
c05547248f | ||
![]() |
1a5e788476 | ||
![]() |
0af7b8b5b6 | ||
![]() |
95e444c31c | ||
![]() |
b011ad3de9 | ||
![]() |
ff188e0e1c | ||
![]() |
5ef88531d2 | ||
![]() |
410c875151 | ||
![]() |
bbad093d64 | ||
![]() |
e7103f1d87 | ||
![]() |
d9c3973b9d | ||
![]() |
d65681505d | ||
![]() |
739eff84f2 | ||
![]() |
d5e7d0c36f | ||
![]() |
90ca6ea99a | ||
![]() |
fdb4696066 | ||
![]() |
22a5dcddf3 | ||
![]() |
47ba86f211 | ||
![]() |
e2e7756649 | ||
![]() |
85b605db14 | ||
![]() |
cf48a52949 | ||
![]() |
dfde0f4baa | ||
![]() |
31b41329f2 | ||
![]() |
f856d9db6d | ||
![]() |
4187e20fbc | ||
![]() |
54b4f6e932 | ||
![]() |
bcabada80e | ||
![]() |
5c1decc77b | ||
![]() |
04af43909e | ||
![]() |
e808443631 | ||
![]() |
a47023e0f3 | ||
![]() |
ae9c99c7bc | ||
![]() |
187688e6ea | ||
![]() |
7854e26823 | ||
![]() |
d38eb962de | ||
![]() |
b2c2a134b0 | ||
![]() |
4874b4a1cd | ||
![]() |
983e85033f | ||
![]() |
38e6f075f4 | ||
![]() |
4146ad0936 | ||
![]() |
cf2435081a | ||
![]() |
e6f8eede34 | ||
![]() |
72f76608b6 | ||
![]() |
4eb07c762a | ||
![]() |
bbb4b64940 | ||
![]() |
cac80a2985 | ||
![]() |
ca1a63dbf1 | ||
![]() |
31fb9296c7 | ||
![]() |
7dd3e08409 | ||
![]() |
b537e5566a | ||
![]() |
5dd2a90f46 | ||
![]() |
034f351ac6 | ||
![]() |
195b215f5b | ||
![]() |
74d1385566 | ||
![]() |
957fe60a3d | ||
![]() |
5ac6cf4465 | ||
![]() |
29d9c85923 | ||
![]() |
78729d44de | ||
![]() |
483bee452e | ||
![]() |
8a87e3a0af | ||
![]() |
07283e1050 | ||
![]() |
1eaf6e49ef | ||
![]() |
c40d56b3b8 | ||
![]() |
ed7ad501b7 | ||
![]() |
964e0733b1 | ||
![]() |
c319a83d58 | ||
![]() |
4589c543da | ||
![]() |
0c3930425a | ||
![]() |
2f790586b2 | ||
![]() |
7d3b47f4f6 | ||
![]() |
69a1e0f1b9 | ||
![]() |
f78ad97710 | ||
![]() |
984e29f4cd | ||
![]() |
72c535b039 | ||
![]() |
000c41038d | ||
![]() |
776c9f69d5 | ||
![]() |
b38acdd8be | ||
![]() |
c8ad6cb70e | ||
![]() |
bb6113f221 | ||
![]() |
83d91ea38c | ||
![]() |
481687bdab | ||
![]() |
47f91322f6 | ||
![]() |
4549ac3671 | ||
![]() |
7ec8523c95 | ||
![]() |
1bd8f37381 | ||
![]() |
fa7a0ac661 | ||
![]() |
8f800f5134 | ||
![]() |
9cdfc864b3 | ||
![]() |
b2b3fb0b07 | ||
![]() |
c92931e005 | ||
![]() |
7c82ce5c23 | ||
![]() |
f36613e7e8 | ||
![]() |
71c131032b | ||
![]() |
81a8715b7b | ||
![]() |
5599000d33 | ||
![]() |
8cdf09daa0 | ||
![]() |
fc6a70162b | ||
![]() |
bc109d33c8 | ||
![]() |
9f10b74af5 | ||
![]() |
a65753d9a0 | ||
![]() |
234f116964 | ||
![]() |
6b34aa9d3d | ||
![]() |
3939aa8809 | ||
![]() |
de5f73a9e6 | ||
![]() |
26a9e255c1 | ||
![]() |
b50ed3a2d5 | ||
![]() |
0900c27d2b | ||
![]() |
ae723290d7 | ||
![]() |
1834fe2177 | ||
![]() |
3d6707fe21 | ||
![]() |
7e3eba280b | ||
![]() |
cba262e090 | ||
![]() |
b187c9383b | ||
![]() |
e7013c4db4 | ||
![]() |
1b5881c0fb | ||
![]() |
66d8d4bd71 | ||
![]() |
552a3c3cac | ||
![]() |
fb58c42938 | ||
![]() |
7a4a7681b9 | ||
![]() |
5a3a383cde | ||
![]() |
5943be1b39 | ||
![]() |
136993f203 | ||
![]() |
afc3eb7ee6 | ||
![]() |
c073febc29 | ||
![]() |
85842227aa | ||
![]() |
66ac0b9812 | ||
![]() |
3c2d617771 | ||
![]() |
03c0e70173 | ||
![]() |
f65888f5f4 | ||
![]() |
0f0cc0e03a | ||
![]() |
d7fe28886c | ||
![]() |
1d017d1dea | ||
![]() |
1479679cb6 | ||
![]() |
8c6b26b6f9 | ||
![]() |
3783625818 | ||
![]() |
0a5e803550 | ||
![]() |
a8980ae3ef | ||
![]() |
02fe8a0d0b | ||
![]() |
5700c61b17 | ||
![]() |
21930a9bf9 | ||
![]() |
e044f7d547 | ||
![]() |
1e4dea86bb | ||
![]() |
e737c55c74 | ||
![]() |
2c4cb2edd5 | ||
![]() |
ca6f3d882c | ||
![]() |
eea7e43ff8 | ||
![]() |
dec1fdd369 | ||
![]() |
01ec0092a2 | ||
![]() |
8af7418f3f | ||
![]() |
4589a22790 | ||
![]() |
15ecc5b8d4 | ||
![]() |
6c25279107 | ||
![]() |
979760a841 | ||
![]() |
c52853251d | ||
![]() |
7b23af1d76 | ||
![]() |
ec9804314d | ||
![]() |
b1d13f947d | ||
![]() |
f558aee231 | ||
![]() |
9d8c91809e | ||
![]() |
24400237a0 | ||
![]() |
6b766db159 | ||
![]() |
37297d9c9f | ||
![]() |
6c90e9726f | ||
![]() |
fe54849453 | ||
![]() |
df693676b7 | ||
![]() |
77a539243d | ||
![]() |
075ae9a459 | ||
![]() |
8f8bc5a9be | ||
![]() |
81225c05ee | ||
![]() |
3d6fc9ea7a | ||
![]() |
2d6660aa4d | ||
![]() |
739d1b1f59 | ||
![]() |
8cd17adbf5 | ||
![]() |
60984fefb9 | ||
![]() |
99b9448f2c | ||
![]() |
abf7ec6c1d | ||
![]() |
13515a5458 | ||
![]() |
3b9a96e330 | ||
![]() |
c4db4b2bd9 | ||
![]() |
f5b42396b0 | ||
![]() |
fd627a25d5 | ||
![]() |
31c0cf5074 | ||
![]() |
d8d8ffa438 | ||
![]() |
45d43c0666 | ||
![]() |
cd62640086 | ||
![]() |
6cf7fe90b8 | ||
![]() |
edca28339b | ||
![]() |
bd28d7439e | ||
![]() |
f6e486ba17 | ||
![]() |
48e0dbe68a | ||
![]() |
ae67b53276 | ||
![]() |
48ee6519a5 | ||
![]() |
b607473973 | ||
![]() |
c46aa247c7 | ||
![]() |
5a72ca7703 | ||
![]() |
7e00a28ba9 | ||
![]() |
b590535343 | ||
![]() |
6309853dd6 | ||
![]() |
b584bb2d4e | ||
![]() |
e0712d80a4 | ||
![]() |
bc291c99c3 | ||
![]() |
6c802b75fa | ||
![]() |
797d3c1766 | ||
![]() |
844a329be5 | ||
![]() |
fb6cbc0e23 | ||
![]() |
e64d8a4fd2 | ||
![]() |
8c90f378d7 | ||
![]() |
7a0d962e62 | ||
![]() |
92f3db6633 | ||
![]() |
d5abc0dd48 | ||
![]() |
36e7fdad8b | ||
![]() |
194056007a | ||
![]() |
3bfbcf64e3 | ||
![]() |
5f9f555083 | ||
![]() |
5cd5db6b3e | ||
![]() |
b596d7b466 | ||
![]() |
d2d3d39464 | ||
![]() |
4087d82922 | ||
![]() |
5a9c4a6666 | ||
![]() |
33ef14c3d8 | ||
![]() |
ad9c9c6141 | ||
![]() |
19ccd0760a | ||
![]() |
e474815d7e | ||
![]() |
8cdc29f1e8 | ||
![]() |
a08c1567eb | ||
![]() |
bc7df76629 | ||
![]() |
c049059911 | ||
![]() |
8c0082bcf0 | ||
![]() |
db4a9b41cc | ||
![]() |
f85794b47d | ||
![]() |
83dcaa3e54 | ||
![]() |
af75d67b30 | ||
![]() |
cedd505a09 | ||
![]() |
1a450ebc72 | ||
![]() |
a395fe34d0 | ||
![]() |
e604372a9f | ||
![]() |
d5e8babaf2 | ||
![]() |
650337f9b5 | ||
![]() |
aa4d950be1 | ||
![]() |
c2dd526195 | ||
![]() |
5df2cce01c | ||
![]() |
aba58af1da | ||
![]() |
c6455e86ef | ||
![]() |
c57db962f8 | ||
![]() |
bd449faf05 | ||
![]() |
cf3f673c35 | ||
![]() |
27386c608e | ||
![]() |
14b7d97579 | ||
![]() |
16b5521087 | ||
![]() |
903f73f7d5 | ||
![]() |
f4e3bfdb9e | ||
![]() |
7276f8a885 | ||
![]() |
f96981e84b | ||
![]() |
5cb8d5356a | ||
![]() |
241614f9e8 | ||
![]() |
6b0e5f6b30 | ||
![]() |
ea6512aee3 | ||
![]() |
7205aaa360 | ||
![]() |
ee5b193785 | ||
![]() |
d54b59554c | ||
![]() |
8d33db3c15 | ||
![]() |
c77110efec | ||
![]() |
0dac0afc9d | ||
![]() |
f515fd9566 | ||
![]() |
c67554a5e5 | ||
![]() |
fb7b6f05f2 | ||
![]() |
1553348812 | ||
![]() |
2035706c2a | ||
![]() |
be8a7ef6a4 | ||
![]() |
ab0e82790b | ||
![]() |
0527f8b788 | ||
![]() |
b07759dab6 | ||
![]() |
e552564ba0 | ||
![]() |
2264c5f67d | ||
![]() |
cc024a4528 | ||
![]() |
4402ed8fc1 | ||
![]() |
0c07a44dc6 | ||
![]() |
1e368f6f0f | ||
![]() |
5b50649739 | ||
![]() |
5718798e81 | ||
![]() |
fd0fbc7fb6 | ||
![]() |
87801ca3be | ||
![]() |
80d0bbcdff | ||
![]() |
84a1ea31e5 | ||
![]() |
7758bdabce | ||
![]() |
0de414158b | ||
![]() |
03b3436025 | ||
![]() |
d250c34d41 | ||
![]() |
ec2466ca02 | ||
![]() |
fc5bd615f4 | ||
![]() |
1e1d78a874 | ||
![]() |
d3287ce216 | ||
![]() |
fb6845f651 | ||
![]() |
e50d16b0cf | ||
![]() |
246a6d60da |
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*.patch linguist-language=C++
|
||||||
|
.github/workflows/object/*.tar.gz filter=lfs diff=lfs merge=lfs -text
|
2
.github/FUNDING.yml
vendored
@@ -1,2 +1,2 @@
|
|||||||
|
|
||||||
patreon: zen_browser
|
patreon: zen_browser
|
||||||
|
ko_fi: zen_browser
|
||||||
|
31
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,10 +1,24 @@
|
|||||||
name: Bug Report Or Feature Request
|
name: Bug Report
|
||||||
description: File a bug report
|
description: File a bug report
|
||||||
body:
|
body:
|
||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Thank you for filing a bug report.
|
Thank you for filing a bug report.
|
||||||
|
|
||||||
|
## Important
|
||||||
|
- Please search existing issues to avoid creating duplicates.
|
||||||
|
- For enhancement requests, please use GitHub Discussions.
|
||||||
|
- Please fill out the template below to the best of your ability.
|
||||||
|
- type: checkboxes
|
||||||
|
id: captchas
|
||||||
|
attributes:
|
||||||
|
label: Captchas
|
||||||
|
description: Just making sure you did actually read the instructions.
|
||||||
|
options:
|
||||||
|
- label: I have read the instructions.
|
||||||
|
- label: I have searched existing issues and avoided creating duplicates.
|
||||||
|
- label: I am not filing an enhancement request.
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: what-happened
|
id: what-happened
|
||||||
attributes:
|
attributes:
|
||||||
@@ -28,21 +42,6 @@ body:
|
|||||||
placeholder: 1.0.0
|
placeholder: 1.0.0
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
- type: dropdown
|
|
||||||
id: severity
|
|
||||||
attributes:
|
|
||||||
label: Severity impact
|
|
||||||
description: See label descriptions for more information.
|
|
||||||
options:
|
|
||||||
- Low
|
|
||||||
- Medium
|
|
||||||
- High
|
|
||||||
- Critical
|
|
||||||
- Enhancement
|
|
||||||
multiple: true
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
|
|
||||||
- type: dropdown
|
- type: dropdown
|
||||||
id: platform
|
id: platform
|
||||||
attributes:
|
attributes:
|
||||||
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1 +1 @@
|
|||||||
blank_issues_enabled: false
|
blank_issues_enabled: false
|
||||||
|
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -1,32 +0,0 @@
|
|||||||
name: Feature Request
|
|
||||||
description: File a feature request
|
|
||||||
labels:
|
|
||||||
- "kind: enhancement"
|
|
||||||
body:
|
|
||||||
- type: markdown
|
|
||||||
attributes:
|
|
||||||
value: |
|
|
||||||
Thank you for filing a feature request.
|
|
||||||
- type: textarea
|
|
||||||
id: what-happened
|
|
||||||
attributes:
|
|
||||||
label: What feature would you like to see?
|
|
||||||
description: Please describe the feature you would like to see.
|
|
||||||
placeholder: Tell us what you would like to see!
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: dropdown
|
|
||||||
id: platform
|
|
||||||
attributes:
|
|
||||||
label: What platform are you seeing the problem on?
|
|
||||||
options:
|
|
||||||
- Linux
|
|
||||||
- macOS
|
|
||||||
- Windows
|
|
||||||
validations:
|
|
||||||
required: true
|
|
||||||
- type: textarea
|
|
||||||
id: logs
|
|
||||||
attributes:
|
|
||||||
label: Additional context
|
|
||||||
description: Add any other context about the feature request here.
|
|
18
.github/advanced-issue-labeler.yml
vendored
@@ -1,18 +0,0 @@
|
|||||||
---
|
|
||||||
# Keep up to date with workflows/issue-create.yml !!!
|
|
||||||
|
|
||||||
policy:
|
|
||||||
- section:
|
|
||||||
- id: [severity]
|
|
||||||
label:
|
|
||||||
- name: 'kind: low severity'
|
|
||||||
keys: ['Low']
|
|
||||||
- name: 'kind: medium severity'
|
|
||||||
keys: ['Medium']
|
|
||||||
- name: 'kind: high severity'
|
|
||||||
keys: ['High']
|
|
||||||
- name: 'kind: critical severity'
|
|
||||||
keys: ['Critical']
|
|
||||||
- name: 'kind: enhancement'
|
|
||||||
keys: ['Enhancement']
|
|
||||||
|
|
201
.github/workflows/alpha.yml
vendored
@@ -11,11 +11,10 @@ on:
|
|||||||
update_version:
|
update_version:
|
||||||
description: 'Update the version number'
|
description: 'Update the version number'
|
||||||
required: false
|
required: false
|
||||||
default: true
|
default: false
|
||||||
type: 'boolean'
|
type: 'boolean'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
build-data:
|
build-data:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -34,7 +33,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
token: ${{ secrets.DEPLOY_KEY }}
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
run: npm install -g pnpm
|
run: npm install -g pnpm
|
||||||
|
|
||||||
@@ -54,7 +53,7 @@ jobs:
|
|||||||
- name: Bump version
|
- name: Bump version
|
||||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
if: ${{ github.event.inputs.update_version == 'true' }}
|
||||||
run: |
|
run: |
|
||||||
pnpm surfer ci --brand alpha --bump prerelease
|
pnpm surfer ci --brand alpha --bump prepatch
|
||||||
|
|
||||||
- name: Bump version without new version
|
- name: Bump version without new version
|
||||||
if: ${{ github.event.inputs.update_version == 'false' }}
|
if: ${{ github.event.inputs.update_version == 'false' }}
|
||||||
@@ -97,7 +96,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Install pnpm
|
- name: Install pnpm
|
||||||
run: npm install -g pnpm
|
run: npm install -g pnpm
|
||||||
|
|
||||||
- name: Get pnpm store directory
|
- name: Get pnpm store directory
|
||||||
id: pnpm-cache
|
id: pnpm-cache
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -115,7 +114,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
||||||
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
- name: Check version
|
- name: Check version
|
||||||
run: |
|
run: |
|
||||||
echo "$(pwd)"
|
echo "$(pwd)"
|
||||||
@@ -128,13 +127,12 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
source:
|
source:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [build-data, check-release]
|
needs: [build-data, check-release]
|
||||||
|
environment: production
|
||||||
steps:
|
steps:
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
@@ -185,28 +183,28 @@ jobs:
|
|||||||
name: zen.source.tar.gz
|
name: zen.source.tar.gz
|
||||||
path: ./zen.source.tar.gz
|
path: ./zen.source.tar.gz
|
||||||
|
|
||||||
#windows-step-1:
|
windows-step-1:
|
||||||
# name: Windows build step 1 (PGO build)
|
name: Windows build step 1 (PGO build)
|
||||||
# uses: ./.github/workflows/windows-alpha-build.yml
|
uses: ./.github/workflows/windows-alpha-build.yml
|
||||||
# needs: [build-data]
|
needs: [build-data]
|
||||||
# permissions:
|
permissions:
|
||||||
# contents: write
|
contents: write
|
||||||
# secrets: inherit
|
secrets: inherit
|
||||||
# with:
|
with:
|
||||||
# build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
# generate-gpo: true
|
generate-gpo: true
|
||||||
# profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
|
||||||
#windows-step-2:
|
windows-step-2:
|
||||||
# name: Windows build step 2 (Generate profile data)
|
name: Windows build step 2 (Generate profile data)
|
||||||
# uses: ./.github/workflows/windows-profile-build.yml
|
uses: ./.github/workflows/windows-profile-build.yml
|
||||||
# permissions:
|
permissions:
|
||||||
# contents: write
|
contents: write
|
||||||
# secrets: inherit
|
secrets: inherit
|
||||||
# needs: [windows-step-1, build-data]
|
needs: [windows-step-1, build-data]
|
||||||
# with:
|
with:
|
||||||
# build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
# profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
windows-step-3:
|
windows-step-3:
|
||||||
name: Windows build step 3 (build with profile data)
|
name: Windows build step 3 (build with profile data)
|
||||||
@@ -214,7 +212,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [build-data]
|
needs: [build-data, windows-step-2]
|
||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
generate-gpo: false
|
generate-gpo: false
|
||||||
@@ -225,7 +223,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [build-data]
|
needs: [build-data]
|
||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
@@ -263,7 +261,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get -y install libfuse2
|
sudo apt-get -y install libfuse2 desktop-file-utils
|
||||||
|
|
||||||
- name: Download linux build
|
- name: Download linux build
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
@@ -280,17 +278,18 @@ jobs:
|
|||||||
APPDIR=AppDir
|
APPDIR=AppDir
|
||||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||||
mv zen/* $APPDIR/
|
mv zen/* $APPDIR/
|
||||||
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
chmod +x *.AppImage
|
chmod +x *.AppImage
|
||||||
chmod +x ./AppDir/AppRun
|
chmod +x ./AppDir/AppRun
|
||||||
echo "AppDir: $APPDIR"
|
echo "AppDir: $APPDIR"
|
||||||
ls -al
|
ls -al
|
||||||
find .
|
find .
|
||||||
ls -al "$APPDIR"
|
ls -al "$APPDIR"
|
||||||
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp gzip "$APPDIR" zen.AppImage
|
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
|
||||||
|
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync" \
|
||||||
|
"$APPDIR" zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||||
mkdir dist
|
mkdir dist
|
||||||
mv zen.AppImage* dist/.
|
mv zen*AppImage* dist/.
|
||||||
mv ./dist/zen.AppImage ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -298,27 +297,43 @@ jobs:
|
|||||||
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||||
|
|
||||||
|
- name: Upload artifact (ZSync)
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||||
|
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release
|
name: Release
|
||||||
needs: [build-data, linux, source, windows-step-3, check-release, mac, appimage]
|
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
environment:
|
||||||
|
name: Deploy-Release
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
token: ${{ secrets.DEPLOY_KEY }}
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
lfs: true
|
||||||
|
|
||||||
- name: Git Pull
|
- name: Git Pull
|
||||||
run: git pull
|
run: |
|
||||||
|
git pull
|
||||||
|
git lfs pull
|
||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
|
|
||||||
- name: List
|
- name: List
|
||||||
run: find .
|
run: find .
|
||||||
|
|
||||||
|
- name: Unpack windows build (.tar.gz)
|
||||||
|
run: |
|
||||||
|
tar -xvf .github/workflows/object/windows-x64-signed-generic.tar.gz -C .
|
||||||
|
tar -xvf .github/workflows/object/windows-x64-signed-specific.tar.gz -C .
|
||||||
|
|
||||||
- name: Clone updates repo
|
- name: Clone updates repo
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -333,9 +348,9 @@ jobs:
|
|||||||
cp -a ../linux_update_manifest_generic/. updates/
|
cp -a ../linux_update_manifest_generic/. updates/
|
||||||
cp -a ../linux_update_manifest_specific/. updates/
|
cp -a ../linux_update_manifest_specific/. updates/
|
||||||
|
|
||||||
cp -a ../windows_update_manifest_generic/. updates/
|
cp -a ../windows-x64-signed-generic/update_manifest/. updates/
|
||||||
cp -a ../windows_update_manifest_specific/. updates/
|
cp -a ../windows-x64-signed-specific/update_manifest/. updates/
|
||||||
|
|
||||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||||
cp -a ../macos_update_manifest_x64/. updates/
|
cp -a ../macos_update_manifest_x64/. updates/
|
||||||
|
|
||||||
@@ -358,25 +373,84 @@ jobs:
|
|||||||
zen.linux-generic.tar.bz2
|
zen.linux-generic.tar.bz2
|
||||||
zen.linux-specific.tar.bz2
|
zen.linux-specific.tar.bz2
|
||||||
zen-generic.AppImage
|
zen-generic.AppImage
|
||||||
|
zen-generic.AppImage.zsync
|
||||||
zen-specific.AppImage
|
zen-specific.AppImage
|
||||||
zen.win-generic.zip
|
zen-specific.AppImage.zsync
|
||||||
zen.win-specific.zip
|
windows-x64-signed-generic/zen.win-generic.zip
|
||||||
|
windows-x64-signed-specific/zen.win-specific.zip
|
||||||
linux.mar
|
linux.mar
|
||||||
linux-generic.mar
|
linux-generic.mar
|
||||||
windows.mar
|
windows-x64-signed-generic/windows-generic.mar
|
||||||
windows-generic.mar
|
windows-x64-signed-specific/windows.mar
|
||||||
macos-x64.mar
|
macos-x64.mar
|
||||||
macos-aarch64.mar
|
macos-aarch64.mar
|
||||||
zen.installer.exe
|
windows-x64-signed-specific/zen.installer.exe
|
||||||
zen.installer-generic.exe
|
windows-x64-signed-generic/zen.installer-generic.exe
|
||||||
zen.macos-x64.dmg
|
zen.macos-x64.dmg
|
||||||
zen.macos-aarch64.dmg
|
zen.macos-aarch64.dmg
|
||||||
|
|
||||||
|
prepare-flatpak:
|
||||||
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
|
permissions: write-all
|
||||||
|
name: Prepare Flatpak
|
||||||
|
needs: [release, linux, build-data]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Clone flatpak repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: zen-browser/release-utils
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
git pull
|
||||||
|
sudo apt-get update
|
||||||
|
npm install
|
||||||
|
|
||||||
|
- name: Generate new flatpak release
|
||||||
|
run: |
|
||||||
|
npm run build-flatpak -- \
|
||||||
|
--version ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: 🚀 Update releases for flatpak
|
||||||
|
commit_user_name: Zen Browser Robot
|
||||||
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||||
|
|
||||||
|
- name: Clone flatpak repo
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: zen-browser/flatpak
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
path: flatpak
|
||||||
|
|
||||||
|
- name: Move releases.xml
|
||||||
|
run: |
|
||||||
|
pwd
|
||||||
|
ls .
|
||||||
|
ls ..
|
||||||
|
mv releases.xml ./flatpak/io.github.zen_browser.zen.metainfo.xml
|
||||||
|
# output the version to the file
|
||||||
|
echo -n ${{ needs.build-data.outputs.version }} > ./flatpak/version
|
||||||
|
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: '[release]: Update flatpak manifest'
|
||||||
|
commit_user_name: Zen Browser Robot
|
||||||
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||||
|
repository: ./flatpak
|
||||||
|
|
||||||
|
- name: Wait 4 minutes for the flatpak repo to update
|
||||||
|
run: sleep 240
|
||||||
|
|
||||||
release-flatpak:
|
release-flatpak:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release Flatpak
|
name: Release Flatpak
|
||||||
needs: [release, linux, build-data]
|
needs: [prepare-flatpak, build-data]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
@@ -442,12 +516,35 @@ jobs:
|
|||||||
commit-message: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
commit-message: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||||
title: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
title: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||||
body: |
|
body: |
|
||||||
This PR updates the Zen Browser Flatpak package to version ${{ needs.build-data.outputs.version }}.
|
This PR updates the Zen Browser Flatpak package to version ${{ needs.build-data.outputs.version }}.
|
||||||
|
|
||||||
@mauro-balades
|
@${{ github.actor }} please review and merge this PR.
|
||||||
branch: update-to-${{ needs.build-data.outputs.version }}
|
branch: update-to-${{ needs.build-data.outputs.version }}
|
||||||
base: master
|
base: master
|
||||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||||
delete-branch: true
|
delete-branch: true
|
||||||
|
|
||||||
|
|
||||||
|
release-homebrew:
|
||||||
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
|
permissions: write-all
|
||||||
|
name: Homebrew release
|
||||||
|
needs: [release, mac, build-data]
|
||||||
|
runs-on: macos-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Set up Homebrew
|
||||||
|
uses: Homebrew/actions/setup-homebrew@master
|
||||||
|
with:
|
||||||
|
cask: true
|
||||||
|
test-bot: false
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
uses: Homebrew/actions/git-user-config@master
|
||||||
|
with:
|
||||||
|
username: zen-browser-bot
|
||||||
|
|
||||||
|
- name: Bump zen-browser
|
||||||
|
uses: Homebrew/actions/bump-packages@master
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
casks: zen-browser
|
||||||
|
2
.github/workflows/clear-cache.yml
vendored
@@ -27,4 +27,4 @@ jobs:
|
|||||||
cache_id: cache.id,
|
cache_id: cache.id,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
console.log("Clear completed")
|
console.log("Clear completed")
|
||||||
|
35
.github/workflows/issue-create.yml
vendored
@@ -1,35 +0,0 @@
|
|||||||
name: Issue labeler
|
|
||||||
on:
|
|
||||||
issues:
|
|
||||||
types: [ opened ]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
label-component:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
# required for all workflows
|
|
||||||
issues: write
|
|
||||||
|
|
||||||
# only required for workflows in private repositories
|
|
||||||
actions: read
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Parse issue form
|
|
||||||
uses: stefanbuck/github-issue-parser@v3
|
|
||||||
id: issue-parser
|
|
||||||
with:
|
|
||||||
template-path: .github/ISSUE_TEMPLATE/bug_report.yml
|
|
||||||
|
|
||||||
- name: Set labels based on severity field
|
|
||||||
uses: redhat-plumbers-in-action/advanced-issue-labeler@v3
|
|
||||||
with:
|
|
||||||
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
section: severity
|
|
13
.github/workflows/linux-alpha-build.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
|
name: Linux Alpha Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
@@ -6,9 +6,10 @@ on:
|
|||||||
description: 'The version to build'
|
description: 'The version to build'
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
|
environment: production
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -43,11 +44,11 @@ jobs:
|
|||||||
|
|
||||||
- name: Install system dependencies
|
- name: Install system dependencies
|
||||||
run: |
|
run: |
|
||||||
|
set -x
|
||||||
sudo apt-get update --fix-missing
|
sudo apt-get update --fix-missing
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||||
pip install pycairo testresources
|
|
||||||
|
|
||||||
- name: Configure sccache
|
- name: Configure sccache
|
||||||
uses: actions/github-script@v7
|
uses: actions/github-script@v7
|
||||||
with:
|
with:
|
||||||
@@ -96,6 +97,9 @@ jobs:
|
|||||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
run: pnpm surfer import
|
run: pnpm surfer import
|
||||||
|
|
||||||
|
- name: Build language packs
|
||||||
|
run: sh scripts/download-language-packs.sh
|
||||||
|
|
||||||
- name: Bootstrap
|
- name: Bootstrap
|
||||||
run: |
|
run: |
|
||||||
cd engine
|
cd engine
|
||||||
@@ -127,7 +131,6 @@ jobs:
|
|||||||
- name: Upload binary
|
- name: Upload binary
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
|
||||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||||
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||||
|
|
||||||
|
74
.github/workflows/macos-alpha-build.yml
vendored
@@ -1,4 +1,4 @@
|
|||||||
|
name: macOS Alpha Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
@@ -6,12 +6,12 @@ on:
|
|||||||
description: 'The version to build'
|
description: 'The version to build'
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
mac-build:
|
mac-build:
|
||||||
name: Build macOS - ${{ matrix.arch }}
|
name: Build macOS - ${{ matrix.arch }}
|
||||||
|
environment: production
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
@@ -28,7 +28,7 @@ jobs:
|
|||||||
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
python-version: '3.11'
|
||||||
|
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
@@ -45,6 +45,30 @@ jobs:
|
|||||||
brew install cairo sccache gnu-tar mercurial
|
brew install cairo sccache gnu-tar mercurial
|
||||||
sudo pip install setuptools
|
sudo pip install setuptools
|
||||||
|
|
||||||
|
# completly uninstall python3 and python3.12
|
||||||
|
brew uninstall --ignore-dependencies python3.12 -f
|
||||||
|
|
||||||
|
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||||
|
python3 -m pip install --user mercurial
|
||||||
|
|
||||||
|
rm '/usr/local/bin/2to3-3.11' # fix Could not symlink bin/2to3-3.11
|
||||||
|
rm '/usr/local/bin/2to3-3.12' # fix Could not symlink bin/2to3-3.12
|
||||||
|
rm /usr/local/bin/2to3 # fix Could not symlink bin/2to3
|
||||||
|
rm '/usr/local/bin/idle3.11' #fix Could not symlink bin/idle3.11
|
||||||
|
rm '/usr/local/bin/idle3.12' # fix Could not symlink bin/idle3.12
|
||||||
|
rm '/usr/local/bin/idle3' # fix Could not symlink bin/idle3
|
||||||
|
rm '/usr/local/bin/pydoc3.11' # fix Could not symlink bin/pydoc3.11
|
||||||
|
rm '/usr/local/bin/pydoc3.12' # fix Could not symlink bin/pydoc3.12
|
||||||
|
rm '/usr/local/bin/pydoc3' # fix Could not symlink bin/pydoc3
|
||||||
|
rm '/usr/local/bin/python3.11' # fix Could not symlink bin/python3.11
|
||||||
|
rm '/usr/local/bin/python3.12' # fix Could not symlink bin/python3.12
|
||||||
|
rm '/usr/local/bin/python3' # fix Could not symlink bin/python3
|
||||||
|
rm '/usr/local/bin/python3.11-config' # fix Could not symlink bin/python3.11-config
|
||||||
|
rm '/usr/local/bin/python3.12-config' # fix Could not symlink bin/python3.12-config
|
||||||
|
rm '/usr/local/bin/python3-config' # fix Could not symlink bin/python3-config
|
||||||
|
|
||||||
|
brew install watchman
|
||||||
|
|
||||||
- name: Force usage fo gnu-tar
|
- name: Force usage fo gnu-tar
|
||||||
run: |
|
run: |
|
||||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
||||||
@@ -68,18 +92,22 @@ jobs:
|
|||||||
- name: Download firefox source and dependancies
|
- name: Download firefox source and dependancies
|
||||||
run: pnpm surfer download
|
run: pnpm surfer download
|
||||||
|
|
||||||
- name: Import
|
|
||||||
env:
|
|
||||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
|
||||||
run: |
|
|
||||||
pnpm surfer import
|
|
||||||
|
|
||||||
- name: Bootstrap
|
- name: Bootstrap
|
||||||
run: |
|
run: |
|
||||||
cd engine
|
cd engine
|
||||||
./mach --no-interactive bootstrap --application-choice browser
|
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||||
|
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
|
run: |
|
||||||
|
pnpm surfer import --verbose
|
||||||
|
|
||||||
|
- name: Build language packs
|
||||||
|
run: sh scripts/download-language-packs.sh
|
||||||
|
|
||||||
- name: build Zen
|
- name: build Zen
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
@@ -93,16 +121,36 @@ jobs:
|
|||||||
if: failure()
|
if: failure()
|
||||||
run: sh .github/workflows/src/alpha-build.sh
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||||
|
uses: apple-actions/import-codesign-certs@v3
|
||||||
|
with:
|
||||||
|
p12-file-base64: ${{ secrets.macOS_CERTIFICATES_P12_For_App_BASE64 }}
|
||||||
|
p12-password: ${{ secrets.macOS_CERTIFICATES_P12_PASSWORD }}
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
run: pnpm package
|
run: |
|
||||||
|
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
|
||||||
|
pnpm package
|
||||||
|
|
||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
run: |
|
run: |
|
||||||
mv ./dist/*.dmg "zen.macos-${{ matrix.arch }}.dmg"
|
|
||||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||||
|
|
||||||
|
- name: Sign to .dmg
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
hdiutil convert ./dist/*.dmg -format UDZO -imagekey zlib-level=9 -o zen.macos-${{ matrix.arch }}.dmg
|
||||||
|
xattr -cr zen.macos-${{ matrix.arch }}.dmg
|
||||||
|
codesign -s "${{ secrets.macOS_AppleDeveloperId }}" zen.macos-${{ matrix.arch }}.dmg
|
||||||
|
xcrun notarytool submit "zen.macos-${{ matrix.arch }}.dmg" \
|
||||||
|
--apple-id "${{ secrets.macOS_AppleAccountId }}" \
|
||||||
|
--team-id "${{ secrets.macOS_AppleDeveloperIdTeamId }}" \
|
||||||
|
--password "${{ secrets.macOS_AppleDeveloperIdPassword }}" \
|
||||||
|
--wait
|
||||||
|
xcrun stapler staple "zen.macos-${{ matrix.arch }}.dmg"
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
|
3
.github/workflows/object/windows-x64-signed-generic.tar.gz
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:805f5d9f727596007dc64057d456e87a2648dff596230ca12af6cf48860843fa
|
||||||
|
size 237797081
|
3
.github/workflows/object/windows-x64-signed-specific.tar.gz
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:51d3bb5508804e438755658157f0f18331675b418bdb11db485f938a4fc5fd8a
|
||||||
|
size 237484305
|
29
.github/workflows/stale.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
name: Close inactive issues
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
close-issues:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
steps:
|
||||||
|
- uses: actions/stale@v5
|
||||||
|
with:
|
||||||
|
days-before-issue-stale: 30
|
||||||
|
days-before-issue-close: 14
|
||||||
|
stale-issue-label: 'stale'
|
||||||
|
stale-issue-message: |
|
||||||
|
This issue is stale because it has been open for 30 days with no activity.
|
||||||
|
|
||||||
|
Please close this issue if you feel it is no longer relevant, or comment if you have more information to share.
|
||||||
|
close-issue-message: |
|
||||||
|
This issue was closed because it has been inactive for 14 days since being marked as stale.
|
||||||
|
|
||||||
|
If you think this issue should remain open, please comment with a request for it to be re-opened or open a new issue.
|
||||||
|
days-before-pr-stale: -1
|
||||||
|
days-before-pr-close: -1
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
88
.github/workflows/windows-alpha-build.yml
vendored
@@ -1,8 +1,8 @@
|
|||||||
|
name: Windows Alpha Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
generate-gpo:
|
generate-gpo:
|
||||||
required: true
|
required: true
|
||||||
type: boolean
|
type: boolean
|
||||||
default: false
|
default: false
|
||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
generic: [true, false]
|
generic: [true, false]
|
||||||
|
environment: production
|
||||||
steps:
|
steps:
|
||||||
- name: Free Disk Space (Ubuntu)
|
- name: Free Disk Space (Ubuntu)
|
||||||
uses: jlumbroso/free-disk-space@main
|
uses: jlumbroso/free-disk-space@main
|
||||||
@@ -59,7 +59,7 @@ jobs:
|
|||||||
- name: Download
|
- name: Download
|
||||||
run: pnpm surfer download
|
run: pnpm surfer download
|
||||||
|
|
||||||
- name: "win-cross Cache"
|
- name: 'win-cross Cache'
|
||||||
env:
|
env:
|
||||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||||
id: cache-win-cross
|
id: cache-win-cross
|
||||||
@@ -81,16 +81,16 @@ jobs:
|
|||||||
set -x
|
set -x
|
||||||
mkdir -p ~/win-cross
|
mkdir -p ~/win-cross
|
||||||
cd engine/
|
cd engine/
|
||||||
|
|
||||||
echo Setup wine
|
echo Setup wine
|
||||||
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
||||||
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
||||||
rm wine.tar.zst
|
rm wine.tar.zst
|
||||||
|
|
||||||
echo Setup Visual Studio
|
echo Setup Visual Studio
|
||||||
sudo apt install -y msitools python3-pip
|
sudo apt install -y msitools python3-pip
|
||||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||||
|
|
||||||
- name: Bootstrap
|
- name: Bootstrap
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
@@ -113,14 +113,14 @@ jobs:
|
|||||||
|
|
||||||
ls ~/win-cross/wine || true
|
ls ~/win-cross/wine || true
|
||||||
ls ~/win-cross/vs2022 || true
|
ls ~/win-cross/vs2022 || true
|
||||||
|
|
||||||
- name: setup Rust
|
- name: setup Rust
|
||||||
run: |
|
run: |
|
||||||
cd engine/
|
cd engine/
|
||||||
# Install a rust version compatible with 17
|
# Install a rust version compatible with 17
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.76
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||||
source $HOME/.cargo/env
|
source $HOME/.cargo/env
|
||||||
|
|
||||||
rustup target add x86_64-pc-windows-msvc
|
rustup target add x86_64-pc-windows-msvc
|
||||||
cargo install cargo-download
|
cargo install cargo-download
|
||||||
cargo download -x windows=0.52.0
|
cargo download -x windows=0.52.0
|
||||||
@@ -130,16 +130,30 @@ jobs:
|
|||||||
echo "" >> ../configs/common/mozconfig
|
echo "" >> ../configs/common/mozconfig
|
||||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: pnpm surfer import --verbose
|
||||||
|
|
||||||
|
- name: Build language packs
|
||||||
|
run: sh scripts/download-language-packs.sh
|
||||||
|
|
||||||
- uses: actions/download-artifact@v4
|
- uses: actions/download-artifact@v4
|
||||||
name: Download artifact if use profdata
|
name: Download artifact if use profdata
|
||||||
if: ${{ !inputs.generate-gpo }}
|
if: ${{ !inputs.generate-gpo }}
|
||||||
with:
|
with:
|
||||||
path: ~/artifact
|
path: ~/artifact
|
||||||
|
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
|
||||||
- name: Import
|
- name: Show artifact info
|
||||||
env:
|
if: ${{ !inputs.generate-gpo }}
|
||||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
run: |
|
||||||
run: pnpm surfer import --verbose
|
ls ~/artifact
|
||||||
|
ls ~/artifact/en-US.log
|
||||||
|
ls ~/artifact/merged.profdata
|
||||||
|
|
||||||
|
chmod +x ~/artifact/en-US.log
|
||||||
|
chmod +x ~/artifact/merged.profdata
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
env:
|
env:
|
||||||
@@ -165,6 +179,11 @@ jobs:
|
|||||||
ls ./dist
|
ls ./dist
|
||||||
ls .
|
ls .
|
||||||
|
|
||||||
|
- name: 🐛 Debug Session
|
||||||
|
if: ${{ failure() }}
|
||||||
|
uses: Warpbuilds/gha-debug@v1.3
|
||||||
|
timeout-minutes: 15
|
||||||
|
|
||||||
- name: Move package for PGO upload
|
- name: Move package for PGO upload
|
||||||
if: ${{ inputs.generate-gpo }}
|
if: ${{ inputs.generate-gpo }}
|
||||||
run: |
|
run: |
|
||||||
@@ -178,44 +197,23 @@ jobs:
|
|||||||
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !inputs.generate-gpo }}
|
|
||||||
with:
|
|
||||||
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
|
||||||
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
|
||||||
|
|
||||||
- name: Upload PGO build
|
- name: Upload PGO build
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
if: ${{ inputs.generate-gpo }}
|
if: ${{ inputs.generate-gpo }}
|
||||||
with:
|
with:
|
||||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||||
path: ./zen.win64-pgo-stage-1.zip
|
path: ./zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
- name: Upload mar
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !inputs.generate-gpo }}
|
|
||||||
with:
|
|
||||||
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
|
||||||
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
|
||||||
|
|
||||||
- name: Upload installer
|
- name: Remove symlinks from obj folder
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !inputs.generate-gpo }}
|
if: ${{ !inputs.generate-gpo }}
|
||||||
with:
|
run: |
|
||||||
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
set -x
|
||||||
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
find engine/obj-x86_64-pc-windows-msvc/ -type l -delete
|
||||||
|
|
||||||
- name: Upload installer stub
|
- name: Upload dist object
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !inputs.generate-gpo && false }}
|
|
||||||
with:
|
|
||||||
name: zen.installer.pretty.exe
|
|
||||||
path: ./dist/zen.installer.pretty.exe
|
|
||||||
|
|
||||||
- name: Upload update manifests
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !inputs.generate-gpo }}
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
path: ./dist/update
|
path: engine/obj-x86_64-pc-windows-msvc/
|
||||||
|
|
94
.github/workflows/windows-profile-build.yml
vendored
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
name: Windows PGO Builds
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
build-version:
|
||||||
|
description: 'The version to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
profile-data-path-archive:
|
||||||
|
description: 'The path to the zip archive containing the profile data'
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
windows-profile-build:
|
||||||
|
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
generic: [true, false]
|
||||||
|
runs-on: windows-latest
|
||||||
|
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node.js and pnpm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
run: |
|
||||||
|
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||||
|
git config --global user.name "mauro-balades"
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Install Surfer
|
||||||
|
run: |
|
||||||
|
npm i -g @zen-browser/surfer
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
name: Download artifact
|
||||||
|
with:
|
||||||
|
path: C:\artifact
|
||||||
|
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
|
||||||
|
- name: Unpack artifact
|
||||||
|
run: |
|
||||||
|
cd C:\artifact
|
||||||
|
ls
|
||||||
|
Expand-Archive -Path .\${{ inputs.profile-data-path-archive }} -DestinationPath C:\artifact
|
||||||
|
ls
|
||||||
|
- name: Setup
|
||||||
|
run: |
|
||||||
|
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe","C:\MozillaBuildSetup-Latest.exe")
|
||||||
|
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||||
|
- name: Download firefox
|
||||||
|
run: |
|
||||||
|
git config --global core.safecrlf false
|
||||||
|
pnpm surfer download
|
||||||
|
- name: Generate
|
||||||
|
run: |
|
||||||
|
ls
|
||||||
|
$Env:USE_MINTTY = "0"
|
||||||
|
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\","/"
|
||||||
|
$workspace_dir = $workspace_dir_current + "/engine"
|
||||||
|
echo $workspace_dir
|
||||||
|
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||||
|
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
|
||||||
|
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
|
||||||
|
echo 'ls /c/Users/runneradmin/.mozbuild/clang/bin' '' >> mozilla-build-run.sh
|
||||||
|
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||||
|
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||||
|
|
||||||
|
- name: 🐛 Debug Session
|
||||||
|
if: ${{ failure() }}
|
||||||
|
uses: Warpbuilds/gha-debug@v1.3
|
||||||
|
timeout-minutes: 15
|
||||||
|
|
||||||
|
- name: Move profile data
|
||||||
|
run: |
|
||||||
|
dir
|
||||||
|
dir engine
|
||||||
|
mv engine/merged.profdata merged.profdata
|
||||||
|
mv engine/en-US.log en-US.log
|
||||||
|
|
||||||
|
- name: Publish artifacts
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
merged.profdata
|
||||||
|
en-US.log
|
||||||
|
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
4
.gitignore
vendored
@@ -6,4 +6,6 @@ node_modules/
|
|||||||
.surfer/
|
.surfer/
|
||||||
|
|
||||||
__pycache__/
|
__pycache__/
|
||||||
dist/
|
dist/
|
||||||
|
|
||||||
|
windsign-temp/
|
3
.gitmodules
vendored
@@ -1,3 +1,6 @@
|
|||||||
[submodule "src/browser/base/content/zen-components"]
|
[submodule "src/browser/base/content/zen-components"]
|
||||||
path = src/browser/base/content/zen-components
|
path = src/browser/base/content/zen-components
|
||||||
url = https://github.com/zen-browser/components
|
url = https://github.com/zen-browser/components
|
||||||
|
[submodule "l10n"]
|
||||||
|
path = l10n
|
||||||
|
url = https://github.com/zen-browser/l10n-packs
|
||||||
|
1
.husky/pre-commit
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# npx lint-staged
|
12
.prettierignore
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
engine/
|
||||||
|
|
||||||
|
**/*.html
|
||||||
|
**/*.xhtml
|
||||||
|
**/*.inc.xhtml
|
||||||
|
|
||||||
|
**/*.svg
|
||||||
|
|
||||||
|
src/browser/app/profile/*.js
|
||||||
|
pnpm-lock.yaml
|
||||||
|
|
||||||
|
**/engine/
|
12
.prettierrc.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"bracketSameLine": true,
|
||||||
|
"endOfLine": "lf",
|
||||||
|
"trailingComma": "es5",
|
||||||
|
"singleQuote": true,
|
||||||
|
"tabWidth": 2,
|
||||||
|
"useTabs": false,
|
||||||
|
"jsxSingleQuote": false,
|
||||||
|
"semi": true,
|
||||||
|
"printWidth": 128,
|
||||||
|
"plugins": []
|
||||||
|
}
|
16
.vscode/settings.json
vendored
@@ -13,6 +13,18 @@
|
|||||||
"utility": "cpp",
|
"utility": "cpp",
|
||||||
"variant": "cpp",
|
"variant": "cpp",
|
||||||
"compare": "cpp",
|
"compare": "cpp",
|
||||||
"thread": "cpp"
|
"thread": "cpp",
|
||||||
|
"string": "cpp",
|
||||||
|
"string_view": "cpp",
|
||||||
|
"span": "cpp",
|
||||||
|
"vector": "cpp",
|
||||||
|
"charconv": "cpp",
|
||||||
|
"chrono": "cpp",
|
||||||
|
"optional": "cpp",
|
||||||
|
"format": "cpp",
|
||||||
|
"ratio": "cpp",
|
||||||
|
"system_error": "cpp",
|
||||||
|
"regex": "cpp",
|
||||||
|
"type_traits": "cpp"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"policies": {
|
"policies": {
|
||||||
"DisableAppUpdate": true,
|
"DisableAppUpdate": true,
|
||||||
"AppAutoUpdate": false,
|
"AppAutoUpdate": false,
|
||||||
"ManualAppUpdateOnly": true,
|
"ManualAppUpdateOnly": true,
|
||||||
"BackgroundAppUpdate": false
|
"BackgroundAppUpdate": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=Zen Browser
|
Name=Zen Browser
|
||||||
|
Comment=Experience tranquillity while browsing the web without people tracking you!
|
||||||
Exec=zen %u
|
Exec=zen %u
|
||||||
Icon=zen
|
Icon=zen
|
||||||
Type=Application
|
Type=Application
|
||||||
|
103
README.md
@@ -1,38 +1,87 @@
|
|||||||
|
<div align="center">
|
||||||
# 🌀 Zen Browser
|
<picture>
|
||||||
|
<img src="./docs/assets/zen-black.svg" width="128px">
|
||||||
|
</picture>
|
||||||
|
</div>
|
||||||
|
<h1 align="center">
|
||||||
|
Zen Browser
|
||||||
|
</h1>
|
||||||
|
|
||||||
Experience tranquillity while browsing the web without people tracking you!
|
Experience tranquillity while browsing the web without people tracking you!
|
||||||
|
|
||||||
* [Website](https://www.zen-browser.app)
|
- [Website](https://zen-browser.app)
|
||||||
* [Download](https://www.zen-browser.app/download)
|
- [Download](https://zen-browser.app/download)
|
||||||
* [Release Notes](https://www.zen-browser.app/release-notes/latest)
|
- [Release Notes](https://zen-browser.app/release-notes/latest)
|
||||||
|
|
||||||
<a href='https://flathub.org/apps/io.github.zen_browser.zen'>
|
[](https://github.com/zen-browser/desktop/releases)
|
||||||
<img width='240' alt='Get it on Flathub' src='https://flathub.org/api/badge?locale=en'/>
|
[](https://crowdin.com/project/zen-browser)
|
||||||
</a>
|
|
||||||
|
[](https://flathub.org/apps/io.github.zen_browser.zen)
|
||||||
|
|
||||||
|
[](https://www.patreon.com/zen_browser)
|
||||||
|
|
||||||
|
[](https://ko-fi.com/zen_browser)
|
||||||
|
|
||||||
# Compatibility
|
# Compatibility
|
||||||
|
|
||||||
Zen is currently built using firefox version `129.0`!
|
Zen is currently built using firefox version `130.0`!
|
||||||
|
|
||||||
* Checkout the latest [releases notes](https://www.zen-browser.app/release-notes)!
|
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||||
|
|
||||||
# Performance
|
# Performance
|
||||||
|
|
||||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
|
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
|
||||||
|
|
||||||
* Checkout the latest [performance benchmarks](./docs/performance.md)!
|
- Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||||
|
|
||||||
|
# Installation
|
||||||
|
|
||||||
|
## Supported Operating Systems
|
||||||
|
|
||||||
|
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
- Requires macOS 10.15 or later
|
||||||
|
- Available for ARM and Intel architectures
|
||||||
|
|
||||||
|
You can also install Zen using Homebrew:
|
||||||
|
|
||||||
|
```
|
||||||
|
brew install --cask zen-browser
|
||||||
|
```
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
|
#### AppImage
|
||||||
|
|
||||||
|
- `zsync` is required for the Update feature of the script below
|
||||||
|
|
||||||
|
```
|
||||||
|
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Flatpak
|
||||||
|
```
|
||||||
|
flatpak install flathub io.github.zen_browser.zen
|
||||||
|
```
|
||||||
|
|
||||||
|
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
||||||
|
|
||||||
|
# Core Components
|
||||||
|
|
||||||
|
Some components used by @zen-browser as an attempt to make firefox forks a better place. You can find them [here](https://github.com/zen-browser/components).
|
||||||
|
|
||||||
## 🚀 Run Locally
|
## 🚀 Run Locally
|
||||||
|
|
||||||
Clone the project
|
Clone the project
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://github.com/zen-browser/desktop.git --recursive
|
git clone https://github.com/zen-browser/desktop.git --recurse-submodules
|
||||||
cd desktop
|
cd desktop
|
||||||
```
|
```
|
||||||
|
|
||||||
Install dependencies
|
Install dependencies
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
npm i
|
npm i
|
||||||
@@ -56,21 +105,29 @@ Finally, run the browser!
|
|||||||
npm start
|
npm start
|
||||||
```
|
```
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Contributions are always welcome!
|
|
||||||
|
|
||||||
See `contributing.md` for ways to get started.
|
|
||||||
|
|
||||||
Please adhere to this project's `code of conduct`.
|
|
||||||
|
|
||||||
## Special Thanks
|
## Special Thanks
|
||||||
|
|
||||||
- [IAmJafeth](https://github.com/IAmJafeth) (For sponsoring the domain)
|
- [IAmJafeth](https://github.com/IAmJafeth) (For sponsoring the domain)
|
||||||
- [Erlend](https://havn.blog) (For making the logo)
|
- [Donno 🐒](https://www.onnno.nl/) (For making the logo)
|
||||||
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
|
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
|
||||||
|
- [nitro](https://github.com/n7itro) (For the amazing work on the browser)
|
||||||
|
|
||||||
|
## Third Party Code
|
||||||
|
|
||||||
|
Zen couldn't be in its current state without the help of these amazing projects!
|
||||||
|
|
||||||
|
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[MPL LICENSE](/LICENSE)
|
[MPL LICENSE](./LICENSE)
|
||||||
|
|
||||||
|
## Star History
|
||||||
|
|
||||||
|
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
||||||
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date&theme=dark" />
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||||
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||||
|
</picture>
|
||||||
|
</a>
|
||||||
|
32
build/codesign/browser.developer.entitlements.xml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<!--
|
||||||
|
Entitlements to apply to the main browser process executable during
|
||||||
|
codesigning of production channel builds.
|
||||||
|
-->
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<!-- Firefox needs to create executable pages (without MAP_JIT) -->
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to create executable pages with MAP_JIT on aarch64 -->
|
||||||
|
<key>com.apple.security.cs.allow-jit</key><true/>
|
||||||
|
|
||||||
|
<!-- Allow loading third party libraries. Needed for Flash and CDMs -->
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the microphone on sites the user allows -->
|
||||||
|
<key>com.apple.security.device.audio-input</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the camera on sites the user allows -->
|
||||||
|
<key>com.apple.security.device.camera</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the location on sites the user allows -->
|
||||||
|
<key>com.apple.security.personal-information.location</key><true/>
|
||||||
|
|
||||||
|
<!-- Allow Firefox to send Apple events to other applications. Needed
|
||||||
|
for native messaging webextension helper applications launched by
|
||||||
|
Firefox which rely on Apple Events to signal other processes. -->
|
||||||
|
<key>com.apple.security.automation.apple-events</key><true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
169
build/codesign/codesign.bash
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 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 https://mozilla.org/MPL/2.0/.
|
||||||
|
#
|
||||||
|
# Runs codesign commands to codesign a Firefox .app bundle and enable macOS
|
||||||
|
# Hardened Runtime. Intended to be manually run by developers working on macOS
|
||||||
|
# 10.14+ who want to enable Hardened Runtime for manual testing. This is
|
||||||
|
# provided as a stop-gap until automated build tooling is available that signs
|
||||||
|
# binaries with a certificate generated during builds (bug 1522409). This
|
||||||
|
# script requires macOS 10.14 because Hardened Runtime is only available for
|
||||||
|
# applications running on 10.14 despite support for the codesign "-o runtime"
|
||||||
|
# option being available in 10.13.6 and newer.
|
||||||
|
#
|
||||||
|
# The script requires an identity string (-i option) from an Apple Developer
|
||||||
|
# ID certificate. This can be found in the macOS KeyChain after configuring an
|
||||||
|
# Apple Developer ID certificate.
|
||||||
|
#
|
||||||
|
# Example usage on macOS 10.14:
|
||||||
|
#
|
||||||
|
# $ ./mach build
|
||||||
|
# $ ./mach build package
|
||||||
|
# $ open </PATH/TO/DMG/FILE.dmg>
|
||||||
|
# <Drag Nightly.app to ~>
|
||||||
|
# $ ./security/mac/hardenedruntime/codesign.bash \
|
||||||
|
# -a ~/Nightly.app \
|
||||||
|
# -i <MY-IDENTITY-STRING> \
|
||||||
|
# -b security/mac/hardenedruntime/browser.developer.entitlements.xml
|
||||||
|
# -p security/mac/hardenedruntime/plugin-container.developer.entitlements.xml
|
||||||
|
# $ open ~/Nightly.app
|
||||||
|
#
|
||||||
|
|
||||||
|
usage ()
|
||||||
|
{
|
||||||
|
echo "Usage: $0 "
|
||||||
|
echo " -a <PATH-TO-BROWSER.app>"
|
||||||
|
echo " -i <IDENTITY>"
|
||||||
|
echo " -b <ENTITLEMENTS-FILE>"
|
||||||
|
echo " -p <CHILD-ENTITLEMENTS-FILE>"
|
||||||
|
echo " [-o <OUTPUT-DMG-FILE>]"
|
||||||
|
exit -1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Make sure we are running on macOS with the sw_vers command available.
|
||||||
|
SWVERS=/usr/bin/sw_vers
|
||||||
|
if [ ! -x ${SWVERS} ]; then
|
||||||
|
echo "ERROR: macOS 10.14 or later is required"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Require macOS 10.14 or newer.
|
||||||
|
OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
||||||
|
if [ ${OSVERSION} \< 14 ]; then
|
||||||
|
echo "ERROR: macOS 10.14 or later is required"
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while getopts "a:i:b:o:p:" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
a ) BUNDLE=$OPTARG ;;
|
||||||
|
i ) IDENTITY=$OPTARG ;;
|
||||||
|
b ) BROWSER_ENTITLEMENTS_FILE=$OPTARG ;;
|
||||||
|
p ) PLUGINCONTAINER_ENTITLEMENTS_FILE=$OPTARG ;;
|
||||||
|
o ) OUTPUT_DMG_FILE=$OPTARG ;;
|
||||||
|
\? ) usage; exit -1 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "${BUNDLE}" ] ||
|
||||||
|
[ -z "${IDENTITY}" ] ||
|
||||||
|
[ -z "${PLUGINCONTAINER_ENTITLEMENTS_FILE}" ] ||
|
||||||
|
[ -z "${BROWSER_ENTITLEMENTS_FILE}" ]; then
|
||||||
|
usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d "${BUNDLE}" ]; then
|
||||||
|
echo "Invalid bundle. Bundle should be a .app directory"
|
||||||
|
usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "${PLUGINCONTAINER_ENTITLEMENTS_FILE}" ]; then
|
||||||
|
echo "Invalid entitlements file"
|
||||||
|
usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "${BROWSER_ENTITLEMENTS_FILE}" ]; then
|
||||||
|
echo "Invalid entitlements file"
|
||||||
|
usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# DMG file output flag is optional
|
||||||
|
if [ ! -z "${OUTPUT_DMG_FILE}" ] &&
|
||||||
|
[ -e "${OUTPUT_DMG_FILE}" ]; then
|
||||||
|
echo "Output dmg file ${OUTPUT_DMG_FILE} exists. Please delete it first."
|
||||||
|
usage
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "-------------------------------------------------------------------------"
|
||||||
|
echo "bundle: $BUNDLE"
|
||||||
|
echo "identity: $IDENTITY"
|
||||||
|
echo "browser entitlements file: $BROWSER_ENTITLEMENTS_FILE"
|
||||||
|
echo "plugin-container entitlements file: $PLUGINCONTAINER_ENTITLEMENTS_FILE"
|
||||||
|
echo "output dmg file (optional): $OUTPUT_DMG_FILE"
|
||||||
|
echo "-------------------------------------------------------------------------"
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
# Clear extended attributes which cause codesign to fail
|
||||||
|
xattr -cr "${BUNDLE}"
|
||||||
|
|
||||||
|
# Sign these binaries first. Signing of some binaries has an ordering
|
||||||
|
# requirement where other binaries must be signed first.
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" \
|
||||||
|
"${BUNDLE}/Contents/Library/LaunchServices/org.mozilla.updater" \
|
||||||
|
"${BUNDLE}/Contents/MacOS/XUL" \
|
||||||
|
"${BUNDLE}/Contents/MacOS/pingsender" \
|
||||||
|
"${BUNDLE}/Contents/MacOS/*.dylib" \
|
||||||
|
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||||
|
"${BUNDLE}"/Contents/MacOS/updater.app
|
||||||
|
|
||||||
|
# Sign zen main executable
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||||
|
--entitlements ${BROWSER_ENTITLEMENTS_FILE} \
|
||||||
|
"${BUNDLE}"/Contents/MacOS/zen
|
||||||
|
|
||||||
|
# Sign Library/LaunchServices
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||||
|
"${BUNDLE}"/Contents/Library/LaunchServices/org.mozilla.updater
|
||||||
|
|
||||||
|
# Sign gmp-clearkey files
|
||||||
|
find "${BUNDLE}"/Contents/Resources/gmp-clearkey -type f -exec \
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" {} \;
|
||||||
|
|
||||||
|
# Sign the main bundle
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" \
|
||||||
|
--entitlements ${BROWSER_ENTITLEMENTS_FILE} "${BUNDLE}"
|
||||||
|
|
||||||
|
# Sign the plugin-container bundle with deep
|
||||||
|
codesign --force -o runtime --verbose --sign "$IDENTITY" --deep \
|
||||||
|
--entitlements ${PLUGINCONTAINER_ENTITLEMENTS_FILE} \
|
||||||
|
"${BUNDLE}"/Contents/MacOS/plugin-container.app
|
||||||
|
|
||||||
|
# Validate
|
||||||
|
codesign -vvv --deep --strict "${BUNDLE}"
|
||||||
|
|
||||||
|
# Create a DMG
|
||||||
|
if [ ! -z "${OUTPUT_DMG_FILE}" ]; then
|
||||||
|
DISK_IMAGE_DIR=`mktemp -d`
|
||||||
|
TEMP_FILE=`mktemp`
|
||||||
|
TEMP_DMG=${TEMP_FILE}.dmg
|
||||||
|
NAME=`basename "${BUNDLE}"`
|
||||||
|
|
||||||
|
ditto "${BUNDLE}" "${DISK_IMAGE_DIR}/${NAME}"
|
||||||
|
hdiutil create -size 400m -fs HFS+ \
|
||||||
|
-volname Firefox -srcfolder "${DISK_IMAGE_DIR}" "${TEMP_DMG}"
|
||||||
|
hdiutil convert -format UDZO \
|
||||||
|
-o "${OUTPUT_DMG_FILE}" "${TEMP_DMG}"
|
||||||
|
|
||||||
|
rm ${TEMP_FILE}
|
||||||
|
rm ${TEMP_DMG}
|
||||||
|
rm -rf "${DISK_IMAGE_DIR}"
|
||||||
|
fi
|
32
build/codesign/plugin-container.developer.entitlements.xml
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<!--
|
||||||
|
Entitlements to apply to the plugin-container.app bundle during
|
||||||
|
codesigning of production channel builds.
|
||||||
|
-->
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<!-- Firefox needs to create executable pages (without MAP_JIT) -->
|
||||||
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to create executable pages with MAP_JIT on aarch64 -->
|
||||||
|
<key>com.apple.security.cs.allow-jit</key><true/>
|
||||||
|
|
||||||
|
<!-- Allow loading third party libraries. Needed for Flash and CDMs -->
|
||||||
|
<key>com.apple.security.cs.disable-library-validation</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the microphone on sites the user allows -->
|
||||||
|
<key>com.apple.security.device.audio-input</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the camera on sites the user allows -->
|
||||||
|
<key>com.apple.security.device.camera</key><true/>
|
||||||
|
|
||||||
|
<!-- Firefox needs to access the location on sites the user allows -->
|
||||||
|
<key>com.apple.security.personal-information.location</key><true/>
|
||||||
|
|
||||||
|
<!-- Allow Firefox to send Apple events to other applications. Needed
|
||||||
|
for native messaging webextension helper applications launched by
|
||||||
|
Firefox which rely on Apple Events to signal other processes. -->
|
||||||
|
<key>com.apple.security.automation.apple-events</key><true/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
BIN
build/winsign/mar.exe
Normal file
91
build/winsign/sign.ps1
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
param(
|
||||||
|
[string][Parameter(Mandatory=$true)]$SignIdentity
|
||||||
|
)
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
|
echo "Preparing environment"
|
||||||
|
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
echo "Please UNZIP the generic and specific artifacts into windsign-temp"
|
||||||
|
echo "With the following filenames:"
|
||||||
|
echo " - $pwd\windsign-temp\windows-x64-obj-specific"
|
||||||
|
echo " - $pwd\windsign-temp\windows-x64-obj-generic"
|
||||||
|
Read-Host "Press Enter to continue when ready"
|
||||||
|
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||||
|
mkdir .\.github\workflows\object\ -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
pnpm surfer ci --brand alpha
|
||||||
|
|
||||||
|
function SignAndPackage($name) {
|
||||||
|
echo "Executing on $name"
|
||||||
|
rmdir .\dist -Recurse -ErrorAction SilentlyContinue
|
||||||
|
rmdir engine\obj-x86_64-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||||
|
cp windsign-temp\windows-x64-obj-$name engine\obj-x86_64-pc-windows-msvc\ -Recurse
|
||||||
|
echo "Signing $name"
|
||||||
|
|
||||||
|
# Collect all .exe and .dll files into a list
|
||||||
|
$files = Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.exe
|
||||||
|
$files += Get-ChildItem engine\obj-x86_64-pc-windows-msvc\ -Recurse -Include *.dll
|
||||||
|
|
||||||
|
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha1 /v $files
|
||||||
|
echo "Packaging $name"
|
||||||
|
$env:SURFER_SIGNING_MODE="sign"
|
||||||
|
$env:MAR="$PWD\\build\\winsign\\mar.exe"
|
||||||
|
if ($name -eq "generic") {
|
||||||
|
$env:SURFER_COMPAT="true"
|
||||||
|
}
|
||||||
|
|
||||||
|
pnpm surfer package --verbose
|
||||||
|
|
||||||
|
# In the release script, we do the following:
|
||||||
|
# tar -xvf .github/workflows/object/windows-x64-signed-generic.tar.gz -C windows-x64-signed-generic
|
||||||
|
# We need to create a tar with the same structure and no top-level directory
|
||||||
|
# Inside, we need:
|
||||||
|
# - update_manifest/*
|
||||||
|
# - windows.mar or windows-generic.mar
|
||||||
|
# - zen.installer.exe or zen.installer-generic.exe
|
||||||
|
# - zen.win-generic.zip or zen.win-specific.zip
|
||||||
|
echo "Creating tar for $name"
|
||||||
|
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||||
|
mkdir windsign-temp\windows-x64-signed-$name
|
||||||
|
|
||||||
|
# Move the MAR, add the `-generic` suffix if needed
|
||||||
|
if ($name -eq "generic") {
|
||||||
|
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows-generic.mar
|
||||||
|
} else {
|
||||||
|
mv .\dist\output.mar windsign-temp\windows-x64-signed-$name\windows.mar
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move the installer
|
||||||
|
if ($name -eq "generic") {
|
||||||
|
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer-generic.exe
|
||||||
|
} else {
|
||||||
|
mv .\dist\zen.installer.exe windsign-temp\windows-x64-signed-$name\zen.installer.exe
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move the zip
|
||||||
|
mv (Get-Item .\dist\*.en-US.win64.zip) windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||||
|
|
||||||
|
# Move the manifest
|
||||||
|
foreach ($file in Get-ChildItem .\dist\update\) {
|
||||||
|
mv ".\\dist\\update\\$file" windsign-temp\windows-x64-signed-$name\update_manifest
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Invoking tar for $name"
|
||||||
|
tar -czvf .\.github\workflows\object\windows-x64-signed-$name.tar.gz -C .\windsign-temp\windows-x64-signed-$name .
|
||||||
|
|
||||||
|
echo "Finished $name"
|
||||||
|
}
|
||||||
|
|
||||||
|
SignAndPackage specific
|
||||||
|
SignAndPackage generic
|
||||||
|
|
||||||
|
# Cleaning up
|
||||||
|
|
||||||
|
echo "All done!"
|
||||||
|
echo "All the artifacts (Generic and Specific) are signed and packaged, get a rest now!"
|
||||||
|
Read-Host "Press Enter to continue"
|
||||||
|
|
||||||
|
echo "Cleaning up"
|
||||||
|
rmdir windsign-temp -Recurse -ErrorAction SilentlyContinue
|
@@ -1,4 +1 @@
|
|||||||
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />Sorry, your browser does not support inline SVG.</svg>
|
||||||
<rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
|
|
||||||
Sorry, your browser does not support inline SVG.
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 226 B After Width: | Height: | Size: 219 B |
BIN
configs/branding/alpha/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
configs/branding/alpha/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
configs/branding/alpha/VisualElements_150.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
configs/branding/alpha/VisualElements_70.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
configs/branding/alpha/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
1
configs/branding/alpha/content/about-logo-private.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/alpha/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
configs/branding/alpha/content/about-logo.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
1
configs/branding/alpha/content/about-logo.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
configs/branding/alpha/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
1
configs/branding/alpha/content/about-wordmark.svg
Normal file
After Width: | Height: | Size: 6.4 KiB |
1
configs/branding/alpha/content/firefox-wordmark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 56"><defs><style>.b{fill:context-fill #20123a;}</style></defs><path class="b" d="M11.2896,37.6632h15.1928v5.2919H3.2415v-3.8076l15.1487-21.2557H3.2126v-5.2919h23.2393v3.811l-15.1622,21.2523ZM50.8649,26.3765c.5434,1.4469.8151,3.1418.8151,5.0778v1.7322h-15.5019v.017c0,1.1243.2089,2.0991.6301,2.9176.4195.822,1.0139,1.4537,1.7849,1.8987s1.6847.6657,2.7427.6657c.7014,0,1.3433-.0984,1.9258-.2955.5842-.197,1.0818-.4925,1.4979-.8899.4144-.394.7303-.8797.9476-1.4503l5.8404.3838c-.2972,1.4028-.9018,2.6255-1.8154,3.6683-.9137,1.0428-2.0906,1.8511-3.5273,2.4319-1.4385.5774-3.0959.8661-4.9726.8661-2.3419,0-4.3561-.4755-6.0408-1.43-1.6847-.9544-2.9805-2.3063-3.8907-4.0623-.9086-1.7526-1.362-3.8314-1.362-6.2327,0-2.3402.4534-4.3951,1.362-6.1647.9103-1.7696,2.1925-3.1486,3.8466-4.1336,1.6558-.9884,3.5986-1.4843,5.8318-1.4843,1.503,0,2.9024.2411,4.2032.7201,1.2992.4789,2.4354,1.199,3.4084,2.1568.9731.9578,1.7306,2.1602,2.274,3.6072ZM45.7378,29.2737c0-.9069-.1987-1.7119-.5927-2.4149-.3957-.6997-.9409-1.2534-1.6388-1.6508-.6964-.4008-1.503-.6012-2.4235-.6012-.9578,0-1.8053.2208-2.5406.6589-.7371.4382-1.3127,1.0292-1.7271,1.7628-.3818.679-.5853,1.4304-.6228,2.2451h9.5455ZM73.0682,20.9318c-1.1769-.6929-2.5543-1.0394-4.1353-1.0394-1.6898,0-3.1265.3872-4.3137,1.165-1.1854.7744-2.0294,1.824-2.5338,3.1486h-.2667v-4.0181h-6.017v22.7672h6.3125v-13.1617c.0102-.9782.1953-1.8138.557-2.5135.36-.6963.8644-1.2261,1.5115-1.593.647-.3635,1.396-.5469,2.2451-.5469,1.2653,0,2.257.394,2.9788,1.1786.7217.7846,1.0767,1.8749,1.0682,3.2675v13.3689h6.3125v-14.4965c0-1.7662-.326-3.2913-.9782-4.5718-.6521-1.2805-1.5658-2.2655-2.741-2.955Z"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
configs/branding/alpha/document.ico
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
configs/branding/alpha/document_pdf.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
configs/branding/alpha/firefox.ico
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
configs/branding/alpha/firefox64.ico
Normal file
After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 483 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 889 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 890 B After Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
configs/branding/alpha/pbmode.ico
Normal file
After Width: | Height: | Size: 103 KiB |
@@ -1,4 +0,0 @@
|
|||||||
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
|
||||||
<rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
|
|
||||||
Sorry, your browser does not support inline SVG.
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 483 KiB |
Before Width: | Height: | Size: 889 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 890 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 5.1 KiB |
@@ -3,6 +3,9 @@ ac_add_options --with-app-name=${binName}
|
|||||||
ac_add_options --with-app-basename=Zen
|
ac_add_options --with-app-basename=Zen
|
||||||
ac_add_options --enable-official-branding
|
ac_add_options --enable-official-branding
|
||||||
|
|
||||||
|
# Localization
|
||||||
|
ac_add_options --with-l10n-base="$PWD/browser/locales"
|
||||||
|
|
||||||
export MOZ_USER_DIR="${name}"
|
export MOZ_USER_DIR="${name}"
|
||||||
export MOZ_APP_BASENAME=Zen
|
export MOZ_APP_BASENAME=Zen
|
||||||
export MOZ_APP_PROFILE=${binName}
|
export MOZ_APP_PROFILE=${binName}
|
||||||
@@ -16,7 +19,6 @@ export MOZ_DISTRIBUTION_ID=${appId}
|
|||||||
# ac_add_options --enable-linker=gold
|
# ac_add_options --enable-linker=gold
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
export MOZ_STUB_INSTALLER=1
|
|
||||||
export MOZ_SOURCE_REPO=https://github.com/zen-browser/desktop
|
export MOZ_SOURCE_REPO=https://github.com/zen-browser/desktop
|
||||||
export MOZ_SOURCE_CHANGESET=${changeset}
|
export MOZ_SOURCE_CHANGESET=${changeset}
|
||||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||||
@@ -31,9 +33,13 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --disable-debug-symbols
|
ac_add_options --disable-debug-symbols
|
||||||
ac_add_options --disable-debug-js-modules
|
ac_add_options --disable-debug-js-modules
|
||||||
ac_add_options --disable-tests
|
ac_add_options --disable-tests
|
||||||
|
|
||||||
ac_add_options --disable-jprof
|
ac_add_options --disable-jprof
|
||||||
|
ac_add_options --disable-vtune
|
||||||
|
|
||||||
ac_add_options --enable-rust-simd
|
ac_add_options --enable-rust-simd
|
||||||
|
ac_add_options --enable-wasm-simd
|
||||||
|
|
||||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||||
|
|
||||||
ac_add_options --enable-proxy-bypass-protection
|
ac_add_options --enable-proxy-bypass-protection
|
||||||
@@ -43,14 +49,13 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --disable-crashreporter
|
ac_add_options --disable-crashreporter
|
||||||
ac_add_options --disable-geckodriver
|
ac_add_options --disable-geckodriver
|
||||||
ac_add_options --disable-rust-tests
|
ac_add_options --disable-rust-tests
|
||||||
|
|
||||||
|
# Done by vlad, if something fails, it's his fault
|
||||||
ac_add_options --disable-default-browser-agent
|
ac_add_options --disable-default-browser-agent
|
||||||
|
|
||||||
ac_add_options --disable-vtune
|
|
||||||
|
|
||||||
if ! test "$ZEN_DISABLE_LTO"; then
|
if ! test "$ZEN_DISABLE_LTO"; then
|
||||||
export MOZ_LTO=1
|
export MOZ_LTO=cross,thin
|
||||||
ac_add_options MOZ_LTO=1
|
ac_add_options --enable-lto=cross,thin
|
||||||
ac_add_options --enable-lto=full,cross
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_add_options --enable-jemalloc
|
ac_add_options --enable-jemalloc
|
||||||
@@ -85,17 +90,16 @@ ac_add_options --enable-jxl
|
|||||||
ac_add_options --enable-av1
|
ac_add_options --enable-av1
|
||||||
ac_add_options --enable-eme=widevine
|
ac_add_options --enable-eme=widevine
|
||||||
|
|
||||||
ac_add_options --allow-addon-sideload
|
|
||||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
|
||||||
mk_add_options MOZ_CRASHREPORTER=0
|
mk_add_options MOZ_DATA_REPORTING=
|
||||||
mk_add_options MOZ_DATA_REPORTING=0
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=
|
||||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
mk_add_options MOZ_TELEMETRY_REPORTING=
|
||||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
|
||||||
|
|
||||||
# Allow loading unsigned extensions
|
# Allow loading unsigned extensions
|
||||||
export MOZ_REQUIRE_SIGNING=1
|
export MOZ_REQUIRE_SIGNING=
|
||||||
mk_add_options MOZ_REQUIRE_SIGNING=1
|
mk_add_options MOZ_REQUIRE_SIGNING=
|
||||||
|
|
||||||
# Sorry ptr, I didnt mean to!
|
# Sorry ptr, I didnt mean to!
|
||||||
ac_add_options --without-wasm-sandboxed-libraries
|
# Edit: ok, ill remove it, goodbye top #1 on fastest browsers benchmark :[
|
||||||
|
# ac_add_options --without-wasm-sandboxed-libraries
|
||||||
|
@@ -13,6 +13,9 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --enable-linker=lld
|
ac_add_options --enable-linker=lld
|
||||||
ac_add_options --disable-elf-hack
|
ac_add_options --disable-elf-hack
|
||||||
|
|
||||||
|
ac_add_options --disable-gpsd
|
||||||
|
ac_add_options --disable-necko-wifi
|
||||||
|
|
||||||
ac_add_options --enable-install-strip
|
ac_add_options --enable-install-strip
|
||||||
ac_add_options --enable-strip
|
ac_add_options --enable-strip
|
||||||
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
||||||
@@ -32,20 +35,24 @@ if test "$ZEN_RELEASE"; then
|
|||||||
|
|
||||||
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||||
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||||
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64"
|
||||||
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
|
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
|
||||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1"
|
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1 -Clink-args=--icf=safe"
|
||||||
else
|
else
|
||||||
ac_add_options --enable-wasm-avx
|
ac_add_options --enable-wasm-avx
|
||||||
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
|
||||||
|
|
||||||
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
|
||||||
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
|
||||||
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
export CXXFLAGS="$CXXFLAGS -O3 -flto=thin -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -mpopcnt -mpclmul"
|
||||||
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
|
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
|
||||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1"
|
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1 -Clink-args=--icf=safe"
|
||||||
fi
|
fi
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
|
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_add_options --target=x86_64-pc-linux
|
ac_add_options --target=x86_64-pc-linux
|
||||||
|
|
||||||
|
ac_add_options --enable-alsa
|
||||||
|
ac_add_options --enable-pulseaudio
|
||||||
|
@@ -26,6 +26,9 @@ else
|
|||||||
|
|
||||||
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
||||||
|
|
||||||
|
# As of Clang 13, the default is -mcpu=apple-m1 when using a aarch64-apple-macos target,
|
||||||
|
# but we're using apple64-apple-darwin, which defaults to -mcpu=apple-a7, which disables
|
||||||
|
# a bunch of # performance-enabling CPU features.
|
||||||
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
@@ -33,3 +36,4 @@ else
|
|||||||
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
||||||
fi
|
fi
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
|
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
|
@@ -14,11 +14,10 @@ if test "$ZEN_CROSS_COMPILING"; then
|
|||||||
CROSS_COMPILE=1
|
CROSS_COMPILE=1
|
||||||
TOOLS=$(echo ~)/win-cross
|
TOOLS=$(echo ~)/win-cross
|
||||||
|
|
||||||
#export WIN32_REDIST_DIR="$TOOLS"/vs2022/VC/Redist/MSVC/14.34.31931/x64/Microsoft.VC143.CRT
|
export WIN_UCRT_REDIST_DIR="$(echo ~)/win-cross/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
|
||||||
#export WIN_UCRT_REDIST_DIR="$TOOLS/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
|
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
|
||||||
|
|
||||||
export MIDL="$TOOLS/wine/bin/widl"
|
export MIDL="$TOOLS/wine/bin/widl"
|
||||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
|
||||||
export MOZ_STUB_INSTALLER=1
|
export MOZ_STUB_INSTALLER=1
|
||||||
export WINEDEBUG=-all
|
export WINEDEBUG=-all
|
||||||
export WINE="$TOOLS/wine/bin/wine64"
|
export WINE="$TOOLS/wine/bin/wine64"
|
||||||
@@ -31,41 +30,37 @@ ac_add_options --target=x86_64-pc-windows-msvc
|
|||||||
|
|
||||||
ac_add_options --disable-maintenance-service
|
ac_add_options --disable-maintenance-service
|
||||||
ac_add_options --disable-bits-download
|
ac_add_options --disable-bits-download
|
||||||
|
|
||||||
ac_add_options --without-wasm-sandboxed-libraries
|
|
||||||
|
|
||||||
if test "$SURFER_COMPAT" = "true"; then
|
if test "$SURFER_COMPAT" = "true"; then
|
||||||
ac_add_options --enable-optimize="-O3 -mavx -maes -w -ftree-vectorize"
|
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize"
|
||||||
|
|
||||||
export CFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
export CFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||||
export CPPFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
export CPPFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||||
export CXXFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
export CXXFLAGS="-flto=thin -mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||||
export LDFLAGS="-Wl,-O3"
|
export LDFLAGS="-Wl,-O2"
|
||||||
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64"
|
export RUSTFLAGS="-Clink-args=--icf=safe -C codegen-units=1 -Ctarget-cpu=x86-64"
|
||||||
else
|
else
|
||||||
ac_add_options --enable-optimize="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -Xclang -ftree-vectorize -w"
|
ac_add_options --enable-optimize="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -ftree-vectorize -Xclang -w"
|
||||||
ac_add_options --enable-wasm-avx
|
ac_add_options --enable-wasm-avx
|
||||||
|
|
||||||
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -march=x86-64-v3"
|
||||||
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -march=x86-64-v3"
|
||||||
export CXXFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
export CXXFLAGS="-O2 -flto=thin -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mavx2 -mfma -maes -march=x86-64-v3"
|
||||||
export LDFLAGS="-Wl,-O3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
|
||||||
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
export RUSTFLAGS="-Clink-args=--icf=safe -C target-feature=+avx2 -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
||||||
fi
|
fi
|
||||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
|
|
||||||
#if test "$ZEN_GA_GENERATE_PROFILE"; then
|
if test "$ZEN_CROSS_COMPILING"; then
|
||||||
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||||
# ac_add_options --enable-profile-generate=cross
|
export CXXFLAGS="$CXXFLAGS -fprofile-generate -mllvm -enable-name-compression=false -mllvm -pgo-temporal-instrumentation -fprofile-update=atomic"
|
||||||
#else
|
mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||||
# ac_add_options --enable-profile-use=cross
|
ac_add_options --enable-profile-generate=cross
|
||||||
# if test "$SURFER_COMPAT" = "true"; then
|
else
|
||||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-generic.profdata
|
ac_add_options --enable-profile-use=cross
|
||||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-generic.log
|
ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
||||||
# else
|
ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
||||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-specific.profdata
|
fi
|
||||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-specific.log
|
|
||||||
# fi
|
|
||||||
#fi
|
|
||||||
|
|
||||||
|
fi
|
||||||
|
2
docs/assets/zen-black.svg
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4367,57.6782c-.0536,3.2127-2.7418,5.7593-5.955,5.7593h-24.1527c-.9392,0-1.5768-.9548-1.2169-1.8223l.0082-.0197c1.5882-3.8346,4.1653-7.0703,7.456-9.4308.4093-.2936.9032-.4459,1.407-.4459h16.5948c3.2694,0,5.9133,2.6775,5.8585,5.9594Z"/><path class="i" d="M46.671,16.5625c.9392,0,1.5768.9548,1.2169,1.8223l-.0082.0197c-1.5882,3.8346-4.1653,7.0703-7.456,9.4308-.4093.2936-.9032.4459-1.407.4459h-16.4984c-3.2132,0-5.9014-2.5466-5.955-5.7593-.0547-3.2819,2.5892-5.9594,5.8585-5.9594h24.2491Z"/><path class="i" d="M22.4208,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.251,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9897,4.6658-4.4091,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.251-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
After Width: | Height: | Size: 1.6 KiB |
@@ -1,13 +1,14 @@
|
|||||||
|
|
||||||
## Changed things that should be tested each release
|
## Changed things that should be tested each release
|
||||||
|
|
||||||
* Workspaces
|
- Workspaces
|
||||||
* Sidebar
|
- Sidebar
|
||||||
* Split views
|
- Split views
|
||||||
* Vertical tabs (expanded and not expanded)
|
- Vertical tabs (expanded and not expanded)
|
||||||
* Tab groups
|
- Tab groups
|
||||||
* Welcome Page
|
- Welcome Page
|
||||||
* Overall performance
|
- Overall performance
|
||||||
* Overall stability
|
- Overall stability
|
||||||
* Pinning tabs (Grid layout)
|
- Pinning tabs (Grid layout)
|
||||||
* Overall UX
|
- Overall UX
|
||||||
|
- Themes Page
|
||||||
|
- Settings Page
|
||||||
|
18
docs/key-shortcuts.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Custom Keyboard Shortcuts
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"<shortcut-id>": {
|
||||||
|
"key": "<key>",
|
||||||
|
"alt": false,
|
||||||
|
"shift": false,
|
||||||
|
"ctrl": false,
|
||||||
|
"meta": false,
|
||||||
|
"keycode": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The `key` field is the key that will trigger the shortcut. The `alt`, `shift`, `ctrl`, and `meta` fields are booleans that indicate if the respective modifier key should be pressed when the shortcut is triggered.
|
||||||
|
|
||||||
|
The `keycode` field is the keycode of the key that will trigger the shortcut. This field is optional and can be used to specify the keycode of the key that will trigger the shortcut. If the `keycode` field is specified, the `key` field will be ignored.
|
@@ -1,109 +0,0 @@
|
|||||||
# 🌀 Zen Browser Performance traker
|
|
||||||
```mermaid
|
|
||||||
graph TD;
|
|
||||||
A[mauro-balades] -->B(Zen custom code)
|
|
||||||
G-->B
|
|
||||||
H(ptr1337/CachyOS)-->|AUR Pkg and Opt. flags|D
|
|
||||||
E(Fire Fox-Code)-->C
|
|
||||||
B --> C{Final code}
|
|
||||||
D-->G(Perf. Testing)
|
|
||||||
C-->D(Build)
|
|
||||||
D--> F(Release)
|
|
||||||
F-->I(mar)
|
|
||||||
F-->L(Mac)
|
|
||||||
F-->T(Linux)
|
|
||||||
F-->V(Win install)
|
|
||||||
V-->Z(Zip)
|
|
||||||
V-->Z2(Intall.exe)
|
|
||||||
I-->I1(windows.mar)
|
|
||||||
I-->I2(linux.mar)
|
|
||||||
I-->I3(macos.mar)
|
|
||||||
T-->T1(zen.linux.tar.bz2)
|
|
||||||
T-->T2(AUR)
|
|
||||||
T-->T3(Flatpak)
|
|
||||||
T-->T4(AppImage)
|
|
||||||
L-->L1(zen.macos.dmg)
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Scores
|
|
||||||
|
|
||||||
## 1
|
|
||||||
- [NOCanoa](https://github.com/NOCanoa)
|
|
||||||
|
|
||||||
OS: win 11; CPU: i5 13600k
|
|
||||||
|
|
||||||
## web.basemark
|
|
||||||
|
|
||||||
https://web.basemark.com/
|
|
||||||
|
|
||||||
| | score: |CSS | HTML5 | Page load and Responsiveness | Resize Cap. |
|
|
||||||
|-----------|-----|-----|-------|------------------------------|-------------|
|
|
||||||
| 1.0.0-a.13-opt | 1658.87 | 59% | 91% | 90% | 76% |
|
|
||||||
| 1.0.0-a.12-opt | 1874.49 | 59% | 91% | 91% | 76% |
|
|
||||||
| 1.0.0-a.11-opt | 1678.49 | 59% | 91% | 91% | 76% |
|
|
||||||
| 1.0.0-a.10 | 1660.89 | 59% | 91% | 91% | 76% |
|
|
||||||
| 1.0.0-a.9 | 470 | why | why | why | why |
|
|
||||||
| 1.0.0-a.8 | 446.74 | 59% | 91% | 96% | 76% |
|
|
||||||
| 1.0.0-a.7 | 1964.43 | 59% | 91% | 91% | 76% |
|
|
||||||
| 1.0.0-a.6 | 1747.98 | 59% | 91% | 91% | 76% |
|
|
||||||
| 1.0.0-a.4 | 470.49 | 59% | 91% | 97% | 76% |
|
|
||||||
| 1.0.0-a.3 | 475.52 |59% | 91% | 97% | 76% |
|
|
||||||
| other | last | utpdate | 31/7 | 2024 | - |
|
|
||||||
| Librewolf 128.0-2 | 1953.65 | 59.66% | 89.01% | 91.72% | 76.12% |
|
|
||||||
| FF nightly 130.0a1 | 1912.77 | 59.66% | 90.91% | 91.72% | 76.12% |
|
|
||||||
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
xychart-beta
|
|
||||||
title "Performance over time (Higher is better)"
|
|
||||||
x-axis [.3, .4, .6, .7, .8, .9, .10, .11, .12, .13]
|
|
||||||
y-axis "Benchmark Points"
|
|
||||||
bar [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49, 1658.87 ]
|
|
||||||
line [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49, 1658.87 ]
|
|
||||||
```
|
|
||||||
|
|
||||||
## Speedometer3.0
|
|
||||||
|
|
||||||
https://browserbench.org/Speedometer3.0/
|
|
||||||
|
|
||||||
| | score: |
|
|
||||||
|-----------|-----|
|
|
||||||
| 1.0.0-a.13-opt | 21.1 |
|
|
||||||
| 1.0.0-a.12-opt | 21.5 |
|
|
||||||
| 1.0.0-a.11-opt | 20.8 |
|
|
||||||
| 1.0.0-a.10 | 21.2 |
|
|
||||||
| others| - |
|
|
||||||
| Vivaldi 6.7.3329.39| 27.8 |
|
|
||||||
| FF nightly 130.0a1 | 27.0 |
|
|
||||||
| Librewolf 128.0-2 | 20.2 |
|
|
||||||
|
|
||||||
|
|
||||||
## 2
|
|
||||||
|
|
||||||
- [Verix](https://github.com/Veriiix)
|
|
||||||
|
|
||||||
OS: Win 11
|
|
||||||
CPU: i7-13700KF
|
|
||||||
GPU: AMD RX 7900 XTX
|
|
||||||
https://www.tablesgenerator.com/
|
|
||||||
|
|
||||||
| Version | Score: |
|
|
||||||
|------------|--------|
|
|
||||||
| 1.0.0-a.12-opt | 23 |
|
|
||||||
| 1.0.0-a.11-opt | 22.1 |
|
|
||||||
| 1.0.0-a.10 | 21.7 |
|
|
||||||
| 1.0.0-a.9 | 3.7 |
|
|
||||||
| others| - |
|
|
||||||
| Default FF | 28 |
|
|
||||||
|
|
||||||
|
|
||||||
https://browserbench.org/Speedometer3.0/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Repository View Counter
|
|
||||||
|
|
||||||
<div align='center'><a href='https://www.websitecounterfree.com'><img src='https://www.websitecounterfree.com/c.php?d=9&id=57772&s=40' border='0' alt='Free Website Counter'></a><br / ><small><a href='https://www.websitecounterfree.com' title="Free Website Counter">Free Website Counter</a></small></div>
|
|
||||||
|
|
@@ -1,31 +1,30 @@
|
|||||||
|
|
||||||
# Supported CPUs for optimized builds (Windows and Linux)
|
# Supported CPUs for optimized builds (Windows and Linux)
|
||||||
|
|
||||||
> If you CPU is not listed, you should use the "Generic" build.
|
> If you CPU is not listed, you should use the "Generic" build.
|
||||||
|
|
||||||
* AMD Family 15h (Excavator)
|
- AMD Family 15h (Excavator)
|
||||||
* AMD Family 17h (Zen)
|
- AMD Family 17h (Zen)
|
||||||
* AMD Family 17h (Zen+)
|
- AMD Family 17h (Zen+)
|
||||||
* AMD Family 17h (Zen 2)
|
- AMD Family 17h (Zen 2)
|
||||||
* AMD Family 19h (Zen 3)
|
- AMD Family 19h (Zen 3)
|
||||||
* Intel 4th Gen Core (Haswell)
|
- Intel 4th Gen Core (Haswell)
|
||||||
* Intel 5th Gen Core (Broadwell)
|
- Intel 5th Gen Core (Broadwell)
|
||||||
* Intel 6th Gen Core (Skylake)
|
- Intel 6th Gen Core (Skylake)
|
||||||
* Intel 7th Gen Core (Kaby Lake)
|
- Intel 7th Gen Core (Kaby Lake)
|
||||||
* Intel 8/9th Gen Core (Coffee Lake)
|
- Intel 8/9th Gen Core (Coffee Lake)
|
||||||
* Intel 10th Gen Core (Comet Lake)
|
- Intel 10th Gen Core (Comet Lake)
|
||||||
* Intel 12th Gen (Alder Lake)
|
- Intel 12th Gen (Alder Lake)
|
||||||
* Intel 13th Gen (Raptor Lake)
|
- Intel 13th Gen (Raptor Lake)
|
||||||
* Intel 14th Gen (Raptor Lake Refresh)
|
- Intel 14th Gen (Raptor Lake Refresh)
|
||||||
* Intel 15th Gen (Lunar / Arrow Lake)
|
- Intel 15th Gen (Lunar / Arrow Lake)
|
||||||
* AMD Family 19h (Zen 4 / Zen 4c)
|
- AMD Family 19h (Zen 4 / Zen 4c)
|
||||||
* AMD Family 1Ah (Zen 5 / Zen 5c)
|
- AMD Family 1Ah (Zen 5 / Zen 5c)
|
||||||
* Intel 6th Gen Core (Skylake X)
|
- Intel 6th Gen Core (Skylake X)
|
||||||
* Intel 8th Gen Core i3 (Cannon Lake)
|
- Intel 8th Gen Core i3 (Cannon Lake)
|
||||||
* Intel Xeon / 10th Gen Core (Ice Lake)
|
- Intel Xeon / 10th Gen Core (Ice Lake)
|
||||||
* Intel Xeon (Cascade Lake)
|
- Intel Xeon (Cascade Lake)
|
||||||
* Intel Xeon (Cooper Lake)
|
- Intel Xeon (Cooper Lake)
|
||||||
* Intel 3rd Gen 10nm++ (Tiger Lake)
|
- Intel 3rd Gen 10nm++ (Tiger Lake)
|
||||||
* Intel 4th Gen 10nm++ (Sapphire Rapids)
|
- Intel 4th Gen 10nm++ (Sapphire Rapids)
|
||||||
* Intel 5th Gen 10nm++ (Emerald Rapids)
|
- Intel 5th Gen 10nm++ (Emerald Rapids)
|
||||||
* Intel 11th Gen (Rocket Lake)
|
- Intel 11th Gen (Rocket Lake)
|
||||||
|
@@ -1,5 +0,0 @@
|
|||||||
|
|
||||||
# Warp Build
|
|
||||||
|
|
||||||
For linux, we are using [warpbuild](https://warpbuild.com/) because github workflows can't handle building firefox :(
|
|
||||||
|
|
@@ -4,14 +4,12 @@ The `zen.sidepanels.data` configuration will be a JSON string that follows the f
|
|||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
data: {
|
"data": {
|
||||||
"p1": {
|
"p1": {
|
||||||
"url": "https://google.com",
|
"url": "https://google.com",
|
||||||
"ua": false, // "ua" may not be declared! (default: false)
|
"ua": false // "ua" may not be declared! (default: false)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"index": [
|
"index": ["p1"]
|
||||||
"p1"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
# Workspaces Layout
|
# Workspaces Layout
|
||||||
|
|
||||||
```
|
```json
|
||||||
{
|
{
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
{
|
{
|
||||||
@@ -14,6 +13,7 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
||||||
|
|
||||||
We will make use of firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
We will make use of firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
||||||
|
@@ -4,6 +4,11 @@ runtime-version: '23.08'
|
|||||||
sdk: org.freedesktop.Sdk
|
sdk: org.freedesktop.Sdk
|
||||||
base: org.mozilla.firefox.BaseApp
|
base: org.mozilla.firefox.BaseApp
|
||||||
base-version: '23.08'
|
base-version: '23.08'
|
||||||
|
add-extensions:
|
||||||
|
org.freedesktop.Platform.ffmpeg-full:
|
||||||
|
directory: lib/ffmpeg
|
||||||
|
version: 23.08
|
||||||
|
add-ld-path: .
|
||||||
command: launch-script.sh
|
command: launch-script.sh
|
||||||
finish-args:
|
finish-args:
|
||||||
- --share=ipc
|
- --share=ipc
|
||||||
@@ -17,19 +22,22 @@ finish-args:
|
|||||||
- --filesystem=xdg-download:rw
|
- --filesystem=xdg-download:rw
|
||||||
- --device=all
|
- --device=all
|
||||||
- --talk-name=org.freedesktop.FileManager1
|
- --talk-name=org.freedesktop.FileManager1
|
||||||
|
- --talk-name=org.freedesktop.ScreenSaver
|
||||||
- --own-name=org.mozilla.zen.*
|
- --own-name=org.mozilla.zen.*
|
||||||
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
||||||
- --system-talk-name=org.freedesktop.NetworkManager
|
- --system-talk-name=org.freedesktop.NetworkManager
|
||||||
- --talk-name=org.a11y.Bus
|
- --talk-name=org.a11y.Bus
|
||||||
|
- --env=GTK_PATH=/app/lib/gtkmodules
|
||||||
modules:
|
modules:
|
||||||
- name: zen_browser
|
- name: zen_browser
|
||||||
buildsystem: simple
|
buildsystem: simple
|
||||||
build-commands:
|
build-commands:
|
||||||
- mv zen /app/
|
- mv zen /app/
|
||||||
|
- mkdir -p /app/lib/ffmpeg
|
||||||
|
|
||||||
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
||||||
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
||||||
- install -Dm0644 metadata/icons/io.github.zen_browser.zen.png ${{FLATPAK_DEST}}/share/icons/hicolor/256x256/apps/${{FLATPAK_ID}}.png
|
- install -Dm0644 metadata/icons/io.github.zen_browser.zen.svg ${{FLATPAK_DEST}}/share/icons/hicolor/scalable/apps/${{FLATPAK_ID}}.svg
|
||||||
- install -Dm0644 metadata/io.github.zen_browser.zen.metainfo.xml ${{FLATPAK_DEST}}/share/metainfo/${{FLATPAK_ID}}.metainfo.xml
|
- install -Dm0644 metadata/io.github.zen_browser.zen.metainfo.xml ${{FLATPAK_DEST}}/share/metainfo/${{FLATPAK_ID}}.metainfo.xml
|
||||||
- install -Dm0644 metadata/io.github.zen_browser.zen.desktop ${{FLATPAK_DEST}}/share/applications/${{FLATPAK_ID}}.desktop
|
- install -Dm0644 metadata/io.github.zen_browser.zen.desktop ${{FLATPAK_DEST}}/share/applications/${{FLATPAK_ID}}.desktop
|
||||||
|
|
||||||
@@ -40,7 +48,7 @@ modules:
|
|||||||
strip-components: 0
|
strip-components: 0
|
||||||
|
|
||||||
- type: archive
|
- type: archive
|
||||||
url: https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar
|
url: https://github.com/zen-browser/flatpak/releases/download/{version}/archive.tar
|
||||||
sha256: {flatpak_sha256}
|
sha256: {flatpak_sha256}
|
||||||
strip-components: 0
|
strip-components: 0
|
||||||
dest: metadata
|
dest: metadata
|
||||||
|
1
l10n
Submodule
15
package.json
@@ -2,6 +2,9 @@
|
|||||||
"name": "zen-core",
|
"name": "zen-core",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
|
"lint-staged": {
|
||||||
|
"**/*": ""
|
||||||
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "surfer build",
|
"build": "surfer build",
|
||||||
"build:ui": "surfer build --ui",
|
"build:ui": "surfer build --ui",
|
||||||
@@ -13,7 +16,10 @@
|
|||||||
"package": "surfer package",
|
"package": "surfer package",
|
||||||
"update-ff": "python3 scripts/update_ff.py",
|
"update-ff": "python3 scripts/update_ff.py",
|
||||||
"update-ff:raw": "surfer update",
|
"update-ff:raw": "surfer update",
|
||||||
"update-newtab": "python3 scripts/update_newtab.py"
|
"update-newtab": "python3 scripts/update_newtab.py",
|
||||||
|
"pretty": "prettier . --write",
|
||||||
|
"lint": "npx prettier . --check",
|
||||||
|
"prepare": "husky"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -27,6 +33,11 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/core#readme",
|
"homepage": "https://github.com/zen-browser/core#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.2.7"
|
"@zen-browser/surfer": "^1.4.18"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"husky": "^9.1.5",
|
||||||
|
"lint-staged": "^15.2.10",
|
||||||
|
"prettier": "^3.3.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
413
pnpm-lock.yaml
generated
@@ -9,8 +9,18 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@zen-browser/surfer':
|
'@zen-browser/surfer':
|
||||||
specifier: ^1.2.7
|
specifier: ^1.4.18
|
||||||
version: 1.2.7
|
version: 1.4.18
|
||||||
|
devDependencies:
|
||||||
|
husky:
|
||||||
|
specifier: ^9.1.5
|
||||||
|
version: 9.1.5
|
||||||
|
lint-staged:
|
||||||
|
specifier: ^15.2.10
|
||||||
|
version: 15.2.10
|
||||||
|
prettier:
|
||||||
|
specifier: ^3.3.3
|
||||||
|
version: 3.3.3
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -109,18 +119,30 @@ packages:
|
|||||||
'@types/node@17.0.45':
|
'@types/node@17.0.45':
|
||||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.2.7':
|
'@zen-browser/surfer@1.4.18':
|
||||||
resolution: {integrity: sha512-VbbbB7crGXrdfk1PPnlsWFWErwjtccXbRuw5mOQzY327d2t5VraxmkqTzcuGSTxpu3CR/KvzNu0gDg/6+7b4NQ==}
|
resolution: {integrity: sha512-NFqF5amqa4TuGFk+uVQNY4FngIvyhXvtZdpHUbU8Oeq3nfKE+bsLUHbFz8j9I5sFLQkuHmCsfTtR5gKA5el4YA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
ansi-escapes@7.0.0:
|
||||||
|
resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
ansi-regex@5.0.1:
|
ansi-regex@5.0.1:
|
||||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
ansi-regex@6.0.1:
|
||||||
|
resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
ansi-styles@4.3.0:
|
ansi-styles@4.3.0:
|
||||||
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
ansi-styles@6.2.1:
|
||||||
|
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
argparse@1.0.10:
|
argparse@1.0.10:
|
||||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
|
|
||||||
@@ -160,6 +182,10 @@ packages:
|
|||||||
brace-expansion@1.1.11:
|
brace-expansion@1.1.11:
|
||||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||||
|
|
||||||
|
braces@3.0.3:
|
||||||
|
resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
buffer-alloc-unsafe@1.1.0:
|
buffer-alloc-unsafe@1.1.0:
|
||||||
resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
|
resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
|
||||||
|
|
||||||
@@ -179,13 +205,25 @@ packages:
|
|||||||
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
chalk@5.3.0:
|
||||||
|
resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
|
||||||
|
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
|
||||||
|
|
||||||
chownr@1.1.4:
|
chownr@1.1.4:
|
||||||
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
|
||||||
|
|
||||||
|
cli-cursor@5.0.0:
|
||||||
|
resolution: {integrity: sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
cli-progress@3.12.0:
|
cli-progress@3.12.0:
|
||||||
resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==}
|
resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
|
|
||||||
|
cli-truncate@4.0.0:
|
||||||
|
resolution: {integrity: sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
color-convert@2.0.1:
|
color-convert@2.0.1:
|
||||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||||
engines: {node: '>=7.0.0'}
|
engines: {node: '>=7.0.0'}
|
||||||
@@ -200,6 +238,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
|
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
|
||||||
engines: {node: '>=12.5.0'}
|
engines: {node: '>=12.5.0'}
|
||||||
|
|
||||||
|
colorette@2.0.20:
|
||||||
|
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
|
||||||
|
|
||||||
|
commander@12.1.0:
|
||||||
|
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
commander@6.2.1:
|
commander@6.2.1:
|
||||||
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
|
resolution: {integrity: sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -228,6 +273,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
|
|
||||||
|
debug@4.3.7:
|
||||||
|
resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==}
|
||||||
|
engines: {node: '>=6.0'}
|
||||||
|
peerDependencies:
|
||||||
|
supports-color: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
supports-color:
|
||||||
|
optional: true
|
||||||
|
|
||||||
decompress-response@6.0.0:
|
decompress-response@6.0.0:
|
||||||
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -243,21 +297,35 @@ packages:
|
|||||||
duplexify@4.1.3:
|
duplexify@4.1.3:
|
||||||
resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==}
|
resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==}
|
||||||
|
|
||||||
|
emoji-regex@10.4.0:
|
||||||
|
resolution: {integrity: sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==}
|
||||||
|
|
||||||
emoji-regex@8.0.0:
|
emoji-regex@8.0.0:
|
||||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||||
|
|
||||||
end-of-stream@1.4.4:
|
end-of-stream@1.4.4:
|
||||||
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
|
||||||
|
|
||||||
|
environment@1.1.0:
|
||||||
|
resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
esprima@4.0.1:
|
esprima@4.0.1:
|
||||||
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
eventemitter3@5.0.1:
|
||||||
|
resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==}
|
||||||
|
|
||||||
execa@5.1.1:
|
execa@5.1.1:
|
||||||
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
|
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
execa@8.0.1:
|
||||||
|
resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==}
|
||||||
|
engines: {node: '>=16.17'}
|
||||||
|
|
||||||
expand-template@2.0.3:
|
expand-template@2.0.3:
|
||||||
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
@@ -273,6 +341,10 @@ packages:
|
|||||||
fifo@2.4.1:
|
fifo@2.4.1:
|
||||||
resolution: {integrity: sha512-XTbUCNmo54Jav0hcL6VxDuY4x1eCQH61HEF80C2Oww283pfjQ2C8avZeyq4v43sW2S2403kmzssE9j4lbF66Sg==}
|
resolution: {integrity: sha512-XTbUCNmo54Jav0hcL6VxDuY4x1eCQH61HEF80C2Oww283pfjQ2C8avZeyq4v43sW2S2403kmzssE9j4lbF66Sg==}
|
||||||
|
|
||||||
|
fill-range@7.1.1:
|
||||||
|
resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
|
||||||
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
flush-write-stream@2.0.0:
|
flush-write-stream@2.0.0:
|
||||||
resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==}
|
resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==}
|
||||||
|
|
||||||
@@ -303,10 +375,18 @@ packages:
|
|||||||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||||
engines: {node: 6.* || 8.* || >= 10.*}
|
engines: {node: 6.* || 8.* || >= 10.*}
|
||||||
|
|
||||||
|
get-east-asian-width@1.2.0:
|
||||||
|
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
get-stream@6.0.1:
|
get-stream@6.0.1:
|
||||||
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
get-stream@8.0.1:
|
||||||
|
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
|
||||||
|
engines: {node: '>=16'}
|
||||||
|
|
||||||
github-from-package@0.0.0:
|
github-from-package@0.0.0:
|
||||||
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||||
|
|
||||||
@@ -334,6 +414,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
||||||
engines: {node: '>=10.17.0'}
|
engines: {node: '>=10.17.0'}
|
||||||
|
|
||||||
|
human-signals@5.0.0:
|
||||||
|
resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==}
|
||||||
|
engines: {node: '>=16.17.0'}
|
||||||
|
|
||||||
|
husky@9.1.5:
|
||||||
|
resolution: {integrity: sha512-rowAVRUBfI0b4+niA4SJMhfQwc107VLkBUgEYYAOQAbqDCnra1nYh83hF/MDmhYs9t9n1E3DuKOrs2LYNC+0Ag==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
ieee754@1.2.1:
|
ieee754@1.2.1:
|
||||||
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
||||||
|
|
||||||
@@ -373,6 +462,18 @@ packages:
|
|||||||
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-fullwidth-code-point@4.0.0:
|
||||||
|
resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
is-fullwidth-code-point@5.0.0:
|
||||||
|
resolution: {integrity: sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
|
is-number@7.0.0:
|
||||||
|
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
|
||||||
|
engines: {node: '>=0.12.0'}
|
||||||
|
|
||||||
is-promise@4.0.0:
|
is-promise@4.0.0:
|
||||||
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
|
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
|
||||||
|
|
||||||
@@ -384,6 +485,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-stream@3.0.0:
|
||||||
|
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
|
||||||
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||||
|
|
||||||
is-unc-path@1.0.0:
|
is-unc-path@1.0.0:
|
||||||
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
|
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -416,19 +521,48 @@ packages:
|
|||||||
lifecycle@1.0.4:
|
lifecycle@1.0.4:
|
||||||
resolution: {integrity: sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==}
|
resolution: {integrity: sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==}
|
||||||
|
|
||||||
|
lilconfig@3.1.2:
|
||||||
|
resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
|
lint-staged@15.2.10:
|
||||||
|
resolution: {integrity: sha512-5dY5t743e1byO19P9I4b3x8HJwalIznL5E1FWYnU6OWw33KxNBSLAc6Cy7F2PsFEO8FKnLwjwm5hx7aMF0jzZg==}
|
||||||
|
engines: {node: '>=18.12.0'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
|
listr2@8.2.4:
|
||||||
|
resolution: {integrity: sha512-opevsywziHd3zHCVQGAj8zu+Z3yHNkkoYhWIGnq54RrCVwLz0MozotJEDnKsIBLvkfLGN6BLOyAeRrYI0pKA4g==}
|
||||||
|
engines: {node: '>=18.0.0'}
|
||||||
|
|
||||||
lodash.compact@3.0.1:
|
lodash.compact@3.0.1:
|
||||||
resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==}
|
resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==}
|
||||||
|
|
||||||
lodash.throttle@4.1.1:
|
lodash.throttle@4.1.1:
|
||||||
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
|
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
|
||||||
|
|
||||||
|
log-update@6.1.0:
|
||||||
|
resolution: {integrity: sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
merge-stream@2.0.0:
|
merge-stream@2.0.0:
|
||||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||||
|
|
||||||
|
micromatch@4.0.8:
|
||||||
|
resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
|
||||||
|
engines: {node: '>=8.6'}
|
||||||
|
|
||||||
mimic-fn@2.1.0:
|
mimic-fn@2.1.0:
|
||||||
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
mimic-fn@4.0.0:
|
||||||
|
resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
mimic-function@5.0.1:
|
||||||
|
resolution: {integrity: sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
mimic-response@3.1.0:
|
mimic-response@3.1.0:
|
||||||
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -452,6 +586,12 @@ packages:
|
|||||||
modern-async@1.1.4:
|
modern-async@1.1.4:
|
||||||
resolution: {integrity: sha512-jaZlzQB3W9PRF43+T144lYWb7UaTapJM6MZxNGLqpgPVal6uV4ixkR+t/1H1/7UM03jDu5BnvAYDqeawvL7kiw==}
|
resolution: {integrity: sha512-jaZlzQB3W9PRF43+T144lYWb7UaTapJM6MZxNGLqpgPVal6uV4ixkR+t/1H1/7UM03jDu5BnvAYDqeawvL7kiw==}
|
||||||
|
|
||||||
|
mount-dmg@1.0.1:
|
||||||
|
resolution: {integrity: sha512-YEHSgtE1d6jIm6ht0uqo4MWQSXHvHYujgURXf+59hQDErH5bL5rv4uGwko8ejiFIeK6ySk8jBX1oX9NrlmBTCg==}
|
||||||
|
|
||||||
|
ms@2.1.3:
|
||||||
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||||
|
|
||||||
nanoassert@2.0.0:
|
nanoassert@2.0.0:
|
||||||
resolution: {integrity: sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==}
|
resolution: {integrity: sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==}
|
||||||
|
|
||||||
@@ -476,6 +616,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
|
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
npm-run-path@5.3.0:
|
||||||
|
resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==}
|
||||||
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||||
|
|
||||||
once@1.4.0:
|
once@1.4.0:
|
||||||
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
|
||||||
|
|
||||||
@@ -483,6 +627,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
onetime@6.0.0:
|
||||||
|
resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
onetime@7.0.0:
|
||||||
|
resolution: {integrity: sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
os-shim@0.1.3:
|
os-shim@0.1.3:
|
||||||
resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==}
|
resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==}
|
||||||
engines: {node: '>= 0.4.0'}
|
engines: {node: '>= 0.4.0'}
|
||||||
@@ -495,10 +647,19 @@ packages:
|
|||||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
path-key@4.0.0:
|
||||||
|
resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
picomatch@2.3.1:
|
picomatch@2.3.1:
|
||||||
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
|
||||||
engines: {node: '>=8.6'}
|
engines: {node: '>=8.6'}
|
||||||
|
|
||||||
|
pidtree@0.6.0:
|
||||||
|
resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
|
||||||
|
engines: {node: '>=0.10'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
png-to-ico@2.1.8:
|
png-to-ico@2.1.8:
|
||||||
resolution: {integrity: sha512-Nf+IIn/cZ/DIZVdGveJp86NG5uNib1ZXMiDd/8x32HCTeKSvgpyg6D/6tUBn1QO/zybzoMK0/mc3QRgAyXdv9w==}
|
resolution: {integrity: sha512-Nf+IIn/cZ/DIZVdGveJp86NG5uNib1ZXMiDd/8x32HCTeKSvgpyg6D/6tUBn1QO/zybzoMK0/mc3QRgAyXdv9w==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -513,6 +674,11 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
prettier@3.3.3:
|
||||||
|
resolution: {integrity: sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
process-nextick-args@2.0.1:
|
process-nextick-args@2.0.1:
|
||||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||||
|
|
||||||
@@ -551,6 +717,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==}
|
resolution: {integrity: sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
restore-cursor@5.1.0:
|
||||||
|
resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
|
rfdc@1.4.1:
|
||||||
|
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
|
||||||
|
|
||||||
rimraf@2.7.1:
|
rimraf@2.7.1:
|
||||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||||
deprecated: Rimraf versions prior to v4 are no longer supported
|
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||||
@@ -586,12 +759,19 @@ packages:
|
|||||||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
shell-escape@0.2.0:
|
||||||
|
resolution: {integrity: sha512-uRRBT2MfEOyxuECseCZd28jC1AJ8hmqqneWQ4VWUTgCAFvb3wKU1jLqj6egC4Exrr88ogg3dp+zroH4wJuaXzw==}
|
||||||
|
|
||||||
short-hash@1.0.0:
|
short-hash@1.0.0:
|
||||||
resolution: {integrity: sha512-qbUCD2Pkl4IXRyVqneEjGnUr0NGDGLzZnBUVGJngIQZf/FrhOL0yJhH+JQzak0t8xMmScIKpoX1SxOsPHdwa4w==}
|
resolution: {integrity: sha512-qbUCD2Pkl4IXRyVqneEjGnUr0NGDGLzZnBUVGJngIQZf/FrhOL0yJhH+JQzak0t8xMmScIKpoX1SxOsPHdwa4w==}
|
||||||
|
|
||||||
signal-exit@3.0.7:
|
signal-exit@3.0.7:
|
||||||
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||||
|
|
||||||
|
signal-exit@4.1.0:
|
||||||
|
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
|
||||||
|
engines: {node: '>=14'}
|
||||||
|
|
||||||
simple-concat@1.0.1:
|
simple-concat@1.0.1:
|
||||||
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==}
|
||||||
|
|
||||||
@@ -604,6 +784,14 @@ packages:
|
|||||||
sisteransi@1.0.5:
|
sisteransi@1.0.5:
|
||||||
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
||||||
|
|
||||||
|
slice-ansi@5.0.0:
|
||||||
|
resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
slice-ansi@7.1.0:
|
||||||
|
resolution: {integrity: sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
speedometer@1.0.0:
|
speedometer@1.0.0:
|
||||||
resolution: {integrity: sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==}
|
resolution: {integrity: sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==}
|
||||||
|
|
||||||
@@ -617,10 +805,18 @@ packages:
|
|||||||
stream-shift@1.0.3:
|
stream-shift@1.0.3:
|
||||||
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
|
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
|
||||||
|
|
||||||
|
string-argv@0.3.2:
|
||||||
|
resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
|
||||||
|
engines: {node: '>=0.6.19'}
|
||||||
|
|
||||||
string-width@4.2.3:
|
string-width@4.2.3:
|
||||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
string-width@7.2.0:
|
||||||
|
resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
string_decoder@1.1.1:
|
string_decoder@1.1.1:
|
||||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||||
|
|
||||||
@@ -631,10 +827,18 @@ packages:
|
|||||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
strip-ansi@7.1.0:
|
||||||
|
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
strip-final-newline@2.0.0:
|
strip-final-newline@2.0.0:
|
||||||
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
|
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
strip-final-newline@3.0.0:
|
||||||
|
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
strip-json-comments@2.0.1:
|
strip-json-comments@2.0.1:
|
||||||
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -671,6 +875,10 @@ packages:
|
|||||||
tiny-glob@0.2.9:
|
tiny-glob@0.2.9:
|
||||||
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
||||||
|
|
||||||
|
to-regex-range@5.0.1:
|
||||||
|
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
|
||||||
|
engines: {node: '>=8.0'}
|
||||||
|
|
||||||
to-utf8@0.0.1:
|
to-utf8@0.0.1:
|
||||||
resolution: {integrity: sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==}
|
resolution: {integrity: sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==}
|
||||||
|
|
||||||
@@ -696,6 +904,10 @@ packages:
|
|||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
wrap-ansi@9.0.0:
|
||||||
|
resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
wrappy@1.0.2:
|
wrappy@1.0.2:
|
||||||
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
||||||
|
|
||||||
@@ -707,6 +919,11 @@ packages:
|
|||||||
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||||
engines: {node: '>=0.4'}
|
engines: {node: '>=0.4'}
|
||||||
|
|
||||||
|
yaml@2.5.1:
|
||||||
|
resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==}
|
||||||
|
engines: {node: '>= 14'}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
zip-iterator@1.0.1:
|
zip-iterator@1.0.1:
|
||||||
resolution: {integrity: sha512-0mrjvo33Z9E/7rd2iiNmEJMjbiv+/czKyTl+IOdgpY87+y9vUW+bB6HmhGU9s7G3TpWsEIID3n+7cckK3D2hwQ==}
|
resolution: {integrity: sha512-0mrjvo33Z9E/7rd2iiNmEJMjbiv+/czKyTl+IOdgpY87+y9vUW+bB6HmhGU9s7G3TpWsEIID3n+7cckK3D2hwQ==}
|
||||||
engines: {node: '>=0.8'}
|
engines: {node: '>=0.8'}
|
||||||
@@ -786,7 +1003,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node@17.0.45': {}
|
'@types/node@17.0.45': {}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.2.7':
|
'@zen-browser/surfer@1.4.18':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@resvg/resvg-js': 1.4.0
|
'@resvg/resvg-js': 1.4.0
|
||||||
async-icns: 1.0.2
|
async-icns: 1.0.2
|
||||||
@@ -801,6 +1018,7 @@ snapshots:
|
|||||||
is-apple-silicon: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a
|
is-apple-silicon: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a
|
||||||
kleur: 4.1.5
|
kleur: 4.1.5
|
||||||
modern-async: 1.1.4
|
modern-async: 1.1.4
|
||||||
|
mount-dmg: 1.0.1
|
||||||
picomatch: 2.3.1
|
picomatch: 2.3.1
|
||||||
png-to-ico: 2.1.8
|
png-to-ico: 2.1.8
|
||||||
prompts: 2.4.2
|
prompts: 2.4.2
|
||||||
@@ -812,12 +1030,20 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
|
|
||||||
|
ansi-escapes@7.0.0:
|
||||||
|
dependencies:
|
||||||
|
environment: 1.1.0
|
||||||
|
|
||||||
ansi-regex@5.0.1: {}
|
ansi-regex@5.0.1: {}
|
||||||
|
|
||||||
|
ansi-regex@6.0.1: {}
|
||||||
|
|
||||||
ansi-styles@4.3.0:
|
ansi-styles@4.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
color-convert: 2.0.1
|
color-convert: 2.0.1
|
||||||
|
|
||||||
|
ansi-styles@6.2.1: {}
|
||||||
|
|
||||||
argparse@1.0.10:
|
argparse@1.0.10:
|
||||||
dependencies:
|
dependencies:
|
||||||
sprintf-js: 1.0.3
|
sprintf-js: 1.0.3
|
||||||
@@ -868,6 +1094,10 @@ snapshots:
|
|||||||
balanced-match: 1.0.2
|
balanced-match: 1.0.2
|
||||||
concat-map: 0.0.1
|
concat-map: 0.0.1
|
||||||
|
|
||||||
|
braces@3.0.3:
|
||||||
|
dependencies:
|
||||||
|
fill-range: 7.1.1
|
||||||
|
|
||||||
buffer-alloc-unsafe@1.1.0: {}
|
buffer-alloc-unsafe@1.1.0: {}
|
||||||
|
|
||||||
buffer-alloc@1.2.0:
|
buffer-alloc@1.2.0:
|
||||||
@@ -889,12 +1119,23 @@ snapshots:
|
|||||||
ansi-styles: 4.3.0
|
ansi-styles: 4.3.0
|
||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
|
|
||||||
|
chalk@5.3.0: {}
|
||||||
|
|
||||||
chownr@1.1.4: {}
|
chownr@1.1.4: {}
|
||||||
|
|
||||||
|
cli-cursor@5.0.0:
|
||||||
|
dependencies:
|
||||||
|
restore-cursor: 5.1.0
|
||||||
|
|
||||||
cli-progress@3.12.0:
|
cli-progress@3.12.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
string-width: 4.2.3
|
string-width: 4.2.3
|
||||||
|
|
||||||
|
cli-truncate@4.0.0:
|
||||||
|
dependencies:
|
||||||
|
slice-ansi: 5.0.0
|
||||||
|
string-width: 7.2.0
|
||||||
|
|
||||||
color-convert@2.0.1:
|
color-convert@2.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
color-name: 1.1.4
|
color-name: 1.1.4
|
||||||
@@ -911,6 +1152,10 @@ snapshots:
|
|||||||
color-convert: 2.0.1
|
color-convert: 2.0.1
|
||||||
color-string: 1.9.1
|
color-string: 1.9.1
|
||||||
|
|
||||||
|
colorette@2.0.20: {}
|
||||||
|
|
||||||
|
commander@12.1.0: {}
|
||||||
|
|
||||||
commander@6.2.1: {}
|
commander@6.2.1: {}
|
||||||
|
|
||||||
commander@9.5.0: {}
|
commander@9.5.0: {}
|
||||||
@@ -933,6 +1178,10 @@ snapshots:
|
|||||||
shebang-command: 2.0.0
|
shebang-command: 2.0.0
|
||||||
which: 2.0.2
|
which: 2.0.2
|
||||||
|
|
||||||
|
debug@4.3.7:
|
||||||
|
dependencies:
|
||||||
|
ms: 2.1.3
|
||||||
|
|
||||||
decompress-response@6.0.0:
|
decompress-response@6.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
mimic-response: 3.1.0
|
mimic-response: 3.1.0
|
||||||
@@ -948,14 +1197,20 @@ snapshots:
|
|||||||
readable-stream: 3.6.2
|
readable-stream: 3.6.2
|
||||||
stream-shift: 1.0.3
|
stream-shift: 1.0.3
|
||||||
|
|
||||||
|
emoji-regex@10.4.0: {}
|
||||||
|
|
||||||
emoji-regex@8.0.0: {}
|
emoji-regex@8.0.0: {}
|
||||||
|
|
||||||
end-of-stream@1.4.4:
|
end-of-stream@1.4.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
|
|
||||||
|
environment@1.1.0: {}
|
||||||
|
|
||||||
esprima@4.0.1: {}
|
esprima@4.0.1: {}
|
||||||
|
|
||||||
|
eventemitter3@5.0.1: {}
|
||||||
|
|
||||||
execa@5.1.1:
|
execa@5.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
cross-spawn: 7.0.3
|
cross-spawn: 7.0.3
|
||||||
@@ -968,6 +1223,18 @@ snapshots:
|
|||||||
signal-exit: 3.0.7
|
signal-exit: 3.0.7
|
||||||
strip-final-newline: 2.0.0
|
strip-final-newline: 2.0.0
|
||||||
|
|
||||||
|
execa@8.0.1:
|
||||||
|
dependencies:
|
||||||
|
cross-spawn: 7.0.3
|
||||||
|
get-stream: 8.0.1
|
||||||
|
human-signals: 5.0.0
|
||||||
|
is-stream: 3.0.0
|
||||||
|
merge-stream: 2.0.0
|
||||||
|
npm-run-path: 5.3.0
|
||||||
|
onetime: 6.0.0
|
||||||
|
signal-exit: 4.1.0
|
||||||
|
strip-final-newline: 3.0.0
|
||||||
|
|
||||||
expand-template@2.0.3: {}
|
expand-template@2.0.3: {}
|
||||||
|
|
||||||
extract-base-iterator@1.0.1:
|
extract-base-iterator@1.0.1:
|
||||||
@@ -1009,6 +1276,10 @@ snapshots:
|
|||||||
|
|
||||||
fifo@2.4.1: {}
|
fifo@2.4.1: {}
|
||||||
|
|
||||||
|
fill-range@7.1.1:
|
||||||
|
dependencies:
|
||||||
|
to-regex-range: 5.0.1
|
||||||
|
|
||||||
flush-write-stream@2.0.0:
|
flush-write-stream@2.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
@@ -1030,8 +1301,12 @@ snapshots:
|
|||||||
|
|
||||||
get-caller-file@2.0.5: {}
|
get-caller-file@2.0.5: {}
|
||||||
|
|
||||||
|
get-east-asian-width@1.2.0: {}
|
||||||
|
|
||||||
get-stream@6.0.1: {}
|
get-stream@6.0.1: {}
|
||||||
|
|
||||||
|
get-stream@8.0.1: {}
|
||||||
|
|
||||||
github-from-package@0.0.0: {}
|
github-from-package@0.0.0: {}
|
||||||
|
|
||||||
glob@7.2.3:
|
glob@7.2.3:
|
||||||
@@ -1055,6 +1330,10 @@ snapshots:
|
|||||||
|
|
||||||
human-signals@2.1.0: {}
|
human-signals@2.1.0: {}
|
||||||
|
|
||||||
|
human-signals@5.0.0: {}
|
||||||
|
|
||||||
|
husky@9.1.5: {}
|
||||||
|
|
||||||
ieee754@1.2.1: {}
|
ieee754@1.2.1: {}
|
||||||
|
|
||||||
imurmurhash@0.1.4: {}
|
imurmurhash@0.1.4: {}
|
||||||
@@ -1083,6 +1362,14 @@ snapshots:
|
|||||||
|
|
||||||
is-fullwidth-code-point@3.0.0: {}
|
is-fullwidth-code-point@3.0.0: {}
|
||||||
|
|
||||||
|
is-fullwidth-code-point@4.0.0: {}
|
||||||
|
|
||||||
|
is-fullwidth-code-point@5.0.0:
|
||||||
|
dependencies:
|
||||||
|
get-east-asian-width: 1.2.0
|
||||||
|
|
||||||
|
is-number@7.0.0: {}
|
||||||
|
|
||||||
is-promise@4.0.0: {}
|
is-promise@4.0.0: {}
|
||||||
|
|
||||||
is-relative@1.0.0:
|
is-relative@1.0.0:
|
||||||
@@ -1091,6 +1378,8 @@ snapshots:
|
|||||||
|
|
||||||
is-stream@2.0.1: {}
|
is-stream@2.0.1: {}
|
||||||
|
|
||||||
|
is-stream@3.0.0: {}
|
||||||
|
|
||||||
is-unc-path@1.0.0:
|
is-unc-path@1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
unc-path-regex: 0.1.2
|
unc-path-regex: 0.1.2
|
||||||
@@ -1118,14 +1407,57 @@ snapshots:
|
|||||||
|
|
||||||
lifecycle@1.0.4: {}
|
lifecycle@1.0.4: {}
|
||||||
|
|
||||||
|
lilconfig@3.1.2: {}
|
||||||
|
|
||||||
|
lint-staged@15.2.10:
|
||||||
|
dependencies:
|
||||||
|
chalk: 5.3.0
|
||||||
|
commander: 12.1.0
|
||||||
|
debug: 4.3.7
|
||||||
|
execa: 8.0.1
|
||||||
|
lilconfig: 3.1.2
|
||||||
|
listr2: 8.2.4
|
||||||
|
micromatch: 4.0.8
|
||||||
|
pidtree: 0.6.0
|
||||||
|
string-argv: 0.3.2
|
||||||
|
yaml: 2.5.1
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- supports-color
|
||||||
|
|
||||||
|
listr2@8.2.4:
|
||||||
|
dependencies:
|
||||||
|
cli-truncate: 4.0.0
|
||||||
|
colorette: 2.0.20
|
||||||
|
eventemitter3: 5.0.1
|
||||||
|
log-update: 6.1.0
|
||||||
|
rfdc: 1.4.1
|
||||||
|
wrap-ansi: 9.0.0
|
||||||
|
|
||||||
lodash.compact@3.0.1: {}
|
lodash.compact@3.0.1: {}
|
||||||
|
|
||||||
lodash.throttle@4.1.1: {}
|
lodash.throttle@4.1.1: {}
|
||||||
|
|
||||||
|
log-update@6.1.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-escapes: 7.0.0
|
||||||
|
cli-cursor: 5.0.0
|
||||||
|
slice-ansi: 7.1.0
|
||||||
|
strip-ansi: 7.1.0
|
||||||
|
wrap-ansi: 9.0.0
|
||||||
|
|
||||||
merge-stream@2.0.0: {}
|
merge-stream@2.0.0: {}
|
||||||
|
|
||||||
|
micromatch@4.0.8:
|
||||||
|
dependencies:
|
||||||
|
braces: 3.0.3
|
||||||
|
picomatch: 2.3.1
|
||||||
|
|
||||||
mimic-fn@2.1.0: {}
|
mimic-fn@2.1.0: {}
|
||||||
|
|
||||||
|
mimic-fn@4.0.0: {}
|
||||||
|
|
||||||
|
mimic-function@5.0.1: {}
|
||||||
|
|
||||||
mimic-response@3.1.0: {}
|
mimic-response@3.1.0: {}
|
||||||
|
|
||||||
minimatch@3.1.2:
|
minimatch@3.1.2:
|
||||||
@@ -1148,6 +1480,12 @@ snapshots:
|
|||||||
core-js-pure: 3.37.1
|
core-js-pure: 3.37.1
|
||||||
nanoassert: 2.0.0
|
nanoassert: 2.0.0
|
||||||
|
|
||||||
|
mount-dmg@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
shell-escape: 0.2.0
|
||||||
|
|
||||||
|
ms@2.1.3: {}
|
||||||
|
|
||||||
nanoassert@2.0.0: {}
|
nanoassert@2.0.0: {}
|
||||||
|
|
||||||
napi-build-utils@1.0.2: {}
|
napi-build-utils@1.0.2: {}
|
||||||
@@ -1166,6 +1504,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
path-key: 3.1.1
|
path-key: 3.1.1
|
||||||
|
|
||||||
|
npm-run-path@5.3.0:
|
||||||
|
dependencies:
|
||||||
|
path-key: 4.0.0
|
||||||
|
|
||||||
once@1.4.0:
|
once@1.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
wrappy: 1.0.2
|
wrappy: 1.0.2
|
||||||
@@ -1174,14 +1516,26 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-fn: 2.1.0
|
mimic-fn: 2.1.0
|
||||||
|
|
||||||
|
onetime@6.0.0:
|
||||||
|
dependencies:
|
||||||
|
mimic-fn: 4.0.0
|
||||||
|
|
||||||
|
onetime@7.0.0:
|
||||||
|
dependencies:
|
||||||
|
mimic-function: 5.0.1
|
||||||
|
|
||||||
os-shim@0.1.3: {}
|
os-shim@0.1.3: {}
|
||||||
|
|
||||||
path-is-absolute@1.0.1: {}
|
path-is-absolute@1.0.1: {}
|
||||||
|
|
||||||
path-key@3.1.1: {}
|
path-key@3.1.1: {}
|
||||||
|
|
||||||
|
path-key@4.0.0: {}
|
||||||
|
|
||||||
picomatch@2.3.1: {}
|
picomatch@2.3.1: {}
|
||||||
|
|
||||||
|
pidtree@0.6.0: {}
|
||||||
|
|
||||||
png-to-ico@2.1.8:
|
png-to-ico@2.1.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 17.0.45
|
'@types/node': 17.0.45
|
||||||
@@ -1205,6 +1559,8 @@ snapshots:
|
|||||||
tar-fs: 2.1.1
|
tar-fs: 2.1.1
|
||||||
tunnel-agent: 0.6.0
|
tunnel-agent: 0.6.0
|
||||||
|
|
||||||
|
prettier@3.3.3: {}
|
||||||
|
|
||||||
process-nextick-args@2.0.1: {}
|
process-nextick-args@2.0.1: {}
|
||||||
|
|
||||||
progress-stream@2.0.0:
|
progress-stream@2.0.0:
|
||||||
@@ -1260,6 +1616,13 @@ snapshots:
|
|||||||
|
|
||||||
resolve-from@2.0.0: {}
|
resolve-from@2.0.0: {}
|
||||||
|
|
||||||
|
restore-cursor@5.1.0:
|
||||||
|
dependencies:
|
||||||
|
onetime: 7.0.0
|
||||||
|
signal-exit: 4.1.0
|
||||||
|
|
||||||
|
rfdc@1.4.1: {}
|
||||||
|
|
||||||
rimraf@2.7.1:
|
rimraf@2.7.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
glob: 7.2.3
|
glob: 7.2.3
|
||||||
@@ -1291,12 +1654,16 @@ snapshots:
|
|||||||
|
|
||||||
shebang-regex@3.0.0: {}
|
shebang-regex@3.0.0: {}
|
||||||
|
|
||||||
|
shell-escape@0.2.0: {}
|
||||||
|
|
||||||
short-hash@1.0.0:
|
short-hash@1.0.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
hash-string: 1.0.0
|
hash-string: 1.0.0
|
||||||
|
|
||||||
signal-exit@3.0.7: {}
|
signal-exit@3.0.7: {}
|
||||||
|
|
||||||
|
signal-exit@4.1.0: {}
|
||||||
|
|
||||||
simple-concat@1.0.1: {}
|
simple-concat@1.0.1: {}
|
||||||
|
|
||||||
simple-get@4.0.1:
|
simple-get@4.0.1:
|
||||||
@@ -1311,6 +1678,16 @@ snapshots:
|
|||||||
|
|
||||||
sisteransi@1.0.5: {}
|
sisteransi@1.0.5: {}
|
||||||
|
|
||||||
|
slice-ansi@5.0.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 6.2.1
|
||||||
|
is-fullwidth-code-point: 4.0.0
|
||||||
|
|
||||||
|
slice-ansi@7.1.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 6.2.1
|
||||||
|
is-fullwidth-code-point: 5.0.0
|
||||||
|
|
||||||
speedometer@1.0.0: {}
|
speedometer@1.0.0: {}
|
||||||
|
|
||||||
sprintf-js@1.0.3: {}
|
sprintf-js@1.0.3: {}
|
||||||
@@ -1323,12 +1700,20 @@ snapshots:
|
|||||||
|
|
||||||
stream-shift@1.0.3: {}
|
stream-shift@1.0.3: {}
|
||||||
|
|
||||||
|
string-argv@0.3.2: {}
|
||||||
|
|
||||||
string-width@4.2.3:
|
string-width@4.2.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
emoji-regex: 8.0.0
|
emoji-regex: 8.0.0
|
||||||
is-fullwidth-code-point: 3.0.0
|
is-fullwidth-code-point: 3.0.0
|
||||||
strip-ansi: 6.0.1
|
strip-ansi: 6.0.1
|
||||||
|
|
||||||
|
string-width@7.2.0:
|
||||||
|
dependencies:
|
||||||
|
emoji-regex: 10.4.0
|
||||||
|
get-east-asian-width: 1.2.0
|
||||||
|
strip-ansi: 7.1.0
|
||||||
|
|
||||||
string_decoder@1.1.1:
|
string_decoder@1.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer: 5.1.2
|
safe-buffer: 5.1.2
|
||||||
@@ -1341,8 +1726,14 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
ansi-regex: 5.0.1
|
ansi-regex: 5.0.1
|
||||||
|
|
||||||
|
strip-ansi@7.1.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-regex: 6.0.1
|
||||||
|
|
||||||
strip-final-newline@2.0.0: {}
|
strip-final-newline@2.0.0: {}
|
||||||
|
|
||||||
|
strip-final-newline@3.0.0: {}
|
||||||
|
|
||||||
strip-json-comments@2.0.1: {}
|
strip-json-comments@2.0.1: {}
|
||||||
|
|
||||||
supports-color@7.2.0:
|
supports-color@7.2.0:
|
||||||
@@ -1402,6 +1793,10 @@ snapshots:
|
|||||||
globalyzer: 0.1.0
|
globalyzer: 0.1.0
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
|
|
||||||
|
to-regex-range@5.0.1:
|
||||||
|
dependencies:
|
||||||
|
is-number: 7.0.0
|
||||||
|
|
||||||
to-utf8@0.0.1: {}
|
to-utf8@0.0.1: {}
|
||||||
|
|
||||||
tunnel-agent@0.6.0:
|
tunnel-agent@0.6.0:
|
||||||
@@ -1423,6 +1818,12 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
isexe: 2.0.0
|
isexe: 2.0.0
|
||||||
|
|
||||||
|
wrap-ansi@9.0.0:
|
||||||
|
dependencies:
|
||||||
|
ansi-styles: 6.2.1
|
||||||
|
string-width: 7.2.0
|
||||||
|
strip-ansi: 7.1.0
|
||||||
|
|
||||||
wrappy@1.0.2: {}
|
wrappy@1.0.2: {}
|
||||||
|
|
||||||
xmlbuilder2@3.1.1:
|
xmlbuilder2@3.1.1:
|
||||||
@@ -1434,6 +1835,8 @@ snapshots:
|
|||||||
|
|
||||||
xtend@4.0.2: {}
|
xtend@4.0.2: {}
|
||||||
|
|
||||||
|
yaml@2.5.1: {}
|
||||||
|
|
||||||
zip-iterator@1.0.1:
|
zip-iterator@1.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer-v6-polyfill: 1.0.5
|
buffer-v6-polyfill: 1.0.5
|
||||||
|
18
scripts/copy-language-pack.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
browser_locales=engine/browser/locales
|
||||||
|
|
||||||
|
copy_browser_locales() {
|
||||||
|
langId=$1
|
||||||
|
mkdir -p $browser_locales/$langId
|
||||||
|
if [ "$langId" = "en-US" ]; then
|
||||||
|
find $browser_locales/$langId -type f -name "zen*" -delete
|
||||||
|
rsync -av --exclude=.git ./l10n/en-US/browser/ $browser_locales/$langId/
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
rm -rf $browser_locales/$langId/
|
||||||
|
# TODO: Copy the rest of the l10n directories to their respective locations
|
||||||
|
rsync -av --exclude=.git ./l10n/$langId/ $browser_locales/$langId/
|
||||||
|
}
|
||||||
|
|
||||||
|
LANG=$1
|
||||||
|
echo "Copying language pack for $LANG"
|
||||||
|
copy_browser_locales $LANG
|
51
scripts/download-language-packs.sh
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
|
||||||
|
git config --global init.defaultBranch main
|
||||||
|
git config --global fetch.prune true
|
||||||
|
|
||||||
|
cd $CURRENT_DIR
|
||||||
|
|
||||||
|
cd ./l10n
|
||||||
|
git clone https://github.com/mozilla-l10n/firefox-l10n
|
||||||
|
cd $CURRENT_DIR
|
||||||
|
|
||||||
|
update_language() {
|
||||||
|
langId=$1
|
||||||
|
cd ./l10n
|
||||||
|
cd $langId
|
||||||
|
|
||||||
|
echo "Updating $langId"
|
||||||
|
# move the contents from ../firefox-l10n/$langId to ./l10n/$langId
|
||||||
|
rsync -av --progress ../firefox-l10n/$langId/ . --exclude .git
|
||||||
|
|
||||||
|
cd $CURRENT_DIR
|
||||||
|
}
|
||||||
|
|
||||||
|
export PATH=~/tools/git-cinnabar:$PATH
|
||||||
|
for lang in $(cat ./l10n/supported-languages); do
|
||||||
|
update_language $lang
|
||||||
|
done
|
||||||
|
cd $CURRENT_DIR
|
||||||
|
|
||||||
|
# Move all the files to the correct location
|
||||||
|
|
||||||
|
sh scripts/copy-language-pack.sh en-US
|
||||||
|
for lang in $(cat ./l10n/supported-languages); do
|
||||||
|
sh scripts/copy-language-pack.sh $lang
|
||||||
|
done
|
||||||
|
|
||||||
|
wait
|
||||||
|
|
||||||
|
echo "Cleaning up"
|
||||||
|
rm -rf ~/tools
|
||||||
|
rm -rf ~/.git-cinnabar
|
||||||
|
|
||||||
|
for lang in $(cat ./l10n/supported-languages); do
|
||||||
|
# remove every file except if it starts with "zen"
|
||||||
|
find ./l10n/$lang -type f -not -name "zen*" -delete
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -rf ./l10n/firefox-l10n
|
2
scripts/update-en-US-packs.sh
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
sh ./scripts/copy-language-pack.sh en-US
|
@@ -21,20 +21,23 @@
|
|||||||
* SECTION: FASTFOX *
|
* SECTION: FASTFOX *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
/** GENERAL ***/
|
/** GENERAL ***/
|
||||||
pref("content.notify.interval", 100000);
|
pref("content.notify.interval", 100000); // (.10s); alt=500000 (.50s)
|
||||||
|
|
||||||
/** GFX ***/
|
/** GFX ***/
|
||||||
pref("gfx.canvas.accelerated.cache-items", 4096);
|
pref("gfx.canvas.accelerated.cache-items", 32768);
|
||||||
pref("gfx.canvas.accelerated.cache-size", 512);
|
pref("gfx.canvas.accelerated.cache-size", 4096);
|
||||||
pref("gfx.content.skia-font-cache-size", 20);
|
pref("gfx.content.skia-font-cache-size", 80);
|
||||||
|
|
||||||
/** DISK CACHE ***/
|
/** DISK CACHE ***/
|
||||||
pref("browser.cache.jsbc_compression_level", 3);
|
pref("browser.cache.jsbc_compression_level", 3);
|
||||||
|
|
||||||
/** MEDIA CACHE ***/
|
/** MEDIA CACHE ***/
|
||||||
pref("media.memory_cache_max_size", 65536);
|
pref("media.memory_cache_max_size", 1048576);
|
||||||
pref("media.cache_readahead_limit", 7200);
|
pref("media.cache_readahead_limit", 9000);
|
||||||
pref("media.cache_resume_threshold", 3600);
|
pref("media.cache_resume_threshold", 3600);
|
||||||
|
pref("media.memory_caches_combined_limit_kb", 2560000);
|
||||||
|
|
||||||
|
pref("browser.cache.memory.max_entry_size", 0);
|
||||||
|
|
||||||
/** IMAGE CACHE ***/
|
/** IMAGE CACHE ***/
|
||||||
pref("image.mem.decode_bytes_at_a_time", 32768);
|
pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||||
@@ -45,14 +48,13 @@ pref("network.http.max-persistent-connections-per-server", 10);
|
|||||||
pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
||||||
pref("network.http.pacing.requests.enabled", false);
|
pref("network.http.pacing.requests.enabled", false);
|
||||||
pref("network.dnsCacheExpiration", 3600);
|
pref("network.dnsCacheExpiration", 3600);
|
||||||
pref("network.ssl_tokens_cache_capacity", 10240);
|
pref("network.http.max-persistent-connections-per-proxy", 48); // default=32
|
||||||
|
pref("network.websocket.max-connections", 400); // default=200
|
||||||
|
pref("network.ssl_tokens_cache_capacity", 32768);
|
||||||
|
|
||||||
/** SPECULATIVE LOADING ***/
|
/** MIXED CONTENT + CROSS-SITE ***/
|
||||||
pref("network.dns.disablePrefetch", true);
|
pref("pdfjs.enableScripting", false);
|
||||||
pref("network.dns.disablePrefetchFromHTTPS", true);
|
pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||||
pref("network.prefetch-next", false);
|
|
||||||
pref("network.predictor.enabled", false);
|
|
||||||
pref("network.predictor.enable-prefetch", false);
|
|
||||||
|
|
||||||
/** EXPERIMENTAL ***/
|
/** EXPERIMENTAL ***/
|
||||||
pref("layout.css.grid-template-masonry-value.enabled", true);
|
pref("layout.css.grid-template-masonry-value.enabled", true);
|
||||||
@@ -70,7 +72,6 @@ pref("network.cookie.sameSite.noneRequiresSecure", true);
|
|||||||
pref("browser.download.start_downloads_in_tmp_dir", true);
|
pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||||
pref("browser.helperApps.deleteTempFileOnExit", true);
|
pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||||
pref("browser.uitour.enabled", false);
|
pref("browser.uitour.enabled", false);
|
||||||
pref("privacy.globalprivacycontrol.enabled", true);
|
|
||||||
|
|
||||||
/** OCSP & CERTS / HPKP ***/
|
/** OCSP & CERTS / HPKP ***/
|
||||||
pref("security.OCSP.enabled", 0);
|
pref("security.OCSP.enabled", 0);
|
||||||
@@ -84,7 +85,6 @@ pref("security.tls.enable_0rtt_data", false);
|
|||||||
|
|
||||||
/** DISK AVOIDANCE ***/
|
/** DISK AVOIDANCE ***/
|
||||||
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||||
pref("browser.sessionstore.interval", 60000);
|
|
||||||
|
|
||||||
/** SHUTDOWN & SANITIZING ***/
|
/** SHUTDOWN & SANITIZING ***/
|
||||||
pref("privacy.history.custom", true);
|
pref("privacy.history.custom", true);
|
||||||
@@ -106,10 +106,6 @@ pref("network.IDN_show_punycode", true);
|
|||||||
/** CONTAINERS ***/
|
/** CONTAINERS ***/
|
||||||
pref("privacy.userContext.ui.enabled", true);
|
pref("privacy.userContext.ui.enabled", true);
|
||||||
|
|
||||||
/** WEBRTC ***/
|
|
||||||
pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
|
|
||||||
pref("media.peerconnection.ice.default_address_only", true);
|
|
||||||
|
|
||||||
/** SAFE BROWSING ***/
|
/** SAFE BROWSING ***/
|
||||||
pref("browser.safebrowsing.downloads.remote.enabled", false);
|
pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||||
|
|
||||||
@@ -120,27 +116,27 @@ pref("permissions.manager.defaultsUrl", "");
|
|||||||
pref("webchannel.allowObject.urlWhitelist", "");
|
pref("webchannel.allowObject.urlWhitelist", "");
|
||||||
|
|
||||||
/** TELEMETRY ***/
|
/** TELEMETRY ***/
|
||||||
pref("datareporting.policy.dataSubmissionEnabled", false);
|
pref("datareporting.policy.dataSubmissionEnabled", false, locked);
|
||||||
pref("datareporting.healthreport.uploadEnabled", false);
|
pref("datareporting.healthreport.uploadEnabled", false, locked);
|
||||||
pref("toolkit.telemetry.unified", false);
|
pref("toolkit.telemetry.unified", false, locked);
|
||||||
pref("toolkit.telemetry.enabled", false);
|
pref("toolkit.telemetry.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.server", "data:,");
|
pref("toolkit.telemetry.server", "data:,", locked);
|
||||||
pref("toolkit.telemetry.archive.enabled", false);
|
pref("toolkit.telemetry.archive.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.newProfilePing.enabled", false);
|
pref("toolkit.telemetry.newProfilePing.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.shutdownPingSender.enabled", false);
|
pref("toolkit.telemetry.shutdownPingSender.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.updatePing.enabled", false);
|
pref("toolkit.telemetry.updatePing.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.bhrPing.enabled", false);
|
pref("toolkit.telemetry.bhrPing.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.firstShutdownPing.enabled", false);
|
pref("toolkit.telemetry.firstShutdownPing.enabled", false, locked);
|
||||||
pref("toolkit.telemetry.coverage.opt-out", true);
|
pref("toolkit.telemetry.coverage.opt-out", true, locked);
|
||||||
pref("toolkit.coverage.opt-out", true);
|
pref("toolkit.coverage.opt-out", true, locked);
|
||||||
pref("toolkit.coverage.endpoint.base", "");
|
pref("toolkit.coverage.endpoint.base", "", locked);
|
||||||
pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
|
pref("browser.newtabpage.activity-stream.feeds.telemetry", false, locked);
|
||||||
pref("browser.newtabpage.activity-stream.telemetry", false);
|
pref("browser.newtabpage.activity-stream.telemetry", false, locked);
|
||||||
|
|
||||||
/** EXPERIMENTS ***/
|
/** EXPERIMENTS ***/
|
||||||
pref("app.shield.optoutstudies.enabled", false);
|
pref("app.shield.optoutstudies.enabled", false, locked);
|
||||||
pref("app.normandy.enabled", false);
|
pref("app.normandy.enabled", false, locked);
|
||||||
pref("app.normandy.api_url", "");
|
pref("app.normandy.api_url", "", locked);
|
||||||
|
|
||||||
/** CRASH REPORTS ***/
|
/** CRASH REPORTS ***/
|
||||||
pref("breakpad.reportURL", "");
|
pref("breakpad.reportURL", "");
|
||||||
@@ -157,7 +153,7 @@ pref("dom.private-attribution.submission.enabled", false);
|
|||||||
* SECTION: PESKYFOX *
|
* SECTION: PESKYFOX *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
/** MOZILLA UI ***/
|
/** MOZILLA UI ***/
|
||||||
pref("browser.privatebrowsing.vpnpromourl", "");
|
pref("browser.privatebrowsing.vpnpromourl", "", locked);
|
||||||
pref("extensions.getAddons.showPane", false);
|
pref("extensions.getAddons.showPane", false);
|
||||||
pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||||
pref("browser.discovery.enabled", false);
|
pref("browser.discovery.enabled", false);
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||||
index b8aa71126c2bb4521caf25f9caf845a8a429dc64..59cdc2e9998e802d6c79ff967eaa30088a3b7a21 100644
|
index a39a4f287ef843f7e0cdeac8320eeff81318116f..f84cdb85c249221522089667010d547cfab67819 100644
|
||||||
--- a/browser/app/profile/firefox.js
|
--- a/browser/app/profile/firefox.js
|
||||||
+++ b/browser/app/profile/firefox.js
|
+++ b/browser/app/profile/firefox.js
|
||||||
@@ -3110,3 +3110,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
@@ -3190,3 +3190,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||||
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
||||||
// Pref to enable extra logging for the content relevancy feature
|
// Pref to enable extra logging for the content relevancy feature
|
||||||
pref("toolkit.contentRelevancy.log", false);
|
pref("toolkit.contentRelevancy.log", false);
|
||||||
|
@@ -13,9 +13,15 @@ pref("browser.tabs.hoverPreview.enabled", true);
|
|||||||
pref("browser.tabs.cardPreview.delayMs", 100);
|
pref("browser.tabs.cardPreview.delayMs", 100);
|
||||||
|
|
||||||
#ifdef MOZ_UPDATE_CHANNEL
|
#ifdef MOZ_UPDATE_CHANNEL
|
||||||
pref("devtools.debugger.prompt-connection", false);
|
pref("devtools.debugger.prompt-connection", true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Dont download the multilingual dictionary
|
||||||
|
pref("intl.multilingual.downloadEnabled", false);
|
||||||
|
|
||||||
|
// Restore session on startup
|
||||||
|
pref("browser.startup.page", 3);
|
||||||
|
|
||||||
// Theme
|
// Theme
|
||||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||||
pref('browser.compactmode.show', true);
|
pref('browser.compactmode.show', true);
|
||||||
@@ -45,6 +51,8 @@ pref('pdfjs.enableHighlightEditor', true);
|
|||||||
pref('pdfjs.enableHighlightFloatingButton', true);
|
pref('pdfjs.enableHighlightFloatingButton', true);
|
||||||
|
|
||||||
pref("alerts.showFavicons", true);
|
pref("alerts.showFavicons", true);
|
||||||
|
|
||||||
|
pref("browser.tabs.loadBookmarksInTabs", true);
|
||||||
pref('browser.toolbars.bookmarks.visibility', 'never');
|
pref('browser.toolbars.bookmarks.visibility', 'never');
|
||||||
|
|
||||||
// Enable Do Not Track and GPC by default.
|
// Enable Do Not Track and GPC by default.
|
||||||
@@ -56,21 +64,43 @@ pref("browser.ping-centre.telemetry", false);
|
|||||||
pref("browser.attribution.enabled", false);
|
pref("browser.attribution.enabled", false);
|
||||||
pref("toolkit.telemetry.pioneer-new-studies-available", false);
|
pref("toolkit.telemetry.pioneer-new-studies-available", false);
|
||||||
|
|
||||||
|
pref("app.update.checkInstallTime.days", 6);
|
||||||
|
|
||||||
// CUSTOM ZEN PREFS
|
// CUSTOM ZEN PREFS
|
||||||
|
|
||||||
pref('zen.welcomeScreen.enabled', true);
|
pref('zen.welcomeScreen.enabled', true);
|
||||||
pref('zen.welcomeScreen.seen', false);
|
pref('zen.welcomeScreen.seen', false);
|
||||||
pref('zen.tabs.vertical', true);
|
pref('zen.tabs.vertical', true);
|
||||||
|
pref('zen.tabs.vertical.right-side', false);
|
||||||
pref('zen.theme.accent-color', "#aac7ff");
|
pref('zen.theme.accent-color', "#aac7ff");
|
||||||
|
pref('zen.theme.border-radius', 10); // In pixels
|
||||||
|
pref('zen.theme.content-element-separation', 4); // In pixels
|
||||||
pref('zen.theme.toolbar-themed', true);
|
pref('zen.theme.toolbar-themed', true);
|
||||||
pref('zen.theme.pill-button', false);
|
pref('zen.theme.pill-button', false);
|
||||||
pref('zen.theme.floating-urlbar', false);
|
|
||||||
pref('zen.view.compact', false);
|
pref('zen.view.compact', false);
|
||||||
pref('zen.view.compact.hide-toolbar', false);
|
pref('zen.view.compact.hide-toolbar', false);
|
||||||
|
|
||||||
|
pref('zen.theme.color-prefs.amoled', false);
|
||||||
|
pref('zen.theme.color-prefs.colorful', false);
|
||||||
|
|
||||||
|
pref('zen.view.compact.toolbar-flash-popup', true);
|
||||||
|
pref('zen.view.compact.toolbar-flash-popup.duration', 800);
|
||||||
|
|
||||||
|
pref('zen.view.sidebar-height-throttle', 500); // in ms
|
||||||
pref('zen.view.sidebar-expanded', false);
|
pref('zen.view.sidebar-expanded', false);
|
||||||
|
pref('zen.view.sidebar-expanded.on-hover', false);
|
||||||
pref('zen.view.sidebar-expanded.show-button', true);
|
pref('zen.view.sidebar-expanded.show-button', true);
|
||||||
pref('zen.view.sidebar-expanded.max-width', 400);
|
pref('zen.view.sidebar-expanded.max-width', 400);
|
||||||
|
|
||||||
|
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
|
||||||
|
|
||||||
|
pref('zen.keyboard.shortcuts.enabled', true);
|
||||||
|
pref('zen.keyboard.shortcuts', ""); // Empty string means default shortcuts
|
||||||
|
pref('zen.keyboard.shortcuts.disable-firefox', false);
|
||||||
|
pref('zen.tabs.dim-pending', true);
|
||||||
|
pref('zen.themes.updated-value-observer', false);
|
||||||
|
pref('zen.themes.tabs.legacy-location', false);
|
||||||
|
|
||||||
// Pref to enable the new profiles (TODO: Check this out!)
|
// Pref to enable the new profiles (TODO: Check this out!)
|
||||||
//pref("browser.profiles.enabled", true);
|
//pref("browser.profiles.enabled", true);
|
||||||
|
|
||||||
@@ -84,9 +114,12 @@ pref('zen.splitView.working', false);
|
|||||||
|
|
||||||
// Zen Workspaces
|
// Zen Workspaces
|
||||||
pref('zen.workspaces.enabled', true);
|
pref('zen.workspaces.enabled', true);
|
||||||
|
pref('zen.workspaces.hide-default-container-indicator', true);
|
||||||
|
pref('zen.workspaces.individual-pinned-tabs', true);
|
||||||
|
pref('zen.workspaces.icons', '["🌐", "📁", "📎", "📝", "📅", "📊"]');
|
||||||
|
|
||||||
// Zen Watermark
|
// Zen Watermark
|
||||||
pref('zen.watermark.enabled', true);
|
pref('zen.watermark.enabled', true, sticky);
|
||||||
|
|
||||||
// Smooth scrolling
|
// Smooth scrolling
|
||||||
pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
|
pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
|
||||||
@@ -94,14 +127,9 @@ pref('general.smoothScroll', true); // DEFAULT
|
|||||||
|
|
||||||
// Privacy
|
// Privacy
|
||||||
pref('dom.private-attribution.submission.enabled', false);
|
pref('dom.private-attribution.submission.enabled', false);
|
||||||
|
pref('dom.security.https_only_mode', true);
|
||||||
|
|
||||||
pref('media.eme.enabled', true);
|
pref('media.eme.enabled', true);
|
||||||
pref('webgl.disabled', false);
|
|
||||||
|
|
||||||
pref("app.update.url.manual", "https://www.zen-browser.app/download");
|
|
||||||
pref("app.update.url.details", "hhttps://www.zen-browser.app/download");
|
|
||||||
pref("app.releaseNotesURL", "https://www.zen-browser.app/release-notes");
|
|
||||||
pref("app.releaseNotesURL.aboutDialog", "https://www.zen-browser.app/release-notes");
|
|
||||||
|
|
||||||
// Enable importers for other browsers
|
// Enable importers for other browsers
|
||||||
pref('browser.migrate.vivaldi.enabled', true);
|
pref('browser.migrate.vivaldi.enabled', true);
|
||||||
@@ -114,4 +142,64 @@ pref('browser.migrate.opera.enabled', true);
|
|||||||
|
|
||||||
pref('xpinstall.signatures.required', false);
|
pref('xpinstall.signatures.required', false);
|
||||||
|
|
||||||
#include better-fox.js
|
// Experimental Zen Features
|
||||||
|
// Strategy to use for bytecode cache (Thanks https://github.com/gunir)
|
||||||
|
pref('dom.script_loader.bytecode_cache.strategy', 2);
|
||||||
|
|
||||||
|
// Enable private suggestions
|
||||||
|
pref('browser.search.suggest.enabled', true);
|
||||||
|
pref('browser.search.suggest.enabled.private', true);
|
||||||
|
|
||||||
|
pref("extensions.enabledScopes", 5); // [HIDDEN PREF]
|
||||||
|
|
||||||
|
// Enable JXL support
|
||||||
|
pref('image.jxl.enabled', true);
|
||||||
|
|
||||||
|
#if defined(XP_WIN)
|
||||||
|
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pref('browser.sessionstore.restore_pinned_tabs_on_demand', true);
|
||||||
|
|
||||||
|
// Enable experimental settings page (Usef for Zen Labs)
|
||||||
|
pref('browser.preferences.experimental', true);
|
||||||
|
|
||||||
|
#include better-fox.js
|
||||||
|
|
||||||
|
// Betterfox overrides (Stay below the include directive)
|
||||||
|
|
||||||
|
// Jang's personal speedups (Thanks to Jang for these!)
|
||||||
|
|
||||||
|
// Prefetching:
|
||||||
|
pref("network.dns.disablePrefetch", false);
|
||||||
|
pref("network.prefetch-next", true);
|
||||||
|
pref("network.predictor.enabled", true);
|
||||||
|
pref("network.dns.disablePrefetchFromHTTPS", false);
|
||||||
|
pref("network.predictor.enable-hover-on-ssl", true);
|
||||||
|
pref("network.http.speculative-parallel-limit", 10);
|
||||||
|
pref("network.http.rcwn.enabled", false);
|
||||||
|
|
||||||
|
// Enable Browser Toolbox, Ctrl+Shift+Alt+I for debugging and modifying UI
|
||||||
|
pref("devtools.debugger.remote-enabled", false);
|
||||||
|
pref("devtools.chrome.enabled", true);
|
||||||
|
|
||||||
|
// Disable firefox's revamp
|
||||||
|
pref("sidebar.revamp", false, locked);
|
||||||
|
pref("sidebar.verticalTabs", false, locked);
|
||||||
|
|
||||||
|
// Better Windows theming
|
||||||
|
pref("widget.non-native-theme.scrollbar.style", 2);
|
||||||
|
pref("widget.non-native-theme.use-theme-accent", true);
|
||||||
|
|
||||||
|
// Expose Letterboxing https://github.com/zen-browser/desktop/issues/475
|
||||||
|
pref("privacy.resistFingerprinting.letterboxing", false);
|
||||||
|
pref("privacy.resistFingerprinting.letterboxing.dimensions", "");
|
||||||
|
|
||||||
|
// Enable GPU by default
|
||||||
|
pref('gfx.webrender.all', true);
|
||||||
|
pref('layers.acceleration.force-enabled', true);
|
||||||
|
pref('media.ffmpeg.vaapi.enabled', true);
|
||||||
|
pref('media.ffmpeg.encoder.enabled', true);
|
||||||
|
|
||||||
|
pref("media.hardware-video-decoding.enabled", true);
|
||||||
|
pref("gfx.canvas.accelerated", true);
|
||||||
|
150
src/browser/base/content/ZenStartup.mjs
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
|
||||||
|
{
|
||||||
|
const lazy = {};
|
||||||
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
lazy,
|
||||||
|
"sidebarHeightThrottle",
|
||||||
|
"zen.view.sidebar-height-throttle",
|
||||||
|
500
|
||||||
|
);
|
||||||
|
var ZenStartup = {
|
||||||
|
init() {
|
||||||
|
this.openWatermark();
|
||||||
|
window.SessionStore.promiseInitialized.then(async () => {
|
||||||
|
this._changeSidebarLocation();
|
||||||
|
this._zenInitBrowserLayout();
|
||||||
|
this._focusSearchBar();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
_zenInitBrowserLayout() {
|
||||||
|
if (this.__hasInitBrowserLayout) return;
|
||||||
|
this.__hasInitBrowserLayout = true;
|
||||||
|
try {
|
||||||
|
console.info('ZenThemeModifier: init browser layout');
|
||||||
|
const kNavbarItems = ['nav-bar', 'PersonalToolbar'];
|
||||||
|
const kNewContainerId = 'zen-appcontent-navbar-container';
|
||||||
|
let newContainer = document.getElementById(kNewContainerId);
|
||||||
|
for (let id of kNavbarItems) {
|
||||||
|
const node = document.getElementById(id);
|
||||||
|
console.assert(node, 'Could not find node with id: ' + id);
|
||||||
|
if (!node) continue;
|
||||||
|
newContainer.appendChild(node);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix notification deck
|
||||||
|
document
|
||||||
|
.getElementById('zen-appcontent-navbar-container')
|
||||||
|
.appendChild(document.getElementById('tab-notification-deck-template'));
|
||||||
|
|
||||||
|
// Disable smooth scroll
|
||||||
|
gBrowser.tabContainer.arrowScrollbox.smoothScroll = false;
|
||||||
|
|
||||||
|
gZenVerticalTabsManager.init();
|
||||||
|
gZenCompactModeManager.init();
|
||||||
|
gZenKeyboardShortcuts.init();
|
||||||
|
|
||||||
|
function throttle(f, delay) {
|
||||||
|
let timer = 0;
|
||||||
|
return function (...args) {
|
||||||
|
clearTimeout(timer);
|
||||||
|
timer = setTimeout(() => f.apply(this, args), delay);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
new ResizeObserver(throttle(this._updateTabsToolbar.bind(this), lazy.sidebarHeightThrottle)).observe(document.getElementById('tabbrowser-tabs'));
|
||||||
|
} catch (e) {
|
||||||
|
console.error('ZenThemeModifier: Error initializing browser layout', e);
|
||||||
|
}
|
||||||
|
this.closeWatermark();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateTabsToolbar() {
|
||||||
|
// Set tabs max-height to the "toolbar-items" height
|
||||||
|
const toolbarItems = document.getElementById('tabbrowser-tabs');
|
||||||
|
const tabs = document.getElementById('tabbrowser-arrowscrollbox');
|
||||||
|
tabs.style.maxHeight = '0px'; // reset to 0
|
||||||
|
const toolbarRect = toolbarItems.getBoundingClientRect();
|
||||||
|
// -5 for the controls padding
|
||||||
|
let totalHeight = toolbarRect.height - 15;
|
||||||
|
// remove the height from other elements that aren't hidden
|
||||||
|
const otherElements = document.querySelectorAll('#tabbrowser-tabs > *:not([hidden="true"])');
|
||||||
|
for (let tab of otherElements) {
|
||||||
|
if (tabs === tab) continue;
|
||||||
|
totalHeight -= tab.getBoundingClientRect().height;
|
||||||
|
}
|
||||||
|
tabs.style.maxHeight = totalHeight + 'px';
|
||||||
|
//console.info('ZenThemeModifier: set tabs max-height to', totalHeight + 'px');
|
||||||
|
|
||||||
|
const allTabs = document.getElementById('alltabs-button');
|
||||||
|
allTabs.removeAttribute('hidden');
|
||||||
|
allTabs.removeAttribute('badged');
|
||||||
|
allTabs.setAttribute('class', 'toolbarbutton-1 zen-sidebar-action-button');
|
||||||
|
document.getElementById('zen-sidebar-icons-wrapper').prepend(
|
||||||
|
allTabs
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
openWatermark() {
|
||||||
|
if (!Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const watermark = window.MozXULElement.parseXULToFragment(`
|
||||||
|
<html:div id="zen-watermark">
|
||||||
|
<image src="chrome://branding/content/about-logo.png" />
|
||||||
|
</html:div>
|
||||||
|
`);
|
||||||
|
document.body.appendChild(watermark);
|
||||||
|
},
|
||||||
|
|
||||||
|
closeWatermark() {
|
||||||
|
const watermark = document.getElementById('zen-watermark');
|
||||||
|
if (watermark) {
|
||||||
|
watermark.setAttribute('hidden', 'true');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_changeSidebarLocation() {
|
||||||
|
const legacyLocation = Services.prefs.getBoolPref('zen.themes.tabs.legacy-location', false);
|
||||||
|
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
|
||||||
|
if (legacyLocation) {
|
||||||
|
kElementsToAppend.push('navigator-toolbox');
|
||||||
|
window.document.documentElement.setAttribute('zen-sidebar-legacy', 'true');
|
||||||
|
}
|
||||||
|
const wrapper = document.getElementById('zen-tabbox-wrapper');
|
||||||
|
const appWrapepr = document.getElementById('zen-sidebar-box-container');
|
||||||
|
for (let id of kElementsToAppend) {
|
||||||
|
const elem = document.getElementById(id);
|
||||||
|
if (elem) {
|
||||||
|
wrapper.prepend(elem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
appWrapepr.setAttribute('hidden', 'true');
|
||||||
|
|
||||||
|
const browser = document.getElementById('browser');
|
||||||
|
const toolbox = document.getElementById('navigator-toolbox');
|
||||||
|
if (!legacyLocation) {
|
||||||
|
browser.prepend(toolbox);
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove all styles except for the width, since we are xulstoring the complet style list
|
||||||
|
const width = toolbox.style.width;
|
||||||
|
toolbox.removeAttribute('style');
|
||||||
|
toolbox.style.width = width;
|
||||||
|
|
||||||
|
// Set a splitter to navigator-toolbox
|
||||||
|
const splitter = document.createXULElement('splitter');
|
||||||
|
splitter.setAttribute('id', 'zen-sidebar-splitter');
|
||||||
|
splitter.setAttribute('orient', 'horizontal');
|
||||||
|
splitter.setAttribute('resizebefore', 'sibling');
|
||||||
|
splitter.setAttribute('resizeafter', 'none');
|
||||||
|
toolbox.insertAdjacentElement('afterend', splitter);
|
||||||
|
},
|
||||||
|
|
||||||
|
_focusSearchBar() {
|
||||||
|
gURLBar.focus();
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
ZenStartup.init();
|
||||||
|
}
|
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
var gZenUIManager = {
|
var gZenUIManager = {
|
||||||
openAndChangeToTab(url, options) {
|
openAndChangeToTab(url, options) {
|
||||||
if (window.ownerGlobal.parent) {
|
if (window.ownerGlobal.parent) {
|
||||||
@@ -12,27 +11,78 @@ var gZenUIManager = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
generateUuidv4() {
|
generateUuidv4() {
|
||||||
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
|
return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
|
||||||
(+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
|
(+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))).toString(16)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
toogleBookmarksSidebar() {
|
toogleBookmarksSidebar() {
|
||||||
const button = document.getElementById('zen-bookmark-button');
|
const button = document.getElementById('zen-bookmark-button');
|
||||||
SidebarController.toggle('viewBookmarksSidebar', button);
|
SidebarController.toggle('viewBookmarksSidebar', button);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
createValidXULText(text) {
|
||||||
|
return text.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
var gZenVerticalTabsManager = {
|
var gZenVerticalTabsManager = {
|
||||||
init() {
|
init() {
|
||||||
//Services.prefs.addObserver('zen.view.compact', this._updateEvent.bind(this));
|
var updateEvent = this._updateEvent.bind(this);
|
||||||
Services.prefs.addObserver('zen.view.sidebar-expanded', this._updateEvent.bind(this));
|
Services.prefs.addObserver('zen.view.sidebar-expanded', updateEvent);
|
||||||
Services.prefs.addObserver('zen.view.sidebar-expanded.max-width', this._updateEvent.bind(this));
|
Services.prefs.addObserver('zen.tabs.vertical.right-side', updateEvent);
|
||||||
this._updateMaxWidth();
|
Services.prefs.addObserver('zen.view.sidebar-expanded.max-width', updateEvent);
|
||||||
|
Services.prefs.addObserver('zen.view.sidebar-expanded.on-hover', updateEvent);
|
||||||
|
this._updateEvent();
|
||||||
|
this.initRightSideOrderContextMenu();
|
||||||
|
},
|
||||||
|
|
||||||
|
get navigatorToolbox() {
|
||||||
|
if (this._navigatorToolbox) {
|
||||||
|
return this._navigatorToolbox;
|
||||||
|
}
|
||||||
|
this._navigatorToolbox = document.getElementById('navigator-toolbox');
|
||||||
|
return this._navigatorToolbox;
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateOnHoverVerticalTabs() {
|
||||||
|
let onHover = Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover');
|
||||||
|
let sidebar = this.navigatorToolbox;
|
||||||
|
if (onHover) {
|
||||||
|
sidebar.setAttribute('zen-user-hover', 'true');
|
||||||
|
} else {
|
||||||
|
sidebar.removeAttribute('zen-user-hover');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
initRightSideOrderContextMenu() {
|
||||||
|
const kConfigKey = 'zen.tabs.vertical.right-side';
|
||||||
|
const fragment = window.MozXULElement.parseXULToFragment(`
|
||||||
|
<menuitem id="zen-toolbar-context-tabs-right"
|
||||||
|
type="checkbox"
|
||||||
|
${Services.prefs.getBoolPref(kConfigKey) ? 'checked="true"' : ''}
|
||||||
|
data-lazy-l10n-id="zen-toolbar-context-tabs-right"/>
|
||||||
|
`);
|
||||||
|
fragment.getElementById('zen-toolbar-context-tabs-right').addEventListener('click', () => {
|
||||||
|
let rightSide = Services.prefs.getBoolPref(kConfigKey);
|
||||||
|
Services.prefs.setBoolPref(kConfigKey, !rightSide);
|
||||||
|
});
|
||||||
|
document.getElementById('viewToolbarsMenuSeparator').before(fragment);
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateEvent() {
|
_updateEvent() {
|
||||||
this._updateMaxWidth();
|
this._updateMaxWidth();
|
||||||
|
if (Services.prefs.getBoolPref('zen.view.sidebar-expanded')) {
|
||||||
|
this.navigatorToolbox.setAttribute('zen-expanded', 'true');
|
||||||
|
} else {
|
||||||
|
this.navigatorToolbox.removeAttribute('zen-expanded');
|
||||||
|
}
|
||||||
|
if (Services.prefs.getBoolPref('zen.tabs.vertical.right-side')) {
|
||||||
|
this.navigatorToolbox.setAttribute('zen-right-side', 'true');
|
||||||
|
} else {
|
||||||
|
this.navigatorToolbox.removeAttribute('zen-right-side');
|
||||||
|
}
|
||||||
|
this._updateOnHoverVerticalTabs();
|
||||||
},
|
},
|
||||||
|
|
||||||
_updateMaxWidth() {
|
_updateMaxWidth() {
|
||||||
@@ -73,5 +123,71 @@ var gZenVerticalTabsManager = {
|
|||||||
toggleExpand() {
|
toggleExpand() {
|
||||||
let expanded = !this.expanded;
|
let expanded = !this.expanded;
|
||||||
Services.prefs.setBoolPref('zen.view.sidebar-expanded', expanded);
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded', expanded);
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', false);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var gZenCompactModeManager = {
|
||||||
|
_flashSidebarTimeout: null,
|
||||||
|
|
||||||
|
init() {
|
||||||
|
Services.prefs.addObserver('zen.view.compact', this._updateEvent.bind(this));
|
||||||
|
Services.prefs.addObserver('zen.view.compact.toolbar-flash-popup.duration', this._updatedSidebarFlashDuration.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
get prefefence() {
|
||||||
|
return Services.prefs.getBoolPref('zen.view.compact');
|
||||||
|
},
|
||||||
|
|
||||||
|
set preference(value) {
|
||||||
|
Services.prefs.setBoolPref('zen.view.compact', value);
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateEvent() {
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', false);
|
||||||
|
},
|
||||||
|
|
||||||
|
toggle() {
|
||||||
|
this.preference = !this.prefefence;
|
||||||
|
},
|
||||||
|
|
||||||
|
_updatedSidebarFlashDuration() {
|
||||||
|
this._flashSidebarDuration = Services.prefs.getIntPref('zen.view.compact.toolbar-flash-popup.duration');
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleSidebar() {
|
||||||
|
let sidebar = document.getElementById('navigator-toolbox');
|
||||||
|
sidebar.toggleAttribute('zen-user-show');
|
||||||
|
},
|
||||||
|
|
||||||
|
get flashSidebarDuration() {
|
||||||
|
if (this._flashSidebarDuration) {
|
||||||
|
return this._flashSidebarDuration;
|
||||||
|
}
|
||||||
|
return Services.prefs.getIntPref('zen.view.compact.toolbar-flash-popup.duration');
|
||||||
|
},
|
||||||
|
|
||||||
|
flashSidebar() {
|
||||||
|
let sidebar = document.getElementById('navigator-toolbox');
|
||||||
|
let tabPanels = document.getElementById('tabbrowser-tabpanels');
|
||||||
|
if (sidebar.matches(':hover') || tabPanels.matches("[zen-split-view='true']")) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (this._flashSidebarTimeout) {
|
||||||
|
clearTimeout(this._flashSidebarTimeout);
|
||||||
|
} else {
|
||||||
|
window.requestAnimationFrame(() => sidebar.setAttribute('flash-popup', ''));
|
||||||
|
}
|
||||||
|
this._flashSidebarTimeout = setTimeout(() => {
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
sidebar.removeAttribute('flash-popup');
|
||||||
|
this._flashSidebarTimeout = null;
|
||||||
|
});
|
||||||
|
}, this.flashSidebarDuration);
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleToolbar() {
|
||||||
|
let toolbar = document.getElementById('zen-appcontent-navbar-container');
|
||||||
|
toolbar.toggleAttribute('zen-user-show');
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
||||||
index 55de24241514d11f6a174dd97ca37c8a4a99b8af..1459c91ff11429788e103d385f1598b6275592c8 100644
|
index 1e5c0f1c59175ec4a39938974c4a7a5c6355439f..ac9fe4b792c12a1aecba1fbbc941da9be6a53ce4 100644
|
||||||
--- a/browser/base/content/aboutDialog.xhtml
|
--- a/browser/base/content/aboutDialog.xhtml
|
||||||
+++ b/browser/base/content/aboutDialog.xhtml
|
+++ b/browser/base/content/aboutDialog.xhtml
|
||||||
@@ -36,6 +36,7 @@
|
@@ -36,6 +36,7 @@
|
||||||
@@ -10,7 +10,7 @@ index 55de24241514d11f6a174dd97ca37c8a4a99b8af..1459c91ff11429788e103d385f1598b6
|
|||||||
</linkset>
|
</linkset>
|
||||||
|
|
||||||
<html:div id="aboutDialogContainer">
|
<html:div id="aboutDialogContainer">
|
||||||
@@ -134,13 +135,15 @@
|
@@ -130,13 +131,15 @@
|
||||||
</description>
|
</description>
|
||||||
</vbox>
|
</vbox>
|
||||||
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
||||||
@@ -27,3 +27,12 @@ index 55de24241514d11f6a174dd97ca37c8a4a99b8af..1459c91ff11429788e103d385f1598b6
|
|||||||
</vbox>
|
</vbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@@ -144,7 +147,7 @@
|
||||||
|
<hbox pack="center">
|
||||||
|
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:license" data-l10n-id="bottomLinks-license"/>
|
||||||
|
<label is="text-link" class="bottom-link" useoriginprincipal="true" href="about:rights" data-l10n-id="bottomLinks-rights"/>
|
||||||
|
- <label is="text-link" class="bottom-link" href="https://www.mozilla.org/privacy/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-id="bottomLinks-privacy"/>
|
||||||
|
+ <label is="text-link" class="bottom-link" href="https://www.zen-browser.app/privacy-policy/" data-l10n-id="bottomLinks-privacy"/>
|
||||||
|
</hbox>
|
||||||
|
<description id="trademark" data-l10n-id="trademarkInfo"></description>
|
||||||
|
</vbox>
|
||||||
|
@@ -1,12 +1,13 @@
|
|||||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||||
index a79a9734619f89639c15087fe28e9615354a7209..edaef604d33d76b570571e1bbb2ebc590e045d87 100644
|
index f8d49ac2a3a62f389ea44b07a26fcb102abc0b24..c29415e10c776ebc435f33e55f8afb71f0dcf22a 100644
|
||||||
--- a/browser/base/content/browser-init.js
|
--- a/browser/base/content/browser-init.js
|
||||||
+++ b/browser/base/content/browser-init.js
|
+++ b/browser/base/content/browser-init.js
|
||||||
@@ -237,6 +237,9 @@ var gBrowserInit = {
|
@@ -237,6 +237,10 @@ var gBrowserInit = {
|
||||||
gPrivateBrowsingUI.init();
|
gPrivateBrowsingUI.init();
|
||||||
BrowserSearch.init();
|
BrowserSearch.init();
|
||||||
BrowserPageActions.init();
|
BrowserPageActions.init();
|
||||||
+
|
+
|
||||||
|
+ Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", window);
|
||||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||||
+
|
+
|
||||||
if (gToolbarKeyNavEnabled) {
|
if (gToolbarKeyNavEnabled) {
|
||||||
|
@@ -1,32 +0,0 @@
|
|||||||
diff --git a/browser/base/content/browser-siteProtections.js b/browser/base/content/browser-siteProtections.js
|
|
||||||
index 5364aa74cd938141e85e3a3333e8d1fa58ea3ae4..5cd1748a883b19caa2977c1047d51b9551686bf4 100644
|
|
||||||
--- a/browser/base/content/browser-siteProtections.js
|
|
||||||
+++ b/browser/base/content/browser-siteProtections.js
|
|
||||||
@@ -1904,9 +1904,14 @@ var gProtectionsHandler = {
|
|
||||||
// the information contained there would mostly be broken and/or
|
|
||||||
// irrelevant anyway.
|
|
||||||
this._trackingProtectionIconContainer.hidden = true;
|
|
||||||
+ // ZEN: We make a clear distinction between native UI and websites for security reasons.
|
|
||||||
+ // we can remove the separator for websites that dont need it, like "about:*" pages, where
|
|
||||||
+ // they are safe to use.
|
|
||||||
+ this._nativeSeparatorForWebsitesContainer.hidden = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this._trackingProtectionIconContainer.hidden = false;
|
|
||||||
+ this._nativeSeparatorForWebsitesContainer.hidden = false;
|
|
||||||
|
|
||||||
// Check whether the user has added an exception for this site.
|
|
||||||
this.hasException = ContentBlockingAllowList.includes(
|
|
||||||
@@ -2882,4 +2887,12 @@ var gProtectionsHandler = {
|
|
||||||
|
|
||||||
return messageEl;
|
|
||||||
},
|
|
||||||
+
|
|
||||||
+ get _nativeSeparatorForWebsitesContainer() {
|
|
||||||
+ delete this._nativeSeparatorForWebsitesContainer;
|
|
||||||
+ return (this._nativeSeparatorForWebsitesContainer = document.getElementById(
|
|
||||||
+ "zen-website-and-native-separator"
|
|
||||||
+ ));
|
|
||||||
+ },
|
|
||||||
+
|
|
||||||
};
|
|
@@ -1,17 +1,17 @@
|
|||||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||||
index 3063370347db9e2812ad30205e585c849e44c91e..be74d9e624b8220cb9bd009bae31fb513c4ec73f 100644
|
index 481ebbee437250c71e9bd10c4fb6fc0c31314925..3bb046a4635fad831cc447e29516ee5ed407a3f2 100644
|
||||||
--- a/browser/base/content/browser.xhtml
|
--- a/browser/base/content/browser.xhtml
|
||||||
+++ b/browser/base/content/browser.xhtml
|
+++ b/browser/base/content/browser.xhtml
|
||||||
@@ -139,6 +139,8 @@
|
@@ -138,6 +138,8 @@
|
||||||
window.addEventListener("DOMContentLoaded",
|
window.addEventListener("DOMContentLoaded",
|
||||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
||||||
</script>
|
</script>
|
||||||
+#include zen-locales.inc.xhtml
|
+#include zen-locales.inc.xhtml
|
||||||
+#include zen-scripts.inc.xhtml
|
+#include zen-assets.inc.xhtml
|
||||||
</head>
|
</head>
|
||||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||||
@@ -160,9 +162,12 @@
|
@@ -159,9 +161,12 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
@@ -27,10 +27,3 @@ index 3063370347db9e2812ad30205e585c849e44c91e..be74d9e624b8220cb9bd009bae31fb51
|
|||||||
|
|
||||||
<html:template id="customizationPanel">
|
<html:template id="customizationPanel">
|
||||||
<box id="customization-container" flex="1" hidden="true"><![CDATA[
|
<box id="customization-container" flex="1" hidden="true"><![CDATA[
|
||||||
@@ -176,5 +181,6 @@
|
|
||||||
|
|
||||||
<!-- Put it at the very end to make sure it's not covered by anything. -->
|
|
||||||
<html:div id="fullscr-toggler" hidden="hidden"/>
|
|
||||||
+#include zen-watermark.inc.xhtml
|
|
||||||
</html:body>
|
|
||||||
</html>
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
index 390a1300a1213af2b411ba09c67e3c25750ee6c3..a7ab07f8e8a0c5f91a6c12eb5d27c56edbd7405c 100644
|
index 18b91c95b88d11ddb257de03f12bc3e4cc75a96a..f117cfa7c9d1f9eb537cebbef42a9d2d945d53ac 100644
|
||||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
@@ -2,7 +2,7 @@
|
@@ -2,7 +2,7 @@
|
||||||
@@ -20,27 +20,29 @@ index 390a1300a1213af2b411ba09c67e3c25750ee6c3..a7ab07f8e8a0c5f91a6c12eb5d27c56e
|
|||||||
<toolbartabstop/>
|
<toolbartabstop/>
|
||||||
<hbox id="TabsToolbar-customization-target" flex="1">
|
<hbox id="TabsToolbar-customization-target" flex="1">
|
||||||
<toolbarbutton id="firefox-view-button"
|
<toolbarbutton id="firefox-view-button"
|
||||||
+ hidden="true"
|
+ hidden="true"
|
||||||
class="toolbarbutton-1 chromeclass-toolbar-additional"
|
class="toolbarbutton-1 chromeclass-toolbar-additional"
|
||||||
data-l10n-id="toolbar-button-firefox-view-2"
|
data-l10n-id="toolbar-button-firefox-view-2"
|
||||||
role="button"
|
role="button"
|
||||||
@@ -50,13 +51,14 @@
|
@@ -50,7 +51,7 @@
|
||||||
aria-multiselectable="true"
|
aria-multiselectable="true"
|
||||||
setfocus="false"
|
setfocus="false"
|
||||||
tooltip="tabbrowser-tab-tooltip"
|
tooltip="tabbrowser-tab-tooltip"
|
||||||
|
- orient="horizontal"
|
||||||
+ orient="vertical"
|
+ orient="vertical"
|
||||||
stopwatchid="FX_TAB_CLICK_MS">
|
stopwatchid="FX_TAB_CLICK_MS">
|
||||||
<hbox class="tab-drop-indicator" hidden="true"/>
|
<hbox class="tab-drop-indicator" hidden="true"/>
|
||||||
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
||||||
# significantly, there is an optimization in
|
@@ -66,7 +67,7 @@
|
||||||
# DisplayPortUtils::MaybeCreateDisplayPortInFirstScrollFrameEncountered based
|
tooltip="dynamic-shortcut-tooltip"
|
||||||
# the current structure that we may want to revisit.
|
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||||
|
</html:div>
|
||||||
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
||||||
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
||||||
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
|
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
|
||||||
<hbox id="tabbrowser-arrowscrollbox-periphery">
|
<hbox id="tabbrowser-arrowscrollbox-periphery">
|
||||||
<toolbartabstop/>
|
<toolbartabstop/>
|
||||||
@@ -103,9 +105,10 @@
|
@@ -113,9 +114,10 @@
|
||||||
<toolbarbutton id="content-analysis-indicator"
|
<toolbarbutton id="content-analysis-indicator"
|
||||||
oncommand="ContentAnalysis.showPanel(this, PanelUI);"
|
oncommand="ContentAnalysis.showPanel(this, PanelUI);"
|
||||||
class="toolbarbutton-1 content-analysis-indicator-icon"/>
|
class="toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||||
@@ -53,7 +55,7 @@ index 390a1300a1213af2b411ba09c67e3c25750ee6c3..a7ab07f8e8a0c5f91a6c12eb5d27c56e
|
|||||||
</toolbar>
|
</toolbar>
|
||||||
|
|
||||||
</vbox>
|
</vbox>
|
||||||
@@ -450,6 +453,7 @@
|
@@ -471,6 +473,7 @@
|
||||||
|
|
||||||
<toolbarbutton id="fxa-toolbar-menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
|
<toolbarbutton id="fxa-toolbar-menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional subviewbutton-nav"
|
||||||
badged="true"
|
badged="true"
|
||||||
@@ -61,12 +63,11 @@ index 390a1300a1213af2b411ba09c67e3c25750ee6c3..a7ab07f8e8a0c5f91a6c12eb5d27c56e
|
|||||||
delegatesanchor="true"
|
delegatesanchor="true"
|
||||||
onmousedown="gSync.toggleAccountPanel(this, event)"
|
onmousedown="gSync.toggleAccountPanel(this, event)"
|
||||||
onkeypress="gSync.toggleAccountPanel(this, event)"
|
onkeypress="gSync.toggleAccountPanel(this, event)"
|
||||||
@@ -501,6 +505,8 @@
|
@@ -522,6 +525,7 @@
|
||||||
consumeanchor="PanelUI-button"
|
consumeanchor="PanelUI-button"
|
||||||
data-l10n-id="appmenu-menu-button-closed2"/>
|
data-l10n-id="appmenu-menu-button-closed2"/>
|
||||||
</toolbaritem>
|
</toolbaritem>
|
||||||
+
|
+#include titlebar-items.inc.xhtml
|
||||||
+ #include titlebar-items.inc.xhtml
|
|
||||||
</toolbar>
|
</toolbar>
|
||||||
|
|
||||||
<toolbar id="PersonalToolbar"
|
<toolbar id="PersonalToolbar"
|
||||||
|