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 @@
diff --git a/src/browser/base/content/zen-images/note-indicator.svg b/src/browser/base/content/zen-images/note-indicator.svg
index 3e0a64c1f..053d78cb3 100644
--- a/src/browser/base/content/zen-images/note-indicator.svg
+++ b/src/browser/base/content/zen-images/note-indicator.svg
@@ -1,13 +1,13 @@