Compare commits

...

386 Commits

Author SHA1 Message Date
Mauro Balades
2d72365dbd chore: Update ZenUIManager and Zen browser theme 2024-08-05 01:06:01 +02:00
Mauro Balades
d61186a042 chore: Update StartupWMClass to zen-alpha in zen.desktop 2024-08-05 00:45:23 +02:00
Mauro Balades
33ba2f25cd chore: Update flatpak release process 2024-08-05 00:15:59 +02:00
Mauro Balades
3e4d69a012 chore: Update flatpak release process 2024-08-05 00:10:53 +02:00
Mauro Balades
c27f4767db chore: Update Python version to 3.x 2024-08-04 23:39:18 +02:00
Mauro Balades
6740a7a610 chore: Update flatpak release process 2024-08-04 23:10:24 +02:00
Mauro Balades
c00eb07484 test 2024-08-04 23:03:59 +02:00
Mauro Balades
1b72b68a47 test 2024-08-04 22:46:40 +02:00
Mauro Balades
0ac10f2c03 chore: Update flatpak release process 2024-08-04 22:45:05 +02:00
Mauro Balades
0b824acd20 test 2024-08-04 22:31:11 +02:00
Mauro Balades
b37b2e656a Fixed flatpak 2024-08-04 22:30:16 +02:00
Mauro Balades
36d6abda0d chore: Update flatpak release process 2024-08-04 21:50:36 +02:00
Mauro Balades
07893e79fe test 2024-08-04 21:47:50 +02:00
Mauro Balades
d8a9cabb2b chore: Update flatpak release process 2024-08-04 21:46:52 +02:00
Mauro Balades
9729f8d84e test 2024-08-04 21:37:04 +02:00
Mauro Balades
641c709f5d test 4 2024-08-04 21:34:09 +02:00
Mauro Balades
be45bdb83f test 3 2024-08-04 21:14:09 +02:00
Mauro Balades
2773bd4850 Merge branch 'main' of https://github.com/zen-browser/core 2024-08-04 21:12:03 +02:00
Mauro Balades
a0e95e7748 chore: Update flatpak release process
```
2024-08-04 21:11:58 +02:00
mauro 🤙
b90e50ed87 Merge pull request #159 from Veriiix/patch-2
Update performance.md
2024-08-04 21:00:23 +02:00
Jannik
9c8b0081c0 Update performance.md 2024-08-04 20:59:22 +02:00
Mauro Balades
bb1cd6097b test 3 2024-08-04 20:49:30 +02:00
Mauro Balades
1496f3addc test 2 2024-08-04 20:46:37 +02:00
Mauro Balades
a2bd16a210 test build 2024-08-04 20:42:53 +02:00
Mauro Balades
26e158072e chore: Created automatic flatpak releases 2024-08-04 20:40:28 +02:00
Mauro Balades
84a5f05eb6 Merge branch 'main' of https://github.com/zen-browser/core 2024-08-04 20:10:02 +02:00
Mauro Balades
79967edb22 Fixed customize mode 2024-08-04 20:09:57 +02:00
mauro 🤙
53644a4ba0 Merge pull request #153 from NOCanoa/main
👀 v2 xD
2024-08-04 18:34:25 +02:00
NOCanoa
01df43fdc5 Update performance.md 2024-08-04 17:08:14 +01:00
NOCanoa
b524ec7569 Update performance.md 2024-08-04 17:05:53 +01:00
NOCanoa
eea0a8aee7 Merge branch 'main' of https://github.com/NOCanoa/desktop-zen 2024-08-04 16:52:14 +01:00
Mauro Balades
498c909756 Improved performance 2024-08-04 14:09:36 +02:00
Mauro Balades
661dcbb9f9 Update welcome dialog thanks message 2024-08-04 13:34:57 +02:00
mauro-balades
c2e8b2790c 🔖 Update version to 1.0.0-a.12 2024-08-04 11:03:20 +00:00
Mauro Balades
14da8cd9e7 chore: Update sidebar close-on-blur preference handling 2024-08-04 13:02:25 +02:00
Mauro Balades
741cfd7af4 chore: Update mozconfig to allow loading unsigned extensions 2024-08-04 12:46:52 +02:00
Mauro Balades
fa6911df5e chore: Update backdrop-filter blur value in zen-browser-shared.css 2024-08-04 12:41:23 +02:00
Mauro Balades
4e61ab5e98 chore: Update ZenSidebarManager to fix panel handling and data persistence 2024-08-04 12:27:44 +02:00
Mauro Balades
3900908ed7 Fixed pinned tabs 2024-08-04 12:01:13 +02:00
Mauro Balades
3cd21f5516 Reworked on compact mode 2024-08-04 11:53:47 +02:00
Mauro Balades
29411d02d5 chore: Update padding for searchList cards in welcome.css 2024-08-04 11:21:37 +02:00
Mauro Balades
ab5cf96bf1 Merge branch 'main' of https://github.com/zen-browser/core 2024-08-04 11:04:41 +02:00
Mauro Balades
d60d4e888a chore: Update Windows build configuration with WebAssembly optimizations, also added persistent storage for sidebar 2024-08-04 11:04:34 +02:00
mauro 🤙
9998f93942 Update zenThemeModifier.js 2024-08-04 00:34:27 +02:00
Mauro Balades
76b2b55eda chore: Update padding for searchList cards in welcome.css 2024-08-03 22:48:14 +02:00
Mauro Balades
b224616b43 chore: Update macOS build configuration with optimized flags 2024-08-03 22:02:20 +02:00
Mauro Balades
236c4160fc chore: Update performance test results with latest version 2024-08-03 21:40:15 +02:00
Mauro Balades
7e3c44846d chore: Update performance test results with latest version 2024-08-03 20:33:50 +02:00
Mauro Balades
b1709c757a chore: Update arrow panel menu item margin in panelUI-shared.css 2024-08-03 19:57:54 +02:00
Mauro Balades
65841d2085 chore: Update artifact names and paths in build workflows 2024-08-03 19:46:08 +02:00
NOCanoa
58f18098f7 Update Performance.md 2024-08-03 18:41:48 +01:00
NOCanoa
e31d49ec36 Update Performance.md 2024-08-03 18:39:43 +01:00
Mauro Balades
3454ca6336 chore: Update artifact names and paths in build workflows 2024-08-03 15:29:52 +02:00
Mauro Balades
bd5c242c8c chore: Update welcome page with gradient background and noise effect 2024-08-03 14:00:55 +02:00
Mauro Balades
86f8b91fdb chore: Update macOS options in bug report template 2024-08-03 12:05:58 +02:00
Mauro Balades
3d57cff39b chore: Update landing page with Flathub badge 2024-08-03 10:34:38 +02:00
Mauro Balades
7b40eba9b7 chore: Remove swap space configuration from macOS alpha build workflow 2024-08-03 10:25:52 +02:00
Mauro Balades
57ac6c1b37 chore: Set swap space for macOS alpha build workflow 2024-08-03 10:17:05 +02:00
Mauro Balades
d7630b258a Refactor build workflows to improve artifact naming and paths 2024-08-03 10:15:57 +02:00
Mauro Balades
0883536f75 feat: Add overflow hidden and transition to navbar container 2024-08-03 07:46:26 +02:00
Mauro Balades
6e2b4b17e6 chore: Update artifact names and paths in build workflows 2024-08-03 07:40:32 +02:00
Mauro Balades
38e4a7150c chore: Update mozconfig to disable profile generation and use cross profile for Windows builds 2024-08-03 00:40:45 +02:00
mauro 🤙
052774c5c3 Merge pull request #137 from NOCanoa/main
emty line removed
2024-08-02 20:46:20 +02:00
NOCanoa
18055e09d9 emty line removed 2024-08-02 19:44:55 +01:00
mauro-balades
e24dcdb6ac 🔖 Update version to 1.0.0-a.11 2024-08-02 15:16:29 +00:00
Mauro Balades
e3774d666f chore: Update mozconfig to disable profile generation and use cross profile for Windows builds 2024-08-02 17:14:11 +02:00
Mauro Balades
ec1eef6159 chore: Disable deleteMenuItem for default workspaces in ZenWorkspaces.mjs 2024-08-02 17:07:52 +02:00
Mauro Balades
6862e6cbc6 chore: Update sidebar-expanded max-width preference and UI styling 2024-08-02 17:05:43 +02:00
Mauro Balades
639806e13f chore: Update workflows to include check-release job in alpha.yml 2024-08-02 16:36:18 +02:00
Mauro Balades
ef01c86d7c chore: Update CSS class name for titlebar button container 2024-08-02 15:10:18 +02:00
Mauro Balades
e32d9cad92 chore: Update workflows to include check-release job in alpha.yml 2024-08-02 15:07:14 +02:00
mauro 🤙
3b5e401899 Merge pull request #133 from bdbch/bdbch/fix-issue-template
Remove broken labels key in bug_report issue template
2024-08-02 14:25:40 +02:00
bdbch
3bfdb7e3db Remove broken labels key in bug_report issue template 2024-08-02 14:18:54 +02:00
Mauro Balades
e567dee12f Fixed windows alpha workflow 2024-08-02 13:28:29 +02:00
Mauro Balades
c55fadc889 chore: Update build configurations to enable AVX optimization for different architectures 2024-08-02 13:27:02 +02:00
Mauro Balades
33d2954e93 chore: Remove multiple option from platform label in feature request template 2024-08-02 11:28:58 +02:00
Mauro Balades
9304b51391 chore: Update feature request template 2024-08-02 11:23:49 +02:00
Mauro Balades
0347ead8a1 chore: Remove unused focus ring preferences in zen-browser.js 2024-08-02 11:13:28 +02:00
Mauro Balades
9fd9883c8f chore: Update .github/ISSUE_TEMPLATE/bug_report.yml to remove labels 2024-08-02 11:12:22 +02:00
Mauro Balades
01e99f6f3d chore: Update .github/ISSUE_TEMPLATE/config.yml to disable blank issues 2024-08-02 11:11:43 +02:00
Mauro Balades
259072a5e5 chore: Add workflow to clear cache 2024-08-02 10:58:35 +02:00
Mauro Balades
5079bb6364 chore: Remove unused include statement in zen-browser.js 2024-08-02 10:55:17 +02:00
Mauro Balades
37bc8f5f65 chore: Update macOS build configuration to enable install strip and strip debug symbols 2024-08-02 10:47:01 +02:00
Mauro Balades
4f97d66443 chore: Update welcome page CSS and build configurations 2024-08-02 09:19:32 +02:00
Mauro Balades
8e19e74894 chore: Update build configurations to enable AVX optimization for different architectures 2024-08-02 09:11:57 +02:00
Mauro Balades
babc34cc90 chore: Remove .DirIcon file from AppDir in alpha.yml workflow 2024-08-02 08:38:27 +02:00
Mauro Balades
c2f97454ac chore: Update macOS build configuration to enable install strip and strip debug symbols 2024-08-02 08:36:48 +02:00
Mauro Balades
7de872b4dd chore: Disable LTO in macOS build configuration 2024-08-02 00:51:59 +02:00
Mauro Balades
dc5992bdc7 chore: Update Linux build artifact name to include generic or specific based on matrix value 2024-08-02 00:28:12 +02:00
Mauro Balades
453c9fef53 chore: Update CSS and build configurations for welcome page 2024-08-02 00:23:13 +02:00
Mauro Balades
5d946db186 chore: Update welcome page CSS and build configurations 2024-08-01 22:10:58 +02:00
Mauro Balades
406f11dd9a chore: Update dependencies and build configurations for compatibility with x32 architecture 2024-08-01 22:04:34 +02:00
Mauro Balades
be1efb2ac5 chore: Separated mac icons to windows/linux 2024-08-01 20:32:03 +02:00
Mauro Balades
6c4b3aa6f9 chore: Update build configurations to enable install strip and strip debug symbols 2024-08-01 19:51:37 +02:00
Mauro Balades
2975d5c645 chore: Update Windows build configuration to support x32 architecture 2024-08-01 18:48:16 +02:00
Mauro Balades
97ce6bae00 chore: Update Windows build configuration to install dos2unix 2024-08-01 18:29:10 +02:00
Mauro Balades
b659bfd5e6 chore: Update Windows build configuration to fix dos2unix issue 2024-08-01 18:12:02 +02:00
Mauro Balades
81f88c2c21 chore: Update Windows build configuration for compatibility with x32 architecture 2024-08-01 18:10:47 +02:00
Mauro Balades
5bbbefb2a7 chore: Update Windows build configuration for compatibility with x32 architecture 2024-08-01 17:08:46 +02:00
Mauro Balades
ea5c42674e chore: Update bug report and feature request templates 2024-08-01 16:25:44 +02:00
Mauro Balades
ad2e2f6b24 chore: Add compatibility install step for x32 architecture 2024-08-01 16:10:53 +02:00
Mauro Balades
3333fe22d2 chore: Update build configurations for Linux, macOS, and Windows 2024-08-01 15:44:41 +02:00
Mauro Balades
349b33c115 chore: Update build configurations for Linux, macOS, and Windows 2024-08-01 15:08:54 +02:00
Mauro Balades
2c0b34e666 chore: Update macOS build matrix to include different architectures and OS versions 2024-08-01 14:17:25 +02:00
Mauro Balades
84bc2c3c89 Merge branch 'main' of https://github.com/zen-browser/core 2024-08-01 14:15:48 +02:00
Mauro Balades
2927b58924 Here we go! 2024-08-01 14:15:43 +02:00
mauro 🤙
a6aa7e3eae Merge pull request #118 from NOCanoa/main
Another update xD
2024-07-31 23:04:50 +02:00
mauro 🤙
d67e1e5b3e Merge pull request #119 from Veriiix/patch-1
Added Speedometer3.0 scores
2024-07-31 23:04:25 +02:00
Jannik
09b808b18a Added Speedometer3.0 scores 2024-07-31 21:04:18 +02:00
NOCanoa
deaa0e2781 Merge branch 'zen-browser:main' into main 2024-07-31 19:57:40 +01:00
NOCanoa
3140931cdb Update Performance.md 2024-07-31 19:56:37 +01:00
mauro 🤙
084d70e68d Merge pull request #117 from NOCanoa/main
Aded the performance.md
2024-07-31 20:11:49 +02:00
NOCanoa
ac3df15a57 Merge branch 'zen-browser:main' into main 2024-07-31 19:08:52 +01:00
NOCanoa
6688fff000 Create Performance.md 2024-07-31 19:08:27 +01:00
mauro 🤙
33ff028509 Merge pull request #116 from Samueru-sama/patch-1
`alpha.yml` fix missing .DirIcon in AppImage
2024-07-31 20:03:23 +02:00
Samuel
e2ca345dea alpha.yml fix missing .DirIcon in AppImage 2024-07-31 13:27:15 -04:00
Mauro Balades
b17fb12715 Fix issue with active tab not being set correctly in ZenViewSplitter 2024-07-31 13:33:14 +02:00
Mauro Balades
51bd006bd1 chore: Update alpha build workflow to disable prerelease flag 2024-07-31 11:46:37 +02:00
Mauro Balades
4fc321292f chore: Update URL bar background color and toolbar field focus background color 2024-07-31 11:28:41 +02:00
Mauro Balades
ea3c6e7131 chore: Update AppImage build process and dependencies 2024-07-31 11:20:20 +02:00
Mauro Balades
234f4ecfed chore: Add floating URL bar preference to theme settings 2024-07-31 11:19:49 +02:00
Mauro Balades
d5164f05a5 Move security button to the right in zenThemeModifier.js 2024-07-31 10:46:36 +02:00
Mauro Balades
ae2aa202de chore: Update @zen-browser/surfer dependency to version 1.1.17 2024-07-31 08:56:38 +02:00
Mauro Balades
940ce6a6d7 chore: Update AppImage build process and dependencies 2024-07-31 08:20:55 +02:00
mauro-balades
edf17c7eed 🔖 Update version to 1.0.0-a.10 2024-07-31 06:05:20 +00:00
Mauro Balades
2f668de97d chore: Update @zen-browser/surfer dependency to version 1.1.16 2024-07-31 08:04:18 +02:00
Mauro Balades
73dea3ad96 chore: Update @zen-browser/surfer dependency to version 1.1.15 2024-07-31 01:14:29 +02:00
mauro-balades
2171635145 🔖 Update version to 1.0.0-a.9 2024-07-30 22:41:03 +00:00
Mauro Balades
935fcd9153 chore: Update @zen-browser/surfer dependency to version 1.1.14 2024-07-31 00:40:17 +02:00
Mauro Balades
a9bfa4dd26 chore: Update @zen-browser/surfer dependency to version 1.1.13 2024-07-31 00:38:04 +02:00
Mauro Balades
2dc59efd99 chore: Update @zen-browser/surfer dependency to version 1.1.5 2024-07-30 23:55:19 +02:00
Mauro Balades
b1a3f97592 chore: Update Xvfb installation check in alpha-build.sh 2024-07-30 23:04:06 +02:00
Mauro Balades
3bd2d169b4 chore: Adjust margins in browserSidebarContainer 2024-07-30 22:39:08 +02:00
Mauro Balades
fc8a501e73 chore: Update mozconfig to optimize build with higher optimization level and AVX target feature 2024-07-30 21:29:35 +02:00
Mauro Balades
32a3ad96ee chore: Update zen-browser-shared.css to adjust margins in browserSidebarContainer 2024-07-30 20:47:37 +02:00
Mauro Balades
3f684745ee I cant believe this 2024-07-30 20:10:54 +02:00
Mauro Balades
13f1daf465 revert 2024-07-30 18:11:21 +02:00
Mauro Balades
28c84d971d Update RUSTFLAGS in mozconfig to include target feature +sse3 2024-07-30 18:10:17 +02:00
Mauro Balades
9251970257 chore: Update @zen-browser/surfer dependency to version 1.1.11 2024-07-30 17:56:24 +02:00
Mauro Balades
a3fd8d17ba Deal with it 2024-07-30 16:58:36 +02:00
Mauro Balades
17fea1b017 Fixed pinned tabs not being aligned (closes #110) 2024-07-30 16:48:48 +02:00
Mauro Balades
b11c0d8700 chore: Update @zen-browser/surfer dependency to version 1.1.9 2024-07-30 16:26:23 +02:00
Mauro Balades
86aca3144f Update CFLAGS, CXXFLAGS, and RUSTFLAGS in mozconfig 2024-07-30 16:06:38 +02:00
Mauro Balades
11890a70c0 chore: Update zen-browser-shared.css to hide the introduction panel when the current panel is set in ZenSidebarManager 2024-07-30 00:37:48 +02:00
Mauro Balades
e9f727ceba chore: Remove unused browser.ftl file 2024-07-29 21:52:00 +02:00
Mauro Balades
5342c408fa chore: Add context menu open link in new tab 2024-07-29 21:04:00 +02:00
Mauro Balades
b494f661b2 chore: Update CFLAGS, CXXFLAGS, and RUSTFLAGS in mozconfig 2024-07-29 20:19:24 +02:00
mauro 🤙
5020640e8e Im supposed to be on my valorant rest 2024-07-29 18:45:24 +02:00
Mauro Balades
48773b80f4 chore: Hide introduction panel when current panel is set in ZenSidebarManager 2024-07-29 14:51:28 +02:00
Mauro Balades
e3edc10e95 chore: Update grid-template-columns in zen-browser-shared.css 2024-07-29 14:32:58 +02:00
Mauro Balades
d5a4ce2331 Expanded functionality of compact mode 2024-07-29 14:30:06 +02:00
Mauro Balades
1bd4bcf93f chore: Update @zen-browser/surfer dependency to version 1.1.8 2024-07-29 13:55:52 +02:00
mauro-balades
7b7f8a3f13 🔖 Update version to 1.0.0-a.8 2024-07-29 09:44:29 +00:00
Mauro Balades
81df7ea605 feat: Enable updater in common mozconfig 2024-07-29 11:43:53 +02:00
Mauro Balades
2b56b9b97d Tried to fix themes and popups ( LOOK INTO THIS ) 2024-07-29 11:42:52 +02:00
Mauro Balades
80027fbe48 chore: Add special thanks to Erlend for making the logo 2024-07-29 11:22:33 +02:00
Mauro Balades
bd23758cd0 Updated icons 2024-07-29 11:19:38 +02:00
Mauro Balades
1e464392c2 Updated logos! 2024-07-29 09:43:40 +02:00
Mauro Balades
96f31e8993 Fixed wrong color for context menu popups (closes #88) 2024-07-29 01:24:13 +02:00
Mauro Balades
01bdbfca4e Fixed borders not showing with hidden tabs (#100) 2024-07-29 01:20:31 +02:00
Mauro Balades
cc900885ca refactor: Update advanced-issue-labeler to version 3 for severity label functionality 2024-07-29 01:10:44 +02:00
Mauro Balades
a3213e069b refactor: Add severity dropdown to bug report template 2024-07-29 01:07:01 +02:00
Mauro Balades
711fd0ab8b refactor: Add severity dropdown to bug report template 2024-07-29 01:04:35 +02:00
Mauro Balades
05a6dcb416 refactor: Update bug report template with severity options 2024-07-29 00:59:29 +02:00
Mauro Balades
fd7d0bbd50 refactor: Update bug report template with severity options 2024-07-29 00:55:22 +02:00
Mauro Balades
bf96065340 refactor: Add multiple severity options to bug report template 2024-07-29 00:49:55 +02:00
Mauro Balades
5985420dbb refactor: Add severity dropdown to bug report template 2024-07-29 00:43:01 +02:00
Mauro Balades
2dd50cfe9a refactor: Update @zen-browser/surfer dependency to version 1.1.6 and fixed compact mode! 2024-07-29 00:36:24 +02:00
Mauro Balades
c3a94c128f Remove flatpak from the equation 2024-07-27 14:15:51 +02:00
Mauro Balades
b94c6c616a Quick HOTFIX 2024-07-27 12:08:20 +02:00
Mauro Balades
9950ebd99e refactor: Update flatpak package name in alpha.yml workflow 2024-07-27 11:52:22 +02:00
Mauro Balades
1c4108d961 refactor: Remove font-weight property from zen-panel-ui.css 2024-07-27 09:45:45 +02:00
Mauro Balades
1be4bbf08b refactor: Remove commented code in windows-alpha-build.yml 2024-07-27 09:26:53 +02:00
mauro-balades
5ba50f2988 🔖 Update version to 1.0.0-a.7 2024-07-27 06:51:40 +00:00
Mauro Balades
e2618e5681 refactor: Update actions/checkout to v4 in alpha.yml workflow 2024-07-27 08:50:31 +02:00
Mauro Balades
3304259383 refactor: Update alpha.yml workflow to remove unused Windows build steps 2024-07-27 00:57:34 +02:00
Mauro Balades
d83df429bc refactor: Update macOS alpha build workflow to use macOS 14 instead of macOS 14 Large 2024-07-26 22:03:42 +02:00
Mauro Balades
191ffd6efe refactor: Update macOS alpha build workflow to use macOS 14 instead of macOS 14 Large 2024-07-26 20:43:25 +02:00
Mauro Balades
7e0e3f4145 refactor: Update profile data path in alpha.yml workflow 2024-07-26 14:57:29 +02:00
Mauro Balades
8b56897a11 feat: Enable newtabWallpapers v2 in Zen browser theme 2024-07-26 14:09:37 +02:00
Mauro Balades
6a55fecca6 refactor: Update macOS alpha build workflow to use macOS 14 instead of macOS 14 Large 2024-07-26 12:28:21 +02:00
Mauro Balades
f80a454261 refactor: Fixed macos builds and flatpaks 2024-07-26 12:26:35 +02:00
Mauro Balades
0f97a1cb4d refactor: Improved pinned tabs! 2024-07-26 12:10:00 +02:00
Mauro Balades
58e049a76f refactor: Hide sidebar splitter in Zen browser theme 2024-07-26 09:42:51 +02:00
Mauro Balades
dfa5013a79 Fixed windows builds 2024-07-26 09:20:11 +02:00
Mauro Balades
22dfa8daec refactor: Update alpha.yml workflow to use flat-manager v6.1 for uploading flatpak bundle 2024-07-26 09:19:18 +02:00
Mauro Balades
5c5608938d refactor: Update alpha.yml workflow to use flat-manager v6.1 for uploading flatpak bundle 2024-07-26 09:12:52 +02:00
Mauro Balades
cfd1ef11aa Revert testing 2024-07-26 01:03:06 +02:00
Mauro Balades
b82530c890 testing 2024-07-26 01:02:28 +02:00
Mauro Balades
69e5bb552f refactor: Update alpha.yml workflow to use flat-manager v6.1 for uploading flatpak bundle 2024-07-26 01:00:05 +02:00
Mauro Balades
915350db3c Hide sidebar webpanel when clicked outside 2024-07-26 00:20:33 +02:00
Mauro Balades
0dfb198609 refactor: Improve workspace icon handling and tab visibility logic 2024-07-25 23:29:49 +02:00
Mauro Balades
f1039324cf refactor: Improve sidebar panel button scaling 2024-07-25 22:46:38 +02:00
Mauro Balades
3ce4bb8ecf chore: Update alpha.yml workflow to use flat-manager v6.1 for uploading flatpak bundle 2024-07-25 22:45:43 +02:00
Mauro Balades
005398a20d chore: Enable PGO (Profile-Guided Optimization) for Linux builds 2024-07-25 15:33:42 +02:00
Mauro Balades
f45b1ec317 chore: Update alpha.yml workflow to download artifacts in the "Download artifacts" step 2024-07-25 15:33:22 +02:00
Mauro Balades
4714cfcc84 chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-25 12:59:05 +02:00
Mauro Balades
c221c8e242 chore: Update alpha.yml workflow to include continue-on-error option 2024-07-25 11:20:00 +02:00
Mauro Balades
5464da21c4 chore: Add option to create a flatpak release in alpha.yml workflow 2024-07-25 11:19:24 +02:00
Mauro Balades
f2a783fbce refactor: Improve workspace icon handling and tab visibility logic 2024-07-25 10:31:41 +02:00
Mauro Balades
bb3ee371a1 refactor: Improve workspace icon handling and tab visibility logic 2024-07-25 09:56:17 +02:00
Mauro Balades
95e053562e chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-25 09:16:23 +02:00
Mauro Balades
e5eba4496f chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-24 23:32:05 +02:00
Mauro Balades
eba7459acf chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-24 21:09:50 +02:00
Mauro Balades
7251dbd013 chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-24 19:19:37 +02:00
Mauro Balades
43ffc452a2 chore: Update alpha.yml workflow to consistently use the use-warp-build input 2024-07-24 15:23:46 +02:00
mauro-balades
2027487c56 🔖 Update version to 1.0.0-a.6 2024-07-24 12:40:34 +00:00
Mauro Balades
77b96aed0a chore: Update surfer.json to display version 1.0.0-a.5 instead of 1.0.0-a.6 2024-07-24 14:39:55 +02:00
Mauro Balades
dc5b9f00dd chore: Update alpha.yml workflow to use-warp-build input consistently 2024-07-24 14:39:39 +02:00
mauro-balades
67d2238660 🔖 Update version to 1.0.0-a.6 2024-07-24 12:33:37 +00:00
Mauro Balades
e018a6154b chore: Update alpha.yml workflow to include use-warp-build input 2024-07-24 14:32:49 +02:00
Mauro Balades
32837dd742 chore: Update flatpak build workflow to include release job 2024-07-24 14:31:39 +02:00
Mauro Balades
494c829b53 chore: Update build workflows to support warp builds 2024-07-24 14:27:51 +02:00
Mauro Balades
cffdd29121 chore: Update @zen-browser/surfer dependency to version 1.1.4 2024-07-24 12:12:15 +02:00
Mauro Balades
17598a2725 chore: Refactor Windows profile build workflow to improve efficiency and remove unnecessary steps 2024-07-24 11:51:56 +02:00
Mauro Balades
1433d594c7 chore: Disable PGO build in Windows profile build workflow 2024-07-24 11:15:18 +02:00
Mauro Balades
5ca89116e7 chore: Update Windows profile build workflow to remove unnecessary steps and improve efficiency 2024-07-24 00:35:06 +02:00
Mauro Balades
67aa0dc732 chore: Update common mozconfig to enable proxy bypass protection and remove unnecessary options 2024-07-23 22:45:20 +02:00
Mauro Balades
6f47ee3ffa chore: Update Windows profile build workflow to use x86_64-pc-windows-msvc target 2024-07-23 20:35:06 +02:00
Mauro Balades
a54b93318a chore: Update @zen-browser/surfer dependency to version 1.1.2 2024-07-23 20:34:04 +02:00
Mauro Balades
18b267300c chore: Set up git configuration in Windows profile build workflow 2024-07-23 18:28:45 +02:00
Mauro Balades
de8e45a38f chore: Update grid-gap in zen-decks.css to 5px for better visual spacing 2024-07-23 18:08:34 +02:00
Mauro Balades
230bb3da67 chore: Refactor Windows profile build workflow to improve efficiency and remove unnecessary steps 2024-07-23 17:25:59 +02:00
Mauro Balades
825bfd91db chore: Update Windows profile build workflow to include downloading and extracting Firefox source code 2024-07-23 17:22:52 +02:00
Mauro Balades
f2cab3dddb test 2 2024-07-23 15:58:21 +02:00
Mauro Balades
6209250260 testing 2024-07-23 15:43:47 +02:00
Mauro Balades
68f9cc7e00 chore: Update Windows profile build workflow to rename extracted Firefox source code folder 2024-07-23 14:51:27 +02:00
Mauro Balades
141728ab83 chore: Update macOS alpha build workflow to use actions/checkout@v4 2024-07-23 14:04:35 +02:00
Mauro Balades
af697f69c8 chore: Remove swap space configuration from macOS alpha build workflow 2024-07-23 13:48:29 +02:00
Mauro Balades
85b76f525c chore: Update disk-setup-and-swap.sh to conditionally execute 'free -h' and 'df -h' commands 2024-07-23 13:46:32 +02:00
Mauro Balades
1bcd4021dd chore: Update Windows profile build workflow to remove unnecessary steps and dependencies 2024-07-23 13:44:46 +02:00
Mauro Balades
a946f31b50 chore: Update Windows profile build workflow to include downloading and extracting Firefox source code 2024-07-23 13:43:50 +02:00
Mauro Balades
6e5611d1af chore: Enable blank issues in issue template configuration 2024-07-23 12:54:06 +02:00
Mauro Balades
b5865dd326 chore: Update bug report issue template with additional fields 2024-07-23 12:53:05 +02:00
Mauro Balades
963ac294f4 chore: Update bug report issue template with additional fields 2024-07-23 12:51:48 +02:00
Mauro Balades
a7fe238a71 chore: Update Windows profile build workflow to use x86_64-pc-mingw32 target 2024-07-23 11:56:09 +02:00
Mauro Balades
9c6b0912a5 chore: Update theme pill-button default value and styles 2024-07-23 11:35:26 +02:00
Mauro Balades
26b633553c testing 2024-07-23 09:49:11 +02:00
Mauro Balades
51ccbb0c7c chore: Update Windows profile build workflow to include debug session 2024-07-23 09:43:55 +02:00
Mauro Balades
93668396da chore: Update Xvfb installation in alpha-build.sh to only run if not cross-compiling 2024-07-22 23:39:16 +02:00
Mauro Balades
7355138f14 chore: Update Windows profile build workflow to include version bump step and disable wasm sandboxed libraries 2024-07-22 21:30:36 +02:00
Mauro Balades
1a761535df chore: Update flatpak manifest path in alpha.yml workflow 2024-07-22 19:46:14 +02:00
Mauro Balades
2962f0741c Always build flatpaks! 2024-07-22 19:41:48 +02:00
Mauro Balades
8de06906b8 chore: Update Windows profile build workflow to include version bump step 2024-07-22 19:41:15 +02:00
Mauro Balades
18a21bd85a Update Windows profile build workflow to include version bump step 2024-07-22 19:36:52 +02:00
Mauro Balades
c630d4e479 Lets try with waterfox 2024-07-22 19:24:37 +02:00
Mauro Balades
ab0ca282ff Update Windows profile build workflow to include version bump step 2024-07-22 19:08:11 +02:00
Mauro Balades
f7970fb004 chore: Update Windows profile build workflow to include version bump step 2024-07-22 19:05:37 +02:00
Mauro Balades
5904663634 Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 19:03:56 +02:00
Mauro Balades
358818b754 Check for files 2024-07-22 19:02:36 +02:00
Mauro Balades
4a287ad2eb Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 18:51:26 +02:00
Mauro Balades
ffcf71f25d Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 17:04:35 +02:00
Mauro Balades
3cf12e5b70 Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 14:46:26 +02:00
Mauro Balades
32ecb73303 Fixed mozilla build path 2024-07-22 14:35:02 +02:00
Mauro Balades
24eb4a27cb Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 14:16:46 +02:00
Mauro Balades
5a7bd1e868 Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 14:12:26 +02:00
Mauro Balades
c6ec84444d Remove mozconfig on windows PGO 2024-07-22 14:06:32 +02:00
Mauro Balades
3044b44967 Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 13:57:01 +02:00
Mauro Balades
2384b32a08 Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 13:50:23 +02:00
Mauro Balades
350d72033b chore: Update Windows profile build workflow to download and unpack artifact, setup MozillaBuild, and clone Waterfox repository 2024-07-22 13:43:35 +02:00
Mauro Balades
5d9b8b7244 use git for firefox cloning 2024-07-22 13:30:04 +02:00
Mauro Balades
006ab63b39 Added no interactive flag 2024-07-22 13:14:07 +02:00
Mauro Balades
4b54e4cfb5 chore: Update @zen-browser/surfer dependency to version 1.0.35 2024-07-22 13:09:13 +02:00
Mauro Balades
a6113ed7e8 chore: Update @zen-browser/surfer dependency to version 1.0.35 2024-07-22 12:59:22 +02:00
Mauro Balades
b8e6c059b0 test 2024-07-22 12:53:52 +02:00
Mauro Balades
ac972254ae chore: Update @zen-browser/surfer dependency to version 1.0.35 2024-07-22 12:51:41 +02:00
Mauro Balades
bc41044103 chore: Update @zen-browser/surfer dependency to version 1.0.35 2024-07-22 12:12:44 +02:00
Mauro Balades
5d4b34f802 chore: Update @zen-browser/surfer dependency to version 1.0.35 2024-07-22 11:55:52 +02:00
Mauro Balades
bfff708d0c chore: Update @zen-browser/surfer dependency to version 1.0.34 2024-07-22 11:47:06 +02:00
Mauro Balades
cf23fba41e chore: Update @zen-browser/surfer dependency to version 1.0.33 2024-07-22 11:10:13 +02:00
Mauro Balades
2e51a18490 chore: Update @zen-browser/surfer dependency to version 1.0.32 2024-07-22 10:58:02 +02:00
Mauro Balades
1adc22e44f chore: Update @zen-browser/surfer dependency to version 1.0.31 2024-07-22 10:53:12 +02:00
Mauro Balades
e4cbfc8e78 chore: Update @zen-browser/surfer dependency to version 1.0.30 2024-07-22 10:36:44 +02:00
Mauro Balades
02f11033cd chore: Update @zen-browser/surfer dependency to version 1.0.29 2024-07-22 10:31:24 +02:00
Mauro Balades
e955e871e5 chore: Update @zen-browser/surfer dependency to version 1.0.28 2024-07-22 10:22:20 +02:00
Mauro Balades
5b1ba8f4e9 chore: Update @zen-browser/surfer dependency to version 1.0.27 2024-07-22 10:03:44 +02:00
Mauro Balades
c73afb011a chore: Update @zen-browser/surfer dependency to version 1.0.26 2024-07-22 09:57:33 +02:00
Mauro Balades
2538fa9b0a chore: Update @zen-browser/surfer dependency to version 1.0.25 2024-07-22 09:48:15 +02:00
Mauro Balades
0fc4e356d7 chore: Update @zen-browser/surfer dependency to version 1.0.24 2024-07-22 09:37:47 +02:00
Mauro Balades
df7a7916f5 chore: Update windows-profile-build workflow to include windows-step-1 in the needs array 2024-07-22 09:33:31 +02:00
Mauro Balades
4225302a4b chore: Update windows-profile-build workflow to include windows-step-1 in the needs array 2024-07-22 09:15:23 +02:00
Mauro Balades
7d978f5f96 chore: Update windows-profile-build workflow to include windows-step-1 in the needs array 2024-07-22 09:11:56 +02:00
Mauro Balades
d433950935 chore: Update windows-profile-build workflow to remove unnecessary step and generate mozilla-build-run.sh 2024-07-22 09:08:28 +02:00
Mauro Balades
138ea1cb57 chore: Update windows-profile-build workflow to include windows-step-1 in the needs array 2024-07-22 01:51:39 +02:00
Mauro Balades
ec9bc6ed92 chore: Update windows-profile-build workflow to remove unnecessary step and generate mozilla-build-run.sh 2024-07-22 01:49:59 +02:00
Mauro Balades
ccbb80ff4c chore: Fix compact mode for vertical tabs 2024-07-22 01:38:42 +02:00
Mauro Balades
e16c36ba10 chore: Update @zen-browser/surfer dependency to version 1.0.23 2024-07-22 00:54:13 +02:00
Mauro Balades
42503c7ccf chore: Update workspace button styles and behavior 2024-07-22 00:44:00 +02:00
Mauro Balades
46b63a777b chore: Update @zen-browser/surfer dependency to version 1.0.22 2024-07-21 22:48:20 +02:00
Mauro Balades
26b1243cc0 chore: Update @zen-browser/surfer dependency to version 1.0.21 2024-07-21 22:00:36 +02:00
Mauro Balades
cf116b5ad3 chore: Fixed pinned tabs 2024-07-21 20:34:47 +02:00
Mauro Balades
cc36e8a6e0 chore: Update windows-profile-build workflow to install Node.js and pnpm, and download dependencies 2024-07-21 19:49:09 +02:00
Mauro Balades
69c7cc198d chore: Update windows-alpha-build workflow to use profile data zip archive 2024-07-21 19:00:24 +02:00
Mauro Balades
96ef22dabc chore: Update windows-alpha-build workflow to use actions/upload-artifact@v4 2024-07-21 17:53:07 +02:00
Mauro Balades
77ee0cc065 chore: Update windows-profile-build workflow to unpack artifact using 7z 2024-07-21 17:01:21 +02:00
Mauro Balades
e939e32da0 chore: Update artifact name in windows-alpha-build workflow 2024-07-21 16:12:34 +02:00
Mauro Balades
b9e008afbe chore: Update build workflows and mozconfig files 2024-07-21 14:27:21 +02:00
Mauro Balades
542d631edd chore: Update build workflows and mozconfig files 2024-07-21 12:39:38 +02:00
Mauro Balades
acb1750bba chore: Update build workflows and mozconfig files 2024-07-21 11:54:54 +02:00
Mauro Balades
b9b8d161f3 chore: Configure sccache in build workflows 2024-07-21 10:21:42 +02:00
Mauro Balades
0c0de72a2c chore: Remove unnecessary packages and directories 2024-07-21 10:07:52 +02:00
Mauro Balades
0cebb046f8 testing 2024-07-21 09:59:26 +02:00
Mauro Balades
7eda59fb9c chore: Update workflow to include 'windows-step-2' as a dependency 2024-07-21 09:58:51 +02:00
Mauro Balades
e28661c5d4 chore: Add write permissions to workflow steps 2024-07-21 09:58:10 +02:00
Mauro Balades
e72f2e4245 Fixed workflow issues 2024-07-21 09:56:52 +02:00
Mauro Balades
6dac955cc7 test this workflow with PGO 2024-07-21 09:55:38 +02:00
Mauro Balades
84f9237c91 new workflow implementation 2024-07-21 09:54:39 +02:00
Mauro Balades
e2233816dd chore: Update @zen-browser/surfer dependency to version 1.0.20 2024-07-21 02:09:34 +02:00
Mauro Balades
542de32106 Update windows_mozconfig and linux/mozconfig files 2024-07-21 02:08:07 +02:00
Mauro Balades
7c99456c00 Test 2024-07-21 02:00:54 +02:00
Mauro Balades
f69421b7c6 chore: Update @zen-browser/surfer dependency to version 1.0.19 2024-07-21 00:55:16 +02:00
Mauro Balades
011e503c97 chore: Update @zen-browser/surfer dependency to version 1.0.18 2024-07-20 23:41:35 +02:00
Mauro Balades
7106409061 chore: Update install script, removed debug flag 2024-07-20 22:31:13 +02:00
Mauro Balades
49ee736731 chore: Update alpha-build.sh script to handle xvfb-run not found and enable lazy loading for images 2024-07-20 22:20:58 +02:00
Mauro Balades
766c4e941d chore: Enable jemalloc in mozconfig for Zen release builds 2024-07-20 19:37:27 +02:00
Mauro Balades
b6fa393035 chore: Update RUSTFLAGS in windows_mozconfig to target x86-64 CPU architecture 2024-07-20 18:34:05 +02:00
Mauro Balades
c14191847f chore: Update zen-sidebar.css to hide sidebar when not expanded 2024-07-20 17:20:34 +02:00
Mauro Balades
c2866e0b26 chore: Update alpha-build.sh script to handle xvfb-run not found and enable lazy loading for images 2024-07-20 17:06:29 +02:00
Mauro Balades
a8bbc0ade6 chore: Update alpha-build.sh script to handle xvfb-run not found and enable lazy loading for images 2024-07-20 16:58:45 +02:00
Mauro Balades
4cfd3ba121 chore: Update mozconfig to enable MOZ_PGO for Zen release builds 2024-07-20 15:33:32 +02:00
Mauro Balades
ae746fa0af chore: Update mozconfig to enable jemalloc and linker lld for non-cross-compiling builds 2024-07-20 15:32:00 +02:00
Mauro Balades
31908c8775 chore: Update mozconfig to enable jemalloc and linker lld for non-cross-compiling builds 2024-07-20 13:55:49 +02:00
Mauro Balades
6c34fc6e8d test 2024-07-20 11:32:45 +02:00
Mauro Balades
57f8a8fccd chore: Update alpha-build.sh script to handle xvfb-run not found and disable LTO when cross-compiling 2024-07-20 11:22:22 +02:00
Mauro Balades
3f7e2bf1c7 chore: Update alpha-build.sh script to handle xvfb-run not found and set LLVM_PROFDATA path conditionally 2024-07-20 11:19:40 +02:00
Mauro Balades
dcd63d66bc chore: Update alpha-build.sh script to handle xvfb-run not found and set LLVM_PROFDATA path conditionally 2024-07-20 10:53:19 +02:00
Mauro Balades
0313f1aa14 chore: Update alpha-build.sh script to handle xvfb-run not found and disable profiling 2024-07-20 09:24:34 +02:00
Mauro Balades
e3c465b59a chore: Update alpha-build.sh script to handle xvfb-run not found and enable LTO only when not cross-compiling 2024-07-20 02:07:39 +02:00
Mauro Balades
093a9625a7 chore: Update alpha-build.sh script to handle xvfb-run not found and enable LTO only when not cross-compiling 2024-07-20 02:00:37 +02:00
Mauro Balades
b04d6fc4f0 Update Zen Browser styles for dark mode compatibility 2024-07-20 01:49:23 +02:00
Mauro Balades
57850038fc Update Zen Browser styles for dark mode compatibility 2024-07-20 01:32:59 +02:00
Mauro Balades
323c0e51f3 Update tabs max-height calculation in ZenThemeModifier 2024-07-20 01:01:07 +02:00
Mauro Balades
a4a1aa5c43 chore: Update tabs max-height calculation in ZenThemeModifier 2024-07-20 00:38:04 +02:00
Mauro Balades
dddccee707 chore: Update alpha-build.sh script to handle xvfb-run not found and enable LTO only when not cross-compiling
- Add conditional check for xvfb-run command availability
- Enable LTO (Link Time Optimization) only when not cross-compiling

Related recent commits:
- Update Zen Browser styles for dark mode compatibility
- Update Windows mozconfig and ZenWorkspaces.mjs
2024-07-20 00:32:39 +02:00
Mauro Balades
528e020176 chore: Hide watermark when "zen.watermark.enabled" preference is false 2024-07-19 23:54:01 +02:00
Mauro Balades
fb8bc5d532 chore: Update TabsToolbar styles for Zen Browser 2024-07-19 23:47:48 +02:00
Mauro Balades
6c3a67aa9a chore: Update TabsToolbar styles for Zen Browser
- Set width to 100% and justify-content to start for toolbar buttons in TabsToolbar
- Add border-radius to toolbar buttons in TabsToolbar
- Update hover background color for toolbar buttons in TabsToolbar
- Adjust text alignment and remove unnecessary padding for toolbar buttons in TabsToolbar
- Set background to transparent for text, icon, and badge stack in toolbar buttons in TabsToolbar
- Set width to 100% for tabbrowser-tabs

Related recent commits:
- Update Zen Browser styles for dark mode compatibility
- Update Zen Browser preferences and styles for vertical tabs layout
2024-07-19 23:46:38 +02:00
Mauro Balades
3828f2547e chore: Update Windows mozconfig and ZenWorkspaces.mjs
- Commented out the WIN32_REDIST_DIR and WIN_UCRT_REDIST_DIR lines in the Windows mozconfig file
- Modified the condition in ZenWorkspaces.mjs to check if the number of shown tabs is equal to the length of gBrowser.tabs minus one

Related recent commits:
- Update Zen Browser styles for dark mode compatibility
- Update alpha-build.sh script to handle xvfb-run not found, enable LTO only when not cross-compiling, and set LLVM_PROFDATA environment variable
- Update alpha-build.sh script to handle xvfb-run not found and enable LTO only when not cross-compiling
2024-07-19 23:23:02 +02:00
Mauro Balades
b44d4b4f41 chore: Update Zen Browser styles for dark mode compatibility 2024-07-19 23:11:15 +02:00
Mauro Balades
8c1e1bc97d chore: Update alpha-build.sh script to handle xvfb-run not found, enable LTO only when not cross-compiling, and set LLVM_PROFDATA environment variable 2024-07-19 22:35:31 +02:00
Mauro Balades
93ba4e0638 chore: Update alpha-build.sh script to handle xvfb-run not found and enable LTO only when not cross-compiling 2024-07-19 22:01:55 +02:00
Mauro Balades
16f7b06cec chore: Update Zen Browser styles for dark mode compatibility 2024-07-19 21:50:11 +02:00
Mauro Balades
e1e910e339 chore: Update xvfb-run command in alpha-build.sh script 2024-07-19 19:54:09 +02:00
Mauro Balades
fb34e6c2fd chore: Remove unused debug module option in mozconfig 2024-07-19 19:35:08 +02:00
Mauro Balades
bcd6116e5c chore: Update build process to use alpha-build.sh script 2024-07-19 19:28:00 +02:00
Mauro Balades
628a0bf269 chore: Update Zen Browser preferences and styles for vertical tabs layout 2024-07-19 19:15:01 +02:00
Mauro Balades
d3900ca905 chore: Enable Link Time Optimization (LTO) and Profile Guided Optimization (PGO) 2024-07-19 17:59:51 +02:00
Mauro Balades
851b181ae9 chore: Update @zen-browser/surfer dependency to version 1.0.15 2024-07-19 17:55:22 +02:00
Mauro Balades
275fe8e837 chore: Enable smooth scrolling and overscroll in Zen Browser 2024-07-19 17:48:38 +02:00
Mauro Balades
80f8e829df fix: Fix ZenWorkspaces initialization in hidden windows and private browsing mode 2024-07-19 17:36:57 +02:00
Mauro Balades
a0f30e595b chore: Refactor tab browser styles for improved readability and maintainability 2024-07-19 17:19:24 +02:00
Mauro Balades
43460815ac Fixed tab browser when DOM fullscreen is enabled 2024-07-19 17:11:04 +02:00
Mauro Balades
69e352624e chore: Remove unused CSS color property 2024-07-19 16:55:00 +02:00
Mauro Balades
40b652869d feat: Add toggleBookmarksSidebar function to ZenUIManager 2024-07-19 16:44:54 +02:00
mauro-balades
ccb5df88b4 🔖 Update version to 1.0.0-a.5 2024-07-16 15:17:52 +00:00
mauro 🤙
4e6418c83e Actualizar windows_mozconfig 2024-07-16 11:13:25 +02:00
mauro 🤙
0e17cb9c50 Actualizar mozconfig 2024-07-16 11:13:05 +02:00
mauro 🤙
ecf5c6af38 Actualizar mozconfig 2024-07-16 11:12:47 +02:00
mauro 🤙
afe8438958 chore: Remove enable-clang-plugin option from mozconfig 2024-07-16 08:49:37 +00:00
mauro 🤙
360baa1553 Update branding in MacOSInstaller.svg 2024-07-16 08:48:36 +00:00
mauro 🤙
a34675379b chore: Remove linker option from mozconfig 2024-07-16 08:46:28 +00:00
mauro 🤙
215e2f10a9 chore: Remove enable-rust-si option from mozconfig 2024-07-16 08:37:21 +00:00
mauro 🤙
ca9b6525a2 chore: Update mozconfig to fix target option for Windows build 2024-07-16 08:29:25 +00:00
mauro 🤙
47cddef5de chore: Remove disable-maintenance-service option from mozconfig 2024-07-16 08:28:19 +00:00
mauro 🤙
bbedfd50a5 chore: Update mozconfig to enable LTO and remove unused options 2024-07-16 08:18:32 +00:00
mauro 🤙
6f60d2ff48 Merge pull request #63 from thisisarnabdas/patch-1
Fixed the license link
2024-07-16 09:08:10 +02:00
ARNAB DAS
0f76e65372 Update README.md 2024-07-16 01:30:50 +00:00
mauro 🤙
d83f189a63 chore: Update MPL LICENSE link in README.md 2024-07-15 21:57:48 +00:00
Mauro Balades
f1d4b27c58 chore: Update privacy preferences and disable telemetry 2024-07-15 03:25:12 +02:00
Mauro Balades
f2ace58825 chore: Update mozconfig to enable LTO and remove unused options 2024-07-15 03:19:11 +02:00
Mauro Balades
fe74d96914 chore: Enable workspaces by default 2024-07-15 02:57:18 +02:00
Mauro Balades
379232e94a chore: Update mozconfig to enable LTO and remove unused options 2024-07-15 01:59:27 +02:00
Mauro Balades
7e74d75612 chore: Update mozconfig to enable LTO and remove unused options 2024-07-15 01:48:55 +02:00
Mauro Balades
ac92f251bc chore: Enable LTO and remove unused options in mozconfig 2024-07-15 01:29:40 +02:00
Mauro Balades
42711a079b Added test LTO flags 2024-07-15 01:09:25 +02:00
mauro-balades
373937ea0c 🔖 Update version to 1.0.0-a.4 2024-07-14 15:08:34 +00:00
Mauro Balades
285a8de152 Refactor CSS selectors for open elements in navbar and toolbox 2024-07-14 17:07:28 +02:00
mauro-balades
11da1bf9ba 🔖 Update version to 1.0.0-a.4 2024-07-14 14:59:56 +00:00
Mauro Balades
bcb3a88d16 Refactor CSS selectors for open elements in navbar and toolbox 2024-07-14 16:58:30 +02:00
mauro-balades
092fc77fb0 🔖 Update version to 1.0.0-a.4 2024-07-14 14:54:22 +00:00
Mauro Balades
9e2cd65560 Disable workspaces by default for now 2024-07-14 16:53:31 +02:00
Mauro Balades
f8fbc79f35 Add default icon for tabs with no icon 2024-07-14 16:43:20 +02:00
Mauro Balades
577c57ba87 Refactor tab styling and layout for pinned tabs 2024-07-14 16:37:57 +02:00
Mauro Balades
0d28e86fea God, I shoud've had never created compact mode 2024-07-14 15:41:13 +02:00
Mauro Balades
41862e5d39 feat: Add link to latest release notes in README.md 2024-07-14 01:13:35 +02:00
mauro-balades
5559d1375c 🔖 Update version to 1.0.0-a.3 2024-07-13 22:59:04 +00:00
411 changed files with 5008 additions and 1416 deletions

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
patreon: zen_browser

63
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View 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
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View 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
View 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']

View File

@@ -49,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
@@ -117,265 +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
- 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
@@ -421,145 +174,137 @@ 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:
runs-on: macos-14 # name: Windows build step 1 (PGO build)
needs: [build-data, check-release] # uses: ./.github/workflows/windows-alpha-build.yml
# 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
- 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
uses: actions/download-artifact@v4
with:
name: zen.linux-${{ matrix.generic == true && 'generic' || 'specific' }}.tar.bz2
- name: Execute AppImage build
run: | run: |
export ZEN_RELEASE=1 set -eux
pnpm build --verbose 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
- name: Package APPDIR=AppDir
run: pnpm package tar -xvf *.tar.* && rm -rf *.tar.*
mv zen/* $APPDIR/
- name: Rename artifacts wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage
run: | chmod +x *.AppImage
mv ./dist/*.dmg "zen.macos.dmg" chmod +x ./AppDir/AppRun
mv ./dist/output.mar macos.mar 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/.
mv ./dist/zen.AppImage ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage
- 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-${{ matrix.generic == true && 'generic' || 'specific' }}.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, mac] 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
macos.mar
zen.installer.exe
zen.installer.pretty.exe
zen.macos.dmg
- 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
@@ -569,9 +314,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 ../macos_update_manifest/. 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:
@@ -580,36 +330,108 @@ 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
distro-flatpak: - name: release-github
name: Build flatpak repos uses: 'marvinpinto/action-automatic-releases@latest'
needs: [release] 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
release-flatpak:
if: ${{ github.event.inputs.create_release == 'true' }}
permissions: write-all
name: Release Flatpak
needs: [release, linux, build-data]
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: bilelmoussaoui/flatpak-github-actions:gnome-44
options: --privileged
if: ${{ github.event.inputs.create_release == 'true' && false }}
steps: steps:
- uses: actions/checkout@v3 - name: Clone flatpak repo
uses: actions/checkout@v4
with: with:
repository: zen-browser/flatpak repository: flathub/io.github.zen_browser.zen
token: ${{ secrets.DEPLOY_KEY }} token: ${{ secrets.DEPLOY_KEY }}
submodules: recursive
- name: Ensure repo is on main branch - name: Download linux generic build
uses: actions/download-artifact@v4
with:
name: zen.linux-generic.tar.bz2
- name: Update repo
uses: actions/checkout@v4
with:
path: zen-browser
token: ${{ secrets.DEPLOY_KEY }}
- name: Download flatpak archive
run: | run: |
cd flatpak wget https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar -O archive.tar
git checkout main
git pull
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
with:
bundle: org.zen.browser.flatpak
manifest-path: flatpak/org.zen.browser.flatpak.json
cache-key: flatpak-builder-${{ github.sha }}
- name: Upload flatpak repo - name: Setup git
uses: actions/upload-artifact@v3 run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- name: Prepare flatpak manifest
run: |
python3 ./zen-browser/scripts/prepare-flatpak-release.py \
--flatpak-archive archive.tar \
--version ${{ needs.build-data.outputs.version }} \
--linux-archive zen.linux-generic.tar.bz2 \
--output io.github.zen_browser.zen.yml \
--template-root ./zen-browser/flatpak
- name: Commit changes
run: |
git add io.github.zen_browser.zen.yml
git commit -m "Update to version ${{ needs.build-data.outputs.version }}"
- name: Clean up
run: |
rm -rf zen-browser
rm -rf archive.tar
rm -rf zen.linux-generic.tar.bz2
- name: Upload flatpak manifest
uses: actions/upload-artifact@v4
with: with:
name: flatpak-repo name: io.github.zen_browser.zen.yml
path: flatpak/repo path: ./io.github.zen_browser.zen.yml
- name: Create pull request
uses: peter-evans/create-pull-request@v6
env:
GIT_TRACE: 1
GIT_CURL_VERBOSE: 1
with:
token: ${{ secrets.DEPLOY_KEY }}
commit-message: 🚀 Update to version ${{ needs.build-data.outputs.version }}
title: 🚀 Update to version ${{ needs.build-data.outputs.version }}
body: |
This PR updates the Zen Browser Flatpak package to version ${{ needs.build-data.outputs.version }}.
@mauro-balades
branch: update-to-${{ needs.build-data.outputs.version }}
base: master
git-token: ${{ secrets.DEPLOY_KEY }}
delete-branch: true

30
.github/workflows/clear-cache.yml vendored Normal file
View 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
View 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
View 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
View 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
View 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

View 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

View File

@@ -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

View 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

View 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
View 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}" "$@"

View File

@@ -0,0 +1,8 @@
{
"policies": {
"DisableAppUpdate": true,
"AppAutoUpdate": false,
"ManualAppUpdateOnly": true,
"BackgroundAppUpdate": false
}
}

25
AppDir/zen.desktop Normal file
View File

@@ -0,0 +1,25 @@
[Desktop Entry]
Name=Zen Browser
Exec=zen %u
Icon=zen
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=zen-alpha
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;
Actions=new-window;new-private-window;profilemanager;
[Desktop Action new-window]
Name=Open a New Window
Exec=zen %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=zen --private-window %u
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=zen --ProfileManager %u

373
LICENSE Normal file
View 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.

View File

@@ -3,9 +3,21 @@
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)!
# Performance
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
* Checkout the latest [performance benchmarks](./docs/performance.md)!
## 🚀 Run Locally ## 🚀 Run Locally
@@ -48,8 +60,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)

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 889 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

After

Width:  |  Height:  |  Size: 890 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 629 B

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 830 B

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -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,50 +10,92 @@ 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
if test "$ZEN_RELEASE"; then if test "$ZEN_RELEASE"; then
ac_add_options --enable-hardening ac_add_options --enable-bootstrap
ac_add_options --enable-rust-simd
ac_add_options --enable-release 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-debug
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-crashreporter
ac_add_options --disable-dmd
ac_add_options --disable-geckodriver ac_add_options --disable-geckodriver
ac_add_options --disable-parental-controls ac_add_options --disable-rust-tests
ac_add_options --disable-profiling ac_add_options --disable-default-browser-agent
ac_add_options --disable-tests
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 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
if test "$ZEN_CROSS_COMPILING"; then mk_add_options MOZ_CRASHREPORTER=0
ac_add_options --target=x86_64-pc-linux-gnu mk_add_options MOZ_DATA_REPORTING=0
fi mk_add_options MOZ_SERVICES_HEALTHREPORT=0
mk_add_options MOZ_TELEMETRY_REPORTING=0
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE export MOZ_APP_UA_NAME="Firefox"
# Allow loading unsigned extensions
export MOZ_REQUIRE_SIGNING=1
mk_add_options MOZ_REQUIRE_SIGNING=1

View File

@@ -1,28 +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

View File

@@ -1,15 +1,35 @@
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"
if test "$ZEN_RELEASE"; then # SURFER_COMPAT has a different meaning here, in macOS it means that the build is for
ac_add_options --enable-optimize="-mcpu=apple-m1 -O3 -w" # x86_64, not ARM64.
ac_add_options --enable-release unset MOZ_STDCXX_COMPAT
ac_add_options --enable-rust-simd
ac_add_options RUSTC_OPT_LEVEL=3 ac_add_options --disable-dmd
export MOZILLA_OFFICIAL=1
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=apple-m1" export MOZ_MACBUNDLE_ID=${appId}
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
if test "$SURFER_COMPAT" = "true"; then
export MOZ_PGO=1
ac_add_options MOZ_PGO=1
ac_add_options --target=x86_64-apple-darwin
ac_add_options --enable-wasm-avx
ac_add_options --enable-optimize="-march=nehalem -mtune=haswell -O3 -w"
export CFLAGS="-O3 -march=nehalem"
export CPPFLAGS="-O3 -march=nehalem"
export CXXFLAGS="-O3 -march=nehalem"
export LDFLAGS="-Wl,-O3 -march=nehalem"
export RUSTFLAGS="-Ctarget-cpu=nehalem -C codegen-units=1"
else
ac_add_options --target=aarch64-apple-darwin
ac_add_options --enable-optimize="-O3 -mcpu=apple-m1 -march=armv8.3-a+simd"
export CFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
export CPPFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
export CXXFLAGS="-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
export LDFLAGS="-Wl,-O3 -march=armv8.3-a+simd -mcpu=apple-m1"
export RUSTFLAGS="-C target-feature=+v8.3a -C codegen-units=1 -Ctarget-cpu=apple-m1"
fi fi
export VERBOSE=1
ac_add_options --enable-install-strip
ac_add_options --target=aarch64-apple-darwin
mk_add_options AUTOCLOBBER=1
export MOZ_INCLUDE_SOURCE_INFO=1

View File

@@ -1,6 +1,71 @@
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
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
View 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

99
docs/performance.md Normal file
View File

@@ -0,0 +1,99 @@
# 🌀 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.12-opt | 1874.49 | 59% | 91% | 91% | 76% |
| 1.0.0-a.11-opt | 1678.49 | 59% | 91% | 91% | 76% |
| 1.0.0-a.10 | 1660.89 | 59% | 91% | 91% | 76% |
| 1.0.0-a.9 | 470 | why | why | why | why |
| 1.0.0-a.8 | 446.74 | 59% | 91% | 96% | 76% |
| 1.0.0-a.7 | 1964.43 | 59% | 91% | 91% | 76% |
| 1.0.0-a.6 | 1747.98 | 59% | 91% | 91% | 76% |
| 1.0.0-a.4 | 470.49 | 59% | 91% | 97% | 76% |
| 1.0.0-a.3 | 475.52 |59% | 91% | 97% | 76% |
| other | last | utpdate | 31/7 | 2024 | - |
| Librewolf 128.0-2 | 1953.65 | 59.66% | 89.01% | 91.72% | 76.12% |
| FF nightly 130.0a1 | 1912.77 | 59.66% | 90.91% | 91.72% | 76.12% |
```mermaid
xychart-beta
title "Performance over time (Higher is better)"
x-axis [.3, .4, .6, .7, .8, .9, .10, .11, .12]
y-axis "Benchmark Points"
bar [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49]
line [475.52, 470.49, 1747.98, 1964.43, 446.74, 470, 1660.89, 1678.49, 1874.49]
```
## Speedometer3.0
https://browserbench.org/Speedometer3.0/
| | score: |
|-----------|-----|
| 1.0.0-a.12-opt | 21.5 |
| 1.0.0-a.11-opt | 20.8 |
| 1.0.0-a.10 | 21.2 |
| others| - |
| Vivaldi 6.7.3329.39| 27.8 |
| FF nightly 130.0a1 | 27.0 |
| Librewolf 128.0-2 | 20.2 |
## 2
- [Verix](https://github.com/Veriiix)
OS: Win 11
CPU: i7-13700KF
GPU: AMD RX 7900 XTX
https://www.tablesgenerator.com/
| Version | Score: |
|------------|--------|
| 1.0.0-a.12-opt | 23 |
| 1.0.0-a.11-opt | 22.1 |
| 1.0.0-a.10 | 21.7 |
| 1.0.0-a.9 | 3.7 |
| others| - |
| Default FF | 28 |
https://browserbench.org/Speedometer3.0/

31
docs/requirements.md Normal file
View File

@@ -0,0 +1,31 @@
# Supported CPUs for optimized builds (Windows and Linux)
> If you CPU is not listed, you should use the "Generic" build.
* AMD Family 15h (Excavator)
* AMD Family 17h (Zen)
* AMD Family 17h (Zen+)
* AMD Family 17h (Zen 2)
* AMD Family 19h (Zen 3)
* Intel 4th Gen Core (Haswell)
* Intel 5th Gen Core (Broadwell)
* Intel 6th Gen Core (Skylake)
* Intel 7th Gen Core (Kaby Lake)
* Intel 8/9th Gen Core (Coffee Lake)
* Intel 10th Gen Core (Comet Lake)
* Intel 12th Gen (Alder Lake)
* Intel 13th Gen (Raptor Lake)
* Intel 14th Gen (Raptor Lake Refresh)
* Intel 15th Gen (Lunar / Arrow Lake)
* AMD Family 19h (Zen 4 / Zen 4c)
* AMD Family 1Ah (Zen 5 / Zen 5c)
* Intel 6th Gen Core (Skylake X)
* Intel 8th Gen Core i3 (Cannon Lake)
* Intel Xeon / 10th Gen Core (Ice Lake)
* Intel Xeon (Cascade Lake)
* Intel Xeon (Cooper Lake)
* Intel 3rd Gen 10nm++ (Tiger Lake)
* Intel 4th Gen 10nm++ (Sapphire Rapids)
* Intel 5th Gen 10nm++ (Emerald Rapids)
* Intel 11th Gen (Rocket Lake)

View File

@@ -0,0 +1,46 @@
app-id: io.github.zen_browser.zen
runtime: org.freedesktop.Platform
runtime-version: '23.08'
sdk: org.freedesktop.Sdk
base: org.mozilla.firefox.BaseApp
base-version: '23.08'
command: launch-script.sh
finish-args:
- --share=ipc
- --share=network
- --socket=pulseaudio
- --socket=wayland
- --socket=fallback-x11
- --socket=pcsc
- --socket=cups
- --persist=.zen
- --filesystem=xdg-download:rw
- --device=all
- --talk-name=org.freedesktop.FileManager1
- --own-name=org.mozilla.zen.*
- --own-name=org.mpris.MediaPlayer2.firefox.*
- --system-talk-name=org.freedesktop.NetworkManager
- --talk-name=org.a11y.Bus
modules:
- name: zen_browser
buildsystem: simple
build-commands:
- mv zen /app/
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
- install -Dm0644 metadata/icons/io.github.zen_browser.zen.png ${{FLATPAK_DEST}}/share/icons/hicolor/256x256/apps/${{FLATPAK_ID}}.png
- install -Dm0644 metadata/io.github.zen_browser.zen.metainfo.xml ${{FLATPAK_DEST}}/share/metainfo/${{FLATPAK_ID}}.metainfo.xml
- install -Dm0644 metadata/io.github.zen_browser.zen.desktop ${{FLATPAK_DEST}}/share/applications/${{FLATPAK_ID}}.desktop
sources:
- type: archive
url: https://github.com/zen-browser/desktop/releases/download/{version}/zen.linux-generic.tar.bz2
sha256: {linux_sha256}
strip-components: 0
- type: archive
url: https://github.com/zen-browser/flatpak/releases/latest/download/archive.tar
sha256: {flatpak_sha256}
strip-components: 0
dest: metadata

View File

@@ -13,7 +13,7 @@
"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",
@@ -27,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.14" "@zen-browser/surfer": "^1.2.7"
} }
} }

545
pnpm-lock.yaml generated
View File

@@ -9,8 +9,8 @@ importers:
.: .:
dependencies: dependencies:
'@zen-browser/surfer': '@zen-browser/surfer':
specifier: ^1.0.14 specifier: ^1.2.7
version: 1.0.14 version: 1.2.7
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.14': '@zen-browser/surfer@1.2.7':
resolution: {integrity: sha512-m7RWU4LqGuC4UvEAkho5H41b8T2zMZhN/dBrm+xugZ+rGRAHcw0NMjE3YDsjDr0/r3ZcKw4INPZGhhgSwIs2TA==} resolution: {integrity: sha512-VbbbB7crGXrdfk1PPnlsWFWErwjtccXbRuw5mOQzY327d2t5VraxmkqTzcuGSTxpu3CR/KvzNu0gDg/6+7b4NQ==}
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.14': '@zen-browser/surfer@1.2.7':
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

View File

@@ -0,0 +1,58 @@
import os
import sys
import hashlib
import argparse
FLATID = "io.github.zen_browser.zen"
def get_sha256sum(filename):
sha256 = hashlib.sha256()
with open(filename, "rb") as f:
for byte_block in iter(lambda: f.read(4096), b""):
sha256.update(byte_block)
return sha256.hexdigest()
def build_template(template, linux_sha256, flatpak_sha256, version):
print(f"Building template with version {version}")
print(f"\tLinux archive sha256: {linux_sha256}")
print(f"\tFlatpak archive sha256: {flatpak_sha256}")
return template.format(linux_sha256=linux_sha256,
flatpak_sha256=flatpak_sha256,
version=version)
def get_template(template_root):
file = f"{template_root}/{FLATID}.yml.template"
print(f"Reading template {file}")
with open(file, "r") as f:
return f.read()
print(f"Template {template_root}/flatpak.yml not found")
sys.exit(1)
def main():
parser = argparse.ArgumentParser(description='Prepare flatpak release')
parser.add_argument('--version', help='Version of the release', required=True)
parser.add_argument('--linux-archive', help='Linux archive', required=True)
parser.add_argument('--flatpak-archive', help='Flatpak archive', required=True)
parser.add_argument('--output', help='Output file', default=f"{FLATID}.yml")
parser.add_argument('--template-root', help='Template root', default="flatpak")
args = parser.parse_args()
version = args.version
linux_archive = args.linux_archive
flatpak_archive = args.flatpak_archive
output = args.output
template_root = args.template_root
linux_sha256 = get_sha256sum(linux_archive)
flatpak_sha256 = get_sha256sum(flatpak_archive)
template = build_template(get_template(template_root), linux_sha256, flatpak_sha256, version)
print(f"Writing output to {output}")
with open(output, "w") as f:
f.write(template)
if __name__ == "__main__":
main()

View File

@@ -0,0 +1,224 @@
//
/* 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);
/** 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
/** 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 *
****************************************************************************/

View File

@@ -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);
@@ -147,10 +77,39 @@ pref('dom.security.sanitizer.enabled', true);
// Zen Sidebar // Zen Sidebar
pref('zen.sidebar.data', "{\"data\":\n {\"p1\":{\n \"url\":\"https://www.wikipedia.org/\"\n },\n\"p2\":{\n \"url\":\"https://m.twitter.com/\",\n\"ua\": true\n },\n\"p3\": {\n \"url\": \"https://www.youtube.com/\",\n\"ua\": true\n},\n\"p4\": {\n \"url\": \"https://translate.google.com/\",\n\"ua\": true\n},\n\"p5\": {\n \"url\": \"https://todoist.com/\",\n\"ua\": true\n}},\n\"index\":[\"p1\",\"p2\",\"p3\",\"p4\",\"p5\"]}"); pref('zen.sidebar.data', "{\"data\":\n {\"p1\":{\n \"url\":\"https://www.wikipedia.org/\"\n },\n\"p2\":{\n \"url\":\"https://m.twitter.com/\",\n\"ua\": true\n },\n\"p3\": {\n \"url\": \"https://www.youtube.com/\",\n\"ua\": true\n},\n\"p4\": {\n \"url\": \"https://translate.google.com/\",\n\"ua\": true\n},\n\"p5\": {\n \"url\": \"https://todoist.com/\",\n\"ua\": true\n}},\n\"index\":[\"p1\",\"p2\",\"p3\",\"p4\",\"p5\"]}");
pref('zen.sidebar.enabled', true); pref('zen.sidebar.enabled', true);
pref('zen.sidebar.floating', true); pref('zen.sidebar.close-on-blur', true);
// Zen Split View // Zen Split View
pref('zen.splitView.working', false); pref('zen.splitView.working', false);
// Zen Workspaces // Zen Workspaces
pref('zen.workspaces.enabled', true); pref('zen.workspaces.enabled', true);
// Zen Watermark
pref('zen.watermark.enabled', true);
// Smooth scrolling
pref('apz.overscroll.enabled', true); // not DEFAULT on Linux
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);
// DNS
// pref('network.proxy.type', 0);
// pref('network.trr.mode', 5);
#include better-fox.js

View 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

View File

@@ -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() {
@@ -29,10 +31,13 @@ var gZenBrowserManagerSidebar = {
return JSON.parse(services); return JSON.parse(services);
}, },
get shouldCloseOnBlur() {
return Services.prefs.getBoolPref("zen.sidebar.close-on-blur");
},
listenForPrefChanges() { listenForPrefChanges() {
Services.prefs.addObserver("zen.sidebar.data", this.handleEvent.bind(this)); Services.prefs.addObserver("zen.sidebar.data", this.handleEvent.bind(this));
Services.prefs.addObserver("zen.sidebar.enabled", this.handleEvent.bind(this)); Services.prefs.addObserver("zen.sidebar.enabled", this.handleEvent.bind(this));
Services.prefs.addObserver("zen.sidebar.floating", this.handleEvent.bind(this));
let sidebar = document.getElementById("zen-sidebar-web-panel"); let sidebar = document.getElementById("zen-sidebar-web-panel");
this.splitterElement.addEventListener("mousedown", (function(event) { this.splitterElement.addEventListener("mousedown", (function(event) {
@@ -100,11 +105,26 @@ var gZenBrowserManagerSidebar = {
this.handleEvent(); this.handleEvent();
}, },
get isFloating() {
return document.getElementById("zen-sidebar-web-panel").hasAttribute("pinned");
},
handleEvent() { handleEvent() {
this._hasChangedConfig = true; this._hasChangedConfig = true;
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);
let isFloating = this.isFloating;
if (isFloating && !this._hasRegisteredPinnedClickOutside) {
document.addEventListener("mouseup", clickOutsideHandler);
this._hasRegisteredPinnedClickOutside = true;
} else if (!isFloating && 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 +135,42 @@ var gZenBrowserManagerSidebar = {
} }
}, },
_handleClickOutside(event) {
let sidebar = document.getElementById("zen-sidebar-web-panel");
if (!sidebar.hasAttribute("pinned") || this._isDragging || !this.shouldCloseOnBlur) {
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 +180,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 +247,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 +264,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 +288,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;
@@ -377,7 +428,6 @@ var gZenBrowserManagerSidebar = {
} else { } else {
this._setPinnedToElements(); this._setPinnedToElements();
} }
Services.prefs.setBoolPref("zen.sidebar.floating", sidebar.hasAttribute("pinned"));
this.update(); this.update();
}, },
@@ -468,7 +518,9 @@ var gZenBrowserManagerSidebar = {
if (browser) { if (browser) {
browser.remove(); browser.remove();
} }
this._closeSidebarPanel(); this._currentPanel = null;
this._lastOpenedPanel = null;
this.update();
Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data)); Services.prefs.setStringPref("zen.sidebar.data", JSON.stringify(data));
}, },
@@ -476,6 +528,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);
}, },
}; };

View File

@@ -15,5 +15,63 @@ var gZenUIManager = {
return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c => return "10000000-1000-4000-8000-100000000000".replace(/[018]/g, c =>
(+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16) (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)
); );
}, },
toogleBookmarksSidebar() {
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);
},
}; };

View File

@@ -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;

View File

@@ -3,13 +3,14 @@ var ZenWorkspaces = {
async init() { async init() {
let docElement = document.documentElement; let docElement = document.documentElement;
if (docElement.getAttribute("chromehidden").includes("toolbar") if (docElement.getAttribute("chromehidden").includes("toolbar")
|| docElement.getAttribute("chromehidden").includes("menubar")) { || docElement.getAttribute("chromehidden").includes("menubar")
console.log("!!! ZenWorkspaces is disabled in hidden windows !!!"); || docElement.hasAttribute("privatebrowsingmode")) {
console.warn("ZenWorkspaces: !!! ZenWorkspaces is disabled in hidden windows !!!");
return; // We are in a hidden window, don't initialize ZenWorkspaces return; // We are in a hidden window, don't initialize ZenWorkspaces
} }
console.log("Initializing 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() {
@@ -56,7 +57,6 @@ var ZenWorkspaces = {
} }
if (this.workspaceEnabled) { if (this.workspaceEnabled) {
let workspaces = await this._workspaces(); let workspaces = await this._workspaces();
console.log("Workspaces loaded", workspaces);
if (workspaces.workspaces.length === 0) { if (workspaces.workspaces.length === 0) {
await this.createAndSaveWorkspace("Default Workspace", true); await this.createAndSaveWorkspace("Default Workspace", true);
} else { } else {
@@ -73,6 +73,24 @@ var ZenWorkspaces = {
} }
await this.changeWorkspace(activeWorkspace); await this.changeWorkspace(activeWorkspace);
} }
this._initializeWorkspaceIcons();
}
},
_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);
} }
}, },
@@ -82,18 +100,19 @@ var ZenWorkspaces = {
json.workspaces = []; json.workspaces = [];
} }
json.workspaces.push(workspaceData); json.workspaces.push(workspaceData);
console.log("Saving workspace", workspaceData); console.log("ZenWorkspaces: Saving workspace", workspaceData);
await IOUtils.writeJSON(this._storeFile, json); await IOUtils.writeJSON(this._storeFile, json);
this._workspaceCache = null; this._workspaceCache = null;
}, },
async removeWorkspace(windowID) { async removeWorkspace(windowID) {
let json = await IOUtils.readJSON(this._storeFile); let json = await this._workspaces();
if (!json.workspaces) { console.log("ZenWorkspaces: Removing workspace", windowID);
return; await this.changeWorkspace(json.workspaces.find(workspace => workspace.uuid !== windowID));
} this._deleteAllTabsInWorkspace(windowID);
json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID); json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID);
await IOUtils.writeJSON(this._storeFile, json); await this.unsafeSaveWorkspaces(json);
await this._propagateWorkspaceData();
}, },
async saveWorkspaces() { async saveWorkspaces() {
@@ -118,23 +137,50 @@ var ZenWorkspaces = {
parentPanel.goBack(); 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() { async _propagateWorkspaceData() {
let currentContainer = document.getElementById("PanelUI-zen-workspaces-current-info"); let currentContainer = document.getElementById("PanelUI-zen-workspaces-current-info");
let workspaceList = document.getElementById("PanelUI-zen-workspaces-list"); let workspaceList = document.getElementById("PanelUI-zen-workspaces-list");
const createWorkspaceElement = (workspace) => { const createWorkspaceElement = (workspace) => {
let element = document.createElement("toolbarbutton"); let element = document.createXULElement("toolbarbutton");
element.className = "subviewbutton"; element.className = "subviewbutton";
element.setAttribute("tooltiptext", workspace.name); element.setAttribute("tooltiptext", workspace.name);
element.setAttribute("zen-workspace-id", workspace.uuid); element.setAttribute("zen-workspace-id", workspace.uuid);
element.innerHTML = ` //element.setAttribute("context", "zenWorkspaceActionsMenu");
let childs = window.MozXULElement.parseXULToFragment(`
<div class="zen-workspace-icon"> <div class="zen-workspace-icon">
${workspace.name[0].toUpperCase()} ${this.getWorkspaceIcon(workspace)}
</div> </div>
<div class="zen-workspace-name"> <div class="zen-workspace-name">
${workspace.name} ${workspace.name}
</div> </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 () => { element.onclick = (async () => {
if (event.target.closest(".zen-workspace-actions")) {
return; // Ignore clicks on the actions button
}
await this.changeWorkspace(workspace) await this.changeWorkspace(workspace)
let panel = document.getElementById("PanelUI-zen-workspaces"); let panel = document.getElementById("PanelUI-zen-workspaces");
PanelMultiView.hidePopup(panel); PanelMultiView.hidePopup(panel);
@@ -147,8 +193,11 @@ var ZenWorkspaces = {
workspaceList.innerHTML = ""; workspaceList.innerHTML = "";
workspaceList.parentNode.style.display = "flex"; workspaceList.parentNode.style.display = "flex";
if (workspaces.workspaces.length - 1 <= 0) { if (workspaces.workspaces.length - 1 <= 0) {
workspaceList.parentNode.style.display = "none"; workspaceList.innerHTML = "No workspaces available";
} workspaceList.setAttribute("empty", "true");
} else {
workspaceList.removeAttribute("empty");
}
if (activeWorkspace) { if (activeWorkspace) {
let currentWorkspace = createWorkspaceElement(activeWorkspace); let currentWorkspace = createWorkspaceElement(activeWorkspace);
currentContainer.appendChild(currentWorkspace); currentContainer.appendChild(currentWorkspace);
@@ -200,7 +249,17 @@ var ZenWorkspaces = {
} }
let activeWorkspace = (await this._workspaces()).workspaces.find(workspace => workspace.used); let activeWorkspace = (await this._workspaces()).workspaces.find(workspace => workspace.used);
if (activeWorkspace) { if (activeWorkspace) {
button.innerHTML = activeWorkspace.name[0].toUpperCase(); 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");
}
} }
}, },
@@ -210,9 +269,30 @@ var ZenWorkspaces = {
return document.getElementById("PanelUI-zen-workspaces-create-input"); return document.getElementById("PanelUI-zen-workspaces-create-input");
}, },
_deleteAllTabsInWorkspace(workspaceID) {
for (let tab of gBrowser.tabs) {
if (tab.getAttribute("zen-workspace-id") === workspaceID) {
gBrowser.removeTab(tab, {
animate: true,
skipSessionStore: true,
closeWindowWithLastTab: false,
});
}
}
},
_prepareNewWorkspace(window) { _prepareNewWorkspace(window) {
document.documentElement.setAttribute("zen-workspace-id", window.uuid); document.documentElement.setAttribute("zen-workspace-id", window.uuid);
this._createNewTabForWorkspace(window); 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) { _createNewTabForWorkspace(window) {
@@ -221,12 +301,20 @@ var ZenWorkspaces = {
}, },
async saveWorkspaceFromInput() { 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; let workspaceName = this._workspaceInput.value;
if (!workspaceName) { if (!workspaceName) {
return; return;
} }
this._workspaceInput.value = ""; this._workspaceInput.value = "";
await this.createAndSaveWorkspace(workspaceName); 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); document.getElementById("PanelUI-zen-workspaces").hidePopup(true);
}, },
@@ -244,22 +332,14 @@ var ZenWorkspaces = {
return; return;
} }
let firstTab = undefined; let firstTab = undefined;
// Get the number of tabs that are hidden before we start hiding them
let numHiddenTabs = gBrowser.tabs.reduce((acc, tab) => {
return tab.getAttribute("zen-workspace-id") !== window.uuid ? acc + 1 : acc;
}, 0);
let workspaces = await this._workspaces(); let workspaces = await this._workspaces();
for (let workspace of workspaces.workspaces) { for (let workspace of workspaces.workspaces) {
workspace.used = workspace.uuid === window.uuid; workspace.used = workspace.uuid === window.uuid;
} }
this.unsafeSaveWorkspaces(workspaces); this.unsafeSaveWorkspaces(workspaces);
if (numHiddenTabs === gBrowser.tabs.length) { console.log("ZenWorkspaces: Changing workspace to", window.uuid);
// If all tabs are hidden, we need to create a new tab
// to show the workspace
this._createNewTabForWorkspace(window);
}
for (let tab of gBrowser.tabs) { for (let tab of gBrowser.tabs) {
if (tab.getAttribute("zen-workspace-id") === window.uuid) { if (tab.getAttribute("zen-workspace-id") === window.uuid && !tab.pinned) {
if (!firstTab) { if (!firstTab) {
firstTab = tab; firstTab = tab;
gBrowser.selectedTab = firstTab; gBrowser.selectedTab = firstTab;
@@ -267,6 +347,9 @@ var ZenWorkspaces = {
gBrowser.showTab(tab); gBrowser.showTab(tab);
} }
} }
if (typeof firstTab === "undefined") {
this._createNewTabForWorkspace(window);
}
for (let tab of gBrowser.tabs) { for (let tab of gBrowser.tabs) {
if (tab.getAttribute("zen-workspace-id") !== window.uuid) { if (tab.getAttribute("zen-workspace-id") !== window.uuid) {
gBrowser.hideTab(tab); gBrowser.hideTab(tab);
@@ -278,23 +361,23 @@ var ZenWorkspaces = {
await this._propagateWorkspaceData(); await this._propagateWorkspaceData();
}, },
_createWorkspaceData(name, isDefault) { _createWorkspaceData(name, isDefault, icon) {
let window = { let window = {
uuid: gZenUIManager.generateUuidv4(), uuid: gZenUIManager.generateUuidv4(),
default: isDefault, default: isDefault,
used: true, used: true,
icon: "", icon: icon,
name: name, name: name,
}; };
this._prepareNewWorkspace(window); this._prepareNewWorkspace(window);
return window; return window;
}, },
async createAndSaveWorkspace(name = "New Workspace", isDefault = false) { async createAndSaveWorkspace(name = "New Workspace", isDefault = false, icon = undefined) {
if (!this.workspaceEnabled) { if (!this.workspaceEnabled) {
return; return;
} }
let workspaceData = this._createWorkspaceData(name, isDefault); let workspaceData = this._createWorkspaceData(name, isDefault, icon);
await this.saveWorkspace(workspaceData); await this.saveWorkspace(workspaceData);
await this.changeWorkspace(workspaceData); await this.changeWorkspace(workspaceData);
}, },
@@ -311,6 +394,33 @@ var ZenWorkspaces = {
tab.setAttribute("zen-workspace-id", activeWorkspace.uuid); 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();

View File

@@ -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();

View File

@@ -1,7 +1,16 @@
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
index 390a1300a1213af2b411ba09c67e3c25750ee6c3..7c80c54dd43b5414bf5ea9101d53431c0b4a140b 100644 index 390a1300a1213af2b411ba09c67e3c25750ee6c3..253d7abfcc1ade419c8f70289719cdc53898cab4 100644
--- a/browser/base/content/navigator-toolbox.inc.xhtml --- a/browser/base/content/navigator-toolbox.inc.xhtml
+++ b/browser/base/content/navigator-toolbox.inc.xhtml +++ b/browser/base/content/navigator-toolbox.inc.xhtml
@@ -2,7 +2,7 @@
# 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/.
-<toolbox id="navigator-toolbox">
+<toolbox id="navigator-toolbox" persist="width style">
<vbox id="titlebar">
<!-- Menu -->
@@ -32,10 +32,11 @@ @@ -32,10 +32,11 @@
<hbox class="titlebar-spacer" type="pre-tabs"/> <hbox class="titlebar-spacer" type="pre-tabs"/>

View 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.

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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

View 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

View 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

View File

@@ -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 0) rotate(254 18 18) scale(1.2)" fill="#fac89a" rx="6"></rect><g transform="translate(4 -1) rotate(-4 18 18)"><path d="M15 21c2 1 4 1 6 0" stroke="#000000" fill="none" stroke-linecap="round"></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: 784 B

Some files were not shown because too many files have changed in this diff Show More