Compare commits

...

211 Commits

Author SHA1 Message Date
mr. M
ac3e035af7 Update submodules to commit 6e0c5ca64550b31fa4ad5b0dc8bd3a8019ab1deb 2024-10-14 20:58:22 +02:00
mr. m 🤙
538fd146fb Update submodules to commit 6031981acdb600561b3fdfcf7f51864664b0c25a-… (#2100)
* Update submodules to commit 6031981acdb600561b3fdfcf7f51864664b0c25a-dirty

* Added new icons selector for workspaces
2024-10-14 20:55:59 +02:00
mr. M
f1d438f3fd Refactor build and run instructions in README.md 2024-10-14 19:32:00 +02:00
mr. M
49bb9cd398 Added container tabs support for sidebar websites 2024-10-14 19:28:28 +02:00
mr. M
7d00a254da Fixed workspaces syncing across windows (closes https://github.com/zen-browser/desktop/issues/2005) 2024-10-14 17:45:11 +02:00
mr. M
ad9ad07cbd Update submodules to commit 41193b2 2024-10-14 17:36:16 +02:00
mr. M
598d60ab7e Update Firefox version to 131.0.3 2024-10-14 17:36:06 +02:00
mauro-balades
d3f61027c7 [skip ci] 📦 Update Submodules! 2024-10-14 15:24:35 +00:00
kristijanribaric
8ecbbd0719 feat: Add preference to force container tabs to a workspace with that container set as default (#2095)
This commit introduces a new preference, "zen.workspaces.force-container-workspace", that allows users to control whether container tabs are automatically placed in a dedicated workspace. When enabled, this feature ensures that all tabs from a container are grouped together within a specific workspace.

The following files were modified:

- `src/browser/components/preferences/zen-settings.js`: Added the new preference definition.
- `src/browser/app/profile/zen-browser.js`: Set the default value for the new preference.
- `src/browser/components/preferences/zenTabsManagement.inc.xhtml`: Added a checkbox to control the new preference in the settings UI.
2024-10-14 17:24:14 +02:00
mauro-balades
17943dcf1a [skip ci] 📦 Update Submodules! 2024-10-13 21:49:00 +00:00
kristijanribaric
0150e6d689 Fix: Open external links in workspace's default container (#2081)
* Fix: Pass `fromExternal` to `ZenWorkspaces.getContextIdIfNeeded`

* Add allowInheritPrincipal to ZenWorkspaces.getContextIdIfNeeded
2024-10-13 23:48:39 +02:00
Gun
b5260051a0 No Proxy should be default, Use system proxy allows antivirus, virus or system proxy to MITM or slowing down Zen (#2076)
No Proxy should be default, Use system proxy allows antivirus, virus or system proxy to MITM or slowing down Zen

Signed-off-by: Gun <footmenkingdom@gmail.com>
2024-10-13 19:55:47 +02:00
mr. M
b1f17ff508 Refactor mozconfig to enable MOZ_PGO and wasm-avx 2024-10-13 17:42:26 +02:00
mr. M
f4b3f62a46 Refactor mozconfig to disable MOZ_PGO and enable wasm-avx 2024-10-13 17:41:59 +02:00
mr. M
519cbdd872 Refactor zen-theme.css to adjust tertiary color mix 2024-10-13 16:47:24 +02:00
mr. M
28cc158a3f Refactor build.yml to remove unnecessary environment variable 2024-10-13 16:13:26 +02:00
mr. M
c99bf518b3 Refactor build.yml to remove unnecessary environment variable 2024-10-13 16:12:25 +02:00
mr. M
86d3244a22 Refactor contribute.md to update branch structure diagram 2024-10-13 16:08:29 +02:00
Jupi
618859788c fix very minor spelling mistake in contribute.md (#2071) 2024-10-13 16:06:33 +02:00
mr. M
8008633c02 Refactor keyboard shortcuts preference and add debugging option 2024-10-13 14:42:22 +02:00
mr. M
e840184e7f Improved light theme and compact mode 2024-10-13 11:44:10 +02:00
mr. M
5aa17208a5 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2024-10-13 11:05:34 +02:00
mr. M
bd7d46f446 Refactor build workflow to install additional dependencies for Linux build 2024-10-13 11:05:25 +02:00
Gun
013d14d723 VAAPI/FFMPEG is Linux only (#2062)
* Store pinned tab triggering principal in sessionstore (#2050)

* Revert "Store pinned tab triggering principal in sessionstore (#2050)" (#2054)

This reverts commit 70873ebb11.

* VAAPI/FFMPEG is Linux only

VAAPI/FFMPEG is Linux only

Signed-off-by: Gun <footmenkingdom@gmail.com>

---------

Signed-off-by: Gun <footmenkingdom@gmail.com>
Co-authored-by: kristijanribaric <96492763+kristijanribaric@users.noreply.github.com>
Co-authored-by: mr. m  🤙 <91018726+mauro-balades@users.noreply.github.com>
2024-10-13 09:57:35 +02:00
mr. M
b87b9d3e26 Refactor build workflow to improve branch checking and fetch depth 2024-10-13 02:26:39 +02:00
mr. M
bdbce8a7da Refactor subproject commit in zen-components 2024-10-13 02:22:56 +02:00
mr. M
f661ba7c40 Refactor vertical-tabs.css to reduce toolbox width to 44px 2024-10-12 22:53:36 +02:00
mr. M
a87dc0346d Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2024-10-12 22:08:37 +02:00
mr. M
7470ff5437 Refactor subproject commit in zen-components
Update background color in zen-workspaces.css
2024-10-12 22:08:29 +02:00
mauro-balades
fe10ffc7d7 [skip ci] 📦 Update Submodules! 2024-10-12 20:08:20 +00:00
kristijanribaric
1628b4ca3e feat(sessionstore): Store zen pinned entry in tab state (#2058)
This commit adds the `zenPinnedEntry` property to the `TabState` object, which stores the full zen pinned entry data. This information will be used to restore the pinned entry when a tab is restored from the session.

The following changes were made:

- Added `zenPinnedEntry` to `TabState`
- Removed `zenPinnedUrl`, `zenPinnedTitle`, `zenPinnedIcon`, and `zenPinnedTriggeringPrincipal` as they are now included in `zenPinnedEntry`.
- Updated the `TabState` serialization and deserialization logic to handle the new `zenPinnedEntry` property.
2024-10-12 22:07:53 +02:00
mr. M
74bed8b30a Update display version in surfer.json 2024-10-12 19:58:45 +02:00
mr. M
e4287ee7fb Refactor subproject commit in zen-components 2024-10-12 19:08:59 +02:00
kristijanribaric
71a2646c5b Store pinned tab triggering principal in sessionstore (#2055) 2024-10-12 19:08:38 +02:00
mr. M
39fbe69847 Refactor twilight-release-schedule.yml to use cron schedule 2024-10-12 18:47:01 +02:00
mr. M
aa8ef338c5 Update subproject commit in zen-components 2024-10-12 18:46:23 +02:00
mr. M
b9f392da94 Refactor merge-to-branch.sh and unify-twilight-and-stable.sh scripts 2024-10-12 18:34:21 +02:00
mr. M
40223ee48a Refactor twilight-release-schedule.yml to trigger on cron schedule 2024-10-12 18:32:55 +02:00
mr. M
0d2ae948e8 Refactor branch names in build and release workflows 2024-10-12 18:32:20 +02:00
mr. M
7a04307c32 Refactor twilight-release-schedule.yml to trigger on push to twilight branch 2024-10-12 18:02:47 +02:00
mr. M
da5ae971e1 Merge branch 'central' of https://github.com/zen-browser/desktop into central 2024-10-12 17:53:57 +02:00
mr. M
d8bbb62081 Refactor zen-components submodule to use updated commit
``
2024-10-12 17:53:52 +02:00
mr. m 🤙
f5215c1f29 Merge pull request #2043 from BrhmDev/fix/change-on-hover-not-changing-correct-pref
Fix change on hover setting not doing anything.
2024-10-12 12:33:30 +02:00
brahim
54706e51af Fix change on hover not changing right pref. 2024-10-12 12:07:29 +02:00
mr. M
2ee66b0b22 Fixed " Closing Tabs opened from SidePanel renders the browser unusable" (closes https://github.com/zen-browser/desktop/issues/1966) 2024-10-11 23:02:54 +02:00
mr. M
2082079c7e Fixed browser bottom padding misaligns (closes https://github.com/zen-browser/desktop/issues/2007) 2024-10-11 19:43:09 +02:00
mr. M
0c30803fdd Refactor update-submodules workflow to exclude l10n submodule 2024-10-11 19:36:41 +02:00
mr. M
3745de490f Refactor update-submodules workflow to use 'main' branch for zen-components submodule 2024-10-11 19:31:14 +02:00
mr. M
cf0e6b8f86 Refactor update-submodules workflow to exclude l10n submodule 2024-10-11 19:30:31 +02:00
mr. M
e184e9a97c Refactor update-submodules workflow to handle zen-components submodule 2024-10-11 19:29:39 +02:00
mr. M
4cd304b4c6 Refactor unify-twilight-and-stable.sh script to use 'sh' command to execute merge-to-branch.sh 2024-10-11 19:28:34 +02:00
mr. M
8bcffb59e6 Refactor unify-twilight-and-stable.sh script to merge current branch to both stable and twilight branches 2024-10-11 19:28:19 +02:00
mr. M
f2058851d0 Refactor update-submodules workflow to handle central branch and update components submodule 2024-10-11 19:27:10 +02:00
mr. M
3a2ad6e578 Refactor merge-to-branch script to handle default branch name and merge to specified branch 2024-10-11 19:18:57 +02:00
mr. M
45e751a8be Refactor merge-to-branch script to handle "zen-stable" branch and merge to "zen-twilight" branch if specified 2024-10-11 19:16:19 +02:00
mr. M
6d9e54043c Refactor merge-to-branch script to handle "zen-stable" branch and merge to "twilight" branch if specified 2024-10-11 19:14:34 +02:00
mr. M
2b68cc481e Refactor merge-to-branch script to handle "zen-stable" branch and merge to "twilight" branch if specified 2024-10-11 19:13:55 +02:00
mr. M
49f7a457cd Refactor merge-to-branch script to prepend "zen-" to the branch name if no branch is specified 2024-10-11 19:11:57 +02:00
mr. M
c18b3db621 Refactor branch structure and update documentation 2024-10-11 19:11:16 +02:00
mr. M
cf450d6d4a Refactor merge-to-branch script to use default branch if no branch is specified 2024-10-11 18:54:51 +02:00
mr. M
93774f17c8 Refactor merge-to-branch script to use default branch if no branch is specified 2024-10-11 18:54:13 +02:00
mr. M
349e8a9203 Refactor branch validation in build workflow 2024-10-11 18:51:02 +02:00
mr. M
150f092e9a Refactor branch structure and update documentation 2024-10-11 18:41:11 +02:00
mr. M
69020cc516 Refactor build workflow and add branch validation 2024-10-11 18:30:32 +02:00
mauro-balades
a01a6d0f43 Update subproject commit hash 2024-10-11 17:20:37 +02:00
mauro 🤙
52a15da966 Merge pull request #2004 from LeMoonStar/twilight-desktop-name
Change name in .desktop during twilight AppImage build
2024-10-11 17:06:23 +02:00
mauro 🤙
322d3dcab1 Merge pull request #2008 from BrhmDev/fix/compact-mode
Fix compact mode collapsed width not applied
2024-10-11 17:06:10 +02:00
brahim
234d05d044 Fix compact mode collapsed width not applied, change top gap when toolbar visible. 2024-10-11 03:24:28 +02:00
LeMoonStar
8b7953280a Change name in .desktop during twilight build 2024-10-10 22:59:17 +02:00
Mauro Baladés
0ba9eb2eeb Remove unnecessary files from obj folder 2024-10-10 22:01:03 +03:00
Mauro Baladés
508a0c7815 Sign and package windows artifacts 2024-10-10 21:59:38 +03:00
mauro-balades
264eaa5cbf 🔖 Update version to 1.0.1-a.8 2024-10-10 17:31:56 +00:00
mauro-balades
b4901cb113 Update Firefox version to 131.0.2 in README.md and surfer.json 2024-10-10 19:29:13 +02:00
mauro 🤙
4380370ae4 Merge pull request #1998 from BrhmDev/fix/floating-compact-mode
Fix floating compact mode
2024-10-10 18:40:50 +02:00
brahim
d043ea25d8 Use var for zen compact float. 2024-10-10 16:28:17 +02:00
brahim
dadc13a2df Remove unnecessary checks to see if toolbox collapsed in zen-compact-mode.css 2024-10-10 15:49:03 +02:00
brahim
34e47d79dd Fix floating compact mode: revert logic in ZenCompactMode.mjs, use invisible padding. 2024-10-10 14:07:48 +02:00
mauro-balades
945ee1245e Updated l10n ID packs 2024-10-09 20:20:51 +02:00
mauro-balades
7f263b4c5e Update subproject commit with dirty flag 2024-10-09 20:07:11 +02:00
mauro-balades
569d93af9a Update subproject commit with dirty flag 2024-10-09 20:02:46 +02:00
mauro-balades
9440716951 Made compact mode float 2024-10-09 20:01:51 +02:00
mauro-balades
cc4e676bb7 Fixed compact mode being active at the same time with split views 2024-10-09 18:46:41 +02:00
mauro-balades
9d0eaad314 Update keyboard shortcuts preference 2024-10-09 17:07:03 +02:00
mauro-balades
1d22650d89 Update subproject commit with dirty flag 2024-10-09 16:42:35 +02:00
mauro 🤙
ce519530bc Merge pull request #1983 from kristijanribaric/feature-(workspace-icons-sync)-enable-icons-sync
Feature: Enable syncing of Workspace icons by default
2024-10-09 14:40:25 +02:00
Kristijan Ribarić
3e02f0d39f feat: Enable syncing of Workspace icons by default
This commit adds a new preference (`services.sync.prefs.sync.zen.workspaces.icons`) to enable syncing of the Workspace icons across different devices. This allows users to maintain the same visual experience regardless of where they are using Zen.
2024-10-09 08:50:40 +02:00
mauro-balades
89b97338e4 Update subproject commit with dirty flag 2024-10-09 07:47:47 +02:00
mauro 🤙
2345563879 Merge pull request #1974 from kristijanribaric/fix(pinned-tab-url-reset)-add-default-value-for-shortcut-behavior
Add pinned tab close behavior default preference
2024-10-08 22:43:50 +02:00
Kristijan Ribarić
692cb9223c Add pinned tab close behavior preference 2024-10-08 22:42:38 +02:00
mauro-balades
e8ff848518 Fix initialization issue with ZenStartup 2024-10-08 22:30:26 +02:00
mauro 🤙
256dadbaf7 Merge pull request #1957 from kristijanribaric/feature(pinned-tab-url-reset)-add-setting-and-pinned-tab-base-url-persisting
Feature: Add Pinned Tab Management and URL Reset Functionality 2.0
2024-10-08 21:54:12 +02:00
mauro-balades
3e92111847 Fixed compact mode flickering when it's on the right side (closes https://github.com/zen-browser/desktop/issues/1973) 2024-10-08 21:27:03 +02:00
mauro-balades
2e4958bc25 Update zen-components submodule commit 2024-10-08 21:23:19 +02:00
Kristijan Ribarić
8c04cda18b feat: Replace close shortcut options for pinned tabs with a single menulist
This commit replaces the four separate checkboxes for close shortcut options for pinned tabs with a single menulist. This makes the UI more streamlined and user-friendly, as users can now easily select from a list of available options instead of having to check or uncheck multiple boxes.

The new menulist offers the following options:

- reset-unload-switch: Resets the tab if it was changed, otherwise unloads it.
- unload-switch: Unloads the tab if it was changed, otherwise does nothing.
- reset-switch: Resets the tab if it was changed, otherwise switches to it.
- switch: Switches to the tab.
- reset: Resets the tab.
- close: Closes the tab.

This provides a more comprehensive and flexible set of options for managing pinned tabs, making the experience more intuitive and customizable.
2024-10-08 21:07:06 +02:00
mauro-balades
515b4d50ab Update zen-components submodule commit 2024-10-08 20:38:20 +02:00
mauro-balades
414308f277 Merge branch 'main' of https://github.com/zen-browser/desktop 2024-10-08 20:31:40 +02:00
mauro-balades
ffe822819c Yet another attempt into fixing macos shortcuts 2024-10-08 20:31:33 +02:00
Kristijan Ribarić
948cfc4034 feat: Add new settings for close shortcut behavior of pinned tabs
This commit introduces new settings for the behavior of closing pinned tabs using the close shortcut.

The following options are now available:

- **Reset pinned tab on close shortcut**: Reset the tab to the pinned URL.
- **Unload pinned tab on close shortcut**: Unload the tab.
- **Change pinned tab on close shortcut**: Change the pinned tab.
- **Close pinned tab on close shortcut**: Close the tab.

This provides more granular control over how pinned tabs are handled when the close shortcut is used, allowing users to customize the behavior to their specific needs.
2024-10-08 17:47:19 +02:00
Kristijan Ribarić
fdd99cb8d6 Fix: Refactor pinned tab management and remove unnecessary attribute checks
This commit refactors the pinned tab management code to improve clarity and reduce redundant checks.

The following changes were made:

- Moved pinned tab logic to a dedicated `gZenPinnedTabManager` class.
- Removed unnecessary attribute checks for `zen-pinned-url`, `zen-pinned-title`, and `zen-pinned-icon` as these are now handled by the `gZenPinnedTabManager` class.
- Simplified session restore logic for pinned tabs.
- Updated the pinned tab context menu logic to utilize the `gZenPinnedTabManager` class.
- Removed unnecessary code blocks related to pinned tabs.

These changes improve the overall readability and maintainability of the pinned tab management code.
2024-10-08 15:00:11 +02:00
Kristijan Ribarić
9df773dde2 Add pin icon for replace pinned url with current context item 2024-10-08 15:00:10 +02:00
Kristijan Ribarić
8c42614427 feat(pinned-tab-manager): Add restore pinned tabs to pinned url option
This commit introduces a new option to the pinned tab manager that allows users to restore pinned tabs to their pinned URL and title, even if the current tab has a different URL.

- Adds a new preference `zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url` to control this behavior.
- Updates the tab browser, tab state, and preferences code to support the new option.
- Adds a new UI element in the settings to allow users to enable/disable this feature.

This feature enhances the pinned tab manager by providing more control over how pinned tabs are restored when the browser is restarted.
2024-10-08 15:00:10 +02:00
Kristijan Ribarić
6dcff571d2 feat(zen-pinned-tab-manager): Add pinned tab management functionality
This commit introduces a new feature: pinned tab management. It allows users to pin tabs and define whether to reset pinned tabs on close.

- Adds a new `ZenPinnedTabManager` component to manage pinned tabs.
- Updates `zen-assets.inc.xhtml` and `zen-assets.jar.inc.mn` to include the new component.
- Modifies the `ZenStartup.mjs` file to initialize the new manager.
- Introduces a new preference `zen.pinned-tab-manager.reset-pinned-tab-on-close-shortcut` to control the behavior of pinned tabs on close.
- Updates the settings UI to reflect the new pinned tab management functionality.
- Refactors related preferences from `zen.tab-unloader.*` to `zen.pinned-tab-manager.*`.

This feature enhances Zen's tab management capabilities by providing users with more control over their pinned tabs.
2024-10-08 15:00:10 +02:00
Kristijan Ribarić
43834e57f0 feat(sessionstore): Add pinned url, and pinned title to tab state
Adds `zenPinnedUrl`, and `zenPinnedTitle` attributes to the tab state to persist pinned tab information. This allows users to restore their previous Zen pinned base url configuration upon restarting the browser.
2024-10-08 15:00:10 +02:00
Kristijan Ribarić
b185773daf feat(pinned-tab-url-reset): add option to reset pinned tab to originally pinned url
Adds a new setting to enable or disable pinned tab url resetting on pressing close tab shortcut.

Persists pinned tab url and label on browser closing.
2024-10-08 15:00:10 +02:00
mauro 🤙
593a9244a4 Merge pull request #1958 from SoongVilda/patch-1
Installation of Zen on CachyOS
2024-10-08 07:40:58 +02:00
Soong-Vilda
165ee8a3f8 Installation of Zen on CachyOS
I’ve added both variants of `zen-browser-bin` and `zen-browser-avx2-bin`. CachyOS has Zen available in the repository.
2024-10-08 01:05:22 +02:00
mauro-balades
66fc824bb5 Merge branch 'main' of https://github.com/zen-browser/desktop 2024-10-07 20:55:06 +02:00
mauro-balades
a556454ced Add ZenGradientGenerator to zen-assets.jar and zen-styles
This commit adds the ZenGradientGenerator module to the zen-assets.jar and zen-styles directories. The ZenGradientGenerator is responsible for generating gradients used in the Zen theme. This addition will enhance the visual appearance of the theme.
2024-10-07 20:54:53 +02:00
mauro 🤙
d248880890 Merge pull request #1933 from n7itro/main
fix performance
2024-10-07 19:26:35 +02:00
mauro-balades
c9a8177351 Fix display issues on some keyboard layouts and settings after restart 2024-10-07 19:18:10 +02:00
mauro-balades
5e85f1025a Fix display issues on keyboard shortcuts settings on some keyboard layouts 2024-10-07 18:42:17 +02:00
mauro-balades
eebcb0cb6e Fixed keyboard shortcuts not being displayed correctly on the settings after a restart 2024-10-07 18:28:33 +02:00
mauro-balades
cf3f788218 Might had fixed macos keyboard shortcuts 2024-10-07 18:09:34 +02:00
mauro 🤙
31f939ba96 Merge pull request #1944 from BrhmDev/fix/splitview-overlay-missaligned-when-tabs-not-expanded
Fix splitview overlay becoming misaligned when tabs not expanded.
2024-10-07 07:45:23 +02:00
brahim
b707aabee4 Fix splitview overlay becoming misaligned when tabs not expanded. 2024-10-07 02:39:19 +02:00
nitro
b3e3fdbad7 fix performance 2024-10-06 20:32:44 +02:00
mauro-balades
41897f06ed Update subproject commits in l10n and zen-components 2024-10-06 19:31:29 +02:00
mauro-balades
4758656211 Add build time to Twilight build title 2024-10-06 18:46:28 +02:00
mauro-balades
5e1a5fc498 Added toast notification when enabling split view rearanging 2024-10-06 18:15:28 +02:00
mauro-balades
174fafcb45 Fixed height for pinned tabs 2024-10-06 17:12:12 +02:00
mauro-balades
19fff2bd89 Update subproject commits in l10n and zen-components 2024-10-06 17:09:44 +02:00
mauro-balades
4b1ef1222b Update subproject commits in l10n and zen-components 2024-10-06 15:22:21 +02:00
mauro 🤙
46cca21a72 Merge pull request #1914 from BrhmDev/feature/rearrange-split-view
Fully customizable splitview using drag and drop
2024-10-06 15:21:12 +02:00
brahim
81c2f08e62 Add pref for rearrange-edge-hover-size 2024-10-06 14:46:47 +02:00
mauro-balades
2a764eaf7a Added preloaded scripts that load before the window is created 2024-10-06 14:03:35 +02:00
mauro 🤙
a1cccb1ca4 Merge pull request #1928 from gunir/patch-4
Fix buffering issues: Youtube, Archive bugzilla.mozilla.org/show_bug.…
2024-10-06 13:44:52 +02:00
Gunir
d7bff00046 Fix buffering issues: Youtube, Archive bugzilla.mozilla.org/show_bug.cgi?id=1854077
Fix buffering issues: Youtube, Archive bugzilla.mozilla.org/show_bug.cgi?id=1854077
2024-10-06 18:41:32 +07:00
brahim
22ef403bd4 Make it impossible to drop splitview tab on itself, lower opacity of tab being dragged. Fix splitters not being cleared after browser drop. 2024-10-06 13:38:29 +02:00
mauro-balades
e466fb95b5 Fix extension buttons remaining when switching to compact mode (closes https://github.com/zen-browser/desktop/issues/1925) 2024-10-06 11:32:26 +02:00
mauro-balades
c5ab69f38d Refactor build workflow to use 'marvinpinto/action-automatic-releases' for updating twilight tag 2024-10-06 10:59:05 +02:00
mauro 🤙
09f673d94c Merge pull request #1883 from Donnnno/temp-icons
Temporary logo color change
2024-10-05 23:30:40 +02:00
mauro-balades
b323a92dbf Added zen workspaces for syncing 2024-10-05 23:27:25 +02:00
mauro 🤙
57f697975e Merge pull request #1899 from kristijanribaric/feature(workspace-sync)-load-workspace-sync-script
Feature: Add Zen Workspaces synchronization
2024-10-05 22:53:49 +02:00
Kristijan Ribarić
9a9171055c feat(sync): Removed patch files, placed the logic in zen files 2024-10-05 22:53:13 +02:00
mauro-balades
90683aa637 Refactor build workflow to disable version update 2024-10-05 19:00:40 +02:00
mauro-balades
480bcccbf4 Refactor build workflow to remove debug inputs 2024-10-05 18:57:36 +02:00
mauro-balades
015c27ecad Refactor build workflow to fix debug inputs 2024-10-05 18:56:01 +02:00
mauro-balades
1ec4c2ba9d Refactor build workflow to include debug inputs 2024-10-05 18:55:24 +02:00
mauro-balades
69653bb402 Refactor build workflow to include debug inputs 2024-10-05 18:53:20 +02:00
mauro-balades
988d5a2535 Refactor release workflow conditionals 2024-10-05 18:46:39 +02:00
mauro-balades
8de8f190ff Fixed internal keyboard shortcuts for macos (https://github.com/zen-browser/desktop/issues/1629) and bookmarks sidebar separation 2024-10-05 18:42:27 +02:00
brahim
ac58a0da0e Merge remote-tracking branch 'origin/main' into feature/rearrange-split-view 2024-10-05 17:54:09 +02:00
mauro-balades
eb19d2a1c4 Fixed themes page crashing if the theme didnt exist 2024-10-05 16:37:49 +02:00
brahim
36656fd0f4 Add splitview drag and drop functionality 2024-10-05 15:24:35 +02:00
Donno
eb5d10c24a ico & mac 2024-10-05 15:18:15 +02:00
Donno
da6101a355 revert color for alpha 2024-10-05 15:11:31 +02:00
Kristijan Ribarić
20f6dfafa1 feat: Add Workspaces to Sync options
This commit adds Workspaces to the list of data types that can be synced.

This introduces the following changes:

- Adds a new preference `services.sync.engine.workspaces` to control syncing of Workspaces.
- Updates the `syncChooseWhatToSync.js` and `syncChooseWhatToSync.xhtml` files to include the new Workspaces option in the UI.
- Adds relevant localization strings to `preferences-ftl`.
- Updates CSS styling for the Workspaces option.
- Updates `zen-browser.js` to disable Workspace syncing by default.

This change allows users to choose whether to sync their Workspaces across devices.
2024-10-05 15:11:14 +02:00
Kristijan Ribarić
5488980bd9 feat: Add Zen Workspaces synchronization
This commit introduces a new component, `ZenWorkspacesSync`, which enables synchronization of Zen Workspaces across different devices.

- Added `ZenWorkspacesSync` component.
- Updated `zen-assets.inc.xhtml` and `zen-assets.jar.inc.mn` to include the new component.

This feature allows users to maintain consistent workspace configurations on multiple computers, enhancing productivity and seamless workflow.
2024-10-05 15:11:14 +02:00
brahim
de92af20f0 Animate splitview panels 2024-10-05 10:40:38 +02:00
mauro 🤙
f22646a905 Create CODE_OF_CONDUCT.md 2024-10-05 10:07:45 +02:00
mauro-balades
44a8bc3f1d Changed Zen HQ to Zen OSS Team 2024-10-05 09:54:24 +02:00
brahim
a870d7eb42 Render dropZone when dragging. 2024-10-05 03:30:24 +02:00
brahim
e429d0317d Fix splitview splitter alignment 2024-10-05 02:00:15 +02:00
mauro-balades
c8391950cf Expanded on sidebar stylings and added option to disable border of bottom icons 2024-10-04 19:19:40 +02:00
brahim
7cf789ad5f Merge remote-tracking branch 'origin/main' into feature/rearrange-split-view 2024-10-04 18:40:22 +02:00
mauro-balades
d28062cc93 Update subproject commit in zen-components 2024-10-04 18:38:13 +02:00
mauro-balades
5d0ea6a2c3 Fixed tab unloader pref not being updated (closes https://github.com/zen-browser/desktop/issues/1835) 2024-10-04 18:29:44 +02:00
mauro-balades
4adde6ba85 Update subproject commit in zen-components 2024-10-04 18:22:43 +02:00
mauro-balades
e2792eecb5 Made the code look cleaner 2024-10-04 18:21:41 +02:00
mauro 🤙
57bf881779 Fixed twilight releases 2024-10-04 13:30:55 +00:00
brahim
da8db0f223 Fix split update logic, fix add tab to split 2024-10-04 10:40:24 +02:00
brahim
e96a40a545 Insert splitters in right location for splitview. 2024-10-04 10:40:24 +02:00
brahim
3105024de4 Fixes for splitview with layoutTree, working gridmode 2024-10-04 10:40:24 +02:00
mauro-balades
656a47f7c2 Fix dirty subproject commit in zen-components 2024-10-03 22:31:09 +02:00
mauro-balades
742bb67cde Fixed weird height changes and top paddings when being changing from collapsed to expanded 2024-10-03 22:08:30 +02:00
mauro-balades
88fb4d5e04 feat: Enable opening new tab on middle click in tab bar
This commit adds the functionality to open a new tab on middle click in the tab bar. The code changes include adding the preference 'zen.tabs.newtab-on-middle-click' and defining the lazy preference getter 'canOpenTabOnMiddleClick' in the ZenUIManager. The 'openNewTabOnTabsMiddleClick' function now checks if the middle click event occurred on the tab bar and if the preference is enabled before opening a new tab.

Refs: #1887
2024-10-03 20:59:36 +02:00
mauro 🤙
28745667b8 Merge pull request #1887 from kristijanribaric/feature(new-tab-middle-click)-add-functionality-for-new-tab-opening-on-sidebar-middle-click
Feature: Open new tab on middle click in tab bar
2024-10-03 20:54:38 +02:00
mauro-balades
bffaa1a94d Tried to improve on transitions and animations 2024-10-03 20:50:39 +02:00
Kristijan Ribarić
f5863391fe feat: Open new tab on middle click in tab bar
This commit adds the ability to open a new tab by middle-clicking the tab bar.

The functionality is implemented by adding an event listener for the "mouseup" event on the tab bar and checking if the middle mouse button was clicked. If so, it calls the `BrowserCommands.openTab()` function to open a new tab and prevents the default behavior of the event.
2024-10-03 20:09:25 +02:00
mauro-balades
33531e973b Added workspaces migration system 2024-10-03 19:38:54 +02:00
mauro 🤙
44c784f4a5 Merge pull request #1870 from kristijanribaric/load-zen-workspaces-storage
Add ZenWorkspacesStorage asset
2024-10-03 19:13:37 +02:00
mauro-balades
7e112746bc Update "@zen-browser/surfer" dependency to version 1.5.0 2024-10-03 18:59:40 +02:00
Donno
f29750da65 temporary color change 2024-10-03 14:39:04 +02:00
mauro 🤙
3e2157782f Merge pull request #1874 from hahayupgit/main
Update & format installation instructions
2024-10-03 07:56:39 +02:00
logan
6a9aaf1c58 fix minor typo 2024-10-02 17:58:03 -04:00
logan
516a388aa3 Update README.md 2024-10-02 17:44:49 -04:00
logan
c968478c3d Update installation instructions 2024-10-02 17:39:38 -04:00
mauro-balades
c14bdf8d26 Refactor build workflow to use inputs for version and branch 2024-10-02 22:50:33 +02:00
mauro-balades
8bce4eb5f8 Fix permissions and secrets inheritance in twilight-release-schedule.yml 2024-10-02 22:48:43 +02:00
mauro-balades
2c2c6c6cc2 Fix permissions issue in twilight-release-schedule.yml 2024-10-02 22:48:00 +02:00
mauro-balades
c41a0ba129 Fix permissions issue in twilight-release-schedule.yml 2024-10-02 22:47:05 +02:00
mauro-balades
6cb335fe32 Fix macOS version check in codesign.bash 2024-10-02 22:46:18 +02:00
mauro-balades
605815aa76 Fix permissions issue in twilight-release-schedule.yml 2024-10-02 22:34:08 +02:00
Kristijan Ribarić
cf2734f5e2 Add ZenWorkspacesStorage to assets 2024-10-02 14:45:47 +02:00
Kristijan Ribarić
1624f05c06 feat(ui): Add ZenWorkspacesStorage.mjs to zen-assets.inc.xhtml
This commit adds the `ZenWorkspacesStorage.mjs` script to the `zen-assets.inc.xhtml` file. This file is responsible for storing and retrieving workspace data.
2024-10-02 12:09:52 +02:00
mauro-balades
39caaf5caa Synced workspaces across windows and also implemented MultiWindowFeatures 2024-10-01 23:21:40 +02:00
mauro-balades
4310143e79 FIxed aligment issues on tabs when collapsed 2024-10-01 20:29:05 +02:00
mauro-balades
93159e4514 Updated firefox mobile user agent 2024-10-01 20:11:33 +02:00
mauro-balades
980dae52d4 Update build.yml and twilight-release-schedule.yml 2024-10-01 20:11:10 +02:00
mauro-balades
bd8501fd77 Updates patches for firefox 131.0! 2024-10-01 20:05:14 +02:00
mauro-balades
f8306742e9 Update @zen-browser/surfer to version 1.4.24 2024-10-01 19:30:38 +02:00
mauro-balades
aa7b007db7 Update subproject commit in zen-components 2024-10-01 18:55:42 +02:00
mauro 🤙
bf041bd1d6 Merge pull request #1830 from BrhmDev/fix/web-panel-back-and-forward-disable
Disable back and forward button inside web panel when they can't be used.
2024-10-01 18:52:16 +02:00
brahim
698b1eab76 Disable back and forward button inside web panel when they can't be used. 2024-10-01 02:34:37 +02:00
mauro-balades
81db0458a9 Refactor build workflow to include release branch parameter 2024-09-30 23:14:11 +02:00
mauro-balades
87f76f1cc2 Update surfer.json with Zen Twilight branding and release information 2024-09-30 22:58:55 +02:00
mauro 🤙
751a0c987d Merge pull request #1827 from zen-browser/zen-twilight-test
Enable zen twilight branch!
2024-09-30 22:52:41 +02:00
mauro-balades
e11688d2a3 Upload objects if we are on twilight branch 2024-09-30 22:50:29 +02:00
mauro-balades
73d447eeee Worked on the twilight branch 2024-09-30 22:46:13 +02:00
mauro-balades
3012c0ad1f Refactor build workflow to include release branch parameter 2024-09-30 22:28:04 +02:00
mauro-balades
59f356001a added release branch as env 2024-09-30 19:54:44 +02:00
mauro-balades
1cfb33afcd rename alpha.yml to build.yml 2024-09-30 19:48:56 +02:00
mauro-balades
3f4f611a61 Refactor vertical-tabs.css to improve button layout 2024-09-30 19:45:44 +02:00
mauro-balades
1bd694514b Started working on zen twilight 2024-09-30 19:44:00 +02:00
Mauro Baladés
e3f0ab43bb Sign and package windows artifacts 2024-09-30 19:40:24 +03:00
Mauro Baladés
6469cfa6f4 stash 2024-09-30 19:05:40 +03:00
mauro-balades
88f9fc5816 🔖 Update version to 1.0.1-a.7 2024-09-30 14:56:05 +00:00
mauro-balades
933e192e0c only display separator when theres a visible tab 2024-09-30 16:45:49 +02:00
mauro-balades
7662707c84 Merge branch 'main' of https://github.com/zen-browser/desktop 2024-09-30 16:42:05 +02:00
mauro-balades
7e894eb4b5 Update vertical-tabs.css to adjust min-width of toolbox buttons 2024-09-30 16:39:11 +02:00
Mauro Baladés
20cef9aabb Sign and package windows artifacts 2024-09-30 06:01:42 +03:00
128 changed files with 6107 additions and 596 deletions

View File

@@ -1,4 +1,4 @@
name: Zen Alpha builds
name: Zen Release builds
on:
workflow_dispatch:
@@ -13,16 +13,87 @@ on:
required: false
default: false
type: 'boolean'
update_branch:
description: 'Update branch with new version'
required: true
default: 'alpha'
type: 'choice'
options:
- 'alpha'
- 'twilight'
workflow_call:
inputs:
create_release:
description: 'Create a new release for this build'
required: false
default: false
type: 'boolean'
update_version:
description: 'Update the version number'
required: false
default: false
type: 'boolean'
update_branch:
description: 'Update branch with new version'
required: true
default: 'alpha'
type: 'string'
jobs:
debug-inputs:
name: Debug inputs
runs-on: ubuntu-latest
steps:
- name: Debug
run: |
echo "create_release: ${{ inputs.create_release }}"
echo "update_version: ${{ inputs.update_version }}"
echo "update_branch: ${{ inputs.update_branch }}"
echo "GITHUB_REPOSITORY: ${{ github.repository }}"
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
check-build-is-correct:
runs-on: ubuntu-latest
needs: [debug-inputs]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
token: ${{ secrets.DEPLOY_KEY }}
fetch-depth: 0
- name: Check if correct branch
run: |
echo "Checking if we are on the correct branch"
git branch
git status
git branch --show-current
branch="${{ inputs.update_branch }}"
if [[ $branch == "alpha" ]]; then
branch="stable"
elif [[ $branch == "twilight" ]]; then
branch="dev"
fi
if [[ $(git branch --show-current) != $branch ]]; then
echo ">>> Branch mismatch"
exit 1
else
echo ">>> Branch matches"
fi
build-data:
permissions:
contents: write
name: Generate build data
runs-on: ubuntu-latest
needs: check-build-is-correct
outputs:
build_date: ${{ steps.data.outputs.builddate }}
version: ${{ steps.data.outputs.version }}
build_time: ${{ steps.data.outputs.buildtime }}
steps:
- name: Install Node.js
uses: actions/setup-node@v3
@@ -51,14 +122,14 @@ jobs:
npm i -g @zen-browser/surfer
- name: Bump version
if: ${{ github.event.inputs.update_version == 'true' }}
if: ${{ inputs.update_version && inputs.update_branch == 'alpha' }}
run: |
pnpm surfer ci --brand alpha --bump prerelease
pnpm surfer ci --brand ${{ inputs.update_branch }} --bump prerelease
- name: Bump version without new version
if: ${{ github.event.inputs.update_version == 'false' }}
if: ${{ !inputs.update_version || inputs.update_branch == 'twilight' }}
run: |
pnpm surfer ci --brand alpha
pnpm surfer ci --brand ${{ inputs.update_branch }}
- name: Debug
run: |
@@ -72,9 +143,10 @@ jobs:
run: |
echo "builddate=$(date +"%Y-%m-%d")" >> $GITHUB_OUTPUT
echo "version=$(surfer get version | xargs)" >> $GITHUB_OUTPUT
echo "buildtime=$(date +"%H:%M:%S")" >> $GITHUB_OUTPUT
- uses: stefanzweifel/git-auto-commit-action@v4
if: ${{ github.event.inputs.update_version == 'true' }}
if: ${{ inputs.update_version }}
with:
commit_message: 🔖 Update version to ${{ steps.data.outputs.version }}
commit_user_name: Zen Browser Robot
@@ -113,7 +185,7 @@ jobs:
- name: Activate surfer CLI
run: |
echo "There's a bug in the surfer CLI, we run this so that surfer sets everything up correctly"
pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
- name: Check version
run: |
@@ -132,7 +204,7 @@ jobs:
contents: write
runs-on: ubuntu-latest
needs: [build-data, check-release]
environment: production
steps:
- name: Install Node.js
uses: actions/setup-node@v3
@@ -162,7 +234,7 @@ jobs:
run: pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand alpha --display-version ${{ needs.build-data.outputs.version }}
run: pnpm surfer ci --brand ${{ inputs.update_branch }} --display-version ${{ needs.build-data.outputs.version }}
- name: Download firefox source and dependancies
run: pnpm surfer download --verbose
@@ -185,7 +257,7 @@ jobs:
windows-step-1:
name: Windows build step 1 (PGO build)
uses: ./.github/workflows/windows-alpha-build.yml
uses: ./.github/workflows/windows-release-build.yml
needs: [build-data]
permissions:
contents: write
@@ -194,6 +266,7 @@ jobs:
build-version: ${{ needs.build-data.outputs.version }}
generate-gpo: true
profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
release-branch: ${{ inputs.update_branch }}
windows-step-2:
name: Windows build step 2 (Generate profile data)
@@ -205,10 +278,11 @@ jobs:
with:
build-version: ${{ needs.build-data.outputs.version }}
profile-data-path-archive: zen.win64-pgo-stage-1.zip
release-branch: ${{ inputs.update_branch }}
windows-step-3:
name: Windows build step 3 (build with profile data)
uses: ./.github/workflows/windows-alpha-build.yml
uses: ./.github/workflows/windows-release-build.yml
permissions:
contents: write
secrets: inherit
@@ -216,26 +290,29 @@ jobs:
with:
build-version: ${{ needs.build-data.outputs.version }}
generate-gpo: false
release-branch: ${{ inputs.update_branch }}
linux:
name: Linux build
uses: ./.github/workflows/linux-alpha-build.yml
uses: ./.github/workflows/linux-release-build.yml
permissions:
contents: write
secrets: inherit
needs: [build-data]
with:
build-version: ${{ needs.build-data.outputs.version }}
release-branch: ${{ inputs.update_branch }}
mac:
name: macOS build
uses: ./.github/workflows/macos-alpha-build.yml
uses: ./.github/workflows/macos-release-build.yml
permissions:
contents: write
secrets: inherit
needs: [build-data]
with:
build-version: ${{ needs.build-data.outputs.version }}
release-branch: ${{ inputs.update_branch }}
appimage:
name: AppImage build - Linux ${{ matrix.generic == true && 'generic' || 'specific' }}
@@ -261,7 +338,7 @@ jobs:
run: |
npm install -g pnpm
sudo apt-get update
sudo apt-get -y install libfuse2 desktop-file-utils
sudo apt-get -y install libfuse2 desktop-file-utils appstream
- name: Download linux build
uses: actions/download-artifact@v4
@@ -272,8 +349,12 @@ jobs:
run: |
set -eux
rm AppDir/.DirIcon || true
cp configs/branding/alpha/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
cp configs/branding/alpha/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/usr/share/icons/hicolor/128x128/apps/zen.png
cp configs/branding/${{ inputs.update_branch }}/logo128.png AppDir/zen.png && ln -s zen.png AppDir/.DirIcon
if [ "${{ inputs.update_branch }}" = "twilight" ]; then
sed -i -e 's/Name=Zen Browser/Name=Zen Twilight/g' AppDir/zen.desktop
fi
APPDIR=AppDir
tar -xvf *.tar.* && rm -rf *.tar.*
@@ -304,13 +385,13 @@ jobs:
path: ./dist/zen-${{ matrix.generic == true && 'generic' || 'specific' }}.AppImage.zsync
release:
if: ${{ github.event.inputs.create_release == 'true' }}
if: ${{ inputs.create_release || inputs.update_branch == 'twilight' }}
permissions: write-all
name: Release
needs: [build-data, linux, windows-step-3, check-release, mac, appimage, source]
runs-on: ubuntu-latest
environment:
name: Deploy-Release
name: ${{ inputs.update_branch == 'alpha' && 'Deploy-Release' || 'Deploy-Twilight' }}
steps:
- uses: actions/checkout@v4
@@ -335,14 +416,21 @@ jobs:
token: ${{ secrets.DEPLOY_KEY }}
- name: Copy update manifests
env:
RELEASE_BRANCH: ${{ inputs.update_branch }}
run: |
cd updates-server
mkdir -p updates
cp -a ../linux_update_manifest_generic/. updates/
cp -a ../linux_update_manifest_specific/. updates/
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
if [[ $RELEASE_BRANCH == 'alpha' ]]; then
cp -a ../.github/workflows/object/windows-x64-signed-generic/update_manifest/. updates/
cp -a ../.github/workflows/object/windows-x64-signed-specific/update_manifest/. updates/
else
cp -a ../windows_update_manifest_generic/. updates/
cp -a ../windows_update_manifest_specific/. updates/
fi
cp -a ../macos_update_manifest_aarch64/. updates/
cp -a ../macos_update_manifest_x64/. updates/
@@ -354,8 +442,42 @@ jobs:
commit_user_email: zen-browser-bot@users.noreply.github.com
repository: ./updates-server
# If we are on twilight, we want to just update the twilight tag's release
- name: Update twilight tag
if: ${{ inputs.update_branch == 'twilight' }}
uses: 'marvinpinto/action-automatic-releases@latest'
with:
files: |
zen.source.tar.gz
zen.linux-generic.tar.bz2
zen.linux-specific.tar.bz2
zen-generic.AppImage
zen-generic.AppImage.zsync
zen-specific.AppImage
zen-specific.AppImage.zsync
zen.win-generic.zip
zen.win-specific.zip
linux.mar
linux-generic.mar
windows-generic.mar
windows.mar
macos-x64.mar
macos-aarch64.mar
zen.installer.exe
zen.installer-generic.exe
zen.macos-x64.dmg
zen.macos-aarch64.dmg
automatic_release_tag: 'twilight'
title: 'Twilight build - ${{ needs.build-data.outputs.version }} (${{ needs.build-data.outputs.build_date }} at ${{ needs.build-data.outputs.build_time }})'
draft: false
prerelease: true
repo_token: ${{ github.token }}
env:
GITHUB_REPOSITORY: ${{ github.repository }}
- name: release-github
uses: 'marvinpinto/action-automatic-releases@latest'
if: ${{ inputs.update_branch == 'alpha' }}
with:
repo_token: '${{ secrets.DEPLOY_KEY }}'
automatic_release_tag: ${{ needs.build-data.outputs.version }}
@@ -383,7 +505,7 @@ jobs:
zen.macos-aarch64.dmg
prepare-flatpak:
if: ${{ github.event.inputs.create_release == 'true' }}
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
permissions: write-all
name: Prepare Flatpak
needs: [release, linux, build-data]
@@ -440,7 +562,7 @@ jobs:
run: sleep 240
release-flatpak:
if: ${{ github.event.inputs.create_release == 'true' }}
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
permissions: write-all
name: Release Flatpak
needs: [prepare-flatpak, build-data]
@@ -518,7 +640,7 @@ jobs:
delete-branch: true
release-homebrew:
if: ${{ github.event.inputs.create_release == 'true' }}
if: ${{ inputs.create_release && inputs.update_branch == 'alpha' }}
permissions: write-all
name: Homebrew release
needs: [release, mac, build-data]

View File

@@ -1,4 +1,4 @@
name: Linux Alpha Build
name: Linux Release Build
on:
workflow_call:
inputs:
@@ -6,10 +6,14 @@ on:
description: 'The version to build'
required: true
type: string
release-branch:
description: 'The branch to build'
required: true
type: string
jobs:
build-linux:
environment: production
permissions:
contents: write
runs-on: ubuntu-latest
@@ -87,7 +91,7 @@ jobs:
run: pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- name: Download firefox source and dependencies
run: pnpm surfer download
@@ -110,13 +114,13 @@ jobs:
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
continue-on-error: true
run: sh .github/workflows/src/alpha-build.sh
run: sh .github/workflows/src/release-build.sh
- name: Build again if it failed
if: failure()
env:
SURFER_COMPAT: ${{ matrix.generic == true }}
run: sh .github/workflows/src/alpha-build.sh
run: sh .github/workflows/src/release-build.sh
- name: Package
env:

View File

@@ -1,4 +1,4 @@
name: macOS Alpha Build
name: macOS Release Build
on:
workflow_call:
inputs:
@@ -6,10 +6,15 @@ on:
description: 'The version to build'
required: true
type: string
release-branch:
description: 'The branch to build'
required: true
type: string
jobs:
mac-build:
name: Build macOS - ${{ matrix.arch }}
environment: production
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
@@ -87,7 +92,7 @@ jobs:
- name: Install dependencies
run: pnpm install
- name: Load surfer CI setup
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- name: Download firefox source and dependancies
run: pnpm surfer download
@@ -115,11 +120,11 @@ jobs:
if test "${{ matrix.arch }}" = "x64"; then
export ZEN_DISABLE_LTO=1
fi
sh .github/workflows/src/alpha-build.sh
sh .github/workflows/src/release-build.sh
- name: Rebuild Zen if failed
if: failure()
run: sh .github/workflows/src/alpha-build.sh
run: sh .github/workflows/src/release-build.sh
- name: import APPLE DEVELOPER ID CERTIFICATE for .app
uses: apple-actions/import-codesign-certs@v3

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
<update type="minor" displayVersion="1.0.1-a.8" appVersion="1.0.1-a.8" platformVersion="131.0.2" buildID="20241010195111">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.8/windows-generic.mar" hashFunction="sha512" hashValue="0c6425c27ee62dd4bcf5fb8bc2bd6458c1dd3f1c3e1dce1b0c1b5325236b5110b2e74aaa7a33a85dbbf372ad6d5b49acbe8dbe6fca42fa26fcdf8e1bb408c82a" size="72536504"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220503">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows-generic.mar" hashFunction="sha512" hashValue="a3cb65d8286bbfe126091d426f80521869ac34b35ed2b3e408abb2beed2211caf66e14bcec4cc7608c24533691427c3bed272338cded84952a3f474945f1d422" size="72356444"/>
<update type="minor" displayVersion="1.0.1-a.8" appVersion="1.0.1-a.8" platformVersion="131.0.2" buildID="20241010195111">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.8/windows-generic.mar" hashFunction="sha512" hashValue="0c6425c27ee62dd4bcf5fb8bc2bd6458c1dd3f1c3e1dce1b0c1b5325236b5110b2e74aaa7a33a85dbbf372ad6d5b49acbe8dbe6fca42fa26fcdf8e1bb408c82a" size="72536504"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
<update type="minor" displayVersion="1.0.1-a.8" appVersion="1.0.1-a.8" platformVersion="131.0.2" buildID="20241010195115">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.8/windows.mar" hashFunction="sha512" hashValue="da508203d0c6cca9d85b12740a6985891c345ebd5221370d90043324bf42021248e3551bf4e3ce38a1d84ef1003fa5afb4edf2a1a54eab483cf3536c8d23c499" size="72505884"/>
</update>
</updates>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0"?>
<updates>
<update type="minor" displayVersion="1.0.1-a.5" appVersion="1.0.1-a.5" platformVersion="130.0.1" buildID="20240924220342">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.5/windows.mar" hashFunction="sha512" hashValue="ca7f2506ea94095b0146820263e95f17888c06bf3eeda9728425e073c24a8f754143c3cd92b834a7583144eb2fb9a6a0618b1a961452e15a341cb5fd93d9af9d" size="72318312"/>
<update type="minor" displayVersion="1.0.1-a.8" appVersion="1.0.1-a.8" platformVersion="131.0.2" buildID="20241010195115">
<patch type="complete" URL="https://github.com/zen-browser/desktop/releases/download/1.0.1-a.8/windows.mar" hashFunction="sha512" hashValue="da508203d0c6cca9d85b12740a6985891c345ebd5221370d90043324bf42021248e3551bf4e3ce38a1d84ef1003fa5afb4edf2a1a54eab483cf3536c8d23c499" size="72505884"/>
</update>
</updates>

View File

@@ -0,0 +1,31 @@
name: Zen Twilight Scheduled Releases
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
twilight-release-schedule:
name: Twilight Release Schedule
permissions: write-all
secrets: inherit
uses: ./.github/workflows/build.yml
with:
create_release: true
update_branch: twilight
update_version: false
post-build:
name: Post Build
runs-on: ubuntu-latest
needs: twilight-release-schedule
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Node.js and pnpm
uses: actions/setup-node@v3
with:
node-version: 20
# TODO:

33
.github/workflows/update-submodules.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Update Components Submodules
on:
push:
branches:
- dev
pull_request:
branches:
- dev
workflow_dispatch:
workflow_call: # This is a custom event that we will trigger manually
jobs:
update-submodules:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: 'recursive'
token: ${{ secrets.DEPLOY_KEY }}
- name: Update submodules
run: |
git submodule update --remote --merge
- uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "[skip ci] 📦 Update Submodules!"
commit_user_name: Zen Browser Robot
commit_user_email: zen-browser-bot@users.noreply.github.com

View File

@@ -10,6 +10,10 @@ on:
description: 'The path to the zip archive containing the profile data'
required: false
type: string
release-branch:
description: 'The branch to build'
required: true
type: string
jobs:
windows-profile-build:

View File

@@ -1,4 +1,4 @@
name: Windows Alpha Build
name: Windows Release Build
on:
workflow_call:
inputs:
@@ -13,6 +13,10 @@ on:
profile-data-path-archive:
description: 'The path to the zip archive containing the profile data'
type: string
release-branch:
description: 'The branch to build'
required: true
type: string
jobs:
windows-build:
@@ -22,7 +26,7 @@ jobs:
fail-fast: false
matrix:
generic: [true, false]
environment: production
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
@@ -54,7 +58,7 @@ jobs:
pnpm i
- name: Load surfer CI setup
run: pnpm surfer ci --brand alpha --display-version ${{ inputs.build-version }}
run: pnpm surfer ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- name: Download
run: pnpm surfer download
@@ -123,12 +127,12 @@ jobs:
rustup target add x86_64-pc-windows-msvc
cargo install cargo-download
cargo download -x windows=0.52.0
cargo download -x windows=0.58.0
#? https://github.com/mozilla/sccache#known-caveats
export CARGO_INCREMENTAL=0
echo "" >> ../configs/common/mozconfig
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.52.0" >> ../configs/common/mozconfig
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
- name: Import
env:
@@ -166,7 +170,7 @@ jobs:
if test ${{ inputs.generate-gpo }} = true; then
export ZEN_GA_GENERATE_PROFILE=1
fi
sh .github/workflows/src/alpha-build.sh
sh .github/workflows/src/release-build.sh
- name: Package
env:
@@ -204,16 +208,43 @@ jobs:
name: ${{ matrix.generic == true && 'generic' || 'specific' }}-${{ inputs.profile-data-path-archive }}
path: ./zen.win64-pgo-stage-1.zip
- name: Remove symlinks from obj folder
- name: Remove unnecessary files from obj
if: ${{ !inputs.generate-gpo }}
run: |
set -x
find engine/obj-x86_64-pc-windows-msvc/ -type l -delete
find engine/obj-x86_64-pc-windows-msvc/ -mindepth 1 -maxdepth 1 -type d -not -name 'dist' -exec rm -rf {} +
- name: Upload dist object
if: ${{ !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows-x64-obj-${{ matrix.generic == true && 'generic' || 'specific' }}
path: engine/obj-x86_64-pc-windows-msvc/
- name: Upload zip file if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
path: ./zen.win-${{ matrix.generic == true && 'generic' || 'specific' }}.zip
- name: Upload installer if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
path: ./zen.installer${{ matrix.generic == true && '-generic' || '' }}.exe
- name: Upload mar if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows${{ matrix.generic == true && '-generic' || '' }}.mar
path: ./windows${{ matrix.generic == true && '-generic' || '' }}.mar
- name: Upload update manifests if twilight branch
if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
uses: actions/upload-artifact@v4
with:
name: windows_update_manifest_${{ matrix.generic == true && 'generic' || 'specific' }}
path: ./dist/update

128
CODE_OF_CONDUCT.md Normal file
View File

@@ -0,0 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
hello@zen-browser.app.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@@ -24,10 +24,16 @@ Experience tranquillity while browsing the web without people tracking you!
# Compatibility
Zen is currently built using firefox version `130.0`!
Zen is currently built using firefox version `131.0.3`!
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
# Contribution
Zen is an open-source project, and we welcome contributions from the community!
- Check out the [contribution guidelines](./docs/contribute.md)!
# Performance
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible!
@@ -80,60 +86,35 @@ bash <(curl https://updates.zen-browser.app/appimage.sh)
```
#### Flatpak
```
flatpak install flathub io.github.zen_browser.zen
```
#### CachyOS
##### Generic
```
sudo pacman -S zen-browser-bin
```
##### Optimized
```
sudo pacman -S zen-browser-avx2-bin
```
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
# Core Components
Some components used by @zen-browser as an attempt to make firefox forks a better place. You can find them [here](https://github.com/zen-browser/components).
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/components).
## 🚀 Run Locally
Clone the project
```bash
git clone https://github.com/zen-browser/desktop.git --recurse-submodules
cd desktop
```
Install dependencies
```bash
npm i
```
Download and bootstrap the browser
```
npm run init
```
Copy a language pack
```
sh scripts/update-en-US-packs.sh
```
Start building the browser
```
npm run build
```
Finally, run the browser!
```
npm start
```
In order to download and run zen locally, please follow [these instructions](https://docs.zen-browser.app/contribute/desktop).
## Special Thanks
- [IAmJafeth](https://github.com/IAmJafeth) (For sponsoring the domain)
- [Donno 🐒](https://www.onnno.nl/) (For making the logo)
- [ptr1337](https://github.com/ptr1337) (AUR Packages and optimization flags)
- [nitro](https://github.com/n7itro) (For the amazing work on the browser)
Special thanks to... EVERYONE 🎉! Checkout the team and contributors page [here](https://zen-browser.app/about)
## Third Party Code

View File

@@ -50,11 +50,11 @@ if [ ! -x ${SWVERS} ]; then
fi
# Require macOS 10.14 or newer.
OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
if [ ${OSVERSION} \< 14 ]; then
echo "ERROR: macOS 10.14 or later is required"
exit -1
fi
#OSVERSION=`${SWVERS} -productVersion|sed -En 's/[0-9]+\.([0-9]+)\.[0-9]+/\1/p'`;
#if [ ${OSVERSION} \< 14 ]; then
# echo "ERROR: macOS 10.14 or later is required"
# exit -1
#fi
while getopts "a:i:b:o:p:" opt; do
case ${opt} in

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="d" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.f{fill:#000;}.f,.g,.h{stroke-width:0px;}.g{fill:url(#e);}.h{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><rect class="f" width="256" height="256" rx="58.4" ry="58.4"/><rect class="g" width="256" height="256" rx="58.4" ry="58.4"/><path class="h" d="M202.9973,184.5702c-.1715,10.2808-8.7737,18.4298-19.0559,18.4298h-77.2885c-3.0056,0-5.0458-3.0553-3.894-5.8314l.0262-.0632c5.0822-12.2707,13.3289-22.6249,23.8591-30.1785,1.3098-.9395,2.8903-1.4269,4.5023-1.4269h53.1034c10.462,0,18.9225,8.5681,18.7473,19.0702Z"/><path class="h" d="M149.3471,53c3.0056,0,5.0458,3.0553,3.894,5.8314l-.0262.0631c-5.0822,12.2708-13.3289,22.6249-23.8591,30.1785-1.3098.9396-2.8903,1.427-4.5023,1.427h-52.7949c-10.2822,0-18.8844-8.149-19.0559-18.4298-.1752-10.5021,8.2853-19.0702,18.7473-19.0702h77.5971Z"/><path class="h" d="M71.7465,203c-2.3913,0-4.8207-.46-7.1673-1.4319-9.5666-3.9624-14.1096-14.9301-10.1472-24.4964,6.0943-14.7127,14.8294-27.9027,25.9634-39.2034,11.5341-11.7073,25.1364-20.8551,40.4297-27.1898,21.021-8.7076,37.393-25.0792,46.0995-46.0995,3.9624-9.567,14.9305-14.1093,24.4964-10.1472,9.5666,3.9624,14.1096,14.9301,10.1472,24.4964-6.0943,14.7127-14.8294,27.9027-25.9634,39.2034-11.5341,11.7073-25.1364,20.8551-40.4297,27.1898-21.021,8.7076-37.393,25.0792-46.0995,46.0995-2.9905,7.22-9.9725,11.5791-17.329,11.5791Z"/></svg>
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 624 B

After

Width:  |  Height:  |  Size: 500 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 748 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 946 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<svg width="320" height="130" xmlns="http://www.w3.org/2000/svg"><rect width="300" height="100" x="10" y="10" style="fill:rgb(0,0,255);stroke-width:3;stroke:red" />Sorry, your browser does not support inline SVG.</svg>

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 256 256"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="128" y1="256" x2="128" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="d"><rect class="h" y="0" width="256" height="256" rx="58.4" ry="58.4"/></g><g id="f"><path class="i" d="M165.9156,146.3156c-15.6016,0-28.6656,11.0055-31.8813,25.6562h-12.0687c-3.2156-14.6508-16.2797-25.6562-31.8813-25.6562-18.0063,0-32.6562,14.65-32.6562,32.6562s14.65,32.6562,32.6562,32.6562c15.6016,0,28.6656-11.0055,31.8813-25.6562h12.0687c3.2156,14.6508,16.2797,25.6562,31.8813,25.6562,18.0063,0,32.6562-14.65,32.6562-32.6562s-14.65-32.6562-32.6562-32.6562ZM90.0844,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562ZM165.9156,197.6281c-10.2875,0-18.6562-8.3687-18.6562-18.6562s8.3687-18.6562,18.6562-18.6562,18.6562,8.3688,18.6562,18.6562-8.3687,18.6562-18.6562,18.6562Z"/><path class="i" d="M214.4,115.6812h-21.8391l-9.2422-65.2906c-.3031-2.1406-1.5813-4.0219-3.4594-5.0969-1.8781-1.0719-4.1469-1.2188-6.1469-.3906l-45.7125,18.8906-45.7125-18.8906c-2-.8281-4.2688-.6813-6.1469.3906-1.8781,1.075-3.1562,2.9562-3.4594,5.0969l-9.2422,65.2906h-21.8391c-3.8656,0-7,3.1344-7,7s3.1344,7,7,7h172.8c3.8656,0,7-3.1344,7-7s-3.1344-7-7-7ZM85.2781,61.2875l40.0469,16.55c1.7125.7063,3.6375.7063,5.35,0l40.0469-16.55,7.6984,54.3937h-100.8406l7.6984-54.3937Z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:url(#e);}.g,.h,.i{stroke-width:0px;}.h{fill:#a570ff;}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity="0"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 56"><defs><style>.b{fill:context-fill #20123a;}</style></defs><path class="b" d="M11.2896,37.6632h15.1928v5.2919H3.2415v-3.8076l15.1487-21.2557H3.2126v-5.2919h23.2393v3.811l-15.1622,21.2523ZM50.8649,26.3765c.5434,1.4469.8151,3.1418.8151,5.0778v1.7322h-15.5019v.017c0,1.1243.2089,2.0991.6301,2.9176.4195.822,1.0139,1.4537,1.7849,1.8987s1.6847.6657,2.7427.6657c.7014,0,1.3433-.0984,1.9258-.2955.5842-.197,1.0818-.4925,1.4979-.8899.4144-.394.7303-.8797.9476-1.4503l5.8404.3838c-.2972,1.4028-.9018,2.6255-1.8154,3.6683-.9137,1.0428-2.0906,1.8511-3.5273,2.4319-1.4385.5774-3.0959.8661-4.9726.8661-2.3419,0-4.3561-.4755-6.0408-1.43-1.6847-.9544-2.9805-2.3063-3.8907-4.0623-.9086-1.7526-1.362-3.8314-1.362-6.2327,0-2.3402.4534-4.3951,1.362-6.1647.9103-1.7696,2.1925-3.1486,3.8466-4.1336,1.6558-.9884,3.5986-1.4843,5.8318-1.4843,1.503,0,2.9024.2411,4.2032.7201,1.2992.4789,2.4354,1.199,3.4084,2.1568.9731.9578,1.7306,2.1602,2.274,3.6072ZM45.7378,29.2737c0-.9069-.1987-1.7119-.5927-2.4149-.3957-.6997-.9409-1.2534-1.6388-1.6508-.6964-.4008-1.503-.6012-2.4235-.6012-.9578,0-1.8053.2208-2.5406.6589-.7371.4382-1.3127,1.0292-1.7271,1.7628-.3818.679-.5853,1.4304-.6228,2.2451h9.5455ZM73.0682,20.9318c-1.1769-.6929-2.5543-1.0394-4.1353-1.0394-1.6898,0-3.1265.3872-4.3137,1.165-1.1854.7744-2.0294,1.824-2.5338,3.1486h-.2667v-4.0181h-6.017v22.7672h6.3125v-13.1617c.0102-.9782.1953-1.8138.557-2.5135.36-.6963.8644-1.2261,1.5115-1.593.647-.3635,1.396-.5469,2.2451-.5469,1.2653,0,2.257.394,2.9788,1.1786.7217.7846,1.0767,1.8749,1.0682,3.2675v13.3689h6.3125v-14.4965c0-1.7662-.326-3.2913-.9782-4.5718-.6521-1.2805-1.5658-2.2655-2.741-2.955Z"/></svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 459 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 647 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

@@ -13,7 +13,6 @@ if test "$ZEN_RELEASE"; then
ac_add_options --enable-linker=lld
ac_add_options --disable-elf-hack
ac_add_options --disable-gpsd
ac_add_options --disable-necko-wifi
ac_add_options --enable-install-strip

View File

@@ -1,2 +1 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fff;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4367,57.6782c-.0536,3.2127-2.7418,5.7593-5.955,5.7593h-24.1527c-.9392,0-1.5768-.9548-1.2169-1.8223l.0082-.0197c1.5882-3.8346,4.1653-7.0703,7.456-9.4308.4093-.2936.9032-.4459,1.407-.4459h16.5948c3.2694,0,5.9133,2.6775,5.8585,5.9594Z"/><path class="i" d="M46.671,16.5625c.9392,0,1.5768.9548,1.2169,1.8223l-.0082.0197c-1.5882,3.8346-4.1653,7.0703-7.456,9.4308-.4093.2936-.9032.4459-1.407.4459h-16.4984c-3.2132,0-5.9014-2.5466-5.955-5.7593-.0547-3.2819,2.5892-5.9594,5.8585-5.9594h24.2491Z"/><path class="i" d="M22.4208,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.251,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9897,4.6658-4.4091,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.251-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 80 80"><defs><style>.g{fill:#000;}.g,.h,.i{stroke-width:0px;}.h{fill:url(#e);}.i{fill:#fef9fe;}</style><linearGradient id="e" x1="40" y1="80" x2="40" y2="0" gradientUnits="userSpaceOnUse"><stop offset=".1" stop-color="#fff" stop-opacity=".02"/><stop offset=".9" stop-color="#fff" stop-opacity=".1"/></linearGradient></defs><g id="c"><rect class="g" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="d"><rect class="h" width="80" height="80" rx="18.25" ry="18.25"/></g><g id="f"><path class="i" d="M63.4352,57.677c-.0536,3.2125-2.7416,5.7589-5.9546,5.7589h-22.0762c-1.1221,0-1.8295-1.2103-1.2751-2.1859,1.4628-2.5738,4.3202-6.7829,8.5529-9.1539.4406-.2468.9366-.3783,1.4416-.3783h13.4532c3.2692,0,5.9129,2.6774,5.8582,5.9591Z"/><path class="i" d="M45.8707,18.7498c-1.4628,2.5738-4.3202,6.7829-8.5529,9.1539-.4406.2468-.9366.3783-1.4416.3783h-13.3567c-3.213,0-5.901-2.5464-5.9546-5.7589-.0547-3.2817,2.589-5.9591,5.8582-5.9591h22.1726c1.1221,0,1.8295,1.2103,1.2751,2.1859Z"/><path class="i" d="M22.4207,63.4375c-.7473,0-1.5065-.1438-2.2398-.4475-2.9896-1.2383-4.4093-4.6657-3.171-7.6551,1.9045-4.5977,4.6342-8.7196,8.1136-12.2511,3.6044-3.6585,7.8551-6.5172,12.6343-8.4968,6.5691-2.7211,11.6853-7.8373,14.4061-14.4061,1.2383-2.9896,4.6658-4.409,7.6551-3.171,2.9896,1.2383,4.4093,4.6657,3.171,7.6551-1.9045,4.5977-4.6342,8.7196-8.1136,12.2511-3.6044,3.6585-7.8551,6.5172-12.6343,8.4968-6.5691,2.7211-11.6853,7.8373-14.4061,14.4061-.9345,2.2562-3.1164,3.6185-5.4153,3.6185Z"/></g></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

37
docs/contribute.md Normal file
View File

@@ -0,0 +1,37 @@
# Branch Structure
The repository is structured as follows:
```
dev (main branch)
| |
| \--->-- stable (release branch)
| ^
^ |
| \-<- Hotfix (hotfixes directly from stable)
|
\-<- (features branches)
```
The `central` branch is the main branch of the repository, and it is the default branch for the repository. The `twilight` branch is the feature branch, and it is branched off from the `central` branch. The `stable` branch is the release branch, and it is branched off from the `central` branch.
The `stable` branch may have hotfixes directly from the `stable` branch, and the `twilight` branch may have feature branches branched off from the `twilight` branch. This is done so that we can apply hotfixes like security patches directly to the `stable` branch without having to merge the changes from the `twilight` branch.
# Code Of Conduct
Please read our [Code of Conduct](../CODE_OF_CONDUCT.md) before contributing.
# Releasing/Merging branches
To merge zen twilight branch from the central branch, you can use the following command:
```bash
sh ./scripts/merge-to-branch.sh twilight
```
To merge zen stable branch from the twilight branch, you can use the following command:
```bash
sh ./scripts/merge-to-branch.sh stable
```

2
l10n

Submodule l10n updated: 0bd8f65ca3...6e0c5ca645

4581
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -33,7 +33,7 @@
},
"homepage": "https://github.com/zen-browser/core#readme",
"dependencies": {
"@zen-browser/surfer": "^1.4.21"
"@zen-browser/surfer": "^1.5.1"
},
"devDependencies": {
"husky": "^9.1.5",

10
pnpm-lock.yaml generated
View File

@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@zen-browser/surfer':
specifier: ^1.4.21
version: 1.4.21
specifier: ^1.5.1
version: 1.5.1
devDependencies:
husky:
specifier: ^9.1.5
@@ -119,8 +119,8 @@ packages:
'@types/node@17.0.45':
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
'@zen-browser/surfer@1.4.21':
resolution: {integrity: sha512-v05Mq6kjISGwWD7d6Bwl0zuH3JKu+xV5x/iJmMjgW3kReYwlKjexqkxQquKpn8bhwAbOBS/CtYBlRKi17Pqxpg==}
'@zen-browser/surfer@1.5.1':
resolution: {integrity: sha512-klVZTNbjGvdgpr+9nNLltV8evNEjfrMIg7ln7Sake63LyM043Wk55F0HFJ1FMv6RioE6qwe3PuZl/JSW1cxxvQ==}
hasBin: true
ansi-escapes@7.0.0:
@@ -1003,7 +1003,7 @@ snapshots:
'@types/node@17.0.45': {}
'@zen-browser/surfer@1.4.21':
'@zen-browser/surfer@1.5.1':
dependencies:
'@resvg/resvg-js': 1.4.0
async-icns: 1.0.2

View File

@@ -63,7 +63,6 @@ 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);

View File

@@ -59,7 +59,7 @@ pref("browser.tabs.loadBookmarksInTabs", false);
pref('browser.toolbars.bookmarks.visibility', 'never');
// Enable Do Not Track and GPC by default.
pref("privacy.donottrackheader.enabled", true);
pref("privacy.donottrackheader.enabled", false);
pref("privacy.globalprivacycontrol.enabled", true);
// Disable more telemetry
pref("toolkit.telemetry.enabled", false);
@@ -97,17 +97,25 @@ pref('zen.view.sidebar-expanded.on-hover', false);
pref('zen.view.sidebar-expanded.show-button', true);
pref('zen.view.sidebar-expanded.max-width', 400);
pref('zen.view.show-bottom-border', false);
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
pref('zen.keyboard.shortcuts.enabled', true, locked);
pref('zen.keyboard.shortcuts.version', 0); // Empty string means default shortcuts
pref('zen.tabs.dim-pending', true);
pref('zen.tabs.newtab-on-middle-click', true);
pref('zen.keyboard.shortcuts.enabled', true);
pref('zen.keyboard.shortcuts.version', 0); // Empty string means default shortcuts
pref('zen.keyboard.shortcuts.disable-mainkeyset-clear', false); // for debugging
pref('zen.themes.updated-value-observer', false);
pref('zen.tab-unloader.enabled', true);
pref('zen.tab-unloader.timeout-minutes', 20);
pref('zen.tab-unloader.excluded-urls', "example.com,example.org");
pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false);
pref('zen.pinned-tab-manager.close-shortcut-behavior', 'switch');
// Pref to enable the new profiles (TODO: Check this out!)
//pref("browser.profiles.enabled", true);
@@ -120,13 +128,17 @@ pref('zen.sidebar.close-on-blur', true);
pref('zen.splitView.working', false);
pref('zen.splitView.min-resize-width', 7);
pref('zen.splitView.change-on-hover', false);
pref('zen.splitView.rearrange-hover-size', 24);
// Zen Workspaces
pref('zen.workspaces.enabled', true);
pref('zen.workspaces.hide-default-container-indicator', true);
pref('zen.workspaces.individual-pinned-tabs', true);
pref('zen.workspaces.show-icon-strip', true);
pref('zen.workspaces.icons', '["🌐", "📁", "💼", "📝", "📅", "📊","🧠"]');
pref('zen.workspaces.force-container-workspace', true);
pref('zen.workspaces.icons', '["🌐", "📁", "💼", "📝", "📅", "📊", "🧠", "🚀", "🎯", "🔒", "💡", "🎨", "🛠️", "🧩", "💻", "📱", "🎓", "📚", "⚙️", "🎉", "🕹️", "🛒", "🔍","🧪","🔧","🗝️","🎧","🎮"]');
pref('services.sync.prefs.sync.zen.workspaces.icons', true);
pref('services.sync.engine.workspaces', false);
// Zen Watermark
pref('zen.watermark.enabled', true, sticky);
@@ -147,7 +159,6 @@ pref('browser.migrate.opera-gx.enabled', true);
pref('browser.migrate.opera.enabled', true);
// DNS
// pref('network.proxy.type', 0);
// pref('network.trr.mode', 5);
pref('xpinstall.signatures.required', false);
@@ -211,9 +222,17 @@ pref("devtools.accessibility.enabled", false);
// Enable GPU by default
pref('gfx.webrender.all', true);
pref('layers.acceleration.force-enabled', true);
pref("gfx.canvas.accelerated", true);
pref("media.hardware-video-decoding.enabled", true);
// VAAPI/FFMPEG is Linux only
#ifdef XP_UNIX
pref('media.ffmpeg.vaapi.enabled', true);
pref('media.ffmpeg.encoder.enabled', true);
#endif
pref("media.hardware-video-decoding.enabled", true);
pref("gfx.canvas.accelerated", true);
// Fix buffering issues: Youtube, Archive bugzilla.mozilla.org/show_bug.cgi?id=1854077
pref("network.fetchpriority.enabled", true);
// No Proxy should be default, Use system proxy allows antivirus, virus or system proxy to MITM or slowing down Zen
pref("network.proxy.type", 0);

View File

@@ -1,28 +1,21 @@
export var ZenCustomizableUI = new class {
export var ZenCustomizableUI = new (class {
constructor() {}
TYPE_TOOLBAR = 'toolbar';
defaultSidebarIcons = [
'zen-sidepanel-button',
'zen-workspaces-button',
'new-tab-button'
];
defaultSidebarIcons = ['zen-sidepanel-button', 'zen-workspaces-button', 'new-tab-button'];
startup(CustomizableUIInternal) {
CustomizableUIInternal.registerArea(
"zen-sidebar-top-buttons",
'zen-sidebar-top-buttons',
{
type: this.TYPE_TOOLBAR,
defaultPlacements: [
"preferences-button", "zen-expand-sidebar-button", "zen-profile-button"
],
defaultPlacements: ['preferences-button', 'zen-expand-sidebar-button', 'zen-profile-button'],
defaultCollapsed: null,
},
true
);
CustomizableUIInternal.registerArea(
"zen-sidebar-icons-wrapper",
'zen-sidebar-icons-wrapper',
{
type: this.TYPE_TOOLBAR,
defaultPlacements: this.defaultSidebarIcons,
@@ -92,7 +85,7 @@ export var ZenCustomizableUI = new class {
_moveWindowButtons(window) {
const windowControls = window.document.getElementsByClassName('titlebar-buttonbox-container');
const toolboxIcons = window.document.getElementById('zen-sidebar-top-buttons-customization-target');
if (window.AppConstants.platform === "macosx") {
if (window.AppConstants.platform === 'macosx') {
for (let i = 0; i < windowControls.length; i++) {
if (i === 0) {
toolboxIcons.prepend(windowControls[i]);
@@ -104,9 +97,7 @@ export var ZenCustomizableUI = new class {
}
_hideToolbarButtons(window) {
const elementsToHide = [
'alltabs-button',
];
const elementsToHide = ['alltabs-button'];
for (let id of elementsToHide) {
const elem = window.document.getElementById(id);
if (elem) {
@@ -116,11 +107,7 @@ export var ZenCustomizableUI = new class {
}
registerToolbarNodes(window) {
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-top-buttons')
);
window.CustomizableUI.registerToolbarNode(
window.document.getElementById('zen-sidebar-icons-wrapper')
);
window.CustomizableUI.registerToolbarNode(window.document.getElementById('zen-sidebar-top-buttons'));
window.CustomizableUI.registerToolbarNode(window.document.getElementById('zen-sidebar-icons-wrapper'));
}
};
})();

View File

@@ -39,7 +39,6 @@
gZenUIManager.init();
gZenVerticalTabsManager.init();
gZenCompactModeManager.init();
gZenKeyboardShortcutsManager.init();
function throttle(f, delay) {
let timer = 0;
@@ -97,20 +96,21 @@
_changeSidebarLocation() {
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
const wrapper = document.getElementById('zen-tabbox-wrapper');
const appWrapepr = document.getElementById('zen-sidebar-box-container');
for (let id of kElementsToAppend) {
const elem = document.getElementById(id);
if (elem) {
wrapper.prepend(elem);
}
}
appWrapepr.setAttribute('hidden', 'true');
const browser = document.getElementById('browser');
const toolbox = document.getElementById('navigator-toolbox');
browser.prepend(toolbox);
const sidebarPanelWrapper = document.getElementById('tabbrowser-tabbox');
for (let id of kElementsToAppend) {
const elem = document.getElementById(id);
if (elem) {
sidebarPanelWrapper.prepend(elem);
}
}
// remove all styles except for the width, since we are xulstoring the complet style list
const width = toolbox.style.width;
toolbox.removeAttribute('style');
@@ -126,7 +126,7 @@
},
_initSearchBar() {
// Only focus the url bar
// Only focus the url bar
gURLBar.focus();
gURLBar._initCopyCutController();
@@ -147,7 +147,7 @@
Note: This developer console is not the same as the browser console, it has access to Zen's internal functions and variables, including your passwords and other sensitive information. Please do not paste any code here unless you know what you are doing.
`);
}
},
};
ZenStartup.init();

View File

@@ -1,8 +1,7 @@
var gZenUIManager = {
_popupTrackingElements: [],
init () {
init() {
document.addEventListener('popupshowing', this.onPopupShowing.bind(this));
document.addEventListener('popuphidden', this.onPopupHidden.bind(this));
},
@@ -67,7 +66,7 @@ var gZenUIManager = {
element.removeAttribute('has-popup-menu');
} else {
this.__removeHasPopupAttribute = () => element.removeAttribute('has-popup-menu');
document.addEventListener('mousemove', this.__removeHasPopupAttribute, {once: true});
document.addEventListener('mousemove', this.__removeHasPopupAttribute, { once: true });
}
this.__currentPopup = null;
this.__currentPopupTrackElement = null;
@@ -84,6 +83,22 @@ var gZenVerticalTabsManager = {
gZenCompactModeManager.addEventListener(updateEvent);
this._updateEvent();
this.initRightSideOrderContextMenu();
let tabs = document.getElementById('tabbrowser-tabs');
XPCOMUtils.defineLazyPreferenceGetter(this, 'canOpenTabOnMiddleClick', 'zen.tabs.newtab-on-middle-click', true);
if (tabs) {
tabs.addEventListener('mouseup', this.openNewTabOnTabsMiddleClick.bind(this));
}
},
openNewTabOnTabsMiddleClick(event) {
if (event.button === 1 && event.target.id === 'tabbrowser-tabs' && this.canOpenTabOnMiddleClick) {
document.getElementById('cmd_newNavigatorTabNoEvent').doCommand();
event.stopPropagation();
event.preventDefault();
}
},
get navigatorToolbox() {
@@ -136,8 +151,12 @@ var gZenVerticalTabsManager = {
this.navigatorToolbox.removeAttribute('zen-expanded');
}
if (this.navigatorToolbox.hasAttribute('zen-expanded') && !this.navigatorToolbox.hasAttribute('zen-right-side')
&& !Services.prefs.getBoolPref('zen.view.compact') && !Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover')) {
if (
this.navigatorToolbox.hasAttribute('zen-expanded') &&
!this.navigatorToolbox.hasAttribute('zen-right-side') &&
!Services.prefs.getBoolPref('zen.view.compact') &&
!Services.prefs.getBoolPref('zen.view.sidebar-expanded.on-hover')
) {
this.navigatorToolbox.prepend(topButtons);
browser.prepend(this.navigatorToolbox);
} else {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
index 16559b2c0e3aef391b43e09281aee24007feb0bd..2579cea92a55fabb73fdd130c3706af08c3fd849 100644
index 108160d9469d44f47c93a3808402e4b27ff59777..39a7b691302bf13e1b5990f46428cff6807a8e56 100644
--- a/browser/base/content/browser-box.inc.xhtml
+++ b/browser/base/content/browser-box.inc.xhtml
@@ -21,11 +21,15 @@
@@ -23,11 +23,16 @@
</vbox>
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
<vbox id="appcontent" flex="1">
@@ -12,6 +12,7 @@ index 16559b2c0e3aef391b43e09281aee24007feb0bd..2579cea92a55fabb73fdd130c3706af0
<tabbox id="tabbrowser-tabbox"
flex="1" tabcontainer="tabbrowser-tabs">
+#include zen-sidebar-panel.inc.xhtml
+#include zen-splitview-overlay.inc.xhtml
<tabpanels id="tabbrowser-tabpanels"
flex="1" selectedIndex="0"/>
</tabbox>

View File

@@ -0,0 +1,13 @@
diff --git a/browser/base/content/browser-development-helpers.js b/browser/base/content/browser-development-helpers.js
index 5155b280b8ff1dec8c53b12861ed4401f5499659..2184440335bbbf397f14d7c5e4b099f57022d03a 100644
--- a/browser/base/content/browser-development-helpers.js
+++ b/browser/base/content/browser-development-helpers.js
@@ -33,7 +33,7 @@ var DevelopmentHelpers = {
key.setAttribute("key", "r");
key.setAttribute("modifiers", "accel,alt");
key.setAttribute("command", "cmd_quickRestart");
- document.getElementById("mainKeyset").prepend(key);
+ document.getElementById(ZEN_KEYSET_ID).prepend(key);
let menuitem = document.createXULElement("menuitem");
menuitem.setAttribute("id", "menu_FileRestartItem");

View File

@@ -0,0 +1,13 @@
diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js
index 50da6424691ca230aa1a3a419cb69e66cf47b2c4..1f63f4bb7b75c940d5482dd4f13cebf452dddb74 100644
--- a/browser/base/content/browser-sets.js
+++ b/browser/base/content/browser-sets.js
@@ -245,7 +245,7 @@ document.addEventListener(
}
});
- document.getElementById("mainKeyset").addEventListener("command", event => {
+ document.getElementById(ZEN_KEYSET_ID).addEventListener("command", event => {
switch (event.target.id) {
case "goHome":
BrowserCommands.home();

View File

@@ -1,17 +1,25 @@
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
index 481ebbee437250c71e9bd10c4fb6fc0c31314925..3bb046a4635fad831cc447e29516ee5ed407a3f2 100644
index 5dd337a2ffc9f9107d735f4dc96a50d57b12d213..58ecaf7136e13885ac38d74d40b5ef0f52cd7684 100644
--- a/browser/base/content/browser.xhtml
+++ b/browser/base/content/browser.xhtml
@@ -138,6 +138,8 @@
@@ -98,6 +98,8 @@
<title data-l10n-id="browser-main-window-title"></title>
+#include zen-preloaded.inc.xhtml
+
# All JS files which are needed by browser.xhtml and other top level windows to
# support MacOS specific features *must* go into the global-scripts.inc file so
# that they can be shared with macWindow.inc.xhtml.
@@ -141,6 +143,7 @@
window.addEventListener("DOMContentLoaded",
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
</script>
+#include zen-locales.inc.xhtml
+#include zen-assets.inc.xhtml
</head>
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
# All sets except for popupsets (commands, keys, and stringbundles)
@@ -159,9 +161,12 @@
@@ -162,9 +165,12 @@
</vbox>
</html:template>

View File

@@ -37,8 +37,8 @@ index 18b91c95b88d11ddb257de03f12bc3e4cc75a96a..f117cfa7c9d1f9eb537cebbef42a9d2d
tooltip="dynamic-shortcut-tooltip"
data-l10n-id="tabs-toolbar-new-tab"/>
</html:div>
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="true" scrolledtostart="true" scrolledtoend="true">
- <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="horizontal" flex="1" style="min-width: 1px;" clicktoscroll="" scrolledtostart="" scrolledtoend="">
+ <arrowscrollbox id="tabbrowser-arrowscrollbox" orient="vertical" style="min-width: 1px;" clicktoscroll="" scrolledtostart="" scrolledtoend="">
<tab is="tabbrowser-tab" class="tabbrowser-tab" selected="true" visuallyselected="" fadein=""/>
<hbox id="tabbrowser-arrowscrollbox-periphery">
<toolbartabstop/>

View File

@@ -1,3 +1,5 @@
#include zen-locales.inc.xhtml
<!-- Styles used all over the browser -->
<linkset>
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-theme.css" />
@@ -23,18 +25,14 @@
</linkset>
<!-- Scripts used all over the browser -->
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", async () => {
// Theme importer always needs to be loaded first
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenSidebarManager.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspaces.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenViewSplitter.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenProfileDialogUI.mjs");
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs");
}, { once: true });
</script>
<script src="chrome://browser/content/zen-components/ZenThemesCommon.mjs" />
<script src="chrome://browser/content/zen-components/ZenThemesImporter.mjs" />
<script src="chrome://browser/content/zen-components/ZenCompactMode.mjs" />
<script src="chrome://browser/content/ZenUIManager.mjs" />
<script src="chrome://browser/content/zen-components/ZenSidebarManager.mjs"/>
<script src="chrome://browser/content/zen-components/ZenTabUnloader.mjs" />
<script src="chrome://browser/content/zen-components/ZenWorkspaces.mjs" />
<script src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs" />
<script src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs" />
<script src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"/>
<script src="chrome://browser/content/zen-components/ZenProfileDialogUI.mjs" />

View File

@@ -8,12 +8,17 @@
content/browser/zen-components/ZenViewSplitter.mjs (content/zen-components/src/ZenViewSplitter.mjs)
content/browser/zen-components/ZenThemesCommon.mjs (content/zen-components/src/ZenThemesCommon.mjs)
content/browser/zen-components/ZenWorkspaces.mjs (content/zen-components/src/ZenWorkspaces.mjs)
content/browser/zen-components/ZenWorkspacesStorage.mjs (content/zen-components/src/ZenWorkspacesStorage.mjs)
content/browser/zen-components/ZenWorkspacesSync.mjs (content/zen-components/src/ZenWorkspacesSync.mjs)
content/browser/zen-components/ZenSidebarManager.mjs (content/zen-components/src/ZenSidebarManager.mjs)
content/browser/zen-components/ZenProfileDialogUI.mjs (content/zen-components/src/ZenProfileDialogUI.mjs)
content/browser/zen-components/ZenKeyboardShortcuts.mjs (content/zen-components/src/ZenKeyboardShortcuts.mjs)
content/browser/zen-components/ZenThemeBuilder.mjs (content/zen-components/src/ZenThemeBuilder.mjs)
content/browser/zen-components/ZenThemesImporter.mjs (content/zen-components/src/ZenThemesImporter.mjs)
content/browser/zen-components/ZenTabUnloader.mjs (content/zen-components/src/ZenTabUnloader.mjs)
content/browser/zen-components/ZenPinnedTabManager.mjs (content/zen-components/src/ZenPinnedTabManager.mjs)
content/browser/zen-components/ZenCommonUtils.mjs (content/zen-components/src/ZenCommonUtils.mjs)
content/browser/zen-components/ZenGradientGenerator.mjs (content/zen-components/src/ZenGradientGenerator.mjs)
content/browser/zen-styles/zen-theme.css (content/zen-styles/zen-theme.css)
content/browser/zen-styles/zen-buttons.css (content/zen-styles/zen-buttons.css)
@@ -33,6 +38,7 @@
content/browser/zen-styles/zen-urlbar.css (content/zen-styles/zen-urlbar.css)
content/browser/zen-styles/zen-popup.css (content/zen-styles/zen-popup.css)
content/browser/zen-styles/zen-sidebar-panels.css (content/zen-styles/zen-sidebar-panels.css)
content/browser/zen-styles/zen-gradient-generator.css (content/zen-styles/zen-gradient-generator.css)
content/browser/zen-styles/zen-panels/bookmarks.css (content/zen-styles/zen-panels/bookmarks.css)
content/browser/zen-styles/zen-panels/extensions.css (content/zen-styles/zen-panels/extensions.css)

View File

@@ -3,9 +3,19 @@
onpopuphidden="if (event.target == this) gZenBrowserManagerSidebar.contextTab = null;">
<menuitem id="context_zenUnloadWebPanel" oncommand="gZenBrowserManagerSidebar.contextUnload();" data-l10n-id="zen-web-side-panel-context-unload"/>
<menuitem id="context_zenToggleMuteWebPanel" oncommand="gZenBrowserManagerSidebar.contextToggleMuteAudio();"/>
<menuitem id="context_zenToogleUAWebPanel" oncommand="gZenBrowserManagerSidebar.contextToggleUserAgent();"/>
<menuitem id="context_zenOpenNewTabWebPanel" oncommand="gZenBrowserManagerSidebar.contextOpenNewTab();" data-l10n-id="zen-web-side-panel-open-in-new-tab"/>
<menuseparator/>
<menu id="context_zenWebPanelContextInContainer"
data-l10n-id="zen-web-side-panel-context-open-in-container-tab"
selection-type="single"
node-type="link"
hide-if-private-browsing="true"
hide-if-usercontext-disabled="true">
<menupopup oncommand="gZenBrowserManagerSidebar.contextChangeContainerTab(event);"
onpopupshowing="return gZenBrowserManagerSidebar.createContainerTabMenu(event);" />
</menu>
<menuitem id="context_zenToogleUAWebPanel" oncommand="gZenBrowserManagerSidebar.contextToggleUserAgent();"/>
<menuseparator/>
<menuitem id="context_zenDeleteWebPanel" oncommand="gZenBrowserManagerSidebar.contextDelete();" data-l10n-id="zen-web-side-panel-context-delete"/>
</menupopup>
@@ -15,6 +25,7 @@
orient="vertical"
role="alertdialog"
type="arrow"
onpopupshowing="gZenViewSplitter.disableTabRearrangeView();"
aria-labelledby="zen-split-view-modifier-header"
tabspecific="true">
<panelmultiview id="zenSplitViewModifierMultiview"
@@ -24,34 +35,48 @@
role="document"
mainview-with-header="true"
has-custom-header="true">
<vbox>
<box class="zen-split-view-modifier-preview grid">
<box></box>
<box></box>
<box></box>
</box>
<p>Grid Layout</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview hsep">
<box></box>
<box></box>
</box>
<p>Horizontal</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview vsep">
<box></box>
<box></box>
</box>
<p>Vertical</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview unsplit">
<box></box>
</box>
<p>Unsplit</p>
</vbox>
<box id="zenSplitViewModifierHeader"
class="panel-header panel-header-with-additional-element panel-header-with-info-button">
<html:h1>
<html:span data-l10n-id="zen-split-view-modifier-header"></html:span>
</html:h1>
<toolbarbutton id="zenSplitViewModifierActivateReallocation"
class="panel-info-button"
oncommand="gZenViewSplitter.enableTabRearrangeView();"
data-l10n-id="zen-split-view-modifier-activate-reallocation">
<image/>
</toolbarbutton>
</box>
<hbox id="zenSplitViewModifierContent">
<vbox>
<box class="zen-split-view-modifier-preview grid">
<box></box>
<box></box>
<box></box>
</box>
<p>Grid Layout</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview vsep">
<box></box>
<box></box>
</box>
<p>Vertical</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview hsep">
<box></box>
<box></box>
</box>
<p>Horizontal</p>
</vbox>
<vbox>
<box class="zen-split-view-modifier-preview unsplit">
<box></box>
</box>
<p>Unsplit</p>
</vbox>
</hbox>
</panelview>
</panelmultiview>
</panel>
@@ -76,6 +101,10 @@
</vbox>
</panelview>
<panel type="arrow" id="PanelUI-zen-workspaces-icon-picker" position="bottomright topright" side="left">
</panel>
<panel flip="slide" type="arrow" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left">
<panelmultiview id="PanelUI-zen-workspaces-multiview" mainViewId="PanelUI-zen-workspaces-view">
<panelview id="PanelUI-zen-workspaces-view" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
@@ -99,10 +128,11 @@
</vbox>
</panelview>
<panelview id="PanelUI-zen-workspaces-create" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
<vbox>
<vbox class="PanelUI-zen-workspaces-user-create">
<h1 data-l10n-id="zen-panel-ui-workspaces-create-text"></h1>
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceCreationNameChange(this);" />
<hbox id="PanelUI-zen-workspaces-create-icons-container">
<hbox class="PanelUI-zen-workspaces-creation-wraper">
<hbox class="PanelUI-zen-workspaces-icons-container create" onclick="ZenWorkspaces.onWorkspaceIconContainerClick(event);"></hbox>
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceCreationNameChange(this);" />
</hbox>
</vbox>
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-create-footer">
@@ -113,10 +143,11 @@
</html:moz-button-group>
</panelview>
<panelview id="PanelUI-zen-workspaces-edit" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
<vbox>
<vbox class="PanelUI-zen-workspaces-user-create">
<h1 data-l10n-id="zen-panel-ui-workspaces-edit-text"></h1>
<html:input autofocus="true" id="PanelUI-zen-workspaces-edit-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceEditChange();" />
<hbox id="PanelUI-zen-workspaces-edit-icons-container">
<hbox class="PanelUI-zen-workspaces-creation-wraper">
<hbox class="PanelUI-zen-workspaces-icons-container edit" onclick="ZenWorkspaces.onWorkspaceIconContainerClick(event);"></hbox>
<html:input autofocus="true" id="PanelUI-zen-workspaces-edit-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceEditChange();" />
</hbox>
</vbox>
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-edit-footer">
@@ -131,7 +162,7 @@
<menupopup id="zenWorkspaceActionsMenu"
onpopupshowing="ZenWorkspaces.updateContextMenu(this);"
onpopuphidden="ZenWorkspaces.onContextMenuClose();">
onpopuphidden="if (event.target == this) ZenWorkspaces.onContextMenuClose();">
<menuitem id="context_zenOpenWorkspace" oncommand="ZenWorkspaces.openWorkspace();" data-l10n-id="zen-workspaces-panel-context-open"/>
<menuseparator/>
<menuitem id="context_zenSetAsDefaultWorkspace" oncommand="ZenWorkspaces.setDefaultWorkspace();" data-l10n-id="zen-workspaces-panel-context-set-default"/>

View File

@@ -0,0 +1,8 @@
# This needs to be here, before all the other scripts, because it's used before
# the window is fully loaded.
# Make sure they are loaded before the global-scripts.inc file.
<script type="text/javascript">
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCommonUtils.mjs", this);
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs", this);
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabManager.mjs", this);
</script>

View File

@@ -0,0 +1,5 @@
<hbox id="zen-splitview-overlay-wrapper">
<hbox id="zen-splitview-overlay">
<hbox id ="zen-splitview-dropzone"></hbox>
</hbox>
</hbox>

View File

@@ -44,17 +44,6 @@
}
}
@keyframes zen-zoom-in {
from {
transform: scale(0.5);
opacity: 0;
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes zen-deck-fadeIn {
0% {
transform: scale(0.9);
@@ -81,13 +70,13 @@
@keyframes zen-sidebar-panel-animation-2 {
0% {
opacity: 0;
transform: translateX(-50px) scale3d(0.95, 0.95, 0.95);
opacity: 1;
transform: translateX(-50px);
}
100% {
transform: translateX(0);
opacity: 1;
transform: translateX(0) scale3d(1, 1, 1);
}
}
@@ -111,7 +100,7 @@
opacity: 0;
transform: translateX(10px);
}
20% {
opacity: 1;
}
@@ -140,7 +129,7 @@
@keyframes zen-workspaces-button-active {
from {
bottom: -20px;
}
}
to {
bottom: -2px;
@@ -150,7 +139,7 @@
@keyframes zen-workspaces-button-active-collapsed-left {
from {
left: -20px;
}
}
to {
left: -2px;
@@ -160,7 +149,7 @@
@keyframes zen-workspaces-button-active-collapsed-right {
from {
right: -20px;
}
}
to {
right: -2px;

View File

@@ -7,15 +7,14 @@
--uc-tweak-rounded-corners-shadow-color: var(--zen-colors-border);
--uc-tweak-rounded-corners-shadow:
0 0 0 1px var(--uc-tweak-rounded-corners-shadow-color);
--uc-tweak-rounded-corners-shadow: 0 0 0 1px var(--uc-tweak-rounded-corners-shadow-color);
box-shadow: var(--uc-tweak-rounded-corners-shadow) !important;
/* Use pseudo element overlay to simulate rounded corners, similar to the
* tab corners, fixes bug with backdrop-filter. */
&::after {
content: "";
content: '';
position: absolute;
inset: 0;
border-radius: inherit;

View File

@@ -15,7 +15,7 @@
padding-right: var(--zen-element-separation);
padding-bottom: var(--zen-element-separation);
#browser:has(#navigator-toolbox[zen-right-side="true"]) & {
#browser:has(#navigator-toolbox[zen-right-side='true']) & {
padding-right: 0;
padding-left: var(--zen-element-separation);
}
@@ -46,6 +46,7 @@
#tabbrowser-tabbox {
display: flex;
flex-direction: row;
position: relative;
}
.titlebar-buttonbox-container {

View File

@@ -1,13 +1,7 @@
/* All overrides for compact mode go here */
@media not (-moz-bool-pref: 'zen.view.compact') {
#sidebar-box {
margin-top: 0 !important;
}
}
@media (-moz-bool-pref: 'zen.view.compact') {
:root:not([customizing]) {
:root:not([customizing]):not([inDOMFullscreen='true']) {
@media (-moz-bool-pref: 'zen.view.compact.hide-tabbar') {
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
margin-left: calc(var(--zen-sidebar-web-panel-spacing) * 2) !important;
@@ -34,36 +28,46 @@
#navigator-toolbox {
--zen-toolbox-max-width: 54px !important;
--zen-compact-float: calc(var(--zen-element-separation) + 1px);
position: absolute;
height: calc(98% - var(--zen-element-separation));
z-index: 9;
background: var(--zen-themed-toolbar-bg) !important;
box-shadow: 0 0 2px 2px rgba(0,0,0,.1);
border-top-right-radius: var(--zen-border-radius);
border-bottom-right-radius: var(--zen-border-radius);
border: 1px solid var(--zen-colors-border);
border-left-width: 0;
padding: var(--zen-toolbox-padding) !important;
transition: all 0.2s ease-in-out;
right: calc(100% - var(--zen-element-separation) + 1px);
top: 1%;
transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;
right: calc(100% - var(--zen-element-separation));
top: 0;
bottom: var(--zen-element-separation);
opacity: 0;
padding-left: var(--zen-compact-float) !important;
padding-bottom: 0 !important;
padding-top: 0 !important;
#browser:has(#navigator-toolbox[zen-right-side='true']) & {
border-left-width: 1px;
border-right-width: 0;
left: calc(100% - var(--zen-element-separation) - 1px);
padding-left: unset !important;
padding-right: var(--zen-compact-float) !important;
left: calc(100% - var(--zen-element-separation));
right: unset;
border-top-left-radius: var(--zen-border-radius);
border-bottom-left-radius: var(--zen-border-radius);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
#titlebar {
background: var(--zen-themed-toolbar-bg) !important;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1);
border-radius: calc(var(--zen-border-radius) + 2px);
border: 1px solid var(--zen-colors-border);
padding: var(--zen-toolbox-padding) !important;
position: relative;
}
/* Mark: toolbox as collapsed */
#zen-tabbox-wrapper > #navigator-toolbox:not(#navigator-toolbox:is(#navigator-toolbox[zen-expanded='true'])) {
max-width: calc(var(--zen-toolbox-max-width) + var(--zen-compact-float)) !important;
min-width: calc(var(--zen-toolbox-max-width) + var(--zen-compact-float)) !important;
}
@media (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
#navigator-toolbox {
top: var(--zen-element-separation);
}
}
#navigator-toolbox:hover,
#navigator-toolbox[zen-has-hover],
#navigator-toolbox:focus-within,
@@ -75,7 +79,7 @@
#navigator-toolbox:has(.tabbrowser-tab:active),
#navigator-toolbox:has(*[open='true']:not(tab):not(#zen-sidepanel-button)) {
opacity: 1;
transform: translateX(calc(100% - var(--zen-element-separation)));
#browser:has(#navigator-toolbox[zen-right-side='true']) & {
transform: translateX(calc(-100% + var(--zen-element-separation)));
@@ -84,7 +88,6 @@
}
@media (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
#navigator-toolbox {
--zen-toolbox-top-align: var(--zen-element-separation);
}
@@ -93,6 +96,15 @@
padding-top: var(--zen-element-separation) !important;
}
#sidebar-box,
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel:not([pinned='true'])) {
margin-top: var(--zen-element-separation) !important;
}
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
margin-top: calc(var(--zen-element-separation) * 2) !important;
}
#zen-appcontent-navbar-container {
position: absolute;
top: 0;
@@ -100,16 +112,16 @@
left: 0;
z-index: 10;
background: var(--zen-themed-toolbar-bg);
box-shadow: 0 0 2px 2px rgba(0,0,0,.1) !important;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1) !important;
border-bottom-left-radius: var(--zen-border-radius);
border-bottom-right-radius: var(--zen-border-radius);
border: 1px solid var(--zen-colors-border);
border-top-width: 0px;
transition: all 0.2s ease-in-out;
transition: all 0.1s ease-in-out;
width: 100%;
opacity: 0;
:root[tabsintitlebar][sizemode="normal"]:not([gtktiledwindow="true"]) & {
:root[tabsintitlebar][sizemode='normal']:not([gtktiledwindow='true']) & {
border-top-left-radius: env(-moz-gtk-csd-titlebar-radius);
border-top-right-radius: env(-moz-gtk-csd-titlebar-radius);
border-left-width: 0;

View File

@@ -15,41 +15,104 @@
flex: 0;
margin: 0;
}
#zen-splitview-dropzone {
border-radius: var(--zen-webview-border-radius, var(--zen-border-radius));
transition: inset ease-out .08s;
display: none;
background-color: color-mix(in srgb, var(--zen-colors-secondary) 30%, transparent 70%);
}
#zen-splitview-dropzone[enabled='true'] {
display: initial;
}
#tabbrowser-tabpanels[zen-split-view='true'] > [zen-split='true'] {
#tabbrowser-tabpanels[zen-split-view='true'] > [zen-split='true'], #zen-splitview-dropzone {
flex: 1;
margin: calc(var(--zen-split-column-gap) / 2) calc(var(--zen-split-row-gap) / 2);
position: absolute !important;
overflow: hidden;
}
#tabbrowser-tabpanels[zen-split-view='true'] > [zen-split-anim='true'] {
animation: zen-deck-fadeIn 0.2s forwards;
animation: zen-deck-fadeIn 0.2s forwards ease-in-out;
}
#tabbrowser-tabpanels[zen-split-view='true'] .browserSidebarContainer[zen-split-active='true'] {
#tabbrowser-tabpanels[zen-split-view='true']:not([zen-split-resizing]) > [zen-split-anim='true'] {
transition: inset 0.08s ease-out;
& browser {
transition: opacity 0.2s ease-out;
}
}
#tabbrowser-tabpanels[zen-split-view='true'] .browserSidebarContainer.deck-selected {
--uc-tweak-rounded-corners-shadow-color: var(--zen-primary-color) !important;
}
#tabbrowser-tabpanels:has(> [zen-split='true']) {
display: grid;
row-gap: 0;
column-gap: 0;
#tabbrowser-tabbox {
--zen-split-row-gap: calc(var(--zen-element-separation) + 2px);
--zen-split-column-gap: calc(var(--zen-element-separation) + 1px);
}
#tabbrowser-tabpanels:has(> [zen-split='true']), #zen-splitview-overlay {
margin-right: calc(var(--zen-element-separation) - var(--zen-split-row-gap)/2);
margin-bottom: calc(var(--zen-element-separation) - var(--zen-split-column-gap)/2);
margin-left: calc(var(--zen-split-row-gap)/-2);
margin-top: calc(var(--zen-split-column-gap)/-2);
@media (-moz-bool-pref: 'zen.view.compact') {
:root:not([customizing]) & {
@media (-moz-bool-pref: 'zen.view.compact.hide-tabbar') {
& {
margin-left: 0;
}
}
@media (-moz-bool-pref: 'zen.view.compact.hide-toolbar') {
& {
margin-top: 0;
}
}
}
}
}
#tabbrowser-tabpanels[zen-split-view] {
.zen-split-view-splitter {
display: inherit;
}
}
#zen-splitview-overlay-wrapper {
position: absolute;
pointer-events: none;
padding: inherit;
inset: 0;
}
#zen-splitview-overlay {
position: relative;
flex: 1;
padding-right: var(--zen-element-separation);
padding-bottom: var(--zen-element-separation);
z-index: 2;
}
.zen-split-view-splitter {
display: none;
visibility: inherit;
cursor: ew-resize;
-moz-subtree-hidden-only-visually: 0;
position: absolute;
pointer-events: all;
}
.zen-split-view-splitter[orient='vertical'] {
width: var(--zen-split-row-gap);
margin-left: calc(var(--zen-split-row-gap) / -2);
}
.zen-split-view-splitter[orient='horizontal'] {
height: var(--zen-split-column-gap);
margin-top: calc(var(--zen-split-column-gap) / -2);
cursor: n-resize;
}
@@ -63,22 +126,26 @@
min-width: 180px;
min-height: 180px;
padding: 15px;
padding-top: 12px;
}
#zenSplitViewModifierContent {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
gap: 10px;
padding: 15px;
gap: 15px;
}
#zenSplitViewModifierViewDefault > vbox {
#zenSplitViewModifierContent > vbox {
display: flex;
align-items: center;
flex-direction: column;
cursor: pointer;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview {
#zenSplitViewModifierContent .zen-split-view-modifier-preview {
border-radius: 5px;
border: 1px solid var(--zen-colors-border);
width: 100px;
@@ -89,51 +156,73 @@
font-weight: 500;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.active {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.active {
box-shadow: 0 0 0 2px var(--zen-primary-color);
border-width: 0px;
}
#zenSplitViewModifierViewDefault p {
#zenSplitViewModifierContent p {
margin-top: 5px;
margin-bottom: 0;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview box {
background-color: var(--zen-colors-secondary);
border-radius: 3px;
width: 100%;
height: 100%;
#zenSplitViewModifierContent .zen-split-view-modifier-preview {
& box {
background-color: var(--zen-colors-secondary);
border-radius: 3px;
width: 100%;
height: 100%;
transition: .1s;
}
&:hover box {
background-color: var(--zen-primary-color);
}
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.hsep {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.hsep {
display: flex;
flex-direction: column;
justify-content: space-between;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.hsep box:last-child {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.hsep box:last-child {
margin-top: 5px;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.vsep box:last-child {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.vsep box:last-child {
margin-left: 5px;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.grid {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.grid {
display: grid;
grid-template-areas: 'a b' 'c b';
gap: 5px;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.grid box:nth-child(1) {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.grid box:nth-child(1) {
grid-area: a;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.grid box:nth-child(2) {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.grid box:nth-child(2) {
grid-area: b;
}
#zenSplitViewModifierViewDefault .zen-split-view-modifier-preview.grid box:nth-child(3) {
#zenSplitViewModifierContent .zen-split-view-modifier-preview.grid box:nth-child(3) {
grid-area: c;
}
#zenSplitViewModifierHeader {
min-height: 0;
padding: 0;
margin: 0;
margin-bottom: 12px;
}
#zenSplitViewModifierEnabledToast {
display: none;
}
#zenSplitViewModifier:not([has-enabled-realloc])[toast] #zenSplitViewModifierEnabledToast {
display: revert;
}

View File

@@ -0,0 +1,54 @@
.zen-theme-picker-gradient {
border-radius: 10px;
position: relative;
overflow: hidden;
background: white;
& .zen-theme-picker-gradient-container {
--zen-gradient-picker-padding: 10px;
position: absolute;
top: var(--zen-gradient-picker-padding);
left: var(--zen-gradient-picker-padding);
height: calc(100% - 2 * var(--zen-gradient-picker-padding));
width: calc(100% - 2 * var(--zen-gradient-picker-padding));
display: flex;
background: color-mix(in srgb, var(--zen-colors-primary) 70%, transparent 30%);
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
backdrop-filter: blur(20px);
border: 1px solid var(--zen-colors-border);
& .zen-theme-picker-gradient-color {
&[primary='true'] {
width: 30px;
height: 30px;
border-width: 6px;
}
&:not([primary='true']) {
width: 20px;
height: 20px;
border-width: 4px;
}
border-radius: 50%;
border-style: solid;
border-color: white;
background: var(--zen-chosen-color, black);
transform: translate(-50%, -50%);
cursor: move;
position: absolute;
transition: transform 0.2s;
&[dragging='true'] {
transform: scale(1.2) translate(-50%, -50%);
}
}
}
}

View File

@@ -2,6 +2,6 @@ panel[type='arrow'][animate][animate='open'] {
animation: zen-jello-animation 0.2s ease-in-out;
}
panel[type='arrow'][animate][animate='cancel'] {
panel[type='arrow'][animate]:not([animate='open']) {
animation: zen-jello-out-animation 0.2s ease-in-out;
}

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