mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-06 11:28:28 +00:00
Compare commits
111 Commits
better-sta
...
1.13.1b
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a17a1da3b8 | ||
![]() |
ecbce38f52 | ||
![]() |
0693bb7a61 | ||
![]() |
7f28047f82 | ||
![]() |
d1fffc59cf | ||
![]() |
8e799a678f | ||
![]() |
a3f1733fd4 | ||
![]() |
ea23c3f63d | ||
![]() |
7d51ae1f07 | ||
![]() |
469604dd28 | ||
![]() |
3f77bc972b | ||
![]() |
59263eae9e | ||
![]() |
251967435d | ||
![]() |
a93e50cc54 | ||
![]() |
54bdabbf25 | ||
![]() |
5b7445fe31 | ||
![]() |
09ee6f2097 | ||
![]() |
f240fabe77 | ||
![]() |
bf6e493f89 | ||
![]() |
75a3b82d2c | ||
![]() |
9c8b442a46 | ||
![]() |
1f3d8b492b | ||
![]() |
5013533ad8 | ||
![]() |
adc4b956dd | ||
![]() |
219d1989d9 | ||
![]() |
fa7f986319 | ||
![]() |
ce75bc152a | ||
![]() |
289e84b75d | ||
![]() |
4da5a40419 | ||
![]() |
7bf0b42afd | ||
![]() |
5488b1d62e | ||
![]() |
ef22f08115 | ||
![]() |
e8c43f5979 | ||
![]() |
e9bbbaf446 | ||
![]() |
b932558ad6 | ||
![]() |
376c64c892 | ||
![]() |
548ed6e0f5 | ||
![]() |
df916f1e4a | ||
![]() |
847aef5b02 | ||
![]() |
17654139ba | ||
![]() |
e1974d9f81 | ||
![]() |
fcff502d1a | ||
![]() |
0e030dcb08 | ||
![]() |
aa4e385b6b | ||
![]() |
c9488c0384 | ||
![]() |
bcf879b801 | ||
![]() |
84072192b9 | ||
![]() |
d786c6927f | ||
![]() |
2a0113408c | ||
![]() |
967d0dd730 | ||
![]() |
af36549c7e | ||
![]() |
6e2ce89d21 | ||
![]() |
2d5fed3cd9 | ||
![]() |
ba4eef0db9 | ||
![]() |
872f7bdcbe | ||
![]() |
8f6ca03240 | ||
![]() |
35245078c9 | ||
![]() |
fd8a55c57c | ||
![]() |
8fce658dc1 | ||
![]() |
df963fc035 | ||
![]() |
ffab4a8c02 | ||
![]() |
ebd1910bb8 | ||
![]() |
10592ed243 | ||
![]() |
3da1da968e | ||
![]() |
bb2196900b | ||
![]() |
8ef4460f00 | ||
![]() |
a1bd202b51 | ||
![]() |
3faf5cd404 | ||
![]() |
d35abc991e | ||
![]() |
7a29340efc | ||
![]() |
cf6a346749 | ||
![]() |
9f047b7dcf | ||
![]() |
7a50336908 | ||
![]() |
89efc6cb0a | ||
![]() |
5b3b72b9aa | ||
![]() |
a6d749a9c8 | ||
![]() |
a570a266e5 | ||
![]() |
0f5f14defe | ||
![]() |
ab9a752286 | ||
![]() |
8f06bf21b0 | ||
![]() |
eaa099f9cc | ||
![]() |
0642ceba40 | ||
![]() |
0869fa55bb | ||
![]() |
80b8f7b4d8 | ||
![]() |
7c18b1d921 | ||
![]() |
eec99dc76b | ||
![]() |
6663a47d4a | ||
![]() |
c654c3f5de | ||
![]() |
5e48064497 | ||
![]() |
9c8aba3dcd | ||
![]() |
c9fe95c00c | ||
![]() |
9bfa7b01b5 | ||
![]() |
bbf646439a | ||
![]() |
a710d5949e | ||
![]() |
4abb3d2249 | ||
![]() |
6cdc640977 | ||
![]() |
aa662910b2 | ||
![]() |
0e3faf45b1 | ||
![]() |
8b25b0bbf3 | ||
![]() |
dad9475005 | ||
![]() |
00d3ba11d2 | ||
![]() |
c7333caf7d | ||
![]() |
0630b65713 | ||
![]() |
69f9b05cbc | ||
![]() |
74f6d1a85e | ||
![]() |
e0bf7d011b | ||
![]() |
12011c7208 | ||
![]() |
280f0ca27f | ||
![]() |
6ec0af3182 | ||
![]() |
e99c40bc06 | ||
![]() |
e181381bd3 |
@@ -1 +1 @@
|
|||||||
{type}: {message}, b=({bugId}), c={components}
|
{type}: {message}, b={bugId}, c={components}
|
105
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
105
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -4,35 +4,76 @@ body:
|
|||||||
- type: markdown
|
- type: markdown
|
||||||
attributes:
|
attributes:
|
||||||
value: |
|
value: |
|
||||||
Thank you for filing a bug report!
|
<p align="center">
|
||||||
|
<a href="https://zen-browser.app">
|
||||||
|
<picture>
|
||||||
|
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-light.svg">
|
||||||
|
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-dark.svg">
|
||||||
|
<img src="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-light.svg" alt="Zen Logo" width="64" height="64">
|
||||||
|
</picture>
|
||||||
|
<img src="https://raw.githubusercontent.com/zen-browser/desktop/dev/docs/assets/zen-browser.svg" alt="Zen Browser Text" width="156" height="64">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## IMPORTANT READ
|
<p align="center"><em>Thank you for filing a bug report!</em></p>
|
||||||
- Please provide descriptive titles. Bad titles do more harm than good.
|
|
||||||
- Please search existing issues to avoid creating duplicates.
|
> [!IMPORTANT]
|
||||||
- For enhancement requests, please use GitHub Discussions.
|
> - Please provide descriptive titles. Bad titles do more harm than good.
|
||||||
- Please fill out the template below to the best of your ability.
|
> - Please search existing issues to avoid creating duplicates.
|
||||||
- Please describe the issue as much as possible and provide steps to reproduce it along with visual aids if possible.
|
> - For enhancement requests, please use GitHub Discussions.
|
||||||
|
> - Please fill out the template below to the best of your ability.
|
||||||
|
> - Please describe the issue as much as possible and provide steps to reproduce it along with visual aids if possible.
|
||||||
- type: checkboxes
|
- type: checkboxes
|
||||||
id: captchas
|
id: captchas
|
||||||
attributes:
|
attributes:
|
||||||
label: Captchas
|
label: Preliminary Checks
|
||||||
description: Just making sure you did actually read the instructions.
|
description: Please confirm the following before submitting a bug report. This helps us triage and resolve issues more efficiently.
|
||||||
options:
|
options:
|
||||||
- label: I have read the instructions.
|
- label: I have read and understood the important section above.
|
||||||
|
required: true
|
||||||
- label: I have searched existing issues and avoided creating duplicates.
|
- label: I have searched existing issues and avoided creating duplicates.
|
||||||
|
required: true
|
||||||
- label: I am not filing an enhancement request.
|
- label: I am not filing an enhancement request.
|
||||||
|
required: true
|
||||||
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
- label: I have checked that this issue cannot be reproduced on Mozilla Firefox.
|
||||||
|
required: true
|
||||||
- label: I have checked that this issue can be reproduced once I removed all my Mods and Custom CSS.
|
- label: I have checked that this issue can be reproduced once I removed all my Mods and Custom CSS.
|
||||||
validations:
|
required: true
|
||||||
required: true
|
|
||||||
- type: textarea
|
- type: textarea
|
||||||
id: what-happened
|
id: what-happened
|
||||||
attributes:
|
attributes:
|
||||||
label: What happened?
|
label: What happened?
|
||||||
description: Also tell us, what did you expect to happen?
|
description: Describe the bug clearly and concisely.
|
||||||
placeholder: Tell us what you see!
|
placeholder: Tell us what you see!
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: expected-behavior
|
||||||
|
attributes:
|
||||||
|
label: Expected behavior
|
||||||
|
description: Please write a description of what was supposed to happen.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: input
|
||||||
|
id: actual-behavior
|
||||||
|
attributes:
|
||||||
|
label: Actual behavior
|
||||||
|
description: Please write a description of what actually happened.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: how-to-reproduce
|
||||||
|
attributes:
|
||||||
|
label: Steps to reproduce
|
||||||
|
description: Please Provide numbered steps to reproduce this issue so developers can replicate them easily.
|
||||||
|
validations:
|
||||||
|
required: true
|
||||||
|
- type: textarea
|
||||||
|
id: screenshots
|
||||||
|
attributes:
|
||||||
|
label: Screenshots and videos
|
||||||
|
description: |
|
||||||
|
If applicable, add screenshots or videos to help explain your problem.
|
||||||
- type: input
|
- type: input
|
||||||
id: version
|
id: version
|
||||||
attributes:
|
attributes:
|
||||||
@@ -52,8 +93,8 @@ body:
|
|||||||
- Linux (Tarball)
|
- Linux (Tarball)
|
||||||
- macOS - aarch64
|
- macOS - aarch64
|
||||||
- macOS - Intel
|
- macOS - Intel
|
||||||
- Windows - x64
|
|
||||||
- Windows - aarch64
|
- Windows - aarch64
|
||||||
|
- Windows - x64
|
||||||
- Other
|
- Other
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
@@ -63,26 +104,26 @@ body:
|
|||||||
label: What component is this issue related to?
|
label: What component is this issue related to?
|
||||||
options:
|
options:
|
||||||
- Other
|
- Other
|
||||||
- Compact Mode
|
|
||||||
- Workspaces
|
|
||||||
- Mods / Themes
|
|
||||||
- Glance
|
|
||||||
- URL Bar
|
|
||||||
- Tabs
|
|
||||||
- Split View
|
|
||||||
- Settings
|
|
||||||
- Privacy
|
|
||||||
- Performance
|
|
||||||
- Media Controler
|
|
||||||
- Tab unloading
|
|
||||||
- Tab Folders
|
|
||||||
- Keyboard Shortcuts
|
|
||||||
- Security
|
|
||||||
- Extensions
|
|
||||||
- Customizable UI / Toolbars
|
|
||||||
- Localization
|
|
||||||
- Bookmarks
|
- Bookmarks
|
||||||
|
- Compact Mode
|
||||||
|
- Customizable UI / Toolbars
|
||||||
|
- Extensions
|
||||||
|
- Glance
|
||||||
|
- Keyboard Shortcuts
|
||||||
|
- Localization
|
||||||
|
- Media Controler
|
||||||
|
- Mods / Themes
|
||||||
|
- Performance
|
||||||
|
- Privacy
|
||||||
|
- Security
|
||||||
|
- Settings
|
||||||
|
- Split View
|
||||||
- Sync
|
- Sync
|
||||||
|
- Tab Folders
|
||||||
|
- Tab unloading
|
||||||
|
- Tabs
|
||||||
|
- URL Bar
|
||||||
|
- Workspaces
|
||||||
validations:
|
validations:
|
||||||
required: true
|
required: true
|
||||||
|
|
||||||
|
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -548,7 +548,7 @@ jobs:
|
|||||||
# If we are on Twilight, we want to just update the Twilight tag's release
|
# If we are on Twilight, we want to just update the Twilight tag's release
|
||||||
- name: Update Twilight tag
|
- name: Update Twilight tag
|
||||||
if: ${{ inputs.update_branch == 'twilight' }}
|
if: ${{ inputs.update_branch == 'twilight' }}
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2.2.2
|
||||||
with:
|
with:
|
||||||
body_path: release_notes.md
|
body_path: release_notes.md
|
||||||
files: |
|
files: |
|
||||||
@@ -580,7 +580,7 @@ jobs:
|
|||||||
GITHUB_REPOSITORY: ${{ github.repository }}
|
GITHUB_REPOSITORY: ${{ github.repository }}
|
||||||
|
|
||||||
- name: Release
|
- name: Release
|
||||||
uses: softprops/action-gh-release@v2
|
uses: softprops/action-gh-release@v2.2.2
|
||||||
if: ${{ inputs.update_branch == 'release' }}
|
if: ${{ inputs.update_branch == 'release' }}
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.DEPLOY_KEY }}
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
9
.github/workflows/linux-release-build.yml
vendored
9
.github/workflows/linux-release-build.yml
vendored
@@ -121,6 +121,11 @@ jobs:
|
|||||||
./mach --no-interactive bootstrap --application-choice browser
|
./mach --no-interactive bootstrap --application-choice browser
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
|
- name: Insert API Keys
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.zen-keys
|
||||||
|
echo "${{ secrets.ZEN_SAFEBROWSING_API_KEY }}" > ~/.zen-keys/safebrowsing.dat
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.arch }}
|
SURFER_COMPAT: ${{ matrix.arch }}
|
||||||
@@ -142,6 +147,10 @@ jobs:
|
|||||||
export ZEN_RELEASE=1
|
export ZEN_RELEASE=1
|
||||||
npm run package
|
npm run package
|
||||||
|
|
||||||
|
- name: Remove API Keys
|
||||||
|
run: |
|
||||||
|
rm -rf ~/.zen-keys
|
||||||
|
|
||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
run: |
|
run: |
|
||||||
mv dist/zen-*.tar.xz "zen.linux-${{ matrix.arch }}.tar.xz"
|
mv dist/zen-*.tar.xz "zen.linux-${{ matrix.arch }}.tar.xz"
|
||||||
|
9
.github/workflows/macos-release-build.yml
vendored
9
.github/workflows/macos-release-build.yml
vendored
@@ -132,6 +132,11 @@ jobs:
|
|||||||
- name: Build language packs
|
- name: Build language packs
|
||||||
run: sh scripts/download-language-packs.sh
|
run: sh scripts/download-language-packs.sh
|
||||||
|
|
||||||
|
- name: Insert API Keys
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.zen-keys
|
||||||
|
echo "${{ secrets.ZEN_SAFEBROWSING_API_KEY }}" > ~/.zen-keys/safebrowsing.dat
|
||||||
|
|
||||||
- name: Build Zen
|
- name: Build Zen
|
||||||
env:
|
env:
|
||||||
SURFER_COMPAT: ${{ matrix.arch }}
|
SURFER_COMPAT: ${{ matrix.arch }}
|
||||||
@@ -152,6 +157,10 @@ jobs:
|
|||||||
export ZEN_RELEASE=1
|
export ZEN_RELEASE=1
|
||||||
npm run package
|
npm run package
|
||||||
|
|
||||||
|
- name: Remove API Keys
|
||||||
|
run: |
|
||||||
|
rm -rf ~/.zen-keys
|
||||||
|
|
||||||
- name: Rename artifacts
|
- name: Rename artifacts
|
||||||
run: |
|
run: |
|
||||||
echo "Tarballing DMG"
|
echo "Tarballing DMG"
|
||||||
|
140
.github/workflows/src/generate_release_notes.sh
vendored
140
.github/workflows/src/generate_release_notes.sh
vendored
@@ -5,7 +5,7 @@ if [ "$RELEASE_BRANCH" = "release" ]; then
|
|||||||
RELEASE_TYPE="Stable"
|
RELEASE_TYPE="Stable"
|
||||||
|
|
||||||
echo "Fetching release notes from GitHub..."
|
echo "Fetching release notes from GitHub..."
|
||||||
RELEASE_NOTES_JSON=$(curl -s "$RELEASE_NOTES_URL")
|
RELEASE_NOTES_JSON=$(curl -s --retry 5 --retry-delay 5 "$RELEASE_NOTES_URL")
|
||||||
|
|
||||||
if [ -z "$RELEASE_NOTES_JSON" ]; then
|
if [ -z "$RELEASE_NOTES_JSON" ]; then
|
||||||
echo "Error: Failed to fetch release notes from GitHub"
|
echo "Error: Failed to fetch release notes from GitHub"
|
||||||
@@ -18,96 +18,62 @@ else
|
|||||||
RELEASE_TYPE="Twilight"
|
RELEASE_TYPE="Twilight"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cat << EOF > "release_notes.md"
|
{
|
||||||
# Zen ${RELEASE_TYPE} Release
|
echo "# Zen ${RELEASE_TYPE} Release"
|
||||||
EOF
|
|
||||||
|
|
||||||
if [ "$RELEASE_BRANCH" = "release" ]; then
|
if [ "$RELEASE_TYPE" = "Twilight" ]; then
|
||||||
echo "${EXTRA_NOTES}" >> "release_notes.md"
|
echo
|
||||||
|
echo "> [!NOTE]"
|
||||||
if echo "$LATEST_RELEASE" | jq -e '(.features // []) | length > 0' > /dev/null; then
|
echo "> You're currently in Twilight mode, this means you're downloading the latest experimental features and updates."
|
||||||
cat << EOF >> "release_notes.md"
|
echo ">"
|
||||||
|
echo "> If you encounter any issues, please report them on the [issues page](https://github.com/zen-browser/desktop/issues)."
|
||||||
## New Features
|
|
||||||
$(echo "$LATEST_RELEASE" | jq -r '.features[] | "- " + .')
|
|
||||||
EOF
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo "$LATEST_RELEASE" | jq -e '(.fixes // []) | length > 0' > /dev/null; then
|
if [ "$RELEASE_TYPE" = "Stable" ]; then
|
||||||
cat << EOF >> "release_notes.md"
|
echo "${EXTRA_NOTES}"
|
||||||
|
|
||||||
## Fixes
|
if echo "$LATEST_RELEASE" | jq -e '.security != null and .security != ""' > /dev/null; then
|
||||||
EOF
|
echo
|
||||||
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"
|
echo "## Security"
|
||||||
|
echo "[Various security fixes]($(echo "$LATEST_RELEASE" | jq -r '.security'))"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.features // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## New Features"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.features[] | "- " + .'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.fixes // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## Fixes"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.fixes[] | if type=="object" then "- " + .description + " ([#" + (.issue|tostring) + "](" + "https://github.com/zen-browser/desktop/issues/" + (.issue|tostring) + "))" else "- " + . end'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.breakingChanges // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## Breaking Changes"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.breakingChanges[] | if type=="string" then "- " + . else "- " + .description + " [Learn more](" + .link + ")" end'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.themeChanges // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## Theme Changes"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.themeChanges[] | "- " + .'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.changes // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## Changes"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.changes[] | "- " + .'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if echo "$LATEST_RELEASE" | jq -e '(.knownIssues // []) | length > 0' > /dev/null; then
|
||||||
|
echo
|
||||||
|
echo "## Known Issues"
|
||||||
|
echo "$LATEST_RELEASE" | jq -r '.knownIssues[] | "- " + .'
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
} > "release_notes.md"
|
||||||
if echo "$LATEST_RELEASE" | jq -e '(.breakingChanges // []) | length > 0' > /dev/null; then
|
|
||||||
cat << EOF >> "release_notes.md"
|
|
||||||
|
|
||||||
## Breaking Changes
|
|
||||||
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 '(.themeChanges // []) | length > 0' > /dev/null; then
|
|
||||||
cat << EOF >> "release_notes.md"
|
|
||||||
|
|
||||||
## Theme Changes
|
|
||||||
$(echo "$LATEST_RELEASE" | jq -r '.themeChanges[] | "- " + .')
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat << EOF >> "release_notes.md"
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>File Checksums (SHA-256)</summary>
|
|
||||||
|
|
||||||
\`\`\`
|
|
||||||
EOF
|
|
||||||
|
|
||||||
generate_checksum() {
|
|
||||||
local pattern=$1
|
|
||||||
echo "Generating checksum for $pattern"
|
|
||||||
sha256sum $pattern 2> /dev/null | awk '{sub(".*/", "", $2); print $1 " " $2}' >> "release_notes.md"
|
|
||||||
if [ ${PIPESTATUS[0]} -ne 0 ]; then
|
|
||||||
echo "Warning: No files found matching $pattern, skipping checksum."
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
files=(
|
|
||||||
"./zen.source.tar.zst/*"
|
|
||||||
"./zen.linux-x86_64.tar.xz/*"
|
|
||||||
"./zen.linux-aarch64.tar.xz/*"
|
|
||||||
"./zen-x86_64.AppImage/*"
|
|
||||||
"./zen-x86_64.AppImage.zsync/*"
|
|
||||||
"./zen-aarch64.AppImage/*"
|
|
||||||
"./zen-aarch64.AppImage.zsync/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-x86_64/zen.win-x86_64.zip"
|
|
||||||
"./zen.win-x86_64.zip/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-arm64/zen.win-arm64.zip"
|
|
||||||
"./zen.win-arm64.zip/*"
|
|
||||||
"./linux.mar/*"
|
|
||||||
"./linux-aarch64.mar/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-x86_64/windows.mar"
|
|
||||||
"./windows.mar/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-arm64/windows-arm64.mar"
|
|
||||||
"./windows-arm64.mar/*"
|
|
||||||
"./macos.mar/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-x86_64/zen.installer.exe"
|
|
||||||
"./zen.installer.exe/*"
|
|
||||||
"./.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe"
|
|
||||||
"./zen.installer-arm64.exe/*"
|
|
||||||
"./zen.macos-universal.dmg/*"
|
|
||||||
)
|
|
||||||
|
|
||||||
for file in "${files[@]}"; do
|
|
||||||
generate_checksum "$file"
|
|
||||||
done
|
|
||||||
|
|
||||||
cat << EOF >> "release_notes.md"
|
|
||||||
\`\`\`
|
|
||||||
</details>
|
|
||||||
EOF
|
|
||||||
|
|
||||||
echo "Release notes generated: release_notes.md"
|
echo "Release notes generated: release_notes.md"
|
||||||
|
9
.github/workflows/windows-release-build.yml
vendored
9
.github/workflows/windows-release-build.yml
vendored
@@ -226,6 +226,11 @@ jobs:
|
|||||||
chmod +x ~/artifact/en-US.log
|
chmod +x ~/artifact/en-US.log
|
||||||
chmod +x ~/artifact/merged.profdata
|
chmod +x ~/artifact/merged.profdata
|
||||||
|
|
||||||
|
- name: Insert API Keys
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.zen-keys
|
||||||
|
echo "${{ secrets.ZEN_SAFEBROWSING_API_KEY }}" > ~/.zen-keys/safebrowsing.dat
|
||||||
|
|
||||||
- name: Build
|
- name: Build
|
||||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||||
env:
|
env:
|
||||||
@@ -259,6 +264,10 @@ jobs:
|
|||||||
ls ./dist
|
ls ./dist
|
||||||
ls .
|
ls .
|
||||||
|
|
||||||
|
- name: Remove API Keys
|
||||||
|
run: |
|
||||||
|
rm -rf ~/.zen-keys
|
||||||
|
|
||||||
- name: Move package for PGO upload
|
- name: Move package for PGO upload
|
||||||
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
|
||||||
run: |
|
run: |
|
||||||
|
@@ -26,7 +26,7 @@ docs/issue-metrics/*.md
|
|||||||
# We also dont want to format the CSS files that are generated by the build
|
# We also dont want to format the CSS files that are generated by the build
|
||||||
src/zen/tabs/zen-tabs.css
|
src/zen/tabs/zen-tabs.css
|
||||||
src/zen/compact-mode/zen-compact-mode.css
|
src/zen/compact-mode/zen-compact-mode.css
|
||||||
src/zen/common/ZenEmojies.mjs
|
src/zen/common/ZenEmojis.mjs
|
||||||
|
|
||||||
src/zen/workspaces/zen-workspaces.css
|
src/zen/workspaces/zen-workspaces.css
|
||||||
|
|
||||||
|
117
README.md
117
README.md
@@ -7,7 +7,7 @@
|
|||||||
[](https://crowdin.com/project/zen-browser)
|
[](https://crowdin.com/project/zen-browser)
|
||||||
[](https://github.com/zen-browser/desktop/actions/workflows/build.yml)
|
[](https://github.com/zen-browser/desktop/actions/workflows/build.yml)
|
||||||
|
|
||||||
✨ Experience tranquillity while browsing the internet with Zen! Our mission is to give you a balance between speed, privacy and productivity!
|
Zen is a firefox-based browser with the aim of pushing your productivity to a new level!
|
||||||
|
|
||||||
<div flex="true">
|
<div flex="true">
|
||||||
<a href="https://zen-browser.app/download">
|
<a href="https://zen-browser.app/download">
|
||||||
@@ -27,118 +27,13 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
## 🖥️ Compatibility
|
### Firefox Versions
|
||||||
|
|
||||||
Zen is currently built using Firefox version `139.0`! 🚀
|
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `139.0.4`! 🚀
|
||||||
|
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 139.0.4`!
|
||||||
|
|
||||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 139.0`!
|
### Contributing
|
||||||
- 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!
|
|
||||||
|
|
||||||
## 🤝 Contribution
|
If you'd like to report a bug, please do so on our [GitHub Issues page](https://github.com/zen-browser/desktop/issues/) and for feature requests, you can use [Github Discussions](https://github.com/zen-browser/desktop/discussions).
|
||||||
|
|
||||||
Zen is an open-source project, and we welcome contributions from the community! Please take a look at the [contribution guidelines](./docs/contribute.md) before getting started!
|
Zen is an open-source project, and we welcome contributions from the community! Please take a look at the [contribution guidelines](./docs/contribute.md) before getting started!
|
||||||
|
|
||||||
### Issue metrics
|
|
||||||
|
|
||||||
We keep track of how many issues are closed at the end of the month in [docs/issue-metrics](./docs/issue-metrics). We use this to keep track of our issues and see our progress! 📈
|
|
||||||
|
|
||||||
### Versioning
|
|
||||||
|
|
||||||
Zen uses [Semantic Versioning](https://semver.org/), meaning versions are displayed as `a.b.cd` where:
|
|
||||||
|
|
||||||
- `a` is the major version
|
|
||||||
- `b` is the minor version
|
|
||||||
- `c` is the branch prefix
|
|
||||||
- `d` is the patch version
|
|
||||||
|
|
||||||
### Branches
|
|
||||||
|
|
||||||
Zen is divided into 2 main branches. We use `dev` for development and `stable` for stable releases. The `dev` branch is where all the new features are added and where `twilight` builds are generated. The `stable` branch is where the stable releases are generated.
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
## 📥 Installation
|
|
||||||
|
|
||||||
### Supported Operating Systems
|
|
||||||
|
|
||||||
Zen is available for Linux, macOS, and Windows. You can download the latest version from the official website at [zen-browser.app](https://zen-browser.app/download), or from the [GitHub Releases](https://github.com/zen-browser/desktop/releases) page.
|
|
||||||
|
|
||||||
If you don't see your OS listed below, that's because we already have it in our [downloads page](https://zen-browser.app/download)! Make sure to check it out!
|
|
||||||
|
|
||||||
#### Windows
|
|
||||||
|
|
||||||
##### Winget
|
|
||||||
|
|
||||||
```ps
|
|
||||||
winget install --id Zen-Team.Zen-Browser
|
|
||||||
```
|
|
||||||
|
|
||||||
#### macOS
|
|
||||||
|
|
||||||
- Requires macOS 10.15 or later
|
|
||||||
- Available for ARM and Intel architectures
|
|
||||||
|
|
||||||
You can also install Zen using Homebrew:
|
|
||||||
|
|
||||||
```
|
|
||||||
brew install zen-browser
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Linux
|
|
||||||
|
|
||||||
##### Arch-based distributions
|
|
||||||
|
|
||||||
```sh
|
|
||||||
yay -S zen-browser-bin
|
|
||||||
```
|
|
||||||
|
|
||||||
##### Other Linux distributions (Tarball or AppImage)
|
|
||||||
|
|
||||||
- `Tarball` install:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
bash <(curl -s https://updates.zen-browser.app/install.sh)
|
|
||||||
```
|
|
||||||
|
|
||||||
- `AppImage` install:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
bash <(curl https://updates.zen-browser.app/appimage.sh)
|
|
||||||
```
|
|
||||||
|
|
||||||
> AppImage install requires `zsync` for the Update feature
|
|
||||||
|
|
||||||
- Again, if you don't see your OS listed above, that's because we already have it in our [downloads page](https://zen-browser.app/download)! 🔄
|
|
||||||
|
|
||||||
To upgrade the browser to a newer version, use the embedded update functionality in `About Zen`.
|
|
||||||
|
|
||||||
## 👨💻 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/zen).
|
|
||||||
|
|
||||||
#### `Run Locally`
|
|
||||||
|
|
||||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/guides/building).
|
|
||||||
|
|
||||||
#### `Special Thanks`
|
|
||||||
|
|
||||||
Special thanks to... EVERYONE 🎉! Checkout the team and contributors page [here](https://zen-browser.app/about)
|
|
||||||
|
|
||||||
#### `Third Party Code`
|
|
||||||
|
|
||||||
Zen couldn't be in its current state without the help of these amazing projects! 🙏
|
|
||||||
|
|
||||||
- Zen's default preferences are based on [BetterFox](https://github.com/yokoffing/Betterfox)
|
|
||||||
- Gradient image extracted from [Arc Palette](https://github.com/neurokitti/Arc_Palette)
|
|
||||||
- `icons.css` has been modified from [Edge Firefox](https://github.com/bmFtZQ/edge-frfox) (MIT licensed file).
|
|
||||||
|
|
||||||
### 🖥️ Comparison with other browsers
|
|
||||||
|
|
||||||
Thanks everyone for making Zen stand out among these giants!
|
|
||||||
|
|
||||||
[](https://star-history.com/#zen-browser/desktop&chromium/chromium&brave/brave-browser&Date)
|
|
||||||
|
|
||||||
## 📄 License
|
|
||||||
|
|
||||||
Zen browser is under the [MPL 2.0 LICENSE](./LICENSE). All the code is open-source and free to use! Attribution is appreciated but not required.
|
|
||||||
|
@@ -1 +1 @@
|
|||||||
da30619f3ea895b356ded705b8dff9e4f271198f
|
29fd9c19879c6f9bfcf414f47426d8dc00dee1a5
|
@@ -32,6 +32,11 @@ if ! test "$SCCACHE_GHA_ENABLED" = "false"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# add safe browsing key if it exists on a file
|
||||||
|
if test -f "$HOME/.zen-keys/safebrowsing.dat"; then
|
||||||
|
ac_add_options --with-google-safebrowsing-api-keyfile="$HOME/.zen-keys/safebrowsing.dat"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "$ZEN_RELEASE"; then
|
if test "$ZEN_RELEASE"; then
|
||||||
|
|
||||||
# TODO: Make this successful in builds
|
# TODO: Make this successful in builds
|
||||||
@@ -96,10 +101,7 @@ fi
|
|||||||
|
|
||||||
ac_add_options --enable-unverified-updates
|
ac_add_options --enable-unverified-updates
|
||||||
|
|
||||||
ac_add_options --enable-raw
|
|
||||||
ac_add_options --enable-webrtc
|
|
||||||
ac_add_options --enable-jxl
|
ac_add_options --enable-jxl
|
||||||
ac_add_options --enable-av1
|
|
||||||
|
|
||||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
|
||||||
|
19
docs/assets/zen-browser.svg
Normal file
19
docs/assets/zen-browser.svg
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 156 64" height="64" width="156">
|
||||||
|
<defs>
|
||||||
|
<style>
|
||||||
|
.label {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-weight: 700;
|
||||||
|
text-align: center;
|
||||||
|
fill: #1f1f1f;
|
||||||
|
}
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.label {
|
||||||
|
fill: #d1cfc0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<text class="label" y="38" x="5">Zen Browser</text>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 454 B |
545
docs/issue-metrics/2025_2025-05-01..2025-05-31.md
Normal file
545
docs/issue-metrics/2025_2025-05-01..2025-05-31.md
Normal file
@@ -0,0 +1,545 @@
|
|||||||
|
# Issue Metrics
|
||||||
|
|
||||||
|
| Metric | Average | Median | 90th percentile |
|
||||||
|
| --- | --- | --- | ---: |
|
||||||
|
| Time to first response | 1 day, 12:44:32 | 4:32:48 | 2 days, 6:10:24 |
|
||||||
|
| Time to close | 1 day, 6:45:20 | 4:43:46 | 2 days, 22:21:34 |
|
||||||
|
|
||||||
|
| Metric | Count |
|
||||||
|
| --- | ---: |
|
||||||
|
| Number of items that remain open | 248 |
|
||||||
|
| Number of items closed | 279 |
|
||||||
|
| Total number of items created | 527 |
|
||||||
|
|
||||||
|
| Title | URL | Time to first response | Time to close |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| Engine | https://github.com/zen-browser/desktop/issues/8743 | 0:20:22 | None |
|
||||||
|
| Zen suddenly eats all available memory [Windows 11] | https://github.com/zen-browser/desktop/issues/8742 | None | None |
|
||||||
|
| Some site-specfic buttons on address bar are missing | https://github.com/zen-browser/desktop/issues/8741 | None | 0:12:59 |
|
||||||
|
| Small "currently playing" at the bottom of the tabbar doesn't recognize livestreams. | https://github.com/zen-browser/desktop/issues/8740 | 1:38:39 | None |
|
||||||
|
| URL Bar flickers when toggling compact mode | https://github.com/zen-browser/desktop/issues/8738 | None | None |
|
||||||
|
| Missing bookmarks/pinned tabs icons | https://github.com/zen-browser/desktop/issues/8736 | 0:47:55 | None |
|
||||||
|
| Unable to access iCloud Passwords | https://github.com/zen-browser/desktop/issues/8735 | None | 1:13:00 |
|
||||||
|
| Some Extensions Like Firefox Multi Account Container No Longer Shows Thier Icons In The URL Bar | https://github.com/zen-browser/desktop/issues/8732 | 3:38:32 | 3:38:32 |
|
||||||
|
| Essential Tab Icon Vibrance | https://github.com/zen-browser/desktop/issues/8731 | 0:39:22 | 2:02:27 |
|
||||||
|
| Pinned Extensions not visible after browser restart in Compact Mode | https://github.com/zen-browser/desktop/issues/8730 | 5:05:37 | None |
|
||||||
|
| Essential tabs get out of order when creating a new window | https://github.com/zen-browser/desktop/issues/8729 | None | None |
|
||||||
|
| Zen browser doesn't allow entering TOTP for Proxmox access | https://github.com/zen-browser/desktop/issues/8728 | None | None |
|
||||||
|
| Vertical scrolling in the sidebar slows down when using the trackpad swipe gesture to switch workspaces in 1.12.9b. | https://github.com/zen-browser/desktop/issues/8727 | None | None |
|
||||||
|
| Restoring pinned tabs relegates them to normal tabs area | https://github.com/zen-browser/desktop/issues/8726 | 3:03:01 | None |
|
||||||
|
| Using SHIFT + some key with a modifier doesn't respond as a keyboard shortcut. | https://github.com/zen-browser/desktop/issues/8725 | 5:26:20 | None |
|
||||||
|
| Cant build Zen error 2 | https://github.com/zen-browser/desktop/issues/8723 | 2:31:17 | None |
|
||||||
|
| Pinned extensions sometimes aren't visible in toolbar on startup in single toolbar mode | https://github.com/zen-browser/desktop/issues/8722 | 2:52:31 | None |
|
||||||
|
| Gradient on top of window not displaying correctly | https://github.com/zen-browser/desktop/issues/8721 | 6:16:26 | None |
|
||||||
|
| Missing the Profiles menu item after update to 1.12.9b version | https://github.com/zen-browser/desktop/issues/8720 | None | 0:06:49 |
|
||||||
|
| Search with Google not working inside Glances window. | https://github.com/zen-browser/desktop/issues/8717 | 12:16:58 | None |
|
||||||
|
| Right-Click Menu Icon Not Displaying | https://github.com/zen-browser/desktop/issues/8716 | 0:05:47 | 0:58:20 |
|
||||||
|
| Can't share screen on Google Meet (Mac) | https://github.com/zen-browser/desktop/issues/8715 | None | None |
|
||||||
|
| Profile switcher missing in context menu | https://github.com/zen-browser/desktop/issues/8713 | 0:40:14 | 8:43:33 |
|
||||||
|
| New Tab Hover Menu transparent instead of translucent in maximized window | https://github.com/zen-browser/desktop/issues/8711 | 8:27:38 | 8:27:38 |
|
||||||
|
| Unloaded Tabs dim only the Favicon but not the Text | https://github.com/zen-browser/desktop/issues/8710 | 6:56:56 | None |
|
||||||
|
| Notification push don't work in linux if the page isn't loaded | https://github.com/zen-browser/desktop/issues/8709 | None | None |
|
||||||
|
| Zen Browser's Position Drags Slightly When Clicking its Sidebar on MacOS | https://github.com/zen-browser/desktop/issues/8706 | 13:34:24 | None |
|
||||||
|
| Extensions not opening Before focus to a tab | https://github.com/zen-browser/desktop/issues/8705 | None | None |
|
||||||
|
| Cmd + K (Focus Search) still active after closing it | https://github.com/zen-browser/desktop/issues/8704 | None | None |
|
||||||
|
| 2 video in PIP dont work if you have 2 screen | https://github.com/zen-browser/desktop/issues/8703 | None | None |
|
||||||
|
| SteamVR's Desktop Overlay Cannot Reveal Compact Mode Tabs | https://github.com/zen-browser/desktop/issues/8702 | None | None |
|
||||||
|
| Restore Last Closed Tab(s) right after startup breaks the UI | https://github.com/zen-browser/desktop/issues/8699 | 9:14:56 | None |
|
||||||
|
| Zen Browser doesnt store my tabs and half the features are missing in 1.12.8b | https://github.com/zen-browser/desktop/issues/8697 | 1:41:36 | None |
|
||||||
|
| Restoring Session With Even Number of Windows Results in At Least One Window Not Adhering to Theme Coloring | https://github.com/zen-browser/desktop/issues/8694 | 0:28:05 | 1 day, 3:00:32 |
|
||||||
|
| When in compact mode in Windows and when no tabs are open, the navigation tools of windows to close, minimize and maximize get overlapped and its difficult to use them. | https://github.com/zen-browser/desktop/issues/8692 | None | None |
|
||||||
|
| Pinned tab title not refreshing | https://github.com/zen-browser/desktop/issues/8691 | 6:20:06 | None |
|
||||||
|
| Zen browser doesn't check for duplicate bookmarks when importing them from other accounts | https://github.com/zen-browser/desktop/issues/8690 | 15:49:28 | None |
|
||||||
|
| Cannot add tabs to essentials anymore | https://github.com/zen-browser/desktop/issues/8689 | 2:19:39 | None |
|
||||||
|
| Address/search bar doesn't show search engines, when address is typed, no search is allowed | https://github.com/zen-browser/desktop/issues/8687 | 6:14:49 | None |
|
||||||
|
| Windows Single Sign-On does not seem to work from within Containers | https://github.com/zen-browser/desktop/issues/8686 | 4:55:19 | None |
|
||||||
|
| Spelling selection - added language does'nt show up | https://github.com/zen-browser/desktop/issues/8685 | 10:38:15 | None |
|
||||||
|
| Unable to open Glance windows, shortcut just opens new window regardless of selected activation key. | https://github.com/zen-browser/desktop/issues/8680 | 10:03:54 | 1 day, 16:09:30 |
|
||||||
|
| Pinned tabs don't show an updated version of a website after opening them again | https://github.com/zen-browser/desktop/issues/8679 | None | None |
|
||||||
|
| Dragging a local PDF into Zen Browser fails with “File not found” error | https://github.com/zen-browser/desktop/issues/8670 | 1 day, 3:11:59 | None |
|
||||||
|
| In the compact mode, there are some issues with the automatic hiding of the toolbar. | https://github.com/zen-browser/desktop/issues/8669 | None | None |
|
||||||
|
| Error when opening the app | https://github.com/zen-browser/desktop/issues/8668 | None | None |
|
||||||
|
| Blur not working anymore in maximized windows | https://github.com/zen-browser/desktop/issues/8667 | 0:36:09 | 0:36:09 |
|
||||||
|
| Back and forth arrows confusing | https://github.com/zen-browser/desktop/issues/8666 | 1:03:53 | 1:03:53 |
|
||||||
|
| pop up "Paste" on site | https://github.com/zen-browser/desktop/issues/8664 | 12:27:36 | 12:27:36 |
|
||||||
|
| Zen Browser Forgetting Tab Settings | https://github.com/zen-browser/desktop/issues/8662 | 3:12:47 | None |
|
||||||
|
| Windows taskber preview showing inactive tab | https://github.com/zen-browser/desktop/issues/8657 | None | None |
|
||||||
|
| [BUG] Middle Click not scrolling faster | https://github.com/zen-browser/desktop/issues/8656 | None | 16:39:10 |
|
||||||
|
| Toolbar hides when hovering off a bookmark but still within the toolbar area in Compact Mode | https://github.com/zen-browser/desktop/issues/8655 | 15:06:50 | 15:06:50 |
|
||||||
|
| Different zoom levels, while working with the pdf (drop down) is not visible unless howering over it. | https://github.com/zen-browser/desktop/issues/8653 | 17:36:47 | None |
|
||||||
|
| Sidebar unexpectedly toggles in compact mode when using Raycast focus timer | https://github.com/zen-browser/desktop/issues/8652 | 17:58:22 | 19:09:46 |
|
||||||
|
| Horizontal Scrolling with mouse wheel is not working on Mac | https://github.com/zen-browser/desktop/issues/8649 | 20:58:04 | None |
|
||||||
|
| Zen context menus have inconsistent indentation and toast notification color is too dark in private mode. | https://github.com/zen-browser/desktop/issues/8648 | 21:56:58 | None |
|
||||||
|
| Sidebar stuck open, does not collapse when compact mode turned on. | https://github.com/zen-browser/desktop/issues/8643 | 1 day, 10:21:36 | None |
|
||||||
|
| olk.exe is blocked by MS Defender ASR Security role when opening links from Outlook / MS Teams | https://github.com/zen-browser/desktop/issues/8642 | 3:20:57 | 2 days, 3:44:52 |
|
||||||
|
| Cmd+Shift+C doesn't follow browser.urlbar.decodeURLsOnCopy | https://github.com/zen-browser/desktop/issues/8641 | 5:19:57 | 5:19:57 |
|
||||||
|
| Hi, there is an issue with the sound icon in the shortcuts where it looks like it's beating. | https://github.com/zen-browser/desktop/issues/8640 | 0:31:19 | 6:28:53 |
|
||||||
|
| YouTube locks up during video and does not return and does not refresh | https://github.com/zen-browser/desktop/issues/8638 | None | None |
|
||||||
|
| Google Sheets error report when switching from split screen | https://github.com/zen-browser/desktop/issues/8635 | None | None |
|
||||||
|
| Remove link to Firefox Support | https://github.com/zen-browser/desktop/issues/8634 | 0:25:06 | None |
|
||||||
|
| Can't Open Hisotry Tab In Compact Mode with No Open Tabs | https://github.com/zen-browser/desktop/issues/8632 | 2:46:16 | None |
|
||||||
|
| division by zero, showing incorrectly in the search bar | https://github.com/zen-browser/desktop/issues/8631 | 23:16:38 | 1 day, 0:05:11 |
|
||||||
|
| No option to unpin tab from url bar | https://github.com/zen-browser/desktop/issues/8629 | 1:19:24 | 4:01:02 |
|
||||||
|
| Essential and Pinned Tab Icons Not Displaying Until Clicked | https://github.com/zen-browser/desktop/issues/8628 | 4:06:21 | 4 days, 1:51:29 |
|
||||||
|
| Colors in sidebar seem broken | https://github.com/zen-browser/desktop/issues/8627 | 0:51:23 | 0:51:23 |
|
||||||
|
| [BUG] Compact mode disales also Mini window brokes | https://github.com/zen-browser/desktop/issues/8626 | 0:32:32 | None |
|
||||||
|
| spotify keeps crashing | https://github.com/zen-browser/desktop/issues/8625 | 0:09:38 | 0:09:38 |
|
||||||
|
| [regression] tab bar doesn't follow the currently selected tab. | https://github.com/zen-browser/desktop/issues/8623 | 1:28:05 | None |
|
||||||
|
| can't download on glance page | https://github.com/zen-browser/desktop/issues/8620 | 8:43:05 | None |
|
||||||
|
| Keybinds not working after tab change | https://github.com/zen-browser/desktop/issues/8617 | 13:42:53 | None |
|
||||||
|
| Address bar not visible on 1280x720 screens | https://github.com/zen-browser/desktop/issues/8616 | None | None |
|
||||||
|
| Close button not centered when tabs are on the right | https://github.com/zen-browser/desktop/issues/8615 | None | None |
|
||||||
|
| OpenSearch is not working in Zen Browser | https://github.com/zen-browser/desktop/issues/8614 | None | 0:02:48 |
|
||||||
|
| Switching to an unloaded tab opens a duplicate, instead of actually switching to it. | https://github.com/zen-browser/desktop/issues/8613 | None | 0:51:33 |
|
||||||
|
| Split view tabs' custom red highlight color reset after opening new window | https://github.com/zen-browser/desktop/issues/8610 | 10:05:25 | None |
|
||||||
|
| Audio preview from osu! website not functional | https://github.com/zen-browser/desktop/issues/8608 | 7:14:22 | 7:35:21 |
|
||||||
|
| Zen disables compact mode on startup | https://github.com/zen-browser/desktop/issues/8606 | 8:06:57 | None |
|
||||||
|
| Overflow menu button only appears for automatically added buttons | https://github.com/zen-browser/desktop/issues/8605 | None | None |
|
||||||
|
| Youtube Fullscreen grey rounded shape in each corner | https://github.com/zen-browser/desktop/issues/8604 | None | None |
|
||||||
|
| Cannot higlight a part of URL in adress (or URL) bar | https://github.com/zen-browser/desktop/issues/8603 | 1 day, 15:33:14 | None |
|
||||||
|
| Toggling Sidebar's Width on a Floating Sidebar shows weird 2 frame animation | https://github.com/zen-browser/desktop/issues/8602 | None | None |
|
||||||
|
| Omnibox closes on keyboard layout switch (Wayland / KDE) | https://github.com/zen-browser/desktop/issues/8600 | None | 0:27:49 |
|
||||||
|
| Interaction between Essentials and containers makes tabs disappear | https://github.com/zen-browser/desktop/issues/8599 | 1:14:41 | None |
|
||||||
|
| Unclosable Search Popup in Zen Browser After Update | https://github.com/zen-browser/desktop/issues/8598 | None | 4:16:15 |
|
||||||
|
| MacOS Smooth Scrolling Stutter on HiDPI Resolutions | https://github.com/zen-browser/desktop/issues/8597 | None | 0:01:02 |
|
||||||
|
| When toggling compact mode with tabs on the right side on Windows, the buttons briefly pop up in the wrong place | https://github.com/zen-browser/desktop/issues/8595 | None | None |
|
||||||
|
| Unable to Remove Workspace Container after Update | https://github.com/zen-browser/desktop/issues/8594 | None | 1:32:31 |
|
||||||
|
| Displacement of icons on collapsed bar | https://github.com/zen-browser/desktop/issues/8593 | 1:43:44 | None |
|
||||||
|
| Inconsistent behavior between Windows (x64) and Linux (tar) regarding keyboard shortcuts | https://github.com/zen-browser/desktop/issues/8592 | 6:33:41 | None |
|
||||||
|
| Overflow menu missing in single toolbar mode | https://github.com/zen-browser/desktop/issues/8591 | 4:48:43 | 4:48:43 |
|
||||||
|
| Icons in right click menu out of allignment | https://github.com/zen-browser/desktop/issues/8590 | None | 13:32:10 |
|
||||||
|
| Sites without a background color use the theme gradient as the background | https://github.com/zen-browser/desktop/issues/8589 | 6:05:21 | 6:05:21 |
|
||||||
|
| Multiple home pages do not load on starting the browser with zen.urlbar.replace-newtab set to true | https://github.com/zen-browser/desktop/issues/8588 | None | None |
|
||||||
|
| Switching to WhatsApp Web tab does not focus the message input field | https://github.com/zen-browser/desktop/issues/8587 | 10:55:01 | 2 days, 13:08:21 |
|
||||||
|
| When opening a new window, pinned split screen tabs are split apart / not preserved | https://github.com/zen-browser/desktop/issues/8583 | None | None |
|
||||||
|
| widget.gtk.native-context-menus not being functional (most options) | https://github.com/zen-browser/desktop/issues/8582 | None | None |
|
||||||
|
| Icon Rendering Incorrectly in KDE Plasma 6 Wayland Window Switcher | https://github.com/zen-browser/desktop/issues/8580 | None | None |
|
||||||
|
| spotfy just refuses to work properly | https://github.com/zen-browser/desktop/issues/8577 | 1:39:16 | 1:39:16 |
|
||||||
|
| Compact view not working at all | https://github.com/zen-browser/desktop/issues/8575 | 4:33:12 | 1 day, 0:35:59 |
|
||||||
|
| Gap at the top of every windows | https://github.com/zen-browser/desktop/issues/8574 | 2:50:22 | None |
|
||||||
|
| Private Mode Forced Pinkish-Purple Theme | https://github.com/zen-browser/desktop/issues/8570 | 0:27:34 | 0:27:55 |
|
||||||
|
| Logging into google causing browser to crash | https://github.com/zen-browser/desktop/issues/8569 | None | None |
|
||||||
|
| Streaming websites do not work on Windows beta | https://github.com/zen-browser/desktop/issues/8568 | 0:48:09 | 0:48:09 |
|
||||||
|
| get unchange blue theme after last autoupdate to 1.12.8b | https://github.com/zen-browser/desktop/issues/8567 | 1:26:08 | 1:31:30 |
|
||||||
|
| Customize Toobar: No longer it's possible to drag entries to the url bar. | https://github.com/zen-browser/desktop/issues/8566 | 0:02:19 | 0:02:19 |
|
||||||
|
| Browser window sometimes disappears for less than a second, revealing applications running in the background. | https://github.com/zen-browser/desktop/issues/8565 | None | None |
|
||||||
|
| MMB Paste when setting is OFF | https://github.com/zen-browser/desktop/issues/8564 | None | None |
|
||||||
|
| The sidebar does not change colors in auto-hide mod in compact mode | https://github.com/zen-browser/desktop/issues/8563 | None | None |
|
||||||
|
| Split View: "Save PDF before leaving"-dialogue centered on browser window; covered by other split(s) | https://github.com/zen-browser/desktop/issues/8561 | None | None |
|
||||||
|
| No video with supported format and MIME type found | https://github.com/zen-browser/desktop/issues/8560 | 1:03:42 | 1 day, 0:42:39 |
|
||||||
|
| Floating URL bar appears way off the expected position | https://github.com/zen-browser/desktop/issues/8559 | 11:32:28 | None |
|
||||||
|
| gradient contrast issue when switching theme | https://github.com/zen-browser/desktop/issues/8558 | None | None |
|
||||||
|
| Tab corners aren't rounded on some pages | https://github.com/zen-browser/desktop/issues/8557 | None | None |
|
||||||
|
| Background defaults to Zen theme color, not white | https://github.com/zen-browser/desktop/issues/8554 | 17:48:16 | 1 day, 0:40:19 |
|
||||||
|
| Zen Crashes when handling anything related to audio sharing(discord or call) or video sharing | https://github.com/zen-browser/desktop/issues/8553 | 2 days, 0:42:30 | 4 days, 16:10:53 |
|
||||||
|
| Sidebar titles are not visible | https://github.com/zen-browser/desktop/issues/8552 | 14:31:33 | None |
|
||||||
|
| Gradient persists with zen.theme.gradient=false | https://github.com/zen-browser/desktop/issues/8551 | 8:00:02 | 16:48:52 |
|
||||||
|
| bookmark issue | https://github.com/zen-browser/desktop/issues/8550 | None | None |
|
||||||
|
| Exit button not in corner | https://github.com/zen-browser/desktop/issues/8549 | 0:21:02 | None |
|
||||||
|
| Workspace icons break when resizing window. The icon state persists after the window is maximized | https://github.com/zen-browser/desktop/issues/8548 | None | None |
|
||||||
|
| URL bar flickers when cursor is at specific position | https://github.com/zen-browser/desktop/issues/8547 | None | None |
|
||||||
|
| New tab button disappeared and lost fixed position after reenabling | https://github.com/zen-browser/desktop/issues/8546 | None | None |
|
||||||
|
| Single bar Mode Extension issue | https://github.com/zen-browser/desktop/issues/8545 | 18:47:17 | None |
|
||||||
|
| Deadzone on top right in macOS | https://github.com/zen-browser/desktop/issues/8540 | None | 0:12:33 |
|
||||||
|
| Extensions stopped working | https://github.com/zen-browser/desktop/issues/8538 | None | None |
|
||||||
|
| Add-on Element Overlap | https://github.com/zen-browser/desktop/issues/8537 | None | None |
|
||||||
|
| YouTube UI Rounded corners and theme colour bug | https://github.com/zen-browser/desktop/issues/8536 | 3:15:12 | 3:15:12 |
|
||||||
|
| Loading large JSON files in the built-in viewer, then using the "Save" button results in the downloaded file missing some JSON entries. | https://github.com/zen-browser/desktop/issues/8535 | None | None |
|
||||||
|
| Win10 1809 version:Baidu Apollo Config Center WEB-UI:Text Area Input Mouse focus on position error | https://github.com/zen-browser/desktop/issues/8533 | None | None |
|
||||||
|
| Webpages are flickering/flashing constantly | https://github.com/zen-browser/desktop/issues/8531 | None | None |
|
||||||
|
| Tabs reopen in new windows | https://github.com/zen-browser/desktop/issues/8529 | None | None |
|
||||||
|
| Workspace Default Container Randomised on Update | https://github.com/zen-browser/desktop/issues/8527 | 8:07:54 | None |
|
||||||
|
| Workspace right click not working | https://github.com/zen-browser/desktop/issues/8526 | 8:21:24 | None |
|
||||||
|
| When re-opening a recently closed window, window is opened with and focused on a New Tab page | https://github.com/zen-browser/desktop/issues/8525 | 16:10:13 | None |
|
||||||
|
| Battleye flag | https://github.com/zen-browser/desktop/issues/8524 | 0:30:25 | 0:37:32 |
|
||||||
|
| Close tab action removes Essential | https://github.com/zen-browser/desktop/issues/8523 | 0:48:59 | 1:37:49 |
|
||||||
|
| Update v1.12.7b broke compact tabs | https://github.com/zen-browser/desktop/issues/8522 | 1:17:05 | 1:17:05 |
|
||||||
|
| Patch apply failed for update v1.12.7b | https://github.com/zen-browser/desktop/issues/8521 | None | 1 day, 5:59:24 |
|
||||||
|
| More light middle bar of sidebar for better recognition of icons on tabs | https://github.com/zen-browser/desktop/issues/8520 | 2:58:50 | 2:58:50 |
|
||||||
|
| More pleasant corner in compact mode and collapsed option with hiding of top bar | https://github.com/zen-browser/desktop/issues/8519 | 3:43:41 | 6:46:24 |
|
||||||
|
| sometime alt tab does.t work | https://github.com/zen-browser/desktop/issues/8517 | None | None |
|
||||||
|
| dowload some pdf | https://github.com/zen-browser/desktop/issues/8516 | None | None |
|
||||||
|
| YouTube in full screen mode is laggy/jerky. In Firefox, same video is fine | https://github.com/zen-browser/desktop/issues/8515 | None | None |
|
||||||
|
| iCloud Passwords extension reports "macOS Sonoma or later to be installed" but I am running on Sequoia | https://github.com/zen-browser/desktop/issues/8514 | 0:10:31 | 0:10:31 |
|
||||||
|
| `New background tab opened` notification not issued in some cases | https://github.com/zen-browser/desktop/issues/8511 | None | None |
|
||||||
|
| Unable to see notifications from zen when in single toolbar browser layout, unless hovering over top bar. | https://github.com/zen-browser/desktop/issues/8510 | None | 1:08:12 |
|
||||||
|
| Hiding top bar and tab bar doesnt work in latest version | https://github.com/zen-browser/desktop/issues/8509 | None | 0:14:35 |
|
||||||
|
| Container-specific essentials don't work, even if enable and reboot - Windows ARM - Last update | https://github.com/zen-browser/desktop/issues/8508 | 0:24:00 | None |
|
||||||
|
| Clicking current workspace icon flashes previous workspace's theme colours | https://github.com/zen-browser/desktop/issues/8507 | 2:33:28 | 12:47:45 |
|
||||||
|
| Conflict with Zen Privacy app | https://github.com/zen-browser/desktop/issues/8506 | 2:40:37 | 2:40:37 |
|
||||||
|
| Can not play videos in Udemy and music in Spotify. | https://github.com/zen-browser/desktop/issues/8505 | 1:27:54 | 1:27:54 |
|
||||||
|
| When opening a new window, the order of essential tabs gets out of order (but only in the second window) | https://github.com/zen-browser/desktop/issues/8503 | 5:52:57 | 5:52:57 |
|
||||||
|
| Tab list doesn't retain scroll position after opening the browser | https://github.com/zen-browser/desktop/issues/8502 | 20:46:10 | None |
|
||||||
|
| YouTube player sometimes incorrectly opens in fullscreen mode | https://github.com/zen-browser/desktop/issues/8501 | 11:18:42 | None |
|
||||||
|
| Toolbar items can only be inserted into sidebar as nested in Top Buttons and Bottom Buttons blocks. | https://github.com/zen-browser/desktop/issues/8500 | 8:27:32 | 8:27:32 |
|
||||||
|
| Stupid updates enabled by default and hard to disable | https://github.com/zen-browser/desktop/issues/8499 | 9:19:18 | 9:19:06 |
|
||||||
|
| Gradient in sidebar is broken | https://github.com/zen-browser/desktop/issues/8498 | 9:25:28 | 9:25:28 |
|
||||||
|
| FirebaseError: Messaging: This browser doesn't support the API's required to use the Firebase SDK. | https://github.com/zen-browser/desktop/issues/8497 | None | None |
|
||||||
|
| Weird bar on top of desktop window on macos after 1.12.7b | https://github.com/zen-browser/desktop/issues/8496 | 0:22:14 | 1:19:03 |
|
||||||
|
| Mod Refuses to Uninstall | https://github.com/zen-browser/desktop/issues/8495 | 0:20:53 | 0:20:52 |
|
||||||
|
| Livestream video freezes when focusing other fullscreen window, but audio still works | https://github.com/zen-browser/desktop/issues/8491 | 16:45:00 | None |
|
||||||
|
| Toggle Sidebar button not visible/working | https://github.com/zen-browser/desktop/issues/8489 | 6:25:39 | None |
|
||||||
|
| all Zen UI elements outside the viewport are partially transparent (not blurred) | https://github.com/zen-browser/desktop/issues/8488 | None | 1 day, 8:57:38 |
|
||||||
|
| Top Bar Delay and Partial Display on Hover After Recent Update | https://github.com/zen-browser/desktop/issues/8487 | 1:35:56 | 13:37:40 |
|
||||||
|
| Firefox View icon disapears after restart | https://github.com/zen-browser/desktop/issues/8486 | 1 day, 17:22:21 | None |
|
||||||
|
| Sidebar double click not opens new tab anymore | https://github.com/zen-browser/desktop/issues/8485 | 0:09:42 | 10:01:18 |
|
||||||
|
| When Windows wakes my display from being powered off by the OS, Zen toolbar and sidebar become unresponsive and do not show in compact mode | https://github.com/zen-browser/desktop/issues/8484 | None | None |
|
||||||
|
| Compact mode toolbar dragging issue | https://github.com/zen-browser/desktop/issues/8483 | None | 0:03:29 |
|
||||||
|
| Shift + Alt - unexpectedly closing opened new tab spotlight input | https://github.com/zen-browser/desktop/issues/8481 | 1 day, 12:59:02 | None |
|
||||||
|
| Unable to hide Workspace Indicator | https://github.com/zen-browser/desktop/issues/8480 | 1 day, 10:43:05 | 0:05:56 |
|
||||||
|
| Url bar doesn't popup correctly on compact mode | https://github.com/zen-browser/desktop/issues/8478 | None | 0:06:58 |
|
||||||
|
| [1.12.6b] Initializing a workspace causes a empty workspace until you close out of the browser and reopen it. | https://github.com/zen-browser/desktop/issues/8476 | None | 1:04:58 |
|
||||||
|
| Renaming pinned tab input focus issue (when using Left/Right buttons) | https://github.com/zen-browser/desktop/issues/8475 | None | 2:46:26 |
|
||||||
|
| URL BAR APPEARS WHEN EXITING FULLSCREEN | https://github.com/zen-browser/desktop/issues/8474 | None | 0:29:12 |
|
||||||
|
| Mouse loses functionality in the sidebar and sidebar gets stuck on open im compact mode | https://github.com/zen-browser/desktop/issues/8471 | 11:10:16 | None |
|
||||||
|
| Tabs created by text being dragged into sidebar show container indicator when a workspace is assigned to a container. | https://github.com/zen-browser/desktop/issues/8470 | None | None |
|
||||||
|
| 1Password Extension - Desktop App Integration Setting - Connection Problem Error | https://github.com/zen-browser/desktop/issues/8469 | 2:41:44 | None |
|
||||||
|
| Dragging a tab onto a Glance tab appends its favicon and renders the tab inaccessible | https://github.com/zen-browser/desktop/issues/8465 | 0:31:46 | 22:19:59 |
|
||||||
|
| Screen Sharing Malfunction in Google Meet (Windows) | https://github.com/zen-browser/desktop/issues/8464 | 0:58:42 | None |
|
||||||
|
| Glance causes stutter | https://github.com/zen-browser/desktop/issues/8463 | None | None |
|
||||||
|
| visibility of the search bar with a dark background | https://github.com/zen-browser/desktop/issues/8462 | 2:40:56 | 2:40:56 |
|
||||||
|
| container, workspace and tab synchronization | https://github.com/zen-browser/desktop/issues/8460 | None | None |
|
||||||
|
| It's Dark mode when the Tips Box comes up | https://github.com/zen-browser/desktop/issues/8459 | 1:54:22 | 16:10:29 |
|
||||||
|
| Toolbar doesn't appear on hover after update when using compact mode with hidden bars | https://github.com/zen-browser/desktop/issues/8458 | 0:24:26 | 14:16:08 |
|
||||||
|
| Gradient sometimes lost on startup | https://github.com/zen-browser/desktop/issues/8457 | None | None |
|
||||||
|
| Workspace name visible again after udpate | https://github.com/zen-browser/desktop/issues/8455 | 0:45:18 | 2:35:37 |
|
||||||
|
| Workspaces not visible when compact mode | https://github.com/zen-browser/desktop/issues/8454 | 3:14:43 | None |
|
||||||
|
| Favicon Issue on grok.com Bookmarks | https://github.com/zen-browser/desktop/issues/8453 | None | None |
|
||||||
|
| Ctrl + Shift + C (pick an element from the page) not working in page devtools | https://github.com/zen-browser/desktop/issues/8452 | 3:38:50 | 1 day, 0:04:18 |
|
||||||
|
| Signing in with Google is Not working. | https://github.com/zen-browser/desktop/issues/8451 | 3 days, 18:52:30 | None |
|
||||||
|
| Browser tab switcher only displays 7 tabs even when more are open | https://github.com/zen-browser/desktop/issues/8450 | None | None |
|
||||||
|
| Compact Sidebar is not aligned properly | https://github.com/zen-browser/desktop/issues/8449 | None | 7:19:21 |
|
||||||
|
| TLS error connecting to accounts.microsoft.com | https://github.com/zen-browser/desktop/issues/8448 | None | None |
|
||||||
|
| Weird colored text highlighting in google search titles | https://github.com/zen-browser/desktop/issues/8447 | None | 5:45:04 |
|
||||||
|
| White block at the bottom of every page | https://github.com/zen-browser/desktop/issues/8446 | None | None |
|
||||||
|
| External links launch process hangs for 2 minutes | https://github.com/zen-browser/desktop/issues/8445 | 8:39:25 | None |
|
||||||
|
| Collapse and multi toolbar layouts are shortened vertically | https://github.com/zen-browser/desktop/issues/8444 | None | 4:29:53 |
|
||||||
|
| Audible online player not working | https://github.com/zen-browser/desktop/issues/8443 | 2:35:00 | 2:35:00 |
|
||||||
|
| YouTube views counter display issue. | https://github.com/zen-browser/desktop/issues/8439 | None | None |
|
||||||
|
| The workspaces icons at the bottom twinkle when i resize | https://github.com/zen-browser/desktop/issues/8437 | None | None |
|
||||||
|
| bug extension name/size icon when switch between single toolbar and multiple toolbar | https://github.com/zen-browser/desktop/issues/8436 | None | None |
|
||||||
|
| 1.12.5b can't auto-update on macOS, manual upgrage results in new profile | https://github.com/zen-browser/desktop/issues/8433 | 4:31:18 | 1 day, 20:07:07 |
|
||||||
|
| Gamepad breaks the browser on mac | https://github.com/zen-browser/desktop/issues/8432 | None | 4 days, 20:24:24 |
|
||||||
|
| Suerpins - Broke "Makes pinned tabs look similar to Essentials (icon only in a grid)" | https://github.com/zen-browser/desktop/issues/8431 | 0:56:23 | 4:32:12 |
|
||||||
|
| Browser hangs after closing a tab that was using picture-in-picture. | https://github.com/zen-browser/desktop/issues/8430 | None | None |
|
||||||
|
| Zen Browser is laggy and consumes excessive energy | https://github.com/zen-browser/desktop/issues/8428 | 1 day, 13:37:20 | None |
|
||||||
|
| Pinned tabs appear in incorrect workspace/container after using Ctrl + N or open new window in taskbar | https://github.com/zen-browser/desktop/issues/8427 | None | None |
|
||||||
|
| Glance and Tab Switching not working properly | https://github.com/zen-browser/desktop/issues/8426 | 0:08:15 | None |
|
||||||
|
| Copying Profile from Flatpak to AppImage gives "Older Version" error, even though AppImage is newer. | https://github.com/zen-browser/desktop/issues/8424 | None | None |
|
||||||
|
| Sidebar custom configuration resets between sessions in the app, and instead should persist. | https://github.com/zen-browser/desktop/issues/8422 | None | None |
|
||||||
|
| Blurred fonts on ultrawide monitor full screen | https://github.com/zen-browser/desktop/issues/8421 | 3:59:32 | None |
|
||||||
|
| Allow Drag-and-Drop to Open Tabs in a New Window | https://github.com/zen-browser/desktop/issues/8418 | 0:42:07 | None |
|
||||||
|
| Floating url bar unexpected behaviour (loosing focus and not showing instantly with ctrl+T) | https://github.com/zen-browser/desktop/issues/8417 | None | None |
|
||||||
|
| Reset URL and switch to next tab undesired behaviour | https://github.com/zen-browser/desktop/issues/8416 | 5:53:34 | 1 day, 12:25:32 |
|
||||||
|
| One tab required to remain loaded in every workspace when trying to unload all tabs | https://github.com/zen-browser/desktop/issues/8414 | None | None |
|
||||||
|
| edit : sorry for cloning the issue, the same issue was posted right below this issue by gordonn. | https://github.com/zen-browser/desktop/issues/8413 | None | 0:06:07 |
|
||||||
|
| [Twilight 1.13] Multi toolbar and collapse toolbar modes are misalligned | https://github.com/zen-browser/desktop/issues/8412 | 0:37:08 | 4:32:12 |
|
||||||
|
| Clicking already selected workspace causes incorrect scrollbar size | https://github.com/zen-browser/desktop/issues/8411 | None | None |
|
||||||
|
| Switch to tab indicator thinner in new twilight (not sure if its intentional or not) | https://github.com/zen-browser/desktop/issues/8410 | 0:53:15 | 0:53:15 |
|
||||||
|
| Side Toolbox Flash | https://github.com/zen-browser/desktop/issues/8409 | 3:16:36 | 10 days, 4:38:53 |
|
||||||
|
| Compact-mode toolbox background visibly cuts off on wide/hires screens | https://github.com/zen-browser/desktop/issues/8408 | None | None |
|
||||||
|
| ZenBrowser cannot disable the Save Page shortcut key. | https://github.com/zen-browser/desktop/issues/8406 | None | None |
|
||||||
|
| Bookmark management does not display which workspace it belongs to. | https://github.com/zen-browser/desktop/issues/8405 | None | None |
|
||||||
|
| Zen URL bar insists on showing history even when the option to do so is disabled. | https://github.com/zen-browser/desktop/issues/8404 | 9:21:34 | None |
|
||||||
|
| Ctrl-tab should not cycle through essential tabs | https://github.com/zen-browser/desktop/issues/8403 | 0:39:33 | None |
|
||||||
|
| Extensions being removed? | https://github.com/zen-browser/desktop/issues/8402 | None | None |
|
||||||
|
| Weird bookmark bar showing up | https://github.com/zen-browser/desktop/issues/8401 | None | None |
|
||||||
|
| HDR on Linux doesn't work when zen is windowed | https://github.com/zen-browser/desktop/issues/8400 | 22:32:03 | None |
|
||||||
|
| Compact mode doesnt work | https://github.com/zen-browser/desktop/issues/8397 | 9 days, 16:40:40 | None |
|
||||||
|
| Most of rendering is blurry if window exceeds 4k resolution | https://github.com/zen-browser/desktop/issues/8396 | 8 days, 15:12:32 | None |
|
||||||
|
| Changing keyboard shortcuts, "Conflict with another shortcut" | https://github.com/zen-browser/desktop/issues/8395 | 1:12:32 | None |
|
||||||
|
| Installed mods not showing up in list | https://github.com/zen-browser/desktop/issues/8394 | 6:03:57 | None |
|
||||||
|
| Inconsistent behaviour of expanding sidebar between different OS's and mouse movements | https://github.com/zen-browser/desktop/issues/8393 | None | None |
|
||||||
|
| Holding ⌥ on Mac to select the text inside a link is broken | https://github.com/zen-browser/desktop/issues/8391 | None | None |
|
||||||
|
| Workspace indicator unhideable on Linux | https://github.com/zen-browser/desktop/issues/8390 | 2:00:45 | 2:27:20 |
|
||||||
|
| Tabliss does not load in new window or tab. | https://github.com/zen-browser/desktop/issues/8387 | 9:41:37 | None |
|
||||||
|
| I could'nt use "Better ctrl+Tab panel" mod in desktop. | https://github.com/zen-browser/desktop/issues/8386 | 5:23:01 | None |
|
||||||
|
| Customizing toolbar freeze | https://github.com/zen-browser/desktop/issues/8383 | None | None |
|
||||||
|
| error code SHAK-6007 Crunchyroll playback error | https://github.com/zen-browser/desktop/issues/8382 | 6:10:43 | 6:10:43 |
|
||||||
|
| URL character get double | https://github.com/zen-browser/desktop/issues/8379 | None | None |
|
||||||
|
| Zen browser multiple windows in taskbar | https://github.com/zen-browser/desktop/issues/8376 | 0:03:50 | 0:09:58 |
|
||||||
|
| Essentials are unloaded if Clear search, site and downloaded history at zen close is checked | https://github.com/zen-browser/desktop/issues/8374 | 0:44:41 | 0:44:41 |
|
||||||
|
| Tuxedo OS (Ubuntu 24.04.1) - several errors that might lead into a "Crash Annotation GraphicsCriticalError" after starting Zen | https://github.com/zen-browser/desktop/issues/8373 | 2:10:11 | 2:10:11 |
|
||||||
|
| Selecting all tabs and closing them also removes the pinned tabs | https://github.com/zen-browser/desktop/issues/8371 | None | 5:03:07 |
|
||||||
|
| Invisible text in right click menu | https://github.com/zen-browser/desktop/issues/8369 | None | 5 days, 14:21:42 |
|
||||||
|
| [bug] i18n error, zen-background-tab-opened-toast has not been localized | https://github.com/zen-browser/desktop/issues/8368 | 9:27:59 | 9:27:59 |
|
||||||
|
| Split View flickers when moving split to the right | https://github.com/zen-browser/desktop/issues/8363 | None | 6:33:55 |
|
||||||
|
| Container Specific essentials not working | https://github.com/zen-browser/desktop/issues/8361 | None | 0:05:44 |
|
||||||
|
| Redundunt windows are opening up after launching zen browser | https://github.com/zen-browser/desktop/issues/8360 | 8:38:50 | None |
|
||||||
|
| zen.workspaces.show-workspace-indicator setting ignored | https://github.com/zen-browser/desktop/issues/8356 | 0:05:01 | 0:05:01 |
|
||||||
|
| Seemingly after each update, new icon shows in Dock | https://github.com/zen-browser/desktop/issues/8355 | 12:16:44 | None |
|
||||||
|
| Downloaded language pack not being respected (English GB) | https://github.com/zen-browser/desktop/issues/8354 | 0:35:35 | 1:02:34 |
|
||||||
|
| Can't disable Shortcut suggestions and it won't work if I disable the history | https://github.com/zen-browser/desktop/issues/8352 | 6:39:16 | 6:39:16 |
|
||||||
|
| Arabic language Custom font bug on arch linux | https://github.com/zen-browser/desktop/issues/8350 | None | None |
|
||||||
|
| Incorrect text on report option after deleting extension | https://github.com/zen-browser/desktop/issues/8349 | 15:25:03 | None |
|
||||||
|
| UI padding is not accurate in split tabs | https://github.com/zen-browser/desktop/issues/8347 | None | None |
|
||||||
|
| Cannot add tabs to Essentials panel – nothing happens on click | https://github.com/zen-browser/desktop/issues/8345 | 16:45:06 | 16:59:08 |
|
||||||
|
| New tab doesn't open automatically if essential tabs are closed before regular tabs | https://github.com/zen-browser/desktop/issues/8344 | None | None |
|
||||||
|
| Pressing CTRL key unfocuses URL bar | https://github.com/zen-browser/desktop/issues/8343 | 2:09:34 | None |
|
||||||
|
| URL opacity blinks when leaving compact mode | https://github.com/zen-browser/desktop/issues/8342 | None | None |
|
||||||
|
| Cant Add more Essential tabs | https://github.com/zen-browser/desktop/issues/8341 | None | 2:59:08 |
|
||||||
|
| Sidebar not hidden in all windows on startup when using "Hide Both" in compact view | https://github.com/zen-browser/desktop/issues/8339 | 5:37:43 | 5:37:43 |
|
||||||
|
| No green dot on proton mail | https://github.com/zen-browser/desktop/issues/8337 | 4:15:47 | 4:15:47 |
|
||||||
|
| Mouse Cursor not disapearing while watching YouTube | https://github.com/zen-browser/desktop/issues/8336 | None | 3:07:20 |
|
||||||
|
| Very slow connecting on localhost website | https://github.com/zen-browser/desktop/issues/8334 | None | None |
|
||||||
|
| URL Bar: Can't disable Shortcut suggestions | https://github.com/zen-browser/desktop/issues/8333 | 2:02:02 | 4:12:37 |
|
||||||
|
| New tab does not open in same container as current tab | https://github.com/zen-browser/desktop/issues/8332 | None | 4:02:56 |
|
||||||
|
| Swipe on touchscreen does not scroll, it selects | https://github.com/zen-browser/desktop/issues/8331 | None | None |
|
||||||
|
| The floating bar is no longer displayed... | https://github.com/zen-browser/desktop/issues/8330 | 5:13:17 | 6:33:30 |
|
||||||
|
| Can't change the theme to a dark color, like black | https://github.com/zen-browser/desktop/issues/8329 | 5:15:54 | 6:24:16 |
|
||||||
|
| Secure connection failed | https://github.com/zen-browser/desktop/issues/8328 | None | 1 day, 5:03:14 |
|
||||||
|
| Essentials unload issue | https://github.com/zen-browser/desktop/issues/8326 | 9:04:50 | None |
|
||||||
|
| weird shadow when hightlighting text | https://github.com/zen-browser/desktop/issues/8325 | 10:20:39 | 10:20:39 |
|
||||||
|
| Mouse flickering on Browser MacOS | https://github.com/zen-browser/desktop/issues/8323 | 7 days, 7:55:25 | 7 days, 8:56:46 |
|
||||||
|
| DRM content checked yet can't play embedded videos. | https://github.com/zen-browser/desktop/issues/8320 | 6:30:09 | 6:30:09 |
|
||||||
|
| Issue when opening the New Tab url bar, and selecting a shortcut tab that's already an essential | https://github.com/zen-browser/desktop/issues/8319 | None | None |
|
||||||
|
| "Screenshot Copied" Toast Notification Unreadable | https://github.com/zen-browser/desktop/issues/8317 | 15:44:46 | None |
|
||||||
|
| Can't update to 1.12.4 | https://github.com/zen-browser/desktop/issues/8316 | None | 6:39:21 |
|
||||||
|
| Unable to add tabs to essentials after most recent update | https://github.com/zen-browser/desktop/issues/8315 | None | 2:14:49 |
|
||||||
|
| Transparent dialogs | https://github.com/zen-browser/desktop/issues/8314 | 1:11:28 | 2:29:34 |
|
||||||
|
| Unable to find a supported language | https://github.com/zen-browser/desktop/issues/8313 | 12:40:47 | 19:19:31 |
|
||||||
|
| Rearrange Split View keyboard shortcuts don't work on existing split views | https://github.com/zen-browser/desktop/issues/8310 | 9 days, 1:16:48 | None |
|
||||||
|
| Moving Essential Tab to New Window removes it from Essentials | https://github.com/zen-browser/desktop/issues/8309 | None | None |
|
||||||
|
| Adding new essentials is not working | https://github.com/zen-browser/desktop/issues/8308 | 5:24:00 | 23:11:34 |
|
||||||
|
| Mods get Reset/Removed when Updated | https://github.com/zen-browser/desktop/issues/8306 | 1 day, 1:03:16 | 1 day, 1:03:16 |
|
||||||
|
| Playing songs | https://github.com/zen-browser/desktop/issues/8305 | 2:53:37 | 2:53:37 |
|
||||||
|
| agency | https://github.com/zen-browser/desktop/issues/8304 | 3:31:16 | 1 day, 1:31:52 |
|
||||||
|
| crash | https://github.com/zen-browser/desktop/issues/8303 | 3:41:45 | None |
|
||||||
|
| collapse | https://github.com/zen-browser/desktop/issues/8302 | None | 0:01:39 |
|
||||||
|
| Glitch/flickering sidebar when switching spaces in compact mode. | https://github.com/zen-browser/desktop/issues/8301 | 14 days, 22:19:20 | None |
|
||||||
|
| workspace icons are missing | https://github.com/zen-browser/desktop/issues/8278 | 1:45:25 | None |
|
||||||
|
| URL bar and minize/maximize buttons overlap when the window is horziontally shrinked | https://github.com/zen-browser/desktop/issues/8277 | None | None |
|
||||||
|
| <option> dropdown background same color as text | https://github.com/zen-browser/desktop/issues/8276 | None | 0:02:32 |
|
||||||
|
| Full screen problem on macOS | https://github.com/zen-browser/desktop/issues/8275 | 11 days, 15:53:45 | None |
|
||||||
|
| When opening a Youtube video, cannot interact with certain elements like text, like/dislike, opening desc. and replies | https://github.com/zen-browser/desktop/issues/8273 | 21:55:54 | None |
|
||||||
|
| Media Playback Continues After Unloading a Pinned Tab | https://github.com/zen-browser/desktop/issues/8267 | 13:43:59 | None |
|
||||||
|
| Dark theme weird rendering | https://github.com/zen-browser/desktop/issues/8263 | 1:20:19 | 1:29:02 |
|
||||||
|
| Youtube picture in picture stops working randomly and restarting or opening a new window fixes it. | https://github.com/zen-browser/desktop/issues/8260 | None | None |
|
||||||
|
| Locked urlbar.suggest preferences in about:config | https://github.com/zen-browser/desktop/issues/8259 | 0:41:23 | 6:25:51 |
|
||||||
|
| The search engine selection window is truncated during initial configuration. | https://github.com/zen-browser/desktop/issues/8258 | None | 4:29:43 |
|
||||||
|
| Takes ~3 mins to open a link from vscode | https://github.com/zen-browser/desktop/issues/8257 | 6:14:20 | None |
|
||||||
|
| Mods cannot save settings on install | https://github.com/zen-browser/desktop/issues/8255 | None | 2:21:43 |
|
||||||
|
| Can't smoosh zen windows as small as we used to. | https://github.com/zen-browser/desktop/issues/8254 | 2:38:48 | 2:38:48 |
|
||||||
|
| Normal windows always open in previously used Windows virtual desktop instead of current one | https://github.com/zen-browser/desktop/issues/8252 | 1 day, 10:37:31 | None |
|
||||||
|
| Black Mark and Render Issue | https://github.com/zen-browser/desktop/issues/8251 | None | None |
|
||||||
|
| Fetch requests with `keepalive: true` not showing in the Network panel | https://github.com/zen-browser/desktop/issues/8249 | 0:21:23 | 0:21:23 |
|
||||||
|
| Unable to apply Theme Colors for Incognito mode | https://github.com/zen-browser/desktop/issues/8248 | None | None |
|
||||||
|
| Download animation is shown in multiple windows | https://github.com/zen-browser/desktop/issues/8247 | 0:35:42 | 1 day, 7:54:40 |
|
||||||
|
| Toast Notification is stuck on after opening a folder of bookmarks with middle mouse button when in compact mode | https://github.com/zen-browser/desktop/issues/8246 | 2:29:31 | 19:01:57 |
|
||||||
|
| Restoring session with multiple windows starts every window in a new tab | https://github.com/zen-browser/desktop/issues/8245 | 3:28:19 | 13:58:26 |
|
||||||
|
| I can't choose to never translate from Arabic. | https://github.com/zen-browser/desktop/issues/8244 | None | None |
|
||||||
|
| cannot uncheck shortcuts in adress bar | https://github.com/zen-browser/desktop/issues/8242 | 10:04:15 | 10:04:15 |
|
||||||
|
| Arabic font is not the same as latest default firefox font in the Linux build | https://github.com/zen-browser/desktop/issues/8241 | None | None |
|
||||||
|
| UI scaling issue on linux desktop | https://github.com/zen-browser/desktop/issues/8240 | None | 8 days, 0:09:35 |
|
||||||
|
| Can't close Tab via X on Tab. Only via Hotkey | https://github.com/zen-browser/desktop/issues/8239 | None | 0:01:41 |
|
||||||
|
| Top bar does not hide when activating compact mode | https://github.com/zen-browser/desktop/issues/8237 | 1:13:23 | 1:54:27 |
|
||||||
|
| Top bar auto-hide glitch when interacting with sidebar & bookmarks | https://github.com/zen-browser/desktop/issues/8234 | 22:44:31 | 1 day, 9:51:23 |
|
||||||
|
| Cloudflare captcha not working | https://github.com/zen-browser/desktop/issues/8230 | 2:31:04 | 2:31:04 |
|
||||||
|
| Moving tabs inside tab bar is buggy | https://github.com/zen-browser/desktop/issues/8229 | 2:53:47 | 3:29:02 |
|
||||||
|
| Media Controls are not visible when switched to full screen | https://github.com/zen-browser/desktop/issues/8228 | None | 0:21:20 |
|
||||||
|
| Cant Remove Predefined Site Suggestion from my Search Bar (CTRL+T) | https://github.com/zen-browser/desktop/issues/8227 | 2:31:43 | 4:57:01 |
|
||||||
|
| URL bar loses focus instead of resetting URL | https://github.com/zen-browser/desktop/issues/8226 | 0:41:33 | 0:41:33 |
|
||||||
|
| URL Bar loses focus when deleting last character | https://github.com/zen-browser/desktop/issues/8225 | 0:44:53 | 5 days, 6:37:15 |
|
||||||
|
| Hovering on a compact window to move a tab causes the sidebar to pop in and out | https://github.com/zen-browser/desktop/issues/8224 | None | None |
|
||||||
|
| Zen creates a .mozilla folder in $HOME directory on Linux | https://github.com/zen-browser/desktop/issues/8223 | None | None |
|
||||||
|
| Browser buttons and close window button unresponsive after closing the Zen application | https://github.com/zen-browser/desktop/issues/8219 | 0:48:05 | None |
|
||||||
|
| Cannot drag tabs from top to bottom to reorder a few positions when tabs are on the right | https://github.com/zen-browser/desktop/issues/8218 | None | None |
|
||||||
|
| Downloads Browser Crash | https://github.com/zen-browser/desktop/issues/8217 | None | None |
|
||||||
|
| Google Meet buttons don't working on sidebar | https://github.com/zen-browser/desktop/issues/8215 | 2:40:14 | 2:40:14 |
|
||||||
|
| không thể thêm thẻ thường trú(E) | https://github.com/zen-browser/desktop/issues/8214 | 0:01:54 | 0:01:54 |
|
||||||
|
| Blank screen when first launching Zen | https://github.com/zen-browser/desktop/issues/8213 | None | None |
|
||||||
|
| Cannot access certificate view from URL bar (padlock icon) | https://github.com/zen-browser/desktop/issues/8212 | 12 days, 6:42:18 | 12 days, 7:11:25 |
|
||||||
|
| Syncing workspace tabs not works | https://github.com/zen-browser/desktop/issues/8211 | 15 days, 5:13:05 | None |
|
||||||
|
| zen mods not working | https://github.com/zen-browser/desktop/issues/8208 | None | 0:08:14 |
|
||||||
|
| Workspace switch animation is blocking | https://github.com/zen-browser/desktop/issues/8206 | 9:29:26 | None |
|
||||||
|
| ZEN Mouse Dragging & Resizing (maximize) does not work sometimes | https://github.com/zen-browser/desktop/issues/8205 | 6:20:09 | None |
|
||||||
|
| (Hyprland)Topbar doesn't disappear in compact sidebar | https://github.com/zen-browser/desktop/issues/8204 | None | 2:16:10 |
|
||||||
|
| windows 10 transparency not working. | https://github.com/zen-browser/desktop/issues/8202 | 3:06:24 | 3:06:24 |
|
||||||
|
| Zen not restoring any tab from the already opened tabs from previous session | https://github.com/zen-browser/desktop/issues/8201 | 3:17:29 | 4:43:32 |
|
||||||
|
| website background colour chaning along with the theme colour of side bar | https://github.com/zen-browser/desktop/issues/8200 | 4:58:08 | 4:58:07 |
|
||||||
|
| Containerized Essential dissapear when 'Enable container-specific essentials' feature is switched on | https://github.com/zen-browser/desktop/issues/8199 | 4:32:24 | 4:43:46 |
|
||||||
|
| "New Window" windows don't have the 'Essential' tabs on them anymore | https://github.com/zen-browser/desktop/issues/8197 | 7:03:16 | 1 day, 7:55:21 |
|
||||||
|
| Compact Mode sidebar not showing/opening | https://github.com/zen-browser/desktop/issues/8196 | 7:07:23 | None |
|
||||||
|
| HTML <select> elements blank drop-down | https://github.com/zen-browser/desktop/issues/8195 | 4 days, 4:54:42 | None |
|
||||||
|
| Everything is bright white | https://github.com/zen-browser/desktop/issues/8194 | 1:23:35 | 1:23:35 |
|
||||||
|
| Search with google is pinned for no clear reason | https://github.com/zen-browser/desktop/issues/8193 | 1:10:15 | 1:11:58 |
|
||||||
|
| Popup Window shows side bar with no function in compact mode | https://github.com/zen-browser/desktop/issues/8191 | None | None |
|
||||||
|
| Button to list all tabs is transparent / disappears | https://github.com/zen-browser/desktop/issues/8188 | None | 6:09:10 |
|
||||||
|
| Color contrast on tab bar | https://github.com/zen-browser/desktop/issues/8187 | 5:36:28 | None |
|
||||||
|
| XDG Desktop Portal Termfilechooser doesn't work?! | https://github.com/zen-browser/desktop/issues/8186 | 16:11:53 | 22:30:50 |
|
||||||
|
| Address bar no longer shows 'Search with [engine]' option | https://github.com/zen-browser/desktop/issues/8185 | 0:17:41 | 0:55:52 |
|
||||||
|
| Checkboxes get activated on the Settings page when clicking on empty space along their width. | https://github.com/zen-browser/desktop/issues/8184 | 17:34:27 | 17:34:27 |
|
||||||
|
| Zen blocking keyboard in Deskflow | https://github.com/zen-browser/desktop/issues/8183 | None | None |
|
||||||
|
| Issue with the "Bottom Essentials" Zen Theme | https://github.com/zen-browser/desktop/issues/8177 | 4:02:27 | 4:07:49 |
|
||||||
|
| Dashlane failed connexion | https://github.com/zen-browser/desktop/issues/8176 | None | 5:19:09 |
|
||||||
|
| icons in split tabs shift to the right | https://github.com/zen-browser/desktop/issues/8175 | 0:20:13 | 1 day, 8:21:19 |
|
||||||
|
| Unable to open extensions when there is no tab | https://github.com/zen-browser/desktop/issues/8174 | 6:44:29 | None |
|
||||||
|
| Disable background tab notification by default | https://github.com/zen-browser/desktop/issues/8173 | 2:09:55 | 2:09:55 |
|
||||||
|
| [1.12.3] Mute/unmute icon slightly offset vertically on linux via AUR. | https://github.com/zen-browser/desktop/issues/8172 | None | 6 days, 1:08:02 |
|
||||||
|
| Workspace navigation shortcut not working on pages with conflicting shortcuts | https://github.com/zen-browser/desktop/issues/8171 | None | None |
|
||||||
|
| The popup for the shortcut copy URL looks broken. | https://github.com/zen-browser/desktop/issues/8169 | 3 days, 22:47:53 | 4 days, 23:49:18 |
|
||||||
|
| zen-empty-tab looses the selected="true" value sometimes when switching workspaces. | https://github.com/zen-browser/desktop/issues/8166 | 3:34:23 | None |
|
||||||
|
| In Compact Mode with 'Hide Toolbar' enabled, toolbar does not auto-hide after using the URL bar to open a link | https://github.com/zen-browser/desktop/issues/8164 | 0:35:09 | 5 days, 18:21:46 |
|
||||||
|
| When in fullscreen(F11) bookmarks bar disappear | https://github.com/zen-browser/desktop/issues/8163 | 13 days, 2:22:49 | None |
|
||||||
|
| Lost all tabs after a restart | https://github.com/zen-browser/desktop/issues/8162 | 0:07:51 | None |
|
||||||
|
| Login fails on specific sites (e.g. Keeper, school network) in normal mode on Windows, but works in Incognito | https://github.com/zen-browser/desktop/issues/8161 | None | None |
|
||||||
|
| When too many tabs are open in a private window to fit the tab bar, no scrollbar appears | https://github.com/zen-browser/desktop/issues/8160 | 7:48:44 | 7:48:44 |
|
||||||
|
| Print to PDF not working | https://github.com/zen-browser/desktop/issues/8159 | None | None |
|
||||||
|
| MacOS Text Replacements doesn't work | https://github.com/zen-browser/desktop/issues/8158 | 13 days, 23:41:07 | None |
|
||||||
|
| Zen RAM Consumption is too much (Possible Memory Leak??) | https://github.com/zen-browser/desktop/issues/8157 | None | None |
|
||||||
|
| Can't click on bookmark icons when in compact mode | https://github.com/zen-browser/desktop/issues/8155 | None | 0:04:33 |
|
||||||
|
| Sidebery extension: tabs from other workspaces become inaccessible (since 1.8b+) | https://github.com/zen-browser/desktop/issues/8154 | 1:57:05 | 1:57:05 |
|
||||||
|
| With dual monitor, when dual zen brower windows opened, Essentials' number will reduce to 1 | https://github.com/zen-browser/desktop/issues/8153 | None | None |
|
||||||
|
| Zen switches to irrelevant workspace on startup | https://github.com/zen-browser/desktop/issues/8151 | 0:17:36 | 0:17:36 |
|
||||||
|
| Youtube playback crashes after some time | https://github.com/zen-browser/desktop/issues/8150 | None | None |
|
||||||
|
| Cannot open live editing zen theme | https://github.com/zen-browser/desktop/issues/8148 | None | 0:08:04 |
|
||||||
|
| load in startup not working for the first essenntial tab only | https://github.com/zen-browser/desktop/issues/8147 | 0:14:09 | 3:11:28 |
|
||||||
|
| "New background tab" toast even for foreground tabs | https://github.com/zen-browser/desktop/issues/8146 | 0:35:34 | 3:51:23 |
|
||||||
|
| Compact sidebar keeps popping up flickering when switching to a zen window with focus in macOS | https://github.com/zen-browser/desktop/issues/8145 | None | None |
|
||||||
|
| When tabs on the right enabled, toast notifications appear off the screen | https://github.com/zen-browser/desktop/issues/8143 | None | 5:07:33 |
|
||||||
|
| GPU rendering does not work after crash | https://github.com/zen-browser/desktop/issues/8141 | 8:32:12 | None |
|
||||||
|
| Letterboxing bricks and violates the boundary between the tab bar and the rendering space of website when a website enters full screen mode | https://github.com/zen-browser/desktop/issues/8140 | 0:10:28 | None |
|
||||||
|
| picture in picture disappears when trying to navigate to split tab | https://github.com/zen-browser/desktop/issues/8139 | None | None |
|
||||||
|
| Clicking non-floating urlbar always selects all on mouse up | https://github.com/zen-browser/desktop/issues/8138 | None | 0:18:23 |
|
||||||
|
| Audible media playback doesn't work | https://github.com/zen-browser/desktop/issues/8137 | 1:22:13 | 2:25:29 |
|
||||||
|
| compact mode is not working and cant close the tabs some times in fedora | https://github.com/zen-browser/desktop/issues/8136 | 3:11:39 | 2 days, 0:05:39 |
|
||||||
|
| Cannot freely edit the url in the address bar | https://github.com/zen-browser/desktop/issues/8134 | 0:01:56 | 0:01:56 |
|
||||||
|
| New Tabs open in Essentials | https://github.com/zen-browser/desktop/issues/8133 | 0:35:39 | 5:02:21 |
|
||||||
|
| Developer tools not longer working? | https://github.com/zen-browser/desktop/issues/8132 | 0:37:16 | 1:48:35 |
|
||||||
|
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/8131 | 0:21:09 | 8:18:43 |
|
||||||
|
| Option + Letter Shows Special Characters in Keyboard Shortcuts | https://github.com/zen-browser/desktop/issues/8130 | 8 days, 4:21:07 | None |
|
||||||
|
| Video Call (huddle) in Slack does not work | https://github.com/zen-browser/desktop/issues/8129 | None | None |
|
||||||
|
| Essential and Pinned tabs do not appear or get removed from existing windows | https://github.com/zen-browser/desktop/issues/8127 | 0:37:58 | 0:37:58 |
|
||||||
|
| Sidebar glitch | https://github.com/zen-browser/desktop/issues/8126 | None | 0:02:38 |
|
||||||
|
| No mods have worked since the update | https://github.com/zen-browser/desktop/issues/8125 | 5 days, 5:50:38 | None |
|
||||||
|
| [Twilight 1.12.2] Adding tab to essentials will automatically open that tab in the first workspace | https://github.com/zen-browser/desktop/issues/8123 | None | 1:53:34 |
|
||||||
|
| Unable to open Google/X/Youtube while using VPN | https://github.com/zen-browser/desktop/issues/8121 | 9:23:59 | None |
|
||||||
|
| Zen URL bar not working with Firefox Multi-Account Containers | https://github.com/zen-browser/desktop/issues/8120 | None | None |
|
||||||
|
| Duplicate Workspace Button | https://github.com/zen-browser/desktop/issues/8119 | 23:56:36 | 23:56:36 |
|
||||||
|
| Renamed Tabs Name keep ressetting at random | https://github.com/zen-browser/desktop/issues/8118 | 9:29:18 | 9:29:18 |
|
||||||
|
| Audio Indicator Missing on Inactive Tabs with Minimized Toolbar | https://github.com/zen-browser/desktop/issues/8115 | 2:57:00 | 6:18:33 |
|
||||||
|
| Zen crashes on reopen after closing last tab with `browser.tabs.closeWindowWithLastTab` enabled | https://github.com/zen-browser/desktop/issues/8114 | 2 days, 18:09:03 | 2 days, 21:48:46 |
|
||||||
|
| Local/lan links not opening | https://github.com/zen-browser/desktop/issues/8113 | None | 8 days, 8:42:53 |
|
||||||
|
| Some extensions doesn't pin, and others brake the UI | https://github.com/zen-browser/desktop/issues/8111 | 0:53:20 | None |
|
||||||
|
| Can't close split view | https://github.com/zen-browser/desktop/issues/8110 | 1:03:35 | 1:03:35 |
|
||||||
|
| Closing a tab opened from an essential tab gives blank page | https://github.com/zen-browser/desktop/issues/8107 | 6:06:03 | 2:08:05 |
|
||||||
|
| Cannot reset Jira page added to Essentials | https://github.com/zen-browser/desktop/issues/8106 | None | 2:38:16 |
|
||||||
|
| Custom Color Gradient creates MULTIPLE instances of the same color | https://github.com/zen-browser/desktop/issues/8105 | 13 days, 15:14:54 | None |
|
||||||
|
| Customize toolbar disturbed with system theme | https://github.com/zen-browser/desktop/issues/8104 | None | 2:06:43 |
|
||||||
|
| The vertical TAB bar does not respond to touch input | https://github.com/zen-browser/desktop/issues/8103 | 1 day, 6:09:41 | None |
|
||||||
|
| New tabs appear above pinned tabs | https://github.com/zen-browser/desktop/issues/8101 | 1:16:57 | 6:31:23 |
|
||||||
|
| Could not open any page | https://github.com/zen-browser/desktop/issues/8100 | 2:07:41 | None |
|
||||||
|
| Reload and Cmd+W for Essentials are not working. | https://github.com/zen-browser/desktop/issues/8099 | None | 7:51:14 |
|
||||||
|
| Two kinds of workspace indicators instead of one | https://github.com/zen-browser/desktop/issues/8098 | 3:21:10 | 3:21:10 |
|
||||||
|
| [Twilight 1.12.2] Switching tab to workspace retains a duplicate of the tab in the current workspace | https://github.com/zen-browser/desktop/issues/8095 | None | 2:24:21 |
|
||||||
|
| Browser with a lighter/darker tint when using Auto Theme in comparison to Light/Dark mode only since 1.12b | https://github.com/zen-browser/desktop/issues/8094 | None | 2:25:47 |
|
||||||
|
| [Twilight 1.12.2] Ctrl + k (search with google bar) is placed too low on screen | https://github.com/zen-browser/desktop/issues/8093 | 2:02:16 | 2:34:36 |
|
||||||
|
| [Twilight 1.12.2] Pressing CTRL causes strange behaviour in newtab panel for switch to tab indicator | https://github.com/zen-browser/desktop/issues/8092 | 4:15:13 | 4:15:21 |
|
||||||
|
| crash korean in private mode | https://github.com/zen-browser/desktop/issues/8091 | None | 12 days, 3:00:44 |
|
||||||
|
| toolbar doesnt pop up when opening tabs with middle mouse click | https://github.com/zen-browser/desktop/issues/8090 | 0:39:11 | None |
|
||||||
|
| Dragging tab bugs out when the sidebar is scrollable | https://github.com/zen-browser/desktop/issues/8089 | 13 days, 14:40:15 | 13 days, 20:40:31 |
|
||||||
|
| Essentials: Emulation mode breaks tab | https://github.com/zen-browser/desktop/issues/8088 | 22 days, 0:16:44 | None |
|
||||||
|
| The "Hide the default container indicator in the tab bar" button no longer hides "Default Workspace" | https://github.com/zen-browser/desktop/issues/8087 | 0:12:24 | 14:56:38 |
|
||||||
|
| scrollbars styling with scrollbar-width: thin; leads to unusable scrollbar | https://github.com/zen-browser/desktop/issues/8086 | None | None |
|
||||||
|
| Zen has become unberably laggy | https://github.com/zen-browser/desktop/issues/8081 | 1:29:54 | None |
|
||||||
|
| Select words in URL bar selects full URL not selected word | https://github.com/zen-browser/desktop/issues/8080 | 0:45:24 | 1 day, 13:57:39 |
|
||||||
|
| Hidden Sidebar in Compact Mode Styling Broken after 1.12b update | https://github.com/zen-browser/desktop/issues/8079 | 0:05:13 | 0:15:01 |
|
||||||
|
| Youtube description not opening when clicking on more | https://github.com/zen-browser/desktop/issues/8078 | 4 days, 1:31:56 | 4 days, 2:56:14 |
|
||||||
|
| Unable to access my company's local websites – HTTPS Error with HSTS and No Bypass Option | https://github.com/zen-browser/desktop/issues/8077 | None | 19:34:22 |
|
||||||
|
| Ctrl+Tab missing unloaded tabs | https://github.com/zen-browser/desktop/issues/8076 | 1:38:20 | 3:22:45 |
|
||||||
|
| When Account Button is opened in a collapsed Sibebar, Most Text Doesn't appear (Profile Name, Account Settings options, etc...) | https://github.com/zen-browser/desktop/issues/8075 | None | None |
|
||||||
|
| Find in page. | https://github.com/zen-browser/desktop/issues/8074 | 4:37:54 | 4:37:54 |
|
||||||
|
| Visual glitch / artifact when scrolling past video. | https://github.com/zen-browser/desktop/issues/8073 | 22 days, 7:35:17 | None |
|
||||||
|
| Primary Colour resets after opening every time when System theme - auto is selected | https://github.com/zen-browser/desktop/issues/8072 | 8:42:39 | 8:42:39 |
|
||||||
|
| 'Customize Toolbar' menu transparent when title bar is switched off | https://github.com/zen-browser/desktop/issues/8070 | 12:00:44 | 11 days, 3:51:56 |
|
||||||
|
| Can't turn off workspaces | https://github.com/zen-browser/desktop/issues/8069 | 0:08:06 | 0:08:06 |
|
||||||
|
| URL bar loses focus after clearing text | https://github.com/zen-browser/desktop/issues/8068 | 0:47:48 | 0:47:48 |
|
||||||
|
| Developer tools shortcut not working anymore | https://github.com/zen-browser/desktop/issues/8067 | 0:32:03 | 0:32:03 |
|
||||||
|
| Collapsed Sidebar too small | https://github.com/zen-browser/desktop/issues/8066 | 0:01:19 | 0:01:19 |
|
||||||
|
| Bookmark editor closes immediately if window is at the edge of a display (macOS) | https://github.com/zen-browser/desktop/issues/8065 | 1:40:38 | None |
|
||||||
|
| DRM Proxy Error on Kinopoisk | https://github.com/zen-browser/desktop/issues/8063 | 2:17:49 | 2:25:55 |
|
||||||
|
| Cannot hide Workspace indicator: v1.12.1b | https://github.com/zen-browser/desktop/issues/8062 | 4:47:32 | 4:47:32 |
|
||||||
|
| Search bar double click editing broken when shortcut suggestions are disabled | https://github.com/zen-browser/desktop/issues/8060 | None | 4:09:56 |
|
||||||
|
| Toolbar's New Tab button stops working when removed and re-added | https://github.com/zen-browser/desktop/issues/8059 | 7:20:37 | None |
|
||||||
|
| Essential Tabs not visible | https://github.com/zen-browser/desktop/issues/8057 | 7:46:00 | 7:54:47 |
|
||||||
|
| Deleting the last workspace makes the browser unusable | https://github.com/zen-browser/desktop/issues/8056 | 2:40:09 | 13:11:09 |
|
||||||
|
| Pinned Tab preview new login? | https://github.com/zen-browser/desktop/issues/8055 | None | None |
|
||||||
|
| Compact mode Visual bug | https://github.com/zen-browser/desktop/issues/8053 | 0:08:48 | 0:21:52 |
|
||||||
|
| Ctrl+Left Click with Firefox Containeres don't open a new tab on the container anymore | https://github.com/zen-browser/desktop/issues/8052 | 16:39:47 | None |
|
||||||
|
| YouTube videos are having frame drops when using Wayland in Fedora 42. No frame drops in Librewolf. | https://github.com/zen-browser/desktop/issues/8051 | 3:57:37 | None |
|
||||||
|
| I have already downloaded the Zen Mod, but I can't see the mods I downloaded in the settings. | https://github.com/zen-browser/desktop/issues/8049 | 6 days, 7:12:05 | 7 days, 1:59:01 |
|
||||||
|
| Not working form on page: bohemiahokej.cz | https://github.com/zen-browser/desktop/issues/8048 | 1:42:11 | 1:42:11 |
|
||||||
|
| Can't revert/remove custom sidebar color with `zen.theme.gradient.show-custom-colors` enabled | https://github.com/zen-browser/desktop/issues/8047 | 0:12:06 | 0:12:06 |
|
||||||
|
| Compact mode causes the Windows taskbar to not appear. | https://github.com/zen-browser/desktop/issues/8046 | 0:33:43 | None |
|
||||||
|
| Selects whole url after selecting only fragment | https://github.com/zen-browser/desktop/issues/8045 | None | 0:38:26 |
|
||||||
|
| When URL is changed while URL bar is floating, only the domain is shown | https://github.com/zen-browser/desktop/issues/8042 | 23 days, 8:40:24 | 24 days, 8:18:57 |
|
||||||
|
| Nvidia RTX video super resolution doesn't work in Zen unless in PiP Fullscreen | https://github.com/zen-browser/desktop/issues/8041 | 17:38:25 | None |
|
||||||
|
| Super Resolution doesn't work | https://github.com/zen-browser/desktop/issues/8040 | 5:58:49 | 5:58:49 |
|
||||||
|
| Unable to Load Essentials Tab Content | https://github.com/zen-browser/desktop/issues/8039 | 4:33:58 | 1 day, 7:53:50 |
|
||||||
|
| Critical workflow issue with multilingual users: When emptying the URL bar in 'new tab mode', the browser should not lose focus on the URL bar by default. | https://github.com/zen-browser/desktop/issues/8038 | 22:34:12 | 23:41:42 |
|
||||||
|
| PDFs load slowly | https://github.com/zen-browser/desktop/issues/8037 | 6:45:05 | None |
|
||||||
|
| Sidebar appears narrower than it should, showing only part of the icons within | https://github.com/zen-browser/desktop/issues/8036 | 1:40:47 | 3:16:56 |
|
||||||
|
| YouTube speed-up shortcut (Maj+;) doesn't work | https://github.com/zen-browser/desktop/issues/8035 | 8:02:43 | 8:02:44 |
|
||||||
|
| Conflict between "container-specific essentials" and "enbale container tabs" | https://github.com/zen-browser/desktop/issues/8034 | None | 0:02:34 |
|
||||||
|
| Sidebar and Layout "Collapsed Toolbar" looks weird after new update (icon does not fit/clip thru the frame) | https://github.com/zen-browser/desktop/issues/8033 | None | 4:32:52 |
|
||||||
|
| Cannot scroll through the sidebar to see all of my tabs (in private mode only) | https://github.com/zen-browser/desktop/issues/8032 | 1 day, 3:36:41 | 4 days, 20:23:05 |
|
||||||
|
| Missing Tab Layout Icon After Recent Update | https://github.com/zen-browser/desktop/issues/8030 | 10:23:25 | 1 day, 0:17:56 |
|
||||||
|
| Update failed and not resolved even after redownloadig and reinstalling from website. | https://github.com/zen-browser/desktop/issues/8029 | 0:16:48 | None |
|
||||||
|
| Tab Group disbanding when moved | https://github.com/zen-browser/desktop/issues/8028 | 10:58:02 | 10:58:02 |
|
||||||
|
| Zen offers to update to 1.12.1b but fails because "1.12.1b" is not listed in releases. | https://github.com/zen-browser/desktop/issues/8027 | None | 0:04:20 |
|
||||||
|
| Missing `:empty` pseudo-element state on extension icon's badge | https://github.com/zen-browser/desktop/issues/8025 | None | None |
|
||||||
|
| [1.12b] Pinned tabs and essentials still used old audio indicator | https://github.com/zen-browser/desktop/issues/8023 | 15:43:19 | 15:43:19 |
|
||||||
|
| Zen Won't Update | https://github.com/zen-browser/desktop/issues/8022 | 0:10:55 | 14:31:46 |
|
||||||
|
| Tabs in a Firefox container can not be put into essentials. | https://github.com/zen-browser/desktop/issues/8019 | 0:09:31 | 14:15:02 |
|
||||||
|
| Opened tab jumps up and down when switching workspaces | https://github.com/zen-browser/desktop/issues/8018 | 21:08:38 | 1 day, 15:03:56 |
|
||||||
|
| Can't disable acrylic - mica not available | https://github.com/zen-browser/desktop/issues/8015 | 21:36:33 | 21:36:33 |
|
||||||
|
| [1.12b] Mica context menus sometimes utilizes windows wallpaper instead of browser window | https://github.com/zen-browser/desktop/issues/8014 | 15:09:55 | 2 days, 4:03:37 |
|
||||||
|
| Binding parentheses to switch workspaces does not function properly | https://github.com/zen-browser/desktop/issues/8013 | 24 days, 1:02:10 | None |
|
||||||
|
| Update 1.12b broke auto-hide sidebar formatting | https://github.com/zen-browser/desktop/issues/8012 | 0:01:53 | 0:17:30 |
|
||||||
|
| Vertical Tab bar is smaller in width compared to previous versions, causing tab icons to get cut off. | https://github.com/zen-browser/desktop/issues/8011 | 0:03:09 | 4:00:48 |
|
||||||
|
| [Linux][1.12b] DRM Broken | https://github.com/zen-browser/desktop/issues/8010 | 0:16:39 | 1:38:19 |
|
||||||
|
| I could not open side bar | https://github.com/zen-browser/desktop/issues/8009 | 0:25:19 | 16:55:20 |
|
||||||
|
| 我在商店下载了Zen Mod,但是在设置中加载不出来 | https://github.com/zen-browser/desktop/issues/8006 | 9:33:02 | 23:19:18 |
|
||||||
|
| Mute/Unmute icon on | https://github.com/zen-browser/desktop/issues/8005 | 1 day, 1:31:01 | 17 days, 14:53:41 |
|
||||||
|
| Zen Browser has never been able to access Google, Chrome and FireFox does. | https://github.com/zen-browser/desktop/issues/8004 | 1 day, 1:32:04 | None |
|
||||||
|
| Url bar overflow | https://github.com/zen-browser/desktop/issues/8003 | 0:15:34 | None |
|
||||||
|
| window controls on right do not pop out with sidebar | https://github.com/zen-browser/desktop/issues/8002 | 21:56:50 | 1 day, 0:14:59 |
|
||||||
|
| Alignment issue in compact mode with hidden sidebar | https://github.com/zen-browser/desktop/issues/8000 | 0:02:32 | 4:26:16 |
|
||||||
|
| All my tabs except essenitials cannot be seen or clicked however they still open and work as per normal | https://github.com/zen-browser/desktop/issues/7999 | None | 0:07:12 |
|
||||||
|
| Bring back the old profiles switcher | https://github.com/zen-browser/desktop/issues/7998 | 0:12:46 | 1 day, 21:49:18 |
|
||||||
|
| macOS keyboard shortcut `option+cmd+e` opens `Network tab` of Developer tools instead of switching workspace | https://github.com/zen-browser/desktop/issues/7996 | 1 day, 5:12:44 | 1 day, 5:12:44 |
|
||||||
|
| when typing in the URL bar, the selected results don't show up well | https://github.com/zen-browser/desktop/issues/7995 | 7:58:12 | 1 day, 23:28:05 |
|
||||||
|
| URL doesnt always float even after choosing this option | https://github.com/zen-browser/desktop/issues/7993 | None | 3:05:24 |
|
||||||
|
| [Twilight 1.12] Compact mode sidebar jittering still occurs when newtab panel is opened | https://github.com/zen-browser/desktop/issues/7990 | None | 6:15:39 |
|
||||||
|
| [Twilight 1.12] Compact mode isn't disabled in newtab pannel if the user is hovering on the sidebar berforehand and sidebar jittering occurs | https://github.com/zen-browser/desktop/issues/7988 | None | 0:14:31 |
|
||||||
|
| Favicon Missing in Essentials on Launch | https://github.com/zen-browser/desktop/issues/7987 | 7:50:38 | 4 days, 12:35:25 |
|
||||||
|
| Closing a tab sometimes causes a popping sound | https://github.com/zen-browser/desktop/issues/7986 | None | None |
|
||||||
|
| File Drag and Drop Between Tabs Not Working | https://github.com/zen-browser/desktop/issues/7985 | 11:13:41 | None |
|
||||||
|
| Auto PiP doesn't work (Windows) | https://github.com/zen-browser/desktop/issues/7984 | 0:14:53 | 0:22:59 |
|
||||||
|
| Some websites don't load | https://github.com/zen-browser/desktop/issues/7983 | 1 day, 23:32:20 | 3 days, 0:32:47 |
|
||||||
|
| Annoying notifs and pop-up windows | https://github.com/zen-browser/desktop/issues/7982 | None | 3:58:00 |
|
||||||
|
| Single-Key keyboard shortcuts are taking precedence over input fields | https://github.com/zen-browser/desktop/issues/7980 | 2 days, 1:30:27 | None |
|
||||||
|
| The “Undo tab close” shortcut doesn't seem to work | https://github.com/zen-browser/desktop/issues/7979 | 2 days, 1:41:19 | 4 days, 2:55:52 |
|
||||||
|
| Window controls overlapping over URL Bar UI & extensions icon | https://github.com/zen-browser/desktop/issues/7978 | 25 days, 4:18:00 | None |
|
||||||
|
| Default keyboard shortcuts are overlapping | https://github.com/zen-browser/desktop/issues/7976 | 29 days, 10:30:04 | None |
|
||||||
|
| iCloud Notes show black squares on checklists | https://github.com/zen-browser/desktop/issues/7974 | 6:47:44 | 6:47:47 |
|
||||||
|
| [Twilight 1.12] Compact mode sidebar twitches when hovering | https://github.com/zen-browser/desktop/issues/7973 | 0:30:09 | 12:33:26 |
|
||||||
|
| Essentials disappear when clicking "back to tab" in PIP while in another workspace | https://github.com/zen-browser/desktop/issues/7972 | 2 days, 16:38:14 | 2 days, 16:38:14 |
|
||||||
|
| System sleep/suspend during video playback causes a memory leak | https://github.com/zen-browser/desktop/issues/7970 | None | None |
|
||||||
|
| BitWarden biometrics not working anymore | https://github.com/zen-browser/desktop/issues/7968 | 30 days, 1:15:16 | None |
|
||||||
|
| Appimage does not work on distros that depend on musl instead of glibc | https://github.com/zen-browser/desktop/issues/7967 | 3 days, 19:05:33 | None |
|
||||||
|
| YouTube WebPage not loading | https://github.com/zen-browser/desktop/issues/7966 | None | 2:46:37 |
|
||||||
|
| New Tab Bug - Opens the url of the existing tab even when new url is typed. | https://github.com/zen-browser/desktop/issues/7964 | 3 days, 0:39:48 | None |
|
||||||
|
| PDF rendering issues | https://github.com/zen-browser/desktop/issues/7963 | 0:02:45 | None |
|
||||||
|
| 1Password extension unable to communicate with desktop app, requires password reprompt | https://github.com/zen-browser/desktop/issues/7960 | 0:04:11 | 30 days, 6:03:10 |
|
||||||
|
| Moving a bookmark to another workspace doesn't persist | https://github.com/zen-browser/desktop/issues/7957 | 26 days, 6:50:27 | 26 days, 6:59:41 |
|
||||||
|
| Gradient completely messed up | https://github.com/zen-browser/desktop/issues/7955 | None | 1:01:12 |
|
||||||
|
| URL Bar dosent showing up and fading gradually while typing | https://github.com/zen-browser/desktop/issues/7954 | 26 days, 9:53:46 | None |
|
||||||
|
| URL bar Doesn't Show up on Ctrl+T Despite Behavior set to "Always floating" in Settings | https://github.com/zen-browser/desktop/issues/7953 | 0:37:17 | 7 days, 15:33:13 |
|
||||||
|
| Zen breaking youtube.com | https://github.com/zen-browser/desktop/issues/7952 | 4:30:14 | 4:30:14 |
|
||||||
|
| Zen doesn't open (flatpak) | https://github.com/zen-browser/desktop/issues/7951 | 3 days, 12:35:28 | None |
|
||||||
|
| Compact mode - 1 pixel line on sidebar | https://github.com/zen-browser/desktop/issues/7950 | 1:52:17 | 12:15:36 |
|
||||||
|
| Caching Tab Icon is Too Strict | https://github.com/zen-browser/desktop/issues/7949 | 3 days, 16:10:52 | 3 days, 16:10:52 |
|
||||||
|
|
||||||
|
_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-05-01..2025-05-31`
|
2
l10n
2
l10n
Submodule l10n updated: ebecb32da8...0268dc81cf
12
package-lock.json
generated
12
package-lock.json
generated
@@ -3019,9 +3019,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prebuild-install/node_modules/tar-fs": {
|
"node_modules/prebuild-install/node_modules/tar-fs": {
|
||||||
"version": "2.1.2",
|
"version": "2.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
|
||||||
"integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==",
|
"integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chownr": "^1.1.1",
|
"chownr": "^1.1.1",
|
||||||
@@ -3667,9 +3667,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tar-fs": {
|
"node_modules/tar-fs": {
|
||||||
"version": "3.0.8",
|
"version": "3.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.9.tgz",
|
||||||
"integrity": "sha512-ZoROL70jptorGAlgAYiLoBLItEKw/fUxg9BSYK/dF/GAGYFJOJJJMvjPAKDJraCXFwadD456FCuvLWgfhMsPwg==",
|
"integrity": "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"pump": "^3.0.0",
|
"pump": "^3.0.0",
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("browser.ml.chat.enabled", false);
|
pref("browser.ml.chat.enabled", false);
|
||||||
pref("browser.ml.chat.shortcuts", false);
|
pref("browser.ml.chat.shortcuts", false);
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
|
|
||||||
|
// 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/.
|
||||||
|
|
||||||
// Restore session on startup
|
// Restore session on startup
|
||||||
pref("browser.startup.page", 3);
|
pref("browser.startup.page", 3);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
// Common UI changes
|
// Common UI changes
|
||||||
pref("browser.privatebrowsing.vpnpromourl", "", locked);
|
pref("browser.privatebrowsing.vpnpromourl", "", locked);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
// security: They must enable this themselves, to avoid people downloading malware
|
// security: They must enable this themselves, to avoid people downloading malware
|
||||||
pref('xpinstall.signatures.required', true);
|
pref('xpinstall.signatures.required', true);
|
||||||
|
@@ -1,5 +1,12 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref('zen.welcome-screen.seen', false, sticky);
|
#ifdef MOZILLA_OFFICIAL
|
||||||
|
pref('zen.welcome-screen.seen', false, sticky);
|
||||||
|
#else
|
||||||
|
pref('zen.welcome-screen.seen', true, sticky);
|
||||||
|
#endif
|
||||||
|
|
||||||
pref('zen.tabs.vertical', true);
|
pref('zen.tabs.vertical', true);
|
||||||
pref('zen.tabs.vertical.right-side', false);
|
pref('zen.tabs.vertical.right-side', false);
|
||||||
@@ -8,135 +15,27 @@ pref('zen.tabs.show-newtab-vertical', true);
|
|||||||
|
|
||||||
pref('zen.ctrlTab.show-pending-tabs', false);
|
pref('zen.ctrlTab.show-pending-tabs', false);
|
||||||
|
|
||||||
pref('zen.theme.accent-color', "#ffb787");
|
|
||||||
pref('zen.theme.content-element-separation', 8); // In pixels
|
|
||||||
pref('zen.theme.gradient', true);
|
|
||||||
pref('zen.theme.gradient.show-custom-colors', false);
|
|
||||||
pref('zen.theme.essentials-favicon-bg', true);
|
|
||||||
|
|
||||||
pref('zen.view.show-newtab-button-border-top', false);
|
|
||||||
pref('zen.view.show-newtab-button-top', true);
|
|
||||||
|
|
||||||
pref('zen.mediacontrols.enabled', true);
|
pref('zen.mediacontrols.enabled', true);
|
||||||
|
|
||||||
// Exposure:
|
|
||||||
pref('zen.haptic-feedback.enabled', true);
|
pref('zen.haptic-feedback.enabled', true);
|
||||||
|
|
||||||
pref('zen.mods.auto-update-days', 20); // In days
|
#include features/mods.inc
|
||||||
|
#include features/theme.inc
|
||||||
|
#include features/compact-mode.inc
|
||||||
|
#include features/urlbar.inc
|
||||||
|
#include features/glance.inc
|
||||||
|
#include features/view.inc
|
||||||
|
#include features/downloads.inc
|
||||||
|
#include features/workspaces.inc
|
||||||
|
#include features/split-view.inc
|
||||||
|
#include features/kbs.inc
|
||||||
|
|
||||||
|
// Section: Watermark
|
||||||
#ifdef MOZILLA_OFFICIAL
|
#ifdef MOZILLA_OFFICIAL
|
||||||
pref('zen.mods.auto-update', true);
|
pref('zen.watermark.enabled', true, sticky);
|
||||||
pref('zen.rice.api.url', 'https://share.zen-browser.app', locked);
|
|
||||||
pref('zen.injections.match-urls', 'https://zen-browser.app/*,https://share.zen-browser.app/*', locked);
|
|
||||||
#else
|
#else
|
||||||
pref('zen.mods.auto-update', false);
|
pref('zen.watermark.enabled', false, sticky);
|
||||||
pref('zen.rice.api.url', "http://localhost", locked);
|
|
||||||
pref('zen.injections.match-urls', 'http://localhost/*', locked);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pref('zen.rice.share.notice.accepted', false);
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
pref('zen.theme.border-radius', 10); // In pixels
|
|
||||||
#else
|
|
||||||
pref('zen.theme.border-radius', 8); // In pixels
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
pref('zen.theme.acrylic-elements', false);
|
|
||||||
#else
|
|
||||||
pref('zen.theme.acrylic-elements', false);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
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', 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);
|
|
||||||
pref('zen.view.compact.color-sidebar', true);
|
|
||||||
pref('zen.view.compact.animate-sidebar', true);
|
|
||||||
pref('zen.view.compact.show-sidebar-and-toolbar-on-hover', true);
|
|
||||||
pref('zen.view.compact.show-background-tab-toast', true);
|
|
||||||
|
|
||||||
pref('zen.urlbar.replace-newtab', true);
|
|
||||||
pref('zen.urlbar.show-protections-icon', false);
|
|
||||||
pref('zen.urlbar.behavior', 'floating-on-type'); // default, floating-on-type, float
|
|
||||||
pref('zen.urlbar.wait-to-clear', 45000); // in ms (default 45s)
|
|
||||||
pref('zen.urlbar.show-domain-only-in-sidebar', true);
|
|
||||||
pref('zen.urlbar.hide-one-offs', true);
|
|
||||||
pref('zen.urlbar.enable-overrides', false);
|
|
||||||
|
|
||||||
// Glance
|
|
||||||
pref('zen.glance.enabled', true);
|
|
||||||
pref('zen.glance.hold-duration', 300); // in ms
|
|
||||||
pref('zen.glance.open-essential-external-links', true);
|
|
||||||
pref('zen.glance.activation-method', 'alt'); // ctrl, alt, shift, none, hold
|
|
||||||
|
|
||||||
pref('zen.view.sidebar-height-throttle', 200); // in ms
|
|
||||||
pref('zen.view.sidebar-expanded.max-width', 500);
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
pref('zen.view.mac.show-three-dot-menu', false);
|
|
||||||
pref('zen.widget.mac.mono-window-controls', true);
|
|
||||||
#endif
|
|
||||||
pref('zen.view.use-single-toolbar', true);
|
|
||||||
pref('zen.view.sidebar-expanded', true);
|
|
||||||
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
|
|
||||||
pref('zen.view.experimental-force-window-controls-left', false);
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
|
||||||
pref('zen.view.grey-out-inactive-windows', false);
|
|
||||||
#else
|
|
||||||
pref('zen.view.grey-out-inactive-windows', true);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
pref('zen.view.hide-window-controls', true);
|
|
||||||
pref('zen.view.experimental-no-window-controls', false);
|
|
||||||
|
|
||||||
pref('zen.keyboard.shortcuts.enabled', true);
|
|
||||||
pref('zen.keyboard.shortcuts.version', 0); // Empty string means default shortcuts
|
|
||||||
pref('zen.keyboard.shortcuts.disable-mainkeyset-clear', false); // for debugging
|
|
||||||
|
|
||||||
pref('zen.themes.updated-value-observer', false);
|
|
||||||
|
|
||||||
pref('zen.pinned-tab-manager.debug', false);
|
|
||||||
pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false);
|
|
||||||
pref('zen.pinned-tab-manager.close-shortcut-behavior', 'reset-unload-switch');
|
|
||||||
|
|
||||||
#ifdef MOZILLA_OFFICIAL
|
|
||||||
pref('zen.watermark.enabled', true, sticky);
|
|
||||||
#else
|
|
||||||
pref('zen.watermark.enabled', false, sticky);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Startup flags
|
// Startup flags
|
||||||
pref('zen.startup.smooth-scroll-in-tabs', true);
|
pref('zen.startup.smooth-scroll-in-tabs', true);
|
||||||
|
|
||||||
// Zen Workspaces
|
|
||||||
pref('zen.workspaces.continue-where-left-off', 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);
|
|
||||||
pref('zen.workspaces.swipe-actions', true);
|
|
||||||
pref('zen.workspaces.wrap-around-navigation', true);
|
|
||||||
pref('zen.workspaces.natural-scroll', false);
|
|
||||||
pref('zen.workspaces.scroll-modifier-key','ctrl'); // can be ctrl, alt, shift, or a meta key
|
|
||||||
pref('services.sync.engine.workspaces', false);
|
|
||||||
pref('zen.workspaces.container-specific-essentials-enabled', false);
|
|
||||||
|
|
||||||
#ifdef MOZILLA_OFFICIAL
|
|
||||||
pref('zen.workspaces.debug', false);
|
|
||||||
#else
|
|
||||||
pref('zen.workspaces.debug', true);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Zen Split View
|
|
||||||
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
|
|
||||||
|
14
src/browser/app/profile/features/compact-mode.inc
Normal file
14
src/browser/app/profile/features/compact-mode.inc
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.view.compact.hide-tabbar', true);
|
||||||
|
pref('zen.view.compact.hide-toolbar', false);
|
||||||
|
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);
|
||||||
|
pref('zen.view.compact.color-sidebar', true);
|
||||||
|
pref('zen.view.compact.animate-sidebar', true);
|
||||||
|
pref('zen.view.compact.show-sidebar-and-toolbar-on-hover', true);
|
||||||
|
pref('zen.view.compact.show-background-tab-toast', true);
|
6
src/browser/app/profile/features/downloads.inc
Normal file
6
src/browser/app/profile/features/downloads.inc
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.downloads.download-animation', true);
|
||||||
|
pref('zen.downloads.download-animation-duration', 1000); // ms
|
9
src/browser/app/profile/features/glance.inc
Normal file
9
src/browser/app/profile/features/glance.inc
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.glance.enabled', true);
|
||||||
|
pref('zen.glance.enable-contextmenu-search', true);
|
||||||
|
pref('zen.glance.hold-duration', 300); // in ms
|
||||||
|
pref('zen.glance.open-essential-external-links', true);
|
||||||
|
pref('zen.glance.activation-method', 'alt'); // ctrl, alt, shift, none, hold
|
7
src/browser/app/profile/features/kbs.inc
Normal file
7
src/browser/app/profile/features/kbs.inc
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.keyboard.shortcuts.enabled', true);
|
||||||
|
pref('zen.keyboard.shortcuts.version', 0); // Empty string means default shortcuts
|
||||||
|
pref('zen.keyboard.shortcuts.disable-mainkeyset-clear', false); // for debugging
|
19
src/browser/app/profile/features/mods.inc
Normal file
19
src/browser/app/profile/features/mods.inc
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.mods.updated-value-observer', false);
|
||||||
|
|
||||||
|
pref('zen.mods.auto-update-days', 20); // In days
|
||||||
|
|
||||||
|
#ifdef MOZILLA_OFFICIAL
|
||||||
|
pref('zen.mods.auto-update', true);
|
||||||
|
pref('zen.rice.api.url', 'https://share.zen-browser.app', locked);
|
||||||
|
pref('zen.injections.match-urls', 'https://zen-browser.app/*,https://share.zen-browser.app/*', locked);
|
||||||
|
#else
|
||||||
|
pref('zen.mods.auto-update', false);
|
||||||
|
pref('zen.rice.api.url', "http://localhost", locked);
|
||||||
|
pref('zen.injections.match-urls', 'http://localhost/*', locked);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pref('zen.rice.share.notice.accepted', false);
|
7
src/browser/app/profile/features/split-view.inc
Normal file
7
src/browser/app/profile/features/split-view.inc
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.splitView.enable-tab-drop', true);
|
||||||
|
pref('zen.splitView.min-resize-width', 7);
|
||||||
|
pref('zen.splitView.rearrange-hover-size', 24);
|
22
src/browser/app/profile/features/theme.inc
Normal file
22
src/browser/app/profile/features/theme.inc
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.theme.accent-color', "#ffb787");
|
||||||
|
pref('zen.theme.content-element-separation', 8); // In pixels
|
||||||
|
pref('zen.theme.gradient', true);
|
||||||
|
pref('zen.theme.gradient.show-custom-colors', false);
|
||||||
|
pref('zen.theme.essentials-favicon-bg', true);
|
||||||
|
|
||||||
|
#ifdef XP_MACOSX
|
||||||
|
pref('zen.theme.border-radius', 10); // In pixels
|
||||||
|
#else
|
||||||
|
pref('zen.theme.border-radius', 8); // In pixels
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef XP_MACOSX
|
||||||
|
pref('zen.theme.acrylic-elements', false);
|
||||||
|
#else
|
||||||
|
pref('zen.theme.acrylic-elements', false);
|
||||||
|
#endif
|
||||||
|
|
11
src/browser/app/profile/features/urlbar.inc
Normal file
11
src/browser/app/profile/features/urlbar.inc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.urlbar.replace-newtab', true);
|
||||||
|
pref('zen.urlbar.show-protections-icon', false);
|
||||||
|
pref('zen.urlbar.behavior', 'floating-on-type'); // default, floating-on-type, float
|
||||||
|
pref('zen.urlbar.wait-to-clear', 45000); // in ms (default 45s)
|
||||||
|
pref('zen.urlbar.show-domain-only-in-sidebar', true);
|
||||||
|
pref('zen.urlbar.hide-one-offs', true);
|
||||||
|
pref('zen.urlbar.enable-overrides', false);
|
28
src/browser/app/profile/features/view.inc
Normal file
28
src/browser/app/profile/features/view.inc
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.view.sidebar-height-throttle', 0); // in ms
|
||||||
|
pref('zen.view.sidebar-expanded.max-width', 500);
|
||||||
|
|
||||||
|
#ifdef XP_MACOSX
|
||||||
|
pref('zen.view.mac.show-three-dot-menu', false);
|
||||||
|
pref('zen.widget.mac.mono-window-controls', true);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pref('zen.view.use-single-toolbar', true);
|
||||||
|
pref('zen.view.sidebar-expanded', true);
|
||||||
|
pref('zen.view.sidebar-collapsed.hide-mute-button', true);
|
||||||
|
pref('zen.view.experimental-force-window-controls-left', false);
|
||||||
|
|
||||||
|
#ifdef XP_MACOSX
|
||||||
|
pref('zen.view.grey-out-inactive-windows', false);
|
||||||
|
#else
|
||||||
|
pref('zen.view.grey-out-inactive-windows', true);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
pref('zen.view.hide-window-controls', true);
|
||||||
|
pref('zen.view.experimental-no-window-controls', false);
|
||||||
|
|
||||||
|
pref('zen.view.show-newtab-button-border-top', false);
|
||||||
|
pref('zen.view.show-newtab-button-top', true);
|
25
src/browser/app/profile/features/workspaces.inc
Normal file
25
src/browser/app/profile/features/workspaces.inc
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
pref('zen.workspaces.continue-where-left-off', 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);
|
||||||
|
pref('zen.workspaces.swipe-actions', true);
|
||||||
|
pref('zen.workspaces.wrap-around-navigation', true);
|
||||||
|
pref('zen.workspaces.natural-scroll', false);
|
||||||
|
pref('zen.workspaces.scroll-modifier-key','ctrl'); // can be ctrl, alt, shift, or a meta key
|
||||||
|
pref('services.sync.engine.workspaces', false);
|
||||||
|
pref('zen.workspaces.container-specific-essentials-enabled', false);
|
||||||
|
|
||||||
|
#ifdef MOZILLA_OFFICIAL
|
||||||
|
pref('zen.workspaces.debug', false);
|
||||||
|
#else
|
||||||
|
pref('zen.workspaces.debug', true);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Section: Pinned tabs management
|
||||||
|
pref('zen.pinned-tab-manager.debug', false);
|
||||||
|
pref('zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url', false);
|
||||||
|
pref('zen.pinned-tab-manager.close-shortcut-behavior', 'reset-unload-switch');
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("full-screen-api.transition-duration.enter", "0 0");
|
pref("full-screen-api.transition-duration.enter", "0 0");
|
||||||
pref("full-screen-api.transition-duration.leave", "0 0");
|
pref("full-screen-api.transition-duration.leave", "0 0");
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("widget.gtk.rounded-bottom-corners.enabled", true);
|
pref("widget.gtk.rounded-bottom-corners.enabled", true);
|
||||||
|
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
// Enable transparent background for macos
|
// Enable transparent background for macos
|
||||||
pref('widget.macos.titlebar-blend-mode.behind-window', true);
|
pref('widget.macos.titlebar-blend-mode.behind-window', true);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref('image.jxl.enabled', true, locked);
|
pref('image.jxl.enabled', true, locked);
|
||||||
pref("svg.context-properties.content.enabled", true);
|
pref("svg.context-properties.content.enabled", true);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
||||||
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref('pdfjs.enableHighlightEditor', true);
|
pref('pdfjs.enableHighlightEditor', true);
|
||||||
pref('pdfjs.enableHighlightFloatingButton', true);
|
pref('pdfjs.enableHighlightFloatingButton', true);
|
||||||
|
@@ -1,41 +1,18 @@
|
|||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
// ---- Experimental settings to try make zen faster
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
pref("media.memory_cache_max_size", 1048576);
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
pref("media.cache_readahead_limit", 9000);
|
|
||||||
pref("media.cache_resume_threshold", 3600);
|
|
||||||
pref("media.memory_caches_combined_limit_kb", 2560000);
|
|
||||||
|
|
||||||
pref("image.mem.decode_bytes_at_a_time", 32768);
|
|
||||||
|
|
||||||
// Enable GPU by default
|
|
||||||
pref("gfx.canvas.accelerated", true);
|
|
||||||
pref("media.hardware-video-decoding.enabled", true);
|
|
||||||
pref("layers.gpu-process.enabled", true);
|
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
#ifdef XP_MACOSX
|
||||||
// Pref to control the reponse taken on macOS when the OS is under memory
|
// Pref to control the reponse taken on macOS when the OS is under memory
|
||||||
// pressure. Changes to the pref take effect immediately. Browser restart not
|
// pressure. Changes to the pref take effect immediately. Browser restart not
|
||||||
// required. The pref value is a bitmask:
|
// required. The pref value is a bitmask:
|
||||||
// 0x0: No response (other than recording for telemetry, crash reporting)
|
// 0x0: No response (other than recording for telemetry, crash reporting)
|
||||||
// 0x1: Use the tab unloading feature to reduce memory use. Requires that
|
// 0x1: Use the tab unloading feature to reduce memory use. Requires that
|
||||||
// the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
|
// the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
|
||||||
// unloading to occur.
|
// unloading to occur.
|
||||||
// 0x2: Issue the internal "memory-pressure" notification to reduce memory use
|
// 0x2: Issue the internal "memory-pressure" notification to reduce memory use
|
||||||
// 0x3: Both 0x1 and 0x2.
|
// 0x3: Both 0x1 and 0x2.
|
||||||
pref("browser.lowMemoryResponseMask", 3);
|
pref("browser.lowMemoryResponseMask", 3);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Prefetching:
|
|
||||||
pref("network.dns.disablePrefetch", false);
|
|
||||||
pref("network.prefetch-next", true);
|
|
||||||
pref("network.dns.disablePrefetchFromHTTPS", false);
|
|
||||||
pref("network.predictor.enable-hover-on-ssl", true);
|
pref("network.predictor.enable-hover-on-ssl", true);
|
||||||
pref("network.http.rcwn.enabled", false);
|
|
||||||
|
|
||||||
// Experimental Zen Features
|
|
||||||
// Strategy to use for bytecode cache (Thanks https://github.com/gunir)
|
|
||||||
pref('dom.script_loader.bytecode_cache.strategy', 2);
|
|
||||||
pref("layout.css.grid-template-masonry-value.enabled", true);
|
|
||||||
|
|
||||||
// No Proxy should be default, Use system proxy allows antivirus, virus or system proxy to MITM or slowing down Zen
|
|
||||||
pref("network.proxy.type", 0);
|
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
||||||
// TODO: Enable once we have a proper settings page
|
// TODO: Enable once we have a proper settings page
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("datareporting.policy.dataSubmissionEnabled", false, locked);
|
pref("datareporting.policy.dataSubmissionEnabled", false, locked);
|
||||||
pref("datareporting.healthreport.uploadEnabled", false, locked);
|
pref("datareporting.healthreport.uploadEnabled", false, locked);
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref("apz.overscroll.enabled", true);
|
|
||||||
pref("general.smoothScroll", true);
|
|
||||||
pref("general.smoothScroll.msdPhysics.enabled", true);
|
pref("general.smoothScroll.msdPhysics.enabled", true);
|
||||||
pref("general.smoothScroll.currentVelocityWeighting", "0.15");
|
pref("general.smoothScroll.currentVelocityWeighting", "0.15");
|
||||||
pref("general.smoothScroll.stopDecelerationWeighting", "0.6");
|
pref("general.smoothScroll.stopDecelerationWeighting", "0.6");
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
pref('browser.urlbar.unitConversion.enabled', true);
|
pref('browser.urlbar.unitConversion.enabled', true);
|
||||||
pref('browser.urlbar.trending.featureGate', false);
|
pref('browser.urlbar.trending.featureGate', false);
|
||||||
|
@@ -1,7 +1,8 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
// Mica
|
// Mica
|
||||||
pref("widget.windows.mica", true);
|
pref("widget.windows.mica", true);
|
||||||
pref("widget.windows.mica.popups", true);
|
pref("widget.windows.mica.popups", true);
|
||||||
pref("widget.windows.mica.toplevel-backdrop", 2);
|
pref("widget.windows.mica.toplevel-backdrop", 2);
|
||||||
|
|
||||||
pref("dom.ipc.processPriorityManager.backgroundUsesEcoQoS", false);
|
|
||||||
|
@@ -15,15 +15,15 @@ pref("intl.multilingual.downloadEnabled", false);
|
|||||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||||
|
|
||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
#include windows.inc
|
#include windows.inc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef UNIX_BUT_NOT_MAC
|
#ifdef UNIX_BUT_NOT_MAC
|
||||||
#include linux.inc
|
#include linux.inc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef XP_MACOSX
|
#ifdef XP_MACOSX
|
||||||
#include macos.inc
|
#include macos.inc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include urlbar.inc
|
#include urlbar.inc
|
||||||
@@ -37,7 +37,7 @@ pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
|||||||
#include features.inc
|
#include features.inc
|
||||||
|
|
||||||
#ifndef XP_MACOSX
|
#ifndef XP_MACOSX
|
||||||
#include smoothscroll.inc
|
#include smoothscroll.inc
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include performance.inc
|
#include performance.inc
|
||||||
|
@@ -1,16 +1,8 @@
|
|||||||
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
||||||
index c64980810570fcea84e33fdc2d66ac42a79f4e46..6ef9bf4b88f0a0539d833f662c4dd890fd1fde93 100644
|
index c64980810570fcea84e33fdc2d66ac42a79f4e46..11fe00e84dbac781b3da90abb1251c70bd3b094a 100644
|
||||||
--- a/browser/base/content/aboutDialog.xhtml
|
--- a/browser/base/content/aboutDialog.xhtml
|
||||||
+++ b/browser/base/content/aboutDialog.xhtml
|
+++ b/browser/base/content/aboutDialog.xhtml
|
||||||
@@ -35,6 +35,7 @@
|
@@ -102,10 +102,6 @@
|
||||||
|
|
||||||
<html:link rel="localization" href="branding/brand.ftl"/>
|
|
||||||
<html:link rel="localization" href="browser/aboutDialog.ftl"/>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</linkset>
|
|
||||||
|
|
||||||
<html:div id="aboutDialogContainer">
|
|
||||||
@@ -102,10 +103,6 @@
|
|
||||||
<label id="version" class="update"/>
|
<label id="version" class="update"/>
|
||||||
<label id="releasenotes" is="text-link" hidden="true" data-l10n-id="releaseNotes-link"/>
|
<label id="releasenotes" is="text-link" hidden="true" data-l10n-id="releaseNotes-link"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -21,7 +13,7 @@ index c64980810570fcea84e33fdc2d66ac42a79f4e46..6ef9bf4b88f0a0539d833f662c4dd890
|
|||||||
</vbox>
|
</vbox>
|
||||||
#endif
|
#endif
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -125,21 +122,17 @@
|
@@ -125,21 +121,17 @@
|
||||||
</description>
|
</description>
|
||||||
</vbox>
|
</vbox>
|
||||||
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/browser/base/content/aboutRestartRequired.xhtml b/browser/base/content/aboutRestartRequired.xhtml
|
|
||||||
index c1f42b4ddd3b154a8643fc5265c556904805bdff..9722e7de76b02077addfeda90a9acd8b921a9cd6 100644
|
|
||||||
--- a/browser/base/content/aboutRestartRequired.xhtml
|
|
||||||
+++ b/browser/base/content/aboutRestartRequired.xhtml
|
|
||||||
@@ -29,6 +29,7 @@
|
|
||||||
/>
|
|
||||||
<link rel="localization" href="branding/brand.ftl" />
|
|
||||||
<link rel="localization" href="browser/aboutRestartRequired.ftl" />
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<!-- PAGE CONTAINER (for styling purposes only) -->
|
|
@@ -1,21 +1,20 @@
|
|||||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||||
index 3d5173315812589c0b79beec5f0419fc37cb8868..c4216db9e414fbbaead6ecd89b40366b0d8a50c1 100644
|
index bcbfab4a3781ff3c7349115751b3830976eec4bf..b1b774e0d335ed3c5ca565a45cd624c7ea2718af 100644
|
||||||
--- a/browser/base/content/browser-init.js
|
--- a/browser/base/content/browser-init.js
|
||||||
+++ b/browser/base/content/browser-init.js
|
+++ b/browser/base/content/browser-init.js
|
||||||
@@ -175,6 +175,8 @@ var gBrowserInit = {
|
@@ -186,6 +186,7 @@ var gBrowserInit = {
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoad() {
|
onLoad() {
|
||||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", window);
|
|
||||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||||
gBrowser.addEventListener("DOMUpdateBlockedPopups", e =>
|
gBrowser.addEventListener("DOMUpdateBlockedPopups", e =>
|
||||||
PopupBlockerObserver.handleEvent(e)
|
PopupBlockerObserver.handleEvent(e)
|
||||||
);
|
);
|
||||||
@@ -310,6 +312,7 @@ var gBrowserInit = {
|
@@ -344,6 +345,7 @@ var gBrowserInit = {
|
||||||
TelemetryTimestamps.add("delayedStartupStarted");
|
|
||||||
|
|
||||||
this._cancelDelayedStartup();
|
this._handleURIToLoad();
|
||||||
+ gZenWorkspaces.afterLoadInit();
|
|
||||||
|
|
||||||
gBrowser.addEventListener(
|
+ gZenWorkspaces.selectStartPage();
|
||||||
"PermissionStateChange",
|
Services.obs.addObserver(gIdentityHandler, "perm-changed");
|
||||||
|
Services.obs.addObserver(gRemoteControl, "devtools-socket");
|
||||||
|
Services.obs.addObserver(gRemoteControl, "marionette-listening");
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||||
index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..5059293ebfa29d646455b7a3505bd6eae408ba64 100644
|
index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..dfacd5c40ef14319fe7398452c007f167003a583 100644
|
||||||
--- a/browser/base/content/browser.js
|
--- a/browser/base/content/browser.js
|
||||||
+++ b/browser/base/content/browser.js
|
+++ b/browser/base/content/browser.js
|
||||||
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||||
@@ -39,3 +39,13 @@ index 6d664917a5a3bb1cea8a747e42e8bc0065ec999e..5059293ebfa29d646455b7a3505bd6ea
|
|||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -5717,6 +5722,9 @@ var ConfirmationHint = {
|
||||||
|
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
|
||||||
|
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
|
||||||
|
document.l10n.setAttributes(this._message, messageId, options.l10nArgs);
|
||||||
|
+ if (window.gZenUIManager?.showToast) {
|
||||||
|
+ return window.gZenUIManager.showToast(messageId, options);
|
||||||
|
+ }
|
||||||
|
if (options.descriptionId) {
|
||||||
|
document.l10n.setAttributes(this._description, options.descriptionId);
|
||||||
|
this._description.hidden = false;
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||||
index 8f8c5536cb6e54300897180ca3f950974c60e930..79305485631f14712d8b2674f477b641ec53fcd6 100644
|
index 8f8c5536cb6e54300897180ca3f950974c60e930..78076e29faf749b83d6c8e099af6767621f34d58 100644
|
||||||
--- a/browser/base/content/browser.xhtml
|
--- a/browser/base/content/browser.xhtml
|
||||||
+++ b/browser/base/content/browser.xhtml
|
+++ b/browser/base/content/browser.xhtml
|
||||||
@@ -26,6 +26,7 @@
|
@@ -26,6 +26,7 @@
|
||||||
@@ -10,23 +10,22 @@ index 8f8c5536cb6e54300897180ca3f950974c60e930..79305485631f14712d8b2674f477b641
|
|||||||
persist="screenX screenY width height sizemode"
|
persist="screenX screenY width height sizemode"
|
||||||
data-l10n-sync="true">
|
data-l10n-sync="true">
|
||||||
<head>
|
<head>
|
||||||
@@ -105,8 +106,11 @@
|
@@ -105,8 +106,10 @@
|
||||||
|
|
||||||
<title data-l10n-id="browser-main-window-default-title"></title>
|
<title data-l10n-id="browser-main-window-default-title"></title>
|
||||||
|
|
||||||
+#include zen-preloaded.inc.xhtml
|
+#include zen-preloaded.inc.xhtml
|
||||||
+
|
|
||||||
<script src="chrome://browser/content/global-scripts.js"></script>
|
<script src="chrome://browser/content/global-scripts.js"></script>
|
||||||
<script src="chrome://browser/content/browser-main.js"></script>
|
<script src="chrome://browser/content/browser-main.js"></script>
|
||||||
+#include zen-assets.inc.xhtml
|
+#include zen-assets.inc.xhtml
|
||||||
</head>
|
</head>
|
||||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||||
@@ -128,9 +132,11 @@
|
@@ -128,9 +131,11 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
+<hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
+<hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode" class="browser-toolbox-background">
|
||||||
#include navigator-toolbox.inc.xhtml
|
#include navigator-toolbox.inc.xhtml
|
||||||
|
|
||||||
#include browser-box.inc.xhtml
|
#include browser-box.inc.xhtml
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..cc61d5a845b5ce22a61f5a1aab8b280b2bcdf101 100644
|
index 30e7b9b2ac63db6ccd2727a9341081cecefc25cb..ceff29d10a32fe9e5296340c8c56a2fdbf321c31 100644
|
||||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
@@ -2,7 +2,7 @@
|
@@ -2,7 +2,7 @@
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
#include zen-locales.inc.xhtml
|
#include zen-locales.inc.xhtml
|
||||||
|
|
||||||
# Styles used all over the browser
|
# Styles used all over the browser
|
||||||
@@ -28,16 +32,28 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-download-box-animation.css" />
|
<link rel="stylesheet" type="text/css" href="chrome://browser/content/zen-styles/zen-download-box-animation.css" />
|
||||||
</linkset>
|
</linkset>
|
||||||
|
|
||||||
|
# Startup "preloaded" scripts that requre globals such as gBrowser and gURLBar
|
||||||
|
# JS files which are needed by browser.xhtml but no other top level windows to
|
||||||
|
# support MacOS specific features should be loaded directly from browser-main.js
|
||||||
|
# rather than this file.
|
||||||
|
#
|
||||||
|
# If you update this list, you may need to add a mapping within the following
|
||||||
|
# file so that ESLint works correctly:
|
||||||
|
# tools/lint/eslint/eslint-plugin-mozilla/lib/environments/browser-window.js
|
||||||
|
<script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script>
|
||||||
|
|
||||||
# Scripts used all over the browser
|
# Scripts used all over the browser
|
||||||
<script src="chrome://browser/content/ZenUIManager.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/ZenUIManager.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenFolders.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenFolders.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenMods.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenMods.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenGradientGenerator.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenGradientGenerator.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenGlanceManager.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenGlanceManager.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenMediaController.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenMediaController.mjs"></script>
|
||||||
<script src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script>
|
||||||
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script>
|
||||||
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaceCreation.mjs"></script>
|
||||||
|
@@ -1,15 +1,19 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js)
|
content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js)
|
||||||
content/browser/ZenStartup.mjs (../../zen/common/ZenStartup.mjs)
|
content/browser/ZenStartup.mjs (../../zen/common/ZenStartup.mjs)
|
||||||
|
content/browser/ZenPreloadedScripts.js (../../zen/common/ZenPreloadedScripts.js)
|
||||||
content/browser/zen-sets.js (../../zen/common/zen-sets.js)
|
content/browser/zen-sets.js (../../zen/common/zen-sets.js)
|
||||||
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs)
|
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs)
|
||||||
content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.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/ZenCustomizableUI.sys.mjs (../../zen/common/ZenCustomizableUI.sys.mjs)
|
||||||
content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs)
|
content/browser/zen-components/ZenUIMigration.mjs (../../zen/common/ZenUIMigration.mjs)
|
||||||
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs)
|
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs)
|
||||||
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs)
|
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs)
|
||||||
|
content/browser/zen-components/ZenEmojisData.min.mjs (../../zen/common/emojis/ZenEmojisData.min.mjs)
|
||||||
|
content/browser/zen-components/ZenEmojiPicker.mjs (../../zen/common/emojis/ZenEmojiPicker.mjs)
|
||||||
|
|
||||||
content/browser/zen-styles/zen-theme.css (../../zen/common/styles/zen-theme.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-buttons.css (../../zen/common/styles/zen-buttons.css)
|
||||||
@@ -35,11 +39,12 @@
|
|||||||
content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs)
|
content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs)
|
||||||
content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css)
|
content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css)
|
||||||
|
|
||||||
content/browser/zen-components/ZenMods.mjs (../../zen/mods/ZenMods.mjs)
|
content/browser/zen-components/ZenMods.mjs (../../zen/mods/ZenMods.mjs)
|
||||||
|
|
||||||
content/browser/zen-components/ZenWorkspaceIcons.mjs (../../zen/workspaces/ZenWorkspaceIcons.mjs)
|
content/browser/zen-components/ZenWorkspaceIcons.mjs (../../zen/workspaces/ZenWorkspaceIcons.mjs)
|
||||||
content/browser/zen-components/ZenWorkspace.mjs (../../zen/workspaces/ZenWorkspace.mjs)
|
content/browser/zen-components/ZenWorkspace.mjs (../../zen/workspaces/ZenWorkspace.mjs)
|
||||||
content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs)
|
content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs)
|
||||||
|
content/browser/zen-components/ZenWorkspaceCreation.mjs (../../zen/workspaces/ZenWorkspaceCreation.mjs)
|
||||||
content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.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/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs)
|
||||||
content/browser/zen-components/ZenGradientGenerator.mjs (../../zen/workspaces/ZenGradientGenerator.mjs)
|
content/browser/zen-components/ZenGradientGenerator.mjs (../../zen/workspaces/ZenGradientGenerator.mjs)
|
||||||
@@ -80,7 +85,7 @@
|
|||||||
content/browser/zen-images/note-indicator.svg (../../zen/images/note-indicator.svg)
|
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/download.svg (../../zen/images/downloads/download.svg)
|
||||||
content/browser/zen-images/downloads/archive.svg (../../zen/images/downloads/archive.svg)
|
content/browser/zen-images/downloads/archive.svg (../../zen/images/downloads/archive.svg)
|
||||||
|
|
||||||
# Fonts
|
# Fonts
|
||||||
content/browser/zen-fonts/JunicodeVF-Italic.woff2 (../../zen/fonts/JunicodeVF-Italic.woff2)
|
content/browser/zen-fonts/JunicodeVF-Italic.woff2 (../../zen/fonts/JunicodeVF-Italic.woff2)
|
||||||
@@ -91,13 +96,13 @@
|
|||||||
content/browser/zen-vendor/motion.min.mjs (../../zen/vendor/motion.min.mjs)
|
content/browser/zen-vendor/motion.min.mjs (../../zen/vendor/motion.min.mjs)
|
||||||
|
|
||||||
# FavIcons for startup
|
# FavIcons for startup
|
||||||
content/browser/zen-images/favicons/calendar.ico (../../zen/images/favicons/calendar.ico)
|
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/discord.ico (../../zen/images/favicons/discord.ico)
|
||||||
content/browser/zen-images/favicons/figma.ico (../../zen/images/favicons/figma.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/github.ico (../../zen/images/favicons/github.ico)
|
||||||
content/browser/zen-images/favicons/notion.ico (../../zen/images/favicons/notion.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/obsidian.ico (../../zen/images/favicons/obsidian.ico)
|
||||||
content/browser/zen-images/favicons/slack.ico (../../zen/images/favicons/slack.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/reddit.ico (../../zen/images/favicons/reddit.ico)
|
||||||
content/browser/zen-images/favicons/x.ico (../../zen/images/favicons/x.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)
|
content/browser/zen-images/favicons/trello.ico (../../zen/images/favicons/trello.ico)
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
<commandset id="zenCommandSet">
|
<commandset id="zenCommandSet">
|
||||||
<command id="cmd_zenCompactModeToggle" />
|
<command id="cmd_zenCompactModeToggle" />
|
||||||
<command id="cmd_zenCompactModeShowSidebar" />
|
<command id="cmd_zenCompactModeShowSidebar" />
|
||||||
@@ -33,8 +37,14 @@
|
|||||||
<command id="cmd_zenToggleTabsOnRight" />
|
<command id="cmd_zenToggleTabsOnRight" />
|
||||||
|
|
||||||
<command id="cmd_zenReplacePinnedUrlWithCurrent" />
|
<command id="cmd_zenReplacePinnedUrlWithCurrent" />
|
||||||
<command id="cmd_zenAddToEssentials" />
|
<command id="cmd_contextZenAddToEssentials" />
|
||||||
<command id="cmd_zenRemoveFromEssentials" />
|
<command id="cmd_contextZenRemoveFromEssentials" />
|
||||||
|
|
||||||
|
<command id="cmd_zenCtxDeleteWorkspace" />
|
||||||
|
<command id="cmd_zenChangeWorkspaceName" />
|
||||||
|
<command id="cmd_zenChangeWorkspaceIcon" />
|
||||||
|
<command id="cmd_zenReorderWorkspaces" />
|
||||||
|
<command id="cmd_zenOpenWorkspaceCreation" />
|
||||||
|
|
||||||
<command id="cmd_zenPinnedTabReset" />
|
<command id="cmd_zenPinnedTabReset" />
|
||||||
<command id="cmd_zenPinnedTabResetNoTab" />
|
<command id="cmd_zenPinnedTabResetNoTab" />
|
||||||
|
@@ -1,3 +1,6 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
<link rel="localization" href="browser/zen-workspaces.ftl"/>
|
<link rel="localization" href="browser/zen-workspaces.ftl"/>
|
||||||
<link rel="localization" href="browser/zen-split-view.ftl"/>
|
<link rel="localization" href="browser/zen-split-view.ftl"/>
|
||||||
|
11
src/browser/base/content/zen-panels/emojis-picker.inc
Normal file
11
src/browser/base/content/zen-panels/emojis-picker.inc
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
|
<panel type="arrow" orient="vertical" id="PanelUI-zen-emojis-picker" position="bottomright topright" side="bottom">
|
||||||
|
<hbox id="PanelUI-zen-emojis-picker-header">
|
||||||
|
<html:input type="search" id="PanelUI-zen-emojis-picker-search" placeholder="Search emojis" />
|
||||||
|
<toolbarbutton id="PanelUI-zen-emojis-picker-none" class="toolbarbutton-1" />
|
||||||
|
</hbox>
|
||||||
|
<hbox id="PanelUI-zen-emojis-picker-list" />
|
||||||
|
</panel>
|
61
src/browser/base/content/zen-panels/gradient-generator.inc
Normal file
61
src/browser/base/content/zen-panels/gradient-generator.inc
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
|
<panel flip="side" type="arrow" popupalign="center" 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>
|
||||||
|
<hbox id="PanelUI-zen-gradient-generator-predefined">
|
||||||
|
<box data-algo="analogous" data-num-dots="3" data-position="219,99" style="background: linear-gradient(135deg, rgb(117, 255, 136), rgb(60, 66, 58));"></box>
|
||||||
|
<box data-algo="analogous" data-num-dots="3" data-position="167,201" style="background: linear-gradient(135deg, #a03fe0, #382b5c);"></box>
|
||||||
|
<box data-algo="analogous" data-num-dots="3" data-position="90,170" style="background: linear-gradient(135deg, #c57aa3, #af824f);"></box>
|
||||||
|
<box data-algo="splitComplementary" data-num-dots="3" data-position="83,103" style="background: linear-gradient(135deg, #1e90ff, #968a4a);"></box>
|
||||||
|
<box data-algo="analogous" data-num-dots="3" data-position="186,186" style="background: linear-gradient(135deg, #a07a48, #ab80e4);"></box>
|
||||||
|
<box data-algo="float" data-num-dots="1" data-position="196,176" style="background: #7bcbda;"></box>
|
||||||
|
<box data-algo="float" data-num-dots="1" data-position="116,167" style="background: #be9ac9;"></box>
|
||||||
|
<box data-algo="float" data-num-dots="1" data-position="122,110" style="background: #cdcea1;"></box>
|
||||||
|
<box data-algo="float" data-num-dots="1" data-position="181,83" style="background: #6ac593;"></box>
|
||||||
|
<box data-algo="complementary" data-num-dots="2" data-position="82,112" style="background: linear-gradient(135deg, #1e90ff, #cfb179);"></box>
|
||||||
|
</hbox>
|
||||||
|
</hbox>
|
||||||
|
<hbox class="zen-theme-picker-gradient">
|
||||||
|
<box id="PanelUI-zen-gradient-generator-rotation-dot"></box>
|
||||||
|
<box id="PanelUI-zen-gradient-generator-rotation-line"></box>
|
||||||
|
<box id="PanelUI-zen-gradient-generator-color-actions">
|
||||||
|
<button id="PanelUI-zen-gradient-generator-color-add" class="subviewbutton">
|
||||||
|
</button>
|
||||||
|
<button id="PanelUI-zen-gradient-generator-color-remove" class="subviewbutton">
|
||||||
|
</button>
|
||||||
|
<html:div class="separator"></html:div>
|
||||||
|
<button id="PanelUI-zen-gradient-generator-color-toggle-algo" class="subviewbutton" data-l10n-id="zen-panel-ui-gradient-generator-algo-floating">
|
||||||
|
</button>
|
||||||
|
</box>
|
||||||
|
<label data-l10n-id="zen-panel-ui-gradient-click-to-add" id="PanelUI-zen-gradient-generator-color-click-to-add"></label>
|
||||||
|
</hbox>
|
||||||
|
<hbox id="PanelUI-zen-gradient-generator-controls">
|
||||||
|
<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" id="PanelUI-zen-gradient-generator-opacity" />
|
||||||
|
</vbox>
|
||||||
|
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
||||||
|
</vbox>
|
||||||
|
</hbox>
|
||||||
|
</hbox>
|
||||||
|
<vbox id="PanelUI-zen-gradient-generator-custom-colors">
|
||||||
|
<vbox id="zen-theme-picker-color">
|
||||||
|
<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">
|
||||||
|
<image></image>
|
||||||
|
</toolbarbutton>
|
||||||
|
</hbox>
|
||||||
|
</vbox>
|
||||||
|
<vbox id="PanelUI-zen-gradient-generator-custom-list">
|
||||||
|
</vbox>
|
||||||
|
</vbox>
|
||||||
|
</panelview>
|
||||||
|
</panelmultiview>
|
||||||
|
</panel>
|
31
src/browser/base/content/zen-panels/popups.inc
Normal file
31
src/browser/base/content/zen-panels/popups.inc
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
|
<menupopup id="zenCreateNewPopup">
|
||||||
|
<menuitem data-l10n-id="tabs-toolbar-new-tab" command="cmd_newNavigatorTab" image="chrome://browser/skin/zen-icons/plus.svg" />
|
||||||
|
<menuseparator/>
|
||||||
|
<menuitem data-l10n-id="zen-panel-ui-workspaces-create" command="cmd_zenOpenWorkspaceCreation" image="chrome://browser/skin/zen-icons/duplicate-tab.svg" />
|
||||||
|
</menupopup>
|
||||||
|
|
||||||
|
<menupopup id="zenWorkspaceMoreActions">
|
||||||
|
<menuitem id="context_zenEditWorkspace" data-l10n-id="zen-workspaces-panel-change-name" command="cmd_zenChangeWorkspaceName"/>
|
||||||
|
<menuitem id="context_zenEditWorkspaceIcon" data-l10n-id="zen-workspaces-panel-change-icon" command="cmd_zenChangeWorkspaceIcon"/>
|
||||||
|
<menuitem class="zenToolbarThemePicker"
|
||||||
|
id="context_zenChangeWorkspaceTheme"
|
||||||
|
data-l10n-id="zen-workspaces-change-theme"
|
||||||
|
command="cmd_zenOpenZenThemePicker"/>
|
||||||
|
<menu id="context_zenWorkspacesOpenInContainerTab"
|
||||||
|
data-l10n-id="zen-workspaces-panel-context-default-profile"
|
||||||
|
selection-type="single"
|
||||||
|
node-type="link"
|
||||||
|
hide-if-private-browsing="true"
|
||||||
|
hide-if-usercontext-disabled="true">
|
||||||
|
<menupopup />
|
||||||
|
</menu>
|
||||||
|
<menuseparator/>
|
||||||
|
<menuitem id="context_zenReorderWorkspaces" data-l10n-id="zen-workspaces-panel-context-reorder" command="cmd_zenReorderWorkspaces"/>
|
||||||
|
<menuseparator/>
|
||||||
|
<menuitem data-l10n-id="zen-panel-ui-workspaces-create" command="cmd_zenOpenWorkspaceCreation"/>
|
||||||
|
<menuitem id="context_zenDeleteWorkspace" data-l10n-id="zen-workspaces-panel-context-delete" command="cmd_zenCtxDeleteWorkspace"/>
|
||||||
|
</menupopup>
|
@@ -1,131 +1,8 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left">
|
#include zen-panels/gradient-generator.inc
|
||||||
<panelmultiview id="PanelUI-zen-gradient-generator-multiview" mainViewId="PanelUI-zen-gradient-generator-view">
|
#include zen-panels/emojis-picker.inc
|
||||||
<panelview id="PanelUI-zen-gradient-generator-view" class="PanelUI-subView zen-theme-picker" role="document" mainview-with-header="true" has-custom-header="true">
|
|
||||||
<hbox>
|
|
||||||
<hbox id="PanelUI-zen-gradient-generator-predefined">
|
|
||||||
<box data-algo="analogous" data-num-dots="3" data-position="219,99" style="background: linear-gradient(135deg, rgb(117, 255, 136), rgb(60, 66, 58));"></box>
|
|
||||||
<box data-algo="analogous" data-num-dots="3" data-position="167,201" style="background: linear-gradient(135deg, #a03fe0, #382b5c);"></box>
|
|
||||||
<box data-algo="analogous" data-num-dots="3" data-position="90,170" style="background: linear-gradient(135deg, #c57aa3, #af824f);"></box>
|
|
||||||
<box data-algo="splitComplementary" data-num-dots="3" data-position="83,103" style="background: linear-gradient(135deg, #1e90ff, #968a4a);"></box>
|
|
||||||
<box data-algo="analogous" data-num-dots="3" data-position="186,186" style="background: linear-gradient(135deg, #a07a48, #ab80e4);"></box>
|
|
||||||
<box data-algo="float" data-num-dots="1" data-position="196,176" style="background: #7bcbda;"></box>
|
|
||||||
<box data-algo="float" data-num-dots="1" data-position="116,167" style="background: #be9ac9;"></box>
|
|
||||||
<box data-algo="float" data-num-dots="1" data-position="122,110" style="background: #cdcea1;"></box>
|
|
||||||
<box data-algo="float" data-num-dots="1" data-position="181,83" style="background: #6ac593;"></box>
|
|
||||||
<box data-algo="complementary" data-num-dots="2" data-position="82,112" style="background: linear-gradient(135deg, #1e90ff, #cfb179);"></box>
|
|
||||||
</hbox>
|
|
||||||
</hbox>
|
|
||||||
<hbox class="zen-theme-picker-gradient">
|
|
||||||
<box id="PanelUI-zen-gradient-generator-rotation-dot"></box>
|
|
||||||
<box id="PanelUI-zen-gradient-generator-rotation-line"></box>
|
|
||||||
<box id="PanelUI-zen-gradient-generator-color-actions">
|
|
||||||
<button id="PanelUI-zen-gradient-generator-color-add" class="subviewbutton">
|
|
||||||
</button>
|
|
||||||
<button id="PanelUI-zen-gradient-generator-color-remove" class="subviewbutton">
|
|
||||||
</button>
|
|
||||||
<html:div class="separator"></html:div>
|
|
||||||
<button id="PanelUI-zen-gradient-generator-color-toggle-algo" class="subviewbutton" data-l10n-id="zen-panel-ui-gradient-generator-algo-floating">
|
|
||||||
</button>
|
|
||||||
</box>
|
|
||||||
<label data-l10n-id="zen-panel-ui-gradient-click-to-add" id="PanelUI-zen-gradient-generator-color-click-to-add"></label>
|
|
||||||
</hbox>
|
|
||||||
<hbox id="PanelUI-zen-gradient-generator-controls">
|
|
||||||
<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" id="PanelUI-zen-gradient-generator-opacity" />
|
|
||||||
</vbox>
|
|
||||||
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
|
||||||
</vbox>
|
|
||||||
</hbox>
|
|
||||||
</hbox>
|
|
||||||
<vbox id="PanelUI-zen-gradient-generator-custom-colors">
|
|
||||||
<vbox id="zen-theme-picker-color">
|
|
||||||
<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">
|
|
||||||
<image></image>
|
|
||||||
</toolbarbutton>
|
|
||||||
</hbox>
|
|
||||||
</vbox>
|
|
||||||
<vbox id="PanelUI-zen-gradient-generator-custom-list">
|
|
||||||
</vbox>
|
|
||||||
</vbox>
|
|
||||||
</panelview>
|
|
||||||
</panelmultiview>
|
|
||||||
</panel>
|
|
||||||
|
|
||||||
<panel flip="slide" type="arrow" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left">
|
#include zen-panels/popups.inc
|
||||||
<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" class="subviewbutton">
|
|
||||||
<image></image>
|
|
||||||
</toolbarbutton>
|
|
||||||
<toolbarbutton id="PanelUI-zen-workspaces-new" class="subviewbutton">
|
|
||||||
<image></image>
|
|
||||||
</toolbarbutton>
|
|
||||||
</hbox>
|
|
||||||
</vbox>
|
|
||||||
<html:div id="PanelUI-zen-workspaces-list">
|
|
||||||
</html:div>
|
|
||||||
</panelview>
|
|
||||||
<panelview id="PanelUI-zen-workspaces-create" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
|
|
||||||
<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"></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" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
|
|
||||||
</button>
|
|
||||||
<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>
|
|
||||||
<panelview id="PanelUI-zen-workspaces-edit" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
|
|
||||||
<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"></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" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-save">
|
|
||||||
</button>
|
|
||||||
<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"/>
|
|
||||||
</html:div>
|
|
||||||
</vbox>
|
|
||||||
</panelview>
|
|
||||||
</panelmultiview>
|
|
||||||
</panel>
|
|
||||||
|
|
||||||
<menupopup id="zenWorkspaceActionsMenu">
|
|
||||||
<menuitem id="context_zenOpenWorkspace" data-l10n-id="zen-workspaces-panel-context-open"/>
|
|
||||||
<menuseparator/>
|
|
||||||
<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 />
|
|
||||||
</menu>
|
|
||||||
<menuseparator/>
|
|
||||||
<menuitem id="context_zenDeleteWorkspace" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
|
||||||
</menupopup>
|
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
# This needs to be here, before all the other scripts, because it's used before
|
# This needs to be here, before all the other scripts, because it's used before
|
||||||
# the window is fully loaded.
|
# the window is fully loaded.
|
||||||
# Make sure they are loaded before the global-scripts.inc file.
|
# Make sure they are loaded before the global-scripts.inc file.
|
||||||
@@ -10,4 +14,3 @@
|
|||||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
|
||||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenActorsManager.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenActorsManager.mjs"></script>
|
||||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
|
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
|
||||||
|
|
||||||
|
@@ -1,6 +1,11 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
#include ../../../zen/media/zen-media-controls.inc.xhtml
|
#include ../../../zen/media/zen-media-controls.inc.xhtml
|
||||||
|
|
||||||
<toolbar brighttext="true"
|
<toolbar brighttext="true"
|
||||||
id="zen-sidebar-bottom-buttons"
|
id="zen-sidebar-foot-buttons"
|
||||||
fullscreentoolbar="true"
|
fullscreentoolbar="true"
|
||||||
class="browser-toolbar customization-target"
|
class="browser-toolbar customization-target"
|
||||||
data-l10n-id="tabs-toolbar"
|
data-l10n-id="tabs-toolbar"
|
||||||
@@ -10,4 +15,5 @@
|
|||||||
mode="icons">
|
mode="icons">
|
||||||
<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"></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"></toolbarbutton>
|
||||||
<zen-workspace-icons id="zen-workspaces-button" overflows="false" removable="false"></zen-workspace-icons>
|
<zen-workspace-icons id="zen-workspaces-button" overflows="false" removable="false"></zen-workspace-icons>
|
||||||
|
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-create-new-button" context="zenCreateNewPopup" data-l10n-id="sidebar-zen-create-new"></toolbarbutton>
|
||||||
</toolbar>
|
</toolbar>
|
||||||
|
@@ -1,3 +1,7 @@
|
|||||||
|
# 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/.
|
||||||
|
|
||||||
<vbox id="zen-toast-container"></vbox>
|
<vbox id="zen-toast-container"></vbox>
|
||||||
|
|
||||||
#include ../../../zen/split-view/zen-splitview-overlay.inc.xhtml
|
#include ../../../zen/split-view/zen-splitview-overlay.inc.xhtml
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||||
index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2626b7286deb51f66b6ccbbc32d510139cacb109 100644
|
index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2fab7474f1038a7a3cd2f4b4798d59696900cc85 100644
|
||||||
--- a/browser/components/customizableui/content/panelUI.js
|
--- a/browser/components/customizableui/content/panelUI.js
|
||||||
+++ b/browser/components/customizableui/content/panelUI.js
|
+++ b/browser/components/customizableui/content/panelUI.js
|
||||||
@@ -516,8 +516,7 @@ const PanelUI = {
|
@@ -516,8 +516,7 @@ const PanelUI = {
|
||||||
@@ -12,7 +12,20 @@ index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2626b7286deb51f66b6ccbbc32d51013
|
|||||||
.appendChild(tempPanel);
|
.appendChild(tempPanel);
|
||||||
|
|
||||||
let multiView = document.createXULElement("panelmultiview");
|
let multiView = document.createXULElement("panelmultiview");
|
||||||
@@ -959,7 +958,7 @@ const PanelUI = {
|
@@ -608,10 +607,12 @@ const PanelUI = {
|
||||||
|
if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) {
|
||||||
|
this.navbar.setAttribute("nonemptyoverflow", "true");
|
||||||
|
this.overflowPanel.setAttribute("hasfixeditems", "true");
|
||||||
|
+ window.document.getElementById("zen-sidebar-top-buttons").setAttribute("nonemptyoverflow", "true");
|
||||||
|
} else if (!hasKids && this.navbar.hasAttribute("nonemptyoverflow")) {
|
||||||
|
PanelMultiView.hidePopup(this.overflowPanel);
|
||||||
|
this.overflowPanel.removeAttribute("hasfixeditems");
|
||||||
|
this.navbar.removeAttribute("nonemptyoverflow");
|
||||||
|
+ window.document.getElementById("zen-sidebar-top-buttons").removeAttribute("nonemptyoverflow");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -959,7 +960,7 @@ const PanelUI = {
|
||||||
el.removeAttribute("data-lazy-l10n-id");
|
el.removeAttribute("data-lazy-l10n-id");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
- [New Tab Documentation](https://firefox-source-docs.mozilla.org/browser/components/newtab/docs/index.html)
|
- [New Tab Documentation](https://firefox-source-docs.mozilla.org/browser/components/newtab/docs/index.html)
|
||||||
- You also need `meow@9.0.0` (that's the one I tested) because other versions might not work.
|
- You also need `meow@9.0.0` (that's the one I tested) because other versions might not work.
|
||||||
- To bundle the new tab, execute the following:
|
- To bundle the new tab, execute the following command:
|
||||||
|
|
||||||
```
|
```
|
||||||
./mach npm run bundle --prefix=browser/components/newtab
|
./mach npm run bundle --prefix=browser/components/newtab
|
||||||
|
@@ -131,6 +131,11 @@ var gZenMarketplaceManager = {
|
|||||||
return this._modsList;
|
return this._modsList;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_triggerBuildUpdateWithoutRebuild() {
|
||||||
|
this._doNotRebuildModsList = true;
|
||||||
|
gZenMods.triggerModsUpdate();
|
||||||
|
},
|
||||||
|
|
||||||
async removeMod(modId) {
|
async removeMod(modId) {
|
||||||
await gZenMods.removeMod(modId);
|
await gZenMods.removeMod(modId);
|
||||||
|
|
||||||
@@ -140,20 +145,13 @@ var gZenMarketplaceManager = {
|
|||||||
async disableMod(modId) {
|
async disableMod(modId) {
|
||||||
await gZenMods.disableMod(modId);
|
await gZenMods.disableMod(modId);
|
||||||
|
|
||||||
this._doNotRebuildModsList = true;
|
this._triggerBuildUpdateWithoutRebuild();
|
||||||
gZenMods.triggerModsUpdate();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async enableMod(modId) {
|
async enableMod(modId) {
|
||||||
await gZenMods.enableMod(modId);
|
await gZenMods.enableMod(modId);
|
||||||
|
|
||||||
this._doNotRebuildModsList = true;
|
this._triggerBuildUpdateWithoutRebuild();
|
||||||
gZenMods.triggerModsUpdate();
|
|
||||||
},
|
|
||||||
|
|
||||||
_triggerBuildUpdateWithoutRebuild() {
|
|
||||||
this._doNotRebuildModsList = true;
|
|
||||||
gZenMods.triggerModsUpdate();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async _importThemes() {
|
async _importThemes() {
|
||||||
@@ -635,24 +633,9 @@ const kZenExtendedSidebar = 'zen.view.sidebar-expanded';
|
|||||||
const kZenSingleToolbar = 'zen.view.use-single-toolbar';
|
const kZenSingleToolbar = 'zen.view.use-single-toolbar';
|
||||||
|
|
||||||
var gZenLooksAndFeel = {
|
var gZenLooksAndFeel = {
|
||||||
kZenColors: [
|
|
||||||
'#aac7ff',
|
|
||||||
'#74d7cb',
|
|
||||||
'#a0d490',
|
|
||||||
'#dec663',
|
|
||||||
'#ffb787',
|
|
||||||
'#dec1b1',
|
|
||||||
'#ffb1c0',
|
|
||||||
'#ddbfc3',
|
|
||||||
'#f6b0ea',
|
|
||||||
'#d4bbff',
|
|
||||||
],
|
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
if (this.__hasInitialized) return;
|
if (this.__hasInitialized) return;
|
||||||
this.__hasInitialized = true;
|
this.__hasInitialized = true;
|
||||||
this._initializeColorPicker(this._getInitialAccentColor());
|
|
||||||
window.zenPageAccentColorChanged = this._handleAccentColorChange.bind(this);
|
|
||||||
gZenMarketplaceManager.init();
|
gZenMarketplaceManager.init();
|
||||||
for (const pref of [kZenExtendedSidebar, kZenSingleToolbar]) {
|
for (const pref of [kZenExtendedSidebar, kZenSingleToolbar]) {
|
||||||
Services.prefs.addObserver(pref, this);
|
Services.prefs.addObserver(pref, this);
|
||||||
@@ -745,37 +728,6 @@ var gZenLooksAndFeel = {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_initializeColorPicker(accentColor) {
|
|
||||||
let elem = document.getElementById('zenLooksAndFeelColorOptions');
|
|
||||||
elem.innerHTML = '';
|
|
||||||
|
|
||||||
for (let color of this.kZenColors) {
|
|
||||||
let colorElemParen = document.createElement('div');
|
|
||||||
let colorElem = document.createElement('div');
|
|
||||||
colorElemParen.classList.add('zenLooksAndFeelColorOptionParen');
|
|
||||||
colorElem.classList.add('zenLooksAndFeelColorOption');
|
|
||||||
colorElem.style.setProperty('--zen-primary-color', color, 'important');
|
|
||||||
if (accentColor === color) {
|
|
||||||
colorElemParen.setAttribute('selected', 'true');
|
|
||||||
}
|
|
||||||
colorElemParen.addEventListener('click', () => {
|
|
||||||
Services.prefs.setBoolPref('zen.theme.color-prefs.use-workspace-colors', false);
|
|
||||||
Services.prefs.setStringPref('zen.theme.accent-color', color);
|
|
||||||
});
|
|
||||||
colorElemParen.appendChild(colorElem);
|
|
||||||
elem.appendChild(colorElemParen);
|
|
||||||
}
|
|
||||||
// TODO: add custom color selection!
|
|
||||||
},
|
|
||||||
|
|
||||||
_handleAccentColorChange(accentColor) {
|
|
||||||
this._initializeColorPicker(accentColor);
|
|
||||||
},
|
|
||||||
|
|
||||||
_getInitialAccentColor() {
|
|
||||||
return Services.prefs.getStringPref('zen.theme.accent-color', this.kZenColors[0]);
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
var gZenWorkspacesSettings = {
|
var gZenWorkspacesSettings = {
|
||||||
@@ -1046,9 +998,12 @@ var gZenCKSSettings = {
|
|||||||
|
|
||||||
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-not-set`);
|
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-not-set`);
|
||||||
|
|
||||||
// This is because on some OSs (windows/macos mostly) the key is not the same as the keycode
|
// First, try to read the *physical* key via event.code.
|
||||||
// e.g. CTRL+ALT+3 may be displayed as the euro sign
|
// If event.code is like "KeyS", "KeyA", ..., strip off "Key" → "S".
|
||||||
let shortcut = event.key;
|
// Otherwise, fall back to event.key (e.g. "F5", "Enter", etc.).
|
||||||
|
let shortcut;
|
||||||
|
if (event.code && event.code.startsWith('Key')) shortcut = event.code.slice(3);
|
||||||
|
else shortcut = event.key;
|
||||||
|
|
||||||
shortcut = shortcut.replace(/Ctrl|Control|Shift|Alt|Option|Cmd|Meta/, ''); // Remove all modifiers
|
shortcut = shortcut.replace(/Ctrl|Control|Shift|Alt|Option|Cmd|Meta/, ''); // Remove all modifiers
|
||||||
|
|
||||||
@@ -1182,11 +1137,6 @@ Preferences.addAll([
|
|||||||
type: 'bool',
|
type: 'bool',
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: 'zen.theme.color-prefs.use-workspace-colors',
|
|
||||||
type: 'bool',
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: 'zen.view.compact.color-toolbar',
|
id: 'zen.view.compact.color-toolbar',
|
||||||
type: 'bool',
|
type: 'bool',
|
||||||
|
@@ -39,35 +39,9 @@
|
|||||||
data-l10n-id="zen-vertical-tabs-newtab-top-button-up"
|
data-l10n-id="zen-vertical-tabs-newtab-top-button-up"
|
||||||
preference="zen.view.show-newtab-button-top"/>
|
preference="zen.view.show-newtab-button-top"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
</groupbox>
|
<html:div data-l10n-id="preferences-web-appearance-footer">
|
||||||
|
<html:a id="web-appearance-manage-themes-link" class="text-link" data-l10n-name="themes-link" href="about:addons" target="_blank" />
|
||||||
<hbox id="zenLooksCategory"
|
</html:div>
|
||||||
class="subcategory"
|
|
||||||
hidden="true"
|
|
||||||
data-category="paneZenLooks">
|
|
||||||
<html:h1 data-l10n-id="pane-zen-looks-title"/>
|
|
||||||
</hbox>
|
|
||||||
|
|
||||||
<groupbox id="zenLooksAndFeelGroup" data-category="paneZenLooks" hidden="true" class="highlighting-group">
|
|
||||||
<label><html:h2 data-l10n-id="zen-look-and-feel-colors-header"/></label>
|
|
||||||
<description class="description-deemphasized" data-l10n-id="zen-look-and-feel-colors-description" />
|
|
||||||
|
|
||||||
<hbox id="zenLooksAndFeelColorOptions" align="center">
|
|
||||||
</hbox>
|
|
||||||
|
|
||||||
<html:div id="zen-theme-builder-wrapper"></html:div>
|
|
||||||
|
|
||||||
<box class="indent">
|
|
||||||
<checkbox id="zenLooksAndFeelUseWorkspaceColors"
|
|
||||||
data-l10n-id="zen-look-and-feel-use-workspace-colors"
|
|
||||||
preference="zen.theme.color-prefs.use-workspace-colors"/>
|
|
||||||
</box>
|
|
||||||
|
|
||||||
<hbox id="zenLooksAndFeelGradientPickerParent"></hbox>
|
|
||||||
|
|
||||||
<html:div data-l10n-id="preferences-web-appearance-footer">
|
|
||||||
<html:a id="web-appearance-manage-themes-link" class="text-link" data-l10n-name="themes-link" href="about:addons" target="_blank" />
|
|
||||||
</html:div>
|
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<hbox id="zenThemeCategory"
|
<hbox id="zenThemeCategory"
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d634dadd4d 100644
|
index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927c24bdc6d 100644
|
||||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
@@ -2088,7 +2088,6 @@ var SessionStoreInternal = {
|
@@ -2088,7 +2088,6 @@ var SessionStoreInternal = {
|
||||||
@@ -43,7 +43,24 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
|
|
||||||
if (inBackground === false) {
|
if (inBackground === false) {
|
||||||
aWindow.gBrowser.selectedTab = newTab;
|
aWindow.gBrowser.selectedTab = newTab;
|
||||||
@@ -5239,7 +5241,7 @@ var SessionStoreInternal = {
|
@@ -4361,6 +4363,7 @@ var SessionStoreInternal = {
|
||||||
|
// Append the tab if we're opening into a different window,
|
||||||
|
index: aSource == aTargetWindow ? pos : Infinity,
|
||||||
|
pinned: state.pinned,
|
||||||
|
+ essential: state.zenEssential,
|
||||||
|
userContextId: state.userContextId,
|
||||||
|
skipLoad: true,
|
||||||
|
preferredRemoteType,
|
||||||
|
@@ -5179,7 +5182,7 @@ var SessionStoreInternal = {
|
||||||
|
|
||||||
|
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
|
||||||
|
let tab = tabbrowser.tabs[i];
|
||||||
|
- if (homePages.includes(tab.linkedBrowser.currentURI.spec)) {
|
||||||
|
+ if (homePages.includes(tab.linkedBrowser.currentURI.spec) && !tab.hasAttribute("zen-empty-tab")) {
|
||||||
|
removableTabs.push(tab);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -5239,7 +5242,7 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceID = aWindow.getWorkspaceID();
|
let workspaceID = aWindow.getWorkspaceID();
|
||||||
@@ -52,7 +69,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
winData.workspaceID = workspaceID;
|
winData.workspaceID = workspaceID;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -5430,14 +5432,15 @@ var SessionStoreInternal = {
|
@@ -5430,14 +5433,15 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let tabbrowser = aWindow.gBrowser;
|
let tabbrowser = aWindow.gBrowser;
|
||||||
@@ -70,7 +87,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
||||||
@@ -5456,8 +5459,8 @@ var SessionStoreInternal = {
|
@@ -5456,8 +5460,8 @@ var SessionStoreInternal = {
|
||||||
// We don't store the Firefox View tab in Session Store, so if it was the last selected "tab" when
|
// 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,
|
// 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).
|
// since it's only inserted into the tab strip after it's selected).
|
||||||
@@ -81,7 +98,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
winData.title = tabbrowser.tabs[0].label;
|
winData.title = tabbrowser.tabs[0].label;
|
||||||
}
|
}
|
||||||
winData.selected = selectedIndex;
|
winData.selected = selectedIndex;
|
||||||
@@ -5569,8 +5572,8 @@ var SessionStoreInternal = {
|
@@ -5569,8 +5573,8 @@ var SessionStoreInternal = {
|
||||||
// selectTab represents.
|
// selectTab represents.
|
||||||
let selectTab = 0;
|
let selectTab = 0;
|
||||||
if (overwriteTabs) {
|
if (overwriteTabs) {
|
||||||
@@ -92,7 +109,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
selectTab = Math.min(selectTab, winData.tabs.length);
|
selectTab = Math.min(selectTab, winData.tabs.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5613,6 +5616,7 @@ var SessionStoreInternal = {
|
@@ -5613,6 +5617,7 @@ var SessionStoreInternal = {
|
||||||
winData.tabs,
|
winData.tabs,
|
||||||
winData.groups ?? []
|
winData.groups ?? []
|
||||||
);
|
);
|
||||||
@@ -100,7 +117,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..8d0585e738a5a758ebbddfa0787c71d6
|
|||||||
this._log.debug(
|
this._log.debug(
|
||||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||||
);
|
);
|
||||||
@@ -6162,6 +6166,22 @@ var SessionStoreInternal = {
|
@@ -6162,6 +6167,22 @@ var SessionStoreInternal = {
|
||||||
|
|
||||||
// Most of tabData has been restored, now continue with restoring
|
// Most of tabData has been restored, now continue with restoring
|
||||||
// attributes that may trigger external events.
|
// attributes that may trigger external events.
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/browser/components/sessionstore/content/aboutSessionRestore.xhtml b/browser/components/sessionstore/content/aboutSessionRestore.xhtml
|
|
||||||
index 05538be5d95492903e44076dc43e195cbc76c10d..3c2ee6a9d44802657c9e0d5ef6c78e0b3920a9a5 100644
|
|
||||||
--- a/browser/components/sessionstore/content/aboutSessionRestore.xhtml
|
|
||||||
+++ b/browser/components/sessionstore/content/aboutSessionRestore.xhtml
|
|
||||||
@@ -20,6 +20,7 @@
|
|
||||||
<link rel="localization" href="browser/aboutSessionRestore.ftl"/>
|
|
||||||
<link rel="localization" href="branding/brand.ftl"/>
|
|
||||||
<script src="chrome://browser/content/aboutSessionRestore.js"/>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b598a513c2 100644
|
index d5aa64842a35c6697263c63fd3a0571b64b01344..e8f37acf7761adb7bd97cb06dc1df386ffc8ec0b 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
@@ -413,11 +413,41 @@
|
@@ -413,11 +413,41 @@
|
||||||
@@ -9,7 +9,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
+ get _numVisiblePinTabsWithoutCollapsed() {
|
+ get _numVisiblePinTabsWithoutCollapsed() {
|
||||||
+ let i = 0;
|
+ let i = 0;
|
||||||
+ for (let item of this.tabContainer.ariaFocusableItems) {
|
+ for (let item of this.tabContainer.ariaFocusableItems) {
|
||||||
+ if (!!item?.classList?.contains("tab-group-label") && item.closest("tab-group").pinned) {
|
+ if (this.isTabGroupLabel(item) && item.closest("tab-group")?.pinned) {
|
||||||
+ i += 1;
|
+ i += 1;
|
||||||
+ continue;
|
+ continue;
|
||||||
+ }
|
+ }
|
||||||
@@ -54,7 +54,13 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
tab.linkedPanel = uniqueId;
|
tab.linkedPanel = uniqueId;
|
||||||
this._selectedTab = tab;
|
this._selectedTab = tab;
|
||||||
this._selectedBrowser = browser;
|
this._selectedBrowser = browser;
|
||||||
@@ -834,11 +865,13 @@
|
@@ -829,16 +860,18 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
pinTab(aTab) {
|
||||||
|
- if (aTab.pinned || aTab == FirefoxViewHandler.tab) {
|
||||||
|
+ if (aTab.pinned || aTab == FirefoxViewHandler.tab || aTab.hasAttribute("zen-empty-tab")) {
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.showTab(aTab);
|
this.showTab(aTab);
|
||||||
@@ -182,15 +188,16 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
} else {
|
} else {
|
||||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||||
}
|
}
|
||||||
@@ -2680,6 +2726,7 @@
|
@@ -2680,6 +2726,8 @@
|
||||||
schemelessInput,
|
schemelessInput,
|
||||||
hasValidUserGestureActivation = false,
|
hasValidUserGestureActivation = false,
|
||||||
textDirectiveUserActivation = false,
|
textDirectiveUserActivation = false,
|
||||||
+ _forZenEmptyTab,
|
+ _forZenEmptyTab,
|
||||||
|
+ essential,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
// all callers of addTab that pass a params object need to pass
|
// all callers of addTab that pass a params object need to pass
|
||||||
@@ -2690,6 +2737,12 @@
|
@@ -2690,6 +2738,12 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +210,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||||
}
|
}
|
||||||
@@ -2753,6 +2806,16 @@
|
@@ -2753,6 +2807,19 @@
|
||||||
noInitialLabel,
|
noInitialLabel,
|
||||||
skipBackgroundNotify,
|
skipBackgroundNotify,
|
||||||
});
|
});
|
||||||
@@ -216,11 +223,22 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
+ }
|
+ }
|
||||||
+ if (_forZenEmptyTab) {
|
+ if (_forZenEmptyTab) {
|
||||||
+ t.setAttribute("zen-empty-tab", "true");
|
+ t.setAttribute("zen-empty-tab", "true");
|
||||||
|
+ }
|
||||||
|
+ if (essential) {
|
||||||
|
+ t.setAttribute("zen-essential", "true");
|
||||||
+ }
|
+ }
|
||||||
if (insertTab) {
|
if (insertTab) {
|
||||||
// Insert the tab into the tab container in the correct position.
|
// Insert the tab into the tab container in the correct position.
|
||||||
// For now, we support `index` as an alias for `tabIndex`.
|
// For now, we support `index` as an alias for `tabIndex`.
|
||||||
@@ -2783,6 +2846,7 @@
|
@@ -2765,6 +2832,7 @@
|
||||||
|
ownerTab,
|
||||||
|
openerTab,
|
||||||
|
pinned,
|
||||||
|
+ essential,
|
||||||
|
bulkOrderedOpen,
|
||||||
|
tabGroup: tabGroup ?? openerTab?.group,
|
||||||
|
});
|
||||||
|
@@ -2783,6 +2851,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -228,7 +246,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
if (focusUrlBar) {
|
if (focusUrlBar) {
|
||||||
@@ -2902,6 +2966,12 @@
|
@@ -2902,6 +2971,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -241,7 +259,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
// Additionally send pinned tab events
|
// Additionally send pinned tab events
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this._notifyPinnedStatus(t);
|
this._notifyPinnedStatus(t);
|
||||||
@@ -2990,10 +3060,10 @@
|
@@ -2990,10 +3065,10 @@
|
||||||
isAdoptingGroup = false,
|
isAdoptingGroup = false,
|
||||||
isUserTriggered = false,
|
isUserTriggered = false,
|
||||||
telemetryUserCreateSource = "unknown",
|
telemetryUserCreateSource = "unknown",
|
||||||
@@ -253,7 +271,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!color) {
|
if (!color) {
|
||||||
@@ -3014,7 +3084,12 @@
|
@@ -3014,7 +3089,12 @@
|
||||||
label,
|
label,
|
||||||
isAdoptingGroup
|
isAdoptingGroup
|
||||||
);
|
);
|
||||||
@@ -267,7 +285,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
group,
|
group,
|
||||||
insertBefore?.group ?? insertBefore
|
insertBefore?.group ?? insertBefore
|
||||||
);
|
);
|
||||||
@@ -3303,6 +3378,7 @@
|
@@ -3303,6 +3383,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -275,7 +293,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||||
@@ -3372,6 +3448,7 @@
|
@@ -3372,6 +3453,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
name,
|
name,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -283,7 +301,18 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3560,7 +3637,7 @@
|
@@ -3517,7 +3599,9 @@
|
||||||
|
let shouldUpdateForPinnedTabs = false;
|
||||||
|
/** @type {Map<TabGroupStateData['id'], TabGroupWorkingData>} */
|
||||||
|
let tabGroupWorkingData = new Map();
|
||||||
|
-
|
||||||
|
+ if (this._hasAlreadyInitializedZenSessionStore) {
|
||||||
|
+ selectTab += 1; // SessionStoreInternal.restoreTabs expects a 1-based index.
|
||||||
|
+ }
|
||||||
|
for (const tabGroupData of tabGroupDataList) {
|
||||||
|
tabGroupWorkingData.set(tabGroupData.id, {
|
||||||
|
stateData: tabGroupData,
|
||||||
|
@@ -3560,7 +3644,7 @@
|
||||||
// Add a new tab if needed.
|
// Add a new tab if needed.
|
||||||
if (!tab) {
|
if (!tab) {
|
||||||
let createLazyBrowser =
|
let createLazyBrowser =
|
||||||
@@ -292,7 +321,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
|
|
||||||
let url = "about:blank";
|
let url = "about:blank";
|
||||||
if (tabData.entries?.length) {
|
if (tabData.entries?.length) {
|
||||||
@@ -3598,7 +3675,8 @@
|
@@ -3598,7 +3682,8 @@
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
});
|
});
|
||||||
@@ -302,7 +331,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (select) {
|
if (select) {
|
||||||
tabToSelect = tab;
|
tabToSelect = tab;
|
||||||
}
|
}
|
||||||
@@ -3622,7 +3700,8 @@
|
@@ -3622,7 +3707,8 @@
|
||||||
// needs calling:
|
// needs calling:
|
||||||
shouldUpdateForPinnedTabs = true;
|
shouldUpdateForPinnedTabs = true;
|
||||||
}
|
}
|
||||||
@@ -312,7 +341,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
let { groupId } = tabData;
|
let { groupId } = tabData;
|
||||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||||
// if a tab refers to a tab group we don't know, skip any group
|
// if a tab refers to a tab group we don't know, skip any group
|
||||||
@@ -3636,7 +3715,10 @@
|
@@ -3636,7 +3722,10 @@
|
||||||
tabGroup.stateData.id,
|
tabGroup.stateData.id,
|
||||||
tabGroup.stateData.color,
|
tabGroup.stateData.color,
|
||||||
tabGroup.stateData.collapsed,
|
tabGroup.stateData.collapsed,
|
||||||
@@ -324,26 +353,31 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
);
|
);
|
||||||
tabsFragment.appendChild(tabGroup.node);
|
tabsFragment.appendChild(tabGroup.node);
|
||||||
}
|
}
|
||||||
@@ -3684,8 +3766,16 @@
|
@@ -3684,9 +3773,23 @@
|
||||||
// to remove the old selected tab.
|
// to remove the old selected tab.
|
||||||
if (tabToSelect) {
|
if (tabToSelect) {
|
||||||
let leftoverTab = this.selectedTab;
|
let leftoverTab = this.selectedTab;
|
||||||
- this.selectedTab = tabToSelect;
|
+ if (this._hasAlreadyInitializedZenSessionStore || !gZenWorkspaces.workspaceEnabled) {
|
||||||
- this.removeTab(leftoverTab);
|
this.selectedTab = tabToSelect;
|
||||||
+ gZenWorkspaces._tabToRemoveForEmpty = leftoverTab;
|
this.removeTab(leftoverTab);
|
||||||
+ if (Services.prefs.getBoolPref("zen.workspaces.continue-where-left-off")) {
|
+ } else {
|
||||||
+ gZenWorkspaces._tabToSelect = selectTab - 1;
|
+ gZenWorkspaces._tabToRemoveForEmpty = leftoverTab;
|
||||||
+ }
|
+ if (Services.prefs.getBoolPref("zen.workspaces.continue-where-left-off")) {
|
||||||
+ if (gZenWorkspaces._initialTab && !gZenVerticalTabsManager._canReplaceNewTab) {
|
+ gZenWorkspaces._tabToSelect = selectTab - 1;
|
||||||
+ gZenWorkspaces._initialTab._shouldRemove = true;
|
+ }
|
||||||
|
+ if (gZenWorkspaces._initialTab && !gZenVerticalTabsManager._canReplaceNewTab) {
|
||||||
|
+ gZenWorkspaces._initialTab._shouldRemove = true;
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ else {
|
+ else {
|
||||||
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
|
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
|
||||||
}
|
}
|
||||||
|
+ this._hasAlreadyInitializedZenSessionStore = true;
|
||||||
|
|
||||||
if (tabs.length > 1 || !tabs[0].selected) {
|
if (tabs.length > 1 || !tabs[0].selected) {
|
||||||
@@ -3881,7 +3971,7 @@
|
this._updateTabsAfterInsert();
|
||||||
|
@@ -3881,7 +3984,7 @@
|
||||||
// Ensure we have an index if one was not provided.
|
// Ensure we have an index if one was not provided.
|
||||||
if (typeof elementIndex != "number" && typeof tabIndex != "number") {
|
if (typeof elementIndex != "number" && typeof tabIndex != "number") {
|
||||||
// Move the new tab after another tab if needed, to the end otherwise.
|
// Move the new tab after another tab if needed, to the end otherwise.
|
||||||
@@ -352,16 +386,16 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (
|
if (
|
||||||
!bulkOrderedOpen &&
|
!bulkOrderedOpen &&
|
||||||
((openerTab &&
|
((openerTab &&
|
||||||
@@ -3904,7 +3994,7 @@
|
@@ -3904,7 +4007,7 @@
|
||||||
) {
|
) {
|
||||||
elementIndex = Infinity;
|
elementIndex = Infinity;
|
||||||
} else if (previousTab.visible) {
|
} else if (previousTab.visible) {
|
||||||
- elementIndex = previousTab.elementIndex + 1;
|
- elementIndex = previousTab.elementIndex + 1;
|
||||||
+ elementIndex = (typeof previousTab.elementIndex === 'undefined') ? index : (previousTab.elementIndex + 1);
|
+ elementIndex = (typeof previousTab.elementIndex === 'undefined') ? elementIndex : (previousTab.elementIndex + 1);
|
||||||
} else if (previousTab == FirefoxViewHandler.tab) {
|
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||||
elementIndex = 0;
|
elementIndex = 0;
|
||||||
}
|
}
|
||||||
@@ -3932,14 +4022,14 @@
|
@@ -3932,14 +4035,14 @@
|
||||||
}
|
}
|
||||||
// Ensure index is within bounds.
|
// Ensure index is within bounds.
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -380,7 +414,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
|
|
||||||
// Prevent a flash of unstyled content by setting up the tab content
|
// Prevent a flash of unstyled content by setting up the tab content
|
||||||
// and inherited attributes before appending it (see Bug 1592054):
|
// and inherited attributes before appending it (see Bug 1592054):
|
||||||
@@ -3947,7 +4037,7 @@
|
@@ -3947,7 +4050,7 @@
|
||||||
|
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
|
|
||||||
@@ -389,7 +423,15 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||||
// Place at the front of, or between tabs in, the same tab group
|
// Place at the front of, or between tabs in, the same tab group
|
||||||
this.tabContainer.insertBefore(tab, itemAfter);
|
this.tabContainer.insertBefore(tab, itemAfter);
|
||||||
@@ -4268,6 +4358,9 @@
|
@@ -3980,6 +4083,7 @@
|
||||||
|
if (pinned) {
|
||||||
|
this._updateTabBarForPinnedTabs();
|
||||||
|
}
|
||||||
|
+ gZenWorkspaces.fixTabInsertLocation(tab, itemAfter);
|
||||||
|
|
||||||
|
TabBarVisibility.update();
|
||||||
|
}
|
||||||
|
@@ -4268,6 +4372,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -399,7 +441,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
this.removeTabs(selectedTabs, { telemetrySource });
|
this.removeTabs(selectedTabs, { telemetrySource });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4520,6 +4613,7 @@
|
@@ -4520,6 +4627,7 @@
|
||||||
telemetrySource,
|
telemetrySource,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
@@ -407,7 +449,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||||
// can be considered equivalent to closing the window.
|
// can be considered equivalent to closing the window.
|
||||||
if (
|
if (
|
||||||
@@ -4604,6 +4698,7 @@
|
@@ -4604,6 +4712,7 @@
|
||||||
if (lastToClose) {
|
if (lastToClose) {
|
||||||
this.removeTab(lastToClose, aParams);
|
this.removeTab(lastToClose, aParams);
|
||||||
}
|
}
|
||||||
@@ -415,7 +457,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
@@ -4641,6 +4736,12 @@
|
@@ -4641,6 +4750,12 @@
|
||||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,7 +470,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
// Handle requests for synchronously removing an already
|
// Handle requests for synchronously removing an already
|
||||||
// asynchronously closing tab.
|
// asynchronously closing tab.
|
||||||
if (!animate && aTab.closing) {
|
if (!animate && aTab.closing) {
|
||||||
@@ -4655,7 +4756,9 @@
|
@@ -4655,7 +4770,9 @@
|
||||||
// frame created for it (for example, by updating the visually selected
|
// frame created for it (for example, by updating the visually selected
|
||||||
// state).
|
// state).
|
||||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||||
@@ -439,7 +481,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (
|
if (
|
||||||
!this._beginRemoveTab(aTab, {
|
!this._beginRemoveTab(aTab, {
|
||||||
closeWindowFastpath: true,
|
closeWindowFastpath: true,
|
||||||
@@ -4821,7 +4924,7 @@
|
@@ -4821,7 +4938,7 @@
|
||||||
closeWindowWithLastTab != null
|
closeWindowWithLastTab != null
|
||||||
? closeWindowWithLastTab
|
? closeWindowWithLastTab
|
||||||
: !window.toolbar.visible ||
|
: !window.toolbar.visible ||
|
||||||
@@ -448,7 +490,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
|
|
||||||
if (closeWindow) {
|
if (closeWindow) {
|
||||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||||
@@ -4845,6 +4948,7 @@
|
@@ -4845,6 +4962,7 @@
|
||||||
|
|
||||||
newTab = true;
|
newTab = true;
|
||||||
}
|
}
|
||||||
@@ -456,7 +498,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||||
|
|
||||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||||
@@ -4885,9 +4989,7 @@
|
@@ -4885,9 +5003,7 @@
|
||||||
aTab._mouseleave();
|
aTab._mouseleave();
|
||||||
|
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
@@ -467,16 +509,15 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
} else {
|
} else {
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -5016,6 +5118,8 @@
|
@@ -5016,6 +5132,7 @@
|
||||||
this.tabs[i]._tPos = i;
|
this.tabs[i]._tPos = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ gZenWorkspaces.updateTabsContainers();
|
+ gZenWorkspaces.updateTabsContainers();
|
||||||
+
|
|
||||||
if (!this._windowIsClosing) {
|
if (!this._windowIsClosing) {
|
||||||
if (wasPinned) {
|
if (wasPinned) {
|
||||||
this.tabContainer._positionPinnedTabs();
|
this.tabContainer._positionPinnedTabs();
|
||||||
@@ -5230,6 +5334,7 @@
|
@@ -5230,6 +5347,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let excludeTabs = new Set(aExcludeTabs);
|
let excludeTabs = new Set(aExcludeTabs);
|
||||||
@@ -484,7 +525,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
|
|
||||||
// If this tab has a successor, it should be selectable, since
|
// If this tab has a successor, it should be selectable, since
|
||||||
// hiding or closing a tab removes that tab as a successor.
|
// hiding or closing a tab removes that tab as a successor.
|
||||||
@@ -5242,13 +5347,13 @@
|
@@ -5242,13 +5360,13 @@
|
||||||
!excludeTabs.has(aTab.owner) &&
|
!excludeTabs.has(aTab.owner) &&
|
||||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||||
) {
|
) {
|
||||||
@@ -500,7 +541,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
);
|
);
|
||||||
|
|
||||||
let tab = this.tabContainer.findNextTab(aTab, {
|
let tab = this.tabContainer.findNextTab(aTab, {
|
||||||
@@ -5264,7 +5369,7 @@
|
@@ -5264,7 +5382,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab) {
|
if (tab) {
|
||||||
@@ -509,7 +550,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If no qualifying visible tab was found, see if there is a tab in
|
// If no qualifying visible tab was found, see if there is a tab in
|
||||||
@@ -5285,7 +5390,7 @@
|
@@ -5285,7 +5403,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,7 +559,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
}
|
}
|
||||||
|
|
||||||
_blurTab(aTab) {
|
_blurTab(aTab) {
|
||||||
@@ -5686,10 +5791,10 @@
|
@@ -5686,10 +5804,10 @@
|
||||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,7 +572,16 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
aTab.selected ||
|
aTab.selected ||
|
||||||
aTab.closing ||
|
aTab.closing ||
|
||||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||||
@@ -5986,7 +6091,7 @@
|
@@ -5909,7 +6027,7 @@
|
||||||
|
* `true` if element is a `<tab-group>`
|
||||||
|
*/
|
||||||
|
isTabGroup(element) {
|
||||||
|
- return !!(element?.tagName == "tab-group");
|
||||||
|
+ return !!(element?.tagName == "tab-group" || element?.tagName == "zen-folder");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
@@ -5986,7 +6104,7 @@
|
||||||
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
if (this.isTab(element) && element.pinned) {
|
if (this.isTab(element) && element.pinned) {
|
||||||
@@ -540,7 +590,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
} else {
|
} else {
|
||||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||||
}
|
}
|
||||||
@@ -6012,10 +6117,16 @@
|
@@ -6012,10 +6130,16 @@
|
||||||
this.#handleTabMove(
|
this.#handleTabMove(
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
@@ -559,7 +609,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||||
neighbor.after(element);
|
neighbor.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6084,17 +6195,29 @@
|
@@ -6084,17 +6208,29 @@
|
||||||
targetElement = targetElement.group;
|
targetElement = targetElement.group;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -593,7 +643,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
if (element.pinned && this.tabContainer.verticalMode) {
|
if (element.pinned && this.tabContainer.verticalMode) {
|
||||||
return this.tabContainer.verticalPinnedTabsContainer;
|
return this.tabContainer.verticalPinnedTabsContainer;
|
||||||
}
|
}
|
||||||
@@ -6154,7 +6277,7 @@
|
@@ -6154,7 +6290,7 @@
|
||||||
if (!this.isTab(aTab)) {
|
if (!this.isTab(aTab)) {
|
||||||
throw new Error("Can only move a tab into a tab group");
|
throw new Error("Can only move a tab into a tab group");
|
||||||
}
|
}
|
||||||
@@ -602,7 +652,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||||
@@ -6248,6 +6371,10 @@
|
@@ -6248,6 +6384,10 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
@@ -613,7 +663,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||||
// changed.
|
// changed.
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
@@ -7145,7 +7272,7 @@
|
@@ -7145,7 +7285,7 @@
|
||||||
// preventDefault(). It will still raise the window if appropriate.
|
// preventDefault(). It will still raise the window if appropriate.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -622,7 +672,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
window.focus();
|
window.focus();
|
||||||
aEvent.preventDefault();
|
aEvent.preventDefault();
|
||||||
break;
|
break;
|
||||||
@@ -8044,6 +8171,7 @@
|
@@ -8044,6 +8184,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
@@ -630,7 +680,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
}
|
}
|
||||||
@@ -9009,7 +9137,7 @@ var TabContextMenu = {
|
@@ -9009,7 +9150,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !this.multiselected;
|
!this.contextTab.pinned || !this.multiselected;
|
||||||
@@ -639,7 +689,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..14f5bc046f2e54109bd3fd0402a8f8b5
|
|||||||
// Move Tab items
|
// Move Tab items
|
||||||
let contextMoveTabOptions = document.getElementById(
|
let contextMoveTabOptions = document.getElementById(
|
||||||
"context_moveTabOptions"
|
"context_moveTabOptions"
|
||||||
@@ -9278,6 +9406,7 @@ var TabContextMenu = {
|
@@ -9278,6 +9419,7 @@ var TabContextMenu = {
|
||||||
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c574dfc103 100644
|
index 84d633471c89230b981d8a07babef4e0c76c0338..37ebb0a715629d372fb8054bcd8783eae31cc79a 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabs.js
|
--- a/browser/components/tabbrowser/content/tabs.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||||
@@ -83,7 +83,7 @@
|
@@ -83,7 +83,7 @@
|
||||||
@@ -100,23 +100,16 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
);
|
);
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||||
@@ -1135,8 +1153,14 @@
|
@@ -1168,7 +1186,7 @@
|
||||||
(lastMovingTabScreen + tabSize);
|
(oldTranslateX && oldTranslateX != newTranslateX) ||
|
||||||
|
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||||
if (this.verticalMode) {
|
} else if (this.verticalMode) {
|
||||||
+ if (oldTranslateY > 0 && translateOffsetY > tabHeight / 2) {
|
- shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||||
+ newTranslateY += tabHeight;
|
+ shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY && movingTabs.length === 1;
|
||||||
+ }
|
} else {
|
||||||
+ if (oldTranslateY < 0 && -translateOffsetY > tabHeight / 2) {
|
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||||
+ newTranslateY -= tabHeight;
|
}
|
||||||
+ }
|
@@ -1337,6 +1355,7 @@
|
||||||
newTranslateY = Math.min(
|
|
||||||
- Math.max(oldTranslateY, firstBound),
|
|
||||||
+ Math.max(newTranslateY, firstBound),
|
|
||||||
lastBound
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
@@ -1337,6 +1361,7 @@
|
|
||||||
|
|
||||||
let nextItem = this.ariaFocusableItems[newIndex];
|
let nextItem = this.ariaFocusableItems[newIndex];
|
||||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||||
@@ -124,7 +117,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
gBrowser.loadTabs(urls, {
|
gBrowser.loadTabs(urls, {
|
||||||
inBackground,
|
inBackground,
|
||||||
replace,
|
replace,
|
||||||
@@ -1369,6 +1394,17 @@
|
@@ -1369,6 +1388,17 @@
|
||||||
|
|
||||||
this.finishMoveTogetherSelectedTabs(draggedTab);
|
this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
this.finishAnimateTabMove();
|
this.finishAnimateTabMove();
|
||||||
@@ -142,7 +135,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
this.#expandGroupOnDrop(draggedTab);
|
this.#expandGroupOnDrop(draggedTab);
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@@ -1597,7 +1633,7 @@
|
@@ -1597,7 +1627,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
@@ -151,7 +144,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1621,29 +1657,54 @@
|
@@ -1621,29 +1651,54 @@
|
||||||
if (this.#allTabs) {
|
if (this.#allTabs) {
|
||||||
return this.#allTabs;
|
return this.#allTabs;
|
||||||
}
|
}
|
||||||
@@ -214,7 +207,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1698,23 +1759,18 @@
|
@@ -1698,23 +1753,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let elementIndex = 0;
|
let elementIndex = 0;
|
||||||
@@ -242,7 +235,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||||
visibleTabsInGroup.forEach(tab => {
|
visibleTabsInGroup.forEach(tab => {
|
||||||
tab.elementIndex = elementIndex++;
|
tab.elementIndex = elementIndex++;
|
||||||
@@ -1724,10 +1780,7 @@
|
@@ -1724,10 +1774,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,7 +247,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
|
|
||||||
return this.#focusableItems;
|
return this.#focusableItems;
|
||||||
}
|
}
|
||||||
@@ -1735,6 +1788,7 @@
|
@@ -1735,6 +1782,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
@@ -262,7 +255,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1749,8 +1803,8 @@
|
@@ -1749,8 +1797,8 @@
|
||||||
#isContainerVerticalPinnedGrid(tab) {
|
#isContainerVerticalPinnedGrid(tab) {
|
||||||
return (
|
return (
|
||||||
this.verticalMode &&
|
this.verticalMode &&
|
||||||
@@ -273,7 +266,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
!this.expandOnHover
|
!this.expandOnHover
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1766,7 +1820,7 @@
|
@@ -1766,7 +1814,7 @@
|
||||||
|
|
||||||
if (node == null) {
|
if (node == null) {
|
||||||
// We have a container for non-tab elements at the end of the scrollbox.
|
// We have a container for non-tab elements at the end of the scrollbox.
|
||||||
@@ -282,7 +275,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -1861,7 +1915,7 @@
|
@@ -1861,7 +1909,7 @@
|
||||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
// 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);
|
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||||
// Attach the long click popup to all of them.
|
// Attach the long click popup to all of them.
|
||||||
@@ -291,7 +284,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -1956,10 +2010,12 @@
|
@@ -1956,10 +2004,12 @@
|
||||||
|
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
@@ -304,7 +297,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2132,6 +2188,7 @@
|
@@ -2132,6 +2182,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_positionPinnedTabs() {
|
_positionPinnedTabs() {
|
||||||
@@ -312,7 +305,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let tabs = this.visibleTabs;
|
let tabs = this.visibleTabs;
|
||||||
let numPinned = gBrowser.pinnedTabCount;
|
let numPinned = gBrowser.pinnedTabCount;
|
||||||
let absPositionHorizontalTabs =
|
let absPositionHorizontalTabs =
|
||||||
@@ -2206,7 +2263,7 @@
|
@@ -2206,7 +2257,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -321,7 +314,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
@@ -2215,6 +2272,8 @@
|
@@ -2215,6 +2266,8 @@
|
||||||
|
|
||||||
let { width: tabWidth, height: tabHeight } =
|
let { width: tabWidth, height: tabHeight } =
|
||||||
draggedTab.getBoundingClientRect();
|
draggedTab.getBoundingClientRect();
|
||||||
@@ -330,7 +323,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let shiftSizeX = tabWidth * movingTabs.length;
|
let shiftSizeX = tabWidth * movingTabs.length;
|
||||||
let shiftSizeY = tabHeight;
|
let shiftSizeY = tabHeight;
|
||||||
dragData.tabWidth = tabWidth;
|
dragData.tabWidth = tabWidth;
|
||||||
@@ -2244,7 +2303,7 @@
|
@@ -2244,7 +2297,7 @@
|
||||||
let translateX = screenX - dragData.screenX;
|
let translateX = screenX - dragData.screenX;
|
||||||
let translateY = screenY - dragData.screenY;
|
let translateY = screenY - dragData.screenY;
|
||||||
translateY +=
|
translateY +=
|
||||||
@@ -339,7 +332,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let firstBoundX = firstTabInRow.screenX - firstMovingTabScreenX;
|
let firstBoundX = firstTabInRow.screenX - firstMovingTabScreenX;
|
||||||
let firstBoundY = firstTabInRow.screenY - firstMovingTabScreenY;
|
let firstBoundY = firstTabInRow.screenY - firstMovingTabScreenY;
|
||||||
let lastBoundX =
|
let lastBoundX =
|
||||||
@@ -2389,12 +2448,16 @@
|
@@ -2389,12 +2442,16 @@
|
||||||
|
|
||||||
this.#clearDragOverCreateGroupTimer();
|
this.#clearDragOverCreateGroupTimer();
|
||||||
|
|
||||||
@@ -360,7 +353,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
|
|
||||||
if (this.#rtlMode) {
|
if (this.#rtlMode) {
|
||||||
tabs.reverse();
|
tabs.reverse();
|
||||||
@@ -2408,7 +2471,7 @@
|
@@ -2408,7 +2465,7 @@
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||||
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
||||||
@@ -369,7 +362,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let translateX = event.screenX - dragData.screenX;
|
let translateX = event.screenX - dragData.screenX;
|
||||||
let translateY = event.screenY - dragData.screenY;
|
let translateY = event.screenY - dragData.screenY;
|
||||||
|
|
||||||
@@ -2422,12 +2485,21 @@
|
@@ -2422,12 +2479,21 @@
|
||||||
let lastTab = tabs.at(-1);
|
let lastTab = tabs.at(-1);
|
||||||
let lastMovingTab = movingTabs.at(-1);
|
let lastMovingTab = movingTabs.at(-1);
|
||||||
let firstMovingTab = movingTabs[0];
|
let firstMovingTab = movingTabs[0];
|
||||||
@@ -392,7 +385,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
translate +=
|
translate +=
|
||||||
this.arrowScrollbox.scrollbox[scrollDirection] - dragData.scrollPos;
|
this.arrowScrollbox.scrollbox[scrollDirection] - dragData.scrollPos;
|
||||||
} else if (isPinned && this.verticalMode) {
|
} else if (isPinned && this.verticalMode) {
|
||||||
@@ -2446,6 +2518,9 @@
|
@@ -2446,6 +2512,9 @@
|
||||||
// Shift the `.tab-group-label-container` to shift the label element.
|
// Shift the `.tab-group-label-container` to shift the label element.
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
}
|
}
|
||||||
@@ -402,7 +395,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
item.style.transform = `${translateAxis}(${translate}px)`;
|
item.style.transform = `${translateAxis}(${translate}px)`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2583,6 +2658,9 @@
|
@@ -2583,6 +2652,9 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let element = tabs[mid];
|
let element = tabs[mid];
|
||||||
@@ -412,7 +405,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let elementForSize = isTabGroupLabel(element)
|
let elementForSize = isTabGroupLabel(element)
|
||||||
? element.parentElement
|
? element.parentElement
|
||||||
: element;
|
: element;
|
||||||
@@ -2605,6 +2683,10 @@
|
@@ -2605,6 +2677,10 @@
|
||||||
if (!dropElement) {
|
if (!dropElement) {
|
||||||
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
||||||
}
|
}
|
||||||
@@ -423,7 +416,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
let newDropElementIndex = dropElement
|
let newDropElementIndex = dropElement
|
||||||
? dropElement.elementIndex
|
? dropElement.elementIndex
|
||||||
: oldDropElementIndex;
|
: oldDropElementIndex;
|
||||||
@@ -2613,7 +2695,7 @@
|
@@ -2613,7 +2689,7 @@
|
||||||
let shouldCreateGroupOnDrop;
|
let shouldCreateGroupOnDrop;
|
||||||
let dropBefore;
|
let dropBefore;
|
||||||
if (dropElement) {
|
if (dropElement) {
|
||||||
@@ -432,7 +425,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
? dropElement.parentElement
|
? dropElement.parentElement
|
||||||
: dropElement;
|
: dropElement;
|
||||||
|
|
||||||
@@ -2675,12 +2757,12 @@
|
@@ -2675,12 +2751,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,7 +440,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
dropElement != draggedTab &&
|
dropElement != draggedTab &&
|
||||||
isTab(dropElement) &&
|
isTab(dropElement) &&
|
||||||
!dropElement?.group &&
|
!dropElement?.group &&
|
||||||
@@ -2720,7 +2802,7 @@
|
@@ -2720,7 +2796,7 @@
|
||||||
// Dropping right before the tab group.
|
// Dropping right before the tab group.
|
||||||
dropElement = dropElementGroup;
|
dropElement = dropElementGroup;
|
||||||
colorCode = undefined;
|
colorCode = undefined;
|
||||||
@@ -456,7 +449,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
// Dropping right after the collapsed tab group.
|
// Dropping right after the collapsed tab group.
|
||||||
dropElement = dropElementGroup;
|
dropElement = dropElementGroup;
|
||||||
colorCode = undefined;
|
colorCode = undefined;
|
||||||
@@ -2750,7 +2832,7 @@
|
@@ -2750,7 +2826,7 @@
|
||||||
// Shift background tabs to leave a gap where the dragged tab
|
// Shift background tabs to leave a gap where the dragged tab
|
||||||
// would currently be dropped.
|
// would currently be dropped.
|
||||||
for (let item of tabs) {
|
for (let item of tabs) {
|
||||||
@@ -465,7 +458,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2759,6 +2841,9 @@
|
@@ -2759,6 +2835,9 @@
|
||||||
if (isTabGroupLabel(item)) {
|
if (isTabGroupLabel(item)) {
|
||||||
// Shift the `.tab-group-label-container` to shift the label element.
|
// Shift the `.tab-group-label-container` to shift the label element.
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
@@ -475,7 +468,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
}
|
}
|
||||||
item.style.transform = transform;
|
item.style.transform = transform;
|
||||||
}
|
}
|
||||||
@@ -2811,8 +2896,9 @@
|
@@ -2811,8 +2890,9 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +480,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2824,6 +2910,12 @@
|
@@ -2824,6 +2904,12 @@
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
}
|
}
|
||||||
item.style.transform = "";
|
item.style.transform = "";
|
||||||
@@ -500,7 +493,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
item.removeAttribute("dragover-createGroup");
|
item.removeAttribute("dragover-createGroup");
|
||||||
}
|
}
|
||||||
this.removeAttribute("movingtab-createGroup");
|
this.removeAttribute("movingtab-createGroup");
|
||||||
@@ -2870,7 +2962,7 @@
|
@@ -2870,7 +2956,7 @@
|
||||||
let postTransitionCleanup = () => {
|
let postTransitionCleanup = () => {
|
||||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||||
};
|
};
|
||||||
@@ -509,7 +502,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
postTransitionCleanup();
|
postTransitionCleanup();
|
||||||
} else {
|
} else {
|
||||||
let onTransitionEnd = transitionendEvent => {
|
let onTransitionEnd = transitionendEvent => {
|
||||||
@@ -3043,7 +3135,7 @@
|
@@ -3043,7 +3129,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
@@ -518,7 +511,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..de8b1ecf7cb844f6cf3e66a41b6024c5
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3169,6 +3261,9 @@
|
@@ -3169,6 +3255,9 @@
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640dac8ab56 100644
|
index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..370bd107be760893516360bd85553acb6533774b 100644
|
||||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
@@ -187,7 +187,15 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640
|
|||||||
|
|
||||||
let controller =
|
let controller =
|
||||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||||
@@ -4136,6 +4204,11 @@ export class UrlbarInput {
|
@@ -4025,6 +4093,7 @@ export class UrlbarInput {
|
||||||
|
_setPlaceholder(name) {
|
||||||
|
this.document.l10n.setAttributes(
|
||||||
|
this.inputField,
|
||||||
|
+ this.window.gZenVerticalTabsManager._hasSetSingleToolbar ? 'zen-singletoolbar-urlbar-placeholder-with-name' :
|
||||||
|
name ? "urlbar-placeholder-with-name" : "urlbar-placeholder",
|
||||||
|
name ? { name } : undefined
|
||||||
|
);
|
||||||
|
@@ -4136,6 +4205,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_click(event) {
|
_on_click(event) {
|
||||||
@@ -199,7 +207,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640
|
|||||||
if (
|
if (
|
||||||
event.target == this.inputField ||
|
event.target == this.inputField ||
|
||||||
event.target == this._inputContainer ||
|
event.target == this._inputContainer ||
|
||||||
@@ -4207,7 +4280,7 @@ export class UrlbarInput {
|
@@ -4207,7 +4281,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,7 +216,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640
|
|||||||
this.view.autoOpen({ event });
|
this.view.autoOpen({ event });
|
||||||
} else {
|
} else {
|
||||||
if (this._untrimOnFocusAfterKeydown) {
|
if (this._untrimOnFocusAfterKeydown) {
|
||||||
@@ -4247,9 +4320,16 @@ export class UrlbarInput {
|
@@ -4247,9 +4321,16 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_mousedown(event) {
|
_on_mousedown(event) {
|
||||||
@@ -226,7 +234,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
event.target != this.inputField &&
|
event.target != this.inputField &&
|
||||||
@@ -4261,6 +4341,10 @@ export class UrlbarInput {
|
@@ -4261,6 +4342,10 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.focusedViaMousedown = !this.focused;
|
this.focusedViaMousedown = !this.focused;
|
||||||
this._preventClickSelectsAll = this.focused;
|
this._preventClickSelectsAll = this.focused;
|
||||||
@@ -237,7 +245,7 @@ index 0c5145c3d31862bd2c6b5ed2faa88f02425ffde1..1cf86995514b2c00360f6ed681f0c640
|
|||||||
|
|
||||||
// Keep the focus status, since the attribute may be changed
|
// Keep the focus status, since the attribute may be changed
|
||||||
// upon calling this.focus().
|
// upon calling this.focus().
|
||||||
@@ -4301,7 +4385,7 @@ export class UrlbarInput {
|
@@ -4301,7 +4386,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
// Don't close the view when clicking on a tab; we may want to keep the
|
// 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.
|
// view open on tab switch, and the TabSelect event arrived earlier.
|
||||||
|
@@ -162,8 +162,7 @@ groupbox h2 {
|
|||||||
|
|
||||||
/* Look and feel */
|
/* Look and feel */
|
||||||
|
|
||||||
#webAppearanceSettings,
|
#webAppearanceSettings {
|
||||||
#zen-theme-builder-wrapper + box {
|
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,31 +202,6 @@ groupbox h2 {
|
|||||||
list-style-image: url('chrome://browser/skin/customize.svg');
|
list-style-image: url('chrome://browser/skin/customize.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
#zenLooksAndFeelColorOptions {
|
|
||||||
display: grid;
|
|
||||||
grid-template-columns: repeat(auto-fill, 108px);
|
|
||||||
gap: 5px;
|
|
||||||
margin: 10px 0 15px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.zenLooksAndFeelColorOptionParen {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
padding: 15px;
|
|
||||||
border-radius: 10px;
|
|
||||||
cursor: pointer;
|
|
||||||
background: var(--in-content-box-info-background);
|
|
||||||
width: fit-content;
|
|
||||||
margin-top: 10px;
|
|
||||||
border: 2px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.zenLooksAndFeelColorOptionParen[selected='true'] {
|
|
||||||
border-color: var(--zen-primary-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
#zenLooksAndFeelGroup > html|div:last-of-type {
|
#zenLooksAndFeelGroup > html|div:last-of-type {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,16 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
index 5b9ad123d819c6ef068acd427416957a1d0939fe..311caa27ee268c95215d459be02a93d20e129f8b 100644
|
index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272ede59857 100644
|
||||||
--- a/browser/themes/shared/tabbrowser/tabs.css
|
--- a/browser/themes/shared/tabbrowser/tabs.css
|
||||||
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
|
@@ -19,7 +19,7 @@
|
||||||
|
--tab-group-line-thickness: 2px;
|
||||||
|
--tab-group-line-toolbar-border-distance: 1px;
|
||||||
|
/* Collapsed tabs should be square, so set width to match the min height */
|
||||||
|
- --tab-collapsed-background-width: var(--tab-min-height);
|
||||||
|
+ --tab-collapsed-background-width: 48px;
|
||||||
|
--tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin));
|
||||||
|
--tab-inner-inline-margin: var(--space-medium);
|
||||||
|
--tab-inline-padding: 8px;
|
||||||
@@ -33,7 +33,7 @@
|
@@ -33,7 +33,7 @@
|
||||||
--tab-block-margin: 4px;
|
--tab-block-margin: 4px;
|
||||||
--tab-icon-end-margin: 5.5px;
|
--tab-icon-end-margin: 5.5px;
|
||||||
|
@@ -43,6 +43,10 @@
|
|||||||
list-style-image: url('close.svg') !important;
|
list-style-image: url('close.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker-none {
|
||||||
|
list-style-image: url('trash.svg');
|
||||||
|
}
|
||||||
|
|
||||||
.reset-icon {
|
.reset-icon {
|
||||||
list-style-image: url('reload.svg') !important;
|
list-style-image: url('reload.svg') !important;
|
||||||
}
|
}
|
||||||
@@ -107,6 +111,7 @@
|
|||||||
|
|
||||||
#PanelUI-menu-button,
|
#PanelUI-menu-button,
|
||||||
#appMenu-more-button2,
|
#appMenu-more-button2,
|
||||||
|
.zen-workspaces-actions,
|
||||||
#zen-workspace-actions-menu-icon {
|
#zen-workspace-actions-menu-icon {
|
||||||
list-style-image: url('menu.svg') !important;
|
list-style-image: url('menu.svg') !important;
|
||||||
}
|
}
|
||||||
@@ -178,20 +183,15 @@
|
|||||||
|
|
||||||
#zoom-in-button,
|
#zoom-in-button,
|
||||||
#tabs-newtab-button,
|
#tabs-newtab-button,
|
||||||
|
#zen-create-new-button,
|
||||||
#new-tab-button,
|
#new-tab-button,
|
||||||
#appMenu-zoomEnlarge-button2,
|
#appMenu-zoomEnlarge-button2,
|
||||||
#PanelUI-zen-profiles-newProfile,
|
#PanelUI-zen-profiles-newProfile,
|
||||||
#zen-sidebar-add-panel-button,
|
#zen-sidebar-add-panel-button,
|
||||||
#PanelUI-zen-workspaces-new image,
|
|
||||||
#PanelUI-zen-gradient-generator-color-custom-add image {
|
#PanelUI-zen-gradient-generator-color-custom-add image {
|
||||||
list-style-image: url('plus.svg') !important;
|
list-style-image: url('plus.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#PanelUI-zen-workspaces-reorder-mode image {
|
|
||||||
list-style-image: url('move-tab.svg') !important;
|
|
||||||
rotate: 90deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cut-button {
|
#cut-button {
|
||||||
list-style-image: url('edit-cut.svg') !important;
|
list-style-image: url('edit-cut.svg') !important;
|
||||||
}
|
}
|
||||||
@@ -765,3 +765,20 @@
|
|||||||
#zen-media-pip-button {
|
#zen-media-pip-button {
|
||||||
list-style-image: url('chrome://global/skin/media/picture-in-picture-open.svg');
|
list-style-image: url('chrome://global/skin/media/picture-in-picture-open.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#zenCreateNewPopup > menuitem image {
|
||||||
|
-moz-context-properties: fill;
|
||||||
|
fill: currentColor;
|
||||||
|
}
|
||||||
|
|
||||||
|
#zen-create-new-button {
|
||||||
|
border-radius: var(--tab-border-radius);
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background: var(--toolbarbutton-active-background);
|
||||||
|
}
|
||||||
|
|
||||||
|
& image {
|
||||||
|
background: transparent !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -126,6 +126,7 @@
|
|||||||
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
||||||
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
||||||
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
||||||
|
skin/classic/browser/zen-icons/trash.svg (../shared/zen-icons/lin/trash.svg)
|
||||||
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
||||||
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
||||||
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
||||||
@@ -264,6 +265,7 @@
|
|||||||
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
||||||
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
||||||
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
||||||
|
skin/classic/browser/zen-icons/trash.svg (../shared/zen-icons/lin/trash.svg)
|
||||||
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
||||||
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
||||||
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
||||||
@@ -402,6 +404,7 @@
|
|||||||
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
skin/classic/browser/zen-icons/tool-profiler.svg (../shared/zen-icons/lin/tool-profiler.svg)
|
||||||
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
skin/classic/browser/zen-icons/tracking-protection.svg (../shared/zen-icons/lin/tracking-protection.svg)
|
||||||
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
skin/classic/browser/zen-icons/translations.svg (../shared/zen-icons/lin/translations.svg)
|
||||||
|
skin/classic/browser/zen-icons/trash.svg (../shared/zen-icons/lin/trash.svg)
|
||||||
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
|
||||||
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
|
||||||
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
|
||||||
|
1
src/browser/themes/shared/zen-icons/lin/trash.svg
Normal file
1
src/browser/themes/shared/zen-icons/lin/trash.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="m13.474,7.25l-.374,7.105c-.056,1.062-.934,1.895-1.997,1.895h-4.205c-1.064,0-1.941-.833-1.997-1.895l-.374-7.105" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><line x1="2.75" y1="4.75" x2="15.25" y2="4.75" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-color="color-2"></line><path d="m6.75,4.75v-2c0-.552.448-1,1-1h2.5c.552,0,1,.448,1,1v2" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-color="color-2"></path></svg>
|
After Width: | Height: | Size: 748 B |
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
|
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
|
||||||
index 007aec91e089a1d2df20235890b268b820b0a529..ac0592cbcec62ffefb58b491dff48749852f2d88 100644
|
index 007aec91e089a1d2df20235890b268b820b0a529..a03a0d7b7837f6315f47f76a4491bf08d96e00e0 100644
|
||||||
--- a/browser/themes/windows/browser.css
|
--- a/browser/themes/windows/browser.css
|
||||||
+++ b/browser/themes/windows/browser.css
|
+++ b/browser/themes/windows/browser.css
|
||||||
@@ -31,7 +31,6 @@
|
@@ -31,7 +31,6 @@
|
||||||
@@ -10,3 +10,12 @@ index 007aec91e089a1d2df20235890b268b820b0a529..ac0592cbcec62ffefb58b491dff48749
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,7 +55,7 @@
|
||||||
|
|
||||||
|
/* This is needed for Windows 10, see bug 1961257 */
|
||||||
|
@media (-moz-windows-accent-color-in-titlebar) {
|
||||||
|
- :root[customtitlebar][sizemode="normal"] #navigator-toolbox {
|
||||||
|
+ :root[customtitlebar][sizemode="normal"] #browser {
|
||||||
|
border-top: .5px solid ActiveBorder;
|
||||||
|
&:-moz-window-inactive {
|
||||||
|
border-top-color: InactiveBorder;
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
diff --git a/dom/script/ScriptLoader.cpp b/dom/script/ScriptLoader.cpp
|
|
||||||
index 51f63f998e47aa4b1dffc3cacdb0a698b33b4623..0387738ce1f29b5db4a5d03a3b2f5f3a91011125 100644
|
|
||||||
--- a/dom/script/ScriptLoader.cpp
|
|
||||||
+++ b/dom/script/ScriptLoader.cpp
|
|
||||||
@@ -2679,6 +2679,36 @@ void ScriptLoader::CalculateBytecodeCacheFlag(ScriptLoadRequest* aRequest) {
|
|
||||||
hasFetchCountMin = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
+ case 1: {
|
|
||||||
+ // 1!
|
|
||||||
+ hasSourceLengthMin = true;
|
|
||||||
+ hasFetchCountMin = true;
|
|
||||||
+ sourceLengthMin = 1024;
|
|
||||||
+ // If we were to optimize only for speed, without considering the impact
|
|
||||||
+ // on memory, we should set this threshold to 2. (Bug 900784 comment 120)
|
|
||||||
+ fetchCountMin = 1;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ case 2: {
|
|
||||||
+ // 2!
|
|
||||||
+ hasSourceLengthMin = true;
|
|
||||||
+ hasFetchCountMin = true;
|
|
||||||
+ sourceLengthMin = 1024;
|
|
||||||
+ // If we were to optimize only for speed, without considering the impact
|
|
||||||
+ // on memory, we should set this threshold to 2. (Bug 900784 comment 120)
|
|
||||||
+ fetchCountMin = 2;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ case 3: {
|
|
||||||
+ // 3!
|
|
||||||
+ hasSourceLengthMin = true;
|
|
||||||
+ hasFetchCountMin = true;
|
|
||||||
+ sourceLengthMin = 1024;
|
|
||||||
+ // If we were to optimize only for speed, without considering the impact
|
|
||||||
+ // on memory, we should set this threshold to 2. (Bug 900784 comment 120)
|
|
||||||
+ fetchCountMin = 3;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
default:
|
|
||||||
case 0: {
|
|
||||||
hasSourceLengthMin = true;
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/components/aboutconfig/content/aboutconfig.html b/toolkit/components/aboutconfig/content/aboutconfig.html
|
|
||||||
index 853fd8f82bd10854c7fb17a73fd10eab0a9eef52..6f5e6606ebfa95a600037b995e5c743dd5aacba5 100644
|
|
||||||
--- a/toolkit/components/aboutconfig/content/aboutconfig.html
|
|
||||||
+++ b/toolkit/components/aboutconfig/content/aboutconfig.html
|
|
||||||
@@ -34,6 +34,7 @@
|
|
||||||
<link rel="icon" href="chrome://global/skin/icons/settings.svg" />
|
|
||||||
<script src="chrome://global/content/aboutconfig/aboutconfig.js"></script>
|
|
||||||
<title data-l10n-id="about-config-page-title"></title>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/components/aboutprocesses/content/aboutProcesses.html b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
|
||||||
index 1d936bcca6a606f062b9438d78a1165445468471..cbefb51920e7b2ad11621ab2b36c69fa63967dfe 100644
|
|
||||||
--- a/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
|
||||||
+++ b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
|
||||||
@@ -20,6 +20,7 @@
|
|
||||||
<link rel="localization" href="branding/brand.ftl" />
|
|
||||||
<script src="chrome://global/content/aboutProcesses.js"></script>
|
|
||||||
<link rel="stylesheet" href="chrome://global/content/aboutProcesses.css" />
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<table id="process-table">
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/components/printing/content/print.html b/toolkit/components/printing/content/print.html
|
|
||||||
index 72ccab596c2f090d188f1d27278f68373e5b06be..541271c71a3df749826b7f5adbd55e76450bba8f 100644
|
|
||||||
--- a/toolkit/components/printing/content/print.html
|
|
||||||
+++ b/toolkit/components/printing/content/print.html
|
|
||||||
@@ -21,6 +21,7 @@
|
|
||||||
type="module"
|
|
||||||
src="chrome://global/content/elements/moz-button-group.mjs"
|
|
||||||
></script>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body loading rendering>
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/components/prompts/content/commonDialog.xhtml b/toolkit/components/prompts/content/commonDialog.xhtml
|
|
||||||
index c47761ec958a11870e55294fe9c6de8f3afbda2f..5e0313864c67a774874c215fd043b9b8af39d8cb 100644
|
|
||||||
--- a/toolkit/components/prompts/content/commonDialog.xhtml
|
|
||||||
+++ b/toolkit/components/prompts/content/commonDialog.xhtml
|
|
||||||
@@ -30,6 +30,7 @@
|
|
||||||
|
|
||||||
<html:link rel="localization" href="branding/brand.ftl" />
|
|
||||||
<html:link rel="localization" href="toolkit/global/commonDialog.ftl" />
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</linkset>
|
|
||||||
<script src="chrome://global/content/adjustableTitle.js" />
|
|
||||||
<script src="chrome://global/content/commonDialog.js" />
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/content/aboutAbout.html b/toolkit/content/aboutAbout.html
|
|
||||||
index 74702381dd1bed2d4bb47c464ae0ca309c10e45b..f1e6b34bbf29d787bd62d625707dead024cf6011 100644
|
|
||||||
--- a/toolkit/content/aboutAbout.html
|
|
||||||
+++ b/toolkit/content/aboutAbout.html
|
|
||||||
@@ -24,6 +24,7 @@
|
|
||||||
href="chrome://branding/content/icon32.png"
|
|
||||||
/>
|
|
||||||
<script src="chrome://global/content/aboutAbout.js"></script>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/content/aboutProfiles.xhtml b/toolkit/content/aboutProfiles.xhtml
|
|
||||||
index 3ce9e580627d757e9bb3fa09601e6336e2376c73..cd69facbf05c525de061c496e08dc12096692e86 100644
|
|
||||||
--- a/toolkit/content/aboutProfiles.xhtml
|
|
||||||
+++ b/toolkit/content/aboutProfiles.xhtml
|
|
||||||
@@ -27,6 +27,7 @@
|
|
||||||
<script src="chrome://global/content/aboutProfiles.js" />
|
|
||||||
<link rel="localization" href="branding/brand.ftl" />
|
|
||||||
<link rel="localization" href="toolkit/about/aboutProfiles.ftl" />
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
<body id="body" class="wide-container">
|
|
||||||
<h1 data-l10n-id="profiles-title"></h1>
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/content/aboutSupport.xhtml b/toolkit/content/aboutSupport.xhtml
|
|
||||||
index 7f57218f3573488445ea363e0c4532b292d53167..511f578b4ae38a496ca936adf2fef1f587249f47 100644
|
|
||||||
--- a/toolkit/content/aboutSupport.xhtml
|
|
||||||
+++ b/toolkit/content/aboutSupport.xhtml
|
|
||||||
@@ -10,6 +10,7 @@
|
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
||||||
<head>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
<meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
|
|
||||||
<meta name="color-scheme" content="light dark" />
|
|
||||||
<title data-l10n-id="page-title"/>
|
|
@@ -1,12 +0,0 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/content/aboutaddons.html b/toolkit/mozapps/extensions/content/aboutaddons.html
|
|
||||||
index 77702576f03cc8db7ec85bd871e6366fef935d54..edd5f27303802091c84572a7a2d3933c03cf09d9 100644
|
|
||||||
--- a/toolkit/mozapps/extensions/content/aboutaddons.html
|
|
||||||
+++ b/toolkit/mozapps/extensions/content/aboutaddons.html
|
|
||||||
@@ -86,6 +86,7 @@
|
|
||||||
type="module"
|
|
||||||
src="chrome://global/content/elements/moz-five-star.mjs"
|
|
||||||
></script>
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<drag-drop-addon-installer></drag-drop-addon-installer>
|
|
@@ -1,14 +1,13 @@
|
|||||||
diff --git a/toolkit/themes/shared/menulist-shared.css b/toolkit/themes/shared/menulist-shared.css
|
diff --git a/toolkit/themes/shared/menulist-shared.css b/toolkit/themes/shared/menulist-shared.css
|
||||||
index 5dd5549674570170a694afbd9ea4526e52e3192a..187fcb57183df6a0ab3701ab79c46d86c5e984b3 100644
|
index 5dd5549674570170a694afbd9ea4526e52e3192a..a24ded413065ce1493e8622c5777c5b5bdac128e 100644
|
||||||
--- a/toolkit/themes/shared/menulist-shared.css
|
--- a/toolkit/themes/shared/menulist-shared.css
|
||||||
+++ b/toolkit/themes/shared/menulist-shared.css
|
+++ b/toolkit/themes/shared/menulist-shared.css
|
||||||
@@ -14,7 +14,8 @@
|
@@ -14,7 +14,7 @@
|
||||||
|
|
||||||
:host(:not([native])) {
|
:host(:not([native])) {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
- background-color: var(--button-background-color);
|
- background-color: var(--button-background-color);
|
||||||
+ background-color: var(--zen-colors-tertiary, ButtonFace);
|
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
|
||||||
+ border: 1px solid var(--input-border-color, ThreeDShadow);
|
|
||||||
color: var(--button-text-color);
|
color: var(--button-text-color);
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding-block: 4px;
|
padding-block: 4px;
|
||||||
|
@@ -6,7 +6,7 @@ export var ZenCustomizableUI = new (class {
|
|||||||
constructor() {}
|
constructor() {}
|
||||||
|
|
||||||
TYPE_TOOLBAR = 'toolbar';
|
TYPE_TOOLBAR = 'toolbar';
|
||||||
defaultSidebarIcons = ['preferences-button', 'zen-workspaces-button', 'downloads-button'];
|
defaultSidebarIcons = ['downloads-button', 'zen-workspaces-button', 'zen-create-new-button'];
|
||||||
|
|
||||||
startup(CustomizableUIInternal) {
|
startup(CustomizableUIInternal) {
|
||||||
CustomizableUIInternal.registerArea(
|
CustomizableUIInternal.registerArea(
|
||||||
@@ -20,7 +20,7 @@ export var ZenCustomizableUI = new (class {
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
CustomizableUIInternal.registerArea(
|
CustomizableUIInternal.registerArea(
|
||||||
'zen-sidebar-bottom-buttons',
|
'zen-sidebar-foot-buttons',
|
||||||
{
|
{
|
||||||
type: this.TYPE_TOOLBAR,
|
type: this.TYPE_TOOLBAR,
|
||||||
defaultPlacements: this.defaultSidebarIcons,
|
defaultPlacements: this.defaultSidebarIcons,
|
||||||
@@ -100,9 +100,39 @@ export var ZenCustomizableUI = new (class {
|
|||||||
elem.setAttribute('removable', 'true');
|
elem.setAttribute('removable', 'true');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this._initCreateNewButton(window);
|
||||||
this._moveWindowButtons(window);
|
this._moveWindowButtons(window);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_initCreateNewButton(window) {
|
||||||
|
const button = window.document.getElementById('zen-create-new-button');
|
||||||
|
button.addEventListener('command', () => {
|
||||||
|
if (button.hasAttribute('open')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const image = button.querySelector('image');
|
||||||
|
const popup = window.document.getElementById('zenCreateNewPopup');
|
||||||
|
button.setAttribute('open', 'true');
|
||||||
|
const handlePopupHidden = () => {
|
||||||
|
window.setTimeout(() => {
|
||||||
|
button.removeAttribute('open');
|
||||||
|
}, 500);
|
||||||
|
window.gZenUIManager.motion.animate(
|
||||||
|
image,
|
||||||
|
{ transform: ['rotate(45deg)', 'rotate(0deg)'] },
|
||||||
|
{ duration: 0.2 }
|
||||||
|
);
|
||||||
|
};
|
||||||
|
popup.addEventListener('popuphidden', handlePopupHidden, { once: true });
|
||||||
|
popup.openPopup(button, 'after_start');
|
||||||
|
window.gZenUIManager.motion.animate(
|
||||||
|
image,
|
||||||
|
{ transform: ['rotate(0deg)', 'rotate(45deg)'] },
|
||||||
|
{ duration: 0.2 }
|
||||||
|
);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
_moveWindowButtons(window) {
|
_moveWindowButtons(window) {
|
||||||
const windowControls = window.document.getElementsByClassName('titlebar-buttonbox-container');
|
const windowControls = window.document.getElementsByClassName('titlebar-buttonbox-container');
|
||||||
const toolboxIcons = window.document.getElementById(
|
const toolboxIcons = window.document.getElementById(
|
||||||
@@ -123,7 +153,7 @@ export var ZenCustomizableUI = new (class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_hideToolbarButtons(window) {
|
_hideToolbarButtons(window) {
|
||||||
const wrapper = window.document.getElementById('zen-sidebar-bottom-buttons');
|
const wrapper = window.document.getElementById('zen-sidebar-foot-buttons');
|
||||||
const elementsToHide = ['new-tab-button'];
|
const elementsToHide = ['new-tab-button'];
|
||||||
for (let id of elementsToHide) {
|
for (let id of elementsToHide) {
|
||||||
const elem = window.document.getElementById(id);
|
const elem = window.document.getElementById(id);
|
||||||
@@ -142,7 +172,7 @@ export var ZenCustomizableUI = new (class {
|
|||||||
window.document.getElementById('zen-sidebar-top-buttons')
|
window.document.getElementById('zen-sidebar-top-buttons')
|
||||||
);
|
);
|
||||||
window.CustomizableUI.registerToolbarNode(
|
window.CustomizableUI.registerToolbarNode(
|
||||||
window.document.getElementById('zen-sidebar-bottom-buttons')
|
window.document.getElementById('zen-sidebar-foot-buttons')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
File diff suppressed because one or more lines are too long
9
src/zen/common/ZenPreloadedScripts.js
Normal file
9
src/zen/common/ZenPreloadedScripts.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
// 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/.
|
||||||
|
|
||||||
|
// prettier-ignore
|
||||||
|
// eslint-disable-next-line no-lone-blocks
|
||||||
|
{
|
||||||
|
Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", this);
|
||||||
|
}
|
@@ -36,7 +36,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
async #waitAndCleanup() {
|
async #waitAndCleanup() {
|
||||||
await SessionStore.promiseAllWindowsRestored;
|
|
||||||
await SessionStore.promiseInitialized;
|
await SessionStore.promiseInitialized;
|
||||||
this.#cleanup();
|
this.#cleanup();
|
||||||
}
|
}
|
||||||
|
@@ -3,12 +3,13 @@
|
|||||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
{
|
{
|
||||||
var ZenStartup = {
|
var ZenStartup = {
|
||||||
init() {
|
_watermarkIgnoreElements: ['zen-toast-container'],
|
||||||
|
|
||||||
|
async init() {
|
||||||
this.openWatermark();
|
this.openWatermark();
|
||||||
this._initBrowserBackground();
|
await this._initBrowserBackground();
|
||||||
this._changeSidebarLocation();
|
this._changeSidebarLocation();
|
||||||
this._zenInitBrowserLayout();
|
this._zenInitBrowserLayout();
|
||||||
this._initSearchBar();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_initBrowserBackground() {
|
_initBrowserBackground() {
|
||||||
@@ -20,11 +21,10 @@
|
|||||||
document.getElementById('browser').prepend(background);
|
document.getElementById('browser').prepend(background);
|
||||||
},
|
},
|
||||||
|
|
||||||
_zenInitBrowserLayout() {
|
async _zenInitBrowserLayout() {
|
||||||
if (this.__hasInitBrowserLayout) return;
|
if (this.__hasInitBrowserLayout) return;
|
||||||
this.__hasInitBrowserLayout = true;
|
this.__hasInitBrowserLayout = true;
|
||||||
try {
|
try {
|
||||||
console.info('ZenThemeModifier: init browser layout');
|
|
||||||
const kNavbarItems = ['nav-bar', 'PersonalToolbar'];
|
const kNavbarItems = ['nav-bar', 'PersonalToolbar'];
|
||||||
const kNewContainerId = 'zen-appcontent-navbar-container';
|
const kNewContainerId = 'zen-appcontent-navbar-container';
|
||||||
let newContainer = document.getElementById(kNewContainerId);
|
let newContainer = document.getElementById(kNewContainerId);
|
||||||
@@ -41,10 +41,7 @@
|
|||||||
document.getElementById('zen-appcontent-wrapper').prepend(deckTemplate);
|
document.getElementById('zen-appcontent-wrapper').prepend(deckTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
this._hideUnusedElements();
|
|
||||||
|
|
||||||
gZenWorkspaces.init();
|
gZenWorkspaces.init();
|
||||||
gZenVerticalTabsManager.init();
|
|
||||||
gZenUIManager.init();
|
gZenUIManager.init();
|
||||||
|
|
||||||
this._checkForWelcomePage();
|
this._checkForWelcomePage();
|
||||||
@@ -76,6 +73,8 @@
|
|||||||
gZenWorkspaces.promiseInitialized.then(async () => {
|
gZenWorkspaces.promiseInitialized.then(async () => {
|
||||||
await delayedStartupPromise;
|
await delayedStartupPromise;
|
||||||
await SessionStore.promiseAllWindowsRestored;
|
await SessionStore.promiseAllWindowsRestored;
|
||||||
|
delete gZenUIManager.promiseInitialized;
|
||||||
|
this._initSearchBar();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
gZenCompactModeManager.init();
|
gZenCompactModeManager.init();
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
@@ -107,9 +106,10 @@
|
|||||||
closeWatermark() {
|
closeWatermark() {
|
||||||
document.documentElement.removeAttribute('zen-before-loaded');
|
document.documentElement.removeAttribute('zen-before-loaded');
|
||||||
if (Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
|
if (Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
|
||||||
|
let elementsToIgnore = this._watermarkIgnoreElements.map((id) => '#' + id).join(', ');
|
||||||
gZenUIManager.motion
|
gZenUIManager.motion
|
||||||
.animate(
|
.animate(
|
||||||
'#browser > *, #urlbar, #tabbrowser-tabbox > *',
|
'#browser > *:not(' + elementsToIgnore + '), #urlbar, #tabbrowser-tabbox > *',
|
||||||
{
|
{
|
||||||
opacity: [0, 1],
|
opacity: [0, 1],
|
||||||
},
|
},
|
||||||
@@ -146,23 +146,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
_hideUnusedElements() {
|
|
||||||
const kElements = ['firefox-view-button'];
|
|
||||||
for (let id of kElements) {
|
|
||||||
const elem = document.getElementById(id);
|
|
||||||
if (elem) {
|
|
||||||
elem.setAttribute('hidden', 'true');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
_initSearchBar() {
|
_initSearchBar() {
|
||||||
// Only focus the url bar
|
// Only focus the url bar
|
||||||
gURLBar.focus();
|
gURLBar.focus();
|
||||||
|
|
||||||
gURLBar._initCopyCutController();
|
|
||||||
gURLBar._initPasteAndGo();
|
|
||||||
gURLBar._initStripOnShare();
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_checkForWelcomePage() {
|
_checkForWelcomePage() {
|
||||||
@@ -176,5 +162,11 @@
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
ZenStartup.init();
|
window.addEventListener(
|
||||||
|
'MozBeforeInitialXULLayout',
|
||||||
|
() => {
|
||||||
|
ZenStartup.init();
|
||||||
|
},
|
||||||
|
{ once: true }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
@@ -34,8 +34,6 @@ var gZenUIManager = {
|
|||||||
true
|
true
|
||||||
);
|
);
|
||||||
|
|
||||||
gURLBar._zenTrimURL = this.urlbarTrim.bind(this);
|
|
||||||
|
|
||||||
document.addEventListener('mousedown', this.handleMouseDown.bind(this), true);
|
document.addEventListener('mousedown', this.handleMouseDown.bind(this), true);
|
||||||
|
|
||||||
ChromeUtils.defineLazyGetter(this, 'motion', () => {
|
ChromeUtils.defineLazyGetter(this, 'motion', () => {
|
||||||
@@ -48,6 +46,8 @@ var gZenUIManager = {
|
|||||||
return document.getElementById('zen-toast-container');
|
return document.getElementById('zen-toast-container');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
gURLBar._zenTrimURL = this.urlbarTrim.bind(this);
|
||||||
|
|
||||||
new ResizeObserver(this.updateTabsToolbar.bind(this)).observe(
|
new ResizeObserver(this.updateTabsToolbar.bind(this)).observe(
|
||||||
document.getElementById('TabsToolbar')
|
document.getElementById('TabsToolbar')
|
||||||
);
|
);
|
||||||
@@ -59,7 +59,7 @@ var gZenUIManager = {
|
|||||||
)
|
)
|
||||||
).observe(gNavToolbox);
|
).observe(gNavToolbox);
|
||||||
|
|
||||||
SessionStore.promiseAllWindowsRestored.then(() => {
|
gZenWorkspaces.promiseInitialized.finally(() => {
|
||||||
this._hasLoadedDOM = true;
|
this._hasLoadedDOM = true;
|
||||||
this.updateTabsToolbar();
|
this.updateTabsToolbar();
|
||||||
});
|
});
|
||||||
@@ -67,6 +67,7 @@ var gZenUIManager = {
|
|||||||
window.addEventListener('TabClose', this.onTabClose.bind(this));
|
window.addEventListener('TabClose', this.onTabClose.bind(this));
|
||||||
|
|
||||||
gZenMediaController.init();
|
gZenMediaController.init();
|
||||||
|
gZenVerticalTabsManager.init();
|
||||||
},
|
},
|
||||||
|
|
||||||
handleMouseDown(event) {
|
handleMouseDown(event) {
|
||||||
@@ -82,6 +83,7 @@ var gZenUIManager = {
|
|||||||
'--zen-urlbar-top',
|
'--zen-urlbar-top',
|
||||||
`${window.innerHeight / 2 - Math.max(kUrlbarHeight, gURLBar.textbox.getBoundingClientRect().height) / 2}px`
|
`${window.innerHeight / 2 - Math.max(kUrlbarHeight, gURLBar.textbox.getBoundingClientRect().height) / 2}px`
|
||||||
);
|
);
|
||||||
|
gURLBar.textbox.style.setProperty('--zen-urlbar-width', `${window.innerWidth / 3}px`);
|
||||||
gZenVerticalTabsManager.actualWindowButtons.removeAttribute('zen-has-hover');
|
gZenVerticalTabsManager.actualWindowButtons.removeAttribute('zen-has-hover');
|
||||||
gZenVerticalTabsManager.recalculateURLBarHeight();
|
gZenVerticalTabsManager.recalculateURLBarHeight();
|
||||||
if (!this._preventToolbarRebuild) {
|
if (!this._preventToolbarRebuild) {
|
||||||
@@ -155,7 +157,9 @@ var gZenUIManager = {
|
|||||||
if (
|
if (
|
||||||
!el.contains(showEvent.explicitOriginalTarget) ||
|
!el.contains(showEvent.explicitOriginalTarget) ||
|
||||||
(showEvent.explicitOriginalTarget instanceof Element &&
|
(showEvent.explicitOriginalTarget instanceof Element &&
|
||||||
showEvent.explicitOriginalTarget?.closest('panel'))
|
showEvent.explicitOriginalTarget?.closest('panel')) ||
|
||||||
|
// See bug #7590: Ignore menupopup elements opening
|
||||||
|
showEvent.explicitOriginalTarget.tagName === 'menupopup'
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -451,7 +455,7 @@ var gZenUIManager = {
|
|||||||
const wrapper = document.createXULElement('hbox');
|
const wrapper = document.createXULElement('hbox');
|
||||||
const element = document.createXULElement('vbox');
|
const element = document.createXULElement('vbox');
|
||||||
const label = document.createXULElement('label');
|
const label = document.createXULElement('label');
|
||||||
document.l10n.setAttributes(label, messageId, options);
|
document.l10n.setAttributes(label, messageId, options.l10nArgs);
|
||||||
element.appendChild(label);
|
element.appendChild(label);
|
||||||
if (options.descriptionId) {
|
if (options.descriptionId) {
|
||||||
const description = document.createXULElement('label');
|
const description = document.createXULElement('label');
|
||||||
@@ -597,7 +601,7 @@ var gZenVerticalTabsManager = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
animateTab(aTab) {
|
animateTab(aTab) {
|
||||||
if (!gZenUIManager.motion || !aTab || !gZenUIManager._hasLoadedDOM) {
|
if (!gZenUIManager.motion || !aTab || !gZenUIManager._hasLoadedDOM || !aTab.isConnected) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// get next visible tab
|
// get next visible tab
|
||||||
@@ -622,7 +626,11 @@ var gZenVerticalTabsManager = {
|
|||||||
easing: 'ease-out',
|
easing: 'ease-out',
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
aTab.style.removeProperty('margin-bottom');
|
aTab.style.removeProperty('margin-bottom');
|
||||||
aTab.style.removeProperty('transform');
|
aTab.style.removeProperty('transform');
|
||||||
aTab.style.removeProperty('opacity');
|
aTab.style.removeProperty('opacity');
|
||||||
@@ -638,7 +646,11 @@ var gZenVerticalTabsManager = {
|
|||||||
easing: 'ease-out',
|
easing: 'ease-out',
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then(() => {
|
.then(() => {})
|
||||||
|
.catch((err) => {
|
||||||
|
console.error(err);
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
aTab.querySelector('.tab-stack').style.removeProperty('filter');
|
aTab.querySelector('.tab-stack').style.removeProperty('filter');
|
||||||
});
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
@@ -745,7 +757,9 @@ var gZenVerticalTabsManager = {
|
|||||||
document.getElementById('urlbar').style.setProperty('--urlbar-height', '32px');
|
document.getElementById('urlbar').style.setProperty('--urlbar-height', '32px');
|
||||||
} else if (gURLBar.getAttribute('breakout-extend') !== 'true') {
|
} else if (gURLBar.getAttribute('breakout-extend') !== 'true') {
|
||||||
try {
|
try {
|
||||||
gURLBar.zenUpdateLayoutBreakout();
|
gURLBar.zenUpdateLayoutBreakout().then(() => {
|
||||||
|
gURLBar.valueFormatter._formatURL();
|
||||||
|
});
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.warn(e);
|
console.warn(e);
|
||||||
}
|
}
|
||||||
@@ -955,12 +969,23 @@ var gZenVerticalTabsManager = {
|
|||||||
gZenCompactModeManager.getAndApplySidebarWidth();
|
gZenCompactModeManager.getAndApplySidebarWidth();
|
||||||
}
|
}
|
||||||
gZenUIManager.updateTabsToolbar();
|
gZenUIManager.updateTabsToolbar();
|
||||||
|
this.rebuildURLBarMenus();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
this._isUpdating = false;
|
this._isUpdating = false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
rebuildURLBarMenus() {
|
||||||
|
if (document.getElementById('paste-and-go')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
gURLBar._initCopyCutController();
|
||||||
|
gURLBar._initPasteAndGo();
|
||||||
|
gURLBar._initStripOnShare();
|
||||||
|
gURLBar._updatePlaceholderFromDefaultEngine();
|
||||||
|
},
|
||||||
|
|
||||||
rebuildAreas() {
|
rebuildAreas() {
|
||||||
CustomizableUI.zenInternalCU._rebuildRegisteredAreas(/* zenDontRebuildCollapsed */ true);
|
CustomizableUI.zenInternalCU._rebuildRegisteredAreas(/* zenDontRebuildCollapsed */ true);
|
||||||
},
|
},
|
||||||
@@ -1068,7 +1093,9 @@ var gZenVerticalTabsManager = {
|
|||||||
!gZenVerticalTabsManager._prefsSidebarExpanded
|
!gZenVerticalTabsManager._prefsSidebarExpanded
|
||||||
)
|
)
|
||||||
return;
|
return;
|
||||||
this._tabEdited = event.target.closest('.tabbrowser-tab');
|
this._tabEdited =
|
||||||
|
event.target.closest('.tabbrowser-tab') ||
|
||||||
|
event.target.closest('.zen-current-workspace-indicator-name');
|
||||||
if (
|
if (
|
||||||
!this._tabEdited ||
|
!this._tabEdited ||
|
||||||
((!this._tabEdited.pinned || this._tabEdited.hasAttribute('zen-essential')) && isTab)
|
((!this._tabEdited.pinned || this._tabEdited.hasAttribute('zen-essential')) && isTab)
|
||||||
@@ -1076,7 +1103,7 @@ var gZenVerticalTabsManager = {
|
|||||||
this._tabEdited = null;
|
this._tabEdited = null;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
event.stopPropagation();
|
event.stopPropagation?.();
|
||||||
document.documentElement.setAttribute('zen-renaming-tab', 'true');
|
document.documentElement.setAttribute('zen-renaming-tab', 'true');
|
||||||
const label = isTab ? this._tabEdited.querySelector('.tab-label-container') : this._tabEdited;
|
const label = isTab ? this._tabEdited.querySelector('.tab-label-container') : this._tabEdited;
|
||||||
label.classList.add('tab-label-container-editing');
|
label.classList.add('tab-label-container-editing');
|
||||||
@@ -1087,15 +1114,17 @@ var gZenVerticalTabsManager = {
|
|||||||
`);
|
`);
|
||||||
label.after(container);
|
label.after(container);
|
||||||
}
|
}
|
||||||
const containerHtml = isTab
|
|
||||||
? this._tabEdited.querySelector('.tab-editor-container')
|
|
||||||
: this._tabEdited.parentNode;
|
|
||||||
const input = document.createElement('input');
|
const input = document.createElement('input');
|
||||||
input.id = 'tab-label-input';
|
input.id = 'tab-label-input';
|
||||||
input.value = isTab ? this._tabEdited.label : this._tabEdited.textContent;
|
input.value = isTab ? this._tabEdited.label : this._tabEdited.textContent;
|
||||||
input.addEventListener('keydown', this.renameTabKeydown.bind(this));
|
input.addEventListener('keydown', this.renameTabKeydown.bind(this));
|
||||||
|
|
||||||
containerHtml.appendChild(input);
|
if (isTab) {
|
||||||
|
const containerHtml = this._tabEdited.querySelector('.tab-editor-container');
|
||||||
|
containerHtml.appendChild(input);
|
||||||
|
} else {
|
||||||
|
this._tabEdited.after(input);
|
||||||
|
}
|
||||||
input.focus();
|
input.focus();
|
||||||
input.select();
|
input.select();
|
||||||
|
|
||||||
|
@@ -3,17 +3,23 @@
|
|||||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
const lazy = {};
|
const lazy = {};
|
||||||
|
|
||||||
|
var { AppConstants } = ChromeUtils.importESModule('resource://gre/modules/AppConstants.sys.mjs');
|
||||||
|
|
||||||
ChromeUtils.defineESModuleGetters(lazy, {
|
ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
BrowserWindowTracker: 'resource:///modules/BrowserWindowTracker.sys.mjs',
|
BrowserWindowTracker: 'resource:///modules/BrowserWindowTracker.sys.mjs',
|
||||||
});
|
});
|
||||||
|
|
||||||
class ZenUIMigration {
|
class ZenUIMigration {
|
||||||
PREF_NAME = 'zen.migration.version';
|
PREF_NAME = 'zen.migration.version';
|
||||||
MIGRATION_VERSION = 4;
|
MIGRATION_VERSION = 5;
|
||||||
|
|
||||||
init(isNewProfile, win) {
|
init(isNewProfile, win) {
|
||||||
if (!isNewProfile) {
|
if (!isNewProfile) {
|
||||||
this._migrate(win);
|
try {
|
||||||
|
this._migrate(win);
|
||||||
|
} catch (e) {
|
||||||
|
console.error('ZenUIMigration: Error during migration', e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this.clearVariables();
|
this.clearVariables();
|
||||||
}
|
}
|
||||||
|
144
src/zen/common/emojis/ZenEmojiPicker.mjs
Normal file
144
src/zen/common/emojis/ZenEmojiPicker.mjs
Normal file
@@ -0,0 +1,144 @@
|
|||||||
|
{
|
||||||
|
class ZenEmojiPicker extends ZenDOMOperatedFeature {
|
||||||
|
#panel;
|
||||||
|
|
||||||
|
#anchor;
|
||||||
|
|
||||||
|
#currentPromise = null;
|
||||||
|
#currentPromiseResolve = null;
|
||||||
|
#currentPromiseReject = null;
|
||||||
|
|
||||||
|
init() {
|
||||||
|
this.#panel = document.getElementById('PanelUI-zen-emojis-picker');
|
||||||
|
this.#panel.addEventListener('popupshowing', this);
|
||||||
|
this.#panel.addEventListener('popuphidden', this);
|
||||||
|
document.getElementById('PanelUI-zen-emojis-picker-none').addEventListener('command', this);
|
||||||
|
this.searchInput.addEventListener('input', this);
|
||||||
|
}
|
||||||
|
|
||||||
|
handleEvent(event) {
|
||||||
|
switch (event.type) {
|
||||||
|
case 'popupshowing':
|
||||||
|
this.#onPopupShowing(event);
|
||||||
|
break;
|
||||||
|
case 'popuphidden':
|
||||||
|
this.#onPopupHidden(event);
|
||||||
|
break;
|
||||||
|
case 'command':
|
||||||
|
if (event.target.id === 'PanelUI-zen-emojis-picker-none') {
|
||||||
|
this.#selectEmoji(null);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'input':
|
||||||
|
this.#onSearchInput(event);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
get #emojis() {
|
||||||
|
if (this._emojis) {
|
||||||
|
return this._emojis;
|
||||||
|
}
|
||||||
|
const lazy = {};
|
||||||
|
Services.scriptloader.loadSubScript(
|
||||||
|
'chrome://browser/content/zen-components/ZenEmojisData.min.mjs',
|
||||||
|
lazy
|
||||||
|
);
|
||||||
|
this._emojis = lazy.ZenEmojisData;
|
||||||
|
return this._emojis;
|
||||||
|
}
|
||||||
|
|
||||||
|
get emojiList() {
|
||||||
|
return document.getElementById('PanelUI-zen-emojis-picker-list');
|
||||||
|
}
|
||||||
|
|
||||||
|
get searchInput() {
|
||||||
|
return document.getElementById('PanelUI-zen-emojis-picker-search');
|
||||||
|
}
|
||||||
|
|
||||||
|
#clearEmojis() {
|
||||||
|
delete this._emojis;
|
||||||
|
}
|
||||||
|
|
||||||
|
#onSearchInput(event) {
|
||||||
|
const input = event.target;
|
||||||
|
const value = input.value.trim().toLowerCase();
|
||||||
|
// search for emojis.tags and order by emojis.order
|
||||||
|
const filteredEmojis = this.#emojis
|
||||||
|
.filter((emoji) => {
|
||||||
|
return emoji.tags.some((tag) => tag.toLowerCase().includes(value));
|
||||||
|
})
|
||||||
|
.sort((a, b) => a.order - b.order);
|
||||||
|
for (const button of this.emojiList.children) {
|
||||||
|
const buttonEmoji = button.getAttribute('label');
|
||||||
|
const emojiObject = filteredEmojis.find((emoji) => emoji.emoji === buttonEmoji);
|
||||||
|
if (emojiObject) {
|
||||||
|
button.hidden = !emojiObject.tags.some((tag) => tag.toLowerCase().includes(value));
|
||||||
|
button.style.order = emojiObject.order;
|
||||||
|
} else {
|
||||||
|
button.hidden = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// note: It's async on purpose so we can render the popup before processing the emojis
|
||||||
|
async #onPopupShowing(event) {
|
||||||
|
if (event.target !== this.#panel) return;
|
||||||
|
this.searchInput.value = '';
|
||||||
|
const emojiList = this.emojiList;
|
||||||
|
for (const emoji of this.#emojis) {
|
||||||
|
const item = document.createXULElement('toolbarbutton');
|
||||||
|
item.className = 'toolbarbutton-1 zen-emojis-picker-emoji';
|
||||||
|
item.setAttribute('label', emoji.emoji);
|
||||||
|
item.setAttribute('tooltiptext', emoji.annotation);
|
||||||
|
item.addEventListener('command', () => {
|
||||||
|
this.#selectEmoji(emoji.emoji);
|
||||||
|
});
|
||||||
|
emojiList.appendChild(item);
|
||||||
|
}
|
||||||
|
setTimeout(() => {
|
||||||
|
this.searchInput.focus();
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
#onPopupHidden(event) {
|
||||||
|
if (event.target !== this.#panel) return;
|
||||||
|
this.#clearEmojis();
|
||||||
|
|
||||||
|
const emojiList = this.emojiList;
|
||||||
|
emojiList.innerHTML = '';
|
||||||
|
|
||||||
|
if (this.#currentPromiseReject) {
|
||||||
|
this.#currentPromiseReject(new Error('Emoji picker closed without selection'));
|
||||||
|
}
|
||||||
|
|
||||||
|
this.#currentPromise = null;
|
||||||
|
this.#currentPromiseResolve = null;
|
||||||
|
this.#currentPromiseReject = null;
|
||||||
|
|
||||||
|
this.#anchor.removeAttribute('zen-emoji-open');
|
||||||
|
this.#anchor = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
#selectEmoji(emoji) {
|
||||||
|
this.#currentPromiseResolve?.(emoji);
|
||||||
|
this.#panel.hidePopup();
|
||||||
|
}
|
||||||
|
|
||||||
|
open(anchor) {
|
||||||
|
if (this.#currentPromise) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
this.#currentPromise = new Promise((resolve, reject) => {
|
||||||
|
this.#currentPromiseResolve = resolve;
|
||||||
|
this.#currentPromiseReject = reject;
|
||||||
|
});
|
||||||
|
this.#anchor = anchor;
|
||||||
|
this.#anchor.setAttribute('zen-emoji-open', 'true');
|
||||||
|
this.#panel.openPopup(anchor, 'after_start', 0, 0, false, false);
|
||||||
|
return this.#currentPromise;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.gZenEmojiPicker = new ZenEmojiPicker();
|
||||||
|
}
|
1
src/zen/common/emojis/ZenEmojisData.min.mjs
Normal file
1
src/zen/common/emojis/ZenEmojisData.min.mjs
Normal file
File diff suppressed because one or more lines are too long
56
src/zen/common/emojis/fetch_emojis.py
Normal file
56
src/zen/common/emojis/fetch_emojis.py
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
|
||||||
|
import os
|
||||||
|
import requests
|
||||||
|
import json
|
||||||
|
|
||||||
|
|
||||||
|
def get_emojis(url):
|
||||||
|
"""
|
||||||
|
Fetches emojis from the given URL and formats them into a JavaScript module.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
url (str): The URL to fetch the emoji data from.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
array: A JavaScript array of emoji objects formatted for use in a module.
|
||||||
|
"""
|
||||||
|
response = requests.get(url)
|
||||||
|
response.raise_for_status() # Raise an error for bad responses
|
||||||
|
emojis_data = response.json()
|
||||||
|
|
||||||
|
# We only want "tags", "emoji" amd "order" from the dictionaries inside this array
|
||||||
|
emojis = []
|
||||||
|
for emoji in emojis_data:
|
||||||
|
emojis.append({
|
||||||
|
"tags": emoji.get("tags", []),
|
||||||
|
"order": emoji.get("order", 0),
|
||||||
|
"emoji": emoji.get("emoji", "")
|
||||||
|
})
|
||||||
|
return emojis
|
||||||
|
|
||||||
|
|
||||||
|
def get_js_code(emojis):
|
||||||
|
"""
|
||||||
|
Generates JavaScript code to export the emojis as a module.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
emojis (list): A list of emoji dictionaries.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
str: JavaScript code as a string.
|
||||||
|
"""
|
||||||
|
js_code = "var ZenEmojisData = "
|
||||||
|
# dump without unicode escape
|
||||||
|
js_code += json.dumps(emojis, ensure_ascii=False)
|
||||||
|
return js_code
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Define the URL for the emoji JSON file
|
||||||
|
url = "https://cdn.jsdelivr.net/npm/emoji-picker-element-data@^1/en/emojibase/data.json"
|
||||||
|
emojis_path = os.path.join(os.path.dirname(__file__), "ZenEmojisData.min.mjs")
|
||||||
|
emojis = get_emojis(url)
|
||||||
|
js_code = get_js_code(emojis)
|
||||||
|
with open(emojis_path, "w", encoding="utf-8") as file:
|
||||||
|
file.write(js_code)
|
||||||
|
print(f"Emojis data has been written to {emojis_path}")
|
@@ -26,7 +26,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
:root[zen-before-loaded='true'] #browser > *,
|
:root[zen-before-loaded='true'] #browser > *:not(#zen-toast-container),
|
||||||
:root[zen-before-loaded='true'] #urlbar {
|
:root[zen-before-loaded='true'] #urlbar {
|
||||||
opacity: 0 !important;
|
opacity: 0 !important;
|
||||||
}
|
}
|
||||||
@@ -78,13 +78,17 @@
|
|||||||
transition: background-color var(--inactive-window-transition);
|
transition: background-color var(--inactive-window-transition);
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-browser-grain {
|
& #zen-browser-grain {
|
||||||
content: '';
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root[zen-show-grainy-background='true'] & #zen-browser-grain {
|
||||||
|
display: flex;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-image: url(chrome://browser/content/zen-images/grain-bg.png);
|
background-image: url(chrome://browser/content/zen-images/grain-bg.png);
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
z-index: 0;
|
z-index: 1;
|
||||||
opacity: var(--zen-grainy-background-opacity, 0);
|
opacity: var(--zen-grainy-background-opacity, 0);
|
||||||
mix-blend-mode: overlay;
|
mix-blend-mode: overlay;
|
||||||
transition: opacity 0.3s ease-in-out;
|
transition: opacity 0.3s ease-in-out;
|
||||||
@@ -115,12 +119,18 @@
|
|||||||
|
|
||||||
#zen-main-app-wrapper {
|
#zen-main-app-wrapper {
|
||||||
background: var(--zen-themed-toolbar-bg-transparent);
|
background: var(--zen-themed-toolbar-bg-transparent);
|
||||||
overflow: hidden;
|
/* See bug #8814, don't an overflow here as it causes issues
|
||||||
|
* with firefox's rendering of the tab bar */
|
||||||
|
|
||||||
& > * {
|
& > * {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (-moz-windows-accent-color-in-titlebar) and ((-moz-windows-mica) or -moz-pref('browser.theme.windows.accent-color-in-tabs.enabled')) {
|
||||||
|
background: ActiveCaption;
|
||||||
|
color: CaptionText;
|
||||||
|
}
|
||||||
|
|
||||||
@media -moz-pref('zen.view.grey-out-inactive-windows') {
|
@media -moz-pref('zen.view.grey-out-inactive-windows') {
|
||||||
transition: background-color var(--inactive-window-transition);
|
transition: background-color var(--inactive-window-transition);
|
||||||
&:-moz-window-inactive {
|
&:-moz-window-inactive {
|
||||||
|
@@ -263,6 +263,10 @@ panel {
|
|||||||
--arrowpanel-menuitem-padding-inline: 15px;
|
--arrowpanel-menuitem-padding-inline: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
menuseparator {
|
||||||
|
padding-inline: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
toolbarseparator,
|
toolbarseparator,
|
||||||
menuseparator {
|
menuseparator {
|
||||||
border-width: var(--zen-panel-separator-width);
|
border-width: var(--zen-panel-separator-width);
|
||||||
@@ -330,7 +334,7 @@ menuseparator {
|
|||||||
|
|
||||||
#zen-toast-container {
|
#zen-toast-container {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
--zen-toast-spacing: max(8px, calc(var(--zen-element-separation) * 2));
|
--zen-toast-spacing: max(4px, var(--zen-element-separation));
|
||||||
top: var(--zen-toast-spacing);
|
top: var(--zen-toast-spacing);
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -392,10 +396,12 @@ menuseparator {
|
|||||||
& button {
|
& button {
|
||||||
color-scheme: dark;
|
color-scheme: dark;
|
||||||
width: min-content;
|
width: min-content;
|
||||||
padding: 0 12px !important;
|
padding: 0 10px !important;
|
||||||
min-width: unset !important;
|
min-width: unset !important;
|
||||||
margin: 0px !important;
|
margin: 0px !important;
|
||||||
border-radius: calc(var(--zen-native-inner-radius) + 2px) !important;
|
border-radius: calc(var(--zen-native-inner-radius) + 2px) !important;
|
||||||
|
background: light-dark(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.1)) !important;
|
||||||
|
border: 1px solid light-dark(rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.15)) !important;
|
||||||
|
|
||||||
:root[zen-right-side='true'] & {
|
:root[zen-right-side='true'] & {
|
||||||
order: -1;
|
order: -1;
|
||||||
@@ -412,3 +418,7 @@ menuseparator {
|
|||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
min-width: unset !important;
|
min-width: unset !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#window-modal-dialog {
|
||||||
|
inset: 0;
|
||||||
|
}
|
||||||
|
@@ -35,3 +35,66 @@ body > #confetti {
|
|||||||
#PersonalToolbar:not([collapsed='true']) {
|
#PersonalToolbar:not([collapsed='true']) {
|
||||||
min-height: 30px;
|
min-height: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Firefox View */
|
||||||
|
#firefox-view-button {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Emojis picker */
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker {
|
||||||
|
--panel-width: 250px;
|
||||||
|
--panel-padding: 0px;
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker-header {
|
||||||
|
gap: 10px;
|
||||||
|
align-items: center;
|
||||||
|
padding: 10px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker-none label {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker-search {
|
||||||
|
padding: 4px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#PanelUI-zen-emojis-picker-list {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
max-height: 265px;
|
||||||
|
overflow-y: auto;
|
||||||
|
overflow-x: hidden;
|
||||||
|
|
||||||
|
padding: 10px;
|
||||||
|
padding-top: 5px;
|
||||||
|
|
||||||
|
gap: 5px;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(28px, 1fr));
|
||||||
|
|
||||||
|
.zen-emojis-picker-emoji {
|
||||||
|
appearance: none;
|
||||||
|
font-size: 14px;
|
||||||
|
padding: 0px !important;
|
||||||
|
& image {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.zen-emojis-picker-emoji,
|
||||||
|
#PanelUI-zen-emojis-picker-none {
|
||||||
|
width: 22px;
|
||||||
|
height: 22px;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
background-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
|
||||||
|
border-radius: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -197,6 +197,8 @@
|
|||||||
--toolbar-field-background-color: var(--zen-colors-input-bg) !important;
|
--toolbar-field-background-color: var(--zen-colors-input-bg) !important;
|
||||||
--arrowpanel-background: var(--zen-dialog-background) !important;
|
--arrowpanel-background: var(--zen-dialog-background) !important;
|
||||||
|
|
||||||
|
--panel-separator-color: color-mix(in srgb, currentColor 15%, transparent) !important;
|
||||||
|
|
||||||
--zen-big-shadow: 0 0 9.73px 0px light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25));
|
--zen-big-shadow: 0 0 9.73px 0px light-dark(rgba(0, 0, 0, 0.15), rgba(0, 0, 0, 0.25));
|
||||||
--zen-active-tab-scale: 0.98;
|
--zen-active-tab-scale: 0.98;
|
||||||
|
|
||||||
|
@@ -10,7 +10,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
:root[zen-single-toolbar='true'] {
|
:root[zen-single-toolbar='true'] {
|
||||||
--urlbar-container-padding: 4px;
|
|
||||||
& #urlbar:not([breakout-extend='true']) {
|
& #urlbar:not([breakout-extend='true']) {
|
||||||
padding: 1px;
|
padding: 1px;
|
||||||
--toolbarbutton-border-radius: 6px;
|
--toolbarbutton-border-radius: 6px;
|
||||||
@@ -26,7 +25,7 @@
|
|||||||
|
|
||||||
--urlbar-margin-inline: 5px;
|
--urlbar-margin-inline: 5px;
|
||||||
--urlbar-container-padding: 5px;
|
--urlbar-container-padding: 5px;
|
||||||
:root[zen-single-toolbar='true'] {
|
:root[zen-single-toolbar='true'] & {
|
||||||
--urlbar-container-padding: 4px;
|
--urlbar-container-padding: 4px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -467,11 +466,11 @@ button.popup-notification-dropmarker {
|
|||||||
#urlbar[open][zen-floating-urlbar='true'] {
|
#urlbar[open][zen-floating-urlbar='true'] {
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
max-width: unset;
|
max-width: unset;
|
||||||
min-width: unset !important;
|
|
||||||
--urlbar-container-height: 55px !important;
|
--urlbar-container-height: 55px !important;
|
||||||
--urlbar-margin-inline: 10px !important;
|
--urlbar-margin-inline: 10px !important;
|
||||||
|
|
||||||
width: min(90%, 50rem) !important;
|
min-width: min(90%, 50rem) !important;
|
||||||
|
width: var(--zen-urlbar-width, min(90%, 50rem)) !important;
|
||||||
font-size: 1.15em !important;
|
font-size: 1.15em !important;
|
||||||
@media (-moz-platform: macos) {
|
@media (-moz-platform: macos) {
|
||||||
font-size: 1.5em !important;
|
font-size: 1.5em !important;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user