Compare commits
260 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d800c20905 | ||
|
|
8a72d253aa | ||
|
|
71558dca71 | ||
|
|
6dbc5bf6db | ||
|
|
98448b9572 | ||
|
|
79bd7794a5 | ||
|
|
3ab70ff9a8 | ||
|
|
e1894d5fb4 | ||
|
|
58646d1d08 | ||
|
|
2132f44812 | ||
|
|
62f56d7949 | ||
|
|
33ac98c2b3 | ||
|
|
8f962816ea | ||
|
|
e95363adc8 | ||
|
|
6250e9dfb2 | ||
|
|
0f57148418 | ||
|
|
9bd02871e2 | ||
|
|
f1fbe78f93 | ||
|
|
02c429993c | ||
|
|
beab17074d | ||
|
|
f608d6a8ce | ||
|
|
16c2ff8449 | ||
|
|
5c61ca688f | ||
|
|
095a5f38f3 | ||
|
|
696757003b | ||
|
|
9300004cbd | ||
|
|
9c13275aca | ||
|
|
5c6b4736be | ||
|
|
c566cc32fe | ||
|
|
8dc0e6b4bf | ||
|
|
f8f3f8abcb | ||
|
|
22414da6a8 | ||
|
|
150c94c0e9 | ||
|
|
d845853643 | ||
|
|
ffbf4a703b | ||
|
|
649378b695 | ||
|
|
8aa964bc78 | ||
|
|
6c89cd4a26 | ||
|
|
2ba4ffb4f8 | ||
|
|
38753ab8b0 | ||
|
|
9da8a28345 | ||
|
|
a4e79d4738 | ||
|
|
44cff2b498 | ||
|
|
5fe326aad8 | ||
|
|
b4a5c1504c | ||
|
|
270254c760 | ||
|
|
a71f24a1fa | ||
|
|
90bce607b0 | ||
|
|
1540d6b411 | ||
|
|
b51af13bb0 | ||
|
|
3eaeb4a0a1 | ||
|
|
aa6a03b5f9 | ||
|
|
3ca5b24e25 | ||
|
|
b074bf0690 | ||
|
|
3130c13c30 | ||
|
|
f0b60391a8 | ||
|
|
a4086122aa | ||
|
|
fe9ee85688 | ||
|
|
2cbe662019 | ||
|
|
be54733b13 | ||
|
|
053bc28e68 | ||
|
|
f38bea67ab | ||
|
|
8eec660d03 | ||
|
|
79e731e89c | ||
|
|
4f49ff3290 | ||
|
|
0dac5522fe | ||
|
|
a35ef0e735 | ||
|
|
c5515fc3ae | ||
|
|
2d40259c6e | ||
|
|
388e69cc38 | ||
|
|
d2df699ced | ||
|
|
be244cfe5a | ||
|
|
6ccf5053cd | ||
|
|
0f71de410b | ||
|
|
6b8f3b750e | ||
|
|
eebee9fb97 | ||
|
|
21e0496d6f | ||
|
|
9abc7f1a82 | ||
|
|
fa8354b133 | ||
|
|
b51c205538 | ||
|
|
73842430ea | ||
|
|
2b6f2980ce | ||
|
|
3d9a40beb9 | ||
|
|
2365fa9fbc | ||
|
|
0890180889 | ||
|
|
6b6339867d | ||
|
|
69405bda0f | ||
|
|
0f76a4814d | ||
|
|
81a02834de | ||
|
|
fa4315808b | ||
|
|
8acdb00570 | ||
|
|
d4a45ca006 | ||
|
|
d5225be720 | ||
|
|
8f7302f0ee | ||
|
|
446d198eca | ||
|
|
38111960f8 | ||
|
|
b83a9d94c6 | ||
|
|
a536c708ca | ||
|
|
53de112eb8 | ||
|
|
6662e0fa09 | ||
|
|
e90f188c63 | ||
|
|
e039ee1692 | ||
|
|
68fc9fb635 | ||
|
|
940a2ebc3f | ||
|
|
7f3d9fd9e7 | ||
|
|
5f552bb749 | ||
|
|
a233c6be8c | ||
|
|
0f3120e831 | ||
|
|
9c93a21421 | ||
|
|
8201b175bb | ||
|
|
78ee43347e | ||
|
|
7b23e4de11 | ||
|
|
7a7bd01717 | ||
|
|
7bb113d1f0 | ||
|
|
db5d318c74 | ||
|
|
139e7a8b25 | ||
|
|
390afc7e63 | ||
|
|
8fcf251916 | ||
|
|
cad9a299c3 | ||
|
|
3e53c9e338 | ||
|
|
8386b1b3e8 | ||
|
|
6c44ccf319 | ||
|
|
f0b96a1538 | ||
|
|
b490d91572 | ||
|
|
48bf0504e8 | ||
|
|
d15ee91ea0 | ||
|
|
af6fd8796d | ||
|
|
b7a5a878d6 | ||
|
|
68100bda86 | ||
|
|
a7d652ddca | ||
|
|
b8f54de530 | ||
|
|
8f86e40b5d | ||
|
|
aced6e170f | ||
|
|
988b7caf3d | ||
|
|
abb71a0feb | ||
|
|
26e1a1c58d | ||
|
|
4b1ff82756 | ||
|
|
f668a5c8f9 | ||
|
|
7f1a5eea20 | ||
|
|
b24f8e27fa | ||
|
|
aae3ed0872 | ||
|
|
6de445eaa1 | ||
|
|
18b4925dd4 | ||
|
|
7dc4bb728b | ||
|
|
61efc6b834 | ||
|
|
4cc687e2cd | ||
|
|
ff1795fe96 | ||
|
|
92e49efdc6 | ||
|
|
f7a19e8b14 | ||
|
|
1fa8d217f9 | ||
|
|
09ec1ad864 | ||
|
|
0eb1c7d419 | ||
|
|
9824e18dbf | ||
|
|
b95306348d | ||
|
|
de43cc6cd5 | ||
|
|
de435f8e7b | ||
|
|
f2e006fde9 | ||
|
|
5f7c3a41f1 | ||
|
|
3fbe8c0b6c | ||
|
|
3933f77968 | ||
|
|
68fc8cd6ed | ||
|
|
47fbae7e0d | ||
|
|
82a4ffdc12 | ||
|
|
6386f178d4 | ||
|
|
102d226269 | ||
|
|
b399247652 | ||
|
|
263db42602 | ||
|
|
8136387a75 | ||
|
|
e65991aa03 | ||
|
|
a7846a64d0 | ||
|
|
5dfc6a663f | ||
|
|
0c45a24f48 | ||
|
|
762d5de441 | ||
|
|
5bfb55a27d | ||
|
|
87bb2f38db | ||
|
|
fb1575d875 | ||
|
|
c153bef170 | ||
|
|
2fcf6c80e9 | ||
|
|
2e6e71e3b6 | ||
|
|
004b946716 | ||
|
|
6400722712 | ||
|
|
d9ec28459e | ||
|
|
407c1d24af | ||
|
|
de6d8d1153 | ||
|
|
3eb10fc05b | ||
|
|
1ab6f77f95 | ||
|
|
c1b15b59db | ||
|
|
3dae5a6d47 | ||
|
|
ec3e2ab870 | ||
|
|
a2810d65de | ||
|
|
1713c04834 | ||
|
|
dab2646054 | ||
|
|
03bc0d2f22 | ||
|
|
ad0485d651 | ||
|
|
7764c4bdd7 | ||
|
|
46bbbccdc9 | ||
|
|
ee28417a4c | ||
|
|
5332ab9cac | ||
|
|
746ac1eec7 | ||
|
|
13c763b0e8 | ||
|
|
8b67c4fdd1 | ||
|
|
c3e658d46a | ||
|
|
5d0419075b | ||
|
|
ebded1a73b | ||
|
|
cf879a5c23 | ||
|
|
99ed27ca61 | ||
|
|
4aa3e5b34d | ||
|
|
303e6066e2 | ||
|
|
861cd15240 | ||
|
|
d695ddb91a | ||
|
|
7abb2edb2f | ||
|
|
dfe8abd496 | ||
|
|
61b384ee56 | ||
|
|
d71a890430 | ||
|
|
2c85a85fff | ||
|
|
ce6074530f | ||
|
|
e20228153c | ||
|
|
e431170435 | ||
|
|
c671d1e389 | ||
|
|
31a5e70b26 | ||
|
|
0c68c72b29 | ||
|
|
2b158fdf57 | ||
|
|
dd005b31a4 | ||
|
|
0b467cc149 | ||
|
|
46e2fdca00 | ||
|
|
983b06266b | ||
|
|
cb8708d2d9 | ||
|
|
adbec11c04 | ||
|
|
404f00c02b | ||
|
|
5d346205fc | ||
|
|
db3f1a7c09 | ||
|
|
d2599f1f9a | ||
|
|
ed88aafdc1 | ||
|
|
d94deed341 | ||
|
|
4b49d87a81 | ||
|
|
4a6281ebf6 | ||
|
|
332443fe81 | ||
|
|
96c784704a | ||
|
|
b0d10919d7 | ||
|
|
b0e4681b5f | ||
|
|
2958f6ea7f | ||
|
|
4d46f94975 | ||
|
|
4cc7e9ca98 | ||
|
|
7688a11ef9 | ||
|
|
80b182cc54 | ||
|
|
b6936e7ca4 | ||
|
|
1590326fc1 | ||
|
|
1a1eb3264f | ||
|
|
3d80a8aa39 | ||
|
|
6cca084e05 | ||
|
|
1c2c496f7e | ||
|
|
8ab60be68b | ||
|
|
f1fe363083 | ||
|
|
db619790be | ||
|
|
608749ce1a | ||
|
|
1135744520 | ||
|
|
c8d616e657 | ||
|
|
3f8a6e04c8 | ||
|
|
851cd8e037 | ||
|
|
7b3dae8bea |
20
.formal-git/components
Normal file
20
.formal-git/components
Normal file
@@ -0,0 +1,20 @@
|
||||
split-view
|
||||
kbs
|
||||
folders
|
||||
workspaces
|
||||
mods
|
||||
tests
|
||||
glance
|
||||
media
|
||||
images
|
||||
vendor
|
||||
tabs
|
||||
compact-mode
|
||||
common
|
||||
fonts
|
||||
welcome
|
||||
scripts
|
||||
workflows
|
||||
winsign
|
||||
flatpak
|
||||
configs
|
||||
1
.formal-git/template
Normal file
1
.formal-git/template
Normal file
@@ -0,0 +1 @@
|
||||
{type}: {message}, b=({bugId}), c={components}
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
||||
*.patch linguist-language=C++
|
||||
*.d.ts linguist-language=TypeScript
|
||||
|
||||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -503,7 +503,7 @@ jobs:
|
||||
- name: Download object files
|
||||
if: ${{ inputs.update_branch == 'release' }}
|
||||
run: |
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object
|
||||
git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object --depth 1
|
||||
|
||||
- name: Copy update manifests
|
||||
env:
|
||||
|
||||
2
.github/workflows/code-linter.yml
vendored
2
.github/workflows/code-linter.yml
vendored
@@ -11,7 +11,7 @@ on:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
pr-test:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
||||
15
.github/workflows/macos-release-build.yml
vendored
15
.github/workflows/macos-release-build.yml
vendored
@@ -24,7 +24,7 @@ on:
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Build macOS - ${{ matrix.arch }}
|
||||
runs-on: ${{ inputs.release-branch == 'release' && 'macos-14' || 'macos-14' }}
|
||||
runs-on: macos-15
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -113,19 +113,20 @@ jobs:
|
||||
- name: Download Firefox source and dependencies
|
||||
run: npm run download
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: npm run import -- --verbose
|
||||
|
||||
- name: Bootstrap
|
||||
run: |
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
# Always exist with 0, even if bootstrap fails
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes --exclude macos-sdk || true
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: npm run import -- --verbose
|
||||
|
||||
- name: Build language packs
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ on:
|
||||
jobs:
|
||||
mac-build:
|
||||
name: Unify macOS (Universal)
|
||||
runs-on: 'macos-14'
|
||||
runs-on: 'macos-15'
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
cd engine
|
||||
export SURFER_PLATFORM="darwin"
|
||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes || true
|
||||
cd ..
|
||||
|
||||
- name: Import
|
||||
|
||||
@@ -25,7 +25,7 @@ EOF
|
||||
if [ "$RELEASE_BRANCH" = "release" ]; then
|
||||
echo "${EXTRA_NOTES}" >> "release_notes.md"
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e 'has("features")' > /dev/null; then
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.features // []) | length > 0' > /dev/null; then
|
||||
cat << EOF >> "release_notes.md"
|
||||
|
||||
## New Features
|
||||
@@ -33,7 +33,7 @@ $(echo "$LATEST_RELEASE" | jq -r '.features[] | "- " + .')
|
||||
EOF
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e 'has("fixes")' > /dev/null; then
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.fixes // []) | length > 0' > /dev/null; then
|
||||
cat << EOF >> "release_notes.md"
|
||||
|
||||
## Fixes
|
||||
@@ -41,7 +41,7 @@ EOF
|
||||
echo "$LATEST_RELEASE" | jq -r '.fixes[] | if type=="object" then "- " + .description + " ([#" + (.issue|tostring) + "](" + "https://github.com/zen-browser/desktop/issues/" + (.issue|tostring) + "))" else "- " + . end' >> "release_notes.md"
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e 'has("breakingChanges")' > /dev/null; then
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.breakingChanges // []) | length > 0' > /dev/null; then
|
||||
cat << EOF >> "release_notes.md"
|
||||
|
||||
## Breaking Changes
|
||||
@@ -49,7 +49,7 @@ EOF
|
||||
echo "$LATEST_RELEASE" | jq -r '.breakingChanges[] | if type=="string" then "- " + . else "- " + .description + " [Learn more](" + .link + ")" end' >> "release_notes.md"
|
||||
fi
|
||||
|
||||
if echo "$LATEST_RELEASE" | jq -e 'has("themeChanges")' > /dev/null; then
|
||||
if echo "$LATEST_RELEASE" | jq -e '(.themeChanges // []) | length > 0' > /dev/null; then
|
||||
cat << EOF >> "release_notes.md"
|
||||
|
||||
## Theme Changes
|
||||
|
||||
2
.github/workflows/src/release-build.sh
vendored
2
.github/workflows/src/release-build.sh
vendored
@@ -3,7 +3,7 @@
|
||||
set -xe
|
||||
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo add-apt-repository ppa:kisak/kisak-mesa
|
||||
sudo apt-get install python3-launchpadlib
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y xvfb libnvidia-egl-wayland1 mesa-utils libgl1-mesa-dri
|
||||
fi
|
||||
|
||||
@@ -10,11 +10,6 @@ on:
|
||||
required: false
|
||||
type: boolean
|
||||
default: true
|
||||
use-sccache:
|
||||
description: 'Use sccache'
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
twilight-release-schedule:
|
||||
@@ -25,7 +20,7 @@ jobs:
|
||||
with:
|
||||
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
||||
update_branch: twilight
|
||||
use-sccache: ${{ github.event_name != 'workflow_dispatch' && false || inputs.use-sccache }}
|
||||
use-sccache: false
|
||||
update_version: false
|
||||
|
||||
post-build:
|
||||
|
||||
13
.github/workflows/windows-release-build.yml
vendored
13
.github/workflows/windows-release-build.yml
vendored
@@ -111,6 +111,7 @@ jobs:
|
||||
set -x
|
||||
mkdir -p ~/win-cross
|
||||
cd engine/
|
||||
sudo apt-get install python3-launchpadlib
|
||||
sudo add-apt-repository ppa:savoury1/backports
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y python3-pip autoconf \
|
||||
@@ -161,6 +162,12 @@ jobs:
|
||||
echo Setup Visual Studio
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||
|
||||
- name: Import
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: npm run import -- --verbose
|
||||
|
||||
- name: Bootstrap
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: |
|
||||
@@ -196,12 +203,6 @@ jobs:
|
||||
echo "" >> ../configs/common/mozconfig
|
||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||
|
||||
- name: Import
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
env:
|
||||
SURFER_COMPAT: ${{ matrix.arch }}
|
||||
run: npm run import -- --verbose
|
||||
|
||||
- name: Build language packs
|
||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||
run: sh scripts/download-language-packs.sh
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -11,3 +11,6 @@ windsign-temp/
|
||||
venv/
|
||||
|
||||
!firefox-cache/
|
||||
win-cross/
|
||||
|
||||
!firefox-patches/
|
||||
|
||||
@@ -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.css
|
||||
src/zen/compact-mode/zen-compact-mode.css
|
||||
src/zen/common/ZenEmojies.mjs
|
||||
|
||||
*.inc
|
||||
|
||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -26,5 +26,6 @@
|
||||
"system_error": "cpp",
|
||||
"regex": "cpp",
|
||||
"type_traits": "cpp"
|
||||
}
|
||||
},
|
||||
"git.ignoreLimitWarning": true
|
||||
}
|
||||
|
||||
14
README.md
14
README.md
@@ -28,9 +28,9 @@
|
||||
|
||||
## 🖥️ Compatibility
|
||||
|
||||
Zen is currently built using Firefox version `137.0.1`! 🚀
|
||||
Zen is currently built using Firefox version `138.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 138.0.1`!
|
||||
- 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!
|
||||
|
||||
@@ -57,10 +57,6 @@ Zen is divided into 2 main branches. We use `dev` for development and `stable` f
|
||||
|
||||
We divide into 2 branches in case there's any really important security update (for example) that needs to be released before the next stable release. This allows us to do patches without releasing unstable versions to the public.
|
||||
|
||||
## ⚡ Performance
|
||||
|
||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible! Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
||||
|
||||
## 📥 Installation
|
||||
|
||||
### Supported Operating Systems
|
||||
@@ -85,7 +81,7 @@ winget install --id Zen-Team.Zen-Browser
|
||||
You can also install Zen using Homebrew:
|
||||
|
||||
```
|
||||
brew install --cask zen-browser
|
||||
brew install zen-browser
|
||||
```
|
||||
|
||||
#### Linux
|
||||
@@ -118,11 +114,11 @@ To upgrade the browser to a newer version, use the embedded update functionality
|
||||
|
||||
## 👨💻 Development and Contributing
|
||||
|
||||
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/desktop/tree/dev/src/browser/base/zen-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/desktop/tree/dev/src/zen).
|
||||
|
||||
#### `Run Locally`
|
||||
|
||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/building).
|
||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/guides/building).
|
||||
|
||||
#### `Special Thanks`
|
||||
|
||||
|
||||
3
babel.config.json
Normal file
3
babel.config.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"presets": ["@babel/preset-typescript"]
|
||||
}
|
||||
@@ -1 +1 @@
|
||||
01c20afaa6fe914ff4f083689b8d234c1ba76961
|
||||
8113a66aeeec42dca9739c7b742a3408cb5b7cf7
|
||||
10
build/ts/transform-ts.js
Normal file
10
build/ts/transform-ts.js
Normal file
@@ -0,0 +1,10 @@
|
||||
const fs = require('fs');
|
||||
const MJS_FILES = ['src/zen/split-view/ZenViewSplitter.ts'];
|
||||
|
||||
for (const file of MJS_FILES) {
|
||||
const code = fs.readFileSync(file, 'utf8');
|
||||
require('@babel/core').transformSync(code, {
|
||||
presets: ['@babel/preset-typescript'],
|
||||
filename: file,
|
||||
});
|
||||
}
|
||||
@@ -4,4 +4,6 @@ C:\MozillaBuildSetup-Latest.exe /S | out-null
|
||||
rustup target add aarch64-pc-windows-msvc
|
||||
rustup target add x86_64-pc-windows-msvc
|
||||
|
||||
cp -r tests engine/browser/base/zen-components/
|
||||
cd engine
|
||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ../win-cross/vs2022
|
||||
cd ..
|
||||
|
||||
@@ -24,7 +24,7 @@ Start-Job -Name "DownloadGitl10n" -ScriptBlock {
|
||||
cd $PWD
|
||||
$env:ZEN_L10N_CURR_DIR=[regex]::replace($PWD, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
||||
C:\mozilla-build\start-shell.bat $PWD\scripts\download-language-packs.sh
|
||||
echo "Fetched l10n and firefox's one"
|
||||
echo "Fetched l10n and Firefox's one"
|
||||
} -Verbose -ArgumentList $PWD -Debug
|
||||
|
||||
Start-Job -Name "SurferInit" -ScriptBlock {
|
||||
@@ -49,7 +49,6 @@ function DownloadFile($url, $targetFile) {
|
||||
$request = [System.Net.HttpWebRequest]::Create($uri)
|
||||
$request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3"
|
||||
$request.Headers.Add("Authorization", "Bearer $token")
|
||||
$request.set_Timeout(15000) #15 second timeout
|
||||
$response = $request.GetResponse()
|
||||
$totalLength = [System.Math]::Floor($response.get_ContentLength()/1024)
|
||||
$responseStream = $response.GetResponseStream()
|
||||
@@ -85,7 +84,7 @@ function DownloadArtifacts($name) {
|
||||
|
||||
echo "Downloading artifact to $tempFile"
|
||||
DownloadFile $artifactUrl $tempFile
|
||||
|
||||
|
||||
Start-Job -Name "UnzipArtifact$name" -ScriptBlock {
|
||||
param($tempFile, $outputPath)
|
||||
echo "Unzipping artifact to $outputPath"
|
||||
@@ -129,13 +128,19 @@ function SignAndPackage($name) {
|
||||
|
||||
echo "Removing old obj dir"
|
||||
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
|
||||
|
||||
|
||||
echo "Creating new obj dir"
|
||||
cp windsign-temp\windows-x64-obj-$name engine\obj-$objName-pc-windows-msvc\ -Recurse
|
||||
|
||||
echo "Copying setup.exe into obj dir"
|
||||
$env:ZEN_SETUP_EXE_PATH="$PWD\windsign-temp\windows-x64-obj-$name\browser\installer\windows\instgen\setup.exe"
|
||||
|
||||
if ($name -eq "arm64") {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2022\VC\Redist\MSVC\14.38.33135\arm64\Microsoft.VC143.CRT"
|
||||
} else {
|
||||
$env:WIN32_REDIST_DIR="$PWD\win-cross\vs2022\VC\Redist\MSVC\14.38.33135\x64\Microsoft.VC143.CRT"
|
||||
}
|
||||
|
||||
$env:MAR="..\\build\\winsign\\mar.exe"
|
||||
if ($name -eq "arm64") {
|
||||
$env:SURFER_COMPAT="aarch64"
|
||||
|
||||
@@ -107,6 +107,9 @@ mk_add_options MOZ_DATA_REPORTING=
|
||||
mk_add_options MOZ_SERVICES_HEALTHREPORT=
|
||||
mk_add_options MOZ_TELEMETRY_REPORTING=
|
||||
|
||||
ac_add_options MOZ_DATA_REPORTING=
|
||||
ac_add_options MOZ_TELEMETRY_REPORTING=
|
||||
|
||||
# Allow loading unsigned extensions
|
||||
export MOZ_REQUIRE_SIGNING=
|
||||
mk_add_options MOZ_REQUIRE_SIGNING=
|
||||
|
||||
@@ -3,8 +3,6 @@ unset MOZ_STDCXX_COMPAT
|
||||
ac_add_options --disable-dmd
|
||||
ac_add_options --enable-eme=widevine
|
||||
|
||||
export MOZ_MACBUNDLE_ID=${appId}
|
||||
|
||||
# override LTO settings
|
||||
# TODO: Dont use LTO for now, it's causing a lot of issues
|
||||
export MOZ_LTO=cross,thin
|
||||
|
||||
@@ -17,7 +17,6 @@ if test "$ZEN_CROSS_COMPILING"; then
|
||||
else
|
||||
export WIN32_REDIST_DIR="$(echo ~)/win-cross/vs2022/VC/Redist/MSVC/14.38.33135/x64/Microsoft.VC143.CRT"
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
| video playing windows go blank for split second | https://github.com/zen-browser/desktop/issues/3313 | None | None |
|
||||
| Light mode makes some buttons look disabled | https://github.com/zen-browser/desktop/issues/3312 | 0:40:59 | 20 days, 19:57:32 |
|
||||
| Tabs unloading with the feature disabled | https://github.com/zen-browser/desktop/issues/3311 | None | None |
|
||||
| Default browser settings changes to firefox when i close the Zen | https://github.com/zen-browser/desktop/issues/3310 | None | None |
|
||||
| Default browser settings changes to Firefox when i close the Zen | https://github.com/zen-browser/desktop/issues/3310 | None | None |
|
||||
| zen.source.tar.gz is incorrectly named, should be .tar.zst instead | https://github.com/zen-browser/desktop/issues/3308 | None | None |
|
||||
| Tab temporarely is compacted to the width of my sidebar before loading in when switching from a split-view | https://github.com/zen-browser/desktop/issues/3307 | None | None |
|
||||
| Pre-assigned url to a container, and associate a container to a workspace, but that chain is broken | https://github.com/zen-browser/desktop/issues/3306 | None | 9 days, 21:18:59 |
|
||||
|
||||
@@ -251,7 +251,7 @@
|
||||
| "Show all tabs" keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/3765 | 4:43:13 | None |
|
||||
| URL bar missing on windows of different workspaces | https://github.com/zen-browser/desktop/issues/3764 | 1 day, 12:20:03 | 9 days, 9:18:05 |
|
||||
| The tab pane shakes in compact mode when hovering on the buttons | https://github.com/zen-browser/desktop/issues/3763 | None | 9 days, 3:05:22 |
|
||||
| this last update is GARBAGE!!! why would you do that to the address bar when you click once it moves to the center. and the new logo sucks. im probably going back to firefox | https://github.com/zen-browser/desktop/issues/3762 | 2:15:10 | 17:24:07 |
|
||||
| this last update is GARBAGE!!! why would you do that to the address bar when you click once it moves to the center. and the new logo sucks. im probably going back to Firefox | https://github.com/zen-browser/desktop/issues/3762 | 2:15:10 | 17:24:07 |
|
||||
| Floating Web Panel Disappears When Clicking elsewhere on the Screen | https://github.com/zen-browser/desktop/issues/3759 | 18:57:22 | 18:57:22 |
|
||||
| Visual problems occur when playing embedded videos on websites presented in picture-in-picture mode in zen browser using it under GNU/Linux. | https://github.com/zen-browser/desktop/issues/3758 | 21:40:26 | 1 day, 0:38:06 |
|
||||
| URL Bar weird behaviour on compact mode and shortcuts | https://github.com/zen-browser/desktop/issues/3757 | 14:46:59 | 4 days, 21:05:40 |
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
| Compact mode won't disable after changing which toolbars are hidden | https://github.com/zen-browser/desktop/issues/4649 | 16:26:34 | None |
|
||||
| Problem with tab bar and top bar | https://github.com/zen-browser/desktop/issues/4648 | 7:28:57 | None |
|
||||
| Excessive margin between bookmark sidebar and center pane | https://github.com/zen-browser/desktop/issues/4647 | 7:37:12 | None |
|
||||
| I am not able to save my bookmarks of zen with the autoExportHTML flag, this works fine on firefox though. | https://github.com/zen-browser/desktop/issues/4646 | None | None |
|
||||
| I am not able to save my bookmarks of zen with the autoExportHTML flag, this works fine on Firefox though. | https://github.com/zen-browser/desktop/issues/4646 | None | None |
|
||||
| Dropdown input is not selected | https://github.com/zen-browser/desktop/issues/4645 | None | None |
|
||||
| Toolbar becomes big after customizing the bookmarks placement | https://github.com/zen-browser/desktop/issues/4641 | None | None |
|
||||
| Zen Mods are not properly installing | https://github.com/zen-browser/desktop/issues/4640 | None | None |
|
||||
@@ -349,7 +349,7 @@
|
||||
| Page refresh | https://github.com/zen-browser/desktop/issues/4338 | 11:57:25 | None |
|
||||
| Expand Side's bar changes position of forward and backward buttons | https://github.com/zen-browser/desktop/issues/4336 | 12:19:39 | None |
|
||||
| breaks after using rectify11 and mica for everyone | https://github.com/zen-browser/desktop/issues/4335 | None | 3:03:08 |
|
||||
| Link "Zen support site" redirects to firefox support site | https://github.com/zen-browser/desktop/issues/4333 | 16:39:30 | 16:39:30 |
|
||||
| Link "Zen support site" redirects to Firefox support site | https://github.com/zen-browser/desktop/issues/4333 | 16:39:30 | 16:39:30 |
|
||||
| Opening discord keeps crashing the tab | https://github.com/zen-browser/desktop/issues/4332 | 0:24:48 | 0:24:48 |
|
||||
| space between essentials/tabs and the workspace title is different for default vs others | https://github.com/zen-browser/desktop/issues/4329 | None | 1 day, 0:42:55 |
|
||||
| Essential disappears, but it's still there | https://github.com/zen-browser/desktop/issues/4328 | 17:21:42 | 2 days, 3:52:35 |
|
||||
@@ -362,7 +362,7 @@
|
||||
| Slow scrolling speed on the vertical tab bar in 1.6b | https://github.com/zen-browser/desktop/issues/4321 | 1:18:21 | 1 day, 5:19:47 |
|
||||
| browser.urlbar.suggest.topsites set to false make url cannot be edited | https://github.com/zen-browser/desktop/issues/4319 | 1 day, 3:38:03 | 2 days, 9:54:46 |
|
||||
| Tab volume icon not showing in collapsed toolbar unless tab is active | https://github.com/zen-browser/desktop/issues/4316 | None | 0:08:41 |
|
||||
| Profile avatar picture flashes and is overridden by firefox account avatar | https://github.com/zen-browser/desktop/issues/4315 | 8:16:31 | 8:16:31 |
|
||||
| Profile avatar picture flashes and is overridden by Firefox account avatar | https://github.com/zen-browser/desktop/issues/4315 | 8:16:31 | 8:16:31 |
|
||||
| Zen Browser Turn Light At Lost Focus | https://github.com/zen-browser/desktop/issues/4314 | 2 days, 4:11:22 | 5 days, 16:04:18 |
|
||||
| "Log-in to this network" modal & button not interactible | https://github.com/zen-browser/desktop/issues/4313 | None | None |
|
||||
| Sudden Crashes on Arch Linux with Multiple Tabs Opened | https://github.com/zen-browser/desktop/issues/4309 | 2:56:11 | None |
|
||||
|
||||
@@ -516,7 +516,7 @@
|
||||
| icon is in not visible in the toolbar | https://github.com/zen-browser/desktop/issues/5215 | 4 days, 19:21:15 | None |
|
||||
| Issue: New Tab Not Opening When Searching in Korean | https://github.com/zen-browser/desktop/issues/5213 | 0:14:43 | 6 days, 13:05:20 |
|
||||
| Right-Click Context Menu: Keyboard Shortcuts Require Enter to Activate | https://github.com/zen-browser/desktop/issues/5212 | None | None |
|
||||
| Support daily.dev extension in zen browser. firefox doesn't. | https://github.com/zen-browser/desktop/issues/5211 | 0:05:56 | 0:05:56 |
|
||||
| Support daily.dev extension in zen browser. Firefox doesn't. | https://github.com/zen-browser/desktop/issues/5211 | 0:05:56 | 0:05:56 |
|
||||
| Error at the bottom right when opening a tab | https://github.com/zen-browser/desktop/issues/5210 | 0:28:59 | 0:28:59 |
|
||||
| Pen Tablet Scrolling Not Working in Sidebar | https://github.com/zen-browser/desktop/issues/5209 | None | None |
|
||||
| Essentials icons are off center | https://github.com/zen-browser/desktop/issues/5207 | 19:44:34 | 22:48:36 |
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
| Some browser dialogs appear off-screen | https://github.com/zen-browser/desktop/issues/7076 | 1 day, 1:32:55 | None |
|
||||
| Mouse over floating sidebar prevents hide | https://github.com/zen-browser/desktop/issues/7075 | None | None |
|
||||
| CRX Installer Not working in Zen Browser. | https://github.com/zen-browser/desktop/issues/7074 | 2 days, 23:32:33 | 3 days, 2:39:52 |
|
||||
| Cannot resize native firefox sidebar when positioned on the right after restarting the browser | https://github.com/zen-browser/desktop/issues/7073 | None | None |
|
||||
| Cannot resize native Firefox sidebar when positioned on the right after restarting the browser | https://github.com/zen-browser/desktop/issues/7073 | None | None |
|
||||
| compact mode color bug | https://github.com/zen-browser/desktop/issues/7068 | 0:19:56 | 2:12:33 |
|
||||
| Unable to assign Cmd+Z for undo | https://github.com/zen-browser/desktop/issues/7067 | None | None |
|
||||
| "change theme colors" cannot be undone and breaks other theming features | https://github.com/zen-browser/desktop/issues/7066 | None | None |
|
||||
@@ -560,7 +560,7 @@
|
||||
| New tab opens black page with only search option | https://github.com/zen-browser/desktop/issues/6418 | 1:30:09 | 1 day, 20:19:37 |
|
||||
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/6416 | 1 day, 0:41:57 | 16 days, 1:56:48 |
|
||||
| Login pop-ups instant crashed. | https://github.com/zen-browser/desktop/issues/6414 | None | 3 days, 11:52:50 |
|
||||
| Only last workspace tabs are synced via firefox account | https://github.com/zen-browser/desktop/issues/6413 | 3:29:46 | 16 days, 2:45:09 |
|
||||
| Only last workspace tabs are synced via Firefox account | https://github.com/zen-browser/desktop/issues/6413 | 3:29:46 | 16 days, 2:45:09 |
|
||||
| Open in split window in split window undefined behaviour | https://github.com/zen-browser/desktop/issues/6412 | 16 days, 2:55:23 | 16 days, 2:55:24 |
|
||||
| Sidebar Stucked | https://github.com/zen-browser/desktop/issues/6411 | 16 days, 3:17:38 | 16 days, 3:17:39 |
|
||||
| Keyboard shortcuts not working with non-English layouts (e.g., Turkish) | https://github.com/zen-browser/desktop/issues/6410 | 16 days, 3:27:56 | 16 days, 3:27:56 |
|
||||
@@ -613,7 +613,7 @@
|
||||
| mica broke again | https://github.com/zen-browser/desktop/issues/6346 | 17 days, 16:46:21 | 17 days, 16:46:21 |
|
||||
| Search engine selector gone | https://github.com/zen-browser/desktop/issues/6345 | 4 days, 20:07:21 | 17 days, 17:17:10 |
|
||||
| PDF files open to a blank page when Zen is closed | https://github.com/zen-browser/desktop/issues/6343 | 12:43:24 | 17 days, 18:13:02 |
|
||||
| Tab peek controls overlap firefox ai chat sidebar | https://github.com/zen-browser/desktop/issues/6342 | 17 days, 18:38:25 | 17 days, 18:38:26 |
|
||||
| Tab peek controls overlap Firefox ai chat sidebar | https://github.com/zen-browser/desktop/issues/6342 | 17 days, 18:38:25 | 17 days, 18:38:26 |
|
||||
| Cant open a link with left click. | https://github.com/zen-browser/desktop/issues/6341 | 17 days, 18:56:56 | 17 days, 18:56:57 |
|
||||
| Distorted UI during first use - fresh install | https://github.com/zen-browser/desktop/issues/6340 | 17 days, 19:04:58 | 17 days, 19:04:59 |
|
||||
| Ctrl+Tab fails to switch tabs when dragging a file | https://github.com/zen-browser/desktop/issues/6339 | 17 days, 20:59:02 | 17 days, 20:59:03 |
|
||||
@@ -758,7 +758,7 @@
|
||||
| Extension icons hang off the side of the sidebar, and extension addition confirmation window hangs off the screen | https://github.com/zen-browser/desktop/issues/6135 | 18 days, 8:19:50 | 22 days, 6:38:20 |
|
||||
| Settings show zen-split-view-modifier which is unclear, I think it should be with spaces? | https://github.com/zen-browser/desktop/issues/6134 | 22 days, 7:27:49 | 22 days, 7:27:50 |
|
||||
| Grayish White Rounded Corners Visible when fullscreen in a video on youtube | https://github.com/zen-browser/desktop/issues/6132 | 8:50:42 | 22 days, 9:35:57 |
|
||||
| Zen Browser local building and running shows firefox only not zen type visual | https://github.com/zen-browser/desktop/issues/6128 | None | 3 days, 10:31:16 |
|
||||
| Zen Browser local building and running shows Firefox only not zen type visual | https://github.com/zen-browser/desktop/issues/6128 | None | 3 days, 10:31:16 |
|
||||
| Cannot download files with the flatpak version of Zen | https://github.com/zen-browser/desktop/issues/6127 | 10:53:18 | 22 days, 18:27:20 |
|
||||
| File Browser doesnt list user home directory files | https://github.com/zen-browser/desktop/issues/6126 | 22 days, 18:35:54 | 22 days, 18:35:55 |
|
||||
| Dragging sidebar moves the window | https://github.com/zen-browser/desktop/issues/6125 | 19:01:23 | 22 days, 19:16:45 |
|
||||
@@ -800,7 +800,7 @@
|
||||
| YouTube not opening in theater mode | https://github.com/zen-browser/desktop/issues/6078 | 24 days, 1:55:03 | 24 days, 1:55:03 |
|
||||
| Cannot Finish Initial Config due to missing Next Button on Color / Accent Chooser | https://github.com/zen-browser/desktop/issues/6076 | 24 days, 2:23:02 | 24 days, 2:23:02 |
|
||||
| Unable to fully integrate GTK and QT themes | https://github.com/zen-browser/desktop/issues/6074 | 1 day, 4:58:09 | 24 days, 4:44:34 |
|
||||
| can not install any firefox themes | https://github.com/zen-browser/desktop/issues/6073 | 18:28:31 | 18:28:31 |
|
||||
| can not install any Firefox themes | https://github.com/zen-browser/desktop/issues/6073 | 18:28:31 | 18:28:31 |
|
||||
| No icon on windows | https://github.com/zen-browser/desktop/issues/6071 | 0:12:31 | 0:23:42 |
|
||||
| Twilight Browser: Unexpected Blur Transparency After Update | https://github.com/zen-browser/desktop/issues/6069 | 7:36:42 | 24 days, 11:03:57 |
|
||||
| New tabs open as essentials; essentials do not retain order | https://github.com/zen-browser/desktop/issues/6068 | None | 1 day, 15:21:33 |
|
||||
|
||||
587
docs/issue-metrics/2025_2025-04-01..2025-04-30.md
Normal file
587
docs/issue-metrics/2025_2025-04-01..2025-04-30.md
Normal file
@@ -0,0 +1,587 @@
|
||||
# Issue Metrics
|
||||
|
||||
| Metric | Average | Median | 90th percentile |
|
||||
| --- | --- | --- | ---: |
|
||||
| Time to first response | 1 day, 10:58:31 | 4:19:41 | 4 days, 7:38:02 |
|
||||
| Time to close | 2 days, 13:49:59 | 11:11:45 | 9 days, 19:10:27 |
|
||||
|
||||
| Metric | Count |
|
||||
| --- | ---: |
|
||||
| Number of items that remain open | 236 |
|
||||
| Number of items closed | 333 |
|
||||
| Total number of items created | 569 |
|
||||
|
||||
| Title | URL | Time to first response | Time to close |
|
||||
| --- | --- | --- | --- |
|
||||
| Cloudflare Turnstile can't be passed on Zen | https://github.com/zen-browser/desktop/issues/7948 | None | None |
|
||||
| [Gecko engine] - Zen doesn't load a site (Doom loading) | https://github.com/zen-browser/desktop/issues/7946 | 0:09:25 | 0:09:25 |
|
||||
| Unable to open URL bar when sidebar is unfocused | https://github.com/zen-browser/desktop/issues/7944 | 1:22:42 | None |
|
||||
| Remove AutoPlay Icon | https://github.com/zen-browser/desktop/issues/7943 | None | None |
|
||||
| "Prevent tab unload" doesn't save it's state on browser restart | https://github.com/zen-browser/desktop/issues/7942 | None | None |
|
||||
| Unable to emoji picker when creating/editing workspace | https://github.com/zen-browser/desktop/issues/7940 | None | None |
|
||||
| Tabs crash when loading any video stream. | https://github.com/zen-browser/desktop/issues/7939 | None | None |
|
||||
| Resizing the window on MacOS triggers websites shortcuts | https://github.com/zen-browser/desktop/issues/7937 | None | None |
|
||||
| MDN Search add-on does not work anymore | https://github.com/zen-browser/desktop/issues/7936 | 6:23:47 | None |
|
||||
| Browser extensions often fail to work, randomly breaking in different workspaces. | https://github.com/zen-browser/desktop/issues/7934 | None | None |
|
||||
| The Settings Page does not resize based on browser view size. | https://github.com/zen-browser/desktop/issues/7933 | None | None |
|
||||
| Often Zen fills ram and makes computer unresponsive | https://github.com/zen-browser/desktop/issues/7931 | None | None |
|
||||
| weird newtab behaviour in certain sites | https://github.com/zen-browser/desktop/issues/7930 | None | None |
|
||||
| YouTube fails to load any content that is not specifically a video stream | https://github.com/zen-browser/desktop/issues/7929 | 11:28:37 | 18:24:51 |
|
||||
| Empty url bar looses focus | https://github.com/zen-browser/desktop/issues/7926 | 0:33:26 | 3:02:07 |
|
||||
| The toolbar is still unable to adapt with the rest of the theme | https://github.com/zen-browser/desktop/issues/7925 | None | None |
|
||||
| Closing the frozen browser, deletes all tabs | https://github.com/zen-browser/desktop/issues/7923 | 0:45:02 | 0:45:02 |
|
||||
| split tab shortcut is already taken by OS shortcut on macOS | https://github.com/zen-browser/desktop/issues/7922 | 15:41:24 | 15:41:24 |
|
||||
| Zen not properly restoring previously opened tabs in the previous session (Only pinned tabs restored; potential container or Sidebery issue?) | https://github.com/zen-browser/desktop/issues/7920 | 3:01:11 | None |
|
||||
| Help entrypoints in Help menu and About Zen go to Firefox docs | https://github.com/zen-browser/desktop/issues/7919 | None | None |
|
||||
| "Split horizontal" shortcut conflicts with macOS default | https://github.com/zen-browser/desktop/issues/7918 | None | None |
|
||||
| Zen not remembering where the tabs opened in the previous sessions. | https://github.com/zen-browser/desktop/issues/7916 | 15:46:31 | None |
|
||||
| Incorrect behavior when pressing ctrl+enter in URL bar after typing a string | https://github.com/zen-browser/desktop/issues/7915 | 14:56:31 | 14:56:31 |
|
||||
| Additional Zen icons added to Dock when links are opened | https://github.com/zen-browser/desktop/issues/7914 | None | None |
|
||||
| New Tab Startup Opening | https://github.com/zen-browser/desktop/issues/7912 | 2:27:10 | 2:27:10 |
|
||||
| Cannot scroll webpages using Wacom Pen tablet | https://github.com/zen-browser/desktop/issues/7911 | None | 1 day, 1:16:05 |
|
||||
| When using Tabs on the Right, the Glance controls are on the wrong side | https://github.com/zen-browser/desktop/issues/7910 | None | None |
|
||||
| Displaying the Wrong Information | https://github.com/zen-browser/desktop/issues/7909 | 19:28:41 | 19:28:41 |
|
||||
| Compact mode doesn't hide sidebar | https://github.com/zen-browser/desktop/issues/7908 | 5:31:34 | None |
|
||||
| Black content on extensions window | https://github.com/zen-browser/desktop/issues/7907 | 0:09:00 | 4:16:12 |
|
||||
| Slash character (/) in URL field opens search bar and making it impossible to write https:// | https://github.com/zen-browser/desktop/issues/7906 | 1 day, 0:32:34 | None |
|
||||
| After I delete everything in the address bar, I lose focus and have to click it again to type. Is there a way to fix this? | https://github.com/zen-browser/desktop/issues/7905 | None | 0:01:26 |
|
||||
| Tabs not restored on startup under specific conditions | https://github.com/zen-browser/desktop/issues/7902 | 6:24:57 | 12:52:38 |
|
||||
| Duplicating a renamed Pinned Tab causes the duplicated tab to be named "New Tab" instead of the website name | https://github.com/zen-browser/desktop/issues/7900 | None | 5:09:46 |
|
||||
| When the theme is set to System theme - Auto and the System theme is Dark, the highlighted search suggestion is the wrong color | https://github.com/zen-browser/desktop/issues/7899 | None | None |
|
||||
| Inconsistent/Incorrect behavior when using ctrl+enter from new tab addressbar | https://github.com/zen-browser/desktop/issues/7898 | 1 day, 16:47:43 | 3 days, 2:50:21 |
|
||||
| [Twilight 1.11.5] Sizing issue with essentials in multi toolbar mode | https://github.com/zen-browser/desktop/issues/7897 | 1:40:18 | 5:03:44 |
|
||||
| AWS Console Session/Credential Error "Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1" | https://github.com/zen-browser/desktop/issues/7896 | None | None |
|
||||
| Dark Mode not persistent | https://github.com/zen-browser/desktop/issues/7894 | None | None |
|
||||
| pinned tabs closed via firefox on android open after restart | https://github.com/zen-browser/desktop/issues/7892 | None | None |
|
||||
| Idle inhibit not released after fullscreen video finishes playing on Wayland | https://github.com/zen-browser/desktop/issues/7891 | None | 0:19:07 |
|
||||
| Not every window in compact mode on startup if multiple window is open. | https://github.com/zen-browser/desktop/issues/7890 | None | 4:40:46 |
|
||||
| ctrl+tab goes through essentials and pinned tabs | https://github.com/zen-browser/desktop/issues/7889 | 11:45:57 | 11:46:05 |
|
||||
| Extensions only show a blank popup in full-screen | https://github.com/zen-browser/desktop/issues/7888 | None | 0:01:28 |
|
||||
| Command+Option+[arrow key] switches tabs on Mac but not on Windows | https://github.com/zen-browser/desktop/issues/7886 | 15:40:50 | 15:40:50 |
|
||||
| Dark mode (despite changing to light) | https://github.com/zen-browser/desktop/issues/7885 | 1 day, 20:57:57 | 1 day, 20:57:57 |
|
||||
| Spotify seems broken on Zen browser | https://github.com/zen-browser/desktop/issues/7878 | 0:10:25 | 0:25:06 |
|
||||
| ALT not being recognize when using the key | https://github.com/zen-browser/desktop/issues/7877 | 4 days, 2:54:12 | None |
|
||||
| Tooltips and popups flickering on Zen / OS X | https://github.com/zen-browser/desktop/issues/7876 | 0:06:03 | 1:33:13 |
|
||||
| Intermittent pink frame in YT videos | https://github.com/zen-browser/desktop/issues/7874 | 0:21:12 | None |
|
||||
| Extensions view is blank when opened in taskbar | https://github.com/zen-browser/desktop/issues/7873 | 0:46:08 | 0:46:08 |
|
||||
| SSL certificate error on trusted custom root CA: SEC_ERROR_UNKNOWN_ISSUER | https://github.com/zen-browser/desktop/issues/7872 | 10:27:53 | 10:27:53 |
|
||||
| [BUG?] High RAM consumption | https://github.com/zen-browser/desktop/issues/7871 | None | 12:00:20 |
|
||||
| Compact sidebar appearch when switching tabs with the shortcuts | https://github.com/zen-browser/desktop/issues/7870 | 3:10:22 | 14:26:17 |
|
||||
| Horizontal Scrollbar Appears in Full-Screen Mode on YouTube | https://github.com/zen-browser/desktop/issues/7867 | 1 day, 1:53:22 | None |
|
||||
| Tabs crashing after click Links in Thunderbird Mail | https://github.com/zen-browser/desktop/issues/7866 | 1 day, 0:14:36 | 2 days, 2:58:17 |
|
||||
| Ctrl+Tab Cycling through tabs crashes if pressed without recent tabs | https://github.com/zen-browser/desktop/issues/7865 | None | 3:20:55 |
|
||||
| Browser freezes when using Glance with webpages open in another workspace | https://github.com/zen-browser/desktop/issues/7864 | 1:54:48 | 3 days, 22:16:17 |
|
||||
| youtube video flickers on nvidia gpu | https://github.com/zen-browser/desktop/issues/7860 | 0:58:00 | 1 day, 3:33:06 |
|
||||
| Feedback on Tab and Sidebar Behavior | https://github.com/zen-browser/desktop/issues/7859 | 0:07:25 | 0:07:25 |
|
||||
| YouTube Music Media Controller Pause Button has no Effect | https://github.com/zen-browser/desktop/issues/7858 | None | 0:04:51 |
|
||||
| Text jitter in popup window on macOS | https://github.com/zen-browser/desktop/issues/7856 | 7:16:06 | None |
|
||||
| Setting theme in Firefox also applies to Zen | https://github.com/zen-browser/desktop/issues/7855 | 7:45:30 | None |
|
||||
| Clearing cookies fails when using the single toolbar layout | https://github.com/zen-browser/desktop/issues/7851 | None | None |
|
||||
| Pinned Tabs: "open in new tab" from glance window places the tab into pinned tabs automatically | https://github.com/zen-browser/desktop/issues/7850 | None | 4:17:16 |
|
||||
| Bug with enlarged extension icon after expanding and minimazing right sidebar. | https://github.com/zen-browser/desktop/issues/7848 | 0:09:31 | 0:13:57 |
|
||||
| Running firefox in incognito mode makes Zen lose saved tabs (Windows) | https://github.com/zen-browser/desktop/issues/7847 | 1:51:53 | None |
|
||||
| Picture-in-picture "Back to tab" button restores pin in the incorrect workspace | https://github.com/zen-browser/desktop/issues/7845 | 6:23:29 | 1 day, 7:14:12 |
|
||||
| weird link opening behavior | https://github.com/zen-browser/desktop/issues/7844 | 6:08:34 | 6:18:12 |
|
||||
| Linux-zen can not access directory page directly | https://github.com/zen-browser/desktop/issues/7841 | 11:54:43 | 11:54:43 |
|
||||
| Moving a split screen tab across workspaces is broken | https://github.com/zen-browser/desktop/issues/7840 | 6:28:28 | 2 days, 10:33:34 |
|
||||
| The web panel is gone? | https://github.com/zen-browser/desktop/issues/7839 | 0:02:32 | 0:02:32 |
|
||||
| Tabs on right has an empty margin | https://github.com/zen-browser/desktop/issues/7838 | 4:55:32 | None |
|
||||
| Twitch.tv - Zen Browser | https://github.com/zen-browser/desktop/issues/7837 | 1:55:02 | 1:55:02 |
|
||||
| Zen Mod "Better Tab indicators v1.0.0" not function | https://github.com/zen-browser/desktop/issues/7833 | 0:41:23 | 0:45:22 |
|
||||
| Pinned tabs remember scrolling position when unloaded and reset | https://github.com/zen-browser/desktop/issues/7830 | 0:30:46 | 6:04:50 |
|
||||
| SponsorBlock Breaks the custom volume slider and theme. | https://github.com/zen-browser/desktop/issues/7829 | 5:24:28 | 5:24:29 |
|
||||
| Problem with video uploads on Xiaohongshu's Creator Platform through Zen | https://github.com/zen-browser/desktop/issues/7828 | 3 days, 1:04:18 | 3 days, 2:55:43 |
|
||||
| Cant click/open essentials | https://github.com/zen-browser/desktop/issues/7826 | 1 day, 15:20:15 | 1 day, 15:20:15 |
|
||||
| [Twilight 1.11.5t] Tabs break and browser flickers after unloading pinned tabs | https://github.com/zen-browser/desktop/issues/7825 | 3 days, 3:19:07 | 3 days, 6:38:13 |
|
||||
| [Twilight 1.11.5t] Close window button doesn't work. | https://github.com/zen-browser/desktop/issues/7824 | 2:28:27 | 1 day, 15:45:18 |
|
||||
| iCloud Passwords broken with latest macOS | https://github.com/zen-browser/desktop/issues/7823 | None | None |
|
||||
| Tab scrollbar dragging is broken again | https://github.com/zen-browser/desktop/issues/7821 | 1 day, 21:12:24 | None |
|
||||
| "Unload tab" doesn't work when tabs are in Split Mode | https://github.com/zen-browser/desktop/issues/7819 | 22:02:39 | 22:02:39 |
|
||||
| Compact mode single toolbar repeatedly goes from hidden to visible while using Raycast focus | https://github.com/zen-browser/desktop/issues/7818 | 0:22:13 | 1:20:26 |
|
||||
| Performance benchmarks link in README.md is broken | https://github.com/zen-browser/desktop/issues/7817 | None | 0:07:57 |
|
||||
| Google Meet Widget's Microphone and Camera Controls Have no Effects | https://github.com/zen-browser/desktop/issues/7815 | None | 0:02:32 |
|
||||
| Every startup does not display the homepage | https://github.com/zen-browser/desktop/issues/7814 | 0:11:47 | 0:11:47 |
|
||||
| Unable to click links from Thunderbird and other apps to jump to zen browser | https://github.com/zen-browser/desktop/issues/7813 | 0:26:55 | 0:27:32 |
|
||||
| Suspicious New Tab in every startup | https://github.com/zen-browser/desktop/issues/7812 | 1:14:48 | 1:14:48 |
|
||||
| Using private window always prompts the user to solve a Google CAPTCHA for "unusual traffic" | https://github.com/zen-browser/desktop/issues/7811 | 4:08:25 | 4:08:25 |
|
||||
| No keyboard shortcut assigned, yet still error 'conflict with another shortcut' | https://github.com/zen-browser/desktop/issues/7810 | 7:33:18 | None |
|
||||
| Show Bookmarks Toolbar shortcut not wroking in Single Toolbar Layout | https://github.com/zen-browser/desktop/issues/7809 | 0:48:50 | 10:04:21 |
|
||||
| Cannot inject scripts into same-origin iframes | https://github.com/zen-browser/desktop/issues/7808 | 10:11:50 | 10:11:50 |
|
||||
| Change Tab(s) to Workspace not working with split tabs | https://github.com/zen-browser/desktop/issues/7806 | 13:20:30 | 4 days, 9:18:08 |
|
||||
| Reset and pin tab button doesn't work for local folder path | https://github.com/zen-browser/desktop/issues/7805 | None | None |
|
||||
| Middle-click to open new tab unintentionally pastes clipboard contents into address bar | https://github.com/zen-browser/desktop/issues/7804 | 8:36:38 | None |
|
||||
| Chinese Language in URL Bar Causes Zen to Soft-Freeze | https://github.com/zen-browser/desktop/issues/7803 | 6 days, 13:54:47 | None |
|
||||
| "New Tab" button at bottom of tab list doesn't do... anything? | https://github.com/zen-browser/desktop/issues/7802 | None | 0:01:24 |
|
||||
| Default Workspace not showing `Essentials` Tabs. | https://github.com/zen-browser/desktop/issues/7800 | 1:30:16 | 13:48:39 |
|
||||
| Muting a tab from the media controller does not change the state of the "Mute Tab" button to "Unmute Tab" | https://github.com/zen-browser/desktop/issues/7798 | None | 3 days, 16:05:34 |
|
||||
| "Expand Sidebar" button shifts slightly and when sidebar is toggled | https://github.com/zen-browser/desktop/issues/7797 | 10:56:40 | None |
|
||||
| Zen doesn't remember selected tab between sessions | https://github.com/zen-browser/desktop/issues/7795 | 3:15:56 | 3 days, 3:12:31 |
|
||||
| The app name in GNOME notifications is "Mozilla zen" | https://github.com/zen-browser/desktop/issues/7794 | 1:09:59 | 1:35:44 |
|
||||
| ctrl+space shortcut white space | https://github.com/zen-browser/desktop/issues/7793 | None | None |
|
||||
| Compact Mode Expand-on-Hover Single Toolbar Does Not Have Same Padding as Browser Viewport | https://github.com/zen-browser/desktop/issues/7792 | None | 0:00:18 |
|
||||
| Zen Bar closing when changing language | https://github.com/zen-browser/desktop/issues/7791 | 2 days, 9:32:56 | None |
|
||||
| Compact mode open/close animation bugged | https://github.com/zen-browser/desktop/issues/7789 | 0:07:52 | 3:17:28 |
|
||||
| Bookmarks unaccessible when no tabs are open in compact mode | https://github.com/zen-browser/desktop/issues/7788 | None | 0:13:38 |
|
||||
| Zen forgets named Tabs after reopening | https://github.com/zen-browser/desktop/issues/7787 | 1:26:39 | None |
|
||||
| After adding the Bing search engine, searching in the address bar, the search prompt cannot be displayed | https://github.com/zen-browser/desktop/issues/7786 | 1:28:38 | 1 day, 1:15:18 |
|
||||
| Watt Toolkit's Network routing service fails to accelerate zen browser access to github | https://github.com/zen-browser/desktop/issues/7785 | 4:45:53 | 4:45:53 |
|
||||
| Terrible performance on Power Saving mode | https://github.com/zen-browser/desktop/issues/7784 | 1:03:17 | None |
|
||||
| duplicate of 504 | https://github.com/zen-browser/desktop/issues/7781 | None | 2:30:56 |
|
||||
| hitting `Ctrl+T` in Fullscreen mode opens new tab menu only when fullscreen mode is exited | https://github.com/zen-browser/desktop/issues/7779 | None | 9:22:25 |
|
||||
| Button that works on Firefox does not work on Zen | https://github.com/zen-browser/desktop/issues/7778 | 0:45:05 | None |
|
||||
| No homepage or totally blank homepage problem! | https://github.com/zen-browser/desktop/issues/7773 | 7:35:50 | 7:35:50 |
|
||||
| Firefox multi-account container and browsing history | https://github.com/zen-browser/desktop/issues/7768 | 20:19:15 | None |
|
||||
| The Extensions Not Work | https://github.com/zen-browser/desktop/issues/7766 | None | 0:26:32 |
|
||||
| Bitwarden blank window after sign-in | https://github.com/zen-browser/desktop/issues/7763 | 10:45:22 | 7 days, 5:07:50 |
|
||||
| The Facebook page turns pale white after open link. | https://github.com/zen-browser/desktop/issues/7760 | 7:32:21 | 6 days, 9:26:33 |
|
||||
| Linux arm64 builds does neither have drm enable option nor detect widevine CDM in plugins | https://github.com/zen-browser/desktop/issues/7759 | 20:47:30 | 2 days, 13:42:10 |
|
||||
| Spliting Essentials or Pinned Tabs is off | https://github.com/zen-browser/desktop/issues/7758 | 7:05:27 | 7:05:27 |
|
||||
| Zen browser does not support higher refresh rates on macOS | https://github.com/zen-browser/desktop/issues/7757 | 16:41:57 | 2 days, 10:42:28 |
|
||||
| Address bar loses focus when changing language in GNOME | https://github.com/zen-browser/desktop/issues/7756 | None | 1:48:13 |
|
||||
| Customize Toolbar tab becomes transparent | https://github.com/zen-browser/desktop/issues/7755 | None | None |
|
||||
| Auto-PIP was enabled by default and cant find how to turn it off | https://github.com/zen-browser/desktop/issues/7754 | 0:19:14 | 0:19:14 |
|
||||
| Higher CPU Usage and Choppy Video Playback in Glance | https://github.com/zen-browser/desktop/issues/7753 | None | 0:04:19 |
|
||||
| Auto-PIP does not work if the PIP button is disabled | https://github.com/zen-browser/desktop/issues/7752 | None | 0:11:15 |
|
||||
| F1 TV bug | https://github.com/zen-browser/desktop/issues/7751 | 0:26:19 | 0:26:19 |
|
||||
| Zen crashes after sometime while screensharing on discord web | https://github.com/zen-browser/desktop/issues/7750 | 17:39:57 | None |
|
||||
| Picture-in-Picture auto-starts when changing tabs or workspaces | https://github.com/zen-browser/desktop/issues/7749 | 0:13:43 | 0:26:03 |
|
||||
| Toolbar disappears | https://github.com/zen-browser/desktop/issues/7746 | 0:51:00 | None |
|
||||
| [GNOME] changing keyboard layout while on the search bar makes the search bar disappear | https://github.com/zen-browser/desktop/issues/7744 | None | 0:12:23 |
|
||||
| AI Chatbot selecting text shortcut open AI website in new tab instead of sidebar. | https://github.com/zen-browser/desktop/issues/7742 | 0:39:10 | None |
|
||||
| switching workspaces focuses on the URL bar | https://github.com/zen-browser/desktop/issues/7741 | 0:49:53 | 1:10:53 |
|
||||
| split tabs issue | https://github.com/zen-browser/desktop/issues/7736 | 1:40:14 | None |
|
||||
| PIP video covers new tab | https://github.com/zen-browser/desktop/issues/7735 | 0:03:58 | 1:36:34 |
|
||||
| After an update, Zen is installed twice. As visible in "Installed Apps" in Windows. | https://github.com/zen-browser/desktop/issues/7734 | None | None |
|
||||
| CMD+T | floating URL bar does not show | https://github.com/zen-browser/desktop/issues/7733 | 1:14:20 | 0:59:06 |
|
||||
| The rounded corner theme affects the mouse's access to the scroll bar | https://github.com/zen-browser/desktop/issues/7732 | 3 days, 9:30:14 | 3 days, 10:14:34 |
|
||||
| Menubar Text Turns Black in Dark Mode When Switching Apps via Stage Manager | https://github.com/zen-browser/desktop/issues/7731 | None | None |
|
||||
| Epic Games Store - no audio in videos | https://github.com/zen-browser/desktop/issues/7730 | 2:21:02 | 4:06:29 |
|
||||
| Wrong aspect ratio when opening on sway wm | https://github.com/zen-browser/desktop/issues/7729 | 12:23:25 | None |
|
||||
| Moving cursor from addon popup to website keeps tab sidebar showing in compact mode | https://github.com/zen-browser/desktop/issues/7728 | None | None |
|
||||
| URL bar not focused upon opening zen (with replace-newtab: false) | https://github.com/zen-browser/desktop/issues/7727 | None | 0:22:28 |
|
||||
| Pop up video(PIP) window that won't go away (Facebook) | https://github.com/zen-browser/desktop/issues/7726 | 11:06:08 | 1 day, 12:17:11 |
|
||||
| Zen does not use system theme setting | https://github.com/zen-browser/desktop/issues/7725 | 1:16:41 | 1:30:14 |
|
||||
| Zen doesnt Display Proxmox WebUi correctly.... | https://github.com/zen-browser/desktop/issues/7724 | 12:19:36 | None |
|
||||
| css attribute "breakout="true"" not persistant | https://github.com/zen-browser/desktop/issues/7722 | 0:08:57 | 0:08:57 |
|
||||
| Media control incorrectly shows a duration for onging live stream on youtube | https://github.com/zen-browser/desktop/issues/7721 | None | None |
|
||||
| Cannot copy selected text when right-clicking on the address bar in Linux Mint | https://github.com/zen-browser/desktop/issues/7719 | None | 0:58:16 |
|
||||
| Zen freezes - nothing responds | https://github.com/zen-browser/desktop/issues/7718 | 2:01:46 | 2:41:50 |
|
||||
| sidebar not hiding on blankpage | https://github.com/zen-browser/desktop/issues/7717 | 2:53:33 | 2:53:33 |
|
||||
| Zen seems to crash randomly when switching tabs | https://github.com/zen-browser/desktop/issues/7716 | 1 day, 14:07:42 | 10 days, 18:03:06 |
|
||||
| Invalid page background in dark themes | https://github.com/zen-browser/desktop/issues/7715 | 5:05:23 | 5:05:23 |
|
||||
| Hardware Acceleration - Browser almost unusable without it | https://github.com/zen-browser/desktop/issues/7714 | 5:32:14 | 5:48:30 |
|
||||
| Magic Mouse swipe does not change workspaces on macOS | https://github.com/zen-browser/desktop/issues/7713 | 5 days, 3:11:30 | None |
|
||||
| Where is zen sidebar | https://github.com/zen-browser/desktop/issues/7712 | 1:06:23 | 5:59:31 |
|
||||
| URL bar flashes when exiting fullscreen mode | https://github.com/zen-browser/desktop/issues/7711 | 1:31:07 | None |
|
||||
| Inconsistent behaviour of reset button when tab is loading | https://github.com/zen-browser/desktop/issues/7710 | None | None |
|
||||
| user.js | https://github.com/zen-browser/desktop/issues/7709 | 0:08:13 | 0:08:13 |
|
||||
| Changing Zoom keybindings is not taking effect on windows | https://github.com/zen-browser/desktop/issues/7708 | None | None |
|
||||
| Google Maps not showing route (the blue line) | https://github.com/zen-browser/desktop/issues/7707 | 3:34:36 | 2 days, 5:27:24 |
|
||||
| Basic Authorization doesn't works on some websites | https://github.com/zen-browser/desktop/issues/7706 | 1:59:13 | 1:59:13 |
|
||||
| Sometimes there are vertical black bars on the left/right size of picture in picture mini player | https://github.com/zen-browser/desktop/issues/7705 | None | None |
|
||||
| Blank Extension Popup when activated using the keyboard shortcut | https://github.com/zen-browser/desktop/issues/7703 | None | 10:14:29 |
|
||||
| Can no longer cycle through tabs in Macos using cmd+opt+right for seemingly no reason | https://github.com/zen-browser/desktop/issues/7702 | 1 day, 8:49:40 | 1 day, 8:49:40 |
|
||||
| about:protections advertises "Zen for Android and iOS," links to Firefox | https://github.com/zen-browser/desktop/issues/7701 | None | None |
|
||||
| In the new window, voice input is not working. This prevents me from writing in the browsers. | https://github.com/zen-browser/desktop/issues/7698 | None | None |
|
||||
| picture in picture disappears | https://github.com/zen-browser/desktop/issues/7697 | 1 day, 13:00:12 | None |
|
||||
| Tab Switching Unresponsive in Split View Mode | https://github.com/zen-browser/desktop/issues/7696 | 2:24:28 | None |
|
||||
| content-element-separation=0 doesn't show browser windows controls | https://github.com/zen-browser/desktop/issues/7694 | None | 0:03:33 |
|
||||
| last used tabs not in focus in startup | https://github.com/zen-browser/desktop/issues/7693 | 0:58:59 | 1:06:21 |
|
||||
| Unexpected Behavior When Opening New Tab (CTRL + T) During YouTube Fullscreen Video | https://github.com/zen-browser/desktop/issues/7692 | 2:48:18 | 23:21:28 |
|
||||
| Zen does not appear in Start Menu | https://github.com/zen-browser/desktop/issues/7691 | 0:17:52 | 1:41:13 |
|
||||
| Unable to perform new update | https://github.com/zen-browser/desktop/issues/7689 | None | 1:46:21 |
|
||||
| Bitwarden does not ask to save new passwords | https://github.com/zen-browser/desktop/issues/7687 | None | None |
|
||||
| YouTube eventually gets very slow and sluggish to use | https://github.com/zen-browser/desktop/issues/7685 | 10 days, 7:27:25 | None |
|
||||
| Small inconsistencies with zen.urlbar.replace-newtab disabled | https://github.com/zen-browser/desktop/issues/7684 | 0:39:19 | 1 day, 6:02:08 |
|
||||
| Clicking New Tab multiple times briefly flickers the browser back to the previous tab. | https://github.com/zen-browser/desktop/issues/7683 | None | None |
|
||||
| Compact mode not active for 2/3 windows on startup, switching to single toolbar and back again breaks layout | https://github.com/zen-browser/desktop/issues/7682 | 1 day, 2:24:51 | None |
|
||||
| Zen did not auto update to 1.11.3b when I thought it did | https://github.com/zen-browser/desktop/issues/7681 | 1:36:45 | 1:36:45 |
|
||||
| Text colors arent correctly visible while `zen.theme.gradient.show-custom-colors` is enabled | https://github.com/zen-browser/desktop/issues/7680 | 6:46:05 | 6:46:05 |
|
||||
| Zen shows warning icon next to "This is a secure Zen page" | https://github.com/zen-browser/desktop/issues/7679 | 2:12:33 | None |
|
||||
| Tabs alignment is off when the tab-bar is collapsed and there are enough tabs that they can be scrolled | https://github.com/zen-browser/desktop/issues/7678 | None | None |
|
||||
| Zen using a lot of memory | https://github.com/zen-browser/desktop/issues/7673 | 0:08:16 | 9:36:13 |
|
||||
| Cannot play DRM content (Specifcally crunchyroll.com) on Linux since 1.11.3b | https://github.com/zen-browser/desktop/issues/7671 | 1:10:45 | 10 days, 6:30:28 |
|
||||
| zen seemingly tiling into 4 windows on hyprland | https://github.com/zen-browser/desktop/issues/7670 | None | None |
|
||||
| Tabs are not opening on startup when closing using X button | https://github.com/zen-browser/desktop/issues/7669 | 2:08:51 | 1 day, 10:29:12 |
|
||||
| When I hit ctrl+t for new tab, start writing url, change my mind and cancel it, then invoke it again, the typed text is still there | https://github.com/zen-browser/desktop/issues/7667 | 0:53:10 | 7:59:08 |
|
||||
| URL Bar not showing on fullscreen mode and glitchin when exiting it | https://github.com/zen-browser/desktop/issues/7665 | 0:21:09 | None |
|
||||
| Flatpak reverted to an older version today. | https://github.com/zen-browser/desktop/issues/7664 | 8:07:44 | 17:35:17 |
|
||||
| Hyprland blur not working at the start | https://github.com/zen-browser/desktop/issues/7663 | 9:54:03 | None |
|
||||
| Switch Profile Button Gone | https://github.com/zen-browser/desktop/issues/7662 | 10:56:49 | 1 day, 1:39:17 |
|
||||
| Issue with Zen browser after unexpected PC crash. | https://github.com/zen-browser/desktop/issues/7661 | 7:06:45 | None |
|
||||
| Zen tries to automatically download a PDF on sites that use iframe elements to embed a PDF | https://github.com/zen-browser/desktop/issues/7660 | 0:23:40 | 1:47:54 |
|
||||
| [Twilight 1.11.3t] Essential/Pinned tabs reload when already loading. | https://github.com/zen-browser/desktop/issues/7659 | 15:23:47 | 1 day, 4:59:18 |
|
||||
| Nvidia RTX video super resolution doesn't work in Zen | https://github.com/zen-browser/desktop/issues/7658 | 12:30:11 | 21:59:00 |
|
||||
| "zen.view.grey-out-inactive-windows" is bugged on Windows | https://github.com/zen-browser/desktop/issues/7657 | 22:45:09 | None |
|
||||
| Twitch not supported | https://github.com/zen-browser/desktop/issues/7656 | 1:28:28 | None |
|
||||
| Tab unloading fails on tabs using the Glance view | https://github.com/zen-browser/desktop/issues/7655 | 0:57:35 | None |
|
||||
| Renamed Tabs do not show up in URL Bar | https://github.com/zen-browser/desktop/issues/7654 | 0:17:42 | None |
|
||||
| When a tab is not loaded, searching it via % clones it instead of switching to it | https://github.com/zen-browser/desktop/issues/7653 | 0:37:13 | None |
|
||||
| If you clear the contents of the address bar, the focus of the address bar will be released. | https://github.com/zen-browser/desktop/issues/7651 | 1:48:28 | 11 days, 5:19:00 |
|
||||
| New tab search, stay on right click. | https://github.com/zen-browser/desktop/issues/7650 | None | 0:22:00 |
|
||||
| Context Menu Colors Incorrectly Follow Application Theme | https://github.com/zen-browser/desktop/issues/7649 | 11 days, 5:49:13 | 12 days, 1:15:41 |
|
||||
| Screen Sharing Bug on Mac | https://github.com/zen-browser/desktop/issues/7648 | None | 0:01:19 |
|
||||
| Scrolling on the tabs on a touch screen does nothing | https://github.com/zen-browser/desktop/issues/7647 | None | 0:00:58 |
|
||||
| Scrollbar in tabs doesn't appear in collapsed toolbar layout | https://github.com/zen-browser/desktop/issues/7646 | 0:13:13 | 0:19:22 |
|
||||
| Overflow menu icon missing in single sidebar view mode | https://github.com/zen-browser/desktop/issues/7644 | 0:01:07 | 0:01:07 |
|
||||
| Zen browser doesnt show minimize button on linux | https://github.com/zen-browser/desktop/issues/7643 | 2:28:48 | 2:28:48 |
|
||||
| Claude “App Integration” panel disappears instantly after click | https://github.com/zen-browser/desktop/issues/7642 | 1:32:22 | 1:32:22 |
|
||||
| Unable to revert "On macos, you can now cycle through tabs with cmd+opt+UP or cmd+opt+DOWN" | https://github.com/zen-browser/desktop/issues/7640 | 3:46:56 | 3:46:55 |
|
||||
| Missing .dll files after installation | https://github.com/zen-browser/desktop/issues/7638 | None | 0:14:40 |
|
||||
| Webpage content overflow window region after initing Zen | https://github.com/zen-browser/desktop/issues/7637 | None | 0:04:41 |
|
||||
| Mouse history back and history forward buttons change workspaces when not inside tab container | https://github.com/zen-browser/desktop/issues/7636 | 6 days, 12:45:14 | None |
|
||||
| Spotify Skips and Only Plays 10 seconds of audio | https://github.com/zen-browser/desktop/issues/7635 | 2:06:02 | 2:06:02 |
|
||||
| Add-ons GUIs are not loaded correctly | https://github.com/zen-browser/desktop/issues/7633 | 13:04:07 | None |
|
||||
| Zen window gaining focus makes the hidden sidebar glitch | https://github.com/zen-browser/desktop/issues/7632 | 6:31:37 | 21:43:01 |
|
||||
| Dragging a tab to essentials makes it disappear | https://github.com/zen-browser/desktop/issues/7631 | 0:15:33 | 23:19:25 |
|
||||
| VC Runtime Errors in Installer | https://github.com/zen-browser/desktop/issues/7630 | 3:31:22 | 8:34:38 |
|
||||
| Perform a component refactoring | https://github.com/zen-browser/desktop/issues/7628 | None | 0:23:06 |
|
||||
| zen mods and Tag records | https://github.com/zen-browser/desktop/issues/7623 | None | None |
|
||||
| Losing all tabs when closing the main window with the private one open | https://github.com/zen-browser/desktop/issues/7622 | 2:04:11 | 2:04:11 |
|
||||
| Can't re-arrange essential Icons | https://github.com/zen-browser/desktop/issues/7617 | 0:09:59 | 5:01:31 |
|
||||
| Sidebar breifly appears when exiting fullscreen video | https://github.com/zen-browser/desktop/issues/7615 | 0:57:48 | 2 days, 11:44:49 |
|
||||
| Resetting the fixed tab is invalid, it is not possible to click the tab icon to reset the tab | https://github.com/zen-browser/desktop/issues/7614 | 7:47:12 | 21:41:31 |
|
||||
| Ctrl+Tab Cycling preview is at desktop size instead of window size | https://github.com/zen-browser/desktop/issues/7612 | None | None |
|
||||
| Synced containers disrupted in synced workspaces | https://github.com/zen-browser/desktop/issues/7611 | 3 days, 8:25:51 | None |
|
||||
| [a11y] Yellow-on-white warning when rebinding keys | https://github.com/zen-browser/desktop/issues/7609 | 1:38:15 | None |
|
||||
| missing workspace emojis | https://github.com/zen-browser/desktop/issues/7608 | None | None |
|
||||
| Two workspace managers , I can't delete the lowest workspace manager, it takes up half the browser screen ,no option to change wokspace manager to "menu" type in settings anymore. | https://github.com/zen-browser/desktop/issues/7607 | 3:17:15 | None |
|
||||
| Issues with Detaching Tabs from Parent Window | https://github.com/zen-browser/desktop/issues/7606 | 0:04:52 | None |
|
||||
| New Window doesn't focus URL bar on compact mode | https://github.com/zen-browser/desktop/issues/7605 | 0:05:43 | 1 day, 18:08:01 |
|
||||
| Unable to copy clean link | https://github.com/zen-browser/desktop/issues/7604 | 0:26:36 | 5:16:04 |
|
||||
| Closing the last tab doesn't close the window | https://github.com/zen-browser/desktop/issues/7603 | None | 0:21:59 |
|
||||
| split screen not working on draging the tabs | https://github.com/zen-browser/desktop/issues/7601 | 0:46:35 | None |
|
||||
| Closing a pinned tab won't open it to the reset URL when opening it again | https://github.com/zen-browser/desktop/issues/7600 | 9:10:40 | 19:51:32 |
|
||||
| Cannot Screenshare with Zen (Teams, Meet, Jitsi, and alike) | https://github.com/zen-browser/desktop/issues/7597 | 0:35:35 | None |
|
||||
| Microsoft teams fails to initialize | https://github.com/zen-browser/desktop/issues/7596 | 3:00:35 | 2 days, 6:17:50 |
|
||||
| Microsoft Word Online prevents Zen from opening split view | https://github.com/zen-browser/desktop/issues/7595 | 12 days, 5:47:57 | None |
|
||||
| splitView.change-on-hover not working | https://github.com/zen-browser/desktop/issues/7594 | 7:21:42 | 7:21:42 |
|
||||
| Transparent background on toolbar customization page on Linux (Fedora 42, GNOME 48) | https://github.com/zen-browser/desktop/issues/7593 | None | None |
|
||||
| Compact mode state not being consistant to all workspaces | https://github.com/zen-browser/desktop/issues/7591 | 11:38:56 | None |
|
||||
| Zen window gaining focus makes the hidden sidebar glitch | https://github.com/zen-browser/desktop/issues/7590 | 3:49:52 | None |
|
||||
| youtube theater option not available | https://github.com/zen-browser/desktop/issues/7589 | None | 0:03:22 |
|
||||
| Address Bar shifts slightly when selecting part of the URL, changing the selection | https://github.com/zen-browser/desktop/issues/7586 | 10:21:52 | None |
|
||||
| "Profiles" Persists in Menu After Disabling `browser.profiles.enabled` | https://github.com/zen-browser/desktop/issues/7584 | 0:33:05 | 2:55:19 |
|
||||
| Window Tab Managment breaks when using "Switch to Tab" with multiple windows | https://github.com/zen-browser/desktop/issues/7583 | 1 day, 19:13:20 | None |
|
||||
| If You Open a Second Zen Browser Instance You Lose Your Split Tabs If You Close The Main Window First | https://github.com/zen-browser/desktop/issues/7582 | 10:22:23 | None |
|
||||
| Dragging Tabs Quickly Causes Split Position to Lock Left Even When Hovering Right | https://github.com/zen-browser/desktop/issues/7581 | None | None |
|
||||
| URL box in bookmark editing window is small | https://github.com/zen-browser/desktop/issues/7580 | 21:15:14 | None |
|
||||
| Tabs crashed | https://github.com/zen-browser/desktop/issues/7577 | None | None |
|
||||
| bug: modifying app-id with `--name` doesn't work anymore | https://github.com/zen-browser/desktop/issues/7576 | 9:00:29 | None |
|
||||
| iCloud Password Firefox extension is not working! | https://github.com/zen-browser/desktop/issues/7575 | 0:34:42 | 0:34:42 |
|
||||
| With firefox sidebar opened on left, glance view control botton floats over the sidebar | https://github.com/zen-browser/desktop/issues/7574 | 1 day, 2:06:38 | None |
|
||||
| Flatpak version of Zen browser tries to upgrade to v1.7b instead of v1.11.2b | https://github.com/zen-browser/desktop/issues/7571 | 0:23:15 | 1:50:02 |
|
||||
| no firefox labs button & feature highlight , Ai chatbot & picture in Picture on tab switch etc. | https://github.com/zen-browser/desktop/issues/7568 | None | 3:17:25 |
|
||||
| 1.11.2b : no firefox labs button & feature highlight , Ai chatbot & picture in Picture on tab switch etc. | https://github.com/zen-browser/desktop/issues/7567 | None | 0:02:13 |
|
||||
| Vieus IDP.HEUR.28 detected by Norton when trying to install Zen browser | https://github.com/zen-browser/desktop/issues/7565 | None | 0:55:15 |
|
||||
| Alert box cutoff half way | https://github.com/zen-browser/desktop/issues/7564 | 5:12:02 | 13 days, 8:10:41 |
|
||||
| Retaining pinned split essential tabs and changing layout for split essential tabs | https://github.com/zen-browser/desktop/issues/7563 | None | None |
|
||||
| Horizontal splitting vertical split and closing split leaves page buggy | https://github.com/zen-browser/desktop/issues/7562 | None | None |
|
||||
| Closing the tab shortcut doesn't close the window. | https://github.com/zen-browser/desktop/issues/7561 | 9:21:08 | 9:21:08 |
|
||||
| Zen minimizes after closing download options | https://github.com/zen-browser/desktop/issues/7559 | 8:22:23 | 17:23:11 |
|
||||
| URL Bar disappearing when no text is there even when behaviour is always floating. | https://github.com/zen-browser/desktop/issues/7558 | 8:30:20 | 11:46:40 |
|
||||
| Updating Zen hides all my tabs in the tab list | https://github.com/zen-browser/desktop/issues/7557 | 0:12:37 | 0:15:56 |
|
||||
| Zen is being updated by another instance | https://github.com/zen-browser/desktop/issues/7556 | 1:06:46 | None |
|
||||
| URL bar in sidebar transitions faster than the sidebar itself when enabling compact mode without floating mode | https://github.com/zen-browser/desktop/issues/7554 | 2:25:13 | None |
|
||||
| Can't display local files properly | https://github.com/zen-browser/desktop/issues/7553 | 2:48:35 | 2:48:35 |
|
||||
| Drag & Drop Essentials To Split Incompatible With Mod "Bottom Essentials" | https://github.com/zen-browser/desktop/issues/7552 | None | 0:04:48 |
|
||||
| Zen browser does not save a web page | https://github.com/zen-browser/desktop/issues/7551 | 2:45:42 | 5:12:17 |
|
||||
| Workspace Bug | https://github.com/zen-browser/desktop/issues/7549 | 0:31:53 | 1 day, 5:23:29 |
|
||||
| no sidebar in compact mode | https://github.com/zen-browser/desktop/issues/7548 | 6:22:41 | 17:25:22 |
|
||||
| Deleted workspaces remain accessible and breaks the browser | https://github.com/zen-browser/desktop/issues/7547 | 2 days, 0:29:41 | None |
|
||||
| Ukrainian language not available in "Translate Selection" menu despite being downloaded | https://github.com/zen-browser/desktop/issues/7546 | None | None |
|
||||
| about:editprofile does not work | https://github.com/zen-browser/desktop/issues/7545 | 1:10:38 | 8:57:39 |
|
||||
| Sidebar overflow on restart | https://github.com/zen-browser/desktop/issues/7544 | None | 2 days, 13:49:54 |
|
||||
| Unable to resize the pane if it's on the right side | https://github.com/zen-browser/desktop/issues/7543 | 0:20:18 | 2 days, 8:54:19 |
|
||||
| changing Workspace position doesn't work | https://github.com/zen-browser/desktop/issues/7542 | 1:54:30 | 4 days, 23:51:53 |
|
||||
| Web Developer Toolbar in the Network tab does not show the response of streamed XHR calls | https://github.com/zen-browser/desktop/issues/7541 | 0:34:03 | 1:46:10 |
|
||||
| Inconsistent Tab Unload When Disabled (Context Menu Item Missing) | https://github.com/zen-browser/desktop/issues/7539 | 0:31:50 | None |
|
||||
| Button to switch between profiles has disappeared from the toolbar since 1.8.1b | https://github.com/zen-browser/desktop/issues/7538 | 1:38:27 | 5:12:38 |
|
||||
| Icon on macOS: slightly alter the black background | https://github.com/zen-browser/desktop/issues/7537 | None | None |
|
||||
| Delayed loading of secondary components on YouTube pages while main video loads immediately | https://github.com/zen-browser/desktop/issues/7536 | 2:21:49 | 5:27:13 |
|
||||
| Closing an essential tab removes it from essentials | https://github.com/zen-browser/desktop/issues/7534 | 1:29:28 | 3:16:13 |
|
||||
| What is "menu bar" | https://github.com/zen-browser/desktop/issues/7531 | 21:31:23 | 21:31:28 |
|
||||
| unwanted corners rendering during fullscreen videos | https://github.com/zen-browser/desktop/issues/7530 | None | 0:21:41 |
|
||||
| splitting tab with pip freezes browser | https://github.com/zen-browser/desktop/issues/7529 | None | 3 days, 2:31:32 |
|
||||
| Toggle Floating Sidebar keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/7528 | 22:40:20 | None |
|
||||
| Windows 11 taskbar previewing all tabs instead of window instance and preview icon not shown | https://github.com/zen-browser/desktop/issues/7527 | 1:23:13 | 1:23:13 |
|
||||
| Cant CTRL+T to open a new tab, while in fullscreen (e.g. YouTube Fullscreen) | https://github.com/zen-browser/desktop/issues/7526 | 2:21:27 | 13:13:36 |
|
||||
| Cant scroll tab list on touch screen. | https://github.com/zen-browser/desktop/issues/7524 | None | None |
|
||||
| Glance gets stuck in half-open state | https://github.com/zen-browser/desktop/issues/7522 | 14 days, 18:10:24 | 14 days, 18:10:24 |
|
||||
| Restarting zen causes sidebar to not appear when hovered (compact mode, hide both) | https://github.com/zen-browser/desktop/issues/7521 | 6:01:35 | 9:15:43 |
|
||||
| Facebook page goes all blue if I open one ot its links in Glance | https://github.com/zen-browser/desktop/issues/7520 | None | None |
|
||||
| Sidebar action previews are glitchy when you hover (Extensions, Back button, Forward button, Tabs and etc) | https://github.com/zen-browser/desktop/issues/7518 | 0:49:25 | 10:15:00 |
|
||||
| Youtube videos not loading if i update zen-browser: (1.10.3b-1 => 1.11.1b-1) | https://github.com/zen-browser/desktop/issues/7517 | None | 10:37:45 |
|
||||
| If the download file is in Chinese, the file name encoding is incorrect | https://github.com/zen-browser/desktop/issues/7515 | 1:06:02 | None |
|
||||
| Extensions are not getting pinned. | https://github.com/zen-browser/desktop/issues/7514 | 1 day, 14:33:37 | 16 days, 5:13:01 |
|
||||
| The tab on the right displays an exception | https://github.com/zen-browser/desktop/issues/7513 | None | None |
|
||||
| Sidebar tab UI breaks when dragging tab to pinned area during Glance preview | https://github.com/zen-browser/desktop/issues/7511 | 1:30:49 | None |
|
||||
| The sidetab is bugged | https://github.com/zen-browser/desktop/issues/7510 | 7:06:42 | None |
|
||||
| The pop-up window has two lines | https://github.com/zen-browser/desktop/issues/7509 | 1 day, 10:21:56 | 1 day, 10:21:56 |
|
||||
| Delay in updating changes during web development on Windows 11 | https://github.com/zen-browser/desktop/issues/7508 | 11 days, 1:09:00 | None |
|
||||
| Closing tabs is too slow when many tabs are open | https://github.com/zen-browser/desktop/issues/7507 | None | 6 days, 10:18:17 |
|
||||
| Zen browser does not have rounded corners on the bottom | https://github.com/zen-browser/desktop/issues/7506 | 1 day, 11:22:11 | 1 day, 11:22:11 |
|
||||
| Many keyboard shortctut stopped working | https://github.com/zen-browser/desktop/issues/7504 | None | 1 day, 13:16:17 |
|
||||
| Keyboard Shortcuts Conflict with Polish Programmer Layout on Windows | https://github.com/zen-browser/desktop/issues/7502 | None | 1 day, 16:06:30 |
|
||||
| "wheel" event does not fire for horizontal scrolling on web pages | https://github.com/zen-browser/desktop/issues/7499 | 0:23:12 | 1 day, 6:35:06 |
|
||||
| handoffToAwesomebar set to false no longer works. | https://github.com/zen-browser/desktop/issues/7494 | 7:04:46 | 7:04:46 |
|
||||
| Zen Sidebar got really big and I cannot use the browser | https://github.com/zen-browser/desktop/issues/7493 | 0:50:22 | 8:53:04 |
|
||||
| Closing Glance from Essentials or Pinned tabs exits tab to blank screen | https://github.com/zen-browser/desktop/issues/7492 | 1 day, 13:50:43 | 1 day, 13:50:43 |
|
||||
| logs off from every account on restart on MAC x64 | https://github.com/zen-browser/desktop/issues/7491 | 12 days, 4:18:12 | 12 days, 13:46:23 |
|
||||
| Tab Preview not working | https://github.com/zen-browser/desktop/issues/7490 | 3:07:01 | 7:09:23 |
|
||||
| [Twilight 1.11.2] Sidebar wont open in compact mode upon startup | https://github.com/zen-browser/desktop/issues/7489 | 12:38:26 | 21:42:47 |
|
||||
| Zen specific Shortcut Keys not working | https://github.com/zen-browser/desktop/issues/7488 | 3 days, 1:42:36 | 6 days, 12:29:56 |
|
||||
| Tabs not opening in startup | https://github.com/zen-browser/desktop/issues/7485 | 3:07:38 | 7 days, 2:44:07 |
|
||||
| Incognito mode doent work | https://github.com/zen-browser/desktop/issues/7483 | None | 1 day, 23:03:21 |
|
||||
| reddit comments can't be seen | https://github.com/zen-browser/desktop/issues/7482 | 3:00:09 | None |
|
||||
| Multi-Containers add-on fails display setting sub-pages | https://github.com/zen-browser/desktop/issues/7481 | None | None |
|
||||
| Essentials MAJOR layout shift when entering or exiting Compact Mode | https://github.com/zen-browser/desktop/issues/7480 | 8:02:54 | 2 days, 9:04:45 |
|
||||
| Gnome Extensions addon not working | https://github.com/zen-browser/desktop/issues/7479 | 1 day, 0:41:57 | None |
|
||||
| The Web Panel is missing (alt+p) | https://github.com/zen-browser/desktop/issues/7478 | 0:04:11 | 1:02:59 |
|
||||
| Workspace icon not visible, unable to create new workspaces | https://github.com/zen-browser/desktop/issues/7476 | 9:46:52 | 9:46:53 |
|
||||
| Sidebar option "Move sidebar to the right"/"Move sidebar to the left" stopped working. | https://github.com/zen-browser/desktop/issues/7474 | 0:39:39 | 0:39:39 |
|
||||
| Unable to reorder essentials - dragging puts them at the end | https://github.com/zen-browser/desktop/issues/7473 | 5 days, 19:40:17 | None |
|
||||
| Profile damaged after a power outage | https://github.com/zen-browser/desktop/issues/7472 | 2:36:37 | 2:36:37 |
|
||||
| Refresh button going out of the single toolbar view (Tab) | https://github.com/zen-browser/desktop/issues/7469 | 1 day, 10:13:58 | None |
|
||||
| Can't open Google page, but Edge can | https://github.com/zen-browser/desktop/issues/7468 | 3:34:47 | 7:01:59 |
|
||||
| Tabs close when opening a private window | https://github.com/zen-browser/desktop/issues/7467 | 1:49:32 | 19:09:09 |
|
||||
| Sidebar does not really hide properly and it still visible without tab bars | https://github.com/zen-browser/desktop/issues/7466 | 0:06:06 | 1:28:35 |
|
||||
| In continuous loop of crashes after update | https://github.com/zen-browser/desktop/issues/7465 | 12:02:49 | None |
|
||||
| Unable to produce videos from Disney and Netflix pages | https://github.com/zen-browser/desktop/issues/7463 | 0:40:20 | 12:38:43 |
|
||||
| "Find in Settings" box can't type anything into | https://github.com/zen-browser/desktop/issues/7460 | None | 12:49:08 |
|
||||
| Browser breaks shortly after 'Close other tabs' | https://github.com/zen-browser/desktop/issues/7459 | None | 17:27:47 |
|
||||
| Split View fails when the history tab is open | https://github.com/zen-browser/desktop/issues/7458 | 8:04:46 | 16:12:37 |
|
||||
| "The application has failed to start because its side-by-side configuration is incorrect." | https://github.com/zen-browser/desktop/issues/7457 | 0:54:42 | 4:45:02 |
|
||||
| opacity of #urlbar element is sometimes overwritten | https://github.com/zen-browser/desktop/issues/7454 | None | 2:25:01 |
|
||||
| Enable Restore pinned tabs to their originally pinned URL on startup setting does not work | https://github.com/zen-browser/desktop/issues/7453 | 2:00:44 | 9 days, 18:38:49 |
|
||||
| misclick caused by tab context menu | https://github.com/zen-browser/desktop/issues/7452 | 0:56:17 | 0:56:17 |
|
||||
| Cookie named SESS disappears after restart | https://github.com/zen-browser/desktop/issues/7451 | 3 days, 21:47:30 | None |
|
||||
| Impossible to click "Add mailto handler" popup — only visible on hover and disappears immediately | https://github.com/zen-browser/desktop/issues/7450 | 6 days, 5:39:09 | None |
|
||||
| pinned extensions appear visually bugged when activating 'toggle sidebars width' shortcut from single toolbar mode. | https://github.com/zen-browser/desktop/issues/7448 | 0:30:31 | 0:30:31 |
|
||||
| URL only appears after typing even when set to Always Floating | https://github.com/zen-browser/desktop/issues/7446 | 0:47:21 | 2 days, 5:09:45 |
|
||||
| Drag and drop files not working on Linux | https://github.com/zen-browser/desktop/issues/7445 | 1:14:52 | 10:51:52 |
|
||||
| Tooltips flickering when there is a tab with a video(even if the video is paused) | https://github.com/zen-browser/desktop/issues/7444 | 0:05:12 | 0:08:28 |
|
||||
| Zen URL Bar floats on New Tab with 'Floating Only When Typing' option | https://github.com/zen-browser/desktop/issues/7441 | 4:37:47 | None |
|
||||
| Essentials Tab – Confusing Right-Click Options (Close Tab & Remove from Essentails function exactly the same) | https://github.com/zen-browser/desktop/issues/7440 | 0:15:16 | 0:47:28 |
|
||||
| Cannot close customize toolbar tab | https://github.com/zen-browser/desktop/issues/7438 | 9:45:55 | None |
|
||||
| Miniplayer strange behaviour when redirecting to the music tab on another workspace | https://github.com/zen-browser/desktop/issues/7436 | None | None |
|
||||
| Pinned Tab URL update toast being overlayed by container name | https://github.com/zen-browser/desktop/issues/7435 | None | None |
|
||||
| "Open link in New Tab" does not follow the "Move the new tab button to the top" Setting | https://github.com/zen-browser/desktop/issues/7432 | 23:59:16 | None |
|
||||
| Print Menu/Screen does not Adjust to Split Tabs | https://github.com/zen-browser/desktop/issues/7431 | 10 days, 16:43:02 | None |
|
||||
| Mouse-over highlight colors in dropdown menus are virtually impossible to read. | https://github.com/zen-browser/desktop/issues/7430 | None | None |
|
||||
| Sidebar padding takes space in full screen | https://github.com/zen-browser/desktop/issues/7429 | 2:42:13 | None |
|
||||
| Passkey doesn't work on Windows Machine | https://github.com/zen-browser/desktop/issues/7428 | 3:55:01 | 4 days, 14:45:14 |
|
||||
| Split button in search bar no longer present | https://github.com/zen-browser/desktop/issues/7427 | 4:46:19 | 1 day, 2:35:50 |
|
||||
| Opening new window breaks essentials section | https://github.com/zen-browser/desktop/issues/7426 | 1 day, 20:57:12 | 2 days, 17:13:45 |
|
||||
| Fixed split tabs don't preserve width after closing the browser | https://github.com/zen-browser/desktop/issues/7425 | 14 days, 19:41:02 | 18 days, 21:07:37 |
|
||||
| Tab Hover Text Flickering | https://github.com/zen-browser/desktop/issues/7424 | 0:44:39 | 21:20:07 |
|
||||
| Customise toolbar: Transparent background | https://github.com/zen-browser/desktop/issues/7423 | 2 days, 0:20:25 | None |
|
||||
| The split-view view mode switch button is gone | https://github.com/zen-browser/desktop/issues/7422 | 0:24:53 | 1:15:04 |
|
||||
| Close button bug on windows | https://github.com/zen-browser/desktop/issues/7421 | 3:16:32 | 6:04:38 |
|
||||
| Button to manage split view no longer exists after recent update | https://github.com/zen-browser/desktop/issues/7420 | 0:07:59 | 1:47:42 |
|
||||
| Right Click on tab spawns dropdown menu under mouse cursor leading to instantly chosing menu item. | https://github.com/zen-browser/desktop/issues/7419 | None | None |
|
||||
| File Handler Dialog not opening in Archlinux (Hyprland) | https://github.com/zen-browser/desktop/issues/7418 | 14 days, 20:46:21 | None |
|
||||
| New Tab UI Issue When Fullscreen | https://github.com/zen-browser/desktop/issues/7416 | 3:16:51 | 1 day, 10:25:21 |
|
||||
| Re-arranging essentials tabs doesn't work as expected | https://github.com/zen-browser/desktop/issues/7415 | 8 days, 14:53:44 | None |
|
||||
| Moderate hardening causes new tab functionality to break | https://github.com/zen-browser/desktop/issues/7414 | 1:28:39 | 1:45:02 |
|
||||
| Mute icon of tab are clipped in compact mode | https://github.com/zen-browser/desktop/issues/7413 | 13:32:26 | 5 days, 9:41:24 |
|
||||
| Terrible video playback performance, stuttering, freezing | https://github.com/zen-browser/desktop/issues/7412 | 7:19:05 | 9 days, 0:12:29 |
|
||||
| Firefox notes doesn't open on the right even though that setting is toggled | https://github.com/zen-browser/desktop/issues/7411 | 2:24:04 | 11:55:33 |
|
||||
| Popping sound when skipping/exiting YouTube videos | https://github.com/zen-browser/desktop/issues/7410 | None | None |
|
||||
| 1.8b new Color Picker always clears custom colors after switching workspaces | https://github.com/zen-browser/desktop/issues/7409 | 2 days, 5:06:41 | 2 days, 11:01:52 |
|
||||
| [Regression 1.8b+] Tab session extensions cannot record across workspaces anymore | https://github.com/zen-browser/desktop/issues/7408 | None | 5 days, 11:39:13 |
|
||||
| While watching product videos on Temu.com, most of the time it does not open. | https://github.com/zen-browser/desktop/issues/7406 | 0:35:26 | None |
|
||||
| search shortcut issues | https://github.com/zen-browser/desktop/issues/7405 | 0:59:18 | 2 days, 21:18:57 |
|
||||
| Moving sidebar to right dosen't work | https://github.com/zen-browser/desktop/issues/7404 | 0:40:33 | 0:40:35 |
|
||||
| Change tab to workspace doesn't work | https://github.com/zen-browser/desktop/issues/7403 | 0:54:36 | 5:40:26 |
|
||||
| Closing the right hand side of a split tab shows the next tab, rather than the left side of the split. | https://github.com/zen-browser/desktop/issues/7402 | None | None |
|
||||
| Search engines in search box selector gone | https://github.com/zen-browser/desktop/issues/7401 | 0:26:12 | 1:42:08 |
|
||||
| Update Container while switching tab to another workspace | https://github.com/zen-browser/desktop/issues/7399 | 1:37:45 | 3:02:04 |
|
||||
| Tooltips flickering | https://github.com/zen-browser/desktop/issues/7395 | 1 day, 8:58:26 | 1 day, 17:13:03 |
|
||||
| Unable to render page when closing last tab with Ctrl+F4 | https://github.com/zen-browser/desktop/issues/7392 | None | None |
|
||||
| Zen does not respect `gtk-application-prefer-dark-theme` | https://github.com/zen-browser/desktop/issues/7391 | 21:15:24 | 9 days, 9:00:51 |
|
||||
| alt is not being recognize | https://github.com/zen-browser/desktop/issues/7390 | None | None |
|
||||
| Zen HSTS Security Issue on genuine Websites | https://github.com/zen-browser/desktop/issues/7389 | None | None |
|
||||
| Tiktok gives error while using | https://github.com/zen-browser/desktop/issues/7388 | 0:40:53 | 9 days, 11:10:46 |
|
||||
| With v1.11b upgrade Firefox v137 but Not group tabs | https://github.com/zen-browser/desktop/issues/7387 | 0:47:12 | 0:51:31 |
|
||||
| Alt + Clicking a link to open it in glance mode does not work in http pages | https://github.com/zen-browser/desktop/issues/7386 | 5 days, 9:24:16 | 5 days, 9:24:16 |
|
||||
| URL click selects entire url instead of placing cursor at the clicked position | https://github.com/zen-browser/desktop/issues/7385 | 6 days, 1:13:15 | None |
|
||||
| Close Window Keyboard Shortcut does nothing (due to conflict with Toggle DOM shortcut) | https://github.com/zen-browser/desktop/issues/7384 | 16 days, 14:22:58 | None |
|
||||
| Bookmark/side bar aligns left when set to right | https://github.com/zen-browser/desktop/issues/7382 | 0:12:08 | 5 days, 0:06:03 |
|
||||
| Opening the Web Inspector destroys Zen's layout in an unrecoverable manner with letterboxing | https://github.com/zen-browser/desktop/issues/7380 | 2 days, 10:03:45 | None |
|
||||
| Extension Popout not Working on Multiple Toolbar View | https://github.com/zen-browser/desktop/issues/7379 | None | None |
|
||||
| Extension background remains while extension window closes when moving main window | https://github.com/zen-browser/desktop/issues/7378 | 10:05:14 | 9 days, 2:14:11 |
|
||||
| Firefox Labs Missing in 1.11.1b | https://github.com/zen-browser/desktop/issues/7377 | 1 day, 7:24:11 | None |
|
||||
| Crashing of zen, reopening as a new browser every time | https://github.com/zen-browser/desktop/issues/7376 | 4:07:26 | 16 days, 7:00:23 |
|
||||
| COMPLETE COLLAPSED TOOLBAR DISAPPERED | https://github.com/zen-browser/desktop/issues/7375 | 0:02:50 | 3:15:12 |
|
||||
| Sidebar Scroll undraggable by mouse | https://github.com/zen-browser/desktop/issues/7374 | None | 9 days, 12:16:46 |
|
||||
| Unload Tab Doesn't Release Resources | https://github.com/zen-browser/desktop/issues/7373 | 7:19:58 | 10 days, 9:05:02 |
|
||||
| Tabs sent to another device go to the default workspace | https://github.com/zen-browser/desktop/issues/7371 | None | None |
|
||||
| Color gradient window glitching when windowing browser | https://github.com/zen-browser/desktop/issues/7370 | None | 8:53:18 |
|
||||
| (Gradient) Custom colors multiplying their instance in 1.11.1 | https://github.com/zen-browser/desktop/issues/7369 | 0:37:52 | 3 days, 12:39:46 |
|
||||
| Opening in new tab from a Glance window opens under unloaded tabs instead of the current tab | https://github.com/zen-browser/desktop/issues/7368 | None | None |
|
||||
| Extremely annoying update popups | https://github.com/zen-browser/desktop/issues/7367 | None | None |
|
||||
| Unload Tabs Showing in Tab Cycling | https://github.com/zen-browser/desktop/issues/7365 | None | 9 days, 19:18:22 |
|
||||
| Restoring previous session puts Zen into broken state | https://github.com/zen-browser/desktop/issues/7364 | 17 days, 21:23:34 | None |
|
||||
| Unable to use split view with essentials | https://github.com/zen-browser/desktop/issues/7363 | 8:30:43 | 11:11:45 |
|
||||
| Blurry text on ultrawide resolutions | https://github.com/zen-browser/desktop/issues/7362 | 0:06:03 | 23 days, 11:20:05 |
|
||||
| Floating URL bar disappears on right click | https://github.com/zen-browser/desktop/issues/7361 | None | 7 days, 3:53:43 |
|
||||
| Extension thinks it is always running in a private window | https://github.com/zen-browser/desktop/issues/7358 | None | None |
|
||||
| All tabs keep crashing | https://github.com/zen-browser/desktop/issues/7356 | 1:29:18 | None |
|
||||
| Error building Zen browser from AUR repositories | https://github.com/zen-browser/desktop/issues/7354 | 0:39:39 | 4:20:43 |
|
||||
| Reproducable softlock on moving workspace | https://github.com/zen-browser/desktop/issues/7353 | 20:45:28 | None |
|
||||
| Notifications appear as dialogue boxes | https://github.com/zen-browser/desktop/issues/7352 | 2:49:03 | None |
|
||||
| Quiting browser closes all tabs when pressing the red close button (top left mac) | https://github.com/zen-browser/desktop/issues/7351 | 2:01:54 | 17:06:35 |
|
||||
| YouTube player sometimes incorrectly opens in fullscreen mode | https://github.com/zen-browser/desktop/issues/7350 | None | None |
|
||||
| Youtube video playback hangs when switching audio device | https://github.com/zen-browser/desktop/issues/7349 | 2:28:29 | None |
|
||||
| AppImage GearLever updates broken since v1.11 | https://github.com/zen-browser/desktop/issues/7348 | None | None |
|
||||
| On launch and changing workspace, will open first tab in tab list | https://github.com/zen-browser/desktop/issues/7347 | 22:54:43 | None |
|
||||
| Subtitle in the Picture-In-Picture mode does not work properly | https://github.com/zen-browser/desktop/issues/7346 | None | 0:11:37 |
|
||||
| Opening Findbar shifts main browser windows content up for a split second | https://github.com/zen-browser/desktop/issues/7345 | None | None |
|
||||
| Bookmarks not showing in full-screen mode. | https://github.com/zen-browser/desktop/issues/7344 | 2 days, 21:14:21 | None |
|
||||
| Cannot change sidebar location | https://github.com/zen-browser/desktop/issues/7342 | None | 0:02:42 |
|
||||
| Workspace switch keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/7341 | 7:44:33 | 10 days, 22:57:22 |
|
||||
| The split tabs from glance aren't restored after browser restarted | https://github.com/zen-browser/desktop/issues/7340 | None | None |
|
||||
| In split view, top bar onHover response is inconsistent | https://github.com/zen-browser/desktop/issues/7339 | 1:20:40 | 21 days, 0:00:20 |
|
||||
| "Learn more" hyperlink leads to broken releases URL | https://github.com/zen-browser/desktop/issues/7338 | None | None |
|
||||
| Flickering unusable menus if `widget.wayland.fractional-scale.enabled` is enabled | https://github.com/zen-browser/desktop/issues/7337 | None | None |
|
||||
| Web Panel is missing and sidebar cant move to right side | https://github.com/zen-browser/desktop/issues/7335 | 0:32:24 | 1 day, 5:28:09 |
|
||||
| Got IDBDatabase.transaction error when I tried to import Yomitan's dictionary | https://github.com/zen-browser/desktop/issues/7334 | 9:27:22 | 9:27:22 |
|
||||
| Vsync is broken (Linux) | https://github.com/zen-browser/desktop/issues/7333 | 1:43:20 | 2:45:25 |
|
||||
| Sidebar layout takes space when switching to fullscreen in compact mode | https://github.com/zen-browser/desktop/issues/7332 | 15:21:13 | 6 days, 1:37:58 |
|
||||
| Input type `number` accept string | https://github.com/zen-browser/desktop/issues/7330 | 4 days, 5:56:33 | 4 days, 5:56:33 |
|
||||
| Blur is no longer working on Linux | https://github.com/zen-browser/desktop/issues/7329 | 12:53:00 | 18:37:20 |
|
||||
| Black text in right click menu | https://github.com/zen-browser/desktop/issues/7328 | 4 days, 9:19:32 | None |
|
||||
| Window does not close with last tab, even with `browser.tabs.closeWindowWithLastTab` set to true | https://github.com/zen-browser/desktop/issues/7327 | 2 days, 23:22:12 | None |
|
||||
| zen minimal exit buttons become square on new update | https://github.com/zen-browser/desktop/issues/7325 | 6:01:23 | None |
|
||||
| Grey flash under mica context menus when clicked | https://github.com/zen-browser/desktop/issues/7324 | 4 days, 11:00:40 | 4 days, 11:00:40 |
|
||||
| Zen Browser Releases replaced | https://github.com/zen-browser/desktop/issues/7322 | 0:13:52 | 0:13:54 |
|
||||
| Tab Restore failed on Automatic Update | https://github.com/zen-browser/desktop/issues/7321 | 0:20:15 | None |
|
||||
| Can't move sidebar to the right? | https://github.com/zen-browser/desktop/issues/7320 | 0:15:28 | 1 day, 9:22:24 |
|
||||
| Glance Broken on Pinned Tabs | https://github.com/zen-browser/desktop/issues/7318 | 2:30:41 | 23:13:21 |
|
||||
| Sidebar width becomes thinner in compact upon startup (doesn't retain predetermined width) | https://github.com/zen-browser/desktop/issues/7316 | 0:04:57 | 6 days, 2:27:44 |
|
||||
| Greyed out part of URL sometimes turns back to white incosistently | https://github.com/zen-browser/desktop/issues/7315 | None | None |
|
||||
| Dynamic theme mode not working | https://github.com/zen-browser/desktop/issues/7313 | 1 day, 2:42:51 | 2 days, 15:43:17 |
|
||||
| Reading mode button is missing in single sidebar mode | https://github.com/zen-browser/desktop/issues/7312 | None | None |
|
||||
| The sidebar is a little smaller, than its set size on startup in compact mode. | https://github.com/zen-browser/desktop/issues/7311 | 0:17:43 | 0:22:32 |
|
||||
| Online TV doesn't show picture, there's only sound | https://github.com/zen-browser/desktop/issues/7309 | None | None |
|
||||
| Glance window expand button doesn't work | https://github.com/zen-browser/desktop/issues/7308 | 2:01:15 | 2:01:15 |
|
||||
| Resizing windows is broken when "privacy.resistfingerprinting" enabled and set to 1920x1080 | https://github.com/zen-browser/desktop/issues/7307 | 4 days, 0:12:26 | None |
|
||||
| Going to the next or previous workspace using keyboard shortcuts is not working when the current tab has figma open | https://github.com/zen-browser/desktop/issues/7306 | None | None |
|
||||
| Profile badge no longer shows up on taskbar icon | https://github.com/zen-browser/desktop/issues/7305 | None | 21 days, 20:20:01 |
|
||||
| Unable to change how the new tab works | https://github.com/zen-browser/desktop/issues/7304 | 14:37:11 | 5 days, 22:16:36 |
|
||||
| Bookmarks won't open when current container tab is not the default container of the workspace | https://github.com/zen-browser/desktop/issues/7303 | None | None |
|
||||
| Extension view not rendered in single toolbar view | https://github.com/zen-browser/desktop/issues/7301 | 1:02:07 | None |
|
||||
| scroll icon not working | https://github.com/zen-browser/desktop/issues/7299 | None | 1 day, 5:21:02 |
|
||||
| see through background or grey. | https://github.com/zen-browser/desktop/issues/7298 | None | None |
|
||||
| Glance split view button opens full page | https://github.com/zen-browser/desktop/issues/7297 | 8:01:18 | 14:37:04 |
|
||||
| No split view icon in urlbar | https://github.com/zen-browser/desktop/issues/7296 | 2:35:01 | 12:19:25 |
|
||||
| Workspaces temporarily inherit essential tabs from the source workspace a container tab was switched from | https://github.com/zen-browser/desktop/issues/7295 | 7 days, 16:30:59 | 11 days, 23:18:33 |
|
||||
| UI misalignments in sidebar | https://github.com/zen-browser/desktop/issues/7294 | None | 1 day, 12:20:56 |
|
||||
| Single Toolbar icons shuffle position on restart | https://github.com/zen-browser/desktop/issues/7293 | None | None |
|
||||
| Fix for #7078 has broken zen workspaces (upon restart) | https://github.com/zen-browser/desktop/issues/7289 | 0:19:19 | 2 days, 0:09:09 |
|
||||
| Anthropic's Claude freezes only on Zen browser | https://github.com/zen-browser/desktop/issues/7287 | 0:53:16 | 1:25:34 |
|
||||
| Unable to change tabs in the certificate manager. | https://github.com/zen-browser/desktop/issues/7286 | 0:29:07 | 5:25:58 |
|
||||
| Cyrillic display problem | https://github.com/zen-browser/desktop/issues/7285 | None | None |
|
||||
| Panel goes off the screen when adding new extension | https://github.com/zen-browser/desktop/issues/7281 | None | 1 day, 2:35:00 |
|
||||
| XDG Base Directory support, and/or data directory environment variable | https://github.com/zen-browser/desktop/issues/7280 | 2 days, 10:45:19 | None |
|
||||
| Short width and fixed Side Bar | https://github.com/zen-browser/desktop/issues/7279 | 1:29:03 | 1 day, 2:14:11 |
|
||||
| Switch to tab not working if tab is unloaded | https://github.com/zen-browser/desktop/issues/7278 | 1 day, 11:01:11 | None |
|
||||
| Incorrect Cedilla Input Rendering | https://github.com/zen-browser/desktop/issues/7276 | None | None |
|
||||
| Key bindings without modifier still apply when typing in to input fields | https://github.com/zen-browser/desktop/issues/7275 | None | None |
|
||||
| MX Master 3 Forward/Back Mouse Buttons Don't Work For Switching Workspaces While Logi Options+ is Installed | https://github.com/zen-browser/desktop/issues/7274 | 12:18:06 | 13 days, 10:49:45 |
|
||||
| Tab preview on hover doesn't work | https://github.com/zen-browser/desktop/issues/7273 | None | 0:03:37 |
|
||||
| Change Tab(s) To Workspace broken in 1.11b | https://github.com/zen-browser/desktop/issues/7272 | 10:07:25 | 11:07:25 |
|
||||
| Bookmarks don't open in new tab when using new tab | https://github.com/zen-browser/desktop/issues/7271 | 1:24:44 | None |
|
||||
| Portable Installation Mode will no longer exist and will not be updated? | https://github.com/zen-browser/desktop/issues/7270 | 16:31:52 | 11 days, 17:33:57 |
|
||||
| Split glance tab button opens in new tab when opened from Essentials tab | https://github.com/zen-browser/desktop/issues/7269 | 11 days, 17:48:17 | 11 days, 17:48:17 |
|
||||
| Open animation for menus start from the wrong side | https://github.com/zen-browser/desktop/issues/7267 | 11 days, 18:21:58 | 11 days, 18:21:58 |
|
||||
| There is no workspaces in fresh Zen install.. | https://github.com/zen-browser/desktop/issues/7266 | 0:16:38 | 14:56:31 |
|
||||
| Extension Settings not displaying when no tab is selected | https://github.com/zen-browser/desktop/issues/7265 | 6 days, 14:56:37 | None |
|
||||
| Modal window for a "New Tab" dissapears when switching language using Win + Space on Linux Mint | https://github.com/zen-browser/desktop/issues/7264 | 11 days, 19:09:08 | 11 days, 19:09:08 |
|
||||
| Glance not works on local http pages | https://github.com/zen-browser/desktop/issues/7263 | 0:39:34 | 11 days, 19:55:22 |
|
||||
| Compact mode leaves empty space after sidebar disappeared | https://github.com/zen-browser/desktop/issues/7262 | 0:10:52 | 15 days, 8:01:40 |
|
||||
| In WIN10, when browser is maximized, an autohide taskbar cannot unhide | https://github.com/zen-browser/desktop/issues/7261 | None | 3 days, 7:50:43 |
|
||||
| "Move sidebar to right" is not working | https://github.com/zen-browser/desktop/issues/7260 | 3:02:35 | 4 days, 3:22:44 |
|
||||
| Side by side view leaves a gap in the tabs at the side bar | https://github.com/zen-browser/desktop/issues/7258 | None | None |
|
||||
| White text in right click menu on browser chrome in light mode | https://github.com/zen-browser/desktop/issues/7257 | 8 days, 21:19:48 | None |
|
||||
| URL always focused when I open a new tab. | https://github.com/zen-browser/desktop/issues/7255 | 5:53:57 | 9 days, 23:59:28 |
|
||||
| Essential tabs. Glance window expanding event trigger the Leave event of the Google Meet stream | https://github.com/zen-browser/desktop/issues/7254 | 5:29:41 | 18:32:56 |
|
||||
| IDN address shows punny code in URL | https://github.com/zen-browser/desktop/issues/7253 | None | None |
|
||||
| UI display exception in right tab mode | https://github.com/zen-browser/desktop/issues/7252 | 18:35:56 | None |
|
||||
| Bugs in Tiktok web site | https://github.com/zen-browser/desktop/issues/7250 | None | None |
|
||||
| Pinned sidebar overlaps bookmarks bar in compact mode with no tabs open | https://github.com/zen-browser/desktop/issues/7249 | 1:14:48 | 13 days, 2:45:51 |
|
||||
| Search Window Closes When Switching Keyboard Language in GNOME | https://github.com/zen-browser/desktop/issues/7248 | None | None |
|
||||
| The Window Control Buttons sometimes are unavailable after screen sharing. | https://github.com/zen-browser/desktop/issues/7247 | None | None |
|
||||
| [BUG] Extensions become huge after collapsing the side bar | https://github.com/zen-browser/desktop/issues/7246 | 0:05:27 | None |
|
||||
| Essential tabs do not auto-load when opened after reopening Zen | https://github.com/zen-browser/desktop/issues/7245 | None | None |
|
||||
| Azure Devops Server not loading properly | https://github.com/zen-browser/desktop/issues/7244 | None | None |
|
||||
| Image Previews Not Displaying in Google Chat on Zen Browser | https://github.com/zen-browser/desktop/issues/7243 | 0:02:08 | None |
|
||||
| [Twilight 1.11] Janky rendering behaviour with split view | https://github.com/zen-browser/desktop/issues/7242 | None | 1 day, 14:55:44 |
|
||||
| INSANE MEMORY LEAK THAT YOU KEEP CLOSING & IGNORING | https://github.com/zen-browser/desktop/issues/7240 | 0:10:04 | 2:32:53 |
|
||||
| --zen-sidebar-width not set correctly when opening Zen with compact mode enabled | https://github.com/zen-browser/desktop/issues/7239 | 7:28:04 | 7:56:39 |
|
||||
| Ctrl + T and Ctrl + L popup address bar only shows up after starting to type | https://github.com/zen-browser/desktop/issues/7238 | None | None |
|
||||
| Some Shortcuts not working in some keyboard layouts. | https://github.com/zen-browser/desktop/issues/7237 | 13 days, 9:31:33 | 13 days, 9:31:33 |
|
||||
| Re-Opening: Stopping YouTube video on Zen forcing Alcove (dynamic island app) to quit and cannot be launched again | https://github.com/zen-browser/desktop/issues/7235 | None | None |
|
||||
| Thumbwheel MX Master 3s to switch a workspace | https://github.com/zen-browser/desktop/issues/7234 | 14 days, 15:00:31 | None |
|
||||
| Browser unsupported error on Google Docs | https://github.com/zen-browser/desktop/issues/7233 | None | None |
|
||||
| Previous windows and tabs are not reopened on Zen for mac | https://github.com/zen-browser/desktop/issues/7232 | None | None |
|
||||
| Keyboard shortcut binding: Recieve keys as accent characters | https://github.com/zen-browser/desktop/issues/7230 | 10 days, 2:40:15 | 13 days, 14:20:32 |
|
||||
| Cannot login to Syncthing GUI with username/password | https://github.com/zen-browser/desktop/issues/7228 | 4 days, 11:35:55 | None |
|
||||
| Minimize to taskbar and full screen buttons not showing up - Linux | https://github.com/zen-browser/desktop/issues/7227 | None | None |
|
||||
| Zen makes PC completely unresponsive | https://github.com/zen-browser/desktop/issues/7226 | 1 day, 20:39:55 | 11 days, 16:18:54 |
|
||||
| Bookmark Manager: Workspace not populated nor editable | https://github.com/zen-browser/desktop/issues/7225 | 2:56:17 | 2:56:17 |
|
||||
| Twilight and Zen side by side install bugged on macOS | https://github.com/zen-browser/desktop/issues/7224 | None | None |
|
||||
| Element.io: clicking on link can steal focus, dim page | https://github.com/zen-browser/desktop/issues/7222 | 22:41:10 | None |
|
||||
| Essential tabs disappear if they are assigned to different containers | https://github.com/zen-browser/desktop/issues/7220 | 20:50:53 | None |
|
||||
| Pages Not Loading – Only Works in Private Mode | https://github.com/zen-browser/desktop/issues/7219 | 15:48:55 | 7 days, 12:35:00 |
|
||||
| Youtube Audio Jitters while i play league of legends | https://github.com/zen-browser/desktop/issues/7217 | None | None |
|
||||
| Split tabs resizing bar shows through Side web panels | https://github.com/zen-browser/desktop/issues/7216 | None | None |
|
||||
| Close button hover makes browser have an epileptic attack | https://github.com/zen-browser/desktop/issues/7215 | None | None |
|
||||
| Zen Support Link in Settings menu links to Mozilla instead of Zen | https://github.com/zen-browser/desktop/issues/7214 | None | None |
|
||||
| Editing a URL always opens a new tab | https://github.com/zen-browser/desktop/issues/7213 | 19:28:32 | 20:39:12 |
|
||||
| Keeps logging out of my accounts | https://github.com/zen-browser/desktop/issues/7212 | 20 days, 0:43:00 | None |
|
||||
| Split View - Grid: When reopening Zen, grid layout is "forgotten" and reset back to default | https://github.com/zen-browser/desktop/issues/7211 | 16 days, 1:00:24 | None |
|
||||
| iCloud Password Extension Bug on Mac 15.4 - This extension requires Sonoma or above / Verification Code does not appear | https://github.com/zen-browser/desktop/issues/7210 | 1 day, 8:30:59 | None |
|
||||
| Status bar graphical issue/glitch | https://github.com/zen-browser/desktop/issues/7208 | 20:10:21 | 9 days, 12:31:32 |
|
||||
| When restoring session manually, It always creates extra window apart from the previous session | https://github.com/zen-browser/desktop/issues/7207 | None | None |
|
||||
| Split view bugs out when open a pop up page | https://github.com/zen-browser/desktop/issues/7206 | 0:48:48 | None |
|
||||
| Can't Switch Profile | https://github.com/zen-browser/desktop/issues/7205 | 1:13:14 | 1:13:14 |
|
||||
| start too slowly | https://github.com/zen-browser/desktop/issues/7204 | 0:29:57 | 1:43:28 |
|
||||
| [twilight 1.10.3] can't create workspaces at all | https://github.com/zen-browser/desktop/issues/7203 | 1:36:25 | 2:02:36 |
|
||||
| Zen ignores system trusted certs when run in flatpak | https://github.com/zen-browser/desktop/issues/7202 | 2:03:40 | None |
|
||||
| Google Docs stops accepting keyboard input | https://github.com/zen-browser/desktop/issues/7201 | 1 day, 6:00:18 | None |
|
||||
| Default Profile Cannot be Deleted | https://github.com/zen-browser/desktop/issues/7200 | 5:20:28 | 5 days, 16:04:35 |
|
||||
| Zen not respecting system theme | https://github.com/zen-browser/desktop/issues/7199 | 3:10:26 | 4:25:44 |
|
||||
| Opening multiple tabs to Zen Mods site to try multiple mods overwrites all new mods except the most recent | https://github.com/zen-browser/desktop/issues/7198 | None | None |
|
||||
| INSANE MEMORY LEAK THAT YOU KEEP CLOSING & IGNORING | https://github.com/zen-browser/desktop/issues/7197 | 0:30:36 | 6:55:54 |
|
||||
| ETP icon missing | https://github.com/zen-browser/desktop/issues/7195 | 0:05:14 | 8:42:37 |
|
||||
| Any web page is not displayed | https://github.com/zen-browser/desktop/issues/7194 | 8:23:51 | 5 days, 1:34:24 |
|
||||
| Window buttons aren't filled to the top right. | https://github.com/zen-browser/desktop/issues/7193 | 11:18:10 | 11:18:10 |
|
||||
| Cursor not hiding when entering fullscreen playback on MacOS | https://github.com/zen-browser/desktop/issues/7192 | 0:02:58 | None |
|
||||
| Crash on wayland when using discrete GPU | https://github.com/zen-browser/desktop/issues/7190 | None | 24 days, 7:14:40 |
|
||||
| Web panel does not obey default zoom | https://github.com/zen-browser/desktop/issues/7189 | None | 3 days, 9:18:34 |
|
||||
| Compact mode does not show popup/redirect warnings | https://github.com/zen-browser/desktop/issues/7188 | 14 days, 19:04:37 | None |
|
||||
| Using lots of ram on mac | https://github.com/zen-browser/desktop/issues/7187 | 4:56:02 | 16:12:58 |
|
||||
| Background goes gray when I maximize the window | https://github.com/zen-browser/desktop/issues/7185 | None | None |
|
||||
| Level1techs forum loads VERY slowly only on Zen | https://github.com/zen-browser/desktop/issues/7184 | 5:43:12 | 17 days, 4:27:11 |
|
||||
| After deleting the non-deafult workspaces, any reference to workspaces disappeared | https://github.com/zen-browser/desktop/issues/7183 | 10 days, 20:48:36 | 14 days, 6:48:03 |
|
||||
| Essentials and pinned tabs get stuck in a half-glance state if a glance window is forced into a new container tab | https://github.com/zen-browser/desktop/issues/7182 | 7:36:25 | None |
|
||||
| Workspace navigation emojis should be emojis at all times | https://github.com/zen-browser/desktop/issues/7181 | 5:37:07 | 21 days, 20:30:16 |
|
||||
| Closing glance view with escape minimizes Zen on MacOS | https://github.com/zen-browser/desktop/issues/7179 | 7 days, 19:04:25 | None |
|
||||
| Thick Border around the context menus | https://github.com/zen-browser/desktop/issues/7177 | 12 days, 0:26:31 | None |
|
||||
| Sidebar popup doesn't work if running new tab from link on webpage | https://github.com/zen-browser/desktop/issues/7175 | 10 days, 10:52:50 | 15 days, 2:43:49 |
|
||||
| Slow startup on Windows | https://github.com/zen-browser/desktop/issues/7174 | None | None |
|
||||
| Glance opens on magnet links | https://github.com/zen-browser/desktop/issues/7173 | 23:54:11 | 1 day, 23:56:02 |
|
||||
| WebGL isn't supported | https://github.com/zen-browser/desktop/issues/7172 | 4 days, 9:42:07 | 4 days, 9:42:07 |
|
||||
| Cursor Auto-Highlight on Ctrl+Tab Disrupts Tab Cycling | https://github.com/zen-browser/desktop/issues/7170 | 11:18:59 | None |
|
||||
| Confirmation dialog before quitting prevents unattended macOS updates | https://github.com/zen-browser/desktop/issues/7169 | None | None |
|
||||
| Extension's options pop-up in the address after switching between single and multiple toolbars | https://github.com/zen-browser/desktop/issues/7168 | None | None |
|
||||
| Lag and auto-scroll upon switching from a workspace that has split tabs open | https://github.com/zen-browser/desktop/issues/7167 | None | None |
|
||||
| Essentials turning into pinned tab in new window | https://github.com/zen-browser/desktop/issues/7166 | None | None |
|
||||
| Option "Open links in tabs instead of new windows" unchecked after restart browser | https://github.com/zen-browser/desktop/issues/7165 | 4:30:57 | None |
|
||||
| Massive Screen Time spikes on MacOS | https://github.com/zen-browser/desktop/issues/7163 | 17 days, 15:28:42 | None |
|
||||
| Split screen weird behaviour | https://github.com/zen-browser/desktop/issues/7162 | 2 days, 7:25:53 | None |
|
||||
|
||||
_This report was generated with the [Issue Metrics Action](https://github.com/github/issue-metrics)_
|
||||
Search query used to find these items: `repo:zen-browser/desktop is:issue created:2025-04-01..2025-04-30`
|
||||
@@ -16,4 +16,4 @@
|
||||
|
||||
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
||||
|
||||
We will make use of firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
||||
We will make use of Firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
||||
|
||||
2
l10n
2
l10n
Submodule l10n updated: 950562cd71...9a673b4339
752
package-lock.json
generated
752
package-lock.json
generated
@@ -9,15 +9,544 @@
|
||||
"version": "1.0.0",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@zen-browser/surfer": "^1.11.7"
|
||||
"@zen-browser/surfer": "^1.11.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-typescript": "^7.27.0",
|
||||
"formal-git": "^1.1.5",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^15.3.0",
|
||||
"prettier": "^3.4.2",
|
||||
"prettier-plugin-sh": "^0.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@ampproject/remapping": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
||||
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.24"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/code-frame": {
|
||||
"version": "7.26.2",
|
||||
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
|
||||
"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.25.9",
|
||||
"js-tokens": "^4.0.0",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/compat-data": {
|
||||
"version": "7.26.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
|
||||
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
|
||||
"integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.10",
|
||||
"@babel/helper-compilation-targets": "^7.26.5",
|
||||
"@babel/helper-module-transforms": "^7.26.0",
|
||||
"@babel/helpers": "^7.26.10",
|
||||
"@babel/parser": "^7.26.10",
|
||||
"@babel/template": "^7.26.9",
|
||||
"@babel/traverse": "^7.26.10",
|
||||
"@babel/types": "^7.26.10",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
"json5": "^2.2.3",
|
||||
"semver": "^6.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/babel"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core/node_modules/semver": {
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
|
||||
"integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.27.0",
|
||||
"@babel/types": "^7.27.0",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^3.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-annotate-as-pure": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
|
||||
"integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-compilation-targets": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz",
|
||||
"integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/compat-data": "^7.26.8",
|
||||
"@babel/helper-validator-option": "^7.25.9",
|
||||
"browserslist": "^4.24.0",
|
||||
"lru-cache": "^5.1.1",
|
||||
"semver": "^6.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-create-class-features-plugin": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz",
|
||||
"integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-annotate-as-pure": "^7.25.9",
|
||||
"@babel/helper-member-expression-to-functions": "^7.25.9",
|
||||
"@babel/helper-optimise-call-expression": "^7.25.9",
|
||||
"@babel/helper-replace-supers": "^7.26.5",
|
||||
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
|
||||
"@babel/traverse": "^7.27.0",
|
||||
"semver": "^6.3.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
|
||||
"version": "6.3.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"semver": "bin/semver.js"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-member-expression-to-functions": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
|
||||
"integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.25.9",
|
||||
"@babel/types": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-imports": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
|
||||
"integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.25.9",
|
||||
"@babel/types": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-module-transforms": {
|
||||
"version": "7.26.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
|
||||
"integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-module-imports": "^7.25.9",
|
||||
"@babel/helper-validator-identifier": "^7.25.9",
|
||||
"@babel/traverse": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-optimise-call-expression": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
|
||||
"integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-plugin-utils": {
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
|
||||
"integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-replace-supers": {
|
||||
"version": "7.26.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
|
||||
"integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-member-expression-to-functions": "^7.25.9",
|
||||
"@babel/helper-optimise-call-expression": "^7.25.9",
|
||||
"@babel/traverse": "^7.26.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
|
||||
"integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/traverse": "^7.25.9",
|
||||
"@babel/types": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-string-parser": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-option": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
|
||||
"integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
|
||||
"integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.27.0",
|
||||
"@babel/types": "^7.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
|
||||
"integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.27.0"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-jsx": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
|
||||
"integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-syntax-typescript": {
|
||||
"version": "7.25.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
|
||||
"integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-modules-commonjs": {
|
||||
"version": "7.26.3",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
|
||||
"integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-module-transforms": "^7.26.0",
|
||||
"@babel/helper-plugin-utils": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/plugin-transform-typescript": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz",
|
||||
"integrity": "sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-annotate-as-pure": "^7.25.9",
|
||||
"@babel/helper-create-class-features-plugin": "^7.27.0",
|
||||
"@babel/helper-plugin-utils": "^7.26.5",
|
||||
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
|
||||
"@babel/plugin-syntax-typescript": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/preset-typescript": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz",
|
||||
"integrity": "sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-plugin-utils": "^7.26.5",
|
||||
"@babel/helper-validator-option": "^7.25.9",
|
||||
"@babel/plugin-syntax-jsx": "^7.25.9",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
|
||||
"@babel/plugin-transform-typescript": "^7.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/core": "^7.0.0-0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/template": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
|
||||
"integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/parser": "^7.27.0",
|
||||
"@babel/types": "^7.27.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
|
||||
"integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.27.0",
|
||||
"@babel/parser": "^7.27.0",
|
||||
"@babel/template": "^7.27.0",
|
||||
"@babel/types": "^7.27.0",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.27.0",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
|
||||
"integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.25.9",
|
||||
"@babel/helper-validator-identifier": "^7.25.9"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/gen-mapping": {
|
||||
"version": "0.3.8",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
|
||||
"integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jridgewell/set-array": "^1.2.1",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.10",
|
||||
"@jridgewell/trace-mapping": "^0.3.24"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/resolve-uri": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
||||
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/set-array": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
|
||||
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
|
||||
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@jridgewell/trace-mapping": {
|
||||
"version": "0.3.25",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
|
||||
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jridgewell/resolve-uri": "^3.1.0",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||
}
|
||||
},
|
||||
"node_modules/@oozcitak/dom": {
|
||||
"version": "1.15.10",
|
||||
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
|
||||
@@ -288,9 +817,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@zen-browser/surfer": {
|
||||
"version": "1.11.7",
|
||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.7.tgz",
|
||||
"integrity": "sha512-ltIjDwPiSKmnKYjlTtD307t5h9+igi7YZu3pNlFl0SgvmTGRv9Ayit6CPllN5HGaMoI9jftOSeAaeFX2uRG4Yg==",
|
||||
"version": "1.11.11",
|
||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.11.tgz",
|
||||
"integrity": "sha512-n5t25jjG77/rg1HETQBloriCc4GVlHaGWDTNdOxU35Y2qqokcSU+3mPP2cy8u/GBfF0AS6YQmCjE2636tbZkRA==",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@resvg/resvg-js": "^1.4.0",
|
||||
@@ -496,6 +1025,40 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.24.4",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
||||
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001688",
|
||||
"electron-to-chromium": "^1.5.73",
|
||||
"node-releases": "^2.0.19",
|
||||
"update-browserslist-db": "^1.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"browserslist": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||
}
|
||||
},
|
||||
"node_modules/buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
@@ -557,6 +1120,28 @@
|
||||
"node": ">=0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001715",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz",
|
||||
"integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "CC-BY-4.0",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
@@ -718,6 +1303,14 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/convert-source-map": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/core-js-pure": {
|
||||
"version": "3.41.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz",
|
||||
@@ -826,6 +1419,14 @@
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.139",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz",
|
||||
"integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/emoji-regex": {
|
||||
"version": "8.0.0",
|
||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||
@@ -854,6 +1455,17 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/escalade": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
||||
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/esprima": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||
@@ -1028,6 +1640,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/formal-git": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/formal-git/-/formal-git-1.1.5.tgz",
|
||||
"integrity": "sha512-cSPoV0+/LFdUsE+fCGxCOK/eJNZeWj5c+6IxB3PP3QkeWIgdQFgw+RObnnpG/0KOsXy8mFrsD6tkEHbGjNGMpQ==",
|
||||
"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",
|
||||
@@ -1048,6 +1671,17 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/gensync": {
|
||||
"version": "1.0.0-beta.2",
|
||||
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/get-caller-file": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||
@@ -1088,6 +1722,16 @@
|
||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "11.12.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
|
||||
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/globalyzer": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
|
||||
@@ -1306,6 +1950,13 @@
|
||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/js-tokens": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/js-yaml": {
|
||||
"version": "3.14.1",
|
||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
||||
@@ -1319,6 +1970,33 @@
|
||||
"js-yaml": "bin/js-yaml.js"
|
||||
}
|
||||
},
|
||||
"node_modules/jsesc": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
||||
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"jsesc": "bin/jsesc"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/json5": {
|
||||
"version": "2.2.3",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"json5": "lib/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonfile": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||
@@ -1650,6 +2328,17 @@
|
||||
"url": "https://github.com/chalk/slice-ansi?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/merge-stream": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
||||
@@ -1805,6 +2494,14 @@
|
||||
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.19",
|
||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
||||
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/normalize-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||
@@ -1885,6 +2582,13 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||
"dev": true,
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/picomatch": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||
@@ -2766,6 +3470,38 @@
|
||||
"node": ">= 10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/update-browserslist-db": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
|
||||
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"escalade": "^3.2.0",
|
||||
"picocolors": "^1.1.1"
|
||||
},
|
||||
"bin": {
|
||||
"update-browserslist-db": "cli.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"browserslist": ">= 4.21.0"
|
||||
}
|
||||
},
|
||||
"node_modules/util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
@@ -2873,6 +3609,14 @@
|
||||
"node": ">=0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/yallist": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||
"dev": true,
|
||||
"license": "ISC",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.7.0",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
|
||||
|
||||
@@ -40,9 +40,11 @@
|
||||
},
|
||||
"homepage": "https://github.com/zen-browser/desktop#readme",
|
||||
"dependencies": {
|
||||
"@zen-browser/surfer": "^1.11.7"
|
||||
"@zen-browser/surfer": "^1.11.11"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/preset-typescript": "^7.27.0",
|
||||
"formal-git": "^1.1.5",
|
||||
"husky": "^9.1.7",
|
||||
"lint-staged": "^15.3.0",
|
||||
"prettier": "^3.4.2",
|
||||
|
||||
30
scripts/fetch-formal-git-components.sh
Normal file
30
scripts/fetch-formal-git-components.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
COMPONENT_ROOT=$(pwd)/src/zen
|
||||
|
||||
EXTRA_COMPONENTS=(
|
||||
"scripts"
|
||||
"workflows"
|
||||
"winsign"
|
||||
"flatpak"
|
||||
"configs"
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
# iterate over the extra components and adding them to .formal-git/components
|
||||
for extra in "${EXTRA_COMPONENTS[@]}"; do
|
||||
echo "$extra" >> .formal-git/components
|
||||
done
|
||||
|
||||
# remove all empty lines
|
||||
sed -i '/^$/d' .formal-git/components
|
||||
43
scripts/update_ts_types.py
Normal file
43
scripts/update_ts_types.py
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
import os
|
||||
|
||||
FILES = [
|
||||
"index.d.ts",
|
||||
"lib.gecko.darwin.d.ts",
|
||||
"lib.gecko.dom.d.ts",
|
||||
"lib.gecko.glean.d.ts",
|
||||
"lib.gecko.linux.d.ts",
|
||||
"lib.gecko.modules.d.ts",
|
||||
"lib.gecko.nsresult.d.ts",
|
||||
"lib.gecko.services.d.ts",
|
||||
"lib.gecko.tweaks.d.ts",
|
||||
"lib.gecko.win32.d.ts",
|
||||
"lib.gecko.xpcom.d.ts",
|
||||
"lib.gecko.xpidl.d.ts",
|
||||
]
|
||||
|
||||
ENGINE_PATH = os.path.join("engine", "tools", "@types")
|
||||
SRC_PATH = os.path.join("src", "zen", "@types")
|
||||
|
||||
|
||||
def update_ts_types():
|
||||
os.system("cd engine && ./mach ts build && ./mach ts update")
|
||||
# copy the files from engine/tools/@types to src/@types
|
||||
for file in FILES:
|
||||
src_file = os.path.join(ENGINE_PATH, file)
|
||||
dest_file = os.path.join(SRC_PATH, file)
|
||||
if os.path.exists(src_file):
|
||||
os.system(f"cp {src_file} {dest_file}")
|
||||
else:
|
||||
print(f"File {src_file} does not exist.")
|
||||
|
||||
# add zen.d.ts to the end of index.d.ts
|
||||
with open(os.path.join(SRC_PATH, "index.d.ts"), "a") as f:
|
||||
f.write("\n")
|
||||
f.write('/// <reference types="./zen.d.ts" />\n')
|
||||
f.write('\n')
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
update_ts_types()
|
||||
print("Updated TypeScript types.")
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index c91f39b3afbe712355194593ae39514a83de6605..e6c2b77a69d9274ff1c7578ab4df4f07533f7441 100644
|
||||
index 38508fffccbce801a02d4a4211f368674307c4d3..5ce56c36da2e242ad81621c2032eb68dcd26e960 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -3850,8 +3850,6 @@ dependencies = [
|
||||
@@ -3931,8 +3931,6 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mime_guess"
|
||||
version = "2.0.4"
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index a99b447250d36dd0146e031fa22503bc88eeae39..86829fc7075054f832a04825c98325a925cf5b0f 100644
|
||||
index d3d529b487f80d4b4f3bfa13cdd3f62946352db8..b35a9e0e3339d48d1cd0cab7b22d030f330e40d1 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -205,6 +205,9 @@ rure = { path = "third_party/rust/rure" }
|
||||
@@ -217,6 +217,9 @@ rure = { path = "third_party/rust/rure" }
|
||||
# Patch `plist` to work with `indexmap` 2.*
|
||||
plist = { path = "third_party/rust/plist" }
|
||||
|
||||
+# Patch mime_guess to add missing mime types
|
||||
+mime_guess = { path = "third_party/rust/mime_guess" }
|
||||
+
|
||||
# To-be-published changes.
|
||||
unicode-bidi = { git = "https://github.com/servo/unicode-bidi", rev = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c" }
|
||||
nss-gk-api = { git = "https://github.com/beurdouche/nss-gk-api", rev = "e48a946811ffd64abc78de3ee284957d8d1c0d63" }
|
||||
# Patch `unicode-width` 0.1.* to 0.2.
|
||||
unicode-width = { path = "build/rust/unicode-width" }
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||
index be66de4a1ef044341c2e1d6953806550897df45a..ff6ef3511076b25e00ca4d0189f666ec7aa94fe8 100644
|
||||
index 40e3a057a1d4b2f9bcfb73fa5ff96b2555865434..a92bed06766dd930bd336d56cd9ddcf3c6c0eeca 100644
|
||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||
index 97acbf826f9427b06e0a54679b30269ce7b695f5..aeadcd0c72816612cd5c1ca1199fe2a363c637f4 100644
|
||||
index 89b8b830e8f53582dd9910b0172098d31a8d8967..51bdc847823cb95f811b7e9d2d864b9aacf0e364 100644
|
||||
--- a/browser/app/profile/firefox.js
|
||||
+++ b/browser/app/profile/firefox.js
|
||||
@@ -3362,3 +3362,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||
@@ -3375,3 +3375,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
||||
// Pref to enable extra logging for the content relevancy feature
|
||||
pref("toolkit.contentRelevancy.log", false);
|
||||
|
||||
@@ -19,6 +19,7 @@ pref("intl.multilingual.downloadEnabled", false);
|
||||
|
||||
// Restore session on startup
|
||||
pref("browser.startup.page", 3);
|
||||
pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||
|
||||
// Theme
|
||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
@@ -26,6 +27,11 @@ pref('browser.compactmode.show', true);
|
||||
|
||||
#ifdef XP_WIN
|
||||
pref("browser.privateWindowSeparation.enabled", false);
|
||||
|
||||
// Mica
|
||||
pref("widget.windows.mica", true);
|
||||
pref("widget.windows.mica.popups", true);
|
||||
pref("widget.windows.mica.toplevel-backdrop", 2);
|
||||
#endif
|
||||
|
||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||
@@ -52,7 +58,6 @@ pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
||||
pref("browser.topsites.contile.enabled", true);
|
||||
|
||||
// Pdf
|
||||
pref('browser.download.open_pdf_attachments_inline', true);
|
||||
pref('pdfjs.enableHighlightEditor', true);
|
||||
pref('pdfjs.enableHighlightFloatingButton', true);
|
||||
|
||||
@@ -115,7 +120,7 @@ pref('zen.theme.color-prefs.use-workspace-colors', true);
|
||||
|
||||
pref('zen.view.compact.hide-tabbar', true);
|
||||
pref('zen.view.compact.hide-toolbar', false);
|
||||
pref('zen.view.compact.toolbar-flash-popup', true);
|
||||
pref('zen.view.compact.toolbar-flash-popup', false);
|
||||
pref('zen.view.compact.toolbar-flash-popup.duration', 800);
|
||||
pref('zen.view.compact.toolbar-hide-after-hover.duration', 1000);
|
||||
pref('zen.view.compact.color-toolbar', true);
|
||||
@@ -137,10 +142,6 @@ pref('zen.view.experimental-rounded-view', false);
|
||||
pref('zen.view.experimental-rounded-view', true);
|
||||
#endif
|
||||
|
||||
#ifdef XP_WIN
|
||||
pref('zen.widget.windows.acrylic', true);
|
||||
#endif
|
||||
|
||||
// Glance
|
||||
pref('zen.glance.enabled', true);
|
||||
pref('zen.glance.hold-duration', 300); // in ms
|
||||
@@ -192,11 +193,14 @@ pref('zen.splitView.enable-tab-drop', true);
|
||||
pref('zen.splitView.min-resize-width', 7);
|
||||
pref('zen.splitView.rearrange-hover-size', 24);
|
||||
|
||||
// Zen Download Animations
|
||||
pref('zen.downloads.download-animation', true);
|
||||
pref('zen.downloads.download-animation-duration', 1000); // ms
|
||||
|
||||
// Startup flags
|
||||
pref('zen.startup.smooth-scroll-in-tabs', true);
|
||||
|
||||
// Zen Workspaces
|
||||
pref('zen.workspaces.disabled_for_testing', false);
|
||||
pref('zen.workspaces.hide-default-container-indicator', true);
|
||||
pref('zen.workspaces.force-container-workspace', false);
|
||||
pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false);
|
||||
@@ -222,9 +226,6 @@ pref('zen.watermark.enabled', false, sticky);
|
||||
pref('dom.private-attribution.submission.enabled', false);
|
||||
pref('dom.security.https_only_mode', true);
|
||||
|
||||
// Enable EME
|
||||
pref('media.eme.enabled', true);
|
||||
|
||||
// Crash reports
|
||||
pref("breakpad.reportURL", "");
|
||||
pref("browser.tabs.crashReporting.sendReport", false);
|
||||
@@ -270,13 +271,11 @@ pref("pdfjs.enableScripting", false);
|
||||
pref("extensions.postDownloadThirdPartyPrompt", false);
|
||||
|
||||
// Downloads
|
||||
pref("browser.download.always_ask_before_handling_new_types", true);
|
||||
pref("browser.download.manager.addToRecentDocs", false);
|
||||
pref('browser.download.open_pdf_attachments_inline', true);
|
||||
pref('browser.download.alwaysOpenPanel', false);
|
||||
|
||||
// Tracking protection
|
||||
pref("urlclassifier.trackingSkipURLs", "*.reddit.com, *.x.com, *.twimg.com, *.tiktok.com");
|
||||
pref("urlclassifier.features.socialtracking.skipURLs", "*.instagram.com, *.x.com, *.twimg.com");
|
||||
pref("network.cookie.sameSite.noneRequiresSecure", true);
|
||||
pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
pref("browser.uitour.enabled", false);
|
||||
|
||||
@@ -312,11 +311,14 @@ pref("mousewheel.default.delta_multiplier_y", 200);
|
||||
#endif
|
||||
|
||||
#if defined(XP_WIN)
|
||||
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
||||
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
||||
#endif
|
||||
|
||||
pref('browser.sessionstore.restore_pinned_tabs_on_demand', true);
|
||||
pref('browser.newtabpage.activity-stream.system.showWeather', true);
|
||||
#ifdef UNIX_BUT_NOT_MAC
|
||||
pref("widget.gtk.rounded-bottom-corners.enabled", true);
|
||||
#endif
|
||||
|
||||
pref('browser.newtabpage.activity-stream.system.showWeather', false);
|
||||
|
||||
// Enable experimental settings page (Used for Zen Labs)
|
||||
pref('browser.preferences.experimental', true);
|
||||
@@ -324,17 +326,11 @@ pref('browser.preferences.experimental', true);
|
||||
// Prefetching:
|
||||
pref("network.dns.disablePrefetch", false);
|
||||
pref("network.prefetch-next", true);
|
||||
pref("network.predictor.enabled", true);
|
||||
pref("network.dns.disablePrefetchFromHTTPS", false);
|
||||
pref("network.predictor.enable-hover-on-ssl", true);
|
||||
pref("network.http.speculative-parallel-limit", 10);
|
||||
pref("network.http.rcwn.enabled", false);
|
||||
|
||||
// Enable Browser Toolbox, Ctrl+Shift+Alt+I for debugging and modifying UI
|
||||
pref("devtools.debugger.remote-enabled", false);
|
||||
pref("devtools.chrome.enabled", true);
|
||||
|
||||
// Disable firefox's revamp
|
||||
// Disable Firefox's revamp
|
||||
pref("sidebar.revamp", false, locked);
|
||||
pref("sidebar.verticalTabs", false, locked);
|
||||
|
||||
@@ -386,14 +382,14 @@ pref('zen.widget.linux.transparency', false);
|
||||
#endif
|
||||
|
||||
// Urlbar and autocomplete
|
||||
pref("browser.urlbar.maxRichResults", 6);
|
||||
pref("browser.urlbar.maxRichResults", 8);
|
||||
pref("browser.urlbar.trimHttps", true);
|
||||
pref("browser.search.separatePrivateDefault.ui.enabled", true);
|
||||
pref("browser.urlbar.update2.engineAliasRefresh", true);
|
||||
pref("browser.search.suggest.enabled", false);
|
||||
pref("browser.urlbar.quicksuggest.enabled", false);
|
||||
pref("browser.urlbar.suggest.quicksuggest.sponsored", false);
|
||||
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false);
|
||||
pref("browser.urlbar.quicksuggest.enabled", false, locked);
|
||||
pref("browser.urlbar.suggest.quicksuggest.sponsored", false, locked);
|
||||
pref("browser.urlbar.suggest.quicksuggest.nonsponsored", false, locked);
|
||||
pref("browser.urlbar.groupLabels.enabled", false);
|
||||
pref("browser.urlbar.keepPanelOpenDuringImeComposition", true); // IMPORTANT: Fixes closing the urlbar when on some languages
|
||||
pref("browser.formfill.enable", false);
|
||||
@@ -449,10 +445,6 @@ pref("browser.ml.chat.sidebar", false);
|
||||
pref("browser.ml.enable", false);
|
||||
|
||||
// ---- Experimental settings to try make zen faster
|
||||
pref("gfx.canvas.accelerated.cache-items", 32768);
|
||||
pref("gfx.canvas.accelerated.cache-size", 256);
|
||||
pref("gfx.content.skia-font-cache-size", 80);
|
||||
|
||||
pref("media.memory_cache_max_size", 1048576);
|
||||
pref("media.cache_readahead_limit", 9000);
|
||||
pref("media.cache_resume_threshold", 3600);
|
||||
@@ -464,3 +456,11 @@ pref("image.mem.decode_bytes_at_a_time", 32768);
|
||||
pref("gfx.canvas.accelerated", true);
|
||||
pref("media.hardware-video-decoding.enabled", true);
|
||||
pref("layers.gpu-process.enabled", true);
|
||||
|
||||
// Picture-in-picture
|
||||
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
||||
// TODO: Enable once we have a proper settings page
|
||||
pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", false);
|
||||
|
||||
// More Privacy
|
||||
pref("extensions.getAddons.cache.enabled", false);
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
||||
index 2ca8bdd2674fb4addf3bbf94ff17abc5c93c6293..dd965d8d190e8cdacbeb3d80995ad1a906e64079 100644
|
||||
index 7d7e8697f02f90d4f336c9ab0a73a89848e0c21c..d113b439888d26629ce5f6b5d35f8fa12249774b 100644
|
||||
--- a/browser/base/content/browser-box.inc.xhtml
|
||||
+++ b/browser/base/content/browser-box.inc.xhtml
|
||||
@@ -26,7 +26,13 @@
|
||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||
<box id="after-splitter"></box>
|
||||
</div>
|
||||
@@ -23,7 +23,13 @@
|
||||
<browser id="sidebar" autoscroll="false" disablehistory="true" disablefullscreen="true" tooltip="aHTMLTooltip"/>
|
||||
</vbox>
|
||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||
+<vbox flex="1" id="zen-appcontent-wrapper">
|
||||
+<html:div id="zen-appcontent-navbar-container"></html:div>
|
||||
+<hbox id="zen-tabbox-wrapper" flex="1">
|
||||
+ <html:div id="zen-appcontent-navbar-container"></html:div>
|
||||
+ <hbox id="zen-tabbox-wrapper" flex="1">
|
||||
<tabbox id="tabbrowser-tabbox" flex="1" tabcontainer="tabbrowser-tabs">
|
||||
+#include zen-tabbrowser-elements.inc.xhtml
|
||||
<tabpanels id="tabbrowser-tabpanels" flex="1" selectedIndex="0"/>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||
index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f288919ae0d 100644
|
||||
index ea79d296e7dd0f8fd812b0677a252af5cf7ad26e..bd95ef5d6b99399c859af1cf71d9d62477f4ac2b 100644
|
||||
--- a/browser/base/content/browser.js
|
||||
+++ b/browser/base/content/browser.js
|
||||
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||
@@ -10,7 +10,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
||||
DevToolsSocketStatus:
|
||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||
@@ -2698,6 +2699,11 @@ var XULBrowserWindow = {
|
||||
@@ -2338,6 +2339,11 @@ var XULBrowserWindow = {
|
||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||
|
||||
@@ -22,7 +22,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||
|
||||
if (!gMultiProcessBrowser) {
|
||||
@@ -5194,7 +5200,7 @@ function switchToTabHavingURI(
|
||||
@@ -4814,7 +4820,7 @@ function switchToTabHavingURI(
|
||||
ignoreQueryString || replaceQueryString,
|
||||
ignoreFragmentWhenComparing
|
||||
);
|
||||
@@ -31,7 +31,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
||||
for (let i = 0; i < browsers.length; i++) {
|
||||
let browser = browsers[i];
|
||||
let browserCompare = cleanURL(
|
||||
@@ -5235,7 +5241,7 @@ function switchToTabHavingURI(
|
||||
@@ -4857,7 +4863,7 @@ function switchToTabHavingURI(
|
||||
}
|
||||
|
||||
if (!doAdopt) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||
index 0d0a559a6473149b50f4bf18d059e86907c4acd3..25ad798eb26f04262d069fdaf1f3fb00adec9807 100644
|
||||
index 51a25aaa5558e6e17246d54a7ed95d5ddf3ecdab..b49984c8711fc9f5f19f0cf6ecca07a8cca0d125 100644
|
||||
--- a/browser/base/content/browser.xhtml
|
||||
+++ b/browser/base/content/browser.xhtml
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -10,35 +10,28 @@ index 0d0a559a6473149b50f4bf18d059e86907c4acd3..25ad798eb26f04262d069fdaf1f3fb00
|
||||
persist="screenX screenY width height sizemode"
|
||||
data-l10n-sync="true">
|
||||
<head>
|
||||
@@ -104,6 +105,8 @@
|
||||
@@ -104,8 +105,11 @@
|
||||
|
||||
<title data-l10n-id="browser-main-window-default-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.
|
||||
@@ -148,6 +151,7 @@
|
||||
window.addEventListener("DOMContentLoaded",
|
||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
||||
</script>
|
||||
<script src="chrome://browser/content/global-scripts.js"></script>
|
||||
<script src="chrome://browser/content/browser-main.js"></script>
|
||||
+#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)
|
||||
@@ -169,9 +173,11 @@
|
||||
@@ -127,9 +131,12 @@
|
||||
</vbox>
|
||||
</html:template>
|
||||
|
||||
-#include navigator-toolbox.inc.xhtml
|
||||
-
|
||||
-#include browser-box.inc.xhtml
|
||||
+ <hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
||||
+ <vbox id="zen-toast-container"></vbox>
|
||||
+ #include navigator-toolbox.inc.xhtml
|
||||
+ #include browser-box.inc.xhtml
|
||||
+ </hbox>
|
||||
+<hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
||||
+ <vbox id="zen-toast-container"></vbox>
|
||||
#include navigator-toolbox.inc.xhtml
|
||||
|
||||
#include browser-box.inc.xhtml
|
||||
+</hbox>
|
||||
|
||||
<html:template id="customizationPanel">
|
||||
<box id="customization-container" flex="1" hidden="true"><![CDATA[
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c5d0f33a6 100644
|
||||
index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..b5735712aaa7c2ae2baa4b858e735413b130ca94 100644
|
||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
@@ -2,7 +2,7 @@
|
||||
@@ -11,46 +11,29 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
||||
<script src="chrome://browser/content/navigator-toolbox.js" />
|
||||
|
||||
<!-- Menu -->
|
||||
@@ -17,9 +17,8 @@
|
||||
@@ -17,9 +17,9 @@
|
||||
#include browser-menubar.inc
|
||||
</toolbaritem>
|
||||
<spacer flex="1" skipintoolbarset="true" style="order: 1000;"/>
|
||||
-#include titlebar-items.inc.xhtml
|
||||
</toolbar>
|
||||
-
|
||||
|
||||
+<hbox id="titlebar">
|
||||
<toolbar id="TabsToolbar"
|
||||
class="browser-toolbar browser-titlebar"
|
||||
fullscreentoolbar="true"
|
||||
@@ -32,7 +31,7 @@
|
||||
|
||||
<hbox class="titlebar-spacer" type="pre-tabs"/>
|
||||
|
||||
- <hbox flex="1" align="end" class="toolbar-items">
|
||||
+ <hbox flex="1" align="start" class="toolbar-items">
|
||||
<toolbartabstop/>
|
||||
<hbox id="TabsToolbar-customization-target" flex="1">
|
||||
<toolbarbutton id="firefox-view-button"
|
||||
@@ -40,6 +39,7 @@
|
||||
data-l10n-id="toolbar-button-firefox-view-2"
|
||||
role="button"
|
||||
aria-pressed="false"
|
||||
+ hidden="true"
|
||||
cui-areatype="toolbar"
|
||||
removable="true"/>
|
||||
|
||||
@@ -50,6 +50,10 @@
|
||||
tooltip="tabbrowser-tab-tooltip"
|
||||
orient="horizontal"
|
||||
stopwatchid="FX_TAB_CLICK_MS">
|
||||
+<html:div id="zen-essentials-container" skipintoolbarset="true"></html:div>
|
||||
stopwatchid="tabClick">
|
||||
+<html:div id="zen-essentials-wrapper" skipintoolbarset="true"></html:div>
|
||||
+<hbox id="zen-current-workspace-indicator-container"></hbox>
|
||||
+<html:div id="zen-tabs-wrapper">
|
||||
+<html:div id="zen-browser-tabs-container">
|
||||
<hbox class="tab-drop-indicator" hidden="true"/>
|
||||
<html:span id="tab-drag-empty-feedback" role="presentation"/>
|
||||
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
||||
# significantly, there is an optimization in
|
||||
@@ -75,6 +79,8 @@
|
||||
@@ -76,6 +80,8 @@
|
||||
tooltip="dynamic-shortcut-tooltip"
|
||||
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
|
||||
@@ -59,7 +42,7 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
||||
</tabs>
|
||||
|
||||
<toolbarbutton id="new-tab-button"
|
||||
@@ -100,10 +106,10 @@
|
||||
@@ -101,9 +107,10 @@
|
||||
#include private-browsing-indicator.inc.xhtml
|
||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
|
||||
@@ -67,20 +50,7 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
||||
+#include zen-sidebar-icons.inc.xhtml
|
||||
|
||||
</toolbar>
|
||||
-
|
||||
+</hbox>
|
||||
|
||||
<toolbar id="nav-bar"
|
||||
class="browser-toolbar chromeclass-location"
|
||||
data-l10n-id="navbar-accessible"
|
||||
@@ -489,10 +495,10 @@
|
||||
consumeanchor="PanelUI-button"
|
||||
data-l10n-id="appmenu-menu-button-closed2"/>
|
||||
</toolbaritem>
|
||||
+#include titlebar-items.inc.xhtml
|
||||
<hbox class="titlebar-spacer" type="post-tabs"/>
|
||||
#include private-browsing-indicator.inc.xhtml
|
||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
-#include titlebar-items.inc.xhtml
|
||||
</toolbar>
|
||||
|
||||
<toolbar id="PersonalToolbar"
|
||||
|
||||
@@ -1,16 +1,11 @@
|
||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||
index 94d3c2bb401c2e4246340a6c2d63c9d3561ff5e1..62c599f78748e708c8f36c05935822e8808996b5 100644
|
||||
index 3bd0ee8af8b696161d18fd2a978f9e25972ed3ad..9e602a942271bd54231dc66363f8db51aea9e78a 100644
|
||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||
@@ -1109,6 +1109,13 @@ export class nsContextMenu {
|
||||
@@ -1111,6 +1111,8 @@ export class nsContextMenu {
|
||||
!this.isSecureAboutPage()
|
||||
);
|
||||
|
||||
+ this.showItem(
|
||||
+ "context-zenAddToWebPanel",
|
||||
+ this.onLink && !this.onMailtoLink && !this.onTelLink
|
||||
+ );
|
||||
+
|
||||
+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink);
|
||||
+
|
||||
let canNotStrip =
|
||||
|
||||
@@ -10,7 +10,6 @@
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-tabs.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-ui.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-gradient-generator.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-rices.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-panel-ui.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-single-components.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-browser-container.css" />
|
||||
@@ -26,15 +25,16 @@
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-branding.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-welcome.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-media-controls.css" />
|
||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-download-box-animation.css" />
|
||||
</linkset>
|
||||
|
||||
# Scripts used all over the browser
|
||||
<script>
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenFolders.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs", this);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs", this);
|
||||
@@ -43,7 +43,5 @@ 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);
|
||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenDownloadAnimation.mjs", this);
|
||||
</script>
|
||||
|
||||
@@ -1,82 +1,106 @@
|
||||
|
||||
|
||||
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-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)
|
||||
|
||||
content/browser/zen-components/ZenDownloadAnimation.mjs (../../zen/downloads/ZenDownloadAnimation.mjs)
|
||||
content/browser/zen-styles/zen-download-arc-animation.css (../../zen/downloads/zen-download-arc-animation.css)
|
||||
content/browser/zen-styles/zen-download-box-animation.css (../../zen/downloads/zen-download-box-animation.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)
|
||||
|
||||
content/browser/zen-images/downloads/download.svg (../../zen/images/downloads/download.svg)
|
||||
content/browser/zen-images/downloads/archive.svg (../../zen/images/downloads/archive.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)
|
||||
|
||||
# FavIcons for startup
|
||||
content/browser/zen-images/favicons/calendar.ico (../../zen/images/favicons/calendar.ico)
|
||||
content/browser/zen-images/favicons/discord.ico (../../zen/images/favicons/discord.ico)
|
||||
content/browser/zen-images/favicons/figma.ico (../../zen/images/favicons/figma.ico)
|
||||
content/browser/zen-images/favicons/github.ico (../../zen/images/favicons/github.ico)
|
||||
content/browser/zen-images/favicons/notion.ico (../../zen/images/favicons/notion.ico)
|
||||
content/browser/zen-images/favicons/obsidian.ico (../../zen/images/favicons/obsidian.ico)
|
||||
content/browser/zen-images/favicons/slack.ico (../../zen/images/favicons/slack.ico)
|
||||
content/browser/zen-images/favicons/reddit.ico (../../zen/images/favicons/reddit.ico)
|
||||
content/browser/zen-images/favicons/x.ico (../../zen/images/favicons/x.ico)
|
||||
content/browser/zen-images/favicons/trello.ico (../../zen/images/favicons/trello.ico)
|
||||
@@ -2,6 +2,9 @@
|
||||
<command id="cmd_zenCompactModeToggle" />
|
||||
<command id="cmd_zenCompactModeShowSidebar" />
|
||||
<command id="cmd_zenCompactModeShowToolbar" />
|
||||
<command id="cmd_zenCompactModeHideSidebar" />
|
||||
<command id="cmd_zenCompactModeHideToolbar" />
|
||||
<command id="cmd_zenCompactModeHideBoth" />
|
||||
|
||||
<command id="cmd_zenWorkspaceForward" />
|
||||
<command id="cmd_zenWorkspaceBackward" />
|
||||
@@ -11,6 +14,7 @@
|
||||
<command id="cmd_zenSplitViewHorizontal" />
|
||||
<command id="cmd_zenSplitViewUnsplit" />
|
||||
<command id="cmd_zenSplitViewLinkInNewTab" />
|
||||
<command id="cmd_zenSplitViewContextMenu" />
|
||||
|
||||
<!-- Workspace commands -->
|
||||
<command id="cmd_zenWorkspaceSwitch1" />
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
|
||||
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left" onpopuphidden="gZenThemePicker.handlePanelClose();" onpopupshowing="gZenThemePicker.handlePanelOpen();">
|
||||
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left">
|
||||
<panelmultiview id="PanelUI-zen-gradient-generator-multiview" mainViewId="PanelUI-zen-gradient-generator-view">
|
||||
<panelview id="PanelUI-zen-gradient-generator-view" class="PanelUI-subView zen-theme-picker" role="document" mainview-with-header="true" has-custom-header="true">
|
||||
<hbox>
|
||||
@@ -34,7 +34,7 @@
|
||||
<hbox id="PanelUI-zen-gradient-colors-wrapper">
|
||||
<vbox flex="1">
|
||||
<label data-l10n-id="zen-panel-ui-gradient-generator-opacity-text"></label>
|
||||
<html:input type="range" min="0" max="1" value="0.5" step="0.05" oninput="gZenThemePicker.onOpacityChange(event);" id="PanelUI-zen-gradient-generator-opacity" />
|
||||
<html:input type="range" min="0" max="1" value="0.5" step="0.05" id="PanelUI-zen-gradient-generator-opacity" />
|
||||
</vbox>
|
||||
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
||||
</vbox>
|
||||
@@ -45,7 +45,7 @@
|
||||
<label data-l10n-id="zen-panel-ui-gradient-generator-custom-color"></label>
|
||||
<hbox>
|
||||
<html:input type="text" placeholder="#000000" id="PanelUI-zen-gradient-generator-custom-input" />
|
||||
<toolbarbutton id="PanelUI-zen-gradient-generator-color-custom-add" class="subviewbutton" oncommand="gZenThemePicker.addCustomColor();" data-l10n-id="zen-panel-ui-gradient-generator-custom-color-add">
|
||||
<toolbarbutton id="PanelUI-zen-gradient-generator-color-custom-add" class="subviewbutton" data-l10n-id="zen-panel-ui-gradient-generator-custom-color-add">
|
||||
<image></image>
|
||||
</toolbarbutton>
|
||||
</hbox>
|
||||
@@ -57,16 +57,16 @@
|
||||
</panelmultiview>
|
||||
</panel>
|
||||
|
||||
<panel flip="slide" type="arrow" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left" onpopuphidden="ZenWorkspaces.handlePanelHidden();">
|
||||
<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" closemenu="none">
|
||||
<vbox>
|
||||
<hbox>
|
||||
<h3 data-l10n-id="zen-panel-ui-workspaces-text" id="PanelUI-zen-workspaces-header"></h3>
|
||||
<toolbarbutton id="PanelUI-zen-workspaces-reorder-mode" oncommand="ZenWorkspaces.toggleReorderMode();" class="subviewbutton">
|
||||
<toolbarbutton id="PanelUI-zen-workspaces-reorder-mode" class="subviewbutton">
|
||||
<image></image>
|
||||
</toolbarbutton>
|
||||
<toolbarbutton id="PanelUI-zen-workspaces-new" oncommand="ZenWorkspaces.openSaveDialog();" class="subviewbutton">
|
||||
<toolbarbutton id="PanelUI-zen-workspaces-new" class="subviewbutton">
|
||||
<image></image>
|
||||
</toolbarbutton>
|
||||
</hbox>
|
||||
@@ -78,14 +78,14 @@
|
||||
<vbox class="PanelUI-zen-workspaces-user-create">
|
||||
<h1 data-l10n-id="zen-panel-ui-workspaces-create-text"></h1>
|
||||
<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 class="PanelUI-zen-workspaces-icons-container create"></hbox>
|
||||
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-create-footer">
|
||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-create-save" oncommand="ZenWorkspaces.saveWorkspaceFromCreate();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
|
||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-create-save" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
|
||||
</button>
|
||||
<button id="PanelUI-zen-workspaces-create-cancel" oncommand="ZenWorkspaces.closeWorkspacesSubView();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-cancel">
|
||||
<button id="PanelUI-zen-workspaces-create-cancel" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-cancel">
|
||||
</button>
|
||||
</html:moz-button-group>
|
||||
</panelview>
|
||||
@@ -93,43 +93,39 @@
|
||||
<vbox class="PanelUI-zen-workspaces-user-create">
|
||||
<h1 data-l10n-id="zen-panel-ui-workspaces-edit-text"></h1>
|
||||
<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 class="PanelUI-zen-workspaces-icons-container edit"></hbox>
|
||||
<html:input autofocus="true" id="PanelUI-zen-workspaces-edit-input" type="text" placeholder="Enter workspace name" />
|
||||
</hbox>
|
||||
</vbox>
|
||||
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-edit-footer">
|
||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-edit-save" oncommand="ZenWorkspaces.saveWorkspaceFromEdit();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-save">
|
||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-edit-save" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-save">
|
||||
</button>
|
||||
<button id="PanelUI-zen-workspaces-edit-cancel" oncommand="ZenWorkspaces.closeWorkspacesSubView();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-cancel">
|
||||
<button id="PanelUI-zen-workspaces-edit-cancel" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-cancel">
|
||||
</button>
|
||||
</html:moz-button-group>
|
||||
</panelview>
|
||||
<panelview id="PanelUI-zen-workspaces-icon-picker" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
|
||||
<vbox id="PanelUI-zen-workspaces-icon-picker-wrapper">
|
||||
<html:div id="PanelUI-zen-workspaces-icon-search-bar">
|
||||
<html:input autofocus="true" type="text" id="PanelUI-zen-workspaces-icon-search-input" oninput="ZenWorkspaces.conductSearch();"/>
|
||||
<html:input autofocus="true" type="text" id="PanelUI-zen-workspaces-icon-search-input"/>
|
||||
</html:div>
|
||||
</vbox>
|
||||
</panelview>
|
||||
</panelmultiview>
|
||||
</panel>
|
||||
|
||||
<menupopup id="zenWorkspaceActionsMenu"
|
||||
onpopupshowing="ZenWorkspaces.updateContextMenu(this);"
|
||||
onpopuphidden="if (event.target == this) ZenWorkspaces.onContextMenuClose();">
|
||||
<menuitem id="context_zenOpenWorkspace" oncommand="ZenWorkspaces.openWorkspace();" data-l10n-id="zen-workspaces-panel-context-open"/>
|
||||
<menupopup id="zenWorkspaceActionsMenu">
|
||||
<menuitem id="context_zenOpenWorkspace" 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"/>
|
||||
<menuitem id="context_zenEditWorkspace" oncommand="ZenWorkspaces.contextEdit(event);" data-l10n-id="zen-workspaces-panel-context-edit"/>
|
||||
<menuitem id="context_zenEditWorkspace" data-l10n-id="zen-workspaces-panel-context-edit"/>
|
||||
<menu id="context_zenWorkspacesOpenInContainerTab"
|
||||
data-l10n-id="zen-workspaces-panel-context-open-in-container-tab"
|
||||
selection-type="single"
|
||||
node-type="link"
|
||||
hide-if-private-browsing="true"
|
||||
hide-if-usercontext-disabled="true">
|
||||
<menupopup oncommand="ZenWorkspaces.contextChangeContainerTab(event);"
|
||||
onpopupshowing="return ZenWorkspaces.createContainerTabMenu(event);" />
|
||||
<menupopup />
|
||||
</menu>
|
||||
<menuseparator/>
|
||||
<menuitem id="context_zenDeleteWorkspace" oncommand="ZenWorkspaces.contextDelete(event);" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
||||
<menuitem id="context_zenDeleteWorkspace" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
||||
</menupopup>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#include zen-media-controls.inc.xhtml
|
||||
#include ../../../zen/media/zen-media-controls.inc.xhtml
|
||||
<toolbar brighttext="true"
|
||||
id="zen-sidebar-bottom-buttons"
|
||||
fullscreentoolbar="true"
|
||||
@@ -8,6 +8,6 @@
|
||||
skipintoolbarset="true"
|
||||
context="toolbar-context-menu"
|
||||
mode="icons">
|
||||
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-expand-sidebar-button" data-l10n-id="sidebar-zen-expand" cui-areatype="toolbar" oncommand="gZenVerticalTabsManager.toggleExpand();"></toolbarbutton>
|
||||
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-expand-sidebar-button" command="cmd_zenToggleSidebar" data-l10n-id="sidebar-zen-expand" cui-areatype="toolbar"></toolbarbutton>
|
||||
<toolbarbutton id="zen-workspaces-button" class="chromeclass-toolbar-additional" overflows="false" removable="false"></toolbarbutton>
|
||||
</toolbar>
|
||||
|
||||
@@ -1,226 +0,0 @@
|
||||
#zen-rice-share-dialog-overlay:not([hidden]) {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
z-index: 3;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#zen-rice-share-dialog,
|
||||
#zen-rice-share-dialog-notice {
|
||||
color: var(--panel-color);
|
||||
background: var(--arrowpanel-background);
|
||||
border-radius: var(--zen-native-inner-radius);
|
||||
box-shadow: 0 0 1px 1px hsla(0, 0%, 0%, 0.2);
|
||||
border: var(--zen-appcontent-border);
|
||||
overflow: hidden;
|
||||
|
||||
animation: zen-jello-animation-large 0.4s ease;
|
||||
max-width: 400px;
|
||||
|
||||
&[animate='true'] {
|
||||
animation: zen-rice-submit-animation 1s cubic-bezier(0.77, 0, 0.18, 1);
|
||||
}
|
||||
|
||||
& .zen-rice-share-content {
|
||||
padding: 10px 0;
|
||||
border-top: var(--zen-appcontent-border);
|
||||
background: var(--arrowpanel-background);
|
||||
position: relative;
|
||||
align-items: center;
|
||||
|
||||
min-height: 50px;
|
||||
|
||||
&:has(#zen-rice-share-first-form:not([fade-out])),
|
||||
&:has(#zen-rice-share-success) {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
& > 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;
|
||||
}
|
||||
}
|
||||
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#zen-profile-button {
|
||||
& stack {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
& .toolbarbutton-badge {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
& stack {
|
||||
width: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
|
||||
height: calc(2 * var(--toolbarbutton-inner-padding) + 16px) !important;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
& > image {
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
& #zen-profile-button-icon {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
list-style-image: var(--avatar-image-url);
|
||||
border-radius: 50%;
|
||||
pointer-events: none;
|
||||
list-style-image: var(--avatar-image-url);
|
||||
-moz-context-properties: fill;
|
||||
fill: currentColor;
|
||||
border: 1px solid var(--zen-colors-border);
|
||||
}
|
||||
}
|
||||
|
||||
/* Bookmarks sidebar */
|
||||
#zen-tabbox-wrapper {
|
||||
& #sidebar-splitter {
|
||||
opacity: 0;
|
||||
margin: 0 calc(-1 * var(--zen-element-separation));
|
||||
}
|
||||
|
||||
& #sidebar-box {
|
||||
border-radius: var(--zen-native-inner-radius);
|
||||
box-shadow: var(--zen-big-shadow);
|
||||
overflow: hidden;
|
||||
&[positionend=''] {
|
||||
order: 6;
|
||||
& ~ #sidebar-splitter {
|
||||
order: 5;
|
||||
}
|
||||
}
|
||||
:root:not([zen-right-side='true']) &[positionend='true'] {
|
||||
margin-right: var(--zen-element-separation);
|
||||
}
|
||||
|
||||
:root[zen-right-side='true'] & {
|
||||
margin-left: var(--zen-element-separation);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Menubar */
|
||||
#toolbar-menubar {
|
||||
display: none !important;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
/* Styles for both vertical and horizontal tabs */
|
||||
@import url('chrome://browser/content/zen-styles/zen-tabs/vertical-tabs.css');
|
||||
@import url('chrome://browser/content/zen-styles/zen-tabs/horizontal-tabs.css');
|
||||
|
||||
#zen-tabbox-wrapper {
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.workspaces.hide-default-container-indicator') {
|
||||
.tabbrowser-tab[zenDefaultUserContextId='true'] .tab-context-line {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
@@ -1,335 +0,0 @@
|
||||
/*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
@media not -moz-pref('zen.tabs.vertical') {
|
||||
:root #browser {
|
||||
display: flex !important;
|
||||
flex-direction: column !important;
|
||||
}
|
||||
|
||||
& #navigator-toolbox {
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
max-width: unset !important;
|
||||
min-width: unset !important;
|
||||
width: 100% !important;
|
||||
padding: var(--zen-toolbox-padding) !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs {
|
||||
display: -webkit-box !important;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-pack: start;
|
||||
max-width: 10000px !important;
|
||||
|
||||
--tabstrip-min-height: calc(var(--tab-min-height) - 4 * var(--tab-block-margin));
|
||||
--tab-min-height: 10px !important;
|
||||
}
|
||||
|
||||
.vertical-pinned-tabs-container-separator {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container,
|
||||
#vertical-pinned-tabs-container,
|
||||
#tabbrowser-arrowscrollbox {
|
||||
-webkit-box-flex: 1;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container:empty {
|
||||
-webkit-box-flex: 0 !important;
|
||||
width: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
visibility: collapse !important;
|
||||
}
|
||||
#navigator-toolbox {
|
||||
flex-direction: row !important;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#titlebar {
|
||||
flex-direction: row !important;
|
||||
width: 100%;
|
||||
height: 36px !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container {
|
||||
--tab-min-height: 36px !important;
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
padding-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container {
|
||||
display: flex !important;
|
||||
flex-direction: row !important;
|
||||
padding-inline-end: 0 !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container .tabbrowser-tab {
|
||||
width: 0% !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tabbrowser-tab {
|
||||
width: 0% !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab[zen-glance-tab='true'] {
|
||||
.tab-label-container {
|
||||
display: none !important;
|
||||
width: 0px !important;
|
||||
max-width: 0px !important;
|
||||
}
|
||||
}
|
||||
|
||||
#tabbrowser-arrowscrollbox {
|
||||
display: flex !important;
|
||||
max-width: -moz-available;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
#TabsToolbar {
|
||||
flex-direction: row !important;
|
||||
gap: 8px;
|
||||
overflow: hidden !important;
|
||||
display: flex !important;
|
||||
}
|
||||
|
||||
#TabsToolbar-customization-target {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient='vertical'] {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
|
||||
tabs {
|
||||
flex-direction: row !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container {
|
||||
container-name: tab-container;
|
||||
container-type: normal;
|
||||
max-width: 36px !important;
|
||||
flex: 1 1 36px !important;
|
||||
}
|
||||
#vertical-pinned-tabs-container {
|
||||
container-name: tab-container;
|
||||
container-type: normal;
|
||||
max-width: 36px !important;
|
||||
min-width: 36px !important;
|
||||
flex: 1 1 36px !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tab-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tab-reset-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tab-label-container {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tab-icon-image {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab {
|
||||
container-name: tab-container;
|
||||
container-type: normal;
|
||||
min-width: 40px !important;
|
||||
flex: 1 1 150px !important;
|
||||
width: -moz-available;
|
||||
|
||||
&:is(:hover, [visuallyselected]) .tab-close-button {
|
||||
display: block;
|
||||
--tab-inline-padding: 0; /* Avoid weird padding */
|
||||
margin-inline-end: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tabbrowser-tab[selected] {
|
||||
flex: 2 0 150px !important;
|
||||
}
|
||||
|
||||
@container tab-container (max-width: 80px) {
|
||||
.tab-close-button {
|
||||
margin-right: 0px !important;
|
||||
}
|
||||
.tab-icon-image {
|
||||
padding: 0 !important;
|
||||
margin-left: min(2.5px, 5%) !important;
|
||||
margin-right: min(10px, 5%) !important;
|
||||
}
|
||||
.tab-label-container,
|
||||
.tab-content {
|
||||
margin: 0 !important;
|
||||
padding-left: min(8px, 5%) !important;
|
||||
padding-right: min(8px, 5%) !important;
|
||||
}
|
||||
}
|
||||
|
||||
@container tab-container (max-width: 44px) {
|
||||
.tab-label-container {
|
||||
display: none !important;
|
||||
}
|
||||
.tab-content {
|
||||
justify-content: space-around !important;
|
||||
}
|
||||
.tab-close-button {
|
||||
display: none !important;
|
||||
}
|
||||
.tabbrowser-tab[selected] {
|
||||
& .tab-icon-image,
|
||||
.tab-icon-stack {
|
||||
display: none !important;
|
||||
}
|
||||
& .tab-content {
|
||||
justify-content: space-around !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
.tab-close-button {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container::after {
|
||||
z-index: -1;
|
||||
content: '';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 1px;
|
||||
height: 45%;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background: hsl(255, 10%, 100%);
|
||||
}
|
||||
|
||||
/* Other UI Elements */
|
||||
.zen-current-workspace-indicator {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-splitter {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#tabbrowser-tabpanels {
|
||||
padding-left: var(--zen-element-separation) !important;
|
||||
}
|
||||
|
||||
#appcontent * {
|
||||
overflow: visible !important;
|
||||
}
|
||||
|
||||
#TabsToolbar-customization-target::after {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
#zen-sidebar-bottom-buttons {
|
||||
width: auto !important;
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
/* Height Adjustments */
|
||||
#vertical-pinned-tabs-container,
|
||||
#zen-essentials-container,
|
||||
#tabbrowser-arrowscrollbox {
|
||||
max-height: none !important;
|
||||
}
|
||||
|
||||
#PanelUI-zen-gradient-generator {
|
||||
min-width: 390px !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container:not(:empty),
|
||||
#vertical-pinned-tabs-container:not(:empty),
|
||||
#tabbrowser-arrowscrollbox {
|
||||
-webkit-box-flex: 1;
|
||||
min-width: min-content;
|
||||
width: auto !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container:not(:empty) {
|
||||
display: -webkit-box !important;
|
||||
-webkit-box-orient: horizontal;
|
||||
min-width: fit-content !important;
|
||||
width: fit-content !important;
|
||||
position: relative;
|
||||
margin-right: -1px !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container:not(:empty) .tabbrowser-tab {
|
||||
position: relative;
|
||||
display: -webkit-box !important;
|
||||
}
|
||||
|
||||
#tabbrowser-arrowscrollbox {
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container:empty,
|
||||
#zen-essentials-container:empty {
|
||||
-webkit-box-flex: 0 !important;
|
||||
width: 0 !important;
|
||||
min-width: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
border: none !important;
|
||||
visibility: collapse !important;
|
||||
}
|
||||
|
||||
#nav-bar {
|
||||
width: unset !important;
|
||||
min-width: 500px !important;
|
||||
}
|
||||
|
||||
#tabbrowser-arrowscrollbox-periphery {
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
hbox#nav-bar-customization-target toolbarbutton.chromeclass-toolbar-additional:nth-of-type(1) {
|
||||
padding-inline-start: var(--toolbar-start-end-padding) !important;
|
||||
}
|
||||
|
||||
toolbar#PersonalToolbar {
|
||||
padding-left: 6px !important;
|
||||
}
|
||||
|
||||
.tab-context-line {
|
||||
width: 100% !important;
|
||||
height: 3px !important;
|
||||
}
|
||||
|
||||
.tabbrowser-tab[zen-glance-tab='true'] {
|
||||
flex-basis: fit-content !important;
|
||||
max-width: 36px !important;
|
||||
}
|
||||
|
||||
#zen-essentials-container .tabbrowser-tab[zen-glance-tab='true'] {
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container .tabbrowser-tab[zen-glance-tab='true'] {
|
||||
position: absolute !important;
|
||||
}
|
||||
|
||||
#TabsToolbar-customization-target toolbarbutton,
|
||||
#TabsToolbar-customization-target toolbarpaletteitem {
|
||||
-webkit-box-flex: 0 !important;
|
||||
min-width: min-content;
|
||||
width: auto !important;
|
||||
|
||||
.toolbarbutton-text {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,2 @@
|
||||
#include zen-splitview-overlay.inc.xhtml
|
||||
#include zen-glance.inc.xhtml
|
||||
#include ../../../zen/split-view/zen-splitview-overlay.inc.xhtml
|
||||
#include ../../../zen/glance/zen-glance.inc.xhtml
|
||||
File diff suppressed because one or more lines are too long
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||
index 824c5df20ee13af7af2ce8657506f6f3f457aafc..6ef49535676325768497c1804f91c9e93959199a 100644
|
||||
index 4401c78d34007fa7481f8b8eeb070d17110821ae..064f14a7adf4ce1b98d58302998272444466c3ee 100644
|
||||
--- a/browser/base/jar.mn
|
||||
+++ b/browser/base/jar.mn
|
||||
@@ -103,3 +103,5 @@ browser.jar:
|
||||
@@ -105,3 +105,5 @@ browser.jar:
|
||||
|
||||
# L10n resources and overrides.
|
||||
% override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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(`
|
||||
<vbox id="zen-rice-share-dialog-overlay" hidden="true">
|
||||
<vbox id="zen-rice-share-dialog-notice">
|
||||
<h1 data-l10n-id="zen-rice-share-notice" />
|
||||
<p data-l10n-id="zen-rice-share-notice-description" />
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<html:a href="https://docs.zen-browser.app/guides/" target="_blank" data-l10n-id="zen-learn-more-text" onclick="gZenThemePicker.riceManager.openLink(event)" />
|
||||
<button onclick="gZenThemePicker.riceManager.acceptNotice()" class="footer-button" data-l10n-id="zen-rice-share-accept" slot="primary" default="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-dialog" hidden="true">
|
||||
<html:img src="chrome://browser/content/zen-images/brand-header.svg" class="zen-rice-share-header" />
|
||||
<hbox class="zen-rice-share-content">
|
||||
<vbox id="zen-rice-share-first-form">
|
||||
<html:input type="text" data-l10n-id="zen-rice-share-name" id="zen-rice-share-name" oninput="gZenThemePicker.riceManager.validateShareDialog()" />
|
||||
<hbox class="zen-rice-share-author">
|
||||
<label data-l10n-id="zen-rice-share-author" />
|
||||
<html:input type="text" data-l10n-id="zen-rice-share-author-input" id="zen-rice-share-author" oninput="gZenThemePicker.riceManager.validateShareDialog();" />
|
||||
</hbox>
|
||||
<vbox zen-collapsed="true" id="zen-rice-share-options" onclick="gZenThemePicker.riceManager.toggleOptions(event)">
|
||||
<hbox class="options-header">
|
||||
<label data-l10n-id="zen-rice-share-include" />
|
||||
<image></image>
|
||||
</hbox>
|
||||
<checkbox data-l10n-id="zen-rice-share-include-userchrome" id="zen-rice-share-include-userchrome" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-usercontent" id="zen-rice-share-include-usercontent" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-mods" id="zen-rice-share-include-mods" />
|
||||
<vbox class="indent">
|
||||
<checkbox data-l10n-id="zen-rice-share-include-mod-prefs" id="zen-rice-share-include-mod-prefs" />
|
||||
</vbox>
|
||||
<checkbox data-l10n-id="zen-rice-share-include-preferences" id="zen-rice-share-include-preferences" />
|
||||
<checkbox data-l10n-id="zen-rice-share-include-workspace-themes" id="zen-rice-share-include-workspace-themes" />
|
||||
</vbox>
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<button onclick="gZenThemePicker.riceManager.cancel()" class="footer-button" data-l10n-id="zen-general-cancel" />
|
||||
<button onclick="gZenThemePicker.riceManager.submit()" class="footer-button" data-l10n-id="zen-rice-share-save" default="true" slot="primary" id="zen-rice-share-save" disabled="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-second-form" hidden="true">
|
||||
<hbox></hbox>
|
||||
<vbox id="zen-rice-share-error" hidden="true">
|
||||
<label data-l10n-id="zen-rice-share-error" />
|
||||
<button onclick="gZenThemePicker.riceManager.resetShareDialog()" data-l10n-id="zen-close-label" class="footer-button" />
|
||||
</vbox>
|
||||
</vbox>
|
||||
<vbox id="zen-rice-share-success" hidden="true">
|
||||
<h1 data-l10n-id="zen-rice-share-success" />
|
||||
<p data-l10n-id="zen-rice-share-succes-details" />
|
||||
<label data-l10n-id="zen-rice-share-success-link" />
|
||||
<html:input type="text" readonly="true" id="zen-rice-share-success-link" onclick="this.select()" />
|
||||
<html:moz-button-group class="panel-footer">
|
||||
<button onclick="gZenThemePicker.riceManager.resetShareDialog()" data-l10n-id="zen-close-label" class="footer-button" slot="primary" default="true" />
|
||||
</html:moz-button-group>
|
||||
</vbox>
|
||||
</hbox>
|
||||
</vbox>
|
||||
</vbox>
|
||||
`);
|
||||
document.getElementById('zen-main-app-wrapper').appendChild(this._shareDialog);
|
||||
this._shareDialog = document.getElementById('zen-rice-share-dialog-overlay');
|
||||
return this._shareDialog;
|
||||
}
|
||||
|
||||
get hasAcceptedNotice() {
|
||||
return Services.prefs.getBoolPref('zen.rice.share.notice.accepted', false);
|
||||
}
|
||||
|
||||
set hasAcceptedNotice(value) {
|
||||
Services.prefs.setBoolPref('zen.rice.share.notice.accepted', value);
|
||||
}
|
||||
|
||||
openLink(event) {
|
||||
event.stopPropagation();
|
||||
this.cancel();
|
||||
gZenUIManager.openAndChangeToTab('https://docs.zen-browser.app/guides/');
|
||||
}
|
||||
|
||||
acceptNotice() {
|
||||
this.hasAcceptedNotice = true;
|
||||
const notice = document.getElementById('zen-rice-share-dialog-notice');
|
||||
notice.setAttribute('hidden', 'true');
|
||||
this.openShareDialog();
|
||||
}
|
||||
|
||||
toggleOptions(event) {
|
||||
if (event.originalTarget.closest('.options-header')) {
|
||||
const options = document.getElementById('zen-rice-share-options');
|
||||
options.setAttribute('zen-collapsed', options.getAttribute('zen-collapsed') === 'true' ? 'false' : 'true');
|
||||
}
|
||||
this.validateShareDialog();
|
||||
}
|
||||
|
||||
openShareDialog() {
|
||||
window.docShell.treeOwner.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIAppWindow).rollupAllPopups();
|
||||
const dialog = this.shareDialog;
|
||||
dialog.removeAttribute('hidden');
|
||||
|
||||
if (!this.hasAcceptedNotice) {
|
||||
const notice = document.getElementById('zen-rice-share-dialog-notice');
|
||||
notice.removeAttribute('hidden');
|
||||
return;
|
||||
}
|
||||
|
||||
document.getElementById('zen-rice-share-dialog').removeAttribute('hidden');
|
||||
document.getElementById('zen-rice-share-dialog-notice').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-name').focus();
|
||||
|
||||
// Initialize the dialog with the current values
|
||||
this.validateShareDialog();
|
||||
}
|
||||
|
||||
resetShareDialog() {
|
||||
const dialog = this.shareDialog;
|
||||
dialog.setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-dialog').removeAttribute('animate');
|
||||
document.getElementById('zen-rice-share-name').value = '';
|
||||
document.getElementById('zen-rice-share-author').value = '';
|
||||
document.getElementById('zen-rice-share-save').disabled = true;
|
||||
document.getElementById('zen-rice-share-first-form').removeAttribute('fade-out');
|
||||
document.getElementById('zen-rice-share-second-form').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-second-form').removeAttribute('fade-out');
|
||||
document.getElementById('zen-rice-share-error').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-success').setAttribute('hidden', 'true');
|
||||
document.getElementById('zen-rice-share-options').setAttribute('zen-collapsed', 'true');
|
||||
|
||||
// Remove confetti module from memory
|
||||
this.confetti = null;
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.resetShareDialog();
|
||||
}
|
||||
|
||||
getAllowedRice() {
|
||||
return {
|
||||
userChrome: document.getElementById('zen-rice-share-include-userchrome').checked,
|
||||
userContent: document.getElementById('zen-rice-share-include-usercontent').checked,
|
||||
mods: document.getElementById('zen-rice-share-include-mods').checked,
|
||||
modPrefs: document.getElementById('zen-rice-share-include-mod-prefs').checked,
|
||||
preferences: document.getElementById('zen-rice-share-include-preferences').checked,
|
||||
workspaceThemes: document.getElementById('zen-rice-share-include-workspace-themes').checked,
|
||||
};
|
||||
}
|
||||
|
||||
get userAgent() {
|
||||
return `ZenBrowser/${Services.appinfo.version} (${gZenOperatingSystemCommonUtils.currentOperatingSystem})`;
|
||||
}
|
||||
|
||||
canShareRice() {
|
||||
const allowedRice = this.getAllowedRice();
|
||||
const modsPrefs = document.getElementById('zen-rice-share-include-mod-prefs');
|
||||
// remove "share mod prefs" if mods are not included
|
||||
if (!allowedRice.mods) {
|
||||
allowedRice.modPrefs = false;
|
||||
modsPrefs.disabled = true;
|
||||
}
|
||||
modsPrefs.disabled = !allowedRice.mods;
|
||||
return Object.values(allowedRice).some((v) => v);
|
||||
}
|
||||
|
||||
validateShareDialog() {
|
||||
const saveButton = document.getElementById('zen-rice-share-save');
|
||||
const authorInput = document.getElementById('zen-rice-share-author');
|
||||
const input = document.getElementById('zen-rice-share-name');
|
||||
saveButton.disabled =
|
||||
!this.canShareRice() ||
|
||||
input.value.trim().length < 3 ||
|
||||
input.value.trim().length > 30 ||
|
||||
authorInput.value.trim().length < 3 ||
|
||||
authorInput.value.trim().length > 15;
|
||||
}
|
||||
|
||||
async submit() {
|
||||
const firstForm = document.getElementById('zen-rice-share-first-form');
|
||||
const secondForm = document.getElementById('zen-rice-share-second-form');
|
||||
firstForm.setAttribute('fade-out', 'true');
|
||||
secondForm.removeAttribute('hidden');
|
||||
await this._submit();
|
||||
}
|
||||
|
||||
async _submit() {
|
||||
const allowedRice = this.getAllowedRice();
|
||||
const rice = await this._collector.packRice(allowedRice);
|
||||
const name = document.getElementById('zen-rice-share-name').value;
|
||||
const author = document.getElementById('zen-rice-share-author').value;
|
||||
const response = await this._sendRice({ name, author, rice });
|
||||
if (response) {
|
||||
this.showSuccessDialog(response);
|
||||
}
|
||||
}
|
||||
|
||||
async _sendRice({ name, author, rice }) {
|
||||
const headers = new Headers();
|
||||
headers.append('X-Zen-Rice-Name', name);
|
||||
headers.append('X-Zen-Rice-Author', author);
|
||||
headers.append('User-Agent', this.userAgent);
|
||||
headers.append('Content-Type', 'application/json');
|
||||
headers.append('Accept', 'application/json');
|
||||
let response;
|
||||
try {
|
||||
response = await fetch(`${ZEN_RICE_API}/rices`, {
|
||||
method: 'POST',
|
||||
headers,
|
||||
body: JSON.stringify(rice),
|
||||
});
|
||||
} catch (e) {
|
||||
this.showErrorMessage('An error occurred while sharing your rice. Please try again later.');
|
||||
console.error(e);
|
||||
return null;
|
||||
}
|
||||
// Here, response will never be a null object
|
||||
return await this._verifyResponse(response);
|
||||
}
|
||||
|
||||
async _verifyResponse(response) {
|
||||
const json = await response.json();
|
||||
if (!response.ok) {
|
||||
const message = json.message || 'An error occurred while sharing your rice.';
|
||||
this.showErrorMessage(message);
|
||||
console.error(json);
|
||||
return null;
|
||||
}
|
||||
return json;
|
||||
}
|
||||
|
||||
showErrorMessage(message) {
|
||||
const errorBox = document.getElementById('zen-rice-share-error');
|
||||
errorBox.removeAttribute('hidden');
|
||||
errorBox.querySelector('label').textContent = message;
|
||||
}
|
||||
|
||||
showSuccessDialog(riceInfo) {
|
||||
const { slug, token } = riceInfo;
|
||||
// 'token' is like some sort of password to edit the rice, do NOT expose it
|
||||
setTimeout(() => {
|
||||
document.getElementById('zen-rice-share-dialog').setAttribute('animate', 'true');
|
||||
const successBox = document.getElementById('zen-rice-share-success');
|
||||
document.getElementById('zen-rice-share-second-form').setAttribute('fade-out', 'true');
|
||||
successBox.removeAttribute('hidden');
|
||||
const link = document.getElementById('zen-rice-share-success-link');
|
||||
link.value = `${ZEN_RICE_API}/rices/${slug}`;
|
||||
this.showConffetti();
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
showConffetti() {
|
||||
const end = Date.now() + 2500;
|
||||
function frame() {
|
||||
this.conffettiWrapper({
|
||||
angle: 135,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
this.conffettiWrapper({
|
||||
angle: 45,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
this.conffettiWrapper({
|
||||
angle: 90,
|
||||
spread: 55,
|
||||
particleCount: 5,
|
||||
startVelocity: 55,
|
||||
origin: { y: 0.6 },
|
||||
});
|
||||
if (Date.now() < end) {
|
||||
requestAnimationFrame(frame.bind(this));
|
||||
}
|
||||
}
|
||||
frame.call(this);
|
||||
}
|
||||
|
||||
openRicePage({ name, id, author }) {
|
||||
console.log('Opening rice page: ', name, id, author);
|
||||
gBrowser.removeTab(gBrowser.selectedTab);
|
||||
}
|
||||
}
|
||||
|
||||
window.ZenRiceManager = ZenRiceManager;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
BROWSER_CHROME_MANIFESTS += [
|
||||
"tests/browser.toml",
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES.actors += [
|
||||
"actors/ZenGlanceChild.sys.mjs",
|
||||
"actors/ZenGlanceParent.sys.mjs",
|
||||
"actors/ZenThemeMarketplaceChild.sys.mjs",
|
||||
"actors/ZenThemeMarketplaceParent.sys.mjs",
|
||||
]
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
|
||||
index 7747d90981aea9437bf2d9cf46ec17be0b9ad64c..656d640da0efeb59a4037bb450e0cb1f69dda0ba 100644
|
||||
index 5911b276fdc9889d3cb61bac3d302ec5239e4a90..a405f8a0204e98fa9de08f1cd7b6761f0fc6198e 100644
|
||||
--- a/browser/components/BrowserContentHandler.sys.mjs
|
||||
+++ b/browser/components/BrowserContentHandler.sys.mjs
|
||||
@@ -1270,6 +1270,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||
index b8b6d30f0b3c968a8615ca601e06e50261d0dae6..5c2b718b902aed2ef8d7a4b622ba882ee937c655 100644
|
||||
index a6a7f9165aece774c3f1c15f7e352b11a4bf90f4..a4b6124b85f099c6f12d297fc26f2040370c337c 100644
|
||||
--- a/browser/components/BrowserGlue.sys.mjs
|
||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||
@@ -106,6 +106,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
WindowsGPOParser: "resource://gre/modules/policies/WindowsGPOParser.sys.mjs",
|
||||
clearTimeout: "resource://gre/modules/Timer.sys.mjs",
|
||||
setTimeout: "resource://gre/modules/Timer.sys.mjs",
|
||||
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
||||
});
|
||||
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
const lazy = {};
|
||||
|
||||
XPCOMUtils.defineLazyServiceGetters(lazy, {
|
||||
@@ -1896,7 +1897,7 @@ BrowserGlue.prototype = {
|
||||
lazy.TabCrashHandler.init();
|
||||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
||||
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
|
||||
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||
@@ -1886,6 +1887,7 @@ BrowserGlue.prototype = {
|
||||
|
||||
lazy.ProcessHangMonitor.init();
|
||||
-
|
||||
|
||||
+ lazy.gZenUIMigration.init(this._isNewProfile, aWindow);
|
||||
// A channel for "remote troubleshooting" code...
|
||||
let channel = new lazy.WebChannel(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d16ee46c8 100644
|
||||
index 91088fab1759b9af908912648d28daa5938a29c9..3f52ee8cd77ac171fd2cbf355ade1371e57d0db5 100644
|
||||
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
@@ -19,7 +19,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
|
||||
const kSpecialWidgetPfx = "customizableui-special-";
|
||||
|
||||
@@ -317,13 +318,11 @@ var CustomizableUIInternal = {
|
||||
@@ -338,13 +339,11 @@ var CustomizableUIInternal = {
|
||||
"vertical-spacer",
|
||||
"urlbar-container",
|
||||
"spring",
|
||||
@@ -35,7 +35,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
this.registerArea(
|
||||
CustomizableUI.AREA_NAVBAR,
|
||||
{
|
||||
@@ -331,7 +330,6 @@ var CustomizableUIInternal = {
|
||||
@@ -352,7 +351,6 @@ var CustomizableUIInternal = {
|
||||
overflowable: true,
|
||||
defaultPlacements: navbarPlacements,
|
||||
verticalTabsDefaultPlacements: [
|
||||
@@ -43,7 +43,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
"alltabs-button",
|
||||
],
|
||||
defaultCollapsed: false,
|
||||
@@ -356,10 +354,7 @@ var CustomizableUIInternal = {
|
||||
@@ -377,10 +375,7 @@ var CustomizableUIInternal = {
|
||||
{
|
||||
type: CustomizableUI.TYPE_TOOLBAR,
|
||||
defaultPlacements: [
|
||||
@@ -54,7 +54,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
],
|
||||
verticalTabsDefaultPlacements: [],
|
||||
defaultCollapsed: null,
|
||||
@@ -422,6 +417,7 @@ var CustomizableUIInternal = {
|
||||
@@ -462,6 +457,7 @@ var CustomizableUIInternal = {
|
||||
CustomizableUI.AREA_NAVBAR,
|
||||
CustomizableUI.AREA_BOOKMARKS,
|
||||
CustomizableUI.AREA_TABSTRIP,
|
||||
@@ -62,7 +62,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
]);
|
||||
if (AppConstants.platform != "macosx") {
|
||||
toolbars.add(CustomizableUI.AREA_MENUBAR);
|
||||
@@ -1151,6 +1147,9 @@ var CustomizableUIInternal = {
|
||||
@@ -1262,6 +1258,9 @@ var CustomizableUIInternal = {
|
||||
placements = gPlacements.get(area);
|
||||
}
|
||||
|
||||
@@ -72,7 +72,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
// For toolbars that need it, mark as dirty.
|
||||
let defaultPlacements = areaProperties.get("defaultPlacements");
|
||||
if (
|
||||
@@ -1564,7 +1563,7 @@ var CustomizableUIInternal = {
|
||||
@@ -1769,7 +1768,7 @@ var CustomizableUIInternal = {
|
||||
lazy.log.info(
|
||||
"Widget " + aWidgetId + " not found, unable to remove from " + aArea
|
||||
);
|
||||
@@ -81,7 +81,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
}
|
||||
|
||||
this.notifyDOMChange(widgetNode, null, container, true, () => {
|
||||
@@ -1574,7 +1573,7 @@ var CustomizableUIInternal = {
|
||||
@@ -1779,7 +1778,7 @@ var CustomizableUIInternal = {
|
||||
// We also need to remove the panel context menu if it's there:
|
||||
this.ensureButtonContextMenu(widgetNode);
|
||||
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
|
||||
@@ -90,7 +90,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
} else {
|
||||
window.gNavToolbox.palette.appendChild(widgetNode);
|
||||
}
|
||||
@@ -1704,16 +1703,16 @@ var CustomizableUIInternal = {
|
||||
@@ -1947,16 +1946,16 @@ var CustomizableUIInternal = {
|
||||
elem.setAttribute("skipintoolbarset", "true");
|
||||
}
|
||||
}
|
||||
@@ -110,18 +110,18 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
// Handle initial state of vertical tabs.
|
||||
if (isVerticalTabs) {
|
||||
// Show the vertical tabs toolbar
|
||||
@@ -1873,6 +1872,10 @@ var CustomizableUIInternal = {
|
||||
},
|
||||
|
||||
insertWidgetBefore(aNode, aNextNode, aContainer, aArea) {
|
||||
+ if (aArea === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) {
|
||||
@@ -2198,6 +2197,10 @@ var CustomizableUIInternal = {
|
||||
* The identifier string of the area that aNode is being inserted into.
|
||||
*/
|
||||
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
|
||||
+ if (aAreaId === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) {
|
||||
+ aContainer = aNode.ownerDocument.getElementById("zen-sidebar-top-buttons-customization-target");
|
||||
+ aArea = "zen-sidebar-top-buttons";
|
||||
+ aAreaId = "zen-sidebar-top-buttons";
|
||||
+ }
|
||||
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
|
||||
this.setLocationAttributes(aNode, aArea);
|
||||
this.setLocationAttributes(aNode, aAreaId);
|
||||
aContainer.insertBefore(aNode, aNextNode);
|
||||
@@ -2744,7 +2747,6 @@ var CustomizableUIInternal = {
|
||||
@@ -3321,7 +3324,6 @@ var CustomizableUIInternal = {
|
||||
if (!this.isWidgetRemovable(aWidgetId)) {
|
||||
return;
|
||||
}
|
||||
@@ -129,16 +129,16 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
let placements = gPlacements.get(oldPlacement.area);
|
||||
let position = placements.indexOf(aWidgetId);
|
||||
if (position != -1) {
|
||||
@@ -3735,7 +3737,7 @@ var CustomizableUIInternal = {
|
||||
}
|
||||
},
|
||||
|
||||
@@ -4556,7 +4558,7 @@ var CustomizableUIInternal = {
|
||||
* For all registered areas, builds those areas to reflect the current
|
||||
* placement state of all widgets.
|
||||
*/
|
||||
- _rebuildRegisteredAreas() {
|
||||
+ _rebuildRegisteredAreas(zenDontRebuildCollapsed = false) {
|
||||
for (let [areaId, areaNodes] of gBuildAreas) {
|
||||
let placements = gPlacements.get(areaId);
|
||||
let isFirstChangedToolbar = true;
|
||||
@@ -3746,7 +3748,7 @@ var CustomizableUIInternal = {
|
||||
@@ -4567,7 +4569,7 @@ var CustomizableUIInternal = {
|
||||
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
|
||||
let defaultCollapsed = area.get("defaultCollapsed");
|
||||
let win = areaNode.ownerGlobal;
|
||||
@@ -147,7 +147,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
win.setToolbarVisibility(
|
||||
areaNode,
|
||||
typeof defaultCollapsed == "string"
|
||||
@@ -4923,6 +4925,7 @@ export var CustomizableUI = {
|
||||
@@ -5858,6 +5860,7 @@ export var CustomizableUI = {
|
||||
unregisterArea(aName, aDestroyPlacements) {
|
||||
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
|
||||
},
|
||||
@@ -155,7 +155,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
/**
|
||||
* Add a widget to an area.
|
||||
* If the area to which you try to add is not known to CustomizableUI,
|
||||
@@ -6916,11 +6919,11 @@ class OverflowableToolbar {
|
||||
@@ -7905,11 +7908,11 @@ class OverflowableToolbar {
|
||||
parseFloat(style.paddingLeft) -
|
||||
parseFloat(style.paddingRight) -
|
||||
toolbarChildrenWidth;
|
||||
@@ -169,7 +169,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
});
|
||||
|
||||
lazy.log.debug(
|
||||
@@ -6930,7 +6933,8 @@ class OverflowableToolbar {
|
||||
@@ -7919,7 +7922,8 @@ class OverflowableToolbar {
|
||||
// If the target has min-width: 0, their children might actually overflow
|
||||
// it, so check for both cases explicitly.
|
||||
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
|
||||
@@ -179,7 +179,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
||||
}
|
||||
|
||||
@@ -7024,7 +7028,7 @@ class OverflowableToolbar {
|
||||
@@ -8013,7 +8017,7 @@ class OverflowableToolbar {
|
||||
}
|
||||
}
|
||||
if (!inserted) {
|
||||
@@ -188,13 +188,12 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
||||
}
|
||||
child.removeAttribute("cui-anchorid");
|
||||
child.removeAttribute("overflowedItem");
|
||||
@@ -7186,6 +7190,9 @@ class OverflowableToolbar {
|
||||
* @param {MouseEvent} aEvent the click event.
|
||||
*/
|
||||
#onClickDefaultListButton(aEvent) {
|
||||
+ if (aEvent.view.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') {
|
||||
+ return;
|
||||
+ }
|
||||
if (this.#defaultListButton.open) {
|
||||
this.#defaultListButton.open = false;
|
||||
lazy.PanelMultiView.hidePopup(this.#defaultListPanel);
|
||||
@@ -8358,7 +8362,7 @@ class OverflowableToolbar {
|
||||
break;
|
||||
}
|
||||
case "mousedown": {
|
||||
- if (aEvent.button != 0) {
|
||||
+ if (aEvent.button != 0 || this.#toolbar.id == "zen-sidebar-top-buttons") { // Fix https://github.com/zen-browser/desktop/issues/7718
|
||||
break;
|
||||
}
|
||||
if (aEvent.target == this.#defaultListButton) {
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973c70543a9 100644
|
||||
index 619bb2af5a3a0995fc93fa040696dd2854848ab5..bbc6bad906e9ccaf668ca99f4a0411f564ef1e56 100644
|
||||
--- a/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||
@@ -357,7 +357,7 @@ CustomizeMode.prototype = {
|
||||
this._transitioning = true;
|
||||
@@ -500,7 +500,7 @@ export class CustomizeMode {
|
||||
this.#transitioning = true;
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
- let browser = document.getElementById("browser");
|
||||
@@ -11,7 +11,7 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
||||
browser.hidden = true;
|
||||
customizer.hidden = false;
|
||||
|
||||
@@ -488,7 +488,7 @@ CustomizeMode.prototype = {
|
||||
@@ -637,7 +637,7 @@ export class CustomizeMode {
|
||||
}
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
@@ -20,9 +20,9 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
||||
customizer.hidden = true;
|
||||
browser.hidden = false;
|
||||
|
||||
@@ -2397,6 +2397,20 @@ CustomizeMode.prototype = {
|
||||
@@ -3125,6 +3125,20 @@ export class CustomizeMode {
|
||||
if (makeSpaceImmediately) {
|
||||
aItem.setAttribute("notransition", "true");
|
||||
aDraggedOverItem.setAttribute("notransition", "true");
|
||||
}
|
||||
+ if (aItem.parentElement.id === "TabsToolbar-customization-target") {
|
||||
+ // We change the border values so we can properly implement the native vertical tabs
|
||||
@@ -38,6 +38,6 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
||||
+ aItem.style.borderBottomStyle = "solid";
|
||||
+ }
|
||||
+ }
|
||||
aItem.style[prop] = borderWidth + "px";
|
||||
aItem.style.removeProperty(otherProp);
|
||||
aDraggedOverItem.style[prop] = borderWidth + "px";
|
||||
aDraggedOverItem.style.removeProperty(otherProp);
|
||||
if (makeSpaceImmediately) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
index af22f766a052372a68faca139161cccbf0d768f0..199591ca0609e8902e84a87baf50acc29f84ee3a 100644
|
||||
index b88b0166fb99bc3d44a2e05798650b8ad6ab9a46..2e66c8294f0ef4f91ae160bd55b7417b55e9f5b2 100644
|
||||
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
@@ -240,8 +240,8 @@ export var ToolbarContextMenu = {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||
index 010d0813557efd6d5a3a84ea589989f6e9ff195a..e26cc1be1f56919e6ec5f2432854b284837671ac 100644
|
||||
index ec52437dba30633a374299a46c856e1df05dec0e..48617e32d56c3b3f525557ddeac6297555c48c04 100644
|
||||
--- a/browser/components/customizableui/content/panelUI.js
|
||||
+++ b/browser/components/customizableui/content/panelUI.js
|
||||
@@ -515,8 +515,7 @@ const PanelUI = {
|
||||
@@ -12,7 +12,7 @@ index 010d0813557efd6d5a3a84ea589989f6e9ff195a..e26cc1be1f56919e6ec5f2432854b284
|
||||
.appendChild(tempPanel);
|
||||
|
||||
let multiView = document.createXULElement("panelmultiview");
|
||||
@@ -960,7 +959,7 @@ const PanelUI = {
|
||||
@@ -957,7 +956,7 @@ const PanelUI = {
|
||||
el.removeAttribute("data-lazy-l10n-id");
|
||||
});
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
|
||||
index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658514db39f 100644
|
||||
index 1f5e163bae58f3f1cac750ca32846cc8a80bd2ca..16034842b4ca5295aa3c9237db55035ecc4016d2 100644
|
||||
--- a/browser/components/places/PlacesUIUtils.sys.mjs
|
||||
+++ b/browser/components/places/PlacesUIUtils.sys.mjs
|
||||
@@ -58,6 +58,7 @@ class BookmarkState {
|
||||
@@ -59,6 +59,7 @@ class BookmarkState {
|
||||
info,
|
||||
tags = "",
|
||||
keyword = "",
|
||||
@@ -10,7 +10,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
||||
isFolder = false,
|
||||
children = [],
|
||||
autosave = false,
|
||||
@@ -82,12 +83,18 @@ class BookmarkState {
|
||||
@@ -83,12 +84,18 @@ class BookmarkState {
|
||||
keyword,
|
||||
parentGuid: info.parentGuid,
|
||||
index,
|
||||
@@ -29,7 +29,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
||||
/**
|
||||
* Save edited title for the bookmark
|
||||
*
|
||||
@@ -181,6 +188,14 @@ class BookmarkState {
|
||||
@@ -182,6 +189,14 @@ class BookmarkState {
|
||||
"BookmarkState::createBookmark"
|
||||
);
|
||||
this._guid = results?.[0];
|
||||
@@ -44,7 +44,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
||||
return this._guid;
|
||||
}
|
||||
|
||||
@@ -214,6 +229,14 @@ class BookmarkState {
|
||||
@@ -215,6 +230,14 @@ class BookmarkState {
|
||||
"BookmarkState::save::createFolder"
|
||||
);
|
||||
this._guid = results[0];
|
||||
@@ -59,7 +59,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
||||
return this._guid;
|
||||
}
|
||||
|
||||
@@ -300,11 +323,97 @@ class BookmarkState {
|
||||
@@ -301,11 +324,97 @@ class BookmarkState {
|
||||
await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save");
|
||||
}
|
||||
|
||||
@@ -157,7 +157,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
||||
/**
|
||||
* Append transactions to update tags by given information.
|
||||
*
|
||||
@@ -902,8 +1011,15 @@ export var PlacesUIUtils = {
|
||||
@@ -903,8 +1012,15 @@ export var PlacesUIUtils = {
|
||||
aNode,
|
||||
aWhere,
|
||||
aWindow,
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
||||
index 3b60d18e483bc3c4e9b4309f0dc1e4231b7116b1..e5b679b25941a7f1ed52db9fa3f7740a7220b9e4 100644
|
||||
index 118709048e7de13f6ac10d0047e446b72303428f..c8cc2d7ee551b96be668a7844dab1db5abc9d684 100644
|
||||
--- a/browser/components/preferences/jar.mn
|
||||
+++ b/browser/components/preferences/jar.mn
|
||||
@@ -23,3 +23,5 @@ browser.jar:
|
||||
content/browser/preferences/more-from-mozilla-qr-code-simple-cn.svg
|
||||
content/browser/preferences/web-appearance-dark.svg
|
||||
content/browser/preferences/web-appearance-light.svg
|
||||
@@ -26,3 +26,5 @@ browser.jar:
|
||||
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
||||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
||||
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
||||
+
|
||||
+ content/browser/preferences/zen-settings.js
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
index 8f6f78419a0876ebe6d0967a88ef03e464dbbd23..9339085014b797033c4ee1ed2e40f2506d1e9797 100644
|
||||
index aa339be9ba94ed776fa25f2d72f9e6b25dc86cd3..4c6c725942b3d6f2a42938d444ac7645526623cc 100644
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -218,7 +218,7 @@ function getBundleForLocales(newLocales) {
|
||||
@@ -389,7 +389,7 @@ function getBundleForLocales(newLocales) {
|
||||
])
|
||||
);
|
||||
return new Localization(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||
index 6386773b287ca6d06a0abe928850c5bb465828ed..b3459a2abcac5f21a5b24189ec1dc88e24626687 100644
|
||||
index e4746e3408e68273126e6d2baf5afcf80721674b..e478aaf6bfefa6acd9062aeb3e4709ca0d5d779c 100644
|
||||
--- a/browser/components/preferences/preferences.js
|
||||
+++ b/browser/components/preferences/preferences.js
|
||||
@@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||
index 951af951598c3edc9bc431dd106e68d006ec4316..eb420d6c5ea346639eee531805aabbe7726c7769 100644
|
||||
index 43be2b6ac84827bd13723e0211a3ade401934591..513584d7e720451efdb87350ac07d8b2590c1705 100644
|
||||
--- a/browser/components/preferences/preferences.xhtml
|
||||
+++ b/browser/components/preferences/preferences.xhtml
|
||||
@@ -43,6 +43,8 @@
|
||||
/>
|
||||
@@ -44,6 +44,8 @@
|
||||
<link rel="stylesheet" href="chrome://browser/skin/preferences/privacy.css" />
|
||||
<link rel="stylesheet" href="chrome://browser/content/preferences/widgets/setting-group.css" />
|
||||
|
||||
+#include zen-preferences-links.xhtml
|
||||
+
|
||||
<link rel="localization" href="branding/brand.ftl"/>
|
||||
<link rel="localization" href="browser/browser.ftl"/>
|
||||
<!-- Used by fontbuilder.js -->
|
||||
@@ -98,6 +100,12 @@
|
||||
@@ -105,6 +107,11 @@
|
||||
<hbox flex="1">
|
||||
|
||||
<vbox class="navigation">
|
||||
+ <search-textbox
|
||||
+ id="searchInput"
|
||||
+ data-l10n-id="search-input-box2"
|
||||
+ data-l10n-attrs="placeholder, style"
|
||||
+ />
|
||||
+
|
||||
+ id="searchInput"
|
||||
+ data-l10n-id="search-input-box2"
|
||||
+ data-l10n-attrs="placeholder, style"
|
||||
+ />
|
||||
<!-- category list -->
|
||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||
<richlistitem id="category-general"
|
||||
@@ -111,6 +119,50 @@
|
||||
@@ -117,6 +124,50 @@
|
||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||
</richlistitem>
|
||||
|
||||
@@ -75,21 +74,19 @@ index 951af951598c3edc9bc431dd106e68d006ec4316..eb420d6c5ea346639eee531805aabbe7
|
||||
<richlistitem id="category-home"
|
||||
class="category"
|
||||
value="paneHome"
|
||||
@@ -229,11 +281,13 @@
|
||||
@@ -228,11 +279,6 @@
|
||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
+#if 0
|
||||
<search-textbox
|
||||
id="searchInput"
|
||||
data-l10n-id="search-input-box2"
|
||||
data-l10n-attrs="placeholder, style"
|
||||
/>
|
||||
+#endif
|
||||
- <search-textbox
|
||||
- id="searchInput"
|
||||
- data-l10n-id="search-input-box2"
|
||||
- data-l10n-attrs="placeholder, style"
|
||||
- />
|
||||
</hbox>
|
||||
</hbox>
|
||||
<vbox id="mainPrefPane">
|
||||
@@ -247,6 +301,10 @@
|
||||
@@ -246,6 +292,10 @@
|
||||
#include sync.inc.xhtml
|
||||
#include experimental.inc.xhtml
|
||||
#include moreFromMozilla.inc.xhtml
|
||||
|
||||
@@ -16,6 +16,8 @@ var gZenMarketplaceManager = {
|
||||
|
||||
header.appendChild(this._initDisableAll());
|
||||
|
||||
this._initImportExport();
|
||||
|
||||
this.__hasInitializedEvents = true;
|
||||
|
||||
await this._buildThemesList();
|
||||
@@ -56,6 +58,23 @@ var gZenMarketplaceManager = {
|
||||
});
|
||||
},
|
||||
|
||||
_initImportExport() {
|
||||
const importButton = document.getElementById('zenThemeMarketplaceImport');
|
||||
const exportButton = document.getElementById('zenThemeMarketplaceExport');
|
||||
|
||||
if (importButton) {
|
||||
importButton.addEventListener('click', async () => {
|
||||
await this._importThemes();
|
||||
});
|
||||
}
|
||||
|
||||
if (exportButton) {
|
||||
exportButton.addEventListener('click', async () => {
|
||||
await this._exportThemes();
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
_initDisableAll() {
|
||||
const areThemesDisabled = Services.prefs.getBoolPref('zen.themes.disable-all', false);
|
||||
const browser = ZenThemesCommon.currentBrowser;
|
||||
@@ -153,6 +172,96 @@ var gZenMarketplaceManager = {
|
||||
this.triggerThemeUpdate();
|
||||
},
|
||||
|
||||
async _importThemes() {
|
||||
const errorBox = document.getElementById('zenThemeMarketplaceImportFailure');
|
||||
const successBox = document.getElementById('zenThemeMarketplaceImportSuccess');
|
||||
successBox.hidden = true;
|
||||
errorBox.hidden = true;
|
||||
const input = document.createElement('input');
|
||||
input.type = 'file';
|
||||
input.accept = '.json';
|
||||
input.style.display = 'none';
|
||||
input.setAttribute('moz-accept', '.json');
|
||||
input.setAttribute('accept', '.json');
|
||||
|
||||
let timeout;
|
||||
const filePromise = new Promise((resolve) => {
|
||||
input.addEventListener('change', (event) => {
|
||||
if (timeout) clearTimeout(timeout);
|
||||
const file = event.target.files[0];
|
||||
resolve(file);
|
||||
});
|
||||
timeout = setTimeout(() => {
|
||||
console.warn('[ZenThemeMarketplaceParent:settings]: Import timeout reached, aborting.');
|
||||
resolve(null);
|
||||
}, 60000);
|
||||
});
|
||||
|
||||
input.click();
|
||||
|
||||
try {
|
||||
const file = await filePromise;
|
||||
if (!file) {
|
||||
return;
|
||||
}
|
||||
const content = await file.text();
|
||||
|
||||
const themes = JSON.parse(content);
|
||||
const existingThemes = await ZenThemesCommon.getThemes();
|
||||
const uniqueThemes = { ...themes, ...existingThemes };
|
||||
|
||||
console.log(`[ZenThemeMarketplaceParent:settings]: Importing ${Object.keys(themes).length} themes`);
|
||||
await IOUtils.writeJSON(ZenThemesCommon.themesDataFile, uniqueThemes);
|
||||
this.triggerThemeUpdate();
|
||||
successBox.hidden = false;
|
||||
|
||||
let buttonIndex = await confirmRestartPrompt(true, 1, true, true);
|
||||
if (buttonIndex == CONFIRM_RESTART_PROMPT_RESTART_NOW) {
|
||||
Services.startup.quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('[ZenThemeMarketplaceParent:settings]: Error while importing themes:', error);
|
||||
errorBox.hidden = false;
|
||||
} finally {
|
||||
if (input) input.remove();
|
||||
}
|
||||
},
|
||||
|
||||
async _exportThemes() {
|
||||
const errorBox = document.getElementById('zenThemeMarketplaceExportFailure');
|
||||
const successBox = document.getElementById('zenThemeMarketplaceExportSuccess');
|
||||
|
||||
successBox.hidden = true;
|
||||
errorBox.hidden = true;
|
||||
|
||||
let a, url;
|
||||
try {
|
||||
const themes = await ZenThemesCommon.getThemes();
|
||||
const themesJson = JSON.stringify(themes, null, 2);
|
||||
const blob = new Blob([themesJson], { type: 'application/json' });
|
||||
url = URL.createObjectURL(blob);
|
||||
// Creating a link to download the JSON file
|
||||
a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = 'zen-themes-export.json';
|
||||
|
||||
document.body.appendChild(a);
|
||||
a.click();
|
||||
a.remove();
|
||||
successBox.hidden = false;
|
||||
} catch (error) {
|
||||
console.error('[ZenThemeMarketplaceParent:settings]: Error while exporting themes:', error);
|
||||
errorBox.hidden = false;
|
||||
} finally {
|
||||
if (a) {
|
||||
a.remove();
|
||||
}
|
||||
if (url) {
|
||||
URL.revokeObjectURL(url);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async _buildThemesList() {
|
||||
if (!this.themesList) {
|
||||
return;
|
||||
@@ -170,7 +279,6 @@ var gZenMarketplaceManager = {
|
||||
for (const theme of Object.values(themes).sort((a, b) => a.name.localeCompare(b.name))) {
|
||||
const sanitizedName = `theme-${theme.name?.replaceAll(/\s/g, '-')?.replaceAll(/[^A-z_-]+/g, '')}`;
|
||||
const isThemeEnabled = theme.enabled === undefined || theme.enabled;
|
||||
|
||||
const fragment = window.MozXULElement.parseXULToFragment(`
|
||||
<vbox class="zenThemeMarketplaceItem">
|
||||
<vbox class="zenThemeMarketplaceItemContent">
|
||||
@@ -181,6 +289,7 @@ var gZenMarketplaceManager = {
|
||||
</vbox>
|
||||
<hbox class="zenThemeMarketplaceItemActions">
|
||||
${theme.preferences ? `<button id="zenThemeMarketplaceItemConfigureButton-${sanitizedName}" class="zenThemeMarketplaceItemConfigureButton" hidden="true"></button>` : ''}
|
||||
${theme.homepage ? `<button id="zenThemeMarketplaceItemHomePageLink-${sanitizedName}" class="zenThemeMarketplaceItemHomepageButton" zen-theme-id="${theme.id}"></button>` : ''}
|
||||
<button class="zenThemeMarketplaceItemUninstallButton" data-l10n-id="zen-theme-marketplace-remove-button" zen-theme-id="${theme.id}"></button>
|
||||
</hbox>
|
||||
</vbox>
|
||||
@@ -274,6 +383,16 @@ var gZenMarketplaceManager = {
|
||||
await this.removeTheme(event.target.getAttribute('zen-theme-id'));
|
||||
});
|
||||
|
||||
if (theme.homepage) {
|
||||
const homepageButton = fragment.querySelector('.zenThemeMarketplaceItemHomepageButton');
|
||||
homepageButton.addEventListener('click', () => {
|
||||
// open the homepage url in a new tab
|
||||
const url = theme.homepage;
|
||||
|
||||
window.open(url, '_blank');
|
||||
});
|
||||
}
|
||||
|
||||
if (theme.preferences) {
|
||||
fragment.querySelector('.zenThemeMarketplaceItemConfigureButton').addEventListener('click', () => {
|
||||
dialog.showModal();
|
||||
@@ -623,11 +742,13 @@ var gZenWorkspacesSettings = {
|
||||
};
|
||||
Services.prefs.addObserver('zen.tab-unloader.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.addObserver('zen.glance.enabled', tabsUnloaderPrefListener); // We can use the same listener for both prefs
|
||||
Services.prefs.addObserver('zen.workspaces.container-specific-essentials-enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.addObserver('zen.glance.activation-method', tabsUnloaderPrefListener);
|
||||
window.addEventListener('unload', () => {
|
||||
Services.prefs.removeObserver('zen.tab-unloader.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver('zen.glance.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver('zen.glance.activation-method', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver('zen.workspaces.container-specific-essentials-enabled', tabsUnloaderPrefListener);
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -1024,4 +1145,9 @@ Preferences.addAll([
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'media.videocontrols.picture-in-picture.enabled',
|
||||
type: 'bool',
|
||||
default: true,
|
||||
},
|
||||
]);
|
||||
|
||||
@@ -16,12 +16,20 @@
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-description" />
|
||||
<hbox class="indent">
|
||||
<html:a id="zenThemeMarketplaceLink" href="https://zen-browser.app/mods/" target="_blank" data-l10n-id="zen-theme-marketplace-link" />
|
||||
<button id="zenThemeMarketplaceImport" data-l10n-id="zen-theme-marketplace-import-button" />
|
||||
<button id="zenThemeMarketplaceExport" data-l10n-id="zen-theme-marketplace-export-button" />
|
||||
<button id="zenThemeMarketplaceCheckForUpdates" data-l10n-id="zen-theme-marketplace-check-for-updates-button" />
|
||||
</hbox>
|
||||
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-updates-success" hidden="true" id="zenThemeMarketplaceUpdatesSuccess" />
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-updates-failure" hidden="true" id="zenThemeMarketplaceUpdatesFailure" />
|
||||
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-import-success" hidden="true" id="zenThemeMarketplaceImportSuccess" />
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-import-failure" hidden="true" id="zenThemeMarketplaceImportFailure" />
|
||||
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-export-success" hidden="true" id="zenThemeMarketplaceExportSuccess" />
|
||||
<description class="description-deemphasized" data-l10n-id="zen-theme-marketplace-export-failure" hidden="true" id="zenThemeMarketplaceExportFailure" />
|
||||
|
||||
<vbox id="zenThemeMarketplaceList"></vbox>
|
||||
</groupbox>
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs
|
||||
index 4810eca0825f9a6f07f242e804de2edb7bd697d8..fd4e7661c93be528c2766e27fe22403d3d495292 100644
|
||||
index c1f8fd1225cfc47c2e171361aa6069d3cbaf3afb..b32a2cf621022a500a2efc7777b4379347dcf353 100644
|
||||
--- a/browser/components/search/SearchOneOffs.sys.mjs
|
||||
+++ b/browser/components/search/SearchOneOffs.sys.mjs
|
||||
@@ -443,7 +443,7 @@ export class SearchOneOffs {
|
||||
@@ -444,7 +444,7 @@ export class SearchOneOffs {
|
||||
// For the search-bar, always show the one-off buttons where there is an
|
||||
// option to add an engine.
|
||||
let addEngineNeeded = isSearchBar && addEngines.length;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047669c8c94 100644
|
||||
index 5633e5032f5d50c70512187d27e045b579978927..dd7aa4827eaa809dadc7e1fe6cdd1083e79f383a 100644
|
||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
@@ -3186,7 +3186,7 @@ var SessionStoreInternal = {
|
||||
@@ -3202,7 +3202,7 @@ var SessionStoreInternal = {
|
||||
if (!isPrivateWindow && tabState.isPrivate) {
|
||||
return;
|
||||
}
|
||||
@@ -11,16 +11,17 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3895,6 +3895,8 @@ var SessionStoreInternal = {
|
||||
@@ -3911,6 +3911,9 @@ var SessionStoreInternal = {
|
||||
Math.min(tabState.index, tabState.entries.length)
|
||||
);
|
||||
tabState.pinned = false;
|
||||
+ tabState.zenEssential = false;
|
||||
+ tabState.zenPinnedId = null;
|
||||
+ tabState.zenHasStaticLabel = false;
|
||||
|
||||
if (inBackground === false) {
|
||||
aWindow.gBrowser.selectedTab = newTab;
|
||||
@@ -5399,14 +5401,15 @@ var SessionStoreInternal = {
|
||||
@@ -5416,14 +5419,15 @@ var SessionStoreInternal = {
|
||||
}
|
||||
|
||||
let tabbrowser = aWindow.gBrowser;
|
||||
@@ -38,7 +39,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
||||
continue;
|
||||
}
|
||||
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
||||
@@ -5425,7 +5428,7 @@ var SessionStoreInternal = {
|
||||
@@ -5442,7 +5446,7 @@ var SessionStoreInternal = {
|
||||
// We don't store the Firefox View tab in Session Store, so if it was the last selected "tab" when
|
||||
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
||||
// since it's only inserted into the tab strip after it's selected).
|
||||
@@ -47,7 +48,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
||||
selectedIndex = 1;
|
||||
winData.title = tabbrowser.tabs[0].label;
|
||||
}
|
||||
@@ -5582,6 +5585,7 @@ var SessionStoreInternal = {
|
||||
@@ -5599,6 +5603,7 @@ var SessionStoreInternal = {
|
||||
winData.tabs,
|
||||
winData.groups ?? []
|
||||
);
|
||||
@@ -55,7 +56,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
||||
this._log.debug(
|
||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||
);
|
||||
@@ -6130,8 +6134,23 @@ var SessionStoreInternal = {
|
||||
@@ -6148,8 +6153,23 @@ var SessionStoreInternal = {
|
||||
|
||||
// Most of tabData has been restored, now continue with restoring
|
||||
// attributes that may trigger external events.
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
||||
index 371190c058fa1eed91dc91b58608c934100e3a1b..440fe6fb403c3e78b3bfe68fb747d000b4a27521 100644
|
||||
index 178c05099b671c4ec8d4c225955e65cff73824e2..6abb0ee2d4be94f997ee8d4bc755a393d9759099 100644
|
||||
--- a/browser/components/sidebar/browser-sidebar.js
|
||||
+++ b/browser/components/sidebar/browser-sidebar.js
|
||||
@@ -718,7 +718,7 @@ var SidebarController = {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
- let browser = document.getElementById("browser");
|
||||
+ let browser = document.getElementById("tabbrowser-tabbox");
|
||||
[...browser.children].forEach((node, i) => {
|
||||
node.style.order = i + 1;
|
||||
});
|
||||
@@ -729,7 +729,7 @@ var SidebarController = {
|
||||
setPosition() {
|
||||
// First reset all ordinals to match DOM ordering.
|
||||
let contentArea = document.getElementById("tabbrowser-tabbox");
|
||||
- let browser = document.getElementById("browser");
|
||||
+ let browser = document.getElementById("tabbrowser-tabbox");
|
||||
[...browser.children].forEach((node, i) => {
|
||||
node.style.order = i + 1;
|
||||
});
|
||||
|
||||
@@ -1,7 +1,16 @@
|
||||
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
index e5d16e605b7edf11fc9f52b93e415087b76398f1..40b6e29d26c7f8d692a2a9a7d924b289ec7a3d03 100644
|
||||
index 6753641cb579032306453be3f5054d7bc7661e8c..436ee8940c8a73d238a7aed10768a0a752a3f119 100644
|
||||
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
@@ -252,7 +252,7 @@ var ctrlTab = {
|
||||
},
|
||||
|
||||
get tabList() {
|
||||
- return this._recentlyUsedTabs;
|
||||
+ return this._recentlyUsedTabs.filter(tab => !tab.hasAttribute("pending"));
|
||||
},
|
||||
|
||||
init: function ctrlTab_init() {
|
||||
@@ -459,7 +459,7 @@ var ctrlTab = {
|
||||
// If the tab is hidden, don't add it to the list unless it's selected
|
||||
// (Normally hidden tabs would be unhidden when selected, but that doesn't
|
||||
@@ -11,6 +20,15 @@ index e5d16e605b7edf11fc9f52b93e415087b76398f1..40b6e29d26c7f8d692a2a9a7d924b289
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -483,7 +483,7 @@ var ctrlTab = {
|
||||
},
|
||||
|
||||
open: function ctrlTab_open() {
|
||||
- if (this.isOpen) {
|
||||
+ if (this.isOpen || !this.tabCount) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -761,7 +761,7 @@ var ctrlTab = {
|
||||
_initRecentlyUsedTabs() {
|
||||
this._recentlyUsedTabs = Array.prototype.filter.call(
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
||||
index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac96fd868da 100644
|
||||
index dc92771ebc65095dfebbddc238ee6d4fffd897bf..ae9120f7cc8989cf625ac101d053d82582e32009 100644
|
||||
--- a/browser/components/tabbrowser/content/tab.js
|
||||
+++ b/browser/components/tabbrowser/content/tab.js
|
||||
@@ -16,6 +16,7 @@
|
||||
@@ -21,6 +21,7 @@
|
||||
<hbox class="tab-group-line"/>
|
||||
</vbox>
|
||||
<hbox class="tab-content" align="center">
|
||||
@@ -10,7 +10,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
<stack class="tab-icon-stack">
|
||||
<hbox class="tab-throbber"/>
|
||||
<hbox class="tab-icon-pending"/>
|
||||
@@ -32,8 +33,10 @@
|
||||
@@ -37,8 +38,10 @@
|
||||
<hbox class="tab-secondary-label">
|
||||
<label class="tab-icon-sound-label tab-icon-sound-pip-label" data-l10n-id="browser-tab-audio-pip" role="presentation"/>
|
||||
</hbox>
|
||||
@@ -21,7 +21,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
</hbox>
|
||||
</stack>
|
||||
`;
|
||||
@@ -167,7 +170,7 @@
|
||||
@@ -175,7 +178,7 @@
|
||||
}
|
||||
|
||||
set _visuallySelected(val) {
|
||||
@@ -30,7 +30,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -203,7 +206,7 @@
|
||||
@@ -211,7 +214,7 @@
|
||||
}
|
||||
|
||||
get visible() {
|
||||
@@ -39,7 +39,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
}
|
||||
|
||||
get hidden() {
|
||||
@@ -274,7 +277,7 @@
|
||||
@@ -282,7 +285,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
}
|
||||
|
||||
get lastAccessed() {
|
||||
@@ -446,6 +449,8 @@
|
||||
@@ -454,6 +457,8 @@
|
||||
this.style.MozUserFocus = "ignore";
|
||||
} else if (
|
||||
event.target.classList.contains("tab-close-button") ||
|
||||
@@ -57,15 +57,15 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
event.target.classList.contains("tab-icon-overlay") ||
|
||||
event.target.classList.contains("tab-audio-button")
|
||||
) {
|
||||
@@ -544,6 +549,7 @@
|
||||
if (this.multiselected) {
|
||||
gBrowser.removeMultiSelectedTabs();
|
||||
@@ -554,6 +559,7 @@
|
||||
telemetrySource: lazy.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
});
|
||||
} else {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
|
||||
gBrowser.removeTab(this, {
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
@@ -553,6 +559,14 @@
|
||||
@@ -564,6 +570,14 @@
|
||||
// (see tabbrowser-tabs 'click' handler).
|
||||
gBrowser.tabContainer._blockDblClick = true;
|
||||
}
|
||||
@@ -80,7 +80,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
||||
}
|
||||
|
||||
on_dblclick(event) {
|
||||
@@ -576,6 +590,8 @@
|
||||
@@ -587,6 +601,8 @@
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
});
|
||||
|
||||
@@ -1,22 +1,13 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e218b527ed 100644
|
||||
index 6dece2b9d0462d90a28e75350ce983d87816ef73..4cc07f008d99138a76c8e9813c857c352b425006 100644
|
||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
@@ -424,11 +424,67 @@
|
||||
@@ -415,11 +415,58 @@
|
||||
return this.tabContainer.visibleTabs;
|
||||
}
|
||||
|
||||
+ get _numVisiblePinTabs() {
|
||||
+ let i = 0;
|
||||
+ for (let tab of this.tabs) {
|
||||
+ if (!tab.pinned && !tab.hasAttribute("zen-glance-tab")) {
|
||||
+ break;
|
||||
+ }
|
||||
+ if (!tab.hidden) {
|
||||
+ i += !tab.hasAttribute("zen-glance-tab");
|
||||
+ }
|
||||
+ }
|
||||
+ return i;
|
||||
+ zenInsertTabAtIndex(...args) {
|
||||
+ return this.#insertTabAtElementIndex(...args);
|
||||
+ }
|
||||
+
|
||||
+ get _numVisiblePinTabsWithoutCollapsed() {
|
||||
@@ -72,15 +63,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
}
|
||||
return i;
|
||||
}
|
||||
@@ -558,6 +614,7 @@
|
||||
@@ -571,6 +618,7 @@
|
||||
this.tabpanels.appendChild(panel);
|
||||
|
||||
let tab = this.tabs[0];
|
||||
+ ZenWorkspaces.handleInitialTab(tab, (!remoteType || remoteType === E10SUtils.PRIVILEGEDABOUT_REMOTE_TYPE) && !Services.prefs.getBoolPref('zen.workspaces.disable_empty_state_for_testing', false));
|
||||
+ ZenWorkspaces.handleInitialTab(tab, (!remoteType || remoteType === E10SUtils.PRIVILEGEDABOUT_REMOTE_TYPE) && !gZenUIManager.testingEnabled);
|
||||
tab.linkedPanel = uniqueId;
|
||||
this._selectedTab = tab;
|
||||
this._selectedBrowser = browser;
|
||||
@@ -823,11 +880,13 @@
|
||||
@@ -836,11 +884,13 @@
|
||||
}
|
||||
|
||||
this.showTab(aTab);
|
||||
@@ -90,14 +81,14 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
+ if (this.tabContainer.verticalMode && !handled) {
|
||||
this.#handleTabMove(aTab, () =>
|
||||
- this.verticalPinnedTabsContainer.appendChild(aTab)
|
||||
+ aTab.hasAttribute("zen-essential") ? document.getElementById("zen-essentials-container").appendChild(aTab) : this.verticalPinnedTabsContainer.insertBefore(aTab, this.verticalPinnedTabsContainer.lastChild)
|
||||
+ aTab.hasAttribute("zen-essential") ? ZenWorkspaces.getEssentialsSection(aTab).appendChild(aTab) : this.verticalPinnedTabsContainer.insertBefore(aTab, this.verticalPinnedTabsContainer.lastChild)
|
||||
);
|
||||
- } else {
|
||||
+ } else if (!handled) {
|
||||
this.moveTabTo(aTab, this.pinnedTabCount, { forceStandaloneTab: true });
|
||||
}
|
||||
aTab.setAttribute("pinned", "true");
|
||||
@@ -841,12 +900,15 @@
|
||||
this.moveTabTo(aTab, {
|
||||
tabIndex: this.pinnedTabCount,
|
||||
forceUngrouped: true,
|
||||
@@ -857,12 +907,15 @@
|
||||
}
|
||||
|
||||
if (this.tabContainer.verticalMode) {
|
||||
@@ -113,8 +104,8 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
+ }
|
||||
});
|
||||
} else {
|
||||
this.moveTabTo(aTab, this.pinnedTabCount - 1, {
|
||||
@@ -1029,6 +1091,8 @@
|
||||
this.moveTabTo(aTab, {
|
||||
@@ -1046,6 +1099,8 @@
|
||||
|
||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||
|
||||
@@ -123,7 +114,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (
|
||||
aIconURL &&
|
||||
!aLoadingPrincipal &&
|
||||
@@ -1039,6 +1103,9 @@
|
||||
@@ -1056,6 +1111,9 @@
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -133,7 +124,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
|
||||
let browser = this.getBrowserForTab(aTab);
|
||||
browser.mIconURL = aIconURL;
|
||||
@@ -1287,6 +1354,7 @@
|
||||
@@ -1305,6 +1363,7 @@
|
||||
if (!this._previewMode) {
|
||||
newTab.recordTimeFromUnloadToReload();
|
||||
newTab.updateLastAccessed();
|
||||
@@ -141,7 +132,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
oldTab.updateLastAccessed();
|
||||
// if this is the foreground window, update the last-seen timestamps.
|
||||
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
||||
@@ -1439,6 +1507,9 @@
|
||||
@@ -1457,6 +1516,9 @@
|
||||
}
|
||||
|
||||
let activeEl = document.activeElement;
|
||||
@@ -151,7 +142,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
// If focus is on the old tab, move it to the new tab.
|
||||
if (activeEl == oldTab) {
|
||||
newTab.focus();
|
||||
@@ -1762,7 +1833,8 @@
|
||||
@@ -1780,7 +1842,8 @@
|
||||
}
|
||||
|
||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||
@@ -161,16 +152,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1865,7 +1937,7 @@
|
||||
@@ -1888,7 +1951,7 @@
|
||||
newIndex = this.selectedTab._tPos + 1;
|
||||
}
|
||||
|
||||
- if (replace) {
|
||||
+ if (replace && !(!targetTab && this.selectedTab?.hasAttribute('zen-empty-tab'))) {
|
||||
let browser;
|
||||
if (targetTab) {
|
||||
browser = this.getBrowserForTab(targetTab);
|
||||
@@ -2122,6 +2194,7 @@
|
||||
if (this.isTabGroupLabel(targetTab)) {
|
||||
throw new Error(
|
||||
"Replacing a tab group label with a tab is not supported"
|
||||
@@ -2152,6 +2215,7 @@
|
||||
uriIsAboutBlank,
|
||||
userContextId,
|
||||
skipLoad,
|
||||
@@ -178,7 +169,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
} = {}) {
|
||||
let b = document.createXULElement("browser");
|
||||
// Use the JSM global to create the permanentKey, so that if the
|
||||
@@ -2195,8 +2268,7 @@
|
||||
@@ -2225,8 +2289,7 @@
|
||||
// we use a different attribute name for this?
|
||||
b.setAttribute("name", name);
|
||||
}
|
||||
@@ -188,7 +179,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
b.setAttribute("transparent", "true");
|
||||
}
|
||||
|
||||
@@ -2373,7 +2445,7 @@
|
||||
@@ -2391,7 +2454,7 @@
|
||||
|
||||
let panel = this.getPanel(browser);
|
||||
let uniqueId = this._generateUniquePanelID();
|
||||
@@ -197,7 +188,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
aTab.linkedPanel = uniqueId;
|
||||
|
||||
// Inject the <browser> into the DOM if necessary.
|
||||
@@ -2432,8 +2504,8 @@
|
||||
@@ -2450,8 +2513,8 @@
|
||||
// If we transitioned from one browser to two browsers, we need to set
|
||||
// hasSiblings=false on both the existing browser and the new browser.
|
||||
if (this.tabs.length == 2) {
|
||||
@@ -208,7 +199,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
} else {
|
||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||
}
|
||||
@@ -2655,6 +2727,7 @@
|
||||
@@ -2679,6 +2742,7 @@
|
||||
schemelessInput,
|
||||
hasValidUserGestureActivation = false,
|
||||
textDirectiveUserActivation = false,
|
||||
@@ -216,7 +207,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
} = {}
|
||||
) {
|
||||
// all callers of addTab that pass a params object need to pass
|
||||
@@ -2665,6 +2738,12 @@
|
||||
@@ -2689,6 +2753,12 @@
|
||||
);
|
||||
}
|
||||
|
||||
@@ -229,7 +220,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||
}
|
||||
@@ -2728,6 +2807,16 @@
|
||||
@@ -2752,6 +2822,16 @@
|
||||
noInitialLabel,
|
||||
skipBackgroundNotify,
|
||||
});
|
||||
@@ -244,17 +235,17 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
+ t.setAttribute("zen-empty-tab", "true");
|
||||
+ }
|
||||
if (insertTab) {
|
||||
// insert the tab into the tab container in the correct position
|
||||
this._insertTabAtIndex(t, {
|
||||
@@ -2752,6 +2841,7 @@
|
||||
initialBrowsingContextGroupId,
|
||||
if (typeof index == "number") {
|
||||
elementIndex = this.#tabIndexToElementIndex(index);
|
||||
@@ -2779,6 +2859,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
+ _forZenEmptyTab,
|
||||
}));
|
||||
|
||||
if (focusUrlBar) {
|
||||
@@ -2871,6 +2961,9 @@
|
||||
@@ -2898,6 +2979,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -264,7 +255,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
// Additionally send pinned tab events
|
||||
if (pinned) {
|
||||
this._notifyPinnedStatus(t);
|
||||
@@ -2891,12 +2984,15 @@
|
||||
@@ -2945,12 +3029,15 @@
|
||||
* @param {string} [label=]
|
||||
* @returns {MozTabbrowserTabGroup}
|
||||
*/
|
||||
@@ -281,15 +272,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
return group;
|
||||
}
|
||||
|
||||
@@ -2937,6 +3033,7 @@
|
||||
@@ -2993,6 +3080,7 @@
|
||||
insertBefore = null,
|
||||
isUserCreated = false,
|
||||
isUserTriggered = false,
|
||||
telemetryUserCreateSource = "unknown",
|
||||
+ forSplitView = false,
|
||||
} = {}
|
||||
) {
|
||||
if (!tabs?.length) {
|
||||
@@ -2951,7 +3048,12 @@
|
||||
@@ -3011,7 +3099,12 @@
|
||||
id = `${Date.now()}-${Math.round(Math.random() * 100)}`;
|
||||
}
|
||||
let group = this._createTabGroup(id, color, false, label);
|
||||
@@ -303,15 +294,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
group,
|
||||
insertBefore?.group ?? insertBefore
|
||||
);
|
||||
@@ -3268,6 +3370,7 @@
|
||||
initialBrowsingContextGroupId,
|
||||
@@ -3342,6 +3435,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
+ _forZenEmptyTab
|
||||
}
|
||||
) {
|
||||
// If we don't have a preferred remote type, and we have a remote
|
||||
@@ -3331,6 +3434,7 @@
|
||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||
@@ -3411,6 +3505,7 @@
|
||||
openWindowInfo,
|
||||
name,
|
||||
skipLoad,
|
||||
@@ -319,7 +310,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3509,6 +3613,27 @@
|
||||
@@ -3589,6 +3684,27 @@
|
||||
) {
|
||||
tabWasReused = true;
|
||||
tab = this.selectedTab;
|
||||
@@ -347,15 +338,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (!tabData.pinned) {
|
||||
this.unpinTab(tab);
|
||||
} else {
|
||||
@@ -3522,6 +3647,7 @@
|
||||
restoreTabsLazily && !select && !tabData.pinned;
|
||||
|
||||
let url = "about:blank";
|
||||
+ gZenPinnedTabManager.resetPinnedTabData(tabData);
|
||||
if (tabData.entries?.length) {
|
||||
let activeIndex = (tabData.index || tabData.entries.length) - 1;
|
||||
// Ensure the index is in bounds.
|
||||
@@ -3557,7 +3683,27 @@
|
||||
@@ -3637,7 +3753,27 @@
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
});
|
||||
@@ -384,18 +367,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (select) {
|
||||
tabToSelect = tab;
|
||||
}
|
||||
@@ -3570,8 +3716,8 @@
|
||||
// inserted in the DOM. If the tab is not yet in the DOM,
|
||||
// just insert it in the right place from the start.
|
||||
if (!tab.parentNode) {
|
||||
- tab._tPos = this.pinnedTabCount;
|
||||
- this.tabContainer.insertBefore(tab, this.tabs[this.pinnedTabCount]);
|
||||
+ tab._tPos = this._numVisiblePinTabs;
|
||||
+ this.tabContainer.insertBefore(tab, this.tabs[this._numVisiblePinTabs]);
|
||||
tab.toggleAttribute("pinned", true);
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
// Then ensure all the tab open/pinning information is sent.
|
||||
@@ -3581,7 +3727,8 @@
|
||||
@@ -3661,7 +3797,8 @@
|
||||
// needs calling:
|
||||
shouldUpdateForPinnedTabs = true;
|
||||
}
|
||||
@@ -405,7 +377,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
let { groupId } = tabData;
|
||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||
// if a tab refers to a tab group we don't know, skip any group
|
||||
@@ -3595,7 +3742,10 @@
|
||||
@@ -3675,7 +3812,10 @@
|
||||
tabGroup.stateData.id,
|
||||
tabGroup.stateData.color,
|
||||
tabGroup.stateData.collapsed,
|
||||
@@ -417,17 +389,23 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
);
|
||||
tabsFragment.appendChild(tabGroup.node);
|
||||
}
|
||||
@@ -3646,6 +3796,9 @@
|
||||
@@ -3723,8 +3863,15 @@
|
||||
// to remove the old selected tab.
|
||||
if (tabToSelect) {
|
||||
let leftoverTab = this.selectedTab;
|
||||
+ if (tabToSelect.pinned) {
|
||||
+ ZenWorkspaces._tabToRemoveForEmpty = leftoverTab;
|
||||
+ } else {
|
||||
this.selectedTab = tabToSelect;
|
||||
this.removeTab(leftoverTab);
|
||||
}
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ this.selectedTab._possiblyEmpty = this.selectedTab.isEmpty; // Not needed, but just in case.
|
||||
+ }
|
||||
}
|
||||
|
||||
if (tabs.length > 1 || !tabs[0].selected) {
|
||||
this._updateTabsAfterInsert();
|
||||
@@ -3830,7 +3983,7 @@
|
||||
@@ -3912,7 +4059,7 @@
|
||||
// Ensure we have an index if one was not provided.
|
||||
if (typeof index != "number") {
|
||||
// Move the new tab after another tab if needed, to the end otherwise.
|
||||
@@ -436,7 +414,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (
|
||||
!bulkOrderedOpen &&
|
||||
((openerTab &&
|
||||
@@ -3876,18 +4029,18 @@
|
||||
@@ -3958,18 +4105,18 @@
|
||||
|
||||
// Ensure index is within bounds.
|
||||
if (tab.pinned) {
|
||||
@@ -446,47 +424,55 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
+ index = Math.min(index, tab.hasAttribute("zen-essential") ? this._numZenEssentials : this.pinnedTabCount);
|
||||
} else {
|
||||
index = Math.max(index, this.pinnedTabCount);
|
||||
index = Math.min(index, this.tabs.length);
|
||||
index = Math.min(index, this.tabContainer.ariaFocusableItems.length);
|
||||
}
|
||||
|
||||
/** @type {MozTabbrowserTab|undefined} */
|
||||
- let tabAfter = this.tabs.at(index);
|
||||
+ let tabAfter = this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab")).at(index);
|
||||
- let itemAfter = this.tabContainer.ariaFocusableItems.at(index);
|
||||
+ let itemAfter = this.tabContainer.ariaFocusableItems.filter(tab => !tab.hasAttribute("zen-glance-tab")).at(index);
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
|
||||
- if (tabGroup) {
|
||||
+ if (tabGroup && !tabGroup.hasAttribute("split-view-group")) {
|
||||
if (tabAfter && tabAfter.group == tabGroup) {
|
||||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||
// Place at the front of, or between tabs in, the same tab group
|
||||
this.tabContainer.insertBefore(tab, tabAfter);
|
||||
@@ -4199,6 +4352,9 @@
|
||||
this.tabContainer.insertBefore(tab, itemAfter);
|
||||
@@ -4290,6 +4437,9 @@
|
||||
return;
|
||||
}
|
||||
|
||||
+ for (let tab of selectedTabs) {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
|
||||
+ }
|
||||
this.removeTabs(selectedTabs);
|
||||
this.removeTabs(selectedTabs, { telemetrySource });
|
||||
}
|
||||
|
||||
@@ -4450,6 +4606,7 @@
|
||||
skipGroupCheck = false,
|
||||
@@ -4542,6 +4692,7 @@
|
||||
telemetrySource,
|
||||
} = {}
|
||||
) {
|
||||
+ tabs = tabs.filter(tab => !tab.hasAttribute("zen-empty-tab"));
|
||||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||
// can be considered equivalent to closing the window.
|
||||
if (
|
||||
@@ -4556,6 +4713,7 @@
|
||||
skipSessionStore,
|
||||
@@ -4626,6 +4777,7 @@
|
||||
if (lastToClose) {
|
||||
this.removeTab(lastToClose, aParams);
|
||||
}
|
||||
+ gZenUIManager.onTabClose(undefined);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
@@ -4650,6 +4802,7 @@
|
||||
telemetrySource,
|
||||
} = {}
|
||||
) {
|
||||
+ gZenUIManager.saveScrollbarState();
|
||||
if (UserInteraction.running("browser.tabs.opening", window)) {
|
||||
UserInteraction.finish("browser.tabs.opening", window);
|
||||
}
|
||||
@@ -4572,6 +4730,12 @@
|
||||
TelemetryStopwatch.start("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
||||
@@ -4663,6 +4816,12 @@
|
||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||
}
|
||||
|
||||
+ if (ZenWorkspaces.workspaceEnabled) {
|
||||
@@ -498,7 +484,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
// Handle requests for synchronously removing an already
|
||||
// asynchronously closing tab.
|
||||
if (!animate && aTab.closing) {
|
||||
@@ -4586,7 +4750,9 @@
|
||||
@@ -4677,7 +4836,9 @@
|
||||
// frame created for it (for example, by updating the visually selected
|
||||
// state).
|
||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||
@@ -509,32 +495,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (
|
||||
!this._beginRemoveTab(aTab, {
|
||||
closeWindowFastpath: true,
|
||||
@@ -4600,7 +4766,6 @@
|
||||
TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
||||
return;
|
||||
}
|
||||
-
|
||||
let lockTabSizing =
|
||||
!this.tabContainer.verticalMode &&
|
||||
!aTab.pinned &&
|
||||
@@ -4739,14 +4904,14 @@
|
||||
!!this.tabsInCollapsedTabGroups.length;
|
||||
if (
|
||||
aTab.visible &&
|
||||
- this.visibleTabs.length == 1 &&
|
||||
+ this.visibleTabs.length == 1 && !aTab._closingGlance &&
|
||||
!anyRemainingTabsInCollapsedTabGroups
|
||||
) {
|
||||
closeWindow =
|
||||
@@ -4840,7 +5001,7 @@
|
||||
closeWindowWithLastTab != null
|
||||
? closeWindowWithLastTab
|
||||
: !window.toolbar.visible ||
|
||||
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab");
|
||||
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !ZenWorkspaces._isClosingWindow && !ZenWorkspaces._removedByStartupPage;
|
||||
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !ZenWorkspaces._isClosingWindow && !ZenWorkspaces._removedByStartupPage;
|
||||
|
||||
if (closeWindow) {
|
||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||
@@ -4770,6 +4935,7 @@
|
||||
@@ -4864,6 +5025,7 @@
|
||||
|
||||
newTab = true;
|
||||
}
|
||||
@@ -542,7 +512,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||
|
||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||
@@ -4810,9 +4976,7 @@
|
||||
@@ -4903,9 +5065,7 @@
|
||||
aTab._mouseleave();
|
||||
|
||||
if (newTab) {
|
||||
@@ -553,7 +523,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
} else {
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -4941,6 +5105,8 @@
|
||||
@@ -5034,6 +5194,8 @@
|
||||
this.tabs[i]._tPos = i;
|
||||
}
|
||||
|
||||
@@ -562,7 +532,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (!this._windowIsClosing) {
|
||||
if (wasPinned) {
|
||||
this.tabContainer._positionPinnedTabs();
|
||||
@@ -5064,8 +5230,8 @@
|
||||
@@ -5159,8 +5321,8 @@
|
||||
return closedCount;
|
||||
}
|
||||
|
||||
@@ -573,7 +543,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
if (unloadBlocked) {
|
||||
return;
|
||||
}
|
||||
@@ -5159,7 +5325,7 @@
|
||||
@@ -5248,6 +5410,7 @@
|
||||
}
|
||||
|
||||
let excludeTabs = new Set(aExcludeTabs);
|
||||
+ ZenWorkspaces.getTabsToExclude(aTab).forEach(tab => excludeTabs.add(tab));
|
||||
|
||||
// If this tab has a successor, it should be selectable, since
|
||||
// hiding or closing a tab removes that tab as a successor.
|
||||
@@ -5260,13 +5423,13 @@
|
||||
!excludeTabs.has(aTab.owner) &&
|
||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||
) {
|
||||
@@ -582,7 +560,14 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
}
|
||||
|
||||
// Try to find a remaining tab that comes after the given tab
|
||||
@@ -5181,7 +5347,7 @@
|
||||
let remainingTabs = Array.prototype.filter.call(
|
||||
this.visibleTabs,
|
||||
- tab => !excludeTabs.has(tab)
|
||||
+ tab => !excludeTabs.has(tab) && ZenWorkspaces._shouldChangeToTab(tab)
|
||||
);
|
||||
|
||||
let tab = this.tabContainer.findNextTab(aTab, {
|
||||
@@ -5282,7 +5445,7 @@
|
||||
}
|
||||
|
||||
if (tab) {
|
||||
@@ -591,7 +576,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
}
|
||||
|
||||
// If no qualifying visible tab was found, see if there is a tab in
|
||||
@@ -5599,10 +5765,10 @@
|
||||
@@ -5303,7 +5466,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
- return tab;
|
||||
+ return ZenWorkspaces.findTabToBlur(tab);
|
||||
}
|
||||
|
||||
_blurTab(aTab) {
|
||||
@@ -5704,10 +5867,10 @@
|
||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||
}
|
||||
|
||||
@@ -604,69 +598,68 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
aTab.selected ||
|
||||
aTab.closing ||
|
||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||
@@ -5838,7 +6004,7 @@
|
||||
moveTabTo(aTab, aIndex, { forceStandaloneTab = false } = {}) {
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
if (aTab.pinned) {
|
||||
- aIndex = Math.min(aIndex, this.pinnedTabCount - 1);
|
||||
+ aIndex = aTab.hasAttribute('zen-essential') ? Math.min(aIndex, this._numZenEssentials - 1) : Math.min(aIndex, this.pinnedTabCount - 1);
|
||||
} else {
|
||||
aIndex = Math.max(aIndex, this.pinnedTabCount);
|
||||
}
|
||||
@@ -5848,10 +6014,17 @@
|
||||
@@ -6001,7 +6164,7 @@
|
||||
|
||||
this.#handleTabMove(aTab, () => {
|
||||
let neighbor = this.tabs[aIndex];
|
||||
- if (forceStandaloneTab && neighbor.group) {
|
||||
+ const _tPos = aTab._tPos;
|
||||
+ if ((forceStandaloneTab && neighbor.group) || neighbor.group?.hasAttribute("split-view-group")) {
|
||||
neighbor = neighbor.group;
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
if (this.isTab(element) && element.pinned) {
|
||||
- tabIndex = Math.min(tabIndex, this.pinnedTabCount - 1);
|
||||
+ tabIndex = element.hasAttribute('zen-essential') ? Math.min(tabIndex, this._numZenEssentials - 1) : Math.min(tabIndex, this.pinnedTabCount - 1);
|
||||
} else {
|
||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||
}
|
||||
@@ -6028,9 +6191,16 @@
|
||||
element,
|
||||
() => {
|
||||
let neighbor = this.tabs[tabIndex];
|
||||
- if (forceUngrouped && neighbor.group) {
|
||||
+ const _tPos = element._tPos;
|
||||
+ if ((forceUngrouped && neighbor?.group) || neighbor?.group?.hasAttribute("split-view-group")) {
|
||||
neighbor = neighbor.group;
|
||||
}
|
||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||
+ element = element.group;
|
||||
+ }
|
||||
+ if (element.group?.hasAttribute("split-view-group") && neighbor == element.group) {
|
||||
+ return;
|
||||
+ }
|
||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||
neighbor.after(element);
|
||||
} else {
|
||||
@@ -6099,7 +6269,9 @@
|
||||
targetElement = targetElement.group;
|
||||
}
|
||||
- if (neighbor && aIndex > aTab._tPos) {
|
||||
+ if (aTab.group?.hasAttribute("split-view-group")) {
|
||||
+ aTab = aTab.group;
|
||||
+ }
|
||||
+ if (aTab.group?.hasAttribute("split-view-group") && neighbor == aTab.group) {
|
||||
+ return;
|
||||
+ }
|
||||
+ if (neighbor && aIndex >= _tPos) {
|
||||
neighbor.after(aTab);
|
||||
} else {
|
||||
this.tabContainer.insertBefore(aTab, neighbor);
|
||||
@@ -5901,13 +6074,22 @@
|
||||
* Bug 1955388 - prevent pinned tabs from commingling with non-pinned tabs
|
||||
* when there are hidden tabs present
|
||||
*/
|
||||
+ if (tab.group?.hasAttribute("split-view-group")) {
|
||||
+ tab = tab.group;
|
||||
+ }
|
||||
+
|
||||
if (tab.pinned && !targetElement?.pinned) {
|
||||
// prevent pinned tab from being dragged past a non-pinned tab
|
||||
targetElement = this.tabs[this.pinnedTabCount - 1];
|
||||
moveBefore = false;
|
||||
}
|
||||
-
|
||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||
+ element = element.group;
|
||||
+ }
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
if (element.pinned && !targetElement?.pinned) {
|
||||
targetElement = this.tabs[this.pinnedTabCount - 1];
|
||||
@@ -6109,7 +6281,13 @@
|
||||
moveBefore = true;
|
||||
}
|
||||
|
||||
+ if (targetElement?.group?.hasAttribute("split-view-group")) {
|
||||
+ targetElement = targetElement.group;
|
||||
+ }
|
||||
let getContainer = () => {
|
||||
+ if (tab.hasAttribute("zen-essential")) {
|
||||
+ return document.getElementById("zen-essentials-container");
|
||||
+ if (element.hasAttribute("zen-essential")) {
|
||||
+ return ZenWorkspaces.getEssentialsSection(element);
|
||||
+ }
|
||||
if (tab.pinned && this.tabContainer.verticalMode) {
|
||||
if (element.pinned && this.tabContainer.verticalMode) {
|
||||
return this.tabContainer.verticalPinnedTabsContainer;
|
||||
}
|
||||
@@ -5937,7 +6119,7 @@
|
||||
}
|
||||
|
||||
moveTabToGroup(aTab, aGroup) {
|
||||
@@ -6169,7 +6347,7 @@
|
||||
if (!this.isTab(aTab)) {
|
||||
throw new Error("Can only move a tab into a tab group");
|
||||
}
|
||||
- if (aTab.pinned) {
|
||||
+ if (aTab.pinned != !!aGroup.pinned) {
|
||||
return;
|
||||
}
|
||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||
@@ -5961,6 +6143,10 @@
|
||||
@@ -6263,6 +6441,10 @@
|
||||
|
||||
moveActionCallback();
|
||||
|
||||
@@ -677,16 +670,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||
// changed.
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
@@ -6015,7 +6201,7 @@
|
||||
createLazyBrowser,
|
||||
};
|
||||
|
||||
- let numPinned = this.pinnedTabCount;
|
||||
+ let numPinned = this._numVisiblePinTabs;
|
||||
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
|
||||
params.pinned = true;
|
||||
}
|
||||
@@ -6765,7 +6951,7 @@
|
||||
@@ -7080,7 +7262,7 @@
|
||||
// preventDefault(). It will still raise the window if appropriate.
|
||||
break;
|
||||
}
|
||||
@@ -695,7 +679,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
window.focus();
|
||||
aEvent.preventDefault();
|
||||
break;
|
||||
@@ -7671,6 +7857,7 @@
|
||||
@@ -7981,6 +8163,7 @@
|
||||
aWebProgress.isTopLevel
|
||||
) {
|
||||
this.mTab.setAttribute("busy", "true");
|
||||
@@ -703,7 +687,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||
}
|
||||
@@ -8640,7 +8827,7 @@ var TabContextMenu = {
|
||||
@@ -8954,7 +9137,7 @@ var TabContextMenu = {
|
||||
);
|
||||
contextUnpinSelectedTabs.hidden =
|
||||
!this.contextTab.pinned || !this.multiselected;
|
||||
@@ -712,20 +696,11 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..cdffd1cb1b7744aecc56a8ce57b115e2
|
||||
// Move Tab items
|
||||
let contextMoveTabOptions = document.getElementById(
|
||||
"context_moveTabOptions"
|
||||
@@ -8674,7 +8861,7 @@ var TabContextMenu = {
|
||||
let isFirstTab =
|
||||
!this.contextTabs[0].group &&
|
||||
(this.contextTabs[0] == visibleTabs[0] ||
|
||||
- this.contextTabs[0] == visibleTabs[gBrowser.pinnedTabCount]);
|
||||
+ this.contextTabs[0] == visibleTabs[gBrowser._numVisiblePinTabs]);
|
||||
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
|
||||
|
||||
document.getElementById("context_openTabInWindow").disabled =
|
||||
@@ -8904,6 +9091,7 @@ var TabContextMenu = {
|
||||
if (this.contextTab.multiselected) {
|
||||
gBrowser.removeMultiSelectedTabs();
|
||||
@@ -9223,6 +9406,7 @@ var TabContextMenu = {
|
||||
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
});
|
||||
} else {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
|
||||
gBrowser.removeTab(this.contextTab, { animate: true });
|
||||
}
|
||||
},
|
||||
gBrowser.removeTab(this.contextTab, {
|
||||
animate: true,
|
||||
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||
index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f001dd4c3b1 100644
|
||||
index ef9c0389ec926e6bc01c0dc3b883beceaf1f7d43..2885d896c4026278dfcb309f12230d6f86275ada 100644
|
||||
--- a/browser/components/tabbrowser/content/tabs.js
|
||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||
@@ -93,7 +93,7 @@
|
||||
@@ -83,7 +83,7 @@
|
||||
};
|
||||
this.arrowScrollbox._canScrollToElement = element => {
|
||||
if (isTab(element)) {
|
||||
@@ -11,7 +11,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
return true;
|
||||
};
|
||||
@@ -347,7 +347,7 @@
|
||||
@@ -342,7 +342,7 @@
|
||||
// and we're not hitting the scroll buttons.
|
||||
if (
|
||||
event.button != 0 ||
|
||||
@@ -20,7 +20,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
event.composedTarget.localName == "toolbarbutton"
|
||||
) {
|
||||
return;
|
||||
@@ -396,6 +396,7 @@
|
||||
@@ -391,6 +391,7 @@
|
||||
// Reset the "ignored click" flag
|
||||
target._ignoredCloseButtonClicks = false;
|
||||
}
|
||||
@@ -28,8 +28,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
|
||||
/* Protects from close-tab-button errant doubleclick:
|
||||
@@ -693,7 +694,7 @@
|
||||
if (this.#isContainerVerticalPinnedExpanded(tab)) {
|
||||
@@ -692,7 +693,7 @@
|
||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||
// Set this before adjusting dragged tab's position
|
||||
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
||||
@@ -37,7 +37,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let tabsPerRow = 0;
|
||||
let position = 0;
|
||||
for (let pinnedTab of pinnedTabs) {
|
||||
@@ -899,6 +900,10 @@
|
||||
@@ -764,7 +765,7 @@
|
||||
} else if (isTabGroupLabel(tab) && !tab.group.collapsed) {
|
||||
this._lockTabSizing();
|
||||
this.#keepTabSizeLocked = true;
|
||||
- tab.group.collapsed = true;
|
||||
+ tab.group.collapsed = !tab.group.hasAttribute("split-view-group");
|
||||
expandGroupOnDrop = true;
|
||||
}
|
||||
}
|
||||
@@ -913,6 +914,10 @@
|
||||
}
|
||||
|
||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||
@@ -47,8 +56,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
+ }
|
||||
if (
|
||||
(effects == "move" || effects == "copy") &&
|
||||
this == draggedTab.container &&
|
||||
@@ -1012,6 +1017,18 @@
|
||||
document == draggedTab.ownerDocument &&
|
||||
@@ -1069,6 +1074,18 @@
|
||||
|
||||
this._tabDropIndicator.hidden = true;
|
||||
event.stopPropagation();
|
||||
@@ -60,14 +69,14 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||
+
|
||||
+ if (moved) {
|
||||
+ this._finishMoveTogetherSelectedTabs(draggedTab);
|
||||
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
if (draggedTab && dropEffect == "copy") {
|
||||
// copy the dropped tab (wherever it's from)
|
||||
let newIndex = this._getDropIndex(event);
|
||||
@@ -1050,10 +1067,11 @@
|
||||
let duplicatedDraggedTab;
|
||||
let duplicatedTabs = [];
|
||||
@@ -1108,10 +1125,11 @@
|
||||
}
|
||||
} else {
|
||||
let isPinned = draggedTab.pinned;
|
||||
@@ -83,8 +92,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
);
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
@@ -1129,7 +1147,7 @@
|
||||
tab.removeAttribute("tabdrop-samewindow");
|
||||
@@ -1203,7 +1221,7 @@
|
||||
item.removeAttribute("tabdrop-samewindow");
|
||||
resolve();
|
||||
};
|
||||
- if (gReduceMotion) {
|
||||
@@ -92,42 +101,33 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -1246,7 +1264,7 @@
|
||||
return;
|
||||
}
|
||||
}
|
||||
-
|
||||
@@ -1327,6 +1345,7 @@
|
||||
|
||||
let nextItem = this.ariaFocusableItems[newIndex];
|
||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||
gBrowser.loadTabs(urls, {
|
||||
inBackground,
|
||||
replace,
|
||||
@@ -1276,13 +1294,23 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- this._finishMoveTogetherSelectedTabs(draggedTab);
|
||||
this._finishAnimateTabMove();
|
||||
@@ -1359,6 +1378,17 @@
|
||||
|
||||
this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||
this.finishAnimateTabMove();
|
||||
+
|
||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||
+ if (moved) {
|
||||
+ delete draggedTab._dragData;
|
||||
+ return;
|
||||
+ }
|
||||
+ } else if (dt.mozUserCancelled) {
|
||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||
+ }
|
||||
+
|
||||
+ this._finishMoveTogetherSelectedTabs(draggedTab);
|
||||
+
|
||||
this.#expandGroupOnDrop(draggedTab);
|
||||
|
||||
if (
|
||||
dt.mozUserCancelled ||
|
||||
dt.dropEffect != "none" ||
|
||||
- this._isCustomizing
|
||||
+ this._isCustomizing ||
|
||||
+ draggedTab.pinned
|
||||
) {
|
||||
delete draggedTab._dragData;
|
||||
return;
|
||||
@@ -1504,7 +1532,7 @@
|
||||
@@ -1582,7 +1612,7 @@
|
||||
}
|
||||
|
||||
get newTabButton() {
|
||||
@@ -136,7 +136,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
|
||||
get verticalMode() {
|
||||
@@ -1524,29 +1552,41 @@
|
||||
@@ -1606,29 +1636,41 @@
|
||||
if (this.#allTabs) {
|
||||
return this.#allTabs;
|
||||
}
|
||||
@@ -156,7 +156,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
this.#allTabs = [
|
||||
- ...this.verticalPinnedTabsContainer.children,
|
||||
+ ...document.getElementById("zen-essentials-container").children, ...this.verticalPinnedTabsContainer.children,
|
||||
+ ...ZenWorkspaces.getCurrentEssentialsContainer().children, ...this.verticalPinnedTabsContainer.children,
|
||||
...children,
|
||||
];
|
||||
+ const lastPinnedTabIdx = gBrowser.pinnedTabCount;
|
||||
@@ -186,7 +186,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1566,7 +1606,7 @@
|
||||
@@ -1648,7 +1690,7 @@
|
||||
*/
|
||||
get visibleTabs() {
|
||||
if (!this.#visibleTabs) {
|
||||
@@ -195,7 +195,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
return this.#visibleTabs;
|
||||
}
|
||||
@@ -1601,23 +1641,18 @@
|
||||
@@ -1683,23 +1725,18 @@
|
||||
}
|
||||
|
||||
let elementIndex = 0;
|
||||
@@ -211,7 +211,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
let focusableItems = [];
|
||||
- for (let child of children) {
|
||||
+ for (let child of [...document.getElementById("zen-essentials-container").children, ...verticalPinnedTabsContainer.children, ...children]) {
|
||||
+ for (let child of [...ZenWorkspaces.getCurrentEssentialsContainer().children, ...verticalPinnedTabsContainer.children, ...children]) {
|
||||
if (isTab(child) && child.visible) {
|
||||
child.elementIndex = elementIndex++;
|
||||
focusableItems.push(child);
|
||||
@@ -223,8 +223,15 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||
visibleTabsInGroup.forEach(tab => {
|
||||
tab.elementIndex = elementIndex++;
|
||||
@@ -1627,10 +1662,7 @@
|
||||
@@ -1707,12 +1744,14 @@
|
||||
focusableItems.push(...visibleTabsInGroup);
|
||||
}
|
||||
}
|
||||
+ let glanceTab = child.querySelector("tab[zen-glance-tab]");
|
||||
+ if (isTab(child) && glanceTab) {
|
||||
+ glanceTab.elementIndex = elementIndex++;
|
||||
+ focusableItems.push(glanceTab);
|
||||
+ }
|
||||
}
|
||||
|
||||
- this.#focusableItems = [
|
||||
@@ -235,7 +242,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
return this.#focusableItems;
|
||||
}
|
||||
@@ -1638,6 +1670,7 @@
|
||||
@@ -1720,6 +1759,7 @@
|
||||
_invalidateCachedTabs() {
|
||||
this.#allTabs = null;
|
||||
this._invalidateCachedVisibleTabs();
|
||||
@@ -243,18 +250,18 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
|
||||
_invalidateCachedVisibleTabs() {
|
||||
@@ -1652,8 +1685,8 @@
|
||||
#isContainerVerticalPinnedExpanded(tab) {
|
||||
@@ -1734,8 +1774,8 @@
|
||||
#isContainerVerticalPinnedGrid(tab) {
|
||||
return (
|
||||
this.verticalMode &&
|
||||
- tab.hasAttribute("pinned") &&
|
||||
- this.hasAttribute("expanded")
|
||||
- this.hasAttribute("expanded") &&
|
||||
+ (tab.hasAttribute("zen-essential")) &&
|
||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded"))
|
||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||
!this.expandOnHover
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1668,7 +1701,7 @@
|
||||
@@ -1751,7 +1791,7 @@
|
||||
|
||||
if (node == null) {
|
||||
// We have a container for non-tab elements at the end of the scrollbox.
|
||||
@@ -263,7 +270,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
|
||||
node.before(tab);
|
||||
@@ -1763,7 +1796,7 @@
|
||||
@@ -1846,7 +1886,7 @@
|
||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||
// Attach the long click popup to all of them.
|
||||
@@ -272,16 +279,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
const newTab2 = this.newTabButton;
|
||||
const newTabVertical = document.getElementById(
|
||||
"vertical-tabs-newtab-button"
|
||||
@@ -1846,7 +1879,7 @@
|
||||
let rect = ele => {
|
||||
return window.windowUtils.getBoundsWithoutFlushing(ele);
|
||||
};
|
||||
- let tab = this.visibleTabs[gBrowser.pinnedTabCount];
|
||||
+ let tab = this.visibleTabs[gBrowser._numVisiblePinTabs];
|
||||
if (tab && rect(tab).width <= this._tabClipWidth) {
|
||||
this.setAttribute("closebuttons", "activetab");
|
||||
} else {
|
||||
@@ -1858,10 +1891,12 @@
|
||||
@@ -1941,10 +1981,12 @@
|
||||
|
||||
_handleTabSelect(aInstant) {
|
||||
let selectedTab = this.selectedItem;
|
||||
@@ -294,34 +292,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
selectedTab._notselectedsinceload = false;
|
||||
}
|
||||
|
||||
@@ -1873,7 +1908,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- let tabs = this.visibleTabs;
|
||||
+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||
if (!tabs.length) {
|
||||
return;
|
||||
}
|
||||
@@ -1909,7 +1944,7 @@
|
||||
if (isEndTab && !this._hasTabTempMaxWidth) {
|
||||
return;
|
||||
}
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabs;
|
||||
// Force tabs to stay the same width, unless we're closing the last tab,
|
||||
// which case we need to let them expand just enough so that the overall
|
||||
// tabbar width is the same.
|
||||
@@ -1924,7 +1959,7 @@
|
||||
let tabsToReset = [];
|
||||
for (let i = numPinned; i < tabs.length; i++) {
|
||||
let tab = tabs[i];
|
||||
- tab.style.setProperty("max-width", aTabWidth, "important");
|
||||
+ //tab.style.setProperty("max-width", aTabWidth, "important");
|
||||
if (!isEndTab) {
|
||||
// keep tabs the same width
|
||||
tab.style.transition = "none";
|
||||
@@ -1990,16 +2025,15 @@
|
||||
@@ -2085,16 +2127,15 @@
|
||||
// Move pinned tabs to another container when the tabstrip is toggled to vertical
|
||||
// and when session restore code calls _positionPinnedTabs; update styling whenever
|
||||
// the number of pinned tabs changes.
|
||||
@@ -335,16 +306,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
- let tabs = this.visibleTabs;
|
||||
+ if (!ZenWorkspaces._hasInitializedTabsStrip) return;
|
||||
+ let count = ZenWorkspaces.makeSurePinTabIsInCorrectPosition();
|
||||
+ if (gBrowser.pinnedTabCount !== (verticalTabsContainer.children.length - count - 1 + document.getElementById("zen-essentials-container").children.length)) {
|
||||
+ if (gBrowser.pinnedTabCount !== (verticalTabsContainer.children.length - count - 1 + ZenWorkspaces.getCurrentEssentialsContainer().children.length)) {
|
||||
+ let tabs = this.allTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||
for (let i = 0; i < numPinned; i++) {
|
||||
tabs[i].style.marginInlineStart = "";
|
||||
- verticalTabsContainer.appendChild(tabs[i]);
|
||||
+ tabs[i].hasAttribute("zen-essential") ? document.getElementById("zen-essentials-container").appendChild(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i]) : verticalTabsContainer.insertBefore(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i], verticalTabsContainer.lastChild);
|
||||
+ tabs[i].hasAttribute("zen-essential") ? ZenWorkspaces.getCurrentEssentialsContainer().appendChild(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i]) : verticalTabsContainer.insertBefore(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i], verticalTabsContainer.lastChild);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2007,9 +2041,7 @@
|
||||
@@ -2102,9 +2143,7 @@
|
||||
}
|
||||
|
||||
_resetVerticalPinnedTabs() {
|
||||
@@ -355,18 +326,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
if (!verticalTabsContainer.children.length) {
|
||||
return;
|
||||
@@ -2022,8 +2054,8 @@
|
||||
@@ -2117,7 +2156,7 @@
|
||||
}
|
||||
|
||||
_positionPinnedTabs() {
|
||||
- let tabs = this.visibleTabs;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||
+ let numPinned = gBrowser._numVisiblePinTabs;
|
||||
let numPinned = gBrowser.pinnedTabCount;
|
||||
let absPositionHorizontalTabs =
|
||||
this.overflowing && tabs.length > numPinned && numPinned > 0;
|
||||
|
||||
@@ -2032,7 +2064,7 @@
|
||||
@@ -2127,7 +2166,7 @@
|
||||
|
||||
if (this.verticalMode) {
|
||||
this._updateVerticalPinnedTabs();
|
||||
@@ -375,7 +344,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let layoutData = this._pinnedTabsLayoutCache;
|
||||
let uiDensity = document.documentElement.getAttribute("uidensity");
|
||||
if (!layoutData || layoutData.uiDensity != uiDensity) {
|
||||
@@ -2104,7 +2136,7 @@
|
||||
@@ -2191,7 +2230,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -384,7 +353,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
let directionX = screenX > dragData.animLastScreenX;
|
||||
let directionY = screenY > dragData.animLastScreenY;
|
||||
@@ -2112,7 +2144,7 @@
|
||||
@@ -2199,7 +2238,7 @@
|
||||
dragData.animLastScreenX = screenX;
|
||||
|
||||
let { width: tabWidth, height: tabHeight } =
|
||||
@@ -393,14 +362,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let shiftSizeX = tabWidth * movingTabs.length;
|
||||
let shiftSizeY = tabHeight;
|
||||
dragData.tabWidth = tabWidth;
|
||||
@@ -2296,11 +2328,15 @@
|
||||
@@ -2374,12 +2413,16 @@
|
||||
|
||||
this.#clearDragOverCreateGroupTimer();
|
||||
|
||||
let isPinned = draggedTab.pinned;
|
||||
- let isPinned = draggedTab.pinned;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
- let tabs = this.ariaFocusableItems.slice(
|
||||
- isPinned ? 0 : numPinned,
|
||||
- isPinned ? numPinned : undefined
|
||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||
+ let tabs = this.ariaFocusableItems.filter(tab => !tab.hasAttribute("zen-glance-tab")).slice(
|
||||
@@ -413,7 +384,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
|
||||
if (this.#rtlMode) {
|
||||
tabs.reverse();
|
||||
@@ -2314,7 +2350,7 @@
|
||||
@@ -2393,7 +2436,7 @@
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
||||
@@ -422,7 +393,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let translateX = event.screenX - dragData.screenX;
|
||||
let translateY = event.screenY - dragData.screenY;
|
||||
|
||||
@@ -2328,6 +2364,12 @@
|
||||
@@ -2407,10 +2450,19 @@
|
||||
let lastTab = tabs.at(-1);
|
||||
let lastMovingTab = movingTabs.at(-1);
|
||||
let firstMovingTab = movingTabs[0];
|
||||
@@ -435,20 +406,24 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||
@@ -2348,7 +2390,11 @@
|
||||
translate = Math.min(Math.max(translate, firstBound), lastBound);
|
||||
|
||||
for (let tab of movingTabs) {
|
||||
- tab.style.transform = `${translateAxis}(${translate}px)`;
|
||||
+ if (tab.group?.hasAttribute("split-view-group")) {
|
||||
+ tab.group.style.transform = `${translateAxis}(${translate}px)`;
|
||||
+ } else {
|
||||
+ tab.style.transform = `${translateAxis}(${translate}px)`;
|
||||
let shiftSize = lastMovingTabScreen - firstMovingTabScreen;
|
||||
+ if (firstMovingTab.hasAttribute("split-view-group")) {
|
||||
+ shiftSize += 5; // A hack to allow more space for the group
|
||||
+ }
|
||||
let translate = screen - dragData[screenAxis];
|
||||
if (!isPinned) {
|
||||
translate +=
|
||||
@@ -2431,6 +2483,9 @@
|
||||
// Shift the `.tab-group-label-container` to shift the label element.
|
||||
item = item.parentElement;
|
||||
}
|
||||
+ if (item.parentElement?.hasAttribute("split-view-group")) {
|
||||
+ item = item.parentElement;
|
||||
+ }
|
||||
item.style.transform = `${translateAxis}(${translate}px)`;
|
||||
}
|
||||
|
||||
dragData.translatePos = translate;
|
||||
@@ -2485,6 +2531,9 @@
|
||||
@@ -2568,6 +2623,9 @@
|
||||
break;
|
||||
}
|
||||
let element = tabs[mid];
|
||||
@@ -458,7 +433,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let elementForSize = isTabGroupLabel(element)
|
||||
? element.parentElement
|
||||
: element;
|
||||
@@ -2507,6 +2556,10 @@
|
||||
@@ -2590,6 +2648,10 @@
|
||||
if (!dropElement) {
|
||||
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
||||
}
|
||||
@@ -469,7 +444,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
let newDropElementIndex = dropElement
|
||||
? dropElement.elementIndex
|
||||
: oldDropElementIndex;
|
||||
@@ -2515,7 +2568,7 @@
|
||||
@@ -2598,7 +2660,7 @@
|
||||
let shouldCreateGroupOnDrop;
|
||||
let dropBefore;
|
||||
if (dropElement) {
|
||||
@@ -478,11 +453,11 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
? dropElement.parentElement
|
||||
: dropElement;
|
||||
|
||||
@@ -2566,12 +2619,12 @@
|
||||
@@ -2660,12 +2722,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (gBrowser._tabGroupsEnabled && !isPinned) {
|
||||
- if (gBrowser._tabGroupsEnabled && isTab(draggedTab) && !isPinned) {
|
||||
+ if (true) {
|
||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||
|
||||
@@ -493,7 +468,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
dropElement != draggedTab &&
|
||||
isTab(dropElement) &&
|
||||
!dropElement?.group &&
|
||||
@@ -2639,7 +2692,7 @@
|
||||
@@ -2735,7 +2797,7 @@
|
||||
// Shift background tabs to leave a gap where the dragged tab
|
||||
// would currently be dropped.
|
||||
for (let item of tabs) {
|
||||
@@ -502,7 +477,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2648,6 +2701,9 @@
|
||||
@@ -2744,6 +2806,9 @@
|
||||
if (isTabGroupLabel(item)) {
|
||||
// Shift the `.tab-group-label-container` to shift the label element.
|
||||
item = item.parentElement;
|
||||
@@ -512,19 +487,19 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
}
|
||||
item.style.transform = transform;
|
||||
}
|
||||
@@ -2697,8 +2753,9 @@
|
||||
@@ -2796,8 +2861,9 @@
|
||||
);
|
||||
}
|
||||
|
||||
- _finishAnimateTabMove() {
|
||||
- if (!this.hasAttribute("movingtab")) {
|
||||
+ _finishAnimateTabMove(always = false) {
|
||||
- finishAnimateTabMove() {
|
||||
- if (!this.#isMovingTab()) {
|
||||
+ finishAnimateTabMove(always = false) {
|
||||
+ gZenPinnedTabManager.removeTabContainersDragoverClass();
|
||||
+ if (!this.hasAttribute("movingtab") && !always) {
|
||||
+ if (!this.#isMovingTab() && !always) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2711,6 +2768,12 @@
|
||||
@@ -2809,6 +2875,12 @@
|
||||
item = item.parentElement;
|
||||
}
|
||||
item.style.transform = "";
|
||||
@@ -537,7 +512,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
item.removeAttribute("dragover-createGroup");
|
||||
}
|
||||
this.removeAttribute("movingtab-createGroup");
|
||||
@@ -2754,7 +2817,7 @@
|
||||
@@ -2855,7 +2927,7 @@
|
||||
let postTransitionCleanup = () => {
|
||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||
};
|
||||
@@ -546,7 +521,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -2924,7 +2987,7 @@
|
||||
@@ -3028,7 +3100,7 @@
|
||||
}
|
||||
|
||||
_notifyBackgroundTab(aTab) {
|
||||
@@ -555,3 +530,13 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..0d3919b288afefb05e3ec54ddfa90f00
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3154,6 +3226,9 @@
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||
+ target = target.group.labelElement;
|
||||
+ }
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bfcb90c733 100644
|
||||
index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..8d1a80e97fa711352d4b725f2d299a073dbae4db 100644
|
||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
@@ -67,6 +67,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||
false
|
||||
);
|
||||
|
||||
@@ -16,19 +16,24 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
|
||||
|
||||
@@ -348,7 +355,11 @@ export class UrlbarInput {
|
||||
@@ -349,7 +356,16 @@ export class UrlbarInput {
|
||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
||||
// event but does not set the primary selection.
|
||||
this._suppressPrimaryAdjustment = true;
|
||||
+ this.document.getElementById("navigator-toolbox").setAttribute("supress-primary-adjustment", !this.document.getElementById("navigator-toolbox").hasAttribute("zen-has-hover"));
|
||||
+ const zenToolbox = this.document.getElementById("navigator-toolbox");
|
||||
+ zenToolbox.setAttribute("supress-primary-adjustment", !(
|
||||
+ zenToolbox.hasAttribute("zen-has-hover") ||
|
||||
+ zenToolbox.hasAttribute("zen-has-empty-tab") ||
|
||||
+ zenToolbox.hasAttribute("zen-user-show")
|
||||
+ ));
|
||||
this.inputField.select();
|
||||
+ this.document.ownerGlobal.setTimeout(() => {
|
||||
+ this.document.getElementById("navigator-toolbox").removeAttribute("supress-primary-adjustment");
|
||||
+ }, 100);
|
||||
+ zenToolbox.removeAttribute("supress-primary-adjustment");
|
||||
+ }, 1000);
|
||||
this._suppressPrimaryAdjustment = false;
|
||||
}
|
||||
|
||||
@@ -424,6 +435,10 @@ export class UrlbarInput {
|
||||
@@ -425,6 +441,10 @@ export class UrlbarInput {
|
||||
hideSearchTerms = false,
|
||||
isSameDocument = false
|
||||
) {
|
||||
@@ -39,33 +44,38 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
// We only need to update the searchModeUI on tab switch conditionally
|
||||
// as we only persist searchMode with ScotchBonnet enabled.
|
||||
if (
|
||||
@@ -697,8 +712,11 @@ export class UrlbarInput {
|
||||
@@ -698,8 +718,16 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
}
|
||||
-
|
||||
+ this.document.getElementById("navigator-toolbox").setAttribute("supress-primary-adjustment", !this.document.getElementById("navigator-toolbox").hasAttribute("zen-has-hover"));
|
||||
+ const zenToolbox = this.document.getElementById("navigator-toolbox");
|
||||
+ zenToolbox.setAttribute("supress-primary-adjustment", !(
|
||||
+ zenToolbox.hasAttribute("zen-has-hover") ||
|
||||
+ zenToolbox.hasAttribute("zen-has-empty-tab") ||
|
||||
+ zenToolbox.hasAttribute("zen-user-show")
|
||||
+ ));
|
||||
this.handleNavigation({ event });
|
||||
+ this.document.ownerGlobal.setTimeout(() => {
|
||||
+ this.document.getElementById("navigator-toolbox").removeAttribute("supress-primary-adjustment");
|
||||
+ }, 200);
|
||||
+ zenToolbox.removeAttribute("supress-primary-adjustment");
|
||||
+ }, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1092,7 +1110,11 @@ export class UrlbarInput {
|
||||
@@ -1093,7 +1121,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
if (!this.#providesSearchMode(result)) {
|
||||
- this.view.close({ elementPicked: true });
|
||||
+ if (this._zenHandleUrlbarClose) {
|
||||
+ this._zenHandleUrlbarClose(true);
|
||||
+ this._zenHandleUrlbarClose(true, true);
|
||||
+ } else {
|
||||
+ this.view.close({ elementPicked: true });
|
||||
+ }
|
||||
}
|
||||
|
||||
this.controller.recordSelectedResult(event, result);
|
||||
@@ -2124,6 +2146,10 @@ export class UrlbarInput {
|
||||
@@ -2125,6 +2157,10 @@ export class UrlbarInput {
|
||||
await this.#updateLayoutBreakoutDimensions();
|
||||
}
|
||||
|
||||
@@ -76,19 +86,21 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
startLayoutExtend() {
|
||||
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
||||
// Do not expand if the Urlbar does not support being expanded or it is
|
||||
@@ -2146,6 +2172,11 @@ export class UrlbarInput {
|
||||
@@ -2147,6 +2183,13 @@ export class UrlbarInput {
|
||||
|
||||
this.setAttribute("breakout-extend", "true");
|
||||
|
||||
+ if (lazy.ZEN_URLBAR_BEHAVIOR == 'float' || (lazy.ZEN_URLBAR_BEHAVIOR == 'floating-on-type' && !this.focusedViaMousedown)) {
|
||||
+ this.setAttribute("zen-floating-urlbar", "true");
|
||||
+ // Divide the window by 2 and subtract the urlbar height to get the top
|
||||
+ this.textbox.style.setProperty("--zen-urlbar-top", `${(this.window.innerHeight / 6)}px`);
|
||||
+ } else {
|
||||
+ this.removeAttribute("zen-floating-urlbar");
|
||||
+ }
|
||||
// Enable the animation only after the first extend call to ensure it
|
||||
// doesn't run when opening a new window.
|
||||
if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
@@ -2165,6 +2196,19 @@ export class UrlbarInput {
|
||||
@@ -2166,6 +2209,24 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -97,18 +109,32 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
+ }
|
||||
+
|
||||
+ // Arc like URLbar: Blur the input on exit
|
||||
+ this.document.getElementById("navigator-toolbox").setAttribute("supress-primary-adjustment", !this.document.getElementById("navigator-toolbox").hasAttribute("zen-has-hover"));
|
||||
+ const zenToolbox = this.document.getElementById("navigator-toolbox");
|
||||
+ zenToolbox.setAttribute("supress-primary-adjustment", !(
|
||||
+ zenToolbox.hasAttribute("zen-has-hover") ||
|
||||
+ zenToolbox.hasAttribute("zen-has-empty-tab") ||
|
||||
+ zenToolbox.hasAttribute("zen-user-show")
|
||||
+ ));
|
||||
+ this.window.gBrowser.selectedBrowser.focus();
|
||||
+ this.window.setTimeout(() => {
|
||||
+ this.document.getElementById("navigator-toolbox").removeAttribute("supress-primary-adjustment");
|
||||
+ }, 100);
|
||||
+ this.document.ownerGlobal.setTimeout(() => {
|
||||
+ zenToolbox.removeAttribute("supress-primary-adjustment");
|
||||
+ }, 1000);
|
||||
+
|
||||
+ this.removeAttribute("zen-floating-urlbar");
|
||||
+
|
||||
this.removeAttribute("breakout-extend");
|
||||
this.#updateTextboxPosition();
|
||||
}
|
||||
@@ -2997,7 +3041,7 @@ export class UrlbarInput {
|
||||
@@ -2485,7 +2546,7 @@ export class UrlbarInput {
|
||||
|
||||
this.textbox.parentNode.style.setProperty(
|
||||
"--urlbar-container-height",
|
||||
- px(getBoundsWithoutFlushing(this.textbox.parentNode).height)
|
||||
+ px(getBoundsWithoutFlushing(this.textbox.parentNode).height + 8)
|
||||
);
|
||||
this.textbox.style.setProperty(
|
||||
"--urlbar-height",
|
||||
@@ -2998,7 +3059,7 @@ export class UrlbarInput {
|
||||
*/
|
||||
_trimValue(val) {
|
||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||
@@ -117,7 +143,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
: val;
|
||||
// Only trim value if the directionality doesn't change to RTL and we're not
|
||||
// showing a strikeout https protocol.
|
||||
@@ -3367,6 +3411,10 @@ export class UrlbarInput {
|
||||
@@ -3368,6 +3429,10 @@ export class UrlbarInput {
|
||||
}
|
||||
reuseEmpty = true;
|
||||
}
|
||||
@@ -128,7 +154,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
if (
|
||||
where == "tab" &&
|
||||
reuseEmpty &&
|
||||
@@ -3374,6 +3422,9 @@ export class UrlbarInput {
|
||||
@@ -3375,6 +3440,9 @@ export class UrlbarInput {
|
||||
) {
|
||||
where = "current";
|
||||
}
|
||||
@@ -138,11 +164,27 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
return where;
|
||||
}
|
||||
|
||||
@@ -4048,6 +4099,11 @@ export class UrlbarInput {
|
||||
@@ -3632,6 +3700,7 @@ export class UrlbarInput {
|
||||
this.setResultForCurrentValue(null);
|
||||
this.handleCommand();
|
||||
this.controller.clearLastQueryContextCache();
|
||||
+ this.view.close();
|
||||
|
||||
this._suppressStartQuery = false;
|
||||
});
|
||||
@@ -3639,7 +3708,6 @@ export class UrlbarInput {
|
||||
contextMenu.addEventListener("popupshowing", () => {
|
||||
// Close the results pane when the input field contextual menu is open,
|
||||
// because paste and go doesn't want a result selection.
|
||||
- this.view.close();
|
||||
|
||||
let controller =
|
||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||
@@ -4053,6 +4121,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_click(event) {
|
||||
+ if (lazy.ZEN_URLBAR_BEHAVIOR === 'float' && event.target == this.inputField) {
|
||||
+ if (event.target == this.inputField) {
|
||||
+ event.zenOriginalTarget = this.textbox;
|
||||
+ this._on_mousedown(event);
|
||||
+ }
|
||||
@@ -150,7 +192,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
if (
|
||||
event.target == this.inputField ||
|
||||
event.target == this._inputContainer ||
|
||||
@@ -4119,7 +4175,7 @@ export class UrlbarInput {
|
||||
@@ -4124,7 +4197,7 @@ export class UrlbarInput {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +201,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
this.view.autoOpen({ event });
|
||||
} else {
|
||||
if (this._untrimOnFocusAfterKeydown) {
|
||||
@@ -4159,9 +4215,12 @@ export class UrlbarInput {
|
||||
@@ -4164,9 +4237,12 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_mousedown(event) {
|
||||
@@ -167,13 +209,13 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
+ switch (event.zenOriginalTarget || event.currentTarget) {
|
||||
case this.textbox: {
|
||||
this._mousedownOnUrlbarDescendant = true;
|
||||
+ if (event.type != "click" && lazy.ZEN_URLBAR_BEHAVIOR === 'float') {
|
||||
+ if (event.type != "click") {
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
if (
|
||||
event.target != this.inputField &&
|
||||
@@ -4171,8 +4230,8 @@ export class UrlbarInput {
|
||||
@@ -4176,8 +4252,8 @@ export class UrlbarInput {
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -184,3 +226,12 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..423e3aab4fd4fff9960caf8b8375d7bf
|
||||
|
||||
// Keep the focus status, since the attribute may be changed
|
||||
// upon calling this.focus().
|
||||
@@ -4218,7 +4294,7 @@ export class UrlbarInput {
|
||||
}
|
||||
// Don't close the view when clicking on a tab; we may want to keep the
|
||||
// view open on tab switch, and the TabSelect event arrived earlier.
|
||||
- if (event.target.closest("tab")) {
|
||||
+ if (event.target.closest("tab") || event.target.closest("#tabs-newtab-button")) {
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
index 0e6724f590490354cc4d4bde5176556f7e4b4a7c..bffc52488443d62de46abe5cbdac4504831c4a09 100644
|
||||
index d5382623595de8daed8cd13ea2eb2de329a4bd92..3b33e083c40f70a97d153934f2eb6ba73bf986b5 100644
|
||||
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
@@ -610,7 +610,7 @@ export class UrlbarView {
|
||||
@@ -609,7 +609,7 @@ export class UrlbarView {
|
||||
!this.input.value ||
|
||||
this.input.getAttribute("pageproxystate") == "valid"
|
||||
) {
|
||||
@@ -11,3 +11,12 @@ index 0e6724f590490354cc4d4bde5176556f7e4b4a7c..bffc52488443d62de46abe5cbdac4504
|
||||
// Try to reuse the cached top-sites context. If it's not cached, then
|
||||
// there will be a gap of time between when the input is focused and
|
||||
// when the view opens that can be perceived as flicker.
|
||||
@@ -2975,7 +2975,7 @@ export class UrlbarView {
|
||||
}
|
||||
|
||||
#enableOrDisableRowWrap() {
|
||||
- let wrap = getBoundsWithoutFlushing(this.input.textbox).width < 650;
|
||||
+ let wrap = false;
|
||||
this.#rows.toggleAttribute("wrap", wrap);
|
||||
this.oneOffSearchButtons.container.toggleAttribute("wrap", wrap);
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
index dcf192d0ab7323d69f1bf505971e57c98ad4397d..a4d88304786af35030391f71bc99eee6cf7c1a64 100644
|
||||
--- a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
+++ b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
||||
@@ -188,7 +188,7 @@ export class ContentSection extends React.PureComponent {
|
||||
data-l10n-args='{"num": 4}'
|
||||
/>
|
||||
</select>
|
||||
- {mayHaveSponsoredTopSites && (
|
||||
+ {false && (
|
||||
<div className="check-wrapper" role="presentation">
|
||||
<input
|
||||
id="sponsored-shortcuts"
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
index df9d63c2713b4237d8acca93f108d5c788caed8d..a80cc02fdec6e1056d26a6b5a1cdc1a602e5cf2a 100644
|
||||
index a325becabddda511204fc5bd2022edc332cdde7c..6bb29b21f1e6c1d6ea3d38d50f01148e0a51f0d7 100644
|
||||
--- a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
+++ b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
@@ -34,7 +34,7 @@ const PREFS_BEFORE_SECTIONS = () => [
|
||||
@@ -52,7 +52,7 @@ const PREFS_BEFORE_SECTIONS = () => [
|
||||
titleString: "home-prefs-shortcuts-header",
|
||||
descString: "home-prefs-shortcuts-description",
|
||||
get nestedPrefs() {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
index b3d89213ec27151f05e9990d5a55c6e81ce3655f..3c485f616fa2daba62aacbdde2dfb3122e244821 100644
|
||||
index 14183ad7165dc91126b4409b26f669409c4e9905..be979225b89b193b9e9c8903de5740dc04a8999f 100644
|
||||
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
@@ -214,7 +214,7 @@ export const PREFS_CONFIG = new Map([
|
||||
@@ -215,7 +215,7 @@ export const PREFS_CONFIG = new Map([
|
||||
"showSponsoredTopSites",
|
||||
{
|
||||
title: "Show sponsored top sites",
|
||||
|
||||
22
src/browser/installer/windows/nsis/defines-nsi-in.patch
Normal file
22
src/browser/installer/windows/nsis/defines-nsi-in.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
|
||||
index eb9e403c36510bfda09eb84b8a35dff731279f5d..939d34dff255122947bf3eeabc9087685f101568 100644
|
||||
--- a/browser/installer/windows/nsis/defines.nsi.in
|
||||
+++ b/browser/installer/windows/nsis/defines.nsi.in
|
||||
@@ -90,7 +90,7 @@
|
||||
!define BETA_UPDATE_CHANNEL
|
||||
!endif
|
||||
|
||||
-!define BaseURLStubPing "http://download-stats.mozilla.org/stub"
|
||||
+!define BaseURLStubPing ""
|
||||
|
||||
# ARCH is used when it is necessary to differentiate the x64 registry keys from
|
||||
# the x86 registry keys (e.g. the uninstall registry key).
|
||||
@@ -148,7 +148,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
||||
!define APPROXIMATE_REQUIRED_SPACE_MB "145"
|
||||
|
||||
# Constants for parts of the telemetry submission URL
|
||||
-!define TELEMETRY_BASE_URL https://incoming.telemetry.mozilla.org/submit
|
||||
+!define TELEMETRY_BASE_URL
|
||||
!define TELEMETRY_NAMESPACE firefox-installer
|
||||
!define TELEMETRY_INSTALL_PING_VERSION 1
|
||||
!define TELEMETRY_INSTALL_PING_DOCTYPE install
|
||||
20
src/browser/installer/windows/nsis/installer-nsi.patch
Normal file
20
src/browser/installer/windows/nsis/installer-nsi.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
|
||||
index 491bcbbd8430410fa930e7b52491ea62f2c48bbc..42d960f4adb4837009e0106a137c14fcbd7a55f9 100755
|
||||
--- a/browser/installer/windows/nsis/installer.nsi
|
||||
+++ b/browser/installer/windows/nsis/installer.nsi
|
||||
@@ -837,7 +837,7 @@ Section "-InstallEndCleanup"
|
||||
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
|
||||
; invoked when we're running silently.
|
||||
${If} ${Silent}
|
||||
- Call SendPing
|
||||
+ ; Call SendPing
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
@@ -1965,5 +1965,5 @@ FunctionEnd
|
||||
|
||||
Function .onGUIEnd
|
||||
${OnEndCommon}
|
||||
- Call SendPing
|
||||
+ ; Call SendPing
|
||||
FunctionEnd
|
||||
13
src/browser/locales/en-US/installer/custom-properties.patch
Normal file
13
src/browser/locales/en-US/installer/custom-properties.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/browser/locales/en-US/installer/custom.properties b/browser/locales/en-US/installer/custom.properties
|
||||
index a9dc6fb90caa50a9ba9ec63a6cd90b4d8dcc2bc0..48d11c0c5a3b926d2d29c30d1ca8630941514210 100644
|
||||
--- a/browser/locales/en-US/installer/custom.properties
|
||||
+++ b/browser/locales/en-US/installer/custom.properties
|
||||
@@ -77,7 +77,7 @@ STATUS_INSTALL_LANG=Installing Language Files (${AB_CD})…
|
||||
STATUS_UNINSTALL_MAIN=Uninstalling $BrandShortName…
|
||||
STATUS_CLEANUP=A Little Housekeeping…
|
||||
|
||||
-UN_SURVEY_CHECKBOX_LABEL=Tell Mozilla why you uninstalled $BrandShortName
|
||||
+UN_SURVEY_CHECKBOX_LABEL=Tell Zen´s Team why you uninstalled $BrandShortName
|
||||
|
||||
# _DESC strings support approximately 65 characters per line.
|
||||
# One line
|
||||
13
src/browser/modules/ExtensionsUI-sys-mjs.patch
Normal file
13
src/browser/modules/ExtensionsUI-sys-mjs.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs
|
||||
index 3f74e47bf7602fa800d1cf3034ec67055cc792b6..e700b88d1aee80c946e234f89f695a31d71ff608 100644
|
||||
--- a/browser/modules/ExtensionsUI.sys.mjs
|
||||
+++ b/browser/modules/ExtensionsUI.sys.mjs
|
||||
@@ -436,7 +436,7 @@ export var ExtensionsUI = {
|
||||
eventCallback,
|
||||
removeOnDismissal: true,
|
||||
popupOptions: {
|
||||
- position: "bottomright topright",
|
||||
+ position: window.gZenUIManager.panelUIPosition,
|
||||
},
|
||||
// Pass additional options used internally by the
|
||||
// addon-webext-permissions-notification custom element
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
|
||||
index c4428df9e1c43ba7a1dfefa2d55316023325d2db..191bc513862d5247e338c683b11ae891ab914479 100644
|
||||
index 14bf18132eaee8a0c8fe6e108ac423de91a7d3e2..fa616654fdf8a29d59889227780a98f0f9dc9a20 100644
|
||||
--- a/browser/modules/URILoadingHelper.sys.mjs
|
||||
+++ b/browser/modules/URILoadingHelper.sys.mjs
|
||||
@@ -510,7 +510,7 @@ export const URILoadingHelper = {
|
||||
@@ -516,7 +516,7 @@ export const URILoadingHelper = {
|
||||
// page. If a load request bounces off for the currently selected tab,
|
||||
// we'll open a new tab instead.
|
||||
let tab = w.gBrowser.getTabForBrowser(targetBrowser);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/themes/BuiltInThemeConfig.sys.mjs b/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||
index 4e5a4f1795c18241d9143d159f7d040142e728d4..f4b0e9a7077076f2fbe8ac17fa6aadf586c6b37c 100644
|
||||
index 081187147736f56abfe5866a69e00ac13a8dd940..9a980fe858c1a77af7634037aebc332d237e9c11 100644
|
||||
--- a/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||
+++ b/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||
@@ -33,13 +33,6 @@ export const BuiltInThemeConfig = new Map([
|
||||
|
||||
@@ -470,10 +470,33 @@ groupbox h2 {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.zenThemeMarketplaceItemHomepageButton {
|
||||
width: 30px;
|
||||
min-width: 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-image: url('chrome://browser/skin/home.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
fill: currentColor;
|
||||
-moz-context-properties: fill, fill-opacity;
|
||||
}
|
||||
}
|
||||
|
||||
.zenThemeMarketplaceItemConfigureButton {
|
||||
width: 30px;
|
||||
min-width: 0;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
&::before {
|
||||
content: '';
|
||||
@@ -535,12 +558,15 @@ groupbox h2 {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.zenThemeMarketplaceItemUninstallButton {
|
||||
.zenThemeMarketplaceItemUninstallButton,
|
||||
#zenThemeMarketplaceImport {
|
||||
margin-left: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#zenThemeMarketplaceExport,
|
||||
#zenThemeMarketplaceCheckForUpdates {
|
||||
margin-left: auto;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.zenThemeMarketplaceItemPreferenceDialog {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||
index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52c16c5227 100644
|
||||
index 6ca85d9d4d593271fe49138ea736bd96651c05f5..192acb662eaeaeb67df890de4c9681952b078526 100644
|
||||
--- a/browser/themes/shared/tabbrowser/tabs.css
|
||||
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
||||
@@ -32,7 +32,7 @@
|
||||
@@ -11,7 +11,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
|
||||
--tab-selected-textcolor: var(--toolbar-color);
|
||||
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
||||
@@ -214,8 +214,7 @@
|
||||
@@ -210,8 +210,7 @@
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
||||
@@ -20,16 +20,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
+
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) {
|
||||
@@ -254,7 +253,6 @@
|
||||
#tabbrowser-tabs[movingtab] &:is(:active, [multiselected]) {
|
||||
@@ -257,7 +256,6 @@
|
||||
}
|
||||
|
||||
:root:not([uidensity=compact]) &[pinned] {
|
||||
:root:not([uidensity=compact], [sidebar-expand-on-hover]) &[pinned] {
|
||||
- padding: 0 10px;
|
||||
}
|
||||
|
||||
&:is([selected], [multiselected]) {
|
||||
@@ -268,6 +266,7 @@
|
||||
@@ -271,6 +269,7 @@
|
||||
border-radius: inherit;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
@@ -37,7 +37,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
@@ -442,6 +441,7 @@
|
||||
@@ -458,6 +457,7 @@
|
||||
.tab-icon-image {
|
||||
-moz-context-properties: fill, stroke;
|
||||
fill: currentColor;
|
||||
@@ -45,7 +45,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
|
||||
/* Apply crisp rendering for favicons at exactly 2dppx resolution */
|
||||
@media (resolution: 2dppx) {
|
||||
@@ -523,7 +523,7 @@
|
||||
@@ -557,7 +557,7 @@
|
||||
z-index: 1; /* Overlay tab title */
|
||||
|
||||
#tabbrowser-tabs[orient=vertical] & {
|
||||
@@ -54,7 +54,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
}
|
||||
|
||||
&[crashed] {
|
||||
@@ -531,7 +531,7 @@
|
||||
@@ -565,7 +565,7 @@
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
||||
@@ -63,7 +63,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
&[soundplaying] {
|
||||
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
||||
}
|
||||
@@ -561,7 +561,7 @@
|
||||
@@ -595,7 +595,7 @@
|
||||
background-image: linear-gradient(var(--audio-overlay-extra-background)),
|
||||
linear-gradient(var(--toolbox-bgcolor));
|
||||
-moz-context-properties: fill;
|
||||
@@ -72,44 +72,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
color-scheme: var(--tab-selected-color-scheme);
|
||||
border-radius: var(--border-radius-circle);
|
||||
|
||||
@@ -593,7 +593,7 @@
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:is([soundplaying], [muted], [activemedia-blocked]),
|
||||
- &[pinned]:is([soundplaying], [muted], [activemedia-blocked]),
|
||||
+ &:is([soundplaying], [muted], [activemedia-blocked]),
|
||||
&[crashed] {
|
||||
display: revert;
|
||||
}
|
||||
@@ -607,7 +607,7 @@
|
||||
--button-min-height-small: 24px;
|
||||
--button-border-radius: var(--border-radius-small);
|
||||
|
||||
- #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
|
||||
+ #tabbrowser-tabs:is([orient="horizontal"]) &:not([pinned]):not([crashed]) {
|
||||
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
||||
display: block;
|
||||
}
|
||||
@@ -638,14 +638,14 @@
|
||||
}
|
||||
|
||||
&[textoverflow] {
|
||||
- &[labeldirection=ltr]:not([pinned]),
|
||||
- &:not([labeldirection], [pinned]):-moz-locale-dir(ltr) {
|
||||
+ &[labeldirection=ltr],
|
||||
+ &:not([labeldirection]):-moz-locale-dir(ltr) {
|
||||
direction: ltr;
|
||||
mask-image: linear-gradient(to left, transparent, black var(--tab-label-mask-size));
|
||||
}
|
||||
|
||||
- &[labeldirection=rtl]:not([pinned]),
|
||||
- &:not([labeldirection], [pinned]):-moz-locale-dir(rtl) {
|
||||
+ &[labeldirection=rtl],
|
||||
+ &:not([labeldirection]):-moz-locale-dir(rtl) {
|
||||
direction: rtl;
|
||||
mask-image: linear-gradient(to right, transparent, black var(--tab-label-mask-size));
|
||||
}
|
||||
@@ -1201,7 +1201,7 @@
|
||||
@@ -1362,7 +1362,7 @@ tab-group {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,7 +81,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
#vertical-tabs-newtab-button {
|
||||
appearance: none;
|
||||
min-height: var(--tab-min-height);
|
||||
@@ -1212,7 +1212,7 @@
|
||||
@@ -1373,7 +1373,7 @@ tab-group {
|
||||
margin-inline: var(--tab-inner-inline-margin);
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
||||
@@ -127,7 +90,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@@ -1236,7 +1236,7 @@
|
||||
@@ -1397,7 +1397,7 @@ tab-group {
|
||||
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
||||
* we don't want a gap (between tabs), so we have to add some margin.
|
||||
*/
|
||||
@@ -136,15 +99,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
margin-block: var(--tab-block-margin);
|
||||
}
|
||||
|
||||
@@ -1260,7 +1260,6 @@
|
||||
}
|
||||
@@ -1471,8 +1471,6 @@ tab-group {
|
||||
}
|
||||
|
||||
#vertical-pinned-tabs-container {
|
||||
- --tab-inline-padding: calc((calc(var(--tab-collapsed-background-width) + 2 * var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2));
|
||||
display: none;
|
||||
grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto));
|
||||
overflow-y: auto;
|
||||
@@ -1480,7 +1479,7 @@
|
||||
:root:not([sidebar-expand-on-hover]) & {
|
||||
- --tab-inline-padding: calc((var(--tab-collapsed-background-width) + 2 *
|
||||
- var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2);
|
||||
/* stylelint-disable-next-line media-query-no-invalid */
|
||||
@media not -moz-pref("sidebar.visibility", "expand-on-hover") {
|
||||
/* We need these rules to apply at all times when the sidebar.visibility
|
||||
@@ -1717,7 +1715,7 @@ tab-group {
|
||||
toolbarbutton:not(#firefox-view-button),
|
||||
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
||||
) ~ #tabbrowser-tabs {
|
||||
@@ -153,7 +117,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
||||
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
||||
margin-inline-start: 2px;
|
||||
}
|
||||
@@ -1514,7 +1513,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||
@@ -1751,7 +1749,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
|
||||
index 574f83af7fa49ddcdff6711ca8b1d3bed1a35e0c..c2e8cb8b37438176db07a47e1e975ae1aea42252 100644
|
||||
index e237ee9edea85c1d2ef22f988df6b22755e343e6..b06fc06686a7a969e924ad0df662dec937b3c70d 100644
|
||||
--- a/browser/themes/shared/urlbar-searchbar.css
|
||||
+++ b/browser/themes/shared/urlbar-searchbar.css
|
||||
@@ -5,7 +5,7 @@
|
||||
@@ -7,11 +7,11 @@ index 574f83af7fa49ddcdff6711ca8b1d3bed1a35e0c..c2e8cb8b37438176db07a47e1e975ae1
|
||||
|
||||
:root {
|
||||
- --urlbar-container-padding: 1px;
|
||||
+ --urlbar-container-padding: 4px;
|
||||
+ --urlbar-container-padding: 2px;
|
||||
--urlbar-margin-inline: 5px;
|
||||
--urlbar-padding-block: 4px;
|
||||
}
|
||||
@@ -291,7 +291,9 @@
|
||||
@@ -292,7 +292,9 @@
|
||||
}
|
||||
|
||||
#urlbar[breakout][breakout-extend] {
|
||||
|
||||
@@ -24,10 +24,6 @@
|
||||
list-style-image: url('move-tab.svg') !important;
|
||||
}
|
||||
|
||||
.zen-tab-unsplit-button {
|
||||
list-style-image: url('unpin.svg') !important;
|
||||
}
|
||||
|
||||
#forward-button,
|
||||
#zen-sidebar-web-panel-forward {
|
||||
list-style-image: url('forward.svg') !important;
|
||||
@@ -63,9 +59,7 @@
|
||||
list-style-image: url('sidebars-right.svg') !important;
|
||||
}
|
||||
|
||||
#context_zenSplitTabs,
|
||||
#context-zenAddToWebPanel {
|
||||
/* TODO: Add split view icon */
|
||||
#context_zenSplitTabs {
|
||||
--menu-image: url('sidebars-right.svg') !important;
|
||||
}
|
||||
|
||||
@@ -168,10 +162,6 @@
|
||||
--menu-image: url('open.svg') !important;
|
||||
}
|
||||
|
||||
#context_zenSetAsDefaultWorkspace {
|
||||
--menu-image: url('bookmark-hollow.svg') !important;
|
||||
}
|
||||
|
||||
#context_zenEditWorkspace,
|
||||
#zenToolbarThemePicker {
|
||||
--menu-image: url('edit-theme.svg') !important;
|
||||
@@ -271,7 +261,8 @@
|
||||
#restore-button,
|
||||
#fullscreen-button,
|
||||
#zen-glance-sidebar-open,
|
||||
#appMenu-fullscreen-button2 {
|
||||
#appMenu-fullscreen-button2,
|
||||
.zen-tab-unsplit-button {
|
||||
list-style-image: url('fullscreen.svg') !important;
|
||||
}
|
||||
|
||||
@@ -333,7 +324,8 @@
|
||||
}
|
||||
|
||||
/* security */
|
||||
.identity-popup-security-connection {
|
||||
.identity-popup-security-connection,
|
||||
#appMenu-report-broken-site-button {
|
||||
list-style-image: url('security-broken.svg') !important;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,13 @@
|
||||
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
|
||||
index 9af78803f0005a2b89e1c73f52153ed4d9e3154a..b63dc3d050144f048ac6a326acd57cc85fa8a3a7 100644
|
||||
index 3e75a5f366e76acf4b9457a510b58b0cb8af580f..4962151f34ff52e8d009b82a9a12da99c4745a7a 100644
|
||||
--- a/browser/themes/windows/browser.css
|
||||
+++ b/browser/themes/windows/browser.css
|
||||
@@ -40,14 +40,13 @@
|
||||
* override these on the tabs toolbar because the accent color is
|
||||
* arbitrary, so the hardcoded colors from browser-custom-colors might
|
||||
* not provide sufficient contrast. */
|
||||
- --toolbarbutton-icon-fill: currentColor;
|
||||
--toolbarbutton-hover-background: color-mix(in srgb, currentColor 17%, transparent);
|
||||
--toolbarbutton-active-background: color-mix(in srgb, currentColor 30%, transparent);
|
||||
@@ -57,7 +57,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
&[sizemode="normal"] #navigator-toolbox {
|
||||
- border-top: .5px solid ActiveBorder;
|
||||
+ /* border-top: .5px solid ActiveBorder; Zen: Remove annoying top border, dont remove */
|
||||
- &[sizemode="normal"] #navigator-toolbox {
|
||||
+ &[sizemode="normal"] #browser {
|
||||
border-top: .5px solid ActiveBorder;
|
||||
&:-moz-window-inactive {
|
||||
border-top-color: InactiveBorder;
|
||||
}
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
|
||||
index 9bf4bb29a40045da21909dc1a2a49dbca5d6ac3e..e45bb12cabd7fb8a77b29e7e1e03ed3e92cd3625 100644
|
||||
--- a/build/moz.configure/init.configure
|
||||
+++ b/build/moz.configure/init.configure
|
||||
@@ -1101,7 +1101,7 @@ def milestone(build_env, build_project, version_path, as_milestone, _):
|
||||
|
||||
is_nightly = is_release_or_beta = None
|
||||
|
||||
- if "a1" in milestone:
|
||||
+ if "t" in milestone:
|
||||
is_nightly = True
|
||||
elif "a" not in milestone:
|
||||
is_release_or_beta = True
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
|
||||
index de5cd910c85a195496eddf38d85b78fb97694ef1..d10d6dfeb25bf01e86d84d3843c5a42551cac3bd 100644
|
||||
index 91b27e5b5fd938f8c5f141214b934999e0ad871e..d2fdae0b0de64c016abbdd5bf124da278d425b24 100644
|
||||
--- a/devtools/startup/DevToolsStartup.sys.mjs
|
||||
+++ b/devtools/startup/DevToolsStartup.sys.mjs
|
||||
@@ -806,6 +806,7 @@ DevToolsStartup.prototype = {
|
||||
@@ -813,6 +813,7 @@ DevToolsStartup.prototype = {
|
||||
// account (see bug 832984).
|
||||
const mainKeyset = doc.getElementById("mainKeyset");
|
||||
mainKeyset.parentNode.insertBefore(keyset, mainKeyset);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
|
||||
index ffdb908e5760eea8643f3c3f85979cb5f7ff36ae..8ab16b5283f8c15f20b0d630a9b5fc82ec803af5 100644
|
||||
index 58755773c26952b79df258dd8f55147c77db9c5f..041bd3fe99303621733cd3543e196b6a03950526 100644
|
||||
--- a/dom/base/use_counter_metrics.yaml
|
||||
+++ b/dom/base/use_counter_metrics.yaml
|
||||
@@ -21289,6 +21289,22 @@ use.counter.css.page:
|
||||
@@ -21402,6 +21402,22 @@ use.counter.css.page:
|
||||
send_in_pings:
|
||||
- use-counters
|
||||
|
||||
@@ -25,7 +25,7 @@ index ffdb908e5760eea8643f3c3f85979cb5f7ff36ae..8ab16b5283f8c15f20b0d630a9b5fc82
|
||||
css_transform_origin:
|
||||
type: counter
|
||||
description: >
|
||||
@@ -33259,6 +33275,22 @@ use.counter.css.doc:
|
||||
@@ -33372,6 +33388,22 @@ use.counter.css.doc:
|
||||
send_in_pings:
|
||||
- use-counters
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user