Compare commits
778 Commits
1.0.0-a.29
...
1.0.1-a.8
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b4901cb113 | ||
![]() |
4380370ae4 | ||
![]() |
d043ea25d8 | ||
![]() |
dadc13a2df | ||
![]() |
34e47d79dd | ||
![]() |
945ee1245e | ||
![]() |
7f263b4c5e | ||
![]() |
569d93af9a | ||
![]() |
9440716951 | ||
![]() |
cc4e676bb7 | ||
![]() |
9d0eaad314 | ||
![]() |
1d22650d89 | ||
![]() |
ce519530bc | ||
![]() |
3e02f0d39f | ||
![]() |
89b97338e4 | ||
![]() |
2345563879 | ||
![]() |
692cb9223c | ||
![]() |
e8ff848518 | ||
![]() |
256dadbaf7 | ||
![]() |
3e92111847 | ||
![]() |
2e4958bc25 | ||
![]() |
8c04cda18b | ||
![]() |
515b4d50ab | ||
![]() |
414308f277 | ||
![]() |
ffe822819c | ||
![]() |
948cfc4034 | ||
![]() |
fdd99cb8d6 | ||
![]() |
9df773dde2 | ||
![]() |
8c42614427 | ||
![]() |
6dcff571d2 | ||
![]() |
43834e57f0 | ||
![]() |
b185773daf | ||
![]() |
593a9244a4 | ||
![]() |
165ee8a3f8 | ||
![]() |
66fc824bb5 | ||
![]() |
a556454ced | ||
![]() |
d248880890 | ||
![]() |
c9a8177351 | ||
![]() |
5e85f1025a | ||
![]() |
eebcb0cb6e | ||
![]() |
cf3f788218 | ||
![]() |
31f939ba96 | ||
![]() |
b707aabee4 | ||
![]() |
b3e3fdbad7 | ||
![]() |
41897f06ed | ||
![]() |
4758656211 | ||
![]() |
5e1a5fc498 | ||
![]() |
174fafcb45 | ||
![]() |
19fff2bd89 | ||
![]() |
4b1ef1222b | ||
![]() |
46cca21a72 | ||
![]() |
81c2f08e62 | ||
![]() |
2a764eaf7a | ||
![]() |
a1cccb1ca4 | ||
![]() |
d7bff00046 | ||
![]() |
22ef403bd4 | ||
![]() |
e466fb95b5 | ||
![]() |
c5ab69f38d | ||
![]() |
09f673d94c | ||
![]() |
b323a92dbf | ||
![]() |
57f697975e | ||
![]() |
9a9171055c | ||
![]() |
90683aa637 | ||
![]() |
480bcccbf4 | ||
![]() |
015c27ecad | ||
![]() |
1ec4c2ba9d | ||
![]() |
69653bb402 | ||
![]() |
988d5a2535 | ||
![]() |
8de8f190ff | ||
![]() |
ac58a0da0e | ||
![]() |
eb19d2a1c4 | ||
![]() |
36656fd0f4 | ||
![]() |
eb5d10c24a | ||
![]() |
da6101a355 | ||
![]() |
20f6dfafa1 | ||
![]() |
5488980bd9 | ||
![]() |
de92af20f0 | ||
![]() |
f22646a905 | ||
![]() |
44a8bc3f1d | ||
![]() |
a870d7eb42 | ||
![]() |
e429d0317d | ||
![]() |
c8391950cf | ||
![]() |
7cf789ad5f | ||
![]() |
d28062cc93 | ||
![]() |
5d0ea6a2c3 | ||
![]() |
4adde6ba85 | ||
![]() |
e2792eecb5 | ||
![]() |
57bf881779 | ||
![]() |
da8db0f223 | ||
![]() |
e96a40a545 | ||
![]() |
3105024de4 | ||
![]() |
656a47f7c2 | ||
![]() |
742bb67cde | ||
![]() |
88fb4d5e04 | ||
![]() |
28745667b8 | ||
![]() |
bffaa1a94d | ||
![]() |
f5863391fe | ||
![]() |
33531e973b | ||
![]() |
44c784f4a5 | ||
![]() |
7e112746bc | ||
![]() |
f29750da65 | ||
![]() |
3e2157782f | ||
![]() |
6a9aaf1c58 | ||
![]() |
516a388aa3 | ||
![]() |
c968478c3d | ||
![]() |
c14bdf8d26 | ||
![]() |
8bce4eb5f8 | ||
![]() |
2c2c6c6cc2 | ||
![]() |
c41a0ba129 | ||
![]() |
6cb335fe32 | ||
![]() |
605815aa76 | ||
![]() |
cf2734f5e2 | ||
![]() |
1624f05c06 | ||
![]() |
39caaf5caa | ||
![]() |
4310143e79 | ||
![]() |
93159e4514 | ||
![]() |
980dae52d4 | ||
![]() |
bd8501fd77 | ||
![]() |
f8306742e9 | ||
![]() |
aa7b007db7 | ||
![]() |
bf041bd1d6 | ||
![]() |
698b1eab76 | ||
![]() |
81db0458a9 | ||
![]() |
87f76f1cc2 | ||
![]() |
751a0c987d | ||
![]() |
e11688d2a3 | ||
![]() |
73d447eeee | ||
![]() |
3012c0ad1f | ||
![]() |
59f356001a | ||
![]() |
1cfb33afcd | ||
![]() |
3f4f611a61 | ||
![]() |
1bd694514b | ||
![]() |
e3f0ab43bb | ||
![]() |
6469cfa6f4 | ||
![]() |
88f9fc5816 | ||
![]() |
933e192e0c | ||
![]() |
7662707c84 | ||
![]() |
7e894eb4b5 | ||
![]() |
20cef9aabb | ||
![]() |
49de0de5ca | ||
![]() |
84f0a478b4 | ||
![]() |
58fcbd9dfa | ||
![]() |
69093204b9 | ||
![]() |
021e654202 | ||
![]() |
f7ebf48e49 | ||
![]() |
7369490478 | ||
![]() |
6117c4a877 | ||
![]() |
03fe76b14a | ||
![]() |
4eaf8ddaa2 | ||
![]() |
bc03bc06c4 | ||
![]() |
576541c4f1 | ||
![]() |
c9df1d8b99 | ||
![]() |
99569e4588 | ||
![]() |
dcd4dc5d44 | ||
![]() |
40890470fe | ||
![]() |
08c7a397bc | ||
![]() |
469260905c | ||
![]() |
c29a81d710 | ||
![]() |
d0b6f9489c | ||
![]() |
4d019067ef | ||
![]() |
ffcf2a040c | ||
![]() |
a222e866fb | ||
![]() |
f4b77e602f | ||
![]() |
b0f5eb0f47 | ||
![]() |
922e893bbf | ||
![]() |
48a1ac71a3 | ||
![]() |
5c564faf6b | ||
![]() |
6c4af9bc71 | ||
![]() |
fc46e4ae79 | ||
![]() |
78f60b866e | ||
![]() |
cb0d9b8633 | ||
![]() |
cbd3a5bff6 | ||
![]() |
0310187c8e | ||
![]() |
ba66550c2c | ||
![]() |
5ff141ded3 | ||
![]() |
de5619e580 | ||
![]() |
8dfb6e7667 | ||
![]() |
e722fc6cca | ||
![]() |
c9bbc14ee2 | ||
![]() |
54e787a6c5 | ||
![]() |
92f7d5d9f5 | ||
![]() |
fed3f8623c | ||
![]() |
bd9f68e0c0 | ||
![]() |
c32c16d932 | ||
![]() |
d8797fceb2 | ||
![]() |
996c292916 | ||
![]() |
ac7bf6a007 | ||
![]() |
aaee7c44ea | ||
![]() |
71c20bdf98 | ||
![]() |
e9f938fb4b | ||
![]() |
e180e3dbd0 | ||
![]() |
a5f6e689fa | ||
![]() |
10711097a6 | ||
![]() |
c458363d5b | ||
![]() |
bbff11bc71 | ||
![]() |
ff67caa61d | ||
![]() |
c785d4c59c | ||
![]() |
43c86ea74c | ||
![]() |
ed4ab842a5 | ||
![]() |
cc498fad22 | ||
![]() |
614be445a4 | ||
![]() |
bdb1e65dfd | ||
![]() |
9d85ddafaa | ||
![]() |
b1c90ceed2 | ||
![]() |
863abd3a70 | ||
![]() |
45e3b9e22b | ||
![]() |
779fd3fa3a | ||
![]() |
d9c825a7de | ||
![]() |
a0244dc60d | ||
![]() |
5ca57e292c | ||
![]() |
c494973e16 | ||
![]() |
a9e0fca099 | ||
![]() |
dd8299d10a | ||
![]() |
68cfdedc45 | ||
![]() |
5f64f9e651 | ||
![]() |
c17620ce54 | ||
![]() |
aadb3be0ea | ||
![]() |
554a976649 | ||
![]() |
72ec61c302 | ||
![]() |
5b391fe52e | ||
![]() |
e133a7746d | ||
![]() |
96d3393437 | ||
![]() |
14b520a498 | ||
![]() |
22eb216a3d | ||
![]() |
7e35a5cfb5 | ||
![]() |
2d573da55e | ||
![]() |
6c77a913ff | ||
![]() |
445b21c03d | ||
![]() |
9ebe42d9af | ||
![]() |
a5587120e0 | ||
![]() |
a22ebf0731 | ||
![]() |
f42a635555 | ||
![]() |
232fa448ca | ||
![]() |
3b6bf10f6a | ||
![]() |
6f42c30abe | ||
![]() |
52d5a389bf | ||
![]() |
5ee55ba672 | ||
![]() |
4332bf3b95 | ||
![]() |
818ebd1d85 | ||
![]() |
e03d6dd3fd | ||
![]() |
bcfc6c43a2 | ||
![]() |
11ff76d15b | ||
![]() |
a94bcdf40c | ||
![]() |
c29fdc99ea | ||
![]() |
430aa1c6fd | ||
![]() |
b9406728d3 | ||
![]() |
08cbf24b38 | ||
![]() |
c3cae9e960 | ||
![]() |
1bbc73343c | ||
![]() |
dfcabbe9b4 | ||
![]() |
b0755d3834 | ||
![]() |
4cb7f3a105 | ||
![]() |
960d733c76 | ||
![]() |
051439abde | ||
![]() |
4b8c22d88b | ||
![]() |
35ecb5ef31 | ||
![]() |
f5132f33fb | ||
![]() |
e5edc96919 | ||
![]() |
189ff89fd3 | ||
![]() |
95cd749e3b | ||
![]() |
bf4a9a7509 | ||
![]() |
7c047319d2 | ||
![]() |
059f4e5116 | ||
![]() |
59c8598b94 | ||
![]() |
c02505fe13 | ||
![]() |
5d718c4ce4 | ||
![]() |
af5212e2c6 | ||
![]() |
76c749d31a | ||
![]() |
3461dd1481 | ||
![]() |
994fbf8d97 | ||
![]() |
2e40d34e01 | ||
![]() |
bc64f3874f | ||
![]() |
a4edeb5b49 | ||
![]() |
4510bc64d6 | ||
![]() |
e4aa905440 | ||
![]() |
faa9b2f763 | ||
![]() |
76512840e3 | ||
![]() |
aef6c2ac48 | ||
![]() |
14f4dfc12a | ||
![]() |
b06edc0dd9 | ||
![]() |
863d087ae8 | ||
![]() |
413c2819fb | ||
![]() |
cde7e77aea | ||
![]() |
fa0a65f2e7 | ||
![]() |
5649faf085 | ||
![]() |
dbe0124266 | ||
![]() |
3ebf3fdb67 | ||
![]() |
3b426fa0cf | ||
![]() |
37e8ee66bd | ||
![]() |
1d220623ff | ||
![]() |
3219722c64 | ||
![]() |
42c04ca3da | ||
![]() |
e7110d3dbe | ||
![]() |
4ef3ecf0d9 | ||
![]() |
7bdf52eab6 | ||
![]() |
0bdd8dce6c | ||
![]() |
4a7403e929 | ||
![]() |
bd7108e7df | ||
![]() |
ed82f7d459 | ||
![]() |
b5323b00ad | ||
![]() |
4d4c2fd676 | ||
![]() |
787ea8c20d | ||
![]() |
d69d56850f | ||
![]() |
b769fbb8fe | ||
![]() |
7bf77d1d57 | ||
![]() |
2d8f8be70b | ||
![]() |
afb22905f9 | ||
![]() |
15f733cd81 | ||
![]() |
2912e7c833 | ||
![]() |
4f88923d10 | ||
![]() |
7eaa083c61 | ||
![]() |
f3a5ecd76b | ||
![]() |
438b232ede | ||
![]() |
9d76fc8761 | ||
![]() |
1cd57e08c0 | ||
![]() |
87b0ff952c | ||
![]() |
22043a0bf0 | ||
![]() |
fe880279c9 | ||
![]() |
9c26c5aba8 | ||
![]() |
21b2ffb49a | ||
![]() |
1b8e850f03 | ||
![]() |
bf52a194c8 | ||
![]() |
ab2e0c03b8 | ||
![]() |
800a46caca | ||
![]() |
e4dcbccce7 | ||
![]() |
ede39f37e6 | ||
![]() |
7211024602 | ||
![]() |
04599adfcc | ||
![]() |
01a63d0c70 | ||
![]() |
fafde6562a | ||
![]() |
843a383078 | ||
![]() |
379b1ca292 | ||
![]() |
36063ebdcd | ||
![]() |
05969ffeb6 | ||
![]() |
7ade6ec0e0 | ||
![]() |
f355828240 | ||
![]() |
3159536fb5 | ||
![]() |
2e3aa4865e | ||
![]() |
630d1a89c8 | ||
![]() |
9f3a14a673 | ||
![]() |
fbc088225c | ||
![]() |
dcd9e0b94f | ||
![]() |
617a2c89cd | ||
![]() |
de8a049e93 | ||
![]() |
4f6e6e0e39 | ||
![]() |
f790e13f14 | ||
![]() |
f1a18bb112 | ||
![]() |
4725b936c0 | ||
![]() |
fe631c21d5 | ||
![]() |
1647dc78a2 | ||
![]() |
b05dd8f8a0 | ||
![]() |
b7db0edf41 | ||
![]() |
c49769a678 | ||
![]() |
359af36098 | ||
![]() |
3cad9e9629 | ||
![]() |
dcaf5a1636 | ||
![]() |
d9a95b9a8f | ||
![]() |
d502555428 | ||
![]() |
37ee485140 | ||
![]() |
4cf7827df9 | ||
![]() |
bd25205ad5 | ||
![]() |
85c6de8d2a | ||
![]() |
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 |
1
.gitattributes
vendored
@@ -1,2 +1 @@
|
||||
|
||||
*.patch linguist-language=C++
|
||||
|
1
.github/FUNDING.yml
vendored
@@ -1,3 +1,2 @@
|
||||
|
||||
patreon: zen_browser
|
||||
ko_fi: zen_browser
|
||||
|
29
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -5,6 +5,20 @@ body:
|
||||
attributes:
|
||||
value: |
|
||||
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
|
||||
id: what-happened
|
||||
attributes:
|
||||
@@ -28,21 +42,6 @@ body:
|
||||
placeholder: 1.0.0
|
||||
validations:
|
||||
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
|
||||
id: platform
|
||||
attributes:
|
||||
|
18
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@@ -1,18 +0,0 @@
|
||||
name: Feature Request
|
||||
description: File a feature request
|
||||
labels:
|
||||
- "kind: enhancement"
|
||||
body:
|
||||
- type: textarea
|
||||
id: feature-description
|
||||
attributes:
|
||||
label: What feature would you like to see?
|
||||
description: Please describe the feature you would like to see.
|
||||
placeholder: I would like to see…
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: other-details
|
||||
attributes:
|
||||
label: Other details
|
||||
placeholder: Add any additional details 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']
|
||||
|
@@ -1,4 +1,4 @@
|
||||
name: Zen Alpha builds
|
||||
name: Zen Release builds
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
@@ -11,19 +11,59 @@ on:
|
||||
update_version:
|
||||
description: 'Update the version number'
|
||||
required: false
|
||||
default: true
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'alpha'
|
||||
type: 'choice'
|
||||
options:
|
||||
- 'alpha'
|
||||
- 'twilight'
|
||||
workflow_call:
|
||||
inputs:
|
||||
create_release:
|
||||
description: 'Create a new release for this build'
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_version:
|
||||
description: 'Update the version number'
|
||||
required: false
|
||||
default: false
|
||||
type: 'boolean'
|
||||
update_branch:
|
||||
description: 'Update branch with new version'
|
||||
required: true
|
||||
default: 'alpha'
|
||||
type: 'string'
|
||||
|
||||
jobs:
|
||||
debug-inputs:
|
||||
name: Debug inputs
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
echo "update_version: ${{ inputs.update_version }}"
|
||||
echo "update_branch: ${{ inputs.update_branch }}"
|
||||
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
build-data:
|
||||
permissions:
|
||||
contents: write
|
||||
name: Generate build data
|
||||
runs-on: ubuntu-latest
|
||||
needs: debug-inputs
|
||||
outputs:
|
||||
build_date: ${{ steps.data.outputs.builddate }}
|
||||
version: ${{ steps.data.outputs.version }}
|
||||
build_time: ${{ steps.data.outputs.buildtime }}
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
@@ -52,14 +92,14 @@ jobs:
|
||||
npm i -g @zen-browser/surfer
|
||||
|
||||
- name: Bump version
|
||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
||||
if: ${{ inputs.update_version && inputs.update_branch == 'alpha' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand alpha --bump prerelease
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||
|
||||
- name: Bump version without new version
|
||||
if: ${{ github.event.inputs.update_version == 'false' }}
|
||||
if: ${{ !inputs.update_version || inputs.update_branch == 'twilight' }}
|
||||
run: |
|
||||
pnpm surfer ci --brand alpha
|
||||
pnpm surfer ci --brand ${{ inputs.update_branch }}
|
||||
|
||||
- name: Debug
|
||||
run: |
|
||||
@@ -73,9 +113,10 @@ jobs:
|
||||
run: |
|
||||
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
||||
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
||||
echo "buildtime=$(date +"%H:%M:%S")" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
||||
if: ${{ inputs.update_version }}
|
||||
with:
|
||||
commit_message: 🔖 Update version to ${{ steps.data.outputs.version }}
|
||||
commit_user_name: Zen Browser Robot
|
||||
@@ -114,7 +155,7 @@ jobs:
|
||||
- name: Activate surfer CLI
|
||||
run: |
|
||||
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 ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Check version
|
||||
run: |
|
||||
@@ -128,9 +169,7 @@ jobs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
source:
|
||||
if: false
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
@@ -165,7 +204,7 @@ jobs:
|
||||
run: pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
||||
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||
|
||||
- name: Download firefox source and dependancies
|
||||
run: pnpm surfer download --verbose
|
||||
@@ -186,59 +225,64 @@ jobs:
|
||||
name: zen.source.tar.gz
|
||||
path: ./zen.source.tar.gz
|
||||
|
||||
#windows-step-1:
|
||||
# name: Windows build step 1 (PGO build)
|
||||
# uses: ./.github/workflows/windows-alpha-build.yml
|
||||
# needs: [build-data]
|
||||
# permissions:
|
||||
# contents: write
|
||||
# secrets: inherit
|
||||
# with:
|
||||
# build-version: ${{ needs.build-data.outputs.version }}
|
||||
# generate-gpo: true
|
||||
# profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
windows-step-1:
|
||||
name: Windows build step 1 (PGO build)
|
||||
uses: ./.github/workflows/windows-release-build.yml
|
||||
needs: [build-data]
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: true
|
||||
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
#windows-step-2:
|
||||
# name: Windows build step 2 (Generate profile data)
|
||||
# uses: ./.github/workflows/windows-profile-build.yml
|
||||
# permissions:
|
||||
# contents: write
|
||||
# secrets: inherit
|
||||
# needs: [windows-step-1, build-data]
|
||||
# with:
|
||||
# build-version: ${{ needs.build-data.outputs.version }}
|
||||
# profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||
windows-step-2:
|
||||
name: Windows build step 2 (Generate profile data)
|
||||
uses: ./.github/workflows/windows-profile-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [windows-step-1, build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
windows-step-3:
|
||||
name: Windows build step 3 (build with profile data)
|
||||
uses: ./.github/workflows/windows-alpha-build.yml
|
||||
uses: ./.github/workflows/windows-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
needs: [build-data, windows-step-2]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
generate-gpo: false
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
linux:
|
||||
name: Linux build
|
||||
uses: ./.github/workflows/linux-alpha-build.yml
|
||||
uses: ./.github/workflows/linux-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
mac:
|
||||
name: macOS build
|
||||
uses: ./.github/workflows/macos-alpha-build.yml
|
||||
uses: ./.github/workflows/macos-release-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
release-branch: ${{ inputs.update_branch }}
|
||||
|
||||
appimage:
|
||||
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
@@ -275,8 +319,8 @@ jobs:
|
||||
run: |
|
||||
set -eux
|
||||
rm AppDir/.DirIcon || true
|
||||
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/alpha/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||
|
||||
APPDIR=AppDir
|
||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||
@@ -307,11 +351,13 @@ jobs:
|
||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||
|
||||
release:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
|
||||
permissions: write-all
|
||||
name: Release
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage]
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: ${{ inputs.update_branch == 'alpha' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -320,7 +366,8 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Git Pull
|
||||
run: git pull
|
||||
run: |
|
||||
git pull
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
|
||||
@@ -335,14 +382,21 @@ jobs:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Copy update manifests
|
||||
env:
|
||||
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||
run: |
|
||||
cd updates-server
|
||||
mkdir -p updates
|
||||
cp -a ../linux_update_manifest_generic/. updates/
|
||||
cp -a ../linux_update_manifest_specific/. updates/
|
||||
|
||||
if [[ $RELEASE_BRANCH == 'alpha' ]]; then
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
|
||||
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
|
||||
else
|
||||
cp -a ../windows_update_manifest_generic/. updates/
|
||||
cp -a ../windows_update_manifest_specific/. updates/
|
||||
fi
|
||||
|
||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||
cp -a ../macos_update_manifest_x64/. updates/
|
||||
@@ -354,8 +408,42 @@ jobs:
|
||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||
repository: ./updates-server
|
||||
|
||||
# If we are on twilight, we want to just update the twilight tag's release
|
||||
- name: Update twilight tag
|
||||
if: ${{ inputs.update_branch == 'twilight' }}
|
||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||
with:
|
||||
files: |
|
||||
zen.source.tar.gz
|
||||
zen.linux-generic.tar.bz2
|
||||
zen.linux-specific.tar.bz2
|
||||
zen-generic.AppImage
|
||||
zen-generic.AppImage.zsync
|
||||
zen-specific.AppImage
|
||||
zen-specific.AppImage.zsync
|
||||
zen.win-generic.zip
|
||||
zen.win-specific.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
windows-generic.mar
|
||||
windows.mar
|
||||
macos-x64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer-generic.exe
|
||||
zen.macos-x64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
automatic_release_tag: 'twilight'
|
||||
title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})'
|
||||
draft: false
|
||||
prerelease: true
|
||||
repo_token: ${{ github.token }}
|
||||
env:
|
||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||
|
||||
- name: release-github
|
||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||
if: ${{ inputs.update_branch == 'alpha' }}
|
||||
with:
|
||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||
@@ -369,24 +457,81 @@ jobs:
|
||||
zen-generic.AppImage.zsync
|
||||
zen-specific.AppImage
|
||||
zen-specific.AppImage.zsync
|
||||
zen.win-generic.zip
|
||||
zen.win-specific.zip
|
||||
.github/workflows/object/windows-x64-signed-generic/zen.win-generic.zip
|
||||
.github/workflows/object/windows-x64-signed-specific/zen.win-specific.zip
|
||||
linux.mar
|
||||
linux-generic.mar
|
||||
windows.mar
|
||||
windows-generic.mar
|
||||
.github/workflows/object/windows-x64-signed-generic/windows-generic.mar
|
||||
.github/workflows/object/windows-x64-signed-specific/windows.mar
|
||||
macos-x64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer-generic.exe
|
||||
.github/workflows/object/windows-x64-signed-specific/zen.installer.exe
|
||||
.github/workflows/object/windows-x64-signed-generic/zen.installer-generic.exe
|
||||
zen.macos-x64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
|
||||
prepare-flatpak:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
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:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
permissions: write-all
|
||||
name: Release Flatpak
|
||||
needs: [release, linux, build-data]
|
||||
needs: [prepare-flatpak, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
@@ -454,10 +599,33 @@ jobs:
|
||||
body: |
|
||||
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 }}
|
||||
base: master
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
|
||||
release-homebrew:
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||
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
|
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
|
@@ -1,4 +1,4 @@
|
||||
|
||||
name: Linux Release Build
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -6,6 +6,10 @@ on:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
@@ -44,10 +48,10 @@ jobs:
|
||||
|
||||
- name: Install system dependencies
|
||||
run: |
|
||||
set -x
|
||||
sudo apt-get update --fix-missing
|
||||
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
|
||||
pip install pycairo testresources
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
@@ -87,7 +91,7 @@ jobs:
|
||||
run: pnpm install
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download firefox source and dependencies
|
||||
run: pnpm surfer download
|
||||
@@ -110,13 +114,13 @@ jobs:
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
continue-on-error: true
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
run: sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
run: sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
@@ -131,7 +135,6 @@ jobs:
|
||||
- name: Upload binary
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
|
||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
|
@@ -1,4 +1,4 @@
|
||||
|
||||
name: macOS Release Build
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -6,6 +6,11 @@ on:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
@@ -87,7 +92,7 @@ jobs:
|
||||
- name: Install dependencies
|
||||
run: pnpm install
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download firefox source and dependancies
|
||||
run: pnpm surfer download
|
||||
@@ -103,7 +108,7 @@ jobs:
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: |
|
||||
pnpm surfer import
|
||||
pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
@@ -115,22 +120,42 @@ jobs:
|
||||
if test "${{ matrix.arch }}" = "x64"; then
|
||||
export ZEN_DISABLE_LTO=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Rebuild Zen if failed
|
||||
if: failure()
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
run: sh .github/workflows/src/release-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
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: pnpm package
|
||||
run: |
|
||||
export MACOS_APPLE_DEVELOPER_ID="${{ secrets.macOS_AppleDeveloperId }}"
|
||||
pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv ./dist/*.dmg "zen.macos-${{ matrix.arch }}.dmg"
|
||||
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
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.7" appVersion="1.0.1-a.7" platformVersion="130.0.1" buildID="20240930174115">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.7/windows-generic.mar" hashFunction="sha512" hashValue="ec9d34b84fd7e2fce56f5df376993ced4e4c6e9e597f15db6ff872fe9a8503bea1545752cf957a8615e3623c6c062ae9883d71659f7c1e71c2f142fb0b97febc" size="72392464"/>
|
||||
</update>
|
||||
</updates>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.7" appVersion="1.0.1-a.7" platformVersion="130.0.1" buildID="20240930174115">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.7/windows-generic.mar" hashFunction="sha512" hashValue="ec9d34b84fd7e2fce56f5df376993ced4e4c6e9e597f15db6ff872fe9a8503bea1545752cf957a8615e3623c6c062ae9883d71659f7c1e71c2f142fb0b97febc" size="72392464"/>
|
||||
</update>
|
||||
</updates>
|
BIN
.github/workflows/object/windows-x64-signed-generic/windows-generic.mar
vendored
Normal file
BIN
.github/workflows/object/windows-x64-signed-generic/zen.installer-generic.exe
vendored
Normal file
BIN
.github/workflows/object/windows-x64-signed-generic/zen.win-generic.zip
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.7" appVersion="1.0.1-a.7" platformVersion="130.0.1" buildID="20240930174542">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.7/windows.mar" hashFunction="sha512" hashValue="3489df92ea8f25a36fa72f91097b48c6934a8988e291e828380660d60b2e763db2b20281889c60c471437f570342fabec439c8cd33e3594ef0e8a50050544c57" size="72415792"/>
|
||||
</update>
|
||||
</updates>
|
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<updates>
|
||||
<update type="minor" displayVersion="1.0.1-a.7" appVersion="1.0.1-a.7" platformVersion="130.0.1" buildID="20240930174542">
|
||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.7/windows.mar" hashFunction="sha512" hashValue="3489df92ea8f25a36fa72f91097b48c6934a8988e291e828380660d60b2e763db2b20281889c60c471437f570342fabec439c8cd33e3594ef0e8a50050544c57" size="72415792"/>
|
||||
</update>
|
||||
</updates>
|
BIN
.github/workflows/object/windows-x64-signed-specific/windows.mar
vendored
Normal file
BIN
.github/workflows/object/windows-x64-signed-specific/zen.installer.exe
vendored
Normal file
BIN
.github/workflows/object/windows-x64-signed-specific/zen.win-specific.zip
vendored
Normal file
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 }}
|
31
.github/workflows/twilight-release-schedule.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Zen Twilight Scheduled Releases
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
name: Twilight Release Schedule
|
||||
permissions: write-all
|
||||
secrets: inherit
|
||||
uses: ./.github/workflows/build.yml
|
||||
with:
|
||||
create_release: true
|
||||
update_branch: twilight
|
||||
update_version: false
|
||||
|
||||
post-build:
|
||||
name: Post Build
|
||||
runs-on: ubuntu-latest
|
||||
needs: twilight-release-schedule
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
# TODO:
|
24
.github/workflows/windows-profile-build.yml
vendored
@@ -1,4 +1,4 @@
|
||||
|
||||
name: Windows PGO Builds
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -10,6 +10,10 @@ on:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
required: false
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
windows-profile-build:
|
||||
@@ -72,17 +76,23 @@ jobs:
|
||||
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: Publish merged.profdata
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: merged-${{ matrix.generic == true && 'generic' || 'specific' }}.profdata
|
||||
- name: Move profile data
|
||||
run: |
|
||||
dir
|
||||
dir engine
|
||||
mv engine/merged.profdata merged.profdata
|
||||
mv engine/en-US.log en-US.log
|
||||
|
||||
- name: Publish en-US.log
|
||||
- name: Publish artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: en-US-${{ matrix.generic == true && 'generic' || 'specific' }}.log
|
||||
path: |
|
||||
merged.profdata
|
||||
en-US.log
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
|
||||
name: Windows Release Build
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
@@ -13,6 +13,10 @@ on:
|
||||
profile-data-path-archive:
|
||||
description: 'The path to the zip archive containing the profile data'
|
||||
type: string
|
||||
release-branch:
|
||||
description: 'The branch to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
@@ -54,12 +58,12 @@ jobs:
|
||||
pnpm i
|
||||
|
||||
- name: Load surfer CI setup
|
||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||
|
||||
- name: Download
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: "win-cross Cache"
|
||||
- name: 'win-cross Cache'
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
@@ -118,23 +122,17 @@ jobs:
|
||||
run: |
|
||||
cd engine/
|
||||
# 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
|
||||
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
cargo install cargo-download
|
||||
cargo download -x windows=0.52.0
|
||||
cargo download -x windows=0.58.0
|
||||
#? https://github.com/mozilla/sccache#known-caveats
|
||||
export CARGO_INCREMENTAL=0
|
||||
|
||||
echo "" >> ../configs/common/mozconfig
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact if use profdata
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
path: ~/artifact
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
@@ -144,6 +142,23 @@ jobs:
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact if use profdata
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
path: ~/artifact
|
||||
name: windows-profdata-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
|
||||
- name: Show artifact info
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
ls ~/artifact
|
||||
ls ~/artifact/en-US.log
|
||||
ls ~/artifact/merged.profdata
|
||||
|
||||
chmod +x ~/artifact/en-US.log
|
||||
chmod +x ~/artifact/merged.profdata
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
@@ -155,7 +170,7 @@ jobs:
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
sh .github/workflows/src/release-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
@@ -168,6 +183,11 @@ jobs:
|
||||
ls ./dist
|
||||
ls .
|
||||
|
||||
- name: 🐛 Debug Session
|
||||
if: ${{ failure() }}
|
||||
uses: Warpbuilds/gha-debug@v1.3
|
||||
timeout-minutes: 15
|
||||
|
||||
- name: Move package for PGO upload
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
run: |
|
||||
@@ -181,13 +201,6 @@ jobs:
|
||||
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
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
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ inputs.generate-gpo }}
|
||||
@@ -195,30 +208,43 @@ jobs:
|
||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||
path: ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- name: Upload mar
|
||||
uses: actions/upload-artifact@v4
|
||||
- name: Remove symlinks from obj folder
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
run: |
|
||||
set -x
|
||||
find engine/obj-x86_64-pc-windows-msvc/ -type l -delete
|
||||
|
||||
- name: Upload installer
|
||||
uses: actions/upload-artifact@v4
|
||||
- name: Upload dist object
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: engine/obj-x86_64-pc-windows-msvc/
|
||||
|
||||
- name: Upload zip file if twilight branch
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
|
||||
- name: Upload installer if twilight branch
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
|
||||
- name: Upload installer stub
|
||||
- name: Upload mar if twilight branch
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo && false }}
|
||||
with:
|
||||
name: zen.installer.pretty.exe
|
||||
path: ./dist/zen.installer.pretty.exe
|
||||
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
- name: Upload update manifests if twilight branch
|
||||
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: ./dist/update
|
2
.gitignore
vendored
@@ -7,3 +7,5 @@ node_modules/
|
||||
|
||||
__pycache__/
|
||||
dist/
|
||||
|
||||
windsign-temp/
|
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": []
|
||||
}
|
10
.vscode/settings.json
vendored
@@ -17,6 +17,14 @@
|
||||
"string": "cpp",
|
||||
"string_view": "cpp",
|
||||
"span": "cpp",
|
||||
"vector": "cpp"
|
||||
"vector": "cpp",
|
||||
"charconv": "cpp",
|
||||
"chrono": "cpp",
|
||||
"optional": "cpp",
|
||||
"format": "cpp",
|
||||
"ratio": "cpp",
|
||||
"system_error": "cpp",
|
||||
"regex": "cpp",
|
||||
"type_traits": "cpp"
|
||||
}
|
||||
}
|
@@ -1,5 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Comment=Experience tranquillity while browsing the web without people tracking you!
|
||||
Exec=zen %u
|
||||
Icon=zen
|
||||
Type=Application
|
||||
|
128
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
hello@zen-browser.app.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
125
README.md
@@ -1,28 +1,102 @@
|
||||
|
||||
# 🌀 Zen Browser
|
||||
<div align="center">
|
||||
<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!
|
||||
|
||||
* [Website](https://www.zen-browser.app)
|
||||
* [Download](https://www.zen-browser.app/download)
|
||||
* [Release Notes](https://www.zen-browser.app/release-notes/latest)
|
||||
- [Website](https://zen-browser.app)
|
||||
- [Download](https://zen-browser.app/download)
|
||||
- [Release Notes](https://zen-browser.app/release-notes/latest)
|
||||
|
||||
[](https://ko-fi.com/K3K111FH7H)
|
||||
<a href='https://flathub.org/apps/io.github.zen_browser.zen'>
|
||||
<img width='220' alt='Get it on Flathub' src='https://flathub.org/api/badge?locale=en'/>
|
||||
</a>
|
||||
[](https://github.com/zen-browser/desktop/releases)
|
||||
[](https://crowdin.com/project/zen-browser)
|
||||
|
||||
[](https://flathub.org/apps/io.github.zen_browser.zen)
|
||||
|
||||
[](https://www.patreon.com/zen_browser)
|
||||
|
||||
[](https://ko-fi.com/zen_browser)
|
||||
|
||||
# Compatibility
|
||||
|
||||
Zen is currently built using firefox version `129.0.2`!
|
||||
Zen is currently built using firefox version `131.0.2`!
|
||||
|
||||
* Check out the latest [release notes](https://www.zen-browser.app/release-notes)!
|
||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||
|
||||
# Performance
|
||||
|
||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
|
||||
|
||||
* Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||
- 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.
|
||||
|
||||
### Windows
|
||||
|
||||
#### Winget
|
||||
|
||||
- Generic
|
||||
|
||||
```
|
||||
winget install --id Zen-Team.Zen-Browser
|
||||
```
|
||||
|
||||
- Optimized
|
||||
|
||||
```
|
||||
winget install --id Zen-Team.Zen-Browser.Optimized
|
||||
```
|
||||
|
||||
####
|
||||
|
||||
### 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
|
||||
```
|
||||
|
||||
#### CachyOS
|
||||
##### Generic
|
||||
```
|
||||
sudo pacman -S zen-browser-bin
|
||||
```
|
||||
|
||||
##### Optimized
|
||||
```
|
||||
sudo pacman -S zen-browser-avx2-bin
|
||||
```
|
||||
|
||||
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
||||
|
||||
# Core Components
|
||||
|
||||
@@ -40,25 +114,39 @@ cd desktop
|
||||
Install dependencies
|
||||
|
||||
```bash
|
||||
npm i
|
||||
pnpm install
|
||||
```
|
||||
|
||||
Download and bootstrap the browser
|
||||
|
||||
```bash
|
||||
pnpm run init
|
||||
```
|
||||
npm run init
|
||||
|
||||
Copy a language pack
|
||||
|
||||
```bash
|
||||
sh scripts/update-en-US-packs.sh
|
||||
```
|
||||
|
||||
Start building the browser
|
||||
|
||||
```
|
||||
npm run build
|
||||
```bash
|
||||
pnpm run build
|
||||
```
|
||||
|
||||
Finally, run the browser!
|
||||
|
||||
```bash
|
||||
pnpm start
|
||||
```
|
||||
npm start
|
||||
|
||||
### Development
|
||||
|
||||
To view changes you've made, run
|
||||
|
||||
```bash
|
||||
pnpm build:ui && pnpm start
|
||||
```
|
||||
|
||||
## Special Thanks
|
||||
@@ -70,7 +158,7 @@ npm start
|
||||
|
||||
## Third Party Code
|
||||
|
||||
Zen coudn't be in its current state without the help of these amazing projects!
|
||||
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)
|
||||
|
||||
@@ -87,4 +175,3 @@ Zen coudn't be in its current state without the help of these amazing projects!
|
||||
<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
113
build/winsign/sign.ps1
Normal file
@@ -0,0 +1,113 @@
|
||||
param(
|
||||
[string][Parameter(Mandatory=$true)]$SignIdentity
|
||||
)
|
||||
|
||||
$ErrorActionPreference = "Stop"
|
||||
|
||||
echo "Preparing environment"
|
||||
git pull --recurse-submodules
|
||||
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 sha256 /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"
|
||||
} else {
|
||||
rm env:SURFER_COMPAT -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
echo "Compat Mode? $env:SURFER_COMPAT"
|
||||
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
|
||||
|
||||
# Extract the zip, sign everything inside, and repackage it
|
||||
Expand-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name.zip -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name
|
||||
rm windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
$files = Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.exe
|
||||
$files += Get-ChildItem windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -Include *.dll
|
||||
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
|
||||
Compress-Archive -Path windsign-temp\windows-x64-signed-$name\zen.win-$name -DestinationPath windsign-temp\windows-x64-signed-$name\zen.win-$name.zip
|
||||
rmdir windsign-temp\windows-x64-signed-$name\zen.win-$name -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
# Move the manifest
|
||||
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
|
||||
|
||||
echo "Invoking tar for $name"
|
||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||
rmdir .\.github\workflows\object\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||
mv .\windsign-temp\windows-x64-signed-$name .\.github\workflows\object\windows-x64-signed-$name -Force
|
||||
|
||||
echo "Finished $name"
|
||||
}
|
||||
|
||||
SignAndPackage specific
|
||||
SignAndPackage generic
|
||||
|
||||
echo "All artifacts signed and packaged, ready for release!"
|
||||
echo "Commiting the changes to the repository"
|
||||
git add .\.github\workflows\object
|
||||
git commit -m "Sign and package windows artifacts"
|
||||
git push
|
||||
|
||||
# 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
|
||||
|
||||
echo "Opening visual studio code"
|
||||
code .
|
@@ -1,4 +1 @@
|
||||
<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>
|
||||
<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: 226 B After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
@@ -1 +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>
|
||||
<?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:#fef9fe;}</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.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,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.2511,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.9896,4.6658-4.409,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.2511-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>
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 6.4 KiB |
@@ -1,3 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="56">
|
||||
<polygon fill="context-fill #20123a" points="26.2482 13.468 26.2482 9.6633 3.0262 9.6633 3.0262 14.9495 18.1924 14.9495 3.055 36.1877 3.055 39.9942 26.2787 39.9942 26.2787 34.7063 11.0972 34.7063 26.2482 13.468"/><path fill="context-fill #20123a" d="M48.7982,19.8217c-.9724-.9572-2.1077-1.675-3.4059-2.1536-1.2999-.4785-2.6982-.7195-4.2001-.7195-2.2316,0-4.173.4938-5.8276,1.4815-1.6529.9877-2.9341,2.3657-3.8438,4.1323-.9079,1.7683-1.361,3.8217-1.361,6.1619,0,2.3979.4531,4.4751,1.361,6.2264.9096,1.7531,2.2044,3.1056,3.8879,4.0593,1.6835.9521,3.6961,1.4289,6.0363,1.4289,1.8752,0,3.5315-.2885,4.9689-.8671,1.4357-.577,2.6117-1.3865,3.5247-2.4285.913-1.042,1.5172-2.2638,1.8141-3.6656l-5.8361-.3852c-.2172.5736-.5328,1.0573-.9469,1.4509-.4158.3954-.913.6924-1.4968.8893-.5821.1968-1.2236.2969-1.9244.2969-1.0573,0-1.9703-.2223-2.7407-.6669-.7704-.4446-1.3644-1.0759-1.7836-1.8956-.4208-.8196-.6296-1.7921-.6296-2.9189v-.0135h15.4904v-1.7327c0-1.9363-.2715-3.6265-.8146-5.0724-.543-1.4476-1.2999-2.649-2.2723-3.6078ZM36.4088,26.3247c.0375-.8157.2407-1.5665.6223-2.2435.4141-.7365.9893-1.3237,1.7258-1.7632.7348-.4395,1.5817-.6584,2.5388-.6584.9198,0,1.7259.1985,2.4216.5991.6975.4005,1.2422.9503,1.6376,1.6512.3937.7009.5923,1.507.5923,2.4149h-9.5385Z"/><path fill="context-fill #20123a" d="M75.9964,20.94c-.6517-1.2778-1.5646-2.2621-2.739-2.9545-1.1761-.6907-2.5524-1.0369-4.1323-1.0369-1.6885,0-3.1242.3887-4.3104,1.1625-1.1846.7756-2.028,1.8243-2.532,3.148h-.2664v-4.0135h-6.0126v22.7486h6.3079v-13.1519c.0102-.9775.1951-1.8141.5566-2.5099.3598-.6958.8638-1.227,1.5104-1.5918.6465-.3649,1.395-.5482,2.2435-.5482,1.2643,0,2.2553.392,2.9766,1.1777.7213.784,1.0759,1.8735,1.0674,3.2651v13.3589h6.3078v-14.4841c0-1.7683-.3258-3.2905-.9775-4.5701Z"/>
|
||||
</svg>
|
||||
<?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>
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 500 B |
Before Width: | Height: | Size: 951 B After Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 748 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 946 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.6 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: 226 B |
Before Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 4.8 KiB |
@@ -1 +0,0 @@
|
||||
<?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>
|
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 9.3 KiB |
@@ -1,11 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 260 56">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill="context-fill #20123a"
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<path class="cls-1" d="M10.7,34.7h15.2v5.3H2.7v-3.8l15.1-21.2H2.6v-5.3h23.2v3.8l-15.2,21.2ZM50.7,23.4c.5,1.4.8,3.1.8,5.1v1.7h-15.5c0,1.1.2,2.1.6,2.9.4.8,1,1.5,1.8,1.9.8.4,1.7.7,2.7.7s1.3,0,1.9-.3c.6-.2,1.1-.5,1.5-.9.4-.4.7-.9.9-1.5l5.8.4c-.3,1.4-.9,2.6-1.8,3.7-.9,1-2.1,1.9-3.5,2.4-1.4.6-3.1.9-5,.9s-4.4-.5-6-1.4c-1.7-1-3-2.3-3.9-4.1-.9-1.8-1.4-3.8-1.4-6.2s.5-4.4,1.4-6.2c.9-1.8,2.2-3.1,3.8-4.1,1.7-1,3.6-1.5,5.8-1.5s2.9.2,4.2.7c1.3.5,2.4,1.2,3.4,2.2,1,1,1.7,2.2,2.3,3.6ZM45.5,26.3c0-.9-.2-1.7-.6-2.4-.4-.7-.9-1.3-1.6-1.7-.7-.4-1.5-.6-2.4-.6s-1.8.2-2.5.7c-.7.4-1.3,1-1.7,1.8-.4.7-.6,1.4-.6,2.2h9.5ZM72.8,18c-1.2-.7-2.6-1-4.1-1s-3.1.4-4.3,1.2c-1.2.8-2,1.8-2.5,3.1h-.3v-4h-6v22.7h6.3v-13.2c0-1,.2-1.8.6-2.5.4-.7.9-1.2,1.5-1.6.6-.4,1.4-.5,2.2-.5,1.3,0,2.3.4,3,1.2.7.8,1.1,1.9,1.1,3.3v13.4h6.3v-14.5c0-1.8-.3-3.3-1-4.6-.7-1.3-1.6-2.3-2.7-3ZM113.8,27.8c.6,1.1.9,2.4.9,3.9s-.4,3-1.2,4.3c-.8,1.3-2,2.3-3.5,3-1.6.7-3.5,1.1-5.7,1.1h-13V9.7h12.1c2.2,0,4.1.3,5.6,1,1.5.7,2.6,1.6,3.4,2.7.8,1.2,1.1,2.5,1.1,4s-.2,2.2-.7,3.1c-.5.9-1.1,1.6-1.9,2.2-.8.6-1.8,1-2.8,1.2v.3c1.2,0,2.2.4,3.3,1,1,.6,1.8,1.4,2.5,2.5ZM97.7,22.4h4.8c.9,0,1.7-.2,2.3-.5.7-.3,1.2-.8,1.6-1.3.4-.6.6-1.3.6-2.1s-.4-2-1.2-2.7c-.8-.7-1.9-1-3.3-1h-4.9v7.5ZM108.1,31c0-.8-.2-1.6-.6-2.2-.4-.6-1-1.1-1.7-1.5-.7-.4-1.6-.5-2.7-.5h-5.4v8.1h5.2c1.8,0,3.1-.3,3.9-1,.8-.7,1.2-1.6,1.2-2.7ZM130.6,16.9c-1.3,0-2.4.4-3.4,1.1-1,.7-1.7,1.8-2.1,3.2h-.2v-4h-6.1v22.7h6.3v-12.9c0-.9.2-1.7.6-2.5.4-.7,1-1.3,1.7-1.7.7-.4,1.6-.6,2.5-.6s.9,0,1.4.1c.5,0,.9.1,1.2.2v-5.6c-.3,0-.6-.1-1-.2s-.7,0-1,0ZM154.9,22.5c.9,1.8,1.4,3.8,1.4,6.2s-.5,4.4-1.4,6.1c-.9,1.8-2.2,3.1-3.9,4.1-1.7,1-3.7,1.5-6,1.5s-4.3-.5-6-1.5c-1.7-1-3-2.4-3.9-4.1-.9-1.8-1.4-3.8-1.4-6.1s.5-4.4,1.4-6.2c.9-1.8,2.2-3.1,3.9-4.1,1.7-1,3.7-1.5,6-1.5s4.3.5,6,1.5c1.7,1,3,2.4,3.9,4.1ZM149.8,28.7c0-1.3-.2-2.5-.5-3.5-.4-1-.9-1.9-1.6-2.5-.7-.6-1.6-.9-2.6-.9s-1.9.3-2.7.9c-.7.6-1.3,1.4-1.6,2.5-.4,1-.5,2.2-.5,3.5s.2,2.5.5,3.5c.4,1,.9,1.9,1.6,2.5.7.6,1.6.9,2.7.9s1.9-.3,2.6-.9c.7-.6,1.2-1.4,1.6-2.5.4-1,.5-2.2.5-3.5ZM182,32.4h-.2l-3.7-15.2h-6.3l-3.7,15.3h-.2l-3.5-15.3h-6.4l6.2,22.7h6.7l3.9-14.3h.3l3.9,14.3h6.7l6.2-22.7h-6.4l-3.5,15.2ZM208.1,26.8l-4.1-.8c-1.1-.2-1.8-.5-2.2-.9-.4-.4-.7-.8-.7-1.4s.3-1.2,1-1.6c.7-.4,1.5-.6,2.5-.6s1.4.1,1.9.4c.5.2,1,.6,1.3,1,.3.4.5.8.6,1.3l5.8-.4c-.3-2.1-1.2-3.7-2.9-5-1.7-1.2-3.9-1.8-6.8-1.8s-3.6.3-5.1.9c-1.4.6-2.6,1.4-3.4,2.4-.8,1.1-1.2,2.3-1.2,3.8s.5,3.1,1.6,4.2c1.1,1.1,2.7,1.9,5,2.3l3.9.8c1,.2,1.7.5,2.2.9.5.4.7.8.7,1.4,0,.7-.4,1.2-1,1.7-.7.4-1.6.6-2.7.6s-2-.2-2.8-.7c-.7-.5-1.2-1.2-1.4-2.1l-6.2.3c.3,2.2,1.4,3.9,3.1,5.1,1.8,1.3,4.2,1.9,7.2,1.9s3.7-.3,5.2-.9c1.5-.6,2.7-1.5,3.6-2.6.9-1.1,1.3-2.4,1.3-3.9s-.5-3-1.6-4c-1.1-1-2.7-1.7-4.9-2.2ZM238.6,23.4c.5,1.4.8,3.1.8,5.1v1.7h-15.5c0,1.1.2,2.1.6,2.9.4.8,1,1.5,1.8,1.9.8.4,1.7.7,2.7.7s1.3,0,1.9-.3c.6-.2,1.1-.5,1.5-.9.4-.4.7-.9.9-1.5l5.8.4c-.3,1.4-.9,2.6-1.8,3.7-.9,1-2.1,1.9-3.5,2.4-1.4.6-3.1.9-5,.9s-4.4-.5-6-1.4c-1.7-1-3-2.3-3.9-4.1-.9-1.8-1.4-3.8-1.4-6.2s.5-4.4,1.4-6.2c.9-1.8,2.2-3.1,3.8-4.1,1.7-1,3.6-1.5,5.8-1.5s2.9.2,4.2.7c1.3.5,2.4,1.2,3.4,2.2,1,1,1.7,2.2,2.3,3.6ZM233.5,26.3c0-.9-.2-1.7-.6-2.4-.4-.7-.9-1.3-1.6-1.7-.7-.4-1.5-.6-2.4-.6s-1.8.2-2.5.7c-.7.4-1.3,1-1.7,1.8-.4.7-.6,1.4-.6,2.2h9.5ZM256.4,17c-.4,0-.7,0-1,0-1.3,0-2.4.4-3.4,1.1-1,.7-1.7,1.8-2.1,3.2h-.2v-4h-6.1v22.7h6.3v-12.9c0-.9.2-1.7.6-2.5.4-.7,1-1.3,1.7-1.7.7-.4,1.6-.6,2.5-.6s.9,0,1.4.1c.5,0,.9.1,1.2.2v-5.6c-.3,0-.6-.1-1-.2Z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,3 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="80" height="56">
|
||||
<polygon fill="context-fill #20123a" points="26.2482 13.468 26.2482 9.6633 3.0262 9.6633 3.0262 14.9495 18.1924 14.9495 3.055 36.1877 3.055 39.9942 26.2787 39.9942 26.2787 34.7063 11.0972 34.7063 26.2482 13.468"/><path fill="context-fill #20123a" d="M48.7982,19.8217c-.9724-.9572-2.1077-1.675-3.4059-2.1536-1.2999-.4785-2.6982-.7195-4.2001-.7195-2.2316,0-4.173.4938-5.8276,1.4815-1.6529.9877-2.9341,2.3657-3.8438,4.1323-.9079,1.7683-1.361,3.8217-1.361,6.1619,0,2.3979.4531,4.4751,1.361,6.2264.9096,1.7531,2.2044,3.1056,3.8879,4.0593,1.6835.9521,3.6961,1.4289,6.0363,1.4289,1.8752,0,3.5315-.2885,4.9689-.8671,1.4357-.577,2.6117-1.3865,3.5247-2.4285.913-1.042,1.5172-2.2638,1.8141-3.6656l-5.8361-.3852c-.2172.5736-.5328,1.0573-.9469,1.4509-.4158.3954-.913.6924-1.4968.8893-.5821.1968-1.2236.2969-1.9244.2969-1.0573,0-1.9703-.2223-2.7407-.6669-.7704-.4446-1.3644-1.0759-1.7836-1.8956-.4208-.8196-.6296-1.7921-.6296-2.9189v-.0135h15.4904v-1.7327c0-1.9363-.2715-3.6265-.8146-5.0724-.543-1.4476-1.2999-2.649-2.2723-3.6078ZM36.4088,26.3247c.0375-.8157.2407-1.5665.6223-2.2435.4141-.7365.9893-1.3237,1.7258-1.7632.7348-.4395,1.5817-.6584,2.5388-.6584.9198,0,1.7259.1985,2.4216.5991.6975.4005,1.2422.9503,1.6376,1.6512.3937.7009.5923,1.507.5923,2.4149h-9.5385Z"/><path fill="context-fill #20123a" d="M75.9964,20.94c-.6517-1.2778-1.5646-2.2621-2.739-2.9545-1.1761-.6907-2.5524-1.0369-4.1323-1.0369-1.6885,0-3.1242.3887-4.3104,1.1625-1.1846.7756-2.028,1.8243-2.532,3.148h-.2664v-4.0135h-6.0126v22.7486h6.3079v-13.1519c.0102-.9775.1951-1.8141.5566-2.5099.3598-.6958.8638-1.227,1.5104-1.5918.6465-.3649,1.395-.5482,2.2435-.5482,1.2643,0,2.2553.392,2.9766,1.1777.7213.784,1.0759,1.8735,1.0674,3.2651v13.3589h6.3078v-14.4841c0-1.7683-.3258-3.2905-.9775-4.5701Z"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 106 KiB |
Before Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.6 KiB |
1
configs/branding/twilight/MacOSInstaller.svg
Normal file
@@ -0,0 +1 @@
|
||||
<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>
|
After Width: | Height: | Size: 219 B |
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
configs/branding/twilight/VisualElements_150.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
configs/branding/twilight/VisualElements_70.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 5.9 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
BIN
configs/branding/twilight/content/about-logo.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
1
configs/branding/twilight/content/about-logo.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 80 80"><defs><style>.g{fill:url(#e);}.g,.h,.i{stroke-width:0px;}.h{fill:#a570ff;}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity="0"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,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.2511,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.9896,4.6658-4.409,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.2511-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 |
BIN
configs/branding/twilight/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
1
configs/branding/twilight/content/about-wordmark.svg
Normal file
After Width: | Height: | Size: 6.4 KiB |
1
configs/branding/twilight/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/twilight/document.ico
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
configs/branding/twilight/document_pdf.ico
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
configs/branding/twilight/firefox.ico
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/twilight/firefox64.ico
Normal file
After Width: | Height: | Size: 31 KiB |