diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b45930535..27653b5bb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -517,6 +517,8 @@ jobs: repository: ./updates-server - name: Generate Release Notes + env: + RELEASE_BRANCH: ${{ inputs.update_branch }} run: bash .github/workflows/src/generate_release_notes.sh # If we are on Twilight, we want to just update the Twilight tag's release diff --git a/.github/workflows/macos-universal-release-build.yml b/.github/workflows/macos-universal-release-build.yml index 9330cb7e9..e3e86a953 100644 --- a/.github/workflows/macos-universal-release-build.yml +++ b/.github/workflows/macos-universal-release-build.yml @@ -182,7 +182,7 @@ jobs: run: | cd engine # TODO: Change it to "production" once we figure out the issue with the webauth - ./mach macos-sign -v -r -c "release" -e "production-without-restricted" -a "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app" --rcodesign-p12-file zenCert.p12 --rcodesign-p12-password-file zenpCertPassword.passwd + ./mach macos-sign -v -r -c "release" -e "production" -a "./obj-x86_64-apple-darwin/dist/${{ env.APP_NAME }}.app" --rcodesign-p12-file zenCert.p12 --rcodesign-p12-password-file zenpCertPassword.passwd - name: Create DMG run: | diff --git a/.github/workflows/src/generate_release_notes.sh b/.github/workflows/src/generate_release_notes.sh index 21758086d..ac4e4c55e 100644 --- a/.github/workflows/src/generate_release_notes.sh +++ b/.github/workflows/src/generate_release_notes.sh @@ -67,33 +67,38 @@ cat << EOF >> "release_notes.md" EOF generate_checksum() { - local file=$1 - if [ -f "$file" ]; then - echo "Generating checksum for $file" - sha256sum "$file" | awk '{print $1 " " $2}' >> "release_notes.md" - else - echo "Warning: $file not found, skipping checksum" + local pattern=$1 + echo "Generating checksum for $pattern" + sha256sum $pattern 2> /dev/null | awk '{sub(".*/", "", $2); print $1 " " $2}' >> "release_notes.md" + if [ ${PIPESTATUS[0]} -ne 0 ]; then + echo "Warning: No files found matching $pattern, skipping checksum." fi } files=( - "./zen.source.tar.zst" - "./zen.linux-x86_64.tar.xz" - "./zen.linux-aarch64.tar.xz" - "./zen-x86_64.AppImage" - "./zen-x86_64.AppImage.zsync" - "./zen-aarch64.AppImage" - "./zen-aarch64.AppImage.zsync" + "./zen.source.tar.zst/*" + "./zen.linux-x86_64.tar.xz/*" + "./zen.linux-aarch64.tar.xz/*" + "./zen-x86_64.AppImage/*" + "./zen-x86_64.AppImage.zsync/*" + "./zen-aarch64.AppImage/*" + "./zen-aarch64.AppImage.zsync/*" "./.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip" + "./zen.win-x86_64.zip/*" "./.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip" - "./linux.mar" - "./linux-aarch64.mar" + "./zen.win-arm64.zip/*" + "./linux.mar/*" + "./linux-aarch64.mar/*" "./.github/workflows/object/windows-x64-signed-x86_64/windows.mar" + "./windows.mar/*" "./.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar" - "./macos.mar" + "./windows-arm64.mar/*" + "./macos.mar/*" "./.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe" + "./zen.installer.exe/*" "./.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe" - "./zen.macos-universal.dmg" + "./zen.installer-arm64.exe/*" + "./zen.macos-universal.dmg/*" ) for file in "${files[@]}"; do diff --git a/README.md b/README.md index 537d574ee..d1ed17ff0 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ ## 🖥️ Compatibility -Zen is currently built using Firefox version `136.0.1`! 🚀 +Zen is currently built using Firefox version `136.0.2`! 🚀 - [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 136.0`! - Check out the latest [release notes](https://zen-browser.app/release-notes)! @@ -96,17 +96,22 @@ brew install --cask zen-browser yay -S zen-browser-bin ``` -##### Other Linux distributions (AppImage with automated system integration) +##### Other Linux distributions (Tarball or AppImage) -- `native` tarball install: - `bash <(curl -s https://updates.zen-browser.app/install.sh)` +- `Tarball` install: -- `zsync` is required for the Update feature of the script below +```sh +bash <(curl -s https://updates.zen-browser.app/install.sh) +``` + +- `AppImage` install: ```sh bash <(curl https://updates.zen-browser.app/appimage.sh) ``` +> AppImage install requires `zsync` for the Update feature + - Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄 To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`. diff --git a/configs/macos/mozconfig b/configs/macos/mozconfig index 34ee5c6a5..9c1f488f3 100644 --- a/configs/macos/mozconfig +++ b/configs/macos/mozconfig @@ -7,7 +7,7 @@ export MOZ_MACBUNDLE_ID=${appId} export MOZ_MACBUNDLE_NAME="Zen Browser.app" # override LTO settings -# TODO: Dont +# TODO: Dont use LTO for now, it's causing a lot of issues export MOZ_LTO=cross,thin ac_add_options --enable-lto=cross,thin diff --git a/firefox-cache/l10n-last-commit-hash b/firefox-cache/l10n-last-commit-hash index 2991f1839..d1765242d 100644 --- a/firefox-cache/l10n-last-commit-hash +++ b/firefox-cache/l10n-last-commit-hash @@ -1 +1 @@ -6ad0ab3c43a6208d8bcd997b40e802fccd48ba0a \ No newline at end of file +6013afe489c3d5e19c5f0d0f6c3f94b91f5bd7d1 \ No newline at end of file diff --git a/flatpak/app.zen_browser.zen.yml.template b/flatpak/app.zen_browser.zen.yml.template index a8f5adeac..20b242489 100644 --- a/flatpak/app.zen_browser.zen.yml.template +++ b/flatpak/app.zen_browser.zen.yml.template @@ -28,7 +28,7 @@ finish-args: - --system-talk-name=org.freedesktop.NetworkManager - --talk-name=org.a11y.Bus - --env=GTK_PATH=/app/lib/gtkmodules - - --env=MESA_SHADER_CACHE_DIR=$XDG_RUNTIME_DIR/app/$FLATPAK_ID/cache/mesa_shader_cache_db + - --env=MESA_SHADER_CACHE_DIR=/var/cache/mesa_shader_cache_db modules: - name: zen_browser buildsystem: simple diff --git a/l10n b/l10n index 1db9cb464..778cb128c 160000 --- a/l10n +++ b/l10n @@ -1 +1 @@ -Subproject commit 1db9cb464e03cd75c910920360c8389516c9a4fd +Subproject commit 778cb128c659c7b8f57080e99fbc04f8d93c30a2 diff --git a/package-lock.json b/package-lock.json index ae338762c..8dbd35d31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { - "@zen-browser/surfer": "^1.10.4" + "@zen-browser/surfer": "^1.10.5" }, "devDependencies": { "husky": "^9.1.7", @@ -288,9 +288,9 @@ "license": "MIT" }, "node_modules/@zen-browser/surfer": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.10.4.tgz", - "integrity": "sha512-xDXJYgbJTfNpM+LsJDJ81VCotwIBY3CItrD7Y1hPqf84Ino/sTqy/QuHQCVqZU3StewAvVuV68MWnaiY9ytlMA==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.10.5.tgz", + "integrity": "sha512-jpGArye02C6M65qy0b5kZWzDBO5sh/BY6k2otC1keAjICm9lxELsh5ELRz0tVQ6kwrBUC3yE4uP8jzUgQdCuCg==", "dependencies": { "@resvg/resvg-js": "^1.4.0", "async-icns": "^1.0.2", diff --git a/package.json b/package.json index af630a45e..3c3a548ac 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ }, "homepage": "https://github.com/zen-browser/core#readme", "dependencies": { - "@zen-browser/surfer": "^1.10.4" + "@zen-browser/surfer": "^1.10.5" }, "devDependencies": { "husky": "^9.1.7", diff --git a/scripts/update_ff.py b/scripts/update_ff.py index 40f94f84b..0784d2f9b 100644 --- a/scripts/update_ff.py +++ b/scripts/update_ff.py @@ -64,6 +64,12 @@ def update_l10n_last_commit_hash(): if not os.path.exists("firefox-cache"): os.mkdir("firefox-cache") os.system("cat l10n-temp/.git/refs/heads/main > firefox-cache/l10n-last-commit-hash") + # Remove new line character + data = "" + with open("firefox-cache/l10n-last-commit-hash", "r") as f: + data = f.read() + with open("firefox-cache/l10n-last-commit-hash", "w") as f: + f.write(data.strip()) except KeyboardInterrupt: print("Exiting...") shutil.rmtree("l10n-temp") diff --git a/src/browser/app/profile/zen-browser.js b/src/browser/app/profile/zen-browser.js index dae00c7d3..6df26cef6 100644 --- a/src/browser/app/profile/zen-browser.js +++ b/src/browser/app/profile/zen-browser.js @@ -90,6 +90,8 @@ pref('zen.tabs.show-newtab-vertical', true); pref('zen.view.show-newtab-button-border-top', false); pref('zen.view.show-newtab-button-top', true); +perf('zen.mediacontrols.enabled', true); + #ifdef MOZILLA_OFFICIAL pref('zen.rice.api.url', 'https://share.zen-browser.app', locked); pref('zen.injections.match-urls', 'https://zen-browser.app/*,https://share.zen-browser.app/*', locked); @@ -199,9 +201,7 @@ pref('zen.startup.smooth-scroll-in-tabs', true); // Zen Workspaces pref('zen.workspaces.disabled_for_testing', false); -pref('zen.workspaces.hide-deactivated-workspaces', false); pref('zen.workspaces.hide-default-container-indicator', true); -pref('zen.workspaces.show-icon-strip', true); pref('zen.workspaces.force-container-workspace', false); pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false); pref('zen.workspaces.show-workspace-indicator', true); diff --git a/src/browser/base/content/ZenCustomizableUI.sys.mjs b/src/browser/base/content/ZenCustomizableUI.sys.mjs index abd8112dc..a29692253 100644 --- a/src/browser/base/content/ZenCustomizableUI.sys.mjs +++ b/src/browser/base/content/ZenCustomizableUI.sys.mjs @@ -125,12 +125,5 @@ 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-bottom-buttons')); - window.addEventListener( - 'DOMContentLoaded', - () => { - this._dispatchResizeEvent(window); - }, - { once: true } - ); } })(); diff --git a/src/browser/base/content/ZenStartup.mjs b/src/browser/base/content/ZenStartup.mjs index 4de69a3d5..662afbd55 100644 --- a/src/browser/base/content/ZenStartup.mjs +++ b/src/browser/base/content/ZenStartup.mjs @@ -58,6 +58,7 @@ closeWatermark() { document.documentElement.removeAttribute('zen-before-loaded'); + window.dispatchEvent(new window.Event('resize')); // To recalculate the layout if (Services.prefs.getBoolPref('zen.watermark.enabled', false)) { gZenUIManager.motion .animate( diff --git a/src/browser/base/content/ZenUIManager.mjs b/src/browser/base/content/ZenUIManager.mjs index 185fe8cc3..08f481493 100644 --- a/src/browser/base/content/ZenUIManager.mjs +++ b/src/browser/base/content/ZenUIManager.mjs @@ -65,6 +65,7 @@ var gZenUIManager = { tabs.style.removeProperty('flex'); tabs.style.maxHeight = height + 'px'; gZenVerticalTabsManager.actualWindowButtons.removeAttribute('zen-has-hover'); + gURLBar.updateLayoutBreakout(); }, get tabsWrapper() { @@ -249,7 +250,7 @@ var gZenUIManager = { const toast = this._createToastElement(messageId, options); this._toastContainer.removeAttribute('hidden'); this._toastContainer.appendChild(toast); - await this.motion.animate(toast, { opacity: [0, 1], scale: [0.8, 1] }, { type: 'spring', bounce: 0.5, duration: 0.5 }); + await this.motion.animate(toast, { opacity: [0, 1], scale: [0.8, 1] }, { type: 'spring', bounce: 0.5, duration: 0.7 }); await new Promise((resolve) => setTimeout(resolve, 3000)); await this.motion.animate(toast, { opacity: [1, 0], scale: [1, 0.9] }, { duration: 0.2, bounce: 0 }); const toastHeight = toast.getBoundingClientRect().height; @@ -260,6 +261,10 @@ var gZenUIManager = { this._toastContainer.setAttribute('hidden', 'true'); } }, + + get panelUIPosition() { + return gZenVerticalTabsManager._hasSetSingleToolbar ? 'bottomleft topleft' : 'bottomright topright'; + }, }; var gZenVerticalTabsManager = { @@ -361,7 +366,7 @@ var gZenVerticalTabsManager = { marginBottom: isLastTab() ? [] : [transform, '0px'], }, { - duration: 0.2, + duration: 0.12, easing: 'ease-out', } ) @@ -371,9 +376,16 @@ var gZenVerticalTabsManager = { aTab.style.removeProperty('opacity'); }); gZenUIManager.motion - .animate(aTab.querySelector('.tab-content'), { - filter: ['blur(1px)', 'blur(0px)'], - }) + .animate( + aTab.querySelector('.tab-content'), + { + filter: ['blur(1px)', 'blur(0px)'], + }, + { + duration: 0.12, + easing: 'ease-out', + } + ) .then(() => { aTab.querySelector('.tab-stack').style.removeProperty('filter'); }); diff --git a/src/browser/base/content/browser-box-inc-xhtml.patch b/src/browser/base/content/browser-box-inc-xhtml.patch index 5a4860b5d..3728cc0e3 100644 --- a/src/browser/base/content/browser-box-inc-xhtml.patch +++ b/src/browser/base/content/browser-box-inc-xhtml.patch @@ -1,8 +1,8 @@ diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml -index 7f71abe7d80e4c09dd088517ec9ef106c7cb8654..7e764f08346a048fd352d7f7c06ea434f9b19903 100644 +index 7d7e8697f02f90d4f336c9ab0a73a89848e0c21c..2fd19f3b43db4bdd99e65fecd1481f80d4541a7a 100644 --- a/browser/base/content/browser-box.inc.xhtml +++ b/browser/base/content/browser-box.inc.xhtml -@@ -22,7 +22,14 @@ +@@ -23,7 +23,14 @@