mirror of
https://github.com/zen-browser/desktop.git
synced 2025-07-07 21:49:58 +02:00
Compare commits
83 commits
Author | SHA1 | Date | |
---|---|---|---|
|
c9598e1612 | ||
|
1c37c15fc2 | ||
|
e068428601 | ||
|
1a3a8a09e1 | ||
|
f80fe998e8 | ||
|
974680e1a4 | ||
|
3b8202f207 | ||
|
f6da5047c2 | ||
|
27b03a7675 | ||
|
edf7c36145 | ||
|
4f049111b1 | ||
|
0df0d16fa4 | ||
|
0735388cb1 | ||
|
87088d016c | ||
|
a06b7b6b38 | ||
|
c84d500bd5 | ||
|
1ad8f0f5ff | ||
|
4ea3532fe1 | ||
|
a1e21546c8 | ||
|
f680b4592b | ||
|
b0ab43d19d | ||
|
60820e413d | ||
|
9e338aabbc | ||
|
6a8afc4282 | ||
|
54702d9092 | ||
|
120f15d645 | ||
|
6b306c98dc | ||
|
3da5eda339 | ||
|
2a701bd2b9 | ||
|
ed5740c24d | ||
|
d96d6831a2 | ||
|
5930552cdc | ||
|
84183910b7 | ||
|
48df87da98 | ||
|
51d4396088 | ||
|
78cd4ed095 | ||
|
69f60b7066 | ||
|
f0169277a0 | ||
|
ffdae9a05b | ||
|
47c5cc7ccb | ||
|
c664a65100 | ||
|
65c72a7871 | ||
|
76166c4aa3 | ||
|
ee20de3c3d | ||
|
3fca0657b5 | ||
|
7d7e57d6ee | ||
|
08947fd4a1 | ||
|
12ae2daeba | ||
|
fe77048619 | ||
|
9971dbd0ad | ||
|
b735567504 | ||
|
ba7eff60ef | ||
|
400598a0b1 | ||
|
dc6f46695a | ||
|
48f036d6a0 | ||
|
3a317daa87 | ||
|
8e67690f82 | ||
|
1594c5c08f | ||
|
fd4c96e4b3 | ||
|
37bd317391 | ||
|
2c53b4a8c5 | ||
|
5040df2416 | ||
|
8bc4c97215 | ||
|
a435d4ec18 | ||
|
bed6fa7eca | ||
|
dcd032856b | ||
|
bf95bc7078 | ||
|
ab2a982bf0 | ||
|
5cd1f77e2d | ||
|
a17a1da3b8 | ||
|
ecbce38f52 | ||
|
0693bb7a61 | ||
|
7f28047f82 | ||
|
d1fffc59cf | ||
|
8e799a678f | ||
|
a3f1733fd4 | ||
|
ea23c3f63d | ||
|
7d51ae1f07 | ||
|
469604dd28 | ||
|
3f77bc972b | ||
|
59263eae9e | ||
|
251967435d | ||
|
a93e50cc54 |
138 changed files with 3104 additions and 1578 deletions
2
.github/FUNDING.yml
vendored
2
.github/FUNDING.yml
vendored
|
@ -1,2 +0,0 @@
|
|||
patreon: zen_browser
|
||||
ko_fi: zen_browser
|
103
.github/workflows/build.yml
vendored
103
.github/workflows/build.yml
vendored
|
@ -50,10 +50,24 @@ on:
|
|||
default: false
|
||||
|
||||
jobs:
|
||||
debug-inputs:
|
||||
name: Debug inputs
|
||||
buildid:
|
||||
name: Generate build ID
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
buildids: ${{ steps.get.outputs.bid }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- id: get
|
||||
shell: bash -xe {0}
|
||||
run: |
|
||||
bdat=`date +"%Y%m%d%I%M%S"`
|
||||
echo "bid=${bdat}" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Debug
|
||||
run: |
|
||||
echo "create_release: ${{ inputs.create_release }}"
|
||||
|
@ -64,21 +78,28 @@ jobs:
|
|||
echo "GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}"
|
||||
echo "GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
buildid:
|
||||
name: Generate build ID
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
buildids: ${{ steps.get.outputs.bid }}
|
||||
steps:
|
||||
- id: get
|
||||
shell: bash -xe {0}
|
||||
- name: Check if correct branch
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
bdat=`date +"%Y%m%d%I%M%S"`
|
||||
echo "bid=${bdat}" >> $GITHUB_OUTPUT
|
||||
echo "Checking if we are on the correct branch"
|
||||
git branch
|
||||
git status
|
||||
git branch --show-current
|
||||
branch="${{ inputs.update_branch }}"
|
||||
if [[ $branch == "twilight" ]]; then
|
||||
branch="dev"
|
||||
elif [[ $branch == "release" ]]; then
|
||||
branch="stable"
|
||||
fi
|
||||
if [[ $(git branch --show-current) != $branch ]]; then
|
||||
echo ">>> Branch mismatch"
|
||||
# exit 1
|
||||
else
|
||||
echo ">>> Branch matches"
|
||||
fi
|
||||
|
||||
start-self-host:
|
||||
runs-on: ubuntu-latest
|
||||
needs: debug-inputs
|
||||
steps:
|
||||
- name: Download aws-cli
|
||||
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
|
||||
|
@ -101,42 +122,12 @@ jobs:
|
|||
echo "Removing self-hosted runner script"
|
||||
rm start.sh || true
|
||||
|
||||
check-build-is-correct:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [debug-inputs]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Check if correct branch
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
echo "Checking if we are on the correct branch"
|
||||
git branch
|
||||
git status
|
||||
git branch --show-current
|
||||
branch="${{ inputs.update_branch }}"
|
||||
if [[ $branch == "twilight" ]]; then
|
||||
branch="dev"
|
||||
elif [[ $branch == "release" ]]; then
|
||||
branch="stable"
|
||||
fi
|
||||
if [[ $(git branch --show-current) != $branch ]]; then
|
||||
echo ">>> Branch mismatch"
|
||||
# exit 1
|
||||
else
|
||||
echo ">>> Branch matches"
|
||||
fi
|
||||
|
||||
build-data:
|
||||
permissions:
|
||||
contents: write
|
||||
name: Generate build data
|
||||
runs-on: ubuntu-latest
|
||||
needs: check-build-is-correct
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
needs: buildid
|
||||
outputs:
|
||||
build_date: ${{ steps.data.outputs.builddate }}
|
||||
version: ${{ steps.data.outputs.version }}
|
||||
|
@ -149,7 +140,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
@ -199,7 +190,7 @@ jobs:
|
|||
name: Lint
|
||||
|
||||
check-release:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
needs: [build-data, lint]
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
|
@ -209,7 +200,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
@ -240,7 +231,7 @@ jobs:
|
|||
source:
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
needs: [build-data, check-release]
|
||||
|
||||
steps:
|
||||
|
@ -251,7 +242,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
@ -368,7 +359,7 @@ jobs:
|
|||
name: AppImage build - Linux ${{ matrix.arch }}
|
||||
permissions:
|
||||
contents: write
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
strategy:
|
||||
matrix:
|
||||
arch: [x86_64, aarch64]
|
||||
|
@ -381,7 +372,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
@ -446,7 +437,7 @@ jobs:
|
|||
path: ./dist/zen-${{ matrix.arch }}.AppImage.zsync
|
||||
|
||||
stop-self-hosted:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
needs: [windows-step-3, linux]
|
||||
if: always()
|
||||
steps:
|
||||
|
@ -487,7 +478,7 @@ jobs:
|
|||
lint,
|
||||
stop-self-hosted,
|
||||
]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
environment:
|
||||
name: ${{ inputs.update_branch == 'release' && 'Deploy-Release' || 'Deploy-Twilight' }}
|
||||
|
||||
|
@ -614,7 +605,7 @@ jobs:
|
|||
permissions: write-all
|
||||
name: Prepare Flatpak
|
||||
needs: [release, linux, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
|
||||
steps:
|
||||
- name: Checkout Flatpak repository
|
||||
|
@ -673,7 +664,7 @@ jobs:
|
|||
permissions: write-all
|
||||
name: Release Flatpak
|
||||
needs: [prepare-flatpak, build-data]
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: blacksmith-2vcpu-ubuntu-2404
|
||||
|
||||
steps:
|
||||
- name: Checkout Flatpak repository
|
||||
|
|
2
.github/workflows/code-linter.yml
vendored
2
.github/workflows/code-linter.yml
vendored
|
@ -4,7 +4,6 @@ on:
|
|||
push:
|
||||
branches:
|
||||
- dev
|
||||
workflow_dispatch:
|
||||
workflow_call:
|
||||
pull_request:
|
||||
branches:
|
||||
|
@ -16,6 +15,7 @@ permissions:
|
|||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ !contains(github.event.head_commit.message, '[no-lint]') }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
|
|
8
.github/workflows/linux-release-build.yml
vendored
8
.github/workflows/linux-release-build.yml
vendored
|
@ -26,7 +26,7 @@ jobs:
|
|||
permissions:
|
||||
contents: write
|
||||
# aarch64 does not need full 16x
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && matrix.arch == 'x86_64') && 'self-hosted' || 'ubuntu-latest' }}
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
@ -44,10 +44,6 @@ jobs:
|
|||
with:
|
||||
tool-cache: false
|
||||
|
||||
# Bug: https://github.com/actions/checkout/issues/1153
|
||||
- name: Remove zombie lock file
|
||||
run: rm -f /home/ubuntu/actions-runner/_work/desktop/desktop/.git/modules/l10n/index.lock
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
|
@ -55,7 +51,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
|
10
.github/workflows/windows-release-build.yml
vendored
10
.github/workflows/windows-release-build.yml
vendored
|
@ -35,7 +35,7 @@ jobs:
|
|||
windows-build:
|
||||
name: Build Windows - ${{ matrix.arch }}
|
||||
# aarch64 does not need full 16x, and we also dont use full LTO when generating GPO
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'ubuntu-latest' }}
|
||||
runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
|
||||
env:
|
||||
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
|
||||
CARGO_TERM_COLOR: always
|
||||
|
@ -53,10 +53,6 @@ jobs:
|
|||
with:
|
||||
tool-cache: false
|
||||
|
||||
# Bug: https://github.com/actions/checkout/issues/1153
|
||||
- name: Remove zombie lock file
|
||||
run: rm -f /home/ubuntu/actions-runner/_work/desktop/desktop/.git/modules/l10n/index.lock
|
||||
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
|
@ -64,7 +60,7 @@ jobs:
|
|||
token: ${{ secrets.DEPLOY_KEY }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: useblacksmith/setup-node@v5
|
||||
with:
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
|
@ -103,7 +99,7 @@ jobs:
|
|||
env:
|
||||
SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
|
||||
id: cache-win-cross
|
||||
uses: actions/cache@v4
|
||||
uses: useblacksmith/cache@v5
|
||||
with:
|
||||
path: ${HOME}/win-cross
|
||||
key: win-cross
|
||||
|
|
12
README.md
12
README.md
|
@ -29,11 +29,19 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
|||
|
||||
### Firefox Versions
|
||||
|
||||
- [`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`!
|
||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `140.0.2`! 🚀
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 140.0.2`!
|
||||
|
||||
### Contributing
|
||||
|
||||
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!
|
||||
|
||||
#### Partners
|
||||
|
||||
Thanks to all the partners of Zen for their support and contributions:
|
||||
|
||||
<a href="https://blacksmith.sh">
|
||||
<img src="./docs/assets/blacksmith-yellow.png" width="350px"/>
|
||||
</a>
|
||||
|
|
|
@ -1 +1 @@
|
|||
29fd9c19879c6f9bfcf414f47426d8dc00dee1a5
|
||||
d5e5ed08dac5a263dbc7784dff272198b17bbc4f
|
BIN
docs/assets/blacksmith-yellow.png
Normal file
BIN
docs/assets/blacksmith-yellow.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.2 KiB |
|
@ -17,6 +17,10 @@ The `dev` branch is the main branch of the repository, and it is the default bra
|
|||
|
||||
The `stable` branch may have hotfixes directly from the `stable` branch, and the `twilight` branch may have feature branches branched off from the `twilight` branch. This is done so that we can apply hotfixes like security patches directly to the `stable` branch without having to merge the changes from the `twilight` branch.
|
||||
|
||||
# Local Development Setup
|
||||
|
||||
Before you set up your local development environment, **read our [Building Guidelines](https://docs.zen-browser.app/guides/building)**. Skipping them can lead to avoidable build errors.
|
||||
|
||||
# Code Of Conduct
|
||||
|
||||
Please read our [Code of Conduct](../CODE_OF_CONDUCT.md) before contributing.
|
||||
|
|
337
docs/issue-metrics/2025_2025-06-01..2025-06-30.md
Normal file
337
docs/issue-metrics/2025_2025-06-01..2025-06-30.md
Normal file
|
@ -0,0 +1,337 @@
|
|||
# Issue Metrics
|
||||
|
||||
| Metric | Average | Median | 90th percentile |
|
||||
| --- | --- | --- | ---: |
|
||||
| Time to first response | 1 day, 2:17:01 | 3:36:55 | 2 days, 2:30:28 |
|
||||
| Time to close | 1 day, 5:56:40 | 8:11:14 | 3 days, 21:11:56 |
|
||||
|
||||
| Metric | Count |
|
||||
| --- | ---: |
|
||||
| Number of items that remain open | 160 |
|
||||
| Number of items closed | 159 |
|
||||
| Total number of items created | 319 |
|
||||
|
||||
| Title | URL | Time to first response | Time to close |
|
||||
| --- | --- | --- | --- |
|
||||
| Tabs from all workspaces lost when new window is opened | https://github.com/zen-browser/desktop/issues/9263 | 0:53:03 | 0:53:03 |
|
||||
| Theme switching broken for Zen 1.14b | https://github.com/zen-browser/desktop/issues/9262 | 0:35:58 | None |
|
||||
| Compact mode being disabled for the second window | https://github.com/zen-browser/desktop/issues/9260 | None | None |
|
||||
| Several Context Menus items no longer has a text. | https://github.com/zen-browser/desktop/issues/9259 | 0:36:25 | None |
|
||||
| App Crashes when all tabs are closed. | https://github.com/zen-browser/desktop/issues/9255 | 1:42:32 | None |
|
||||
| Multiple windows reopen on launch despite disabling "Open previous windows and tabs" | https://github.com/zen-browser/desktop/issues/9254 | 0:48:51 | None |
|
||||
| Tabs scrolling becomes laggy after scrolling horizontally through workspaces | https://github.com/zen-browser/desktop/issues/9253 | None | None |
|
||||
| Joyn (streaming provider) is not working with Zen | https://github.com/zen-browser/desktop/issues/9252 | 0:14:44 | 1:32:50 |
|
||||
| Private Space is pink (after updating to 1.14b) | https://github.com/zen-browser/desktop/issues/9251 | 0:51:48 | None |
|
||||
| Tabs are not unloaded by default when launching Zen | https://github.com/zen-browser/desktop/issues/9250 | 0:27:42 | 0:27:42 |
|
||||
| The Zen Browser shortcut, for closing a single tab, is not working as expected | https://github.com/zen-browser/desktop/issues/9247 | 2:19:22 | None |
|
||||
| Split Views and Tab Groups are forever lost when CTRL+W is activated to unload Zen | https://github.com/zen-browser/desktop/issues/9245 | 3:04:10 | None |
|
||||
| Bookmark bar is now white | https://github.com/zen-browser/desktop/issues/9244 | 1:42:11 | 3:52:48 |
|
||||
| Closing the last tab in a space quits the browser | https://github.com/zen-browser/desktop/issues/9243 | 3:36:55 | 3:36:55 |
|
||||
| The Option+Cmd+ArrowRight set as Forward Workspace shortcut does not change workspace | https://github.com/zen-browser/desktop/issues/9241 | None | None |
|
||||
| "Create Space" Translation error | https://github.com/zen-browser/desktop/issues/9239 | None | None |
|
||||
| Zoom Indicator is always white, which is unreadable in darkmode | https://github.com/zen-browser/desktop/issues/9238 | None | None |
|
||||
| In compact mode, the sidebar does not collapse on a blank page | https://github.com/zen-browser/desktop/issues/9237 | 1:48:18 | None |
|
||||
| The Essential tabs cannot be uninstalled using CTRL+W | https://github.com/zen-browser/desktop/issues/9236 | 2:43:01 | 3:18:38 |
|
||||
| Pressing the mouse "forward"/"backward" keys sometimes switches workspaces instead of navigating the tab history | https://github.com/zen-browser/desktop/issues/9235 | 0:10:08 | None |
|
||||
| Can not restore tabs at Startup | https://github.com/zen-browser/desktop/issues/9234 | 1 day, 1:47:23 | None |
|
||||
| When clicking new tab the url bar opens instead of a new page | https://github.com/zen-browser/desktop/issues/9233 | None | 0:02:26 |
|
||||
| Two different dark modes in 1.14b | https://github.com/zen-browser/desktop/issues/9232 | 1:22:38 | None |
|
||||
| spaces dissapear | https://github.com/zen-browser/desktop/issues/9231 | None | None |
|
||||
| No way to unbind the new keybord shortcut CMD+OPT+right/left arrow to switch btween tabs | https://github.com/zen-browser/desktop/issues/9230 | None | 1:18:39 |
|
||||
| Zen browser no loger has dark mode after update | https://github.com/zen-browser/desktop/issues/9229 | 0:20:16 | None |
|
||||
| Text is black | https://github.com/zen-browser/desktop/issues/9228 | 0:13:01 | None |
|
||||
| Dark Theme Different | https://github.com/zen-browser/desktop/issues/9225 | 0:24:22 | 0:35:32 |
|
||||
| bug: open tabs on startup | https://github.com/zen-browser/desktop/issues/9222 | 0:06:54 | 0:06:54 |
|
||||
| The input focus state CSS styles are wrong | https://github.com/zen-browser/desktop/issues/9220 | 2:19:22 | 8:11:14 |
|
||||
| workspace windows | https://github.com/zen-browser/desktop/issues/9218 | 0:45:18 | 0:45:18 |
|
||||
| Zen browser's letterboxing omits top margin, potentially weakening fingerprinting protection | https://github.com/zen-browser/desktop/issues/9217 | 0:18:19 | 1 day, 3:59:58 |
|
||||
| When I open the browser, all my fixed tabs pop up and load | https://github.com/zen-browser/desktop/issues/9215 | 6:53:20 | 6:53:20 |
|
||||
| Custom Search Engine Suggestion URL Doesn't Support Different Domains | https://github.com/zen-browser/desktop/issues/9214 | 9:20:22 | None |
|
||||
| Picture in Picture not resizing on other monitors & not full screening | https://github.com/zen-browser/desktop/issues/9213 | None | None |
|
||||
| Can't download videos from YouTube | https://github.com/zen-browser/desktop/issues/9211 | 1:01:58 | 1:58:54 |
|
||||
| Can't scroll through tab list while dragging a tab | https://github.com/zen-browser/desktop/issues/9207 | 14:01:51 | 14:01:50 |
|
||||
| Dragging and dropping tabs to another window sometimes sends it to the bottom of the list | https://github.com/zen-browser/desktop/issues/9206 | None | None |
|
||||
| Lastpass extension error when oppening | https://github.com/zen-browser/desktop/issues/9204 | 1 day, 1:38:07 | None |
|
||||
| The URL bar still get duplicated as the special character is typed | https://github.com/zen-browser/desktop/issues/9203 | None | None |
|
||||
| cant sign into tiktok. after typing the email and password it loads forever. google sign-in doesnt work either. it works fine on brave and edge | https://github.com/zen-browser/desktop/issues/9202 | None | None |
|
||||
| URL Bar loses focus when deleting last character | https://github.com/zen-browser/desktop/issues/9201 | None | None |
|
||||
| no icon displayed in alt-tab view when running in wayland | https://github.com/zen-browser/desktop/issues/9196 | None | None |
|
||||
| Terminal and Zen | https://github.com/zen-browser/desktop/issues/9195 | 14:31:09 | 2 days, 14:32:04 |
|
||||
| Opening extension using shortcut or when window is not in focus crashes Zen | https://github.com/zen-browser/desktop/issues/9194 | 1 day, 1:22:06 | None |
|
||||
| Fullscreening a video will start playback of another video from a different tab | https://github.com/zen-browser/desktop/issues/9193 | 1 day, 2:12:15 | None |
|
||||
| Pinned tabs gets rendered incorrectly on restart | https://github.com/zen-browser/desktop/issues/9192 | 12:48:46 | None |
|
||||
| SunCalc Website Doesn't Work | https://github.com/zen-browser/desktop/issues/9190 | 3:10:44 | 3:10:44 |
|
||||
| The theme colors are broken after update | https://github.com/zen-browser/desktop/issues/9185 | 0:39:42 | 2 days, 12:54:41 |
|
||||
| Firefox Logo in sync page | https://github.com/zen-browser/desktop/issues/9184 | None | None |
|
||||
| Crash when opening Tampermonkey on Microsoft 365 Copilot | https://github.com/zen-browser/desktop/issues/9182 | 1:18:16 | None |
|
||||
| Bug: Figma Canvas Zoom Shortcut Zooms Entire Page Instead of Canvas | https://github.com/zen-browser/desktop/issues/9181 | 18:47:26 | None |
|
||||
| Importing from Arc Browser isn't generating spaces and pinned tabs | https://github.com/zen-browser/desktop/issues/9180 | 18:49:54 | 18:49:54 |
|
||||
| Unable to clear cookies and site data | https://github.com/zen-browser/desktop/issues/9178 | None | 0:14:48 |
|
||||
| Cannot restore tabs after restart | https://github.com/zen-browser/desktop/issues/9177 | 0:27:35 | 1:44:26 |
|
||||
| scroll bar moves window on mac | https://github.com/zen-browser/desktop/issues/9176 | None | 22:33:55 |
|
||||
| Focus not present when trying to use shortcuts - Google Calendar / Gmail etc | https://github.com/zen-browser/desktop/issues/9175 | 2:24:44 | 23:01:50 |
|
||||
| If you search the selected text in a search engine from a pinned tab and then turn it into a separate tab and close it, you can't open any other tab | https://github.com/zen-browser/desktop/issues/9173 | 2:34:26 | None |
|
||||
| Elements escaping page bounds | https://github.com/zen-browser/desktop/issues/9171 | 1 day, 5:00:13 | None |
|
||||
| Keyboard combo broken to switch between workspaces | https://github.com/zen-browser/desktop/issues/9170 | 4:12:33 | None |
|
||||
| Toolbar hover container does not account for bookmark section | https://github.com/zen-browser/desktop/issues/9169 | None | None |
|
||||
| Current open tabs don't appear in the search bar sometimes when I type a word from their title | https://github.com/zen-browser/desktop/issues/9166 | None | None |
|
||||
| Creating / editing names of containers does not work on Mac | https://github.com/zen-browser/desktop/issues/9164 | None | None |
|
||||
| Force clicking on MacOS open new tab and opens link in current tab | https://github.com/zen-browser/desktop/issues/9162 | 11:41:01 | None |
|
||||
| Ghost popup window of an addon | https://github.com/zen-browser/desktop/issues/9159 | 13:45:09 | None |
|
||||
| Opening addon's popup sometimes freezes the browser | https://github.com/zen-browser/desktop/issues/9158 | None | None |
|
||||
| Mouse back/forward buttons erroneously switch workspaces | https://github.com/zen-browser/desktop/issues/9157 | 14:03:54 | None |
|
||||
| First install "OOBE" not showing up again after re-install | https://github.com/zen-browser/desktop/issues/9154 | 0:15:20 | 14:46:35 |
|
||||
| Random Unresponsive Windows (Uncloseable) | https://github.com/zen-browser/desktop/issues/9152 | 1:49:02 | None |
|
||||
| Website Appearance: Automatic broken on macOS | https://github.com/zen-browser/desktop/issues/9151 | 17:00:48 | 5 days, 13:15:43 |
|
||||
| Can't make new tabs | https://github.com/zen-browser/desktop/issues/9149 | 0:20:04 | 0:36:59 |
|
||||
| Create workspace does show modal for parameters, creates default workspace that does not show tabs or workspace details until restart | https://github.com/zen-browser/desktop/issues/9147 | 23:37:11 | 1 day, 17:21:28 |
|
||||
| Severe Performance Degradation on Stripe Dashboard (`enqueueSetState` CPU-bound) | https://github.com/zen-browser/desktop/issues/9146 | None | None |
|
||||
| KeePassXC Passkey Support | https://github.com/zen-browser/desktop/issues/9145 | 1:51:40 | None |
|
||||
| The topbar buttons will still get triggered when hovering | https://github.com/zen-browser/desktop/issues/9144 | None | None |
|
||||
| Problem using Kaspersky extensions | https://github.com/zen-browser/desktop/issues/9141 | 4 days, 22:50:48 | 5 days, 2:52:28 |
|
||||
| Closing a tab doesnt switch focus to open essentials | https://github.com/zen-browser/desktop/issues/9140 | 3 days, 19:25:26 | None |
|
||||
| Previosly opened tabs aren't being restored | https://github.com/zen-browser/desktop/issues/9139 | 1 day, 5:17:36 | 1 day, 5:17:36 |
|
||||
| Can't install mods | https://github.com/zen-browser/desktop/issues/9138 | None | None |
|
||||
| Flashing background blurr when using rainmeter | https://github.com/zen-browser/desktop/issues/9137 | None | None |
|
||||
| Metamask extension does not inject on localhost dev | https://github.com/zen-browser/desktop/issues/9136 | None | None |
|
||||
| entire browser flash white on loading sites | https://github.com/zen-browser/desktop/issues/9134 | 8:37:18 | None |
|
||||
| Reopening closed tab into split/grid group causes desync | https://github.com/zen-browser/desktop/issues/9133 | None | None |
|
||||
| Issue with Dictionary Upload via .zip File in Yomitan Plugin | https://github.com/zen-browser/desktop/issues/9132 | None | None |
|
||||
| Multiple context menu options no longer appear in tab context menu | https://github.com/zen-browser/desktop/issues/9130 | None | 2:41:00 |
|
||||
| Inappropriate shared window icon position | https://github.com/zen-browser/desktop/issues/9128 | None | None |
|
||||
| Default shortcuts don't work for 60% of world population on Windows | https://github.com/zen-browser/desktop/issues/9127 | 4:07:15 | None |
|
||||
| Extension items in context menu and tab menu are duplicated every time new tab is opened or switched to | https://github.com/zen-browser/desktop/issues/9125 | None | None |
|
||||
| Tab list is not scrolled to new tab in compact mode | https://github.com/zen-browser/desktop/issues/9124 | None | None |
|
||||
| Accent Color settings not showing in settings after 1.13.2b | https://github.com/zen-browser/desktop/issues/9122 | 4:52:30 | 7:44:33 |
|
||||
| pinned extensions format weirdly with big icons and text | https://github.com/zen-browser/desktop/issues/9118 | 0:11:11 | 5:09:06 |
|
||||
| Inbuilt music player not in sync with actual music | https://github.com/zen-browser/desktop/issues/9117 | None | None |
|
||||
| Close multiple tabs(close other tabs) will make Zen crash while there some tabs has a ganlanced window | https://github.com/zen-browser/desktop/issues/9115 | 1:07:19 | None |
|
||||
| HDR blowout/fluctuations on white screens | https://github.com/zen-browser/desktop/issues/9113 | None | None |
|
||||
| Viewport doesn't resize when making the window smaller when letterboxing is enabled | https://github.com/zen-browser/desktop/issues/9111 | 1:41:49 | 3 days, 0:49:51 |
|
||||
| Tab titles unreadable on light mode | https://github.com/zen-browser/desktop/issues/9108 | None | 0:18:21 |
|
||||
| Zen not opening the tabs from the previous sessions. | https://github.com/zen-browser/desktop/issues/9107 | 1:29:08 | None |
|
||||
| 1Password Extension not rendering popup or unlocking | https://github.com/zen-browser/desktop/issues/9106 | 5 days, 15:14:33 | 5 days, 23:56:52 |
|
||||
| Compact mode breaks after browser restart on mac | https://github.com/zen-browser/desktop/issues/9103 | None | 1 day, 6:31:01 |
|
||||
| Theme does not work on Zen Browser 1.13.2b (Firefox 139.0.4) (64-bit) | https://github.com/zen-browser/desktop/issues/9102 | 0:36:53 | 1 day, 23:45:28 |
|
||||
| Sidebar glitching out in compact mode | https://github.com/zen-browser/desktop/issues/9101 | 1:29:06 | 1:29:06 |
|
||||
| Discord website + dev tools is making zen unresponsive | https://github.com/zen-browser/desktop/issues/9100 | 5:39:40 | 8 days, 18:34:36 |
|
||||
| Weird Youtube Searchbar behaviour on macOS Sequoia | https://github.com/zen-browser/desktop/issues/9096 | None | None |
|
||||
| Minimized Media Player - Music Animation Cannot be Turned Off | https://github.com/zen-browser/desktop/issues/9095 | None | None |
|
||||
| Tabs in workspace removed (except pinned/essentials) when I opened a link in glance | https://github.com/zen-browser/desktop/issues/9094 | None | None |
|
||||
| Switching tabs no longer reveals it in the side bar | https://github.com/zen-browser/desktop/issues/9090 | None | 0:13:19 |
|
||||
| https://getbootstrap.su/ is very distorted. No graphics, styles are not loaded | https://github.com/zen-browser/desktop/issues/9086 | 1:50:25 | 1:58:22 |
|
||||
| Can't login to Spotify with Zen | https://github.com/zen-browser/desktop/issues/9084 | 3:27:06 | None |
|
||||
| Pinned tabs closed when selecting all tabs and closing them | https://github.com/zen-browser/desktop/issues/9081 | None | None |
|
||||
| Bookmarks' assigment to a workspace gets messed up from time to time | https://github.com/zen-browser/desktop/issues/9080 | None | None |
|
||||
| Use "container" instead of "profile" in UI text for container features | https://github.com/zen-browser/desktop/issues/9079 | 1:06:37 | None |
|
||||
| Weird behaviour on Manjaro | https://github.com/zen-browser/desktop/issues/9076 | 18:17:17 | None |
|
||||
| Tap with 2 fingers on mac trackpad issue | https://github.com/zen-browser/desktop/issues/9071 | None | None |
|
||||
| Bitwarden Extension crashes Zen Browser | https://github.com/zen-browser/desktop/issues/9070 | 1:56:05 | None |
|
||||
| pinned tabs duplicate after start browser | https://github.com/zen-browser/desktop/issues/9069 | 9:32:56 | None |
|
||||
| 1password extension not connecting to desktop app | https://github.com/zen-browser/desktop/issues/9065 | 0:01:23 | 0:01:23 |
|
||||
| Sidebar Infinite expansion | https://github.com/zen-browser/desktop/issues/9064 | 12:17:29 | 12:17:29 |
|
||||
| Extensions Do Not Open if no Tab is Active | https://github.com/zen-browser/desktop/issues/9063 | None | 0:51:39 |
|
||||
| Closed all my tabs | https://github.com/zen-browser/desktop/issues/9062 | 12 days, 10:19:04 | None |
|
||||
| Thumb Wheel "Navigate Between Tabs" no longer works, possibly triggers wrong functions instead | https://github.com/zen-browser/desktop/issues/9061 | None | 4:40:16 |
|
||||
| Leave page ui problem. | https://github.com/zen-browser/desktop/issues/9060 | 17:48:19 | None |
|
||||
| Reopen closed tabs with Cmd+Shift+T doesn't work in newer version. | https://github.com/zen-browser/desktop/issues/9055 | 1 day, 18:09:10 | None |
|
||||
| PERDE OS SITES DEPOIS DE ALGUMAS ATUALIZAÇÕES | https://github.com/zen-browser/desktop/issues/9054 | 21:02:54 | 21:02:54 |
|
||||
| Several Video Streams do not play (Netflix, Amazon, Viki) which play on standard Firefox | https://github.com/zen-browser/desktop/issues/9053 | 0:33:55 | 1 day, 20:09:59 |
|
||||
| Workspaces can no longer be switched by left clicking workspace name | https://github.com/zen-browser/desktop/issues/9051 | 0:29:23 | 3:26:25 |
|
||||
| Split view is glitching | https://github.com/zen-browser/desktop/issues/9049 | 0:48:32 | None |
|
||||
| Strange behaviour on focus of URL Bar buttons | https://github.com/zen-browser/desktop/issues/9048 | None | None |
|
||||
| Can't remove workspace switcher from the bottom menu | https://github.com/zen-browser/desktop/issues/9047 | 2:04:04 | 2:04:04 |
|
||||
| Clicking workspace button does not do anything | https://github.com/zen-browser/desktop/issues/9046 | 2:12:08 | 2:12:08 |
|
||||
| Floating URL bar background blur doesn't cover whole tab | https://github.com/zen-browser/desktop/issues/9045 | 2:41:58 | 5:08:14 |
|
||||
| Zen Minimal Exit Menu Icon Error | https://github.com/zen-browser/desktop/issues/9044 | 3:00:40 | 3:00:40 |
|
||||
| When trying to use find in settings i need to scroll manually to find anything in keyboard shortcuts section | https://github.com/zen-browser/desktop/issues/9043 | None | None |
|
||||
| Exits compact mode after update | https://github.com/zen-browser/desktop/issues/9041 | None | 5:43:07 |
|
||||
| Zen blocks local network connections with NS_ERR_CONNECTION_REFUSED | https://github.com/zen-browser/desktop/issues/9039 | 1 day, 11:04:01 | None |
|
||||
| Google Docs doesn't respond | https://github.com/zen-browser/desktop/issues/9038 | 0:28:25 | 1 day, 1:07:21 |
|
||||
| BACKGROUD COLOUR OF THE BROWSER | https://github.com/zen-browser/desktop/issues/9037 | 0:38:57 | 0:38:57 |
|
||||
| When using azerty keyboard layout, the rebinding keys UI registers key presses as if on qwerty | https://github.com/zen-browser/desktop/issues/9036 | None | None |
|
||||
| Can't pin split views to Essentials | https://github.com/zen-browser/desktop/issues/9035 | None | None |
|
||||
| New tabs appear in pinned tabs sections after 1.13b | https://github.com/zen-browser/desktop/issues/9034 | None | None |
|
||||
| Tab Bar Width Increased After Latest Update (1.13b) | https://github.com/zen-browser/desktop/issues/9033 | 4:27:51 | None |
|
||||
| Mouse position offset issue (works fine after restarting zen everytime) | https://github.com/zen-browser/desktop/issues/9032 | None | 5 days, 21:09:09 |
|
||||
| workspace switcher no longer working in 1.13b | https://github.com/zen-browser/desktop/issues/9031 | 1:45:56 | 10:54:25 |
|
||||
| Workspace buttons sometimes stop working | https://github.com/zen-browser/desktop/issues/9029 | 14:35:26 | None |
|
||||
| Context Menu: Change tab(s) to workspace not working | https://github.com/zen-browser/desktop/issues/9028 | None | 0:54:56 |
|
||||
| Url bar/search bar wider than prior to updating | https://github.com/zen-browser/desktop/issues/9025 | 3:37:24 | 3:37:24 |
|
||||
| Can't play streaming services like Netflix and Crunchyroll. For Netflix I get error code E100. The error occurs when trying to play a video. | https://github.com/zen-browser/desktop/issues/9024 | 2:35:36 | 2:35:36 |
|
||||
| Bug with "Change Tab(s) to WorkSpace" | https://github.com/zen-browser/desktop/issues/9021 | 3:33:33 | 3:33:33 |
|
||||
| Moving tabs messes up around tabs and Essentials can't be double-clicked, nor can the url bar be clicked, because of [movingtab] attribute is not deleted | https://github.com/zen-browser/desktop/issues/9020 | None | 0:48:12 |
|
||||
| Workspace menu is no longer a menu on macOS 15.5 | https://github.com/zen-browser/desktop/issues/9019 | 1:19:42 | 1:51:41 |
|
||||
| Overaggressive Pinned Tabs unloading even while actively using the tab | https://github.com/zen-browser/desktop/issues/9015 | 1:02:17 | 1 day, 0:20:03 |
|
||||
| New tab opens in pinned tab list if other split tabs are present in pinned tabs list. | https://github.com/zen-browser/desktop/issues/9014 | None | 2:49:19 |
|
||||
| Udemy Video Not Playing in Zen Browser | https://github.com/zen-browser/desktop/issues/9013 | 2:13:49 | 3:58:13 |
|
||||
| Essentials getting removed when trying to close tab from recently used menu | https://github.com/zen-browser/desktop/issues/9012 | 1 day, 15:16:51 | None |
|
||||
| Crunchyroll videos doesn't load | https://github.com/zen-browser/desktop/issues/9010 | 3:31:02 | 8:06:40 |
|
||||
| Overflow Menu button doesn't appear in Sidebar When Single Toolbar Mode is Active | https://github.com/zen-browser/desktop/issues/9009 | None | 12:36:33 |
|
||||
| Change to different workspace for a tab in the context menu not displaying workspaces list at launch | https://github.com/zen-browser/desktop/issues/9008 | 0:05:59 | 12:56:27 |
|
||||
| Container tabs label not being shown on tab bar | https://github.com/zen-browser/desktop/issues/9007 | 1:15:35 | None |
|
||||
| Firefox themes do not apply properly to Zen | https://github.com/zen-browser/desktop/issues/9006 | 1:14:39 | 2 days, 1:15:39 |
|
||||
| Youtube will not play video on flatpak install of Zen | https://github.com/zen-browser/desktop/issues/9003 | None | 1 day, 9:03:28 |
|
||||
| NVidia driver 576.52 background app max fps setting causes low performance in zen | https://github.com/zen-browser/desktop/issues/9001 | None | None |
|
||||
| Compact mode: bookmark toolbar will stay present if you first hover for bookmar bar, then move cursor to screen edge to trigger tab bar, and then move off of tab bar to page content | https://github.com/zen-browser/desktop/issues/9000 | None | None |
|
||||
| amazon access fingerpint authentication failure | https://github.com/zen-browser/desktop/issues/8999 | None | None |
|
||||
| Unable to select element using ctrl+shift+c shortcut | https://github.com/zen-browser/desktop/issues/8998 | 1 day, 1:01:18 | None |
|
||||
| Bookmarks show duplicates when browsing in private mode | https://github.com/zen-browser/desktop/issues/8995 | None | 1 day, 13:45:17 |
|
||||
| RANDOM GREY BAR HAS FORMED ON TOP OF BROWSER WINDOW | https://github.com/zen-browser/desktop/issues/8994 | 0:03:10 | 11:14:07 |
|
||||
| Compact mode keeps toggling of on windows. | https://github.com/zen-browser/desktop/issues/8992 | None | 13:40:50 |
|
||||
| yt full screen ui out screen bug | https://github.com/zen-browser/desktop/issues/8991 | 6:12:04 | 4 days, 19:42:49 |
|
||||
| Extension not seeing tabs in deselected workspaces | https://github.com/zen-browser/desktop/issues/8989 | 2 days, 19:16:31 | None |
|
||||
| Unable to create new workspace | https://github.com/zen-browser/desktop/issues/8988 | None | 0:34:56 |
|
||||
| Spotify is buggy. | https://github.com/zen-browser/desktop/issues/8987 | 0:53:15 | 0:53:15 |
|
||||
| This is the second time Zen has crashed for the past few months that I’ve been using it. | https://github.com/zen-browser/desktop/issues/8985 | 2:06:51 | None |
|
||||
| Workspaces unlink/detach themselves from their respective Profiles/Containers | https://github.com/zen-browser/desktop/issues/8983 | 2 days, 4:00:26 | None |
|
||||
| open many tabs automaticly at the starting up | https://github.com/zen-browser/desktop/issues/8979 | 1:04:33 | 1:04:33 |
|
||||
| Sidebar doesn't hide in compact mode after moving multiple tabs | https://github.com/zen-browser/desktop/issues/8978 | None | 1:46:34 |
|
||||
| Zen settings blocked content button does not work | https://github.com/zen-browser/desktop/issues/8977 | 2 days, 4:15:20 | None |
|
||||
| Some Issues related to latest twilight 1.13t | https://github.com/zen-browser/desktop/issues/8974 | 19:12:00 | 6:20:34 |
|
||||
| Tab sidebar UI bug when toggling compact mode with shortcut in fullscreen mode | https://github.com/zen-browser/desktop/issues/8973 | 5 days, 20:05:11 | None |
|
||||
| Possible Quizlet Social Login Buy: Login Information is not being saved | https://github.com/zen-browser/desktop/issues/8971 | None | None |
|
||||
| Zen Browser isn't updating. | https://github.com/zen-browser/desktop/issues/8970 | 1 day, 1:28:03 | None |
|
||||
| expand tabs on laptop | https://github.com/zen-browser/desktop/issues/8969 | 2 days, 19:58:20 | 2 days, 20:52:55 |
|
||||
| Double-clicking pinned tab to rename isn't working for me | https://github.com/zen-browser/desktop/issues/8968 | 6:33:17 | 2 days, 21:09:49 |
|
||||
| Suddenly, the 'hide vertical tab' and 'hide top bar' settings in Zen browser's theme settings stopped working | https://github.com/zen-browser/desktop/issues/8966 | 19:05:39 | 19:05:44 |
|
||||
| Navigating to page changes pinned tab URL if set to about:blank | https://github.com/zen-browser/desktop/issues/8962 | None | None |
|
||||
| [Bug] Multi-Account Containers keyboard shortcuts do not trigger on the start page | https://github.com/zen-browser/desktop/issues/8960 | None | None |
|
||||
| Tab navigation is broken on macOS - can't select next / previous | https://github.com/zen-browser/desktop/issues/8959 | 1 day, 2:14:19 | 1 day, 5:09:42 |
|
||||
| Multiple empty window opened in background | https://github.com/zen-browser/desktop/issues/8958 | 0:26:05 | 3 days, 23:20:26 |
|
||||
| [Bug] On single toolbar mode on MacOS, the hamburger menu or the three buttons get merged with the menu bar. | https://github.com/zen-browser/desktop/issues/8957 | None | None |
|
||||
| Pinned tabs get reshuffled on startup | https://github.com/zen-browser/desktop/issues/8954 | 1 day, 22:57:54 | None |
|
||||
| Keyboard workspace shortcut priority not working with YouTube | https://github.com/zen-browser/desktop/issues/8953 | None | 9:02:07 |
|
||||
| Gmail only loads in specific workspace | https://github.com/zen-browser/desktop/issues/8952 | 11:08:45 | 21:58:34 |
|
||||
| Zen-Browser Landing Page SSL Error | https://github.com/zen-browser/desktop/issues/8948 | None | 0:04:37 |
|
||||
| Can't rename tabs on Mac | https://github.com/zen-browser/desktop/issues/8947 | 6:07:22 | 20:05:59 |
|
||||
| iCloud passwords extension doesn't work | https://github.com/zen-browser/desktop/issues/8944 | None | 4:19:07 |
|
||||
| [Windows 11] Videos do not play at Udemy.com | https://github.com/zen-browser/desktop/issues/8943 | 4:22:25 | 4:22:25 |
|
||||
| Not loading any page on Mac 15.5 (24F74) | https://github.com/zen-browser/desktop/issues/8938 | 1:26:54 | None |
|
||||
| Workspaces merge when dragging to create a new window | https://github.com/zen-browser/desktop/issues/8936 | None | None |
|
||||
| horizontal tab bar reset in biult-in multi tasking feature | https://github.com/zen-browser/desktop/issues/8935 | None | None |
|
||||
| "iCloud Passwords" Firefox addon doesn't seem to work on Zen | https://github.com/zen-browser/desktop/issues/8933 | None | 6:06:08 |
|
||||
| [meta]: High CPU / GPU / RAM usage reports | https://github.com/zen-browser/desktop/issues/8932 | 21:16:38 | None |
|
||||
| ip address not working | https://github.com/zen-browser/desktop/issues/8930 | 0:45:35 | None |
|
||||
| Prime Video Not Working – Missing EC-3 Support or Incomplete Widevine/CDM Integration | https://github.com/zen-browser/desktop/issues/8929 | 1:47:45 | 1:47:45 |
|
||||
| High CPU usage on MacOS | https://github.com/zen-browser/desktop/issues/8928 | 0:31:15 | 3:45:07 |
|
||||
| High CPU usage on Windows | https://github.com/zen-browser/desktop/issues/8925 | 5:33:23 | 8:50:37 |
|
||||
| can't access pinned extensions/addons on start page | https://github.com/zen-browser/desktop/issues/8924 | None | 8 days, 19:34:45 |
|
||||
| Videos won't stay in fullscreen in split view | https://github.com/zen-browser/desktop/issues/8923 | 15:34:05 | 15:34:05 |
|
||||
| Tab Group Disbanded When Moved But It's Work Normally On Private Window | https://github.com/zen-browser/desktop/issues/8921 | 1:03:25 | 1:35:50 |
|
||||
| Stuck in split mode when dragging and dropping tabs across windows | https://github.com/zen-browser/desktop/issues/8920 | 20 days, 14:00:37 | None |
|
||||
| Double-click actions unresponsive on Instagram within Zen Browser | https://github.com/zen-browser/desktop/issues/8919 | 1 day, 23:53:40 | 1 day, 23:53:40 |
|
||||
| Pinned tabs and essential tabs visible in private mode/ Mode incognito | https://github.com/zen-browser/desktop/issues/8918 | 0:05:50 | 2:20:09 |
|
||||
| bugs n mygreation n customization | https://github.com/zen-browser/desktop/issues/8916 | 9:49:45 | 9:51:33 |
|
||||
| Zen crashes when using Todoist | https://github.com/zen-browser/desktop/issues/8915 | None | None |
|
||||
| Auto scroll not working properly | https://github.com/zen-browser/desktop/issues/8913 | 11:50:40 | 1 day, 17:40:14 |
|
||||
| pictures downloaded/copied from carbon.sh.now is bugging | https://github.com/zen-browser/desktop/issues/8912 | 22:32:40 | None |
|
||||
| Black Screen Upon Closure | https://github.com/zen-browser/desktop/issues/8911 | 17:45:19 | 3 days, 2:53:18 |
|
||||
| Window controls are not properly placed | https://github.com/zen-browser/desktop/issues/8910 | None | 1 day, 1:09:00 |
|
||||
| Tabs not showing in vertical bar. Compact mode, windows 11 | https://github.com/zen-browser/desktop/issues/8909 | 20:15:37 | 20:27:12 |
|
||||
| Extensions only open/load with "settings" open | https://github.com/zen-browser/desktop/issues/8908 | 0:18:38 | 0:18:38 |
|
||||
| w11 Multiple Zen Tabs Briefly Appear on Startup | https://github.com/zen-browser/desktop/issues/8907 | 22:55:05 | 22:55:05 |
|
||||
| Unable to assign Ctrl+5 as shortcut to switch to workspace | https://github.com/zen-browser/desktop/issues/8903 | 1 day, 0:45:16 | None |
|
||||
| Browser freeze when restore tab using ( Ctrl/Cmd+Shift+T) | https://github.com/zen-browser/desktop/issues/8902 | None | 1 day, 0:49:18 |
|
||||
| No add to Essentials | https://github.com/zen-browser/desktop/issues/8900 | 0:05:45 | 0:05:45 |
|
||||
| Can't use "Ctrl" related features like word jumping, word erase, etc. | https://github.com/zen-browser/desktop/issues/8899 | 1:35:01 | 1:35:01 |
|
||||
| Extension Icon Size Too Large and Visually Disruptive in Browser Toolbar | https://github.com/zen-browser/desktop/issues/8898 | 2:56:38 | 2:56:38 |
|
||||
| Browser keeps freezing up - requires force quit or Mac reboot | https://github.com/zen-browser/desktop/issues/8897 | 1 day, 9:47:45 | 8 days, 20:36:50 |
|
||||
| Bleeding corners | https://github.com/zen-browser/desktop/issues/8896 | 1 day, 13:34:28 | 1 day, 13:34:28 |
|
||||
| Zen taking a long time to start and flickering on Startup especiallly around the sidebar and titlebar areas | https://github.com/zen-browser/desktop/issues/8895 | 10:56:13 | 5 days, 8:13:47 |
|
||||
| Copy current tab URL shortcut doesn't take priority over site | https://github.com/zen-browser/desktop/issues/8894 | 5 days, 11:42:03 | None |
|
||||
| Zen consistently loads certain webpages without a background color, rendering the browser theme instead | https://github.com/zen-browser/desktop/issues/8893 | 0:12:32 | 18:53:43 |
|
||||
| Scrollinig through workspaces is laggy | https://github.com/zen-browser/desktop/issues/8892 | 1 day, 15:49:33 | None |
|
||||
| Poorly formatted container selection menu when left clicking New Tab button | https://github.com/zen-browser/desktop/issues/8891 | 0:58:53 | None |
|
||||
| Sidebar auto hide in compact mode not working when global menus are enabled on Linux/Wayland | https://github.com/zen-browser/desktop/issues/8887 | None | None |
|
||||
| Touchpad swipe to switch workspace with container-specific essentials is glitchy | https://github.com/zen-browser/desktop/issues/8885 | 1 day, 22:34:43 | None |
|
||||
| [Shortcut conflict - MacOS] Forward Workspace w/ Toggle Network Monitor | https://github.com/zen-browser/desktop/issues/8884 | None | None |
|
||||
| Moving tab groups ungroups tabs / Tabbar stuck | https://github.com/zen-browser/desktop/issues/8883 | 20:09:47 | 20:09:47 |
|
||||
| Tabs don't fade when unloaded | https://github.com/zen-browser/desktop/issues/8881 | 1:24:44 | 2 days, 5:24:54 |
|
||||
| Choppy Animation in the compact mode | https://github.com/zen-browser/desktop/issues/8878 | 2 days, 2:30:28 | 2 days, 2:30:28 |
|
||||
| Voice isolation option doesn't work in google meet | https://github.com/zen-browser/desktop/issues/8877 | 21 days, 7:27:34 | None |
|
||||
| Frame drops when opening glance window. | https://github.com/zen-browser/desktop/issues/8874 | 1 day, 4:17:30 | None |
|
||||
| Container names display vertically when written in Korean. | https://github.com/zen-browser/desktop/issues/8873 | 19:48:36 | 2 days, 9:05:01 |
|
||||
| Unexpected white window border (every border except top) | https://github.com/zen-browser/desktop/issues/8869 | 3 days, 10:42:38 | None |
|
||||
| Sites with `backdrop-filter` on any element break the border radius of the window | https://github.com/zen-browser/desktop/issues/8866 | 3 days, 20:39:48 | 3 days, 20:39:48 |
|
||||
| Floating new tab bar closes when switching input methods | https://github.com/zen-browser/desktop/issues/8864 | 0:38:39 | 0:44:49 |
|
||||
| Vimium new tab opens glance view | https://github.com/zen-browser/desktop/issues/8863 | 12:13:12 | 1 day, 18:12:34 |
|
||||
| 1Password won't connect to app | https://github.com/zen-browser/desktop/issues/8860 | None | None |
|
||||
| Workspace Menu Missing After 1.12.10b Update on macOS Sequoia 15.5 | https://github.com/zen-browser/desktop/issues/8859 | 1:13:38 | 20:17:03 |
|
||||
| Cannot paste URL from Alfred clipboard history | https://github.com/zen-browser/desktop/issues/8858 | 2 days, 2:14:08 | None |
|
||||
| Save files do not correctly remember last saving location | https://github.com/zen-browser/desktop/issues/8856 | 1:14:26 | None |
|
||||
| Some default ctrl + alt + (letter) shortcuts do not work and cannot be bound either | https://github.com/zen-browser/desktop/issues/8855 | None | 4:02:22 |
|
||||
| Problem loading page/Network Protocol Error | https://github.com/zen-browser/desktop/issues/8853 | 0:04:43 | None |
|
||||
| Bookmark at toolbar disappeared | https://github.com/zen-browser/desktop/issues/8851 | 5:37:54 | 15:29:22 |
|
||||
| Audio playback randomly stops mid-playback and requires closing/reopening tab to resume (related to but distinct from #5589) | https://github.com/zen-browser/desktop/issues/8848 | 18 days, 21:28:43 | None |
|
||||
| Zen Browser unresponsive – unable to load any websites or interact with UI | https://github.com/zen-browser/desktop/issues/8846 | 0:32:50 | None |
|
||||
| Can't open link in glance window | https://github.com/zen-browser/desktop/issues/8843 | None | None |
|
||||
| WebGPU disabled on non-Mozilla branched builds effectively disabling WebGPU on all releases of Zen. | https://github.com/zen-browser/desktop/issues/8839 | 15:38:07 | 15:38:07 |
|
||||
| Opening a new profile opens zen in Virtual Desktop 1 | https://github.com/zen-browser/desktop/issues/8837 | None | 4 days, 22:17:37 |
|
||||
| Switching from a split tab to a pageless google doc messes up the position | https://github.com/zen-browser/desktop/issues/8836 | None | None |
|
||||
| Can't close tabs when collapse mode is enable | https://github.com/zen-browser/desktop/issues/8834 | 18:56:20 | None |
|
||||
| userChrome.css not applying in Flatpak version | https://github.com/zen-browser/desktop/issues/8833 | 21:39:51 | 23:47:44 |
|
||||
| Horizontal Scrollbar Appears In augmentcode.com Website | https://github.com/zen-browser/desktop/issues/8832 | None | 14 days, 21:42:29 |
|
||||
| Ctrl + T not working when watching a video in Fullscreen | https://github.com/zen-browser/desktop/issues/8830 | None | 1 day, 2:55:20 |
|
||||
| Geolocation doesn't work even when permission is granted | https://github.com/zen-browser/desktop/issues/8827 | 22:35:57 | None |
|
||||
| Cannot update browser: Zen is being updated by another instance. Issue persists after restarting PC | https://github.com/zen-browser/desktop/issues/8826 | None | None |
|
||||
| Compact mode issue after closing the current session still exist. | https://github.com/zen-browser/desktop/issues/8824 | 7 days, 18:38:34 | 9 days, 20:21:10 |
|
||||
| Tab auto unload not working with recent changes | https://github.com/zen-browser/desktop/issues/8822 | 4:49:44 | None |
|
||||
| Unloaded tabs are not dimmed after browser's restart | https://github.com/zen-browser/desktop/issues/8820 | 0:11:21 | 0:11:21 |
|
||||
| Shortcuts became very wide | https://github.com/zen-browser/desktop/issues/8819 | 0:16:30 | 0:16:30 |
|
||||
| Dragging tab inside scrollable tab bar is buggy | https://github.com/zen-browser/desktop/issues/8818 | 1 day, 7:56:07 | None |
|
||||
| Picture-in-Picture doesn't work when switching from arc to other windows/work spaces on mac | https://github.com/zen-browser/desktop/issues/8817 | 1 day, 8:30:16 | 1 day, 8:30:16 |
|
||||
| Tab Search does not work correctly | https://github.com/zen-browser/desktop/issues/8816 | None | None |
|
||||
| Browser window offset after debugger break point hit | https://github.com/zen-browser/desktop/issues/8814 | None | 5 days, 8:24:40 |
|
||||
| Can't drag multiple tabs at once and change in context menu of selected tabs | https://github.com/zen-browser/desktop/issues/8812 | None | None |
|
||||
| Mouse wheel click, ctrl/cmd+w do not close pinned tab | https://github.com/zen-browser/desktop/issues/8810 | 2:44:22 | 2:44:22 |
|
||||
| Cursor preemptively selecting a tab when triggering Ctrl + Tab | https://github.com/zen-browser/desktop/issues/8809 | 2:16:56 | 2:16:56 |
|
||||
| Zoom/scale too large unexpectly on 5k resolution screen. | https://github.com/zen-browser/desktop/issues/8808 | None | None |
|
||||
| Sidebar looks inconsistent on certain theme gradients (when tabs on right is selected) | https://github.com/zen-browser/desktop/issues/8807 | 4:41:41 | None |
|
||||
| Unable to log into the Grammarly extension | https://github.com/zen-browser/desktop/issues/8806 | 10 days, 6:51:42 | None |
|
||||
| If signed in with a Mozilla account, Tabs; Pinned tabs and Essentials' favicons are not using cached after reopening Zen | https://github.com/zen-browser/desktop/issues/8805 | 6:33:31 | 6:37:57 |
|
||||
| When in full screeen the bookmarks toolbar vanishes | https://github.com/zen-browser/desktop/issues/8804 | None | 7:21:19 |
|
||||
| All Opened tabs were deleted | https://github.com/zen-browser/desktop/issues/8802 | None | None |
|
||||
| High RAM usage with WhatsApp Web | https://github.com/zen-browser/desktop/issues/8800 | 9:32:06 | 9:32:06 |
|
||||
| Issue: Cmd + Tab Opens Unopened Essentials Tab. | https://github.com/zen-browser/desktop/issues/8799 | None | None |
|
||||
| iCloud Passwords extension stopped working | https://github.com/zen-browser/desktop/issues/8797 | 0:13:29 | 10:34:12 |
|
||||
| Tabs aren't showing on the tabs bar. | https://github.com/zen-browser/desktop/issues/8796 | 0:53:40 | None |
|
||||
| Permanent bar at the top of the window | https://github.com/zen-browser/desktop/issues/8793 | 0:02:08 | 1:43:15 |
|
||||
| Visible difference in the background color on the home page when no tabs are open | https://github.com/zen-browser/desktop/issues/8791 | 0:49:13 | None |
|
||||
| Local Theme Import via JSON Fails - Installation Always Fetches from Online Store | https://github.com/zen-browser/desktop/issues/8789 | None | None |
|
||||
| Can not disable the "new url bar" popup | https://github.com/zen-browser/desktop/issues/8788 | None | None |
|
||||
| no menu entry to just close a window | https://github.com/zen-browser/desktop/issues/8787 | 6:14:17 | None |
|
||||
| Raindrop extension shortcut does not work | https://github.com/zen-browser/desktop/issues/8785 | 13 days, 20:38:44 | None |
|
||||
| Select Elements | https://github.com/zen-browser/desktop/issues/8784 | 4:45:14 | None |
|
||||
| close tab button not working | https://github.com/zen-browser/desktop/issues/8782 | 1:18:44 | None |
|
||||
| Tab unloading feature has been removed/is missing. | https://github.com/zen-browser/desktop/issues/8781 | 5:09:53 | 22:59:59 |
|
||||
| Workspace Icons Become dots After Updating to 1.12.10b | https://github.com/zen-browser/desktop/issues/8779 | 0:09:56 | 3:17:16 |
|
||||
| Add clear option to enable/disable tab unloading. | https://github.com/zen-browser/desktop/issues/8778 | 0:17:15 | 0:17:15 |
|
||||
| favicons for split tabs in incorrect order when switching view | https://github.com/zen-browser/desktop/issues/8777 | None | None |
|
||||
| Bookmark this page icon missing rom the address bar after upgrading to Zen Browser 1.12.9b | https://github.com/zen-browser/desktop/issues/8776 | 1:26:14 | 19:08:02 |
|
||||
| Mod configs get reset to defaults after updating | https://github.com/zen-browser/desktop/issues/8775 | 3 days, 21:01:11 | None |
|
||||
| Context Menu Lacks "Open in Private Window" Option | https://github.com/zen-browser/desktop/issues/8772 | None | None |
|
||||
| Pinned tab favicons aren't dimmend when unloaded | https://github.com/zen-browser/desktop/issues/8771 | 2:02:45 | 2:02:45 |
|
||||
| Compact mode automatically turned off when starting Zen with multiple windows open | https://github.com/zen-browser/desktop/issues/8770 | None | 4:54:42 |
|
||||
| Transparent UI and covered submenus | https://github.com/zen-browser/desktop/issues/8768 | None | 1 day, 12:21:33 |
|
||||
| Accent colors do not show when browser is focused | https://github.com/zen-browser/desktop/issues/8766 | None | None |
|
||||
| `Copy Clean Link`, `Paste and Go` missing from URL bar context menu after compact mode enabled or layout change | https://github.com/zen-browser/desktop/issues/8765 | 0:52:51 | 6 days, 0:52:30 |
|
||||
| Bug Report: Application Menu Opens Automatically on Startup | https://github.com/zen-browser/desktop/issues/8764 | 5:20:27 | None |
|
||||
| Basic accessibility | https://github.com/zen-browser/desktop/issues/8763 | None | None |
|
||||
| Last update ruined everything | https://github.com/zen-browser/desktop/issues/8762 | 0:04:27 | 1:47:23 |
|
||||
| The sidebar fails to appear on hover in compact mode when positioned on the right side | https://github.com/zen-browser/desktop/issues/8760 | 0:33:22 | None |
|
||||
| Zen doesn't want to become focused when opening with Kando | https://github.com/zen-browser/desktop/issues/8759 | None | 0:22:54 |
|
||||
| Container sync deletes and changes container settings | https://github.com/zen-browser/desktop/issues/8758 | None | None |
|
||||
| Macos fullscreen doesn't allow to access the content at the top | https://github.com/zen-browser/desktop/issues/8757 | None | None |
|
||||
| Sidebar remains open after Ctrl+T and Tab when mouse is on the left (In Floating Toolbar on) | https://github.com/zen-browser/desktop/issues/8756 | 3:34:19 | None |
|
||||
| Top bar overflowing into bookmarks | https://github.com/zen-browser/desktop/issues/8755 | None | 3:55:32 |
|
||||
| delete profile but switch profile | https://github.com/zen-browser/desktop/issues/8754 | 4:08:59 | 4:08:59 |
|
||||
| Search for X still opens Glance despite it being disabled in about:config | https://github.com/zen-browser/desktop/issues/8752 | 0:56:03 | 5 days, 5:40:02 |
|
||||
| Container indicators always show on tabs dragged out of window, even if they are opened in their containers' default workspaces | https://github.com/zen-browser/desktop/issues/8750 | None | None |
|
||||
| Zen Browser can't be launched by xdg-open when set as default browser (Flatpak install) | https://github.com/zen-browser/desktop/issues/8749 | 5 days, 0:11:54 | None |
|
||||
| icon to add a new bookmark disappeared | https://github.com/zen-browser/desktop/issues/8748 | 3 days, 18:25:23 | 3:18:54 |
|
||||
| Cannot change profile not via about:profiles | https://github.com/zen-browser/desktop/issues/8746 | 3:13:45 | 13:46:02 |
|
||||
| Never-loaded tabs are not dimmed | https://github.com/zen-browser/desktop/issues/8744 | 4:16:03 | 5:44:22 |
|
||||
|
||||
_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-06-01..2025-06-30`
|
2
l10n
2
l10n
|
@ -1 +1 @@
|
|||
Subproject commit ac5ebba5c12de1190dd073993c1e46b6d1b41dab
|
||||
Subproject commit 7435b28bdf962406f7e0ec54ed1774ede5b490a9
|
|
@ -1,6 +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/.
|
||||
# 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.shortcuts", false);
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
|
||||
// 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 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
|
||||
pref("browser.startup.page", 3);
|
||||
pref("browser.sessionstore.restore_pinned_tabs_on_demand", true);
|
||||
|
||||
// Toolbars
|
||||
pref("browser.tabs.closeWindowWithLastTab", false);
|
||||
pref("browser.tabs.loadBookmarksInTabs", false);
|
||||
pref("browser.tabs.hoverPreview.enabled", false);
|
||||
pref("browser.tabs.dragdrop.moveOverThresholdPercent", 50);
|
||||
|
@ -53,3 +52,4 @@ pref("app.update.checkInstallTime.days", 6);
|
|||
// TODO: Check this out!
|
||||
pref("browser.profiles.enabled", false);
|
||||
pref("browser.tabs.groups.enabled", false);
|
||||
pref("browser.urlbar.scotchBonnet.enableOverride", false);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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
|
||||
pref("browser.privatebrowsing.vpnpromourl", "", locked);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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
|
||||
pref('xpinstall.signatures.required', true);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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/.
|
||||
|
||||
#ifdef MOZILLA_OFFICIAL
|
||||
pref('zen.welcome-screen.seen', false, sticky);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
||||
|
@ -8,11 +8,9 @@ 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);
|
||||
pref('zen.injections.match-urls', 'https://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
|
||||
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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
|
||||
|
@ -20,3 +20,5 @@ pref('zen.theme.essentials-favicon-bg', true);
|
|||
pref('zen.theme.acrylic-elements', false);
|
||||
#endif
|
||||
|
||||
# Light weight themes
|
||||
pref('zen.theme.disable-lightweight', true);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
|
|
@ -1,8 +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/.
|
||||
# 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', 200); // in ms
|
||||
pref('zen.view.sidebar-height-throttle', 0); // in ms
|
||||
pref('zen.view.sidebar-expanded.max-width', 500);
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
|
@ -15,14 +15,15 @@ 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.grey-out-inactive-windows', true);
|
||||
|
||||
pref('zen.view.show-newtab-button-border-top', false);
|
||||
pref('zen.view.show-newtab-button-top', true);
|
||||
|
||||
# 0: Dark
|
||||
# 1: Light
|
||||
# 2: Auto (system color scheme unless overridden by browser theme)
|
||||
pref('zen.view.window.scheme', 2); // auto, light, dark
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
@ -11,7 +11,7 @@ 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);
|
||||
pref('zen.workspaces.separate-essentials', true);
|
||||
|
||||
#ifdef MOZILLA_OFFICIAL
|
||||
pref('zen.workspaces.debug', false);
|
||||
|
@ -19,7 +19,7 @@ pref('zen.workspaces.container-specific-essentials-enabled', false);
|
|||
pref('zen.workspaces.debug', true);
|
||||
#endif
|
||||
|
||||
// Section: Pinned tabs management
|
||||
# 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,10 +1,10 @@
|
|||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||
index beced8067e6c8b5c8cf8e3f6060ba259ec9a294d..33a264e7f9cf97944da3888bdb957fa6e7c4c346 100644
|
||||
index 412e0879bbb0c7e7d1eb842212b064e1c77cab8f..bd23e5f2cd3f9c382f704fd1fcfdbb3edd71a454 100644
|
||||
--- a/browser/app/profile/firefox.js
|
||||
+++ b/browser/app/profile/firefox.js
|
||||
@@ -3398,3 +3398,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
||||
// Pref to enable extra logging for the content relevancy feature
|
||||
pref("toolkit.contentRelevancy.log", false);
|
||||
@@ -3361,3 +3361,5 @@ pref("toolkit.contentRelevancy.log", false);
|
||||
// rotation altogether.
|
||||
pref("browser.contextual-services.contextId.rotation-in-days", 0);
|
||||
pref("browser.contextual-services.contextId.rust-component.enabled", false);
|
||||
+
|
||||
+#include zen-browser.js
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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.leave", "0 0");
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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);
|
||||
|
||||
|
|
|
@ -1,14 +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/.
|
||||
# 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
|
||||
pref('widget.macos.titlebar-blend-mode.behind-window', true);
|
||||
// 1. hudWindow
|
||||
// 2. fullScreenUI
|
||||
// 3. popover
|
||||
// 4. menu
|
||||
// 5. toolTip
|
||||
// 6. headerView
|
||||
// 7. underlay
|
||||
pref('zen.widget.macos.window-material', 3);
|
||||
# Enable transparent background for macos
|
||||
pref('widget.macos.sidebar-blend-mode.behind-window', true);
|
||||
# 1. hudWindow
|
||||
# 2. fullScreenUI
|
||||
# 3. popover
|
||||
# 4. menu
|
||||
# 5. toolTip
|
||||
# 6. headerView
|
||||
# 7. underlay
|
||||
pref('zen.widget.macos.window-material', 1);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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("svg.context-properties.content.enabled", true);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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.section.topstories', false);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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.enableHighlightFloatingButton', true);
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
// 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 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/.
|
||||
|
||||
#ifdef XP_MACOSX
|
||||
// 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
|
||||
// required. The pref value is a bitmask:
|
||||
// 0x0: No response (other than recording for telemetry, crash reporting)
|
||||
// 0x1: Use the tab unloading feature to reduce memory use. Requires that
|
||||
// the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
|
||||
// unloading to occur.
|
||||
// 0x2: Issue the internal "memory-pressure" notification to reduce memory use
|
||||
// 0x3: Both 0x1 and 0x2.
|
||||
# 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
|
||||
# required. The pref value is a bitmask:
|
||||
# 0x0: No response (other than recording for telemetry, crash reporting)
|
||||
# 0x1: Use the tab unloading feature to reduce memory use. Requires that
|
||||
# the above "browser.tabs.unloadOnLowMemory" pref be set to true for tab
|
||||
# unloading to occur.
|
||||
# 0x2: Issue the internal "memory-pressure" notification to reduce memory use
|
||||
# 0x3: Both 0x1 and 0x2.
|
||||
pref("browser.lowMemoryResponseMask", 3);
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,7 +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 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);
|
||||
// TODO: Enable once we have a proper settings page
|
||||
# TODO: Enable once we have a proper settings page
|
||||
pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", false);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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.healthreport.uploadEnabled", false, locked);
|
||||
|
@ -25,23 +25,23 @@ pref("app.shield.optoutstudies.enabled", false, locked);
|
|||
pref("app.normandy.enabled", false);
|
||||
pref("app.normandy.api_url", "", locked);
|
||||
|
||||
// Crash reports
|
||||
# Crash reports
|
||||
pref("breakpad.reportURL", "");
|
||||
pref("browser.tabs.crashReporting.sendReport", false);
|
||||
pref("browser.crashReports.unsubmittedCheck.autoSubmit2", false);
|
||||
|
||||
// Other privacy
|
||||
# Other privacy
|
||||
pref("extensions.getAddons.cache.enabled", false);
|
||||
|
||||
// Disable cache for private browsing
|
||||
# Disable cache for private browsing
|
||||
pref("browser.privatebrowsing.forceMediaMemoryCache", true);
|
||||
|
||||
// Tracking protection
|
||||
# Tracking protection
|
||||
pref("browser.helperApps.deleteTempFileOnExit", true);
|
||||
pref("browser.uitour.enabled", false);
|
||||
|
||||
pref("privacy.globalprivacycontrol.enabled", true);
|
||||
|
||||
// Contextual identity
|
||||
# Contextual identity
|
||||
pref('privacy.userContext.enabled', true);
|
||||
pref('privacy.userContext.ui.enabled', true);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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("general.smoothScroll.msdPhysics.enabled", true);
|
||||
pref("general.smoothScroll.currentVelocityWeighting", "0.15");
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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.trending.featureGate', false);
|
||||
|
@ -12,10 +12,10 @@ pref('browser.urlbar.suggest.calculator', true);
|
|||
pref("browser.urlbar.trimHttps", true);
|
||||
pref("browser.urlbar.untrimOnUserInteraction.featureGate", true);
|
||||
|
||||
// Keep in sync with browser/components/topsites/constants.mjs
|
||||
# Keep in sync with browser/components/topsites/constants.mjs
|
||||
pref("browser.urlbar.maxRichResults", 7);
|
||||
|
||||
// Enable private suggestions
|
||||
# Enable private suggestions
|
||||
pref('browser.search.suggest.enabled', false);
|
||||
pref('browser.search.suggest.enabled.private', false);
|
||||
|
||||
|
|
|
@ -1,8 +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/.
|
||||
# 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.popups", true);
|
||||
pref("widget.windows.mica.toplevel-backdrop", 2);
|
||||
|
|
|
@ -1,6 +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/.
|
||||
# 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/.
|
||||
|
||||
#ifdef XP_UNIX
|
||||
#ifndef XP_MACOSX
|
||||
|
@ -8,12 +8,9 @@
|
|||
#endif
|
||||
#endif
|
||||
|
||||
// Dont download the multilingual dictionary
|
||||
# Dont download the multilingual dictionary
|
||||
pref("intl.multilingual.downloadEnabled", false);
|
||||
|
||||
// Theme
|
||||
pref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
|
||||
#ifdef XP_WIN
|
||||
#include windows.inc
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
|
||||
index c64980810570fcea84e33fdc2d66ac42a79f4e46..11fe00e84dbac781b3da90abb1251c70bd3b094a 100644
|
||||
index c64980810570fcea84e33fdc2d66ac42a79f4e46..aa629ebb38a9aa74048fe3fc759f716fad57d6f3 100644
|
||||
--- a/browser/base/content/aboutDialog.xhtml
|
||||
+++ b/browser/base/content/aboutDialog.xhtml
|
||||
@@ -102,10 +102,6 @@
|
||||
|
@ -13,7 +13,13 @@ index c64980810570fcea84e33fdc2d66ac42a79f4e46..11fe00e84dbac781b3da90abb1251c70
|
|||
</vbox>
|
||||
#endif
|
||||
</hbox>
|
||||
@@ -125,21 +121,17 @@
|
||||
@@ -120,26 +116,22 @@
|
||||
<vbox id="experimental" hidden="true">
|
||||
<description class="text-blurb" id="warningDesc" data-l10n-id="warningDesc-version"></description>
|
||||
<description class="text-blurb" id="communityExperimentalDesc" data-l10n-id="community-exp">
|
||||
- <label is="text-link" href="https://www.mozilla.org/?utm_source=firefox-browser&utm_medium=firefox-desktop&utm_campaign=about-dialog" data-l10n-name="community-exp-mozillaLink"/>
|
||||
+ <label is="text-link" href="https://zen-browser.app/about" data-l10n-name="community-exp-mozillaLink"/>
|
||||
<label is="text-link" useoriginprincipal="true" href="about:credits" data-l10n-name="community-exp-creditsLink"/>
|
||||
</description>
|
||||
</vbox>
|
||||
<description class="text-blurb" id="communityDesc" data-l10n-id="community-2">
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
||||
index 73593191936cc345ee8e2c28cb251dc13f4c2fd4..e6c459c1ebc60a1f3930a55e212570f696bf07a0 100644
|
||||
index f4d5125d9a1c8f0aef24536ca7d2ef3f133d8a99..cacd7f465e67226de4a366354779c6cb0cbd0b4c 100644
|
||||
--- a/browser/base/content/browser-addons.js
|
||||
+++ b/browser/base/content/browser-addons.js
|
||||
@@ -735,7 +735,7 @@ var gXPInstallObserver = {
|
||||
@@ -1057,7 +1057,7 @@ var gXPInstallObserver = {
|
||||
persistent: true,
|
||||
hideClose: true,
|
||||
popupOptions: {
|
||||
|
@ -11,7 +11,7 @@ index 73593191936cc345ee8e2c28cb251dc13f4c2fd4..e6c459c1ebc60a1f3930a55e212570f6
|
|||
},
|
||||
};
|
||||
|
||||
@@ -942,7 +942,7 @@ var gXPInstallObserver = {
|
||||
@@ -1266,7 +1266,7 @@ var gXPInstallObserver = {
|
||||
hideClose: true,
|
||||
timeout: Date.now() + 30000,
|
||||
popupOptions: {
|
||||
|
@ -20,16 +20,16 @@ index 73593191936cc345ee8e2c28cb251dc13f4c2fd4..e6c459c1ebc60a1f3930a55e212570f6
|
|||
},
|
||||
};
|
||||
|
||||
@@ -2125,7 +2125,7 @@ var gUnifiedExtensions = {
|
||||
|
||||
panel.hidden = false;
|
||||
@@ -2571,7 +2571,7 @@ var gUnifiedExtensions = {
|
||||
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
||||
this.ensureButtonShownBeforeAttachingPanel(panel);
|
||||
PanelMultiView.openPopup(panel, this._button, {
|
||||
- position: "bottomright topright",
|
||||
+ position: gZenUIManager.panelUIPosition,
|
||||
triggerEvent: aEvent,
|
||||
});
|
||||
}
|
||||
@@ -2294,18 +2294,20 @@ var gUnifiedExtensions = {
|
||||
@@ -2758,18 +2758,20 @@ var gUnifiedExtensions = {
|
||||
this._maybeMoveWidgetNodeBack(widgetId);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
||||
index 7d7e8697f02f90d4f336c9ab0a73a89848e0c21c..64e950106dd05b443ce72107613ac9cc405d56ea 100644
|
||||
index afa7f8e7dd74173bf2c696bd96f7e86e8b0126bc..4847c24923f673e91eb7fb65ea6b037f38062405 100644
|
||||
--- a/browser/base/content/browser-box.inc.xhtml
|
||||
+++ b/browser/base/content/browser-box.inc.xhtml
|
||||
@@ -23,7 +23,15 @@
|
||||
<browser id="sidebar" autoscroll="false" disablehistory="true" disablefullscreen="true" tooltip="aHTMLTooltip"/>
|
||||
@@ -25,7 +25,15 @@
|
||||
</stack>
|
||||
</vbox>
|
||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||
+<vbox flex="1" id="zen-appcontent-wrapper">
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
|
||||
index 352de44dda36e3f6672eb353f42978ede0cd2681..0fde717eaf755526ec65b676c43bd34c6a675934 100644
|
||||
index b0b2383453ef771af3eb9260618f1e2e3022eb4e..d631cc8db95b4285e892ac8fcb5e72b7da489850 100644
|
||||
--- a/browser/base/content/browser-commands.js
|
||||
+++ b/browser/base/content/browser-commands.js
|
||||
@@ -318,6 +318,10 @@ var BrowserCommands = {
|
||||
|
@ -13,18 +13,19 @@ index 352de44dda36e3f6672eb353f42978ede0cd2681..0fde717eaf755526ec65b676c43bd34c
|
|||
// A notification intended to be useful for modular peformance tracking
|
||||
// starting as close as is reasonably possible to the time when the user
|
||||
// expressed the intent to open a new tab. Since there are a lot of
|
||||
@@ -400,6 +404,10 @@ var BrowserCommands = {
|
||||
@@ -402,6 +406,11 @@ var BrowserCommands = {
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (gBrowser.selectedTab.hasAttribute("zen-empty-tab")) {
|
||||
+ gZenWorkspaces.handleTabCloseWindow();
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
// Keyboard shortcuts that would close a tab that is pinned select the first
|
||||
// unpinned tab instead.
|
||||
if (
|
||||
@@ -407,8 +415,8 @@ var BrowserCommands = {
|
||||
@@ -409,8 +418,8 @@ var BrowserCommands = {
|
||||
(event.ctrlKey || event.metaKey || event.altKey) &&
|
||||
gBrowser.selectedTab.pinned
|
||||
) {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..cc61d5a845b5ce22a61f5a1aab8b280b2bcdf101 100644
|
||||
index ad1515eb111bc2532b2f17ea28fc04463030d30d..899f4baf2cd3472abd5591f3c9987f0c02b9313f 100644
|
||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
@@ -2,7 +2,7 @@
|
||||
|
@ -29,9 +29,9 @@ index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..cc61d5a845b5ce22a61f5a1aab8b280b
|
|||
+<html:div id="zen-essentials" skipintoolbarset="true"></html:div>
|
||||
+<html:div id="zen-tabs-wrapper">
|
||||
<hbox class="tab-drop-indicator" hidden="true"/>
|
||||
<html:span id="tab-drag-empty-feedback" role="presentation"/>
|
||||
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
||||
@@ -76,6 +78,7 @@
|
||||
# significantly, there is an optimization in
|
||||
@@ -75,6 +77,7 @@
|
||||
tooltip="dynamic-shortcut-tooltip"
|
||||
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
|
||||
|
@ -39,7 +39,7 @@ index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..cc61d5a845b5ce22a61f5a1aab8b280b
|
|||
</tabs>
|
||||
|
||||
<toolbarbutton id="new-tab-button"
|
||||
@@ -101,9 +104,10 @@
|
||||
@@ -100,9 +103,10 @@
|
||||
#include private-browsing-indicator.inc.xhtml
|
||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
|
||||
index 64ded8fb2c08f1dbfec8fe08ab427a24b53f1169..9e1e888554279b6e1df3bc1cb907afd2ccb330ca 100644
|
||||
index 31d0ee325847834e7c58c1079225adf43d738bcd..4d2c69d4dd7e313bdb085530b3289dc9d93530a5 100644
|
||||
--- a/browser/base/content/navigator-toolbox.js
|
||||
+++ b/browser/base/content/navigator-toolbox.js
|
||||
@@ -8,7 +8,7 @@
|
||||
|
@ -17,8 +17,8 @@ index 64ded8fb2c08f1dbfec8fe08ab427a24b53f1169..9e1e888554279b6e1df3bc1cb907afd2
|
|||
#reader-mode-button,
|
||||
+ #zen-tabs-wrapper,
|
||||
#picture-in-picture-button,
|
||||
#shopping-sidebar-button,
|
||||
#urlbar-zoom-button,
|
||||
#star-button-box,
|
||||
@@ -208,6 +209,7 @@ document.addEventListener(
|
||||
case "vertical-tabs-newtab-button":
|
||||
case "tabs-newtab-button":
|
||||
|
|
|
@ -76,7 +76,6 @@
|
|||
|
||||
|
||||
# Images
|
||||
content/browser/zen-images/gradient.png (../../zen/images/gradient.png)
|
||||
content/browser/zen-images/brand-header.svg (../../zen/images/brand-header.svg)
|
||||
content/browser/zen-images/layouts/collapsed.png (../../zen/images/layouts/collapsed.png)
|
||||
content/browser/zen-images/layouts/multiple-toolbar.png (../../zen/images/layouts/multiple-toolbar.png)
|
||||
|
|
|
@ -5,39 +5,102 @@
|
|||
<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">
|
||||
<hbox id="PanelUI-zen-gradient-generator-scheme">
|
||||
<button id="PanelUI-zen-gradient-generator-scheme-auto" class="subviewbutton"/>
|
||||
<button id="PanelUI-zen-gradient-generator-scheme-light" class="subviewbutton"/>
|
||||
<button id="PanelUI-zen-gradient-generator-scheme-dark" class="subviewbutton"/>
|
||||
</hbox>
|
||||
<hbox 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>
|
||||
</hbox>
|
||||
<label data-l10n-id="zen-panel-ui-gradient-click-to-add" id="PanelUI-zen-gradient-generator-color-click-to-add"></label>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<toolbarbutton id="PanelUI-zen-gradient-generator-color-page-left" class="toolbarbutton-1" disabled="true" />
|
||||
<hbox id="PanelUI-zen-gradient-generator-color-pages">
|
||||
<hbox>
|
||||
<box data-lightness="90" data-algo="float" data-num-dots="1" data-position="240,240" style="background: #f4efdf;"></box>
|
||||
<box data-lightness="80" data-algo="float" data-num-dots="1" data-position="233,157" style="background: #f0b8cd;"></box>
|
||||
<box data-lightness="80" data-algo="float" data-num-dots="1" data-position="236,111" style="background: #e9c3e3;"></box>
|
||||
<box data-lightness="70" data-algo="float" data-num-dots="1" data-position="234,173" style="background: #da7682;"></box>
|
||||
<box data-lightness="70" data-algo="float" data-num-dots="1" data-position="220,187" style="background: #eb8570;"></box>
|
||||
<box data-lightness="60" data-algo="float" data-num-dots="1" data-position="225,237" style="background: #dcce7f;"></box>
|
||||
<box data-lightness="60" data-algo="float" data-num-dots="1" data-position="147,195" style="background: #5becad;"></box>
|
||||
<box data-lightness="50" data-algo="float" data-num-dots="1" data-position="81,84" style="background: #919bb5;"></box>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<box data-lightness="90" data-algo="analogous" data-num-dots="3" data-position="240,240"
|
||||
style="--c1: rgb(245, 237, 214); --c2: rgb(221, 243, 216); --c3: rgb(243, 216, 225);" />
|
||||
<box data-lightness="85" data-algo="analogous" data-num-dots="3" data-position="233,157"
|
||||
style="--c1: rgb(243, 190, 222); --c2: rgb(247, 222, 186); --c3: rgb(223, 195, 238);" />
|
||||
<box data-lightness="80" data-algo="analogous" data-num-dots="3" data-position="236,111"
|
||||
style="--c1: rgb(229, 179, 228); --c2: rgb(236, 172, 178); --c3: rgb(197, 185, 223);" />
|
||||
<box data-lightness="70" data-algo="analogous" data-num-dots="3" data-position="234,173"
|
||||
style="--c1: rgb(235, 122, 159); --c2: rgb(239, 239, 118); --c3: rgb(210, 133, 224);" />
|
||||
<box data-lightness="70" data-algo="analogous" data-num-dots="3" data-position="220,187"
|
||||
style="--c1: rgb(242, 115, 123); --c2: rgb(175, 242, 115); --c3: rgb(230, 125, 232);" />
|
||||
<box data-lightness="60" data-algo="analogous" data-num-dots="3" data-position="225,237"
|
||||
style="--c1: rgb(221, 205, 85); --c2: rgb(97, 212, 94); --c3: rgb(215, 91, 124);" />
|
||||
<box data-lightness="60" data-algo="analogous" data-num-dots="3" data-position="147,195"
|
||||
style="--c1: rgb(75, 231, 210); --c2: rgb(84, 175, 222); --c3: rgb(62, 244, 112);" />
|
||||
<box data-lightness="55" data-algo="analogous" data-num-dots="3" data-position="81,84"
|
||||
style="--c1: rgb(122, 132, 158); --c2: rgb(137, 117, 164); --c3: rgb(116, 162, 164);" />
|
||||
</hbox>
|
||||
<hbox>
|
||||
<box data-lightness="10" data-algo="float" data-num-dots="1" data-position="171,72" style="background:rgb(93, 86, 106);"></box>
|
||||
<box data-lightness="40" data-algo="float" data-num-dots="1" data-position="265,79" style="background: #997096;"></box>
|
||||
<box data-lightness="35" data-algo="float" data-num-dots="1" data-position="301,176" style="background: #956066;"></box>
|
||||
<box data-lightness="30" data-algo="float" data-num-dots="1" data-position="237,210" style="background: #9c6645;"></box>
|
||||
<box data-lightness="30" data-algo="float" data-num-dots="1" data-position="91,228" style="background: #517b6c;"></box>
|
||||
<box data-lightness="25" data-algo="float" data-num-dots="1" data-position="67,159" style="background: #576e75;"></box>
|
||||
<box data-lightness="20" data-algo="float" data-num-dots="1" data-position="314,235" style="background:rgb(131, 109, 95);"></box>
|
||||
<box data-lightness="20" data-algo="float" data-num-dots="1" data-position="118,215" style="background: #447464;"></box>
|
||||
</hbox>
|
||||
<hbox>
|
||||
<box data-lightness="10" data-algo="analogous" data-num-dots="3" data-position="171,72"
|
||||
style="--c1: rgb(23, 17, 34); --c2: rgb(37, 14, 35); --c3: rgb(18, 22, 33);" />
|
||||
<box data-lightness="40" data-algo="analogous" data-num-dots="3" data-position="265,79"
|
||||
style="--c1: rgb(128, 76, 124); --c2: rgb(141, 63, 66); --c3: rgb(97, 88, 116);" />
|
||||
<box data-lightness="35" data-algo="analogous" data-num-dots="3" data-position="301,176"
|
||||
style="--c1: rgb(122, 56, 64); --c2: rgb(126, 121, 52); --c3: rgb(111, 68, 110);" />
|
||||
<box data-lightness="30" data-algo="analogous" data-num-dots="3" data-position="237,210"
|
||||
style="--c1: rgb(131, 65, 22); --c2: rgb(64, 128, 25); --c3: rgb(122, 31, 91);" />
|
||||
<box data-lightness="30" data-algo="analogous" data-num-dots="3" data-position="91,228"
|
||||
style="--c1: rgb(45, 108, 85); --c2: rgb(52, 85, 101); --c3: rgb(52, 118, 35);" />
|
||||
<box data-lightness="25" data-algo="analogous" data-num-dots="3" data-position="67,159"
|
||||
style="--c1: rgb(45, 74, 83); --c2: rgb(46, 50, 81); --c3: rgb(38, 90, 65);" />
|
||||
<box data-lightness="20" data-algo="analogous" data-num-dots="3" data-position="314,235"
|
||||
style="--c1: rgb(64, 47, 38); --c2: rgb(55, 64, 38); --c3: rgb(59, 43, 52);" />
|
||||
<box data-lightness="20" data-algo="analogous" data-num-dots="3" data-position="118,215"
|
||||
style="--c1: rgb(22, 80, 61); --c2: rgb(26, 60, 76); --c3: rgb(27, 87, 15);" />
|
||||
</hbox>
|
||||
</hbox>
|
||||
<toolbarbutton id="PanelUI-zen-gradient-generator-color-page-right" class="toolbarbutton-1" />
|
||||
</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 flex="1" id="PanelUI-zen-gradient-opacity-wrapper">
|
||||
<box id="PanelUI-zen-gradient-slider-wave">
|
||||
<svg viewBox="0 -7.605 455 70" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMid meet">
|
||||
<path d="M 51.373 27.395 L 419.634 27.395"
|
||||
fill="none"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
style="stroke-width: 8px;"/>
|
||||
<defs>
|
||||
<linearGradient id="PanelUI-zen-gradient-generator-slider-wave-gradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="light-dark(rgb(90, 90, 90), rgb(161, 161, 161))"/>
|
||||
<stop offset="0%" stop-color="light-dark(rgb(90, 90, 90), rgba(161, 161, 161))"/>
|
||||
<stop offset="100%" stop-color="light-dark(rgba(77, 77, 77, 0.5), rgba(161, 161, 161, 0.5))"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
</box>
|
||||
<html:input type="range" min="0.3" max="0.9" value="0.4" step="0.001" id="PanelUI-zen-gradient-generator-opacity" />
|
||||
</vbox>
|
||||
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
||||
</vbox>
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<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"
|
||||
|
@ -22,8 +23,10 @@
|
|||
hide-if-usercontext-disabled="true">
|
||||
<menupopup />
|
||||
</menu>
|
||||
<menuseparator id="context_zenWorkspacesSeparator"/>
|
||||
<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,5 +1,5 @@
|
|||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||
index cebca6d017a0c3fc8eff7a38f987726324789e69..73a24df91bec368f2f27c538b37d57595e18c599 100644
|
||||
index bde641f7112adde948707c172b9f18d3635d8ef1..3f430451586904e6be086114ec10f719745093be 100644
|
||||
--- a/browser/components/BrowserGlue.sys.mjs
|
||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
|
@ -8,13 +8,14 @@ index cebca6d017a0c3fc8eff7a38f987726324789e69..73a24df91bec368f2f27c538b37d5759
|
|||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
||||
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
|
||||
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||
@@ -881,6 +882,7 @@ BrowserGlue.prototype = {
|
||||
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
|
||||
@@ -1659,6 +1660,8 @@ BrowserGlue.prototype = {
|
||||
} else if (profileDataVersion < APP_DATA_VERSION) {
|
||||
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
||||
}
|
||||
+
|
||||
+ lazy.gZenUIMigration.init(this._isNewProfile);
|
||||
},
|
||||
|
||||
lazy.ProcessHangMonitor.init();
|
||||
|
||||
+ lazy.gZenUIMigration.init(this._isNewProfile, aWindow);
|
||||
// A channel for "remote troubleshooting" code...
|
||||
let channel = new lazy.WebChannel(
|
||||
"remote-troubleshooting",
|
||||
async _showUpgradeDialog() {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
+++ b/browser/components/customizableui/content/panelUI.js
|
||||
@@ -516,8 +516,7 @@ const PanelUI = {
|
||||
|
@ -12,7 +12,20 @@ index 689205034d9df67ff1fe0ebbf4a3481a5f414391..2626b7286deb51f66b6ccbbc32d51013
|
|||
.appendChild(tempPanel);
|
||||
|
||||
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");
|
||||
});
|
||||
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
diff --git a/browser/components/extensions/parent/ext-tabs.js b/browser/components/extensions/parent/ext-tabs.js
|
||||
index 517ea0079c12941a844a4f9e4ba694c6411887ee..510ab14dfa2178c332c9862d6a01b75bd12dfe3b 100644
|
||||
index a53a12f91817a9e3d1773480928e858bc3182c77..10f6559ffb128906be31de220c93320e9a6d40e7 100644
|
||||
--- a/browser/components/extensions/parent/ext-tabs.js
|
||||
+++ b/browser/components/extensions/parent/ext-tabs.js
|
||||
@@ -482,6 +482,7 @@ this.tabs = class extends ExtensionAPIPersistent {
|
||||
@@ -494,6 +494,7 @@ this.tabs = class extends ExtensionAPIPersistent {
|
||||
}
|
||||
|
||||
let tab = tabManager.getWrapper(event.originalTarget);
|
||||
let tab = tabManager.getWrapper(updatedTab);
|
||||
+ if (!tab) return;
|
||||
|
||||
let changeInfo = {};
|
||||
for (let prop of needed) {
|
||||
@@ -836,6 +837,7 @@ this.tabs = class extends ExtensionAPIPersistent {
|
||||
@@ -848,6 +849,7 @@ this.tabs = class extends ExtensionAPIPersistent {
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -742,19 +742,13 @@ var gZenWorkspacesSettings = {
|
|||
};
|
||||
Services.prefs.addObserver('zen.tab-unloader.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.addObserver('zen.glance.enabled', tabsUnloaderPrefListener); // We can use the same listener for both prefs
|
||||
Services.prefs.addObserver(
|
||||
'zen.workspaces.container-specific-essentials-enabled',
|
||||
tabsUnloaderPrefListener
|
||||
);
|
||||
Services.prefs.addObserver('zen.workspaces.separate-essentials', tabsUnloaderPrefListener);
|
||||
Services.prefs.addObserver('zen.glance.activation-method', tabsUnloaderPrefListener);
|
||||
window.addEventListener('unload', () => {
|
||||
Services.prefs.removeObserver('zen.tab-unloader.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver('zen.glance.enabled', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver('zen.glance.activation-method', tabsUnloaderPrefListener);
|
||||
Services.prefs.removeObserver(
|
||||
'zen.workspaces.container-specific-essentials-enabled',
|
||||
tabsUnloaderPrefListener
|
||||
);
|
||||
Services.prefs.removeObserver('zen.workspaces.separate-essentials', tabsUnloaderPrefListener);
|
||||
});
|
||||
},
|
||||
};
|
||||
|
@ -987,7 +981,7 @@ var gZenCKSSettings = {
|
|||
let input = document.querySelector(
|
||||
`.${ZEN_CKS_INPUT_FIELD_CLASS}[${KEYBIND_ATTRIBUTE_KEY}="${this._currentActionID}"]`
|
||||
);
|
||||
const modifiers = new KeyShortcutModifiers(
|
||||
const modifiers = new nsKeyShortcutModifiers(
|
||||
event.ctrlKey,
|
||||
event.altKey,
|
||||
event.shiftKey,
|
||||
|
@ -1153,7 +1147,7 @@ Preferences.addAll([
|
|||
default: true,
|
||||
},
|
||||
{
|
||||
id: 'zen.workspaces.container-specific-essentials-enabled',
|
||||
id: 'zen.workspaces.separate-essentials',
|
||||
type: 'bool',
|
||||
default: false,
|
||||
},
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
preference="zen.pinned-tab-manager.restore-pinned-tabs-to-pinned-url"/>
|
||||
<checkbox id="zenPinnedTabContainerSpecificEssentials"
|
||||
data-l10n-id="zen-pinned-tab-manager-container-specific-essentials-enabled"
|
||||
preference="zen.workspaces.container-specific-essentials-enabled"/>
|
||||
preference="zen.workspaces.separate-essentials"/>
|
||||
|
||||
<hbox align="center">
|
||||
<label id="zenPinnedTabCloseShortcutBehaviorLabel" data-l10n-id="zen-pinned-tab-manager-close-shortcut-behavior-label"/>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927c24bdc6d 100644
|
||||
index be029379c101a0105d4837136e064e6007b67c3e..f998ad44015b05104e8a1dbeebd7b94e586e4fbd 100644
|
||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
@@ -2088,7 +2088,6 @@ var SessionStoreInternal = {
|
||||
@@ -2120,7 +2120,6 @@ var SessionStoreInternal = {
|
||||
if (closedWindowState) {
|
||||
let newWindowState;
|
||||
if (
|
||||
|
@ -10,7 +10,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
!lazy.SessionStartup.willRestore()
|
||||
) {
|
||||
// We want to split the window up into pinned tabs and unpinned tabs.
|
||||
@@ -2303,11 +2302,9 @@ var SessionStoreInternal = {
|
||||
@@ -2353,11 +2352,9 @@ var SessionStoreInternal = {
|
||||
tabbrowser.selectedTab.label;
|
||||
}
|
||||
|
||||
|
@ -22,7 +22,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
|
||||
// Store the window's close date to figure out when each individual tab
|
||||
// was closed. This timestamp should allow re-arranging data based on how
|
||||
@@ -3216,7 +3213,7 @@ var SessionStoreInternal = {
|
||||
@@ -3303,7 +3300,7 @@ var SessionStoreInternal = {
|
||||
if (!isPrivateWindow && tabState.isPrivate) {
|
||||
return;
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -3925,6 +3922,11 @@ var SessionStoreInternal = {
|
||||
@@ -4012,6 +4009,11 @@ var SessionStoreInternal = {
|
||||
Math.min(tabState.index, tabState.entries.length)
|
||||
);
|
||||
tabState.pinned = false;
|
||||
|
@ -43,15 +43,15 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
|
||||
if (inBackground === false) {
|
||||
aWindow.gBrowser.selectedTab = newTab;
|
||||
@@ -4361,6 +4363,7 @@ var SessionStoreInternal = {
|
||||
@@ -4448,6 +4450,7 @@ var SessionStoreInternal = {
|
||||
// Append the tab if we're opening into a different window,
|
||||
index: aSource == aTargetWindow ? pos : Infinity,
|
||||
tabIndex: aSource == aTargetWindow ? pos : Infinity,
|
||||
pinned: state.pinned,
|
||||
+ essential: state.zenEssential,
|
||||
userContextId: state.userContextId,
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
@@ -5179,7 +5182,7 @@ var SessionStoreInternal = {
|
||||
@@ -5303,7 +5306,7 @@ var SessionStoreInternal = {
|
||||
|
||||
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
|
||||
let tab = tabbrowser.tabs[i];
|
||||
|
@ -60,7 +60,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
removableTabs.push(tab);
|
||||
}
|
||||
}
|
||||
@@ -5239,7 +5242,7 @@ var SessionStoreInternal = {
|
||||
@@ -5363,7 +5366,7 @@ var SessionStoreInternal = {
|
||||
}
|
||||
|
||||
let workspaceID = aWindow.getWorkspaceID();
|
||||
|
@ -69,7 +69,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
winData.workspaceID = workspaceID;
|
||||
}
|
||||
},
|
||||
@@ -5430,14 +5433,15 @@ var SessionStoreInternal = {
|
||||
@@ -5554,14 +5557,15 @@ var SessionStoreInternal = {
|
||||
}
|
||||
|
||||
let tabbrowser = aWindow.gBrowser;
|
||||
|
@ -87,7 +87,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
continue;
|
||||
}
|
||||
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
||||
@@ -5456,8 +5460,8 @@ var SessionStoreInternal = {
|
||||
@@ -5580,8 +5584,8 @@ var SessionStoreInternal = {
|
||||
// We don't store the Firefox View tab in Session Store, so if it was the last selected "tab" when
|
||||
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
||||
// since it's only inserted into the tab strip after it's selected).
|
||||
|
@ -98,7 +98,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
winData.title = tabbrowser.tabs[0].label;
|
||||
}
|
||||
winData.selected = selectedIndex;
|
||||
@@ -5569,8 +5573,8 @@ var SessionStoreInternal = {
|
||||
@@ -5693,8 +5697,8 @@ var SessionStoreInternal = {
|
||||
// selectTab represents.
|
||||
let selectTab = 0;
|
||||
if (overwriteTabs) {
|
||||
|
@ -109,7 +109,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
selectTab = Math.min(selectTab, winData.tabs.length);
|
||||
}
|
||||
|
||||
@@ -5613,6 +5617,7 @@ var SessionStoreInternal = {
|
||||
@@ -5737,6 +5741,7 @@ var SessionStoreInternal = {
|
||||
winData.tabs,
|
||||
winData.groups ?? []
|
||||
);
|
||||
|
@ -117,7 +117,7 @@ index 8c6047e1ada5a22e57e1e665965237c9e22641d7..d3472a36fc99c488f0fd0fa8cb9c6927
|
|||
this._log.debug(
|
||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||
);
|
||||
@@ -6162,6 +6167,22 @@ var SessionStoreInternal = {
|
||||
@@ -6286,6 +6291,22 @@ var SessionStoreInternal = {
|
||||
|
||||
// Most of tabData has been restored, now continue with restoring
|
||||
// attributes that may trigger external events.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
||||
index f43ab1cf6257ff1a9c9aa522a0180fd9bbfe4036..d9714c46de860243b06af7e8343d36b107efb855 100644
|
||||
index 793ba822f087f4d198c9876ed208ff16d8a41e3b..e53ccd748de015997c355d5d37cb38cc73e90f3d 100644
|
||||
--- a/browser/components/tabbrowser/content/tab.js
|
||||
+++ b/browser/components/tabbrowser/content/tab.js
|
||||
@@ -21,6 +21,7 @@
|
||||
|
@ -68,15 +68,15 @@ index f43ab1cf6257ff1a9c9aa522a0180fd9bbfe4036..d9714c46de860243b06af7e8343d36b1
|
|||
on_click(event) {
|
||||
if (event.button != 0) {
|
||||
return;
|
||||
@@ -559,6 +568,7 @@
|
||||
telemetrySource: lazy.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
});
|
||||
@@ -561,6 +570,7 @@
|
||||
)
|
||||
);
|
||||
} else {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
|
||||
gBrowser.removeTab(this, {
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
@@ -569,6 +579,14 @@
|
||||
@@ -573,6 +583,14 @@
|
||||
// (see tabbrowser-tabs 'click' handler).
|
||||
gBrowser.tabContainer._blockDblClick = true;
|
||||
}
|
||||
|
@ -91,7 +91,7 @@ index f43ab1cf6257ff1a9c9aa522a0180fd9bbfe4036..d9714c46de860243b06af7e8343d36b1
|
|||
}
|
||||
|
||||
on_dblclick(event) {
|
||||
@@ -592,6 +610,8 @@
|
||||
@@ -596,6 +614,8 @@
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
});
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091a3a87e92 100644
|
||||
index 37570c54b06f9cebc46aa232e2d01ac5d330e17a..3a62769d327e9aa5d5c447e3931f235f984de42c 100644
|
||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
@@ -413,11 +413,41 @@
|
||||
|
@ -9,7 +9,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
+ get _numVisiblePinTabsWithoutCollapsed() {
|
||||
+ let i = 0;
|
||||
+ for (let item of this.tabContainer.ariaFocusableItems) {
|
||||
+ if (this.isTabGroupLabel(item) && item.closest("zen-folder")?.pinned) {
|
||||
+ if (this.isTabGroupLabel(item) && item.closest("tab-group")?.pinned) {
|
||||
+ i += 1;
|
||||
+ continue;
|
||||
+ }
|
||||
|
@ -188,7 +188,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} else {
|
||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||
}
|
||||
@@ -2680,6 +2726,8 @@
|
||||
@@ -2679,6 +2725,8 @@
|
||||
schemelessInput,
|
||||
hasValidUserGestureActivation = false,
|
||||
textDirectiveUserActivation = false,
|
||||
|
@ -197,7 +197,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} = {}
|
||||
) {
|
||||
// all callers of addTab that pass a params object need to pass
|
||||
@@ -2690,6 +2738,12 @@
|
||||
@@ -2689,6 +2737,12 @@
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -210,7 +210,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||
}
|
||||
@@ -2753,6 +2807,19 @@
|
||||
@@ -2752,6 +2806,19 @@
|
||||
noInitialLabel,
|
||||
skipBackgroundNotify,
|
||||
});
|
||||
|
@ -229,8 +229,8 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
+ }
|
||||
if (insertTab) {
|
||||
// Insert the tab into the tab container in the correct position.
|
||||
// For now, we support `index` as an alias for `tabIndex`.
|
||||
@@ -2765,6 +2832,7 @@
|
||||
this.#insertTabAtIndex(t, {
|
||||
@@ -2760,6 +2827,7 @@
|
||||
ownerTab,
|
||||
openerTab,
|
||||
pinned,
|
||||
|
@ -238,7 +238,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
bulkOrderedOpen,
|
||||
tabGroup: tabGroup ?? openerTab?.group,
|
||||
});
|
||||
@@ -2783,6 +2851,7 @@
|
||||
@@ -2778,6 +2846,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
|
@ -246,7 +246,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}));
|
||||
|
||||
if (focusUrlBar) {
|
||||
@@ -2902,6 +2971,12 @@
|
||||
@@ -2897,6 +2966,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -259,7 +259,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
// Additionally send pinned tab events
|
||||
if (pinned) {
|
||||
this._notifyPinnedStatus(t);
|
||||
@@ -2990,10 +3065,10 @@
|
||||
@@ -2985,10 +3060,10 @@
|
||||
isAdoptingGroup = false,
|
||||
isUserTriggered = false,
|
||||
telemetryUserCreateSource = "unknown",
|
||||
|
@ -271,7 +271,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}
|
||||
|
||||
if (!color) {
|
||||
@@ -3014,7 +3089,12 @@
|
||||
@@ -3009,7 +3084,12 @@
|
||||
label,
|
||||
isAdoptingGroup
|
||||
);
|
||||
|
@ -285,7 +285,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
group,
|
||||
insertBefore?.group ?? insertBefore
|
||||
);
|
||||
@@ -3303,6 +3383,7 @@
|
||||
@@ -3304,6 +3384,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
|
@ -293,7 +293,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}
|
||||
) {
|
||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||
@@ -3372,6 +3453,7 @@
|
||||
@@ -3373,6 +3454,7 @@
|
||||
openWindowInfo,
|
||||
name,
|
||||
skipLoad,
|
||||
|
@ -301,7 +301,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
});
|
||||
}
|
||||
|
||||
@@ -3517,7 +3599,9 @@
|
||||
@@ -3518,7 +3600,9 @@
|
||||
let shouldUpdateForPinnedTabs = false;
|
||||
/** @type {Map<TabGroupStateData['id'], TabGroupWorkingData>} */
|
||||
let tabGroupWorkingData = new Map();
|
||||
|
@ -312,7 +312,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
for (const tabGroupData of tabGroupDataList) {
|
||||
tabGroupWorkingData.set(tabGroupData.id, {
|
||||
stateData: tabGroupData,
|
||||
@@ -3560,7 +3644,7 @@
|
||||
@@ -3561,7 +3645,7 @@
|
||||
// Add a new tab if needed.
|
||||
if (!tab) {
|
||||
let createLazyBrowser =
|
||||
|
@ -321,7 +321,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
let url = "about:blank";
|
||||
if (tabData.entries?.length) {
|
||||
@@ -3598,7 +3682,8 @@
|
||||
@@ -3599,7 +3683,8 @@
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
});
|
||||
|
@ -331,7 +331,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (select) {
|
||||
tabToSelect = tab;
|
||||
}
|
||||
@@ -3622,7 +3707,8 @@
|
||||
@@ -3623,7 +3708,8 @@
|
||||
// needs calling:
|
||||
shouldUpdateForPinnedTabs = true;
|
||||
}
|
||||
|
@ -341,7 +341,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
let { groupId } = tabData;
|
||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||
// if a tab refers to a tab group we don't know, skip any group
|
||||
@@ -3636,7 +3722,10 @@
|
||||
@@ -3637,7 +3723,10 @@
|
||||
tabGroup.stateData.id,
|
||||
tabGroup.stateData.color,
|
||||
tabGroup.stateData.collapsed,
|
||||
|
@ -353,11 +353,11 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
);
|
||||
tabsFragment.appendChild(tabGroup.node);
|
||||
}
|
||||
@@ -3684,9 +3773,23 @@
|
||||
@@ -3685,9 +3774,23 @@
|
||||
// to remove the old selected tab.
|
||||
if (tabToSelect) {
|
||||
let leftoverTab = this.selectedTab;
|
||||
+ if (this._hasAlreadyInitializedZenSessionStore) {
|
||||
+ if (this._hasAlreadyInitializedZenSessionStore || !gZenWorkspaces.workspaceEnabled) {
|
||||
this.selectedTab = tabToSelect;
|
||||
this.removeTab(leftoverTab);
|
||||
+ } else {
|
||||
|
@ -377,7 +377,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
if (tabs.length > 1 || !tabs[0].selected) {
|
||||
this._updateTabsAfterInsert();
|
||||
@@ -3881,7 +3984,7 @@
|
||||
@@ -3882,7 +3985,7 @@
|
||||
// Ensure we have an index if one was not provided.
|
||||
if (typeof elementIndex != "number" && typeof tabIndex != "number") {
|
||||
// Move the new tab after another tab if needed, to the end otherwise.
|
||||
|
@ -386,7 +386,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (
|
||||
!bulkOrderedOpen &&
|
||||
((openerTab &&
|
||||
@@ -3904,7 +4007,7 @@
|
||||
@@ -3905,7 +4008,7 @@
|
||||
) {
|
||||
elementIndex = Infinity;
|
||||
} else if (previousTab.visible) {
|
||||
|
@ -395,7 +395,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||
elementIndex = 0;
|
||||
}
|
||||
@@ -3932,14 +4035,14 @@
|
||||
@@ -3933,14 +4036,14 @@
|
||||
}
|
||||
// Ensure index is within bounds.
|
||||
if (tab.pinned) {
|
||||
|
@ -414,7 +414,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
// Prevent a flash of unstyled content by setting up the tab content
|
||||
// and inherited attributes before appending it (see Bug 1592054):
|
||||
@@ -3947,7 +4050,7 @@
|
||||
@@ -3948,7 +4051,7 @@
|
||||
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
|
||||
|
@ -423,7 +423,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||
// Place at the front of, or between tabs in, the same tab group
|
||||
this.tabContainer.insertBefore(tab, itemAfter);
|
||||
@@ -3980,6 +4083,7 @@
|
||||
@@ -3981,6 +4084,7 @@
|
||||
if (pinned) {
|
||||
this._updateTabBarForPinnedTabs();
|
||||
}
|
||||
|
@ -431,17 +431,17 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -4268,6 +4372,9 @@
|
||||
@@ -4270,6 +4374,9 @@
|
||||
return;
|
||||
}
|
||||
|
||||
+ for (let tab of selectedTabs) {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
|
||||
+ }
|
||||
this.removeTabs(selectedTabs, { telemetrySource });
|
||||
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
||||
}
|
||||
|
||||
@@ -4520,6 +4627,7 @@
|
||||
@@ -4526,6 +4633,7 @@
|
||||
telemetrySource,
|
||||
} = {}
|
||||
) {
|
||||
|
@ -449,7 +449,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||
// can be considered equivalent to closing the window.
|
||||
if (
|
||||
@@ -4604,6 +4712,7 @@
|
||||
@@ -4615,6 +4723,7 @@
|
||||
if (lastToClose) {
|
||||
this.removeTab(lastToClose, aParams);
|
||||
}
|
||||
|
@ -457,7 +457,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
@@ -4641,6 +4750,12 @@
|
||||
@@ -4653,6 +4762,12 @@
|
||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||
}
|
||||
|
||||
|
@ -470,7 +470,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
// Handle requests for synchronously removing an already
|
||||
// asynchronously closing tab.
|
||||
if (!animate && aTab.closing) {
|
||||
@@ -4655,7 +4770,9 @@
|
||||
@@ -4667,7 +4782,9 @@
|
||||
// frame created for it (for example, by updating the visually selected
|
||||
// state).
|
||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||
|
@ -481,7 +481,15 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (
|
||||
!this._beginRemoveTab(aTab, {
|
||||
closeWindowFastpath: true,
|
||||
@@ -4821,7 +4938,7 @@
|
||||
@@ -4828,14 +4945,14 @@
|
||||
var newTab = false;
|
||||
if (
|
||||
aTab.visible &&
|
||||
- this.visibleTabs.length == 1 &&
|
||||
+ this.visibleTabs.length == 0 &&
|
||||
!this.tabsInCollapsedTabGroups.length
|
||||
) {
|
||||
closeWindow =
|
||||
closeWindowWithLastTab != null
|
||||
? closeWindowWithLastTab
|
||||
: !window.toolbar.visible ||
|
||||
|
@ -490,7 +498,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
if (closeWindow) {
|
||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||
@@ -4845,6 +4962,7 @@
|
||||
@@ -4859,6 +4976,7 @@
|
||||
|
||||
newTab = true;
|
||||
}
|
||||
|
@ -498,7 +506,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||
|
||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||
@@ -4885,9 +5003,7 @@
|
||||
@@ -4899,9 +5017,7 @@
|
||||
aTab._mouseleave();
|
||||
|
||||
if (newTab) {
|
||||
|
@ -509,7 +517,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} else {
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -5016,6 +5132,7 @@
|
||||
@@ -5035,6 +5151,7 @@
|
||||
this.tabs[i]._tPos = i;
|
||||
}
|
||||
|
||||
|
@ -517,7 +525,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (!this._windowIsClosing) {
|
||||
if (wasPinned) {
|
||||
this.tabContainer._positionPinnedTabs();
|
||||
@@ -5230,6 +5347,7 @@
|
||||
@@ -5249,6 +5366,7 @@
|
||||
}
|
||||
|
||||
let excludeTabs = new Set(aExcludeTabs);
|
||||
|
@ -525,7 +533,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
|
||||
// If this tab has a successor, it should be selectable, since
|
||||
// hiding or closing a tab removes that tab as a successor.
|
||||
@@ -5242,13 +5360,13 @@
|
||||
@@ -5261,13 +5379,13 @@
|
||||
!excludeTabs.has(aTab.owner) &&
|
||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||
) {
|
||||
|
@ -541,7 +549,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
);
|
||||
|
||||
let tab = this.tabContainer.findNextTab(aTab, {
|
||||
@@ -5264,7 +5382,7 @@
|
||||
@@ -5283,7 +5401,7 @@
|
||||
}
|
||||
|
||||
if (tab) {
|
||||
|
@ -550,7 +558,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}
|
||||
|
||||
// If no qualifying visible tab was found, see if there is a tab in
|
||||
@@ -5285,7 +5403,7 @@
|
||||
@@ -5304,7 +5422,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -559,7 +567,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}
|
||||
|
||||
_blurTab(aTab) {
|
||||
@@ -5686,10 +5804,10 @@
|
||||
@@ -5701,10 +5819,10 @@
|
||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||
}
|
||||
|
||||
|
@ -572,7 +580,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
aTab.selected ||
|
||||
aTab.closing ||
|
||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||
@@ -5909,7 +6027,7 @@
|
||||
@@ -5924,7 +6042,7 @@
|
||||
* `true` if element is a `<tab-group>`
|
||||
*/
|
||||
isTabGroup(element) {
|
||||
|
@ -581,7 +589,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -5986,7 +6104,7 @@
|
||||
@@ -6001,7 +6119,7 @@
|
||||
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
if (this.isTab(element) && element.pinned) {
|
||||
|
@ -590,7 +598,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
} else {
|
||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||
}
|
||||
@@ -6012,10 +6130,16 @@
|
||||
@@ -6027,10 +6145,16 @@
|
||||
this.#handleTabMove(
|
||||
element,
|
||||
() => {
|
||||
|
@ -609,7 +617,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||
neighbor.after(element);
|
||||
} else {
|
||||
@@ -6084,17 +6208,29 @@
|
||||
@@ -6099,17 +6223,29 @@
|
||||
targetElement = targetElement.group;
|
||||
}
|
||||
}
|
||||
|
@ -643,7 +651,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
if (element.pinned && this.tabContainer.verticalMode) {
|
||||
return this.tabContainer.verticalPinnedTabsContainer;
|
||||
}
|
||||
@@ -6154,7 +6290,7 @@
|
||||
@@ -6169,7 +6305,7 @@
|
||||
if (!this.isTab(aTab)) {
|
||||
throw new Error("Can only move a tab into a tab group");
|
||||
}
|
||||
|
@ -652,7 +660,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
return;
|
||||
}
|
||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||
@@ -6248,6 +6384,10 @@
|
||||
@@ -6263,6 +6399,10 @@
|
||||
|
||||
moveActionCallback();
|
||||
|
||||
|
@ -663,7 +671,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||
// changed.
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
@@ -7145,7 +7285,7 @@
|
||||
@@ -7160,7 +7300,7 @@
|
||||
// preventDefault(). It will still raise the window if appropriate.
|
||||
break;
|
||||
}
|
||||
|
@ -672,7 +680,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
window.focus();
|
||||
aEvent.preventDefault();
|
||||
break;
|
||||
@@ -8044,6 +8184,7 @@
|
||||
@@ -8059,6 +8199,7 @@
|
||||
aWebProgress.isTopLevel
|
||||
) {
|
||||
this.mTab.setAttribute("busy", "true");
|
||||
|
@ -680,7 +688,7 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||
}
|
||||
@@ -9009,7 +9150,7 @@ var TabContextMenu = {
|
||||
@@ -9022,7 +9163,7 @@ var TabContextMenu = {
|
||||
);
|
||||
contextUnpinSelectedTabs.hidden =
|
||||
!this.contextTab.pinned || !this.multiselected;
|
||||
|
@ -689,11 +697,11 @@ index d5aa64842a35c6697263c63fd3a0571b64b01344..478050fd5202b70ee3191471a017e091
|
|||
// Move Tab items
|
||||
let contextMoveTabOptions = document.getElementById(
|
||||
"context_moveTabOptions"
|
||||
@@ -9278,6 +9419,7 @@ var TabContextMenu = {
|
||||
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
});
|
||||
@@ -9298,6 +9439,7 @@ var TabContextMenu = {
|
||||
)
|
||||
);
|
||||
} else {
|
||||
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
|
||||
gBrowser.removeTab(this.contextTab, {
|
||||
animate: true,
|
||||
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||
...gBrowser.TabMetrics.userTriggeredContext(
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||
index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b53c8dd285 100644
|
||||
index 67bba60cfc21b940f263e1eb26b8b5429355660f..9f73966429d8e82bb9ef0af73a996c8cff230eab 100644
|
||||
--- a/browser/components/tabbrowser/content/tabs.js
|
||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||
@@ -83,7 +83,7 @@
|
||||
|
@ -46,7 +46,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
expandGroupOnDrop = true;
|
||||
}
|
||||
}
|
||||
@@ -868,7 +869,7 @@
|
||||
@@ -871,7 +872,7 @@
|
||||
? event.screenY - window.screenY - tabOffset
|
||||
: event.screenY - window.screenY,
|
||||
scrollPos:
|
||||
|
@ -55,7 +55,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
? this.verticalPinnedTabsContainer.scrollPosition
|
||||
: this.arrowScrollbox.scrollPosition,
|
||||
screenX: event.screenX,
|
||||
@@ -921,6 +922,10 @@
|
||||
@@ -925,6 +926,10 @@
|
||||
}
|
||||
|
||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||
|
@ -66,7 +66,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
if (
|
||||
(effects == "move" || effects == "copy") &&
|
||||
document == draggedTab.ownerDocument &&
|
||||
@@ -1077,6 +1082,18 @@
|
||||
@@ -1081,6 +1086,18 @@
|
||||
|
||||
this._tabDropIndicator.hidden = true;
|
||||
event.stopPropagation();
|
||||
|
@ -85,7 +85,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
if (draggedTab && dropEffect == "copy") {
|
||||
let duplicatedDraggedTab;
|
||||
let duplicatedTabs = [];
|
||||
@@ -1116,10 +1133,11 @@
|
||||
@@ -1120,10 +1137,11 @@
|
||||
}
|
||||
} else {
|
||||
let isPinned = draggedTab.pinned;
|
||||
|
@ -100,23 +100,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
);
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
@@ -1135,8 +1153,14 @@
|
||||
(lastMovingTabScreen + tabSize);
|
||||
|
||||
if (this.verticalMode) {
|
||||
+ if (oldTranslateY > 0 && translateOffsetY > tabHeight / 2) {
|
||||
+ newTranslateY += tabHeight;
|
||||
+ }
|
||||
+ if (oldTranslateY < 0 && -translateOffsetY > tabHeight / 2) {
|
||||
+ newTranslateY -= tabHeight;
|
||||
+ }
|
||||
newTranslateY = Math.min(
|
||||
- Math.max(oldTranslateY, firstBound),
|
||||
+ Math.max(newTranslateY, firstBound),
|
||||
lastBound
|
||||
);
|
||||
} else {
|
||||
@@ -1168,7 +1192,7 @@
|
||||
@@ -1172,7 +1190,7 @@
|
||||
(oldTranslateX && oldTranslateX != newTranslateX) ||
|
||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||
} else if (this.verticalMode) {
|
||||
|
@ -125,7 +109,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
} else {
|
||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||
}
|
||||
@@ -1337,6 +1361,7 @@
|
||||
@@ -1341,6 +1359,7 @@
|
||||
|
||||
let nextItem = this.ariaFocusableItems[newIndex];
|
||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||
|
@ -133,7 +117,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
gBrowser.loadTabs(urls, {
|
||||
inBackground,
|
||||
replace,
|
||||
@@ -1369,6 +1394,17 @@
|
||||
@@ -1373,6 +1392,17 @@
|
||||
|
||||
this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||
this.finishAnimateTabMove();
|
||||
|
@ -151,7 +135,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
this.#expandGroupOnDrop(draggedTab);
|
||||
|
||||
if (
|
||||
@@ -1597,7 +1633,7 @@
|
||||
@@ -1601,7 +1631,7 @@
|
||||
}
|
||||
|
||||
get newTabButton() {
|
||||
|
@ -160,7 +144,15 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
}
|
||||
|
||||
get verticalMode() {
|
||||
@@ -1621,29 +1657,54 @@
|
||||
@@ -1617,6 +1647,7 @@
|
||||
}
|
||||
|
||||
get overflowing() {
|
||||
+ gZenWorkspaces.updateOverflowingTabs();
|
||||
return this.hasAttribute("overflow");
|
||||
}
|
||||
|
||||
@@ -1625,29 +1656,54 @@
|
||||
if (this.#allTabs) {
|
||||
return this.#allTabs;
|
||||
}
|
||||
|
@ -223,7 +215,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
}
|
||||
|
||||
/**
|
||||
@@ -1698,23 +1759,18 @@
|
||||
@@ -1702,23 +1758,18 @@
|
||||
}
|
||||
|
||||
let elementIndex = 0;
|
||||
|
@ -251,7 +243,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||
visibleTabsInGroup.forEach(tab => {
|
||||
tab.elementIndex = elementIndex++;
|
||||
@@ -1724,10 +1780,7 @@
|
||||
@@ -1728,10 +1779,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -263,7 +255,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
|
||||
return this.#focusableItems;
|
||||
}
|
||||
@@ -1735,6 +1788,7 @@
|
||||
@@ -1739,6 +1787,7 @@
|
||||
_invalidateCachedTabs() {
|
||||
this.#allTabs = null;
|
||||
this._invalidateCachedVisibleTabs();
|
||||
|
@ -271,7 +263,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
}
|
||||
|
||||
_invalidateCachedVisibleTabs() {
|
||||
@@ -1749,8 +1803,8 @@
|
||||
@@ -1753,8 +1802,8 @@
|
||||
#isContainerVerticalPinnedGrid(tab) {
|
||||
return (
|
||||
this.verticalMode &&
|
||||
|
@ -282,7 +274,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
!this.expandOnHover
|
||||
);
|
||||
}
|
||||
@@ -1766,7 +1820,7 @@
|
||||
@@ -1770,7 +1819,7 @@
|
||||
|
||||
if (node == null) {
|
||||
// We have a container for non-tab elements at the end of the scrollbox.
|
||||
|
@ -291,7 +283,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
}
|
||||
|
||||
node.before(tab);
|
||||
@@ -1861,7 +1915,7 @@
|
||||
@@ -1865,7 +1914,7 @@
|
||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||
// Attach the long click popup to all of them.
|
||||
|
@ -300,7 +292,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
const newTab2 = this.newTabButton;
|
||||
const newTabVertical = document.getElementById(
|
||||
"vertical-tabs-newtab-button"
|
||||
@@ -1956,10 +2010,12 @@
|
||||
@@ -1960,10 +2009,12 @@
|
||||
|
||||
_handleTabSelect(aInstant) {
|
||||
let selectedTab = this.selectedItem;
|
||||
|
@ -313,7 +305,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
selectedTab._notselectedsinceload = false;
|
||||
}
|
||||
|
||||
@@ -2132,6 +2188,7 @@
|
||||
@@ -2136,6 +2187,7 @@
|
||||
}
|
||||
|
||||
_positionPinnedTabs() {
|
||||
|
@ -321,7 +313,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let tabs = this.visibleTabs;
|
||||
let numPinned = gBrowser.pinnedTabCount;
|
||||
let absPositionHorizontalTabs =
|
||||
@@ -2206,7 +2263,7 @@
|
||||
@@ -2210,7 +2262,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -330,7 +322,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
|
||||
let directionX = screenX > dragData.animLastScreenX;
|
||||
let directionY = screenY > dragData.animLastScreenY;
|
||||
@@ -2215,6 +2272,8 @@
|
||||
@@ -2219,6 +2271,8 @@
|
||||
|
||||
let { width: tabWidth, height: tabHeight } =
|
||||
draggedTab.getBoundingClientRect();
|
||||
|
@ -339,7 +331,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let shiftSizeX = tabWidth * movingTabs.length;
|
||||
let shiftSizeY = tabHeight;
|
||||
dragData.tabWidth = tabWidth;
|
||||
@@ -2244,7 +2303,7 @@
|
||||
@@ -2248,7 +2302,7 @@
|
||||
let translateX = screenX - dragData.screenX;
|
||||
let translateY = screenY - dragData.screenY;
|
||||
translateY +=
|
||||
|
@ -348,7 +340,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let firstBoundX = firstTabInRow.screenX - firstMovingTabScreenX;
|
||||
let firstBoundY = firstTabInRow.screenY - firstMovingTabScreenY;
|
||||
let lastBoundX =
|
||||
@@ -2389,12 +2448,16 @@
|
||||
@@ -2394,12 +2448,16 @@
|
||||
|
||||
this.#clearDragOverCreateGroupTimer();
|
||||
|
||||
|
@ -369,7 +361,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
|
||||
if (this.#rtlMode) {
|
||||
tabs.reverse();
|
||||
@@ -2408,7 +2471,7 @@
|
||||
@@ -2413,7 +2471,7 @@
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
||||
|
@ -378,7 +370,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let translateX = event.screenX - dragData.screenX;
|
||||
let translateY = event.screenY - dragData.screenY;
|
||||
|
||||
@@ -2422,12 +2485,21 @@
|
||||
@@ -2427,12 +2485,21 @@
|
||||
let lastTab = tabs.at(-1);
|
||||
let lastMovingTab = movingTabs.at(-1);
|
||||
let firstMovingTab = movingTabs[0];
|
||||
|
@ -401,7 +393,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
translate +=
|
||||
this.arrowScrollbox.scrollbox[scrollDirection] - dragData.scrollPos;
|
||||
} else if (isPinned && this.verticalMode) {
|
||||
@@ -2446,6 +2518,9 @@
|
||||
@@ -2451,6 +2518,9 @@
|
||||
// Shift the `.tab-group-label-container` to shift the label element.
|
||||
item = item.parentElement;
|
||||
}
|
||||
|
@ -411,7 +403,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
item.style.transform = `${translateAxis}(${translate}px)`;
|
||||
}
|
||||
|
||||
@@ -2583,6 +2658,9 @@
|
||||
@@ -2588,6 +2658,9 @@
|
||||
break;
|
||||
}
|
||||
let element = tabs[mid];
|
||||
|
@ -421,18 +413,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
let elementForSize = isTabGroupLabel(element)
|
||||
? element.parentElement
|
||||
: element;
|
||||
@@ -2605,6 +2683,10 @@
|
||||
if (!dropElement) {
|
||||
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
||||
}
|
||||
+ if (dropElement?.group?.hasAttribute("split-view-group")) {
|
||||
+ // We focus the group label element, not the group itself.
|
||||
+ dropElement = dropElement.group.labelElement;
|
||||
+ }
|
||||
let newDropElementIndex = dropElement
|
||||
? dropElement.elementIndex
|
||||
: oldDropElementIndex;
|
||||
@@ -2613,7 +2695,7 @@
|
||||
@@ -2664,7 +2737,7 @@
|
||||
let shouldCreateGroupOnDrop;
|
||||
let dropBefore;
|
||||
if (dropElement) {
|
||||
|
@ -441,7 +422,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
? dropElement.parentElement
|
||||
: dropElement;
|
||||
|
||||
@@ -2675,12 +2757,12 @@
|
||||
@@ -2726,12 +2799,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -453,10 +434,10 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
// that dropping the tab(s) will create a new tab group.
|
||||
- shouldCreateGroupOnDrop =
|
||||
+ shouldCreateGroupOnDrop = false &&
|
||||
dropElement != draggedTab &&
|
||||
isTab(dropElement) &&
|
||||
!dropElement?.group &&
|
||||
@@ -2720,7 +2802,7 @@
|
||||
overlapPercent > dragOverGroupingThreshold;
|
||||
@@ -2773,7 +2846,7 @@
|
||||
// Dropping right before the tab group.
|
||||
dropElement = dropElementGroup;
|
||||
colorCode = undefined;
|
||||
|
@ -465,7 +446,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
// Dropping right after the collapsed tab group.
|
||||
dropElement = dropElementGroup;
|
||||
colorCode = undefined;
|
||||
@@ -2750,7 +2832,7 @@
|
||||
@@ -2803,7 +2876,7 @@
|
||||
// Shift background tabs to leave a gap where the dragged tab
|
||||
// would currently be dropped.
|
||||
for (let item of tabs) {
|
||||
|
@ -474,7 +455,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
continue;
|
||||
}
|
||||
|
||||
@@ -2759,6 +2841,9 @@
|
||||
@@ -2812,6 +2885,9 @@
|
||||
if (isTabGroupLabel(item)) {
|
||||
// Shift the `.tab-group-label-container` to shift the label element.
|
||||
item = item.parentElement;
|
||||
|
@ -484,7 +465,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
}
|
||||
item.style.transform = transform;
|
||||
}
|
||||
@@ -2811,8 +2896,9 @@
|
||||
@@ -2864,8 +2940,9 @@
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -496,7 +477,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -2824,6 +2910,12 @@
|
||||
@@ -2877,6 +2954,12 @@
|
||||
item = item.parentElement;
|
||||
}
|
||||
item.style.transform = "";
|
||||
|
@ -509,7 +490,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
item.removeAttribute("dragover-createGroup");
|
||||
}
|
||||
this.removeAttribute("movingtab-createGroup");
|
||||
@@ -2870,7 +2962,7 @@
|
||||
@@ -2923,7 +3006,7 @@
|
||||
let postTransitionCleanup = () => {
|
||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||
};
|
||||
|
@ -518,7 +499,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -3043,7 +3135,7 @@
|
||||
@@ -3096,7 +3179,7 @@
|
||||
}
|
||||
|
||||
_notifyBackgroundTab(aTab) {
|
||||
|
@ -527,7 +508,7 @@ index 84d633471c89230b981d8a07babef4e0c76c0338..a4101ad4e8aa9745ec807eb0373942b5
|
|||
return;
|
||||
}
|
||||
|
||||
@@ -3169,6 +3261,9 @@
|
||||
@@ -3222,6 +3305,9 @@
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
index a325becabddda511204fc5bd2022edc332cdde7c..6bb29b21f1e6c1d6ea3d38d50f01148e0a51f0d7 100644
|
||||
--- a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
+++ b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||
@@ -52,7 +52,7 @@ const PREFS_BEFORE_SECTIONS = () => [
|
||||
titleString: "home-prefs-shortcuts-header",
|
||||
descString: "home-prefs-shortcuts-description",
|
||||
get nestedPrefs() {
|
||||
- return Services.prefs.getBoolPref("browser.topsites.useRemoteSetting")
|
||||
+ return Services.prefs.getBoolPref("browser.topsites.useRemoteSetting") && false
|
||||
? [
|
||||
{
|
||||
name: "showSponsoredTopSites",
|
|
@ -249,37 +249,6 @@ groupbox h2 {
|
|||
}
|
||||
}
|
||||
|
||||
.zenLooksAndFeelColorOption {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
border-radius: 50%;
|
||||
background: var(--zen-primary-color);
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.zenLooksAndFeelColorOption::before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
position: absolute;
|
||||
background: var(--zen-colors-secondary);
|
||||
}
|
||||
|
||||
.zenLooksAndFeelColorOption::after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 50%;
|
||||
height: 50%;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
position: absolute;
|
||||
background: var(--zen-colors-tertiary);
|
||||
}
|
||||
|
||||
/* Workspace */
|
||||
|
||||
#category-zen-tabs-management > .category-icon {
|
||||
|
@ -622,7 +591,9 @@ groupbox h2 {
|
|||
#dataCollectionCategory,
|
||||
#dataCollectionGroup,
|
||||
#websiteAdvertisingCategory,
|
||||
#websiteAdvertisingGroup {
|
||||
#websiteAdvertisingGroup,
|
||||
#webAppearanceGroup,
|
||||
#helpButton {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||
index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272ede59857 100644
|
||||
index d7d9a40e8c473fa3b06f5bbc743e851a392ea8fa..c5b3f015caf666dad800432828a8c615e8353936 100644
|
||||
--- a/browser/themes/shared/tabbrowser/tabs.css
|
||||
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
||||
@@ -19,7 +19,7 @@
|
||||
|
@ -11,16 +11,19 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
--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,9 +33,9 @@
|
||||
--tab-block-margin: 4px;
|
||||
--tab-icon-end-margin: 5.5px;
|
||||
--tab-label-line-height: 1.7;
|
||||
- --tab-loading-fill: #0A84FF;
|
||||
+ --tab-loading-fill: var(--zen-primary-color);
|
||||
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
|
||||
--tab-selected-textcolor: var(--toolbar-color);
|
||||
- --tab-selected-textcolor: var(--toolbar-color);
|
||||
+ --tab-selected-textcolor: currentColor;
|
||||
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
||||
@@ -211,8 +211,7 @@
|
||||
--tab-selected-color-scheme: var(--toolbar-color-scheme);
|
||||
&[lwt-tab-selected="light"] {
|
||||
@@ -216,8 +216,7 @@
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
||||
|
@ -30,7 +33,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
}
|
||||
|
||||
#tabbrowser-tabs[movingtab] &:is(:active, [multiselected]) {
|
||||
@@ -258,7 +257,6 @@
|
||||
@@ -263,7 +262,6 @@
|
||||
}
|
||||
|
||||
:root:not([uidensity=compact], [sidebar-expand-on-hover]) &[pinned] {
|
||||
|
@ -38,7 +41,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
}
|
||||
|
||||
&:is([selected], [multiselected]) {
|
||||
@@ -272,6 +270,7 @@
|
||||
@@ -277,6 +275,7 @@
|
||||
border-radius: inherit;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
|
@ -46,7 +49,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
|
||||
&::before {
|
||||
position: absolute;
|
||||
@@ -459,14 +458,11 @@
|
||||
@@ -464,14 +463,11 @@
|
||||
.tab-icon-image {
|
||||
-moz-context-properties: fill, stroke;
|
||||
fill: currentColor;
|
||||
|
@ -62,7 +65,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
opacity: 0.5;
|
||||
/* Fade the favicon out */
|
||||
transition-property: filter, opacity;
|
||||
@@ -483,10 +479,6 @@
|
||||
@@ -488,10 +484,6 @@
|
||||
/* stylelint-disable-next-line media-query-no-invalid */
|
||||
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
|
||||
&[pending][discarded] {
|
||||
|
@ -73,7 +76,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
opacity: 0.5;
|
||||
/* Fade the favicon out */
|
||||
transition-property: filter, opacity;
|
||||
@@ -559,7 +551,7 @@
|
||||
@@ -564,7 +556,7 @@
|
||||
z-index: 1; /* Overlay tab title */
|
||||
|
||||
#tabbrowser-tabs[orient=vertical] & {
|
||||
|
@ -82,7 +85,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
}
|
||||
|
||||
&[crashed] {
|
||||
@@ -567,7 +559,7 @@
|
||||
@@ -572,7 +564,7 @@
|
||||
}
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
||||
|
@ -91,7 +94,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
&[soundplaying] {
|
||||
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
||||
}
|
||||
@@ -597,7 +589,7 @@
|
||||
@@ -602,7 +594,7 @@
|
||||
background-image: linear-gradient(var(--audio-overlay-extra-background)),
|
||||
linear-gradient(var(--toolbox-bgcolor));
|
||||
-moz-context-properties: fill;
|
||||
|
@ -100,7 +103,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
color-scheme: var(--tab-selected-color-scheme);
|
||||
border-radius: var(--border-radius-circle);
|
||||
|
||||
@@ -1365,7 +1357,7 @@ tab-group {
|
||||
@@ -1373,7 +1365,7 @@ tab-group {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,7 +112,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
#vertical-tabs-newtab-button {
|
||||
appearance: none;
|
||||
min-height: var(--tab-min-height);
|
||||
@@ -1376,7 +1368,7 @@ tab-group {
|
||||
@@ -1384,7 +1376,7 @@ tab-group {
|
||||
margin-inline: var(--tab-inner-inline-margin);
|
||||
|
||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
||||
|
@ -118,7 +121,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
}
|
||||
|
||||
&:hover {
|
||||
@@ -1400,7 +1392,7 @@ tab-group {
|
||||
@@ -1408,7 +1400,7 @@ tab-group {
|
||||
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
||||
* we don't want a gap (between tabs), so we have to add some margin.
|
||||
*/
|
||||
|
@ -127,7 +130,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
margin-block: var(--tab-block-margin);
|
||||
}
|
||||
|
||||
@@ -1474,8 +1466,6 @@ tab-group {
|
||||
@@ -1486,8 +1478,6 @@ tab-group {
|
||||
}
|
||||
|
||||
:root:not([sidebar-expand-on-hover]) & {
|
||||
|
@ -136,7 +139,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
/* stylelint-disable-next-line media-query-no-invalid */
|
||||
@media not -moz-pref("sidebar.visibility", "expand-on-hover") {
|
||||
/* We need these rules to apply at all times when the sidebar.visibility
|
||||
@@ -1585,7 +1575,6 @@ tab-group {
|
||||
@@ -1605,7 +1595,6 @@ tab-group {
|
||||
|
||||
&:not([expanded]) {
|
||||
.tabbrowser-tab[pinned] {
|
||||
|
@ -144,7 +147,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
}
|
||||
|
||||
.tab-background {
|
||||
@@ -1716,7 +1705,7 @@ tab-group {
|
||||
@@ -1736,7 +1725,7 @@ tab-group {
|
||||
toolbarbutton:not(#firefox-view-button),
|
||||
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
||||
) ~ #tabbrowser-tabs {
|
||||
|
@ -153,7 +156,7 @@ index 5b9ad123d819c6ef068acd427416957a1d0939fe..543d42dab2d84593f491a5652fcfe272
|
|||
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
||||
margin-inline-start: 2px;
|
||||
}
|
||||
@@ -1750,7 +1739,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||
@@ -1770,7 +1759,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
||||
}
|
||||
|
||||
|
|
|
@ -16,8 +16,7 @@
|
|||
border-radius: 100% !important;
|
||||
}
|
||||
|
||||
#back-button,
|
||||
#zen-sidebar-web-panel-back {
|
||||
#back-button {
|
||||
list-style-image: url('back.svg') !important;
|
||||
}
|
||||
|
||||
|
@ -25,19 +24,16 @@
|
|||
list-style-image: url('move-tab.svg') !important;
|
||||
}
|
||||
|
||||
#forward-button,
|
||||
#zen-sidebar-web-panel-forward {
|
||||
#forward-button {
|
||||
list-style-image: url('forward.svg') !important;
|
||||
}
|
||||
|
||||
#reload-button,
|
||||
#zen-sidebar-web-panel-reload {
|
||||
#reload-button {
|
||||
list-style-image: url('reload.svg') !important;
|
||||
}
|
||||
|
||||
#stop-button,
|
||||
.close-icon,
|
||||
#zen-sidebar-web-panel-close,
|
||||
#zen-glance-sidebar-close,
|
||||
.zen-theme-picker-custom-list-item-remove {
|
||||
list-style-image: url('close.svg') !important;
|
||||
|
@ -51,10 +47,6 @@
|
|||
list-style-image: url('reload.svg') !important;
|
||||
}
|
||||
|
||||
#PanelUI-zen-gradient-generator-color-toggle-algo {
|
||||
list-style-image: url('palette.svg');
|
||||
}
|
||||
|
||||
.tab-reset-button,
|
||||
#PanelUI-zen-gradient-generator-color-remove {
|
||||
list-style-image: url('unpin.svg') !important;
|
||||
|
@ -105,7 +97,8 @@
|
|||
list-style-image: url('chevron.svg') !important;
|
||||
}
|
||||
|
||||
#zen-rice-share-options .options-header {
|
||||
#zen-rice-share-options .options-header,
|
||||
#PanelUI-zen-gradient-generator-color-page-right {
|
||||
list-style-image: url('arrow-right.svg');
|
||||
}
|
||||
|
||||
|
@ -172,6 +165,7 @@
|
|||
|
||||
#add-ons-button,
|
||||
#appMenu-extensions-themes-button,
|
||||
#appMenu-unified-extensions-button,
|
||||
#unified-extensions-button {
|
||||
list-style-image: url('extension.svg') !important;
|
||||
}
|
||||
|
@ -281,8 +275,7 @@
|
|||
list-style-image: url('bookmark-star-on-tray.svg') !important;
|
||||
}
|
||||
|
||||
#home-button,
|
||||
#zen-sidebar-web-panel-home {
|
||||
#home-button {
|
||||
list-style-image: url('home.svg') !important;
|
||||
}
|
||||
|
||||
|
@ -405,7 +398,8 @@
|
|||
list-style-image: url('expand-sidebar.svg') !important;
|
||||
}
|
||||
|
||||
.panel-header > .subviewbutton-back {
|
||||
.panel-header > .subviewbutton-back,
|
||||
#PanelUI-zen-gradient-generator-color-page-left {
|
||||
list-style-image: url('arrow-left.svg') !important;
|
||||
}
|
||||
|
||||
|
@ -600,11 +594,6 @@
|
|||
> #reload-button[displaystop]
|
||||
+ #stop-button
|
||||
> .toolbarbutton-animatable-box
|
||||
> .toolbarbutton-animatable-image,
|
||||
#zen-sidebar-web-panel-reload[animate]
|
||||
> #zen-sidebar-web-panel-reload-button[displaystop]
|
||||
+ #zen-sidebar-web-panel-stop-button
|
||||
> .toolbarbutton-animatable-box
|
||||
> .toolbarbutton-animatable-image {
|
||||
background-image: url('reload-to-stop.svg') !important;
|
||||
}
|
||||
|
@ -612,10 +601,6 @@
|
|||
#stop-reload-button[animate]
|
||||
> #reload-button
|
||||
> .toolbarbutton-animatable-box
|
||||
> .toolbarbutton-animatable-image,
|
||||
#zen-sidebar-web-panel-reload[animate]
|
||||
> #zen-sidebar-web-panel-reload-button
|
||||
> .toolbarbutton-animatable-box
|
||||
> .toolbarbutton-animatable-image {
|
||||
background-image: url('stop-to-reload.svg') !important;
|
||||
}
|
||||
|
@ -775,10 +760,40 @@
|
|||
border-radius: var(--tab-border-radius);
|
||||
|
||||
&:hover {
|
||||
background: var(--toolbarbutton-active-background);
|
||||
background: var(--toolbarbutton-hover-background);
|
||||
}
|
||||
|
||||
& image {
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
|
||||
#PanelUI-zen-gradient-generator-scheme-auto {
|
||||
list-style-image: url('sparkles.svg');
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.window.scheme', 2) {
|
||||
#PanelUI-zen-gradient-generator-scheme-auto {
|
||||
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
}
|
||||
|
||||
#PanelUI-zen-gradient-generator-scheme-dark {
|
||||
list-style-image: url('moon-stars.svg');
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.window.scheme', 0) {
|
||||
#PanelUI-zen-gradient-generator-scheme-dark {
|
||||
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
}
|
||||
|
||||
#PanelUI-zen-gradient-generator-scheme-light {
|
||||
list-style-image: url('face-sun.svg');
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.window.scheme', 1) {
|
||||
#PanelUI-zen-gradient-generator-scheme-light {
|
||||
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,15 +35,16 @@
|
|||
skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
|
||||
skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
|
||||
skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
|
||||
skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
|
||||
skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
|
||||
skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
|
||||
skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
|
||||
skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
|
||||
skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
|
||||
skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
|
||||
|
@ -80,6 +81,7 @@
|
|||
skin/classic/browser/zen-icons/microphone-fill.svg (../shared/zen-icons/lin/microphone-fill.svg)
|
||||
skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
|
||||
skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
|
||||
skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
|
||||
skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
|
||||
skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
|
||||
skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
|
||||
|
@ -95,27 +97,28 @@
|
|||
skin/classic/browser/zen-icons/pocket-outline.svg (../shared/zen-icons/lin/pocket-outline.svg)
|
||||
skin/classic/browser/zen-icons/popup.svg (../shared/zen-icons/lin/popup.svg)
|
||||
skin/classic/browser/zen-icons/print.svg (../shared/zen-icons/lin/print.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/private-window.svg (../shared/zen-icons/lin/private-window.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/reload-to-stop.svg (../shared/zen-icons/lin/reload-to-stop.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
|
||||
skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
|
||||
skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/search-glass.svg (../shared/zen-icons/lin/search-glass.svg)
|
||||
skin/classic/browser/zen-icons/search-page.svg (../shared/zen-icons/lin/search-page.svg)
|
||||
skin/classic/browser/zen-icons/security-broken.svg (../shared/zen-icons/lin/security-broken.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/security-warning.svg (../shared/zen-icons/lin/security-warning.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/send-to-device.svg (../shared/zen-icons/lin/send-to-device.svg)
|
||||
skin/classic/browser/zen-icons/settings.svg (../shared/zen-icons/lin/settings.svg)
|
||||
skin/classic/browser/zen-icons/share.svg (../shared/zen-icons/lin/share.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
|
||||
skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
|
||||
skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
|
||||
skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
|
||||
skin/classic/browser/zen-icons/stop-to-reload.svg (../shared/zen-icons/lin/stop-to-reload.svg)
|
||||
|
@ -174,15 +177,16 @@
|
|||
skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
|
||||
skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
|
||||
skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
|
||||
skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
|
||||
skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
|
||||
skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
|
||||
skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
|
||||
skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
|
||||
skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
|
||||
skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
|
||||
|
@ -219,6 +223,7 @@
|
|||
skin/classic/browser/zen-icons/microphone-fill.svg (../shared/zen-icons/lin/microphone-fill.svg)
|
||||
skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
|
||||
skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
|
||||
skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
|
||||
skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
|
||||
skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
|
||||
skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
|
||||
|
@ -234,27 +239,28 @@
|
|||
skin/classic/browser/zen-icons/pocket-outline.svg (../shared/zen-icons/lin/pocket-outline.svg)
|
||||
skin/classic/browser/zen-icons/popup.svg (../shared/zen-icons/lin/popup.svg)
|
||||
skin/classic/browser/zen-icons/print.svg (../shared/zen-icons/lin/print.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/private-window.svg (../shared/zen-icons/lin/private-window.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/reload-to-stop.svg (../shared/zen-icons/lin/reload-to-stop.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
|
||||
skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
|
||||
skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/search-glass.svg (../shared/zen-icons/lin/search-glass.svg)
|
||||
skin/classic/browser/zen-icons/search-page.svg (../shared/zen-icons/lin/search-page.svg)
|
||||
skin/classic/browser/zen-icons/security-broken.svg (../shared/zen-icons/lin/security-broken.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/security-warning.svg (../shared/zen-icons/lin/security-warning.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/send-to-device.svg (../shared/zen-icons/lin/send-to-device.svg)
|
||||
skin/classic/browser/zen-icons/settings.svg (../shared/zen-icons/lin/settings.svg)
|
||||
skin/classic/browser/zen-icons/share.svg (../shared/zen-icons/lin/share.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
|
||||
skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
|
||||
skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
|
||||
skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
|
||||
skin/classic/browser/zen-icons/stop-to-reload.svg (../shared/zen-icons/lin/stop-to-reload.svg)
|
||||
|
@ -313,15 +319,16 @@
|
|||
skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
|
||||
skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
|
||||
skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
|
||||
skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
|
||||
skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
|
||||
skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
|
||||
skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
|
||||
skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
|
||||
skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
|
||||
skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
|
||||
skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
|
||||
skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
|
||||
skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
|
||||
skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
|
||||
|
@ -358,6 +365,7 @@
|
|||
skin/classic/browser/zen-icons/microphone-fill.svg (../shared/zen-icons/lin/microphone-fill.svg)
|
||||
skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
|
||||
skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
|
||||
skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
|
||||
skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
|
||||
skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
|
||||
skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
|
||||
|
@ -373,27 +381,28 @@
|
|||
skin/classic/browser/zen-icons/pocket-outline.svg (../shared/zen-icons/lin/pocket-outline.svg)
|
||||
skin/classic/browser/zen-icons/popup.svg (../shared/zen-icons/lin/popup.svg)
|
||||
skin/classic/browser/zen-icons/print.svg (../shared/zen-icons/lin/print.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/private-window.svg (../shared/zen-icons/lin/private-window.svg)
|
||||
skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
|
||||
skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/reload-to-stop.svg (../shared/zen-icons/lin/reload-to-stop.svg)
|
||||
skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
|
||||
skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
|
||||
skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
|
||||
skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
|
||||
skin/classic/browser/zen-icons/screenshot.svg (../shared/zen-icons/lin/screenshot.svg)
|
||||
skin/classic/browser/zen-icons/search-glass.svg (../shared/zen-icons/lin/search-glass.svg)
|
||||
skin/classic/browser/zen-icons/search-page.svg (../shared/zen-icons/lin/search-page.svg)
|
||||
skin/classic/browser/zen-icons/security-broken.svg (../shared/zen-icons/lin/security-broken.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/security-warning.svg (../shared/zen-icons/lin/security-warning.svg)
|
||||
skin/classic/browser/zen-icons/security.svg (../shared/zen-icons/lin/security.svg)
|
||||
skin/classic/browser/zen-icons/send-to-device.svg (../shared/zen-icons/lin/send-to-device.svg)
|
||||
skin/classic/browser/zen-icons/settings.svg (../shared/zen-icons/lin/settings.svg)
|
||||
skin/classic/browser/zen-icons/share.svg (../shared/zen-icons/lin/share.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
|
||||
skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
|
||||
skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
|
||||
skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
|
||||
skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
|
||||
skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
|
||||
skin/classic/browser/zen-icons/stop-to-reload.svg (../shared/zen-icons/lin/stop-to-reload.svg)
|
||||
|
|
1
src/browser/themes/shared/zen-icons/lin/face-sun.svg
Normal file
1
src/browser/themes/shared/zen-icons/lin/face-sun.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="M17.25,8.25h-1.292c-.146-1.369-.69-2.619-1.512-3.637l1.583-1.583c.293-.293,.293-.768,0-1.061s-.767-.294-1.061,0l-1.583,1.583c-1.018-.821-2.268-1.365-3.636-1.511V.75c0-.414-.336-.75-.75-.75s-.75,.336-.75,.75v1.292c-1.368,.146-2.618,.69-3.636,1.511l-1.583-1.583c-.293-.293-.768-.293-1.061,0s-.293,.768,0,1.061l1.583,1.583c-.821,1.018-1.365,2.268-1.511,3.637H.75c-.414,0-.75,.336-.75,.75s.336,.75,.75,.75h1.292c.146,1.369,.69,2.619,1.511,3.637l-1.583,1.583c-.293,.293-.293,.768,0,1.061,.146,.146,.338,.22,.53,.22,.191,0,.384-.073,.53-.22l1.583-1.583c1.018,.821,2.268,1.365,3.636,1.511v1.292c0,.414,.336,.75,.75,.75s.75-.336,.75-.75v-1.292c1.368-.146,2.618-.69,3.636-1.511l1.583,1.583c.146,.146,.338,.22,.53,.22s.384-.073,.53-.22c.293-.293,.293-.768,0-1.061l-1.583-1.583c.821-1.018,1.365-2.268,1.512-3.637h1.292c.414,0,.75-.336,.75-.75s-.336-.75-.75-.75Zm-11.25,1.75c-.552,0-1-.448-1-1s.448-1,1-1,1,.448,1,1-.448,1-1,1Zm3,2c-.828,0-1.5-.672-1.5-1.5,0-.276,.224-.5,.5-.5h2c.276,0,.5,.224,.5,.5,0,.828-.672,1.5-1.5,1.5Zm2-3c0-.552,.448-1,1-1s1,.448,1,1-.448,1-1,1-1-.448-1-1Z" fill="currentColor"></path></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
src/browser/themes/shared/zen-icons/lin/moon-stars.svg
Normal file
1
src/browser/themes/shared/zen-icons/lin/moon-stars.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="M16.705,10.223c-.246-.183-.578-.197-.838-.037-.868,.532-1.859,.813-2.867,.813-3.033,0-5.5-2.467-5.5-5.5,0-1.146,.354-2.247,1.023-3.186,.177-.249,.186-.581,.021-.839-.164-.258-.467-.386-.77-.334C3.994,1.847,1.25,5.152,1.25,9c0,4.411,3.589,8,8,8,3.638,0,6.819-2.461,7.735-5.986,.077-.296-.034-.609-.28-.791Z" fill="currentColor"></path><path d="M12.743,4.492l-.946-.315-.316-.947c-.102-.306-.609-.306-.711,0l-.316,.947-.946,.315c-.153,.051-.257,.194-.257,.356s.104,.305,.257,.356l.946,.315,.316,.947c.051,.153,.194,.256,.355,.256s.305-.104,.355-.256l.316-.947,.946-.315c.153-.051,.257-.194,.257-.356s-.104-.305-.257-.356Z" fill="currentColor" data-color="color-2"></path><circle cx="14.25" cy="7.75" r=".75" fill="currentColor" data-color="color-2"></circle></svg>
|
After Width: | Height: | Size: 917 B |
1
src/browser/themes/shared/zen-icons/lin/sparkles.svg
Normal file
1
src/browser/themes/shared/zen-icons/lin/sparkles.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="M3.025,5.623c.068,.204,.26,.342,.475,.342s.406-.138,.475-.342l.421-1.263,1.263-.421c.204-.068,.342-.259,.342-.474s-.138-.406-.342-.474l-1.263-.421-.421-1.263c-.137-.408-.812-.408-.949,0l-.421,1.263-1.263,.421c-.204,.068-.342,.259-.342,.474s.138,.406,.342,.474l1.263,.421,.421,1.263Z" fill="currentColor" data-color="color-2"></path><path d="M16.525,8.803l-4.535-1.793-1.793-4.535c-.227-.572-1.168-.572-1.395,0l-1.793,4.535-4.535,1.793c-.286,.113-.475,.39-.475,.697s.188,.584,.475,.697l4.535,1.793,1.793,4.535c.113,.286,.39,.474,.697,.474s.584-.188,.697-.474l1.793-4.535,4.535-1.793c.286-.113,.475-.39,.475-.697s-.188-.584-.475-.697Z" fill="currentColor"></path></svg>
|
After Width: | Height: | Size: 822 B |
24
src/dom/base/Document-cpp.patch
Normal file
24
src/dom/base/Document-cpp.patch
Normal file
|
@ -0,0 +1,24 @@
|
|||
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
|
||||
index a16bef739fcde0f14ba7e53e0acfa3aa2ee1dd3a..7c4bee2422f76272022f0c793aa52ea02e292bde 100644
|
||||
--- a/dom/base/Document.cpp
|
||||
+++ b/dom/base/Document.cpp
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#include "mozilla/dom/Document.h"
|
||||
#include "mozilla/dom/DocumentInlines.h"
|
||||
+#include "mozilla/ZenStyleSheetCache.h"
|
||||
|
||||
#include <inttypes.h>
|
||||
#include <stdlib.h>
|
||||
@@ -3335,6 +3336,11 @@ void Document::FillStyleSetUserAndUASheets() {
|
||||
styleSet.AppendStyleSheet(*sheet);
|
||||
}
|
||||
|
||||
+ if (auto sheet = zen::ZenStyleSheetCache::Singleton()->GetModsSheet(); sheet && IsInChromeDocShell()) {
|
||||
+ // The mods sheet is only used in the chrome docshell.
|
||||
+ styleSet.AppendStyleSheet(*sheet);
|
||||
+ }
|
||||
+
|
||||
StyleSheet* sheet = IsInChromeDocShell() ? cache->GetUserChromeSheet()
|
||||
: cache->GetUserContentSheet();
|
||||
if (sheet) {
|
|
@ -1,32 +0,0 @@
|
|||
|
||||
# HG changeset patch
|
||||
# User Julian Descottes <jdescottes@mozilla.com>
|
||||
# Date 1744201993 0
|
||||
# Node ID 2e2d932d75c44447af89224be5e4324dc080c447
|
||||
# Parent 9f134a1b1a884a857c59517ba0e8f3603e4009dd
|
||||
Bug 1959377 - Include vector in mac/Sandbox.h to fix build on macos 15.4 r=emilio
|
||||
|
||||
Differential Revision: https://phabricator.services.mozilla.com/D244870
|
||||
|
||||
diff --git a/security/sandbox/mac/Sandbox.h b/security/sandbox/mac/Sandbox.h
|
||||
--- a/security/sandbox/mac/Sandbox.h
|
||||
+++ b/security/sandbox/mac/Sandbox.h
|
||||
@@ -2,16 +2,17 @@
|
||||
/* 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/. */
|
||||
|
||||
#ifndef mozilla_Sandbox_h
|
||||
#define mozilla_Sandbox_h
|
||||
|
||||
#include <string>
|
||||
+#include <vector>
|
||||
#include "mozilla/ipc/UtilityProcessSandboxing.h"
|
||||
|
||||
enum MacSandboxType {
|
||||
MacSandboxType_Default = 0,
|
||||
MacSandboxType_Content,
|
||||
MacSandboxType_GMP,
|
||||
MacSandboxType_RDD,
|
||||
MacSandboxType_Socket,
|
||||
|
97
src/firefox-patches/ff141-gradienth-dithering.patch
Normal file
97
src/firefox-patches/ff141-gradienth-dithering.patch
Normal file
|
@ -0,0 +1,97 @@
|
|||
diff --git a/gfx/wr/swgl/build.rs b/gfx/wr/swgl/build.rs
|
||||
--- a/gfx/wr/swgl/build.rs
|
||||
+++ b/gfx/wr/swgl/build.rs
|
||||
@@ -147,10 +147,11 @@
|
||||
let shader_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap() + "/../webrender/res";
|
||||
|
||||
let shader_flags = ShaderFeatureFlags::GL
|
||||
| ShaderFeatureFlags::DUAL_SOURCE_BLENDING
|
||||
| ShaderFeatureFlags::ADVANCED_BLEND_EQUATION
|
||||
+ | ShaderFeatureFlags::DITHERING
|
||||
| ShaderFeatureFlags::DEBUG;
|
||||
let mut shaders: Vec<String> = Vec::new();
|
||||
for (name, features) in get_shader_features(shader_flags) {
|
||||
shaders.extend(features.iter().map(|f| {
|
||||
if f.is_empty() {
|
||||
diff --git a/gfx/wr/webrender/res/brush_linear_gradient.glsl b/gfx/wr/webrender/res/brush_linear_gradient.glsl
|
||||
--- a/gfx/wr/webrender/res/brush_linear_gradient.glsl
|
||||
+++ b/gfx/wr/webrender/res/brush_linear_gradient.glsl
|
||||
@@ -79,17 +79,23 @@
|
||||
|
||||
return Fragment(color);
|
||||
}
|
||||
|
||||
#ifdef SWGL_DRAW_SPAN
|
||||
+#ifdef WR_FEATURE_DITHERING
|
||||
+void swgl_drawSpanRGBA8() {
|
||||
+ return;
|
||||
+}
|
||||
+#else
|
||||
void swgl_drawSpanRGBA8() {
|
||||
int address = swgl_validateGradient(sGpuBufferF, get_gpu_buffer_uv(v_gradient_address.x), int(GRADIENT_ENTRIES + 2.0));
|
||||
if (address < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
swgl_commitLinearGradientRGBA8(sGpuBufferF, address, GRADIENT_ENTRIES, true, v_gradient_repeat.x != 0.0,
|
||||
v_pos, v_scale_dir, v_start_offset.x);
|
||||
}
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
#endif
|
||||
diff --git a/gfx/wr/webrender/src/renderer/init.rs b/gfx/wr/webrender/src/renderer/init.rs
|
||||
--- a/gfx/wr/webrender/src/renderer/init.rs
|
||||
+++ b/gfx/wr/webrender/src/renderer/init.rs
|
||||
@@ -222,11 +222,11 @@
|
||||
fn default() -> Self {
|
||||
WebRenderOptions {
|
||||
resource_override_path: None,
|
||||
use_optimized_shaders: false,
|
||||
enable_aa: true,
|
||||
- enable_dithering: false,
|
||||
+ enable_dithering: true,
|
||||
debug_flags: DebugFlags::empty(),
|
||||
max_recorded_profiles: 0,
|
||||
precache_flags: ShaderPrecacheFlags::empty(),
|
||||
enable_subpixel_aa: false,
|
||||
clear_color: ColorF::new(1.0, 1.0, 1.0, 1.0),
|
||||
--- a/gfx/wr/webrender/build.rs
|
||||
+++ b/gfx/wr/webrender/build.rs
|
||||
@@ -150,11 +150,10 @@
|
||||
) {
|
||||
flags.remove(ShaderFeatureFlags::TEXTURE_EXTERNAL_ESSL1);
|
||||
}
|
||||
// The optimizer cannot handle the required EXT_YUV_target extension
|
||||
flags.remove(ShaderFeatureFlags::TEXTURE_EXTERNAL_BT709);
|
||||
- flags.remove(ShaderFeatureFlags::DITHERING);
|
||||
|
||||
for (shader_name, configs) in get_shader_features(flags) {
|
||||
for config in configs {
|
||||
shaders.push(ShaderOptimizationInput {
|
||||
shader_name,
|
||||
diff --git a/gfx/wr/webrender/res/shared.glsl b/gfx/wr/webrender/res/shared.glsl
|
||||
index f9c093f8486dbd481f2520762f80ace257c294f6..904f9991e917423e11563d862bbd185725523573 100644
|
||||
--- a/gfx/wr/webrender/res/shared.glsl
|
||||
+++ b/gfx/wr/webrender/res/shared.glsl
|
||||
@@ -226,6 +226,7 @@ uniform __samplerExternal2DY2YEXT sColor1;
|
||||
uniform __samplerExternal2DY2YEXT sColor2;
|
||||
#endif
|
||||
|
||||
+#define WR_FEATURE_DITHERING
|
||||
#ifdef WR_FEATURE_DITHERING
|
||||
uniform sampler2D sDither;
|
||||
#endif
|
||||
diff --git a/gfx/wr/webrender/res/gradient.glsl b/gfx/wr/webrender/res/gradient.glsl
|
||||
index 6ed2e6987135e04a70fcc908c089bf225ffdb255..09a4acdf3f53a53e123510fdc5aea8b9b8c4d91e 100644
|
||||
--- a/gfx/wr/webrender/res/gradient.glsl
|
||||
+++ b/gfx/wr/webrender/res/gradient.glsl
|
||||
@@ -11,6 +11,7 @@ flat varying mediump vec2 v_gradient_repeat;
|
||||
|
||||
#ifdef WR_FRAGMENT_SHADER
|
||||
|
||||
+#define WR_FEATURE_DITHERING
|
||||
#ifdef WR_FEATURE_DITHERING
|
||||
vec4 dither(vec4 color) {
|
||||
const int matrix_mask = 7;
|
||||
|
13
src/layout/base/nsStyleSheetService-h.patch
Normal file
13
src/layout/base/nsStyleSheetService-h.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/layout/base/nsStyleSheetService.h b/layout/base/nsStyleSheetService.h
|
||||
index 8c49b338bf8e6830874ace9a08e8c0713167ee58..115bf09314970fd2fe79793e9cf8e0c40eb0459b 100644
|
||||
--- a/layout/base/nsStyleSheetService.h
|
||||
+++ b/layout/base/nsStyleSheetService.h
|
||||
@@ -50,6 +50,8 @@ class nsStyleSheetService final : public nsIStyleSheetService,
|
||||
|
||||
size_t SizeOfIncludingThis(mozilla::MallocSizeOf aMallocSizeOf) const;
|
||||
|
||||
+ void ZenMarkStylesAsChanged();
|
||||
+
|
||||
static nsStyleSheetService* GetInstance();
|
||||
static nsStyleSheetService* gInstance;
|
||||
|
|
@ -16,3 +16,8 @@
|
|||
type: bool
|
||||
value: true
|
||||
mirror: always
|
||||
|
||||
- name: zen.swipe.is-fast-swipe
|
||||
type: bool
|
||||
value: true
|
||||
mirror: always
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
diff --git a/security/mac/hardenedruntime/v2/production/firefox.browser.xml b/security/mac/hardenedruntime/v2/production/firefox.browser.xml
|
||||
diff --git a/security/mac/hardenedruntime/production/firefox.browser.xml b/security/mac/hardenedruntime/production/firefox.browser.xml
|
||||
index abbf33e9d2b3c9d1e0a34bd46e7cd289c435533b..d580b156fed13f4de8eb73e5c29c646a7a22a1d2 100644
|
||||
--- a/security/mac/hardenedruntime/v2/production/firefox.browser.xml
|
||||
+++ b/security/mac/hardenedruntime/v2/production/firefox.browser.xml
|
||||
--- a/security/mac/hardenedruntime/production/firefox.browser.xml
|
||||
+++ b/security/mac/hardenedruntime/production/firefox.browser.xml
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
<!-- Required for com.apple.developer.web-browser.public-key-credential -->
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
|
||||
index cc24406e22f536733b07a9398580a8719b61e134..214f238b38377a8480711ea2d0ec30e99800bb5c 100644
|
||||
index c66f1e26b22a6eeb2192d531e365ba34a61e220d..097ffce888ee0e180cc06448ea34860e6a467a2a 100644
|
||||
--- a/servo/components/style/gecko/media_features.rs
|
||||
+++ b/servo/components/style/gecko/media_features.rs
|
||||
@@ -13,6 +13,9 @@ use crate::values::computed::{CSSPixelLength, Context, Ratio, Resolution};
|
||||
|
@ -12,7 +12,7 @@ index cc24406e22f536733b07a9398580a8719b61e134..214f238b38377a8480711ea2d0ec30e9
|
|||
|
||||
fn device_size(device: &Device) -> Size2D<Au> {
|
||||
let mut width = 0;
|
||||
@@ -606,6 +609,13 @@ fn eval_moz_overlay_scrollbars(context: &Context) -> bool {
|
||||
@@ -610,6 +613,13 @@ fn eval_moz_overlay_scrollbars(context: &Context) -> bool {
|
||||
unsafe { bindings::Gecko_MediaFeatures_UseOverlayScrollbars(context.device().document()) }
|
||||
}
|
||||
|
||||
|
@ -26,16 +26,16 @@ index cc24406e22f536733b07a9398580a8719b61e134..214f238b38377a8480711ea2d0ec30e9
|
|||
fn get_lnf_int(int_id: i32) -> i32 {
|
||||
unsafe { bindings::Gecko_GetLookAndFeelInt(int_id) }
|
||||
}
|
||||
@@ -653,7 +663,7 @@ macro_rules! lnf_int_feature {
|
||||
@@ -657,7 +667,7 @@ macro_rules! lnf_int_feature {
|
||||
/// to support new types in these entries and (2) ensuring that either
|
||||
/// nsPresContext::MediaFeatureValuesChanged is called when the value that
|
||||
/// would be returned by the evaluator function could change.
|
||||
-pub static MEDIA_FEATURES: [QueryFeatureDescription; 61] = [
|
||||
+pub static MEDIA_FEATURES: [QueryFeatureDescription; 62] = [
|
||||
-pub static MEDIA_FEATURES: [QueryFeatureDescription; 62] = [
|
||||
+pub static MEDIA_FEATURES: [QueryFeatureDescription; 63] = [
|
||||
feature!(
|
||||
atom!("width"),
|
||||
AllowsRanges::Yes,
|
||||
@@ -918,6 +928,12 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 61] = [
|
||||
@@ -928,6 +938,12 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 62] = [
|
||||
Evaluator::BoolInteger(eval_moz_overlay_scrollbars),
|
||||
FeatureFlags::CHROME_AND_UA_ONLY,
|
||||
),
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/testing/profiles/mochitest/user.js b/testing/profiles/mochitest/user.js
|
||||
index a4068ac3f61161d014c49d54ae7a3bf886868f1b..6af5907abb46b6d3b871c159c73eec8373ee8ef5 100644
|
||||
index a4068ac3f61161d014c49d54ae7a3bf886868f1b..b9861cfaae19a4a71b75ccc73095dc602df22b12 100644
|
||||
--- a/testing/profiles/mochitest/user.js
|
||||
+++ b/testing/profiles/mochitest/user.js
|
||||
@@ -41,3 +41,10 @@ user_pref("places.history.floodingPrevention.enabled", false);
|
||||
@@ -41,3 +41,9 @@ user_pref("places.history.floodingPrevention.enabled", false);
|
||||
// permission, and we can open it and wait for the user to give permission, then
|
||||
// don't do that.
|
||||
user_pref("geo.prompt.open_system_prefs", false);
|
||||
|
@ -12,4 +12,3 @@ index a4068ac3f61161d014c49d54ae7a3bf886868f1b..6af5907abb46b6d3b871c159c73eec83
|
|||
+user_pref("zen.watermark.enabled", false);
|
||||
+user_pref("zen.urlbar.replace-newtab", false);
|
||||
+user_pref("zen.testing.enabled", true);
|
||||
+user_pref("dom.security.https_only_mode", false); // Dont ask why
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
diff --git a/testing/profiles/profileserver/user.js b/testing/profiles/profileserver/user.js
|
||||
index 19ff7d474f6d22d2d386764e2e6942ce6a324470..531446847039fd683af52ac7fdfd601bea3cb624 100644
|
||||
index 19ff7d474f6d22d2d386764e2e6942ce6a324470..75ec03c0d6a2f12986eb434f4b9b5350e1af37fd 100644
|
||||
--- a/testing/profiles/profileserver/user.js
|
||||
+++ b/testing/profiles/profileserver/user.js
|
||||
@@ -8,3 +8,13 @@
|
||||
@@ -8,3 +8,12 @@
|
||||
user_pref("dom.timeout.enable_budget_timer_throttling", false);
|
||||
// Turn off update
|
||||
user_pref("app.update.disabledForTesting", true);
|
||||
|
@ -15,4 +15,3 @@ index 19ff7d474f6d22d2d386764e2e6942ce6a324470..531446847039fd683af52ac7fdfd601b
|
|||
+user_pref("zen.urlbar.replace-newtab", false);
|
||||
+user_pref("zen.testing.enabled", true);
|
||||
+user_pref("zen.testing.profiling.enabled", true);
|
||||
+user_pref("dom.security.https_only_mode", false); // Dont ask why
|
||||
|
|
|
@ -1,18 +0,0 @@
|
|||
diff --git a/toolkit/content/widgets/browser-custom-element.js b/toolkit/content/widgets/browser-custom-element.js
|
||||
index a531577a29212cdb9e745b88e17fe4177be76635..ae976ecef71d0d659fa6a1d6fea60f5270073544 100644
|
||||
--- a/toolkit/content/widgets/browser-custom-element.js
|
||||
+++ b/toolkit/content/widgets/browser-custom-element.js
|
||||
@@ -556,11 +556,11 @@
|
||||
if (!this.browsingContext) {
|
||||
return;
|
||||
}
|
||||
- this.browsingContext.isActive = val;
|
||||
+ this.browsingContext.isActive = val || this.zenModeActive;
|
||||
if (this.isRemoteBrowser) {
|
||||
let remoteTab = this.frameLoader?.remoteTab;
|
||||
if (remoteTab) {
|
||||
- remoteTab.renderLayers = val;
|
||||
+ remoteTab.renderLayers = val || this.zenModeActive;
|
||||
}
|
||||
}
|
||||
}
|
18
src/toolkit/content/widgets/browser-custom-element-mjs.patch
Normal file
18
src/toolkit/content/widgets/browser-custom-element-mjs.patch
Normal file
|
@ -0,0 +1,18 @@
|
|||
diff --git a/toolkit/content/widgets/browser-custom-element.mjs b/toolkit/content/widgets/browser-custom-element.mjs
|
||||
index 8eeea2a403ba2007a1a1e6074bb982b24f40fef5..29bae869dfd8c9df6039b3c9b8b1603092e517ea 100644
|
||||
--- a/toolkit/content/widgets/browser-custom-element.mjs
|
||||
+++ b/toolkit/content/widgets/browser-custom-element.mjs
|
||||
@@ -482,11 +482,11 @@ class MozBrowser extends MozElements.MozElementMixin(XULFrameElement) {
|
||||
if (!this.browsingContext) {
|
||||
return;
|
||||
}
|
||||
- this.browsingContext.isActive = val;
|
||||
+ this.browsingContext.isActive = val || this.zenModeActive;
|
||||
if (this.isRemoteBrowser) {
|
||||
let remoteTab = this.frameLoader?.remoteTab;
|
||||
if (remoteTab) {
|
||||
- remoteTab.renderLayers = val;
|
||||
+ remoteTab.renderLayers = val || this.zenModeActive;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/toolkit/modules/LightweightThemeConsumer.sys.mjs b/toolkit/modules/LightweightThemeConsumer.sys.mjs
|
||||
index d8c79cbae4de3ebfc5dc62f3597c7be4965a5429..4398108bd6d74aa8b6689baaf5334d8ba9a26c4e 100644
|
||||
index fe01b25c520d1be71224b136b1ce46e9577e11a1..e5501590f3695ed4c2e19be5c104958b497c886e 100644
|
||||
--- a/toolkit/modules/LightweightThemeConsumer.sys.mjs
|
||||
+++ b/toolkit/modules/LightweightThemeConsumer.sys.mjs
|
||||
@@ -31,7 +31,7 @@ const toolkitVariableMap = [
|
||||
|
@ -11,3 +11,12 @@ index d8c79cbae4de3ebfc5dc62f3597c7be4965a5429..4398108bd6d74aa8b6689baaf5334d8b
|
|||
}
|
||||
// Remove the alpha channel
|
||||
const { r, g, b } = rgbaChannels;
|
||||
@@ -317,7 +317,7 @@ LightweightThemeConsumer.prototype = {
|
||||
}
|
||||
|
||||
let theme = useDarkTheme ? themeData.darkTheme : themeData.theme;
|
||||
- if (!theme) {
|
||||
+ if (!theme || Services.prefs.getBoolPref("zen.theme.disable-lightweight")) {
|
||||
theme = { id: DEFAULT_THEME_ID };
|
||||
}
|
||||
let hasTheme = theme.id != DEFAULT_THEME_ID || useDarkTheme;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/toolkit/modules/ShortcutUtils.sys.mjs b/toolkit/modules/ShortcutUtils.sys.mjs
|
||||
index 360a7dbeeae3899af01945e35d5fe3aa0cb3c562..354c0c9e65e443682a2b12113bc618af9e07910f 100644
|
||||
index 3e796cb6586ad39257a29c2a6da1d0415f4c2676..dd883f81612d9dc892e720b63e2793e43b9686b3 100644
|
||||
--- a/toolkit/modules/ShortcutUtils.sys.mjs
|
||||
+++ b/toolkit/modules/ShortcutUtils.sys.mjs
|
||||
@@ -140,6 +140,7 @@ export var ShortcutUtils = {
|
||||
|
@ -10,18 +10,3 @@ index 360a7dbeeae3899af01945e35d5fe3aa0cb3c562..354c0c9e65e443682a2b12113bc618af
|
|||
key = keyAttribute.toUpperCase();
|
||||
}
|
||||
|
||||
@@ -382,12 +383,12 @@ export var ShortcutUtils = {
|
||||
return ShortcutUtils.MOVE_TAB_FORWARD;
|
||||
}
|
||||
break;
|
||||
- case event.DOM_VK_LEFT:
|
||||
+ case event.DOM_VK_UP: // For macOS, make sure if this patch needs to be updated
|
||||
if (accelMetaKey && event.altKey && !event.shiftKey && !event.ctrlKey) {
|
||||
return ShortcutUtils.PREVIOUS_TAB;
|
||||
}
|
||||
break;
|
||||
- case event.DOM_VK_RIGHT:
|
||||
+ case event.DOM_VK_DOWN: // For macOS, make sure if this patch needs to be updated
|
||||
if (accelMetaKey && event.altKey && !event.shiftKey && !event.ctrlKey) {
|
||||
return ShortcutUtils.NEXT_TAB;
|
||||
}
|
||||
|
|
13
src/toolkit/themes/shared/menulist-css.patch
Normal file
13
src/toolkit/themes/shared/menulist-css.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/toolkit/themes/shared/menulist.css b/toolkit/themes/shared/menulist.css
|
||||
index e5ac973b1ee2595e8547680465e25d537685a9e7..20f85152d783c81be5e29846353daca9ccd0c67d 100644
|
||||
--- a/toolkit/themes/shared/menulist.css
|
||||
+++ b/toolkit/themes/shared/menulist.css
|
||||
@@ -53,7 +53,7 @@
|
||||
|
||||
:host(:not([native])) {
|
||||
appearance: none;
|
||||
- background-color: var(--button-background-color);
|
||||
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
|
||||
color: var(--button-text-color);
|
||||
border-radius: 4px;
|
||||
padding-block: 4px;
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/toolkit/themes/shared/menulist-shared.css b/toolkit/themes/shared/menulist-shared.css
|
||||
index 5dd5549674570170a694afbd9ea4526e52e3192a..a24ded413065ce1493e8622c5777c5b5bdac128e 100644
|
||||
--- a/toolkit/themes/shared/menulist-shared.css
|
||||
+++ b/toolkit/themes/shared/menulist-shared.css
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
:host(:not([native])) {
|
||||
appearance: none;
|
||||
- background-color: var(--button-background-color);
|
||||
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
|
||||
color: var(--button-text-color);
|
||||
border-radius: 4px;
|
||||
padding-block: 4px;
|
21
src/widget/SwipeTracker-cpp.patch
Normal file
21
src/widget/SwipeTracker-cpp.patch
Normal file
|
@ -0,0 +1,21 @@
|
|||
diff --git a/widget/SwipeTracker.cpp b/widget/SwipeTracker.cpp
|
||||
index b09252fd60beb10d5865d226c39ee0c8a9c22d87..91f68161209c6ca3f3bac22997d4e2066f1fafec 100644
|
||||
--- a/widget/SwipeTracker.cpp
|
||||
+++ b/widget/SwipeTracker.cpp
|
||||
@@ -5,6 +5,7 @@
|
||||
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "SwipeTracker.h"
|
||||
+#include "mozilla/StaticPrefs_zen.h"
|
||||
|
||||
#include "InputData.h"
|
||||
#include "mozilla/FlushType.h"
|
||||
@@ -90,7 +91,7 @@ bool SwipeTracker::ComputeSwipeSuccess() const {
|
||||
|
||||
return (mGestureAmount * targetValue +
|
||||
mCurrentVelocity * targetValue *
|
||||
- StaticPrefs::widget_swipe_success_velocity_contribution()) >=
|
||||
+ (StaticPrefs::zen_swipe_is_fast_swipe() ? 0.5 : StaticPrefs::widget_swipe_success_velocity_contribution())) >=
|
||||
kSwipeSuccessThreshold;
|
||||
}
|
||||
|
|
@ -1,20 +1,20 @@
|
|||
diff --git a/widget/cocoa/VibrancyManager.mm b/widget/cocoa/VibrancyManager.mm
|
||||
index 849b62c9976a7bc5fee35e074e54c8f556ed9c38..a9742c7ff30d417a18f41f9c120259192f33a0fd 100644
|
||||
index b4c14233c64dd3515518d3167f8ee2877fe41a93..2b91fa3044794765b8e15c6b66b348de4111f29f 100644
|
||||
--- a/widget/cocoa/VibrancyManager.mm
|
||||
+++ b/widget/cocoa/VibrancyManager.mm
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include "nsChildView.h"
|
||||
#include "nsCocoaWindow.h"
|
||||
#include "mozilla/StaticPrefs_widget.h"
|
||||
+#include "mozilla/StaticPrefs_zen.h"
|
||||
|
||||
using namespace mozilla;
|
||||
|
||||
@@ -40,7 +41,23 @@ static NSVisualEffectMaterial VisualEffectMaterialForVibrancyType(
|
||||
@@ -38,7 +39,23 @@ static NSVisualEffectMaterial VisualEffectMaterialForVibrancyType(
|
||||
VibrancyType aType) {
|
||||
switch (aType) {
|
||||
case VibrancyType::Sidebar:
|
||||
return NSVisualEffectMaterialSidebar;
|
||||
case VibrancyType::Titlebar:
|
||||
- return NSVisualEffectMaterialTitlebar;
|
||||
- return NSVisualEffectMaterialSidebar;
|
||||
+ switch (StaticPrefs::zen_widget_macos_window_material()) {
|
||||
+ case 1:
|
||||
+ return NSVisualEffectMaterialHUDWindow;
|
||||
|
@ -32,10 +32,10 @@ index 849b62c9976a7bc5fee35e074e54c8f556ed9c38..a9742c7ff30d417a18f41f9c12025919
|
|||
+ default:
|
||||
+ return NSVisualEffectMaterialUnderWindowBackground;
|
||||
+ }
|
||||
case VibrancyType::Titlebar:
|
||||
return NSVisualEffectMaterialTitlebar;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,6 +95,7 @@ static NSVisualEffectBlendingMode VisualEffectBlendingModeForVibrancyType(
|
||||
@@ -78,6 +95,7 @@ - (NSView*)hitTest:(NSPoint)aPoint {
|
||||
|
||||
- (void)prefChanged {
|
||||
self.blendingMode = VisualEffectBlendingModeForVibrancyType(mType);
|
||||
|
@ -50,4 +50,4 @@ index 849b62c9976a7bc5fee35e074e54c8f556ed9c38..a9742c7ff30d417a18f41f9c12025919
|
|||
+ "zen.widget.macos.window-material"_ns,
|
||||
};
|
||||
|
||||
VibrancyManager::VibrancyManager(const nsChildView& aCoordinateConverter,
|
||||
VibrancyManager::VibrancyManager(const nsCocoaWindow& aCoordinateConverter,
|
||||
|
|
13
src/widget/cocoa/nsCocoaWindow-mm.patch
Normal file
13
src/widget/cocoa/nsCocoaWindow-mm.patch
Normal file
|
@ -0,0 +1,13 @@
|
|||
diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm
|
||||
index c4627621344d35081f11a7b0e03d02eca2097609..c9e35156b484f1afdecdd7f93b6bf02e25fae09b 100644
|
||||
--- a/widget/cocoa/nsCocoaWindow.mm
|
||||
+++ b/widget/cocoa/nsCocoaWindow.mm
|
||||
@@ -7376,7 +7376,7 @@ - (id)initWithContentRect:(NSRect)aContentRect
|
||||
|
||||
// Returns an autoreleased NSImage.
|
||||
static NSImage* GetMenuMaskImage() {
|
||||
- const CGFloat radius = 6.0f;
|
||||
+ const CGFloat radius = 10.0f;
|
||||
const NSSize maskSize = {radius * 3.0f, radius * 3.0f};
|
||||
NSImage* maskImage = [NSImage imageWithSize:maskSize
|
||||
flipped:FALSE
|
|
@ -72,7 +72,7 @@ var gZenCommonActions = {
|
|||
let transferable = Cc['@mozilla.org/widget/transferable;1'].createInstance(
|
||||
Ci.nsITransferable
|
||||
);
|
||||
transferable.init(getLoadContext());
|
||||
transferable.init(window.docShell.QueryInterface(Ci.nsILoadContext));
|
||||
transferable.addDataFlavor('text/plain');
|
||||
transferable.setTransferData('text/plain', str);
|
||||
Services.clipboard.setData(transferable, null, Ci.nsIClipboard.kGlobalClipboard);
|
||||
|
@ -110,7 +110,7 @@ var gZenCommonActions = {
|
|||
let transferable = Cc['@mozilla.org/widget/transferable;1'].createInstance(
|
||||
Ci.nsITransferable
|
||||
);
|
||||
transferable.init(getLoadContext());
|
||||
transferable.init(window.docShell.QueryInterface(Ci.nsILoadContext));
|
||||
transferable.addDataFlavor('text/plain');
|
||||
transferable.setTransferData('text/plain', str);
|
||||
Services.clipboard.setData(transferable, null, Ci.nsIClipboard.kGlobalClipboard);
|
||||
|
|
|
@ -116,7 +116,7 @@ export var ZenCustomizableUI = new (class {
|
|||
const handlePopupHidden = () => {
|
||||
window.setTimeout(() => {
|
||||
button.removeAttribute('open');
|
||||
}, 100);
|
||||
}, 500);
|
||||
window.gZenUIManager.motion.animate(
|
||||
image,
|
||||
{ transform: ['rotate(45deg)', 'rotate(0deg)'] },
|
||||
|
|
|
@ -41,8 +41,6 @@
|
|||
document.getElementById('zen-appcontent-wrapper').prepend(deckTemplate);
|
||||
}
|
||||
|
||||
this._hideUnusedElements();
|
||||
|
||||
gZenWorkspaces.init();
|
||||
gZenUIManager.init();
|
||||
|
||||
|
@ -148,16 +146,6 @@
|
|||
}
|
||||
},
|
||||
|
||||
_hideUnusedElements() {
|
||||
const kElements = ['firefox-view-button'];
|
||||
for (let id of kElements) {
|
||||
const elem = document.getElementById(id);
|
||||
if (elem) {
|
||||
elem.setAttribute('hidden', 'true');
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_initSearchBar() {
|
||||
// Only focus the url bar
|
||||
gURLBar.focus();
|
||||
|
|
|
@ -83,7 +83,7 @@ var gZenUIManager = {
|
|||
'--zen-urlbar-top',
|
||||
`${window.innerHeight / 2 - Math.max(kUrlbarHeight, gURLBar.textbox.getBoundingClientRect().height) / 2}px`
|
||||
);
|
||||
gURLBar.textbox.style.setProperty('--zen-urlbar-width', `${window.innerWidth / 2}px`);
|
||||
gURLBar.textbox.style.setProperty('--zen-urlbar-width', `${window.innerWidth / 3}px`);
|
||||
gZenVerticalTabsManager.actualWindowButtons.removeAttribute('zen-has-hover');
|
||||
gZenVerticalTabsManager.recalculateURLBarHeight();
|
||||
if (!this._preventToolbarRebuild) {
|
||||
|
|
|
@ -1,22 +1,15 @@
|
|||
// 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/.
|
||||
const lazy = {};
|
||||
|
||||
var { AppConstants } = ChromeUtils.importESModule('resource://gre/modules/AppConstants.sys.mjs');
|
||||
class nsZenUIMigration {
|
||||
PREF_NAME = 'zen.ui.migration.version';
|
||||
MIGRATION_VERSION = 2;
|
||||
|
||||
ChromeUtils.defineESModuleGetters(lazy, {
|
||||
BrowserWindowTracker: 'resource:///modules/BrowserWindowTracker.sys.mjs',
|
||||
});
|
||||
|
||||
class ZenUIMigration {
|
||||
PREF_NAME = 'zen.migration.version';
|
||||
MIGRATION_VERSION = 5;
|
||||
|
||||
init(isNewProfile, win) {
|
||||
init(isNewProfile) {
|
||||
if (!isNewProfile) {
|
||||
try {
|
||||
this._migrate(win);
|
||||
this._migrate();
|
||||
} catch (e) {
|
||||
console.error('ZenUIMigration: Error during migration', e);
|
||||
}
|
||||
|
@ -32,18 +25,11 @@ class ZenUIMigration {
|
|||
Services.prefs.setIntPref(this.PREF_NAME, value);
|
||||
}
|
||||
|
||||
_migrate(win) {
|
||||
if (this._migrationVersion < 1) {
|
||||
this._migrateV1(win);
|
||||
}
|
||||
if (this._migrationVersion < 2) {
|
||||
this._migrateV2(win);
|
||||
}
|
||||
if (this._migrationVersion < 3) {
|
||||
this._migrateV3(win);
|
||||
}
|
||||
if (this._migrationVersion < 4) {
|
||||
this._migrateV4(win);
|
||||
_migrate() {
|
||||
for (let i = 0; i <= this.MIGRATION_VERSION; i++) {
|
||||
if (this._migrationVersion < i) {
|
||||
this[`_migrateV${i}`]?.();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,59 +37,31 @@ class ZenUIMigration {
|
|||
this._migrationVersion = this.MIGRATION_VERSION;
|
||||
}
|
||||
|
||||
_migrateV1(win) {
|
||||
// Introduction of the new URL bar, show a message to the user
|
||||
const notification = win.gNotificationBox.appendNotification(
|
||||
'zen-new-urlbar-notification',
|
||||
{
|
||||
label: { 'l10n-id': 'zen-new-urlbar-notification' },
|
||||
image: 'chrome://browser/skin/notification-icons/persistent-storage-blocked.svg',
|
||||
priority: win.gNotificationBox.PRIORITY_WARNING_HIGH,
|
||||
},
|
||||
[
|
||||
{
|
||||
'l10n-id': 'zen-disable',
|
||||
accessKey: 'D',
|
||||
callback: () => {
|
||||
Services.prefs.setBoolPref('zen.urlbar.replace-newtab', false);
|
||||
},
|
||||
},
|
||||
{
|
||||
link: 'https://docs.zen-browser.app/user-manual/urlbar/',
|
||||
'l10n-id': 'zen-learn-more-text',
|
||||
},
|
||||
]
|
||||
);
|
||||
}
|
||||
|
||||
_migrateV2(win) {
|
||||
if (Services.prefs.getBoolPref('zen.widget.windows.acrylic', false)) {
|
||||
Services.prefs.setIntPref('widget.windows.mica.toplevel-backdrop', 2);
|
||||
Services.prefs.clearUserPref('zen.widget.windows.acrylic');
|
||||
}
|
||||
}
|
||||
|
||||
_migrateV3(win) {
|
||||
const kArea = win.CustomizableUI.AREA_TABSTRIP;
|
||||
const widgets = win.CustomizableUI.getWidgetsInArea(kArea);
|
||||
for (const widget of widgets) {
|
||||
const widgetId = widget.id;
|
||||
if (widgetId === 'tabbrowser-tabs') {
|
||||
continue;
|
||||
}
|
||||
win.CustomizableUI.removeWidgetFromArea(widgetId);
|
||||
}
|
||||
}
|
||||
|
||||
_migrateV4(win) {
|
||||
if (AppConstants.platform === 'linux') {
|
||||
return;
|
||||
_migrateV1() {
|
||||
// If there's an userChrome.css or userContent.css existing, we set
|
||||
// 'toolkit.legacyUserProfileCustomizations.stylesheets' back to true
|
||||
// We do this to avoid existing user stylesheets to be ignored
|
||||
const profileDir = Services.dirsvc.get('ProfD', Ci.nsIFile);
|
||||
const userChromeFile = profileDir.clone();
|
||||
userChromeFile.append('chrome');
|
||||
userChromeFile.append('userChrome.css');
|
||||
const userContentFile = profileDir.clone();
|
||||
userContentFile.append('chrome');
|
||||
userContentFile.append('userContent.css');
|
||||
if (userChromeFile.exists() || userContentFile.exists()) {
|
||||
Services.prefs.setBoolPref('toolkit.legacyUserProfileCustomizations.stylesheets', true);
|
||||
}
|
||||
Services.prefs.setBoolPref(
|
||||
'browser.tabs.unloadOnLowMemory',
|
||||
Services.prefs.getBoolPref('zen.tab-unloader.enabled', true)
|
||||
'zen.workspaces.separate-essentials',
|
||||
Services.prefs.getBoolPref('zen.workspaces.container-specific-essentials-enabled', false)
|
||||
);
|
||||
const theme = Services.prefs.getIntPref('layout.css.prefers-color-scheme.content-override', 0);
|
||||
Services.prefs.setIntPref('zen.view.window.scheme', theme);
|
||||
}
|
||||
|
||||
_migrateV2() {
|
||||
Services.prefs.setIntPref('zen.theme.gradient-legacy-version', 0);
|
||||
}
|
||||
}
|
||||
|
||||
export var gZenUIMigration = new ZenUIMigration();
|
||||
export var gZenUIMigration = new nsZenUIMigration();
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
}
|
||||
|
||||
& browser[transparent='true'] {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
background: light-dark(rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0.1));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#navigator-toolbox {
|
||||
/* see issue #426 */
|
||||
background: var(--zen-navigator-toolbox-background, transparent) !important;
|
||||
--inactive-titlebar-opacity: 1;
|
||||
--inactive-titlebar-opacity: 0.8;
|
||||
}
|
||||
|
||||
#nav-bar,
|
||||
|
@ -47,6 +47,8 @@
|
|||
|
||||
isolation: isolate;
|
||||
|
||||
background: var(--zen-themed-toolbar-bg-transparent);
|
||||
|
||||
&::after,
|
||||
&::before {
|
||||
content: '';
|
||||
|
@ -63,6 +65,12 @@
|
|||
transition: 0s;
|
||||
}
|
||||
|
||||
@media (-moz-pref('zen.view.grey-out-inactive-windows')) {
|
||||
&:-moz-window-inactive {
|
||||
background: InactiveCaption;
|
||||
}
|
||||
}
|
||||
|
||||
&::before {
|
||||
background: var(--zen-main-browser-background-old);
|
||||
opacity: calc(1 - var(--zen-background-opacity));
|
||||
|
@ -91,7 +99,9 @@
|
|||
z-index: 1;
|
||||
opacity: var(--zen-grainy-background-opacity, 0);
|
||||
mix-blend-mode: overlay;
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
:root:not([swipe-gesture='true']) & {
|
||||
transition: opacity 0.3s ease-in-out;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -100,11 +110,9 @@
|
|||
border: none;
|
||||
}
|
||||
|
||||
@supports (-moz-osx-font-smoothing: auto) {
|
||||
#zen-main-app-wrapper,
|
||||
#zen-appcontent-wrapper,
|
||||
#zen-sidebar-splitter {
|
||||
appearance: -moz-window-titlebar !important;
|
||||
@media (-moz-platform: macos) {
|
||||
#zen-main-app-wrapper {
|
||||
appearance: -moz-sidebar !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -118,7 +126,7 @@
|
|||
}
|
||||
|
||||
#zen-main-app-wrapper {
|
||||
background: var(--zen-themed-toolbar-bg-transparent);
|
||||
background: transparent;
|
||||
/* See bug #8814, don't an overflow here as it causes issues
|
||||
* with firefox's rendering of the tab bar */
|
||||
|
||||
|
@ -130,14 +138,6 @@
|
|||
background: ActiveCaption;
|
||||
color: CaptionText;
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.grey-out-inactive-windows') {
|
||||
transition: background-color var(--inactive-window-transition);
|
||||
&:-moz-window-inactive {
|
||||
background-color: InactiveCaption;
|
||||
color: InactiveCaptionText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#zen-appcontent-wrapper {
|
||||
|
@ -188,6 +188,7 @@
|
|||
|
||||
@media -moz-pref('zen.widget.mac.mono-window-controls') {
|
||||
.titlebar-buttonbox-container {
|
||||
color: var(--toolbox-textcolor);
|
||||
/* Draw 3 dots as background to represent the window controls,
|
||||
all with the same cololr as the titlebar */
|
||||
background-image: radial-gradient(
|
||||
|
@ -283,3 +284,17 @@
|
|||
border-radius: 2px;
|
||||
margin: 10px 2px 0 0;
|
||||
}
|
||||
|
||||
#zen-sidebar-splitter {
|
||||
border-radius: 14px;
|
||||
transition:
|
||||
background 0.2s ease-in-out,
|
||||
opacity 0.2s ease-in-out;
|
||||
|
||||
&:hover {
|
||||
background: var(--zen-primary-color);
|
||||
transition: background 0.2s ease-in-out;
|
||||
transition-delay: 0.2s;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
panel[type='arrow'][animate='open'] {
|
||||
@media (-moz-platform: macos) {
|
||||
@media (-moz-platform: macos) and (-moz-panel-animations) {
|
||||
animation: zen-jello-animation-macos 0.4s ease-out;
|
||||
&[side='bottom'] {
|
||||
/* Animate from the bottom */
|
||||
|
@ -20,7 +20,7 @@ panel[type='arrow'][animate='open'] {
|
|||
}
|
||||
}
|
||||
}
|
||||
@media (-moz-platform: linux) or ((-moz-platform: windows) and (not (-moz-windows-mica-popups))) {
|
||||
@media (-moz-platform: linux) or ((-moz-platform: windows) and (not (-moz-windows-mica-popups))) and (-moz-panel-animations) {
|
||||
/* Mica popups have a weird background while the animation is running */
|
||||
&::part(content) {
|
||||
animation: zen-jello-animation 0.35s ease;
|
||||
|
@ -64,7 +64,7 @@ panel[type='arrow'] {
|
|||
--panel-border-radius: 6px;
|
||||
|
||||
&::part(content) {
|
||||
background-color: light-dark(rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.2)) !important;
|
||||
background-color: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -369,7 +369,6 @@ menuseparator {
|
|||
var(--zen-primary-color) -40%,
|
||||
color-mix(in srgb, var(--zen-primary-color) 85%, #0f0f0f 15%)
|
||||
);
|
||||
color: var(--button-primary-color);
|
||||
box-shadow: 0 0 14px 3px rgba(0, 0, 0, 0.05);
|
||||
border: 1px solid light-dark(rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.2));
|
||||
display: flex;
|
||||
|
@ -394,14 +393,14 @@ menuseparator {
|
|||
}
|
||||
|
||||
& button {
|
||||
color-scheme: dark;
|
||||
width: min-content;
|
||||
padding: 0 10px !important;
|
||||
min-width: unset !important;
|
||||
margin: 0px !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;
|
||||
background: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.1)) !important;
|
||||
border: 1px solid light-dark(rgba(0, 0, 0, 0.15), rgba(255, 255, 255, 0.15)) !important;
|
||||
color: light-dark(rgba(0, 0, 0, 0.8), rgba(255, 255, 255, 0.8)) !important;
|
||||
|
||||
:root[zen-right-side='true'] & {
|
||||
order: -1;
|
||||
|
|
|
@ -36,6 +36,11 @@ body > #confetti {
|
|||
min-height: 30px;
|
||||
}
|
||||
|
||||
/* Firefox View */
|
||||
#firefox-view-button {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Emojis picker */
|
||||
|
||||
#PanelUI-zen-emojis-picker {
|
||||
|
@ -93,3 +98,27 @@ body > #confetti {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.toolbarbutton-1 {
|
||||
:root:is([zen-single-toolbar='true'], :not([zen-sidebar-expanded='true']))
|
||||
#zen-sidebar-top-buttons-customization-target
|
||||
&,
|
||||
#zen-sidebar-foot-buttons & {
|
||||
--tab-border-radius: 6px;
|
||||
--toolbarbutton-border-radius: var(--tab-border-radius);
|
||||
--toolbarbutton-inner-padding: 7px;
|
||||
|
||||
&,
|
||||
& stack {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
transition:
|
||||
background-color 0.1s,
|
||||
scale 0.2s;
|
||||
&:active {
|
||||
transform: scale(0.98);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,12 +9,7 @@
|
|||
*/
|
||||
|
||||
:host(:is(.anonymous-content-host, notification-message)),
|
||||
:root,
|
||||
.zenLooksAndFeelColorOption {
|
||||
/** We also add `.zenLooksAndFeelColorOption` so that it recalculates the colors when the theme changes
|
||||
* in the preferences page.
|
||||
*/
|
||||
|
||||
:root {
|
||||
/* Default values */
|
||||
--zen-border-radius: 7px;
|
||||
--zen-primary-color: #ffb787;
|
||||
|
@ -49,7 +44,7 @@
|
|||
var(--zen-colors-tertiary) 99%
|
||||
);
|
||||
|
||||
--zen-dialog-background: var(--zen-colors-tertiary);
|
||||
--zen-dialog-background: light-dark(var(--zen-colors-tertiary), var(--zen-branding-bg));
|
||||
--zen-urlbar-background: color-mix(in srgb, var(--zen-primary-color) 3%, #f4f4f4 97%);
|
||||
|
||||
--zen-secondary-btn-color: var(--zen-colors-primary-foreground);
|
||||
|
@ -89,10 +84,10 @@
|
|||
--button-bgcolor: var(--in-content-button-background) !important;
|
||||
--button-hover-bgcolor: var(--in-content-button-background-hover) !important;
|
||||
--button-hover-color: var(--in-content-button-text-color-hover) !important;
|
||||
--focus-outline-color: var(--button-bgcolor) !important;
|
||||
--focus-outline-color: var(--color-accent-primary) !important;
|
||||
|
||||
--toolbarbutton-icon-fill-attention: var(--zen-primary-color) !important;
|
||||
--toolbarbutton-icon-fill: light-dark(rgba(57, 57, 58, 0.6), rgba(251, 251, 254, 0.6)) !important;
|
||||
--toolbarbutton-icon-fill: currentColor !important;
|
||||
|
||||
--button-primary-bgcolor: var(--in-content-primary-button-background) !important;
|
||||
--button-primary-hover-bgcolor: var(--in-content-primary-button-background-hover) !important;
|
||||
|
@ -121,21 +116,32 @@
|
|||
--zen-button-border-radius: 5px;
|
||||
--zen-button-padding: 0.6rem 1.2rem;
|
||||
|
||||
--zen-toolbar-element-bg: light-dark(rgba(89, 89, 89, 0.1), rgba(255, 255, 255, 0.1));
|
||||
--zen-toolbar-element-bg: light-dark(
|
||||
color-mix(in oklch, var(--toolbox-textcolor) 8%, transparent),
|
||||
color-mix(in oklch, var(--toolbox-textcolor) 15%, transparent)
|
||||
);
|
||||
|
||||
/* Toolbar */
|
||||
--tab-selected-color-scheme: inherit;
|
||||
|
||||
--zen-toolbar-height: 38px;
|
||||
--zen-toolbar-button-inner-padding: 6px;
|
||||
--toolbarbutton-outer-padding: 4px;
|
||||
|
||||
--toolbarbutton-hover-background: color-mix(
|
||||
--toolbarbutton-inner-padding: 5px !important;
|
||||
|
||||
--toolbarbutton-hover-background: var(--zen-toolbar-element-bg) !important;
|
||||
|
||||
--toolbarbutton-active-background: color-mix(
|
||||
in srgb,
|
||||
var(--zen-branding-bg-reverse) 10%,
|
||||
transparent 90%
|
||||
);
|
||||
var(--zen-branding-bg-reverse) 7%,
|
||||
transparent 93%
|
||||
) !important;
|
||||
|
||||
--toolbar-color: light-dark(rgb(21, 20, 26, 0.7), rgb(251, 251, 254, 0.7)) !important;
|
||||
--toolbox-textcolor-inactive: var(--toolbox-textcolor) !important;
|
||||
|
||||
/* Other colors */
|
||||
--urlbar-box-bgcolor: var(--zen-urlbar-background) !important;
|
||||
--urlbar-box-active-bgcolor: var(--toolbarbutton-hover-background) !important;
|
||||
--toolbar-field-focus-background-color: var(--urlbar-box-bgcolor) !important;
|
||||
--zen-input-border-color: light-dark(rgb(204, 204, 204), rgb(66, 65, 77));
|
||||
|
@ -155,34 +161,15 @@
|
|||
--urlbar-margin-inline: 1px !important;
|
||||
|
||||
--tab-icon-overlay-stroke: light-dark(white, black) !important;
|
||||
|
||||
--tab-close-button-padding: 5px !important;
|
||||
|
||||
--toolbarbutton-active-background: var(--zen-toolbar-element-bg);
|
||||
|
||||
--input-bgcolor: var(--zen-colors-tertiary) !important;
|
||||
--input-border-color: var(--zen-input-border-color) !important;
|
||||
--zen-themed-toolbar-bg: light-dark(rgb(240, 240, 244), #171717);
|
||||
--zen-themed-toolbar-bg-transparent: light-dark(var(--zen-branding-bg), #171717);
|
||||
|
||||
--zen-workspace-indicator-height: 48px;
|
||||
|
||||
@media (-moz-windows-mica) or (-moz-platform: macos) {
|
||||
background: transparent;
|
||||
--zen-themed-toolbar-bg-transparent: transparent;
|
||||
@media -moz-pref('widget.windows.mica.toplevel-backdrop', 2) {
|
||||
--zen-themed-toolbar-bg-transparent: color-mix(
|
||||
in srgb,
|
||||
var(--zen-themed-toolbar-bg) 35%,
|
||||
transparent 65%
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@media (-moz-platform: linux) and -moz-pref('zen.widget.linux.transparency') {
|
||||
background: transparent;
|
||||
--zen-themed-toolbar-bg-transparent: transparent;
|
||||
}
|
||||
--toolbar-field-color: var(--toolbox-textcolor) !important;
|
||||
|
||||
&[zen-private-window='true'] {
|
||||
--zen-main-browser-background: linear-gradient(
|
||||
|
@ -192,6 +179,7 @@
|
|||
);
|
||||
--zen-main-browser-background-toolbar: var(--zen-main-browser-background);
|
||||
--zen-primary-color: light-dark(rgb(93, 42, 107), rgb(110, 48, 125)) !important;
|
||||
--toolbox-textcolor: currentColor !important;
|
||||
}
|
||||
|
||||
--toolbar-field-background-color: var(--zen-colors-input-bg) !important;
|
||||
|
@ -203,11 +191,7 @@
|
|||
--zen-active-tab-scale: 0.98;
|
||||
|
||||
/* Define tab hover background color */
|
||||
--tab-hover-background-color: color-mix(
|
||||
in srgb,
|
||||
var(--toolbarbutton-hover-background) 50%,
|
||||
transparent 50%
|
||||
);
|
||||
--tab-hover-background-color: var(--toolbarbutton-hover-background);
|
||||
|
||||
/* Nativity */
|
||||
--zen-native-content-radius: var(--zen-border-radius);
|
||||
|
@ -239,40 +223,78 @@
|
|||
|
||||
#main-window:not([chromehidden~='toolbar']) {
|
||||
min-height: 495px !important;
|
||||
|
||||
@media (-moz-windows-mica) or (-moz-platform: macos) or ((-moz-platform: linux) and -moz-pref('zen.widget.linux.transparency')) {
|
||||
background: transparent;
|
||||
--zen-themed-toolbar-bg-transparent: transparent;
|
||||
@media -moz-pref('widget.windows.mica.toplevel-backdrop', 2) {
|
||||
--zen-themed-toolbar-bg-transparent: light-dark(rgba(255, 255, 255, 0.1), rgba(0, 0, 0, 0.3));
|
||||
}
|
||||
}
|
||||
|
||||
&[zen-should-be-dark-mode='true'] #browser {
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
&[zen-should-be-dark-mode='false'] #browser {
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
&,
|
||||
& panel,
|
||||
& menupopup,
|
||||
& #zen-browser-background,
|
||||
& #urlbar[breakout-extend='true'],
|
||||
& #tabbrowser-tabpanels browser[type='content'],
|
||||
&:not([zen-should-be-dark-mode]) #zen-toast-container {
|
||||
@media -moz-pref('zen.view.window.scheme', 0) {
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.window.scheme', 1) {
|
||||
color-scheme: light;
|
||||
}
|
||||
|
||||
@media -moz-pref('zen.view.window.scheme', 2) {
|
||||
color-scheme: light;
|
||||
@media (-moz-system-dark-theme) {
|
||||
color-scheme: dark;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:host(:is(.anonymous-content-host, notification-message)),
|
||||
:root {
|
||||
--zen-in-content-dialog-background: var(--zen-branding-bg);
|
||||
--zen-dark-color-mix-base: var(--zen-branding-bg);
|
||||
--zen-colors-primary: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 20%,
|
||||
var(--zen-dark-color-mix-base) 80%
|
||||
var(--zen-branding-bg) 80%
|
||||
);
|
||||
--zen-colors-secondary: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 30%,
|
||||
var(--zen-dark-color-mix-base) 70%
|
||||
var(--zen-branding-bg) 70%
|
||||
);
|
||||
--zen-colors-tertiary: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 1%,
|
||||
var(--zen-dark-color-mix-base) 99%
|
||||
var(--zen-branding-bg) 99%
|
||||
);
|
||||
|
||||
--zen-colors-hover-bg: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 90%,
|
||||
var(--zen-dark-color-mix-base) 10%
|
||||
var(--zen-branding-bg) 10%
|
||||
);
|
||||
--zen-colors-primary-foreground: color-mix(in srgb, var(--zen-primary-color) 80%, white 20%);
|
||||
|
||||
--zen-colors-input-bg: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 1%,
|
||||
var(--zen-dark-color-mix-base) 99%
|
||||
var(--zen-branding-bg) 99%
|
||||
);
|
||||
--zen-colors-border: color-mix(in srgb, var(--zen-colors-secondary) 20%, rgb(79, 79, 79) 80%);
|
||||
--zen-colors-border-contrast: color-mix(
|
||||
|
@ -281,13 +303,12 @@
|
|||
rgba(255, 255, 255, 0.11) 90%
|
||||
);
|
||||
|
||||
--zen-dialog-background: var(--zen-dark-color-mix-base);
|
||||
--zen-urlbar-background: color-mix(in srgb, var(--zen-primary-color) 4%, rgb(24, 24, 24) 96%);
|
||||
|
||||
--zen-browser-gradient-base: color-mix(
|
||||
in srgb,
|
||||
var(--zen-primary-color) 30%,
|
||||
var(--zen-dark-color-mix-base) 70%
|
||||
var(--zen-branding-bg) 70%
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
}
|
||||
|
||||
#urlbar {
|
||||
--urlbarView-separator-color: light-dark(hsl(0, 0%, 90%), hsl(0, 0%, 20%));
|
||||
--urlbarView-separator-color: light-dark(hsl(0, 0%, 74.9%), hsl(0, 0%, 20%));
|
||||
--urlbarView-hover-background: var(--toolbarbutton-hover-background);
|
||||
--urlbarView-highlight-background: var(--toolbarbutton-hover-background);
|
||||
border-radius: calc(var(--toolbarbutton-border-radius) - 2px);
|
||||
|
@ -66,7 +66,7 @@
|
|||
}
|
||||
|
||||
&:hover #urlbar-background {
|
||||
background-color: light-dark(rgba(89, 89, 89, 0.15), rgba(255, 255, 255, 0.2)) !important;
|
||||
background-color: light-dark(rgba(0, 0, 0, 0.1), rgba(255, 255, 255, 0.2)) !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,9 +162,10 @@
|
|||
}
|
||||
|
||||
& #urlbar-background {
|
||||
--zen-urlbar-background-base: light-dark(
|
||||
hsl(0, 0%, 100%),
|
||||
color-mix(in srgb, hsl(0, 0%, 5%) 80%, var(--zen-colors-primary) 20%)
|
||||
--zen-urlbar-background-base: color-mix(
|
||||
in srgb,
|
||||
light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 5%)) 80%,
|
||||
var(--zen-colors-primary) 20%
|
||||
);
|
||||
@media -moz-pref('zen.theme.acrylic-elements') {
|
||||
--zen-urlbar-background-transparent: color-mix(
|
||||
|
@ -481,11 +482,14 @@ button.popup-notification-dropmarker {
|
|||
left: 50% !important;
|
||||
|
||||
#urlbar-container:has(&) {
|
||||
border-radius: 10px;
|
||||
border-radius: var(--border-radius-medium);
|
||||
background: var(--toolbarbutton-hover-background);
|
||||
height: var(--urlbar-height) !important;
|
||||
margin-inline: 0.15rem !important;
|
||||
:root:not([zen-single-toolbar='true']) & {
|
||||
max-height: 32px !important;
|
||||
min-height: unset;
|
||||
min-height: unset !important;
|
||||
margin-block: -1px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -155,13 +155,13 @@ var gZenCompactModeManager = {
|
|||
},
|
||||
|
||||
updateCompactModeContext(isSingleToolbar) {
|
||||
const IDs = [
|
||||
'zen-context-menu-compact-mode-hide-sidebar',
|
||||
'zen-context-menu-compact-mode-hide-toolbar',
|
||||
'zen-context-menu-compact-mode-hide-both',
|
||||
];
|
||||
for (let id of IDs) {
|
||||
document.getElementById(id).disabled = isSingleToolbar;
|
||||
const menuitem = document.getElementById('zen-context-menu-compact-mode-toggle');
|
||||
const menu = document.getElementById('zen-context-menu-compact-mode');
|
||||
menu.setAttribute('hidden', isSingleToolbar);
|
||||
if (isSingleToolbar) {
|
||||
menu.before(menuitem);
|
||||
} else {
|
||||
menu.querySelector('menupopup').prepend(menuitem);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -209,14 +209,15 @@ var gZenCompactModeManager = {
|
|||
// the caller is from the ResizeObserver
|
||||
getAndApplySidebarWidth(event = undefined) {
|
||||
if (this._ignoreNextResize) {
|
||||
this._ignoreNextResize = false;
|
||||
delete this._ignoreNextResize;
|
||||
return;
|
||||
}
|
||||
let sidebarWidth = this.sidebar.getBoundingClientRect().width;
|
||||
const shouldRecalculate =
|
||||
this.preference || document.documentElement.hasAttribute('zen-creating-workspace');
|
||||
const sidebarExpanded = document.documentElement.hasAttribute('zen-sidebar-expanded');
|
||||
if (sidebarWidth > 1) {
|
||||
if (shouldRecalculate && gZenVerticalTabsManager._prefsSidebarExpanded) {
|
||||
if (shouldRecalculate && sidebarExpanded) {
|
||||
sidebarWidth = Math.max(sidebarWidth, 150);
|
||||
}
|
||||
// Second variable to get the genuine width of the sidebar
|
||||
|
@ -225,7 +226,7 @@ var gZenCompactModeManager = {
|
|||
if (
|
||||
event &&
|
||||
shouldRecalculate &&
|
||||
gZenVerticalTabsManager._prefsSidebarExpanded &&
|
||||
sidebarExpanded &&
|
||||
!gZenVerticalTabsManager._hadSidebarCollapse
|
||||
) {
|
||||
return;
|
||||
|
@ -244,9 +245,9 @@ var gZenCompactModeManager = {
|
|||
},
|
||||
|
||||
animateCompactMode() {
|
||||
// Get the splitter width before hiding it (we need to hide it before animating on right)
|
||||
document.documentElement.setAttribute('zen-compact-animating', 'true');
|
||||
return new Promise((resolve) => {
|
||||
// Get the splitter width before hiding it (we need to hide it before animating on right)
|
||||
document.documentElement.setAttribute('zen-compact-animating', 'true');
|
||||
// We need to set the splitter width before hiding it
|
||||
let splitterWidth = document
|
||||
.getElementById('zen-sidebar-splitter')
|
||||
|
@ -267,6 +268,7 @@ var gZenCompactModeManager = {
|
|||
this.sidebar.style.removeProperty('margin-left');
|
||||
this.sidebar.style.removeProperty('transform');
|
||||
window.requestAnimationFrame(() => {
|
||||
delete this._ignoreNextResize;
|
||||
let sidebarWidth = this.getAndApplySidebarWidth();
|
||||
const elementSeparation = ZenThemeModifier.elementSeparation;
|
||||
if (!canAnimate) {
|
||||
|
@ -323,6 +325,8 @@ var gZenCompactModeManager = {
|
|||
} else {
|
||||
sidebarWidth -= elementSeparation;
|
||||
}
|
||||
this.sidebar.style.marginRight = '0px';
|
||||
this.sidebar.style.marginLeft = '0px';
|
||||
gZenUIManager.motion
|
||||
.animate(
|
||||
this.sidebar,
|
||||
|
@ -334,7 +338,7 @@ var gZenCompactModeManager = {
|
|||
ease: 'easeIn',
|
||||
type: 'spring',
|
||||
bounce: 0,
|
||||
duration: 0.2,
|
||||
duration: 0.15,
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
|
@ -385,7 +389,7 @@ var gZenCompactModeManager = {
|
|||
ease: 'easeOut',
|
||||
type: 'spring',
|
||||
bounce: 0,
|
||||
duration: 0.2,
|
||||
duration: 0.15,
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
|
|
|
@ -328,8 +328,7 @@
|
|||
}
|
||||
|
||||
& #titlebar,
|
||||
& #zen-appcontent-wrapper,
|
||||
& #zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel:not([pinned='true'])) {
|
||||
& #zen-appcontent-wrapper {
|
||||
margin-top: var(--zen-element-separation) !important;
|
||||
}
|
||||
|
||||
|
@ -337,10 +336,6 @@
|
|||
z-index: 3 !important;
|
||||
}
|
||||
|
||||
& #zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned='true']) {
|
||||
margin-top: calc(var(--zen-element-separation) * 2) !important;
|
||||
}
|
||||
|
||||
& #zen-appcontent-navbar-wrapper {
|
||||
--zen-compact-toolbar-offset: 5px;
|
||||
position: absolute;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
},
|
||||
});
|
||||
|
||||
class ZenDownloadAnimation extends ZenDOMOperatedFeature {
|
||||
class nsZenDownloadAnimation extends ZenDOMOperatedFeature {
|
||||
async init() {
|
||||
await this.#setupDownloadListeners();
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
|||
});
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`[${ZenDownloadAnimation.name}] Failed to set up download animation listeners: ${error}`
|
||||
`[${nsZenDownloadAnimation.name}] Failed to set up download animation listeners: ${error}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -41,7 +41,7 @@
|
|||
|
||||
if (!gZenUIManager._lastClickPosition) {
|
||||
console.warn(
|
||||
`[${ZenDownloadAnimation.name}] No recent click position available for animation`
|
||||
`[${nsZenDownloadAnimation.name}] No recent click position available for animation`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -61,7 +61,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
class ZenDownloadAnimationElement extends HTMLElement {
|
||||
class nsZenDownloadAnimationElement extends HTMLElement {
|
||||
#boxAnimationElement = null;
|
||||
#boxAnimationTimeoutId = null;
|
||||
#isBoxAnimationRunning = false;
|
||||
|
@ -82,14 +82,14 @@
|
|||
);
|
||||
this.shadowRoot.appendChild(link);
|
||||
} catch (error) {
|
||||
console.error(`[${ZenDownloadAnimationElement.name}] Error loading arc styles: ${error}`);
|
||||
console.error(`[${nsZenDownloadAnimationElement.name}] Error loading arc styles: ${error}`);
|
||||
}
|
||||
}
|
||||
|
||||
async initializeAnimation(startPosition) {
|
||||
if (!startPosition) {
|
||||
console.warn(
|
||||
`[${ZenDownloadAnimationElement.name}] No start position provided, skipping animation`
|
||||
`[${nsZenDownloadAnimationElement.name}] No start position provided, skipping animation`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -229,7 +229,7 @@
|
|||
|
||||
this.#cleanArcAnimation(arcAnimationElement);
|
||||
} catch (error) {
|
||||
console.error('[ZenDownloadAnimationElement] Error in animation sequence:', error);
|
||||
console.error('[nsZenDownloadAnimationElement] Error in animation sequence:', error);
|
||||
this.#cleanArcAnimation(arcAnimationElement);
|
||||
}
|
||||
}
|
||||
|
@ -309,7 +309,7 @@
|
|||
// If animation is already in progress, don't start a new one
|
||||
if (this.#isBoxAnimationRunning) {
|
||||
console.warn(
|
||||
`[${ZenDownloadAnimationElement.name}] Box animation already running, skipping new request.`
|
||||
`[${nsZenDownloadAnimationElement.name}] Box animation already running, skipping new request.`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -326,7 +326,7 @@
|
|||
const wrapper = document.getElementById('zen-main-app-wrapper');
|
||||
if (!wrapper) {
|
||||
console.warn(
|
||||
`[${ZenDownloadAnimationElement.name}] Cannot start box animation, Wrapper element not found`
|
||||
`[${nsZenDownloadAnimationElement.name}] Cannot start box animation, Wrapper element not found`
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -385,7 +385,7 @@
|
|||
);
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`[${ZenDownloadAnimationElement.name}] Error during box entry animation: ${error}`
|
||||
`[${nsZenDownloadAnimationElement.name}] Error during box entry animation: ${error}`
|
||||
);
|
||||
this.#cleanBoxAnimation();
|
||||
} finally {
|
||||
|
@ -436,7 +436,7 @@
|
|||
).finished;
|
||||
} catch (error) {
|
||||
console.warn(
|
||||
`[${ZenDownloadAnimationElement.name}] Error during box exit animation: ${error}`
|
||||
`[${nsZenDownloadAnimationElement.name}] Error during box exit animation: ${error}`
|
||||
);
|
||||
} finally {
|
||||
this.#cleanBoxAnimation();
|
||||
|
@ -458,7 +458,7 @@
|
|||
this.#boxAnimationElement.remove();
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`[${ZenDownloadAnimationElement.name}] Error removing box animation element: ${error}`,
|
||||
`[${nsZenDownloadAnimationElement.name}] Error removing box animation element: ${error}`,
|
||||
error
|
||||
);
|
||||
}
|
||||
|
@ -488,7 +488,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
customElements.define('zen-download-animation', ZenDownloadAnimationElement);
|
||||
customElements.define('zen-download-animation', nsZenDownloadAnimationElement);
|
||||
|
||||
new ZenDownloadAnimation();
|
||||
new nsZenDownloadAnimation();
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
}
|
||||
|
||||
#onTabGrouped(event) {
|
||||
const tab = event.target;
|
||||
const tab = event.detail;
|
||||
const group = tab.group;
|
||||
group.pinned = tab.pinned;
|
||||
|
||||
|
@ -30,8 +30,8 @@
|
|||
}
|
||||
|
||||
#onTabUngrouped(event) {
|
||||
const tab = event.target;
|
||||
const group = event.detail;
|
||||
const tab = event.detail;
|
||||
const group = event.target;
|
||||
if (group.hasAttribute('split-view-group') && tab.hasAttribute('had-zen-pinned-changed')) {
|
||||
tab.setAttribute('zen-pinned-changed', true);
|
||||
tab.removeAttribute('had-zen-pinned-changed');
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue