diff --git a/.formal-git/components b/.formal-git/components new file mode 100644 index 000000000..f5c6eba2a --- /dev/null +++ b/.formal-git/components @@ -0,0 +1,15 @@ +split-view +kbs +folders +workspaces +mods +tests +glance +media +images +vendor +tabs +compact-mode +common +fonts +welcome diff --git a/.formal-git/template b/.formal-git/template new file mode 100644 index 000000000..78a51dd63 --- /dev/null +++ b/.formal-git/template @@ -0,0 +1 @@ +{type}({components}): {bugId} - {message} \ No newline at end of file diff --git a/.prettierignore b/.prettierignore index 167e24b61..82e333acc 100644 --- a/.prettierignore +++ b/.prettierignore @@ -22,9 +22,8 @@ docs/issue-metrics/*.md # Some CSS files are preprocessed and prettier doesn't handle them well # We also dont want to format the CSS files that are generated by the build -src/browser/base/content/zen-styles/zen-tabs/vertical-tabs.css -src/browser/base/content/zen-styles/zen-compact-mode.css -src/browser/base/zen-components/ZenEmojies.mjs -build/codesign/codesign.bash +src/zen/tabs/zen-tabs/vertical-tabs.css +src/zen/compact-mode/zen-compact-mode.css +src/zen/common/ZenEmojies.mjs *.inc diff --git a/README.md b/README.md index 000758b7f..3fbba7fba 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Zen is currently built using Firefox version `137.0.1`! 🚀 -- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `137.0.1`! +- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 137.0.2`! - Check out the latest [release notes](https://zen-browser.app/release-notes)! - Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates! diff --git a/build/firefox-cache/l10n-last-commit-hash b/build/firefox-cache/l10n-last-commit-hash index 931a2f0f2..abad5ebaa 100644 --- a/build/firefox-cache/l10n-last-commit-hash +++ b/build/firefox-cache/l10n-last-commit-hash @@ -1 +1 @@ -01c20afaa6fe914ff4f083689b8d234c1ba76961 \ No newline at end of file +0e33cbae168cda8af58ebf2fbe234e784201a962 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 82f8b9539..3f596d876 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@zen-browser/surfer": "^1.11.7" }, "devDependencies": { + "formal-git": "^1.1.3", "husky": "^9.1.7", "lint-staged": "^15.3.0", "prettier": "^3.4.2", @@ -1028,6 +1029,17 @@ } } }, + "node_modules/formal-git": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/formal-git/-/formal-git-1.1.3.tgz", + "integrity": "sha512-0PCSlDDnslN4TfKuAGNdDB4FYs6gMSI3bOVNx1PpD0OxNhTrDSTZwZlpx04lQVx2DkiQaK7Hcgnn+sBBX2wqCQ==", + "dev": true, + "license": "ISC", + "bin": { + "fo": "lib/main.js", + "formal-git": "lib/main.js" + } + }, "node_modules/fs-constants": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", diff --git a/package.json b/package.json index 30a790d7b..e64fb4653 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@zen-browser/surfer": "^1.11.7" }, "devDependencies": { + "formal-git": "^1.1.3", "husky": "^9.1.7", "lint-staged": "^15.3.0", "prettier": "^3.4.2", diff --git a/scripts/fetch-formal-git-components.sh b/scripts/fetch-formal-git-components.sh new file mode 100644 index 000000000..8c7f22e26 --- /dev/null +++ b/scripts/fetch-formal-git-components.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e + +COMPONENT_ROOT=$(pwd)/src/zen + +echo "" > .formal-git/components + +# iterate top directories and adding the base name to .formal-git/components +for dir in $(find $COMPONENT_ROOT -maxdepth 1 -type d | grep -v '\.git' | grep -v 'node_modules' | grep -v 'engine'); do + if [ "$dir" != "$COMPONENT_ROOT" ]; then + echo "$(basename $dir)" >> .formal-git/components + fi +done + +# remove all empty lines +sed -i '/^$/d' .formal-git/components diff --git a/src/browser/base/content/zen-assets.inc.xhtml b/src/browser/base/content/zen-assets.inc.xhtml index 3df177b91..bb3a4da8b 100644 --- a/src/browser/base/content/zen-assets.inc.xhtml +++ b/src/browser/base/content/zen-assets.inc.xhtml @@ -43,7 +43,4 @@ Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/Zen Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenViewSplitter.mjs", this); Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenGlanceManager.mjs", this); Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenMediaController.mjs", this); - -// Unimportant scripts -Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenRices.mjs", this); diff --git a/src/browser/base/content/zen-assets.jar.inc.mn b/src/browser/base/content/zen-assets.jar.inc.mn index f94d0c19c..1e3efd3e2 100644 --- a/src/browser/base/content/zen-assets.jar.inc.mn +++ b/src/browser/base/content/zen-assets.jar.inc.mn @@ -1,82 +1,87 @@ - content/browser/zenThemeModifier.js (content/zenThemeModifier.js) - content/browser/ZenStartup.mjs (content/ZenStartup.mjs) - content/browser/zen-sets.js (content/zen-sets.js) - content/browser/ZenUIManager.mjs (content/ZenUIManager.mjs) - content/browser/ZenCustomizableUI.sys.mjs (content/ZenCustomizableUI.sys.mjs) - content/browser/zen-components/ZenUIMigration.mjs (zen-components/ZenUIMigration.mjs) - content/browser/zen-components/ZenCompactMode.mjs (zen-components/ZenCompactMode.mjs) - content/browser/zen-components/ZenViewSplitter.mjs (zen-components/ZenViewSplitter.mjs) - content/browser/zen-components/ZenThemesCommon.mjs (zen-components/ZenThemesCommon.mjs) - content/browser/zen-components/ZenWorkspaces.mjs (zen-components/ZenWorkspaces.mjs) - content/browser/zen-components/ZenWorkspacesStorage.mjs (zen-components/ZenWorkspacesStorage.mjs) - content/browser/zen-components/ZenWorkspacesSync.mjs (zen-components/ZenWorkspacesSync.mjs) - content/browser/zen-components/ZenKeyboardShortcuts.mjs (zen-components/ZenKeyboardShortcuts.mjs) - content/browser/zen-components/ZenThemesImporter.mjs (zen-components/ZenThemesImporter.mjs) - content/browser/zen-components/ZenTabUnloader.mjs (zen-components/ZenTabUnloader.mjs) - content/browser/zen-components/ZenPinnedTabsStorage.mjs (zen-components/ZenPinnedTabsStorage.mjs) - content/browser/zen-components/ZenPinnedTabManager.mjs (zen-components/ZenPinnedTabManager.mjs) - content/browser/zen-components/ZenCommonUtils.mjs (zen-components/ZenCommonUtils.mjs) - content/browser/zen-components/ZenGradientGenerator.mjs (zen-components/ZenGradientGenerator.mjs) - content/browser/zen-components/ZenGlanceManager.mjs (zen-components/ZenGlanceManager.mjs) - content/browser/zen-components/ZenFolders.mjs (zen-components/ZenFolders.mjs) - content/browser/zen-components/ZenActorsManager.mjs (zen-components/ZenActorsManager.mjs) - content/browser/zen-components/ZenRices.mjs (zen-components/ZenRices.mjs) - content/browser/zen-components/ZenEmojies.mjs (zen-components/ZenEmojies.mjs) - content/browser/zen-components/ZenWelcome.mjs (zen-components/ZenWelcome.mjs) - content/browser/zen-components/ZenMediaController.mjs (zen-components/ZenMediaController.mjs) + content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js) + content/browser/ZenStartup.mjs (../../zen/common/ZenStartup.mjs) + content/browser/zen-sets.js (../../zen/common/zen-sets.js) + content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs) + content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.mjs) + content/browser/zen-components/ZenEmojies.mjs (../../zen/common/ZenEmojies.mjs) + content/browser/ZenCustomizableUI.sys.mjs (../../zen/common/ZenCustomizableUI.sys.mjs) + content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs) + content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.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) - content/browser/zen-styles/zen-tabs.css (content/zen-styles/zen-tabs.css) -* content/browser/zen-styles/zen-tabs/vertical-tabs.css (content/zen-styles/zen-tabs/vertical-tabs.css) - content/browser/zen-styles/zen-tabs/horizontal-tabs.css (content/zen-styles/zen-tabs/horizontal-tabs.css) - content/browser/zen-styles/zen-browser-ui.css (content/zen-styles/zen-browser-ui.css) - content/browser/zen-styles/zen-animations.css (content/zen-styles/zen-animations.css) - content/browser/zen-styles/zen-panel-ui.css (content/zen-styles/zen-panel-ui.css) - content/browser/zen-styles/zen-single-components.css (content/zen-styles/zen-single-components.css) - content/browser/zen-styles/zen-sidebar.css (content/zen-styles/zen-sidebar.css) - content/browser/zen-styles/zen-toolbar.css (content/zen-styles/zen-toolbar.css) - content/browser/zen-styles/zen-decks.css (content/zen-styles/zen-decks.css) - content/browser/zen-styles/zen-folders.css (content/zen-styles/zen-folders.css) - content/browser/zen-styles/zen-glance.css (content/zen-styles/zen-glance.css) - content/browser/zen-styles/zen-browser-container.css (content/zen-styles/zen-browser-container.css) - content/browser/zen-styles/zen-workspaces.css (content/zen-styles/zen-workspaces.css) - content/browser/zen-styles/zen-urlbar.css (content/zen-styles/zen-urlbar.css) - content/browser/zen-styles/zen-popup.css (content/zen-styles/zen-popup.css) - content/browser/zen-styles/zen-gradient-generator.css (content/zen-styles/zen-gradient-generator.css) - content/browser/zen-styles/zen-rices.css (content/zen-styles/zen-rices.css) - content/browser/zen-styles/zen-branding.css (content/zen-styles/zen-branding.css) - content/browser/zen-styles/zen-welcome.css (content/zen-styles/zen-welcome.css) - content/browser/zen-styles/zen-media-controls.css (content/zen-styles/zen-media-controls.css) + content/browser/zen-styles/zen-theme.css (../../zen/common/styles/zen-theme.css) + content/browser/zen-styles/zen-buttons.css (../../zen/common/styles/zen-buttons.css) + content/browser/zen-styles/zen-browser-ui.css (../../zen/common/styles/zen-browser-ui.css) + content/browser/zen-styles/zen-animations.css (../../zen/common/styles/zen-animations.css) + content/browser/zen-styles/zen-panel-ui.css (../../zen/common/styles/zen-panel-ui.css) + content/browser/zen-styles/zen-single-components.css (../../zen/common/styles/zen-single-components.css) + content/browser/zen-styles/zen-sidebar.css (../../zen/common/styles/zen-sidebar.css) + content/browser/zen-styles/zen-toolbar.css (../../zen/common/styles/zen-toolbar.css) + content/browser/zen-styles/zen-browser-container.css (../../zen/common/styles/zen-browser-container.css) + content/browser/zen-styles/zen-urlbar.css (../../zen/common/styles/zen-urlbar.css) + content/browser/zen-styles/zen-popup.css (../../zen/common/styles/zen-popup.css) + content/browser/zen-styles/zen-branding.css (../../zen/common/styles/zen-branding.css) - content/browser/zen-styles/zen-panels/bookmarks.css (content/zen-styles/zen-panels/bookmarks.css) - content/browser/zen-styles/zen-panels/extensions.css (content/zen-styles/zen-panels/extensions.css) - content/browser/zen-styles/zen-panels/print.css (content/zen-styles/zen-panels/print.css) - content/browser/zen-styles/zen-panels/dialog.css (content/zen-styles/zen-panels/dialog.css) + content/browser/zen-styles/zen-panels/bookmarks.css (../../zen/common/styles/zen-panels/bookmarks.css) + content/browser/zen-styles/zen-panels/extensions.css (../../zen/common/styles/zen-panels/extensions.css) + content/browser/zen-styles/zen-panels/print.css (../../zen/common/styles/zen-panels/print.css) + content/browser/zen-styles/zen-panels/dialog.css (../../zen/common/styles/zen-panels/dialog.css) -* content/browser/zen-styles/zen-compact-mode.css (content/zen-styles/zen-compact-mode.css) + content/browser/zen-components/ZenCompactMode.mjs (../../zen/compact-mode/ZenCompactMode.mjs) +* content/browser/zen-styles/zen-compact-mode.css (../../zen/compact-mode/zen-compact-mode.css) - # Images - content/browser/zen-images/gradient.png (content/zen-images/gradient.png) - content/browser/zen-images/brand-header.svg (content/zen-images/brand-header.svg) - content/browser/zen-images/layouts/collapsed.png (content/zen-images/layouts/collapsed.png) - content/browser/zen-images/layouts/multiple-toolbar.png (content/zen-images/layouts/multiple-toolbar.png) - content/browser/zen-images/layouts/single-toolbar.png (content/zen-images/layouts/single-toolbar.png) - content/browser/zen-images/grain-bg.png (content/zen-images/grain-bg.png) - content/browser/zen-images/note-indicator.svg (content/zen-images/note-indicator.svg) + content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs) + content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css) - # Actors - content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (zen-components/actors/ZenThemeMarketplaceParent.sys.mjs) - content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (zen-components/actors/ZenThemeMarketplaceChild.sys.mjs) - content/browser/zen-components/actors/ZenGlanceChild.sys.mjs (zen-components/actors/ZenGlanceChild.sys.mjs) - content/browser/zen-components/actors/ZenGlanceParent.sys.mjs (zen-components/actors/ZenGlanceParent.sys.mjs) + content/browser/zen-components/ZenThemesCommon.mjs (../../zen/mods/ZenThemesCommon.mjs) + content/browser/zen-components/ZenThemesImporter.mjs (../../zen/mods/ZenThemesImporter.mjs) + content/browser/zen-components/actors/ZenThemeMarketplaceParent.sys.mjs (../../zen/mods/actors/ZenThemeMarketplaceParent.sys.mjs) + content/browser/zen-components/actors/ZenThemeMarketplaceChild.sys.mjs (../../zen/mods/actors/ZenThemeMarketplaceChild.sys.mjs) - # Fonts - content/browser/zen-fonts/JunicodeVF-Italic.woff2 (content/zen-fonts/JunicodeVF-Italic.woff2) - content/browser/zen-fonts/JunicodeVF-Roman.woff2 (content/zen-fonts/JunicodeVF-Roman.woff2) + content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs) + content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.mjs) + content/browser/zen-components/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs) + content/browser/zen-components/ZenGradientGenerator.mjs (../../zen/workspaces/ZenGradientGenerator.mjs) + content/browser/zen-styles/zen-workspaces.css (../../zen/workspaces/zen-workspaces.css) + content/browser/zen-styles/zen-gradient-generator.css (../../zen/workspaces/zen-gradient-generator.css) + + content/browser/zen-components/ZenKeyboardShortcuts.mjs (../../zen/kbs/ZenKeyboardShortcuts.mjs) + + content/browser/zen-components/ZenTabUnloader.mjs (../../zen/tabs/ZenTabUnloader.mjs) + content/browser/zen-components/ZenPinnedTabsStorage.mjs (../../zen/tabs/ZenPinnedTabsStorage.mjs) + content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs) + content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css) +* content/browser/zen-styles/zen-tabs/vertical-tabs.css (../../zen/tabs/zen-tabs/vertical-tabs.css) + content/browser/zen-styles/zen-tabs/horizontal-tabs.css (../../zen/tabs/zen-tabs/horizontal-tabs.css) + + content/browser/zen-components/ZenGlanceManager.mjs (../../zen/glance/ZenGlanceManager.mjs) + content/browser/zen-styles/zen-glance.css (../../zen/glance/zen-glance.css) + content/browser/zen-components/actors/ZenGlanceChild.sys.mjs (../../zen/glance/actors/ZenGlanceChild.sys.mjs) + content/browser/zen-components/actors/ZenGlanceParent.sys.mjs (../../zen/glance/actors/ZenGlanceParent.sys.mjs) + + content/browser/zen-components/ZenFolders.mjs (../../zen/folders/ZenFolders.mjs) + content/browser/zen-styles/zen-folders.css (../../zen/folders/zen-folders.css) + + content/browser/zen-components/ZenWelcome.mjs (../../zen/welcome/ZenWelcome.mjs) + content/browser/zen-styles/zen-welcome.css (../../zen/welcome/zen-welcome.css) + + content/browser/zen-components/ZenMediaController.mjs (../../zen/media/ZenMediaController.mjs) + content/browser/zen-styles/zen-media-controls.css (../../zen/media/zen-media-controls.css) + + # Images + content/browser/zen-images/gradient.png (../../zen/images/gradient.png) + content/browser/zen-images/brand-header.svg (../../zen/images/brand-header.svg) + content/browser/zen-images/layouts/collapsed.png (../../zen/images/layouts/collapsed.png) + content/browser/zen-images/layouts/multiple-toolbar.png (../../zen/images/layouts/multiple-toolbar.png) + content/browser/zen-images/layouts/single-toolbar.png (../../zen/images/layouts/single-toolbar.png) + content/browser/zen-images/grain-bg.png (../../zen/images/grain-bg.png) + content/browser/zen-images/note-indicator.svg (../../zen/images/note-indicator.svg) + + # Fonts + content/browser/zen-fonts/JunicodeVF-Italic.woff2 (../../zen/fonts/JunicodeVF-Italic.woff2) + content/browser/zen-fonts/JunicodeVF-Roman.woff2 (../../zen/fonts/JunicodeVF-Roman.woff2) # JS Vendor - content/browser/zen-vendor/tsparticles.confetti.bundle.min.js (content/zen-vendor/tsparticles.confetti.bundle.min.js) - content/browser/zen-vendor/motion.min.mjs (content/zen-vendor/motion.min.mjs) + content/browser/zen-vendor/tsparticles.confetti.bundle.min.js (../../zen/vendor/tsparticles.confetti.bundle.min.js) + content/browser/zen-vendor/motion.min.mjs (../../zen/vendor/motion.min.mjs) diff --git a/src/browser/base/content/zen-sidebar-icons.inc.xhtml b/src/browser/base/content/zen-sidebar-icons.inc.xhtml index 2bfe8caf2..004011697 100644 --- a/src/browser/base/content/zen-sidebar-icons.inc.xhtml +++ b/src/browser/base/content/zen-sidebar-icons.inc.xhtml @@ -1,4 +1,4 @@ -#include zen-media-controls.inc.xhtml +#include ../../../zen/media/zen-media-controls.inc.xhtml vbox { - width: 100%; - padding: 0 10px; - } - - & #zen-rice-share-first-form input[type='text'] { - width: 100%; - padding: 1px 2px; - border: 0; - border-bottom: 1px solid var(--zen-appcontent-border); - background: transparent; - font-style: italic; - font-weight: 600; - } - - & #zen-rice-share-name { - font-style: normal !important; - font-size: 24px; - margin-left: 1px; - } - - & .indent { - margin-left: 30px; - } - } - - & .zen-rice-share-header { - height: 200px; - margin-bottom: -20px; - } - - & #zen-rice-share-options { - padding: 10px 0; - - max-height: 30px; - overflow: hidden; - transition: - max-height 0.3s ease, - height 0.3s ease; - &[zen-collapsed='false'] { - max-height: 350px; - } - - & > .options-header { - font-weight: 600; - margin-bottom: 5px; - position: relative; - cursor: pointer; - align-items: center; - - color: inherit; - -moz-context-properties: fill, fill-opacity; - fill: var(--toolbarbutton-icon-fill); - - & label { - width: fit-content; - cursor: pointer; - } - } - - & > .options-header image { - transition: transform 0.3s ease; - width: 15px; - height: 15px; - } - - &[zen-collapsed='false'] > .options-header image { - transform: rotate(90deg); - } - - & > checkbox { - margin-left: 15px; - } - } - - & .panel-footer { - margin: 0; - margin-top: 10px; - - & button { - justify-content: center; - } - } - - #zen-rice-share-error { - border: 1px solid rgba(255, 0, 0, 0.5); - background: rgba(255, 0, 0, 0.1); - padding: 5px; - transition: opacity 0.3s ease; - border-radius: var(--zen-native-inner-radius); - - @starting-style { - opacity: 0; - } - - & button { - margin-left: auto; - margin-top: 2px; - } - } - - /* Animations */ - #zen-rice-share-first-form[fade-out] { - position: absolute; - transform: translateX(-100%); - pointer-events: none; - animation: zen-rice-form-out 0.5s ease; - } - - #zen-rice-share-second-form { - animation: zen-rice-form-in 0.5s ease forwards; - justify-content: center; - - & > hbox { - width: 100%; - height: 5px; - border-radius: 100px; - border: 1px solid var(--zen-colors-border); - position: relative; - overflow: hidden; - - &::before { - content: ''; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: var(--zen-primary-color); - transition: width 4s cubic-bezier(1, 0, 0, 1); - - @starting-style { - width: 0; - } - } - } - - &[fade-out] { - position: absolute !important; - animation: zen-rice-form-out 0.5s ease forwards; - } - } - - #zen-rice-share-success { - overflow-y: hidden; - max-height: 0px; - animation: zen-rice-form-in-2 0.5s ease forwards; - - & > h1 { - margin: 0; - font-size: 20px; - } - - & > p { - color: var(--text-color-deemphasized); - } - - & label { - margin: 0; - margin-top: 15px; - font-weight: 600; - margin-bottom: 5px; - } - } -} - -#zen-rice-share-dialog-notice { - padding: 15px; - - & br { - margin-bottom: 10px; - } - - & > p { - color: var(--text-color-deemphasized); - margin-top: 10px; - } - - .panel-footer { - margin-top: 10px; - align-items: center; - } -} diff --git a/src/browser/base/content/zen-tabbrowser-elements.inc.xhtml b/src/browser/base/content/zen-tabbrowser-elements.inc.xhtml index 075ed985f..c539842a3 100644 --- a/src/browser/base/content/zen-tabbrowser-elements.inc.xhtml +++ b/src/browser/base/content/zen-tabbrowser-elements.inc.xhtml @@ -1,2 +1,2 @@ -#include zen-splitview-overlay.inc.xhtml -#include zen-glance.inc.xhtml \ No newline at end of file +#include ../../../zen/split-view/zen-splitview-overlay.inc.xhtml +#include ../../../zen/glance/zen-glance.inc.xhtml \ No newline at end of file diff --git a/src/browser/base/moz-build.patch b/src/browser/base/moz-build.patch index f043e9cca..ce28f4aaf 100644 --- a/src/browser/base/moz-build.patch +++ b/src/browser/base/moz-build.patch @@ -1,5 +1,5 @@ diff --git a/browser/base/moz.build b/browser/base/moz.build -index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..6685d857180944d68bf4f049919f81361084c481 100644 +index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..62e4531bd19caf098fd76c69b213fa32d62546a6 100644 --- a/browser/base/moz.build +++ b/browser/base/moz.build @@ -87,3 +87,5 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] in ("windows", "gtk"): @@ -7,4 +7,4 @@ index 636e0841786735a63ddea00e819c0b6f0b8a5d4d..6685d857180944d68bf4f049919f8136 JAR_MANIFESTS += ["jar.mn"] + -+DIRS += ["zen-components"] ++DIRS += ["../../zen"] diff --git a/src/browser/base/zen-components/ZenRices.mjs b/src/browser/base/zen-components/ZenRices.mjs deleted file mode 100644 index a2fc0e4b4..000000000 --- a/src/browser/base/zen-components/ZenRices.mjs +++ /dev/null @@ -1,428 +0,0 @@ -{ - const ZEN_RICE_API = Services.prefs.getStringPref('zen.rice.api.url', ''); - - class ZenRiceCollector { - constructor() {} - - clear() { - this._userChrome = null; - this._userContent = null; - this._enabledMods = null; - this._preferences = null; - this._workspaceThemes = null; - } - - async gatherAll({ - userUserChrome = true, - userContent = true, - enabledMods = true, - preferences = true, - modPrefs = true, - workspaceThemes = true, - } = {}) { - this.clear(); - // Get the mods first, as they may be needed for the preferences - if (enabledMods) { - await this.gatherEnabledMods(); - } - await Promise.all([ - userUserChrome && this.gatherUserChrome(), - userContent && this.gatherUserContent(), - preferences && this.gatherPreferences({ modPrefs }), - workspaceThemes && this.gatherWorkspaceThemes(), - ]); - } - - get profileDir() { - return PathUtils.profileDir; - } - - async gatherUserChrome() { - try { - const path = PathUtils.join(this.profileDir, 'chrome', 'userChrome.css'); - this._userChrome = await IOUtils.readUTF8(path); - } catch (e) { - console.warn('[ZenRiceCollector]: Error reading userChrome.css: ', e); - return null; - } - } - - async gatherUserContent() { - try { - const path = PathUtils.join(this.profileDir, 'chrome', 'userContent.css'); - this._userContent = await IOUtils.readUTF8(path); - } catch (e) { - console.warn('[ZenRiceCollector]: Error reading userContent.css: ', e); - return null; - } - } - - async gatherEnabledMods() { - const activeThemes = await gZenThemesImporter.getEnabledThemes(); - if (activeThemes.length === 0) { - return; - } - this._enabledMods = activeThemes; - } - - _getThemePrefValue(theme, pref) { - if (pref.type === 'checkbox') { - return Services.prefs.getBoolPref(pref.property); - } - return Services.prefs.getStringPref(pref.property); - } - - async gatherPreferences({ modPrefs = true } = {}) { - this._preferences = {}; - if (modPrefs && this._enabledMods) { - for (const theme of this._enabledMods) { - const prefs = await ZenThemesCommon.getThemePreferences(theme); - for (const pref of prefs) { - this._preferences[pref.property] = this._getThemePrefValue(theme, pref); - } - } - } - const boolPrefsToCollect = [ - 'zen.view.use-single-toolbar', - 'zen.view.sidebar-expanded', - 'zen.tabs.vertical.right-side', - 'zen.view.experimental-no-window-controls', - 'zen.view.hide-window-controls', - ...(gZenOperatingSystemCommonUtils.currentOperatingSystem === 'windows' ? ['widget.windows.mica'] : []), - ...(gZenOperatingSystemCommonUtils.currentOperatingSystem === 'macos' - ? ['widget.macos.titlebar-blend-mode.behind-window'] - : []), - ]; - const stringPrefsToCollect = ['browser.uiCustomization.state']; - for (const pref of boolPrefsToCollect) { - this._preferences[pref] = Services.prefs.getBoolPref(pref); - } - for (const pref of stringPrefsToCollect) { - this._preferences[pref] = Services.prefs.getStringPref(pref); - } - } - - async gatherWorkspaceThemes() { - const workspaces = (await ZenWorkspaces._workspaces()).workspaces; - this._workspaceThemes = workspaces.map((w) => w.theme); - } - - async packRice(...args) { - await this.gatherAll(...args); - const rice = { - userChrome: this._userChrome, - userContent: this._userContent, - enabledMods: this._enabledMods?.map((t) => t.id), - preferences: this._preferences, - workspaceThemes: this._workspaceThemes, - }; - return rice; - } - } - - class ZenRiceManager { - constructor() { - this._collector = new ZenRiceCollector(); - } - - init() {} - - get conffettiWrapper() { - if (!this.confetti) { - Services.scriptloader.loadSubScript('chrome://browser/content/zen-vendor/tsparticles.confetti.bundle.min.js', this); - } - return this.confetti; - } - - async packRice() { - return await this._collector.packRice(); - } - - get shareDialog() { - if (this._shareDialog) { - return this._shareDialog; - } - this._shareDialog = window.MozXULElement.parseXULToFragment(` -