Compare commits
447 Commits
1.0.1-a.3
...
1.0.1-a.14
Author | SHA1 | Date | |
---|---|---|---|
![]() |
315180816d | ||
![]() |
fc94c9602b | ||
![]() |
25c8796888 | ||
![]() |
ea871aaa7b | ||
![]() |
be376ef2ac | ||
![]() |
0b77b93801 | ||
![]() |
9d5ee6291d | ||
![]() |
0476f0d367 | ||
![]() |
4a98a0da86 | ||
![]() |
9cb5e7809a | ||
![]() |
3a22456032 | ||
![]() |
0d609d9e2c | ||
![]() |
555313fc4c | ||
![]() |
8a609505f1 | ||
![]() |
cc0f792e60 | ||
![]() |
9f3e69dbf1 | ||
![]() |
7d42a41df4 | ||
![]() |
f7593002d1 | ||
![]() |
262a7797e7 | ||
![]() |
6364767d5a | ||
![]() |
4d285fe4b6 | ||
![]() |
cde46b77de | ||
![]() |
722ddfb736 | ||
![]() |
155c026e99 | ||
![]() |
44cb7e148b | ||
![]() |
3a517317a3 | ||
![]() |
b32cbe1651 | ||
![]() |
18b0a44ae3 | ||
![]() |
dd68943ae8 | ||
![]() |
f019490989 | ||
![]() |
4ee7fa2af7 | ||
![]() |
032a3f562f | ||
![]() |
9d438035cb | ||
![]() |
7f5d792ff4 | ||
![]() |
5d0c22c374 | ||
![]() |
e7a52289c8 | ||
![]() |
4997786b9f | ||
![]() |
5b51aa2b78 | ||
![]() |
5c565def63 | ||
![]() |
c4502c2762 | ||
![]() |
2ea79db343 | ||
![]() |
c92924db15 | ||
![]() |
45ce804ee9 | ||
![]() |
2e9c147c44 | ||
![]() |
24d09cc134 | ||
![]() |
e7109a0855 | ||
![]() |
b7964f7f12 | ||
![]() |
31bb92c398 | ||
![]() |
d95731e87b | ||
![]() |
bff3c47dc2 | ||
![]() |
94b32c38e4 | ||
![]() |
2214ab3a17 | ||
![]() |
8631adaaec | ||
![]() |
2cfada1fc8 | ||
![]() |
065e82534e | ||
![]() |
a6cbda63b1 | ||
![]() |
15ddd0f680 | ||
![]() |
841261a36e | ||
![]() |
f30a2dc43c | ||
![]() |
37132e8d3e | ||
![]() |
b9dd88e30f | ||
![]() |
e3ec2c22a2 | ||
![]() |
e36dbdead3 | ||
![]() |
4358574889 | ||
![]() |
bbdd6684fe | ||
![]() |
07cd774619 | ||
![]() |
83b077d5f3 | ||
![]() |
36104652cd | ||
![]() |
d75c797553 | ||
![]() |
3fa9e6d5b2 | ||
![]() |
bbb532b5aa | ||
![]() |
15621d76b9 | ||
![]() |
73eb4e3389 | ||
![]() |
3be0eb2ac6 | ||
![]() |
c195b1ecb9 | ||
![]() |
4c265a674e | ||
![]() |
634b4f392a | ||
![]() |
2cca7a8308 | ||
![]() |
ffc584e5e6 | ||
![]() |
9a73aba7fc | ||
![]() |
22adb293f7 | ||
![]() |
e8534e61cd | ||
![]() |
6168e4668c | ||
![]() |
aa0d1c27c8 | ||
![]() |
35859f566b | ||
![]() |
1ad7055fbe | ||
![]() |
2287aa9a06 | ||
![]() |
28d358aa43 | ||
![]() |
8744d1a9ec | ||
![]() |
68f9a32629 | ||
![]() |
2f5062b33e | ||
![]() |
57b624d2da | ||
![]() |
69539728ec | ||
![]() |
92b014a706 | ||
![]() |
a5ace90bd6 | ||
![]() |
8212ca3aee | ||
![]() |
0b9b0a39d8 | ||
![]() |
bcf6dad5de | ||
![]() |
3f0347bc18 | ||
![]() |
b401c225dd | ||
![]() |
721e6ba935 | ||
![]() |
fa342c42fb | ||
![]() |
c31e0d72b3 | ||
![]() |
f672b1b810 | ||
![]() |
4f324c7fd7 | ||
![]() |
0137664296 | ||
![]() |
69313054a2 | ||
![]() |
d6c4c3c66a | ||
![]() |
6d0753c5e9 | ||
![]() |
019efd6db7 | ||
![]() |
4b3d739774 | ||
![]() |
c345b1aa19 | ||
![]() |
d6d4d4a8a3 | ||
![]() |
85017433db | ||
![]() |
d03248c10f | ||
![]() |
b86cf5ac80 | ||
![]() |
abc36b6f9b | ||
![]() |
88fcce18f9 | ||
![]() |
7137481251 | ||
![]() |
842b4929e4 | ||
![]() |
c9a923bb34 | ||
![]() |
d68429b49b | ||
![]() |
38abd9e756 | ||
![]() |
0e35750741 | ||
![]() |
e3ef019995 | ||
![]() |
4486cdc14f | ||
![]() |
c7c453404b | ||
![]() |
546cac2b09 | ||
![]() |
86f537971c | ||
![]() |
4dd5e7c4b9 | ||
![]() |
3b850ae3b9 | ||
![]() |
361932cf7f | ||
![]() |
73f8225669 | ||
![]() |
f6d7170537 | ||
![]() |
35c1139293 | ||
![]() |
590ff474c7 | ||
![]() |
b384e2ee1d | ||
![]() |
6e7a2e4c9e | ||
![]() |
19e07f6785 | ||
![]() |
097f7c846e | ||
![]() |
01d6fdf080 | ||
![]() |
7023e0a800 | ||
![]() |
3ca94633cd | ||
![]() |
ac3e035af7 | ||
![]() |
538fd146fb | ||
![]() |
f1d438f3fd | ||
![]() |
49bb9cd398 | ||
![]() |
7d00a254da | ||
![]() |
ad9ad07cbd | ||
![]() |
598d60ab7e | ||
![]() |
d3f61027c7 | ||
![]() |
8ecbbd0719 | ||
![]() |
17943dcf1a | ||
![]() |
0150e6d689 | ||
![]() |
b5260051a0 | ||
![]() |
b1f17ff508 | ||
![]() |
f4b3f62a46 | ||
![]() |
519cbdd872 | ||
![]() |
28cc158a3f | ||
![]() |
c99bf518b3 | ||
![]() |
86d3244a22 | ||
![]() |
618859788c | ||
![]() |
8008633c02 | ||
![]() |
e840184e7f | ||
![]() |
5aa17208a5 | ||
![]() |
bd7d46f446 | ||
![]() |
013d14d723 | ||
![]() |
b87b9d3e26 | ||
![]() |
bdbce8a7da | ||
![]() |
f661ba7c40 | ||
![]() |
a87dc0346d | ||
![]() |
7470ff5437 | ||
![]() |
fe10ffc7d7 | ||
![]() |
1628b4ca3e | ||
![]() |
74bed8b30a | ||
![]() |
e4287ee7fb | ||
![]() |
71a2646c5b | ||
![]() |
39fbe69847 | ||
![]() |
aa8ef338c5 | ||
![]() |
b9f392da94 | ||
![]() |
40223ee48a | ||
![]() |
0d2ae948e8 | ||
![]() |
7a04307c32 | ||
![]() |
da5ae971e1 | ||
![]() |
d8bbb62081 | ||
![]() |
f5215c1f29 | ||
![]() |
54706e51af | ||
![]() |
2ee66b0b22 | ||
![]() |
2082079c7e | ||
![]() |
0c30803fdd | ||
![]() |
3745de490f | ||
![]() |
cf0e6b8f86 | ||
![]() |
e184e9a97c | ||
![]() |
4cd304b4c6 | ||
![]() |
8bcffb59e6 | ||
![]() |
f2058851d0 | ||
![]() |
3a2ad6e578 | ||
![]() |
45e751a8be | ||
![]() |
6d9e54043c | ||
![]() |
2b68cc481e | ||
![]() |
49f7a457cd | ||
![]() |
c18b3db621 | ||
![]() |
cf450d6d4a | ||
![]() |
93774f17c8 | ||
![]() |
349e8a9203 | ||
![]() |
150f092e9a | ||
![]() |
69020cc516 | ||
![]() |
a01a6d0f43 | ||
![]() |
52a15da966 | ||
![]() |
322d3dcab1 | ||
![]() |
234d05d044 | ||
![]() |
8b7953280a | ||
![]() |
0ba9eb2eeb | ||
![]() |
508a0c7815 | ||
![]() |
264eaa5cbf | ||
![]() |
b4901cb113 | ||
![]() |
4380370ae4 | ||
![]() |
d043ea25d8 | ||
![]() |
dadc13a2df | ||
![]() |
34e47d79dd | ||
![]() |
945ee1245e | ||
![]() |
7f263b4c5e | ||
![]() |
569d93af9a | ||
![]() |
9440716951 | ||
![]() |
cc4e676bb7 | ||
![]() |
9d0eaad314 | ||
![]() |
1d22650d89 | ||
![]() |
ce519530bc | ||
![]() |
3e02f0d39f | ||
![]() |
89b97338e4 | ||
![]() |
2345563879 | ||
![]() |
692cb9223c | ||
![]() |
e8ff848518 | ||
![]() |
256dadbaf7 | ||
![]() |
3e92111847 | ||
![]() |
2e4958bc25 | ||
![]() |
8c04cda18b | ||
![]() |
515b4d50ab | ||
![]() |
414308f277 | ||
![]() |
ffe822819c | ||
![]() |
948cfc4034 | ||
![]() |
fdd99cb8d6 | ||
![]() |
9df773dde2 | ||
![]() |
8c42614427 | ||
![]() |
6dcff571d2 | ||
![]() |
43834e57f0 | ||
![]() |
b185773daf | ||
![]() |
593a9244a4 | ||
![]() |
165ee8a3f8 | ||
![]() |
66fc824bb5 | ||
![]() |
a556454ced | ||
![]() |
d248880890 | ||
![]() |
c9a8177351 | ||
![]() |
5e85f1025a | ||
![]() |
eebcb0cb6e | ||
![]() |
cf3f788218 | ||
![]() |
31f939ba96 | ||
![]() |
b707aabee4 | ||
![]() |
b3e3fdbad7 | ||
![]() |
41897f06ed | ||
![]() |
4758656211 | ||
![]() |
5e1a5fc498 | ||
![]() |
174fafcb45 | ||
![]() |
19fff2bd89 | ||
![]() |
4b1ef1222b | ||
![]() |
46cca21a72 | ||
![]() |
81c2f08e62 | ||
![]() |
2a764eaf7a | ||
![]() |
a1cccb1ca4 | ||
![]() |
d7bff00046 | ||
![]() |
22ef403bd4 | ||
![]() |
e466fb95b5 | ||
![]() |
c5ab69f38d | ||
![]() |
09f673d94c | ||
![]() |
b323a92dbf | ||
![]() |
57f697975e | ||
![]() |
9a9171055c | ||
![]() |
90683aa637 | ||
![]() |
480bcccbf4 | ||
![]() |
015c27ecad | ||
![]() |
1ec4c2ba9d | ||
![]() |
69653bb402 | ||
![]() |
988d5a2535 | ||
![]() |
8de8f190ff | ||
![]() |
ac58a0da0e | ||
![]() |
eb19d2a1c4 | ||
![]() |
36656fd0f4 | ||
![]() |
eb5d10c24a | ||
![]() |
da6101a355 | ||
![]() |
20f6dfafa1 | ||
![]() |
5488980bd9 | ||
![]() |
de92af20f0 | ||
![]() |
f22646a905 | ||
![]() |
44a8bc3f1d | ||
![]() |
a870d7eb42 | ||
![]() |
e429d0317d | ||
![]() |
c8391950cf | ||
![]() |
7cf789ad5f | ||
![]() |
d28062cc93 | ||
![]() |
5d0ea6a2c3 | ||
![]() |
4adde6ba85 | ||
![]() |
e2792eecb5 | ||
![]() |
57bf881779 | ||
![]() |
da8db0f223 | ||
![]() |
e96a40a545 | ||
![]() |
3105024de4 | ||
![]() |
656a47f7c2 | ||
![]() |
742bb67cde | ||
![]() |
88fb4d5e04 | ||
![]() |
28745667b8 | ||
![]() |
bffaa1a94d | ||
![]() |
f5863391fe | ||
![]() |
33531e973b | ||
![]() |
44c784f4a5 | ||
![]() |
7e112746bc | ||
![]() |
f29750da65 | ||
![]() |
3e2157782f | ||
![]() |
6a9aaf1c58 | ||
![]() |
516a388aa3 | ||
![]() |
c968478c3d | ||
![]() |
c14bdf8d26 | ||
![]() |
8bce4eb5f8 | ||
![]() |
2c2c6c6cc2 | ||
![]() |
c41a0ba129 | ||
![]() |
6cb335fe32 | ||
![]() |
605815aa76 | ||
![]() |
cf2734f5e2 | ||
![]() |
1624f05c06 | ||
![]() |
39caaf5caa | ||
![]() |
4310143e79 | ||
![]() |
93159e4514 | ||
![]() |
980dae52d4 | ||
![]() |
bd8501fd77 | ||
![]() |
f8306742e9 | ||
![]() |
aa7b007db7 | ||
![]() |
bf041bd1d6 | ||
![]() |
698b1eab76 | ||
![]() |
81db0458a9 | ||
![]() |
87f76f1cc2 | ||
![]() |
751a0c987d | ||
![]() |
e11688d2a3 | ||
![]() |
73d447eeee | ||
![]() |
3012c0ad1f | ||
![]() |
59f356001a | ||
![]() |
1cfb33afcd | ||
![]() |
3f4f611a61 | ||
![]() |
1bd694514b | ||
![]() |
e3f0ab43bb | ||
![]() |
6469cfa6f4 | ||
![]() |
88f9fc5816 | ||
![]() |
933e192e0c | ||
![]() |
7662707c84 | ||
![]() |
7e894eb4b5 | ||
![]() |
20cef9aabb | ||
![]() |
49de0de5ca | ||
![]() |
84f0a478b4 | ||
![]() |
58fcbd9dfa | ||
![]() |
69093204b9 | ||
![]() |
021e654202 | ||
![]() |
f7ebf48e49 | ||
![]() |
7369490478 | ||
![]() |
6117c4a877 | ||
![]() |
03fe76b14a | ||
![]() |
4eaf8ddaa2 | ||
![]() |
bc03bc06c4 | ||
![]() |
576541c4f1 | ||
![]() |
c9df1d8b99 | ||
![]() |
99569e4588 | ||
![]() |
dcd4dc5d44 | ||
![]() |
40890470fe | ||
![]() |
08c7a397bc | ||
![]() |
469260905c | ||
![]() |
c29a81d710 | ||
![]() |
d0b6f9489c | ||
![]() |
4d019067ef | ||
![]() |
ffcf2a040c | ||
![]() |
a222e866fb | ||
![]() |
f4b77e602f | ||
![]() |
b0f5eb0f47 | ||
![]() |
922e893bbf | ||
![]() |
48a1ac71a3 | ||
![]() |
5c564faf6b | ||
![]() |
6c4af9bc71 | ||
![]() |
fc46e4ae79 | ||
![]() |
78f60b866e | ||
![]() |
cb0d9b8633 | ||
![]() |
cbd3a5bff6 | ||
![]() |
0310187c8e | ||
![]() |
ba66550c2c | ||
![]() |
5ff141ded3 | ||
![]() |
de5619e580 | ||
![]() |
8dfb6e7667 | ||
![]() |
e722fc6cca | ||
![]() |
c9bbc14ee2 | ||
![]() |
54e787a6c5 | ||
![]() |
92f7d5d9f5 | ||
![]() |
fed3f8623c | ||
![]() |
bd9f68e0c0 | ||
![]() |
c32c16d932 | ||
![]() |
d8797fceb2 | ||
![]() |
996c292916 | ||
![]() |
ac7bf6a007 | ||
![]() |
aaee7c44ea | ||
![]() |
71c20bdf98 | ||
![]() |
e9f938fb4b | ||
![]() |
e180e3dbd0 | ||
![]() |
a5f6e689fa | ||
![]() |
10711097a6 | ||
![]() |
c458363d5b | ||
![]() |
bbff11bc71 | ||
![]() |
ff67caa61d | ||
![]() |
c785d4c59c | ||
![]() |
43c86ea74c | ||
![]() |
ed4ab842a5 | ||
![]() |
cc498fad22 | ||
![]() |
614be445a4 | ||
![]() |
bdb1e65dfd | ||
![]() |
9d85ddafaa | ||
![]() |
b1c90ceed2 | ||
![]() |
863abd3a70 | ||
![]() |
45e3b9e22b | ||
![]() |
779fd3fa3a | ||
![]() |
d9c825a7de | ||
![]() |
a0244dc60d | ||
![]() |
5ca57e292c | ||
![]() |
c494973e16 | ||
![]() |
a9e0fca099 | ||
![]() |
dd8299d10a | ||
![]() |
68cfdedc45 | ||
![]() |
5f64f9e651 | ||
![]() |
c17620ce54 | ||
![]() |
aadb3be0ea | ||
![]() |
554a976649 | ||
![]() |
72ec61c302 | ||
![]() |
5b391fe52e | ||
![]() |
e133a7746d | ||
![]() |
96d3393437 | ||
![]() |
14b520a498 | ||
![]() |
22eb216a3d | ||
![]() |
7e35a5cfb5 | ||
![]() |
2d573da55e | ||
![]() |
6c77a913ff | ||
![]() |
445b21c03d | ||
![]() |
9ebe42d9af | ||
![]() |
a5587120e0 | ||
![]() |
a22ebf0731 | ||
![]() |
f42a635555 |
@@ -1,4 +1,4 @@
|
|||||||
name: Zen Alpha builds
|
name: Zen Release builds
|
||||||
|
|
||||||
on:
|
on:
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -13,16 +13,87 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: false
|
default: false
|
||||||
type: 'boolean'
|
type: 'boolean'
|
||||||
|
update_branch:
|
||||||
|
description: 'Update branch with new version'
|
||||||
|
required: true
|
||||||
|
default: 'alpha'
|
||||||
|
type: 'choice'
|
||||||
|
options:
|
||||||
|
- 'alpha'
|
||||||
|
- 'twilight'
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
create_release:
|
||||||
|
description: 'Create a new release for this build'
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: 'boolean'
|
||||||
|
update_version:
|
||||||
|
description: 'Update the version number'
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: 'boolean'
|
||||||
|
update_branch:
|
||||||
|
description: 'Update branch with new version'
|
||||||
|
required: true
|
||||||
|
default: 'alpha'
|
||||||
|
type: 'string'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
debug-inputs:
|
||||||
|
name: Debug inputs
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Debug
|
||||||
|
run: |
|
||||||
|
echo "create_release: ${{ inputs.create_release }}"
|
||||||
|
echo "update_version: ${{ inputs.update_version }}"
|
||||||
|
echo "update_branch: ${{ inputs.update_branch }}"
|
||||||
|
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
|
||||||
|
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||||
|
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||||
|
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||||
|
|
||||||
|
check-build-is-correct:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [debug-inputs]
|
||||||
|
steps:
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: recursive
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
fetch-depth: 0
|
||||||
|
|
||||||
|
- name: Check if correct branch
|
||||||
|
run: |
|
||||||
|
echo "Checking if we are on the correct branch"
|
||||||
|
git branch
|
||||||
|
git status
|
||||||
|
git branch --show-current
|
||||||
|
branch="${{ inputs.update_branch }}"
|
||||||
|
if [[ $branch == "alpha" ]]; then
|
||||||
|
branch="stable"
|
||||||
|
elif [[ $branch == "twilight" ]]; then
|
||||||
|
branch="dev"
|
||||||
|
fi
|
||||||
|
if [[ $(git branch --show-current) != $branch ]]; then
|
||||||
|
echo ">>> Branch mismatch"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo ">>> Branch matches"
|
||||||
|
fi
|
||||||
|
|
||||||
build-data:
|
build-data:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
name: Generate build data
|
name: Generate build data
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
needs: check-build-is-correct
|
||||||
outputs:
|
outputs:
|
||||||
build_date: ${{ steps.data.outputs.builddate }}
|
build_date: ${{ steps.data.outputs.builddate }}
|
||||||
version: ${{ steps.data.outputs.version }}
|
version: ${{ steps.data.outputs.version }}
|
||||||
|
build_time: ${{ steps.data.outputs.buildtime }}
|
||||||
steps:
|
steps:
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
@@ -51,14 +122,14 @@ jobs:
|
|||||||
npm i -g @zen-browser/surfer
|
npm i -g @zen-browser/surfer
|
||||||
|
|
||||||
- name: Bump version
|
- name: Bump version
|
||||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
if: ${{ inputs.update_version && inputs.update_branch == 'alpha' }}
|
||||||
run: |
|
run: |
|
||||||
pnpm surfer ci --brand alpha --bump prerelease
|
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
|
||||||
|
|
||||||
- name: Bump version without new version
|
- name: Bump version without new version
|
||||||
if: ${{ github.event.inputs.update_version == 'false' }}
|
if: ${{ !inputs.update_version || inputs.update_branch == 'twilight' }}
|
||||||
run: |
|
run: |
|
||||||
pnpm surfer ci --brand alpha
|
pnpm surfer ci --brand ${{ inputs.update_branch }}
|
||||||
|
|
||||||
- name: Debug
|
- name: Debug
|
||||||
run: |
|
run: |
|
||||||
@@ -72,9 +143,10 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
|
||||||
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
|
||||||
|
echo "buildtime=$(date +"%H:%M:%S")" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
if: ${{ github.event.inputs.update_version == 'true' }}
|
if: ${{ inputs.update_version }}
|
||||||
with:
|
with:
|
||||||
commit_message: 🔖 Update version to ${{ steps.data.outputs.version }}
|
commit_message: 🔖 Update version to ${{ steps.data.outputs.version }}
|
||||||
commit_user_name: Zen Browser Robot
|
commit_user_name: Zen Browser Robot
|
||||||
@@ -113,7 +185,7 @@ jobs:
|
|||||||
- name: Activate surfer CLI
|
- name: Activate surfer CLI
|
||||||
run: |
|
run: |
|
||||||
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
|
||||||
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
- name: Check version
|
- name: Check version
|
||||||
run: |
|
run: |
|
||||||
@@ -132,7 +204,7 @@ jobs:
|
|||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [build-data, check-release]
|
needs: [build-data, check-release]
|
||||||
environment: production
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
@@ -162,7 +234,7 @@ jobs:
|
|||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
- name: Load surfer CI setup
|
- name: Load surfer CI setup
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
- name: Download firefox source and dependancies
|
- name: Download firefox source and dependancies
|
||||||
run: pnpm surfer download --verbose
|
run: pnpm surfer download --verbose
|
||||||
@@ -185,7 +257,7 @@ jobs:
|
|||||||
|
|
||||||
windows-step-1:
|
windows-step-1:
|
||||||
name: Windows build step 1 (PGO build)
|
name: Windows build step 1 (PGO build)
|
||||||
uses: ./.github/workflows/windows-alpha-build.yml
|
uses: ./.github/workflows/windows-release-build.yml
|
||||||
needs: [build-data]
|
needs: [build-data]
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
@@ -194,6 +266,7 @@ jobs:
|
|||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
generate-gpo: true
|
generate-gpo: true
|
||||||
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
release-branch: ${{ inputs.update_branch }}
|
||||||
|
|
||||||
windows-step-2:
|
windows-step-2:
|
||||||
name: Windows build step 2 (Generate profile data)
|
name: Windows build step 2 (Generate profile data)
|
||||||
@@ -205,10 +278,11 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||||
|
release-branch: ${{ inputs.update_branch }}
|
||||||
|
|
||||||
windows-step-3:
|
windows-step-3:
|
||||||
name: Windows build step 3 (build with profile data)
|
name: Windows build step 3 (build with profile data)
|
||||||
uses: ./.github/workflows/windows-alpha-build.yml
|
uses: ./.github/workflows/windows-release-build.yml
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
@@ -216,26 +290,29 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
generate-gpo: false
|
generate-gpo: false
|
||||||
|
release-branch: ${{ inputs.update_branch }}
|
||||||
|
|
||||||
linux:
|
linux:
|
||||||
name: Linux build
|
name: Linux build
|
||||||
uses: ./.github/workflows/linux-alpha-build.yml
|
uses: ./.github/workflows/linux-release-build.yml
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [build-data]
|
needs: [build-data]
|
||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
release-branch: ${{ inputs.update_branch }}
|
||||||
|
|
||||||
mac:
|
mac:
|
||||||
name: macOS build
|
name: macOS build
|
||||||
uses: ./.github/workflows/macos-alpha-build.yml
|
uses: ./.github/workflows/macos-release-build.yml
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [build-data]
|
needs: [build-data]
|
||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
release-branch: ${{ inputs.update_branch }}
|
||||||
|
|
||||||
appimage:
|
appimage:
|
||||||
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
@@ -261,7 +338,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get -y install libfuse2 desktop-file-utils
|
sudo apt-get -y install libfuse2 desktop-file-utils appstream
|
||||||
|
|
||||||
- name: Download linux build
|
- name: Download linux build
|
||||||
uses: actions/download-artifact@v4
|
uses: actions/download-artifact@v4
|
||||||
@@ -272,8 +349,13 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -eux
|
set -eux
|
||||||
rm AppDir/.DirIcon || true
|
rm AppDir/.DirIcon || true
|
||||||
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||||
cp configs/branding/alpha/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||||
|
|
||||||
|
if [ "${{ inputs.update_branch }}" = "twilight" ]; then
|
||||||
|
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' AppDir/zen.desktop
|
||||||
|
sed -i -e 's/StartupWMClass=zen-alpha/StartupWMClass=zen-twilight/g' AppDir/zen.desktop
|
||||||
|
fi
|
||||||
|
|
||||||
APPDIR=AppDir
|
APPDIR=AppDir
|
||||||
tar -xvf *.tar.* && rm -rf *.tar.*
|
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||||
@@ -304,13 +386,13 @@ jobs:
|
|||||||
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release
|
name: Release
|
||||||
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
environment:
|
environment:
|
||||||
name: Deploy-Release
|
name: ${{ inputs.update_branch == 'alpha' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
@@ -334,15 +416,26 @@ jobs:
|
|||||||
path: updates-server
|
path: updates-server
|
||||||
token: ${{ secrets.DEPLOY_KEY }}
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
|
||||||
|
- name: Download object files
|
||||||
|
run: |
|
||||||
|
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object
|
||||||
|
|
||||||
- name: Copy update manifests
|
- name: Copy update manifests
|
||||||
|
env:
|
||||||
|
RELEASE_BRANCH: ${{ inputs.update_branch }}
|
||||||
run: |
|
run: |
|
||||||
cd updates-server
|
cd updates-server
|
||||||
mkdir -p updates
|
mkdir -p updates
|
||||||
cp -a ../linux_update_manifest_generic/. updates/
|
cp -a ../linux_update_manifest_generic/. updates/
|
||||||
cp -a ../linux_update_manifest_specific/. updates/
|
cp -a ../linux_update_manifest_specific/. updates/
|
||||||
|
|
||||||
|
if [[ $RELEASE_BRANCH == 'alpha' ]]; then
|
||||||
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
|
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
|
||||||
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
|
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
|
||||||
|
else
|
||||||
|
cp -a ../windows_update_manifest_generic/. updates/
|
||||||
|
cp -a ../windows_update_manifest_specific/. updates/
|
||||||
|
fi
|
||||||
|
|
||||||
cp -a ../macos_update_manifest_aarch64/. updates/
|
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||||
cp -a ../macos_update_manifest_x64/. updates/
|
cp -a ../macos_update_manifest_x64/. updates/
|
||||||
@@ -354,8 +447,42 @@ jobs:
|
|||||||
commit_user_email: zen-browser-bot@users.noreply.github.com
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
||||||
repository: ./updates-server
|
repository: ./updates-server
|
||||||
|
|
||||||
|
# If we are on twilight, we want to just update the twilight tag's release
|
||||||
|
- name: Update twilight tag
|
||||||
|
if: ${{ inputs.update_branch == 'twilight' }}
|
||||||
|
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
zen.source.tar.gz
|
||||||
|
zen.linux-generic.tar.bz2
|
||||||
|
zen.linux-specific.tar.bz2
|
||||||
|
zen-generic.AppImage
|
||||||
|
zen-generic.AppImage.zsync
|
||||||
|
zen-specific.AppImage
|
||||||
|
zen-specific.AppImage.zsync
|
||||||
|
zen.win-generic.zip
|
||||||
|
zen.win-specific.zip
|
||||||
|
linux.mar
|
||||||
|
linux-generic.mar
|
||||||
|
windows-generic.mar
|
||||||
|
windows.mar
|
||||||
|
macos-x64.mar
|
||||||
|
macos-aarch64.mar
|
||||||
|
zen.installer.exe
|
||||||
|
zen.installer-generic.exe
|
||||||
|
zen.macos-x64.dmg
|
||||||
|
zen.macos-aarch64.dmg
|
||||||
|
automatic_release_tag: 'twilight'
|
||||||
|
title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})'
|
||||||
|
draft: false
|
||||||
|
prerelease: true
|
||||||
|
repo_token: ${{ github.token }}
|
||||||
|
env:
|
||||||
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
|
|
||||||
- name: release-github
|
- name: release-github
|
||||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||||
|
if: ${{ inputs.update_branch == 'alpha' }}
|
||||||
with:
|
with:
|
||||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||||
@@ -383,7 +510,7 @@ jobs:
|
|||||||
zen.macos-aarch64.dmg
|
zen.macos-aarch64.dmg
|
||||||
|
|
||||||
prepare-flatpak:
|
prepare-flatpak:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Prepare Flatpak
|
name: Prepare Flatpak
|
||||||
needs: [release, linux, build-data]
|
needs: [release, linux, build-data]
|
||||||
@@ -440,7 +567,7 @@ jobs:
|
|||||||
run: sleep 240
|
run: sleep 240
|
||||||
|
|
||||||
release-flatpak:
|
release-flatpak:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release Flatpak
|
name: Release Flatpak
|
||||||
needs: [prepare-flatpak, build-data]
|
needs: [prepare-flatpak, build-data]
|
||||||
@@ -518,7 +645,7 @@ jobs:
|
|||||||
delete-branch: true
|
delete-branch: true
|
||||||
|
|
||||||
release-homebrew:
|
release-homebrew:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Homebrew release
|
name: Homebrew release
|
||||||
needs: [release, mac, build-data]
|
needs: [release, mac, build-data]
|
@@ -1,4 +1,4 @@
|
|||||||
name: Linux Alpha Build
|
name: Linux Release Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
@@ -6,10 +6,14 @@ on:
|
|||||||
description: 'The version to build'
|
description: 'The version to build'
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
release-branch:
|
||||||
|
description: 'The branch to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-linux:
|
build-linux:
|
||||||
environment: production
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -87,11 +91,17 @@ jobs:
|
|||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
- name: Load surfer CI setup
|
- name: Load surfer CI setup
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
- name: Download firefox source and dependencies
|
- name: Download firefox source and dependencies
|
||||||
run: pnpm surfer download
|
run: pnpm surfer download
|
||||||
|
|
||||||
|
- name: Fix rust version
|
||||||
|
run: |
|
||||||
|
# Install a rust version compatible with LLVM 18
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||||
|
source $HOME/.cargo/env
|
||||||
|
|
||||||
- name: Import
|
- name: Import
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
@@ -110,13 +120,13 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
continue-on-error: true
|
continue-on-error: true
|
||||||
run: sh .github/workflows/src/alpha-build.sh
|
run: sh .github/workflows/src/release-build.sh
|
||||||
|
|
||||||
- name: Build again if it failed
|
- name: Build again if it failed
|
||||||
if: failure()
|
if: failure()
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.generic == true }}
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
run: sh .github/workflows/src/alpha-build.sh
|
run: sh .github/workflows/src/release-build.sh
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
env:
|
env:
|
@@ -1,4 +1,4 @@
|
|||||||
name: macOS Alpha Build
|
name: macOS Release Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
@@ -6,10 +6,15 @@ on:
|
|||||||
description: 'The version to build'
|
description: 'The version to build'
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
release-branch:
|
||||||
|
description: 'The branch to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
mac-build:
|
mac-build:
|
||||||
name: Build macOS - ${{ matrix.arch }}
|
name: Build macOS - ${{ matrix.arch }}
|
||||||
environment: production
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -42,6 +47,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Install system dependencies
|
- name: Install system dependencies
|
||||||
run: |
|
run: |
|
||||||
|
brew update
|
||||||
|
|
||||||
brew install cairo sccache gnu-tar mercurial
|
brew install cairo sccache gnu-tar mercurial
|
||||||
sudo pip install setuptools
|
sudo pip install setuptools
|
||||||
|
|
||||||
@@ -69,6 +76,8 @@ jobs:
|
|||||||
|
|
||||||
brew install watchman
|
brew install watchman
|
||||||
|
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.79
|
||||||
|
|
||||||
- name: Force usage fo gnu-tar
|
- name: Force usage fo gnu-tar
|
||||||
run: |
|
run: |
|
||||||
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
|
||||||
@@ -87,7 +96,7 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
- name: Load surfer CI setup
|
- name: Load surfer CI setup
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
- name: Download firefox source and dependancies
|
- name: Download firefox source and dependancies
|
||||||
run: pnpm surfer download
|
run: pnpm surfer download
|
||||||
@@ -115,11 +124,11 @@ jobs:
|
|||||||
if test "${{ matrix.arch }}" = "x64"; then
|
if test "${{ matrix.arch }}" = "x64"; then
|
||||||
export ZEN_DISABLE_LTO=1
|
export ZEN_DISABLE_LTO=1
|
||||||
fi
|
fi
|
||||||
sh .github/workflows/src/alpha-build.sh
|
sh .github/workflows/src/release-build.sh
|
||||||
|
|
||||||
- name: Rebuild Zen if failed
|
- name: Rebuild Zen if failed
|
||||||
if: failure()
|
if: failure()
|
||||||
run: sh .github/workflows/src/alpha-build.sh
|
run: sh .github/workflows/src/release-build.sh
|
||||||
|
|
||||||
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
|
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
|
||||||
uses: apple-actions/import-codesign-certs@v3
|
uses: apple-actions/import-codesign-certs@v3
|
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<updates>
|
|
||||||
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002655">
|
|
||||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows-generic.mar" hashFunction="sha512" hashValue="75c5b879a4398dd28482e95ebc27e2eb922e040bb7efa3d1cb68a09165c694e2b8d58a09a0e8b7360ba8f667c9273b8d6132a49840f9df8711e614bc5ee8c913" size="72325896"/>
|
|
||||||
</update>
|
|
||||||
</updates>
|
|
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<updates>
|
|
||||||
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002655">
|
|
||||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows-generic.mar" hashFunction="sha512" hashValue="75c5b879a4398dd28482e95ebc27e2eb922e040bb7efa3d1cb68a09165c694e2b8d58a09a0e8b7360ba8f667c9273b8d6132a49840f9df8711e614bc5ee8c913" size="72325896"/>
|
|
||||||
</update>
|
|
||||||
</updates>
|
|
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<updates>
|
|
||||||
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002634">
|
|
||||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows.mar" hashFunction="sha512" hashValue="12f748e7eec386ea4d559d2cd6163cff94aa2adf058f7d1037434235ae1b09ed4ed9e524ea85d3d2f330878ad8bccf7c578ef7c32c79a5804333f6137bb0fe00" size="72311992"/>
|
|
||||||
</update>
|
|
||||||
</updates>
|
|
@@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<updates>
|
|
||||||
<update type="minor" displayVersion="1.0.1-a.2" appVersion="1.0.1-a.2" platformVersion="130.0" buildID="20240918002634">
|
|
||||||
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.2/windows.mar" hashFunction="sha512" hashValue="12f748e7eec386ea4d559d2cd6163cff94aa2adf058f7d1037434235ae1b09ed4ed9e524ea85d3d2f330878ad8bccf7c578ef7c32c79a5804333f6137bb0fe00" size="72311992"/>
|
|
||||||
</update>
|
|
||||||
</updates>
|
|
36
.github/workflows/pr-test.yml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
|
||||||
|
name: Pull request test
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
pr-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
|
||||||
|
- name: Install Node.js and pnpm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Install Surfer
|
||||||
|
run: |
|
||||||
|
npm i -g @zen-browser/surfer
|
||||||
|
|
||||||
|
- name: Download firefox
|
||||||
|
run: |
|
||||||
|
surfer download
|
||||||
|
|
||||||
|
- name: Import patches
|
||||||
|
run: |
|
||||||
|
surfer i
|
29
.github/workflows/stale.yml
vendored
@@ -1,29 +0,0 @@
|
|||||||
name: Close inactive issues
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: '0 0 * * *'
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
close-issues:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
issues: write
|
|
||||||
pull-requests: write
|
|
||||||
steps:
|
|
||||||
- uses: actions/stale@v5
|
|
||||||
with:
|
|
||||||
days-before-issue-stale: 30
|
|
||||||
days-before-issue-close: 14
|
|
||||||
stale-issue-label: 'stale'
|
|
||||||
stale-issue-message: |
|
|
||||||
This issue is stale because it has been open for 30 days with no activity.
|
|
||||||
|
|
||||||
Please close this issue if you feel it is no longer relevant, or comment if you have more information to share.
|
|
||||||
close-issue-message: |
|
|
||||||
This issue was closed because it has been inactive for 14 days since being marked as stale.
|
|
||||||
|
|
||||||
If you think this issue should remain open, please comment with a request for it to be re-opened or open a new issue.
|
|
||||||
days-before-pr-stale: -1
|
|
||||||
days-before-pr-close: -1
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
31
.github/workflows/twilight-release-schedule.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
name: Zen Twilight Scheduled Releases
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: '0 0 * * *'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
twilight-release-schedule:
|
||||||
|
name: Twilight Release Schedule
|
||||||
|
permissions: write-all
|
||||||
|
secrets: inherit
|
||||||
|
uses: ./.github/workflows/build.yml
|
||||||
|
with:
|
||||||
|
create_release: true
|
||||||
|
update_branch: twilight
|
||||||
|
update_version: false
|
||||||
|
|
||||||
|
post-build:
|
||||||
|
name: Post Build
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: twilight-release-schedule
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node.js and pnpm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
# TODO:
|
30
.github/workflows/update-submodules.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
name: Update Components Submodules
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- dev
|
||||||
|
workflow_dispatch:
|
||||||
|
workflow_call: # This is a custom event that we will trigger manually
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-submodules:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
submodules: 'recursive'
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
|
||||||
|
- name: Update submodules
|
||||||
|
run: |
|
||||||
|
git submodule update --remote --merge
|
||||||
|
|
||||||
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
|
with:
|
||||||
|
commit_message: "[skip ci] 📦 Update Submodules!"
|
||||||
|
commit_user_name: Zen Browser Robot
|
||||||
|
commit_user_email: zen-browser-bot@users.noreply.github.com
|
10
.github/workflows/windows-profile-build.yml
vendored
@@ -10,6 +10,10 @@ on:
|
|||||||
description: 'The path to the zip archive containing the profile data'
|
description: 'The path to the zip archive containing the profile data'
|
||||||
required: false
|
required: false
|
||||||
type: string
|
type: string
|
||||||
|
release-branch:
|
||||||
|
description: 'The branch to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
windows-profile-build:
|
windows-profile-build:
|
||||||
@@ -59,6 +63,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
git config --global core.safecrlf false
|
git config --global core.safecrlf false
|
||||||
pnpm surfer download
|
pnpm surfer download
|
||||||
|
|
||||||
|
- name: Import patches
|
||||||
|
env:
|
||||||
|
SURFER_NO_BRANDING_PATCH: true
|
||||||
|
run: pnpm surfer import
|
||||||
|
|
||||||
- name: Generate
|
- name: Generate
|
||||||
run: |
|
run: |
|
||||||
ls
|
ls
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
name: Windows Alpha Build
|
name: Windows Release Build
|
||||||
on:
|
on:
|
||||||
workflow_call:
|
workflow_call:
|
||||||
inputs:
|
inputs:
|
||||||
@@ -13,6 +13,10 @@ on:
|
|||||||
profile-data-path-archive:
|
profile-data-path-archive:
|
||||||
description: 'The path to the zip archive containing the profile data'
|
description: 'The path to the zip archive containing the profile data'
|
||||||
type: string
|
type: string
|
||||||
|
release-branch:
|
||||||
|
description: 'The branch to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
windows-build:
|
windows-build:
|
||||||
@@ -22,7 +26,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
generic: [true, false]
|
generic: [true, false]
|
||||||
environment: production
|
|
||||||
steps:
|
steps:
|
||||||
- name: Free Disk Space (Ubuntu)
|
- name: Free Disk Space (Ubuntu)
|
||||||
uses: jlumbroso/free-disk-space@main
|
uses: jlumbroso/free-disk-space@main
|
||||||
@@ -54,7 +58,7 @@ jobs:
|
|||||||
pnpm i
|
pnpm i
|
||||||
|
|
||||||
- name: Load surfer CI setup
|
- name: Load surfer CI setup
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
- name: Download
|
- name: Download
|
||||||
run: pnpm surfer download
|
run: pnpm surfer download
|
||||||
@@ -123,12 +127,12 @@ jobs:
|
|||||||
|
|
||||||
rustup target add x86_64-pc-windows-msvc
|
rustup target add x86_64-pc-windows-msvc
|
||||||
cargo install cargo-download
|
cargo install cargo-download
|
||||||
cargo download -x windows=0.52.0
|
cargo download -x windows=0.58.0
|
||||||
#? https://github.com/mozilla/sccache#known-caveats
|
#? https://github.com/mozilla/sccache#known-caveats
|
||||||
export CARGO_INCREMENTAL=0
|
export CARGO_INCREMENTAL=0
|
||||||
|
|
||||||
echo "" >> ../configs/common/mozconfig
|
echo "" >> ../configs/common/mozconfig
|
||||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||||
|
|
||||||
- name: Import
|
- name: Import
|
||||||
env:
|
env:
|
||||||
@@ -166,7 +170,7 @@ jobs:
|
|||||||
if test ${{ inputs.generate-gpo }} = true; then
|
if test ${{ inputs.generate-gpo }} = true; then
|
||||||
export ZEN_GA_GENERATE_PROFILE=1
|
export ZEN_GA_GENERATE_PROFILE=1
|
||||||
fi
|
fi
|
||||||
sh .github/workflows/src/alpha-build.sh
|
sh .github/workflows/src/release-build.sh
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
env:
|
env:
|
||||||
@@ -204,11 +208,12 @@ jobs:
|
|||||||
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||||
path: ./zen.win64-pgo-stage-1.zip
|
path: ./zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
- name: Remove symlinks from obj folder
|
- name: Remove unnecessary files from obj
|
||||||
if: ${{ !inputs.generate-gpo }}
|
if: ${{ !inputs.generate-gpo }}
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
find engine/obj-x86_64-pc-windows-msvc/ -type l -delete
|
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} \;
|
||||||
|
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type f -not -name 'dist' -exec rm -f {} \;
|
||||||
|
|
||||||
- name: Upload dist object
|
- name: Upload dist object
|
||||||
if: ${{ !inputs.generate-gpo }}
|
if: ${{ !inputs.generate-gpo }}
|
||||||
@@ -217,3 +222,30 @@ jobs:
|
|||||||
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
|
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
path: engine/obj-x86_64-pc-windows-msvc/
|
path: engine/obj-x86_64-pc-windows-msvc/
|
||||||
|
|
||||||
|
- name: Upload zip file if twilight branch
|
||||||
|
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||||
|
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||||
|
|
||||||
|
- name: Upload installer if twilight branch
|
||||||
|
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
|
||||||
|
- name: Upload mar if twilight branch
|
||||||
|
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
|
||||||
|
- name: Upload update manifests if twilight branch
|
||||||
|
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
path: ./dist/update
|
128
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
hello@zen-browser.app.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
157
README.md
@@ -1,64 +1,67 @@
|
|||||||
<div align="center">
|
<img src="./docs/assets/zen-black.svg" width="100px" align="left">
|
||||||
<picture>
|
|
||||||
<img src="./docs/assets/zen-black.svg" width="128px">
|
|
||||||
</picture>
|
|
||||||
</div>
|
|
||||||
<h1 align="center">
|
|
||||||
Zen Browser
|
|
||||||
</h1>
|
|
||||||
|
|
||||||
Experience tranquillity while browsing the web without people tracking you!
|
### `Zen Browser`
|
||||||
|
|
||||||
- [Website](https://zen-browser.app)
|
|
||||||
- [Download](https://zen-browser.app/download)
|
|
||||||
- [Release Notes](https://zen-browser.app/release-notes/latest)
|
|
||||||
|
|
||||||
[](https://github.com/zen-browser/desktop/releases)
|
[](https://github.com/zen-browser/desktop/releases)
|
||||||
[](https://crowdin.com/project/zen-browser)
|
[](https://crowdin.com/project/zen-browser)
|
||||||
|
|
||||||
[](https://flathub.org/apps/io.github.zen_browser.zen)
|
|
||||||
|
|
||||||
[](https://www.patreon.com/zen_browser)
|
✨ Experience tranquillity while browsing the web without people tracking you! Zen is a privacy-focused browser that blocks trackers, ads, and other unwanted content while offering the best browsing experience!
|
||||||
|
|
||||||
[](https://ko-fi.com/zen_browser)
|
<div flex="true">
|
||||||
|
<a href="https://zen-browser.app/download">
|
||||||
|
Download
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://zen-browser.app">
|
||||||
|
Website
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https://docs.zen-browser.app">
|
||||||
|
Documentation
|
||||||
|
</a>
|
||||||
|
•
|
||||||
|
<a href="https//zen-browser.app/release-notes/latest">
|
||||||
|
Release Notes
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
# Compatibility
|
## 🖥️ Compatibility
|
||||||
|
|
||||||
Zen is currently built using firefox version `130.0`!
|
Zen is currently built using firefox version `131.0.3`! 🚀
|
||||||
|
|
||||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||||
|
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||||
|
|
||||||
# Performance
|
## 🤝 Contribution
|
||||||
|
|
||||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
|
Zen is an open-source project, and we welcome contributions from the community! Please take a look at the [contribution guidelines](./docs/contribute.md) before getting started!
|
||||||
|
|
||||||
- Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
## ⚡ Performance
|
||||||
|
|
||||||
# Installation
|
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)!
|
||||||
|
|
||||||
## Supported Operating Systems
|
## 📥 Installation
|
||||||
|
|
||||||
|
### Supported Operating Systems
|
||||||
|
|
||||||
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
||||||
|
|
||||||
### Windows
|
If you dont see your OS listed below, that's because we already have it in our [downloads page](https://zen-browser.app/download)! Make sure to check it out!
|
||||||
|
|
||||||
#### Winget
|
#### Windows
|
||||||
|
|
||||||
- Generic
|
##### Winget
|
||||||
|
|
||||||
```
|
```ps
|
||||||
|
# Generic version
|
||||||
winget install --id Zen-Team.Zen-Browser
|
winget install --id Zen-Team.Zen-Browser
|
||||||
```
|
|
||||||
|
|
||||||
- Optimized
|
# Optimized version
|
||||||
|
|
||||||
```
|
|
||||||
winget install --id Zen-Team.Zen-Browser.Optimized
|
winget install --id Zen-Team.Zen-Browser.Optimized
|
||||||
```
|
```
|
||||||
|
|
||||||
####
|
#### macOS
|
||||||
|
|
||||||
### macOS
|
|
||||||
|
|
||||||
- Requires macOS 10.15 or later
|
- Requires macOS 10.15 or later
|
||||||
- Available for ARM and Intel architectures
|
- Available for ARM and Intel architectures
|
||||||
@@ -69,83 +72,61 @@ You can also install Zen using Homebrew:
|
|||||||
brew install --cask zen-browser
|
brew install --cask zen-browser
|
||||||
```
|
```
|
||||||
|
|
||||||
### Linux
|
#### Linux
|
||||||
|
|
||||||
#### AppImage
|
##### Arch-based distributions
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# For generic version
|
||||||
|
yay -S zen-browser-bin
|
||||||
|
|
||||||
|
# For optimized version
|
||||||
|
yay -S zen-browser-avx2-bin
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Other Linux distributions (AppImage with automated system integration)
|
||||||
|
|
||||||
- `zsync` is required for the Update feature of the script below
|
- `zsync` is required for the Update feature of the script below
|
||||||
|
|
||||||
```
|
```sh
|
||||||
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Flatpak
|
* Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄
|
||||||
```
|
|
||||||
flatpak install flathub io.github.zen_browser.zen
|
|
||||||
```
|
|
||||||
|
|
||||||
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
||||||
|
|
||||||
# Core Components
|
## 👨💻 Development and Contributing
|
||||||
|
|
||||||
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).
|
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/components).
|
||||||
|
|
||||||
## 🚀 Run Locally
|
#### `Run Locally`
|
||||||
|
|
||||||
Clone the project
|
In order to download and run zen locally, please follow [these instructions](https://docs.zen-browser.app/contribute/desktop).
|
||||||
|
|
||||||
```bash
|
#### `Special Thanks`
|
||||||
git clone https://github.com/zen-browser/desktop.git --recurse-submodules
|
|
||||||
cd desktop
|
|
||||||
```
|
|
||||||
|
|
||||||
Install dependencies
|
Special thanks to... EVERYONE 🎉! Checkout the team and contributors page [here](https://zen-browser.app/about)
|
||||||
|
|
||||||
```bash
|
#### `Third Party Code`
|
||||||
npm i
|
|
||||||
```
|
|
||||||
|
|
||||||
Download and bootstrap the browser
|
Zen couldn't be in its current state without the help of these amazing projects! 🙏
|
||||||
|
|
||||||
```
|
|
||||||
npm run init
|
|
||||||
```
|
|
||||||
|
|
||||||
Start building the browser
|
|
||||||
|
|
||||||
```
|
|
||||||
npm run build
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, run the browser!
|
|
||||||
|
|
||||||
```
|
|
||||||
npm start
|
|
||||||
```
|
|
||||||
|
|
||||||
## Special Thanks
|
|
||||||
|
|
||||||
- [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 couldn't be in its current state without the help of these amazing projects!
|
|
||||||
|
|
||||||
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
||||||
|
- Gradient image extracted from [Arc Palette](https://github.com/neurokitti/Arc_Palette)
|
||||||
|
|
||||||
## License
|
### 🖥️ Comparison with other browsers
|
||||||
|
|
||||||
[MPL LICENSE](./LICENSE)
|
As you can see, chromium based browsers are the most popular browsers, help us change that by starring the project and spreading the word! 🌟
|
||||||
|
|
||||||
## Star History
|
|
||||||
|
|
||||||
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
<a href="https://star-history.com/#zen-browser/desktop&Date">
|
||||||
<picture>
|
<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: dark)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date&theme=dark" />
|
||||||
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop&type=Date" />
|
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=zen-browser/desktop,chromium/chromium,brave/brave-browser&type=Date" />
|
||||||
<img alt="Star History Chart" src="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=chromium/chromium,zen-browser/desktop,brave/brave-browser&type=Date" />
|
||||||
</picture>
|
</picture>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
## 📄 License
|
||||||
|
|
||||||
|
Zen browser is under the [MPL LICENSE](./LICENSE). All the code is open-source and free to use! Attributions are appreciated but not required.
|
||||||
|
@@ -50,11 +50,11 @@ if [ ! -x ${SWVERS} ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Require macOS 10.14 or newer.
|
# Require macOS 10.14 or newer.
|
||||||
OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
#OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
|
||||||
if [ ${OSVERSION} \< 14 ]; then
|
#if [ ${OSVERSION} \< 14 ]; then
|
||||||
echo "ERROR: macOS 10.14 or later is required"
|
# echo "ERROR: macOS 10.14 or later is required"
|
||||||
exit -1
|
# exit -1
|
||||||
fi
|
#fi
|
||||||
|
|
||||||
while getopts "a:i:b:o:p:" opt; do
|
while getopts "a:i:b:o:p:" opt; do
|
||||||
case ${opt} in
|
case ${opt} in
|
||||||
|
@@ -1,19 +1,32 @@
|
|||||||
param(
|
param(
|
||||||
[string][Parameter(Mandatory=$true)]$SignIdentity
|
[string][Parameter(Mandatory=$true)]$SignIdentity,
|
||||||
|
[string][Parameter(Mandatory=$true)]$GithubRunId
|
||||||
)
|
)
|
||||||
|
|
||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
|
|
||||||
echo "Preparing environment"
|
echo "Preparing environment"
|
||||||
|
git pull --recurse-submodules
|
||||||
mkdir windsign-temp -ErrorAction SilentlyContinue
|
mkdir windsign-temp -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
echo "Please UNZIP the generic and specific artifacts into windsign-temp"
|
# Download in parallel
|
||||||
echo "With the following filenames:"
|
|
||||||
echo " - $pwd\windsign-temp\windows-x64-obj-specific"
|
#show output too
|
||||||
echo " - $pwd\windsign-temp\windows-x64-obj-generic"
|
Start-Job -Name "DownloadGitObjectsRepo" -ScriptBlock {
|
||||||
Read-Host "Press Enter to continue when ready"
|
param($PWD)
|
||||||
|
echo "Downloading git objects repo to $PWD\windsign-temp\windows-binaries"
|
||||||
|
git clone https://github.com/zen-browser/windows-binaries.git $PWD\windsign-temp\windows-binaries
|
||||||
|
echo "Downloaded git objects repo to"
|
||||||
|
} -Verbose -ArgumentList $PWD -Debug
|
||||||
|
|
||||||
|
gh run download $GithubRunId --name windows-x64-obj-specific -D windsign-temp\windows-x64-obj-specific
|
||||||
|
echo "Downloaded specific artifacts"
|
||||||
|
gh run download $GithubRunId --name windows-x64-obj-generic -D windsign-temp\windows-x64-obj-generic
|
||||||
|
echo "Downloaded generic artifacts"
|
||||||
|
|
||||||
|
Wait-Job -Name "DownloadGitObjectsRepo"
|
||||||
|
|
||||||
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
mkdir engine\obj-x86_64-pc-windows-msvc\ -ErrorAction SilentlyContinue
|
||||||
mkdir .\.github\workflows\object\ -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
pnpm surfer ci --brand alpha
|
pnpm surfer ci --brand alpha
|
||||||
|
|
||||||
@@ -84,8 +97,8 @@ function SignAndPackage($name) {
|
|||||||
|
|
||||||
echo "Invoking tar for $name"
|
echo "Invoking tar for $name"
|
||||||
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
# note: We need to sign it into a parent folder, called windows-x64-signed-$name
|
||||||
rmdir .\.github\workflows\object\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
|
||||||
mv .\windsign-temp\windows-x64-signed-$name .\.github\workflows\object\windows-x64-signed-$name -Force
|
mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
|
||||||
|
|
||||||
echo "Finished $name"
|
echo "Finished $name"
|
||||||
}
|
}
|
||||||
@@ -93,6 +106,14 @@ function SignAndPackage($name) {
|
|||||||
SignAndPackage specific
|
SignAndPackage specific
|
||||||
SignAndPackage generic
|
SignAndPackage generic
|
||||||
|
|
||||||
|
echo "All artifacts signed and packaged, ready for release!"
|
||||||
|
echo "Commiting the changes to the repository"
|
||||||
|
cd windsign-temp\windows-binaries
|
||||||
|
git add .
|
||||||
|
git commit -m "Sign and package windows artifacts"
|
||||||
|
git push
|
||||||
|
cd ..\..
|
||||||
|
|
||||||
# Cleaning up
|
# Cleaning up
|
||||||
|
|
||||||
echo "All done!"
|
echo "All done!"
|
||||||
@@ -101,3 +122,6 @@ Read-Host "Press Enter to continue"
|
|||||||
|
|
||||||
echo "Cleaning up"
|
echo "Cleaning up"
|
||||||
rmdir windsign-temp -Recurse -ErrorAction SilentlyContinue
|
rmdir windsign-temp -Recurse -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
|
echo "Opening visual studio code"
|
||||||
|
code .
|
||||||
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.9 KiB |
@@ -1 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
|
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 9.3 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 500 B |
Before Width: | Height: | Size: 951 B After Width: | Height: | Size: 682 B |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 748 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 946 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.6 KiB |
1
configs/branding/twilight/MacOSInstaller.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />Sorry, your browser does not support inline SVG.</svg>
|
After Width: | Height: | Size: 219 B |
BIN
configs/branding/twilight/PrivateBrowsing_150.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
configs/branding/twilight/PrivateBrowsing_70.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
configs/branding/twilight/VisualElements_150.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
configs/branding/twilight/VisualElements_70.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
configs/branding/twilight/content/about-logo-private.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
1
configs/branding/twilight/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/twilight/content/about-logo-private@2x.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
configs/branding/twilight/content/about-logo.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
1
configs/branding/twilight/content/about-logo.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:url(#e);}.g,.h,.i{stroke-width:0px;}.h{fill:#a570ff;}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity="0"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
After Width: | Height: | Size: 1.6 KiB |
BIN
configs/branding/twilight/content/about-logo@2x.png
Normal file
After Width: | Height: | Size: 8.3 KiB |
1
configs/branding/twilight/content/about-wordmark.svg
Normal file
After Width: | Height: | Size: 6.4 KiB |
1
configs/branding/twilight/content/firefox-wordmark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 56"><defs><style>.b{fill:context-fill #20123a;}</style></defs><path class="b" d="M11.2896,37.6632h15.1928v5.2919H3.2415v-3.8076l15.1487-21.2557H3.2126v-5.2919h23.2393v3.811l-15.1622,21.2523ZM50.8649,26.3765c.5434,1.4469.8151,3.1418.8151,5.0778v1.7322h-15.5019v.017c0,1.1243.2089,2.0991.6301,2.9176.4195.822,1.0139,1.4537,1.7849,1.8987s1.6847.6657,2.7427.6657c.7014,0,1.3433-.0984,1.9258-.2955.5842-.197,1.0818-.4925,1.4979-.8899.4144-.394.7303-.8797.9476-1.4503l5.8404.3838c-.2972,1.4028-.9018,2.6255-1.8154,3.6683-.9137,1.0428-2.0906,1.8511-3.5273,2.4319-1.4385.5774-3.0959.8661-4.9726.8661-2.3419,0-4.3561-.4755-6.0408-1.43-1.6847-.9544-2.9805-2.3063-3.8907-4.0623-.9086-1.7526-1.362-3.8314-1.362-6.2327,0-2.3402.4534-4.3951,1.362-6.1647.9103-1.7696,2.1925-3.1486,3.8466-4.1336,1.6558-.9884,3.5986-1.4843,5.8318-1.4843,1.503,0,2.9024.2411,4.2032.7201,1.2992.4789,2.4354,1.199,3.4084,2.1568.9731.9578,1.7306,2.1602,2.274,3.6072ZM45.7378,29.2737c0-.9069-.1987-1.7119-.5927-2.4149-.3957-.6997-.9409-1.2534-1.6388-1.6508-.6964-.4008-1.503-.6012-2.4235-.6012-.9578,0-1.8053.2208-2.5406.6589-.7371.4382-1.3127,1.0292-1.7271,1.7628-.3818.679-.5853,1.4304-.6228,2.2451h9.5455ZM73.0682,20.9318c-1.1769-.6929-2.5543-1.0394-4.1353-1.0394-1.6898,0-3.1265.3872-4.3137,1.165-1.1854.7744-2.0294,1.824-2.5338,3.1486h-.2667v-4.0181h-6.017v22.7672h6.3125v-13.1617c.0102-.9782.1953-1.8138.557-2.5135.36-.6963.8644-1.2261,1.5115-1.593.647-.3635,1.396-.5469,2.2451-.5469,1.2653,0,2.257.394,2.9788,1.1786.7217.7846,1.0767,1.8749,1.0682,3.2675v13.3689h6.3125v-14.4965c0-1.7662-.326-3.2913-.9782-4.5718-.6521-1.2805-1.5658-2.2655-2.741-2.955Z"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
BIN
configs/branding/twilight/document.ico
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
configs/branding/twilight/document_pdf.ico
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
configs/branding/twilight/firefox.ico
Normal file
After Width: | Height: | Size: 103 KiB |
BIN
configs/branding/twilight/firefox64.ico
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
configs/branding/twilight/logo-mac.png
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
configs/branding/twilight/logo.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
configs/branding/twilight/logo128.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
configs/branding/twilight/logo16.png
Normal file
After Width: | Height: | Size: 459 B |
BIN
configs/branding/twilight/logo22.png
Normal file
After Width: | Height: | Size: 606 B |
BIN
configs/branding/twilight/logo24.png
Normal file
After Width: | Height: | Size: 647 B |
BIN
configs/branding/twilight/logo256.png
Normal file
After Width: | Height: | Size: 5.6 KiB |
BIN
configs/branding/twilight/logo32.png
Normal file
After Width: | Height: | Size: 812 B |
BIN
configs/branding/twilight/logo48.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
configs/branding/twilight/logo512.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
configs/branding/twilight/logo64.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
configs/branding/twilight/pbmode.ico
Normal file
After Width: | Height: | Size: 103 KiB |
@@ -13,7 +13,6 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --enable-linker=lld
|
ac_add_options --enable-linker=lld
|
||||||
ac_add_options --disable-elf-hack
|
ac_add_options --disable-elf-hack
|
||||||
|
|
||||||
ac_add_options --disable-gpsd
|
|
||||||
ac_add_options --disable-necko-wifi
|
ac_add_options --disable-necko-wifi
|
||||||
|
|
||||||
ac_add_options --enable-install-strip
|
ac_add_options --enable-install-strip
|
||||||
@@ -49,7 +48,7 @@ if test "$ZEN_RELEASE"; then
|
|||||||
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1 -Clink-args=--icf=safe"
|
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1 -Clink-args=--icf=safe"
|
||||||
fi
|
fi
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_add_options --target=x86_64-pc-linux
|
ac_add_options --target=x86_64-pc-linux
|
||||||
|
@@ -36,4 +36,4 @@ else
|
|||||||
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
||||||
fi
|
fi
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
#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"
|
||||||
|
@@ -49,7 +49,7 @@ else
|
|||||||
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
|
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
|
||||||
export RUSTFLAGS="-Clink-args=--icf=safe -C target-feature=+avx2 -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
export RUSTFLAGS="-Clink-args=--icf=safe -C target-feature=+avx2 -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
||||||
fi
|
fi
|
||||||
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
#export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
export VERBOSE=1
|
export VERBOSE=1
|
||||||
|
|
||||||
if test "$ZEN_CROSS_COMPILING"; then
|
if test "$ZEN_CROSS_COMPILING"; then
|
||||||
|
@@ -1,2 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4367,57.6782c-.0536,3.2127-2.7418,5.7593-5.955,5.7593h-24.1527c-.9392,0-1.5768-.9548-1.2169-1.8223l.0082-.0197c1.5882-3.8346,4.1653-7.0703,7.456-9.4308.4093-.2936.9032-.4459,1.407-.4459h16.5948c3.2694,0,5.9133,2.6775,5.8585,5.9594Z"/><path class="i" d="M46.671,16.5625c.9392,0,1.5768.9548,1.2169,1.8223l-.0082.0197c-1.5882,3.8346-4.1653,7.0703-7.456,9.4308-.4093.2936-.9032.4459-1.407.4459h-16.4984c-3.2132,0-5.9014-2.5466-5.955-5.7593-.0547-3.2819,2.5892-5.9594,5.8585-5.9594h24.2491Z"/><path class="i" d="M22.4208,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.251,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9897,4.6658-4.4091,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.251-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
|
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
37
docs/contribute.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
# Branch Structure
|
||||||
|
|
||||||
|
The repository is structured as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
dev (main branch)
|
||||||
|
| |
|
||||||
|
| \--->-- stable (release branch)
|
||||||
|
| ^
|
||||||
|
^ |
|
||||||
|
| \-<- Hotfix (hotfixes directly from stable)
|
||||||
|
|
|
||||||
|
\-<- (features branches)
|
||||||
|
```
|
||||||
|
|
||||||
|
The `central` branch is the main branch of the repository, and it is the default branch for the repository. The `twilight` branch is the feature branch, and it is branched off from the `central` branch. The `stable` branch is the release branch, and it is branched off from the `central` branch.
|
||||||
|
|
||||||
|
The `stable` branch may have hotfixes directly from the `stable` branch, and the `twilight` branch may have feature branches branched off from the `twilight` branch. This is done so that we can apply hotfixes like security patches directly to the `stable` branch without having to merge the changes from the `twilight` branch.
|
||||||
|
|
||||||
|
# Code Of Conduct
|
||||||
|
|
||||||
|
Please read our [Code of Conduct](../CODE_OF_CONDUCT.md) before contributing.
|
||||||
|
|
||||||
|
# Releasing/Merging branches
|
||||||
|
|
||||||
|
To merge zen twilight branch from the central branch, you can use the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sh ./scripts/merge-to-branch.sh twilight
|
||||||
|
```
|
||||||
|
|
||||||
|
To merge zen stable branch from the twilight branch, you can use the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sh ./scripts/merge-to-branch.sh stable
|
||||||
|
```
|
2
l10n
4581
package-lock.json
generated
Normal file
@@ -33,7 +33,7 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/core#readme",
|
"homepage": "https://github.com/zen-browser/core#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.4.21"
|
"@zen-browser/surfer": "^1.5.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"husky": "^9.1.5",
|
"husky": "^9.1.5",
|
||||||
|
10
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@zen-browser/surfer':
|
'@zen-browser/surfer':
|
||||||
specifier: ^1.4.21
|
specifier: ^1.5.2
|
||||||
version: 1.4.21
|
version: 1.5.2
|
||||||
devDependencies:
|
devDependencies:
|
||||||
husky:
|
husky:
|
||||||
specifier: ^9.1.5
|
specifier: ^9.1.5
|
||||||
@@ -119,8 +119,8 @@ packages:
|
|||||||
'@types/node@17.0.45':
|
'@types/node@17.0.45':
|
||||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.4.21':
|
'@zen-browser/surfer@1.5.2':
|
||||||
resolution: {integrity: sha512-v05Mq6kjISGwWD7d6Bwl0zuH3JKu+xV5x/iJmMjgW3kReYwlKjexqkxQquKpn8bhwAbOBS/CtYBlRKi17Pqxpg==}
|
resolution: {integrity: sha512-QJT12gcFWdicEVlh0o9tVi7FQmoGuYuy+ROgzFzLMclbQSyJxhVaYy08A1S0y+Fn2rzs7BflmZ1zXPrabiLgpA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
ansi-escapes@7.0.0:
|
ansi-escapes@7.0.0:
|
||||||
@@ -1003,7 +1003,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node@17.0.45': {}
|
'@types/node@17.0.45': {}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.4.21':
|
'@zen-browser/surfer@1.5.2':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@resvg/resvg-js': 1.4.0
|
'@resvg/resvg-js': 1.4.0
|
||||||
async-icns: 1.0.2
|
async-icns: 1.0.2
|
||||||
|
@@ -1,13 +1,11 @@
|
|||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
import hashlib
|
import hashlib
|
||||||
import argparse
|
import argparse
|
||||||
|
import sys
|
||||||
|
|
||||||
FLATID = "io.github.zen_browser.zen"
|
FLATID = "io.github.zen_browser.zen"
|
||||||
|
|
||||||
def get_sha256sum(filename):
|
def get_sha256sum(filename):
|
||||||
|
"""Calculate the SHA256 checksum of a file."""
|
||||||
sha256 = hashlib.sha256()
|
sha256 = hashlib.sha256()
|
||||||
with open(filename, "rb") as f:
|
with open(filename, "rb") as f:
|
||||||
for byte_block in iter(lambda: f.read(4096), b""):
|
for byte_block in iter(lambda: f.read(4096), b""):
|
||||||
@@ -25,9 +23,11 @@ def build_template(template, linux_sha256, flatpak_sha256, version):
|
|||||||
def get_template(template_root):
|
def get_template(template_root):
|
||||||
file = f"{template_root}/{FLATID}.yml.template"
|
file = f"{template_root}/{FLATID}.yml.template"
|
||||||
print(f"Reading template {file}")
|
print(f"Reading template {file}")
|
||||||
|
try:
|
||||||
with open(file, "r") as f:
|
with open(file, "r") as f:
|
||||||
return f.read()
|
return f.read()
|
||||||
print(f"Template {template_root}/flatpak.yml not found")
|
except FileNotFoundError:
|
||||||
|
print(f"Template {file} not found")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@@ -39,20 +39,14 @@ def main():
|
|||||||
parser.add_argument('--template-root', help='Template root', default="flatpak")
|
parser.add_argument('--template-root', help='Template root', default="flatpak")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
version = args.version
|
linux_sha256 = get_sha256sum(args.linux_archive)
|
||||||
linux_archive = args.linux_archive
|
flatpak_sha256 = get_sha256sum(args.flatpak_archive)
|
||||||
flatpak_archive = args.flatpak_archive
|
template = build_template(get_template(args.template_root), linux_sha256, flatpak_sha256, args.version)
|
||||||
output = args.output
|
|
||||||
template_root = args.template_root
|
|
||||||
|
|
||||||
linux_sha256 = get_sha256sum(linux_archive)
|
print(f"Writing output to {args.output}")
|
||||||
flatpak_sha256 = get_sha256sum(flatpak_archive)
|
with open(args.output, "w") as f:
|
||||||
|
|
||||||
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)
|
f.write(template)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|
||||||
|
@@ -63,7 +63,6 @@ pref("dom.security.sanitizer.enabled", true);
|
|||||||
* SECTION: SECUREFOX *
|
* SECTION: SECUREFOX *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
/** TRACKING PROTECTION ***/
|
/** TRACKING PROTECTION ***/
|
||||||
pref("browser.contentblocking.category", "strict");
|
|
||||||
pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
||||||
pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
||||||
pref("network.cookie.sameSite.noneRequiresSecure", true);
|
pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||||
@@ -159,7 +158,6 @@ pref("browser.shell.checkDefaultBrowser", false);
|
|||||||
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
||||||
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
||||||
pref("browser.preferences.moreFromMozilla", false);
|
pref("browser.preferences.moreFromMozilla", false);
|
||||||
pref("browser.tabs.tabmanager.enabled", false);
|
|
||||||
pref("browser.aboutConfig.showWarning", false);
|
pref("browser.aboutConfig.showWarning", false);
|
||||||
pref("browser.aboutwelcome.enabled", false);
|
pref("browser.aboutwelcome.enabled", false);
|
||||||
|
|
||||||
|
@@ -1,32 +1,27 @@
|
|||||||
|
export var ZenCustomizableUI = new (class {
|
||||||
export var ZenCustomizableUI = new class {
|
|
||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
TYPE_TOOLBAR = 'toolbar';
|
TYPE_TOOLBAR = 'toolbar';
|
||||||
defaultSidebarIcons = [
|
defaultSidebarIcons = ['zen-sidepanel-button', 'zen-workspaces-button', 'new-tab-button'];
|
||||||
'zen-sidepanel-button',
|
|
||||||
'zen-workspaces-button',
|
|
||||||
'new-tab-button'
|
|
||||||
];
|
|
||||||
|
|
||||||
startup(CustomizableUIInternal) {
|
startup(CustomizableUIInternal) {
|
||||||
CustomizableUIInternal.registerArea(
|
CustomizableUIInternal.registerArea(
|
||||||
"zen-sidebar-top-buttons",
|
'zen-sidebar-top-buttons',
|
||||||
{
|
{
|
||||||
type: this.TYPE_TOOLBAR,
|
type: this.TYPE_TOOLBAR,
|
||||||
defaultPlacements: [
|
defaultPlacements: ['preferences-button', 'zen-expand-sidebar-button', 'zen-profile-button'],
|
||||||
"PanelUI-menu-button", "zen-expand-sidebar-button", "zen-profile-button"
|
|
||||||
],
|
|
||||||
defaultCollapsed: null,
|
defaultCollapsed: null,
|
||||||
}
|
},
|
||||||
|
true
|
||||||
);
|
);
|
||||||
CustomizableUIInternal.registerArea(
|
CustomizableUIInternal.registerArea(
|
||||||
"zen-sidebar-icons-wrapper",
|
'zen-sidebar-icons-wrapper',
|
||||||
{
|
{
|
||||||
type: this.TYPE_TOOLBAR,
|
type: this.TYPE_TOOLBAR,
|
||||||
defaultPlacements: this.defaultSidebarIcons,
|
defaultPlacements: this.defaultSidebarIcons,
|
||||||
defaultCollapsed: null,
|
defaultCollapsed: null,
|
||||||
}
|
},
|
||||||
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,9 +39,9 @@ export var ZenCustomizableUI = new class {
|
|||||||
brighttext="true"
|
brighttext="true"
|
||||||
data-l10n-id="tabs-toolbar"
|
data-l10n-id="tabs-toolbar"
|
||||||
customizable="true"
|
customizable="true"
|
||||||
toolbarname="Zen Sidebar Top Buttons"
|
|
||||||
context="toolbar-context-menu"
|
context="toolbar-context-menu"
|
||||||
flex="1"
|
flex="1"
|
||||||
|
skipintoolbarset="true"
|
||||||
customizationtarget="zen-sidebar-top-buttons-customization-target"
|
customizationtarget="zen-sidebar-top-buttons-customization-target"
|
||||||
mode="icons">
|
mode="icons">
|
||||||
<hbox id="zen-sidebar-top-buttons-customization-target" class="customization-target" flex="1">
|
<hbox id="zen-sidebar-top-buttons-customization-target" class="customization-target" flex="1">
|
||||||
@@ -70,39 +65,27 @@ export var ZenCustomizableUI = new class {
|
|||||||
</toolbar>
|
</toolbar>
|
||||||
`);
|
`);
|
||||||
window.document.getElementById('navigator-toolbox').prepend(sidebarBox);
|
window.document.getElementById('navigator-toolbox').prepend(sidebarBox);
|
||||||
const sideBarTopButtons = window.document.getElementById('zen-sidebar-top-buttons')
|
|
||||||
.querySelector('#zen-sidebar-top-buttons-customization-target');
|
|
||||||
|
|
||||||
const newTab = window.document.getElementById('vertical-tabs-newtab-button');
|
const newTab = window.document.getElementById('vertical-tabs-newtab-button');
|
||||||
newTab.classList.add('zen-sidebar-action-button');
|
newTab.classList.add('zen-sidebar-action-button');
|
||||||
|
|
||||||
window.CustomizableUI.registerToolbarNode(
|
const wrapper = window.document.createXULElement('toolbarbutton');
|
||||||
window.document.getElementById('zen-sidebar-top-buttons')
|
wrapper.id = 'zen-workspaces-button';
|
||||||
);
|
window.document.getElementById('zen-sidebar-icons-wrapper').prepend(wrapper);
|
||||||
|
|
||||||
const panelMenu = window.document.getElementById('PanelUI-menu-button');
|
|
||||||
panelMenu.classList.add('zen-sidebar-action-button');
|
|
||||||
panelMenu.setAttribute('cui-areatype', 'toolbar');
|
|
||||||
|
|
||||||
sideBarTopButtons.prepend(panelMenu);
|
|
||||||
|
|
||||||
for (let id of this.defaultSidebarIcons) {
|
for (let id of this.defaultSidebarIcons) {
|
||||||
const elem = window.document.getElementById(id);
|
const elem = window.document.getElementById(id);
|
||||||
if (id === 'zen-workspaces-button' || !elem) continue;
|
if (!elem) continue;
|
||||||
elem.setAttribute('removable', 'true');
|
elem.setAttribute('removable', 'true');
|
||||||
}
|
}
|
||||||
|
|
||||||
window.CustomizableUI.registerToolbarNode(
|
|
||||||
window.document.getElementById('zen-sidebar-icons-wrapper')
|
|
||||||
);
|
|
||||||
|
|
||||||
this._moveWindowButtons(window);
|
this._moveWindowButtons(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
_moveWindowButtons(window) {
|
_moveWindowButtons(window) {
|
||||||
const windowControls = window.document.getElementsByClassName('titlebar-buttonbox-container');
|
const windowControls = window.document.getElementsByClassName('titlebar-buttonbox-container');
|
||||||
const toolboxIcons = window.document.getElementById('zen-sidebar-top-buttons-customization-target');
|
const toolboxIcons = window.document.getElementById('zen-sidebar-top-buttons-customization-target');
|
||||||
if (window.AppConstants.platform === "macosx") {
|
if (window.AppConstants.platform === 'macosx') {
|
||||||
for (let i = 0; i < windowControls.length; i++) {
|
for (let i = 0; i < windowControls.length; i++) {
|
||||||
if (i === 0) {
|
if (i === 0) {
|
||||||
toolboxIcons.prepend(windowControls[i]);
|
toolboxIcons.prepend(windowControls[i]);
|
||||||
@@ -114,9 +97,7 @@ export var ZenCustomizableUI = new class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hideToolbarButtons(window) {
|
_hideToolbarButtons(window) {
|
||||||
const elementsToHide = [
|
const elementsToHide = ['alltabs-button'];
|
||||||
'alltabs-button',
|
|
||||||
];
|
|
||||||
for (let id of elementsToHide) {
|
for (let id of elementsToHide) {
|
||||||
const elem = window.document.getElementById(id);
|
const elem = window.document.getElementById(id);
|
||||||
if (elem) {
|
if (elem) {
|
||||||
@@ -124,4 +105,9 @@ export var ZenCustomizableUI = new class {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
registerToolbarNodes(window) {
|
||||||
|
window.CustomizableUI.registerToolbarNode(window.document.getElementById('zen-sidebar-top-buttons'));
|
||||||
|
window.CustomizableUI.registerToolbarNode(window.document.getElementById('zen-sidebar-icons-wrapper'));
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
@@ -1,20 +1,14 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
const lazy = {};
|
const lazy = {};
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(
|
XPCOMUtils.defineLazyPreferenceGetter(lazy, 'sidebarHeightThrottle', 'zen.view.sidebar-height-throttle', 500);
|
||||||
lazy,
|
|
||||||
"sidebarHeightThrottle",
|
|
||||||
"zen.view.sidebar-height-throttle",
|
|
||||||
500
|
|
||||||
);
|
|
||||||
var ZenStartup = {
|
var ZenStartup = {
|
||||||
init() {
|
init() {
|
||||||
this.logHeader();
|
this.logHeader();
|
||||||
this.openWatermark();
|
this.openWatermark();
|
||||||
window.SessionStore.promiseInitialized.then(async () => {
|
window.SessionStore.promiseInitialized.then(() => {
|
||||||
this._changeSidebarLocation();
|
this._changeSidebarLocation();
|
||||||
this._zenInitBrowserLayout();
|
this._zenInitBrowserLayout();
|
||||||
this._focusSearchBar();
|
this._initSearchBar();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -45,7 +39,15 @@
|
|||||||
gZenUIManager.init();
|
gZenUIManager.init();
|
||||||
gZenVerticalTabsManager.init();
|
gZenVerticalTabsManager.init();
|
||||||
gZenCompactModeManager.init();
|
gZenCompactModeManager.init();
|
||||||
gZenKeyboardShortcuts.init();
|
|
||||||
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
|
this,
|
||||||
|
'contentElementSeparation',
|
||||||
|
'zen.theme.content-element-separation',
|
||||||
|
0
|
||||||
|
);
|
||||||
|
|
||||||
|
document.l10n.setAttributes(document.getElementById('tabs-newtab-button'), 'tabs-toolbar-new-tab');
|
||||||
|
|
||||||
function throttle(f, delay) {
|
function throttle(f, delay) {
|
||||||
let timer = 0;
|
let timer = 0;
|
||||||
@@ -55,7 +57,9 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
new ResizeObserver(throttle(this._updateTabsToolbar.bind(this), lazy.sidebarHeightThrottle)).observe(document.getElementById('tabbrowser-tabs'));
|
new ResizeObserver(throttle(this._updateTabsToolbar.bind(this), lazy.sidebarHeightThrottle)).observe(
|
||||||
|
document.getElementById('tabbrowser-tabs')
|
||||||
|
);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('ZenThemeModifier: Error initializing browser layout', e);
|
console.error('ZenThemeModifier: Error initializing browser layout', e);
|
||||||
}
|
}
|
||||||
@@ -69,7 +73,7 @@
|
|||||||
tabs.style.maxHeight = '0px'; // reset to 0
|
tabs.style.maxHeight = '0px'; // reset to 0
|
||||||
const toolbarRect = toolbarItems.getBoundingClientRect();
|
const toolbarRect = toolbarItems.getBoundingClientRect();
|
||||||
// -5 for the controls padding
|
// -5 for the controls padding
|
||||||
let totalHeight = toolbarRect.height - 5;
|
let totalHeight = toolbarRect.height - (this.contentElementSeparation * 2) - 5;
|
||||||
// remove the height from other elements that aren't hidden
|
// remove the height from other elements that aren't hidden
|
||||||
const otherElements = document.querySelectorAll('#tabbrowser-tabs > *:not([hidden="true"])');
|
const otherElements = document.querySelectorAll('#tabbrowser-tabs > *:not([hidden="true"])');
|
||||||
for (let tab of otherElements) {
|
for (let tab of otherElements) {
|
||||||
@@ -101,22 +105,23 @@
|
|||||||
|
|
||||||
_changeSidebarLocation() {
|
_changeSidebarLocation() {
|
||||||
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
|
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
|
||||||
const wrapper = document.getElementById('zen-tabbox-wrapper');
|
|
||||||
const appWrapepr = document.getElementById('zen-sidebar-box-container');
|
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');
|
appWrapepr.setAttribute('hidden', 'true');
|
||||||
|
|
||||||
const browser = document.getElementById('browser');
|
const browser = document.getElementById('browser');
|
||||||
const toolbox = document.getElementById('navigator-toolbox');
|
const toolbox = document.getElementById('navigator-toolbox');
|
||||||
browser.prepend(toolbox);
|
browser.prepend(toolbox);
|
||||||
|
|
||||||
|
const sidebarPanelWrapper = document.getElementById('tabbrowser-tabbox');
|
||||||
|
for (let id of kElementsToAppend) {
|
||||||
|
const elem = document.getElementById(id);
|
||||||
|
if (elem) {
|
||||||
|
sidebarPanelWrapper.prepend(elem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// remove all styles except for the width, since we are xulstoring the complet style list
|
// remove all styles except for the width, since we are xulstoring the complet style list
|
||||||
const width = toolbox.style.width;
|
const width = toolbox.style.width || '250px';
|
||||||
toolbox.removeAttribute('style');
|
toolbox.removeAttribute('style');
|
||||||
toolbox.style.width = width;
|
toolbox.style.width = width;
|
||||||
|
|
||||||
@@ -129,8 +134,13 @@
|
|||||||
toolbox.insertAdjacentElement('afterend', splitter);
|
toolbox.insertAdjacentElement('afterend', splitter);
|
||||||
},
|
},
|
||||||
|
|
||||||
_focusSearchBar() {
|
_initSearchBar() {
|
||||||
|
// Only focus the url bar
|
||||||
gURLBar.focus();
|
gURLBar.focus();
|
||||||
|
|
||||||
|
gURLBar._initCopyCutController();
|
||||||
|
gURLBar._initPasteAndGo();
|
||||||
|
gURLBar._initStripOnShare();
|
||||||
},
|
},
|
||||||
|
|
||||||
logHeader() {
|
logHeader() {
|
||||||
@@ -146,7 +156,7 @@
|
|||||||
Note: This developer console is not the same as the browser console, it has access to Zen's internal functions and variables, including your passwords and other sensitive information. Please do not paste any code here unless you know what you are doing.
|
Note: This developer console is not the same as the browser console, it has access to Zen's internal functions and variables, including your passwords and other sensitive information. Please do not paste any code here unless you know what you are doing.
|
||||||
|
|
||||||
`);
|
`);
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
ZenStartup.init();
|
ZenStartup.init();
|
||||||
|
@@ -1,19 +1,19 @@
|
|||||||
var gZenUIManager = {
|
var gZenUIManager = {
|
||||||
_popupTrackingElements: [],
|
_popupTrackingElements: [],
|
||||||
|
_hoverPausedForExpand: false,
|
||||||
|
|
||||||
init () {
|
init() {
|
||||||
|
|
||||||
document.addEventListener('popupshowing', this.onPopupShowing.bind(this));
|
document.addEventListener('popupshowing', this.onPopupShowing.bind(this));
|
||||||
document.addEventListener('popuphidden', this.onPopupHidden.bind(this));
|
document.addEventListener('popuphidden', this.onPopupHidden.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
openAndChangeToTab(url, options) {
|
openAndChangeToTab(url, options) {
|
||||||
if (window.ownerGlobal.parent) {
|
if (window.ownerGlobal.parent) {
|
||||||
let tab = window.ownerGlobal.parent.gBrowser.addTrustedTab(url, options);
|
const tab = window.ownerGlobal.parent.gBrowser.addTrustedTab(url, options);
|
||||||
window.ownerGlobal.parent.gBrowser.selectedTab = tab;
|
window.ownerGlobal.parent.gBrowser.selectedTab = tab;
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
let tab = window.gBrowser.addTrustedTab(url, options);
|
const tab = window.gBrowser.addTrustedTab(url, options);
|
||||||
window.gBrowser.selectedTab = tab;
|
window.gBrowser.selectedTab = tab;
|
||||||
return tab;
|
return tab;
|
||||||
},
|
},
|
||||||
@@ -67,7 +67,7 @@ var gZenUIManager = {
|
|||||||
element.removeAttribute('has-popup-menu');
|
element.removeAttribute('has-popup-menu');
|
||||||
} else {
|
} else {
|
||||||
this.__removeHasPopupAttribute = () => element.removeAttribute('has-popup-menu');
|
this.__removeHasPopupAttribute = () => element.removeAttribute('has-popup-menu');
|
||||||
document.addEventListener('mousemove', this.__removeHasPopupAttribute, {once: true});
|
document.addEventListener('mousemove', this.__removeHasPopupAttribute, { once: true });
|
||||||
}
|
}
|
||||||
this.__currentPopup = null;
|
this.__currentPopup = null;
|
||||||
this.__currentPopupTrackElement = null;
|
this.__currentPopupTrackElement = null;
|
||||||
@@ -81,9 +81,26 @@ var gZenVerticalTabsManager = {
|
|||||||
Services.prefs.addObserver('zen.tabs.vertical.right-side', updateEvent);
|
Services.prefs.addObserver('zen.tabs.vertical.right-side', updateEvent);
|
||||||
Services.prefs.addObserver('zen.view.sidebar-expanded.max-width', updateEvent);
|
Services.prefs.addObserver('zen.view.sidebar-expanded.max-width', updateEvent);
|
||||||
Services.prefs.addObserver('zen.view.sidebar-expanded.on-hover', updateEvent);
|
Services.prefs.addObserver('zen.view.sidebar-expanded.on-hover', updateEvent);
|
||||||
|
|
||||||
gZenCompactModeManager.addEventListener(updateEvent);
|
gZenCompactModeManager.addEventListener(updateEvent);
|
||||||
this._updateEvent();
|
this._updateEvent();
|
||||||
this.initRightSideOrderContextMenu();
|
this.initRightSideOrderContextMenu();
|
||||||
|
|
||||||
|
const tabs = document.getElementById('tabbrowser-tabs');
|
||||||
|
|
||||||
|
XPCOMUtils.defineLazyPreferenceGetter(this, 'canOpenTabOnMiddleClick', 'zen.tabs.newtab-on-middle-click', true);
|
||||||
|
|
||||||
|
if (tabs) {
|
||||||
|
tabs.addEventListener('mouseup', this.openNewTabOnTabsMiddleClick.bind(this));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
openNewTabOnTabsMiddleClick(event) {
|
||||||
|
if (event.button === 1 && event.target.id === 'tabbrowser-tabs' && this.canOpenTabOnMiddleClick) {
|
||||||
|
document.getElementById('cmd_newNavigatorTabNoEvent').doCommand();
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
get navigatorToolbox() {
|
get navigatorToolbox() {
|
||||||
@@ -95,11 +112,27 @@ var gZenVerticalTabsManager = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateOnHoverVerticalTabs() {
|
_updateOnHoverVerticalTabs() {
|
||||||
let onHover = Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover');
|
const onHover = Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover');
|
||||||
let sidebar = this.navigatorToolbox;
|
const expanded = Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
||||||
|
const sidebar = this.navigatorToolbox;
|
||||||
|
|
||||||
|
|
||||||
if (onHover) {
|
if (onHover) {
|
||||||
|
// if the sidebar is not expanded, and hover detection is enabled, show the sidebar
|
||||||
|
sidebar.removeAttribute('zen-expanded');
|
||||||
sidebar.setAttribute('zen-user-hover', 'true');
|
sidebar.setAttribute('zen-user-hover', 'true');
|
||||||
|
|
||||||
|
sidebar.removeAttribute('zen-has-hover');
|
||||||
|
}
|
||||||
|
else if (expanded) {
|
||||||
|
// if the sidebar is expanded, close, and remove hover detection
|
||||||
|
sidebar.setAttribute('zen-expanded', 'true');
|
||||||
|
sidebar.removeAttribute('zen-user-hover');
|
||||||
|
sidebar.removeAttribute('zen-has-hover');
|
||||||
} else {
|
} else {
|
||||||
|
// if the sidebar is not expanded, and hover detection is disabled, hide the sidebar
|
||||||
|
sidebar.removeAttribute('zen-expanded');
|
||||||
|
sidebar.removeAttribute('zen-user-show');
|
||||||
sidebar.removeAttribute('zen-user-hover');
|
sidebar.removeAttribute('zen-user-hover');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -110,12 +143,10 @@ var gZenVerticalTabsManager = {
|
|||||||
<menuitem id="zen-toolbar-context-tabs-right"
|
<menuitem id="zen-toolbar-context-tabs-right"
|
||||||
type="checkbox"
|
type="checkbox"
|
||||||
${Services.prefs.getBoolPref(kConfigKey) ? 'checked="true"' : ''}
|
${Services.prefs.getBoolPref(kConfigKey) ? 'checked="true"' : ''}
|
||||||
data-lazy-l10n-id="zen-toolbar-context-tabs-right"/>
|
data-lazy-l10n-id="zen-toolbar-context-tabs-right"
|
||||||
|
oncommand="gZenVerticalTabsManager.toggleTabsOnRight();"
|
||||||
|
/>
|
||||||
`);
|
`);
|
||||||
fragment.getElementById('zen-toolbar-context-tabs-right').addEventListener('click', () => {
|
|
||||||
let rightSide = Services.prefs.getBoolPref(kConfigKey);
|
|
||||||
Services.prefs.setBoolPref(kConfigKey, !rightSide);
|
|
||||||
});
|
|
||||||
document.getElementById('viewToolbarsMenuSeparator').before(fragment);
|
document.getElementById('viewToolbarsMenuSeparator').before(fragment);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -125,19 +156,21 @@ var gZenVerticalTabsManager = {
|
|||||||
const customizationTarget = document.getElementById('nav-bar-customization-target');
|
const customizationTarget = document.getElementById('nav-bar-customization-target');
|
||||||
const tabboxWrapper = document.getElementById('zen-tabbox-wrapper');
|
const tabboxWrapper = document.getElementById('zen-tabbox-wrapper');
|
||||||
const browser = document.getElementById('browser');
|
const browser = document.getElementById('browser');
|
||||||
|
const sidebarExpanded = Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
||||||
|
|
||||||
if (Services.prefs.getBoolPref('zen.tabs.vertical.right-side')) {
|
if (Services.prefs.getBoolPref('zen.tabs.vertical.right-side')) {
|
||||||
this.navigatorToolbox.setAttribute('zen-right-side', 'true');
|
this.navigatorToolbox.setAttribute('zen-right-side', 'true');
|
||||||
} else {
|
} else {
|
||||||
this.navigatorToolbox.removeAttribute('zen-right-side');
|
this.navigatorToolbox.removeAttribute('zen-right-side');
|
||||||
}
|
}
|
||||||
if (Services.prefs.getBoolPref('zen.view.sidebar-expanded')) {
|
|
||||||
this.navigatorToolbox.setAttribute('zen-expanded', 'true');
|
|
||||||
} else {
|
|
||||||
this.navigatorToolbox.removeAttribute('zen-expanded');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.navigatorToolbox.hasAttribute('zen-expanded') && !this.navigatorToolbox.hasAttribute('zen-right-side')
|
// Check if the sidebar is in hover mode
|
||||||
&& !Services.prefs.getBoolPref('zen.view.compact') && !Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover')) {
|
if (
|
||||||
|
sidebarExpanded &&
|
||||||
|
!this.navigatorToolbox.hasAttribute('zen-right-side') &&
|
||||||
|
!Services.prefs.getBoolPref('zen.view.compact') &&
|
||||||
|
!Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover')
|
||||||
|
) {
|
||||||
this.navigatorToolbox.prepend(topButtons);
|
this.navigatorToolbox.prepend(topButtons);
|
||||||
browser.prepend(this.navigatorToolbox);
|
browser.prepend(this.navigatorToolbox);
|
||||||
} else {
|
} else {
|
||||||
@@ -152,10 +185,10 @@ var gZenVerticalTabsManager = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateMaxWidth() {
|
_updateMaxWidth() {
|
||||||
let isCompactMode = Services.prefs.getBoolPref('zen.view.compact');
|
const isCompactMode = Services.prefs.getBoolPref('zen.view.compact');
|
||||||
let expanded = this.expanded;
|
const expanded = this.expanded;
|
||||||
let maxWidth = Services.prefs.getIntPref('zen.view.sidebar-expanded.max-width');
|
const maxWidth = Services.prefs.getIntPref('zen.view.sidebar-expanded.max-width');
|
||||||
let toolbox = document.getElementById('navigator-toolbox');
|
const toolbox = document.getElementById('navigator-toolbox');
|
||||||
if (expanded && !isCompactMode) {
|
if (expanded && !isCompactMode) {
|
||||||
toolbox.style.maxWidth = `${maxWidth}px`;
|
toolbox.style.maxWidth = `${maxWidth}px`;
|
||||||
} else {
|
} else {
|
||||||
@@ -175,20 +208,32 @@ var gZenVerticalTabsManager = {
|
|||||||
return this._expandButton;
|
return this._expandButton;
|
||||||
},
|
},
|
||||||
|
|
||||||
//_updateExpandButton() {
|
|
||||||
// let isCompactMode = Services.prefs.getBoolPref('zen.view.compact');
|
|
||||||
// let button = this.expandButton;
|
|
||||||
// let expanded = this.expanded;
|
|
||||||
// if (expanded && !isCompactMode) {
|
|
||||||
// button.setAttribute('open', 'true');
|
|
||||||
// } else {
|
|
||||||
// button.removeAttribute('open');
|
|
||||||
// }
|
|
||||||
//},
|
|
||||||
|
|
||||||
toggleExpand() {
|
toggleExpand() {
|
||||||
let expanded = !this.expanded;
|
const pausedForExpand = this._hoverPausedForExpand;
|
||||||
Services.prefs.setBoolPref('zen.view.sidebar-expanded', expanded);
|
const onHover = Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover');
|
||||||
|
const expanded = Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
||||||
|
|
||||||
|
|
||||||
|
if (onHover && !expanded) {
|
||||||
|
// Expand sidebar and disable hover detection
|
||||||
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', false);
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', false);
|
||||||
|
this._hoverPausedForExpand = true;
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded', true);
|
||||||
|
} else if (pausedForExpand && expanded) {
|
||||||
|
// Re-enable hover detection when closing
|
||||||
|
this._hoverPausedForExpand = false;
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded', false);
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', true); // Re-enable hover detection when closing
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Toggle sidebar
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded.on-hover', false);
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded', !expanded);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
toggleTabsOnRight() {
|
||||||
|
const newVal = !Services.prefs.getBoolPref('zen.tabs.vertical.right-side');
|
||||||
|
Services.prefs.setBoolPref('zen.tabs.vertical.right-side', newVal);
|
||||||
},
|
},
|
||||||
};
|
};
|
22
src/browser/base/content/aboutDialog-js.patch
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
diff --git a/browser/base/content/aboutDialog.js b/browser/base/content/aboutDialog.js
|
||||||
|
index 8c5c7768e0e716c196063b4c986dea2631185972..d31f57a176fffc9725b1c31b165fb5cdc55e186e 100644
|
||||||
|
--- a/browser/base/content/aboutDialog.js
|
||||||
|
+++ b/browser/base/content/aboutDialog.js
|
||||||
|
@@ -51,7 +51,7 @@ function init() {
|
||||||
|
]);
|
||||||
|
let versionIdKey = "base";
|
||||||
|
let versionAttributes = {
|
||||||
|
- version: AppConstants.MOZ_APP_VERSION_DISPLAY,
|
||||||
|
+ version: `${AppConstants.MOZ_APP_VERSION_DISPLAY} (Firefox ${AppConstants.ZEN_FIREFOX_VERSION})`,
|
||||||
|
};
|
||||||
|
|
||||||
|
let arch = Services.sysinfo.get("arch");
|
||||||
|
@@ -63,7 +63,7 @@ function init() {
|
||||||
|
}
|
||||||
|
|
||||||
|
let version = Services.appinfo.version;
|
||||||
|
- if (/a\d+$/.test(version)) {
|
||||||
|
+ if (version.includes("t")) {
|
||||||
|
versionIdKey += "-nightly";
|
||||||
|
let buildID = Services.appinfo.appBuildID;
|
||||||
|
let year = buildID.slice(0, 4);
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
||||||
index 16559b2c0e3aef391b43e09281aee24007feb0bd..2579cea92a55fabb73fdd130c3706af08c3fd849 100644
|
index 108160d9469d44f47c93a3808402e4b27ff59777..39a7b691302bf13e1b5990f46428cff6807a8e56 100644
|
||||||
--- a/browser/base/content/browser-box.inc.xhtml
|
--- a/browser/base/content/browser-box.inc.xhtml
|
||||||
+++ b/browser/base/content/browser-box.inc.xhtml
|
+++ b/browser/base/content/browser-box.inc.xhtml
|
||||||
@@ -21,11 +21,15 @@
|
@@ -23,11 +23,16 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||||
<vbox id="appcontent" flex="1">
|
<vbox id="appcontent" flex="1">
|
||||||
@@ -12,6 +12,7 @@ index 16559b2c0e3aef391b43e09281aee24007feb0bd..2579cea92a55fabb73fdd130c3706af0
|
|||||||
<tabbox id="tabbrowser-tabbox"
|
<tabbox id="tabbrowser-tabbox"
|
||||||
flex="1" tabcontainer="tabbrowser-tabs">
|
flex="1" tabcontainer="tabbrowser-tabs">
|
||||||
+#include zen-sidebar-panel.inc.xhtml
|
+#include zen-sidebar-panel.inc.xhtml
|
||||||
|
+#include zen-splitview-overlay.inc.xhtml
|
||||||
<tabpanels id="tabbrowser-tabpanels"
|
<tabpanels id="tabbrowser-tabpanels"
|
||||||
flex="1" selectedIndex="0"/>
|
flex="1" selectedIndex="0"/>
|
||||||
</tabbox>
|
</tabbox>
|
||||||
|
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/browser/base/content/browser-development-helpers.js b/browser/base/content/browser-development-helpers.js
|
||||||
|
index 5155b280b8ff1dec8c53b12861ed4401f5499659..2184440335bbbf397f14d7c5e4b099f57022d03a 100644
|
||||||
|
--- a/browser/base/content/browser-development-helpers.js
|
||||||
|
+++ b/browser/base/content/browser-development-helpers.js
|
||||||
|
@@ -33,7 +33,7 @@ var DevelopmentHelpers = {
|
||||||
|
key.setAttribute("key", "r");
|
||||||
|
key.setAttribute("modifiers", "accel,alt");
|
||||||
|
key.setAttribute("command", "cmd_quickRestart");
|
||||||
|
- document.getElementById("mainKeyset").prepend(key);
|
||||||
|
+ document.getElementById(ZEN_KEYSET_ID).prepend(key);
|
||||||
|
|
||||||
|
let menuitem = document.createXULElement("menuitem");
|
||||||
|
menuitem.setAttribute("id", "menu_FileRestartItem");
|
@@ -1,16 +1,25 @@
|
|||||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||||
index bee5309c04775adff8652bfe6c54b2d466e821ac..e9741628dcc9eda3500f69441bae293548179e71 100644
|
index bee5309c04775adff8652bfe6c54b2d466e821ac..cfeaf7cf2e98c35e76bdd5451f90b004a04d4474 100644
|
||||||
--- a/browser/base/content/browser-init.js
|
--- a/browser/base/content/browser-init.js
|
||||||
+++ b/browser/base/content/browser-init.js
|
+++ b/browser/base/content/browser-init.js
|
||||||
@@ -143,6 +143,7 @@ var gBrowserInit = {
|
@@ -143,13 +143,15 @@ var gBrowserInit = {
|
||||||
gNavToolbox.palette = document.getElementById(
|
gNavToolbox.palette = document.getElementById(
|
||||||
"BrowserToolbarPalette"
|
"BrowserToolbarPalette"
|
||||||
).content;
|
).content;
|
||||||
+ ZenCustomizableUI.init(window);
|
+ ZenCustomizableUI.init(window);
|
||||||
for (let area of CustomizableUI.areas) {
|
for (let area of CustomizableUI.areas) {
|
||||||
let type = CustomizableUI.getAreaType(area);
|
let type = CustomizableUI.getAreaType(area);
|
||||||
if (type == CustomizableUI.TYPE_TOOLBAR) {
|
- if (type == CustomizableUI.TYPE_TOOLBAR) {
|
||||||
@@ -239,6 +240,10 @@ var gBrowserInit = {
|
+ if (type == CustomizableUI.TYPE_TOOLBAR && !area.startsWith("zen-")) {
|
||||||
|
let node = document.getElementById(area);
|
||||||
|
CustomizableUI.registerToolbarNode(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ ZenCustomizableUI.registerToolbarNodes(window);
|
||||||
|
BrowserSearch.initPlaceHolder();
|
||||||
|
|
||||||
|
// Hack to ensure that the various initial pages favicon is loaded
|
||||||
|
@@ -239,6 +241,10 @@ var gBrowserInit = {
|
||||||
gPrivateBrowsingUI.init();
|
gPrivateBrowsingUI.init();
|
||||||
BrowserSearch.init();
|
BrowserSearch.init();
|
||||||
BrowserPageActions.init();
|
BrowserPageActions.init();
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||||
index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f086858b5a 100644
|
index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..bc22e55a66686fbae95047686f845f71a0c3aae9 100644
|
||||||
--- a/browser/base/content/browser.js
|
--- a/browser/base/content/browser.js
|
||||||
+++ b/browser/base/content/browser.js
|
+++ b/browser/base/content/browser.js
|
||||||
@@ -32,6 +32,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
@@ -32,6 +32,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||||
@@ -26,17 +26,18 @@ index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f0
|
|||||||
customElements.setElementCreationCallback("screenshots-buttons", () => {
|
customElements.setElementCreationCallback("screenshots-buttons", () => {
|
||||||
Services.scriptloader.loadSubScript(
|
Services.scriptloader.loadSubScript(
|
||||||
"chrome://browser/content/screenshots/screenshots-buttons.js",
|
"chrome://browser/content/screenshots/screenshots-buttons.js",
|
||||||
@@ -3435,6 +3445,9 @@ var XULBrowserWindow = {
|
@@ -3435,6 +3445,10 @@ var XULBrowserWindow = {
|
||||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
+ gZenViewSplitter.onLocationChange(gBrowser.selectedBrowser);
|
+ gZenViewSplitter.onLocationChange(gBrowser.selectedBrowser);
|
||||||
+ ZenWorkspaces.onLocationChange(gBrowser.selectedBrowser);
|
+ ZenWorkspaces.onLocationChange(gBrowser.selectedBrowser);
|
||||||
|
+ gZenTabUnloader.onLocationChange(gBrowser.selectedBrowser);
|
||||||
+
|
+
|
||||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
if (!gMultiProcessBrowser) {
|
if (!gMultiProcessBrowser) {
|
||||||
@@ -4769,7 +4782,7 @@ function setToolbarVisibility(
|
@@ -4769,7 +4783,7 @@ function setToolbarVisibility(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,7 +46,7 @@ index a29d7a84e84651ea0bdc9be8e4ac650bde2e048a..e1d1cf3bb925b8efb1411d1dc77a56f0
|
|||||||
switch (isVisible) {
|
switch (isVisible) {
|
||||||
case true:
|
case true:
|
||||||
case "always":
|
case "always":
|
||||||
@@ -7609,6 +7622,12 @@ var gDialogBox = {
|
@@ -7609,6 +7623,12 @@ var gDialogBox = {
|
||||||
parentElement.showModal();
|
parentElement.showModal();
|
||||||
this._didOpenHTMLDialog = true;
|
this._didOpenHTMLDialog = true;
|
||||||
|
|
||||||
|
13
src/browser/base/content/browser-sets-js.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js
|
||||||
|
index 50da6424691ca230aa1a3a419cb69e66cf47b2c4..1f63f4bb7b75c940d5482dd4f13cebf452dddb74 100644
|
||||||
|
--- a/browser/base/content/browser-sets.js
|
||||||
|
+++ b/browser/base/content/browser-sets.js
|
||||||
|
@@ -245,7 +245,7 @@ document.addEventListener(
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
- document.getElementById("mainKeyset").addEventListener("command", event => {
|
||||||
|
+ document.getElementById(ZEN_KEYSET_ID).addEventListener("command", event => {
|
||||||
|
switch (event.target.id) {
|
||||||
|
case "goHome":
|
||||||
|
BrowserCommands.home();
|
@@ -1,17 +1,25 @@
|
|||||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||||
index 481ebbee437250c71e9bd10c4fb6fc0c31314925..3bb046a4635fad831cc447e29516ee5ed407a3f2 100644
|
index 5dd337a2ffc9f9107d735f4dc96a50d57b12d213..58ecaf7136e13885ac38d74d40b5ef0f52cd7684 100644
|
||||||
--- a/browser/base/content/browser.xhtml
|
--- a/browser/base/content/browser.xhtml
|
||||||
+++ b/browser/base/content/browser.xhtml
|
+++ b/browser/base/content/browser.xhtml
|
||||||
@@ -138,6 +138,8 @@
|
@@ -98,6 +98,8 @@
|
||||||
|
|
||||||
|
<title data-l10n-id="browser-main-window-title"></title>
|
||||||
|
|
||||||
|
+#include zen-preloaded.inc.xhtml
|
||||||
|
+
|
||||||
|
# All JS files which are needed by browser.xhtml and other top level windows to
|
||||||
|
# support MacOS specific features *must* go into the global-scripts.inc file so
|
||||||
|
# that they can be shared with macWindow.inc.xhtml.
|
||||||
|
@@ -141,6 +143,7 @@
|
||||||
window.addEventListener("DOMContentLoaded",
|
window.addEventListener("DOMContentLoaded",
|
||||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
||||||
</script>
|
</script>
|
||||||
+#include zen-locales.inc.xhtml
|
|
||||||
+#include zen-assets.inc.xhtml
|
+#include zen-assets.inc.xhtml
|
||||||
</head>
|
</head>
|
||||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||||
@@ -159,9 +161,12 @@
|
@@ -162,9 +165,12 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
|
@@ -37,8 +37,8 @@ index 18b91c95b88d11ddb257de03f12bc3e4cc75a96a..f117cfa7c9d1f9eb537cebbef42a9d2d
|
|||||||
tooltip="dynamic-shortcut-tooltip"
|
tooltip="dynamic-shortcut-tooltip"
|
||||||
data-l10n-id="tabs-toolbar-new-tab"/>
|
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||||
</html:div>
|
</html:div>
|
||||||
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="" scrolledtostart="" scrolledtoend="">
|
||||||
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
|
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="" scrolledtostart="" scrolledtoend="">
|
||||||
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
|
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
|
||||||
<hbox id="tabbrowser-arrowscrollbox-periphery">
|
<hbox id="tabbrowser-arrowscrollbox-periphery">
|
||||||
<toolbartabstop/>
|
<toolbartabstop/>
|
||||||
|
@@ -1,3 +1,5 @@
|
|||||||
|
#include zen-locales.inc.xhtml
|
||||||
|
|
||||||
<!-- Styles used all over the browser -->
|
<!-- Styles used all over the browser -->
|
||||||
<linkset>
|
<linkset>
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-theme.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-theme.css" />
|
||||||
@@ -7,6 +9,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-toolbar.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-toolbar.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-tabs.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-tabs.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-ui.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-ui.css" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-gradient-generator.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-panel-ui.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-panel-ui.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-single-components.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-single-components.css" />
|
||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-container.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-container.css" />
|
||||||
@@ -23,17 +26,15 @@
|
|||||||
</linkset>
|
</linkset>
|
||||||
|
|
||||||
<!-- Scripts used all over the browser -->
|
<!-- Scripts used all over the browser -->
|
||||||
<script type="text/javascript">
|
<script src="chrome://browser/content/zen-components/ZenThemesCommon.mjs" />
|
||||||
window.addEventListener("DOMContentLoaded", async () => {
|
<script src="chrome://browser/content/zen-components/ZenThemesImporter.mjs" />
|
||||||
// Theme importer always needs to be loaded first
|
<script src="chrome://browser/content/zen-components/ZenCompactMode.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs");
|
<script src="chrome://browser/content/ZenUIManager.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs");
|
<script src="chrome://browser/content/zen-components/ZenSidebarManager.mjs"/>
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs");
|
<script src="chrome://browser/content/zen-components/ZenTabUnloader.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs");
|
<script src="chrome://browser/content/zen-components/ZenWorkspaces.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenSidebarManager.mjs");
|
<script src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspaces.mjs");
|
<script src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenViewSplitter.mjs");
|
<script src="chrome://browser/content/zen-components/ZenGradientGenerator.mjs" />
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenProfileDialogUI.mjs");
|
<script src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"/>
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs");
|
<script src="chrome://browser/content/zen-components/ZenProfileDialogUI.mjs" />
|
||||||
}, { once: true });
|
|
||||||
</script>
|
|
||||||
|
@@ -8,11 +8,17 @@
|
|||||||
content/browser/zen-components/ZenViewSplitter.mjs (content/zen-components/src/ZenViewSplitter.mjs)
|
content/browser/zen-components/ZenViewSplitter.mjs (content/zen-components/src/ZenViewSplitter.mjs)
|
||||||
content/browser/zen-components/ZenThemesCommon.mjs (content/zen-components/src/ZenThemesCommon.mjs)
|
content/browser/zen-components/ZenThemesCommon.mjs (content/zen-components/src/ZenThemesCommon.mjs)
|
||||||
content/browser/zen-components/ZenWorkspaces.mjs (content/zen-components/src/ZenWorkspaces.mjs)
|
content/browser/zen-components/ZenWorkspaces.mjs (content/zen-components/src/ZenWorkspaces.mjs)
|
||||||
|
content/browser/zen-components/ZenWorkspacesStorage.mjs (content/zen-components/src/ZenWorkspacesStorage.mjs)
|
||||||
|
content/browser/zen-components/ZenWorkspacesSync.mjs (content/zen-components/src/ZenWorkspacesSync.mjs)
|
||||||
content/browser/zen-components/ZenSidebarManager.mjs (content/zen-components/src/ZenSidebarManager.mjs)
|
content/browser/zen-components/ZenSidebarManager.mjs (content/zen-components/src/ZenSidebarManager.mjs)
|
||||||
content/browser/zen-components/ZenProfileDialogUI.mjs (content/zen-components/src/ZenProfileDialogUI.mjs)
|
content/browser/zen-components/ZenProfileDialogUI.mjs (content/zen-components/src/ZenProfileDialogUI.mjs)
|
||||||
content/browser/zen-components/ZenKeyboardShortcuts.mjs (content/zen-components/src/ZenKeyboardShortcuts.mjs)
|
content/browser/zen-components/ZenKeyboardShortcuts.mjs (content/zen-components/src/ZenKeyboardShortcuts.mjs)
|
||||||
content/browser/zen-components/ZenThemeBuilder.mjs (content/zen-components/src/ZenThemeBuilder.mjs)
|
content/browser/zen-components/ZenThemeBuilder.mjs (content/zen-components/src/ZenThemeBuilder.mjs)
|
||||||
content/browser/zen-components/ZenThemesImporter.mjs (content/zen-components/src/ZenThemesImporter.mjs)
|
content/browser/zen-components/ZenThemesImporter.mjs (content/zen-components/src/ZenThemesImporter.mjs)
|
||||||
|
content/browser/zen-components/ZenTabUnloader.mjs (content/zen-components/src/ZenTabUnloader.mjs)
|
||||||
|
content/browser/zen-components/ZenPinnedTabManager.mjs (content/zen-components/src/ZenPinnedTabManager.mjs)
|
||||||
|
content/browser/zen-components/ZenCommonUtils.mjs (content/zen-components/src/ZenCommonUtils.mjs)
|
||||||
|
content/browser/zen-components/ZenGradientGenerator.mjs (content/zen-components/src/ZenGradientGenerator.mjs)
|
||||||
|
|
||||||
content/browser/zen-styles/zen-theme.css (content/zen-styles/zen-theme.css)
|
content/browser/zen-styles/zen-theme.css (content/zen-styles/zen-theme.css)
|
||||||
content/browser/zen-styles/zen-buttons.css (content/zen-styles/zen-buttons.css)
|
content/browser/zen-styles/zen-buttons.css (content/zen-styles/zen-buttons.css)
|
||||||
@@ -32,6 +38,7 @@
|
|||||||
content/browser/zen-styles/zen-urlbar.css (content/zen-styles/zen-urlbar.css)
|
content/browser/zen-styles/zen-urlbar.css (content/zen-styles/zen-urlbar.css)
|
||||||
content/browser/zen-styles/zen-popup.css (content/zen-styles/zen-popup.css)
|
content/browser/zen-styles/zen-popup.css (content/zen-styles/zen-popup.css)
|
||||||
content/browser/zen-styles/zen-sidebar-panels.css (content/zen-styles/zen-sidebar-panels.css)
|
content/browser/zen-styles/zen-sidebar-panels.css (content/zen-styles/zen-sidebar-panels.css)
|
||||||
|
content/browser/zen-styles/zen-gradient-generator.css (content/zen-styles/zen-gradient-generator.css)
|
||||||
|
|
||||||
content/browser/zen-styles/zen-panels/bookmarks.css (content/zen-styles/zen-panels/bookmarks.css)
|
content/browser/zen-styles/zen-panels/bookmarks.css (content/zen-styles/zen-panels/bookmarks.css)
|
||||||
content/browser/zen-styles/zen-panels/extensions.css (content/zen-styles/zen-panels/extensions.css)
|
content/browser/zen-styles/zen-panels/extensions.css (content/zen-styles/zen-panels/extensions.css)
|
||||||
@@ -40,6 +47,10 @@
|
|||||||
|
|
||||||
content/browser/zen-styles/zen-compact-mode.css (content/zen-styles/zen-compact-mode.css)
|
content/browser/zen-styles/zen-compact-mode.css (content/zen-styles/zen-compact-mode.css)
|
||||||
|
|
||||||
|
# Images
|
||||||
|
content/browser/zen-images/gradient.png (content/zen-images/gradient.png)
|
||||||
|
content/browser/zen-images/gradient-display.png (content/zen-images/gradient-display.png)
|
||||||
|
|
||||||
# Actors
|
# Actors
|
||||||
content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (content/zen-components/src/actors/ZenThemeMarketplaceParent.sys.mjs)
|
content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (content/zen-components/src/actors/ZenThemeMarketplaceParent.sys.mjs)
|
||||||
content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (content/zen-components/src/actors/ZenThemeMarketplaceChild.sys.mjs)
|
content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (content/zen-components/src/actors/ZenThemeMarketplaceChild.sys.mjs)
|
||||||
|
BIN
src/browser/base/content/zen-images/gradient-display.png
Normal file
After Width: | Height: | Size: 422 KiB |