Compare commits
362 Commits
1.0.0-a.1
...
1.0.0-a.11
Author | SHA1 | Date | |
---|---|---|---|
![]() |
86f8b91fdb | ||
![]() |
3d57cff39b | ||
![]() |
7b40eba9b7 | ||
![]() |
57ac6c1b37 | ||
![]() |
d7630b258a | ||
![]() |
0883536f75 | ||
![]() |
6e2b4b17e6 | ||
![]() |
38e4a7150c | ||
![]() |
052774c5c3 | ||
![]() |
18055e09d9 | ||
![]() |
e24dcdb6ac | ||
![]() |
e3774d666f | ||
![]() |
ec1eef6159 | ||
![]() |
6862e6cbc6 | ||
![]() |
639806e13f | ||
![]() |
ef01c86d7c | ||
![]() |
e32d9cad92 | ||
![]() |
3b5e401899 | ||
![]() |
3bfdb7e3db | ||
![]() |
e567dee12f | ||
![]() |
c55fadc889 | ||
![]() |
33d2954e93 | ||
![]() |
9304b51391 | ||
![]() |
0347ead8a1 | ||
![]() |
9fd9883c8f | ||
![]() |
01e99f6f3d | ||
![]() |
259072a5e5 | ||
![]() |
5079bb6364 | ||
![]() |
37bc8f5f65 | ||
![]() |
4f97d66443 | ||
![]() |
8e19e74894 | ||
![]() |
babc34cc90 | ||
![]() |
c2f97454ac | ||
![]() |
7de872b4dd | ||
![]() |
dc5992bdc7 | ||
![]() |
453c9fef53 | ||
![]() |
5d946db186 | ||
![]() |
406f11dd9a | ||
![]() |
be1efb2ac5 | ||
![]() |
6c4b3aa6f9 | ||
![]() |
2975d5c645 | ||
![]() |
97ce6bae00 | ||
![]() |
b659bfd5e6 | ||
![]() |
81f88c2c21 | ||
![]() |
5bbbefb2a7 | ||
![]() |
ea5c42674e | ||
![]() |
ad2e2f6b24 | ||
![]() |
3333fe22d2 | ||
![]() |
349b33c115 | ||
![]() |
2c0b34e666 | ||
![]() |
84bc2c3c89 | ||
![]() |
2927b58924 | ||
![]() |
a6aa7e3eae | ||
![]() |
d67e1e5b3e | ||
![]() |
09b808b18a | ||
![]() |
deaa0e2781 | ||
![]() |
3140931cdb | ||
![]() |
084d70e68d | ||
![]() |
ac3df15a57 | ||
![]() |
6688fff000 | ||
![]() |
33ff028509 | ||
![]() |
e2ca345dea | ||
![]() |
b17fb12715 | ||
![]() |
51bd006bd1 | ||
![]() |
4fc321292f | ||
![]() |
ea3c6e7131 | ||
![]() |
234f4ecfed | ||
![]() |
d5164f05a5 | ||
![]() |
ae2aa202de | ||
![]() |
940ce6a6d7 | ||
![]() |
edf17c7eed | ||
![]() |
2f668de97d | ||
![]() |
73dea3ad96 | ||
![]() |
2171635145 | ||
![]() |
935fcd9153 | ||
![]() |
a9bfa4dd26 | ||
![]() |
2dc59efd99 | ||
![]() |
b1a3f97592 | ||
![]() |
3bd2d169b4 | ||
![]() |
fc8a501e73 | ||
![]() |
32a3ad96ee | ||
![]() |
3f684745ee | ||
![]() |
13f1daf465 | ||
![]() |
28c84d971d | ||
![]() |
9251970257 | ||
![]() |
a3fd8d17ba | ||
![]() |
17fea1b017 | ||
![]() |
b11c0d8700 | ||
![]() |
86aca3144f | ||
![]() |
11890a70c0 | ||
![]() |
e9f727ceba | ||
![]() |
5342c408fa | ||
![]() |
b494f661b2 | ||
![]() |
5020640e8e | ||
![]() |
48773b80f4 | ||
![]() |
e3edc10e95 | ||
![]() |
d5a4ce2331 | ||
![]() |
1bd4bcf93f | ||
![]() |
7b7f8a3f13 | ||
![]() |
81df7ea605 | ||
![]() |
2b56b9b97d | ||
![]() |
80027fbe48 | ||
![]() |
bd23758cd0 | ||
![]() |
1e464392c2 | ||
![]() |
96f31e8993 | ||
![]() |
01bdbfca4e | ||
![]() |
cc900885ca | ||
![]() |
a3213e069b | ||
![]() |
711fd0ab8b | ||
![]() |
05a6dcb416 | ||
![]() |
fd7d0bbd50 | ||
![]() |
bf96065340 | ||
![]() |
5985420dbb | ||
![]() |
2dd50cfe9a | ||
![]() |
c3a94c128f | ||
![]() |
b94c6c616a | ||
![]() |
9950ebd99e | ||
![]() |
1c4108d961 | ||
![]() |
1be4bbf08b | ||
![]() |
5ba50f2988 | ||
![]() |
e2618e5681 | ||
![]() |
3304259383 | ||
![]() |
d83df429bc | ||
![]() |
191ffd6efe | ||
![]() |
7e0e3f4145 | ||
![]() |
8b56897a11 | ||
![]() |
6a55fecca6 | ||
![]() |
f80a454261 | ||
![]() |
0f97a1cb4d | ||
![]() |
58e049a76f | ||
![]() |
dfa5013a79 | ||
![]() |
22dfa8daec | ||
![]() |
5c5608938d | ||
![]() |
cfd1ef11aa | ||
![]() |
b82530c890 | ||
![]() |
69e5bb552f | ||
![]() |
915350db3c | ||
![]() |
0dfb198609 | ||
![]() |
f1039324cf | ||
![]() |
3ce4bb8ecf | ||
![]() |
005398a20d | ||
![]() |
f45b1ec317 | ||
![]() |
4714cfcc84 | ||
![]() |
c221c8e242 | ||
![]() |
5464da21c4 | ||
![]() |
f2a783fbce | ||
![]() |
bb3ee371a1 | ||
![]() |
95e053562e | ||
![]() |
e5eba4496f | ||
![]() |
eba7459acf | ||
![]() |
7251dbd013 | ||
![]() |
43ffc452a2 | ||
![]() |
2027487c56 | ||
![]() |
77b96aed0a | ||
![]() |
dc5b9f00dd | ||
![]() |
67d2238660 | ||
![]() |
e018a6154b | ||
![]() |
32837dd742 | ||
![]() |
494c829b53 | ||
![]() |
cffdd29121 | ||
![]() |
17598a2725 | ||
![]() |
1433d594c7 | ||
![]() |
5ca89116e7 | ||
![]() |
67aa0dc732 | ||
![]() |
6f47ee3ffa | ||
![]() |
a54b93318a | ||
![]() |
18b267300c | ||
![]() |
de8e45a38f | ||
![]() |
230bb3da67 | ||
![]() |
825bfd91db | ||
![]() |
f2cab3dddb | ||
![]() |
6209250260 | ||
![]() |
68f9cc7e00 | ||
![]() |
141728ab83 | ||
![]() |
af697f69c8 | ||
![]() |
85b76f525c | ||
![]() |
1bcd4021dd | ||
![]() |
a946f31b50 | ||
![]() |
6e5611d1af | ||
![]() |
b5865dd326 | ||
![]() |
963ac294f4 | ||
![]() |
a7fe238a71 | ||
![]() |
9c6b0912a5 | ||
![]() |
26b633553c | ||
![]() |
51ccbb0c7c | ||
![]() |
93668396da | ||
![]() |
7355138f14 | ||
![]() |
1a761535df | ||
![]() |
2962f0741c | ||
![]() |
8de06906b8 | ||
![]() |
18a21bd85a | ||
![]() |
c630d4e479 | ||
![]() |
ab0ca282ff | ||
![]() |
f7970fb004 | ||
![]() |
5904663634 | ||
![]() |
358818b754 | ||
![]() |
4a287ad2eb | ||
![]() |
ffcf71f25d | ||
![]() |
3cf12e5b70 | ||
![]() |
32ecb73303 | ||
![]() |
24eb4a27cb | ||
![]() |
5a7bd1e868 | ||
![]() |
c6ec84444d | ||
![]() |
3044b44967 | ||
![]() |
2384b32a08 | ||
![]() |
350d72033b | ||
![]() |
5d9b8b7244 | ||
![]() |
006ab63b39 | ||
![]() |
4b54e4cfb5 | ||
![]() |
a6113ed7e8 | ||
![]() |
b8e6c059b0 | ||
![]() |
ac972254ae | ||
![]() |
bc41044103 | ||
![]() |
5d4b34f802 | ||
![]() |
bfff708d0c | ||
![]() |
cf23fba41e | ||
![]() |
2e51a18490 | ||
![]() |
1adc22e44f | ||
![]() |
e4cbfc8e78 | ||
![]() |
02f11033cd | ||
![]() |
e955e871e5 | ||
![]() |
5b1ba8f4e9 | ||
![]() |
c73afb011a | ||
![]() |
2538fa9b0a | ||
![]() |
0fc4e356d7 | ||
![]() |
df7a7916f5 | ||
![]() |
4225302a4b | ||
![]() |
7d978f5f96 | ||
![]() |
d433950935 | ||
![]() |
138ea1cb57 | ||
![]() |
ec9bc6ed92 | ||
![]() |
ccbb80ff4c | ||
![]() |
e16c36ba10 | ||
![]() |
42503c7ccf | ||
![]() |
46b63a777b | ||
![]() |
26b1243cc0 | ||
![]() |
cf116b5ad3 | ||
![]() |
cc36e8a6e0 | ||
![]() |
69c7cc198d | ||
![]() |
96ef22dabc | ||
![]() |
77ee0cc065 | ||
![]() |
e939e32da0 | ||
![]() |
b9e008afbe | ||
![]() |
542d631edd | ||
![]() |
acb1750bba | ||
![]() |
b9b8d161f3 | ||
![]() |
0c0de72a2c | ||
![]() |
0cebb046f8 | ||
![]() |
7eda59fb9c | ||
![]() |
e28661c5d4 | ||
![]() |
e72f2e4245 | ||
![]() |
6dac955cc7 | ||
![]() |
84f9237c91 | ||
![]() |
e2233816dd | ||
![]() |
542de32106 | ||
![]() |
7c99456c00 | ||
![]() |
f69421b7c6 | ||
![]() |
011e503c97 | ||
![]() |
7106409061 | ||
![]() |
49ee736731 | ||
![]() |
766c4e941d | ||
![]() |
b6fa393035 | ||
![]() |
c14191847f | ||
![]() |
c2866e0b26 | ||
![]() |
a8bbc0ade6 | ||
![]() |
4cfd3ba121 | ||
![]() |
ae746fa0af | ||
![]() |
31908c8775 | ||
![]() |
6c34fc6e8d | ||
![]() |
57f8a8fccd | ||
![]() |
3f7e2bf1c7 | ||
![]() |
dcd63d66bc | ||
![]() |
0313f1aa14 | ||
![]() |
e3c465b59a | ||
![]() |
093a9625a7 | ||
![]() |
b04d6fc4f0 | ||
![]() |
57850038fc | ||
![]() |
323c0e51f3 | ||
![]() |
a4a1aa5c43 | ||
![]() |
dddccee707 | ||
![]() |
528e020176 | ||
![]() |
fb8bc5d532 | ||
![]() |
6c3a67aa9a | ||
![]() |
3828f2547e | ||
![]() |
b44d4b4f41 | ||
![]() |
8c1e1bc97d | ||
![]() |
93ba4e0638 | ||
![]() |
16f7b06cec | ||
![]() |
e1e910e339 | ||
![]() |
fb34e6c2fd | ||
![]() |
bcd6116e5c | ||
![]() |
628a0bf269 | ||
![]() |
d3900ca905 | ||
![]() |
851b181ae9 | ||
![]() |
275fe8e837 | ||
![]() |
80f8e829df | ||
![]() |
a0f30e595b | ||
![]() |
43460815ac | ||
![]() |
69e352624e | ||
![]() |
40b652869d | ||
![]() |
ccb5df88b4 | ||
![]() |
4e6418c83e | ||
![]() |
0e17cb9c50 | ||
![]() |
ecf5c6af38 | ||
![]() |
afe8438958 | ||
![]() |
360baa1553 | ||
![]() |
a34675379b | ||
![]() |
215e2f10a9 | ||
![]() |
ca9b6525a2 | ||
![]() |
47cddef5de | ||
![]() |
bbedfd50a5 | ||
![]() |
6f60d2ff48 | ||
![]() |
0f76e65372 | ||
![]() |
d83f189a63 | ||
![]() |
f1d4b27c58 | ||
![]() |
f2ace58825 | ||
![]() |
fe74d96914 | ||
![]() |
379232e94a | ||
![]() |
7e74d75612 | ||
![]() |
ac92f251bc | ||
![]() |
42711a079b | ||
![]() |
373937ea0c | ||
![]() |
285a8de152 | ||
![]() |
11da1bf9ba | ||
![]() |
bcb3a88d16 | ||
![]() |
092fc77fb0 | ||
![]() |
9e2cd65560 | ||
![]() |
f8fbc79f35 | ||
![]() |
577c57ba87 | ||
![]() |
0d28e86fea | ||
![]() |
41862e5d39 | ||
![]() |
5559d1375c | ||
![]() |
9907722feb | ||
![]() |
4b706ff33a | ||
![]() |
52b6eab0d7 | ||
![]() |
8dd9b01048 | ||
![]() |
8521a2d044 | ||
![]() |
7e1c76a1da | ||
![]() |
9a816fe73a | ||
![]() |
b0c036e72b | ||
![]() |
0a34fb4fb0 | ||
![]() |
aa812d1fea | ||
![]() |
c63cfebd4f | ||
![]() |
c76492571b | ||
![]() |
34a40bbf86 | ||
![]() |
1132c70565 | ||
![]() |
515a0d4016 | ||
![]() |
9d6cf0cb6c | ||
![]() |
f585ad045b | ||
![]() |
0b9832dcc2 | ||
![]() |
882a6b87c7 | ||
![]() |
3ff2bcaace | ||
![]() |
bd0cf2ea86 | ||
![]() |
cfee3bf9c3 | ||
![]() |
fc8c0facdd | ||
![]() |
ad79a7e318 | ||
![]() |
9297fe8f9a | ||
![]() |
73b7903839 | ||
![]() |
cef86e1b02 | ||
![]() |
a274035159 | ||
![]() |
c57e93ba7b | ||
![]() |
82327db0d2 |
2
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
patreon: zen_browser
|
63
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: Bug Report Or Feature Request
|
||||||
|
description: File a bug report
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for filing a bug report.
|
||||||
|
- type: textarea
|
||||||
|
id: what-happened
|
||||||
|
attributes:
|
||||||
|
label: What happened?
|
||||||
|
description: Also tell us, what did you expect to happen?
|
||||||
|
placeholder: Tell us what you see!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: checkboxes
|
||||||
|
id: firefox
|
||||||
|
attributes:
|
||||||
|
label: Reproducible?
|
||||||
|
description: Is this issue reproducible on Firefox?
|
||||||
|
options:
|
||||||
|
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||||
|
- type: input
|
||||||
|
id: version
|
||||||
|
attributes:
|
||||||
|
label: Version
|
||||||
|
description: What version of our software are you running? Please DO NOT report Classic bugs.
|
||||||
|
placeholder: 1.0.0
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: severity
|
||||||
|
attributes:
|
||||||
|
label: Severity impact
|
||||||
|
description: See label descriptions for more information.
|
||||||
|
options:
|
||||||
|
- Low
|
||||||
|
- Medium
|
||||||
|
- High
|
||||||
|
- Critical
|
||||||
|
- Enhancement
|
||||||
|
multiple: true
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
|
||||||
|
- type: dropdown
|
||||||
|
id: platform
|
||||||
|
attributes:
|
||||||
|
label: What platform are you seeing the problem on?
|
||||||
|
multiple: true
|
||||||
|
options:
|
||||||
|
- Linux
|
||||||
|
- macOS - aarch64
|
||||||
|
- macOS - Intel
|
||||||
|
- Windows
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Relevant log output
|
||||||
|
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
|
||||||
|
render: shell
|
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
blank_issues_enabled: false
|
32
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: Feature Request
|
||||||
|
description: File a feature request
|
||||||
|
labels:
|
||||||
|
- "kind: enhancement"
|
||||||
|
body:
|
||||||
|
- type: markdown
|
||||||
|
attributes:
|
||||||
|
value: |
|
||||||
|
Thank you for filing a feature request.
|
||||||
|
- type: textarea
|
||||||
|
id: what-happened
|
||||||
|
attributes:
|
||||||
|
label: What feature would you like to see?
|
||||||
|
description: Please describe the feature you would like to see.
|
||||||
|
placeholder: Tell us what you would like to see!
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: dropdown
|
||||||
|
id: platform
|
||||||
|
attributes:
|
||||||
|
label: What platform are you seeing the problem on?
|
||||||
|
options:
|
||||||
|
- Linux
|
||||||
|
- macOS
|
||||||
|
- Windows
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: logs
|
||||||
|
attributes:
|
||||||
|
label: Additional context
|
||||||
|
description: Add any other context about the feature request here.
|
18
.github/advanced-issue-labeler.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
# Keep up to date with workflows/issue-create.yml !!!
|
||||||
|
|
||||||
|
policy:
|
||||||
|
- section:
|
||||||
|
- id: [severity]
|
||||||
|
label:
|
||||||
|
- name: 'kind: low severity'
|
||||||
|
keys: ['Low']
|
||||||
|
- name: 'kind: medium severity'
|
||||||
|
keys: ['Medium']
|
||||||
|
- name: 'kind: high severity'
|
||||||
|
keys: ['High']
|
||||||
|
- name: 'kind: critical severity'
|
||||||
|
keys: ['Critical']
|
||||||
|
- name: 'kind: enhancement'
|
||||||
|
keys: ['Enhancement']
|
||||||
|
|
518
.github/workflows/alpha.yml
vendored
@@ -41,14 +41,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
name: Setup pnpm cache
|
|
||||||
with:
|
|
||||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
|
||||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pnpm-store-
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
@@ -57,9 +49,15 @@ 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' }}
|
||||||
run: |
|
run: |
|
||||||
pnpm surfer ci --brand alpha --bump prerelease
|
pnpm surfer ci --brand alpha --bump prerelease
|
||||||
|
|
||||||
|
- name: Bump version without new version
|
||||||
|
if: ${{ github.event.inputs.update_version == 'false' }}
|
||||||
|
run: |
|
||||||
|
pnpm surfer ci --brand alpha
|
||||||
|
|
||||||
- name: Debug
|
- name: Debug
|
||||||
run: |
|
run: |
|
||||||
surfer get version
|
surfer get version
|
||||||
@@ -101,14 +99,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
name: Setup pnpm cache
|
|
||||||
with:
|
|
||||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
|
||||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pnpm-store-
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
run: pnpm install
|
||||||
|
|
||||||
@@ -133,273 +123,12 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
linux:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [build-data, check-release]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install Node.js
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
|
||||||
- name: Set Swap Space
|
|
||||||
uses: pierotofy/set-swap-space@v1.0
|
|
||||||
with:
|
|
||||||
swap-size-gb: 6
|
|
||||||
|
|
||||||
- name: Setup git
|
|
||||||
run: |
|
|
||||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
|
||||||
git config --global user.name "mauro-balades"
|
|
||||||
|
|
||||||
- name: Install system dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt-get update --fix-missing
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
|
||||||
pip install pycairo testresources
|
|
||||||
|
|
||||||
- name: Free up space
|
|
||||||
run: |
|
|
||||||
sudo rm -rf /usr/share/dotnet
|
|
||||||
sudo rm -rf /opt/ghc
|
|
||||||
sudo rm -rf "/usr/local/share/boost"
|
|
||||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
|
||||||
|
|
||||||
- name: Install sccache
|
|
||||||
env:
|
|
||||||
LINK: https://github.com/mozilla/sccache/releases/download
|
|
||||||
SCCACHE_VERSION: 0.2.13
|
|
||||||
run: |
|
|
||||||
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
|
||||||
mkdir -p $HOME/.local/bin
|
|
||||||
curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
|
||||||
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
|
|
||||||
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
|
||||||
|
|
||||||
- name: Save sccache
|
|
||||||
uses: actions/cache@v3
|
|
||||||
continue-on-error: false
|
|
||||||
with:
|
|
||||||
path: /home/runner/.cache/sccache
|
|
||||||
key: ${{ runner.os }}-sccache
|
|
||||||
|
|
||||||
- name: Install pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
|
|
||||||
- name: Get pnpm store directory
|
|
||||||
id: pnpm-cache
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
name: Setup pnpm cache
|
|
||||||
with:
|
|
||||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
|
||||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pnpm-store-
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: pnpm install
|
|
||||||
|
|
||||||
- name: Load surfer CI setup
|
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
|
||||||
|
|
||||||
- name: Download firefox source and dependencies
|
|
||||||
run: pnpm surfer download
|
|
||||||
|
|
||||||
- name: Import
|
|
||||||
run: pnpm surfer import
|
|
||||||
|
|
||||||
- name: Bootstrap
|
|
||||||
run: |
|
|
||||||
cd engine
|
|
||||||
./mach --no-interactive bootstrap --application-choice browser
|
|
||||||
cd ..
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
export ZEN_RELEASE=1
|
|
||||||
pnpm build
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
run: pnpm package
|
|
||||||
|
|
||||||
- name: Rename artifacts
|
|
||||||
run: |
|
|
||||||
mv dist/zen-*.tar.bz2 "zen.linux.tar.bz2"
|
|
||||||
mv dist/output.mar linux.mar
|
|
||||||
|
|
||||||
- name: Upload binary
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: zen.linux.tar.bz2
|
|
||||||
path: ./zen.linux.tar.bz2
|
|
||||||
|
|
||||||
- name: Upload mar
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: linux.mar
|
|
||||||
path: ./linux.mar
|
|
||||||
|
|
||||||
- name: Upload update manifests
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: linux_update_manifest
|
|
||||||
path: ./dist/update
|
|
||||||
|
|
||||||
windows:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [build-data, check-release]
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Install Node.js and pnpm
|
|
||||||
uses: actions/setup-node@v3
|
|
||||||
with:
|
|
||||||
node-version: 20
|
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
|
||||||
- name: Set Swap Space
|
|
||||||
uses: pierotofy/set-swap-space@v1.0
|
|
||||||
with:
|
|
||||||
swap-size-gb: 6
|
|
||||||
|
|
||||||
- name: Install pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
|
|
||||||
- name: Setup git
|
|
||||||
run: |
|
|
||||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
|
||||||
git config --global user.name "mauro-balades"
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
pnpm i
|
|
||||||
|
|
||||||
- name: Load surfer CI setup
|
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
|
||||||
|
|
||||||
- name: Download
|
|
||||||
run: pnpm surfer download
|
|
||||||
|
|
||||||
- name: Free up space
|
|
||||||
run: |
|
|
||||||
sudo rm -rf /usr/share/dotnet
|
|
||||||
sudo rm -rf /opt/ghc
|
|
||||||
sudo rm -rf "/usr/local/share/boost"
|
|
||||||
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
|
||||||
|
|
||||||
- name: Setup For Windows
|
|
||||||
run: |
|
|
||||||
set -x
|
|
||||||
mkdir -p ~/win-cross
|
|
||||||
cd engine/
|
|
||||||
|
|
||||||
echo Setup wine
|
|
||||||
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
|
||||||
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
|
||||||
rm wine.tar.zst
|
|
||||||
|
|
||||||
echo Setup Visual Studio
|
|
||||||
sudo apt install -y msitools python3-pip
|
|
||||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
|
||||||
|
|
||||||
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
|
|
||||||
|
|
||||||
cat ../.github/workflows/src/windows_mozconfig >> ../configs/common/mozconfig
|
|
||||||
|
|
||||||
cd ..
|
|
||||||
npm install -g pnpm
|
|
||||||
export SURFER_PLATFORM="win32"
|
|
||||||
pnpm surfer bootstrap
|
|
||||||
|
|
||||||
cd engine/
|
|
||||||
ls ~/.mozbuild/clang/lib/clang/
|
|
||||||
echo "export LIB=\"$(cd ~/.mozbuild/clang/lib/clang/* && cd lib/windows && pwd)\"" >> ../configs/common/mozconfig
|
|
||||||
cat ../configs/common/mozconfig
|
|
||||||
|
|
||||||
ls ~/win-cross/wine || true
|
|
||||||
ls ~/win-cross/vs2022 || true
|
|
||||||
|
|
||||||
- name: setup Rust
|
|
||||||
run: |
|
|
||||||
cd engine/
|
|
||||||
# Install a rust version compatible with 17
|
|
||||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.76
|
|
||||||
source $HOME/.cargo/env
|
|
||||||
|
|
||||||
rustup target add x86_64-pc-windows-msvc
|
|
||||||
cargo install cargo-download
|
|
||||||
cargo download -x windows=0.52.0
|
|
||||||
#? https://github.com/mozilla/sccache#known-caveats
|
|
||||||
export CARGO_INCREMENTAL=0
|
|
||||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
|
||||||
|
|
||||||
- name: Import
|
|
||||||
run: pnpm surfer import --verbose
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
unset SURFER_PLATFORM
|
|
||||||
export ZEN_RELEASE=1
|
|
||||||
export ZEN_CROSS_COMPILING=1
|
|
||||||
pnpm build
|
|
||||||
|
|
||||||
- name: Package
|
|
||||||
run: |
|
|
||||||
set -x
|
|
||||||
export SURFER_PLATFORM="win32"
|
|
||||||
pnpm package
|
|
||||||
mv ./dist/output.mar windows.mar
|
|
||||||
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
|
|
||||||
ls ./dist
|
|
||||||
ls .
|
|
||||||
|
|
||||||
- name: Upload artifact
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: zen.win64.zip
|
|
||||||
path: ./zen.win64.zip
|
|
||||||
|
|
||||||
- name: Upload mar
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: windows.mar
|
|
||||||
path: ./windows.mar
|
|
||||||
|
|
||||||
- name: Upload installer
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: zen.installer.exe
|
|
||||||
path: ./dist/zen.installer.exe
|
|
||||||
|
|
||||||
- name: Upload installer stub
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: zen.installer.pretty.exe
|
|
||||||
path: ./dist/zen.installer.pretty.exe
|
|
||||||
|
|
||||||
- name: Upload update manifests
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: windows_update_manifest
|
|
||||||
path: ./dist/update
|
|
||||||
|
|
||||||
source:
|
source:
|
||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
needs: [build-data]
|
needs: [build-data, check-release]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
@@ -445,150 +174,136 @@ jobs:
|
|||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: zen.source.tar.gz
|
name: zen.source.tar.gz
|
||||||
path: ./zen.source.tar.gz
|
path: ./zen.source.tar.gz
|
||||||
|
|
||||||
mac:
|
#windows-step-1:
|
||||||
if: false
|
# name: Windows build step 1 (PGO build)
|
||||||
runs-on: macos-13
|
# uses: ./.github/workflows/windows-alpha-build.yml
|
||||||
needs: [build-data, check-release]
|
# needs: [build-data]
|
||||||
|
# permissions:
|
||||||
|
# contents: write
|
||||||
|
# with:
|
||||||
|
# build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
# generate-gpo: true
|
||||||
|
# profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
|
||||||
|
#windows-step-2:
|
||||||
|
# name: Windows build step 2 (Generate profile data)
|
||||||
|
# uses: ./.github/workflows/windows-profile-build.yml
|
||||||
|
# permissions:
|
||||||
|
# contents: write
|
||||||
|
# needs: [windows-step-1, build-data]
|
||||||
|
# with:
|
||||||
|
# build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
# profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
|
windows-step-3:
|
||||||
|
name: Windows build step 3 (build with profile data)
|
||||||
|
uses: ./.github/workflows/windows-alpha-build.yml
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
needs: [build-data]
|
||||||
|
with:
|
||||||
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
generate-gpo: false
|
||||||
|
|
||||||
|
linux:
|
||||||
|
name: Linux build
|
||||||
|
uses: ./.github/workflows/linux-alpha-build.yml
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
needs: [build-data]
|
||||||
|
with:
|
||||||
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
|
mac:
|
||||||
|
name: macOS build
|
||||||
|
uses: ./.github/workflows/macos-alpha-build.yml
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
needs: [build-data]
|
||||||
|
with:
|
||||||
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
|
appimage:
|
||||||
|
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
generic: [true, false]
|
||||||
|
needs: [linux]
|
||||||
steps:
|
steps:
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 20
|
||||||
|
|
||||||
- uses: actions/setup-python@v5
|
- uses: actions/checkout@v4
|
||||||
with:
|
|
||||||
python-version: '3.11'
|
|
||||||
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
|
|
||||||
- name: Setup git
|
|
||||||
run: |
|
|
||||||
git config --global user.email "mauro-balades@users.noreply.github.com"
|
|
||||||
git config --global user.name "mauro-balades"
|
|
||||||
|
|
||||||
- name: Install system dependencies
|
|
||||||
run: |
|
|
||||||
brew install cairo sccache gnu-tar mercurial
|
|
||||||
sudo pip install setuptools
|
|
||||||
|
|
||||||
- name: Force usage fo gnu-tar
|
|
||||||
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"' >> ~/.zsh
|
|
||||||
source ~/.bash_profile
|
|
||||||
|
|
||||||
- name: Save sccache
|
|
||||||
uses: actions/cache@v3
|
|
||||||
continue-on-error: false
|
|
||||||
with:
|
|
||||||
path: ~/Library/Caches/Mozilla.sccache
|
|
||||||
key: ${{ runner.os }}-sccache
|
|
||||||
|
|
||||||
- name: Install pnpm
|
|
||||||
run: npm install -g pnpm
|
|
||||||
|
|
||||||
- name: Get pnpm store directory
|
|
||||||
id: pnpm-cache
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
|
||||||
|
|
||||||
- uses: actions/cache@v3
|
|
||||||
name: Setup pnpm cache
|
|
||||||
with:
|
|
||||||
path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
|
|
||||||
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-pnpm-store-
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: pnpm install
|
|
||||||
- name: Load surfer CI setup
|
|
||||||
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
|
|
||||||
|
|
||||||
- name: Download firefox source and dependancies
|
|
||||||
run: pnpm surfer download
|
|
||||||
|
|
||||||
- name: Import
|
|
||||||
run: pnpm surfer import
|
|
||||||
|
|
||||||
- name: Bootstrap
|
|
||||||
run: |
|
run: |
|
||||||
cd engine
|
npm install -g pnpm
|
||||||
./mach --no-interactive bootstrap --application-choice browser
|
sudo apt-get update
|
||||||
cd ..
|
sudo apt-get -y install libfuse2
|
||||||
|
|
||||||
- name: surfer build
|
- name: Download linux build
|
||||||
run: pnpm build --verbose
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||||
|
|
||||||
- name: Package
|
- name: Execute AppImage build
|
||||||
run: pnpm package
|
|
||||||
|
|
||||||
- name: Rename artifacts
|
|
||||||
run: |
|
run: |
|
||||||
mv ./dist/*.dmg "zen.macos.dmg"
|
set -eux
|
||||||
mv ./dist/output.mar macos.mar
|
rm AppDir/.DirIcon || true
|
||||||
|
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
|
||||||
|
cp configs/branding/alpha/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
|
||||||
|
|
||||||
|
APPDIR=AppDir
|
||||||
|
tar -xvf *.tar.* && rm -rf *.tar.*
|
||||||
|
mv zen/* $APPDIR/
|
||||||
|
wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
|
||||||
|
chmod +x *.AppImage
|
||||||
|
chmod +x ./AppDir/AppRun
|
||||||
|
echo "AppDir: $APPDIR"
|
||||||
|
ls -al
|
||||||
|
find .
|
||||||
|
ls -al "$APPDIR"
|
||||||
|
ARCH=x86_64 ./appimagetool-x86_64.AppImage --comp gzip "$APPDIR" zen.AppImage
|
||||||
|
mkdir dist
|
||||||
|
mv zen.AppImage* dist/.
|
||||||
|
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: zen.macos.dmg
|
name: zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
|
||||||
path: ./zen.macos.dmg
|
path: ./dist/zen.AppImage
|
||||||
|
|
||||||
- name: Upload mar
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: macos.mar
|
|
||||||
path: ./macos.mar
|
|
||||||
|
|
||||||
- name: Upload update manifests
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: macos_update_manifest
|
|
||||||
path: ./dist/update
|
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release
|
name: Release
|
||||||
needs: [build-data, linux, source, windows, check-release]
|
needs: [build-data, linux, source, windows-step-3, check-release, mac, appimage]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Update repo
|
- name: Update repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Git Pull
|
- name: Git Pull
|
||||||
run: git pull
|
run: git pull
|
||||||
|
|
||||||
- uses: actions/download-artifact@v3
|
- uses: actions/download-artifact@v4
|
||||||
|
|
||||||
- name: release-github
|
|
||||||
uses: 'marvinpinto/action-automatic-releases@latest'
|
|
||||||
with:
|
|
||||||
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
|
||||||
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
|
||||||
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
|
||||||
files: |
|
|
||||||
zen.linux.tar.bz2
|
|
||||||
zen.win64.zip
|
|
||||||
zen.source.tar.gz
|
|
||||||
linux.mar
|
|
||||||
windows.mar
|
|
||||||
zen.installer.exe
|
|
||||||
zen.installer.pretty.exe
|
|
||||||
|
|
||||||
- name: List
|
- name: List
|
||||||
run: find .
|
run: find .
|
||||||
|
|
||||||
- name: Clone updates repo
|
- name: Clone updates repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
repository: zen-browser/updates-server
|
repository: zen-browser/updates-server
|
||||||
path: updates-server
|
path: updates-server
|
||||||
@@ -598,8 +313,14 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd updates-server
|
cd updates-server
|
||||||
mkdir -p updates
|
mkdir -p updates
|
||||||
cp -a ../linux_update_manifest/. updates/
|
cp -a ../linux_update_manifest_generic/. updates/
|
||||||
cp -a ../windows_update_manifest/. updates/
|
cp -a ../linux_update_manifest_specific/. updates/
|
||||||
|
|
||||||
|
cp -a ../windows_update_manifest_generic/. updates/
|
||||||
|
cp -a ../windows_update_manifest_specific/. updates/
|
||||||
|
|
||||||
|
cp -a ../macos_update_manifest_aarch64/. updates/
|
||||||
|
cp -a ../macos_update_manifest_x64/. updates/
|
||||||
|
|
||||||
- uses: stefanzweifel/git-auto-commit-action@v4
|
- uses: stefanzweifel/git-auto-commit-action@v4
|
||||||
with:
|
with:
|
||||||
@@ -608,3 +329,28 @@ 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
|
||||||
|
|
||||||
|
- name: release-github
|
||||||
|
uses: 'marvinpinto/action-automatic-releases@latest'
|
||||||
|
with:
|
||||||
|
repo_token: '${{ secrets.DEPLOY_KEY }}'
|
||||||
|
automatic_release_tag: ${{ needs.build-data.outputs.version }}
|
||||||
|
prerelease: false
|
||||||
|
title: 'Alpha build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }})'
|
||||||
|
files: |
|
||||||
|
zen.source.tar.gz
|
||||||
|
zen.linux-generic.tar.bz2
|
||||||
|
zen.linux-specific.tar.bz2
|
||||||
|
zen-generic.AppImage
|
||||||
|
zen-specific.AppImage
|
||||||
|
zen.win-generic.zip
|
||||||
|
zen.win-specific.zip
|
||||||
|
linux.mar
|
||||||
|
linux-generic.mar
|
||||||
|
windows.mar
|
||||||
|
windows-generic.mar
|
||||||
|
macos-x64.mar
|
||||||
|
macos-aarch64.mar
|
||||||
|
zen.installer.exe
|
||||||
|
zen.installer-generic.exe
|
||||||
|
zen.macos-x64.dmg
|
||||||
|
zen.macos-aarch64.dmg
|
||||||
|
30
.github/workflows/clear-cache.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
name: Clear cache
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
actions: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
clear-cache:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Clear cache
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
console.log("About to clear")
|
||||||
|
const caches = await github.rest.actions.getActionsCacheList({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
})
|
||||||
|
for (const cache of caches.data.actions_caches) {
|
||||||
|
console.log(cache)
|
||||||
|
github.rest.actions.deleteActionsCacheById({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
cache_id: cache.id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
console.log("Clear completed")
|
35
.github/workflows/issue-create.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
name: Issue labeler
|
||||||
|
on:
|
||||||
|
issues:
|
||||||
|
types: [ opened ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
label-component:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
# required for all workflows
|
||||||
|
issues: write
|
||||||
|
|
||||||
|
# only required for workflows in private repositories
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Parse issue form
|
||||||
|
uses: stefanbuck/github-issue-parser@v3
|
||||||
|
id: issue-parser
|
||||||
|
with:
|
||||||
|
template-path: .github/ISSUE_TEMPLATE/bug_report.yml
|
||||||
|
|
||||||
|
- name: Set labels based on severity field
|
||||||
|
uses: redhat-plumbers-in-action/advanced-issue-labeler@v3
|
||||||
|
with:
|
||||||
|
issue-form: ${{ steps.issue-parser.outputs.jsonString }}
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
section: severity
|
143
.github/workflows/linux-alpha-build.yml
vendored
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
build-version:
|
||||||
|
description: 'The version to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-linux:
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
generic: [true, false]
|
||||||
|
name: Build Linux - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
|
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
||||||
|
- name: Set Swap Space
|
||||||
|
uses: pierotofy/set-swap-space@v1.0
|
||||||
|
with:
|
||||||
|
swap-size-gb: 6
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
run: |
|
||||||
|
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||||
|
git config --global user.name "mauro-balades"
|
||||||
|
|
||||||
|
- name: Install system dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt-get update --fix-missing
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install dos2unix yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb lld llvm
|
||||||
|
pip install pycairo testresources
|
||||||
|
|
||||||
|
- name: Free up space
|
||||||
|
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||||
|
|
||||||
|
- name: Configure sccache
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||||
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||||
|
|
||||||
|
- name: Install sccache
|
||||||
|
env:
|
||||||
|
LINK: https://github.com/mozilla/sccache/releases/download
|
||||||
|
SCCACHE_VERSION: 0.2.13
|
||||||
|
run: |
|
||||||
|
SCCACHE_FILE=sccache-$SCCACHE_VERSION-x86_64-unknown-linux-musl
|
||||||
|
mkdir -p $HOME/.local/bin
|
||||||
|
curl -L "$LINK/$SCCACHE_VERSION/$SCCACHE_FILE.tar.gz" | tar xz
|
||||||
|
mv -f $SCCACHE_FILE/sccache $HOME/.local/bin/sccache
|
||||||
|
echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Save sccache
|
||||||
|
uses: actions/cache@v3
|
||||||
|
continue-on-error: false
|
||||||
|
with:
|
||||||
|
path: /home/runner/.cache/sccache
|
||||||
|
key: ${{ runner.os }}-sccache
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Get pnpm store directory
|
||||||
|
id: pnpm-cache
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Load surfer CI setup
|
||||||
|
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
|
- name: Download firefox source and dependencies
|
||||||
|
run: pnpm surfer download
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: pnpm surfer import
|
||||||
|
|
||||||
|
- name: Bootstrap
|
||||||
|
run: |
|
||||||
|
cd engine
|
||||||
|
./mach --no-interactive bootstrap --application-choice browser
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
continue-on-error: true
|
||||||
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Build again if it failed
|
||||||
|
if: failure()
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: pnpm package
|
||||||
|
|
||||||
|
- name: Rename artifacts
|
||||||
|
run: |
|
||||||
|
mv dist/zen-*.tar.bz2 "zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2"
|
||||||
|
mv dist/output.mar linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
|
||||||
|
- name: Upload binary
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
|
||||||
|
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||||
|
path: ./zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
|
||||||
|
|
||||||
|
- name: Upload mar
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
path: ./linux${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
|
||||||
|
- name: Upload update manifests
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: linux_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
path: ./dist/update
|
122
.github/workflows/macos-alpha-build.yml
vendored
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
build-version:
|
||||||
|
description: 'The version to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
mac-build:
|
||||||
|
name: Build macOS - ${{ matrix.arch }}
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- arch: aarch64
|
||||||
|
os: macos-14
|
||||||
|
- arch: x64
|
||||||
|
os: macos-13
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.11'
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
run: |
|
||||||
|
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||||
|
git config --global user.name "mauro-balades"
|
||||||
|
|
||||||
|
- name: Install system dependencies
|
||||||
|
run: |
|
||||||
|
brew install cairo sccache gnu-tar mercurial
|
||||||
|
sudo pip install setuptools
|
||||||
|
|
||||||
|
- name: Free up space
|
||||||
|
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||||
|
|
||||||
|
- name: Force usage fo gnu-tar
|
||||||
|
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"' >> ~/.zsh
|
||||||
|
source ~/.bash_profile
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Get pnpm store directory
|
||||||
|
id: pnpm-cache
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
- name: Load surfer CI setup
|
||||||
|
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
|
- name: Download firefox source and dependancies
|
||||||
|
run: pnpm surfer download
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
|
run: |
|
||||||
|
pnpm surfer import
|
||||||
|
|
||||||
|
- name: Bootstrap
|
||||||
|
run: |
|
||||||
|
cd engine
|
||||||
|
./mach --no-interactive bootstrap --application-choice browser
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
- name: build Zen
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
|
run: |
|
||||||
|
if test "${{ matrix.arch }}" = "x64"; then
|
||||||
|
export ZEN_DISABLE_LTO=1
|
||||||
|
fi
|
||||||
|
sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Rebuild Zen if failed
|
||||||
|
if: failure()
|
||||||
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch == 'x64' }}
|
||||||
|
run: pnpm package
|
||||||
|
|
||||||
|
- name: Rename artifacts
|
||||||
|
run: |
|
||||||
|
mv ./dist/*.dmg "zen.macos-${{ matrix.arch }}.dmg"
|
||||||
|
mv ./dist/output.mar macos-${{ matrix.arch }}.mar
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen.macos-${{ matrix.arch }}.dmg
|
||||||
|
path: ./zen.macos-${{ matrix.arch }}.dmg
|
||||||
|
|
||||||
|
- name: Upload mar
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: macos-${{ matrix.arch }}.mar
|
||||||
|
path: ./macos-${{ matrix.arch }}.mar
|
||||||
|
|
||||||
|
- name: Upload update manifests
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: macos_update_manifest_${{ matrix.arch }}
|
||||||
|
path: ./dist/update
|
26
.github/workflows/src/alpha-build.sh
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
set -ex
|
||||||
|
|
||||||
|
if command -v apt-get &> /dev/null
|
||||||
|
then
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y xvfb
|
||||||
|
fi
|
||||||
|
|
||||||
|
ulimit -n 4096
|
||||||
|
|
||||||
|
# Check if xfvb is installed
|
||||||
|
if ! command -v Xvfb &> /dev/null; then
|
||||||
|
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||||
|
Xvfb :2 -screen 0 1024x768x24 &
|
||||||
|
export LLVM_PROFDATA=$HOME/.mozbuild/clang/bin/llvm-profdata
|
||||||
|
export DISPLAY=:2
|
||||||
|
fi
|
||||||
|
export ZEN_RELEASE=1
|
||||||
|
pnpm build
|
||||||
|
else
|
||||||
|
echo "Xvfb could not be found, running without it"
|
||||||
|
echo "ASSUMING YOU ARE RUNNING THIS ON MACOS"
|
||||||
|
set -v
|
||||||
|
export ZEN_RELEASE=1
|
||||||
|
pnpm build
|
||||||
|
fi
|
50
.github/workflows/src/disk-setup-and-swap.sh
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
|
||||||
|
echo Before:
|
||||||
|
if [ command -v free ]; then
|
||||||
|
free -h
|
||||||
|
fi
|
||||||
|
if [ command -v df ]; then
|
||||||
|
df -h
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
|
||||||
|
sudo swapoff /mnt/swapfile
|
||||||
|
sudo rm /mnt/swapfile
|
||||||
|
sudo fallocate -l 10G /mnt/swapfile
|
||||||
|
sudo chmod 600 /mnt/swapfile
|
||||||
|
sudo mkswap /mnt/swapfile
|
||||||
|
sudo swapon /mnt/swapfile
|
||||||
|
sudo apt remove -y '^dotnet-.*' '^llvm-.*' '^php.*' '^mongodb-.*' '^mysql-.*' clang azure-cli google-cloud-sdk google-chrome-stable microsoft-edge firefox powershell mono-devel libgl1-mesa-dri acl aria2 autoconf automake binutils bison brotli bzip2 coreutils
|
||||||
|
sudo apt autoremove -y
|
||||||
|
sudo apt clean
|
||||||
|
sudo rm -rf ./git
|
||||||
|
sudo rm -rf /home/linuxbrew
|
||||||
|
sudo rm -rf /usr/share/dotnet
|
||||||
|
sudo rm -rf /usr/local/lib/android
|
||||||
|
sudo rm -rf /usr/local/graalvm
|
||||||
|
sudo rm -rf /usr/local/share/powershell
|
||||||
|
sudo rm -rf /usr/local/share/chromium
|
||||||
|
sudo rm -rf /opt/ghc
|
||||||
|
sudo rm -rf /usr/local/share/boost
|
||||||
|
sudo rm -rf "$AGENT_TOOLSDIRECTORY"
|
||||||
|
sudo rm -rf /etc/apache2
|
||||||
|
sudo rm -rf /etc/nginx
|
||||||
|
sudo rm -rf /usr/local/share/chrome_driver
|
||||||
|
sudo rm -rf /usr/local/share/edge_driver
|
||||||
|
sudo rm -rf /usr/local/share/gecko_driver
|
||||||
|
sudo rm -rf /usr/share/java
|
||||||
|
sudo rm -rf /usr/share/miniconda
|
||||||
|
sudo rm -rf /usr/local/share/vcpkg
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
|
||||||
|
echo After:
|
||||||
|
if [ command -v free ]; then
|
||||||
|
free -h
|
||||||
|
fi
|
||||||
|
if [ command -v df ]; then
|
||||||
|
df -h
|
||||||
|
fi
|
41
.github/workflows/src/windows_mozconfig
vendored
@@ -1,41 +0,0 @@
|
|||||||
|
|
||||||
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
|
||||||
|
|
||||||
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
|
|
||||||
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
|
||||||
export WINEDEBUG=-all
|
|
||||||
|
|
||||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
|
||||||
#? https://phabricator.services.mozilla.com/D170170
|
|
||||||
ac_add_options --target=x86_64-pc-mingw32
|
|
||||||
|
|
||||||
export MOZ_STUB_INSTALLER=1
|
|
||||||
export MOZ_MAINTENANCE_SERVICE=
|
|
||||||
|
|
||||||
export MOZ_PKG_FORMAT=TAR
|
|
||||||
|
|
||||||
export CROSS_BUILD=1
|
|
||||||
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"
|
|
||||||
TOOLS=$(echo ~)/win-cross
|
|
||||||
|
|
||||||
export MIDL="$TOOLS/wine/bin/widl"
|
|
||||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
|
||||||
export MOZ_STUB_INSTALLER=1
|
|
||||||
export WINEDEBUG=-all
|
|
||||||
export WINE="$TOOLS/wine/bin/wine64"
|
|
||||||
|
|
||||||
ac_add_options --enable-release
|
|
||||||
ac_add_options --enable-rust-simd
|
|
||||||
ac_add_options RUSTC_OPT_LEVEL=3
|
|
||||||
export MOZILLA_OFFICIAL=1
|
|
||||||
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=x86-64"
|
|
||||||
|
|
||||||
ac_add_options --enable-default-browser-agent
|
|
||||||
ac_add_options --enable-install-strip
|
|
||||||
ac_add_options --enable-jxl
|
|
||||||
ac_add_options --disable-maintenance-service
|
|
||||||
|
|
||||||
ac_add_options --disable-bits-download
|
|
||||||
|
|
||||||
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
|
||||||
|
|
220
.github/workflows/windows-alpha-build.yml
vendored
Normal file
@@ -0,0 +1,220 @@
|
|||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
generate-gpo:
|
||||||
|
required: true
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
build-version:
|
||||||
|
description: 'The version to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
profile-data-path-archive:
|
||||||
|
description: 'The path to the zip archive containing the profile data'
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
windows-build:
|
||||||
|
name: Build Windows - ${{ matrix.generic == true && 'Generic' || 'Specific' }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
generic: [true, false]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Install Node.js and pnpm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
# Give the runner some swap space in an attempt to stop gkrust from crashing the build
|
||||||
|
- name: Set Swap Space
|
||||||
|
uses: pierotofy/set-swap-space@v1.0
|
||||||
|
with:
|
||||||
|
swap-size-gb: 6
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
run: |
|
||||||
|
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||||
|
git config --global user.name "mauro-balades"
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: |
|
||||||
|
pnpm i
|
||||||
|
|
||||||
|
- name: Load surfer CI setup
|
||||||
|
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
|
||||||
|
|
||||||
|
- name: Download
|
||||||
|
run: pnpm surfer download
|
||||||
|
|
||||||
|
- name: Free up space
|
||||||
|
run: sh .github/workflows/src/disk-setup-and-swap.sh
|
||||||
|
|
||||||
|
- name: "win-cross Cache"
|
||||||
|
env:
|
||||||
|
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||||
|
id: cache-win-cross
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ${HOME}/win-cross
|
||||||
|
key: win-cross
|
||||||
|
|
||||||
|
- name: Configure sccache
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
|
||||||
|
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
|
||||||
|
|
||||||
|
- name: Setup For Windows
|
||||||
|
if: steps.cache-win-cross.outputs.cache-hit != 'true'
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
mkdir -p ~/win-cross
|
||||||
|
cd engine/
|
||||||
|
|
||||||
|
echo Setup wine
|
||||||
|
aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-1.toolchains.v3.linux64-wine.latest/artifacts/public%2Fbuild%2Fwine.tar.zst" -o wine.tar.zst
|
||||||
|
tar --zstd -xvf wine.tar.zst -C ~/win-cross
|
||||||
|
rm wine.tar.zst
|
||||||
|
|
||||||
|
echo Setup Visual Studio
|
||||||
|
sudo apt install -y msitools python3-pip
|
||||||
|
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||||
|
|
||||||
|
- name: Bootstrap
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
cd engine/
|
||||||
|
|
||||||
|
chmod -R +x "$(echo ~)/win-cross/vs2022" || true
|
||||||
|
|
||||||
|
cd ..
|
||||||
|
npm install -g pnpm
|
||||||
|
export SURFER_PLATFORM="win32"
|
||||||
|
pnpm surfer bootstrap
|
||||||
|
|
||||||
|
cd engine/
|
||||||
|
ls ~/.mozbuild/clang/lib/clang/
|
||||||
|
echo "export LIB=\"$(cd ~/.mozbuild/clang/lib/clang/* && cd lib/windows && pwd)\"" >> ../configs/common/mozconfig
|
||||||
|
cat ../configs/common/mozconfig
|
||||||
|
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install dos2unix
|
||||||
|
|
||||||
|
ls ~/win-cross/wine || true
|
||||||
|
ls ~/win-cross/vs2022 || true
|
||||||
|
|
||||||
|
- name: setup Rust
|
||||||
|
run: |
|
||||||
|
cd engine/
|
||||||
|
# Install a rust version compatible with 17
|
||||||
|
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.76
|
||||||
|
source $HOME/.cargo/env
|
||||||
|
|
||||||
|
rustup target add x86_64-pc-windows-msvc
|
||||||
|
cargo install cargo-download
|
||||||
|
cargo download -x windows=0.52.0
|
||||||
|
#? https://github.com/mozilla/sccache#known-caveats
|
||||||
|
export CARGO_INCREMENTAL=0
|
||||||
|
|
||||||
|
echo "" >> ../configs/common/mozconfig
|
||||||
|
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
name: Download artifact if use profdata
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
path: ~/artifact
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: pnpm surfer import --verbose
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
dos2unix configs/windows/mozconfig
|
||||||
|
export SURFER_PLATFORM="win32"
|
||||||
|
export ZEN_CROSS_COMPILING=1
|
||||||
|
if test ${{ inputs.generate-gpo }} = true; then
|
||||||
|
export ZEN_GA_GENERATE_PROFILE=1
|
||||||
|
fi
|
||||||
|
sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Package
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.generic == true }}
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
export SURFER_PLATFORM="win32"
|
||||||
|
pnpm package
|
||||||
|
mv ./dist/zen-$(pnpm surfer get version | xargs).en-US.win64.zip zen.win64.zip
|
||||||
|
ls ./dist
|
||||||
|
ls .
|
||||||
|
|
||||||
|
- name: Move package for PGO upload
|
||||||
|
if: ${{ inputs.generate-gpo }}
|
||||||
|
run: |
|
||||||
|
set -x
|
||||||
|
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
|
- name: Rename artifacts
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
run: |
|
||||||
|
mv ./zen.win64.zip zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||||
|
mv ./dist/output.mar windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
mv ./dist/zen.installer.exe ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||||
|
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
|
||||||
|
|
||||||
|
- name: Upload PGO build
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
|
||||||
|
path: ./zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
|
- name: Upload mar
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
|
||||||
|
|
||||||
|
- name: Upload installer
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
|
||||||
|
|
||||||
|
- name: Upload installer stub
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ !inputs.generate-gpo && false }}
|
||||||
|
with:
|
||||||
|
name: zen.installer.pretty.exe
|
||||||
|
path: ./dist/zen.installer.pretty.exe
|
||||||
|
|
||||||
|
- name: Upload update manifests
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
if: ${{ !inputs.generate-gpo }}
|
||||||
|
with:
|
||||||
|
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
path: ./dist/update
|
97
.github/workflows/windows-profile-build.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
|
||||||
|
on:
|
||||||
|
workflow_call:
|
||||||
|
inputs:
|
||||||
|
build-version:
|
||||||
|
description: 'The version to build'
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
|
profile-data-path-archive:
|
||||||
|
description: 'The path to the zip archive containing the profile data'
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
windows-profile-build:
|
||||||
|
name: Windows Profile Build - ${{ matrix.generic == true && 'generic' || 'specific' }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
generic: [true, false]
|
||||||
|
runs-on: windows-latest
|
||||||
|
# Script edited from https://github.com/Floorp-Projects/Floorp/blob/ESR115/.github/workflows/window-generate-profile-data-and-jarlog.yml
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install Node.js and pnpm
|
||||||
|
uses: actions/setup-node@v3
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
|
||||||
|
- name: Setup git
|
||||||
|
run: |
|
||||||
|
git config --global user.email "mauro-balades@users.noreply.github.com"
|
||||||
|
git config --global user.name "mauro-balades"
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
run: npm install -g pnpm
|
||||||
|
|
||||||
|
- name: Install Surfer
|
||||||
|
run: |
|
||||||
|
npm i -g @zen-browser/surfer
|
||||||
|
|
||||||
|
- uses: actions/download-artifact@v4
|
||||||
|
name: Download artifact
|
||||||
|
with:
|
||||||
|
path: C:\artifact
|
||||||
|
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
|
||||||
|
- name: Unpack artifact
|
||||||
|
run: |
|
||||||
|
cd C:\artifact
|
||||||
|
ls
|
||||||
|
zstd -d ${{ inputs.profile-data-path-archive }}
|
||||||
|
7z x zen-*.tar
|
||||||
|
|
||||||
|
- name: Setup
|
||||||
|
run: |
|
||||||
|
(New-Object System.Net.WebClient).DownloadFile("https://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-Latest.exe","C:\MozillaBuildSetup-Latest.exe")
|
||||||
|
C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||||
|
|
||||||
|
- name: Download firefox
|
||||||
|
run: |
|
||||||
|
git config --global core.safecrlf false
|
||||||
|
pnpm surfer download
|
||||||
|
|
||||||
|
- name: Generate
|
||||||
|
run: |
|
||||||
|
ls
|
||||||
|
$Env:USE_MINTTY = "0"
|
||||||
|
|
||||||
|
$workspace_dir_current = [regex]::replace($env:GITHUB_WORKSPACE, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\","/"
|
||||||
|
$workspace_dir = $workspace_dir_current + "/engine"
|
||||||
|
echo $workspace_dir
|
||||||
|
|
||||||
|
echo "cd $workspace_dir" '' >> mozilla-build-run.sh
|
||||||
|
echo 'export PATH=/c/mozilla-build/msys2/usr/bin:$PATH' '' >> mozilla-build-run.sh
|
||||||
|
echo './mach --no-interactive bootstrap --application-choice browser' '' >> mozilla-build-run.sh
|
||||||
|
echo 'ls /c/Users/runneradmin/.mozbuild/clang/bin' '' >> mozilla-build-run.sh
|
||||||
|
echo 'LLVM_PROFDATA=/c/Users/runneradmin/.mozbuild/clang/bin/llvm-profdata.exe JARLOG_FILE=en-US.log ./mach python build/pgo/profileserver.py --binary /c/artifact/zen/zen.exe' '' >> mozilla-build-run.sh
|
||||||
|
C:\mozilla-build\start-shell.bat $workspace_dir_current\mozilla-build-run.sh
|
||||||
|
|
||||||
|
- name: 🐛 Debug Session
|
||||||
|
if: ${{ failure() }}
|
||||||
|
uses: Warpbuilds/gha-debug@v1.3
|
||||||
|
timeout-minutes: 15
|
||||||
|
|
||||||
|
- name: Publish merged.profdata
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
path: merged-${{ matrix.generic == true && 'generic' || 'specific' }}.profdata
|
||||||
|
|
||||||
|
- name: Publish en-US.log
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
path: en-US-${{ matrix.generic == true && 'generic' || 'specific' }}.log
|
||||||
|
|
14
AppDir/AppRun
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
SELF=$(readlink -f "$0")
|
||||||
|
HERE=${SELF%/*}
|
||||||
|
export PATH="${HERE}:${HERE}/usr/bin/:${HERE}/usr/sbin/:${HERE}/usr/games/:${HERE}/bin/:${HERE}/sbin/${PATH:+:$PATH}"
|
||||||
|
export LD_LIBRARY_PATH="${HERE}/usr/lib/:${HERE}/usr/lib/i386-linux-gnu/:${HERE}/usr/lib/x86_64-linux-gnu/:${HERE}/usr/lib32/:${HERE}/usr/lib64/:${HERE}/lib/:${HERE}/lib/i386-linux-gnu/:${HERE}/lib/x86_64-linux-gnu/:${HERE}/lib32/:${HERE}/lib64/${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"
|
||||||
|
export PYTHONPATH="${HERE}/usr/share/pyshared/${PYTHONPATH:+:$PYTHONPATH}"
|
||||||
|
export MOZ_LEGACY_PROFILES=1 # Prevent per installation profiles
|
||||||
|
DEFAULT_XDG_DATA_DIRS='./share/:/usr/share/gnome:/usr/local/share/:/usr/share/'
|
||||||
|
export XDG_DATA_DIRS="${HERE}/usr/share/:${XDG_DATA_DIRS:-$DEFAULT_XDG_DATA_DIRS}"
|
||||||
|
export PERLLIB="${HERE}/usr/share/perl5/:${HERE}/usr/lib/perl5/${PERLLIB:+:$PERLLIB}"
|
||||||
|
export GSETTINGS_SCHEMA_DIR="${HERE}/usr/share/glib-2.0/schemas/${GSETTINGS_SCHEMA_DIR:+:$GSETTINGS_SCHEMA_DIR}"
|
||||||
|
export QT_PLUGIN_PATH="${HERE}/usr/lib/qt4/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt4/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt4/plugins/:${HERE}/usr/lib32/qt4/plugins/:${HERE}/usr/lib64/qt4/plugins/:${HERE}/usr/lib/qt5/plugins/:${HERE}/usr/lib/i386-linux-gnu/qt5/plugins/:${HERE}/usr/lib/x86_64-linux-gnu/qt5/plugins/:${HERE}/usr/lib32/qt5/plugins/:${HERE}/usr/lib64/qt5/plugins/${QT_PLUGIN_PATH:+:$QT_PLUGIN_PATH}"
|
||||||
|
EXEC=$(grep -e '^Exec=.*' "${HERE}"/*.desktop | head -n 1 | cut -d "=" -f 2 | cut -d " " -f 1)
|
||||||
|
exec "${EXEC}" "$@"
|
8
AppDir/distribution/policies.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"policies": {
|
||||||
|
"DisableAppUpdate": true,
|
||||||
|
"AppAutoUpdate": false,
|
||||||
|
"ManualAppUpdateOnly": true,
|
||||||
|
"BackgroundAppUpdate": false
|
||||||
|
}
|
||||||
|
}
|
25
AppDir/zen.desktop
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Zen Browser
|
||||||
|
Exec=zen %u
|
||||||
|
Icon=zen
|
||||||
|
Type=Application
|
||||||
|
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
||||||
|
StartupWMClass=LibreWolf
|
||||||
|
Categories=Network;WebBrowser;
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
X-MultipleArgs=false
|
||||||
|
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||||
|
Actions=new-window;new-private-window;profilemanager;
|
||||||
|
|
||||||
|
[Desktop Action new-window]
|
||||||
|
Name=Open a New Window
|
||||||
|
Exec=zen %u
|
||||||
|
|
||||||
|
[Desktop Action new-private-window]
|
||||||
|
Name=Open a New Private Window
|
||||||
|
Exec=zen --private-window %u
|
||||||
|
|
||||||
|
[Desktop Action profilemanager]
|
||||||
|
Name=Open the Profile Manager
|
||||||
|
Exec=zen --ProfileManager %u
|
373
LICENSE
Normal file
@@ -0,0 +1,373 @@
|
|||||||
|
Mozilla Public License Version 2.0
|
||||||
|
==================================
|
||||||
|
|
||||||
|
1. Definitions
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1.1. "Contributor"
|
||||||
|
means each individual or legal entity that creates, contributes to
|
||||||
|
the creation of, or owns Covered Software.
|
||||||
|
|
||||||
|
1.2. "Contributor Version"
|
||||||
|
means the combination of the Contributions of others (if any) used
|
||||||
|
by a Contributor and that particular Contributor's Contribution.
|
||||||
|
|
||||||
|
1.3. "Contribution"
|
||||||
|
means Covered Software of a particular Contributor.
|
||||||
|
|
||||||
|
1.4. "Covered Software"
|
||||||
|
means Source Code Form to which the initial Contributor has attached
|
||||||
|
the notice in Exhibit A, the Executable Form of such Source Code
|
||||||
|
Form, and Modifications of such Source Code Form, in each case
|
||||||
|
including portions thereof.
|
||||||
|
|
||||||
|
1.5. "Incompatible With Secondary Licenses"
|
||||||
|
means
|
||||||
|
|
||||||
|
(a) that the initial Contributor has attached the notice described
|
||||||
|
in Exhibit B to the Covered Software; or
|
||||||
|
|
||||||
|
(b) that the Covered Software was made available under the terms of
|
||||||
|
version 1.1 or earlier of the License, but not also under the
|
||||||
|
terms of a Secondary License.
|
||||||
|
|
||||||
|
1.6. "Executable Form"
|
||||||
|
means any form of the work other than Source Code Form.
|
||||||
|
|
||||||
|
1.7. "Larger Work"
|
||||||
|
means a work that combines Covered Software with other material, in
|
||||||
|
a separate file or files, that is not Covered Software.
|
||||||
|
|
||||||
|
1.8. "License"
|
||||||
|
means this document.
|
||||||
|
|
||||||
|
1.9. "Licensable"
|
||||||
|
means having the right to grant, to the maximum extent possible,
|
||||||
|
whether at the time of the initial grant or subsequently, any and
|
||||||
|
all of the rights conveyed by this License.
|
||||||
|
|
||||||
|
1.10. "Modifications"
|
||||||
|
means any of the following:
|
||||||
|
|
||||||
|
(a) any file in Source Code Form that results from an addition to,
|
||||||
|
deletion from, or modification of the contents of Covered
|
||||||
|
Software; or
|
||||||
|
|
||||||
|
(b) any new file in Source Code Form that contains any Covered
|
||||||
|
Software.
|
||||||
|
|
||||||
|
1.11. "Patent Claims" of a Contributor
|
||||||
|
means any patent claim(s), including without limitation, method,
|
||||||
|
process, and apparatus claims, in any patent Licensable by such
|
||||||
|
Contributor that would be infringed, but for the grant of the
|
||||||
|
License, by the making, using, selling, offering for sale, having
|
||||||
|
made, import, or transfer of either its Contributions or its
|
||||||
|
Contributor Version.
|
||||||
|
|
||||||
|
1.12. "Secondary License"
|
||||||
|
means either the GNU General Public License, Version 2.0, the GNU
|
||||||
|
Lesser General Public License, Version 2.1, the GNU Affero General
|
||||||
|
Public License, Version 3.0, or any later versions of those
|
||||||
|
licenses.
|
||||||
|
|
||||||
|
1.13. "Source Code Form"
|
||||||
|
means the form of the work preferred for making modifications.
|
||||||
|
|
||||||
|
1.14. "You" (or "Your")
|
||||||
|
means an individual or a legal entity exercising rights under this
|
||||||
|
License. For legal entities, "You" includes any entity that
|
||||||
|
controls, is controlled by, or is under common control with You. For
|
||||||
|
purposes of this definition, "control" means (a) the power, direct
|
||||||
|
or indirect, to cause the direction or management of such entity,
|
||||||
|
whether by contract or otherwise, or (b) ownership of more than
|
||||||
|
fifty percent (50%) of the outstanding shares or beneficial
|
||||||
|
ownership of such entity.
|
||||||
|
|
||||||
|
2. License Grants and Conditions
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
2.1. Grants
|
||||||
|
|
||||||
|
Each Contributor hereby grants You a world-wide, royalty-free,
|
||||||
|
non-exclusive license:
|
||||||
|
|
||||||
|
(a) under intellectual property rights (other than patent or trademark)
|
||||||
|
Licensable by such Contributor to use, reproduce, make available,
|
||||||
|
modify, display, perform, distribute, and otherwise exploit its
|
||||||
|
Contributions, either on an unmodified basis, with Modifications, or
|
||||||
|
as part of a Larger Work; and
|
||||||
|
|
||||||
|
(b) under Patent Claims of such Contributor to make, use, sell, offer
|
||||||
|
for sale, have made, import, and otherwise transfer either its
|
||||||
|
Contributions or its Contributor Version.
|
||||||
|
|
||||||
|
2.2. Effective Date
|
||||||
|
|
||||||
|
The licenses granted in Section 2.1 with respect to any Contribution
|
||||||
|
become effective for each Contribution on the date the Contributor first
|
||||||
|
distributes such Contribution.
|
||||||
|
|
||||||
|
2.3. Limitations on Grant Scope
|
||||||
|
|
||||||
|
The licenses granted in this Section 2 are the only rights granted under
|
||||||
|
this License. No additional rights or licenses will be implied from the
|
||||||
|
distribution or licensing of Covered Software under this License.
|
||||||
|
Notwithstanding Section 2.1(b) above, no patent license is granted by a
|
||||||
|
Contributor:
|
||||||
|
|
||||||
|
(a) for any code that a Contributor has removed from Covered Software;
|
||||||
|
or
|
||||||
|
|
||||||
|
(b) for infringements caused by: (i) Your and any other third party's
|
||||||
|
modifications of Covered Software, or (ii) the combination of its
|
||||||
|
Contributions with other software (except as part of its Contributor
|
||||||
|
Version); or
|
||||||
|
|
||||||
|
(c) under Patent Claims infringed by Covered Software in the absence of
|
||||||
|
its Contributions.
|
||||||
|
|
||||||
|
This License does not grant any rights in the trademarks, service marks,
|
||||||
|
or logos of any Contributor (except as may be necessary to comply with
|
||||||
|
the notice requirements in Section 3.4).
|
||||||
|
|
||||||
|
2.4. Subsequent Licenses
|
||||||
|
|
||||||
|
No Contributor makes additional grants as a result of Your choice to
|
||||||
|
distribute the Covered Software under a subsequent version of this
|
||||||
|
License (see Section 10.2) or under the terms of a Secondary License (if
|
||||||
|
permitted under the terms of Section 3.3).
|
||||||
|
|
||||||
|
2.5. Representation
|
||||||
|
|
||||||
|
Each Contributor represents that the Contributor believes its
|
||||||
|
Contributions are its original creation(s) or it has sufficient rights
|
||||||
|
to grant the rights to its Contributions conveyed by this License.
|
||||||
|
|
||||||
|
2.6. Fair Use
|
||||||
|
|
||||||
|
This License is not intended to limit any rights You have under
|
||||||
|
applicable copyright doctrines of fair use, fair dealing, or other
|
||||||
|
equivalents.
|
||||||
|
|
||||||
|
2.7. Conditions
|
||||||
|
|
||||||
|
Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
|
||||||
|
in Section 2.1.
|
||||||
|
|
||||||
|
3. Responsibilities
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
3.1. Distribution of Source Form
|
||||||
|
|
||||||
|
All distribution of Covered Software in Source Code Form, including any
|
||||||
|
Modifications that You create or to which You contribute, must be under
|
||||||
|
the terms of this License. You must inform recipients that the Source
|
||||||
|
Code Form of the Covered Software is governed by the terms of this
|
||||||
|
License, and how they can obtain a copy of this License. You may not
|
||||||
|
attempt to alter or restrict the recipients' rights in the Source Code
|
||||||
|
Form.
|
||||||
|
|
||||||
|
3.2. Distribution of Executable Form
|
||||||
|
|
||||||
|
If You distribute Covered Software in Executable Form then:
|
||||||
|
|
||||||
|
(a) such Covered Software must also be made available in Source Code
|
||||||
|
Form, as described in Section 3.1, and You must inform recipients of
|
||||||
|
the Executable Form how they can obtain a copy of such Source Code
|
||||||
|
Form by reasonable means in a timely manner, at a charge no more
|
||||||
|
than the cost of distribution to the recipient; and
|
||||||
|
|
||||||
|
(b) You may distribute such Executable Form under the terms of this
|
||||||
|
License, or sublicense it under different terms, provided that the
|
||||||
|
license for the Executable Form does not attempt to limit or alter
|
||||||
|
the recipients' rights in the Source Code Form under this License.
|
||||||
|
|
||||||
|
3.3. Distribution of a Larger Work
|
||||||
|
|
||||||
|
You may create and distribute a Larger Work under terms of Your choice,
|
||||||
|
provided that You also comply with the requirements of this License for
|
||||||
|
the Covered Software. If the Larger Work is a combination of Covered
|
||||||
|
Software with a work governed by one or more Secondary Licenses, and the
|
||||||
|
Covered Software is not Incompatible With Secondary Licenses, this
|
||||||
|
License permits You to additionally distribute such Covered Software
|
||||||
|
under the terms of such Secondary License(s), so that the recipient of
|
||||||
|
the Larger Work may, at their option, further distribute the Covered
|
||||||
|
Software under the terms of either this License or such Secondary
|
||||||
|
License(s).
|
||||||
|
|
||||||
|
3.4. Notices
|
||||||
|
|
||||||
|
You may not remove or alter the substance of any license notices
|
||||||
|
(including copyright notices, patent notices, disclaimers of warranty,
|
||||||
|
or limitations of liability) contained within the Source Code Form of
|
||||||
|
the Covered Software, except that You may alter any license notices to
|
||||||
|
the extent required to remedy known factual inaccuracies.
|
||||||
|
|
||||||
|
3.5. Application of Additional Terms
|
||||||
|
|
||||||
|
You may choose to offer, and to charge a fee for, warranty, support,
|
||||||
|
indemnity or liability obligations to one or more recipients of Covered
|
||||||
|
Software. However, You may do so only on Your own behalf, and not on
|
||||||
|
behalf of any Contributor. You must make it absolutely clear that any
|
||||||
|
such warranty, support, indemnity, or liability obligation is offered by
|
||||||
|
You alone, and You hereby agree to indemnify every Contributor for any
|
||||||
|
liability incurred by such Contributor as a result of warranty, support,
|
||||||
|
indemnity or liability terms You offer. You may include additional
|
||||||
|
disclaimers of warranty and limitations of liability specific to any
|
||||||
|
jurisdiction.
|
||||||
|
|
||||||
|
4. Inability to Comply Due to Statute or Regulation
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
If it is impossible for You to comply with any of the terms of this
|
||||||
|
License with respect to some or all of the Covered Software due to
|
||||||
|
statute, judicial order, or regulation then You must: (a) comply with
|
||||||
|
the terms of this License to the maximum extent possible; and (b)
|
||||||
|
describe the limitations and the code they affect. Such description must
|
||||||
|
be placed in a text file included with all distributions of the Covered
|
||||||
|
Software under this License. Except to the extent prohibited by statute
|
||||||
|
or regulation, such description must be sufficiently detailed for a
|
||||||
|
recipient of ordinary skill to be able to understand it.
|
||||||
|
|
||||||
|
5. Termination
|
||||||
|
--------------
|
||||||
|
|
||||||
|
5.1. The rights granted under this License will terminate automatically
|
||||||
|
if You fail to comply with any of its terms. However, if You become
|
||||||
|
compliant, then the rights granted under this License from a particular
|
||||||
|
Contributor are reinstated (a) provisionally, unless and until such
|
||||||
|
Contributor explicitly and finally terminates Your grants, and (b) on an
|
||||||
|
ongoing basis, if such Contributor fails to notify You of the
|
||||||
|
non-compliance by some reasonable means prior to 60 days after You have
|
||||||
|
come back into compliance. Moreover, Your grants from a particular
|
||||||
|
Contributor are reinstated on an ongoing basis if such Contributor
|
||||||
|
notifies You of the non-compliance by some reasonable means, this is the
|
||||||
|
first time You have received notice of non-compliance with this License
|
||||||
|
from such Contributor, and You become compliant prior to 30 days after
|
||||||
|
Your receipt of the notice.
|
||||||
|
|
||||||
|
5.2. If You initiate litigation against any entity by asserting a patent
|
||||||
|
infringement claim (excluding declaratory judgment actions,
|
||||||
|
counter-claims, and cross-claims) alleging that a Contributor Version
|
||||||
|
directly or indirectly infringes any patent, then the rights granted to
|
||||||
|
You by any and all Contributors for the Covered Software under Section
|
||||||
|
2.1 of this License shall terminate.
|
||||||
|
|
||||||
|
5.3. In the event of termination under Sections 5.1 or 5.2 above, all
|
||||||
|
end user license agreements (excluding distributors and resellers) which
|
||||||
|
have been validly granted by You or Your distributors under this License
|
||||||
|
prior to termination shall survive termination.
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 6. Disclaimer of Warranty *
|
||||||
|
* ------------------------- *
|
||||||
|
* *
|
||||||
|
* Covered Software is provided under this License on an "as is" *
|
||||||
|
* basis, without warranty of any kind, either expressed, implied, or *
|
||||||
|
* statutory, including, without limitation, warranties that the *
|
||||||
|
* Covered Software is free of defects, merchantable, fit for a *
|
||||||
|
* particular purpose or non-infringing. The entire risk as to the *
|
||||||
|
* quality and performance of the Covered Software is with You. *
|
||||||
|
* Should any Covered Software prove defective in any respect, You *
|
||||||
|
* (not any Contributor) assume the cost of any necessary servicing, *
|
||||||
|
* repair, or correction. This disclaimer of warranty constitutes an *
|
||||||
|
* essential part of this License. No use of any Covered Software is *
|
||||||
|
* authorized under this License except under this disclaimer. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
************************************************************************
|
||||||
|
* *
|
||||||
|
* 7. Limitation of Liability *
|
||||||
|
* -------------------------- *
|
||||||
|
* *
|
||||||
|
* Under no circumstances and under no legal theory, whether tort *
|
||||||
|
* (including negligence), contract, or otherwise, shall any *
|
||||||
|
* Contributor, or anyone who distributes Covered Software as *
|
||||||
|
* permitted above, be liable to You for any direct, indirect, *
|
||||||
|
* special, incidental, or consequential damages of any character *
|
||||||
|
* including, without limitation, damages for lost profits, loss of *
|
||||||
|
* goodwill, work stoppage, computer failure or malfunction, or any *
|
||||||
|
* and all other commercial damages or losses, even if such party *
|
||||||
|
* shall have been informed of the possibility of such damages. This *
|
||||||
|
* limitation of liability shall not apply to liability for death or *
|
||||||
|
* personal injury resulting from such party's negligence to the *
|
||||||
|
* extent applicable law prohibits such limitation. Some *
|
||||||
|
* jurisdictions do not allow the exclusion or limitation of *
|
||||||
|
* incidental or consequential damages, so this exclusion and *
|
||||||
|
* limitation may not apply to You. *
|
||||||
|
* *
|
||||||
|
************************************************************************
|
||||||
|
|
||||||
|
8. Litigation
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Any litigation relating to this License may be brought only in the
|
||||||
|
courts of a jurisdiction where the defendant maintains its principal
|
||||||
|
place of business and such litigation shall be governed by laws of that
|
||||||
|
jurisdiction, without reference to its conflict-of-law provisions.
|
||||||
|
Nothing in this Section shall prevent a party's ability to bring
|
||||||
|
cross-claims or counter-claims.
|
||||||
|
|
||||||
|
9. Miscellaneous
|
||||||
|
----------------
|
||||||
|
|
||||||
|
This License represents the complete agreement concerning the subject
|
||||||
|
matter hereof. If any provision of this License is held to be
|
||||||
|
unenforceable, such provision shall be reformed only to the extent
|
||||||
|
necessary to make it enforceable. Any law or regulation which provides
|
||||||
|
that the language of a contract shall be construed against the drafter
|
||||||
|
shall not be used to construe this License against a Contributor.
|
||||||
|
|
||||||
|
10. Versions of the License
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
10.1. New Versions
|
||||||
|
|
||||||
|
Mozilla Foundation is the license steward. Except as provided in Section
|
||||||
|
10.3, no one other than the license steward has the right to modify or
|
||||||
|
publish new versions of this License. Each version will be given a
|
||||||
|
distinguishing version number.
|
||||||
|
|
||||||
|
10.2. Effect of New Versions
|
||||||
|
|
||||||
|
You may distribute the Covered Software under the terms of the version
|
||||||
|
of the License under which You originally received the Covered Software,
|
||||||
|
or under the terms of any subsequent version published by the license
|
||||||
|
steward.
|
||||||
|
|
||||||
|
10.3. Modified Versions
|
||||||
|
|
||||||
|
If you create software not governed by this License, and you want to
|
||||||
|
create a new license for such software, you may create and use a
|
||||||
|
modified version of this License if you rename the license and remove
|
||||||
|
any references to the name of the license steward (except to note that
|
||||||
|
such modified license differs from this License).
|
||||||
|
|
||||||
|
10.4. Distributing Source Code Form that is Incompatible With Secondary
|
||||||
|
Licenses
|
||||||
|
|
||||||
|
If You choose to distribute Source Code Form that is Incompatible With
|
||||||
|
Secondary Licenses under the terms of this version of the License, the
|
||||||
|
notice described in Exhibit B of this License must be attached.
|
||||||
|
|
||||||
|
Exhibit A - Source Code Form License Notice
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
If it is not possible or desirable to put the notice in a particular
|
||||||
|
file, then You may include the notice in a location (such as a LICENSE
|
||||||
|
file in a relevant directory) where a recipient would be likely to look
|
||||||
|
for such a notice.
|
||||||
|
|
||||||
|
You may add additional accurate notices of copyright ownership.
|
||||||
|
|
||||||
|
Exhibit B - "Incompatible With Secondary Licenses" Notice
|
||||||
|
---------------------------------------------------------
|
||||||
|
|
||||||
|
This Source Code Form is "Incompatible With Secondary Licenses", as
|
||||||
|
defined by the Mozilla Public License, v. 2.0.
|
90
Performance.md
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
# 🌀 Zen Browser Performance traker
|
||||||
|
```mermaid
|
||||||
|
graph TD;
|
||||||
|
A[mauro-balades] -->B(Zen custom code)
|
||||||
|
G-->B
|
||||||
|
H(ptr1337/CachyOS)-->|AUR Pkg and Opt. flags|D
|
||||||
|
E(Fire Fox-Code)-->C
|
||||||
|
B --> C{Final code}
|
||||||
|
D-->G(Perf. Testing)
|
||||||
|
C-->D(Build)
|
||||||
|
D--> F(Release)
|
||||||
|
F-->I(mar)
|
||||||
|
F-->L(Mac)
|
||||||
|
F-->T(Linux)
|
||||||
|
F-->V(Win install)
|
||||||
|
V-->Z(Zip)
|
||||||
|
V-->Z2(Intall.exe)
|
||||||
|
I-->I1(windows.mar)
|
||||||
|
I-->I2(linux.mar)
|
||||||
|
I-->I3(macos.mar)
|
||||||
|
T-->T1(zen.linux.tar.bz2)
|
||||||
|
T-->T2(AUR)
|
||||||
|
T-->T3(Flatpak)
|
||||||
|
T-->T4(AppImage)
|
||||||
|
L-->L1(zen.macos.dmg)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Scores
|
||||||
|
|
||||||
|
## 1
|
||||||
|
- [NOCanoa ](https://github.com/NOCanoa)
|
||||||
|
|
||||||
|
OS: win 11; CPU: i5 13600k
|
||||||
|
|
||||||
|
## web.basemark
|
||||||
|
|
||||||
|
https://web.basemark.com/
|
||||||
|
|
||||||
|
| | score: |CSS | HTML5 | Page load and Responsiveness | Resize Cap. |
|
||||||
|
|-----------|-----|-----|-------|------------------------------|-------------|
|
||||||
|
| 1.0.0-a.10 | 1660.89 | 59% | 91% | 91% | 76% |
|
||||||
|
| 1.0.0-a.9 | 470 | why | why | why | why |
|
||||||
|
| 1.0.0-a.8 | 446.74 | 59% | 91% | 96% | 76% |
|
||||||
|
| 1.0.0-a.7 | 1964.43 | 59% | 91% | 91% | 76% |
|
||||||
|
| 1.0.0-a.6 | 1747.98 | 59% | 91% | 91% | 76% |
|
||||||
|
| 1.0.0-a.4 | 470.49 | 59% | 91% | 97% | 76% |
|
||||||
|
| 1.0.0-a.3 | 475.52 |59% | 91% | 97% | 76% |
|
||||||
|
| other | last | utpdate | 31/7 | 2024 | - |
|
||||||
|
| Librewolf 128.0-2 | 1953.65 | 59.66% | 89.01% | 91.72% | 76.12% |
|
||||||
|
| FF nightly 130.0a1 | 1912.77 | 59.66% | 90.91% | 91.72% | 76.12% |
|
||||||
|
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
xychart-beta
|
||||||
|
title "Performance over time (Higher is better)"
|
||||||
|
x-axis [.3, .4, .6, .7, .8, .9, .10]
|
||||||
|
y-axis "Benchmark Points"
|
||||||
|
bar [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89]
|
||||||
|
line [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Speedometer3.0
|
||||||
|
|
||||||
|
https://browserbench.org/Speedometer3.0/
|
||||||
|
|
||||||
|
| | score: |
|
||||||
|
|-----------|-----|
|
||||||
|
| 1.0.0-a.10 | 21.2 |
|
||||||
|
| others| - |
|
||||||
|
| Vivaldi 6.7.3329.39| 27.8 |
|
||||||
|
| FF nightly 130.0a1 | 27.0 |
|
||||||
|
| Librewolf 128.0-2 | 20.2 |
|
||||||
|
|
||||||
|
|
||||||
|
## 2
|
||||||
|
|
||||||
|
- [Verix](https://github.com/Veriiix)
|
||||||
|
|
||||||
|
OS: Win 11
|
||||||
|
CPU: i7-13700KF
|
||||||
|
GPU: AMD RX 7900 XTX
|
||||||
|
https://www.tablesgenerator.com/
|
||||||
|
|
||||||
|
| Version | Score: |
|
||||||
|
|------------|--------|
|
||||||
|
| 1.0.0-a.10 | 21.7 |
|
||||||
|
| 1.0.0-a.9 | 3.7 |
|
||||||
|
|
||||||
|
https://browserbench.org/Speedometer3.0/
|
16
README.md
@@ -3,9 +3,15 @@
|
|||||||
|
|
||||||
Experience tranquillity while browsing the web without people tracking you!
|
Experience tranquillity while browsing the web without people tracking you!
|
||||||
|
|
||||||
|
<a href='https://flathub.org/apps/io.github.zen_browser.zen'>
|
||||||
|
<img width='240' alt='Get it on Flathub' src='https://flathub.org/api/badge?locale=en'/>
|
||||||
|
</a>
|
||||||
|
|
||||||
# Compatibility
|
# Compatibility
|
||||||
|
|
||||||
Zen is currently built using firefox version `128.0`!
|
Zen is currently built using firefox version `128.0.3`!
|
||||||
|
|
||||||
|
* Checkout the latest [releases notes](https://get-zen.vercel.app/release-notes)!
|
||||||
|
|
||||||
## 🚀 Run Locally
|
## 🚀 Run Locally
|
||||||
|
|
||||||
@@ -25,7 +31,7 @@ npm i
|
|||||||
Download and bootstrap the browser
|
Download and bootstrap the browser
|
||||||
|
|
||||||
```
|
```
|
||||||
npm run bootstrap
|
npm run init
|
||||||
```
|
```
|
||||||
|
|
||||||
Start building the browser
|
Start building the browser
|
||||||
@@ -48,8 +54,12 @@ See `contributing.md` for ways to get started.
|
|||||||
|
|
||||||
Please adhere to this project's `code of conduct`.
|
Please adhere to this project's `code of conduct`.
|
||||||
|
|
||||||
|
## Special Thanks
|
||||||
|
|
||||||
|
- [Erlend](https://havn.blog) (For making the logo)
|
||||||
|
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[MPL LICENSE](https://choosealicense.com/licenses/mit/)
|
[MPL LICENSE](/LICENSE)
|
||||||
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
||||||
<rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
|
<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.
|
Sorry, your browser does not support inline SVG.
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 226 B |
BIN
configs/branding/alpha/logo-mac.png
Normal file
After Width: | Height: | Size: 483 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 889 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 890 B |
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.1 KiB |
@@ -1,4 +1,4 @@
|
|||||||
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg">
|
||||||
<rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />
|
<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.
|
Sorry, your browser does not support inline SVG.
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 225 B |
BIN
configs/branding/beta/logo-mac.png
Normal file
After Width: | Height: | Size: 483 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 889 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 890 B |
Before Width: | Height: | Size: 629 B After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 646 B After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 156 KiB |
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.1 KiB |
@@ -1,11 +1,8 @@
|
|||||||
|
|
||||||
# Browser branding
|
# Browser branding
|
||||||
ac_add_options --enable-update-channel=release
|
|
||||||
ac_add_options --without-wasm-sandboxed-libraries
|
|
||||||
|
|
||||||
# ac_add_options --with-branding=beta
|
|
||||||
|
|
||||||
ac_add_options --with-app-name=${binName}
|
ac_add_options --with-app-name=${binName}
|
||||||
|
ac_add_options --with-app-basename=Zen
|
||||||
|
ac_add_options --enable-official-branding
|
||||||
|
|
||||||
export MOZ_USER_DIR="${name}"
|
export MOZ_USER_DIR="${name}"
|
||||||
export MOZ_APP_VENDOR="${vendor}"
|
export MOZ_APP_VENDOR="${vendor}"
|
||||||
export MOZ_APP_BASENAME=Zen
|
export MOZ_APP_BASENAME=Zen
|
||||||
@@ -13,45 +10,88 @@ export MOZ_APP_PROFILE=${binName}
|
|||||||
export MOZ_APP_DISPLAYNAME="${name}"
|
export MOZ_APP_DISPLAYNAME="${name}"
|
||||||
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
||||||
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
||||||
export MOZ_MACBUNDLE_ID=${appId}
|
|
||||||
export MOZ_DISTRIBUTION_ID=${appId}
|
export MOZ_DISTRIBUTION_ID=${appId}
|
||||||
|
|
||||||
# Uncomment if builds are too resource hungry
|
# Uncomment if builds are too resource hungry
|
||||||
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
||||||
#ac_add_options --enable-linker=gold
|
# ac_add_options --enable-linker=gold
|
||||||
|
|
||||||
# Misc
|
# Misc
|
||||||
export MOZ_STUB_INSTALLER=1
|
export MOZ_STUB_INSTALLER=1
|
||||||
export MOZ_INCLUDE_SOURCE_INFO=1
|
|
||||||
export MOZ_SOURCE_REPO=https://github.com/zen-browser/desktop
|
export MOZ_SOURCE_REPO=https://github.com/zen-browser/desktop
|
||||||
export MOZ_SOURCE_CHANGESET=${changeset}
|
export MOZ_SOURCE_CHANGESET=${changeset}
|
||||||
|
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||||
ac_add_options --enable-bootstrap
|
|
||||||
|
|
||||||
ac_add_options --enable-application=browser
|
ac_add_options --enable-application=browser
|
||||||
ac_add_options --enable-hardening
|
|
||||||
ac_add_options --enable-rust-simd
|
|
||||||
ac_add_options --enable-release
|
|
||||||
ac_add_options --enable-optimize
|
|
||||||
ac_add_options --with-ccache=sccache
|
|
||||||
ac_add_options --disable-debug
|
|
||||||
|
|
||||||
ac_add_options --disable-crashreporter
|
if test "$ZEN_RELEASE"; then
|
||||||
ac_add_options --disable-dmd
|
ac_add_options --enable-bootstrap
|
||||||
ac_add_options --disable-geckodriver
|
|
||||||
ac_add_options --disable-parental-controls
|
ac_add_options --enable-release
|
||||||
ac_add_options --disable-profiling
|
ac_add_options --disable-debug
|
||||||
ac_add_options --disable-tests
|
ac_add_options --disable-debug-symbols
|
||||||
|
ac_add_options --disable-debug-js-modules
|
||||||
|
ac_add_options --disable-tests
|
||||||
|
ac_add_options --disable-jprof
|
||||||
|
|
||||||
|
ac_add_options --enable-rust-simd
|
||||||
|
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||||
|
|
||||||
|
ac_add_options --enable-proxy-bypass-protection
|
||||||
|
ac_add_options --enable-hardening
|
||||||
|
ac_add_options --disable-profiling
|
||||||
|
|
||||||
|
ac_add_options --disable-crashreporter
|
||||||
|
ac_add_options --disable-geckodriver
|
||||||
|
ac_add_options --disable-rust-tests
|
||||||
|
ac_add_options --disable-default-browser-agent
|
||||||
|
|
||||||
|
ac_add_options --disable-vtune
|
||||||
|
|
||||||
|
if ! test "$ZEN_DISABLE_LTO"; then
|
||||||
|
export MOZ_LTO=1
|
||||||
|
ac_add_options MOZ_LTO=1
|
||||||
|
ac_add_options --enable-lto=full,cross
|
||||||
|
fi
|
||||||
|
|
||||||
|
ac_add_options --enable-jemalloc
|
||||||
|
|
||||||
|
mk_add_options MOZILLA_OFFICIAL=1
|
||||||
|
MOZILLA_OFFICIAL=1
|
||||||
|
export MOZILLA_OFFICIAL=1
|
||||||
|
|
||||||
|
mk_add_options MOZ_OPTIMIZE=2
|
||||||
|
MOZ_OPTIMIZE=2
|
||||||
|
export MOZ_OPTIMIZE=2
|
||||||
|
|
||||||
|
export OPT_LEVEL="3"
|
||||||
|
ac_add_options OPT_LEVEL="3"
|
||||||
|
|
||||||
|
export RUSTC_OPT_LEVEL="3"
|
||||||
|
ac_add_options RUSTC_OPT_LEVEL="3"
|
||||||
|
|
||||||
|
mk_add_options AUTOCLOBBER=1
|
||||||
|
export AUTOCLOBBER=1
|
||||||
|
|
||||||
|
ac_add_options --enable-updater
|
||||||
|
|
||||||
|
export MOZ_PACKAGE_JSSHELL=1
|
||||||
|
fi
|
||||||
|
|
||||||
ac_add_options --enable-unverified-updates
|
ac_add_options --enable-unverified-updates
|
||||||
ac_add_options --enable-updater
|
|
||||||
|
|
||||||
ac_add_options --without-wasm-sandboxed-libraries
|
ac_add_options --enable-raw
|
||||||
|
ac_add_options --enable-webrtc
|
||||||
|
ac_add_options --enable-jxl
|
||||||
|
ac_add_options --enable-av1
|
||||||
|
ac_add_options --enable-eme=widevine
|
||||||
|
|
||||||
export MOZ_REQUIRE_SIGNING=
|
ac_add_options --allow-addon-sideload
|
||||||
export MOZ_TELEMETRY_REPORTING=
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
|
||||||
ac_add_options --target=x86_64-pc-linux-gnu
|
mk_add_options MOZ_CRASHREPORTER=0
|
||||||
|
mk_add_options MOZ_DATA_REPORTING=0
|
||||||
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
mk_add_options MOZ_SERVICES_HEALTHREPORT=0
|
||||||
|
mk_add_options MOZ_TELEMETRY_REPORTING=0
|
||||||
|
|
||||||
|
export MOZ_APP_UA_NAME="Firefox"
|
||||||
|
@@ -1,27 +1,51 @@
|
|||||||
|
|
||||||
# not when cross compiling
|
if test -d "$HOME/.mozbuild/clang/bin"; then
|
||||||
if ! test "$ZEN_CROSS_COMPILING"; then
|
export CC="$HOME"/.mozbuild/clang/bin/clang
|
||||||
if test "$ZEN_RELEASE"; then
|
export CXX="$HOME"/.mozbuild/clang/bin/clang++
|
||||||
ac_add_options --enable-optimize="-march=x86-64 -msse3 -mtune=haswell -O3 -w"
|
else
|
||||||
ac_add_options --enable-release
|
export CC=clang
|
||||||
ac_add_options --enable-rust-simd
|
export CXX=clang++
|
||||||
ac_add_options RUSTC_OPT_LEVEL=3
|
|
||||||
export MOZILLA_OFFICIAL=1
|
|
||||||
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=x86-64"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -d "$HOME/.mozbuild/clang/bin"; then
|
|
||||||
export CC="$HOME"/.mozbuild/clang/bin/clang
|
|
||||||
export CXX="$HOME"/.mozbuild/clang/bin/clang++
|
|
||||||
else
|
|
||||||
export CC=clang
|
|
||||||
export CXX=clang++
|
|
||||||
fi
|
|
||||||
|
|
||||||
ac_add_options --enable-linker=lld
|
|
||||||
ac_add_options --enable-strip
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Disable telemetry and tracking
|
if test "$ZEN_RELEASE"; then
|
||||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
|
||||||
mk_add_options MOZ_DATA_REPORTING=
|
ac_add_options --disable-dmd
|
||||||
|
ac_add_options --enable-linker=lld
|
||||||
|
ac_add_options --disable-elf-hack
|
||||||
|
|
||||||
|
ac_add_options --enable-install-strip
|
||||||
|
ac_add_options --enable-strip
|
||||||
|
export STRIP_FLAGS="--strip-debug --strip-unneeded"
|
||||||
|
|
||||||
|
if [ -f /home/runner/.mozbuild/sccache/sccache ]; then
|
||||||
|
mk_add_options 'export RUSTC_WRAPPER=/home/runner/.mozbuild/sccache/sccache'
|
||||||
|
mk_add_options 'export CCACHE_CPP2=yes'
|
||||||
|
ac_add_options --with-ccache=/home/runner/.mozbuild/sccache/sccache
|
||||||
|
mk_add_options 'export SCCACHE_GHA_ENABLED=on'
|
||||||
|
fi
|
||||||
|
|
||||||
|
export MOZ_PGO=1
|
||||||
|
ac_add_options MOZ_PGO=1
|
||||||
|
|
||||||
|
if test "$SURFER_COMPAT" = "true"; then
|
||||||
|
ac_add_options --enable-optimize="-O3 -march=x86-64"
|
||||||
|
|
||||||
|
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||||
|
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||||
|
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64"
|
||||||
|
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64 -C codegen-units=1"
|
||||||
|
else
|
||||||
|
ac_add_options --enable-wasm-avx
|
||||||
|
ac_add_options --enable-optimize="-O3 -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
||||||
|
|
||||||
|
export CFLAGS="$CFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
||||||
|
export CPPFLAGS="$CPPFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
||||||
|
export CXXFLAGS="$CXXFLAGS -O3 -ffp-contract=fast -march=x86-64-v3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes"
|
||||||
|
export LDFLAGS="$LDFLAGS -Wl,-O3 -Wl,-mllvm,-fp-contract=fast -march=x86-64-v3"
|
||||||
|
export RUSTFLAGS="$RUSTFLAGS -C target-cpu=x86-64-v3 -C target-feature=+sse4.1 -C target-feature=+avx2 -C codegen-units=1"
|
||||||
|
fi
|
||||||
|
export VERBOSE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ac_add_options --target=x86_64-pc-linux
|
||||||
|
@@ -1,14 +1,35 @@
|
|||||||
# Optimise builds
|
|
||||||
ac_add_options --enable-application=browser
|
|
||||||
ac_add_options --enable-hardening
|
|
||||||
ac_add_options --enable-rust-simd
|
|
||||||
ac_add_options --enable-release
|
|
||||||
ac_add_options --enable-optimize
|
|
||||||
ac_add_options --with-ccache=sccache
|
|
||||||
ac_add_options --disable-debug
|
|
||||||
ac_add_options --enable-updater
|
|
||||||
mk_add_options MOZ_MAKE_FLAGS="-j4"
|
|
||||||
|
|
||||||
# Disable telemetry and tracking
|
# SURFER_COMPAT has a different meaning here, in macOS it means that the build is for
|
||||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
# x86_64, not ARM64.
|
||||||
mk_add_options MOZ_DATA_REPORTING=
|
unset MOZ_STDCXX_COMPAT
|
||||||
|
|
||||||
|
ac_add_options --disable-dmd
|
||||||
|
|
||||||
|
export MOZ_MACBUNDLE_ID=${appId}
|
||||||
|
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
||||||
|
|
||||||
|
if test "$SURFER_COMPAT" = "true"; then
|
||||||
|
export MOZ_PGO=1
|
||||||
|
ac_add_options MOZ_PGO=1
|
||||||
|
ac_add_options --target=x86_64-apple-darwin
|
||||||
|
|
||||||
|
ac_add_options --enable-wasm-avx
|
||||||
|
ac_add_options --enable-optimize="-march=nehalem -mtune=haswell -O3 -w"
|
||||||
|
|
||||||
|
export CFLAGS="-O3 -march=x86-64-v3"
|
||||||
|
export CPPFLAGS="-O3 -march=x86-64-v3"
|
||||||
|
export CXXFLAGS="-O3 -march=x86-64-v3"
|
||||||
|
export LDFLAGS="-Wl,-O3 -march=x86-64-v3"
|
||||||
|
export RUSTFLAGS="-Ctarget-cpu=nehalem -C codegen-units=1"
|
||||||
|
else
|
||||||
|
ac_add_options --target=aarch64-apple-darwin
|
||||||
|
|
||||||
|
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
|
||||||
|
|
||||||
|
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
|
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
|
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
|
export LDFLAGS="-Wl,-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
|
||||||
|
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
|
||||||
|
fi
|
||||||
|
export VERBOSE=1
|
||||||
|
@@ -1,6 +1,72 @@
|
|||||||
|
|
||||||
ac_add_options --enable-js-shell
|
if test "$ZEN_CROSS_COMPILING"; then
|
||||||
|
|
||||||
# Disable telemetry and tracking
|
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
||||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
|
||||||
mk_add_options MOZ_DATA_REPORTING=
|
export MIDL="$(echo ~)/win-cross/wine/bin/widl"
|
||||||
|
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
||||||
|
export WINEDEBUG=-all
|
||||||
|
|
||||||
|
export MOZ_STUB_INSTALLER=1
|
||||||
|
export MOZ_PKG_FORMAT=TAR
|
||||||
|
|
||||||
|
export CROSS_BUILD=1
|
||||||
|
CROSS_COMPILE=1
|
||||||
|
TOOLS=$(echo ~)/win-cross
|
||||||
|
|
||||||
|
#export WIN32_REDIST_DIR="$TOOLS"/vs2022/VC/Redist/MSVC/14.34.31931/x64/Microsoft.VC143.CRT
|
||||||
|
#export WIN_UCRT_REDIST_DIR="$TOOLS/vs2022/Windows Kits/10/Redist/10.0.22621.0/ucrt/DLLs/x64"
|
||||||
|
|
||||||
|
export MIDL="$TOOLS/wine/bin/widl"
|
||||||
|
export MOZ_INCLUDE_SOURCE_INFO=1
|
||||||
|
export MOZ_STUB_INSTALLER=1
|
||||||
|
export WINEDEBUG=-all
|
||||||
|
export WINE="$TOOLS/wine/bin/wine64"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||||
|
#? https://phabricator.services.mozilla.com/D170170
|
||||||
|
ac_add_options --target=x86_64-pc-windows-msvc
|
||||||
|
|
||||||
|
ac_add_options --disable-maintenance-service
|
||||||
|
ac_add_options --disable-bits-download
|
||||||
|
|
||||||
|
ac_add_options --without-wasm-sandboxed-libraries
|
||||||
|
|
||||||
|
ac_add_options --enable-wasm-avx
|
||||||
|
if test "$SURFER_COMPAT" = "true"; then
|
||||||
|
ac_add_options --enable-optimize="-O3 -mavx -maes -w -ftree-vectorize"
|
||||||
|
|
||||||
|
export CFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
||||||
|
export CPPFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
||||||
|
export CXXFLAGS="-mavx -maes -mtune=haswell -march=x86-64"
|
||||||
|
export LDFLAGS="-Wl,-O3"
|
||||||
|
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64"
|
||||||
|
else
|
||||||
|
ac_add_options --enable-optimize="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -Xclang -ftree-vectorize -w"
|
||||||
|
ac_add_options --enable-wasm-avx
|
||||||
|
|
||||||
|
export CFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes /arch:AVX -march=x86-64-v3"
|
||||||
|
export CPPFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes /arch:AVX -march=x86-64-v3"
|
||||||
|
export CXXFLAGS="-O2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes /arch:AVX -march=x86-64-v3"
|
||||||
|
export LDFLAGS="-Wl,-O3 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -maes -march=x86-64-v3"
|
||||||
|
export RUSTFLAGS="-C target-feature=+avx -C codegen-units=1 -Ctarget-cpu=x86-64-v3"
|
||||||
|
fi
|
||||||
|
export POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
|
export VERBOSE=1
|
||||||
|
|
||||||
|
#if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||||
|
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||||
|
# ac_add_options --enable-profile-generate=cross
|
||||||
|
#else
|
||||||
|
# ac_add_options --enable-profile-use=cross
|
||||||
|
# if test "$SURFER_COMPAT" = "true"; then
|
||||||
|
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-generic.profdata
|
||||||
|
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-generic.log
|
||||||
|
# else
|
||||||
|
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged-specific.profdata
|
||||||
|
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US-specific.log
|
||||||
|
# fi
|
||||||
|
#fi
|
||||||
|
|
||||||
|
13
docs/changes.md
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
|
||||||
|
## Changed things that should be tested each release
|
||||||
|
|
||||||
|
* Workspaces
|
||||||
|
* Sidebar
|
||||||
|
* Split views
|
||||||
|
* Vertical tabs (expanded and not expanded)
|
||||||
|
* Tab groups
|
||||||
|
* Welcome Page
|
||||||
|
* Overall performance
|
||||||
|
* Overall stability
|
||||||
|
* Pinning tabs (Grid layout)
|
||||||
|
* Overall UX
|
19
docs/workspaces.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
|
||||||
|
# Workspaces Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"workspaces": [
|
||||||
|
{
|
||||||
|
"uuid": "uuid1",
|
||||||
|
"name": "workspace1",
|
||||||
|
"icon": "icon1",
|
||||||
|
"default": true
|
||||||
|
},
|
||||||
|
...
|
||||||
|
]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
||||||
|
|
||||||
|
We will make use of firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
@@ -8,11 +8,12 @@
|
|||||||
"start": "cd engine && ./mach run --noprofile",
|
"start": "cd engine && ./mach run --noprofile",
|
||||||
"import": "surfer import",
|
"import": "surfer import",
|
||||||
"export": "surfer export",
|
"export": "surfer export",
|
||||||
|
"init": "npm run bootstrap && npm run import",
|
||||||
"bootstrap": "surfer download && surfer bootstrap",
|
"bootstrap": "surfer download && surfer bootstrap",
|
||||||
"package": "surfer package",
|
"package": "surfer package",
|
||||||
"update-ff": "python3 scripts/update_ff.py",
|
"update-ff": "python3 scripts/update_ff.py",
|
||||||
"update-ff:raw": "surfer update",
|
"update-ff:raw": "surfer update",
|
||||||
"update-newtab": "python3 update_newtab.py"
|
"update-newtab": "python3 scripts/update_newtab.py"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@@ -26,6 +27,6 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/core#readme",
|
"homepage": "https://github.com/zen-browser/core#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.0.13"
|
"@zen-browser/surfer": "^1.2.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
545
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@zen-browser/surfer':
|
'@zen-browser/surfer':
|
||||||
specifier: ^1.0.13
|
specifier: ^1.2.5
|
||||||
version: 1.0.13
|
version: 1.2.5
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -109,8 +109,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.0.13':
|
'@zen-browser/surfer@1.2.5':
|
||||||
resolution: {integrity: sha512-1lM62lJbaLNQJNC/aYNpbdg3SNBno8HXEgsbFlYwS6hZ92aekO8qu1Uy7YlCvxq0jUB6iJ4AgjP4vKmItw5ZOQ==}
|
resolution: {integrity: sha512-EX39ay0wkCiifoAzxfoLZgAVXZawWDNDJuSqefvVq9kG82tbSSdgzhQSRjAOF0ZmaZegjyu0ID5+KroMtz3fLA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
ansi-regex@5.0.1:
|
ansi-regex@5.0.1:
|
||||||
@@ -124,6 +124,10 @@ packages:
|
|||||||
argparse@1.0.10:
|
argparse@1.0.10:
|
||||||
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
|
||||||
|
|
||||||
|
async-compat@1.4.7:
|
||||||
|
resolution: {integrity: sha512-DzJRBBF6Q+AJYuAnFXflE5P0FEkJ7oKMOOR4YhzMNZsDnXOSUdCpYt+PpbCGrljempC3hujxy48rHBcBAWdr7g==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
async-icns@1.0.2:
|
async-icns@1.0.2:
|
||||||
resolution: {integrity: sha512-d2P/f3aAWdOE3+tEqTW4HLj9Ob7/t54/NH2nRFK9Q7ZhJJXK7TlF1G3vgB6UP/ILHjI3Akjv+d8sFXyAZxCIFQ==}
|
resolution: {integrity: sha512-d2P/f3aAWdOE3+tEqTW4HLj9Ob7/t54/NH2nRFK9Q7ZhJJXK7TlF1G3vgB6UP/ILHjI3Akjv+d8sFXyAZxCIFQ==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
@@ -131,12 +135,43 @@ packages:
|
|||||||
axios@0.21.4:
|
axios@0.21.4:
|
||||||
resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
|
resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==}
|
||||||
|
|
||||||
|
balanced-match@1.0.2:
|
||||||
|
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||||
|
|
||||||
|
base64-js@0.0.2:
|
||||||
|
resolution: {integrity: sha512-Pj9L87dCdGcKlSqPVUjD+q96pbIx1zQQLb2CUiWURfjiBELv84YX+0nGnKmyT/9KkC7PQk7UN1w+Al8bBozaxQ==}
|
||||||
|
engines: {node: '>= 0.4'}
|
||||||
|
|
||||||
base64-js@1.5.1:
|
base64-js@1.5.1:
|
||||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||||
|
|
||||||
|
bl@2.2.1:
|
||||||
|
resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==}
|
||||||
|
|
||||||
|
bl@3.0.1:
|
||||||
|
resolution: {integrity: sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==}
|
||||||
|
|
||||||
bl@4.1.0:
|
bl@4.1.0:
|
||||||
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
|
resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
|
||||||
|
|
||||||
|
bops@0.1.1:
|
||||||
|
resolution: {integrity: sha512-Cx1zStcMp+YoFan8OgudNPMih82eJZE+27feki1WeyoFTR9Ye7AR1SUW3saE6QQvdS/g52aJ2IojBjWOiRiLbw==}
|
||||||
|
|
||||||
|
brace-expansion@1.1.11:
|
||||||
|
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||||
|
|
||||||
|
buffer-alloc-unsafe@1.1.0:
|
||||||
|
resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==}
|
||||||
|
|
||||||
|
buffer-alloc@1.2.0:
|
||||||
|
resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==}
|
||||||
|
|
||||||
|
buffer-fill@1.0.0:
|
||||||
|
resolution: {integrity: sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==}
|
||||||
|
|
||||||
|
buffer-v6-polyfill@1.0.5:
|
||||||
|
resolution: {integrity: sha512-LdUw/JMZyKN+EBDbOHqynYtOLXDjgo+uf5vCUhfO5hVsU2chvbqyexizvxUMaU4ipYZy9MiQyIFwMeIgsb6nBA==}
|
||||||
|
|
||||||
buffer@5.7.1:
|
buffer@5.7.1:
|
||||||
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
|
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
|
||||||
|
|
||||||
@@ -173,9 +208,22 @@ packages:
|
|||||||
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
|
resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
|
||||||
engines: {node: ^12.20.0 || >=14}
|
engines: {node: ^12.20.0 || >=14}
|
||||||
|
|
||||||
|
concat-map@0.0.1:
|
||||||
|
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||||
|
|
||||||
|
content-disposition@0.5.4:
|
||||||
|
resolution: {integrity: sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==}
|
||||||
|
engines: {node: '>= 0.6'}
|
||||||
|
|
||||||
core-js-pure@3.37.1:
|
core-js-pure@3.37.1:
|
||||||
resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==}
|
resolution: {integrity: sha512-J/r5JTHSmzTxbiYYrzXg9w1VpqrYt+gexenBE9pugeyhwPZTAEJddyiReJWsLO6uNQ8xJZFbod6XC7KKwatCiA==}
|
||||||
|
|
||||||
|
core-js@3.37.1:
|
||||||
|
resolution: {integrity: sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==}
|
||||||
|
|
||||||
|
core-util-is@1.0.3:
|
||||||
|
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||||
|
|
||||||
cross-spawn@7.0.3:
|
cross-spawn@7.0.3:
|
||||||
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
@@ -192,6 +240,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
|
resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
duplexify@4.1.3:
|
||||||
|
resolution: {integrity: sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA==}
|
||||||
|
|
||||||
emoji-regex@8.0.0:
|
emoji-regex@8.0.0:
|
||||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||||
|
|
||||||
@@ -211,6 +262,20 @@ packages:
|
|||||||
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
extract-base-iterator@1.0.1:
|
||||||
|
resolution: {integrity: sha512-CbDiNxzBKMsVv/EVZnG+itxULcsRijEUm1l8cZ5S0519R77MA9jX3FOJsf+96OnxfVwUJiy1q9+pDvXarkQKHQ==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
fast-extract@1.1.0:
|
||||||
|
resolution: {integrity: sha512-uUN0xFXyicJXBhwP4a7IRYmLWDB8POLb1DpBy+4HyWwWcD8dzlWZCDUWXdpvjCq3ve/RWlWRIVT5ZJ4WKbIPZw==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
fifo@2.4.1:
|
||||||
|
resolution: {integrity: sha512-XTbUCNmo54Jav0hcL6VxDuY4x1eCQH61HEF80C2Oww283pfjQ2C8avZeyq4v43sW2S2403kmzssE9j4lbF66Sg==}
|
||||||
|
|
||||||
|
flush-write-stream@2.0.0:
|
||||||
|
resolution: {integrity: sha512-uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==}
|
||||||
|
|
||||||
follow-redirects@1.15.6:
|
follow-redirects@1.15.6:
|
||||||
resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
|
resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
|
||||||
engines: {node: '>=4.0'}
|
engines: {node: '>=4.0'}
|
||||||
@@ -220,6 +285,10 @@ packages:
|
|||||||
debug:
|
debug:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
fs-access-compat@1.0.3:
|
||||||
|
resolution: {integrity: sha512-bIT52oDQuazHSEnu17+MnRGVTTtLpMluu9Zuv25RhJ+iVWrTX95aXK+9yEsQ1ZaIRCWeHjx1IgR38QH/8psWKQ==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
fs-constants@1.0.0:
|
fs-constants@1.0.0:
|
||||||
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
|
||||||
|
|
||||||
@@ -227,6 +296,13 @@ packages:
|
|||||||
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
|
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
fs.realpath@1.0.0:
|
||||||
|
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
|
||||||
|
|
||||||
|
get-caller-file@2.0.5:
|
||||||
|
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||||
|
engines: {node: 6.* || 8.* || >= 10.*}
|
||||||
|
|
||||||
get-stream@6.0.1:
|
get-stream@6.0.1:
|
||||||
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -234,6 +310,10 @@ packages:
|
|||||||
github-from-package@0.0.0:
|
github-from-package@0.0.0:
|
||||||
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==}
|
||||||
|
|
||||||
|
glob@7.2.3:
|
||||||
|
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||||
|
deprecated: Glob versions prior to v9 are no longer supported
|
||||||
|
|
||||||
globalyzer@0.1.0:
|
globalyzer@0.1.0:
|
||||||
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
|
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
|
||||||
|
|
||||||
@@ -247,6 +327,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
hash-string@1.0.0:
|
||||||
|
resolution: {integrity: sha512-dtNNyxXobzHavayZwOwRWhBTqS9GX4jDjIMsGc0fDyaN2A+4zMn5Ua9ODDCggN6w3Spma6mAHL3ImmW3BkWDmQ==}
|
||||||
|
|
||||||
human-signals@2.1.0:
|
human-signals@2.1.0:
|
||||||
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
||||||
engines: {node: '>=10.17.0'}
|
engines: {node: '>=10.17.0'}
|
||||||
@@ -254,6 +337,14 @@ packages:
|
|||||||
ieee754@1.2.1:
|
ieee754@1.2.1:
|
||||||
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
|
||||||
|
|
||||||
|
imurmurhash@0.1.4:
|
||||||
|
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
|
||||||
|
engines: {node: '>=0.8.19'}
|
||||||
|
|
||||||
|
inflight@1.0.6:
|
||||||
|
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||||
|
deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
|
||||||
|
|
||||||
inherits@2.0.4:
|
inherits@2.0.4:
|
||||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||||
|
|
||||||
@@ -264,6 +355,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
|
resolution: {integrity: sha512-it4HyVAUTKBc6m8e1iXWvXSTdndF7HbdN713+kvLrymxTaU4AUBWrJ4vEooP+V7fexnVD3LKcBshjGGPefSMUQ==}
|
||||||
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
|
||||||
|
|
||||||
|
is-absolute@1.0.0:
|
||||||
|
resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a:
|
is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a:
|
||||||
resolution: {tarball: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a}
|
resolution: {tarball: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a}
|
||||||
version: 1.0.1
|
version: 1.0.1
|
||||||
@@ -271,14 +366,35 @@ packages:
|
|||||||
is-arrayish@0.3.2:
|
is-arrayish@0.3.2:
|
||||||
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
|
||||||
|
|
||||||
|
is-error@2.2.2:
|
||||||
|
resolution: {integrity: sha512-IOQqts/aHWbiisY5DuPJQ0gcbvaLFCa7fBa9xoLfxBZvQ+ZI/Zh9xoI7Gk+G64N0FdK4AbibytHht2tWgpJWLg==}
|
||||||
|
|
||||||
is-fullwidth-code-point@3.0.0:
|
is-fullwidth-code-point@3.0.0:
|
||||||
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-promise@4.0.0:
|
||||||
|
resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==}
|
||||||
|
|
||||||
|
is-relative@1.0.0:
|
||||||
|
resolution: {integrity: sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
is-stream@2.0.1:
|
is-stream@2.0.1:
|
||||||
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
is-unc-path@1.0.0:
|
||||||
|
resolution: {integrity: sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
is-windows@1.0.2:
|
||||||
|
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
isarray@1.0.0:
|
||||||
|
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||||
|
|
||||||
isexe@2.0.0:
|
isexe@2.0.0:
|
||||||
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
|
||||||
|
|
||||||
@@ -297,6 +413,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
lifecycle@1.0.4:
|
||||||
|
resolution: {integrity: sha512-FJx0SNrM2rouctdOH4rATsHT+BvgyXX4LEQ+Yn9COQNPK3u4XAPp9qS7OKpRO22MeT39oxkjZkRcLnHxSmiduw==}
|
||||||
|
|
||||||
|
lodash.compact@3.0.1:
|
||||||
|
resolution: {integrity: sha512-2ozeiPi+5eBXW1CLtzjk8XQFhQOEMwwfxblqeq6EGyTxZJ1bPATqilY0e6g2SLQpP4KuMeuioBhEnWz5Pr7ICQ==}
|
||||||
|
|
||||||
|
lodash.throttle@4.1.1:
|
||||||
|
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
|
||||||
|
|
||||||
merge-stream@2.0.0:
|
merge-stream@2.0.0:
|
||||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||||
|
|
||||||
@@ -308,12 +433,22 @@ packages:
|
|||||||
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
|
|
||||||
|
minimatch@3.1.2:
|
||||||
|
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||||
|
|
||||||
minimist@1.2.8:
|
minimist@1.2.8:
|
||||||
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
|
||||||
|
|
||||||
mkdirp-classic@0.5.3:
|
mkdirp-classic@0.5.3:
|
||||||
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
|
||||||
|
|
||||||
|
mkpath@1.0.0:
|
||||||
|
resolution: {integrity: sha512-PbNHr7Y/9Y/2P5pKFv5XOGBfNQqZ+fdiHWcuf7swLACN5ZW5LU7J5tMU8LSBjpluAxAxKYGD9nnaIbdRy9+m1w==}
|
||||||
|
|
||||||
|
mock-require-lazy@1.0.1:
|
||||||
|
resolution: {integrity: sha512-Sv05IW2MuG7C+gVTHirqF8cbqAM8MeMEIKU3MIQDA1pyXKnv0AGa/3l0iwXk/i+81OoFzt+iU0p8DdphV2Ejww==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
modern-async@1.1.4:
|
modern-async@1.1.4:
|
||||||
resolution: {integrity: sha512-jaZlzQB3W9PRF43+T144lYWb7UaTapJM6MZxNGLqpgPVal6uV4ixkR+t/1H1/7UM03jDu5BnvAYDqeawvL7kiw==}
|
resolution: {integrity: sha512-jaZlzQB3W9PRF43+T144lYWb7UaTapJM6MZxNGLqpgPVal6uV4ixkR+t/1H1/7UM03jDu5BnvAYDqeawvL7kiw==}
|
||||||
|
|
||||||
@@ -323,6 +458,9 @@ packages:
|
|||||||
napi-build-utils@1.0.2:
|
napi-build-utils@1.0.2:
|
||||||
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
|
resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==}
|
||||||
|
|
||||||
|
next-tick@1.1.0:
|
||||||
|
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
|
||||||
|
|
||||||
node-abi@3.65.0:
|
node-abi@3.65.0:
|
||||||
resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==}
|
resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -330,6 +468,10 @@ packages:
|
|||||||
node-addon-api@5.1.0:
|
node-addon-api@5.1.0:
|
||||||
resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
|
resolution: {integrity: sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==}
|
||||||
|
|
||||||
|
normalize-path@3.0.0:
|
||||||
|
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
npm-run-path@4.0.1:
|
npm-run-path@4.0.1:
|
||||||
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
|
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -341,6 +483,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
os-shim@0.1.3:
|
||||||
|
resolution: {integrity: sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==}
|
||||||
|
engines: {node: '>= 0.4.0'}
|
||||||
|
|
||||||
|
path-is-absolute@1.0.1:
|
||||||
|
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
path-key@3.1.1:
|
path-key@3.1.1:
|
||||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
@@ -363,6 +513,12 @@ packages:
|
|||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
process-nextick-args@2.0.1:
|
||||||
|
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||||
|
|
||||||
|
progress-stream@2.0.0:
|
||||||
|
resolution: {integrity: sha512-xJwOWR46jcXUq6EH9yYyqp+I52skPySOeHfkxOZ2IY1AiBi/sFJhbhAKHoV3OTw/omQ45KTio9215dRJ2Yxd3Q==}
|
||||||
|
|
||||||
prompts@2.4.2:
|
prompts@2.4.2:
|
||||||
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
|
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -370,20 +526,49 @@ packages:
|
|||||||
pump@3.0.0:
|
pump@3.0.0:
|
||||||
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
|
||||||
|
|
||||||
|
pumpify@2.0.1:
|
||||||
|
resolution: {integrity: sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw==}
|
||||||
|
|
||||||
|
queue-cb@1.2.1:
|
||||||
|
resolution: {integrity: sha512-6BliHPdr+07JEc1f3WSZq1oun1okwC4g5StX+DBBIr4Xrx3a5oRLHV9fRFPH1kfOxP4o/sIsoJX3qY9JqTIORw==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
rc@1.2.8:
|
rc@1.2.8:
|
||||||
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
|
readable-stream@2.3.8:
|
||||||
|
resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==}
|
||||||
|
|
||||||
readable-stream@3.6.2:
|
readable-stream@3.6.2:
|
||||||
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
|
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
|
||||||
|
require_optional@1.0.1:
|
||||||
|
resolution: {integrity: sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==}
|
||||||
|
|
||||||
|
resolve-from@2.0.0:
|
||||||
|
resolution: {integrity: sha512-qpFcKaXsq8+oRoLilkwyc7zHGF5i9Q2/25NIgLQQ/+VVv9rU4qvr6nXVAw1DsnXJyQkZsR4Ytfbtg5ehfcUssQ==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
rimraf@2.7.1:
|
||||||
|
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||||
|
deprecated: Rimraf versions prior to v4 are no longer supported
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
rustic@1.2.2:
|
rustic@1.2.2:
|
||||||
resolution: {integrity: sha512-aagYrcImcYj3QbaP7nirOw8/q8aULMu0LkKucP9B4WsRbXlXpk195nYAEB+uJzAcgk2pKS+yMzbAJtIoOqwZoQ==}
|
resolution: {integrity: sha512-aagYrcImcYj3QbaP7nirOw8/q8aULMu0LkKucP9B4WsRbXlXpk195nYAEB+uJzAcgk2pKS+yMzbAJtIoOqwZoQ==}
|
||||||
|
|
||||||
|
safe-buffer@5.1.2:
|
||||||
|
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||||
|
|
||||||
safe-buffer@5.2.1:
|
safe-buffer@5.2.1:
|
||||||
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
|
||||||
|
|
||||||
|
semver@5.7.2:
|
||||||
|
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
|
||||||
|
hasBin: true
|
||||||
|
|
||||||
semver@7.6.2:
|
semver@7.6.2:
|
||||||
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
|
resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==}
|
||||||
engines: {node: '>=10'}
|
engines: {node: '>=10'}
|
||||||
@@ -401,6 +586,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
short-hash@1.0.0:
|
||||||
|
resolution: {integrity: sha512-qbUCD2Pkl4IXRyVqneEjGnUr0NGDGLzZnBUVGJngIQZf/FrhOL0yJhH+JQzak0t8xMmScIKpoX1SxOsPHdwa4w==}
|
||||||
|
|
||||||
signal-exit@3.0.7:
|
signal-exit@3.0.7:
|
||||||
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||||
|
|
||||||
@@ -416,13 +604,26 @@ packages:
|
|||||||
sisteransi@1.0.5:
|
sisteransi@1.0.5:
|
||||||
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==}
|
||||||
|
|
||||||
|
speedometer@1.0.0:
|
||||||
|
resolution: {integrity: sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==}
|
||||||
|
|
||||||
sprintf-js@1.0.3:
|
sprintf-js@1.0.3:
|
||||||
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
|
||||||
|
|
||||||
|
stack-base-iterator@1.1.1:
|
||||||
|
resolution: {integrity: sha512-1mNThtigubwfisTX+RwMXahSxLch7quWujkD0ef957UD/5STUrnl3TQM/Kspwqm5tokJ9eOukDUkOGroigh3Kw==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
stream-shift@1.0.3:
|
||||||
|
resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==}
|
||||||
|
|
||||||
string-width@4.2.3:
|
string-width@4.2.3:
|
||||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
|
string_decoder@1.1.1:
|
||||||
|
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||||
|
|
||||||
string_decoder@1.3.0:
|
string_decoder@1.3.0:
|
||||||
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
|
||||||
|
|
||||||
@@ -445,16 +646,44 @@ packages:
|
|||||||
tar-fs@2.1.1:
|
tar-fs@2.1.1:
|
||||||
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
|
resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==}
|
||||||
|
|
||||||
|
tar-iterator@1.0.1:
|
||||||
|
resolution: {integrity: sha512-RxwFVLHCrZCEHIaWUaxXG21dPlzU/POiTAMqZzaRgy/ndOP2sPnB/P2/g4yN/VwXMgFu343M5URlYbH8qg7gAA==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
tar-stream-compat@2.1.5:
|
||||||
|
resolution: {integrity: sha512-hhIcRHj6S+y7IDR+VO8IcOjPUsAJ+50POvGK1fDFqbOTLTs/J7YA07TUgvpSkYkYuRUfYsuAFM/0SrvrdIZMdQ==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
tar-stream@2.2.0:
|
tar-stream@2.2.0:
|
||||||
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
|
resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
|
||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
|
|
||||||
|
temp-suffix@0.1.1:
|
||||||
|
resolution: {integrity: sha512-wcluXJ6A8HhyhEOOTXHPKV9TRTcL7vwmnfrWTZn7c7zrFp16trP1lfpsxaKN52pToFNByQ+y3zsJC8JlDAaKrg==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
through2@2.0.5:
|
||||||
|
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
|
||||||
|
|
||||||
|
through@2.3.8:
|
||||||
|
resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
|
||||||
|
|
||||||
tiny-glob@0.2.9:
|
tiny-glob@0.2.9:
|
||||||
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
|
||||||
|
|
||||||
|
to-utf8@0.0.1:
|
||||||
|
resolution: {integrity: sha512-zks18/TWT1iHO3v0vFp5qLKOG27m67ycq/Y7a7cTiRuUNlc4gf3HGnkRgMv0NyhnfTamtkYBJl+YeD1/j07gBQ==}
|
||||||
|
|
||||||
tunnel-agent@0.6.0:
|
tunnel-agent@0.6.0:
|
||||||
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==}
|
||||||
|
|
||||||
|
unbzip2-stream@1.4.3:
|
||||||
|
resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==}
|
||||||
|
|
||||||
|
unc-path-regex@0.1.2:
|
||||||
|
resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==}
|
||||||
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
universalify@2.0.1:
|
universalify@2.0.1:
|
||||||
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
|
resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
@@ -474,6 +703,17 @@ packages:
|
|||||||
resolution: {integrity: sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==}
|
resolution: {integrity: sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==}
|
||||||
engines: {node: '>=12.0'}
|
engines: {node: '>=12.0'}
|
||||||
|
|
||||||
|
xtend@4.0.2:
|
||||||
|
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||||
|
engines: {node: '>=0.4'}
|
||||||
|
|
||||||
|
zip-iterator@1.0.1:
|
||||||
|
resolution: {integrity: sha512-0mrjvo33Z9E/7rd2iiNmEJMjbiv+/czKyTl+IOdgpY87+y9vUW+bB6HmhGU9s7G3TpWsEIID3n+7cckK3D2hwQ==}
|
||||||
|
engines: {node: '>=0.8'}
|
||||||
|
|
||||||
|
zip@1.2.0:
|
||||||
|
resolution: {integrity: sha512-8B4Z9BXJKkI8BkHhKvQan4rwCzUENnj95YHFYrI7F1NbqKCIdW86kujctzEB+kJ6XapHPiAhiZ9xi5GbW5SPdw==}
|
||||||
|
|
||||||
snapshots:
|
snapshots:
|
||||||
|
|
||||||
'@oozcitak/dom@1.15.10':
|
'@oozcitak/dom@1.15.10':
|
||||||
@@ -546,7 +786,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node@17.0.45': {}
|
'@types/node@17.0.45': {}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.0.13':
|
'@zen-browser/surfer@1.2.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@resvg/resvg-js': 1.4.0
|
'@resvg/resvg-js': 1.4.0
|
||||||
async-icns: 1.0.2
|
async-icns: 1.0.2
|
||||||
@@ -555,6 +795,7 @@ snapshots:
|
|||||||
cli-progress: 3.12.0
|
cli-progress: 3.12.0
|
||||||
commander: 6.2.1
|
commander: 6.2.1
|
||||||
execa: 5.1.1
|
execa: 5.1.1
|
||||||
|
fast-extract: 1.1.0
|
||||||
fs-extra: 10.1.0
|
fs-extra: 10.1.0
|
||||||
ini: 3.0.1
|
ini: 3.0.1
|
||||||
is-apple-silicon: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a
|
is-apple-silicon: https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a
|
||||||
@@ -581,6 +822,11 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
sprintf-js: 1.0.3
|
sprintf-js: 1.0.3
|
||||||
|
|
||||||
|
async-compat@1.4.7:
|
||||||
|
dependencies:
|
||||||
|
is-error: 2.2.2
|
||||||
|
is-promise: 4.0.0
|
||||||
|
|
||||||
async-icns@1.0.2:
|
async-icns@1.0.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
commander: 9.5.0
|
commander: 9.5.0
|
||||||
@@ -591,14 +837,48 @@ snapshots:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- debug
|
- debug
|
||||||
|
|
||||||
|
balanced-match@1.0.2: {}
|
||||||
|
|
||||||
|
base64-js@0.0.2: {}
|
||||||
|
|
||||||
base64-js@1.5.1: {}
|
base64-js@1.5.1: {}
|
||||||
|
|
||||||
|
bl@2.2.1:
|
||||||
|
dependencies:
|
||||||
|
readable-stream: 2.3.8
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
|
bl@3.0.1:
|
||||||
|
dependencies:
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
|
||||||
bl@4.1.0:
|
bl@4.1.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer: 5.7.1
|
buffer: 5.7.1
|
||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
readable-stream: 3.6.2
|
readable-stream: 3.6.2
|
||||||
|
|
||||||
|
bops@0.1.1:
|
||||||
|
dependencies:
|
||||||
|
base64-js: 0.0.2
|
||||||
|
to-utf8: 0.0.1
|
||||||
|
|
||||||
|
brace-expansion@1.1.11:
|
||||||
|
dependencies:
|
||||||
|
balanced-match: 1.0.2
|
||||||
|
concat-map: 0.0.1
|
||||||
|
|
||||||
|
buffer-alloc-unsafe@1.1.0: {}
|
||||||
|
|
||||||
|
buffer-alloc@1.2.0:
|
||||||
|
dependencies:
|
||||||
|
buffer-alloc-unsafe: 1.1.0
|
||||||
|
buffer-fill: 1.0.0
|
||||||
|
|
||||||
|
buffer-fill@1.0.0: {}
|
||||||
|
|
||||||
|
buffer-v6-polyfill@1.0.5: {}
|
||||||
|
|
||||||
buffer@5.7.1:
|
buffer@5.7.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
base64-js: 1.5.1
|
base64-js: 1.5.1
|
||||||
@@ -635,8 +915,18 @@ snapshots:
|
|||||||
|
|
||||||
commander@9.5.0: {}
|
commander@9.5.0: {}
|
||||||
|
|
||||||
|
concat-map@0.0.1: {}
|
||||||
|
|
||||||
|
content-disposition@0.5.4:
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
core-js-pure@3.37.1: {}
|
core-js-pure@3.37.1: {}
|
||||||
|
|
||||||
|
core-js@3.37.1: {}
|
||||||
|
|
||||||
|
core-util-is@1.0.3: {}
|
||||||
|
|
||||||
cross-spawn@7.0.3:
|
cross-spawn@7.0.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
path-key: 3.1.1
|
path-key: 3.1.1
|
||||||
@@ -651,6 +941,13 @@ snapshots:
|
|||||||
|
|
||||||
detect-libc@2.0.3: {}
|
detect-libc@2.0.3: {}
|
||||||
|
|
||||||
|
duplexify@4.1.3:
|
||||||
|
dependencies:
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
stream-shift: 1.0.3
|
||||||
|
|
||||||
emoji-regex@8.0.0: {}
|
emoji-regex@8.0.0: {}
|
||||||
|
|
||||||
end-of-stream@1.4.4:
|
end-of-stream@1.4.4:
|
||||||
@@ -673,8 +970,54 @@ snapshots:
|
|||||||
|
|
||||||
expand-template@2.0.3: {}
|
expand-template@2.0.3: {}
|
||||||
|
|
||||||
|
extract-base-iterator@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
core-js: 3.37.1
|
||||||
|
fs-access-compat: 1.0.3
|
||||||
|
graceful-fs: 4.2.11
|
||||||
|
is-absolute: 1.0.0
|
||||||
|
lodash.compact: 3.0.1
|
||||||
|
mkpath: 1.0.0
|
||||||
|
queue-cb: 1.2.1
|
||||||
|
rimraf: 2.7.1
|
||||||
|
stack-base-iterator: 1.1.1
|
||||||
|
|
||||||
|
fast-extract@1.1.0:
|
||||||
|
dependencies:
|
||||||
|
bl: 3.0.1
|
||||||
|
buffer-v6-polyfill: 1.0.5
|
||||||
|
content-disposition: 0.5.4
|
||||||
|
core-js: 3.37.1
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
flush-write-stream: 2.0.0
|
||||||
|
lodash.throttle: 4.1.1
|
||||||
|
mkpath: 1.0.0
|
||||||
|
mock-require-lazy: 1.0.1
|
||||||
|
next-tick: 1.1.0
|
||||||
|
once: 1.4.0
|
||||||
|
progress-stream: 2.0.0
|
||||||
|
pumpify: 2.0.1
|
||||||
|
queue-cb: 1.2.1
|
||||||
|
readable-stream: 2.3.8
|
||||||
|
require_optional: 1.0.1
|
||||||
|
rimraf: 2.7.1
|
||||||
|
signal-exit: 3.0.7
|
||||||
|
tar-iterator: 1.0.1
|
||||||
|
temp-suffix: 0.1.1
|
||||||
|
unbzip2-stream: 1.4.3
|
||||||
|
zip-iterator: 1.0.1
|
||||||
|
|
||||||
|
fifo@2.4.1: {}
|
||||||
|
|
||||||
|
flush-write-stream@2.0.0:
|
||||||
|
dependencies:
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 3.6.2
|
||||||
|
|
||||||
follow-redirects@1.15.6: {}
|
follow-redirects@1.15.6: {}
|
||||||
|
|
||||||
|
fs-access-compat@1.0.3: {}
|
||||||
|
|
||||||
fs-constants@1.0.0: {}
|
fs-constants@1.0.0: {}
|
||||||
|
|
||||||
fs-extra@10.1.0:
|
fs-extra@10.1.0:
|
||||||
@@ -683,10 +1026,23 @@ snapshots:
|
|||||||
jsonfile: 6.1.0
|
jsonfile: 6.1.0
|
||||||
universalify: 2.0.1
|
universalify: 2.0.1
|
||||||
|
|
||||||
|
fs.realpath@1.0.0: {}
|
||||||
|
|
||||||
|
get-caller-file@2.0.5: {}
|
||||||
|
|
||||||
get-stream@6.0.1: {}
|
get-stream@6.0.1: {}
|
||||||
|
|
||||||
github-from-package@0.0.0: {}
|
github-from-package@0.0.0: {}
|
||||||
|
|
||||||
|
glob@7.2.3:
|
||||||
|
dependencies:
|
||||||
|
fs.realpath: 1.0.0
|
||||||
|
inflight: 1.0.6
|
||||||
|
inherits: 2.0.4
|
||||||
|
minimatch: 3.1.2
|
||||||
|
once: 1.4.0
|
||||||
|
path-is-absolute: 1.0.1
|
||||||
|
|
||||||
globalyzer@0.1.0: {}
|
globalyzer@0.1.0: {}
|
||||||
|
|
||||||
globrex@0.1.2: {}
|
globrex@0.1.2: {}
|
||||||
@@ -695,24 +1051,54 @@ snapshots:
|
|||||||
|
|
||||||
has-flag@4.0.0: {}
|
has-flag@4.0.0: {}
|
||||||
|
|
||||||
|
hash-string@1.0.0: {}
|
||||||
|
|
||||||
human-signals@2.1.0: {}
|
human-signals@2.1.0: {}
|
||||||
|
|
||||||
ieee754@1.2.1: {}
|
ieee754@1.2.1: {}
|
||||||
|
|
||||||
|
imurmurhash@0.1.4: {}
|
||||||
|
|
||||||
|
inflight@1.0.6:
|
||||||
|
dependencies:
|
||||||
|
once: 1.4.0
|
||||||
|
wrappy: 1.0.2
|
||||||
|
|
||||||
inherits@2.0.4: {}
|
inherits@2.0.4: {}
|
||||||
|
|
||||||
ini@1.3.8: {}
|
ini@1.3.8: {}
|
||||||
|
|
||||||
ini@3.0.1: {}
|
ini@3.0.1: {}
|
||||||
|
|
||||||
|
is-absolute@1.0.0:
|
||||||
|
dependencies:
|
||||||
|
is-relative: 1.0.0
|
||||||
|
is-windows: 1.0.2
|
||||||
|
|
||||||
is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a: {}
|
is-apple-silicon@https://codeload.github.com/trickypr/is-apple-silicon/tar.gz/5f75501a1d7566ba9f94174b6825d7bd9d302b6a: {}
|
||||||
|
|
||||||
is-arrayish@0.3.2: {}
|
is-arrayish@0.3.2: {}
|
||||||
|
|
||||||
|
is-error@2.2.2: {}
|
||||||
|
|
||||||
is-fullwidth-code-point@3.0.0: {}
|
is-fullwidth-code-point@3.0.0: {}
|
||||||
|
|
||||||
|
is-promise@4.0.0: {}
|
||||||
|
|
||||||
|
is-relative@1.0.0:
|
||||||
|
dependencies:
|
||||||
|
is-unc-path: 1.0.0
|
||||||
|
|
||||||
is-stream@2.0.1: {}
|
is-stream@2.0.1: {}
|
||||||
|
|
||||||
|
is-unc-path@1.0.0:
|
||||||
|
dependencies:
|
||||||
|
unc-path-regex: 0.1.2
|
||||||
|
|
||||||
|
is-windows@1.0.2: {}
|
||||||
|
|
||||||
|
isarray@1.0.0: {}
|
||||||
|
|
||||||
isexe@2.0.0: {}
|
isexe@2.0.0: {}
|
||||||
|
|
||||||
js-yaml@3.14.1:
|
js-yaml@3.14.1:
|
||||||
@@ -730,16 +1116,33 @@ snapshots:
|
|||||||
|
|
||||||
kleur@4.1.5: {}
|
kleur@4.1.5: {}
|
||||||
|
|
||||||
|
lifecycle@1.0.4: {}
|
||||||
|
|
||||||
|
lodash.compact@3.0.1: {}
|
||||||
|
|
||||||
|
lodash.throttle@4.1.1: {}
|
||||||
|
|
||||||
merge-stream@2.0.0: {}
|
merge-stream@2.0.0: {}
|
||||||
|
|
||||||
mimic-fn@2.1.0: {}
|
mimic-fn@2.1.0: {}
|
||||||
|
|
||||||
mimic-response@3.1.0: {}
|
mimic-response@3.1.0: {}
|
||||||
|
|
||||||
|
minimatch@3.1.2:
|
||||||
|
dependencies:
|
||||||
|
brace-expansion: 1.1.11
|
||||||
|
|
||||||
minimist@1.2.8: {}
|
minimist@1.2.8: {}
|
||||||
|
|
||||||
mkdirp-classic@0.5.3: {}
|
mkdirp-classic@0.5.3: {}
|
||||||
|
|
||||||
|
mkpath@1.0.0: {}
|
||||||
|
|
||||||
|
mock-require-lazy@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
get-caller-file: 2.0.5
|
||||||
|
normalize-path: 3.0.0
|
||||||
|
|
||||||
modern-async@1.1.4:
|
modern-async@1.1.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
core-js-pure: 3.37.1
|
core-js-pure: 3.37.1
|
||||||
@@ -749,12 +1152,16 @@ snapshots:
|
|||||||
|
|
||||||
napi-build-utils@1.0.2: {}
|
napi-build-utils@1.0.2: {}
|
||||||
|
|
||||||
|
next-tick@1.1.0: {}
|
||||||
|
|
||||||
node-abi@3.65.0:
|
node-abi@3.65.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.6.2
|
semver: 7.6.2
|
||||||
|
|
||||||
node-addon-api@5.1.0: {}
|
node-addon-api@5.1.0: {}
|
||||||
|
|
||||||
|
normalize-path@3.0.0: {}
|
||||||
|
|
||||||
npm-run-path@4.0.1:
|
npm-run-path@4.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
path-key: 3.1.1
|
path-key: 3.1.1
|
||||||
@@ -767,6 +1174,10 @@ snapshots:
|
|||||||
dependencies:
|
dependencies:
|
||||||
mimic-fn: 2.1.0
|
mimic-fn: 2.1.0
|
||||||
|
|
||||||
|
os-shim@0.1.3: {}
|
||||||
|
|
||||||
|
path-is-absolute@1.0.1: {}
|
||||||
|
|
||||||
path-key@3.1.1: {}
|
path-key@3.1.1: {}
|
||||||
|
|
||||||
picomatch@2.3.1: {}
|
picomatch@2.3.1: {}
|
||||||
@@ -794,6 +1205,13 @@ snapshots:
|
|||||||
tar-fs: 2.1.1
|
tar-fs: 2.1.1
|
||||||
tunnel-agent: 0.6.0
|
tunnel-agent: 0.6.0
|
||||||
|
|
||||||
|
process-nextick-args@2.0.1: {}
|
||||||
|
|
||||||
|
progress-stream@2.0.0:
|
||||||
|
dependencies:
|
||||||
|
speedometer: 1.0.0
|
||||||
|
through2: 2.0.5
|
||||||
|
|
||||||
prompts@2.4.2:
|
prompts@2.4.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
kleur: 3.0.3
|
kleur: 3.0.3
|
||||||
@@ -804,6 +1222,14 @@ snapshots:
|
|||||||
end-of-stream: 1.4.4
|
end-of-stream: 1.4.4
|
||||||
once: 1.4.0
|
once: 1.4.0
|
||||||
|
|
||||||
|
pumpify@2.0.1:
|
||||||
|
dependencies:
|
||||||
|
duplexify: 4.1.3
|
||||||
|
inherits: 2.0.4
|
||||||
|
pump: 3.0.0
|
||||||
|
|
||||||
|
queue-cb@1.2.1: {}
|
||||||
|
|
||||||
rc@1.2.8:
|
rc@1.2.8:
|
||||||
dependencies:
|
dependencies:
|
||||||
deep-extend: 0.6.0
|
deep-extend: 0.6.0
|
||||||
@@ -811,16 +1237,41 @@ snapshots:
|
|||||||
minimist: 1.2.8
|
minimist: 1.2.8
|
||||||
strip-json-comments: 2.0.1
|
strip-json-comments: 2.0.1
|
||||||
|
|
||||||
|
readable-stream@2.3.8:
|
||||||
|
dependencies:
|
||||||
|
core-util-is: 1.0.3
|
||||||
|
inherits: 2.0.4
|
||||||
|
isarray: 1.0.0
|
||||||
|
process-nextick-args: 2.0.1
|
||||||
|
safe-buffer: 5.1.2
|
||||||
|
string_decoder: 1.1.1
|
||||||
|
util-deprecate: 1.0.2
|
||||||
|
|
||||||
readable-stream@3.6.2:
|
readable-stream@3.6.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
string_decoder: 1.3.0
|
string_decoder: 1.3.0
|
||||||
util-deprecate: 1.0.2
|
util-deprecate: 1.0.2
|
||||||
|
|
||||||
|
require_optional@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
resolve-from: 2.0.0
|
||||||
|
semver: 5.7.2
|
||||||
|
|
||||||
|
resolve-from@2.0.0: {}
|
||||||
|
|
||||||
|
rimraf@2.7.1:
|
||||||
|
dependencies:
|
||||||
|
glob: 7.2.3
|
||||||
|
|
||||||
rustic@1.2.2: {}
|
rustic@1.2.2: {}
|
||||||
|
|
||||||
|
safe-buffer@5.1.2: {}
|
||||||
|
|
||||||
safe-buffer@5.2.1: {}
|
safe-buffer@5.2.1: {}
|
||||||
|
|
||||||
|
semver@5.7.2: {}
|
||||||
|
|
||||||
semver@7.6.2: {}
|
semver@7.6.2: {}
|
||||||
|
|
||||||
sharp@0.30.7:
|
sharp@0.30.7:
|
||||||
@@ -840,6 +1291,10 @@ snapshots:
|
|||||||
|
|
||||||
shebang-regex@3.0.0: {}
|
shebang-regex@3.0.0: {}
|
||||||
|
|
||||||
|
short-hash@1.0.0:
|
||||||
|
dependencies:
|
||||||
|
hash-string: 1.0.0
|
||||||
|
|
||||||
signal-exit@3.0.7: {}
|
signal-exit@3.0.7: {}
|
||||||
|
|
||||||
simple-concat@1.0.1: {}
|
simple-concat@1.0.1: {}
|
||||||
@@ -856,14 +1311,28 @@ snapshots:
|
|||||||
|
|
||||||
sisteransi@1.0.5: {}
|
sisteransi@1.0.5: {}
|
||||||
|
|
||||||
|
speedometer@1.0.0: {}
|
||||||
|
|
||||||
sprintf-js@1.0.3: {}
|
sprintf-js@1.0.3: {}
|
||||||
|
|
||||||
|
stack-base-iterator@1.1.1:
|
||||||
|
dependencies:
|
||||||
|
async-compat: 1.4.7
|
||||||
|
fifo: 2.4.1
|
||||||
|
once: 1.4.0
|
||||||
|
|
||||||
|
stream-shift@1.0.3: {}
|
||||||
|
|
||||||
string-width@4.2.3:
|
string-width@4.2.3:
|
||||||
dependencies:
|
dependencies:
|
||||||
emoji-regex: 8.0.0
|
emoji-regex: 8.0.0
|
||||||
is-fullwidth-code-point: 3.0.0
|
is-fullwidth-code-point: 3.0.0
|
||||||
strip-ansi: 6.0.1
|
strip-ansi: 6.0.1
|
||||||
|
|
||||||
|
string_decoder@1.1.1:
|
||||||
|
dependencies:
|
||||||
|
safe-buffer: 5.1.2
|
||||||
|
|
||||||
string_decoder@1.3.0:
|
string_decoder@1.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer: 5.2.1
|
safe-buffer: 5.2.1
|
||||||
@@ -887,6 +1356,28 @@ snapshots:
|
|||||||
pump: 3.0.0
|
pump: 3.0.0
|
||||||
tar-stream: 2.2.0
|
tar-stream: 2.2.0
|
||||||
|
|
||||||
|
tar-iterator@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
extract-base-iterator: 1.0.1
|
||||||
|
fs-access-compat: 1.0.3
|
||||||
|
lifecycle: 1.0.4
|
||||||
|
lodash.compact: 3.0.1
|
||||||
|
mkpath: 1.0.0
|
||||||
|
once: 1.4.0
|
||||||
|
queue-cb: 1.2.1
|
||||||
|
rimraf: 2.7.1
|
||||||
|
tar-stream-compat: 2.1.5
|
||||||
|
|
||||||
|
tar-stream-compat@2.1.5:
|
||||||
|
dependencies:
|
||||||
|
bl: 2.2.1
|
||||||
|
buffer-alloc: 1.2.0
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
fs-constants: 1.0.0
|
||||||
|
inherits: 2.0.4
|
||||||
|
readable-stream: 2.3.8
|
||||||
|
|
||||||
tar-stream@2.2.0:
|
tar-stream@2.2.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
bl: 4.1.0
|
bl: 4.1.0
|
||||||
@@ -895,15 +1386,35 @@ snapshots:
|
|||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
readable-stream: 3.6.2
|
readable-stream: 3.6.2
|
||||||
|
|
||||||
|
temp-suffix@0.1.1:
|
||||||
|
dependencies:
|
||||||
|
imurmurhash: 0.1.4
|
||||||
|
|
||||||
|
through2@2.0.5:
|
||||||
|
dependencies:
|
||||||
|
readable-stream: 2.3.8
|
||||||
|
xtend: 4.0.2
|
||||||
|
|
||||||
|
through@2.3.8: {}
|
||||||
|
|
||||||
tiny-glob@0.2.9:
|
tiny-glob@0.2.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
globalyzer: 0.1.0
|
globalyzer: 0.1.0
|
||||||
globrex: 0.1.2
|
globrex: 0.1.2
|
||||||
|
|
||||||
|
to-utf8@0.0.1: {}
|
||||||
|
|
||||||
tunnel-agent@0.6.0:
|
tunnel-agent@0.6.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer: 5.2.1
|
safe-buffer: 5.2.1
|
||||||
|
|
||||||
|
unbzip2-stream@1.4.3:
|
||||||
|
dependencies:
|
||||||
|
buffer: 5.7.1
|
||||||
|
through: 2.3.8
|
||||||
|
|
||||||
|
unc-path-regex@0.1.2: {}
|
||||||
|
|
||||||
universalify@2.0.1: {}
|
universalify@2.0.1: {}
|
||||||
|
|
||||||
util-deprecate@1.0.2: {}
|
util-deprecate@1.0.2: {}
|
||||||
@@ -920,3 +1431,27 @@ snapshots:
|
|||||||
'@oozcitak/infra': 1.0.8
|
'@oozcitak/infra': 1.0.8
|
||||||
'@oozcitak/util': 8.3.8
|
'@oozcitak/util': 8.3.8
|
||||||
js-yaml: 3.14.1
|
js-yaml: 3.14.1
|
||||||
|
|
||||||
|
xtend@4.0.2: {}
|
||||||
|
|
||||||
|
zip-iterator@1.0.1:
|
||||||
|
dependencies:
|
||||||
|
buffer-v6-polyfill: 1.0.5
|
||||||
|
end-of-stream: 1.4.4
|
||||||
|
extract-base-iterator: 1.0.1
|
||||||
|
fs-access-compat: 1.0.3
|
||||||
|
lifecycle: 1.0.4
|
||||||
|
lodash.compact: 3.0.1
|
||||||
|
mkpath: 1.0.0
|
||||||
|
once: 1.4.0
|
||||||
|
os-shim: 0.1.3
|
||||||
|
queue-cb: 1.2.1
|
||||||
|
readable-stream: 2.3.8
|
||||||
|
rimraf: 2.7.1
|
||||||
|
short-hash: 1.0.0
|
||||||
|
temp-suffix: 0.1.1
|
||||||
|
zip: 1.2.0
|
||||||
|
|
||||||
|
zip@1.2.0:
|
||||||
|
dependencies:
|
||||||
|
bops: 0.1.1
|
||||||
|
246
src/browser/app/profile/better-fox.js
Normal file
@@ -0,0 +1,246 @@
|
|||||||
|
//
|
||||||
|
/* You may copy+paste this file and use it as it is.
|
||||||
|
*
|
||||||
|
* If you make changes to your about:config while the program is running, the
|
||||||
|
* changes will be overwritten by the user.js when the application restarts.
|
||||||
|
*
|
||||||
|
* To make lasting changes to preferences, you will have to edit the user.js.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Betterfox *
|
||||||
|
* "Ad meliora" *
|
||||||
|
* version: 128 *
|
||||||
|
* url: https://github.com/yokoffing/Betterfox *
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* SECTION: FASTFOX *
|
||||||
|
****************************************************************************/
|
||||||
|
/** GENERAL ***/
|
||||||
|
pref("content.notify.interval", 100000);
|
||||||
|
|
||||||
|
/** GFX ***/
|
||||||
|
pref("gfx.canvas.accelerated.cache-items", 4096);
|
||||||
|
pref("gfx.canvas.accelerated.cache-size", 512);
|
||||||
|
pref("gfx.content.skia-font-cache-size", 20);
|
||||||
|
|
||||||
|
/** DISK CACHE ***/
|
||||||
|
pref("browser.cache.jsbc_compression_level", 3);
|
||||||
|
|
||||||
|
/** MEDIA CACHE ***/
|
||||||
|
pref("media.memory_cache_max_size", 65536);
|
||||||
|
pref("media.cache_readahead_limit", 7200);
|
||||||
|
pref("media.cache_resume_threshold", 3600);
|
||||||
|
|
||||||
|
/** IMAGE CACHE ***/
|
||||||
|
pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||||
|
|
||||||
|
/** NETWORK ***/
|
||||||
|
pref("network.http.max-connections", 1800);
|
||||||
|
pref("network.http.max-persistent-connections-per-server", 10);
|
||||||
|
pref("network.http.max-urgent-start-excessive-connections-per-host", 5);
|
||||||
|
pref("network.http.pacing.requests.enabled", false);
|
||||||
|
pref("network.dnsCacheExpiration", 3600);
|
||||||
|
pref("network.ssl_tokens_cache_capacity", 10240);
|
||||||
|
|
||||||
|
/** SPECULATIVE LOADING ***/
|
||||||
|
pref("network.dns.disablePrefetch", true);
|
||||||
|
pref("network.dns.disablePrefetchFromHTTPS", true);
|
||||||
|
pref("network.prefetch-next", false);
|
||||||
|
pref("network.predictor.enabled", false);
|
||||||
|
pref("network.predictor.enable-prefetch", false);
|
||||||
|
|
||||||
|
/** EXPERIMENTAL ***/
|
||||||
|
pref("layout.css.grid-template-masonry-value.enabled", true);
|
||||||
|
pref("dom.enable_web_task_scheduling", true);
|
||||||
|
pref("dom.security.sanitizer.enabled", true);
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* SECTION: SECUREFOX *
|
||||||
|
****************************************************************************/
|
||||||
|
/** TRACKING PROTECTION ***/
|
||||||
|
pref("browser.contentblocking.category", "strict");
|
||||||
|
pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com");
|
||||||
|
pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.twitter.com, *.twimg.com");
|
||||||
|
pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||||
|
pref("browser.download.start_downloads_in_tmp_dir", true);
|
||||||
|
pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||||
|
pref("browser.uitour.enabled", false);
|
||||||
|
pref("privacy.globalprivacycontrol.enabled", true);
|
||||||
|
|
||||||
|
/** OCSP & CERTS / HPKP ***/
|
||||||
|
pref("security.OCSP.enabled", 0);
|
||||||
|
pref("security.remote_settings.crlite_filters.enabled", true);
|
||||||
|
pref("security.pki.crlite_mode", 2);
|
||||||
|
|
||||||
|
/** SSL / TLS ***/
|
||||||
|
pref("security.ssl.treat_unsafe_negotiation_as_broken", true);
|
||||||
|
pref("browser.xul.error_pages.expert_bad_cert", true);
|
||||||
|
pref("security.tls.enable_0rtt_data", false);
|
||||||
|
|
||||||
|
/** DISK AVOIDANCE ***/
|
||||||
|
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||||
|
pref("browser.sessionstore.interval", 60000);
|
||||||
|
|
||||||
|
/** SHUTDOWN & SANITIZING ***/
|
||||||
|
pref("privacy.history.custom", true);
|
||||||
|
|
||||||
|
/** SEARCH / URL BAR ***/
|
||||||
|
pref("browser.urlbar.trimHttps", true);
|
||||||
|
pref("browser.search.separatePrivateDefault.ui.enabled", true);
|
||||||
|
pref("browser.urlbar.update2.engineAliasRefresh", true);
|
||||||
|
pref("browser.search.suggest.enabled", false);
|
||||||
|
pref("browser.urlbar.quicksuggest.enabled", false);
|
||||||
|
pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
|
||||||
|
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
|
||||||
|
pref("browser.urlbar.groupLabels.enabled", false);
|
||||||
|
pref("browser.formfill.enable", false);
|
||||||
|
pref("security.insecure_connection_text.enabled", true);
|
||||||
|
pref("security.insecure_connection_text.pbmode.enabled", true);
|
||||||
|
pref("network.IDN_show_punycode", true);
|
||||||
|
|
||||||
|
/** HTTPS-FIRST POLICY ***/
|
||||||
|
pref("dom.security.https_first", true);
|
||||||
|
pref("dom.security.https_first_schemeless", true);
|
||||||
|
|
||||||
|
/** PASSWORDS ***/
|
||||||
|
pref("signon.formlessCapture.enabled", false);
|
||||||
|
pref("signon.privateBrowsingCapture.enabled", false);
|
||||||
|
pref("network.auth.subresource-http-auth-allow", 1);
|
||||||
|
pref("editor.truncate_user_pastes", false);
|
||||||
|
|
||||||
|
/** MIXED CONTENT + CROSS-SITE ***/
|
||||||
|
pref("security.mixed_content.block_display_content", true);
|
||||||
|
pref("pdfjs.enableScripting", false);
|
||||||
|
pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||||
|
|
||||||
|
/** HEADERS / REFERERS ***/
|
||||||
|
pref("network.http.referer.XOriginTrimmingPolicy", 2);
|
||||||
|
|
||||||
|
/** CONTAINERS ***/
|
||||||
|
pref("privacy.userContext.ui.enabled", true);
|
||||||
|
|
||||||
|
/** WEBRTC ***/
|
||||||
|
pref("media.peerconnection.ice.proxy_only_if_behind_proxy", true);
|
||||||
|
pref("media.peerconnection.ice.default_address_only", true);
|
||||||
|
|
||||||
|
/** SAFE BROWSING ***/
|
||||||
|
pref("browser.safebrowsing.downloads.remote.enabled", false);
|
||||||
|
|
||||||
|
/** MOZILLA ***/
|
||||||
|
pref("permissions.default.desktop-notification", 2);
|
||||||
|
pref("permissions.default.geo", 2);
|
||||||
|
pref("permissions.manager.defaultsUrl", "");
|
||||||
|
pref("webchannel.allowObject.urlWhitelist", "");
|
||||||
|
|
||||||
|
/** TELEMETRY ***/
|
||||||
|
pref("datareporting.policy.dataSubmissionEnabled", false);
|
||||||
|
pref("datareporting.healthreport.uploadEnabled", false);
|
||||||
|
pref("toolkit.telemetry.unified", false);
|
||||||
|
pref("toolkit.telemetry.enabled", false);
|
||||||
|
pref("toolkit.telemetry.server", "data:,");
|
||||||
|
pref("toolkit.telemetry.archive.enabled", false);
|
||||||
|
pref("toolkit.telemetry.newProfilePing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.shutdownPingSender.enabled", false);
|
||||||
|
pref("toolkit.telemetry.updatePing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.bhrPing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.firstShutdownPing.enabled", false);
|
||||||
|
pref("toolkit.telemetry.coverage.opt-out", true);
|
||||||
|
pref("toolkit.coverage.opt-out", true);
|
||||||
|
pref("toolkit.coverage.endpoint.base", "");
|
||||||
|
pref("browser.newtabpage.activity-stream.feeds.telemetry", false);
|
||||||
|
pref("browser.newtabpage.activity-stream.telemetry", false);
|
||||||
|
|
||||||
|
/** EXPERIMENTS ***/
|
||||||
|
pref("app.shield.optoutstudies.enabled", false);
|
||||||
|
pref("app.normandy.enabled", false);
|
||||||
|
pref("app.normandy.api_url", "");
|
||||||
|
|
||||||
|
/** CRASH REPORTS ***/
|
||||||
|
pref("breakpad.reportURL", "");
|
||||||
|
pref("browser.tabs.crashReporting.sendReport", false);
|
||||||
|
pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
|
||||||
|
|
||||||
|
/** DETECTION ***/
|
||||||
|
pref("captivedetect.canonicalURL", "");
|
||||||
|
pref("network.captive-portal-service.enabled", false);
|
||||||
|
pref("network.connectivity-service.enabled", false);
|
||||||
|
pref("dom.private-attribution.submission.enabled", false);
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* SECTION: PESKYFOX *
|
||||||
|
****************************************************************************/
|
||||||
|
/** MOZILLA UI ***/
|
||||||
|
pref("browser.privatebrowsing.vpnpromourl", "");
|
||||||
|
pref("extensions.getAddons.showPane", false);
|
||||||
|
pref("extensions.htmlaboutaddons.recommendations.enabled", false);
|
||||||
|
pref("browser.discovery.enabled", false);
|
||||||
|
pref("browser.shell.checkDefaultBrowser", false);
|
||||||
|
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons", false);
|
||||||
|
pref("browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features", false);
|
||||||
|
pref("browser.preferences.moreFromMozilla", false);
|
||||||
|
pref("browser.tabs.tabmanager.enabled", false);
|
||||||
|
pref("browser.aboutConfig.showWarning", false);
|
||||||
|
pref("browser.aboutwelcome.enabled", false);
|
||||||
|
|
||||||
|
/** THEME ADJUSTMENTS ***/
|
||||||
|
pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
|
||||||
|
pref("browser.compactmode.show", true);
|
||||||
|
pref("browser.display.focus_ring_on_anything", true);
|
||||||
|
pref("browser.display.focus_ring_style", 0);
|
||||||
|
pref("browser.display.focus_ring_width", 0);
|
||||||
|
pref("layout.css.prefers-color-scheme.content-override", 2);
|
||||||
|
pref("browser.privateWindowSeparation.enabled", false); // WINDOWS
|
||||||
|
|
||||||
|
/** COOKIE BANNER HANDLING ***/
|
||||||
|
pref("cookiebanners.service.mode", 1);
|
||||||
|
pref("cookiebanners.service.mode.privateBrowsing", 1);
|
||||||
|
|
||||||
|
/** FULLSCREEN NOTICE ***/
|
||||||
|
pref("full-screen-api.transition-duration.enter", "0 0");
|
||||||
|
pref("full-screen-api.transition-duration.leave", "0 0");
|
||||||
|
pref("full-screen-api.warning.delay", -1);
|
||||||
|
pref("full-screen-api.warning.timeout", 0);
|
||||||
|
|
||||||
|
/** URL BAR ***/
|
||||||
|
pref("browser.urlbar.suggest.calculator", true);
|
||||||
|
pref("browser.urlbar.unitConversion.enabled", true);
|
||||||
|
pref("browser.urlbar.trending.featureGate", false);
|
||||||
|
|
||||||
|
/** NEW TAB PAGE ***/
|
||||||
|
pref("browser.newtabpage.activity-stream.feeds.topsites", false);
|
||||||
|
pref("browser.newtabpage.activity-stream.feeds.section.topstories", false);
|
||||||
|
|
||||||
|
/** POCKET ***/
|
||||||
|
pref("extensions.pocket.enabled", false);
|
||||||
|
|
||||||
|
/** DOWNLOADS ***/
|
||||||
|
pref("browser.download.always_ask_before_handling_new_types", true);
|
||||||
|
pref("browser.download.manager.addToRecentDocs", false);
|
||||||
|
|
||||||
|
/** PDF ***/
|
||||||
|
pref("browser.download.open_pdf_attachments_inline", true);
|
||||||
|
|
||||||
|
/** TAB BEHAVIOR ***/
|
||||||
|
pref("browser.bookmarks.openInTabClosesMenu", false);
|
||||||
|
pref("browser.menu.showViewImageInfo", true);
|
||||||
|
pref("findbar.highlightAll", true);
|
||||||
|
pref("layout.word_select.eat_space_to_next_word", false);
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* START: MY OVERRIDES *
|
||||||
|
****************************************************************************/
|
||||||
|
// visit https://github.com/yokoffing/Betterfox/wiki/Common-Overrides
|
||||||
|
// visit https://github.com/yokoffing/Betterfox/wiki/Optional-Hardening
|
||||||
|
// Enter your personal overrides below this line:
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* SECTION: SMOOTHFOX *
|
||||||
|
****************************************************************************/
|
||||||
|
// visit https://github.com/yokoffing/Betterfox/blob/main/Smoothfox.js
|
||||||
|
// Enter your scrolling overrides below this line:
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* END: BETTERFOX *
|
||||||
|
****************************************************************************/
|
@@ -2,53 +2,31 @@
|
|||||||
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
#ifdef XP_UNIX
|
||||||
|
#ifndef XP_MACOSX
|
||||||
|
#define UNIX_BUT_NOT_MAC
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
pref("browser.tabs.cardPreview.enabled", true);
|
pref("browser.tabs.cardPreview.enabled", true);
|
||||||
pref("browser.tabs.hoverPreview.enabled", true);
|
pref("browser.tabs.hoverPreview.enabled", true);
|
||||||
pref("browser.tabs.cardPreview.delayMs", 100);
|
pref("browser.tabs.cardPreview.delayMs", 100);
|
||||||
|
|
||||||
pref("browser.urlbar.suggest.calculator", true);
|
|
||||||
|
|
||||||
#ifdef MOZ_UPDATE_CHANNEL
|
#ifdef MOZ_UPDATE_CHANNEL
|
||||||
pref("devtools.debugger.prompt-connection", false);
|
pref("devtools.debugger.prompt-connection", false);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Mozilla Services
|
|
||||||
pref('browser.privatebrowsing.vpnpromourl', '');
|
|
||||||
pref("browser.vpn_promo.enabled", false);
|
|
||||||
pref("browser.contentblocking.report.show_mobile_app", false);
|
|
||||||
pref("browser.protections_panel.infoMessage.seen", true);
|
|
||||||
pref('extensions.getAddons.showPane', false);
|
|
||||||
pref('extensions.htmlaboutaddons.recommendations.enabled', false);
|
|
||||||
pref('browser.discovery.enabled', false);
|
|
||||||
pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons', false);
|
|
||||||
pref(
|
|
||||||
'browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features',
|
|
||||||
false
|
|
||||||
);
|
|
||||||
pref('browser.preferences.moreFromMozilla', false);
|
|
||||||
pref('browser.aboutwelcome.enabled', true);
|
|
||||||
pref("browser.aboutwelcome.showModal", false);
|
|
||||||
pref('browser.translations.select.enable', true);
|
|
||||||
|
|
||||||
// Theme
|
// Theme
|
||||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||||
pref('browser.compactmode.show', true);
|
pref('browser.compactmode.show', true);
|
||||||
pref('browser.display.focus_ring_on_anything', true);
|
|
||||||
pref('browser.display.focus_ring_style', 0);
|
|
||||||
pref('browser.display.focus_ring_width', 0);
|
|
||||||
pref('browser.privateWindowSeparation.enabled', false); // WINDOWS
|
|
||||||
|
|
||||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||||
|
pref('browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled', true);
|
||||||
pref('browser.translations.newSettingsUI.enable', true);
|
pref('browser.translations.newSettingsUI.enable', true);
|
||||||
|
|
||||||
pref("browser.urlbar.trimHttps", true);
|
pref("browser.urlbar.trimHttps", true);
|
||||||
pref("browser.urlbar.untrimOnUserInteraction.featureGate", true);
|
pref("browser.urlbar.untrimOnUserInteraction.featureGate", true);
|
||||||
|
|
||||||
// Cookie banner handling (reject by default)
|
|
||||||
|
|
||||||
pref('cookiebanners.service.mode', 1);
|
|
||||||
pref('cookiebanners.service.mode.privateBrowsing', 1);
|
|
||||||
|
|
||||||
// Url bar
|
// Url bar
|
||||||
pref('browser.urlbar.unitConversion.enabled', true);
|
pref('browser.urlbar.unitConversion.enabled', true);
|
||||||
pref('browser.urlbar.trending.featureGate', false);
|
pref('browser.urlbar.trending.featureGate', false);
|
||||||
@@ -59,52 +37,25 @@ pref('browser.urlbar.clipboard.featureGate', true);
|
|||||||
// new tab page
|
// new tab page
|
||||||
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
||||||
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
||||||
pref("browser.topsites.contile.enabled", false);
|
pref("browser.topsites.contile.enabled", true);
|
||||||
|
|
||||||
// Pocket
|
|
||||||
pref('extensions.pocket.enabled', false);
|
|
||||||
|
|
||||||
// Pdf
|
// Pdf
|
||||||
pref('browser.download.open_pdf_attachments_inline', true);
|
pref('browser.download.open_pdf_attachments_inline', true);
|
||||||
pref('pdfjs.enableHighlightEditor', true);
|
pref('pdfjs.enableHighlightEditor', true);
|
||||||
pref('pdfjs.enableHighlightFloatingButton', true);
|
pref('pdfjs.enableHighlightFloatingButton', true);
|
||||||
|
|
||||||
// Tabs
|
|
||||||
pref('browser.bookmarks.openInTabClosesMenu', false);
|
|
||||||
pref('browser.menu.showViewImageInfo', true);
|
|
||||||
pref('findbar.highlightAll', true);
|
|
||||||
pref('layout.word_select.eat_space_to_next_word', false);
|
|
||||||
pref('privacy.userContext.enabled', true);
|
|
||||||
pref('privacy.userContext.ui.enabled', true);
|
|
||||||
|
|
||||||
// UA
|
|
||||||
pref('general.useragent.compatMode.firefox', true);
|
|
||||||
|
|
||||||
|
|
||||||
// Tracking protection
|
|
||||||
|
|
||||||
pref(
|
|
||||||
'urlclassifier.trackingSkipURLs',
|
|
||||||
'*.reddit.com, *.twitter.com, *.twimg.com, *.tiktok.com'
|
|
||||||
);
|
|
||||||
pref(
|
|
||||||
'urlclassifier.features.socialtracking.skipURLs',
|
|
||||||
'*.instagram.com, *.twitter.com, *.twimg.com'
|
|
||||||
);
|
|
||||||
pref('network.cookie.sameSite.noneRequiresSecure', true);
|
|
||||||
pref('browser.download.start_downloads_in_tmp_dir', true);
|
|
||||||
pref('browser.helperApps.deleteTempFileOnExit', true);
|
|
||||||
pref('privacy.globalprivacycontrol.enabled', true);
|
|
||||||
|
|
||||||
pref('gfx.canvas.accelerated.cache-items', 4096);
|
|
||||||
pref('gfx.canvas.accelerated.cache-size', 512);
|
|
||||||
pref('gfx.content.skia-font-cache-size', 20);
|
|
||||||
pref('gfx.webrender.all', true);
|
|
||||||
pref('layout.css.backdrop-filter.enabled', true);
|
|
||||||
|
|
||||||
pref("alerts.showFavicons", true);
|
pref("alerts.showFavicons", true);
|
||||||
pref('browser.toolbars.bookmarks.visibility', 'never');
|
pref('browser.toolbars.bookmarks.visibility', 'never');
|
||||||
|
|
||||||
|
// Enable Do Not Track and GPC by default.
|
||||||
|
pref("privacy.donottrackheader.enabled", true);
|
||||||
|
pref("privacy.globalprivacycontrol.enabled", true);
|
||||||
|
// Disable more telemetry
|
||||||
|
pref("toolkit.telemetry.enabled", false);
|
||||||
|
pref("browser.ping-centre.telemetry", false);
|
||||||
|
pref("browser.attribution.enabled", false);
|
||||||
|
pref("toolkit.telemetry.pioneer-new-studies-available", false);
|
||||||
|
|
||||||
// CUSTOM ZEN PREFS
|
// CUSTOM ZEN PREFS
|
||||||
|
|
||||||
pref('zen.welcomeScreen.enabled', true);
|
pref('zen.welcomeScreen.enabled', true);
|
||||||
@@ -112,34 +63,13 @@ pref('zen.welcomeScreen.seen', false);
|
|||||||
pref('zen.tabs.vertical', true);
|
pref('zen.tabs.vertical', true);
|
||||||
pref('zen.theme.accent-color', "#aac7ff");
|
pref('zen.theme.accent-color', "#aac7ff");
|
||||||
pref('zen.theme.toolbar-themed', true);
|
pref('zen.theme.toolbar-themed', true);
|
||||||
|
pref('zen.theme.pill-button', false);
|
||||||
|
pref('zen.theme.floating-urlbar', false);
|
||||||
pref('zen.view.compact', false);
|
pref('zen.view.compact', false);
|
||||||
|
pref('zen.view.compact.hide-toolbar', false);
|
||||||
pref('browser.cache.jsbc_compression_level', 3);
|
pref('zen.view.sidebar-expanded', false);
|
||||||
|
pref('zen.view.sidebar-expanded.show-button', true);
|
||||||
pref('media.memory_cache_max_size', 65536);
|
pref('zen.view.sidebar-expanded.max-width', 400);
|
||||||
pref('media.cache_readahead_limit', 7200);
|
|
||||||
pref('media.cache_resume_threshold', 3600);
|
|
||||||
|
|
||||||
pref('image.mem.decode_bytes_at_a_time', 32768);
|
|
||||||
|
|
||||||
pref('network.buffer.cache.size', 262144);
|
|
||||||
pref('network.buffer.cache.count', 128);
|
|
||||||
pref('network.http.max-connections', 1800);
|
|
||||||
pref('network.http.max-persistent-connections-per-server', 10);
|
|
||||||
pref('network.http.max-urgent-start-excessive-connections-per-host', 5);
|
|
||||||
pref('network.http.pacing.requests.enabled', false);
|
|
||||||
pref('network.dnsCacheExpiration', 3600);
|
|
||||||
pref('network.dns.max_high_priority_threads', 8);
|
|
||||||
pref('network.ssl_tokens_cache_capacity', 10240);
|
|
||||||
|
|
||||||
pref('network.dns.disablePrefetch', true);
|
|
||||||
pref('network.prefetch-next', false);
|
|
||||||
pref('network.predictor.enabled', false);
|
|
||||||
|
|
||||||
pref('layout.css.grid-template-masonry-value.enabled', true);
|
|
||||||
pref('dom.enable_web_task_scheduling', true);
|
|
||||||
pref('layout.css.has-selector.enabled', true);
|
|
||||||
pref('dom.security.sanitizer.enabled', true);
|
|
||||||
|
|
||||||
// Pref to enable the new profiles (TODO: Check this out!)
|
// Pref to enable the new profiles (TODO: Check this out!)
|
||||||
//pref("browser.profiles.enabled", true);
|
//pref("browser.profiles.enabled", true);
|
||||||
@@ -153,4 +83,29 @@ pref('zen.sidebar.floating', true);
|
|||||||
pref('zen.splitView.working', false);
|
pref('zen.splitView.working', false);
|
||||||
|
|
||||||
// Zen Workspaces
|
// Zen Workspaces
|
||||||
pref('zen.workspaces.enabled', false);
|
pref('zen.workspaces.enabled', true);
|
||||||
|
|
||||||
|
// Zen Watermark
|
||||||
|
pref('zen.watermark.enabled', true);
|
||||||
|
|
||||||
|
// Smooth scrolling
|
||||||
|
user_pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
|
||||||
|
user_pref('general.smoothScroll', true); // DEFAULT
|
||||||
|
|
||||||
|
// Privacy
|
||||||
|
pref('dom.private-attribution.submission.enabled', false);
|
||||||
|
|
||||||
|
pref('media.eme.enabled', true);
|
||||||
|
pref('webgl.disabled', false);
|
||||||
|
|
||||||
|
pref("app.update.url.manual", "https://get-zen.vercel.app/download");
|
||||||
|
pref("app.update.url.details", "hhttps://get-zen.vercel.app/download");
|
||||||
|
pref("app.releaseNotesURL", "https://get-zen.vercel.app/release-notes");
|
||||||
|
pref("app.releaseNotesURL.aboutDialog", "https://get-zen.vercel.app/release-notes");
|
||||||
|
|
||||||
|
// Enable importers for other browsers
|
||||||
|
pref('browser.migrate.vivaldi.enabled', true);
|
||||||
|
pref('browser.migrate.opera-gx.enabled', true);
|
||||||
|
pref('browser.migrate.opera.enabled', true);
|
||||||
|
|
||||||
|
#include better-fox.js
|
14
src/browser/app/splash-rc.patch
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/browser/app/splash.rc b/browser/app/splash.rc
|
||||||
|
index 259a8068c3aa256b8c50487a04f1844292b90b2e..8b9c792e1484bb801246b06b6ce43fb6d6271ee8 100644
|
||||||
|
--- a/browser/app/splash.rc
|
||||||
|
+++ b/browser/app/splash.rc
|
||||||
|
@@ -6,6 +6,9 @@
|
||||||
|
#include <windows.h>
|
||||||
|
#include "nsNativeAppSupportWin.h"
|
||||||
|
|
||||||
|
+#define MANIFEST_PATH "firefox.exe.manifest"
|
||||||
|
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST MANIFEST_PATH
|
||||||
|
+
|
||||||
|
IDI_APPICON ICON FIREFOX_ICO
|
||||||
|
IDI_DOCUMENT ICON DOCUMENT_ICO
|
||||||
|
IDI_APPLICATION ICON FIREFOX_ICO
|
@@ -8,6 +8,7 @@ var gZenBrowserManagerSidebar = {
|
|||||||
_hasChangedConfig: true,
|
_hasChangedConfig: true,
|
||||||
_splitterElement: null,
|
_splitterElement: null,
|
||||||
_hSplitterElement: null,
|
_hSplitterElement: null,
|
||||||
|
_hasRegisteredPinnedClickOutside: false,
|
||||||
_isDragging: false,
|
_isDragging: false,
|
||||||
contextTab: null,
|
contextTab: null,
|
||||||
|
|
||||||
@@ -19,6 +20,7 @@ var gZenBrowserManagerSidebar = {
|
|||||||
this.update();
|
this.update();
|
||||||
this.close(); // avoid caching
|
this.close(); // avoid caching
|
||||||
this.listenForPrefChanges();
|
this.listenForPrefChanges();
|
||||||
|
this.insertIntoContextMenu();
|
||||||
},
|
},
|
||||||
|
|
||||||
get sidebarData() {
|
get sidebarData() {
|
||||||
@@ -105,6 +107,16 @@ var gZenBrowserManagerSidebar = {
|
|||||||
this.update();
|
this.update();
|
||||||
this._hasChangedConfig = false;
|
this._hasChangedConfig = false;
|
||||||
|
|
||||||
|
// https://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind
|
||||||
|
var clickOutsideHandler = this._handleClickOutside.bind(this);
|
||||||
|
if (Services.prefs.getBoolPref("zen.sidebar.floating") && !this._hasRegisteredPinnedClickOutside) {
|
||||||
|
document.addEventListener("mouseup", clickOutsideHandler);
|
||||||
|
this._hasRegisteredPinnedClickOutside = true;
|
||||||
|
} else if (!Services.prefs.getBoolPref("zen.sidebar.floating") && this._hasRegisteredPinnedClickOutside) {
|
||||||
|
document.removeEventListener("mouseup", clickOutsideHandler);
|
||||||
|
this._hasRegisteredPinnedClickOutside = false;
|
||||||
|
}
|
||||||
|
|
||||||
const button = document.getElementById("zen-sidepanel-button");
|
const button = document.getElementById("zen-sidepanel-button");
|
||||||
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
||||||
button.removeAttribute("hidden");
|
button.removeAttribute("hidden");
|
||||||
@@ -115,20 +127,42 @@ var gZenBrowserManagerSidebar = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_handleClickOutside(event) {
|
||||||
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
|
if (!sidebar.hasAttribute("pinned") || !this._currentPanel || this._isDragging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let target = event.target;
|
||||||
|
const closestSelector = [
|
||||||
|
"#zen-sidebar-web-panel",
|
||||||
|
"#zen-sidebar-panels-wrapper",
|
||||||
|
"#zenWebPanelContextMenu",
|
||||||
|
"#zen-sidebar-web-panel-splitter",
|
||||||
|
"#contentAreaContextMenu"
|
||||||
|
].join(", ");
|
||||||
|
if (target.closest(closestSelector)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.close();
|
||||||
|
},
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
if (!this._currentPanel) {
|
if (!this._currentPanel) {
|
||||||
this._currentPanel = this._lastOpenedPanel;
|
this._currentPanel = this._lastOpenedPanel;
|
||||||
if (!this._currentPanel) {
|
|
||||||
let data = this.sidebarData;
|
|
||||||
this._currentPanel = data.index[0];
|
|
||||||
}
|
|
||||||
this.update();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
// already open?
|
if (document.getElementById("zen-sidebar-web-panel").hasAttribute("hidden")) {
|
||||||
|
this.open();
|
||||||
|
return;
|
||||||
|
}
|
||||||
this.close();
|
this.close();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
open() {
|
||||||
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
|
sidebar.removeAttribute("hidden");
|
||||||
|
this.update();
|
||||||
|
},
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
this._updateWebPanels();
|
this._updateWebPanels();
|
||||||
this._updateSidebarButton();
|
this._updateSidebarButton();
|
||||||
@@ -138,7 +172,7 @@ var gZenBrowserManagerSidebar = {
|
|||||||
|
|
||||||
_updateSidebarButton() {
|
_updateSidebarButton() {
|
||||||
let button = document.getElementById("zen-sidepanel-button");
|
let button = document.getElementById("zen-sidepanel-button");
|
||||||
if (this._currentPanel) {
|
if (!document.getElementById("zen-sidebar-web-panel").hasAttribute("hidden")) {
|
||||||
button.setAttribute("open", "true");
|
button.setAttribute("open", "true");
|
||||||
} else {
|
} else {
|
||||||
button.removeAttribute("open");
|
button.removeAttribute("open");
|
||||||
@@ -205,15 +239,6 @@ var gZenBrowserManagerSidebar = {
|
|||||||
document.getElementById("zen-sidebar-web-panel-pinned").removeAttribute("pinned");
|
document.getElementById("zen-sidebar-web-panel-pinned").removeAttribute("pinned");
|
||||||
},
|
},
|
||||||
|
|
||||||
_openAndGetWebPanelWrapper() {
|
|
||||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
|
||||||
sidebar.removeAttribute("hidden");
|
|
||||||
if (Services.prefs.getBoolPref("zen.sidebar.floating")) {
|
|
||||||
this._setPinnedToElements();
|
|
||||||
}
|
|
||||||
return sidebar;
|
|
||||||
},
|
|
||||||
|
|
||||||
_closeSidebarPanel() {
|
_closeSidebarPanel() {
|
||||||
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
sidebar.setAttribute("hidden", "true");
|
sidebar.setAttribute("hidden", "true");
|
||||||
@@ -231,6 +256,19 @@ var gZenBrowserManagerSidebar = {
|
|||||||
this._updateWebPanel();
|
this._updateWebPanel();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_createNewPanel(url) {
|
||||||
|
let data = this.sidebarData;
|
||||||
|
let newName = "p" + new Date().getTime();
|
||||||
|
data.index.push(newName);
|
||||||
|
data.data[newName] = {
|
||||||
|
url: url,
|
||||||
|
ua: false,
|
||||||
|
};
|
||||||
|
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
||||||
|
this._currentPanel = newName;
|
||||||
|
this.open();
|
||||||
|
},
|
||||||
|
|
||||||
_updateButtons() {
|
_updateButtons() {
|
||||||
for (let button of this.sidebarElement.querySelectorAll(".zen-sidebar-panel-button")) {
|
for (let button of this.sidebarElement.querySelectorAll(".zen-sidebar-panel-button")) {
|
||||||
if (button.getAttribute("zen-sidebar-id") === this._currentPanel) {
|
if (button.getAttribute("zen-sidebar-id") === this._currentPanel) {
|
||||||
@@ -242,21 +280,26 @@ var gZenBrowserManagerSidebar = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_hideAllWebPanels() {
|
_hideAllWebPanels() {
|
||||||
let sidebar = this._openAndGetWebPanelWrapper();
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
for (let browser of sidebar.querySelectorAll("browser[zen-sidebar-id]")) {
|
for (let browser of sidebar.querySelectorAll("browser[zen-sidebar-id]")) {
|
||||||
browser.setAttribute("hidden", "true");
|
browser.setAttribute("hidden", "true");
|
||||||
browser.docShellIsActive = false;
|
browser.docShellIsActive = false;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
get introductionPanel() {
|
||||||
|
return document.getElementById("zen-sidebar-introduction-panel");
|
||||||
|
},
|
||||||
|
|
||||||
_updateWebPanel() {
|
_updateWebPanel() {
|
||||||
this._updateButtons();
|
this._updateButtons();
|
||||||
let sidebar = this._openAndGetWebPanelWrapper();
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
this._hideAllWebPanels();
|
this._hideAllWebPanels();
|
||||||
if (!this._currentPanel) {
|
if (!this._currentPanel) {
|
||||||
sidebar.setAttribute("hidden", "true");
|
this.introductionPanel.removeAttribute("hidden");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
this.introductionPanel.setAttribute("hidden", "true");
|
||||||
let existantWebview = this._getCurrentBrowser();
|
let existantWebview = this._getCurrentBrowser();
|
||||||
if (existantWebview) {
|
if (existantWebview) {
|
||||||
existantWebview.docShellIsActive = true;
|
existantWebview.docShellIsActive = true;
|
||||||
@@ -469,6 +512,8 @@ var gZenBrowserManagerSidebar = {
|
|||||||
browser.remove();
|
browser.remove();
|
||||||
}
|
}
|
||||||
this._closeSidebarPanel();
|
this._closeSidebarPanel();
|
||||||
|
this.close();
|
||||||
|
this._lastOpenedPanel = null;
|
||||||
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -476,6 +521,23 @@ var gZenBrowserManagerSidebar = {
|
|||||||
let browser = this._getBrowserById(this.contextTab);
|
let browser = this._getBrowserById(this.contextTab);
|
||||||
browser.remove();
|
browser.remove();
|
||||||
this._closeSidebarPanel();
|
this._closeSidebarPanel();
|
||||||
|
this.close();
|
||||||
|
this._lastOpenedPanel = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
insertIntoContextMenu() {
|
||||||
|
const sibling = document.getElementById("context-stripOnShareLink");
|
||||||
|
const menuitem = document.createXULElement("menuitem");
|
||||||
|
menuitem.setAttribute("id", "context-zenAddToWebPanel");
|
||||||
|
menuitem.setAttribute("hidden", "true");
|
||||||
|
menuitem.setAttribute("oncommand", "gZenBrowserManagerSidebar.addPanelFromContextMenu();");
|
||||||
|
menuitem.setAttribute("data-l10n-id", "zen-web-side-panel-context-add-to-panel");
|
||||||
|
sibling.insertAdjacentElement("afterend", menuitem);
|
||||||
|
},
|
||||||
|
|
||||||
|
addPanelFromContextMenu() {
|
||||||
|
const url = gContextMenu.linkURL || gContextMenu.target.ownerDocument.location.href;
|
||||||
|
this._createNewPanel(url);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -4,9 +4,78 @@ var gZenUIManager = {
|
|||||||
if (window.ownerGlobal.parent) {
|
if (window.ownerGlobal.parent) {
|
||||||
let tab = window.ownerGlobal.parent.gBrowser.addTrustedTab(url, options);
|
let tab = window.ownerGlobal.parent.gBrowser.addTrustedTab(url, options);
|
||||||
window.ownerGlobal.parent.gBrowser.selectedTab = tab;
|
window.ownerGlobal.parent.gBrowser.selectedTab = tab;
|
||||||
return;
|
return tab;
|
||||||
}
|
}
|
||||||
let tab = window.gBrowser.addTrustedTab(url, options);
|
let tab = window.gBrowser.addTrustedTab(url, options);
|
||||||
window.gBrowser.selectedTab = tab;
|
window.gBrowser.selectedTab = tab;
|
||||||
}
|
return tab;
|
||||||
|
},
|
||||||
|
|
||||||
|
generateUuidv4() {
|
||||||
|
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
|
||||||
|
(+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
toogleBookmarksSidebar() {
|
||||||
|
const button = document.getElementById('zen-bookmark-button');
|
||||||
|
SidebarController.toggle('viewBookmarksSidebar', button);
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
var gZenVerticalTabsManager = {
|
||||||
|
init() {
|
||||||
|
//Services.prefs.addObserver('zen.view.compact', this._updateEvent.bind(this));
|
||||||
|
Services.prefs.addObserver('zen.view.sidebar-expanded', this._updateEvent.bind(this));
|
||||||
|
Services.prefs.addObserver('zen.view.sidebar-expanded.max-width', this._updateEvent.bind(this));
|
||||||
|
this._updateMaxWidth();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateEvent() {
|
||||||
|
this._updateMaxWidth();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateMaxWidth() {
|
||||||
|
let isCompactMode = Services.prefs.getBoolPref('zen.view.compact');
|
||||||
|
let expanded = this.expanded;
|
||||||
|
let maxWidth = Services.prefs.getIntPref('zen.view.sidebar-expanded.max-width');
|
||||||
|
let toolbox = document.getElementById('navigator-toolbox');
|
||||||
|
if (expanded && !isCompactMode) {
|
||||||
|
toolbox.style.maxWidth = `${maxWidth}px`;
|
||||||
|
} else {
|
||||||
|
toolbox.style.removeProperty('maxWidth');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
get expanded() {
|
||||||
|
return Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
||||||
|
},
|
||||||
|
|
||||||
|
get expandButton() {
|
||||||
|
if (this._expandButton) {
|
||||||
|
return this._expandButton;
|
||||||
|
}
|
||||||
|
this._expandButton = document.getElementById('zen-expand-sidebar-button');
|
||||||
|
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() {
|
||||||
|
let expanded = !this.expanded;
|
||||||
|
Services.prefs.setBoolPref('zen.view.sidebar-expanded', expanded);
|
||||||
|
|
||||||
|
let toolbox = document.getElementById('navigator-toolbox');
|
||||||
|
toolbox.removeAttribute('width');
|
||||||
|
toolbox.style.removeProperty('width');
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
@@ -18,6 +18,7 @@ var gZenViewSplitter = {
|
|||||||
init() {
|
init() {
|
||||||
Services.prefs.setBoolPref("zen.splitView.working", false);
|
Services.prefs.setBoolPref("zen.splitView.working", false);
|
||||||
window.addEventListener("TabClose", this);
|
window.addEventListener("TabClose", this);
|
||||||
|
this.insertIntoContextMenu();
|
||||||
console.log("ZenViewSplitter initialized");
|
console.log("ZenViewSplitter initialized");
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -28,6 +29,18 @@ var gZenViewSplitter = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
insertIntoContextMenu() {
|
||||||
|
const sibling = document.getElementById("context-stripOnShareLink");
|
||||||
|
const menuitem = document.createXULElement("menuitem");
|
||||||
|
menuitem.setAttribute("id", "context-zenSplitLink");
|
||||||
|
menuitem.setAttribute("hidden", "true");
|
||||||
|
menuitem.setAttribute("oncommand", "gZenViewSplitter.contextSplitLink();");
|
||||||
|
menuitem.setAttribute("data-l10n-id", "zen-split-link");
|
||||||
|
const separator = document.createXULElement("menuseparator");
|
||||||
|
sibling.insertAdjacentElement("afterend", menuitem);
|
||||||
|
sibling.insertAdjacentElement("afterend", separator);
|
||||||
|
},
|
||||||
|
|
||||||
get tabBrowserPanel() {
|
get tabBrowserPanel() {
|
||||||
if (!this._tabBrowserPanel) {
|
if (!this._tabBrowserPanel) {
|
||||||
this._tabBrowserPanel = document.getElementById("tabbrowser-tabpanels");
|
this._tabBrowserPanel = document.getElementById("tabbrowser-tabpanels");
|
||||||
@@ -75,6 +88,13 @@ var gZenViewSplitter = {
|
|||||||
this._showSplitView(lastTab);
|
this._showSplitView(lastTab);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
contextSplitLink() {
|
||||||
|
const url = gContextMenu.linkURL || gContextMenu.target.ownerDocument.location.href;
|
||||||
|
const tab = gBrowser.selectedTab;
|
||||||
|
const newTab = gZenUIManager.openAndChangeToTab(url);
|
||||||
|
this.splitTabs([tab, newTab]);
|
||||||
|
},
|
||||||
|
|
||||||
onLocationChange(browser) {
|
onLocationChange(browser) {
|
||||||
let tab = gBrowser.getTabForBrowser(browser);
|
let tab = gBrowser.getTabForBrowser(browser);
|
||||||
this.updateSplitViewButton(!(tab && tab._zenSplitted));
|
this.updateSplitViewButton(!(tab && tab._zenSplitted));
|
||||||
@@ -89,6 +109,17 @@ var gZenViewSplitter = {
|
|||||||
if (tabs.length < 2) {
|
if (tabs.length < 2) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Check if any tab is already split
|
||||||
|
for (const tab of tabs) {
|
||||||
|
if (tab._zenSplitted) {
|
||||||
|
let index = this._data.findIndex((group) => group.tabs.includes(tab));
|
||||||
|
if (index < 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._showSplitView(tab);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
this._data.push({
|
this._data.push({
|
||||||
tabs,
|
tabs,
|
||||||
gridType: "grid",
|
gridType: "grid",
|
||||||
@@ -134,6 +165,8 @@ var gZenViewSplitter = {
|
|||||||
this.tabBrowserPanel.style.gridTemplateAreas = "";
|
this.tabBrowserPanel.style.gridTemplateAreas = "";
|
||||||
Services.prefs.setBoolPref("zen.splitView.working", false);
|
Services.prefs.setBoolPref("zen.splitView.working", false);
|
||||||
modifyDecks(this._data[this.currentView].tabs, false);
|
modifyDecks(this._data[this.currentView].tabs, false);
|
||||||
|
// console.log("Setting the active tab to be active", gBrowser.selectedTab);
|
||||||
|
gBrowser.selectedTab.linkedBrowser.docShellIsActive = true; // Make sure the active tab is active
|
||||||
this.currentView = -1;
|
this.currentView = -1;
|
||||||
if (!splitData) {
|
if (!splitData) {
|
||||||
return;
|
return;
|
||||||
|
@@ -1,8 +1,16 @@
|
|||||||
|
|
||||||
var ZenWorkspaces = {
|
var ZenWorkspaces = {
|
||||||
async init() {
|
async init() {
|
||||||
|
let docElement = document.documentElement;
|
||||||
|
if (docElement.getAttribute("chromehidden").includes("toolbar")
|
||||||
|
|| docElement.getAttribute("chromehidden").includes("menubar")
|
||||||
|
|| docElement.hasAttribute("privatebrowsingmode")) {
|
||||||
|
console.warn("ZenWorkspaces: !!! ZenWorkspaces is disabled in hidden windows !!!");
|
||||||
|
return; // We are in a hidden window, don't initialize ZenWorkspaces
|
||||||
|
}
|
||||||
|
console.log("ZenWorkspaces: Initializing ZenWorkspaces...");
|
||||||
await this.initializeWorkspaces();
|
await this.initializeWorkspaces();
|
||||||
console.log("ZenWorkspaces initialized");
|
console.log("ZenWorkspaces: ZenWorkspaces initialized");
|
||||||
},
|
},
|
||||||
|
|
||||||
get workspaceEnabled() {
|
get workspaceEnabled() {
|
||||||
@@ -18,57 +26,401 @@ var ZenWorkspaces = {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async _workspaces() {
|
||||||
|
if (!this._workspaceCache) {
|
||||||
|
this._workspaceCache = await IOUtils.readJSON(this._storeFile);
|
||||||
|
if (!this._workspaceCache.workspaces) {
|
||||||
|
this._workspaceCache.workspaces = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return this._workspaceCache;
|
||||||
|
},
|
||||||
|
|
||||||
|
onWorkspacesEnabledChanged() {
|
||||||
|
if (this.workspaceEnabled) {
|
||||||
|
this.initializeWorkspaces();
|
||||||
|
} else {
|
||||||
|
this._workspaceCache = null;
|
||||||
|
document.getElementById("zen-workspaces-button")?.remove();
|
||||||
|
for (let tab of gBrowser.tabs) {
|
||||||
|
gBrowser.showTab(tab);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
async initializeWorkspaces() {
|
async initializeWorkspaces() {
|
||||||
|
Services.prefs.addObserver("zen.workspaces.enabled", this.onWorkspacesEnabledChanged.bind(this));
|
||||||
|
this.initializeWorkspacesButton();
|
||||||
let file = new FileUtils.File(this._storeFile);
|
let file = new FileUtils.File(this._storeFile);
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
await IOUtils.writeJSON(this._storeFile, {});
|
await IOUtils.writeJSON(this._storeFile, {});
|
||||||
}
|
}
|
||||||
|
if (this.workspaceEnabled) {
|
||||||
|
let workspaces = await this._workspaces();
|
||||||
|
if (workspaces.workspaces.length === 0) {
|
||||||
|
await this.createAndSaveWorkspace("Default Workspace", true);
|
||||||
|
} else {
|
||||||
|
let activeWorkspace = workspaces.workspaces.find(workspace => workspace.default);
|
||||||
|
if (!activeWorkspace) {
|
||||||
|
activeWorkspace = workspaces.workspaces.find(workspace => workspace.used);
|
||||||
|
activeWorkspace.used = true;
|
||||||
|
await this.saveWorkspaces();
|
||||||
|
}
|
||||||
|
if (!activeWorkspace) {
|
||||||
|
activeWorkspace = workspaces.workspaces[0];
|
||||||
|
activeWorkspace.used = true;
|
||||||
|
await this.saveWorkspaces();
|
||||||
|
}
|
||||||
|
await this.changeWorkspace(activeWorkspace);
|
||||||
|
}
|
||||||
|
this._initializeWorkspaceIcons();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
async saveWorkspace(workspaceData, windowID) {
|
_initializeWorkspaceIcons() {
|
||||||
|
const kIcons = ["🏠", "📄", "💹", "💼", "📧", "✅", "👥"];
|
||||||
|
let container = document.getElementById("PanelUI-zen-workspaces-create-icons-container");
|
||||||
|
for (let icon of kIcons) {
|
||||||
|
let button = document.createXULElement("toolbarbutton");
|
||||||
|
button.className = "toolbarbutton-1";
|
||||||
|
button.setAttribute("label", icon);
|
||||||
|
button.onclick = ((event) => {
|
||||||
|
for (let button of container.children) {
|
||||||
|
button.removeAttribute("selected");
|
||||||
|
}
|
||||||
|
button.setAttribute("selected", "true");
|
||||||
|
}).bind(this, button);
|
||||||
|
container.appendChild(button);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async saveWorkspace(workspaceData) {
|
||||||
let json = await IOUtils.readJSON(this._storeFile);
|
let json = await IOUtils.readJSON(this._storeFile);
|
||||||
json[windowID] = workspaceData;
|
if (typeof json.workspaces === "undefined") {
|
||||||
|
json.workspaces = [];
|
||||||
|
}
|
||||||
|
json.workspaces.push(workspaceData);
|
||||||
|
console.log("ZenWorkspaces: Saving workspace", workspaceData);
|
||||||
await IOUtils.writeJSON(this._storeFile, json);
|
await IOUtils.writeJSON(this._storeFile, json);
|
||||||
},
|
this._workspaceCache = null;
|
||||||
|
|
||||||
async loadWorkspace(windowID) {
|
|
||||||
let json = await IOUtils.readJSON(this._storeFile);
|
|
||||||
return json[windowID];
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async removeWorkspace(windowID) {
|
async removeWorkspace(windowID) {
|
||||||
let json = await IOUtils.readJSON(this._storeFile);
|
let json = await this._workspaces();
|
||||||
delete json[windowID];
|
console.log("ZenWorkspaces: Removing workspace", windowID);
|
||||||
await IOUtils.writeJSON(this._storeFile, json);
|
await this.changeWorkspace(json.workspaces.find(workspace => workspace.uuid !== windowID));
|
||||||
|
this._deleteAllTabsInWorkspace(windowID);
|
||||||
|
json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID);
|
||||||
|
await this.unsafeSaveWorkspaces(json);
|
||||||
|
await this._propagateWorkspaceData();
|
||||||
},
|
},
|
||||||
|
|
||||||
async getWorkspaces() {
|
async saveWorkspaces() {
|
||||||
let json = await IOUtils.readJSON(this._storeFile);
|
await IOUtils.writeJSON(this._storeFile, await this._workspaces());
|
||||||
return json;
|
this._workspaceCache = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
async getWorkspace(windowID) {
|
async unsafeSaveWorkspaces(workspaces) {
|
||||||
let json = await IOUtils.readJSON(this._storeFile);
|
await IOUtils.writeJSON(this._storeFile, workspaces);
|
||||||
return json[windowID];
|
this._workspaceCache = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
// Workspaces dialog UI management
|
||||||
|
|
||||||
|
openSaveDialog() {
|
||||||
|
let parentPanel = document.getElementById("PanelUI-zen-workspaces-multiview");
|
||||||
|
PanelUI.showSubView("PanelUI-zen-workspaces-create", parentPanel);
|
||||||
|
},
|
||||||
|
|
||||||
|
cancelWorkspaceCreation() {
|
||||||
|
let parentPanel = document.getElementById("PanelUI-zen-workspaces-multiview");
|
||||||
|
parentPanel.goBack();
|
||||||
|
},
|
||||||
|
|
||||||
|
workspaceHasIcon(workspace) {
|
||||||
|
return typeof workspace.icon !== "undefined" && workspace.icon !== "";
|
||||||
|
},
|
||||||
|
|
||||||
|
getWorkspaceIcon(workspace) {
|
||||||
|
if (this.workspaceHasIcon(workspace)) {
|
||||||
|
return workspace.icon;
|
||||||
|
}
|
||||||
|
return workspace.name[0].toUpperCase();
|
||||||
|
},
|
||||||
|
|
||||||
|
async _propagateWorkspaceData() {
|
||||||
|
let currentContainer = document.getElementById("PanelUI-zen-workspaces-current-info");
|
||||||
|
let workspaceList = document.getElementById("PanelUI-zen-workspaces-list");
|
||||||
|
const createWorkspaceElement = (workspace) => {
|
||||||
|
let element = document.createXULElement("toolbarbutton");
|
||||||
|
element.className = "subviewbutton";
|
||||||
|
element.setAttribute("tooltiptext", workspace.name);
|
||||||
|
element.setAttribute("zen-workspace-id", workspace.uuid);
|
||||||
|
//element.setAttribute("context", "zenWorkspaceActionsMenu");
|
||||||
|
let childs = window.MozXULElement.parseXULToFragment(`
|
||||||
|
<div class="zen-workspace-icon">
|
||||||
|
${this.getWorkspaceIcon(workspace)}
|
||||||
|
</div>
|
||||||
|
<div class="zen-workspace-name">
|
||||||
|
${workspace.name}
|
||||||
|
</div>
|
||||||
|
<toolbarbutton closemenu="none" class="toolbarbutton-1 zen-workspace-actions">
|
||||||
|
<image class="toolbarbutton-icon" id="zen-workspace-actions-menu-icon"></image>
|
||||||
|
</toolbarbutton>
|
||||||
|
`);
|
||||||
|
childs.querySelector(".zen-workspace-actions").addEventListener("command", ((event) => {
|
||||||
|
let button = event.target;
|
||||||
|
this._contextMenuId = button.closest("toolbarbutton[zen-workspace-id]").getAttribute("zen-workspace-id");
|
||||||
|
const popup = button.ownerDocument.getElementById(
|
||||||
|
"zenWorkspaceActionsMenu"
|
||||||
|
);
|
||||||
|
popup.openPopup(button, "after_end");
|
||||||
|
}).bind(this));
|
||||||
|
element.appendChild(childs);
|
||||||
|
element.onclick = (async () => {
|
||||||
|
if (event.target.closest(".zen-workspace-actions")) {
|
||||||
|
return; // Ignore clicks on the actions button
|
||||||
|
}
|
||||||
|
await this.changeWorkspace(workspace)
|
||||||
|
let panel = document.getElementById("PanelUI-zen-workspaces");
|
||||||
|
PanelMultiView.hidePopup(panel);
|
||||||
|
}).bind(this, workspace);
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
let workspaces = await this._workspaces();
|
||||||
|
let activeWorkspace = workspaces.workspaces.find(workspace => workspace.used);
|
||||||
|
currentContainer.innerHTML = "";
|
||||||
|
workspaceList.innerHTML = "";
|
||||||
|
workspaceList.parentNode.style.display = "flex";
|
||||||
|
if (workspaces.workspaces.length - 1 <= 0) {
|
||||||
|
workspaceList.innerHTML = "No workspaces available";
|
||||||
|
workspaceList.setAttribute("empty", "true");
|
||||||
|
} else {
|
||||||
|
workspaceList.removeAttribute("empty");
|
||||||
|
}
|
||||||
|
if (activeWorkspace) {
|
||||||
|
let currentWorkspace = createWorkspaceElement(activeWorkspace);
|
||||||
|
currentContainer.appendChild(currentWorkspace);
|
||||||
|
}
|
||||||
|
for (let workspace of workspaces.workspaces) {
|
||||||
|
if (workspace.used) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
let workspaceElement = createWorkspaceElement(workspace);
|
||||||
|
workspaceList.appendChild(workspaceElement);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
async openWorkspacesDialog(event) {
|
||||||
|
if (!this.workspaceEnabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let target = event.target;
|
||||||
|
let panel = document.getElementById("PanelUI-zen-workspaces");
|
||||||
|
await this._propagateWorkspaceData();
|
||||||
|
PanelMultiView.openPopup(panel, target, {
|
||||||
|
position: "bottomright topright",
|
||||||
|
triggerEvent: event,
|
||||||
|
}).catch(console.error);
|
||||||
|
},
|
||||||
|
|
||||||
|
initializeWorkspacesButton() {
|
||||||
|
if (!this.workspaceEnabled) {
|
||||||
|
return;
|
||||||
|
} else if (document.getElementById("zen-workspaces-button")) {
|
||||||
|
let button = document.getElementById("zen-workspaces-button");
|
||||||
|
button.removeAttribute("hidden");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let browserTabs = document.getElementById("tabbrowser-tabs");
|
||||||
|
let button = document.createElement("toolbarbutton");
|
||||||
|
button.id = "zen-workspaces-button";
|
||||||
|
button.className = "toolbarbutton-1 chromeclass-toolbar-additional";
|
||||||
|
button.setAttribute("label", "Workspaces");
|
||||||
|
button.setAttribute("tooltiptext", "Workspaces");
|
||||||
|
button.onclick = this.openWorkspacesDialog.bind(this);
|
||||||
|
browserTabs.insertAdjacentElement("beforebegin", button);
|
||||||
|
},
|
||||||
|
|
||||||
|
async _updateWorkspacesButton() {
|
||||||
|
let button = document.getElementById("zen-workspaces-button");
|
||||||
|
if (!button) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let activeWorkspace = (await this._workspaces()).workspaces.find(workspace => workspace.used);
|
||||||
|
if (activeWorkspace) {
|
||||||
|
button.innerHTML = `
|
||||||
|
<div class="zen-workspace-sidebar-icon">
|
||||||
|
${this.getWorkspaceIcon(activeWorkspace)}
|
||||||
|
</div>
|
||||||
|
<div class="zen-workspace-sidebar-name">
|
||||||
|
${activeWorkspace.name}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
if (!this.workspaceHasIcon(activeWorkspace)) {
|
||||||
|
button.querySelector(".zen-workspace-sidebar-icon").setAttribute("no-icon", "true");
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// Workspaces management
|
// Workspaces management
|
||||||
|
|
||||||
_createWorkspaceData(windowID) {
|
get _workspaceInput() {
|
||||||
let window = Services.wm.getOuterWindowWithId(windowID);
|
return document.getElementById("PanelUI-zen-workspaces-create-input");
|
||||||
let tabs = Array.from(window.gBrowser.tabs).map(tab => ({
|
|
||||||
url: tab.linkedBrowser.currentURI.spec,
|
|
||||||
title: tab.label,
|
|
||||||
}));
|
|
||||||
return {
|
|
||||||
tabs,
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async saveCurrentWorkspace(windowID) {
|
_deleteAllTabsInWorkspace(workspaceID) {
|
||||||
let workspaceData = this._createWorkspaceData(windowID);
|
for (let tab of gBrowser.tabs) {
|
||||||
await this.saveWorkspace(workspaceData, windowID);
|
if (tab.getAttribute("zen-workspace-id") === workspaceID) {
|
||||||
|
gBrowser.removeTab(tab, {
|
||||||
|
animate: true,
|
||||||
|
skipSessionStore: true,
|
||||||
|
closeWindowWithLastTab: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_prepareNewWorkspace(window) {
|
||||||
|
document.documentElement.setAttribute("zen-workspace-id", window.uuid);
|
||||||
|
let tabCount = 0;
|
||||||
|
for (let tab of gBrowser.tabs) {
|
||||||
|
if (!tab.hasAttribute("zen-workspace-id")) {
|
||||||
|
tab.setAttribute("zen-workspace-id", window.uuid);
|
||||||
|
tabCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tabCount === 0) {
|
||||||
|
this._createNewTabForWorkspace(window);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
_createNewTabForWorkspace(window) {
|
||||||
|
let tab = gZenUIManager.openAndChangeToTab(Services.prefs.getStringPref("browser.startup.homepage"));
|
||||||
|
tab.setAttribute("zen-workspace-id", window.uuid);
|
||||||
|
},
|
||||||
|
|
||||||
|
async saveWorkspaceFromInput() {
|
||||||
|
// Go to the next view
|
||||||
|
let parentPanel = document.getElementById("PanelUI-zen-workspaces-multiview");
|
||||||
|
PanelUI.showSubView("PanelUI-zen-workspaces-create-icons", parentPanel);
|
||||||
|
},
|
||||||
|
|
||||||
|
async saveWorkspaceFromIcon() {
|
||||||
|
let workspaceName = this._workspaceInput.value;
|
||||||
|
if (!workspaceName) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this._workspaceInput.value = "";
|
||||||
|
let icon = document.querySelector("#PanelUI-zen-workspaces-create-icons-container [selected]");
|
||||||
|
icon?.removeAttribute("selected");
|
||||||
|
await this.createAndSaveWorkspace(workspaceName, false, icon?.label);
|
||||||
|
document.getElementById("PanelUI-zen-workspaces").hidePopup(true);
|
||||||
|
},
|
||||||
|
|
||||||
|
onWorkspaceNameChange(event) {
|
||||||
|
let button = document.getElementById("PanelUI-zen-workspaces-create-save");
|
||||||
|
if (this._workspaceInput.value === "") {
|
||||||
|
button.setAttribute("disabled", "true");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
button.removeAttribute("disabled");
|
||||||
|
},
|
||||||
|
|
||||||
|
async changeWorkspace(window) {
|
||||||
|
if (!this.workspaceEnabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let firstTab = undefined;
|
||||||
|
let workspaces = await this._workspaces();
|
||||||
|
for (let workspace of workspaces.workspaces) {
|
||||||
|
workspace.used = workspace.uuid === window.uuid;
|
||||||
|
}
|
||||||
|
this.unsafeSaveWorkspaces(workspaces);
|
||||||
|
console.log("ZenWorkspaces: Changing workspace to", window.uuid);
|
||||||
|
for (let tab of gBrowser.tabs) {
|
||||||
|
if (tab.getAttribute("zen-workspace-id") === window.uuid && !tab.pinned) {
|
||||||
|
if (!firstTab) {
|
||||||
|
firstTab = tab;
|
||||||
|
gBrowser.selectedTab = firstTab;
|
||||||
|
}
|
||||||
|
gBrowser.showTab(tab);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (typeof firstTab === "undefined") {
|
||||||
|
this._createNewTabForWorkspace(window);
|
||||||
|
}
|
||||||
|
for (let tab of gBrowser.tabs) {
|
||||||
|
if (tab.getAttribute("zen-workspace-id") !== window.uuid) {
|
||||||
|
gBrowser.hideTab(tab);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
document.documentElement.setAttribute("zen-workspace-id", window.uuid);
|
||||||
|
await this.saveWorkspaces();
|
||||||
|
await this._updateWorkspacesButton();
|
||||||
|
await this._propagateWorkspaceData();
|
||||||
|
},
|
||||||
|
|
||||||
|
_createWorkspaceData(name, isDefault, icon) {
|
||||||
|
let window = {
|
||||||
|
uuid: gZenUIManager.generateUuidv4(),
|
||||||
|
default: isDefault,
|
||||||
|
used: true,
|
||||||
|
icon: icon,
|
||||||
|
name: name,
|
||||||
|
};
|
||||||
|
this._prepareNewWorkspace(window);
|
||||||
|
return window;
|
||||||
|
},
|
||||||
|
|
||||||
|
async createAndSaveWorkspace(name = "New Workspace", isDefault = false, icon = undefined) {
|
||||||
|
if (!this.workspaceEnabled) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let workspaceData = this._createWorkspaceData(name, isDefault, icon);
|
||||||
|
await this.saveWorkspace(workspaceData);
|
||||||
|
await this.changeWorkspace(workspaceData);
|
||||||
|
},
|
||||||
|
|
||||||
|
async onLocationChange(browser) {
|
||||||
|
let tab = gBrowser.getTabForBrowser(browser);
|
||||||
|
let workspaceID = tab.getAttribute("zen-workspace-id");
|
||||||
|
if (!workspaceID) {
|
||||||
|
let workspaces = await this._workspaces();
|
||||||
|
let activeWorkspace = workspaces.workspaces.find(workspace => workspace.used);
|
||||||
|
if (!activeWorkspace) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
tab.setAttribute("zen-workspace-id", activeWorkspace.uuid);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
// Context menu management
|
||||||
|
|
||||||
|
_contextMenuId: null,
|
||||||
|
async updateContextMenu(_) {
|
||||||
|
console.assert(this._contextMenuId, "No context menu ID set");
|
||||||
|
document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`).setAttribute("active", "true");
|
||||||
|
const workspaces = await this._workspaces();
|
||||||
|
let deleteMenuItem = document.getElementById("context_zenDeleteWorkspace");
|
||||||
|
if (workspaces.workspaces.length <= 1 || workspaces.workspaces.find(workspace => workspace.uuid === this._contextMenuId).default) {
|
||||||
|
deleteMenuItem.setAttribute("disabled", "true");
|
||||||
|
} else {
|
||||||
|
deleteMenuItem.removeAttribute("disabled");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
onContextMenuClose() {
|
||||||
|
let target = document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`);
|
||||||
|
if (target) {
|
||||||
|
target.removeAttribute("active");
|
||||||
|
}
|
||||||
|
this._contextMenuId = null;
|
||||||
|
},
|
||||||
|
|
||||||
|
async contextDelete() {
|
||||||
|
await this.removeWorkspace(this._contextMenuId);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ZenWorkspaces.init();
|
ZenWorkspaces.init();
|
||||||
|
@@ -1,11 +0,0 @@
|
|||||||
diff --git a/browser/base/content/appmenu-viewcache.inc.xhtml b/browser/base/content/appmenu-viewcache.inc.xhtml
|
|
||||||
index 07b1765f18236835363fb74c898d3a690659cc9b..7b58cbb5de147ed29fbc48c0093c731fe5cca90b 100644
|
|
||||||
--- a/browser/base/content/appmenu-viewcache.inc.xhtml
|
|
||||||
+++ b/browser/base/content/appmenu-viewcache.inc.xhtml
|
|
||||||
@@ -765,5 +765,6 @@
|
|
||||||
</vbox>
|
|
||||||
</panelview>
|
|
||||||
|
|
||||||
+#include zen-panels-ui.inc.xhtml
|
|
||||||
#include ../../components/reportbrokensite/content/reportBrokenSitePanel.inc.xhtml
|
|
||||||
</html:template>
|
|
@@ -1,12 +1,10 @@
|
|||||||
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 b0308911446dd6fc549401371a85faa6341f8338..3942a0b45308b110685c34e8a9367d7c5d40d8c4 100644
|
index 16559b2c0e3aef391b43e09281aee24007feb0bd..2579cea92a55fabb73fdd130c3706af08c3fd849 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
|
||||||
@@ -18,12 +18,18 @@
|
@@ -21,11 +21,15 @@
|
||||||
<browser id="sidebar" autoscroll="false" disablehistory="true" disablefullscreen="true" tooltip="aHTMLTooltip"/>
|
|
||||||
</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="browser">
|
|
||||||
<vbox id="appcontent" flex="1">
|
<vbox id="appcontent" flex="1">
|
||||||
+ <html:div id="zen-appcontent-navbar-container"></html:div>
|
+ <html:div id="zen-appcontent-navbar-container"></html:div>
|
||||||
<!-- gNotificationBox will be added here lazily. -->
|
<!-- gNotificationBox will be added here lazily. -->
|
||||||
@@ -18,6 +16,5 @@ index b0308911446dd6fc549401371a85faa6341f8338..3942a0b45308b110685c34e8a9367d7c
|
|||||||
flex="1" selectedIndex="0"/>
|
flex="1" selectedIndex="0"/>
|
||||||
</tabbox>
|
</tabbox>
|
||||||
+ </hbox>
|
+ </hbox>
|
||||||
+ </vbox>
|
|
||||||
</vbox>
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
@@ -1,13 +1,14 @@
|
|||||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||||
index a79a9734619f89639c15087fe28e9615354a7209..212628c6fb2bed5ba17a3d2908f5d4b2376fa95e 100644
|
index a79a9734619f89639c15087fe28e9615354a7209..edaef604d33d76b570571e1bbb2ebc590e045d87 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
|
||||||
@@ -230,6 +230,8 @@ var gBrowserInit = {
|
@@ -237,6 +237,9 @@ var gBrowserInit = {
|
||||||
gURLBar.readOnly = true;
|
gPrivateBrowsingUI.init();
|
||||||
|
BrowserSearch.init();
|
||||||
|
BrowserPageActions.init();
|
||||||
|
+
|
||||||
|
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||||
|
+
|
||||||
|
if (gToolbarKeyNavEnabled) {
|
||||||
|
ToolbarKeyboardNavigator.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", this);
|
|
||||||
+
|
|
||||||
// Misc. inits.
|
|
||||||
gUIDensity.init();
|
|
||||||
TabletModeUpdater.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 5f41ca778131eedfd32043dc27d6528be978c4fb..086b01e8fdf80dd333d80b9eede190cdb5315b70 100644
|
index b18f371a47fec53882c3dfb68e34d1a474eaf446..2c183d7e7fc65e00403f5e40e7859b915a3ea700 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
|
||||||
@@ -630,6 +630,15 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
@@ -630,6 +630,15 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
@@ -18,16 +18,17 @@ index 5f41ca778131eedfd32043dc27d6528be978c4fb..086b01e8fdf80dd333d80b9eede190cd
|
|||||||
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",
|
||||||
@@ -3668,6 +3677,8 @@ var XULBrowserWindow = {
|
@@ -3679,6 +3688,9 @@ 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);
|
||||||
+
|
+
|
||||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
if (!gMultiProcessBrowser) {
|
if (!gMultiProcessBrowser) {
|
||||||
@@ -4982,7 +4993,7 @@ function setToolbarVisibility(
|
@@ -5001,7 +5013,7 @@ function setToolbarVisibility(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,7 +37,7 @@ index 5f41ca778131eedfd32043dc27d6528be978c4fb..086b01e8fdf80dd333d80b9eede190cd
|
|||||||
switch (isVisible) {
|
switch (isVisible) {
|
||||||
case true:
|
case true:
|
||||||
case "always":
|
case "always":
|
||||||
@@ -7813,6 +7824,12 @@ var gDialogBox = {
|
@@ -7832,6 +7844,12 @@ var gDialogBox = {
|
||||||
parentElement.showModal();
|
parentElement.showModal();
|
||||||
this._didOpenHTMLDialog = true;
|
this._didOpenHTMLDialog = true;
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
index 0a67afa81ff5e10dcbfb53149f7ed9109de084ac..bdcce262b5fc18767efd1054fd724b97c42471e4 100644
|
index 390a1300a1213af2b411ba09c67e3c25750ee6c3..7c80c54dd43b5414bf5ea9101d53431c0b4a140b 100644
|
||||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
@@ -32,10 +32,11 @@
|
@@ -32,10 +32,11 @@
|
||||||
|
18
src/browser/base/content/nsContextMenu-js.patch
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/browser/base/content/nsContextMenu.js b/browser/base/content/nsContextMenu.js
|
||||||
|
index b5c8dd44daaab18397cf01d0ef9f5288f5113925..8840b8171d5992da0a2f6216d8da9e1ec6dc1e93 100644
|
||||||
|
--- a/browser/base/content/nsContextMenu.js
|
||||||
|
+++ b/browser/base/content/nsContextMenu.js
|
||||||
|
@@ -1047,6 +1047,13 @@ class nsContextMenu {
|
||||||
|
!this.isSecureAboutPage()
|
||||||
|
);
|
||||||
|
|
||||||
|
+ this.showItem(
|
||||||
|
+ "context-zenAddToWebPanel",
|
||||||
|
+ this.onLink && !this.onMailtoLink && !this.onTelLink
|
||||||
|
+ );
|
||||||
|
+
|
||||||
|
+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink);
|
||||||
|
+
|
||||||
|
let copyLinkSeparator = document.getElementById("context-sep-copylink");
|
||||||
|
// Show "Copy Link", "Copy" and "Copy Clean Link" with no divider, and "copy link" and "Send link to Device" with no divider between.
|
||||||
|
// Other cases will show a divider.
|
1
src/browser/base/content/zen-avatars/avatar-0-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#253342"></rect><rect x="10" y="30" width="80" height="10" fill="#232226" transform="translate(6 -6) rotate(236 40 40)"></rect><circle cx="40" cy="40" fill="#DDDDDD" r="16" transform="translate(15 15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#5E9188" transform="translate(12 -12) rotate(112 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |
1
src/browser/base/content/zen-avatars/avatar-0-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFF6C7"></rect><rect x="10" y="30" width="80" height="10" fill="#DCD7C2" transform="translate(6 -6) rotate(236 40 40)"></rect><circle cx="40" cy="40" fill="#9D9382" r="16" transform="translate(15 15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFC1B2" transform="translate(12 -12) rotate(112 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#fac89a"></rect><rect x="0" y="0" width="36" height="36" transform="translate(1 1) rotate(43 18 18) scale(1.1)" fill="#e290ff" rx="36"></rect><g transform="translate(-3 -1) rotate(-3 18 18)"><path d="M15 20c2 1 4 1 6 0" stroke="#000000" fill="none" stroke-linecap="round"></path><rect x="11" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="23" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 785 B |
1
src/browser/base/content/zen-avatars/avatar-1-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#5E9188"></rect><rect x="10" y="30" width="80" height="80" fill="#3E5954" transform="translate(-8 -8) rotate(222 40 40)"></rect><circle cx="40" cy="40" fill="#253342" r="16" transform="translate(9 -9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#232226" transform="translate(-4 4) rotate(84 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 671 B |
1
src/browser/base/content/zen-avatars/avatar-1-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFC1B2"></rect><rect x="10" y="30" width="80" height="80" fill="#FFDBC8" transform="translate(-8 -8) rotate(222 40 40)"></rect><circle cx="40" cy="40" fill="#FFF6C7" r="16" transform="translate(9 -9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#DCD7C2" transform="translate(-4 4) rotate(84 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 671 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(-2 6) rotate(106 18 18) scale(1.1)" fill="#fac89a" rx="36"></rect><g transform="translate(-2 3) rotate(-6 18 18)"><path d="M13,20 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="13" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="21" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 756 B |
1
src/browser/base/content/zen-avatars/avatar-10-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#3E5954"></rect><rect x="10" y="30" width="80" height="80" fill="#253342" transform="translate(16 -16) rotate(214 40 40)"></rect><circle cx="40" cy="40" fill="#232226" r="16" transform="translate(-15 -15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#DDDDDD" transform="translate(-8 8) rotate(68 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 675 B |
1
src/browser/base/content/zen-avatars/avatar-10-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFDBC8"></rect><rect x="10" y="30" width="80" height="80" fill="#FFF6C7" transform="translate(16 -16) rotate(214 40 40)"></rect><circle cx="40" cy="40" fill="#DCD7C2" r="16" transform="translate(-15 -15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#9D9382" transform="translate(-8 8) rotate(68 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 675 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(4 4) rotate(110 18 18) scale(1.2)" fill="#fac89a" rx="6"></rect><g transform="translate(6 -3) rotate(0 18 18)"><path d="M15 21c2 1 4 1 6 0" stroke="#000000" fill="none" stroke-linecap="round"></path><rect x="14" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="20" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 783 B |
1
src/browser/base/content/zen-avatars/avatar-11-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#253342"></rect><rect x="10" y="30" width="80" height="80" fill="#232226" transform="translate(20 20) rotate(276 40 40)"></rect><circle cx="40" cy="40" fill="#DDDDDD" r="16" transform="translate(0 0)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#5E9188" transform="translate(12 12) rotate(192 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 672 B |
1
src/browser/base/content/zen-avatars/avatar-11-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFF6C7"></rect><rect x="10" y="30" width="80" height="80" fill="#DCD7C2" transform="translate(20 20) rotate(276 40 40)"></rect><circle cx="40" cy="40" fill="#9D9382" r="16" transform="translate(0 0)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFC1B2" transform="translate(12 12) rotate(192 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 672 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(8 8) rotate(178 18 18) scale(1.1)" fill="#fac89a" rx="6"></rect><g transform="translate(4 4) rotate(-8 18 18)"><path d="M13,20 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="11" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="23" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 753 B |
1
src/browser/base/content/zen-avatars/avatar-12-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#232226"></rect><rect x="10" y="30" width="80" height="80" fill="#DDDDDD" transform="translate(0 0) rotate(88 40 40)"></rect><circle cx="40" cy="40" fill="#5E9188" r="16" transform="translate(18 -18)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#3E5954" transform="translate(16 -16) rotate(176 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 673 B |
1
src/browser/base/content/zen-avatars/avatar-12-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#DCD7C2"></rect><rect x="10" y="30" width="80" height="80" fill="#9D9382" transform="translate(0 0) rotate(88 40 40)"></rect><circle cx="40" cy="40" fill="#FFC1B2" r="16" transform="translate(18 -18)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFDBC8" transform="translate(16 -16) rotate(176 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 673 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(6 2) rotate(52 18 18) scale(1.1)" fill="#fac89a" rx="6"></rect><g transform="translate(4 -1) rotate(-2 18 18)"><path d="M15 20c2 1 4 1 6 0" stroke="#000000" fill="none" stroke-linecap="round"></path><rect x="12" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="22" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 783 B |
1
src/browser/base/content/zen-avatars/avatar-13-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#3E5954"></rect><rect x="10" y="30" width="80" height="10" fill="#253342" transform="translate(-10 10) rotate(64 40 40)"></rect><circle cx="40" cy="40" fill="#232226" r="16" transform="translate(0 0)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#DDDDDD" transform="translate(-8 -8) rotate(128 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 672 B |
1
src/browser/base/content/zen-avatars/avatar-13-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFDBC8"></rect><rect x="10" y="30" width="80" height="10" fill="#FFF6C7" transform="translate(-10 10) rotate(64 40 40)"></rect><circle cx="40" cy="40" fill="#DCD7C2" r="16" transform="translate(0 0)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#9D9382" transform="translate(-8 -8) rotate(128 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 672 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(6 -2) rotate(236 18 18) scale(1.2)" fill="#fac89a" rx="6"></rect><g transform="translate(4 -4) rotate(6 18 18)"><path d="M15 21c2 1 4 1 6 0" stroke="#000000" fill="none" stroke-linecap="round"></path><rect x="13" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="21" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 784 B |
1
src/browser/base/content/zen-avatars/avatar-14-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#253342"></rect><rect x="10" y="30" width="80" height="80" fill="#232226" transform="translate(-20 20) rotate(106 40 40)"></rect><circle cx="40" cy="40" fill="#DDDDDD" r="16" transform="translate(9 -9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#5E9188" transform="translate(12 12) rotate(212 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |
1
src/browser/base/content/zen-avatars/avatar-14-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFF6C7"></rect><rect x="10" y="30" width="80" height="80" fill="#DCD7C2" transform="translate(-20 20) rotate(106 40 40)"></rect><circle cx="40" cy="40" fill="#9D9382" r="16" transform="translate(9 -9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFC1B2" transform="translate(12 12) rotate(212 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(0 8) rotate(124 18 18) scale(1.1)" fill="#fac89a" rx="36"></rect><g transform="translate(-4 4) rotate(4 18 18)"><path d="M13,20 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="10" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="24" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 754 B |
1
src/browser/base/content/zen-avatars/avatar-15-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#232226"></rect><rect x="10" y="30" width="80" height="80" fill="#DDDDDD" transform="translate(0 0) rotate(28 40 40)"></rect><circle cx="40" cy="40" fill="#5E9188" r="16" transform="translate(-12 12)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#3E5954" transform="translate(16 16) rotate(56 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 671 B |
1
src/browser/base/content/zen-avatars/avatar-15-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#DCD7C2"></rect><rect x="10" y="30" width="80" height="80" fill="#9D9382" transform="translate(0 0) rotate(28 40 40)"></rect><circle cx="40" cy="40" fill="#FFC1B2" r="16" transform="translate(-12 12)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFDBC8" transform="translate(16 16) rotate(56 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 671 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(6 6) rotate(192 18 18) scale(1)" fill="#fac89a" rx="6"></rect><g transform="translate(0 2) rotate(-2 18 18)"><path d="M13,19 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="12" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="22" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 751 B |
1
src/browser/base/content/zen-avatars/avatar-16-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#3E5954"></rect><rect x="10" y="30" width="80" height="10" fill="#253342" transform="translate(-20 20) rotate(184 40 40)"></rect><circle cx="40" cy="40" fill="#232226" r="16" transform="translate(18 18)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#DDDDDD" transform="translate(-8 -8) rotate(8 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 673 B |
1
src/browser/base/content/zen-avatars/avatar-16-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFDBC8"></rect><rect x="10" y="30" width="80" height="10" fill="#FFF6C7" transform="translate(-20 20) rotate(184 40 40)"></rect><circle cx="40" cy="40" fill="#DCD7C2" r="16" transform="translate(18 18)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#9D9382" transform="translate(-8 -8) rotate(8 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 673 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#e290ff"></rect><rect x="0" y="0" width="36" height="36" transform="translate(0 8) rotate(164 18 18) scale(1.2)" fill="#fac89a" rx="36"></rect><g transform="translate(-4 4) rotate(4 18 18)"><path d="M13,21 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="10" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="24" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 754 B |
1
src/browser/base/content/zen-avatars/avatar-17-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#232226"></rect><rect x="10" y="30" width="80" height="10" fill="#DDDDDD" transform="translate(-14 -14) rotate(68 40 40)"></rect><circle cx="40" cy="40" fill="#5E9188" r="16" transform="translate(-9 9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#3E5954" transform="translate(16 -16) rotate(136 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 675 B |
1
src/browser/base/content/zen-avatars/avatar-17-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#DCD7C2"></rect><rect x="10" y="30" width="80" height="10" fill="#9D9382" transform="translate(-14 -14) rotate(68 40 40)"></rect><circle cx="40" cy="40" fill="#FFC1B2" r="16" transform="translate(-9 9)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#FFDBC8" transform="translate(16 -16) rotate(136 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 675 B |
@@ -1 +0,0 @@
|
|||||||
<svg viewBox="0 0 36 36" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__beam" maskUnits="userSpaceOnUse" x="0" y="0" width="36" height="36"><rect width="36" height="36" rx="72" fill="#FFFFFF"></rect></mask><g mask="url(#mask__beam)"><rect width="36" height="36" fill="#fac89a"></rect><rect x="0" y="0" width="36" height="36" transform="translate(5 5) rotate(35 18 18) scale(1.2)" fill="#e290ff" rx="6"></rect><g transform="translate(3 6) rotate(-5 18 18)"><path d="M13,21 a1,0.75 0 0,0 10,0" fill="#000000"></path><rect x="14" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect><rect x="20" y="14" width="1.5" height="2" rx="1" stroke="none" fill="#000000"></rect></g></g></svg>
|
|
Before Width: | Height: | Size: 752 B |
1
src/browser/base/content/zen-avatars/avatar-18-dark.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#3E5954"></rect><rect x="10" y="30" width="80" height="10" fill="#253342" transform="translate(14 -14) rotate(14 40 40)"></rect><circle cx="40" cy="40" fill="#232226" r="16" transform="translate(-15 -15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#DDDDDD" transform="translate(-8 8) rotate(28 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |
1
src/browser/base/content/zen-avatars/avatar-18-light.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg viewBox="0 0 80 80" fill="none" role="img" xmlns="http://www.w3.org/2000/svg" width="120" height="120"><mask id="mask__bauhaus" maskUnits="userSpaceOnUse" x="0" y="0" width="80" height="80"><rect width="80" height="80" rx="160" fill="#FFFFFF"></rect></mask><g mask="url(#mask__bauhaus)"><rect width="80" height="80" fill="#FFDBC8"></rect><rect x="10" y="30" width="80" height="10" fill="#FFF6C7" transform="translate(14 -14) rotate(14 40 40)"></rect><circle cx="40" cy="40" fill="#DCD7C2" r="16" transform="translate(-15 -15)"></circle><line x1="0" y1="40" x2="80" y2="40" stroke-width="2" stroke="#9D9382" transform="translate(-8 8) rotate(28 40 40)"></line></g></svg>
|
After Width: | Height: | Size: 674 B |