Compare commits
492 Commits
1.0.0-a.8
...
1.0.0-a.29
Author | SHA1 | Date | |
---|---|---|---|
![]() |
92959769df | ||
![]() |
e4d56fd7d9 | ||
![]() |
b77f864668 | ||
![]() |
e02a44b20b | ||
![]() |
eb2d91256f | ||
![]() |
ff9876ebac | ||
![]() |
d6ddb542e9 | ||
![]() |
8ba6ba14e8 | ||
![]() |
6c58c9d61c | ||
![]() |
6f0609dd8c | ||
![]() |
ebba41c735 | ||
![]() |
65e040d987 | ||
![]() |
29a85db998 | ||
![]() |
d50a745e95 | ||
![]() |
a5854174c7 | ||
![]() |
5ef37aa079 | ||
![]() |
4c622d1429 | ||
![]() |
5593e7c437 | ||
![]() |
940bbae367 | ||
![]() |
4d8558929c | ||
![]() |
c05547248f | ||
![]() |
1a5e788476 | ||
![]() |
0af7b8b5b6 | ||
![]() |
95e444c31c | ||
![]() |
b011ad3de9 | ||
![]() |
ff188e0e1c | ||
![]() |
5ef88531d2 | ||
![]() |
410c875151 | ||
![]() |
bbad093d64 | ||
![]() |
e7103f1d87 | ||
![]() |
d9c3973b9d | ||
![]() |
d65681505d | ||
![]() |
739eff84f2 | ||
![]() |
d5e7d0c36f | ||
![]() |
90ca6ea99a | ||
![]() |
fdb4696066 | ||
![]() |
22a5dcddf3 | ||
![]() |
47ba86f211 | ||
![]() |
e2e7756649 | ||
![]() |
85b605db14 | ||
![]() |
cf48a52949 | ||
![]() |
dfde0f4baa | ||
![]() |
31b41329f2 | ||
![]() |
f856d9db6d | ||
![]() |
4187e20fbc | ||
![]() |
54b4f6e932 | ||
![]() |
bcabada80e | ||
![]() |
5c1decc77b | ||
![]() |
04af43909e | ||
![]() |
e808443631 | ||
![]() |
a47023e0f3 | ||
![]() |
ae9c99c7bc | ||
![]() |
187688e6ea | ||
![]() |
7854e26823 | ||
![]() |
d38eb962de | ||
![]() |
b2c2a134b0 | ||
![]() |
4874b4a1cd | ||
![]() |
983e85033f | ||
![]() |
38e6f075f4 | ||
![]() |
4146ad0936 | ||
![]() |
cf2435081a | ||
![]() |
e6f8eede34 | ||
![]() |
72f76608b6 | ||
![]() |
4eb07c762a | ||
![]() |
bbb4b64940 | ||
![]() |
cac80a2985 | ||
![]() |
ca1a63dbf1 | ||
![]() |
31fb9296c7 | ||
![]() |
7dd3e08409 | ||
![]() |
b537e5566a | ||
![]() |
5dd2a90f46 | ||
![]() |
034f351ac6 | ||
![]() |
195b215f5b | ||
![]() |
74d1385566 | ||
![]() |
957fe60a3d | ||
![]() |
5ac6cf4465 | ||
![]() |
29d9c85923 | ||
![]() |
78729d44de | ||
![]() |
483bee452e | ||
![]() |
8a87e3a0af | ||
![]() |
07283e1050 | ||
![]() |
1eaf6e49ef | ||
![]() |
c40d56b3b8 | ||
![]() |
ed7ad501b7 | ||
![]() |
964e0733b1 | ||
![]() |
c319a83d58 | ||
![]() |
4589c543da | ||
![]() |
0c3930425a | ||
![]() |
2f790586b2 | ||
![]() |
7d3b47f4f6 | ||
![]() |
69a1e0f1b9 | ||
![]() |
f78ad97710 | ||
![]() |
984e29f4cd | ||
![]() |
72c535b039 | ||
![]() |
000c41038d | ||
![]() |
776c9f69d5 | ||
![]() |
b38acdd8be | ||
![]() |
c8ad6cb70e | ||
![]() |
bb6113f221 | ||
![]() |
83d91ea38c | ||
![]() |
481687bdab | ||
![]() |
47f91322f6 | ||
![]() |
4549ac3671 | ||
![]() |
7ec8523c95 | ||
![]() |
1bd8f37381 | ||
![]() |
fa7a0ac661 | ||
![]() |
8f800f5134 | ||
![]() |
9cdfc864b3 | ||
![]() |
b2b3fb0b07 | ||
![]() |
c92931e005 | ||
![]() |
7c82ce5c23 | ||
![]() |
f36613e7e8 | ||
![]() |
71c131032b | ||
![]() |
81a8715b7b | ||
![]() |
5599000d33 | ||
![]() |
8cdf09daa0 | ||
![]() |
fc6a70162b | ||
![]() |
bc109d33c8 | ||
![]() |
9f10b74af5 | ||
![]() |
a65753d9a0 | ||
![]() |
234f116964 | ||
![]() |
6b34aa9d3d | ||
![]() |
3939aa8809 | ||
![]() |
de5f73a9e6 | ||
![]() |
26a9e255c1 | ||
![]() |
b50ed3a2d5 | ||
![]() |
0900c27d2b | ||
![]() |
ae723290d7 | ||
![]() |
1834fe2177 | ||
![]() |
3d6707fe21 | ||
![]() |
7e3eba280b | ||
![]() |
cba262e090 | ||
![]() |
b187c9383b | ||
![]() |
e7013c4db4 | ||
![]() |
1b5881c0fb | ||
![]() |
66d8d4bd71 | ||
![]() |
552a3c3cac | ||
![]() |
fb58c42938 | ||
![]() |
7a4a7681b9 | ||
![]() |
5a3a383cde | ||
![]() |
5943be1b39 | ||
![]() |
136993f203 | ||
![]() |
afc3eb7ee6 | ||
![]() |
c073febc29 | ||
![]() |
85842227aa | ||
![]() |
66ac0b9812 | ||
![]() |
3c2d617771 | ||
![]() |
03c0e70173 | ||
![]() |
f65888f5f4 | ||
![]() |
0f0cc0e03a | ||
![]() |
d7fe28886c | ||
![]() |
1d017d1dea | ||
![]() |
1479679cb6 | ||
![]() |
8c6b26b6f9 | ||
![]() |
3783625818 | ||
![]() |
0a5e803550 | ||
![]() |
a8980ae3ef | ||
![]() |
02fe8a0d0b | ||
![]() |
5700c61b17 | ||
![]() |
21930a9bf9 | ||
![]() |
e044f7d547 | ||
![]() |
1e4dea86bb | ||
![]() |
e737c55c74 | ||
![]() |
2c4cb2edd5 | ||
![]() |
ca6f3d882c | ||
![]() |
eea7e43ff8 | ||
![]() |
dec1fdd369 | ||
![]() |
01ec0092a2 | ||
![]() |
8af7418f3f | ||
![]() |
4589a22790 | ||
![]() |
15ecc5b8d4 | ||
![]() |
6c25279107 | ||
![]() |
979760a841 | ||
![]() |
c52853251d | ||
![]() |
7b23af1d76 | ||
![]() |
ec9804314d | ||
![]() |
b1d13f947d | ||
![]() |
f558aee231 | ||
![]() |
9d8c91809e | ||
![]() |
24400237a0 | ||
![]() |
6b766db159 | ||
![]() |
37297d9c9f | ||
![]() |
6c90e9726f | ||
![]() |
fe54849453 | ||
![]() |
df693676b7 | ||
![]() |
77a539243d | ||
![]() |
075ae9a459 | ||
![]() |
8f8bc5a9be | ||
![]() |
81225c05ee | ||
![]() |
3d6fc9ea7a | ||
![]() |
2d6660aa4d | ||
![]() |
739d1b1f59 | ||
![]() |
8cd17adbf5 | ||
![]() |
60984fefb9 | ||
![]() |
99b9448f2c | ||
![]() |
abf7ec6c1d | ||
![]() |
13515a5458 | ||
![]() |
3b9a96e330 | ||
![]() |
c4db4b2bd9 | ||
![]() |
f5b42396b0 | ||
![]() |
fd627a25d5 | ||
![]() |
31c0cf5074 | ||
![]() |
d8d8ffa438 | ||
![]() |
45d43c0666 | ||
![]() |
cd62640086 | ||
![]() |
6cf7fe90b8 | ||
![]() |
edca28339b | ||
![]() |
bd28d7439e | ||
![]() |
f6e486ba17 | ||
![]() |
48e0dbe68a | ||
![]() |
ae67b53276 | ||
![]() |
48ee6519a5 | ||
![]() |
b607473973 | ||
![]() |
c46aa247c7 | ||
![]() |
5a72ca7703 | ||
![]() |
7e00a28ba9 | ||
![]() |
b590535343 | ||
![]() |
6309853dd6 | ||
![]() |
b584bb2d4e | ||
![]() |
e0712d80a4 | ||
![]() |
bc291c99c3 | ||
![]() |
6c802b75fa | ||
![]() |
797d3c1766 | ||
![]() |
844a329be5 | ||
![]() |
fb6cbc0e23 | ||
![]() |
e64d8a4fd2 | ||
![]() |
8c90f378d7 | ||
![]() |
7a0d962e62 | ||
![]() |
92f3db6633 | ||
![]() |
d5abc0dd48 | ||
![]() |
36e7fdad8b | ||
![]() |
194056007a | ||
![]() |
3bfbcf64e3 | ||
![]() |
5f9f555083 | ||
![]() |
5cd5db6b3e | ||
![]() |
b596d7b466 | ||
![]() |
d2d3d39464 | ||
![]() |
4087d82922 | ||
![]() |
5a9c4a6666 | ||
![]() |
33ef14c3d8 | ||
![]() |
ad9c9c6141 | ||
![]() |
19ccd0760a | ||
![]() |
e474815d7e | ||
![]() |
8cdc29f1e8 | ||
![]() |
a08c1567eb | ||
![]() |
bc7df76629 | ||
![]() |
c049059911 | ||
![]() |
8c0082bcf0 | ||
![]() |
db4a9b41cc | ||
![]() |
f85794b47d | ||
![]() |
83dcaa3e54 | ||
![]() |
af75d67b30 | ||
![]() |
cedd505a09 | ||
![]() |
1a450ebc72 | ||
![]() |
a395fe34d0 | ||
![]() |
e604372a9f | ||
![]() |
d5e8babaf2 | ||
![]() |
650337f9b5 | ||
![]() |
aa4d950be1 | ||
![]() |
c2dd526195 | ||
![]() |
5df2cce01c | ||
![]() |
aba58af1da | ||
![]() |
c6455e86ef | ||
![]() |
c57db962f8 | ||
![]() |
bd449faf05 | ||
![]() |
cf3f673c35 | ||
![]() |
27386c608e | ||
![]() |
14b7d97579 | ||
![]() |
16b5521087 | ||
![]() |
903f73f7d5 | ||
![]() |
f4e3bfdb9e | ||
![]() |
7276f8a885 | ||
![]() |
f96981e84b | ||
![]() |
5cb8d5356a | ||
![]() |
241614f9e8 | ||
![]() |
6b0e5f6b30 | ||
![]() |
ea6512aee3 | ||
![]() |
7205aaa360 | ||
![]() |
ee5b193785 | ||
![]() |
d54b59554c | ||
![]() |
8d33db3c15 | ||
![]() |
c77110efec | ||
![]() |
0dac0afc9d | ||
![]() |
f515fd9566 | ||
![]() |
c67554a5e5 | ||
![]() |
fb7b6f05f2 | ||
![]() |
1553348812 | ||
![]() |
2035706c2a | ||
![]() |
be8a7ef6a4 | ||
![]() |
ab0e82790b | ||
![]() |
0527f8b788 | ||
![]() |
b07759dab6 | ||
![]() |
e552564ba0 | ||
![]() |
2264c5f67d | ||
![]() |
cc024a4528 | ||
![]() |
4402ed8fc1 | ||
![]() |
0c07a44dc6 | ||
![]() |
1e368f6f0f | ||
![]() |
5b50649739 | ||
![]() |
5718798e81 | ||
![]() |
fd0fbc7fb6 | ||
![]() |
87801ca3be | ||
![]() |
80d0bbcdff | ||
![]() |
84a1ea31e5 | ||
![]() |
7758bdabce | ||
![]() |
0de414158b | ||
![]() |
03b3436025 | ||
![]() |
d250c34d41 | ||
![]() |
ec2466ca02 | ||
![]() |
fc5bd615f4 | ||
![]() |
1e1d78a874 | ||
![]() |
d3287ce216 | ||
![]() |
fb6845f651 | ||
![]() |
e50d16b0cf | ||
![]() |
246a6d60da | ||
![]() |
6f7a6faf90 | ||
![]() |
3f1bdfe50d | ||
![]() |
537b20d2dc | ||
![]() |
d810608a8c | ||
![]() |
20b6203851 | ||
![]() |
9474fa3f3c | ||
![]() |
5dfaef2594 | ||
![]() |
8005aa1f43 | ||
![]() |
cd234259f7 | ||
![]() |
df26d06d12 | ||
![]() |
1265cd623e | ||
![]() |
de19bdf2b4 | ||
![]() |
056f70a6fa | ||
![]() |
08e7a92223 | ||
![]() |
5316ff8e47 | ||
![]() |
214e290af3 | ||
![]() |
0499ba0004 | ||
![]() |
a513d95aad | ||
![]() |
fd556f8186 | ||
![]() |
c61eb6d28a | ||
![]() |
3c04945df6 | ||
![]() |
c27168953a | ||
![]() |
33e731dfe5 | ||
![]() |
fdd05926ab | ||
![]() |
ccd40b544a | ||
![]() |
0aa9d8c6ed | ||
![]() |
eef45c8007 | ||
![]() |
9ce7c60d4a | ||
![]() |
79701ed6dc | ||
![]() |
a90e5f3456 | ||
![]() |
a933c5b9bd | ||
![]() |
9968d550ae | ||
![]() |
3e17c3c1e2 | ||
![]() |
2d72365dbd | ||
![]() |
d61186a042 | ||
![]() |
33ba2f25cd | ||
![]() |
3e4d69a012 | ||
![]() |
c27f4767db | ||
![]() |
6740a7a610 | ||
![]() |
c00eb07484 | ||
![]() |
1b72b68a47 | ||
![]() |
0ac10f2c03 | ||
![]() |
0b824acd20 | ||
![]() |
b37b2e656a | ||
![]() |
36d6abda0d | ||
![]() |
07893e79fe | ||
![]() |
d8a9cabb2b | ||
![]() |
9729f8d84e | ||
![]() |
641c709f5d | ||
![]() |
be45bdb83f | ||
![]() |
2773bd4850 | ||
![]() |
a0e95e7748 | ||
![]() |
b90e50ed87 | ||
![]() |
9c8b0081c0 | ||
![]() |
bb1cd6097b | ||
![]() |
1496f3addc | ||
![]() |
a2bd16a210 | ||
![]() |
26e158072e | ||
![]() |
84a5f05eb6 | ||
![]() |
79967edb22 | ||
![]() |
53644a4ba0 | ||
![]() |
01df43fdc5 | ||
![]() |
b524ec7569 | ||
![]() |
eea0a8aee7 | ||
![]() |
498c909756 | ||
![]() |
661dcbb9f9 | ||
![]() |
c2e8b2790c | ||
![]() |
14da8cd9e7 | ||
![]() |
741cfd7af4 | ||
![]() |
fa6911df5e | ||
![]() |
4e61ab5e98 | ||
![]() |
3900908ed7 | ||
![]() |
3cd21f5516 | ||
![]() |
29411d02d5 | ||
![]() |
ab5cf96bf1 | ||
![]() |
d60d4e888a | ||
![]() |
9998f93942 | ||
![]() |
76b2b55eda | ||
![]() |
b224616b43 | ||
![]() |
236c4160fc | ||
![]() |
7e3c44846d | ||
![]() |
b1709c757a | ||
![]() |
65841d2085 | ||
![]() |
58f18098f7 | ||
![]() |
e31d49ec36 | ||
![]() |
3454ca6336 | ||
![]() |
bd5c242c8c | ||
![]() |
86f8b91fdb | ||
![]() |
3d57cff39b | ||
![]() |
7b40eba9b7 | ||
![]() |
57ac6c1b37 | ||
![]() |
d7630b258a | ||
![]() |
0883536f75 | ||
![]() |
6e2b4b17e6 | ||
![]() |
38e4a7150c | ||
![]() |
052774c5c3 | ||
![]() |
18055e09d9 | ||
![]() |
e24dcdb6ac | ||
![]() |
e3774d666f | ||
![]() |
ec1eef6159 | ||
![]() |
6862e6cbc6 | ||
![]() |
639806e13f | ||
![]() |
ef01c86d7c | ||
![]() |
e32d9cad92 | ||
![]() |
3b5e401899 | ||
![]() |
3bfdb7e3db | ||
![]() |
e567dee12f | ||
![]() |
c55fadc889 | ||
![]() |
33d2954e93 | ||
![]() |
9304b51391 | ||
![]() |
0347ead8a1 | ||
![]() |
9fd9883c8f | ||
![]() |
01e99f6f3d | ||
![]() |
259072a5e5 | ||
![]() |
5079bb6364 | ||
![]() |
37bc8f5f65 | ||
![]() |
4f97d66443 | ||
![]() |
8e19e74894 | ||
![]() |
babc34cc90 | ||
![]() |
c2f97454ac | ||
![]() |
7de872b4dd | ||
![]() |
dc5992bdc7 | ||
![]() |
453c9fef53 | ||
![]() |
5d946db186 | ||
![]() |
406f11dd9a | ||
![]() |
be1efb2ac5 | ||
![]() |
6c4b3aa6f9 | ||
![]() |
2975d5c645 | ||
![]() |
97ce6bae00 | ||
![]() |
b659bfd5e6 | ||
![]() |
81f88c2c21 | ||
![]() |
5bbbefb2a7 | ||
![]() |
ea5c42674e | ||
![]() |
ad2e2f6b24 | ||
![]() |
3333fe22d2 | ||
![]() |
349b33c115 | ||
![]() |
2c0b34e666 | ||
![]() |
84bc2c3c89 | ||
![]() |
2927b58924 | ||
![]() |
a6aa7e3eae | ||
![]() |
d67e1e5b3e | ||
![]() |
09b808b18a | ||
![]() |
deaa0e2781 | ||
![]() |
3140931cdb | ||
![]() |
084d70e68d | ||
![]() |
ac3df15a57 | ||
![]() |
6688fff000 | ||
![]() |
33ff028509 | ||
![]() |
e2ca345dea | ||
![]() |
b17fb12715 | ||
![]() |
51bd006bd1 | ||
![]() |
4fc321292f | ||
![]() |
ea3c6e7131 | ||
![]() |
234f4ecfed | ||
![]() |
d5164f05a5 | ||
![]() |
ae2aa202de | ||
![]() |
940ce6a6d7 | ||
![]() |
edf17c7eed | ||
![]() |
2f668de97d | ||
![]() |
73dea3ad96 | ||
![]() |
2171635145 | ||
![]() |
935fcd9153 | ||
![]() |
a9bfa4dd26 | ||
![]() |
2dc59efd99 | ||
![]() |
b1a3f97592 | ||
![]() |
3bd2d169b4 | ||
![]() |
fc8a501e73 | ||
![]() |
32a3ad96ee | ||
![]() |
3f684745ee | ||
![]() |
13f1daf465 | ||
![]() |
28c84d971d | ||
![]() |
9251970257 | ||
![]() |
a3fd8d17ba | ||
![]() |
17fea1b017 | ||
![]() |
b11c0d8700 | ||
![]() |
86aca3144f | ||
![]() |
11890a70c0 |
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
|
||||
*.patch linguist-language=C++
|
1
.github/FUNDING.yml
vendored
@@ -1,2 +1,3 @@
|
||||
|
||||
patreon: zen_browser
|
||||
ko_fi: zen_browser
|
||||
|
6
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,6 +1,5 @@
|
||||
name: Bug Report
|
||||
description: File a bug report
|
||||
labels: [bug]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
@@ -51,7 +50,8 @@ body:
|
||||
multiple: true
|
||||
options:
|
||||
- Linux
|
||||
- macOS
|
||||
- macOS - aarch64
|
||||
- macOS - Intel
|
||||
- Windows
|
||||
validations:
|
||||
required: true
|
||||
@@ -60,4 +60,4 @@ body:
|
||||
attributes:
|
||||
label: Relevant log output
|
||||
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||
render: shell
|
||||
render: shell
|
||||
|
2
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1 +1 @@
|
||||
blank_issues_enabled: true
|
||||
blank_issues_enabled: false
|
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,20 +0,0 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: feature_request
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
18
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
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.
|
212
.github/workflows/alpha.yml
vendored
@@ -30,8 +30,11 @@ jobs:
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
@@ -87,8 +90,10 @@ jobs:
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
@@ -125,20 +130,22 @@ jobs:
|
||||
|
||||
|
||||
source:
|
||||
if: false
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build-data]
|
||||
|
||||
needs: [build-data, check-release]
|
||||
environment: production
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
@@ -185,6 +192,7 @@ jobs:
|
||||
# needs: [build-data]
|
||||
# permissions:
|
||||
# contents: write
|
||||
# secrets: inherit
|
||||
# with:
|
||||
# build-version: ${{ needs.build-data.outputs.version }}
|
||||
# generate-gpo: true
|
||||
@@ -195,6 +203,7 @@ jobs:
|
||||
# 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 }}
|
||||
@@ -205,6 +214,7 @@ jobs:
|
||||
uses: ./.github/workflows/windows-alpha-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
@@ -215,6 +225,7 @@ jobs:
|
||||
uses: ./.github/workflows/linux-alpha-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
@@ -224,20 +235,89 @@ jobs:
|
||||
uses: ./.github/workflows/macos-alpha-build.yml
|
||||
permissions:
|
||||
contents: write
|
||||
secrets: inherit
|
||||
needs: [build-data]
|
||||
with:
|
||||
build-version: ${{ needs.build-data.outputs.version }}
|
||||
|
||||
appimage:
|
||||
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
needs: [linux]
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
npm install -g pnpm
|
||||
sudo apt-get update
|
||||
sudo apt-get -y install libfuse2 desktop-file-utils
|
||||
|
||||
- name: Download linux build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
|
||||
- name: Execute AppImage build
|
||||
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
|
||||
|
||||
APPDIR=AppDir
|
||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||
mv zen/* $APPDIR/
|
||||
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||
chmod +x *.AppImage
|
||||
chmod +x ./AppDir/AppRun
|
||||
echo "AppDir: $APPDIR"
|
||||
ls -al
|
||||
find .
|
||||
ls -al "$APPDIR"
|
||||
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp zstd --mksquashfs-opt -Xcompression-level --mksquashfs-opt 10 \
|
||||
-u "gh-releases-zsync|$GITHUB_REPOSITORY_OWNER|desktop|latest|zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync" \
|
||||
"$APPDIR" zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
mkdir dist
|
||||
mv zen*AppImage* dist/.
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||
|
||||
- name: Upload artifact (ZSync)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||
|
||||
release:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
permissions: write-all
|
||||
name: Release
|
||||
needs: [build-data, linux, source, windows-step-3, check-release, mac]
|
||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Update repo
|
||||
uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Git Pull
|
||||
run: git pull
|
||||
@@ -258,9 +338,14 @@ jobs:
|
||||
run: |
|
||||
cd updates-server
|
||||
mkdir -p updates
|
||||
cp -a ../linux_update_manifest/. updates/
|
||||
cp -a ../windows_update_manifest/. updates/
|
||||
cp -a ../macos_update_manifest/. updates/
|
||||
cp -a ../linux_update_manifest_generic/. updates/
|
||||
cp -a ../linux_update_manifest_specific/. updates/
|
||||
|
||||
cp -a ../windows_update_manifest_generic/. updates/
|
||||
cp -a ../windows_update_manifest_specific/. updates/
|
||||
|
||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||
cp -a ../macos_update_manifest_x64/. updates/
|
||||
|
||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||
with:
|
||||
@@ -274,14 +359,105 @@ jobs:
|
||||
with:
|
||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||
prerelease: false
|
||||
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
||||
files: |
|
||||
zen.linux.tar.bz2
|
||||
zen.win64.zip
|
||||
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.mar
|
||||
macos.mar
|
||||
windows-generic.mar
|
||||
macos-x64.mar
|
||||
macos-aarch64.mar
|
||||
zen.installer.exe
|
||||
zen.installer.pretty.exe
|
||||
zen.macos.dmg
|
||||
zen.installer-generic.exe
|
||||
zen.macos-x64.dmg
|
||||
zen.macos-aarch64.dmg
|
||||
|
||||
release-flatpak:
|
||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||
permissions: write-all
|
||||
name: Release Flatpak
|
||||
needs: [release, linux, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone flatpak repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: flathub/io.github.zen_browser.zen
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download linux generic build
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: zen.linux-generic.tar.bz2
|
||||
|
||||
- name: Update repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: zen-browser
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Download flatpak archive
|
||||
run: |
|
||||
wget https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar -O archive.tar
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
git config --global user.name "github-actions[bot]"
|
||||
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
- name: Prepare flatpak manifest
|
||||
run: |
|
||||
python3 ./zen-browser/scripts/prepare-flatpak-release.py \
|
||||
--flatpak-archive archive.tar \
|
||||
--version ${{ needs.build-data.outputs.version }} \
|
||||
--linux-archive zen.linux-generic.tar.bz2 \
|
||||
--output io.github.zen_browser.zen.yml \
|
||||
--template-root ./zen-browser/flatpak
|
||||
|
||||
- name: Commit changes
|
||||
run: |
|
||||
git add io.github.zen_browser.zen.yml
|
||||
git commit -m "Update to version ${{ needs.build-data.outputs.version }}"
|
||||
|
||||
- name: Clean up
|
||||
run: |
|
||||
rm -rf zen-browser
|
||||
rm -rf archive.tar
|
||||
rm -rf zen.linux-generic.tar.bz2
|
||||
|
||||
- name: Upload flatpak manifest
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: io.github.zen_browser.zen.yml
|
||||
path: ./io.github.zen_browser.zen.yml
|
||||
|
||||
- name: Create pull request
|
||||
uses: peter-evans/create-pull-request@v6
|
||||
env:
|
||||
GIT_TRACE: 1
|
||||
GIT_CURL_VERBOSE: 1
|
||||
with:
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
commit-message: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||
title: 🚀 Update to version ${{ needs.build-data.outputs.version }}
|
||||
body: |
|
||||
This PR updates the Zen Browser Flatpak package to version ${{ needs.build-data.outputs.version }}.
|
||||
|
||||
@mauro-balades
|
||||
branch: update-to-${{ needs.build-data.outputs.version }}
|
||||
base: master
|
||||
git-token: ${{ secrets.DEPLOY_KEY }}
|
||||
delete-branch: true
|
||||
|
||||
|
||||
|
30
.github/workflows/clear-cache.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Clear cache
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
actions: write
|
||||
|
||||
jobs:
|
||||
clear-cache:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clear cache
|
||||
uses: actions/github-script@v6
|
||||
with:
|
||||
script: |
|
||||
console.log("About to clear")
|
||||
const caches = await github.rest.actions.getActionsCacheList({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
})
|
||||
for (const cache of caches.data.actions_caches) {
|
||||
console.log(cache)
|
||||
github.rest.actions.deleteActionsCacheById({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
cache_id: cache.id,
|
||||
})
|
||||
}
|
||||
console.log("Clear completed")
|
53
.github/workflows/linux-alpha-build.yml
vendored
@@ -9,23 +9,33 @@ on:
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
environment: production
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
name: Build Linux - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
||||
- name: Set Swap Space
|
||||
uses: pierotofy/set-swap-space@v1.0
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
swap-size-gb: 6
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
@@ -38,10 +48,7 @@ jobs:
|
||||
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: Free up space
|
||||
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||
|
||||
|
||||
- name: Configure sccache
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
@@ -86,8 +93,13 @@ jobs:
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
@@ -95,35 +107,42 @@ jobs:
|
||||
cd ..
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
continue-on-error: true
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Build again if it failed
|
||||
if: failure()
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv dist/zen-*.tar.bz2 "zen.linux.tar.bz2"
|
||||
mv dist/output.mar linux.mar
|
||||
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2"
|
||||
mv dist/output.mar linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
|
||||
- name: Upload binary
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.linux.tar.bz2
|
||||
path: ./zen.linux.tar.bz2
|
||||
|
||||
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||
|
||||
- name: Upload mar
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux.mar
|
||||
path: ./linux.mar
|
||||
name: linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: linux_update_manifest
|
||||
name: linux_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: ./dist/update
|
||||
|
80
.github/workflows/macos-alpha-build.yml
vendored
@@ -6,10 +6,19 @@ on:
|
||||
description: 'The version to build'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
jobs:
|
||||
mac-build:
|
||||
runs-on: macos-14
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
environment: production
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- arch: aarch64
|
||||
os: macos-14
|
||||
- arch: x64
|
||||
os: macos-13
|
||||
|
||||
steps:
|
||||
- name: Install Node.js
|
||||
@@ -22,6 +31,9 @@ jobs:
|
||||
python-version: '3.11'
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup git
|
||||
run: |
|
||||
@@ -33,8 +45,29 @@ jobs:
|
||||
brew install cairo sccache gnu-tar mercurial
|
||||
sudo pip install setuptools
|
||||
|
||||
- name: Free up space
|
||||
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||
# completly uninstall python3 and python3.12
|
||||
brew uninstall --ignore-dependencies python3.12 -f
|
||||
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
python3 -m pip install --user mercurial
|
||||
|
||||
rm '/usr/local/bin/2to3-3.11' # fix Could not symlink bin/2to3-3.11
|
||||
rm '/usr/local/bin/2to3-3.12' # fix Could not symlink bin/2to3-3.12
|
||||
rm /usr/local/bin/2to3 # fix Could not symlink bin/2to3
|
||||
rm '/usr/local/bin/idle3.11' #fix Could not symlink bin/idle3.11
|
||||
rm '/usr/local/bin/idle3.12' # fix Could not symlink bin/idle3.12
|
||||
rm '/usr/local/bin/idle3' # fix Could not symlink bin/idle3
|
||||
rm '/usr/local/bin/pydoc3.11' # fix Could not symlink bin/pydoc3.11
|
||||
rm '/usr/local/bin/pydoc3.12' # fix Could not symlink bin/pydoc3.12
|
||||
rm '/usr/local/bin/pydoc3' # fix Could not symlink bin/pydoc3
|
||||
rm '/usr/local/bin/python3.11' # fix Could not symlink bin/python3.11
|
||||
rm '/usr/local/bin/python3.12' # fix Could not symlink bin/python3.12
|
||||
rm '/usr/local/bin/python3' # fix Could not symlink bin/python3
|
||||
rm '/usr/local/bin/python3.11-config' # fix Could not symlink bin/python3.11-config
|
||||
rm '/usr/local/bin/python3.12-config' # fix Could not symlink bin/python3.12-config
|
||||
rm '/usr/local/bin/python3-config' # fix Could not symlink bin/python3-config
|
||||
|
||||
brew install watchman
|
||||
|
||||
- name: Force usage fo gnu-tar
|
||||
run: |
|
||||
@@ -59,44 +92,59 @@ jobs:
|
||||
- name: Download firefox source and dependancies
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Import
|
||||
run: pnpm surfer import
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
./mach --no-interactive bootstrap --application-choice browser
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: |
|
||||
pnpm surfer import
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: build Zen
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: |
|
||||
if test "${{ matrix.arch }}" = "x64"; then
|
||||
export ZEN_DISABLE_LTO=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Rebuild Zen if failed
|
||||
if: failure()
|
||||
run: sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||
run: pnpm package
|
||||
|
||||
- name: Rename artifacts
|
||||
run: |
|
||||
mv ./dist/*.dmg "zen.macos.dmg"
|
||||
mv ./dist/output.mar macos.mar
|
||||
mv ./dist/*.dmg "zen.macos-${{ matrix.arch }}.dmg"
|
||||
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: zen.macos.dmg
|
||||
path: ./zen.macos.dmg
|
||||
name: zen.macos-${{ matrix.arch }}.dmg
|
||||
path: ./zen.macos-${{ matrix.arch }}.dmg
|
||||
|
||||
- name: Upload mar
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos.mar
|
||||
path: ./macos.mar
|
||||
name: macos-${{ matrix.arch }}.mar
|
||||
path: ./macos-${{ matrix.arch }}.mar
|
||||
|
||||
- name: Upload update manifests
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: macos_update_manifest
|
||||
name: macos_update_manifest_${{ matrix.arch }}
|
||||
path: ./dist/update
|
||||
|
3
.github/workflows/src/alpha-build.sh
vendored
@@ -10,8 +10,7 @@ ulimit -n 4096
|
||||
|
||||
# Check if xfvb is installed
|
||||
if ! command -v Xvfb &> /dev/null; then
|
||||
if ! test "$ZEN_CROSS_COMPILING"
|
||||
then
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
Xvfb :2 -screen 0 1024x768x24 &
|
||||
export LLVM_PROFDATA=$HOME/.mozbuild/clang/bin/llvm-profdata
|
||||
export DISPLAY=:2
|
||||
|
50
.github/workflows/src/disk-setup-and-swap.sh
vendored
@@ -1,50 +0,0 @@
|
||||
|
||||
echo Before:
|
||||
if [ command -v free ]; then
|
||||
free -h
|
||||
fi
|
||||
if [ command -v df ]; then
|
||||
df -h
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
|
||||
sudo swapoff /mnt/swapfile
|
||||
sudo rm /mnt/swapfile
|
||||
sudo fallocate -l 10G /mnt/swapfile
|
||||
sudo chmod 600 /mnt/swapfile
|
||||
sudo mkswap /mnt/swapfile
|
||||
sudo swapon /mnt/swapfile
|
||||
sudo apt remove -y '^dotnet-.*' '^llvm-.*' '^php.*' '^mongodb-.*' '^mysql-.*' clang azure-cli google-cloud-sdk google-chrome-stable microsoft-edge firefox powershell mono-devel libgl1-mesa-dri acl aria2 autoconf automake binutils bison brotli bzip2 coreutils
|
||||
sudo apt autoremove -y
|
||||
sudo apt clean
|
||||
sudo rm -rf ./git
|
||||
sudo rm -rf /home/linuxbrew
|
||||
sudo rm -rf /usr/share/dotnet
|
||||
sudo rm -rf /usr/local/lib/android
|
||||
sudo rm -rf /usr/local/graalvm
|
||||
sudo rm -rf /usr/local/share/powershell
|
||||
sudo rm -rf /usr/local/share/chromium
|
||||
sudo rm -rf /opt/ghc
|
||||
sudo rm -rf /usr/local/share/boost
|
||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
||||
sudo rm -rf /etc/apache2
|
||||
sudo rm -rf /etc/nginx
|
||||
sudo rm -rf /usr/local/share/chrome_driver
|
||||
sudo rm -rf /usr/local/share/edge_driver
|
||||
sudo rm -rf /usr/local/share/gecko_driver
|
||||
sudo rm -rf /usr/share/java
|
||||
sudo rm -rf /usr/share/miniconda
|
||||
sudo rm -rf /usr/local/share/vcpkg
|
||||
|
||||
echo
|
||||
echo
|
||||
|
||||
echo After:
|
||||
if [ command -v free ]; then
|
||||
free -h
|
||||
fi
|
||||
if [ command -v df ]; then
|
||||
df -h
|
||||
fi
|
40
.github/workflows/src/windows_mozconfig
vendored
@@ -1,40 +0,0 @@
|
||||
|
||||
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
||||
|
||||
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
||||
export WINEDEBUG=-all
|
||||
|
||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||
#? https://phabricator.services.mozilla.com/D170170
|
||||
ac_add_options --target=x86_64-pc-windows-msvc
|
||||
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
export MOZ_PKG_FORMAT=TAR
|
||||
|
||||
export CROSS_BUILD=1
|
||||
CROSS_COMPILE=1
|
||||
TOOLS=$(echo ~)/win-cross
|
||||
|
||||
export MIDL="$TOOLS/wine/bin/widl"
|
||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
export WINEDEBUG=-all
|
||||
export WINE="$TOOLS/wine/bin/wine64"
|
||||
#export WIN32_REDIST_DIR="$TOOLS"/vs2022/VC/Redist/MSVC/14.34.31931/x64/Microsoft.VC143.CRT
|
||||
#export WIN_UCRT_REDIST_DIR="$TOOLS/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
|
||||
|
||||
ac_add_options --disable-maintenance-service
|
||||
ac_add_options --disable-bits-download
|
||||
|
||||
#if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||
# ac_add_options --enable-profile-generate=cross
|
||||
#else
|
||||
# ac_add_options --disable-profiling
|
||||
# ac_add_options --enable-profile-use=cross
|
||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
||||
#fi
|
||||
|
||||
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
75
.github/workflows/windows-alpha-build.yml
vendored
@@ -16,21 +16,30 @@ on:
|
||||
|
||||
jobs:
|
||||
windows-build:
|
||||
name: Build Windows - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
environment: production
|
||||
steps:
|
||||
- name: Free Disk Space (Ubuntu)
|
||||
uses: jlumbroso/free-disk-space@main
|
||||
with:
|
||||
# this might remove tools that are actually needed,
|
||||
# if set to "true" but frees about 6 GB
|
||||
tool-cache: false
|
||||
|
||||
- name: Install Node.js and pnpm
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 20
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
||||
- name: Set Swap Space
|
||||
uses: pierotofy/set-swap-space@v1.0
|
||||
with:
|
||||
swap-size-gb: 6
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
@@ -50,9 +59,6 @@ jobs:
|
||||
- name: Download
|
||||
run: pnpm surfer download
|
||||
|
||||
- name: Free up space
|
||||
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||
|
||||
- name: "win-cross Cache"
|
||||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
@@ -92,8 +98,6 @@ jobs:
|
||||
|
||||
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
|
||||
|
||||
cat ../.github/workflows/src/windows_mozconfig >> ../configs/common/mozconfig
|
||||
|
||||
cd ..
|
||||
npm install -g pnpm
|
||||
export SURFER_PLATFORM="win32"
|
||||
@@ -104,6 +108,9 @@ jobs:
|
||||
echo "export LIB=\"$(cd ~/.mozbuild/clang/lib/clang/* && cd lib/windows && pwd)\"" >> ../configs/common/mozconfig
|
||||
cat ../configs/common/mozconfig
|
||||
|
||||
sudo apt-get update
|
||||
sudo apt-get install dos2unix
|
||||
|
||||
ls ~/win-cross/wine || true
|
||||
ls ~/win-cross/vs2022 || true
|
||||
|
||||
@@ -119,6 +126,8 @@ jobs:
|
||||
cargo download -x windows=0.52.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
|
||||
@@ -128,24 +137,33 @@ jobs:
|
||||
path: ~/artifact
|
||||
|
||||
- name: Import
|
||||
run: pnpm surfer import --verbose
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: pnpm surfer import --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
- name: Build
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: |
|
||||
set -x
|
||||
dos2unix configs/windows/mozconfig
|
||||
export SURFER_PLATFORM="win32"
|
||||
export ZEN_CROSS_COMPILING=1
|
||||
# if test ${{ inputs.generate-gpo }}; then
|
||||
# export ZEN_GA_GENERATE_PROFILE=1
|
||||
# fi
|
||||
if test ${{ inputs.generate-gpo }} = true; then
|
||||
export ZEN_GA_GENERATE_PROFILE=1
|
||||
fi
|
||||
sh .github/workflows/src/alpha-build.sh
|
||||
|
||||
- name: Package
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||
run: |
|
||||
set -x
|
||||
export SURFER_PLATFORM="win32"
|
||||
pnpm package
|
||||
mv ./dist/output.mar windows.mar
|
||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
|
||||
ls ./dist
|
||||
ls .
|
||||
@@ -156,37 +174,44 @@ jobs:
|
||||
set -x
|
||||
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
|
||||
|
||||
- name: Rename artifacts
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
run: |
|
||||
mv ./zen.win64.zip zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||
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.win64.zip
|
||||
path: ./zen.win64.zip
|
||||
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 }}
|
||||
with:
|
||||
name: ${{ inputs.profile-data-path-archive }}
|
||||
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
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
name: windows.mar
|
||||
path: ./windows.mar
|
||||
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||
|
||||
- name: Upload installer
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
name: zen.installer.exe
|
||||
path: ./dist/zen.installer.exe
|
||||
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||
|
||||
- name: Upload installer stub
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
if: ${{ !inputs.generate-gpo && false }}
|
||||
with:
|
||||
name: zen.installer.pretty.exe
|
||||
path: ./dist/zen.installer.pretty.exe
|
||||
@@ -195,5 +220,5 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
if: ${{ !inputs.generate-gpo }}
|
||||
with:
|
||||
name: windows_update_manifest
|
||||
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
path: ./dist/update
|
||||
|
23
.github/workflows/windows-profile-build.yml
vendored
@@ -13,6 +13,11 @@ on:
|
||||
|
||||
jobs:
|
||||
windows-profile-build:
|
||||
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
generic: [true, false]
|
||||
runs-on: windows-latest
|
||||
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
|
||||
steps:
|
||||
@@ -28,52 +33,45 @@ jobs:
|
||||
run: |
|
||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||
git config --global user.name "mauro-balades"
|
||||
|
||||
- name: Install pnpm
|
||||
run: npm install -g pnpm
|
||||
|
||||
- name: Install Surfer
|
||||
run: |
|
||||
npm i -g @zen-browser/surfer
|
||||
|
||||
- uses: actions/download-artifact@v4
|
||||
name: Download artifact
|
||||
with:
|
||||
path: C:\artifact
|
||||
name: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||
|
||||
- name: Unpack artifact
|
||||
run: |
|
||||
cd C:\artifact
|
||||
ls
|
||||
7z x ${{ inputs.profile-data-path-archive }}
|
||||
Expand-Archive -Path .\${{ inputs.profile-data-path-archive }} -DestinationPath C:\artifact
|
||||
ls
|
||||
|
||||
- name: Setup
|
||||
run: |
|
||||
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe","C:\MozillaBuildSetup-Latest.exe")
|
||||
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||
|
||||
- name: Download firefox
|
||||
run: |
|
||||
git config --global core.safecrlf false
|
||||
pnpm surfer download
|
||||
|
||||
- name: Generate
|
||||
run: |
|
||||
ls
|
||||
$Env:USE_MINTTY = "0"
|
||||
|
||||
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\","/"
|
||||
$workspace_dir = $workspace_dir_current + "/engine"
|
||||
echo $workspace_dir
|
||||
|
||||
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
|
||||
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
|
||||
echo 'ls /c/Users/runneradmin/.mozbuild/clang/bin' '' >> mozilla-build-run.sh
|
||||
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||
|
||||
- name: 🐛 Debug Session
|
||||
if: ${{ failure() }}
|
||||
uses: Warpbuilds/gha-debug@v1.3
|
||||
@@ -82,10 +80,9 @@ jobs:
|
||||
- name: Publish merged.profdata
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: merged.profdata
|
||||
path: merged-${{ matrix.generic == true && 'generic' || 'specific' }}.profdata
|
||||
|
||||
- name: Publish en-US.log
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: en-US.log
|
||||
|
||||
path: en-US-${{ matrix.generic == true && 'generic' || 'specific' }}.log
|
6
.gitmodules
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
[submodule "src/browser/base/content/zen-components"]
|
||||
path = src/browser/base/content/zen-components
|
||||
url = https://github.com/zen-browser/components
|
||||
[submodule "l10n"]
|
||||
path = l10n
|
||||
url = https://github.com/zen-browser/l10n-packs
|
6
.vscode/settings.json
vendored
@@ -13,6 +13,10 @@
|
||||
"utility": "cpp",
|
||||
"variant": "cpp",
|
||||
"compare": "cpp",
|
||||
"thread": "cpp"
|
||||
"thread": "cpp",
|
||||
"string": "cpp",
|
||||
"string_view": "cpp",
|
||||
"span": "cpp",
|
||||
"vector": "cpp"
|
||||
}
|
||||
}
|
14
AppDir/AppRun
Normal file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
SELF=$(readlink -f "$0")
|
||||
HERE=${SELF%/*}
|
||||
export PATH="${HERE}:${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"
|
||||
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||
export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"
|
||||
export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles
|
||||
DEFAULT_XDG_DATA_DIRS='./share/:/usr/share/gnome:/usr/local/share/:/usr/share/'
|
||||
export XDG_DATA_DIRS="${HERE}/usr/share/:${XDG_DATA_DIRS:-$DEFAULT_XDG_DATA_DIRS}"
|
||||
export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"
|
||||
export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
|
||||
export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"
|
||||
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
|
||||
exec "${EXEC}" "$@"
|
8
AppDir/distribution/policies.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"policies": {
|
||||
"DisableAppUpdate": true,
|
||||
"AppAutoUpdate": false,
|
||||
"ManualAppUpdateOnly": true,
|
||||
"BackgroundAppUpdate": false
|
||||
}
|
||||
}
|
25
AppDir/zen.desktop
Normal file
@@ -0,0 +1,25 @@
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Exec=zen %u
|
||||
Icon=zen
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
||||
StartupWMClass=zen-alpha
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
X-MultipleArgs=false
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Actions=new-window;new-private-window;profilemanager;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
Exec=zen %u
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=Open a New Private Window
|
||||
Exec=zen --private-window %u
|
||||
|
||||
[Desktop Action profilemanager]
|
||||
Name=Open the Profile Manager
|
||||
Exec=zen --ProfileManager %u
|
56
README.md
@@ -3,18 +3,37 @@
|
||||
|
||||
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)
|
||||
|
||||
[](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>
|
||||
|
||||
# Compatibility
|
||||
|
||||
Zen is currently built using firefox version `128.0.3`!
|
||||
Zen is currently built using firefox version `129.0.2`!
|
||||
|
||||
* Checkout the latest [releases notes](https://get-zen.vercel.app/release-notes)!
|
||||
* Check out the latest [release notes](https://www.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)!
|
||||
|
||||
# Core Components
|
||||
|
||||
Some components used by @zen-browser as an attempt to make firefox forks a better place. You can find them [here](https://github.com/zen-browser/components).
|
||||
|
||||
## 🚀 Run Locally
|
||||
|
||||
Clone the project
|
||||
|
||||
```bash
|
||||
git clone https://github.com/zen-browser/desktop.git
|
||||
git clone https://github.com/zen-browser/desktop.git --recurse-submodules
|
||||
cd desktop
|
||||
```
|
||||
|
||||
@@ -42,19 +61,30 @@ Finally, run the browser!
|
||||
npm start
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are always welcome!
|
||||
|
||||
See `contributing.md` for ways to get started.
|
||||
|
||||
Please adhere to this project's `code of conduct`.
|
||||
|
||||
## Special Thanks
|
||||
|
||||
- [Erlend](https://havn.blog) (For making the logo)
|
||||
- [IAmJafeth](https://github.com/IAmJafeth) (For sponsoring the domain)
|
||||
- [Donno 🐒](https://www.onnno.nl/) (For making the logo)
|
||||
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
|
||||
- [nitro](https://github.com/n7itro) (For the amazing work on the browser)
|
||||
|
||||
## Third Party Code
|
||||
|
||||
Zen coudn't be in its current state without the help of these amazing projects!
|
||||
|
||||
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
||||
|
||||
## License
|
||||
|
||||
[MPL LICENSE](/LICENSE)
|
||||
[MPL LICENSE](./LICENSE)
|
||||
|
||||
## Star History
|
||||
|
||||
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date&theme=dark" />
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
||||
</picture>
|
||||
</a>
|
||||
|
||||
|
BIN
configs/branding/alpha/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
configs/branding/alpha/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
configs/branding/alpha/VisualElements_150.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
configs/branding/alpha/VisualElements_70.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
configs/branding/alpha/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
1
configs/branding/alpha/content/about-logo-private.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/alpha/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
configs/branding/alpha/content/about-logo.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
1
configs/branding/alpha/content/about-logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
configs/branding/alpha/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
11
configs/branding/alpha/content/about-wordmark.svg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?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>
|
After Width: | Height: | Size: 3.5 KiB |
3
configs/branding/alpha/content/firefox-wordmark.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<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>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/alpha/document.ico
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
configs/branding/alpha/document_pdf.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
configs/branding/alpha/firefox.ico
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
configs/branding/alpha/firefox64.ico
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
configs/branding/alpha/logo-mac.png
Normal file
After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 483 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 872 B After Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
configs/branding/alpha/pbmode.ico
Normal file
After Width: | Height: | Size: 103 KiB |
@@ -1,4 +1,4 @@
|
||||
<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" />
|
||||
<rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
|
||||
Sorry, your browser does not support inline SVG.
|
||||
</svg>
|
Before Width: | Height: | Size: 225 B After Width: | Height: | Size: 226 B |
BIN
configs/branding/beta/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
configs/branding/beta/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
configs/branding/beta/VisualElements_150.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
configs/branding/beta/VisualElements_70.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
configs/branding/beta/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
1
configs/branding/beta/content/about-logo-private.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/beta/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
configs/branding/beta/content/about-logo.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
1
configs/branding/beta/content/about-logo.svg
Normal file
@@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
configs/branding/beta/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
11
configs/branding/beta/content/about-wordmark.svg
Normal file
@@ -0,0 +1,11 @@
|
||||
<?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>
|
After Width: | Height: | Size: 3.5 KiB |
3
configs/branding/beta/content/firefox-wordmark.svg
Normal file
@@ -0,0 +1,3 @@
|
||||
<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>
|
After Width: | Height: | Size: 1.8 KiB |
BIN
configs/branding/beta/document.ico
Normal file
After Width: | Height: | Size: 106 KiB |
BIN
configs/branding/beta/document_pdf.ico
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
configs/branding/beta/firefox.ico
Normal file
After Width: | Height: | Size: 102 KiB |
BIN
configs/branding/beta/firefox64.ico
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
configs/branding/beta/logo-mac.png
Normal file
After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 483 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 872 B After Width: | Height: | Size: 624 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
configs/branding/beta/pbmode.ico
Normal file
After Width: | Height: | Size: 103 KiB |
@@ -1,12 +1,12 @@
|
||||
|
||||
# Browser branding
|
||||
ac_add_options --enable-update-channel=release
|
||||
|
||||
ac_add_options --with-app-name=${binName}
|
||||
ac_add_options --with-app-basename=Zen
|
||||
ac_add_options --enable-official-branding
|
||||
|
||||
# Localization
|
||||
ac_add_options --with-l10n-base="$PWD/browser/locales"
|
||||
|
||||
export MOZ_USER_DIR="${name}"
|
||||
export MOZ_APP_VENDOR="${vendor}"
|
||||
export MOZ_APP_BASENAME=Zen
|
||||
export MOZ_APP_PROFILE=${binName}
|
||||
export MOZ_APP_DISPLAYNAME="${name}"
|
||||
@@ -19,70 +19,66 @@ export MOZ_DISTRIBUTION_ID=${appId}
|
||||
# ac_add_options --enable-linker=gold
|
||||
|
||||
# Misc
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
export MOZ_SOURCE_REPO=https://github.com/zen-browser/desktop
|
||||
export MOZ_SOURCE_CHANGESET=${changeset}
|
||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
|
||||
ac_add_options --enable-bootstrap
|
||||
#export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
|
||||
ac_add_options --enable-application=browser
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
ac_add_options --enable-bootstrap
|
||||
|
||||
ac_add_options --enable-release
|
||||
ac_add_options --disable-debug
|
||||
ac_add_options --disable-debug-symbols
|
||||
ac_add_options --disable-debug-js-modules
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --enable-strip
|
||||
ac_add_options --enable-install-strip
|
||||
ac_add_options --disable-accessibility
|
||||
ac_add_options --disable-jprof
|
||||
|
||||
ac_add_options --enable-rust-simd
|
||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||
mk_add_options MOZ_CRASHREPORTER=0
|
||||
mk_add_options MOZ_DATA_REPORTING=0
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||
ac_add_options --enable-wasm-simd
|
||||
|
||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||
|
||||
ac_add_options --enable-proxy-bypass-protection
|
||||
ac_add_options --enable-hardening
|
||||
ac_add_options --disable-profiling
|
||||
|
||||
ac_add_options --disable-crashreporter
|
||||
ac_add_options --disable-geckodriver
|
||||
ac_add_options --disable-rust-tests
|
||||
|
||||
# Done by vlad, if something fails, it's his fault
|
||||
ac_add_options --disable-default-browser-agent
|
||||
|
||||
export MOZ_LTO=1
|
||||
ac_add_options MOZ_LTO=1
|
||||
ac_add_options --enable-lto
|
||||
if ! test "$ZEN_DISABLE_LTO"; then
|
||||
export MOZ_LTO=1
|
||||
ac_add_options MOZ_LTO=1
|
||||
ac_add_options --enable-lto=full,cross
|
||||
fi
|
||||
|
||||
ac_add_options --enable-jemalloc
|
||||
ac_add_options --disable-jprof
|
||||
|
||||
mk_add_options MOZILLA_OFFICIAL=1
|
||||
MOZILLA_OFFICIAL=1
|
||||
export MOZILLA_OFFICIAL=1
|
||||
|
||||
mk_add_options MOZ_OPTIMIZE=1
|
||||
MOZ_OPTIMIZE=1
|
||||
export MOZ_OPTIMIZE=1
|
||||
mk_add_options MOZ_OPTIMIZE=2
|
||||
MOZ_OPTIMIZE=2
|
||||
export MOZ_OPTIMIZE=2
|
||||
|
||||
export OPT_LEVEL="3"
|
||||
ac_add_options OPT_LEVEL="3"
|
||||
|
||||
export RUSTC_OPT_LEVEL="3"
|
||||
ac_add_options RUSTC_OPT_LEVEL="3"
|
||||
|
||||
mk_add_options AUTOCLOBBER=1
|
||||
export AUTOCLOBBER=1
|
||||
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
|
||||
# It causes link errors on windows
|
||||
ac_add_options --disable-dmd
|
||||
fi
|
||||
|
||||
ac_add_options --enable-updater
|
||||
|
||||
export MOZ_PACKAGE_JSSHELL=1
|
||||
fi
|
||||
|
||||
ac_add_options --enable-unverified-updates
|
||||
@@ -96,18 +92,14 @@ ac_add_options --enable-eme=widevine
|
||||
ac_add_options --allow-addon-sideload
|
||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
export MOZ_TELEMETRY_REPORTING=
|
||||
|
||||
mk_add_options MOZ_CRASHREPORTER=0
|
||||
mk_add_options MOZ_DATA_REPORTING=0
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||
|
||||
if test "$ZEN_CROSS_COMPILING"; then
|
||||
ac_add_options --target=x86_64-pc-linux-gnu
|
||||
fi
|
||||
# Allow loading unsigned extensions
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
mk_add_options MOZ_REQUIRE_SIGNING=
|
||||
|
||||
export MOZ_APP_UA_NAME="Firefox"
|
||||
|
||||
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
||||
# Sorry ptr, I didnt mean to!
|
||||
# Edit: ok, ill remove it, goodbye top #1 on fastest browsers benchmark :[
|
||||
# ac_add_options --without-wasm-sandboxed-libraries
|
||||
|
@@ -1,21 +1,22 @@
|
||||
ac_add_options --enable-wasm-avx
|
||||
|
||||
# not when cross compiling
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
|
||||
if test -d "$HOME/.mozbuild/clang/bin"; then
|
||||
export CC="$HOME"/.mozbuild/clang/bin/clang
|
||||
export CXX="$HOME"/.mozbuild/clang/bin/clang++
|
||||
else
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
fi
|
||||
|
||||
ac_add_options --enable-linker=lld
|
||||
ac_add_options --disable-elf-hack
|
||||
if test -d "$HOME/.mozbuild/clang/bin"; then
|
||||
export CC="$HOME"/.mozbuild/clang/bin/clang
|
||||
export CXX="$HOME"/.mozbuild/clang/bin/clang++
|
||||
else
|
||||
export CC=clang
|
||||
export CXX=clang++
|
||||
fi
|
||||
|
||||
if test "$ZEN_RELEASE"; then
|
||||
|
||||
ac_add_options --disable-dmd
|
||||
ac_add_options --enable-linker=lld
|
||||
ac_add_options --disable-elf-hack
|
||||
|
||||
ac_add_options --disable-gpsd
|
||||
ac_add_options --disable-necko-wifi
|
||||
|
||||
ac_add_options --enable-install-strip
|
||||
ac_add_options --enable-strip
|
||||
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
||||
|
||||
@@ -25,20 +26,33 @@ if test "$ZEN_RELEASE"; then
|
||||
ac_add_options --with-ccache=/home/runner/.mozbuild/sccache/sccache
|
||||
mk_add_options 'export SCCACHE_GHA_ENABLED=on'
|
||||
fi
|
||||
|
||||
# PGO may cause link errors on windows!
|
||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||
# WE ARE JUST SUPPORTING PGO FOR LINUX!
|
||||
export MOZ_PGO=1
|
||||
ac_add_options MOZ_PGO=1
|
||||
fi
|
||||
|
||||
export CFLAGS="$CFLAGS -march=x86-64-v2 -mtune=haswell -O3 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection"
|
||||
export CXXLAGS="$CXXFLAGS -march=x86-64-v2 -mtune=haswell -O3 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection"
|
||||
export MOZ_PGO=1
|
||||
ac_add_options MOZ_PGO=1
|
||||
|
||||
if test "$SURFER_COMPAT" = "true"; then
|
||||
ac_add_options --enable-optimize="-O3 -march=x86-64"
|
||||
|
||||
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
|
||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1"
|
||||
else
|
||||
ac_add_options --enable-wasm-avx
|
||||
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
|
||||
|
||||
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
|
||||
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
|
||||
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -mpopcnt -mpclmul"
|
||||
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
|
||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1"
|
||||
fi
|
||||
export VERBOSE=1
|
||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
export RUSTFLAGS="$RUSTFLAGS -C codegen-units=1 -Ctarget-cpu=x86-64-v2"
|
||||
fi
|
||||
|
||||
# Disable telemetry and tracking
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
||||
mk_add_options MOZ_DATA_REPORTING=
|
||||
ac_add_options --target=x86_64-pc-linux
|
||||
|
||||
ac_add_options --enable-alsa
|
||||
ac_add_options --enable-pulseaudio
|
||||
|
@@ -1,12 +1,36 @@
|
||||
POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
|
||||
# SURFER_COMPAT has a different meaning here, in macOS it means that the build is for
|
||||
# x86_64, not ARM64.
|
||||
unset MOZ_STDCXX_COMPAT
|
||||
if test "$ZEN_RELEASE"; then
|
||||
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=apple-m1"
|
||||
fi
|
||||
|
||||
ac_add_options --enable-install-strip
|
||||
ac_add_options --target=aarch64-apple-darwin
|
||||
ac_add_options --disable-dmd
|
||||
|
||||
export MOZ_MACBUNDLE_ID=${appId}
|
||||
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
||||
|
||||
if test "$SURFER_COMPAT" = "true"; then
|
||||
export MOZ_PGO=1
|
||||
ac_add_options MOZ_PGO=1
|
||||
ac_add_options --target=x86_64-apple-darwin
|
||||
|
||||
ac_add_options --enable-wasm-avx
|
||||
ac_add_options --enable-optimize="-march=nehalem -mtune=haswell -O3 -w"
|
||||
|
||||
export CFLAGS="-O3 -march=nehalem"
|
||||
export CPPFLAGS="-O3 -march=nehalem"
|
||||
export CXXFLAGS="-O3 -march=nehalem"
|
||||
export LDFLAGS="-Wl,-O3 -march=nehalem"
|
||||
export RUSTFLAGS="-Ctarget-cpu=nehalem -C codegen-units=1"
|
||||
else
|
||||
ac_add_options --target=aarch64-apple-darwin
|
||||
|
||||
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
||||
|
||||
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export LDFLAGS="-Wl,-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
||||
fi
|
||||
export VERBOSE=1
|
||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
|
@@ -1,5 +1,69 @@
|
||||
|
||||
|
||||
# Disable telemetry and tracking
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
||||
mk_add_options MOZ_DATA_REPORTING=
|
||||
|
||||
if test "$ZEN_CROSS_COMPILING"; then
|
||||
|
||||
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
||||
|
||||
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
||||
export WINEDEBUG=-all
|
||||
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
export MOZ_PKG_FORMAT=TAR
|
||||
|
||||
export CROSS_BUILD=1
|
||||
CROSS_COMPILE=1
|
||||
TOOLS=$(echo ~)/win-cross
|
||||
|
||||
export WIN_UCRT_REDIST_DIR="$(echo ~)/win-cross/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
|
||||
|
||||
export MIDL="$TOOLS/wine/bin/widl"
|
||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
export WINEDEBUG=-all
|
||||
export WINE="$TOOLS/wine/bin/wine64"
|
||||
|
||||
fi
|
||||
|
||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||
#? https://phabricator.services.mozilla.com/D170170
|
||||
ac_add_options --target=x86_64-pc-windows-msvc
|
||||
|
||||
ac_add_options --disable-maintenance-service
|
||||
ac_add_options --disable-bits-download
|
||||
|
||||
if test "$SURFER_COMPAT" = "true"; then
|
||||
ac_add_options --enable-optimize="-O2 -Qvec -mtune=haswell -march=x86-64 -w"
|
||||
|
||||
export CFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export CPPFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export CXXFLAGS="-mtune=haswell -march=x86-64 -O2 -Qvec -w"
|
||||
export LDFLAGS="-Wl,-O2"
|
||||
export RUSTFLAGS="-C codegen-units=1 -Ctarget-cpu=x86-64"
|
||||
else
|
||||
ac_add_options --enable-optimize="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -Xclang -w"
|
||||
ac_add_options --enable-wasm-avx
|
||||
|
||||
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
||||
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
||||
export CXXFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
||||
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
|
||||
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
||||
fi
|
||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||
export VERBOSE=1
|
||||
|
||||
#if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||
# ac_add_options --enable-profile-generate=cross
|
||||
#else
|
||||
# ac_add_options --enable-profile-use=cross
|
||||
# if test "$SURFER_COMPAT" = "true"; then
|
||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-generic.profdata
|
||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-generic.log
|
||||
# else
|
||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-specific.profdata
|
||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-specific.log
|
||||
# fi
|
||||
#fi
|
||||
|
||||
|
19
docs/key-shortcuts.md
Normal file
@@ -0,0 +1,19 @@
|
||||
|
||||
# Custom Keyboard Shortcuts
|
||||
|
||||
```json
|
||||
{
|
||||
"<shortcut-id>": {
|
||||
"key": "<key>",
|
||||
"alt": false,
|
||||
"shift": false,
|
||||
"ctrl": false,
|
||||
"meta": false,
|
||||
"keycode": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The `key` field is the key that will trigger the shortcut. The `alt`, `shift`, `ctrl`, and `meta` fields are booleans that indicate if the respective modifier key should be pressed when the shortcut is triggered.
|
||||
|
||||
The `keycode` field is the keycode of the key that will trigger the shortcut. This field is optional and can be used to specify the keycode of the key that will trigger the shortcut. If the `keycode` field is specified, the `key` field will be ignored.
|
60
docs/performance.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 🌀 Zen Browser Performance traker
|
||||
|
||||
## Scores
|
||||
|
||||
## 1
|
||||
- [NOCanoa](https://github.com/NOCanoa)
|
||||
|
||||
OS: win 11; CPU: i5 13600k
|
||||
|
||||
## web.basemark
|
||||
|
||||
https://web.basemark.com/
|
||||
|
||||
| | score: |CSS | HTML5 | Page load and Responsiveness | Resize Cap. |
|
||||
|-----------|-----|-----|-------|------------------------------|-------------|
|
||||
| 1.0.0-a.15-opt | 2141.63 | 59% | 91% | 90% | 76% |
|
||||
| 1.0.0-a.13-opt | 1658.87 | 59% | 91% | 90% | 76% |
|
||||
| 1.0.0-a.12-opt | 1874.49 | 59% | 91% | 91% | 76% |
|
||||
| 1.0.0-a.11-opt | 1678.49 | 59% | 91% | 91% | 76% |
|
||||
| 1.0.0-a.10 | 1660.89 | 59% | 91% | 91% | 76% |
|
||||
| 1.0.0-a.9 | 470 | why | why | why | why |
|
||||
| 1.0.0-a.8 | 446.74 | 59% | 91% | 96% | 76% |
|
||||
| 1.0.0-a.7 | 1964.43 | 59% | 91% | 91% | 76% |
|
||||
| 1.0.0-a.6 | 1747.98 | 59% | 91% | 91% | 76% |
|
||||
| 1.0.0-a.4 | 470.49 | 59% | 91% | 97% | 76% |
|
||||
| 1.0.0-a.3 | 475.52 |59% | 91% | 97% | 76% |
|
||||
| other | last | update | 31/7 | 2024 | - |
|
||||
| Librewolf 128.0-2 | 1953.65 | 59.66% | 89.01% | 91.72% | 76.12% |
|
||||
| FF nightly 130.0a1 | 1912.77 | 59.66% | 90.91% | 91.72% | 76.12% |
|
||||
|
||||
|
||||
```mermaid
|
||||
xychart-beta
|
||||
title "Performance over time (Higher is better)"
|
||||
x-axis [.3, .4, .6, .7, .8, .9, .10, .11, .12, .13, .15]
|
||||
y-axis "Benchmark Points"
|
||||
bar [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49, 1658.87, 2141.63]
|
||||
line [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49, 1658.87, 2141.63]
|
||||
```
|
||||
|
||||
## Speedometer3.0
|
||||
|
||||
https://browserbench.org/Speedometer3.0/
|
||||
|
||||
| | score: |
|
||||
|-----------|-----|
|
||||
| 1.0.0-a.15-opt | TODO |
|
||||
| 1.0.0-a.13-opt | 21.1 |
|
||||
| 1.0.0-a.12-opt | 21.5 |
|
||||
| 1.0.0-a.11-opt | 20.8 |
|
||||
| 1.0.0-a.10 | 21.2 |
|
||||
| others| - |
|
||||
| Vivaldi 6.7.3329.39| 27.8 |
|
||||
| FF nightly 130.0a1 | 27.0 |
|
||||
| Librewolf 128.0-2 | 20.2 |
|
||||
|
||||
## Repository View Counter
|
||||
|
||||
<div align='center'><a href='https://www.websitecounterfree.com'><img src='https://www.websitecounterfree.com/c.php?d=9&id=57772&s=40' border='0' alt='Free Website Counter'></a><br / ><small><a href='https://www.websitecounterfree.com' title="Free Website Counter">Free Website Counter</a></small></div>
|
||||
|
31
docs/requirements.md
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
# Supported CPUs for optimized builds (Windows and Linux)
|
||||
|
||||
> If you CPU is not listed, you should use the "Generic" build.
|
||||
|
||||
* AMD Family 15h (Excavator)
|
||||
* AMD Family 17h (Zen)
|
||||
* AMD Family 17h (Zen+)
|
||||
* AMD Family 17h (Zen 2)
|
||||
* AMD Family 19h (Zen 3)
|
||||
* Intel 4th Gen Core (Haswell)
|
||||
* Intel 5th Gen Core (Broadwell)
|
||||
* Intel 6th Gen Core (Skylake)
|
||||
* Intel 7th Gen Core (Kaby Lake)
|
||||
* Intel 8/9th Gen Core (Coffee Lake)
|
||||
* Intel 10th Gen Core (Comet Lake)
|
||||
* Intel 12th Gen (Alder Lake)
|
||||
* Intel 13th Gen (Raptor Lake)
|
||||
* Intel 14th Gen (Raptor Lake Refresh)
|
||||
* Intel 15th Gen (Lunar / Arrow Lake)
|
||||
* AMD Family 19h (Zen 4 / Zen 4c)
|
||||
* AMD Family 1Ah (Zen 5 / Zen 5c)
|
||||
* Intel 6th Gen Core (Skylake X)
|
||||
* Intel 8th Gen Core i3 (Cannon Lake)
|
||||
* Intel Xeon / 10th Gen Core (Ice Lake)
|
||||
* Intel Xeon (Cascade Lake)
|
||||
* Intel Xeon (Cooper Lake)
|
||||
* Intel 3rd Gen 10nm++ (Tiger Lake)
|
||||
* Intel 4th Gen 10nm++ (Sapphire Rapids)
|
||||
* Intel 5th Gen 10nm++ (Emerald Rapids)
|
||||
* Intel 11th Gen (Rocket Lake)
|
@@ -1,7 +1,7 @@
|
||||
|
||||
# Workspaces Layout
|
||||
|
||||
```
|
||||
```json
|
||||
{
|
||||
"workspaces": [
|
||||
{
|
||||
|
46
flatpak/io.github.zen_browser.zen.yml.template
Normal file
@@ -0,0 +1,46 @@
|
||||
app-id: io.github.zen_browser.zen
|
||||
runtime: org.freedesktop.Platform
|
||||
runtime-version: '23.08'
|
||||
sdk: org.freedesktop.Sdk
|
||||
base: org.mozilla.firefox.BaseApp
|
||||
base-version: '23.08'
|
||||
command: launch-script.sh
|
||||
finish-args:
|
||||
- --share=ipc
|
||||
- --share=network
|
||||
- --socket=pulseaudio
|
||||
- --socket=wayland
|
||||
- --socket=fallback-x11
|
||||
- --socket=pcsc
|
||||
- --socket=cups
|
||||
- --persist=.zen
|
||||
- --filesystem=xdg-download:rw
|
||||
- --device=all
|
||||
- --talk-name=org.freedesktop.FileManager1
|
||||
- --own-name=org.mozilla.zen.*
|
||||
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
||||
- --system-talk-name=org.freedesktop.NetworkManager
|
||||
- --talk-name=org.a11y.Bus
|
||||
modules:
|
||||
- name: zen_browser
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- mv zen /app/
|
||||
|
||||
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
||||
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
||||
- install -Dm0644 metadata/icons/io.github.zen_browser.zen.svg ${{FLATPAK_DEST}}/share/icons/hicolor/scalable/apps/${{FLATPAK_ID}}.svg
|
||||
- install -Dm0644 metadata/io.github.zen_browser.zen.metainfo.xml ${{FLATPAK_DEST}}/share/metainfo/${{FLATPAK_ID}}.metainfo.xml
|
||||
- install -Dm0644 metadata/io.github.zen_browser.zen.desktop ${{FLATPAK_DEST}}/share/applications/${{FLATPAK_ID}}.desktop
|
||||
|
||||
sources:
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/desktop/releases/download/{version}/zen.linux-generic.tar.bz2
|
||||
sha256: {linux_sha256}
|
||||
strip-components: 0
|
||||
|
||||
- type: archive
|
||||
url: https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar
|
||||
sha256: {flatpak_sha256}
|
||||
strip-components: 0
|
||||
dest: metadata
|
1
l10n
Submodule
3402
package-lock.json
generated
Normal file
@@ -27,6 +27,6 @@
|
||||
},
|
||||
"homepage": "https://github.com/zen-browser/core#readme",
|
||||
"dependencies": {
|
||||
"@zen-browser/surfer": "^1.1.8"
|
||||
"@zen-browser/surfer": "^1.3.4"
|
||||
}
|
||||
}
|
||||
|
10
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@zen-browser/surfer':
|
||||
specifier: ^1.1.8
|
||||
version: 1.1.8
|
||||
specifier: ^1.3.4
|
||||
version: 1.3.4
|
||||
|
||||
packages:
|
||||
|
||||
@@ -109,8 +109,8 @@ packages:
|
||||
'@types/node@17.0.45':
|
||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||
|
||||
'@zen-browser/surfer@1.1.8':
|
||||
resolution: {integrity: sha512-y51pqi0eMeiuXn+86Qfec3kHK4F3l6e0ut3LDewDY+f3TDe6xGTQb5z975KIW7GAz0KAOe/jWsrqvD0a87Sqxg==}
|
||||
'@zen-browser/surfer@1.3.4':
|
||||
resolution: {integrity: sha512-xnZK6D5/DPy5BZonucUAYZQXg+BUisPJbWSvXypno1Ns0InlpiI0saYSON3hQ+VbLzwBB8LTfGLYphFnskkw7w==}
|
||||
hasBin: true
|
||||
|
||||
ansi-regex@5.0.1:
|
||||
@@ -786,7 +786,7 @@ snapshots:
|
||||
|
||||
'@types/node@17.0.45': {}
|
||||
|
||||
'@zen-browser/surfer@1.1.8':
|
||||
'@zen-browser/surfer@1.3.4':
|
||||
dependencies:
|
||||
'@resvg/resvg-js': 1.4.0
|
||||
async-icns: 1.0.2
|
||||
|
67
scripts/download-language-packs.sh
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
set -ex
|
||||
|
||||
CURRENT_DIR=$(pwd)
|
||||
|
||||
git config --global init.defaultBranch main
|
||||
git config --global fetch.prune true
|
||||
|
||||
mkdir ~/tools
|
||||
cd ~/tools
|
||||
git clone https://github.com/glandium/git-cinnabar.git
|
||||
cd git-cinnabar
|
||||
git checkout 0.5.11
|
||||
export PATH=~/tools/git-cinnabar:$PATH
|
||||
cd ~
|
||||
git cinnabar download
|
||||
cd $CURRENT_DIR
|
||||
|
||||
update_language() {
|
||||
langId=$1
|
||||
cd ./l10n
|
||||
cd $langId
|
||||
|
||||
echo "Updating $langId"
|
||||
rm -rf .git
|
||||
|
||||
git init
|
||||
git remote add upstream hg://hg.mozilla.org/l10n-central/$langId
|
||||
git remote set-url upstream hg://hg.mozilla.org/l10n-central/$langId
|
||||
git pull upstream branches/default/tip
|
||||
|
||||
cd $CURRENT_DIR
|
||||
}
|
||||
|
||||
export PATH=~/tools/git-cinnabar:$PATH
|
||||
for lang in $(cat ./l10n/supported-languages); do
|
||||
update_language $lang
|
||||
done
|
||||
cd $CURRENT_DIR
|
||||
|
||||
# Move all the files to the correct location
|
||||
browser_locales=engine/browser/locales
|
||||
copy_browser_locales() {
|
||||
langId=$1
|
||||
only_en=$2
|
||||
mkdir -p $browser_locales/$langId
|
||||
if [ "$only_en" = true ]; then
|
||||
rsync -av --exclude=.git ./l10n/en-US/browser/ $browser_locales/$langId/
|
||||
return
|
||||
fi
|
||||
rm -rf $browser_locales/$langId/
|
||||
rsync -av --exclude=.git ./l10n/$langId/ $browser_locales/$langId/
|
||||
}
|
||||
|
||||
copy_browser_locales en-US true
|
||||
for lang in $(cat ./l10n/supported-languages); do
|
||||
copy_browser_locales $lang false
|
||||
done
|
||||
|
||||
echo "Cleaning up"
|
||||
rm -rf ~/tools
|
||||
rm -rf ~/.git-cinnabar
|
||||
|
||||
for lang in $(cat ./l10n/supported-languages); do
|
||||
# remove every file except if it starts with "zen"
|
||||
find ./l10n/$lang -type f -not -name "zen*" -delete
|
||||
done
|
58
scripts/prepare-flatpak-release.py
Normal file
@@ -0,0 +1,58 @@
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
import hashlib
|
||||
import argparse
|
||||
|
||||
FLATID = "io.github.zen_browser.zen"
|
||||
|
||||
def get_sha256sum(filename):
|
||||
sha256 = hashlib.sha256()
|
||||
with open(filename, "rb") as f:
|
||||
for byte_block in iter(lambda: f.read(4096), b""):
|
||||
sha256.update(byte_block)
|
||||
return sha256.hexdigest()
|
||||
|
||||
def build_template(template, linux_sha256, flatpak_sha256, version):
|
||||
print(f"Building template with version {version}")
|
||||
print(f"\tLinux archive sha256: {linux_sha256}")
|
||||
print(f"\tFlatpak archive sha256: {flatpak_sha256}")
|
||||
return template.format(linux_sha256=linux_sha256,
|
||||
flatpak_sha256=flatpak_sha256,
|
||||
version=version)
|
||||
|
||||
def get_template(template_root):
|
||||
file = f"{template_root}/{FLATID}.yml.template"
|
||||
print(f"Reading template {file}")
|
||||
with open(file, "r") as f:
|
||||
return f.read()
|
||||
print(f"Template {template_root}/flatpak.yml not found")
|
||||
sys.exit(1)
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description='Prepare flatpak release')
|
||||
parser.add_argument('--version', help='Version of the release', required=True)
|
||||
parser.add_argument('--linux-archive', help='Linux archive', required=True)
|
||||
parser.add_argument('--flatpak-archive', help='Flatpak archive', required=True)
|
||||
parser.add_argument('--output', help='Output file', default=f"{FLATID}.yml")
|
||||
parser.add_argument('--template-root', help='Template root', default="flatpak")
|
||||
args = parser.parse_args()
|
||||
|
||||
version = args.version
|
||||
linux_archive = args.linux_archive
|
||||
flatpak_archive = args.flatpak_archive
|
||||
output = args.output
|
||||
template_root = args.template_root
|
||||
|
||||
linux_sha256 = get_sha256sum(linux_archive)
|
||||
flatpak_sha256 = get_sha256sum(flatpak_archive)
|
||||
|
||||
template = build_template(get_template(template_root), linux_sha256, flatpak_sha256, version)
|
||||
|
||||
print(f"Writing output to {output}")
|
||||
with open(output, "w") as f:
|
||||
f.write(template)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
@@ -1,29 +1,7 @@
|
||||
// Ignore license in this file
|
||||
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
//
|
||||
// The code in this file was created by @yokoffing and is licensed under the
|
||||
// MIT license:
|
||||
// MIT License
|
||||
//
|
||||
// Copyright (c) 2020 yokoffing
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the "Software"), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in all
|
||||
// copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
/* You may copy+paste this file and use it as it is.
|
||||
*
|
||||
* If you make changes to your about:config while the program is running, the
|
||||
@@ -35,241 +13,212 @@
|
||||
/****************************************************************************
|
||||
* Betterfox *
|
||||
* "Ad meliora" *
|
||||
* version: 121 *
|
||||
* version: 128 *
|
||||
* url: https://github.com/yokoffing/Betterfox *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: FASTFOX *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
/** GENERAL ***/
|
||||
pref('content.notify.interval', 100000);
|
||||
pref("content.notify.interval", 100000); // (.10s); alt=500000 (.50s)
|
||||
|
||||
/** GFX ***/
|
||||
pref('gfx.canvas.accelerated.cache-items', 4096);
|
||||
pref('gfx.canvas.accelerated.cache-size', 512);
|
||||
pref('gfx.content.skia-font-cache-size', 20);
|
||||
pref("gfx.canvas.accelerated.cache-items", 4096);
|
||||
pref("gfx.canvas.accelerated.cache-size", 512);
|
||||
pref("gfx.content.skia-font-cache-size", 20);
|
||||
|
||||
/** DISK CACHE ***/
|
||||
pref('browser.cache.jsbc_compression_level', 3);
|
||||
pref("browser.cache.jsbc_compression_level", 3);
|
||||
|
||||
/** MEDIA CACHE ***/
|
||||
pref('media.memory_cache_max_size', 65536);
|
||||
pref('media.cache_readahead_limit', 7200);
|
||||
pref('media.cache_resume_threshold', 3600);
|
||||
pref("media.memory_cache_max_size", 512000); // alt=512000; also in Securefox (inactive there)
|
||||
pref("media.cache_readahead_limit", 9000); // default=60; stop reading ahead when our buffered data is this many seconds ahead of the current playback
|
||||
pref("media.cache_resume_threshold", 6000); // default=30; when a network connection is suspended, don't resume it until the amount of buffered data falls below this threshold (in seconds)
|
||||
|
||||
/** IMAGE CACHE ***/
|
||||
pref('image.mem.decode_bytes_at_a_time', 32768);
|
||||
pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||
|
||||
/** NETWORK ***/
|
||||
pref('network.buffer.cache.size', 262144);
|
||||
pref('network.buffer.cache.count', 128);
|
||||
pref('network.http.max-connections', 1800);
|
||||
pref('network.http.max-persistent-connections-per-server', 10);
|
||||
pref('network.http.max-urgent-start-excessive-connections-per-host', 5);
|
||||
pref('network.http.pacing.requests.enabled', false);
|
||||
pref('network.dnsCacheExpiration', 3600);
|
||||
pref('network.dns.max_high_priority_threads', 8);
|
||||
pref('network.ssl_tokens_cache_capacity', 10240);
|
||||
pref("network.http.max-connections", 1800);
|
||||
pref("network.http.max-persistent-connections-per-server", 10);
|
||||
pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
||||
pref("network.http.pacing.requests.enabled", false);
|
||||
pref("network.dnsCacheExpiration", 3600);
|
||||
pref("network.http.max-persistent-connections-per-proxy", 48); // default=32
|
||||
pref("network.websocket.max-connections", 400); // default=200
|
||||
pref("network.ssl_tokens_cache_capacity", 32768);
|
||||
|
||||
/** SPECULATIVE LOADING ***/
|
||||
pref('network.dns.disablePrefetch', true);
|
||||
pref('network.prefetch-next', false);
|
||||
pref('network.predictor.enabled', false);
|
||||
/** MIXED CONTENT + CROSS-SITE ***/
|
||||
pref("pdfjs.enableScripting", false);
|
||||
pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||
|
||||
/** EXPERIMENTAL ***/
|
||||
pref('layout.css.grid-template-masonry-value.enabled', true);
|
||||
pref('dom.enable_web_task_scheduling', true);
|
||||
pref('layout.css.has-selector.enabled', true);
|
||||
pref('dom.security.sanitizer.enabled', true);
|
||||
pref("layout.css.grid-template-masonry-value.enabled", true);
|
||||
pref("dom.enable_web_task_scheduling", true);
|
||||
pref("dom.security.sanitizer.enabled", true);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SECUREFOX *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
/** TRACKING PROTECTION ***/
|
||||
pref('browser.contentblocking.category', 'strict');
|
||||
pref(
|
||||
'urlclassifier.trackingSkipURLs',
|
||||
'*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com'
|
||||
);
|
||||
pref(
|
||||
'urlclassifier.features.socialtracking.skipURLs',
|
||||
'*.instagram.com, *.twitter.com, *.twimg.com'
|
||||
);
|
||||
pref('network.cookie.sameSite.noneRequiresSecure', true);
|
||||
pref('browser.download.start_downloads_in_tmp_dir', true);
|
||||
pref('browser.helperApps.deleteTempFileOnExit', true);
|
||||
pref('browser.uitour.enabled', false);
|
||||
pref('privacy.globalprivacycontrol.enabled', true);
|
||||
pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
||||
pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
||||
pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||
pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||
pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
pref("browser.uitour.enabled", false);
|
||||
|
||||
/** OCSP & CERTS / HPKP ***/
|
||||
pref('security.OCSP.enabled', 0);
|
||||
pref('security.remote_settings.crlite_filters.enabled', true);
|
||||
pref('security.pki.crlite_mode', 2);
|
||||
pref("security.OCSP.enabled", 0);
|
||||
pref("security.remote_settings.crlite_filters.enabled", true);
|
||||
pref("security.pki.crlite_mode", 2);
|
||||
|
||||
/** SSL / TLS ***/
|
||||
pref('security.ssl.treat_unsafe_negotiation_as_broken', true);
|
||||
pref('browser.xul.error_pages.expert_bad_cert', true);
|
||||
pref('security.tls.enable_0rtt_data', false);
|
||||
pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||
pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||
pref("security.tls.enable_0rtt_data", false);
|
||||
|
||||
/** DISK AVOIDANCE ***/
|
||||
pref('browser.privatebrowsing.forceMediaMemoryCache', true);
|
||||
pref('browser.sessionstore.interval', 60000);
|
||||
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||
pref("browser.sessionstore.interval", 60000);
|
||||
|
||||
/** SHUTDOWN & SANITIZING ***/
|
||||
pref('privacy.history.custom', true);
|
||||
pref("privacy.history.custom", true);
|
||||
|
||||
/** SEARCH / URL BAR ***/
|
||||
pref('browser.search.separatePrivateDefault.ui.enabled', true);
|
||||
pref('browser.urlbar.update2.engineAliasRefresh', true);
|
||||
pref('browser.search.suggest.enabled', false);
|
||||
pref('browser.urlbar.suggest.quicksuggest.sponsored', false);
|
||||
pref('browser.urlbar.suggest.quicksuggest.nonsponsored', false);
|
||||
pref('security.insecure_connection_text.enabled', true);
|
||||
pref('security.insecure_connection_text.pbmode.enabled', true);
|
||||
pref('network.IDN_show_punycode', true);
|
||||
|
||||
/** HTTPS-FIRST POLICY ***/
|
||||
pref('dom.security.https_first', true);
|
||||
pref('dom.security.https_first_schemeless', true);
|
||||
|
||||
/** PASSWORDS ***/
|
||||
pref('signon.formlessCapture.enabled', false);
|
||||
pref('signon.privateBrowsingCapture.enabled', false);
|
||||
pref('network.auth.subresource-http-auth-allow', 1);
|
||||
pref('editor.truncate_user_pastes', false);
|
||||
|
||||
/** ADDRESS + CREDIT CARD MANAGER ***/
|
||||
pref('extensions.formautofill.creditCards.enabled', false);
|
||||
|
||||
/** MIXED CONTENT + CROSS-SITE ***/
|
||||
pref('security.mixed_content.block_display_content', true);
|
||||
pref('security.mixed_content.upgrade_display_content', true);
|
||||
pref('security.mixed_content.upgrade_display_content.image', true);
|
||||
pref('pdfjs.enableScripting', false);
|
||||
pref('extensions.postDownloadThirdPartyPrompt', false);
|
||||
|
||||
/** HEADERS / REFERERS ***/
|
||||
pref('network.http.referer.XOriginTrimmingPolicy', 2);
|
||||
pref("browser.urlbar.trimHttps", true);
|
||||
pref("browser.search.separatePrivateDefault.ui.enabled", true);
|
||||
pref("browser.urlbar.update2.engineAliasRefresh", true);
|
||||
pref("browser.search.suggest.enabled", false);
|
||||
pref("browser.urlbar.quicksuggest.enabled", false);
|
||||
pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
|
||||
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
|
||||
pref("browser.urlbar.groupLabels.enabled", false);
|
||||
pref("browser.formfill.enable", false);
|
||||
pref("security.insecure_connection_text.enabled", true);
|
||||
pref("security.insecure_connection_text.pbmode.enabled", true);
|
||||
pref("network.IDN_show_punycode", true);
|
||||
|
||||
/** CONTAINERS ***/
|
||||
pref('privacy.userContext.ui.enabled', true);
|
||||
pref("privacy.userContext.ui.enabled", true);
|
||||
|
||||
/** WEBRTC ***/
|
||||
pref('media.peerconnection.ice.proxy_only_if_behind_proxy', true);
|
||||
pref('media.peerconnection.ice.default_address_only', true);
|
||||
pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
|
||||
pref("media.peerconnection.ice.default_address_only", true);
|
||||
|
||||
/** SAFE BROWSING ***/
|
||||
pref('browser.safebrowsing.downloads.remote.enabled', false);
|
||||
pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||
|
||||
/** MOZILLA ***/
|
||||
pref('permissions.default.desktop-notification', 2);
|
||||
pref('permissions.default.geo', 2);
|
||||
pref(
|
||||
'geo.provider.network.url',
|
||||
'https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%'
|
||||
);
|
||||
pref('permissions.manager.defaultsUrl', '');
|
||||
pref('webchannel.allowObject.urlWhitelist', '');
|
||||
pref("permissions.default.desktop-notification", 2);
|
||||
pref("permissions.default.geo", 2);
|
||||
pref("permissions.manager.defaultsUrl", "");
|
||||
pref("webchannel.allowObject.urlWhitelist", "");
|
||||
|
||||
/** TELEMETRY ***/
|
||||
pref('datareporting.policy.dataSubmissionEnabled', false);
|
||||
pref('datareporting.healthreport.uploadEnabled', false);
|
||||
pref('toolkit.telemetry.unified', false);
|
||||
pref('toolkit.telemetry.enabled', false);
|
||||
pref('toolkit.telemetry.server', 'data:,');
|
||||
pref('toolkit.telemetry.archive.enabled', false);
|
||||
pref('toolkit.telemetry.newProfilePing.enabled', false);
|
||||
pref('toolkit.telemetry.shutdownPingSender.enabled', false);
|
||||
pref('toolkit.telemetry.updatePing.enabled', false);
|
||||
pref('toolkit.telemetry.bhrPing.enabled', false);
|
||||
pref('toolkit.telemetry.firstShutdownPing.enabled', false);
|
||||
pref('toolkit.telemetry.coverage.opt-out', true);
|
||||
pref('toolkit.coverage.opt-out', true);
|
||||
pref('toolkit.coverage.endpoint.base', '');
|
||||
pref('browser.ping-centre.telemetry', false);
|
||||
pref('browser.newtabpage.activity-stream.feeds.telemetry', false);
|
||||
pref('browser.newtabpage.activity-stream.telemetry', false);
|
||||
pref("datareporting.policy.dataSubmissionEnabled", false, locked);
|
||||
pref("datareporting.healthreport.uploadEnabled", false, locked);
|
||||
pref("toolkit.telemetry.unified", false, locked);
|
||||
pref("toolkit.telemetry.enabled", false, locked);
|
||||
pref("toolkit.telemetry.server", "data:,", locked);
|
||||
pref("toolkit.telemetry.archive.enabled", false, locked);
|
||||
pref("toolkit.telemetry.newProfilePing.enabled", false, locked);
|
||||
pref("toolkit.telemetry.shutdownPingSender.enabled", false, locked);
|
||||
pref("toolkit.telemetry.updatePing.enabled", false, locked);
|
||||
pref("toolkit.telemetry.bhrPing.enabled", false, locked);
|
||||
pref("toolkit.telemetry.firstShutdownPing.enabled", false, locked);
|
||||
pref("toolkit.telemetry.coverage.opt-out", true, locked);
|
||||
pref("toolkit.coverage.opt-out", true, locked);
|
||||
pref("toolkit.coverage.endpoint.base", "", locked);
|
||||
pref("browser.newtabpage.activity-stream.feeds.telemetry", false, locked);
|
||||
pref("browser.newtabpage.activity-stream.telemetry", false, locked);
|
||||
|
||||
/** EXPERIMENTS ***/
|
||||
pref('app.shield.optoutstudies.enabled', false);
|
||||
pref('app.normandy.enabled', false);
|
||||
pref('app.normandy.api_url', '');
|
||||
pref("app.shield.optoutstudies.enabled", false, locked);
|
||||
pref("app.normandy.enabled", false, locked);
|
||||
pref("app.normandy.api_url", "", locked);
|
||||
|
||||
/** CRASH REPORTS ***/
|
||||
pref('breakpad.reportURL', '');
|
||||
pref('browser.tabs.crashReporting.sendReport', false);
|
||||
pref('browser.crashReports.unsubmittedCheck.autoSubmit2', false);
|
||||
pref("breakpad.reportURL", "");
|
||||
pref("browser.tabs.crashReporting.sendReport", false);
|
||||
pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
|
||||
|
||||
/** DETECTION ***/
|
||||
pref('captivedetect.canonicalURL', '');
|
||||
pref('network.captive-portal-service.enabled', false);
|
||||
pref('network.connectivity-service.enabled', false);
|
||||
pref("captivedetect.canonicalURL", "");
|
||||
pref("network.captive-portal-service.enabled", false);
|
||||
pref("network.connectivity-service.enabled", false);
|
||||
pref("dom.private-attribution.submission.enabled", false);
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: PESKYFOX *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
/** MOZILLA UI ***/
|
||||
pref('browser.privatebrowsing.vpnpromourl', '');
|
||||
pref('extensions.getAddons.showPane', false);
|
||||
pref('extensions.htmlaboutaddons.recommendations.enabled', false);
|
||||
pref('browser.discovery.enabled', false);
|
||||
pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons', false);
|
||||
pref(
|
||||
'browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features',
|
||||
false
|
||||
);
|
||||
pref('browser.preferences.moreFromMozilla', false);
|
||||
pref('browser.aboutwelcome.enabled', false);
|
||||
pref("browser.privatebrowsing.vpnpromourl", "", locked);
|
||||
pref("extensions.getAddons.showPane", false);
|
||||
pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||
pref("browser.discovery.enabled", false);
|
||||
pref("browser.shell.checkDefaultBrowser", false);
|
||||
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
||||
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
||||
pref("browser.preferences.moreFromMozilla", false);
|
||||
pref("browser.tabs.tabmanager.enabled", false);
|
||||
pref("browser.aboutConfig.showWarning", false);
|
||||
pref("browser.aboutwelcome.enabled", false);
|
||||
|
||||
/** THEME ADJUSTMENTS ***/
|
||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
pref('browser.compactmode.show', true);
|
||||
pref('layout.css.prefers-color-scheme.content-override', 2);
|
||||
pref('browser.privateWindowSeparation.enabled', false); // WINDOWS
|
||||
pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||
pref("browser.compactmode.show", true);
|
||||
pref("browser.display.focus_ring_on_anything", true);
|
||||
pref("browser.display.focus_ring_style", 0);
|
||||
pref("browser.display.focus_ring_width", 0);
|
||||
pref("layout.css.prefers-color-scheme.content-override", 2);
|
||||
pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
|
||||
|
||||
/** COOKIE BANNER HANDLING ***/
|
||||
pref('cookiebanners.service.mode', 1);
|
||||
pref('cookiebanners.service.mode.privateBrowsing', 1);
|
||||
/** FULLSCREEN NOTICE ***/
|
||||
pref("full-screen-api.transition-duration.enter", "0 0");
|
||||
pref("full-screen-api.transition-duration.leave", "0 0");
|
||||
pref("full-screen-api.warning.delay", -1);
|
||||
pref("full-screen-api.warning.timeout", 0);
|
||||
|
||||
/** URL BAR ***/
|
||||
pref('browser.urlbar.suggest.calculator', true);
|
||||
pref('browser.urlbar.unitConversion.enabled', true);
|
||||
pref('browser.urlbar.trending.featureGate', false);
|
||||
pref("browser.urlbar.suggest.calculator", true);
|
||||
pref("browser.urlbar.unitConversion.enabled", true);
|
||||
pref("browser.urlbar.trending.featureGate", false);
|
||||
|
||||
/** NEW TAB PAGE ***/
|
||||
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
||||
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
||||
pref("browser.newtabpage.activity-stream.feeds.topsites", false);
|
||||
pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
|
||||
|
||||
/*** POCKET ***/
|
||||
pref('extensions.pocket.enabled', false);
|
||||
/** POCKET ***/
|
||||
pref("extensions.pocket.enabled", false);
|
||||
|
||||
/** DOWNLOADS ***/
|
||||
pref('browser.download.always_ask_before_handling_new_types', true);
|
||||
pref('browser.download.manager.addToRecentDocs', false);
|
||||
pref("browser.download.always_ask_before_handling_new_types", true);
|
||||
pref("browser.download.manager.addToRecentDocs", false);
|
||||
|
||||
/** PDF ***/
|
||||
pref('browser.download.open_pdf_attachments_inline', true);
|
||||
pref("browser.download.open_pdf_attachments_inline", true);
|
||||
|
||||
/** TAB BEHAVIOR ***/
|
||||
pref('browser.bookmarks.openInTabClosesMenu', false);
|
||||
pref('browser.menu.showViewImageInfo', true);
|
||||
pref('findbar.highlightAll', true);
|
||||
pref('layout.word_select.eat_space_to_next_word', false);
|
||||
pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||
pref("browser.menu.showViewImageInfo", true);
|
||||
pref("findbar.highlightAll", true);
|
||||
pref("layout.word_select.eat_space_to_next_word", false);
|
||||
|
||||
/****************************************************************************
|
||||
* START: MY OVERRIDES *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides
|
||||
// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening
|
||||
// Enter your personal overrides below this line:
|
||||
|
||||
/****************************************************************************
|
||||
* SECTION: SMOOTHFOX *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
||||
// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js
|
||||
// Enter your scrolling overrides below this line:
|
||||
|
||||
/****************************************************************************
|
||||
* END: BETTERFOX *
|
||||
****************************************************************************/
|
||||
****************************************************************************/
|
@@ -2,6 +2,12 @@
|
||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#ifdef XP_UNIX
|
||||
#ifndef XP_MACOSX
|
||||
#define UNIX_BUT_NOT_MAC
|
||||
#endif
|
||||
#endif
|
||||
|
||||
pref("browser.tabs.cardPreview.enabled", true);
|
||||
pref("browser.tabs.hoverPreview.enabled", true);
|
||||
pref("browser.tabs.cardPreview.delayMs", 100);
|
||||
@@ -10,12 +16,12 @@ pref("browser.tabs.cardPreview.delayMs", 100);
|
||||
pref("devtools.debugger.prompt-connection", false);
|
||||
#endif
|
||||
|
||||
// Dont download the multilingual dictionary
|
||||
pref("intl.multilingual.downloadEnabled", false);
|
||||
|
||||
// Theme
|
||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
pref('browser.compactmode.show', true);
|
||||
pref('browser.display.focus_ring_on_anything', true);
|
||||
pref('browser.display.focus_ring_style', 0);
|
||||
pref('browser.display.focus_ring_width', 0);
|
||||
|
||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled', true);
|
||||
@@ -53,18 +59,34 @@ pref("browser.ping-centre.telemetry", false);
|
||||
pref("browser.attribution.enabled", false);
|
||||
pref("toolkit.telemetry.pioneer-new-studies-available", false);
|
||||
|
||||
pref("browser.contentblocking.category", "standard");
|
||||
pref("app.update.checkInstallTime.days", 2);
|
||||
|
||||
// CUSTOM ZEN PREFS
|
||||
|
||||
pref('zen.welcomeScreen.enabled', true);
|
||||
pref('zen.welcomeScreen.seen', false);
|
||||
pref('zen.tabs.vertical', true);
|
||||
pref('zen.tabs.vertical.right-side', false);
|
||||
pref('zen.theme.accent-color', "#aac7ff");
|
||||
pref('zen.theme.border-radius', 10); // In pixels
|
||||
pref('zen.theme.toolbar-themed', true);
|
||||
pref('zen.theme.pill-button', false);
|
||||
pref('zen.view.compact', false);
|
||||
pref('zen.view.compact.hide-toolbar', false);
|
||||
|
||||
pref('zen.view.sidebar-expanded', false);
|
||||
pref('zen.view.sidebar-expanded.on-hover', false);
|
||||
pref('zen.view.sidebar-expanded.show-button', true);
|
||||
pref('zen.view.sidebar-expanded.max-width', 400);
|
||||
|
||||
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
|
||||
|
||||
pref('zen.keyboard.shortcuts.enabled', true);
|
||||
pref('zen.keyboard.shortcuts', ""); // Empty string means default shortcuts
|
||||
pref('zen.keyboard.shortcuts.disable-firefox', false);
|
||||
pref('zen.tabs.dim-pending', true);
|
||||
pref('zen.themes.updated-value-observer', false);
|
||||
|
||||
// Pref to enable the new profiles (TODO: Check this out!)
|
||||
//pref("browser.profiles.enabled", true);
|
||||
@@ -72,7 +94,7 @@ pref('zen.view.sidebar-expanded.show-button', true);
|
||||
// Zen Sidebar
|
||||
pref('zen.sidebar.data', "{\"data\":\n {\"p1\":{\n \"url\":\"https://www.wikipedia.org/\"\n },\n\"p2\":{\n \"url\":\"https://m.twitter.com/\",\n\"ua\": true\n },\n\"p3\": {\n \"url\": \"https://www.youtube.com/\",\n\"ua\": true\n},\n\"p4\": {\n \"url\": \"https://translate.google.com/\",\n\"ua\": true\n},\n\"p5\": {\n \"url\": \"https://todoist.com/\",\n\"ua\": true\n}},\n\"index\":[\"p1\",\"p2\",\"p3\",\"p4\",\"p5\"]}");
|
||||
pref('zen.sidebar.enabled', true);
|
||||
pref('zen.sidebar.floating', true);
|
||||
pref('zen.sidebar.close-on-blur', true);
|
||||
|
||||
// Zen Split View
|
||||
pref('zen.splitView.working', false);
|
||||
@@ -81,17 +103,72 @@ pref('zen.splitView.working', false);
|
||||
pref('zen.workspaces.enabled', true);
|
||||
|
||||
// Zen Watermark
|
||||
pref('zen.watermark.enabled', true);
|
||||
pref('zen.watermark.enabled', true, sticky);
|
||||
|
||||
// Smooth scrolling
|
||||
user_pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
|
||||
user_pref('general.smoothScroll', true); // DEFAULT
|
||||
pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
|
||||
pref('general.smoothScroll', true); // DEFAULT
|
||||
|
||||
// Privacy
|
||||
pref('dom.private-attribution.submission.enabled', false);
|
||||
|
||||
// From Librewolf
|
||||
pref('media.eme.enabled', true);
|
||||
pref('webgl.disabled', false);
|
||||
|
||||
pref("app.update.url.manual", "https://www.zen-browser.app/download");
|
||||
pref("app.update.url.details", "hhttps://www.zen-browser.app/download");
|
||||
pref("app.releaseNotesURL", "https://www.zen-browser.app/release-notes");
|
||||
pref("app.releaseNotesURL.aboutDialog", "https://www.zen-browser.app/release-notes");
|
||||
|
||||
// Enable importers for other browsers
|
||||
pref('browser.migrate.vivaldi.enabled', true);
|
||||
pref('browser.migrate.opera-gx.enabled', true);
|
||||
pref('browser.migrate.opera.enabled', true);
|
||||
|
||||
// DNS
|
||||
// pref('network.proxy.type', 0);
|
||||
// pref('network.trr.mode', 5);
|
||||
|
||||
pref('xpinstall.signatures.required', false);
|
||||
|
||||
// Experimental Zen Features
|
||||
// Strategy to use for bytecode cache (Thanks https://github.com/gunir)
|
||||
pref('dom.script_loader.bytecode_cache.strategy', 2);
|
||||
|
||||
// Extremly experimental features
|
||||
pref("dom.webgpu.enabled", true);
|
||||
|
||||
// Font rendering, not for MacOSX and Linux
|
||||
#ifndef XP_UNIX
|
||||
#ifndef XP_MACOSX
|
||||
pref('gfx.font_rendering.cleartype_params.rendering_mode', 5);
|
||||
pref('gfx.font_rendering.cleartype_params.gamma', 1750);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include better-fox.js
|
||||
|
||||
// Betterfox overrides (Stay below the include directive)
|
||||
|
||||
// Jang's personal speedups (Thanks to Jang for these!)
|
||||
|
||||
// Prefetching:
|
||||
pref("network.dns.disablePrefetch", false);
|
||||
pref("network.prefetch-next", true);
|
||||
pref("network.predictor.enabled", true);
|
||||
pref("network.dns.disablePrefetchFromHTTPS", false);
|
||||
pref("network.predictor.enable-hover-on-ssl", true);
|
||||
pref("network.http.speculative-parallel-limit", 10);
|
||||
pref("network.http.rcwn.enabled", false);
|
||||
|
||||
// Enable Browser Toolbox, Ctrl+Shift+Alt+I for debugging and modifying UI
|
||||
pref("devtools.debugger.remote-enabled", true);
|
||||
pref("devtools.chrome.enabled", true);
|
||||
|
||||
// Disable firefox's revamp
|
||||
pref("sidebar.revamp", false, locked);
|
||||
pref("sidebar.verticalTabs", false, locked);
|
||||
|
||||
// Better Windows theming
|
||||
pref("widget.non-native-theme.scrollbar.style", 2);
|
||||
pref("widget.non-native-theme.use-theme-accent", true);
|
||||
|
@@ -1,544 +0,0 @@
|
||||
|
||||
|
||||
|
||||
var gZenBrowserManagerSidebar = {
|
||||
_sidebarElement: null,
|
||||
_currentPanel: null,
|
||||
_lastOpenedPanel: null,
|
||||
_hasChangedConfig: true,
|
||||
_splitterElement: null,
|
||||
_hSplitterElement: null,
|
||||
_hasRegisteredPinnedClickOutside: false,
|
||||
_isDragging: false,
|
||||
contextTab: null,
|
||||
|
||||
DEFAULT_MOBILE_USER_AGENT: "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 Edg/114.0.1823.79",
|
||||
MAX_SIDEBAR_PANELS: 8, // +1 for the add panel button
|
||||
MAX_RUNS: 3,
|
||||
|
||||
init() {
|
||||
this.update();
|
||||
this.close(); // avoid caching
|
||||
this.listenForPrefChanges();
|
||||
this.insertIntoContextMenu();
|
||||
},
|
||||
|
||||
get sidebarData() {
|
||||
let services = Services.prefs.getStringPref("zen.sidebar.data");
|
||||
if (services === "") {
|
||||
return {};
|
||||
}
|
||||
return JSON.parse(services);
|
||||
},
|
||||
|
||||
listenForPrefChanges() {
|
||||
Services.prefs.addObserver("zen.sidebar.data", this.handleEvent.bind(this));
|
||||
Services.prefs.addObserver("zen.sidebar.enabled", this.handleEvent.bind(this));
|
||||
Services.prefs.addObserver("zen.sidebar.floating", this.handleEvent.bind(this));
|
||||
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
this.splitterElement.addEventListener("mousedown", (function(event) {
|
||||
let computedStyle = window.getComputedStyle(sidebar);
|
||||
let maxWidth = parseInt(computedStyle.getPropertyValue("max-width").replace("px", ""));
|
||||
let minWidth = parseInt(computedStyle.getPropertyValue("min-width").replace("px", ""));
|
||||
|
||||
if (!this._isDragging) { // Prevent multiple resizes
|
||||
this._isDragging = true;
|
||||
let sidebarWidth = sidebar.getBoundingClientRect().width;
|
||||
let startX = event.clientX;
|
||||
let startWidth = sidebarWidth;
|
||||
let mouseMove = (function(e) {
|
||||
let newWidth = startWidth + e.clientX - startX;
|
||||
if (newWidth <= minWidth+10) {
|
||||
newWidth = minWidth+1;
|
||||
} else if (newWidth >= maxWidth-10) {
|
||||
newWidth = maxWidth-1;
|
||||
}
|
||||
sidebar.style.width = `${newWidth}px`;
|
||||
});
|
||||
let mouseUp = (function() {
|
||||
this.handleEvent();
|
||||
this._isDragging = false;
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
}).bind(this);
|
||||
document.addEventListener("mousemove", mouseMove);
|
||||
document.addEventListener("mouseup", mouseUp);
|
||||
}
|
||||
}).bind(this));
|
||||
|
||||
this.hSplitterElement.addEventListener("mousedown", (function(event) {
|
||||
let computedStyle = window.getComputedStyle(sidebar);
|
||||
const parent = sidebar.parentElement;
|
||||
// relative to avoid the top margin
|
||||
// 20px is the padding
|
||||
let parentRelativeHeight = parent.getBoundingClientRect().height - parent.getBoundingClientRect().top + 20;
|
||||
let minHeight = parseInt(computedStyle.getPropertyValue("min-height").replace("px", ""));
|
||||
if (!this._isDragging) { // Prevent multiple resizes
|
||||
this._isDragging = true;
|
||||
let sidebarHeight = sidebar.getBoundingClientRect().height;
|
||||
let startY = event.clientY;
|
||||
let startHeight = sidebarHeight;
|
||||
let mouseMove = (function(e) {
|
||||
let newHeight = startHeight + e.clientY - startY;
|
||||
if (newHeight <= minHeight+10) {
|
||||
newHeight = minHeight+1;
|
||||
} else if (newHeight >= parentRelativeHeight) { // 10px is the padding
|
||||
newHeight = parentRelativeHeight;
|
||||
}
|
||||
sidebar.style.height = `${newHeight}px`;
|
||||
});
|
||||
let mouseUp = (function() {
|
||||
this.handleEvent();
|
||||
this._isDragging = false;
|
||||
document.removeEventListener("mousemove", mouseMove);
|
||||
document.removeEventListener("mouseup", mouseUp);
|
||||
}).bind(this);
|
||||
document.addEventListener("mousemove", mouseMove);
|
||||
document.addEventListener("mouseup", mouseUp);
|
||||
}
|
||||
}).bind(this));
|
||||
|
||||
this.handleEvent();
|
||||
},
|
||||
|
||||
handleEvent() {
|
||||
this._hasChangedConfig = true;
|
||||
this.update();
|
||||
this._hasChangedConfig = false;
|
||||
|
||||
// https://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind
|
||||
var clickOutsideHandler = this._handleClickOutside.bind(this);
|
||||
if (Services.prefs.getBoolPref("zen.sidebar.floating") && !this._hasRegisteredPinnedClickOutside) {
|
||||
document.addEventListener("mouseup", clickOutsideHandler);
|
||||
this._hasRegisteredPinnedClickOutside = true;
|
||||
} else if (!Services.prefs.getBoolPref("zen.sidebar.floating") && this._hasRegisteredPinnedClickOutside) {
|
||||
document.removeEventListener("mouseup", clickOutsideHandler);
|
||||
this._hasRegisteredPinnedClickOutside = false;
|
||||
}
|
||||
|
||||
const button = document.getElementById("zen-sidepanel-button");
|
||||
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
||||
button.removeAttribute("hidden");
|
||||
} else {
|
||||
button.setAttribute("hidden", "true");
|
||||
this._closeSidebarPanel();
|
||||
return;
|
||||
}
|
||||
},
|
||||
|
||||
_handleClickOutside(event) {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
if (!sidebar.hasAttribute("pinned") || !this._currentPanel || this._isDragging) {
|
||||
return;
|
||||
}
|
||||
let target = event.target;
|
||||
const closestSelector = [
|
||||
"#zen-sidebar-web-panel",
|
||||
"#zen-sidebar-panels-wrapper",
|
||||
"#zenWebPanelContextMenu",
|
||||
"#zen-sidebar-web-panel-splitter",
|
||||
"#contentAreaContextMenu"
|
||||
].join(", ");
|
||||
if (target.closest(closestSelector)) {
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
},
|
||||
|
||||
toggle() {
|
||||
if (!this._currentPanel) {
|
||||
this._currentPanel = this._lastOpenedPanel;
|
||||
}
|
||||
if (document.getElementById("zen-sidebar-web-panel").hasAttribute("hidden")) {
|
||||
this.open();
|
||||
return;
|
||||
}
|
||||
this.close();
|
||||
},
|
||||
|
||||
open() {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
sidebar.removeAttribute("hidden");
|
||||
this.update();
|
||||
},
|
||||
|
||||
update() {
|
||||
this._updateWebPanels();
|
||||
this._updateSidebarButton();
|
||||
this._updateWebPanel();
|
||||
this._updateButtons();
|
||||
},
|
||||
|
||||
_updateSidebarButton() {
|
||||
let button = document.getElementById("zen-sidepanel-button");
|
||||
if (!document.getElementById("zen-sidebar-web-panel").hasAttribute("hidden")) {
|
||||
button.setAttribute("open", "true");
|
||||
} else {
|
||||
button.removeAttribute("open");
|
||||
}
|
||||
},
|
||||
|
||||
_updateWebPanels() {
|
||||
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
||||
this.sidebarElement.removeAttribute("hidden");
|
||||
} else {
|
||||
this.sidebarElement.setAttribute("hidden", "true");
|
||||
this._closeSidebarPanel();
|
||||
return;
|
||||
}
|
||||
|
||||
let data = this.sidebarData;
|
||||
if (!data.data || !data.index) {
|
||||
return;
|
||||
}
|
||||
this.sidebarElement.innerHTML = "";
|
||||
for (let site of data.index) {
|
||||
let panel = data.data[site];
|
||||
if (!panel || !panel.url) {
|
||||
continue;
|
||||
}
|
||||
let button = document.createXULElement("toolbarbutton");
|
||||
button.classList.add("zen-sidebar-panel-button", "toolbarbutton-1", "chromeclass-toolbar-additional");
|
||||
button.setAttribute("flex", "1");
|
||||
button.setAttribute("zen-sidebar-id", site);
|
||||
button.setAttribute("context", "zenWebPanelContextMenu");
|
||||
this._getWebPanelIcon(panel.url, button);
|
||||
button.addEventListener("click", this._handleClick.bind(this));
|
||||
this.sidebarElement.appendChild(button);
|
||||
}
|
||||
const addButton = document.getElementById("zen-sidebar-add-panel-button");
|
||||
if (data.index.length < this.MAX_SIDEBAR_PANELS) {
|
||||
addButton.removeAttribute("hidden");
|
||||
} else {
|
||||
addButton.setAttribute("hidden", "true");
|
||||
}
|
||||
},
|
||||
|
||||
async _openAddPanelDialog() {
|
||||
let dialogURL = "chrome://browser/content/places/zenNewWebPanel.xhtml";
|
||||
let features = "centerscreen,chrome,modal,resizable=no";
|
||||
let aParentWindow = Services.wm.getMostRecentWindow("navigator:browser");
|
||||
|
||||
if (aParentWindow?.gDialogBox) {
|
||||
await aParentWindow.gDialogBox.open(dialogURL, {});
|
||||
} else {
|
||||
aParentWindow.openDialog(dialogURL, "", features, {});
|
||||
}
|
||||
},
|
||||
|
||||
_setPinnedToElements() {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
sidebar.setAttribute("pinned", "true");
|
||||
document.getElementById("zen-sidebar-web-panel-pinned").setAttribute("pinned", "true");
|
||||
},
|
||||
|
||||
_removePinnedFromElements() {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
sidebar.removeAttribute("pinned");
|
||||
document.getElementById("zen-sidebar-web-panel-pinned").removeAttribute("pinned");
|
||||
},
|
||||
|
||||
_closeSidebarPanel() {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
sidebar.setAttribute("hidden", "true");
|
||||
this._lastOpenedPanel = this._currentPanel;
|
||||
this._currentPanel = null;
|
||||
},
|
||||
|
||||
_handleClick(event) {
|
||||
let target = event.target;
|
||||
let panelId = target.getAttribute("zen-sidebar-id");
|
||||
if (this._currentPanel === panelId) {
|
||||
return;
|
||||
}
|
||||
this._currentPanel = panelId;
|
||||
this._updateWebPanel();
|
||||
},
|
||||
|
||||
_createNewPanel(url) {
|
||||
let data = this.sidebarData;
|
||||
let newName = "p" + new Date().getTime();
|
||||
data.index.push(newName);
|
||||
data.data[newName] = {
|
||||
url: url,
|
||||
ua: false,
|
||||
};
|
||||
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
||||
this._currentPanel = newName;
|
||||
this.open();
|
||||
},
|
||||
|
||||
_updateButtons() {
|
||||
for (let button of this.sidebarElement.querySelectorAll(".zen-sidebar-panel-button")) {
|
||||
if (button.getAttribute("zen-sidebar-id") === this._currentPanel) {
|
||||
button.setAttribute("selected", "true");
|
||||
} else {
|
||||
button.removeAttribute("selected");
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_hideAllWebPanels() {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
for (let browser of sidebar.querySelectorAll("browser[zen-sidebar-id]")) {
|
||||
browser.setAttribute("hidden", "true");
|
||||
browser.docShellIsActive = false;
|
||||
}
|
||||
},
|
||||
|
||||
get introductionPanel() {
|
||||
return document.getElementById("zen-sidebar-introduction-panel");
|
||||
},
|
||||
|
||||
_updateWebPanel() {
|
||||
this._updateButtons();
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
this._hideAllWebPanels();
|
||||
if (!this._currentPanel) {
|
||||
this.introductionPanel.removeAttribute("hidden");
|
||||
return;
|
||||
}
|
||||
this.introductionPanel.setAttribute("hidden", "true");
|
||||
let existantWebview = this._getCurrentBrowser();
|
||||
if (existantWebview) {
|
||||
existantWebview.docShellIsActive = true;
|
||||
existantWebview.removeAttribute("hidden");
|
||||
document.getElementById("zen-sidebar-web-panel-title").textContent = existantWebview.contentTitle;
|
||||
return;
|
||||
}
|
||||
let data = this._getWebPanelData(this._currentPanel);
|
||||
let browser = this._createWebPanelBrowser(data);
|
||||
let browserContainers = document.getElementById("zen-sidebar-web-panel-browser-containers");
|
||||
browserContainers.appendChild(browser);
|
||||
if (data.ua) {
|
||||
browser.browsingContext.customUserAgent = this.DEFAULT_MOBILE_USER_AGENT;
|
||||
}
|
||||
browser.docShellIsActive = true;
|
||||
},
|
||||
|
||||
_getWebPanelData(id) {
|
||||
let data = this.sidebarData;
|
||||
let panel = data.data[id];
|
||||
if (!panel || !panel.url) {
|
||||
return {};
|
||||
}
|
||||
return {
|
||||
id: id,
|
||||
...panel,
|
||||
};
|
||||
},
|
||||
|
||||
_createWebPanelBrowser(data) {
|
||||
const titleContainer = document.getElementById("zen-sidebar-web-panel-title");
|
||||
titleContainer.textContent = "Loading...";
|
||||
let browser = gBrowser.createBrowser({});
|
||||
browser.setAttribute("disablefullscreen", "true");
|
||||
browser.setAttribute("src", data.url);
|
||||
browser.setAttribute("zen-sidebar-id", data.id);
|
||||
browser.setAttribute("disableglobalhistory", "true");
|
||||
browser.setAttribute("autoscroll", "false");
|
||||
browser.setAttribute("autocompletepopup", "PopupAutoComplete");
|
||||
browser.setAttribute("contextmenu", "contentAreaContextMenu");
|
||||
browser.setAttribute("disablesecurity", "true");
|
||||
browser.addEventListener("pagetitlechanged", (function(event) {
|
||||
let browser = event.target;
|
||||
let title = browser.contentTitle;
|
||||
if (!title) {
|
||||
return;
|
||||
}
|
||||
let id = browser.getAttribute("zen-sidebar-id");
|
||||
if (id === this._currentPanel) {
|
||||
titleContainer.textContent = title;
|
||||
}
|
||||
}).bind(this));
|
||||
return browser;
|
||||
},
|
||||
|
||||
_getWebPanelIcon(url, element) {
|
||||
let { preferredURI } = Services.uriFixup.getFixupURIInfo(url);
|
||||
element.setAttribute("image", `page-icon:${preferredURI.spec}`);
|
||||
fetch(`https://s2.googleusercontent.com/s2/favicons?domain_url=${preferredURI.spec}`).then(async response => {
|
||||
if (response.ok) {
|
||||
let blob = await response.blob();
|
||||
let reader = new FileReader();
|
||||
reader.onload = function() {
|
||||
element.setAttribute("image", reader.result);
|
||||
};
|
||||
reader.readAsDataURL(blob);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_getBrowserById(id) {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
return sidebar.querySelector(`browser[zen-sidebar-id="${id}"]`);
|
||||
},
|
||||
|
||||
_getCurrentBrowser() {
|
||||
return this._getBrowserById(this._currentPanel);
|
||||
},
|
||||
|
||||
reload() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.reload();
|
||||
}
|
||||
},
|
||||
|
||||
forward() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.goForward();
|
||||
}
|
||||
},
|
||||
|
||||
back() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.goBack();
|
||||
}
|
||||
},
|
||||
|
||||
home() {
|
||||
let browser = this._getCurrentBrowser();
|
||||
if (browser) {
|
||||
browser.gotoIndex();
|
||||
}
|
||||
},
|
||||
|
||||
close() {
|
||||
this._hideAllWebPanels();
|
||||
this._closeSidebarPanel();
|
||||
this._updateSidebarButton();
|
||||
},
|
||||
|
||||
togglePinned(elem) {
|
||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||
if (sidebar.hasAttribute("pinned")) {
|
||||
this._removePinnedFromElements();
|
||||
} else {
|
||||
this._setPinnedToElements();
|
||||
}
|
||||
Services.prefs.setBoolPref("zen.sidebar.floating", sidebar.hasAttribute("pinned"));
|
||||
this.update();
|
||||
},
|
||||
|
||||
get sidebarElement() {
|
||||
if (!this._sidebarElement) {
|
||||
this._sidebarElement = document.getElementById("zen-sidebar-panels-sites");
|
||||
}
|
||||
return this._sidebarElement;
|
||||
},
|
||||
|
||||
get splitterElement() {
|
||||
if (!this._splitterElement) {
|
||||
this._splitterElement = document.getElementById("zen-sidebar-web-panel-splitter");
|
||||
}
|
||||
return this._splitterElement;
|
||||
},
|
||||
|
||||
get hSplitterElement() {
|
||||
if (!this._hSplitterElement) {
|
||||
this._hSplitterElement = document.getElementById("zen-sidebar-web-panel-hsplitter");
|
||||
}
|
||||
return this._hSplitterElement;
|
||||
},
|
||||
|
||||
// Context menu
|
||||
|
||||
updateContextMenu(aPopupMenu) {
|
||||
let panel =
|
||||
aPopupMenu.triggerNode &&
|
||||
(aPopupMenu.triggerNode || aPopupMenu.triggerNode.closest("toolbarbutton[zen-sidebar-id]"));
|
||||
if (!panel) {
|
||||
return;
|
||||
}
|
||||
let id = panel.getAttribute("zen-sidebar-id");
|
||||
this.contextTab = id;
|
||||
let data = this._getWebPanelData(id);
|
||||
let browser = this._getBrowserById(id);
|
||||
let isMuted = browser && browser.audioMuted;
|
||||
let mutedContextItem = document.getElementById("context_zenToggleMuteWebPanel");
|
||||
document.l10n.setAttributes(mutedContextItem,
|
||||
!isMuted ? "zen-web-side-panel-context-mute-panel" : "zen-web-side-panel-context-unmute-panel");
|
||||
if (!isMuted) {
|
||||
mutedContextItem.setAttribute("muted", "true");
|
||||
} else {
|
||||
mutedContextItem.removeAttribute("muted");
|
||||
}
|
||||
document.l10n.setAttributes(document.getElementById("context_zenToogleUAWebPanel"),
|
||||
data.ua ? "zen-web-side-panel-context-disable-ua" : "zen-web-side-panel-context-enable-ua");
|
||||
if (!browser) {
|
||||
document.getElementById("context_zenUnloadWebPanel").setAttribute("disabled", "true");
|
||||
} else {
|
||||
document.getElementById("context_zenUnloadWebPanel").removeAttribute("disabled");
|
||||
}
|
||||
},
|
||||
|
||||
contextOpenNewTab() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
let data = this.sidebarData;
|
||||
let panel = data.data[this.contextTab];
|
||||
let url = (browser == null) ? panel.url : browser.currentURI.spec;
|
||||
gZenUIManager.openAndChangeToTab(url);
|
||||
this.close();
|
||||
},
|
||||
|
||||
contextToggleMuteAudio() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
if (browser.audioMuted) {
|
||||
browser.unmute();
|
||||
} else {
|
||||
browser.mute();
|
||||
}
|
||||
},
|
||||
|
||||
contextToggleUserAgent() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
browser.browsingContext.customUserAgent = browser.browsingContext.customUserAgent ? null : this.DEFAULT_MOBILE_USER_AGENT;
|
||||
let data = this.sidebarData;
|
||||
data.data[this.contextTab].ua = !data.data[this.contextTab].ua;
|
||||
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
||||
browser.reload();
|
||||
},
|
||||
|
||||
contextDelete() {
|
||||
let data = this.sidebarData;
|
||||
delete data.data[this.contextTab];
|
||||
data.index = data.index.filter(id => id !== this.contextTab);
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
if (browser) {
|
||||
browser.remove();
|
||||
}
|
||||
this._closeSidebarPanel();
|
||||
this.close();
|
||||
this._lastOpenedPanel = null;
|
||||
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
||||
},
|
||||
|
||||
contextUnload() {
|
||||
let browser = this._getBrowserById(this.contextTab);
|
||||
browser.remove();
|
||||
this._closeSidebarPanel();
|
||||
this.close();
|
||||
this._lastOpenedPanel = null;
|
||||
},
|
||||
|
||||
insertIntoContextMenu() {
|
||||
const sibling = document.getElementById("context-stripOnShareLink");
|
||||
const menuitem = document.createXULElement("menuitem");
|
||||
menuitem.setAttribute("id", "context-zenAddToWebPanel");
|
||||
menuitem.setAttribute("hidden", "true");
|
||||
menuitem.setAttribute("oncommand", "gZenBrowserManagerSidebar.addPanelFromContextMenu();");
|
||||
menuitem.setAttribute("data-l10n-id", "zen-web-side-panel-context-add-to-panel");
|
||||
sibling.insertAdjacentElement("afterend", menuitem);
|
||||
},
|
||||
|
||||
addPanelFromContextMenu() {
|
||||
const url = gContextMenu.linkURL || gContextMenu.target.ownerDocument.location.href;
|
||||
this._createNewPanel(url);
|
||||
},
|
||||
};
|
||||
|
||||
gZenBrowserManagerSidebar.init();
|
111
src/browser/base/content/ZenStartup.mjs
Normal file
@@ -0,0 +1,111 @@
|
||||
|
||||
var ZenStartup = {
|
||||
init() {
|
||||
this._changeSidebarLocation();
|
||||
this._zenInitBrowserLayout();
|
||||
this._focusSearchBar();
|
||||
},
|
||||
|
||||
_zenInitBrowserLayout() {
|
||||
if (this.__hasInitBrowserLayout) return;
|
||||
this.__hasInitBrowserLayout = true;
|
||||
this.openWatermark();
|
||||
console.info("ZenThemeModifier: init browser layout");
|
||||
const kNavbarItems = [
|
||||
"nav-bar",
|
||||
"PersonalToolbar"
|
||||
];
|
||||
const kNewContainerId = "zen-appcontent-navbar-container";
|
||||
let newContainer = document.getElementById(kNewContainerId);
|
||||
for (let id of kNavbarItems) {
|
||||
const node = document.getElementById(id);
|
||||
console.assert(node, "Could not find node with id: " + id);
|
||||
if (!node) continue;
|
||||
newContainer.appendChild(node);
|
||||
}
|
||||
|
||||
// Fix notification deck
|
||||
document.getElementById("zen-appcontent-navbar-container")
|
||||
.appendChild(document.getElementById("tab-notification-deck-template"));
|
||||
|
||||
gZenVerticalTabsManager.init();
|
||||
gZenCompactModeManager.init();
|
||||
gZenKeyboardShortcuts.init();
|
||||
|
||||
function throttle(f, delay) {
|
||||
let timer = 0;
|
||||
return function(...args) {
|
||||
clearTimeout(timer);
|
||||
timer = setTimeout(() => f.apply(this, args), delay);
|
||||
}
|
||||
}
|
||||
|
||||
new ResizeObserver(throttle(
|
||||
this._updateTabsToolbar.bind(this), 1000
|
||||
)).observe(document.getElementById("tabbrowser-tabs"));
|
||||
|
||||
this.closeWatermark();
|
||||
},
|
||||
|
||||
_updateTabsToolbar() {
|
||||
// Set tabs max-height to the "toolbar-items" height
|
||||
const toolbarItems = document.getElementById("tabbrowser-tabs");
|
||||
const tabs = document.getElementById("tabbrowser-arrowscrollbox");
|
||||
tabs.style.maxHeight = '0px'; // reset to 0
|
||||
const toolbarRect = toolbarItems.getBoundingClientRect();
|
||||
// -5 for the controls padding
|
||||
tabs.style.maxHeight = toolbarRect.height - 5 + "px";
|
||||
console.info("ZenThemeModifier: set tabs max-height to", toolbarRect.height + "px");
|
||||
},
|
||||
|
||||
openWatermark() {
|
||||
if (!Services.prefs.getBoolPref("zen.watermark.enabled", false)) {
|
||||
return;
|
||||
}
|
||||
const watermark = window.MozXULElement.parseXULToFragment(`
|
||||
<html:div id="zen-watermark">
|
||||
<image src="chrome://branding/content/about-logo.png" />
|
||||
</html:div>
|
||||
`);
|
||||
document.body.appendChild(watermark);
|
||||
},
|
||||
|
||||
closeWatermark() {
|
||||
const watermark = document.getElementById("zen-watermark");
|
||||
if (watermark) {
|
||||
watermark.setAttribute("hidden", "true");
|
||||
}
|
||||
},
|
||||
|
||||
_changeSidebarLocation() {
|
||||
const kElementsToAppend = [
|
||||
"sidebar-splitter",
|
||||
"sidebar-box",
|
||||
"navigator-toolbox",
|
||||
];
|
||||
const wrapper = document.getElementById("zen-tabbox-wrapper");
|
||||
const appWrapepr = document.getElementById("zen-sidebar-box-container");
|
||||
for (let id of kElementsToAppend) {
|
||||
const elem = document.getElementById(id);
|
||||
if (elem) {
|
||||
wrapper.prepend(elem);
|
||||
}
|
||||
}
|
||||
appWrapepr.setAttribute("hidden", "true");
|
||||
|
||||
// Set a splitter to navigator-toolbox
|
||||
const splitter = document.createXULElement("splitter");
|
||||
splitter.setAttribute("id", "zen-sidebar-splitter");
|
||||
splitter.setAttribute("orient", "horizontal");
|
||||
splitter.setAttribute("resizebefore", "sibling");
|
||||
splitter.setAttribute("resizeafter", "none");
|
||||
const titlebar = document.getElementById("navigator-toolbox");
|
||||
titlebar.insertAdjacentElement("afterend", splitter);
|
||||
},
|
||||
|
||||
_focusSearchBar() {
|
||||
gURLBar.focus();
|
||||
},
|
||||
};
|
||||
|
||||
ZenStartup.init();
|