mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-04 08:56:34 +00:00
Merge branch 'dev' into download-animation
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +1,2 @@
|
|||||||
*.patch linguist-language=C++
|
*.patch linguist-language=C++
|
||||||
|
*.d.ts linguist-language=TypeScript
|
||||||
|
15
.github/workflows/macos-release-build.yml
vendored
15
.github/workflows/macos-release-build.yml
vendored
@@ -24,7 +24,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
mac-build:
|
mac-build:
|
||||||
name: Build macOS - ${{ matrix.arch }}
|
name: Build macOS - ${{ matrix.arch }}
|
||||||
runs-on: ${{ inputs.release-branch == 'release' && 'macos-14' || 'macos-14' }}
|
runs-on: macos-15
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -113,19 +113,20 @@ jobs:
|
|||||||
- name: Download Firefox source and dependencies
|
- name: Download Firefox source and dependencies
|
||||||
run: npm run download
|
run: npm run download
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch }}
|
||||||
|
run: npm run import -- --verbose
|
||||||
|
|
||||||
- name: Bootstrap
|
- name: Bootstrap
|
||||||
run: |
|
run: |
|
||||||
cd engine
|
cd engine
|
||||||
export SURFER_PLATFORM="darwin"
|
export SURFER_PLATFORM="darwin"
|
||||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
# Always exist with 0, even if bootstrap fails
|
||||||
|
./mach --no-interactive bootstrap --application-choice browser --no-system-changes --exclude macos-sdk || true
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: Import
|
|
||||||
env:
|
|
||||||
SURFER_COMPAT: ${{ matrix.arch }}
|
|
||||||
run: npm run import -- --verbose
|
|
||||||
|
|
||||||
- name: Build language packs
|
- name: Build language packs
|
||||||
run: sh scripts/download-language-packs.sh
|
run: sh scripts/download-language-packs.sh
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
mac-build:
|
mac-build:
|
||||||
name: Unify macOS (Universal)
|
name: Unify macOS (Universal)
|
||||||
runs-on: 'macos-14'
|
runs-on: 'macos-15'
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
@@ -83,7 +83,7 @@ jobs:
|
|||||||
cd engine
|
cd engine
|
||||||
export SURFER_PLATFORM="darwin"
|
export SURFER_PLATFORM="darwin"
|
||||||
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
export PATH="$(python3 -m site --user-base)/bin":$PATH
|
||||||
./mach --no-interactive bootstrap --application-choice browser --no-system-changes
|
./mach --no-interactive bootstrap --application-choice browser --no-system-changes || true
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: Import
|
- name: Import
|
||||||
|
@@ -25,7 +25,7 @@ EOF
|
|||||||
if [ "$RELEASE_BRANCH" = "release" ]; then
|
if [ "$RELEASE_BRANCH" = "release" ]; then
|
||||||
echo "${EXTRA_NOTES}" >> "release_notes.md"
|
echo "${EXTRA_NOTES}" >> "release_notes.md"
|
||||||
|
|
||||||
if echo "$LATEST_RELEASE" | jq -e 'has("features")' > /dev/null; then
|
if echo "$LATEST_RELEASE" | jq -e '(.features // []) | length > 0' > /dev/null; then
|
||||||
cat << EOF >> "release_notes.md"
|
cat << EOF >> "release_notes.md"
|
||||||
|
|
||||||
## New Features
|
## New Features
|
||||||
@@ -33,7 +33,7 @@ $(echo "$LATEST_RELEASE" | jq -r '.features[] | "- " + .')
|
|||||||
EOF
|
EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo "$LATEST_RELEASE" | jq -e 'has("fixes")' > /dev/null; then
|
if echo "$LATEST_RELEASE" | jq -e '(.fixes // []) | length > 0' > /dev/null; then
|
||||||
cat << EOF >> "release_notes.md"
|
cat << EOF >> "release_notes.md"
|
||||||
|
|
||||||
## Fixes
|
## Fixes
|
||||||
@@ -41,7 +41,7 @@ EOF
|
|||||||
echo "$LATEST_RELEASE" | jq -r '.fixes[] | if type=="object" then "- " + .description + " ([#" + (.issue|tostring) + "](" + "https://github.com/zen-browser/desktop/issues/" + (.issue|tostring) + "))" else "- " + . end' >> "release_notes.md"
|
echo "$LATEST_RELEASE" | jq -r '.fixes[] | if type=="object" then "- " + .description + " ([#" + (.issue|tostring) + "](" + "https://github.com/zen-browser/desktop/issues/" + (.issue|tostring) + "))" else "- " + . end' >> "release_notes.md"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo "$LATEST_RELEASE" | jq -e 'has("breakingChanges")' > /dev/null; then
|
if echo "$LATEST_RELEASE" | jq -e '(.breakingChanges // []) | length > 0' > /dev/null; then
|
||||||
cat << EOF >> "release_notes.md"
|
cat << EOF >> "release_notes.md"
|
||||||
|
|
||||||
## Breaking Changes
|
## Breaking Changes
|
||||||
@@ -49,7 +49,7 @@ EOF
|
|||||||
echo "$LATEST_RELEASE" | jq -r '.breakingChanges[] | if type=="string" then "- " + . else "- " + .description + " [Learn more](" + .link + ")" end' >> "release_notes.md"
|
echo "$LATEST_RELEASE" | jq -r '.breakingChanges[] | if type=="string" then "- " + . else "- " + .description + " [Learn more](" + .link + ")" end' >> "release_notes.md"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if echo "$LATEST_RELEASE" | jq -e 'has("themeChanges")' > /dev/null; then
|
if echo "$LATEST_RELEASE" | jq -e '(.themeChanges // []) | length > 0' > /dev/null; then
|
||||||
cat << EOF >> "release_notes.md"
|
cat << EOF >> "release_notes.md"
|
||||||
|
|
||||||
## Theme Changes
|
## Theme Changes
|
||||||
|
2
.github/workflows/src/release-build.sh
vendored
2
.github/workflows/src/release-build.sh
vendored
@@ -3,7 +3,7 @@
|
|||||||
set -xe
|
set -xe
|
||||||
|
|
||||||
if command -v apt-get &> /dev/null; then
|
if command -v apt-get &> /dev/null; then
|
||||||
sudo add-apt-repository ppa:kisak/kisak-mesa
|
sudo apt-get install python3-launchpadlib
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y xvfb libnvidia-egl-wayland1 mesa-utils libgl1-mesa-dri
|
sudo apt-get install -y xvfb libnvidia-egl-wayland1 mesa-utils libgl1-mesa-dri
|
||||||
fi
|
fi
|
||||||
|
@@ -10,11 +10,6 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
type: boolean
|
type: boolean
|
||||||
default: true
|
default: true
|
||||||
use-sccache:
|
|
||||||
description: 'Use sccache'
|
|
||||||
required: false
|
|
||||||
type: boolean
|
|
||||||
default: false
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
twilight-release-schedule:
|
twilight-release-schedule:
|
||||||
@@ -25,7 +20,7 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
create_release: ${{ github.event_name != 'workflow_dispatch' && true || inputs.create_release }}
|
||||||
update_branch: twilight
|
update_branch: twilight
|
||||||
use-sccache: ${{ github.event_name != 'workflow_dispatch' && false || inputs.use-sccache }}
|
use-sccache: false
|
||||||
update_version: false
|
update_version: false
|
||||||
|
|
||||||
post-build:
|
post-build:
|
||||||
|
12
.github/workflows/windows-release-build.yml
vendored
12
.github/workflows/windows-release-build.yml
vendored
@@ -162,6 +162,12 @@ jobs:
|
|||||||
echo Setup Visual Studio
|
echo Setup Visual Studio
|
||||||
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2022.yaml ~/win-cross/vs2022
|
||||||
|
|
||||||
|
- name: Import
|
||||||
|
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||||
|
env:
|
||||||
|
SURFER_COMPAT: ${{ matrix.arch }}
|
||||||
|
run: npm run import -- --verbose
|
||||||
|
|
||||||
- name: Bootstrap
|
- name: Bootstrap
|
||||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||||
run: |
|
run: |
|
||||||
@@ -197,12 +203,6 @@ jobs:
|
|||||||
echo "" >> ../configs/common/mozconfig
|
echo "" >> ../configs/common/mozconfig
|
||||||
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-0.58.0" >> ../configs/common/mozconfig
|
||||||
|
|
||||||
- name: Import
|
|
||||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
|
||||||
env:
|
|
||||||
SURFER_COMPAT: ${{ matrix.arch }}
|
|
||||||
run: npm run import -- --verbose
|
|
||||||
|
|
||||||
- name: Build language packs
|
- name: Build language packs
|
||||||
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
|
||||||
run: sh scripts/download-language-packs.sh
|
run: sh scripts/download-language-packs.sh
|
||||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@@ -12,3 +12,5 @@ venv/
|
|||||||
|
|
||||||
!firefox-cache/
|
!firefox-cache/
|
||||||
win-cross/
|
win-cross/
|
||||||
|
|
||||||
|
!firefox-patches/
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -26,5 +26,6 @@
|
|||||||
"system_error": "cpp",
|
"system_error": "cpp",
|
||||||
"regex": "cpp",
|
"regex": "cpp",
|
||||||
"type_traits": "cpp"
|
"type_traits": "cpp"
|
||||||
}
|
},
|
||||||
|
"git.ignoreLimitWarning": true
|
||||||
}
|
}
|
||||||
|
12
README.md
12
README.md
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
Zen is currently built using Firefox version `137.0.2`! 🚀
|
Zen is currently built using Firefox version `137.0.2`! 🚀
|
||||||
|
|
||||||
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 137.0.2`!
|
- [`Zen Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 138.0`!
|
||||||
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
- Check out the latest [release notes](https://zen-browser.app/release-notes)!
|
||||||
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
- Part of our mission is to keep Zen up-to-date with the latest version of Firefox, so you can enjoy the latest features and security updates!
|
||||||
|
|
||||||
@@ -57,10 +57,6 @@ Zen is divided into 2 main branches. We use `dev` for development and `stable` f
|
|||||||
|
|
||||||
We divide into 2 branches in case there's any really important security update (for example) that needs to be released before the next stable release. This allows us to do patches without releasing unstable versions to the public.
|
We divide into 2 branches in case there's any really important security update (for example) that needs to be released before the next stable release. This allows us to do patches without releasing unstable versions to the public.
|
||||||
|
|
||||||
## ⚡ Performance
|
|
||||||
|
|
||||||
Zen is built with performance in mind, and we have optimized the browser to be as fast as possible! Checkout the latest [performance benchmarks](https://docs.zen-browser.app/benchmarks)!
|
|
||||||
|
|
||||||
## 📥 Installation
|
## 📥 Installation
|
||||||
|
|
||||||
### Supported Operating Systems
|
### Supported Operating Systems
|
||||||
@@ -85,7 +81,7 @@ winget install --id Zen-Team.Zen-Browser
|
|||||||
You can also install Zen using Homebrew:
|
You can also install Zen using Homebrew:
|
||||||
|
|
||||||
```
|
```
|
||||||
brew install --cask zen-browser
|
brew install zen-browser
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Linux
|
#### Linux
|
||||||
@@ -118,11 +114,11 @@ To upgrade the browser to a newer version, use the embedded update functionality
|
|||||||
|
|
||||||
## 👨💻 Development and Contributing
|
## 👨💻 Development and Contributing
|
||||||
|
|
||||||
Some components used by @zen-browser as an attempt to make firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/browser/base/zen-components).
|
Some components used by @zen-browser as an attempt to make Firefox forks a better place, and for other to enjoy the beauty of OSS. You can find them [here](https://github.com/zen-browser/desktop/tree/dev/src/zen).
|
||||||
|
|
||||||
#### `Run Locally`
|
#### `Run Locally`
|
||||||
|
|
||||||
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/building).
|
In order to download and run Zen locally, please follow [these instructions](https://docs.zen-browser.app/guides/building).
|
||||||
|
|
||||||
#### `Special Thanks`
|
#### `Special Thanks`
|
||||||
|
|
||||||
|
3
babel.config.json
Normal file
3
babel.config.json
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"presets": ["@babel/preset-typescript"]
|
||||||
|
}
|
@@ -1 +1 @@
|
|||||||
ee85441427e22eb9fbc8d3eb62c7e5804535f0bc
|
7113caf804fda45f011f1900c25de638398d586e
|
10
build/ts/transform-ts.js
Normal file
10
build/ts/transform-ts.js
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const MJS_FILES = ['src/zen/split-view/ZenViewSplitter.ts'];
|
||||||
|
|
||||||
|
for (const file of MJS_FILES) {
|
||||||
|
const code = fs.readFileSync(file, 'utf8');
|
||||||
|
require('@babel/core').transformSync(code, {
|
||||||
|
presets: ['@babel/preset-typescript'],
|
||||||
|
filename: file,
|
||||||
|
});
|
||||||
|
}
|
@@ -24,7 +24,7 @@ Start-Job -Name "DownloadGitl10n" -ScriptBlock {
|
|||||||
cd $PWD
|
cd $PWD
|
||||||
$env:ZEN_L10N_CURR_DIR=[regex]::replace($PWD, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
$env:ZEN_L10N_CURR_DIR=[regex]::replace($PWD, "^([A-Z]):", { "/" + $args.value.Substring(0, 1).toLower() }) -replace "\\", "/"
|
||||||
C:\mozilla-build\start-shell.bat $PWD\scripts\download-language-packs.sh
|
C:\mozilla-build\start-shell.bat $PWD\scripts\download-language-packs.sh
|
||||||
echo "Fetched l10n and firefox's one"
|
echo "Fetched l10n and Firefox's one"
|
||||||
} -Verbose -ArgumentList $PWD -Debug
|
} -Verbose -ArgumentList $PWD -Debug
|
||||||
|
|
||||||
Start-Job -Name "SurferInit" -ScriptBlock {
|
Start-Job -Name "SurferInit" -ScriptBlock {
|
||||||
|
@@ -3,8 +3,6 @@ unset MOZ_STDCXX_COMPAT
|
|||||||
ac_add_options --disable-dmd
|
ac_add_options --disable-dmd
|
||||||
ac_add_options --enable-eme=widevine
|
ac_add_options --enable-eme=widevine
|
||||||
|
|
||||||
export MOZ_MACBUNDLE_ID=${appId}
|
|
||||||
|
|
||||||
# override LTO settings
|
# override LTO settings
|
||||||
# TODO: Dont use LTO for now, it's causing a lot of issues
|
# TODO: Dont use LTO for now, it's causing a lot of issues
|
||||||
export MOZ_LTO=cross,thin
|
export MOZ_LTO=cross,thin
|
||||||
|
@@ -20,7 +20,7 @@
|
|||||||
| video playing windows go blank for split second | https://github.com/zen-browser/desktop/issues/3313 | None | None |
|
| video playing windows go blank for split second | https://github.com/zen-browser/desktop/issues/3313 | None | None |
|
||||||
| Light mode makes some buttons look disabled | https://github.com/zen-browser/desktop/issues/3312 | 0:40:59 | 20 days, 19:57:32 |
|
| Light mode makes some buttons look disabled | https://github.com/zen-browser/desktop/issues/3312 | 0:40:59 | 20 days, 19:57:32 |
|
||||||
| Tabs unloading with the feature disabled | https://github.com/zen-browser/desktop/issues/3311 | None | None |
|
| Tabs unloading with the feature disabled | https://github.com/zen-browser/desktop/issues/3311 | None | None |
|
||||||
| Default browser settings changes to firefox when i close the Zen | https://github.com/zen-browser/desktop/issues/3310 | None | None |
|
| Default browser settings changes to Firefox when i close the Zen | https://github.com/zen-browser/desktop/issues/3310 | None | None |
|
||||||
| zen.source.tar.gz is incorrectly named, should be .tar.zst instead | https://github.com/zen-browser/desktop/issues/3308 | None | None |
|
| zen.source.tar.gz is incorrectly named, should be .tar.zst instead | https://github.com/zen-browser/desktop/issues/3308 | None | None |
|
||||||
| Tab temporarely is compacted to the width of my sidebar before loading in when switching from a split-view | https://github.com/zen-browser/desktop/issues/3307 | None | None |
|
| Tab temporarely is compacted to the width of my sidebar before loading in when switching from a split-view | https://github.com/zen-browser/desktop/issues/3307 | None | None |
|
||||||
| Pre-assigned url to a container, and associate a container to a workspace, but that chain is broken | https://github.com/zen-browser/desktop/issues/3306 | None | 9 days, 21:18:59 |
|
| Pre-assigned url to a container, and associate a container to a workspace, but that chain is broken | https://github.com/zen-browser/desktop/issues/3306 | None | 9 days, 21:18:59 |
|
||||||
|
@@ -251,7 +251,7 @@
|
|||||||
| "Show all tabs" keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/3765 | 4:43:13 | None |
|
| "Show all tabs" keyboard shortcut not working | https://github.com/zen-browser/desktop/issues/3765 | 4:43:13 | None |
|
||||||
| URL bar missing on windows of different workspaces | https://github.com/zen-browser/desktop/issues/3764 | 1 day, 12:20:03 | 9 days, 9:18:05 |
|
| URL bar missing on windows of different workspaces | https://github.com/zen-browser/desktop/issues/3764 | 1 day, 12:20:03 | 9 days, 9:18:05 |
|
||||||
| The tab pane shakes in compact mode when hovering on the buttons | https://github.com/zen-browser/desktop/issues/3763 | None | 9 days, 3:05:22 |
|
| The tab pane shakes in compact mode when hovering on the buttons | https://github.com/zen-browser/desktop/issues/3763 | None | 9 days, 3:05:22 |
|
||||||
| this last update is GARBAGE!!! why would you do that to the address bar when you click once it moves to the center. and the new logo sucks. im probably going back to firefox | https://github.com/zen-browser/desktop/issues/3762 | 2:15:10 | 17:24:07 |
|
| this last update is GARBAGE!!! why would you do that to the address bar when you click once it moves to the center. and the new logo sucks. im probably going back to Firefox | https://github.com/zen-browser/desktop/issues/3762 | 2:15:10 | 17:24:07 |
|
||||||
| Floating Web Panel Disappears When Clicking elsewhere on the Screen | https://github.com/zen-browser/desktop/issues/3759 | 18:57:22 | 18:57:22 |
|
| Floating Web Panel Disappears When Clicking elsewhere on the Screen | https://github.com/zen-browser/desktop/issues/3759 | 18:57:22 | 18:57:22 |
|
||||||
| Visual problems occur when playing embedded videos on websites presented in picture-in-picture mode in zen browser using it under GNU/Linux. | https://github.com/zen-browser/desktop/issues/3758 | 21:40:26 | 1 day, 0:38:06 |
|
| Visual problems occur when playing embedded videos on websites presented in picture-in-picture mode in zen browser using it under GNU/Linux. | https://github.com/zen-browser/desktop/issues/3758 | 21:40:26 | 1 day, 0:38:06 |
|
||||||
| URL Bar weird behaviour on compact mode and shortcuts | https://github.com/zen-browser/desktop/issues/3757 | 14:46:59 | 4 days, 21:05:40 |
|
| URL Bar weird behaviour on compact mode and shortcuts | https://github.com/zen-browser/desktop/issues/3757 | 14:46:59 | 4 days, 21:05:40 |
|
||||||
|
@@ -111,7 +111,7 @@
|
|||||||
| Compact mode won't disable after changing which toolbars are hidden | https://github.com/zen-browser/desktop/issues/4649 | 16:26:34 | None |
|
| Compact mode won't disable after changing which toolbars are hidden | https://github.com/zen-browser/desktop/issues/4649 | 16:26:34 | None |
|
||||||
| Problem with tab bar and top bar | https://github.com/zen-browser/desktop/issues/4648 | 7:28:57 | None |
|
| Problem with tab bar and top bar | https://github.com/zen-browser/desktop/issues/4648 | 7:28:57 | None |
|
||||||
| Excessive margin between bookmark sidebar and center pane | https://github.com/zen-browser/desktop/issues/4647 | 7:37:12 | None |
|
| Excessive margin between bookmark sidebar and center pane | https://github.com/zen-browser/desktop/issues/4647 | 7:37:12 | None |
|
||||||
| I am not able to save my bookmarks of zen with the autoExportHTML flag, this works fine on firefox though. | https://github.com/zen-browser/desktop/issues/4646 | None | None |
|
| I am not able to save my bookmarks of zen with the autoExportHTML flag, this works fine on Firefox though. | https://github.com/zen-browser/desktop/issues/4646 | None | None |
|
||||||
| Dropdown input is not selected | https://github.com/zen-browser/desktop/issues/4645 | None | None |
|
| Dropdown input is not selected | https://github.com/zen-browser/desktop/issues/4645 | None | None |
|
||||||
| Toolbar becomes big after customizing the bookmarks placement | https://github.com/zen-browser/desktop/issues/4641 | None | None |
|
| Toolbar becomes big after customizing the bookmarks placement | https://github.com/zen-browser/desktop/issues/4641 | None | None |
|
||||||
| Zen Mods are not properly installing | https://github.com/zen-browser/desktop/issues/4640 | None | None |
|
| Zen Mods are not properly installing | https://github.com/zen-browser/desktop/issues/4640 | None | None |
|
||||||
@@ -349,7 +349,7 @@
|
|||||||
| Page refresh | https://github.com/zen-browser/desktop/issues/4338 | 11:57:25 | None |
|
| Page refresh | https://github.com/zen-browser/desktop/issues/4338 | 11:57:25 | None |
|
||||||
| Expand Side's bar changes position of forward and backward buttons | https://github.com/zen-browser/desktop/issues/4336 | 12:19:39 | None |
|
| Expand Side's bar changes position of forward and backward buttons | https://github.com/zen-browser/desktop/issues/4336 | 12:19:39 | None |
|
||||||
| breaks after using rectify11 and mica for everyone | https://github.com/zen-browser/desktop/issues/4335 | None | 3:03:08 |
|
| breaks after using rectify11 and mica for everyone | https://github.com/zen-browser/desktop/issues/4335 | None | 3:03:08 |
|
||||||
| Link "Zen support site" redirects to firefox support site | https://github.com/zen-browser/desktop/issues/4333 | 16:39:30 | 16:39:30 |
|
| Link "Zen support site" redirects to Firefox support site | https://github.com/zen-browser/desktop/issues/4333 | 16:39:30 | 16:39:30 |
|
||||||
| Opening discord keeps crashing the tab | https://github.com/zen-browser/desktop/issues/4332 | 0:24:48 | 0:24:48 |
|
| Opening discord keeps crashing the tab | https://github.com/zen-browser/desktop/issues/4332 | 0:24:48 | 0:24:48 |
|
||||||
| space between essentials/tabs and the workspace title is different for default vs others | https://github.com/zen-browser/desktop/issues/4329 | None | 1 day, 0:42:55 |
|
| space between essentials/tabs and the workspace title is different for default vs others | https://github.com/zen-browser/desktop/issues/4329 | None | 1 day, 0:42:55 |
|
||||||
| Essential disappears, but it's still there | https://github.com/zen-browser/desktop/issues/4328 | 17:21:42 | 2 days, 3:52:35 |
|
| Essential disappears, but it's still there | https://github.com/zen-browser/desktop/issues/4328 | 17:21:42 | 2 days, 3:52:35 |
|
||||||
@@ -362,7 +362,7 @@
|
|||||||
| Slow scrolling speed on the vertical tab bar in 1.6b | https://github.com/zen-browser/desktop/issues/4321 | 1:18:21 | 1 day, 5:19:47 |
|
| Slow scrolling speed on the vertical tab bar in 1.6b | https://github.com/zen-browser/desktop/issues/4321 | 1:18:21 | 1 day, 5:19:47 |
|
||||||
| browser.urlbar.suggest.topsites set to false make url cannot be edited | https://github.com/zen-browser/desktop/issues/4319 | 1 day, 3:38:03 | 2 days, 9:54:46 |
|
| browser.urlbar.suggest.topsites set to false make url cannot be edited | https://github.com/zen-browser/desktop/issues/4319 | 1 day, 3:38:03 | 2 days, 9:54:46 |
|
||||||
| Tab volume icon not showing in collapsed toolbar unless tab is active | https://github.com/zen-browser/desktop/issues/4316 | None | 0:08:41 |
|
| Tab volume icon not showing in collapsed toolbar unless tab is active | https://github.com/zen-browser/desktop/issues/4316 | None | 0:08:41 |
|
||||||
| Profile avatar picture flashes and is overridden by firefox account avatar | https://github.com/zen-browser/desktop/issues/4315 | 8:16:31 | 8:16:31 |
|
| Profile avatar picture flashes and is overridden by Firefox account avatar | https://github.com/zen-browser/desktop/issues/4315 | 8:16:31 | 8:16:31 |
|
||||||
| Zen Browser Turn Light At Lost Focus | https://github.com/zen-browser/desktop/issues/4314 | 2 days, 4:11:22 | 5 days, 16:04:18 |
|
| Zen Browser Turn Light At Lost Focus | https://github.com/zen-browser/desktop/issues/4314 | 2 days, 4:11:22 | 5 days, 16:04:18 |
|
||||||
| "Log-in to this network" modal & button not interactible | https://github.com/zen-browser/desktop/issues/4313 | None | None |
|
| "Log-in to this network" modal & button not interactible | https://github.com/zen-browser/desktop/issues/4313 | None | None |
|
||||||
| Sudden Crashes on Arch Linux with Multiple Tabs Opened | https://github.com/zen-browser/desktop/issues/4309 | 2:56:11 | None |
|
| Sudden Crashes on Arch Linux with Multiple Tabs Opened | https://github.com/zen-browser/desktop/issues/4309 | 2:56:11 | None |
|
||||||
|
@@ -516,7 +516,7 @@
|
|||||||
| icon is in not visible in the toolbar | https://github.com/zen-browser/desktop/issues/5215 | 4 days, 19:21:15 | None |
|
| icon is in not visible in the toolbar | https://github.com/zen-browser/desktop/issues/5215 | 4 days, 19:21:15 | None |
|
||||||
| Issue: New Tab Not Opening When Searching in Korean | https://github.com/zen-browser/desktop/issues/5213 | 0:14:43 | 6 days, 13:05:20 |
|
| Issue: New Tab Not Opening When Searching in Korean | https://github.com/zen-browser/desktop/issues/5213 | 0:14:43 | 6 days, 13:05:20 |
|
||||||
| Right-Click Context Menu: Keyboard Shortcuts Require Enter to Activate | https://github.com/zen-browser/desktop/issues/5212 | None | None |
|
| Right-Click Context Menu: Keyboard Shortcuts Require Enter to Activate | https://github.com/zen-browser/desktop/issues/5212 | None | None |
|
||||||
| Support daily.dev extension in zen browser. firefox doesn't. | https://github.com/zen-browser/desktop/issues/5211 | 0:05:56 | 0:05:56 |
|
| Support daily.dev extension in zen browser. Firefox doesn't. | https://github.com/zen-browser/desktop/issues/5211 | 0:05:56 | 0:05:56 |
|
||||||
| Error at the bottom right when opening a tab | https://github.com/zen-browser/desktop/issues/5210 | 0:28:59 | 0:28:59 |
|
| Error at the bottom right when opening a tab | https://github.com/zen-browser/desktop/issues/5210 | 0:28:59 | 0:28:59 |
|
||||||
| Pen Tablet Scrolling Not Working in Sidebar | https://github.com/zen-browser/desktop/issues/5209 | None | None |
|
| Pen Tablet Scrolling Not Working in Sidebar | https://github.com/zen-browser/desktop/issues/5209 | None | None |
|
||||||
| Essentials icons are off center | https://github.com/zen-browser/desktop/issues/5207 | 19:44:34 | 22:48:36 |
|
| Essentials icons are off center | https://github.com/zen-browser/desktop/issues/5207 | 19:44:34 | 22:48:36 |
|
||||||
|
@@ -83,7 +83,7 @@
|
|||||||
| Some browser dialogs appear off-screen | https://github.com/zen-browser/desktop/issues/7076 | 1 day, 1:32:55 | None |
|
| Some browser dialogs appear off-screen | https://github.com/zen-browser/desktop/issues/7076 | 1 day, 1:32:55 | None |
|
||||||
| Mouse over floating sidebar prevents hide | https://github.com/zen-browser/desktop/issues/7075 | None | None |
|
| Mouse over floating sidebar prevents hide | https://github.com/zen-browser/desktop/issues/7075 | None | None |
|
||||||
| CRX Installer Not working in Zen Browser. | https://github.com/zen-browser/desktop/issues/7074 | 2 days, 23:32:33 | 3 days, 2:39:52 |
|
| CRX Installer Not working in Zen Browser. | https://github.com/zen-browser/desktop/issues/7074 | 2 days, 23:32:33 | 3 days, 2:39:52 |
|
||||||
| Cannot resize native firefox sidebar when positioned on the right after restarting the browser | https://github.com/zen-browser/desktop/issues/7073 | None | None |
|
| Cannot resize native Firefox sidebar when positioned on the right after restarting the browser | https://github.com/zen-browser/desktop/issues/7073 | None | None |
|
||||||
| compact mode color bug | https://github.com/zen-browser/desktop/issues/7068 | 0:19:56 | 2:12:33 |
|
| compact mode color bug | https://github.com/zen-browser/desktop/issues/7068 | 0:19:56 | 2:12:33 |
|
||||||
| Unable to assign Cmd+Z for undo | https://github.com/zen-browser/desktop/issues/7067 | None | None |
|
| Unable to assign Cmd+Z for undo | https://github.com/zen-browser/desktop/issues/7067 | None | None |
|
||||||
| "change theme colors" cannot be undone and breaks other theming features | https://github.com/zen-browser/desktop/issues/7066 | None | None |
|
| "change theme colors" cannot be undone and breaks other theming features | https://github.com/zen-browser/desktop/issues/7066 | None | None |
|
||||||
@@ -560,7 +560,7 @@
|
|||||||
| New tab opens black page with only search option | https://github.com/zen-browser/desktop/issues/6418 | 1:30:09 | 1 day, 20:19:37 |
|
| New tab opens black page with only search option | https://github.com/zen-browser/desktop/issues/6418 | 1:30:09 | 1 day, 20:19:37 |
|
||||||
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/6416 | 1 day, 0:41:57 | 16 days, 1:56:48 |
|
| Black text on dark theme | https://github.com/zen-browser/desktop/issues/6416 | 1 day, 0:41:57 | 16 days, 1:56:48 |
|
||||||
| Login pop-ups instant crashed. | https://github.com/zen-browser/desktop/issues/6414 | None | 3 days, 11:52:50 |
|
| Login pop-ups instant crashed. | https://github.com/zen-browser/desktop/issues/6414 | None | 3 days, 11:52:50 |
|
||||||
| Only last workspace tabs are synced via firefox account | https://github.com/zen-browser/desktop/issues/6413 | 3:29:46 | 16 days, 2:45:09 |
|
| Only last workspace tabs are synced via Firefox account | https://github.com/zen-browser/desktop/issues/6413 | 3:29:46 | 16 days, 2:45:09 |
|
||||||
| Open in split window in split window undefined behaviour | https://github.com/zen-browser/desktop/issues/6412 | 16 days, 2:55:23 | 16 days, 2:55:24 |
|
| Open in split window in split window undefined behaviour | https://github.com/zen-browser/desktop/issues/6412 | 16 days, 2:55:23 | 16 days, 2:55:24 |
|
||||||
| Sidebar Stucked | https://github.com/zen-browser/desktop/issues/6411 | 16 days, 3:17:38 | 16 days, 3:17:39 |
|
| Sidebar Stucked | https://github.com/zen-browser/desktop/issues/6411 | 16 days, 3:17:38 | 16 days, 3:17:39 |
|
||||||
| Keyboard shortcuts not working with non-English layouts (e.g., Turkish) | https://github.com/zen-browser/desktop/issues/6410 | 16 days, 3:27:56 | 16 days, 3:27:56 |
|
| Keyboard shortcuts not working with non-English layouts (e.g., Turkish) | https://github.com/zen-browser/desktop/issues/6410 | 16 days, 3:27:56 | 16 days, 3:27:56 |
|
||||||
@@ -613,7 +613,7 @@
|
|||||||
| mica broke again | https://github.com/zen-browser/desktop/issues/6346 | 17 days, 16:46:21 | 17 days, 16:46:21 |
|
| mica broke again | https://github.com/zen-browser/desktop/issues/6346 | 17 days, 16:46:21 | 17 days, 16:46:21 |
|
||||||
| Search engine selector gone | https://github.com/zen-browser/desktop/issues/6345 | 4 days, 20:07:21 | 17 days, 17:17:10 |
|
| Search engine selector gone | https://github.com/zen-browser/desktop/issues/6345 | 4 days, 20:07:21 | 17 days, 17:17:10 |
|
||||||
| PDF files open to a blank page when Zen is closed | https://github.com/zen-browser/desktop/issues/6343 | 12:43:24 | 17 days, 18:13:02 |
|
| PDF files open to a blank page when Zen is closed | https://github.com/zen-browser/desktop/issues/6343 | 12:43:24 | 17 days, 18:13:02 |
|
||||||
| Tab peek controls overlap firefox ai chat sidebar | https://github.com/zen-browser/desktop/issues/6342 | 17 days, 18:38:25 | 17 days, 18:38:26 |
|
| Tab peek controls overlap Firefox ai chat sidebar | https://github.com/zen-browser/desktop/issues/6342 | 17 days, 18:38:25 | 17 days, 18:38:26 |
|
||||||
| Cant open a link with left click. | https://github.com/zen-browser/desktop/issues/6341 | 17 days, 18:56:56 | 17 days, 18:56:57 |
|
| Cant open a link with left click. | https://github.com/zen-browser/desktop/issues/6341 | 17 days, 18:56:56 | 17 days, 18:56:57 |
|
||||||
| Distorted UI during first use - fresh install | https://github.com/zen-browser/desktop/issues/6340 | 17 days, 19:04:58 | 17 days, 19:04:59 |
|
| Distorted UI during first use - fresh install | https://github.com/zen-browser/desktop/issues/6340 | 17 days, 19:04:58 | 17 days, 19:04:59 |
|
||||||
| Ctrl+Tab fails to switch tabs when dragging a file | https://github.com/zen-browser/desktop/issues/6339 | 17 days, 20:59:02 | 17 days, 20:59:03 |
|
| Ctrl+Tab fails to switch tabs when dragging a file | https://github.com/zen-browser/desktop/issues/6339 | 17 days, 20:59:02 | 17 days, 20:59:03 |
|
||||||
@@ -758,7 +758,7 @@
|
|||||||
| Extension icons hang off the side of the sidebar, and extension addition confirmation window hangs off the screen | https://github.com/zen-browser/desktop/issues/6135 | 18 days, 8:19:50 | 22 days, 6:38:20 |
|
| Extension icons hang off the side of the sidebar, and extension addition confirmation window hangs off the screen | https://github.com/zen-browser/desktop/issues/6135 | 18 days, 8:19:50 | 22 days, 6:38:20 |
|
||||||
| Settings show zen-split-view-modifier which is unclear, I think it should be with spaces? | https://github.com/zen-browser/desktop/issues/6134 | 22 days, 7:27:49 | 22 days, 7:27:50 |
|
| Settings show zen-split-view-modifier which is unclear, I think it should be with spaces? | https://github.com/zen-browser/desktop/issues/6134 | 22 days, 7:27:49 | 22 days, 7:27:50 |
|
||||||
| Grayish White Rounded Corners Visible when fullscreen in a video on youtube | https://github.com/zen-browser/desktop/issues/6132 | 8:50:42 | 22 days, 9:35:57 |
|
| Grayish White Rounded Corners Visible when fullscreen in a video on youtube | https://github.com/zen-browser/desktop/issues/6132 | 8:50:42 | 22 days, 9:35:57 |
|
||||||
| Zen Browser local building and running shows firefox only not zen type visual | https://github.com/zen-browser/desktop/issues/6128 | None | 3 days, 10:31:16 |
|
| Zen Browser local building and running shows Firefox only not zen type visual | https://github.com/zen-browser/desktop/issues/6128 | None | 3 days, 10:31:16 |
|
||||||
| Cannot download files with the flatpak version of Zen | https://github.com/zen-browser/desktop/issues/6127 | 10:53:18 | 22 days, 18:27:20 |
|
| Cannot download files with the flatpak version of Zen | https://github.com/zen-browser/desktop/issues/6127 | 10:53:18 | 22 days, 18:27:20 |
|
||||||
| File Browser doesnt list user home directory files | https://github.com/zen-browser/desktop/issues/6126 | 22 days, 18:35:54 | 22 days, 18:35:55 |
|
| File Browser doesnt list user home directory files | https://github.com/zen-browser/desktop/issues/6126 | 22 days, 18:35:54 | 22 days, 18:35:55 |
|
||||||
| Dragging sidebar moves the window | https://github.com/zen-browser/desktop/issues/6125 | 19:01:23 | 22 days, 19:16:45 |
|
| Dragging sidebar moves the window | https://github.com/zen-browser/desktop/issues/6125 | 19:01:23 | 22 days, 19:16:45 |
|
||||||
@@ -800,7 +800,7 @@
|
|||||||
| YouTube not opening in theater mode | https://github.com/zen-browser/desktop/issues/6078 | 24 days, 1:55:03 | 24 days, 1:55:03 |
|
| YouTube not opening in theater mode | https://github.com/zen-browser/desktop/issues/6078 | 24 days, 1:55:03 | 24 days, 1:55:03 |
|
||||||
| Cannot Finish Initial Config due to missing Next Button on Color / Accent Chooser | https://github.com/zen-browser/desktop/issues/6076 | 24 days, 2:23:02 | 24 days, 2:23:02 |
|
| Cannot Finish Initial Config due to missing Next Button on Color / Accent Chooser | https://github.com/zen-browser/desktop/issues/6076 | 24 days, 2:23:02 | 24 days, 2:23:02 |
|
||||||
| Unable to fully integrate GTK and QT themes | https://github.com/zen-browser/desktop/issues/6074 | 1 day, 4:58:09 | 24 days, 4:44:34 |
|
| Unable to fully integrate GTK and QT themes | https://github.com/zen-browser/desktop/issues/6074 | 1 day, 4:58:09 | 24 days, 4:44:34 |
|
||||||
| can not install any firefox themes | https://github.com/zen-browser/desktop/issues/6073 | 18:28:31 | 18:28:31 |
|
| can not install any Firefox themes | https://github.com/zen-browser/desktop/issues/6073 | 18:28:31 | 18:28:31 |
|
||||||
| No icon on windows | https://github.com/zen-browser/desktop/issues/6071 | 0:12:31 | 0:23:42 |
|
| No icon on windows | https://github.com/zen-browser/desktop/issues/6071 | 0:12:31 | 0:23:42 |
|
||||||
| Twilight Browser: Unexpected Blur Transparency After Update | https://github.com/zen-browser/desktop/issues/6069 | 7:36:42 | 24 days, 11:03:57 |
|
| Twilight Browser: Unexpected Blur Transparency After Update | https://github.com/zen-browser/desktop/issues/6069 | 7:36:42 | 24 days, 11:03:57 |
|
||||||
| New tabs open as essentials; essentials do not retain order | https://github.com/zen-browser/desktop/issues/6068 | None | 1 day, 15:21:33 |
|
| New tabs open as essentials; essentials do not retain order | https://github.com/zen-browser/desktop/issues/6068 | None | 1 day, 15:21:33 |
|
||||||
|
@@ -16,4 +16,4 @@
|
|||||||
|
|
||||||
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
To save the tabs and identity them, they will contain a `zen-workspace-uuid` attribute with the workspace uuid.
|
||||||
|
|
||||||
We will make use of firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
We will make use of Firefox's builtin session restore feature to save the tabs and windows after the user closes the browser.
|
||||||
|
740
package-lock.json
generated
740
package-lock.json
generated
@@ -9,9 +9,10 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.11.7"
|
"@zen-browser/surfer": "^1.11.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/preset-typescript": "^7.27.0",
|
||||||
"formal-git": "^1.1.5",
|
"formal-git": "^1.1.5",
|
||||||
"husky": "^9.1.7",
|
"husky": "^9.1.7",
|
||||||
"lint-staged": "^15.3.0",
|
"lint-staged": "^15.3.0",
|
||||||
@@ -19,6 +20,533 @@
|
|||||||
"prettier-plugin-sh": "^0.14.0"
|
"prettier-plugin-sh": "^0.14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@ampproject/remapping": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
|
||||||
|
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@jridgewell/gen-mapping": "^0.3.5",
|
||||||
|
"@jridgewell/trace-mapping": "^0.3.24"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/code-frame": {
|
||||||
|
"version": "7.26.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
|
||||||
|
"integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-validator-identifier": "^7.25.9",
|
||||||
|
"js-tokens": "^4.0.0",
|
||||||
|
"picocolors": "^1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/compat-data": {
|
||||||
|
"version": "7.26.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.8.tgz",
|
||||||
|
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/core": {
|
||||||
|
"version": "7.26.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
|
||||||
|
"integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@ampproject/remapping": "^2.2.0",
|
||||||
|
"@babel/code-frame": "^7.26.2",
|
||||||
|
"@babel/generator": "^7.26.10",
|
||||||
|
"@babel/helper-compilation-targets": "^7.26.5",
|
||||||
|
"@babel/helper-module-transforms": "^7.26.0",
|
||||||
|
"@babel/helpers": "^7.26.10",
|
||||||
|
"@babel/parser": "^7.26.10",
|
||||||
|
"@babel/template": "^7.26.9",
|
||||||
|
"@babel/traverse": "^7.26.10",
|
||||||
|
"@babel/types": "^7.26.10",
|
||||||
|
"convert-source-map": "^2.0.0",
|
||||||
|
"debug": "^4.1.0",
|
||||||
|
"gensync": "^1.0.0-beta.2",
|
||||||
|
"json5": "^2.2.3",
|
||||||
|
"semver": "^6.3.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/babel"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/core/node_modules/semver": {
|
||||||
|
"version": "6.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||||
|
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/generator": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-VybsKvpiN1gU1sdMZIp7FcqphVVKEwcuj02x73uvcHE0PTihx1nlBcowYWhDwjpoAXRv43+gDzyggGnn1XZhVw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/parser": "^7.27.0",
|
||||||
|
"@babel/types": "^7.27.0",
|
||||||
|
"@jridgewell/gen-mapping": "^0.3.5",
|
||||||
|
"@jridgewell/trace-mapping": "^0.3.25",
|
||||||
|
"jsesc": "^3.0.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-annotate-as-pure": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-compilation-targets": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/compat-data": "^7.26.8",
|
||||||
|
"@babel/helper-validator-option": "^7.25.9",
|
||||||
|
"browserslist": "^4.24.0",
|
||||||
|
"lru-cache": "^5.1.1",
|
||||||
|
"semver": "^6.3.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-compilation-targets/node_modules/semver": {
|
||||||
|
"version": "6.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||||
|
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-create-class-features-plugin": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-vSGCvMecvFCd/BdpGlhpXYNhhC4ccxyvQWpbGL4CWbvfEoLFWUZuSuf7s9Aw70flgQF+6vptvgK2IfOnKlRmBg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-annotate-as-pure": "^7.25.9",
|
||||||
|
"@babel/helper-member-expression-to-functions": "^7.25.9",
|
||||||
|
"@babel/helper-optimise-call-expression": "^7.25.9",
|
||||||
|
"@babel/helper-replace-supers": "^7.26.5",
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
|
||||||
|
"@babel/traverse": "^7.27.0",
|
||||||
|
"semver": "^6.3.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": {
|
||||||
|
"version": "6.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
|
||||||
|
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-member-expression-to-functions": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/traverse": "^7.25.9",
|
||||||
|
"@babel/types": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-module-imports": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/traverse": "^7.25.9",
|
||||||
|
"@babel/types": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-module-transforms": {
|
||||||
|
"version": "7.26.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
|
||||||
|
"integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-module-imports": "^7.25.9",
|
||||||
|
"@babel/helper-validator-identifier": "^7.25.9",
|
||||||
|
"@babel/traverse": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-optimise-call-expression": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-plugin-utils": {
|
||||||
|
"version": "7.26.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
|
||||||
|
"integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-replace-supers": {
|
||||||
|
"version": "7.26.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
|
||||||
|
"integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-member-expression-to-functions": "^7.25.9",
|
||||||
|
"@babel/helper-optimise-call-expression": "^7.25.9",
|
||||||
|
"@babel/traverse": "^7.26.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/traverse": "^7.25.9",
|
||||||
|
"@babel/types": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-string-parser": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-validator-identifier": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helper-validator-option": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/helpers": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/template": "^7.27.0",
|
||||||
|
"@babel/types": "^7.27.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/parser": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/types": "^7.27.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"parser": "bin/babel-parser.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/plugin-syntax-jsx": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-plugin-utils": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0-0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/plugin-syntax-typescript": {
|
||||||
|
"version": "7.25.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
|
||||||
|
"integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-plugin-utils": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0-0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/plugin-transform-modules-commonjs": {
|
||||||
|
"version": "7.26.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
|
||||||
|
"integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-module-transforms": "^7.26.0",
|
||||||
|
"@babel/helper-plugin-utils": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0-0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/plugin-transform-typescript": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-fRGGjO2UEGPjvEcyAZXRXAS8AfdaQoq7HnxAbJoAoW10B9xOKesmmndJv+Sym2a+9FHWZ9KbyyLCe9s0Sn5jtg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-annotate-as-pure": "^7.25.9",
|
||||||
|
"@babel/helper-create-class-features-plugin": "^7.27.0",
|
||||||
|
"@babel/helper-plugin-utils": "^7.26.5",
|
||||||
|
"@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
|
||||||
|
"@babel/plugin-syntax-typescript": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0-0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/preset-typescript": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-vxaPFfJtHhgeOVXRKuHpHPAOgymmy8V8I65T1q53R7GCZlefKeCaTyDs3zOPHTTbmquvNlQYC5klEvWsBAtrBQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-plugin-utils": "^7.26.5",
|
||||||
|
"@babel/helper-validator-option": "^7.25.9",
|
||||||
|
"@babel/plugin-syntax-jsx": "^7.25.9",
|
||||||
|
"@babel/plugin-transform-modules-commonjs": "^7.26.3",
|
||||||
|
"@babel/plugin-transform-typescript": "^7.27.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@babel/core": "^7.0.0-0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/template": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/code-frame": "^7.26.2",
|
||||||
|
"@babel/parser": "^7.27.0",
|
||||||
|
"@babel/types": "^7.27.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/traverse": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-19lYZFzYVQkkHkl4Cy4WrAVcqBkgvV2YM2TU3xG6DIwO7O3ecbDPfW3yM3bjAGcqcQHi+CCtjMR3dIEHxsd6bA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/code-frame": "^7.26.2",
|
||||||
|
"@babel/generator": "^7.27.0",
|
||||||
|
"@babel/parser": "^7.27.0",
|
||||||
|
"@babel/template": "^7.27.0",
|
||||||
|
"@babel/types": "^7.27.0",
|
||||||
|
"debug": "^4.3.1",
|
||||||
|
"globals": "^11.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@babel/types": {
|
||||||
|
"version": "7.27.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz",
|
||||||
|
"integrity": "sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/helper-string-parser": "^7.25.9",
|
||||||
|
"@babel/helper-validator-identifier": "^7.25.9"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@jridgewell/gen-mapping": {
|
||||||
|
"version": "0.3.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
|
||||||
|
"integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jridgewell/set-array": "^1.2.1",
|
||||||
|
"@jridgewell/sourcemap-codec": "^1.4.10",
|
||||||
|
"@jridgewell/trace-mapping": "^0.3.24"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@jridgewell/resolve-uri": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@jridgewell/set-array": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@jridgewell/sourcemap-codec": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
|
"node_modules/@jridgewell/trace-mapping": {
|
||||||
|
"version": "0.3.25",
|
||||||
|
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
|
||||||
|
"integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"@jridgewell/resolve-uri": "^3.1.0",
|
||||||
|
"@jridgewell/sourcemap-codec": "^1.4.14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@oozcitak/dom": {
|
"node_modules/@oozcitak/dom": {
|
||||||
"version": "1.15.10",
|
"version": "1.15.10",
|
||||||
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
|
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
|
||||||
@@ -289,9 +817,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@zen-browser/surfer": {
|
"node_modules/@zen-browser/surfer": {
|
||||||
"version": "1.11.7",
|
"version": "1.11.11",
|
||||||
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.7.tgz",
|
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.11.tgz",
|
||||||
"integrity": "sha512-ltIjDwPiSKmnKYjlTtD307t5h9+igi7YZu3pNlFl0SgvmTGRv9Ayit6CPllN5HGaMoI9jftOSeAaeFX2uRG4Yg==",
|
"integrity": "sha512-n5t25jjG77/rg1HETQBloriCc4GVlHaGWDTNdOxU35Y2qqokcSU+3mPP2cy8u/GBfF0AS6YQmCjE2636tbZkRA==",
|
||||||
"license": "MPL-2.0",
|
"license": "MPL-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@resvg/resvg-js": "^1.4.0",
|
"@resvg/resvg-js": "^1.4.0",
|
||||||
@@ -497,6 +1025,40 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/browserslist": {
|
||||||
|
"version": "4.24.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
||||||
|
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/browserslist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"caniuse-lite": "^1.0.30001688",
|
||||||
|
"electron-to-chromium": "^1.5.73",
|
||||||
|
"node-releases": "^2.0.19",
|
||||||
|
"update-browserslist-db": "^1.1.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"browserslist": "cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/buffer": {
|
"node_modules/buffer": {
|
||||||
"version": "5.7.1",
|
"version": "5.7.1",
|
||||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
@@ -558,6 +1120,28 @@
|
|||||||
"node": ">=0.8"
|
"node": ">=0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/caniuse-lite": {
|
||||||
|
"version": "1.0.30001715",
|
||||||
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001715.tgz",
|
||||||
|
"integrity": "sha512-7ptkFGMm2OAOgvZpwgA4yjQ5SQbrNVGdRjzH0pBdy1Fasvcr+KAeECmbCAECzTuDuoX0FCY8KzUxjf9+9kfZEw==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/browserslist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "CC-BY-4.0",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/chalk": {
|
"node_modules/chalk": {
|
||||||
"version": "4.1.2",
|
"version": "4.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||||
@@ -719,6 +1303,14 @@
|
|||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/convert-source-map": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/core-js-pure": {
|
"node_modules/core-js-pure": {
|
||||||
"version": "3.41.0",
|
"version": "3.41.0",
|
||||||
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz",
|
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.41.0.tgz",
|
||||||
@@ -827,6 +1419,14 @@
|
|||||||
"node": ">= 6"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/electron-to-chromium": {
|
||||||
|
"version": "1.5.139",
|
||||||
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz",
|
||||||
|
"integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/emoji-regex": {
|
"node_modules/emoji-regex": {
|
||||||
"version": "8.0.0",
|
"version": "8.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
|
||||||
@@ -855,6 +1455,17 @@
|
|||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/escalade": {
|
||||||
|
"version": "3.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
||||||
|
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/esprima": {
|
"node_modules/esprima": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||||
@@ -1060,6 +1671,17 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gensync": {
|
||||||
|
"version": "1.0.0-beta.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
|
||||||
|
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/get-caller-file": {
|
"node_modules/get-caller-file": {
|
||||||
"version": "2.0.5",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
|
||||||
@@ -1100,6 +1722,16 @@
|
|||||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/globals": {
|
||||||
|
"version": "11.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
|
||||||
|
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/globalyzer": {
|
"node_modules/globalyzer": {
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
|
||||||
@@ -1318,6 +1950,13 @@
|
|||||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
|
"node_modules/js-tokens": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT"
|
||||||
|
},
|
||||||
"node_modules/js-yaml": {
|
"node_modules/js-yaml": {
|
||||||
"version": "3.14.1",
|
"version": "3.14.1",
|
||||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
|
||||||
@@ -1331,6 +1970,33 @@
|
|||||||
"js-yaml": "bin/js-yaml.js"
|
"js-yaml": "bin/js-yaml.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jsesc": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"jsesc": "bin/jsesc"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/json5": {
|
||||||
|
"version": "2.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
||||||
|
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"json5": "lib/cli.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/jsonfile": {
|
"node_modules/jsonfile": {
|
||||||
"version": "6.1.0",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
|
||||||
@@ -1662,6 +2328,17 @@
|
|||||||
"url": "https://github.com/chalk/slice-ansi?sponsor=1"
|
"url": "https://github.com/chalk/slice-ansi?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/lru-cache": {
|
||||||
|
"version": "5.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||||
|
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"yallist": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/merge-stream": {
|
"node_modules/merge-stream": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
|
||||||
@@ -1817,6 +2494,14 @@
|
|||||||
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
|
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/node-releases": {
|
||||||
|
"version": "2.0.19",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
||||||
|
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/normalize-path": {
|
"node_modules/normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
@@ -1897,6 +2582,13 @@
|
|||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/picocolors": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC"
|
||||||
|
},
|
||||||
"node_modules/picomatch": {
|
"node_modules/picomatch": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||||
@@ -2778,6 +3470,38 @@
|
|||||||
"node": ">= 10.0.0"
|
"node": ">= 10.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/update-browserslist-db": {
|
||||||
|
"version": "1.1.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
|
||||||
|
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
|
||||||
|
"dev": true,
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/browserslist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "tidelift",
|
||||||
|
"url": "https://tidelift.com/funding/github/npm/browserslist"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/ai"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"peer": true,
|
||||||
|
"dependencies": {
|
||||||
|
"escalade": "^3.2.0",
|
||||||
|
"picocolors": "^1.1.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"update-browserslist-db": "cli.js"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"browserslist": ">= 4.21.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
@@ -2885,6 +3609,14 @@
|
|||||||
"node": ">=0.4"
|
"node": ">=0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/yallist": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "ISC",
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/yaml": {
|
"node_modules/yaml": {
|
||||||
"version": "2.7.0",
|
"version": "2.7.0",
|
||||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
|
||||||
|
@@ -40,9 +40,10 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/desktop#readme",
|
"homepage": "https://github.com/zen-browser/desktop#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.11.7"
|
"@zen-browser/surfer": "^1.11.11"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@babel/preset-typescript": "^7.27.0",
|
||||||
"formal-git": "^1.1.5",
|
"formal-git": "^1.1.5",
|
||||||
"husky": "^9.1.7",
|
"husky": "^9.1.7",
|
||||||
"lint-staged": "^15.3.0",
|
"lint-staged": "^15.3.0",
|
||||||
|
43
scripts/update_ts_types.py
Normal file
43
scripts/update_ts_types.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
FILES = [
|
||||||
|
"index.d.ts",
|
||||||
|
"lib.gecko.darwin.d.ts",
|
||||||
|
"lib.gecko.dom.d.ts",
|
||||||
|
"lib.gecko.glean.d.ts",
|
||||||
|
"lib.gecko.linux.d.ts",
|
||||||
|
"lib.gecko.modules.d.ts",
|
||||||
|
"lib.gecko.nsresult.d.ts",
|
||||||
|
"lib.gecko.services.d.ts",
|
||||||
|
"lib.gecko.tweaks.d.ts",
|
||||||
|
"lib.gecko.win32.d.ts",
|
||||||
|
"lib.gecko.xpcom.d.ts",
|
||||||
|
"lib.gecko.xpidl.d.ts",
|
||||||
|
]
|
||||||
|
|
||||||
|
ENGINE_PATH = os.path.join("engine", "tools", "@types")
|
||||||
|
SRC_PATH = os.path.join("src", "zen", "@types")
|
||||||
|
|
||||||
|
|
||||||
|
def update_ts_types():
|
||||||
|
os.system("cd engine && ./mach ts build && ./mach ts update")
|
||||||
|
# copy the files from engine/tools/@types to src/@types
|
||||||
|
for file in FILES:
|
||||||
|
src_file = os.path.join(ENGINE_PATH, file)
|
||||||
|
dest_file = os.path.join(SRC_PATH, file)
|
||||||
|
if os.path.exists(src_file):
|
||||||
|
os.system(f"cp {src_file} {dest_file}")
|
||||||
|
else:
|
||||||
|
print(f"File {src_file} does not exist.")
|
||||||
|
|
||||||
|
# add zen.d.ts to the end of index.d.ts
|
||||||
|
with open(os.path.join(SRC_PATH, "index.d.ts"), "a") as f:
|
||||||
|
f.write("\n")
|
||||||
|
f.write('/// <reference types="./zen.d.ts" />\n')
|
||||||
|
f.write('\n')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
update_ts_types()
|
||||||
|
print("Updated TypeScript types.")
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/Cargo.lock b/Cargo.lock
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
index c91f39b3afbe712355194593ae39514a83de6605..e6c2b77a69d9274ff1c7578ab4df4f07533f7441 100644
|
index 38508fffccbce801a02d4a4211f368674307c4d3..5ce56c36da2e242ad81621c2032eb68dcd26e960 100644
|
||||||
--- a/Cargo.lock
|
--- a/Cargo.lock
|
||||||
+++ b/Cargo.lock
|
+++ b/Cargo.lock
|
||||||
@@ -3850,8 +3850,6 @@ dependencies = [
|
@@ -3931,8 +3931,6 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mime_guess"
|
name = "mime_guess"
|
||||||
version = "2.0.4"
|
version = "2.0.4"
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
diff --git a/Cargo.toml b/Cargo.toml
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
index a99b447250d36dd0146e031fa22503bc88eeae39..86829fc7075054f832a04825c98325a925cf5b0f 100644
|
index d3d529b487f80d4b4f3bfa13cdd3f62946352db8..b35a9e0e3339d48d1cd0cab7b22d030f330e40d1 100644
|
||||||
--- a/Cargo.toml
|
--- a/Cargo.toml
|
||||||
+++ b/Cargo.toml
|
+++ b/Cargo.toml
|
||||||
@@ -205,6 +205,9 @@ rure = { path = "third_party/rust/rure" }
|
@@ -217,6 +217,9 @@ rure = { path = "third_party/rust/rure" }
|
||||||
# Patch `plist` to work with `indexmap` 2.*
|
# Patch `plist` to work with `indexmap` 2.*
|
||||||
plist = { path = "third_party/rust/plist" }
|
plist = { path = "third_party/rust/plist" }
|
||||||
|
|
||||||
+# Patch mime_guess to add missing mime types
|
+# Patch mime_guess to add missing mime types
|
||||||
+mime_guess = { path = "third_party/rust/mime_guess" }
|
+mime_guess = { path = "third_party/rust/mime_guess" }
|
||||||
+
|
+
|
||||||
# To-be-published changes.
|
# Patch `unicode-width` 0.1.* to 0.2.
|
||||||
unicode-bidi = { git = "https://github.com/servo/unicode-bidi", rev = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c" }
|
unicode-width = { path = "build/rust/unicode-width" }
|
||||||
nss-gk-api = { git = "https://github.com/beurdouche/nss-gk-api", rev = "e48a946811ffd64abc78de3ee284957d8d1c0d63" }
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||||
index be66de4a1ef044341c2e1d6953806550897df45a..ff6ef3511076b25e00ca4d0189f666ec7aa94fe8 100644
|
index 40e3a057a1d4b2f9bcfb73fa5ff96b2555865434..a92bed06766dd930bd336d56cd9ddcf3c6c0eeca 100644
|
||||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
|
||||||
index 78572e5480a6137c5b7de89c489956f5d68ef698..1c72fe9a5419e211dea25271113981aeda46ec66 100644
|
index 89b8b830e8f53582dd9910b0172098d31a8d8967..51bdc847823cb95f811b7e9d2d864b9aacf0e364 100644
|
||||||
--- a/browser/app/profile/firefox.js
|
--- a/browser/app/profile/firefox.js
|
||||||
+++ b/browser/app/profile/firefox.js
|
+++ b/browser/app/profile/firefox.js
|
||||||
@@ -3363,3 +3363,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
@@ -3375,3 +3375,5 @@ pref("toolkit.contentRelevancy.enabled", false);
|
||||||
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
pref("toolkit.contentRelevancy.ingestEnabled", false);
|
||||||
// Pref to enable extra logging for the content relevancy feature
|
// Pref to enable extra logging for the content relevancy feature
|
||||||
pref("toolkit.contentRelevancy.log", false);
|
pref("toolkit.contentRelevancy.log", false);
|
||||||
|
@@ -31,6 +31,7 @@ pref("browser.privateWindowSeparation.enabled", false);
|
|||||||
// Mica
|
// Mica
|
||||||
pref("widget.windows.mica", true);
|
pref("widget.windows.mica", true);
|
||||||
pref("widget.windows.mica.popups", true);
|
pref("widget.windows.mica.popups", true);
|
||||||
|
pref("widget.windows.mica.toplevel-backdrop", 2);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||||
@@ -142,10 +143,6 @@ pref('zen.view.experimental-rounded-view', false);
|
|||||||
pref('zen.view.experimental-rounded-view', true);
|
pref('zen.view.experimental-rounded-view', true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef XP_WIN
|
|
||||||
pref('zen.widget.windows.acrylic', true);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Glance
|
// Glance
|
||||||
pref('zen.glance.enabled', true);
|
pref('zen.glance.enabled', true);
|
||||||
pref('zen.glance.hold-duration', 300); // in ms
|
pref('zen.glance.hold-duration', 300); // in ms
|
||||||
@@ -205,7 +202,6 @@ pref('zen.downloads.download-animation-duration', 1210); // ms
|
|||||||
pref('zen.startup.smooth-scroll-in-tabs', true);
|
pref('zen.startup.smooth-scroll-in-tabs', true);
|
||||||
|
|
||||||
// Zen Workspaces
|
// Zen Workspaces
|
||||||
pref('zen.workspaces.disabled_for_testing', false);
|
|
||||||
pref('zen.workspaces.hide-default-container-indicator', true);
|
pref('zen.workspaces.hide-default-container-indicator', true);
|
||||||
pref('zen.workspaces.force-container-workspace', false);
|
pref('zen.workspaces.force-container-workspace', false);
|
||||||
pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false);
|
pref('zen.workspaces.open-new-tab-if-last-unpinned-tab-is-closed', false);
|
||||||
@@ -342,11 +338,7 @@ pref("network.predictor.enable-hover-on-ssl", true);
|
|||||||
pref("network.http.speculative-parallel-limit", 10);
|
pref("network.http.speculative-parallel-limit", 10);
|
||||||
pref("network.http.rcwn.enabled", false);
|
pref("network.http.rcwn.enabled", false);
|
||||||
|
|
||||||
// Enable Browser Toolbox, Ctrl+Shift+Alt+I for debugging and modifying UI
|
// Disable Firefox's revamp
|
||||||
pref("devtools.debugger.remote-enabled", false);
|
|
||||||
pref("devtools.chrome.enabled", true);
|
|
||||||
|
|
||||||
// Disable firefox's revamp
|
|
||||||
pref("sidebar.revamp", false, locked);
|
pref("sidebar.revamp", false, locked);
|
||||||
pref("sidebar.verticalTabs", false, locked);
|
pref("sidebar.verticalTabs", false, locked);
|
||||||
|
|
||||||
@@ -461,10 +453,6 @@ pref("browser.ml.chat.sidebar", false);
|
|||||||
pref("browser.ml.enable", false);
|
pref("browser.ml.enable", false);
|
||||||
|
|
||||||
// ---- Experimental settings to try make zen faster
|
// ---- Experimental settings to try make zen faster
|
||||||
pref("gfx.canvas.accelerated.cache-items", 32768);
|
|
||||||
pref("gfx.canvas.accelerated.cache-size", 256);
|
|
||||||
pref("gfx.content.skia-font-cache-size", 80);
|
|
||||||
|
|
||||||
pref("media.memory_cache_max_size", 1048576);
|
pref("media.memory_cache_max_size", 1048576);
|
||||||
pref("media.cache_readahead_limit", 9000);
|
pref("media.cache_readahead_limit", 9000);
|
||||||
pref("media.cache_resume_threshold", 3600);
|
pref("media.cache_resume_threshold", 3600);
|
||||||
@@ -479,4 +467,5 @@ pref("layers.gpu-process.enabled", true);
|
|||||||
|
|
||||||
// Picture-in-picture
|
// Picture-in-picture
|
||||||
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", true);
|
||||||
pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", true);
|
// TODO: Enable once we have a proper settings page
|
||||||
|
pref("media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled", false);
|
||||||
|
@@ -1,14 +1,14 @@
|
|||||||
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
|
||||||
index 2ca8bdd2674fb4addf3bbf94ff17abc5c93c6293..dd965d8d190e8cdacbeb3d80995ad1a906e64079 100644
|
index 7d7e8697f02f90d4f336c9ab0a73a89848e0c21c..d113b439888d26629ce5f6b5d35f8fa12249774b 100644
|
||||||
--- a/browser/base/content/browser-box.inc.xhtml
|
--- a/browser/base/content/browser-box.inc.xhtml
|
||||||
+++ b/browser/base/content/browser-box.inc.xhtml
|
+++ b/browser/base/content/browser-box.inc.xhtml
|
||||||
@@ -26,7 +26,13 @@
|
@@ -23,7 +23,13 @@
|
||||||
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
<browser id="sidebar" autoscroll="false" disablehistory="true" disablefullscreen="true" tooltip="aHTMLTooltip"/>
|
||||||
<box id="after-splitter"></box>
|
</vbox>
|
||||||
</div>
|
<splitter id="sidebar-splitter" class="chromeclass-extrachrome sidebar-splitter" resizebefore="sibling" resizeafter="none" hidden="true"/>
|
||||||
+<vbox flex="1" id="zen-appcontent-wrapper">
|
+<vbox flex="1" id="zen-appcontent-wrapper">
|
||||||
+<html:div id="zen-appcontent-navbar-container"></html:div>
|
+ <html:div id="zen-appcontent-navbar-container"></html:div>
|
||||||
+<hbox id="zen-tabbox-wrapper" flex="1">
|
+ <hbox id="zen-tabbox-wrapper" flex="1">
|
||||||
<tabbox id="tabbrowser-tabbox" flex="1" tabcontainer="tabbrowser-tabs">
|
<tabbox id="tabbrowser-tabbox" flex="1" tabcontainer="tabbrowser-tabs">
|
||||||
+#include zen-tabbrowser-elements.inc.xhtml
|
+#include zen-tabbrowser-elements.inc.xhtml
|
||||||
<tabpanels id="tabbrowser-tabpanels" flex="1" selectedIndex="0"/>
|
<tabpanels id="tabbrowser-tabpanels" flex="1" selectedIndex="0"/>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||||
index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f288919ae0d 100644
|
index ea79d296e7dd0f8fd812b0677a252af5cf7ad26e..bd95ef5d6b99399c859af1cf71d9d62477f4ac2b 100644
|
||||||
--- a/browser/base/content/browser.js
|
--- a/browser/base/content/browser.js
|
||||||
+++ b/browser/base/content/browser.js
|
+++ b/browser/base/content/browser.js
|
||||||
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
@@ -33,6 +33,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||||
@@ -10,7 +10,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
|||||||
DevToolsSocketStatus:
|
DevToolsSocketStatus:
|
||||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||||
@@ -2698,6 +2699,11 @@ var XULBrowserWindow = {
|
@@ -2338,6 +2339,11 @@ var XULBrowserWindow = {
|
||||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
|||||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
if (!gMultiProcessBrowser) {
|
if (!gMultiProcessBrowser) {
|
||||||
@@ -5194,7 +5200,7 @@ function switchToTabHavingURI(
|
@@ -4814,7 +4820,7 @@ function switchToTabHavingURI(
|
||||||
ignoreQueryString || replaceQueryString,
|
ignoreQueryString || replaceQueryString,
|
||||||
ignoreFragmentWhenComparing
|
ignoreFragmentWhenComparing
|
||||||
);
|
);
|
||||||
@@ -31,7 +31,7 @@ index b89846a1103827b7e65c0b6c9197e80761e3f5c0..cc7205765244738743db92bfcafc1f28
|
|||||||
for (let i = 0; i < browsers.length; i++) {
|
for (let i = 0; i < browsers.length; i++) {
|
||||||
let browser = browsers[i];
|
let browser = browsers[i];
|
||||||
let browserCompare = cleanURL(
|
let browserCompare = cleanURL(
|
||||||
@@ -5235,7 +5241,7 @@ function switchToTabHavingURI(
|
@@ -4857,7 +4863,7 @@ function switchToTabHavingURI(
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!doAdopt) {
|
if (!doAdopt) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||||
index 0d0a559a6473149b50f4bf18d059e86907c4acd3..25ad798eb26f04262d069fdaf1f3fb00adec9807 100644
|
index 51a25aaa5558e6e17246d54a7ed95d5ddf3ecdab..b49984c8711fc9f5f19f0cf6ecca07a8cca0d125 100644
|
||||||
--- a/browser/base/content/browser.xhtml
|
--- a/browser/base/content/browser.xhtml
|
||||||
+++ b/browser/base/content/browser.xhtml
|
+++ b/browser/base/content/browser.xhtml
|
||||||
@@ -26,6 +26,7 @@
|
@@ -26,6 +26,7 @@
|
||||||
@@ -10,35 +10,28 @@ index 0d0a559a6473149b50f4bf18d059e86907c4acd3..25ad798eb26f04262d069fdaf1f3fb00
|
|||||||
persist="screenX screenY width height sizemode"
|
persist="screenX screenY width height sizemode"
|
||||||
data-l10n-sync="true">
|
data-l10n-sync="true">
|
||||||
<head>
|
<head>
|
||||||
@@ -104,6 +105,8 @@
|
@@ -104,8 +105,11 @@
|
||||||
|
|
||||||
<title data-l10n-id="browser-main-window-default-title"></title>
|
<title data-l10n-id="browser-main-window-default-title"></title>
|
||||||
|
|
||||||
+#include zen-preloaded.inc.xhtml
|
+#include zen-preloaded.inc.xhtml
|
||||||
+
|
+
|
||||||
# All JS files which are needed by browser.xhtml and other top level windows to
|
<script src="chrome://browser/content/global-scripts.js"></script>
|
||||||
# support MacOS specific features *must* go into the global-scripts.inc file so
|
<script src="chrome://browser/content/browser-main.js"></script>
|
||||||
# that they can be shared with macWindow.inc.xhtml.
|
|
||||||
@@ -148,6 +151,7 @@
|
|
||||||
window.addEventListener("DOMContentLoaded",
|
|
||||||
gBrowserInit.onDOMContentLoaded.bind(gBrowserInit), { once: true });
|
|
||||||
</script>
|
|
||||||
+#include zen-assets.inc.xhtml
|
+#include zen-assets.inc.xhtml
|
||||||
</head>
|
</head>
|
||||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||||
@@ -169,9 +173,11 @@
|
@@ -127,9 +131,12 @@
|
||||||
</vbox>
|
</vbox>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
-#include navigator-toolbox.inc.xhtml
|
+<hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
||||||
-
|
+ <vbox id="zen-toast-container"></vbox>
|
||||||
-#include browser-box.inc.xhtml
|
#include navigator-toolbox.inc.xhtml
|
||||||
+ <hbox id="zen-main-app-wrapper" flex="1" persist="zen-compact-mode">
|
|
||||||
+ <vbox id="zen-toast-container"></vbox>
|
#include browser-box.inc.xhtml
|
||||||
+ #include navigator-toolbox.inc.xhtml
|
+</hbox>
|
||||||
+ #include browser-box.inc.xhtml
|
|
||||||
+ </hbox>
|
|
||||||
|
|
||||||
<html:template id="customizationPanel">
|
<html:template id="customizationPanel">
|
||||||
<box id="customization-container" flex="1" hidden="true"><![CDATA[
|
<box id="customization-container" flex="1" hidden="true"><![CDATA[
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c5d0f33a6 100644
|
index 00c8976d3e258c0875d7da2f3ec823d8907a84c9..b5735712aaa7c2ae2baa4b858e735413b130ca94 100644
|
||||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||||
@@ -2,7 +2,7 @@
|
@@ -2,7 +2,7 @@
|
||||||
@@ -11,46 +11,29 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
|||||||
<script src="chrome://browser/content/navigator-toolbox.js" />
|
<script src="chrome://browser/content/navigator-toolbox.js" />
|
||||||
|
|
||||||
<!-- Menu -->
|
<!-- Menu -->
|
||||||
@@ -17,9 +17,8 @@
|
@@ -17,9 +17,9 @@
|
||||||
#include browser-menubar.inc
|
#include browser-menubar.inc
|
||||||
</toolbaritem>
|
</toolbaritem>
|
||||||
<spacer flex="1" skipintoolbarset="true" style="order: 1000;"/>
|
<spacer flex="1" skipintoolbarset="true" style="order: 1000;"/>
|
||||||
-#include titlebar-items.inc.xhtml
|
-#include titlebar-items.inc.xhtml
|
||||||
</toolbar>
|
</toolbar>
|
||||||
-
|
|
||||||
+<hbox id="titlebar">
|
+<hbox id="titlebar">
|
||||||
<toolbar id="TabsToolbar"
|
<toolbar id="TabsToolbar"
|
||||||
class="browser-toolbar browser-titlebar"
|
class="browser-toolbar browser-titlebar"
|
||||||
fullscreentoolbar="true"
|
fullscreentoolbar="true"
|
||||||
@@ -32,7 +31,7 @@
|
|
||||||
|
|
||||||
<hbox class="titlebar-spacer" type="pre-tabs"/>
|
|
||||||
|
|
||||||
- <hbox flex="1" align="end" class="toolbar-items">
|
|
||||||
+ <hbox flex="1" align="start" class="toolbar-items">
|
|
||||||
<toolbartabstop/>
|
|
||||||
<hbox id="TabsToolbar-customization-target" flex="1">
|
|
||||||
<toolbarbutton id="firefox-view-button"
|
|
||||||
@@ -40,6 +39,7 @@
|
|
||||||
data-l10n-id="toolbar-button-firefox-view-2"
|
|
||||||
role="button"
|
|
||||||
aria-pressed="false"
|
|
||||||
+ hidden="true"
|
|
||||||
cui-areatype="toolbar"
|
|
||||||
removable="true"/>
|
|
||||||
|
|
||||||
@@ -50,6 +50,10 @@
|
@@ -50,6 +50,10 @@
|
||||||
tooltip="tabbrowser-tab-tooltip"
|
tooltip="tabbrowser-tab-tooltip"
|
||||||
orient="horizontal"
|
orient="horizontal"
|
||||||
stopwatchid="FX_TAB_CLICK_MS">
|
stopwatchid="tabClick">
|
||||||
+<html:div id="zen-essentials-container" skipintoolbarset="true"></html:div>
|
+<html:div id="zen-essentials-wrapper" skipintoolbarset="true"></html:div>
|
||||||
+<hbox id="zen-current-workspace-indicator-container"></hbox>
|
+<hbox id="zen-current-workspace-indicator-container"></hbox>
|
||||||
+<html:div id="zen-tabs-wrapper">
|
+<html:div id="zen-tabs-wrapper">
|
||||||
+<html:div id="zen-browser-tabs-container">
|
+<html:div id="zen-browser-tabs-container">
|
||||||
<hbox class="tab-drop-indicator" hidden="true"/>
|
<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
|
# If the name (tabbrowser-arrowscrollbox) or structure of this changes
|
||||||
# significantly, there is an optimization in
|
@@ -76,6 +80,8 @@
|
||||||
@@ -75,6 +79,8 @@
|
|
||||||
tooltip="dynamic-shortcut-tooltip"
|
tooltip="dynamic-shortcut-tooltip"
|
||||||
data-l10n-id="tabs-toolbar-new-tab"/>
|
data-l10n-id="tabs-toolbar-new-tab"/>
|
||||||
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
|
<html:span id="tabbrowser-tab-a11y-desc" hidden="true"/>
|
||||||
@@ -59,7 +42,7 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
|||||||
</tabs>
|
</tabs>
|
||||||
|
|
||||||
<toolbarbutton id="new-tab-button"
|
<toolbarbutton id="new-tab-button"
|
||||||
@@ -100,10 +106,10 @@
|
@@ -101,9 +107,10 @@
|
||||||
#include private-browsing-indicator.inc.xhtml
|
#include private-browsing-indicator.inc.xhtml
|
||||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
||||||
|
|
||||||
@@ -67,20 +50,7 @@ index feb9e4ef7e872b4cfbf0d55f24a34db275951c66..3ce9b9919ff736885b8aa8943bbbce3c
|
|||||||
+#include zen-sidebar-icons.inc.xhtml
|
+#include zen-sidebar-icons.inc.xhtml
|
||||||
|
|
||||||
</toolbar>
|
</toolbar>
|
||||||
-
|
|
||||||
+</hbox>
|
+</hbox>
|
||||||
|
|
||||||
<toolbar id="nav-bar"
|
<toolbar id="nav-bar"
|
||||||
class="browser-toolbar chromeclass-location"
|
class="browser-toolbar chromeclass-location"
|
||||||
data-l10n-id="navbar-accessible"
|
|
||||||
@@ -489,10 +495,10 @@
|
|
||||||
consumeanchor="PanelUI-button"
|
|
||||||
data-l10n-id="appmenu-menu-button-closed2"/>
|
|
||||||
</toolbaritem>
|
|
||||||
+#include titlebar-items.inc.xhtml
|
|
||||||
<hbox class="titlebar-spacer" type="post-tabs"/>
|
|
||||||
#include private-browsing-indicator.inc.xhtml
|
|
||||||
<toolbarbutton class="content-analysis-indicator toolbarbutton-1 content-analysis-indicator-icon"/>
|
|
||||||
-#include titlebar-items.inc.xhtml
|
|
||||||
</toolbar>
|
|
||||||
|
|
||||||
<toolbar id="PersonalToolbar"
|
|
||||||
|
@@ -1,16 +1,11 @@
|
|||||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||||
index 94d3c2bb401c2e4246340a6c2d63c9d3561ff5e1..62c599f78748e708c8f36c05935822e8808996b5 100644
|
index 3bd0ee8af8b696161d18fd2a978f9e25972ed3ad..9e602a942271bd54231dc66363f8db51aea9e78a 100644
|
||||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||||
@@ -1109,6 +1109,13 @@ export class nsContextMenu {
|
@@ -1111,6 +1111,8 @@ export class nsContextMenu {
|
||||||
!this.isSecureAboutPage()
|
!this.isSecureAboutPage()
|
||||||
);
|
);
|
||||||
|
|
||||||
+ this.showItem(
|
|
||||||
+ "context-zenAddToWebPanel",
|
|
||||||
+ this.onLink && !this.onMailtoLink && !this.onTelLink
|
|
||||||
+ );
|
|
||||||
+
|
|
||||||
+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink);
|
+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink);
|
||||||
+
|
+
|
||||||
let canNotStrip =
|
let canNotStrip =
|
||||||
|
@@ -30,11 +30,11 @@
|
|||||||
|
|
||||||
# Scripts used all over the browser
|
# Scripts used all over the browser
|
||||||
<script>
|
<script>
|
||||||
|
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenFolders.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenFolders.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesCommon.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenThemesImporter.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenCompactMode.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/ZenUIManager.mjs", this);
|
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenTabUnloader.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs", this);
|
||||||
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs", this);
|
Services.scriptloader.loadSubScript("chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs", this);
|
||||||
|
@@ -53,7 +53,6 @@
|
|||||||
content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs)
|
content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs)
|
||||||
content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css)
|
content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css)
|
||||||
* content/browser/zen-styles/zen-tabs/vertical-tabs.css (../../zen/tabs/zen-tabs/vertical-tabs.css)
|
* content/browser/zen-styles/zen-tabs/vertical-tabs.css (../../zen/tabs/zen-tabs/vertical-tabs.css)
|
||||||
content/browser/zen-styles/zen-tabs/horizontal-tabs.css (../../zen/tabs/zen-tabs/horizontal-tabs.css)
|
|
||||||
|
|
||||||
content/browser/zen-components/ZenGlanceManager.mjs (../../zen/glance/ZenGlanceManager.mjs)
|
content/browser/zen-components/ZenGlanceManager.mjs (../../zen/glance/ZenGlanceManager.mjs)
|
||||||
content/browser/zen-styles/zen-glance.css (../../zen/glance/zen-glance.css)
|
content/browser/zen-styles/zen-glance.css (../../zen/glance/zen-glance.css)
|
||||||
|
@@ -2,6 +2,9 @@
|
|||||||
<command id="cmd_zenCompactModeToggle" />
|
<command id="cmd_zenCompactModeToggle" />
|
||||||
<command id="cmd_zenCompactModeShowSidebar" />
|
<command id="cmd_zenCompactModeShowSidebar" />
|
||||||
<command id="cmd_zenCompactModeShowToolbar" />
|
<command id="cmd_zenCompactModeShowToolbar" />
|
||||||
|
<command id="cmd_zenCompactModeHideSidebar" />
|
||||||
|
<command id="cmd_zenCompactModeHideToolbar" />
|
||||||
|
<command id="cmd_zenCompactModeHideBoth" />
|
||||||
|
|
||||||
<command id="cmd_zenWorkspaceForward" />
|
<command id="cmd_zenWorkspaceForward" />
|
||||||
<command id="cmd_zenWorkspaceBackward" />
|
<command id="cmd_zenWorkspaceBackward" />
|
||||||
@@ -11,6 +14,7 @@
|
|||||||
<command id="cmd_zenSplitViewHorizontal" />
|
<command id="cmd_zenSplitViewHorizontal" />
|
||||||
<command id="cmd_zenSplitViewUnsplit" />
|
<command id="cmd_zenSplitViewUnsplit" />
|
||||||
<command id="cmd_zenSplitViewLinkInNewTab" />
|
<command id="cmd_zenSplitViewLinkInNewTab" />
|
||||||
|
<command id="cmd_zenSplitViewContextMenu" />
|
||||||
|
|
||||||
<!-- Workspace commands -->
|
<!-- Workspace commands -->
|
||||||
<command id="cmd_zenWorkspaceSwitch1" />
|
<command id="cmd_zenWorkspaceSwitch1" />
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left" onpopuphidden="gZenThemePicker.handlePanelClose();" onpopupshowing="gZenThemePicker.handlePanelOpen();">
|
<panel flip="side" type="arrow" orient="vertical" id="PanelUI-zen-gradient-generator" position="bottomright topright" mainview="true" side="left">
|
||||||
<panelmultiview id="PanelUI-zen-gradient-generator-multiview" mainViewId="PanelUI-zen-gradient-generator-view">
|
<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">
|
<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>
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
<hbox id="PanelUI-zen-gradient-colors-wrapper">
|
<hbox id="PanelUI-zen-gradient-colors-wrapper">
|
||||||
<vbox flex="1">
|
<vbox flex="1">
|
||||||
<label data-l10n-id="zen-panel-ui-gradient-generator-opacity-text"></label>
|
<label data-l10n-id="zen-panel-ui-gradient-generator-opacity-text"></label>
|
||||||
<html:input type="range" min="0" max="1" value="0.5" step="0.05" oninput="gZenThemePicker.onOpacityChange(event);" id="PanelUI-zen-gradient-generator-opacity" />
|
<html:input type="range" min="0" max="1" value="0.5" step="0.05" id="PanelUI-zen-gradient-generator-opacity" />
|
||||||
</vbox>
|
</vbox>
|
||||||
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
<vbox id="PanelUI-zen-gradient-generator-texture-wrapper">
|
||||||
</vbox>
|
</vbox>
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<label data-l10n-id="zen-panel-ui-gradient-generator-custom-color"></label>
|
<label data-l10n-id="zen-panel-ui-gradient-generator-custom-color"></label>
|
||||||
<hbox>
|
<hbox>
|
||||||
<html:input type="text" placeholder="#000000" id="PanelUI-zen-gradient-generator-custom-input" />
|
<html:input type="text" placeholder="#000000" id="PanelUI-zen-gradient-generator-custom-input" />
|
||||||
<toolbarbutton id="PanelUI-zen-gradient-generator-color-custom-add" class="subviewbutton" oncommand="gZenThemePicker.addCustomColor();" data-l10n-id="zen-panel-ui-gradient-generator-custom-color-add">
|
<toolbarbutton id="PanelUI-zen-gradient-generator-color-custom-add" class="subviewbutton" data-l10n-id="zen-panel-ui-gradient-generator-custom-color-add">
|
||||||
<image></image>
|
<image></image>
|
||||||
</toolbarbutton>
|
</toolbarbutton>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -57,16 +57,16 @@
|
|||||||
</panelmultiview>
|
</panelmultiview>
|
||||||
</panel>
|
</panel>
|
||||||
|
|
||||||
<panel flip="slide" type="arrow" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left" onpopuphidden="ZenWorkspaces.handlePanelHidden();">
|
<panel flip="slide" type="arrow" orient="vertical" id="PanelUI-zen-workspaces" position="bottomright topright" mainview="true" side="left">
|
||||||
<panelmultiview id="PanelUI-zen-workspaces-multiview" mainViewId="PanelUI-zen-workspaces-view">
|
<panelmultiview id="PanelUI-zen-workspaces-multiview" mainViewId="PanelUI-zen-workspaces-view">
|
||||||
<panelview id="PanelUI-zen-workspaces-view" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true" closemenu="none">
|
<panelview id="PanelUI-zen-workspaces-view" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true" closemenu="none">
|
||||||
<vbox>
|
<vbox>
|
||||||
<hbox>
|
<hbox>
|
||||||
<h3 data-l10n-id="zen-panel-ui-workspaces-text" id="PanelUI-zen-workspaces-header"></h3>
|
<h3 data-l10n-id="zen-panel-ui-workspaces-text" id="PanelUI-zen-workspaces-header"></h3>
|
||||||
<toolbarbutton id="PanelUI-zen-workspaces-reorder-mode" oncommand="ZenWorkspaces.toggleReorderMode();" class="subviewbutton">
|
<toolbarbutton id="PanelUI-zen-workspaces-reorder-mode" class="subviewbutton">
|
||||||
<image></image>
|
<image></image>
|
||||||
</toolbarbutton>
|
</toolbarbutton>
|
||||||
<toolbarbutton id="PanelUI-zen-workspaces-new" oncommand="ZenWorkspaces.openSaveDialog();" class="subviewbutton">
|
<toolbarbutton id="PanelUI-zen-workspaces-new" class="subviewbutton">
|
||||||
<image></image>
|
<image></image>
|
||||||
</toolbarbutton>
|
</toolbarbutton>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -78,14 +78,14 @@
|
|||||||
<vbox class="PanelUI-zen-workspaces-user-create">
|
<vbox class="PanelUI-zen-workspaces-user-create">
|
||||||
<h1 data-l10n-id="zen-panel-ui-workspaces-create-text"></h1>
|
<h1 data-l10n-id="zen-panel-ui-workspaces-create-text"></h1>
|
||||||
<hbox class="PanelUI-zen-workspaces-creation-wraper">
|
<hbox class="PanelUI-zen-workspaces-creation-wraper">
|
||||||
<hbox class="PanelUI-zen-workspaces-icons-container create" onclick="ZenWorkspaces.onWorkspaceIconContainerClick(event);"></hbox>
|
<hbox class="PanelUI-zen-workspaces-icons-container create"></hbox>
|
||||||
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceCreationNameChange(this);" />
|
<html:input autofocus="true" id="PanelUI-zen-workspaces-create-input" type="text" placeholder="Enter workspace name" />
|
||||||
</hbox>
|
</hbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-create-footer">
|
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-create-footer">
|
||||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-create-save" oncommand="ZenWorkspaces.saveWorkspaceFromCreate();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
|
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-create-save" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-save">
|
||||||
</button>
|
</button>
|
||||||
<button id="PanelUI-zen-workspaces-create-cancel" oncommand="ZenWorkspaces.closeWorkspacesSubView();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-cancel">
|
<button id="PanelUI-zen-workspaces-create-cancel" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-create-cancel">
|
||||||
</button>
|
</button>
|
||||||
</html:moz-button-group>
|
</html:moz-button-group>
|
||||||
</panelview>
|
</panelview>
|
||||||
@@ -93,43 +93,39 @@
|
|||||||
<vbox class="PanelUI-zen-workspaces-user-create">
|
<vbox class="PanelUI-zen-workspaces-user-create">
|
||||||
<h1 data-l10n-id="zen-panel-ui-workspaces-edit-text"></h1>
|
<h1 data-l10n-id="zen-panel-ui-workspaces-edit-text"></h1>
|
||||||
<hbox class="PanelUI-zen-workspaces-creation-wraper">
|
<hbox class="PanelUI-zen-workspaces-creation-wraper">
|
||||||
<hbox class="PanelUI-zen-workspaces-icons-container edit" onclick="ZenWorkspaces.onWorkspaceIconContainerClick(event);"></hbox>
|
<hbox class="PanelUI-zen-workspaces-icons-container edit"></hbox>
|
||||||
<html:input autofocus="true" id="PanelUI-zen-workspaces-edit-input" type="text" placeholder="Enter workspace name" oninput="ZenWorkspaces.onWorkspaceEditChange();" />
|
<html:input autofocus="true" id="PanelUI-zen-workspaces-edit-input" type="text" placeholder="Enter workspace name" />
|
||||||
</hbox>
|
</hbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-edit-footer">
|
<html:moz-button-group class="panel-footer" id="PanelUI-zen-workspaces-edit-footer">
|
||||||
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-edit-save" oncommand="ZenWorkspaces.saveWorkspaceFromEdit();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-save">
|
<button disabled="true" default="true" slot="primary" id="PanelUI-zen-workspaces-edit-save" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-save">
|
||||||
</button>
|
</button>
|
||||||
<button id="PanelUI-zen-workspaces-edit-cancel" oncommand="ZenWorkspaces.closeWorkspacesSubView();" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-cancel">
|
<button id="PanelUI-zen-workspaces-edit-cancel" class="footer-button" data-l10n-id="zen-panel-ui-workspaces-edit-cancel">
|
||||||
</button>
|
</button>
|
||||||
</html:moz-button-group>
|
</html:moz-button-group>
|
||||||
</panelview>
|
</panelview>
|
||||||
<panelview id="PanelUI-zen-workspaces-icon-picker" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
|
<panelview id="PanelUI-zen-workspaces-icon-picker" class="PanelUI-subView" role="document" mainview-with-header="true" has-custom-header="true">
|
||||||
<vbox id="PanelUI-zen-workspaces-icon-picker-wrapper">
|
<vbox id="PanelUI-zen-workspaces-icon-picker-wrapper">
|
||||||
<html:div id="PanelUI-zen-workspaces-icon-search-bar">
|
<html:div id="PanelUI-zen-workspaces-icon-search-bar">
|
||||||
<html:input autofocus="true" type="text" id="PanelUI-zen-workspaces-icon-search-input" oninput="ZenWorkspaces.conductSearch();"/>
|
<html:input autofocus="true" type="text" id="PanelUI-zen-workspaces-icon-search-input"/>
|
||||||
</html:div>
|
</html:div>
|
||||||
</vbox>
|
</vbox>
|
||||||
</panelview>
|
</panelview>
|
||||||
</panelmultiview>
|
</panelmultiview>
|
||||||
</panel>
|
</panel>
|
||||||
|
|
||||||
<menupopup id="zenWorkspaceActionsMenu"
|
<menupopup id="zenWorkspaceActionsMenu">
|
||||||
onpopupshowing="ZenWorkspaces.updateContextMenu(this);"
|
<menuitem id="context_zenOpenWorkspace" data-l10n-id="zen-workspaces-panel-context-open"/>
|
||||||
onpopuphidden="if (event.target == this) ZenWorkspaces.onContextMenuClose();">
|
|
||||||
<menuitem id="context_zenOpenWorkspace" oncommand="ZenWorkspaces.openWorkspace();" data-l10n-id="zen-workspaces-panel-context-open"/>
|
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem id="context_zenSetAsDefaultWorkspace" oncommand="ZenWorkspaces.setDefaultWorkspace();" data-l10n-id="zen-workspaces-panel-context-set-default"/>
|
<menuitem id="context_zenEditWorkspace" data-l10n-id="zen-workspaces-panel-context-edit"/>
|
||||||
<menuitem id="context_zenEditWorkspace" oncommand="ZenWorkspaces.contextEdit(event);" data-l10n-id="zen-workspaces-panel-context-edit"/>
|
|
||||||
<menu id="context_zenWorkspacesOpenInContainerTab"
|
<menu id="context_zenWorkspacesOpenInContainerTab"
|
||||||
data-l10n-id="zen-workspaces-panel-context-open-in-container-tab"
|
data-l10n-id="zen-workspaces-panel-context-open-in-container-tab"
|
||||||
selection-type="single"
|
selection-type="single"
|
||||||
node-type="link"
|
node-type="link"
|
||||||
hide-if-private-browsing="true"
|
hide-if-private-browsing="true"
|
||||||
hide-if-usercontext-disabled="true">
|
hide-if-usercontext-disabled="true">
|
||||||
<menupopup oncommand="ZenWorkspaces.contextChangeContainerTab(event);"
|
<menupopup />
|
||||||
onpopupshowing="return ZenWorkspaces.createContainerTabMenu(event);" />
|
|
||||||
</menu>
|
</menu>
|
||||||
<menuseparator/>
|
<menuseparator/>
|
||||||
<menuitem id="context_zenDeleteWorkspace" oncommand="ZenWorkspaces.contextDelete(event);" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
<menuitem id="context_zenDeleteWorkspace" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
||||||
</menupopup>
|
</menupopup>
|
||||||
|
@@ -8,6 +8,6 @@
|
|||||||
skipintoolbarset="true"
|
skipintoolbarset="true"
|
||||||
context="toolbar-context-menu"
|
context="toolbar-context-menu"
|
||||||
mode="icons">
|
mode="icons">
|
||||||
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-expand-sidebar-button" data-l10n-id="sidebar-zen-expand" cui-areatype="toolbar" oncommand="gZenVerticalTabsManager.toggleExpand();"></toolbarbutton>
|
<toolbarbutton removable="true" class="chromeclass-toolbar-additional toolbarbutton-1 zen-sidebar-action-button" id="zen-expand-sidebar-button" command="cmd_zenToggleSidebar" data-l10n-id="sidebar-zen-expand" cui-areatype="toolbar"></toolbarbutton>
|
||||||
<toolbarbutton id="zen-workspaces-button" class="chromeclass-toolbar-additional" overflows="false" removable="false"></toolbarbutton>
|
<toolbarbutton id="zen-workspaces-button" class="chromeclass-toolbar-additional" overflows="false" removable="false"></toolbarbutton>
|
||||||
</toolbar>
|
</toolbar>
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
diff --git a/browser/base/jar.mn b/browser/base/jar.mn
|
||||||
index 824c5df20ee13af7af2ce8657506f6f3f457aafc..6ef49535676325768497c1804f91c9e93959199a 100644
|
index 4401c78d34007fa7481f8b8eeb070d17110821ae..064f14a7adf4ce1b98d58302998272444466c3ee 100644
|
||||||
--- a/browser/base/jar.mn
|
--- a/browser/base/jar.mn
|
||||||
+++ b/browser/base/jar.mn
|
+++ b/browser/base/jar.mn
|
||||||
@@ -103,3 +103,5 @@ browser.jar:
|
@@ -105,3 +105,5 @@ browser.jar:
|
||||||
|
|
||||||
# L10n resources and overrides.
|
# L10n resources and overrides.
|
||||||
% override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties
|
% override chrome://global/locale/appstrings.properties chrome://browser/locale/appstrings.properties
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
|
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
|
||||||
index 7747d90981aea9437bf2d9cf46ec17be0b9ad64c..656d640da0efeb59a4037bb450e0cb1f69dda0ba 100644
|
index 5911b276fdc9889d3cb61bac3d302ec5239e4a90..a405f8a0204e98fa9de08f1cd7b6761f0fc6198e 100644
|
||||||
--- a/browser/components/BrowserContentHandler.sys.mjs
|
--- a/browser/components/BrowserContentHandler.sys.mjs
|
||||||
+++ b/browser/components/BrowserContentHandler.sys.mjs
|
+++ b/browser/components/BrowserContentHandler.sys.mjs
|
||||||
@@ -1270,6 +1270,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
@@ -1270,6 +1270,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
||||||
|
@@ -1,20 +1,19 @@
|
|||||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||||
index b8b6d30f0b3c968a8615ca601e06e50261d0dae6..5c2b718b902aed2ef8d7a4b622ba882ee937c655 100644
|
index a6a7f9165aece774c3f1c15f7e352b11a4bf90f4..a4b6124b85f099c6f12d297fc26f2040370c337c 100644
|
||||||
--- a/browser/components/BrowserGlue.sys.mjs
|
--- a/browser/components/BrowserGlue.sys.mjs
|
||||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||||
@@ -106,6 +106,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||||
WindowsGPOParser: "resource://gre/modules/policies/WindowsGPOParser.sys.mjs",
|
const lazy = {};
|
||||||
clearTimeout: "resource://gre/modules/Timer.sys.mjs",
|
|
||||||
setTimeout: "resource://gre/modules/Timer.sys.mjs",
|
|
||||||
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
|
||||||
});
|
|
||||||
|
|
||||||
XPCOMUtils.defineLazyServiceGetters(lazy, {
|
ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
@@ -1896,7 +1897,7 @@ BrowserGlue.prototype = {
|
+ gZenUIMigration: "chrome://browser/content/zen-components/ZenUIMigration.mjs",
|
||||||
lazy.TabCrashHandler.init();
|
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||||
|
AboutNewTab: "resource:///modules/AboutNewTab.sys.mjs",
|
||||||
|
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||||
|
@@ -1886,6 +1887,7 @@ BrowserGlue.prototype = {
|
||||||
|
|
||||||
lazy.ProcessHangMonitor.init();
|
lazy.ProcessHangMonitor.init();
|
||||||
-
|
|
||||||
+ lazy.gZenUIMigration.init(this._isNewProfile, aWindow);
|
+ lazy.gZenUIMigration.init(this._isNewProfile, aWindow);
|
||||||
// A channel for "remote troubleshooting" code...
|
// A channel for "remote troubleshooting" code...
|
||||||
let channel = new lazy.WebChannel(
|
let channel = new lazy.WebChannel(
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d16ee46c8 100644
|
index 91088fab1759b9af908912648d28daa5938a29c9..3f52ee8cd77ac171fd2cbf355ade1371e57d0db5 100644
|
||||||
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||||
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||||
@@ -19,7 +19,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
|
|
||||||
const kSpecialWidgetPfx = "customizableui-special-";
|
const kSpecialWidgetPfx = "customizableui-special-";
|
||||||
|
|
||||||
@@ -317,13 +318,11 @@ var CustomizableUIInternal = {
|
@@ -338,13 +339,11 @@ var CustomizableUIInternal = {
|
||||||
"vertical-spacer",
|
"vertical-spacer",
|
||||||
"urlbar-container",
|
"urlbar-container",
|
||||||
"spring",
|
"spring",
|
||||||
@@ -35,7 +35,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
this.registerArea(
|
this.registerArea(
|
||||||
CustomizableUI.AREA_NAVBAR,
|
CustomizableUI.AREA_NAVBAR,
|
||||||
{
|
{
|
||||||
@@ -331,7 +330,6 @@ var CustomizableUIInternal = {
|
@@ -352,7 +351,6 @@ var CustomizableUIInternal = {
|
||||||
overflowable: true,
|
overflowable: true,
|
||||||
defaultPlacements: navbarPlacements,
|
defaultPlacements: navbarPlacements,
|
||||||
verticalTabsDefaultPlacements: [
|
verticalTabsDefaultPlacements: [
|
||||||
@@ -43,7 +43,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
"alltabs-button",
|
"alltabs-button",
|
||||||
],
|
],
|
||||||
defaultCollapsed: false,
|
defaultCollapsed: false,
|
||||||
@@ -356,10 +354,7 @@ var CustomizableUIInternal = {
|
@@ -377,10 +375,7 @@ var CustomizableUIInternal = {
|
||||||
{
|
{
|
||||||
type: CustomizableUI.TYPE_TOOLBAR,
|
type: CustomizableUI.TYPE_TOOLBAR,
|
||||||
defaultPlacements: [
|
defaultPlacements: [
|
||||||
@@ -54,7 +54,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
],
|
],
|
||||||
verticalTabsDefaultPlacements: [],
|
verticalTabsDefaultPlacements: [],
|
||||||
defaultCollapsed: null,
|
defaultCollapsed: null,
|
||||||
@@ -422,6 +417,7 @@ var CustomizableUIInternal = {
|
@@ -462,6 +457,7 @@ var CustomizableUIInternal = {
|
||||||
CustomizableUI.AREA_NAVBAR,
|
CustomizableUI.AREA_NAVBAR,
|
||||||
CustomizableUI.AREA_BOOKMARKS,
|
CustomizableUI.AREA_BOOKMARKS,
|
||||||
CustomizableUI.AREA_TABSTRIP,
|
CustomizableUI.AREA_TABSTRIP,
|
||||||
@@ -62,7 +62,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
]);
|
]);
|
||||||
if (AppConstants.platform != "macosx") {
|
if (AppConstants.platform != "macosx") {
|
||||||
toolbars.add(CustomizableUI.AREA_MENUBAR);
|
toolbars.add(CustomizableUI.AREA_MENUBAR);
|
||||||
@@ -1151,6 +1147,9 @@ var CustomizableUIInternal = {
|
@@ -1262,6 +1258,9 @@ var CustomizableUIInternal = {
|
||||||
placements = gPlacements.get(area);
|
placements = gPlacements.get(area);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,7 +72,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
// For toolbars that need it, mark as dirty.
|
// For toolbars that need it, mark as dirty.
|
||||||
let defaultPlacements = areaProperties.get("defaultPlacements");
|
let defaultPlacements = areaProperties.get("defaultPlacements");
|
||||||
if (
|
if (
|
||||||
@@ -1564,7 +1563,7 @@ var CustomizableUIInternal = {
|
@@ -1769,7 +1768,7 @@ var CustomizableUIInternal = {
|
||||||
lazy.log.info(
|
lazy.log.info(
|
||||||
"Widget " + aWidgetId + " not found, unable to remove from " + aArea
|
"Widget " + aWidgetId + " not found, unable to remove from " + aArea
|
||||||
);
|
);
|
||||||
@@ -81,7 +81,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.notifyDOMChange(widgetNode, null, container, true, () => {
|
this.notifyDOMChange(widgetNode, null, container, true, () => {
|
||||||
@@ -1574,7 +1573,7 @@ var CustomizableUIInternal = {
|
@@ -1779,7 +1778,7 @@ var CustomizableUIInternal = {
|
||||||
// We also need to remove the panel context menu if it's there:
|
// We also need to remove the panel context menu if it's there:
|
||||||
this.ensureButtonContextMenu(widgetNode);
|
this.ensureButtonContextMenu(widgetNode);
|
||||||
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
|
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
|
||||||
@@ -90,7 +90,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
} else {
|
} else {
|
||||||
window.gNavToolbox.palette.appendChild(widgetNode);
|
window.gNavToolbox.palette.appendChild(widgetNode);
|
||||||
}
|
}
|
||||||
@@ -1704,16 +1703,16 @@ var CustomizableUIInternal = {
|
@@ -1947,16 +1946,16 @@ var CustomizableUIInternal = {
|
||||||
elem.setAttribute("skipintoolbarset", "true");
|
elem.setAttribute("skipintoolbarset", "true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -110,18 +110,18 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
// Handle initial state of vertical tabs.
|
// Handle initial state of vertical tabs.
|
||||||
if (isVerticalTabs) {
|
if (isVerticalTabs) {
|
||||||
// Show the vertical tabs toolbar
|
// Show the vertical tabs toolbar
|
||||||
@@ -1873,6 +1872,10 @@ var CustomizableUIInternal = {
|
@@ -2198,6 +2197,10 @@ var CustomizableUIInternal = {
|
||||||
},
|
* The identifier string of the area that aNode is being inserted into.
|
||||||
|
*/
|
||||||
insertWidgetBefore(aNode, aNextNode, aContainer, aArea) {
|
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
|
||||||
+ if (aArea === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) {
|
+ if (aAreaId === CustomizableUI.AREA_NAVBAR && aNode.ownerGlobal.gZenVerticalTabsManager._hasSetSingleToolbar) {
|
||||||
+ aContainer = aNode.ownerDocument.getElementById("zen-sidebar-top-buttons-customization-target");
|
+ aContainer = aNode.ownerDocument.getElementById("zen-sidebar-top-buttons-customization-target");
|
||||||
+ aArea = "zen-sidebar-top-buttons";
|
+ aAreaId = "zen-sidebar-top-buttons";
|
||||||
+ }
|
+ }
|
||||||
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
|
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
|
||||||
this.setLocationAttributes(aNode, aArea);
|
this.setLocationAttributes(aNode, aAreaId);
|
||||||
aContainer.insertBefore(aNode, aNextNode);
|
aContainer.insertBefore(aNode, aNextNode);
|
||||||
@@ -2744,7 +2747,6 @@ var CustomizableUIInternal = {
|
@@ -3321,7 +3324,6 @@ var CustomizableUIInternal = {
|
||||||
if (!this.isWidgetRemovable(aWidgetId)) {
|
if (!this.isWidgetRemovable(aWidgetId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -129,16 +129,16 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
let placements = gPlacements.get(oldPlacement.area);
|
let placements = gPlacements.get(oldPlacement.area);
|
||||||
let position = placements.indexOf(aWidgetId);
|
let position = placements.indexOf(aWidgetId);
|
||||||
if (position != -1) {
|
if (position != -1) {
|
||||||
@@ -3735,7 +3737,7 @@ var CustomizableUIInternal = {
|
@@ -4556,7 +4558,7 @@ var CustomizableUIInternal = {
|
||||||
}
|
* For all registered areas, builds those areas to reflect the current
|
||||||
},
|
* placement state of all widgets.
|
||||||
|
*/
|
||||||
- _rebuildRegisteredAreas() {
|
- _rebuildRegisteredAreas() {
|
||||||
+ _rebuildRegisteredAreas(zenDontRebuildCollapsed = false) {
|
+ _rebuildRegisteredAreas(zenDontRebuildCollapsed = false) {
|
||||||
for (let [areaId, areaNodes] of gBuildAreas) {
|
for (let [areaId, areaNodes] of gBuildAreas) {
|
||||||
let placements = gPlacements.get(areaId);
|
let placements = gPlacements.get(areaId);
|
||||||
let isFirstChangedToolbar = true;
|
let isFirstChangedToolbar = true;
|
||||||
@@ -3746,7 +3748,7 @@ var CustomizableUIInternal = {
|
@@ -4567,7 +4569,7 @@ var CustomizableUIInternal = {
|
||||||
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
|
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
|
||||||
let defaultCollapsed = area.get("defaultCollapsed");
|
let defaultCollapsed = area.get("defaultCollapsed");
|
||||||
let win = areaNode.ownerGlobal;
|
let win = areaNode.ownerGlobal;
|
||||||
@@ -147,7 +147,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
win.setToolbarVisibility(
|
win.setToolbarVisibility(
|
||||||
areaNode,
|
areaNode,
|
||||||
typeof defaultCollapsed == "string"
|
typeof defaultCollapsed == "string"
|
||||||
@@ -4923,6 +4925,7 @@ export var CustomizableUI = {
|
@@ -5858,6 +5860,7 @@ export var CustomizableUI = {
|
||||||
unregisterArea(aName, aDestroyPlacements) {
|
unregisterArea(aName, aDestroyPlacements) {
|
||||||
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
|
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
|
||||||
},
|
},
|
||||||
@@ -155,7 +155,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
/**
|
/**
|
||||||
* Add a widget to an area.
|
* Add a widget to an area.
|
||||||
* If the area to which you try to add is not known to CustomizableUI,
|
* If the area to which you try to add is not known to CustomizableUI,
|
||||||
@@ -6916,11 +6919,11 @@ class OverflowableToolbar {
|
@@ -7905,11 +7908,11 @@ class OverflowableToolbar {
|
||||||
parseFloat(style.paddingLeft) -
|
parseFloat(style.paddingLeft) -
|
||||||
parseFloat(style.paddingRight) -
|
parseFloat(style.paddingRight) -
|
||||||
toolbarChildrenWidth;
|
toolbarChildrenWidth;
|
||||||
@@ -169,7 +169,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
});
|
});
|
||||||
|
|
||||||
lazy.log.debug(
|
lazy.log.debug(
|
||||||
@@ -6930,7 +6933,8 @@ class OverflowableToolbar {
|
@@ -7919,7 +7922,8 @@ class OverflowableToolbar {
|
||||||
// If the target has min-width: 0, their children might actually overflow
|
// If the target has min-width: 0, their children might actually overflow
|
||||||
// it, so check for both cases explicitly.
|
// it, so check for both cases explicitly.
|
||||||
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
|
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
|
||||||
@@ -179,7 +179,7 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -7024,7 +7028,7 @@ class OverflowableToolbar {
|
@@ -8013,7 +8017,7 @@ class OverflowableToolbar {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!inserted) {
|
if (!inserted) {
|
||||||
@@ -188,13 +188,12 @@ index 9392b42a1de7310719a6cc8aaf11bd857e8fa69a..24dc9acd733ae401f8cdfb2351a7275d
|
|||||||
}
|
}
|
||||||
child.removeAttribute("cui-anchorid");
|
child.removeAttribute("cui-anchorid");
|
||||||
child.removeAttribute("overflowedItem");
|
child.removeAttribute("overflowedItem");
|
||||||
@@ -7186,6 +7190,9 @@ class OverflowableToolbar {
|
@@ -8358,7 +8362,7 @@ class OverflowableToolbar {
|
||||||
* @param {MouseEvent} aEvent the click event.
|
break;
|
||||||
*/
|
}
|
||||||
#onClickDefaultListButton(aEvent) {
|
case "mousedown": {
|
||||||
+ if (aEvent.view.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') {
|
- if (aEvent.button != 0) {
|
||||||
+ return;
|
+ if (aEvent.button != 0 || this.#toolbar.id == "zen-sidebar-top-buttons") { // Fix https://github.com/zen-browser/desktop/issues/7718
|
||||||
+ }
|
break;
|
||||||
if (this.#defaultListButton.open) {
|
}
|
||||||
this.#defaultListButton.open = false;
|
if (aEvent.target == this.#defaultListButton) {
|
||||||
lazy.PanelMultiView.hidePopup(this.#defaultListPanel);
|
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
|
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||||
index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973c70543a9 100644
|
index 619bb2af5a3a0995fc93fa040696dd2854848ab5..bbc6bad906e9ccaf668ca99f4a0411f564ef1e56 100644
|
||||||
--- a/browser/components/customizableui/CustomizeMode.sys.mjs
|
--- a/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||||
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs
|
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs
|
||||||
@@ -357,7 +357,7 @@ CustomizeMode.prototype = {
|
@@ -500,7 +500,7 @@ export class CustomizeMode {
|
||||||
this._transitioning = true;
|
this.#transitioning = true;
|
||||||
|
|
||||||
let customizer = document.getElementById("customization-container");
|
let customizer = document.getElementById("customization-container");
|
||||||
- let browser = document.getElementById("browser");
|
- let browser = document.getElementById("browser");
|
||||||
@@ -11,7 +11,7 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
|||||||
browser.hidden = true;
|
browser.hidden = true;
|
||||||
customizer.hidden = false;
|
customizer.hidden = false;
|
||||||
|
|
||||||
@@ -488,7 +488,7 @@ CustomizeMode.prototype = {
|
@@ -637,7 +637,7 @@ export class CustomizeMode {
|
||||||
}
|
}
|
||||||
|
|
||||||
let customizer = document.getElementById("customization-container");
|
let customizer = document.getElementById("customization-container");
|
||||||
@@ -20,9 +20,9 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
|||||||
customizer.hidden = true;
|
customizer.hidden = true;
|
||||||
browser.hidden = false;
|
browser.hidden = false;
|
||||||
|
|
||||||
@@ -2397,6 +2397,20 @@ CustomizeMode.prototype = {
|
@@ -3125,6 +3125,20 @@ export class CustomizeMode {
|
||||||
if (makeSpaceImmediately) {
|
if (makeSpaceImmediately) {
|
||||||
aItem.setAttribute("notransition", "true");
|
aDraggedOverItem.setAttribute("notransition", "true");
|
||||||
}
|
}
|
||||||
+ if (aItem.parentElement.id === "TabsToolbar-customization-target") {
|
+ if (aItem.parentElement.id === "TabsToolbar-customization-target") {
|
||||||
+ // We change the border values so we can properly implement the native vertical tabs
|
+ // We change the border values so we can properly implement the native vertical tabs
|
||||||
@@ -38,6 +38,6 @@ index c9bdc165ff9afc8c3e43ed2cda0612b32a55450f..34f8af56753e2a898f49247036d47973
|
|||||||
+ aItem.style.borderBottomStyle = "solid";
|
+ aItem.style.borderBottomStyle = "solid";
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
aItem.style[prop] = borderWidth + "px";
|
aDraggedOverItem.style[prop] = borderWidth + "px";
|
||||||
aItem.style.removeProperty(otherProp);
|
aDraggedOverItem.style.removeProperty(otherProp);
|
||||||
if (makeSpaceImmediately) {
|
if (makeSpaceImmediately) {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
index af22f766a052372a68faca139161cccbf0d768f0..199591ca0609e8902e84a87baf50acc29f84ee3a 100644
|
index b88b0166fb99bc3d44a2e05798650b8ad6ab9a46..2e66c8294f0ef4f91ae160bd55b7417b55e9f5b2 100644
|
||||||
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
@@ -240,8 +240,8 @@ export var ToolbarContextMenu = {
|
@@ -240,8 +240,8 @@ export var ToolbarContextMenu = {
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||||
index 010d0813557efd6d5a3a84ea589989f6e9ff195a..e26cc1be1f56919e6ec5f2432854b284837671ac 100644
|
index ec52437dba30633a374299a46c856e1df05dec0e..48617e32d56c3b3f525557ddeac6297555c48c04 100644
|
||||||
--- a/browser/components/customizableui/content/panelUI.js
|
--- a/browser/components/customizableui/content/panelUI.js
|
||||||
+++ b/browser/components/customizableui/content/panelUI.js
|
+++ b/browser/components/customizableui/content/panelUI.js
|
||||||
@@ -515,8 +515,7 @@ const PanelUI = {
|
@@ -515,8 +515,7 @@ const PanelUI = {
|
||||||
@@ -12,7 +12,7 @@ index 010d0813557efd6d5a3a84ea589989f6e9ff195a..e26cc1be1f56919e6ec5f2432854b284
|
|||||||
.appendChild(tempPanel);
|
.appendChild(tempPanel);
|
||||||
|
|
||||||
let multiView = document.createXULElement("panelmultiview");
|
let multiView = document.createXULElement("panelmultiview");
|
||||||
@@ -960,7 +959,7 @@ const PanelUI = {
|
@@ -957,7 +956,7 @@ const PanelUI = {
|
||||||
el.removeAttribute("data-lazy-l10n-id");
|
el.removeAttribute("data-lazy-l10n-id");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
|
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
|
||||||
index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658514db39f 100644
|
index 1f5e163bae58f3f1cac750ca32846cc8a80bd2ca..16034842b4ca5295aa3c9237db55035ecc4016d2 100644
|
||||||
--- a/browser/components/places/PlacesUIUtils.sys.mjs
|
--- a/browser/components/places/PlacesUIUtils.sys.mjs
|
||||||
+++ b/browser/components/places/PlacesUIUtils.sys.mjs
|
+++ b/browser/components/places/PlacesUIUtils.sys.mjs
|
||||||
@@ -58,6 +58,7 @@ class BookmarkState {
|
@@ -59,6 +59,7 @@ class BookmarkState {
|
||||||
info,
|
info,
|
||||||
tags = "",
|
tags = "",
|
||||||
keyword = "",
|
keyword = "",
|
||||||
@@ -10,7 +10,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
|||||||
isFolder = false,
|
isFolder = false,
|
||||||
children = [],
|
children = [],
|
||||||
autosave = false,
|
autosave = false,
|
||||||
@@ -82,12 +83,18 @@ class BookmarkState {
|
@@ -83,12 +84,18 @@ class BookmarkState {
|
||||||
keyword,
|
keyword,
|
||||||
parentGuid: info.parentGuid,
|
parentGuid: info.parentGuid,
|
||||||
index,
|
index,
|
||||||
@@ -29,7 +29,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
|||||||
/**
|
/**
|
||||||
* Save edited title for the bookmark
|
* Save edited title for the bookmark
|
||||||
*
|
*
|
||||||
@@ -181,6 +188,14 @@ class BookmarkState {
|
@@ -182,6 +189,14 @@ class BookmarkState {
|
||||||
"BookmarkState::createBookmark"
|
"BookmarkState::createBookmark"
|
||||||
);
|
);
|
||||||
this._guid = results?.[0];
|
this._guid = results?.[0];
|
||||||
@@ -44,7 +44,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
|||||||
return this._guid;
|
return this._guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -214,6 +229,14 @@ class BookmarkState {
|
@@ -215,6 +230,14 @@ class BookmarkState {
|
||||||
"BookmarkState::save::createFolder"
|
"BookmarkState::save::createFolder"
|
||||||
);
|
);
|
||||||
this._guid = results[0];
|
this._guid = results[0];
|
||||||
@@ -59,7 +59,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
|||||||
return this._guid;
|
return this._guid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,11 +323,97 @@ class BookmarkState {
|
@@ -301,11 +324,97 @@ class BookmarkState {
|
||||||
await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save");
|
await lazy.PlacesTransactions.batch(transactions, "BookmarkState::save");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -157,7 +157,7 @@ index fbdd6a34b12d4d957f7a2d9d95df0bfd65ba3f61..baaf34536f557c69fce3cc43e6f12658
|
|||||||
/**
|
/**
|
||||||
* Append transactions to update tags by given information.
|
* Append transactions to update tags by given information.
|
||||||
*
|
*
|
||||||
@@ -902,8 +1011,15 @@ export var PlacesUIUtils = {
|
@@ -903,8 +1012,15 @@ export var PlacesUIUtils = {
|
||||||
aNode,
|
aNode,
|
||||||
aWhere,
|
aWhere,
|
||||||
aWindow,
|
aWindow,
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
||||||
index 3b60d18e483bc3c4e9b4309f0dc1e4231b7116b1..e5b679b25941a7f1ed52db9fa3f7740a7220b9e4 100644
|
index 118709048e7de13f6ac10d0047e446b72303428f..c8cc2d7ee551b96be668a7844dab1db5abc9d684 100644
|
||||||
--- a/browser/components/preferences/jar.mn
|
--- a/browser/components/preferences/jar.mn
|
||||||
+++ b/browser/components/preferences/jar.mn
|
+++ b/browser/components/preferences/jar.mn
|
||||||
@@ -23,3 +23,5 @@ browser.jar:
|
@@ -26,3 +26,5 @@ browser.jar:
|
||||||
content/browser/preferences/more-from-mozilla-qr-code-simple-cn.svg
|
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
||||||
content/browser/preferences/web-appearance-dark.svg
|
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
||||||
content/browser/preferences/web-appearance-light.svg
|
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
||||||
+
|
+
|
||||||
+ content/browser/preferences/zen-settings.js
|
+ content/browser/preferences/zen-settings.js
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||||
index 8f6f78419a0876ebe6d0967a88ef03e464dbbd23..9339085014b797033c4ee1ed2e40f2506d1e9797 100644
|
index aa339be9ba94ed776fa25f2d72f9e6b25dc86cd3..4c6c725942b3d6f2a42938d444ac7645526623cc 100644
|
||||||
--- a/browser/components/preferences/main.js
|
--- a/browser/components/preferences/main.js
|
||||||
+++ b/browser/components/preferences/main.js
|
+++ b/browser/components/preferences/main.js
|
||||||
@@ -218,7 +218,7 @@ function getBundleForLocales(newLocales) {
|
@@ -389,7 +389,7 @@ function getBundleForLocales(newLocales) {
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
return new Localization(
|
return new Localization(
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||||
index 6386773b287ca6d06a0abe928850c5bb465828ed..b3459a2abcac5f21a5b24189ec1dc88e24626687 100644
|
index e4746e3408e68273126e6d2baf5afcf80721674b..e478aaf6bfefa6acd9062aeb3e4709ca0d5d779c 100644
|
||||||
--- a/browser/components/preferences/preferences.js
|
--- a/browser/components/preferences/preferences.js
|
||||||
+++ b/browser/components/preferences/preferences.js
|
+++ b/browser/components/preferences/preferences.js
|
||||||
@@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
@@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||||
|
@@ -1,30 +1,29 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||||
index 951af951598c3edc9bc431dd106e68d006ec4316..eb420d6c5ea346639eee531805aabbe7726c7769 100644
|
index 43be2b6ac84827bd13723e0211a3ade401934591..513584d7e720451efdb87350ac07d8b2590c1705 100644
|
||||||
--- a/browser/components/preferences/preferences.xhtml
|
--- a/browser/components/preferences/preferences.xhtml
|
||||||
+++ b/browser/components/preferences/preferences.xhtml
|
+++ b/browser/components/preferences/preferences.xhtml
|
||||||
@@ -43,6 +43,8 @@
|
@@ -44,6 +44,8 @@
|
||||||
/>
|
|
||||||
<link rel="stylesheet" href="chrome://browser/skin/preferences/privacy.css" />
|
<link rel="stylesheet" href="chrome://browser/skin/preferences/privacy.css" />
|
||||||
|
<link rel="stylesheet" href="chrome://browser/content/preferences/widgets/setting-group.css" />
|
||||||
|
|
||||||
+#include zen-preferences-links.xhtml
|
+#include zen-preferences-links.xhtml
|
||||||
+
|
+
|
||||||
<link rel="localization" href="branding/brand.ftl"/>
|
<link rel="localization" href="branding/brand.ftl"/>
|
||||||
<link rel="localization" href="browser/browser.ftl"/>
|
<link rel="localization" href="browser/browser.ftl"/>
|
||||||
<!-- Used by fontbuilder.js -->
|
<!-- Used by fontbuilder.js -->
|
||||||
@@ -98,6 +100,12 @@
|
@@ -105,6 +107,11 @@
|
||||||
<hbox flex="1">
|
<hbox flex="1">
|
||||||
|
|
||||||
<vbox class="navigation">
|
<vbox class="navigation">
|
||||||
+ <search-textbox
|
+ <search-textbox
|
||||||
+ id="searchInput"
|
+ id="searchInput"
|
||||||
+ data-l10n-id="search-input-box2"
|
+ data-l10n-id="search-input-box2"
|
||||||
+ data-l10n-attrs="placeholder, style"
|
+ data-l10n-attrs="placeholder, style"
|
||||||
+ />
|
+ />
|
||||||
+
|
|
||||||
<!-- category list -->
|
<!-- category list -->
|
||||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||||
<richlistitem id="category-general"
|
<richlistitem id="category-general"
|
||||||
@@ -111,6 +119,50 @@
|
@@ -117,6 +124,50 @@
|
||||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||||
</richlistitem>
|
</richlistitem>
|
||||||
|
|
||||||
@@ -75,21 +74,19 @@ index 951af951598c3edc9bc431dd106e68d006ec4316..eb420d6c5ea346639eee531805aabbe7
|
|||||||
<richlistitem id="category-home"
|
<richlistitem id="category-home"
|
||||||
class="category"
|
class="category"
|
||||||
value="paneHome"
|
value="paneHome"
|
||||||
@@ -229,11 +281,13 @@
|
@@ -228,11 +279,6 @@
|
||||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
+#if 0
|
- <search-textbox
|
||||||
<search-textbox
|
- id="searchInput"
|
||||||
id="searchInput"
|
- data-l10n-id="search-input-box2"
|
||||||
data-l10n-id="search-input-box2"
|
- data-l10n-attrs="placeholder, style"
|
||||||
data-l10n-attrs="placeholder, style"
|
- />
|
||||||
/>
|
|
||||||
+#endif
|
|
||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
<vbox id="mainPrefPane">
|
<vbox id="mainPrefPane">
|
||||||
@@ -247,6 +301,10 @@
|
@@ -246,6 +292,10 @@
|
||||||
#include sync.inc.xhtml
|
#include sync.inc.xhtml
|
||||||
#include experimental.inc.xhtml
|
#include experimental.inc.xhtml
|
||||||
#include moreFromMozilla.inc.xhtml
|
#include moreFromMozilla.inc.xhtml
|
||||||
|
@@ -170,7 +170,6 @@ var gZenMarketplaceManager = {
|
|||||||
for (const theme of Object.values(themes).sort((a, b) => a.name.localeCompare(b.name))) {
|
for (const theme of Object.values(themes).sort((a, b) => a.name.localeCompare(b.name))) {
|
||||||
const sanitizedName = `theme-${theme.name?.replaceAll(/\s/g, '-')?.replaceAll(/[^A-z_-]+/g, '')}`;
|
const sanitizedName = `theme-${theme.name?.replaceAll(/\s/g, '-')?.replaceAll(/[^A-z_-]+/g, '')}`;
|
||||||
const isThemeEnabled = theme.enabled === undefined || theme.enabled;
|
const isThemeEnabled = theme.enabled === undefined || theme.enabled;
|
||||||
|
|
||||||
const fragment = window.MozXULElement.parseXULToFragment(`
|
const fragment = window.MozXULElement.parseXULToFragment(`
|
||||||
<vbox class="zenThemeMarketplaceItem">
|
<vbox class="zenThemeMarketplaceItem">
|
||||||
<vbox class="zenThemeMarketplaceItemContent">
|
<vbox class="zenThemeMarketplaceItemContent">
|
||||||
@@ -181,6 +180,7 @@ var gZenMarketplaceManager = {
|
|||||||
</vbox>
|
</vbox>
|
||||||
<hbox class="zenThemeMarketplaceItemActions">
|
<hbox class="zenThemeMarketplaceItemActions">
|
||||||
${theme.preferences ? `<button id="zenThemeMarketplaceItemConfigureButton-${sanitizedName}" class="zenThemeMarketplaceItemConfigureButton" hidden="true"></button>` : ''}
|
${theme.preferences ? `<button id="zenThemeMarketplaceItemConfigureButton-${sanitizedName}" class="zenThemeMarketplaceItemConfigureButton" hidden="true"></button>` : ''}
|
||||||
|
${theme.homepage ? `<button id="zenThemeMarketplaceItemHomePageLink-${sanitizedName}" class="zenThemeMarketplaceItemHomepageButton" zen-theme-id="${theme.id}"></button>` : ''}
|
||||||
<button class="zenThemeMarketplaceItemUninstallButton" data-l10n-id="zen-theme-marketplace-remove-button" zen-theme-id="${theme.id}"></button>
|
<button class="zenThemeMarketplaceItemUninstallButton" data-l10n-id="zen-theme-marketplace-remove-button" zen-theme-id="${theme.id}"></button>
|
||||||
</hbox>
|
</hbox>
|
||||||
</vbox>
|
</vbox>
|
||||||
@@ -274,6 +274,16 @@ var gZenMarketplaceManager = {
|
|||||||
await this.removeTheme(event.target.getAttribute('zen-theme-id'));
|
await this.removeTheme(event.target.getAttribute('zen-theme-id'));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (theme.homepage) {
|
||||||
|
const homepageButton = fragment.querySelector('.zenThemeMarketplaceItemHomepageButton');
|
||||||
|
homepageButton.addEventListener('click', () => {
|
||||||
|
// open the homepage url in a new tab
|
||||||
|
const url = theme.homepage;
|
||||||
|
|
||||||
|
window.open(url, '_blank');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
if (theme.preferences) {
|
if (theme.preferences) {
|
||||||
fragment.querySelector('.zenThemeMarketplaceItemConfigureButton').addEventListener('click', () => {
|
fragment.querySelector('.zenThemeMarketplaceItemConfigureButton').addEventListener('click', () => {
|
||||||
dialog.showModal();
|
dialog.showModal();
|
||||||
@@ -1024,4 +1034,9 @@ Preferences.addAll([
|
|||||||
type: 'bool',
|
type: 'bool',
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 'media.videocontrols.picture-in-picture.enabled',
|
||||||
|
type: 'bool',
|
||||||
|
default: true,
|
||||||
|
},
|
||||||
]);
|
]);
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs
|
diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs
|
||||||
index 4810eca0825f9a6f07f242e804de2edb7bd697d8..fd4e7661c93be528c2766e27fe22403d3d495292 100644
|
index c1f8fd1225cfc47c2e171361aa6069d3cbaf3afb..b32a2cf621022a500a2efc7777b4379347dcf353 100644
|
||||||
--- a/browser/components/search/SearchOneOffs.sys.mjs
|
--- a/browser/components/search/SearchOneOffs.sys.mjs
|
||||||
+++ b/browser/components/search/SearchOneOffs.sys.mjs
|
+++ b/browser/components/search/SearchOneOffs.sys.mjs
|
||||||
@@ -443,7 +443,7 @@ export class SearchOneOffs {
|
@@ -444,7 +444,7 @@ export class SearchOneOffs {
|
||||||
// For the search-bar, always show the one-off buttons where there is an
|
// For the search-bar, always show the one-off buttons where there is an
|
||||||
// option to add an engine.
|
// option to add an engine.
|
||||||
let addEngineNeeded = isSearchBar && addEngines.length;
|
let addEngineNeeded = isSearchBar && addEngines.length;
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047669c8c94 100644
|
index 5633e5032f5d50c70512187d27e045b579978927..7604adcd38308c38c7c62d16aa29c860a7726649 100644
|
||||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||||
@@ -3186,7 +3186,7 @@ var SessionStoreInternal = {
|
@@ -3202,7 +3202,7 @@ var SessionStoreInternal = {
|
||||||
if (!isPrivateWindow && tabState.isPrivate) {
|
if (!isPrivateWindow && tabState.isPrivate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -11,7 +11,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3895,6 +3895,8 @@ var SessionStoreInternal = {
|
@@ -3911,6 +3911,8 @@ var SessionStoreInternal = {
|
||||||
Math.min(tabState.index, tabState.entries.length)
|
Math.min(tabState.index, tabState.entries.length)
|
||||||
);
|
);
|
||||||
tabState.pinned = false;
|
tabState.pinned = false;
|
||||||
@@ -20,7 +20,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
|||||||
|
|
||||||
if (inBackground === false) {
|
if (inBackground === false) {
|
||||||
aWindow.gBrowser.selectedTab = newTab;
|
aWindow.gBrowser.selectedTab = newTab;
|
||||||
@@ -5399,14 +5401,15 @@ var SessionStoreInternal = {
|
@@ -5416,14 +5418,15 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let tabbrowser = aWindow.gBrowser;
|
let tabbrowser = aWindow.gBrowser;
|
||||||
@@ -38,7 +38,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
let tabData = lazy.TabState.collect(tab, TAB_CUSTOM_VALUES.get(tab));
|
||||||
@@ -5425,7 +5428,7 @@ var SessionStoreInternal = {
|
@@ -5442,7 +5445,7 @@ var SessionStoreInternal = {
|
||||||
// We don't store the Firefox View tab in Session Store, so if it was the last selected "tab" when
|
// We don't store the Firefox View tab in Session Store, so if it was the last selected "tab" when
|
||||||
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
||||||
// since it's only inserted into the tab strip after it's selected).
|
// since it's only inserted into the tab strip after it's selected).
|
||||||
@@ -47,7 +47,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
|||||||
selectedIndex = 1;
|
selectedIndex = 1;
|
||||||
winData.title = tabbrowser.tabs[0].label;
|
winData.title = tabbrowser.tabs[0].label;
|
||||||
}
|
}
|
||||||
@@ -5582,6 +5585,7 @@ var SessionStoreInternal = {
|
@@ -5599,6 +5602,7 @@ var SessionStoreInternal = {
|
||||||
winData.tabs,
|
winData.tabs,
|
||||||
winData.groups ?? []
|
winData.groups ?? []
|
||||||
);
|
);
|
||||||
@@ -55,7 +55,7 @@ index 6e2973abf428b110bfc553522723f327ee84c028..cf707b1aace542b4b42468bbaaffd047
|
|||||||
this._log.debug(
|
this._log.debug(
|
||||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||||
);
|
);
|
||||||
@@ -6130,8 +6134,23 @@ var SessionStoreInternal = {
|
@@ -6148,8 +6152,23 @@ var SessionStoreInternal = {
|
||||||
|
|
||||||
// Most of tabData has been restored, now continue with restoring
|
// Most of tabData has been restored, now continue with restoring
|
||||||
// attributes that may trigger external events.
|
// attributes that may trigger external events.
|
||||||
|
@@ -1,13 +1,13 @@
|
|||||||
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
||||||
index 371190c058fa1eed91dc91b58608c934100e3a1b..440fe6fb403c3e78b3bfe68fb747d000b4a27521 100644
|
index 178c05099b671c4ec8d4c225955e65cff73824e2..6abb0ee2d4be94f997ee8d4bc755a393d9759099 100644
|
||||||
--- a/browser/components/sidebar/browser-sidebar.js
|
--- a/browser/components/sidebar/browser-sidebar.js
|
||||||
+++ b/browser/components/sidebar/browser-sidebar.js
|
+++ b/browser/components/sidebar/browser-sidebar.js
|
||||||
@@ -718,7 +718,7 @@ var SidebarController = {
|
@@ -729,7 +729,7 @@ var SidebarController = {
|
||||||
}
|
setPosition() {
|
||||||
});
|
// First reset all ordinals to match DOM ordering.
|
||||||
} else {
|
let contentArea = document.getElementById("tabbrowser-tabbox");
|
||||||
- let browser = document.getElementById("browser");
|
- let browser = document.getElementById("browser");
|
||||||
+ let browser = document.getElementById("tabbrowser-tabbox");
|
+ let browser = document.getElementById("tabbrowser-tabbox");
|
||||||
[...browser.children].forEach((node, i) => {
|
[...browser.children].forEach((node, i) => {
|
||||||
node.style.order = i + 1;
|
node.style.order = i + 1;
|
||||||
});
|
});
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
index 6753641cb579032306453be3f5054d7bc7661e8c..e0eda8d77637334ca30ee1842057cb43b4af2c21 100644
|
index 6753641cb579032306453be3f5054d7bc7661e8c..436ee8940c8a73d238a7aed10768a0a752a3f119 100644
|
||||||
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
@@ -252,7 +252,7 @@ var ctrlTab = {
|
@@ -252,7 +252,7 @@ var ctrlTab = {
|
||||||
@@ -20,6 +20,15 @@ index 6753641cb579032306453be3f5054d7bc7661e8c..e0eda8d77637334ca30ee1842057cb43
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -483,7 +483,7 @@ var ctrlTab = {
|
||||||
|
},
|
||||||
|
|
||||||
|
open: function ctrlTab_open() {
|
||||||
|
- if (this.isOpen) {
|
||||||
|
+ if (this.isOpen || !this.tabCount) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -761,7 +761,7 @@ var ctrlTab = {
|
@@ -761,7 +761,7 @@ var ctrlTab = {
|
||||||
_initRecentlyUsedTabs() {
|
_initRecentlyUsedTabs() {
|
||||||
this._recentlyUsedTabs = Array.prototype.filter.call(
|
this._recentlyUsedTabs = Array.prototype.filter.call(
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
||||||
index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac96fd868da 100644
|
index dc92771ebc65095dfebbddc238ee6d4fffd897bf..ae9120f7cc8989cf625ac101d053d82582e32009 100644
|
||||||
--- a/browser/components/tabbrowser/content/tab.js
|
--- a/browser/components/tabbrowser/content/tab.js
|
||||||
+++ b/browser/components/tabbrowser/content/tab.js
|
+++ b/browser/components/tabbrowser/content/tab.js
|
||||||
@@ -16,6 +16,7 @@
|
@@ -21,6 +21,7 @@
|
||||||
<hbox class="tab-group-line"/>
|
<hbox class="tab-group-line"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<hbox class="tab-content" align="center">
|
<hbox class="tab-content" align="center">
|
||||||
@@ -10,7 +10,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
<stack class="tab-icon-stack">
|
<stack class="tab-icon-stack">
|
||||||
<hbox class="tab-throbber"/>
|
<hbox class="tab-throbber"/>
|
||||||
<hbox class="tab-icon-pending"/>
|
<hbox class="tab-icon-pending"/>
|
||||||
@@ -32,8 +33,10 @@
|
@@ -37,8 +38,10 @@
|
||||||
<hbox class="tab-secondary-label">
|
<hbox class="tab-secondary-label">
|
||||||
<label class="tab-icon-sound-label tab-icon-sound-pip-label" data-l10n-id="browser-tab-audio-pip" role="presentation"/>
|
<label class="tab-icon-sound-label tab-icon-sound-pip-label" data-l10n-id="browser-tab-audio-pip" role="presentation"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -21,7 +21,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
</hbox>
|
</hbox>
|
||||||
</stack>
|
</stack>
|
||||||
`;
|
`;
|
||||||
@@ -167,7 +170,7 @@
|
@@ -175,7 +178,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
set _visuallySelected(val) {
|
set _visuallySelected(val) {
|
||||||
@@ -30,7 +30,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -203,7 +206,7 @@
|
@@ -211,7 +214,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get visible() {
|
get visible() {
|
||||||
@@ -39,7 +39,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
}
|
}
|
||||||
|
|
||||||
get hidden() {
|
get hidden() {
|
||||||
@@ -274,7 +277,7 @@
|
@@ -282,7 +285,7 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
}
|
}
|
||||||
|
|
||||||
get lastAccessed() {
|
get lastAccessed() {
|
||||||
@@ -446,6 +449,8 @@
|
@@ -454,6 +457,8 @@
|
||||||
this.style.MozUserFocus = "ignore";
|
this.style.MozUserFocus = "ignore";
|
||||||
} else if (
|
} else if (
|
||||||
event.target.classList.contains("tab-close-button") ||
|
event.target.classList.contains("tab-close-button") ||
|
||||||
@@ -57,15 +57,15 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
event.target.classList.contains("tab-icon-overlay") ||
|
event.target.classList.contains("tab-icon-overlay") ||
|
||||||
event.target.classList.contains("tab-audio-button")
|
event.target.classList.contains("tab-audio-button")
|
||||||
) {
|
) {
|
||||||
@@ -544,6 +549,7 @@
|
@@ -554,6 +559,7 @@
|
||||||
if (this.multiselected) {
|
telemetrySource: lazy.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||||
gBrowser.removeMultiSelectedTabs();
|
});
|
||||||
} else {
|
} else {
|
||||||
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
|
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
|
||||||
gBrowser.removeTab(this, {
|
gBrowser.removeTab(this, {
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
@@ -553,6 +559,14 @@
|
@@ -564,6 +570,14 @@
|
||||||
// (see tabbrowser-tabs 'click' handler).
|
// (see tabbrowser-tabs 'click' handler).
|
||||||
gBrowser.tabContainer._blockDblClick = true;
|
gBrowser.tabContainer._blockDblClick = true;
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ index fc3a9730b394341843cfa9f559a792acb34c7d29..18d5fdb6e3368e21c68269c48cf22ac9
|
|||||||
}
|
}
|
||||||
|
|
||||||
on_dblclick(event) {
|
on_dblclick(event) {
|
||||||
@@ -576,6 +590,8 @@
|
@@ -587,6 +601,8 @@
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
});
|
});
|
||||||
|
@@ -1,22 +1,13 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69f8d324d1 100644
|
index 6dece2b9d0462d90a28e75350ce983d87816ef73..e80730ed2db404c0d47f2e29c3235c66f0137ad2 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
@@ -424,11 +424,67 @@
|
@@ -415,11 +415,58 @@
|
||||||
return this.tabContainer.visibleTabs;
|
return this.tabContainer.visibleTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ get _numVisiblePinTabs() {
|
+ zenInsertTabAtIndex(...args) {
|
||||||
+ let i = 0;
|
+ return this.#insertTabAtElementIndex(...args);
|
||||||
+ for (let tab of this.tabs) {
|
|
||||||
+ if (!tab.pinned && !tab.hasAttribute("zen-glance-tab")) {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ if (!tab.hidden) {
|
|
||||||
+ i += !tab.hasAttribute("zen-glance-tab");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ return i;
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ get _numVisiblePinTabsWithoutCollapsed() {
|
+ get _numVisiblePinTabsWithoutCollapsed() {
|
||||||
@@ -72,15 +63,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
}
|
}
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
@@ -558,6 +614,7 @@
|
@@ -571,6 +618,7 @@
|
||||||
this.tabpanels.appendChild(panel);
|
this.tabpanels.appendChild(panel);
|
||||||
|
|
||||||
let tab = this.tabs[0];
|
let tab = this.tabs[0];
|
||||||
+ ZenWorkspaces.handleInitialTab(tab, (!remoteType || remoteType === E10SUtils.PRIVILEGEDABOUT_REMOTE_TYPE) && !Services.prefs.getBoolPref('zen.workspaces.disable_empty_state_for_testing', false));
|
+ ZenWorkspaces.handleInitialTab(tab, (!remoteType || remoteType === E10SUtils.PRIVILEGEDABOUT_REMOTE_TYPE) && !gZenUIManager.testingEnabled);
|
||||||
tab.linkedPanel = uniqueId;
|
tab.linkedPanel = uniqueId;
|
||||||
this._selectedTab = tab;
|
this._selectedTab = tab;
|
||||||
this._selectedBrowser = browser;
|
this._selectedBrowser = browser;
|
||||||
@@ -823,11 +880,13 @@
|
@@ -836,11 +884,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.showTab(aTab);
|
this.showTab(aTab);
|
||||||
@@ -90,14 +81,14 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
+ if (this.tabContainer.verticalMode && !handled) {
|
+ if (this.tabContainer.verticalMode && !handled) {
|
||||||
this.#handleTabMove(aTab, () =>
|
this.#handleTabMove(aTab, () =>
|
||||||
- this.verticalPinnedTabsContainer.appendChild(aTab)
|
- this.verticalPinnedTabsContainer.appendChild(aTab)
|
||||||
+ aTab.hasAttribute("zen-essential") ? document.getElementById("zen-essentials-container").appendChild(aTab) : this.verticalPinnedTabsContainer.insertBefore(aTab, this.verticalPinnedTabsContainer.lastChild)
|
+ aTab.hasAttribute("zen-essential") ? ZenWorkspaces.getEssentialsSection(aTab).appendChild(aTab) : this.verticalPinnedTabsContainer.insertBefore(aTab, this.verticalPinnedTabsContainer.lastChild)
|
||||||
);
|
);
|
||||||
- } else {
|
- } else {
|
||||||
+ } else if (!handled) {
|
+ } else if (!handled) {
|
||||||
this.moveTabTo(aTab, this.pinnedTabCount, { forceStandaloneTab: true });
|
this.moveTabTo(aTab, {
|
||||||
}
|
tabIndex: this.pinnedTabCount,
|
||||||
aTab.setAttribute("pinned", "true");
|
forceUngrouped: true,
|
||||||
@@ -841,12 +900,15 @@
|
@@ -857,12 +907,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.tabContainer.verticalMode) {
|
if (this.tabContainer.verticalMode) {
|
||||||
@@ -113,8 +104,8 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
+ }
|
+ }
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this.moveTabTo(aTab, this.pinnedTabCount - 1, {
|
this.moveTabTo(aTab, {
|
||||||
@@ -1029,6 +1091,8 @@
|
@@ -1046,6 +1099,8 @@
|
||||||
|
|
||||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||||
|
|
||||||
@@ -123,7 +114,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (
|
if (
|
||||||
aIconURL &&
|
aIconURL &&
|
||||||
!aLoadingPrincipal &&
|
!aLoadingPrincipal &&
|
||||||
@@ -1039,6 +1103,9 @@
|
@@ -1056,6 +1111,9 @@
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -133,7 +124,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
|
|
||||||
let browser = this.getBrowserForTab(aTab);
|
let browser = this.getBrowserForTab(aTab);
|
||||||
browser.mIconURL = aIconURL;
|
browser.mIconURL = aIconURL;
|
||||||
@@ -1287,6 +1354,7 @@
|
@@ -1305,6 +1363,7 @@
|
||||||
if (!this._previewMode) {
|
if (!this._previewMode) {
|
||||||
newTab.recordTimeFromUnloadToReload();
|
newTab.recordTimeFromUnloadToReload();
|
||||||
newTab.updateLastAccessed();
|
newTab.updateLastAccessed();
|
||||||
@@ -141,7 +132,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
oldTab.updateLastAccessed();
|
oldTab.updateLastAccessed();
|
||||||
// if this is the foreground window, update the last-seen timestamps.
|
// if this is the foreground window, update the last-seen timestamps.
|
||||||
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
||||||
@@ -1439,6 +1507,9 @@
|
@@ -1457,6 +1516,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeEl = document.activeElement;
|
let activeEl = document.activeElement;
|
||||||
@@ -151,7 +142,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
// If focus is on the old tab, move it to the new tab.
|
// If focus is on the old tab, move it to the new tab.
|
||||||
if (activeEl == oldTab) {
|
if (activeEl == oldTab) {
|
||||||
newTab.focus();
|
newTab.focus();
|
||||||
@@ -1762,7 +1833,8 @@
|
@@ -1780,7 +1842,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||||
@@ -161,16 +152,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1865,7 +1937,7 @@
|
@@ -1888,7 +1951,7 @@
|
||||||
newIndex = this.selectedTab._tPos + 1;
|
newIndex = this.selectedTab._tPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
- if (replace) {
|
- if (replace) {
|
||||||
+ if (replace && !(!targetTab && this.selectedTab?.hasAttribute('zen-empty-tab'))) {
|
+ if (replace && !(!targetTab && this.selectedTab?.hasAttribute('zen-empty-tab'))) {
|
||||||
let browser;
|
if (this.isTabGroupLabel(targetTab)) {
|
||||||
if (targetTab) {
|
throw new Error(
|
||||||
browser = this.getBrowserForTab(targetTab);
|
"Replacing a tab group label with a tab is not supported"
|
||||||
@@ -2122,6 +2194,7 @@
|
@@ -2152,6 +2215,7 @@
|
||||||
uriIsAboutBlank,
|
uriIsAboutBlank,
|
||||||
userContextId,
|
userContextId,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -178,7 +169,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
} = {}) {
|
} = {}) {
|
||||||
let b = document.createXULElement("browser");
|
let b = document.createXULElement("browser");
|
||||||
// Use the JSM global to create the permanentKey, so that if the
|
// Use the JSM global to create the permanentKey, so that if the
|
||||||
@@ -2195,8 +2268,7 @@
|
@@ -2225,8 +2289,7 @@
|
||||||
// we use a different attribute name for this?
|
// we use a different attribute name for this?
|
||||||
b.setAttribute("name", name);
|
b.setAttribute("name", name);
|
||||||
}
|
}
|
||||||
@@ -188,7 +179,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
b.setAttribute("transparent", "true");
|
b.setAttribute("transparent", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2373,7 +2445,7 @@
|
@@ -2391,7 +2454,7 @@
|
||||||
|
|
||||||
let panel = this.getPanel(browser);
|
let panel = this.getPanel(browser);
|
||||||
let uniqueId = this._generateUniquePanelID();
|
let uniqueId = this._generateUniquePanelID();
|
||||||
@@ -197,7 +188,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
aTab.linkedPanel = uniqueId;
|
aTab.linkedPanel = uniqueId;
|
||||||
|
|
||||||
// Inject the <browser> into the DOM if necessary.
|
// Inject the <browser> into the DOM if necessary.
|
||||||
@@ -2432,8 +2504,8 @@
|
@@ -2450,8 +2513,8 @@
|
||||||
// If we transitioned from one browser to two browsers, we need to set
|
// If we transitioned from one browser to two browsers, we need to set
|
||||||
// hasSiblings=false on both the existing browser and the new browser.
|
// hasSiblings=false on both the existing browser and the new browser.
|
||||||
if (this.tabs.length == 2) {
|
if (this.tabs.length == 2) {
|
||||||
@@ -208,7 +199,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
} else {
|
} else {
|
||||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||||
}
|
}
|
||||||
@@ -2655,6 +2727,7 @@
|
@@ -2679,6 +2742,7 @@
|
||||||
schemelessInput,
|
schemelessInput,
|
||||||
hasValidUserGestureActivation = false,
|
hasValidUserGestureActivation = false,
|
||||||
textDirectiveUserActivation = false,
|
textDirectiveUserActivation = false,
|
||||||
@@ -216,7 +207,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
// all callers of addTab that pass a params object need to pass
|
// all callers of addTab that pass a params object need to pass
|
||||||
@@ -2665,6 +2738,12 @@
|
@@ -2689,6 +2753,12 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -229,7 +220,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||||
}
|
}
|
||||||
@@ -2728,6 +2807,16 @@
|
@@ -2752,6 +2822,16 @@
|
||||||
noInitialLabel,
|
noInitialLabel,
|
||||||
skipBackgroundNotify,
|
skipBackgroundNotify,
|
||||||
});
|
});
|
||||||
@@ -244,17 +235,17 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
+ t.setAttribute("zen-empty-tab", "true");
|
+ t.setAttribute("zen-empty-tab", "true");
|
||||||
+ }
|
+ }
|
||||||
if (insertTab) {
|
if (insertTab) {
|
||||||
// insert the tab into the tab container in the correct position
|
if (typeof index == "number") {
|
||||||
this._insertTabAtIndex(t, {
|
elementIndex = this.#tabIndexToElementIndex(index);
|
||||||
@@ -2752,6 +2841,7 @@
|
@@ -2779,6 +2859,7 @@
|
||||||
initialBrowsingContextGroupId,
|
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
|
triggeringRemoteType,
|
||||||
+ _forZenEmptyTab,
|
+ _forZenEmptyTab,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
if (focusUrlBar) {
|
if (focusUrlBar) {
|
||||||
@@ -2871,6 +2961,9 @@
|
@@ -2898,6 +2979,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -264,7 +255,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
// Additionally send pinned tab events
|
// Additionally send pinned tab events
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this._notifyPinnedStatus(t);
|
this._notifyPinnedStatus(t);
|
||||||
@@ -2891,12 +2984,15 @@
|
@@ -2945,12 +3029,15 @@
|
||||||
* @param {string} [label=]
|
* @param {string} [label=]
|
||||||
* @returns {MozTabbrowserTabGroup}
|
* @returns {MozTabbrowserTabGroup}
|
||||||
*/
|
*/
|
||||||
@@ -281,15 +272,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2937,6 +3033,7 @@
|
@@ -2993,6 +3080,7 @@
|
||||||
insertBefore = null,
|
insertBefore = null,
|
||||||
isUserCreated = false,
|
isUserTriggered = false,
|
||||||
telemetryUserCreateSource = "unknown",
|
telemetryUserCreateSource = "unknown",
|
||||||
+ forSplitView = false,
|
+ forSplitView = false,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
if (!tabs?.length) {
|
if (!tabs?.length) {
|
||||||
@@ -2951,7 +3048,12 @@
|
@@ -3011,7 +3099,12 @@
|
||||||
id = `${Date.now()}-${Math.round(Math.random() * 100)}`;
|
id = `${Date.now()}-${Math.round(Math.random() * 100)}`;
|
||||||
}
|
}
|
||||||
let group = this._createTabGroup(id, color, false, label);
|
let group = this._createTabGroup(id, color, false, label);
|
||||||
@@ -303,15 +294,15 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
group,
|
group,
|
||||||
insertBefore?.group ?? insertBefore
|
insertBefore?.group ?? insertBefore
|
||||||
);
|
);
|
||||||
@@ -3268,6 +3370,7 @@
|
@@ -3342,6 +3435,7 @@
|
||||||
initialBrowsingContextGroupId,
|
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
|
triggeringRemoteType,
|
||||||
+ _forZenEmptyTab
|
+ _forZenEmptyTab
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
// If we don't have a preferred remote type, and we have a remote
|
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||||
@@ -3331,6 +3434,7 @@
|
@@ -3411,6 +3505,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
name,
|
name,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -319,7 +310,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3509,6 +3613,27 @@
|
@@ -3589,6 +3684,27 @@
|
||||||
) {
|
) {
|
||||||
tabWasReused = true;
|
tabWasReused = true;
|
||||||
tab = this.selectedTab;
|
tab = this.selectedTab;
|
||||||
@@ -347,12 +338,11 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (!tabData.pinned) {
|
if (!tabData.pinned) {
|
||||||
this.unpinTab(tab);
|
this.unpinTab(tab);
|
||||||
} else {
|
} else {
|
||||||
@@ -3557,8 +3682,28 @@
|
@@ -3637,7 +3753,27 @@
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
});
|
});
|
||||||
-
|
-
|
||||||
- if (select) {
|
|
||||||
+ if (tabData.zenWorkspace) {
|
+ if (tabData.zenWorkspace) {
|
||||||
+ tab.setAttribute("zen-workspace-id", tabData.zenWorkspace);
|
+ tab.setAttribute("zen-workspace-id", tabData.zenWorkspace);
|
||||||
+ }
|
+ }
|
||||||
@@ -374,22 +364,10 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
+ if (tabData.zenPinnedEntry) {
|
+ if (tabData.zenPinnedEntry) {
|
||||||
+ tab.setAttribute("zen-pinned-entry", tabData.zenPinnedEntry);
|
+ tab.setAttribute("zen-pinned-entry", tabData.zenPinnedEntry);
|
||||||
+ }
|
+ }
|
||||||
+ if (select && !tabData.pinned) {
|
if (select) {
|
||||||
tabToSelect = tab;
|
tabToSelect = tab;
|
||||||
}
|
}
|
||||||
}
|
@@ -3661,7 +3797,8 @@
|
||||||
@@ -3570,8 +3715,8 @@
|
|
||||||
// inserted in the DOM. If the tab is not yet in the DOM,
|
|
||||||
// just insert it in the right place from the start.
|
|
||||||
if (!tab.parentNode) {
|
|
||||||
- tab._tPos = this.pinnedTabCount;
|
|
||||||
- this.tabContainer.insertBefore(tab, this.tabs[this.pinnedTabCount]);
|
|
||||||
+ tab._tPos = this._numVisiblePinTabs;
|
|
||||||
+ this.tabContainer.insertBefore(tab, this.tabs[this._numVisiblePinTabs]);
|
|
||||||
tab.toggleAttribute("pinned", true);
|
|
||||||
this.tabContainer._invalidateCachedTabs();
|
|
||||||
// Then ensure all the tab open/pinning information is sent.
|
|
||||||
@@ -3581,7 +3726,8 @@
|
|
||||||
// needs calling:
|
// needs calling:
|
||||||
shouldUpdateForPinnedTabs = true;
|
shouldUpdateForPinnedTabs = true;
|
||||||
}
|
}
|
||||||
@@ -399,7 +377,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
let { groupId } = tabData;
|
let { groupId } = tabData;
|
||||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||||
// if a tab refers to a tab group we don't know, skip any group
|
// if a tab refers to a tab group we don't know, skip any group
|
||||||
@@ -3595,7 +3741,10 @@
|
@@ -3675,7 +3812,10 @@
|
||||||
tabGroup.stateData.id,
|
tabGroup.stateData.id,
|
||||||
tabGroup.stateData.color,
|
tabGroup.stateData.color,
|
||||||
tabGroup.stateData.collapsed,
|
tabGroup.stateData.collapsed,
|
||||||
@@ -411,7 +389,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
);
|
);
|
||||||
tabsFragment.appendChild(tabGroup.node);
|
tabsFragment.appendChild(tabGroup.node);
|
||||||
}
|
}
|
||||||
@@ -3646,6 +3795,9 @@
|
@@ -3726,6 +3866,9 @@
|
||||||
this.selectedTab = tabToSelect;
|
this.selectedTab = tabToSelect;
|
||||||
this.removeTab(leftoverTab);
|
this.removeTab(leftoverTab);
|
||||||
}
|
}
|
||||||
@@ -421,7 +399,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
|
|
||||||
if (tabs.length > 1 || !tabs[0].selected) {
|
if (tabs.length > 1 || !tabs[0].selected) {
|
||||||
this._updateTabsAfterInsert();
|
this._updateTabsAfterInsert();
|
||||||
@@ -3830,7 +3982,7 @@
|
@@ -3912,7 +4055,7 @@
|
||||||
// Ensure we have an index if one was not provided.
|
// Ensure we have an index if one was not provided.
|
||||||
if (typeof index != "number") {
|
if (typeof index != "number") {
|
||||||
// Move the new tab after another tab if needed, to the end otherwise.
|
// Move the new tab after another tab if needed, to the end otherwise.
|
||||||
@@ -430,7 +408,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (
|
if (
|
||||||
!bulkOrderedOpen &&
|
!bulkOrderedOpen &&
|
||||||
((openerTab &&
|
((openerTab &&
|
||||||
@@ -3876,18 +4028,18 @@
|
@@ -3958,18 +4101,18 @@
|
||||||
|
|
||||||
// Ensure index is within bounds.
|
// Ensure index is within bounds.
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -440,38 +418,38 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
+ index = Math.min(index, tab.hasAttribute("zen-essential") ? this._numZenEssentials : this.pinnedTabCount);
|
+ index = Math.min(index, tab.hasAttribute("zen-essential") ? this._numZenEssentials : this.pinnedTabCount);
|
||||||
} else {
|
} else {
|
||||||
index = Math.max(index, this.pinnedTabCount);
|
index = Math.max(index, this.pinnedTabCount);
|
||||||
index = Math.min(index, this.tabs.length);
|
index = Math.min(index, this.tabContainer.ariaFocusableItems.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @type {MozTabbrowserTab|undefined} */
|
/** @type {MozTabbrowserTab|undefined} */
|
||||||
- let tabAfter = this.tabs.at(index);
|
- let itemAfter = this.tabContainer.ariaFocusableItems.at(index);
|
||||||
+ let tabAfter = this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab")).at(index);
|
+ let itemAfter = this.tabContainer.ariaFocusableItems.filter(tab => !tab.hasAttribute("zen-glance-tab")).at(index);
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
|
|
||||||
- if (tabGroup) {
|
- if (tabGroup) {
|
||||||
+ if (tabGroup && !tabGroup.hasAttribute("split-view-group")) {
|
+ if (tabGroup && !tabGroup.hasAttribute("split-view-group")) {
|
||||||
if (tabAfter && tabAfter.group == tabGroup) {
|
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||||
// Place at the front of, or between tabs in, the same tab group
|
// Place at the front of, or between tabs in, the same tab group
|
||||||
this.tabContainer.insertBefore(tab, tabAfter);
|
this.tabContainer.insertBefore(tab, itemAfter);
|
||||||
@@ -4199,6 +4351,9 @@
|
@@ -4290,6 +4433,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
+ for (let tab of selectedTabs) {
|
+ for (let tab of selectedTabs) {
|
||||||
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
|
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
|
||||||
+ }
|
+ }
|
||||||
this.removeTabs(selectedTabs);
|
this.removeTabs(selectedTabs, { telemetrySource });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4450,6 +4605,7 @@
|
@@ -4542,6 +4688,7 @@
|
||||||
skipGroupCheck = false,
|
telemetrySource,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
+ tabs = tabs.filter(tab => !tab.hasAttribute("zen-empty-tab"));
|
+ tabs = tabs.filter(tab => !tab.hasAttribute("zen-empty-tab"));
|
||||||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||||
// can be considered equivalent to closing the window.
|
// can be considered equivalent to closing the window.
|
||||||
if (
|
if (
|
||||||
@@ -4533,6 +4689,7 @@
|
@@ -4626,6 +4773,7 @@
|
||||||
if (lastToClose) {
|
if (lastToClose) {
|
||||||
this.removeTab(lastToClose, aParams);
|
this.removeTab(lastToClose, aParams);
|
||||||
}
|
}
|
||||||
@@ -479,16 +457,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
@@ -4556,6 +4713,7 @@
|
@@ -4650,6 +4798,7 @@
|
||||||
skipSessionStore,
|
telemetrySource,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
+ gZenUIManager.saveScrollbarState();
|
+ gZenUIManager.saveScrollbarState();
|
||||||
if (UserInteraction.running("browser.tabs.opening", window)) {
|
if (UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.finish("browser.tabs.opening", window);
|
UserInteraction.finish("browser.tabs.opening", window);
|
||||||
}
|
}
|
||||||
@@ -4572,6 +4730,12 @@
|
@@ -4663,6 +4812,12 @@
|
||||||
TelemetryStopwatch.start("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
+ if (ZenWorkspaces.workspaceEnabled) {
|
+ if (ZenWorkspaces.workspaceEnabled) {
|
||||||
@@ -500,7 +478,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
// Handle requests for synchronously removing an already
|
// Handle requests for synchronously removing an already
|
||||||
// asynchronously closing tab.
|
// asynchronously closing tab.
|
||||||
if (!animate && aTab.closing) {
|
if (!animate && aTab.closing) {
|
||||||
@@ -4586,7 +4750,9 @@
|
@@ -4677,7 +4832,9 @@
|
||||||
// frame created for it (for example, by updating the visually selected
|
// frame created for it (for example, by updating the visually selected
|
||||||
// state).
|
// state).
|
||||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||||
@@ -511,32 +489,16 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (
|
if (
|
||||||
!this._beginRemoveTab(aTab, {
|
!this._beginRemoveTab(aTab, {
|
||||||
closeWindowFastpath: true,
|
closeWindowFastpath: true,
|
||||||
@@ -4600,7 +4766,6 @@
|
@@ -4840,7 +4997,7 @@
|
||||||
TelemetryStopwatch.cancel("FX_TAB_CLOSE_TIME_NO_ANIM_MS", aTab);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
-
|
|
||||||
let lockTabSizing =
|
|
||||||
!this.tabContainer.verticalMode &&
|
|
||||||
!aTab.pinned &&
|
|
||||||
@@ -4739,14 +4904,14 @@
|
|
||||||
!!this.tabsInCollapsedTabGroups.length;
|
|
||||||
if (
|
|
||||||
aTab.visible &&
|
|
||||||
- this.visibleTabs.length == 1 &&
|
|
||||||
+ this.visibleTabs.length == 1 && !aTab._closingGlance &&
|
|
||||||
!anyRemainingTabsInCollapsedTabGroups
|
|
||||||
) {
|
|
||||||
closeWindow =
|
|
||||||
closeWindowWithLastTab != null
|
closeWindowWithLastTab != null
|
||||||
? closeWindowWithLastTab
|
? closeWindowWithLastTab
|
||||||
: !window.toolbar.visible ||
|
: !window.toolbar.visible ||
|
||||||
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab");
|
- Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab");
|
||||||
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !ZenWorkspaces._isClosingWindow && !ZenWorkspaces._removedByStartupPage;
|
+ Services.prefs.getBoolPref("browser.tabs.closeWindowWithLastTab") && !ZenWorkspaces._isClosingWindow && !ZenWorkspaces._removedByStartupPage;
|
||||||
|
|
||||||
if (closeWindow) {
|
if (closeWindow) {
|
||||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||||
@@ -4770,6 +4935,7 @@
|
@@ -4864,6 +5021,7 @@
|
||||||
|
|
||||||
newTab = true;
|
newTab = true;
|
||||||
}
|
}
|
||||||
@@ -544,7 +506,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||||
|
|
||||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||||
@@ -4810,9 +4976,7 @@
|
@@ -4903,9 +5061,7 @@
|
||||||
aTab._mouseleave();
|
aTab._mouseleave();
|
||||||
|
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
@@ -555,7 +517,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
} else {
|
} else {
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -4941,6 +5105,8 @@
|
@@ -5034,6 +5190,8 @@
|
||||||
this.tabs[i]._tPos = i;
|
this.tabs[i]._tPos = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,7 +526,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (!this._windowIsClosing) {
|
if (!this._windowIsClosing) {
|
||||||
if (wasPinned) {
|
if (wasPinned) {
|
||||||
this.tabContainer._positionPinnedTabs();
|
this.tabContainer._positionPinnedTabs();
|
||||||
@@ -5064,8 +5230,8 @@
|
@@ -5159,8 +5317,8 @@
|
||||||
return closedCount;
|
return closedCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -575,7 +537,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
if (unloadBlocked) {
|
if (unloadBlocked) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -5159,13 +5325,13 @@
|
@@ -5260,13 +5418,13 @@
|
||||||
!excludeTabs.has(aTab.owner) &&
|
!excludeTabs.has(aTab.owner) &&
|
||||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||||
) {
|
) {
|
||||||
@@ -591,7 +553,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
);
|
);
|
||||||
|
|
||||||
let tab = this.tabContainer.findNextTab(aTab, {
|
let tab = this.tabContainer.findNextTab(aTab, {
|
||||||
@@ -5181,7 +5347,7 @@
|
@@ -5282,7 +5440,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab) {
|
if (tab) {
|
||||||
@@ -600,7 +562,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If no qualifying visible tab was found, see if there is a tab in
|
// If no qualifying visible tab was found, see if there is a tab in
|
||||||
@@ -5202,7 +5368,7 @@
|
@@ -5303,7 +5461,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -609,7 +571,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
}
|
}
|
||||||
|
|
||||||
_blurTab(aTab) {
|
_blurTab(aTab) {
|
||||||
@@ -5599,10 +5765,10 @@
|
@@ -5704,10 +5862,10 @@
|
||||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -622,69 +584,68 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
aTab.selected ||
|
aTab.selected ||
|
||||||
aTab.closing ||
|
aTab.closing ||
|
||||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||||
@@ -5838,7 +6004,7 @@
|
@@ -6001,7 +6159,7 @@
|
||||||
moveTabTo(aTab, aIndex, { forceStandaloneTab = false } = {}) {
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
|
||||||
if (aTab.pinned) {
|
|
||||||
- aIndex = Math.min(aIndex, this.pinnedTabCount - 1);
|
|
||||||
+ aIndex = aTab.hasAttribute('zen-essential') ? Math.min(aIndex, this._numZenEssentials - 1) : Math.min(aIndex, this.pinnedTabCount - 1);
|
|
||||||
} else {
|
|
||||||
aIndex = Math.max(aIndex, this.pinnedTabCount);
|
|
||||||
}
|
|
||||||
@@ -5848,10 +6014,17 @@
|
|
||||||
|
|
||||||
this.#handleTabMove(aTab, () => {
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
let neighbor = this.tabs[aIndex];
|
if (this.isTab(element) && element.pinned) {
|
||||||
- if (forceStandaloneTab && neighbor.group) {
|
- tabIndex = Math.min(tabIndex, this.pinnedTabCount - 1);
|
||||||
+ const _tPos = aTab._tPos;
|
+ tabIndex = element.hasAttribute('zen-essential') ? Math.min(tabIndex, this._numZenEssentials - 1) : Math.min(tabIndex, this.pinnedTabCount - 1);
|
||||||
+ if ((forceStandaloneTab && neighbor.group) || neighbor.group?.hasAttribute("split-view-group")) {
|
} else {
|
||||||
neighbor = neighbor.group;
|
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||||
|
}
|
||||||
|
@@ -6028,9 +6186,16 @@
|
||||||
|
element,
|
||||||
|
() => {
|
||||||
|
let neighbor = this.tabs[tabIndex];
|
||||||
|
- if (forceUngrouped && neighbor.group) {
|
||||||
|
+ const _tPos = element._tPos;
|
||||||
|
+ if ((forceUngrouped && neighbor?.group) || neighbor?.group?.hasAttribute("split-view-group")) {
|
||||||
|
neighbor = neighbor.group;
|
||||||
|
}
|
||||||
|
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ element = element.group;
|
||||||
|
+ }
|
||||||
|
+ if (element.group?.hasAttribute("split-view-group") && neighbor == element.group) {
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||||
|
neighbor.after(element);
|
||||||
|
} else {
|
||||||
|
@@ -6099,7 +6264,9 @@
|
||||||
|
targetElement = targetElement.group;
|
||||||
}
|
}
|
||||||
- if (neighbor && aIndex > aTab._tPos) {
|
|
||||||
+ if (aTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ aTab = aTab.group;
|
|
||||||
+ }
|
|
||||||
+ if (aTab.group?.hasAttribute("split-view-group") && neighbor == aTab.group) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ if (neighbor && aIndex >= _tPos) {
|
|
||||||
neighbor.after(aTab);
|
|
||||||
} else {
|
|
||||||
this.tabContainer.insertBefore(aTab, neighbor);
|
|
||||||
@@ -5901,13 +6074,22 @@
|
|
||||||
* Bug 1955388 - prevent pinned tabs from commingling with non-pinned tabs
|
|
||||||
* when there are hidden tabs present
|
|
||||||
*/
|
|
||||||
+ if (tab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ tab = tab.group;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (tab.pinned && !targetElement?.pinned) {
|
|
||||||
// prevent pinned tab from being dragged past a non-pinned tab
|
|
||||||
targetElement = this.tabs[this.pinnedTabCount - 1];
|
|
||||||
moveBefore = false;
|
|
||||||
}
|
}
|
||||||
-
|
-
|
||||||
|
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ element = element.group;
|
||||||
|
+ }
|
||||||
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
|
if (element.pinned && !targetElement?.pinned) {
|
||||||
|
targetElement = this.tabs[this.pinnedTabCount - 1];
|
||||||
|
@@ -6109,7 +6276,13 @@
|
||||||
|
moveBefore = true;
|
||||||
|
}
|
||||||
|
|
||||||
+ if (targetElement?.group?.hasAttribute("split-view-group")) {
|
+ if (targetElement?.group?.hasAttribute("split-view-group")) {
|
||||||
+ targetElement = targetElement.group;
|
+ targetElement = targetElement.group;
|
||||||
+ }
|
+ }
|
||||||
let getContainer = () => {
|
let getContainer = () => {
|
||||||
+ if (tab.hasAttribute("zen-essential")) {
|
+ if (element.hasAttribute("zen-essential")) {
|
||||||
+ return document.getElementById("zen-essentials-container");
|
+ return ZenWorkspaces.getEssentialsSection(element);
|
||||||
+ }
|
+ }
|
||||||
if (tab.pinned && this.tabContainer.verticalMode) {
|
if (element.pinned && this.tabContainer.verticalMode) {
|
||||||
return this.tabContainer.verticalPinnedTabsContainer;
|
return this.tabContainer.verticalPinnedTabsContainer;
|
||||||
}
|
}
|
||||||
@@ -5937,7 +6119,7 @@
|
@@ -6169,7 +6342,7 @@
|
||||||
}
|
if (!this.isTab(aTab)) {
|
||||||
|
throw new Error("Can only move a tab into a tab group");
|
||||||
moveTabToGroup(aTab, aGroup) {
|
}
|
||||||
- if (aTab.pinned) {
|
- if (aTab.pinned) {
|
||||||
+ if (aTab.pinned != !!aGroup.pinned) {
|
+ if (aTab.pinned != !!aGroup.pinned) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||||
@@ -5961,6 +6143,10 @@
|
@@ -6263,6 +6436,10 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
@@ -695,16 +656,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||||
// changed.
|
// changed.
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
@@ -6015,7 +6201,7 @@
|
@@ -7080,7 +7257,7 @@
|
||||||
createLazyBrowser,
|
|
||||||
};
|
|
||||||
|
|
||||||
- let numPinned = this.pinnedTabCount;
|
|
||||||
+ let numPinned = this._numVisiblePinTabs;
|
|
||||||
if (aIndex < numPinned || (aTab.pinned && aIndex == numPinned)) {
|
|
||||||
params.pinned = true;
|
|
||||||
}
|
|
||||||
@@ -6765,7 +6951,7 @@
|
|
||||||
// preventDefault(). It will still raise the window if appropriate.
|
// preventDefault(). It will still raise the window if appropriate.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -713,7 +665,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
window.focus();
|
window.focus();
|
||||||
aEvent.preventDefault();
|
aEvent.preventDefault();
|
||||||
break;
|
break;
|
||||||
@@ -7671,6 +7857,7 @@
|
@@ -7981,6 +8158,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
@@ -721,7 +673,7 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
}
|
}
|
||||||
@@ -8640,7 +8827,7 @@ var TabContextMenu = {
|
@@ -8954,7 +9132,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !this.multiselected;
|
!this.contextTab.pinned || !this.multiselected;
|
||||||
@@ -730,20 +682,11 @@ index 5f406ea5d09273c9b70b84eee24c6267f88692f8..be8740305b28cfc7752ad8f48ca94e69
|
|||||||
// Move Tab items
|
// Move Tab items
|
||||||
let contextMoveTabOptions = document.getElementById(
|
let contextMoveTabOptions = document.getElementById(
|
||||||
"context_moveTabOptions"
|
"context_moveTabOptions"
|
||||||
@@ -8674,7 +8861,7 @@ var TabContextMenu = {
|
@@ -9223,6 +9401,7 @@ var TabContextMenu = {
|
||||||
let isFirstTab =
|
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||||
!this.contextTabs[0].group &&
|
});
|
||||||
(this.contextTabs[0] == visibleTabs[0] ||
|
|
||||||
- this.contextTabs[0] == visibleTabs[gBrowser.pinnedTabCount]);
|
|
||||||
+ this.contextTabs[0] == visibleTabs[gBrowser._numVisiblePinTabs]);
|
|
||||||
contextMoveTabToStart.disabled = isFirstTab && allSelectedTabsAdjacent;
|
|
||||||
|
|
||||||
document.getElementById("context_openTabInWindow").disabled =
|
|
||||||
@@ -8904,6 +9091,7 @@ var TabContextMenu = {
|
|
||||||
if (this.contextTab.multiselected) {
|
|
||||||
gBrowser.removeMultiSelectedTabs();
|
|
||||||
} else {
|
} else {
|
||||||
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
|
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
|
||||||
gBrowser.removeTab(this.contextTab, { animate: true });
|
gBrowser.removeTab(this.contextTab, {
|
||||||
}
|
animate: true,
|
||||||
},
|
telemetrySource: gBrowser.TabMetrics.METRIC_SOURCE.TAB_STRIP,
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc977c8415 100644
|
index ef9c0389ec926e6bc01c0dc3b883beceaf1f7d43..2885d896c4026278dfcb309f12230d6f86275ada 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabs.js
|
--- a/browser/components/tabbrowser/content/tabs.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||||
@@ -93,7 +93,7 @@
|
@@ -83,7 +83,7 @@
|
||||||
};
|
};
|
||||||
this.arrowScrollbox._canScrollToElement = element => {
|
this.arrowScrollbox._canScrollToElement = element => {
|
||||||
if (isTab(element)) {
|
if (isTab(element)) {
|
||||||
@@ -11,7 +11,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
@@ -347,7 +347,7 @@
|
@@ -342,7 +342,7 @@
|
||||||
// and we're not hitting the scroll buttons.
|
// and we're not hitting the scroll buttons.
|
||||||
if (
|
if (
|
||||||
event.button != 0 ||
|
event.button != 0 ||
|
||||||
@@ -20,7 +20,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
event.composedTarget.localName == "toolbarbutton"
|
event.composedTarget.localName == "toolbarbutton"
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
@@ -396,6 +396,7 @@
|
@@ -391,6 +391,7 @@
|
||||||
// Reset the "ignored click" flag
|
// Reset the "ignored click" flag
|
||||||
target._ignoredCloseButtonClicks = false;
|
target._ignoredCloseButtonClicks = false;
|
||||||
}
|
}
|
||||||
@@ -28,8 +28,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Protects from close-tab-button errant doubleclick:
|
/* Protects from close-tab-button errant doubleclick:
|
||||||
@@ -693,7 +694,7 @@
|
@@ -692,7 +693,7 @@
|
||||||
if (this.#isContainerVerticalPinnedExpanded(tab)) {
|
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||||
// Set this before adjusting dragged tab's position
|
// Set this before adjusting dragged tab's position
|
||||||
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
||||||
@@ -37,7 +37,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let tabsPerRow = 0;
|
let tabsPerRow = 0;
|
||||||
let position = 0;
|
let position = 0;
|
||||||
for (let pinnedTab of pinnedTabs) {
|
for (let pinnedTab of pinnedTabs) {
|
||||||
@@ -899,6 +900,10 @@
|
@@ -764,7 +765,7 @@
|
||||||
|
} else if (isTabGroupLabel(tab) && !tab.group.collapsed) {
|
||||||
|
this._lockTabSizing();
|
||||||
|
this.#keepTabSizeLocked = true;
|
||||||
|
- tab.group.collapsed = true;
|
||||||
|
+ tab.group.collapsed = !tab.group.hasAttribute("split-view-group");
|
||||||
|
expandGroupOnDrop = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -913,6 +914,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
@@ -47,8 +56,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
+ }
|
+ }
|
||||||
if (
|
if (
|
||||||
(effects == "move" || effects == "copy") &&
|
(effects == "move" || effects == "copy") &&
|
||||||
this == draggedTab.container &&
|
document == draggedTab.ownerDocument &&
|
||||||
@@ -1012,6 +1017,18 @@
|
@@ -1069,6 +1074,18 @@
|
||||||
|
|
||||||
this._tabDropIndicator.hidden = true;
|
this._tabDropIndicator.hidden = true;
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
@@ -60,14 +69,14 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||||
+
|
+
|
||||||
+ if (moved) {
|
+ if (moved) {
|
||||||
+ this._finishMoveTogetherSelectedTabs(draggedTab);
|
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
if (draggedTab && dropEffect == "copy") {
|
if (draggedTab && dropEffect == "copy") {
|
||||||
// copy the dropped tab (wherever it's from)
|
let duplicatedDraggedTab;
|
||||||
let newIndex = this._getDropIndex(event);
|
let duplicatedTabs = [];
|
||||||
@@ -1050,10 +1067,11 @@
|
@@ -1108,10 +1125,11 @@
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
let isPinned = draggedTab.pinned;
|
let isPinned = draggedTab.pinned;
|
||||||
@@ -83,8 +92,8 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
);
|
);
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||||
@@ -1129,7 +1147,7 @@
|
@@ -1203,7 +1221,7 @@
|
||||||
tab.removeAttribute("tabdrop-samewindow");
|
item.removeAttribute("tabdrop-samewindow");
|
||||||
resolve();
|
resolve();
|
||||||
};
|
};
|
||||||
- if (gReduceMotion) {
|
- if (gReduceMotion) {
|
||||||
@@ -92,22 +101,19 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
postTransitionCleanup();
|
postTransitionCleanup();
|
||||||
} else {
|
} else {
|
||||||
let onTransitionEnd = transitionendEvent => {
|
let onTransitionEnd = transitionendEvent => {
|
||||||
@@ -1246,7 +1264,7 @@
|
@@ -1327,6 +1345,7 @@
|
||||||
return;
|
|
||||||
}
|
let nextItem = this.ariaFocusableItems[newIndex];
|
||||||
}
|
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||||
-
|
|
||||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||||
gBrowser.loadTabs(urls, {
|
gBrowser.loadTabs(urls, {
|
||||||
inBackground,
|
inBackground,
|
||||||
replace,
|
replace,
|
||||||
@@ -1276,13 +1294,25 @@
|
@@ -1359,6 +1378,17 @@
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- this._finishMoveTogetherSelectedTabs(draggedTab);
|
|
||||||
this._finishAnimateTabMove();
|
|
||||||
|
|
||||||
|
this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
|
this.finishAnimateTabMove();
|
||||||
|
+
|
||||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||||
+ if (moved) {
|
+ if (moved) {
|
||||||
@@ -118,18 +124,10 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ this._finishMoveTogetherSelectedTabs(draggedTab);
|
this.#expandGroupOnDrop(draggedTab);
|
||||||
+
|
|
||||||
if (
|
if (
|
||||||
dt.mozUserCancelled ||
|
@@ -1582,7 +1612,7 @@
|
||||||
dt.dropEffect != "none" ||
|
|
||||||
- this._isCustomizing
|
|
||||||
+ this._isCustomizing ||
|
|
||||||
+ draggedTab.pinned
|
|
||||||
) {
|
|
||||||
delete draggedTab._dragData;
|
|
||||||
return;
|
|
||||||
@@ -1504,7 +1534,7 @@
|
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
@@ -138,7 +136,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1524,29 +1554,41 @@
|
@@ -1606,29 +1636,41 @@
|
||||||
if (this.#allTabs) {
|
if (this.#allTabs) {
|
||||||
return this.#allTabs;
|
return this.#allTabs;
|
||||||
}
|
}
|
||||||
@@ -158,7 +156,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
this.#allTabs = [
|
this.#allTabs = [
|
||||||
- ...this.verticalPinnedTabsContainer.children,
|
- ...this.verticalPinnedTabsContainer.children,
|
||||||
+ ...document.getElementById("zen-essentials-container").children, ...this.verticalPinnedTabsContainer.children,
|
+ ...ZenWorkspaces.getCurrentEssentialsContainer().children, ...this.verticalPinnedTabsContainer.children,
|
||||||
...children,
|
...children,
|
||||||
];
|
];
|
||||||
+ const lastPinnedTabIdx = gBrowser.pinnedTabCount;
|
+ const lastPinnedTabIdx = gBrowser.pinnedTabCount;
|
||||||
@@ -188,7 +186,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1566,7 +1608,7 @@
|
@@ -1648,7 +1690,7 @@
|
||||||
*/
|
*/
|
||||||
get visibleTabs() {
|
get visibleTabs() {
|
||||||
if (!this.#visibleTabs) {
|
if (!this.#visibleTabs) {
|
||||||
@@ -197,7 +195,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
return this.#visibleTabs;
|
return this.#visibleTabs;
|
||||||
}
|
}
|
||||||
@@ -1601,23 +1643,18 @@
|
@@ -1683,23 +1725,18 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let elementIndex = 0;
|
let elementIndex = 0;
|
||||||
@@ -213,7 +211,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
let focusableItems = [];
|
let focusableItems = [];
|
||||||
- for (let child of children) {
|
- for (let child of children) {
|
||||||
+ for (let child of [...document.getElementById("zen-essentials-container").children, ...verticalPinnedTabsContainer.children, ...children]) {
|
+ for (let child of [...ZenWorkspaces.getCurrentEssentialsContainer().children, ...verticalPinnedTabsContainer.children, ...children]) {
|
||||||
if (isTab(child) && child.visible) {
|
if (isTab(child) && child.visible) {
|
||||||
child.elementIndex = elementIndex++;
|
child.elementIndex = elementIndex++;
|
||||||
focusableItems.push(child);
|
focusableItems.push(child);
|
||||||
@@ -225,8 +223,15 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||||
visibleTabsInGroup.forEach(tab => {
|
visibleTabsInGroup.forEach(tab => {
|
||||||
tab.elementIndex = elementIndex++;
|
tab.elementIndex = elementIndex++;
|
||||||
@@ -1627,10 +1664,7 @@
|
@@ -1707,12 +1744,14 @@
|
||||||
|
focusableItems.push(...visibleTabsInGroup);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
+ let glanceTab = child.querySelector("tab[zen-glance-tab]");
|
||||||
|
+ if (isTab(child) && glanceTab) {
|
||||||
|
+ glanceTab.elementIndex = elementIndex++;
|
||||||
|
+ focusableItems.push(glanceTab);
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
|
|
||||||
- this.#focusableItems = [
|
- this.#focusableItems = [
|
||||||
@@ -237,7 +242,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
return this.#focusableItems;
|
return this.#focusableItems;
|
||||||
}
|
}
|
||||||
@@ -1638,6 +1672,7 @@
|
@@ -1720,6 +1759,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
@@ -245,18 +250,18 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1652,8 +1687,8 @@
|
@@ -1734,8 +1774,8 @@
|
||||||
#isContainerVerticalPinnedExpanded(tab) {
|
#isContainerVerticalPinnedGrid(tab) {
|
||||||
return (
|
return (
|
||||||
this.verticalMode &&
|
this.verticalMode &&
|
||||||
- tab.hasAttribute("pinned") &&
|
- tab.hasAttribute("pinned") &&
|
||||||
- this.hasAttribute("expanded")
|
- this.hasAttribute("expanded") &&
|
||||||
+ (tab.hasAttribute("zen-essential")) &&
|
+ (tab.hasAttribute("zen-essential")) &&
|
||||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded"))
|
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||||
|
!this.expandOnHover
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -1751,7 +1791,7 @@
|
||||||
@@ -1668,7 +1703,7 @@
|
|
||||||
|
|
||||||
if (node == null) {
|
if (node == null) {
|
||||||
// We have a container for non-tab elements at the end of the scrollbox.
|
// We have a container for non-tab elements at the end of the scrollbox.
|
||||||
@@ -265,7 +270,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -1763,7 +1798,7 @@
|
@@ -1846,7 +1886,7 @@
|
||||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||||
// Attach the long click popup to all of them.
|
// Attach the long click popup to all of them.
|
||||||
@@ -274,16 +279,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -1846,7 +1881,7 @@
|
@@ -1941,10 +1981,12 @@
|
||||||
let rect = ele => {
|
|
||||||
return window.windowUtils.getBoundsWithoutFlushing(ele);
|
|
||||||
};
|
|
||||||
- let tab = this.visibleTabs[gBrowser.pinnedTabCount];
|
|
||||||
+ let tab = this.visibleTabs[gBrowser._numVisiblePinTabs];
|
|
||||||
if (tab && rect(tab).width <= this._tabClipWidth) {
|
|
||||||
this.setAttribute("closebuttons", "activetab");
|
|
||||||
} else {
|
|
||||||
@@ -1858,10 +1893,12 @@
|
|
||||||
|
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
@@ -296,34 +292,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1873,7 +1910,7 @@
|
@@ -2085,16 +2127,15 @@
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- let tabs = this.visibleTabs;
|
|
||||||
+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
|
||||||
if (!tabs.length) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@@ -1909,7 +1946,7 @@
|
|
||||||
if (isEndTab && !this._hasTabTempMaxWidth) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabs;
|
|
||||||
// Force tabs to stay the same width, unless we're closing the last tab,
|
|
||||||
// which case we need to let them expand just enough so that the overall
|
|
||||||
// tabbar width is the same.
|
|
||||||
@@ -1924,7 +1961,7 @@
|
|
||||||
let tabsToReset = [];
|
|
||||||
for (let i = numPinned; i < tabs.length; i++) {
|
|
||||||
let tab = tabs[i];
|
|
||||||
- tab.style.setProperty("max-width", aTabWidth, "important");
|
|
||||||
+ //tab.style.setProperty("max-width", aTabWidth, "important");
|
|
||||||
if (!isEndTab) {
|
|
||||||
// keep tabs the same width
|
|
||||||
tab.style.transition = "none";
|
|
||||||
@@ -1990,16 +2027,15 @@
|
|
||||||
// Move pinned tabs to another container when the tabstrip is toggled to vertical
|
// Move pinned tabs to another container when the tabstrip is toggled to vertical
|
||||||
// and when session restore code calls _positionPinnedTabs; update styling whenever
|
// and when session restore code calls _positionPinnedTabs; update styling whenever
|
||||||
// the number of pinned tabs changes.
|
// the number of pinned tabs changes.
|
||||||
@@ -337,16 +306,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
- let tabs = this.visibleTabs;
|
- let tabs = this.visibleTabs;
|
||||||
+ if (!ZenWorkspaces._hasInitializedTabsStrip) return;
|
+ if (!ZenWorkspaces._hasInitializedTabsStrip) return;
|
||||||
+ let count = ZenWorkspaces.makeSurePinTabIsInCorrectPosition();
|
+ let count = ZenWorkspaces.makeSurePinTabIsInCorrectPosition();
|
||||||
+ if (gBrowser.pinnedTabCount !== (verticalTabsContainer.children.length - count - 1 + document.getElementById("zen-essentials-container").children.length)) {
|
+ if (gBrowser.pinnedTabCount !== (verticalTabsContainer.children.length - count - 1 + ZenWorkspaces.getCurrentEssentialsContainer().children.length)) {
|
||||||
+ let tabs = this.allTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
+ let tabs = this.allTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||||
for (let i = 0; i < numPinned; i++) {
|
for (let i = 0; i < numPinned; i++) {
|
||||||
tabs[i].style.marginInlineStart = "";
|
tabs[i].style.marginInlineStart = "";
|
||||||
- verticalTabsContainer.appendChild(tabs[i]);
|
- verticalTabsContainer.appendChild(tabs[i]);
|
||||||
+ tabs[i].hasAttribute("zen-essential") ? document.getElementById("zen-essentials-container").appendChild(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i]) : verticalTabsContainer.insertBefore(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i], verticalTabsContainer.lastChild);
|
+ tabs[i].hasAttribute("zen-essential") ? ZenWorkspaces.getCurrentEssentialsContainer().appendChild(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i]) : verticalTabsContainer.insertBefore(tabs[i].group?.hasAttribute("split-view-group") ? tabs[i].group : tabs[i], verticalTabsContainer.lastChild);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2007,9 +2043,7 @@
|
@@ -2102,9 +2143,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_resetVerticalPinnedTabs() {
|
_resetVerticalPinnedTabs() {
|
||||||
@@ -357,18 +326,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
if (!verticalTabsContainer.children.length) {
|
if (!verticalTabsContainer.children.length) {
|
||||||
return;
|
return;
|
||||||
@@ -2022,8 +2056,8 @@
|
@@ -2117,7 +2156,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_positionPinnedTabs() {
|
_positionPinnedTabs() {
|
||||||
- let tabs = this.visibleTabs;
|
- let tabs = this.visibleTabs;
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
+ let tabs = this.visibleTabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabs;
|
let numPinned = gBrowser.pinnedTabCount;
|
||||||
let absPositionHorizontalTabs =
|
let absPositionHorizontalTabs =
|
||||||
this.overflowing && tabs.length > numPinned && numPinned > 0;
|
this.overflowing && tabs.length > numPinned && numPinned > 0;
|
||||||
|
@@ -2127,7 +2166,7 @@
|
||||||
@@ -2032,7 +2066,7 @@
|
|
||||||
|
|
||||||
if (this.verticalMode) {
|
if (this.verticalMode) {
|
||||||
this._updateVerticalPinnedTabs();
|
this._updateVerticalPinnedTabs();
|
||||||
@@ -377,7 +344,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let layoutData = this._pinnedTabsLayoutCache;
|
let layoutData = this._pinnedTabsLayoutCache;
|
||||||
let uiDensity = document.documentElement.getAttribute("uidensity");
|
let uiDensity = document.documentElement.getAttribute("uidensity");
|
||||||
if (!layoutData || layoutData.uiDensity != uiDensity) {
|
if (!layoutData || layoutData.uiDensity != uiDensity) {
|
||||||
@@ -2104,7 +2138,7 @@
|
@@ -2191,7 +2230,7 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -386,7 +353,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
@@ -2112,7 +2146,7 @@
|
@@ -2199,7 +2238,7 @@
|
||||||
dragData.animLastScreenX = screenX;
|
dragData.animLastScreenX = screenX;
|
||||||
|
|
||||||
let { width: tabWidth, height: tabHeight } =
|
let { width: tabWidth, height: tabHeight } =
|
||||||
@@ -395,14 +362,16 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let shiftSizeX = tabWidth * movingTabs.length;
|
let shiftSizeX = tabWidth * movingTabs.length;
|
||||||
let shiftSizeY = tabHeight;
|
let shiftSizeY = tabHeight;
|
||||||
dragData.tabWidth = tabWidth;
|
dragData.tabWidth = tabWidth;
|
||||||
@@ -2296,11 +2330,15 @@
|
@@ -2374,12 +2413,16 @@
|
||||||
|
|
||||||
this.#clearDragOverCreateGroupTimer();
|
this.#clearDragOverCreateGroupTimer();
|
||||||
|
|
||||||
let isPinned = draggedTab.pinned;
|
- let isPinned = draggedTab.pinned;
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
- let numPinned = gBrowser.pinnedTabCount;
|
||||||
- let tabs = this.ariaFocusableItems.slice(
|
- let tabs = this.ariaFocusableItems.slice(
|
||||||
- isPinned ? 0 : numPinned,
|
- isPinned ? 0 : numPinned,
|
||||||
- isPinned ? numPinned : undefined
|
- isPinned ? numPinned : undefined
|
||||||
|
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||||
+ let tabs = this.ariaFocusableItems.filter(tab => !tab.hasAttribute("zen-glance-tab")).slice(
|
+ let tabs = this.ariaFocusableItems.filter(tab => !tab.hasAttribute("zen-glance-tab")).slice(
|
||||||
@@ -415,7 +384,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
|
|
||||||
if (this.#rtlMode) {
|
if (this.#rtlMode) {
|
||||||
tabs.reverse();
|
tabs.reverse();
|
||||||
@@ -2314,7 +2352,7 @@
|
@@ -2393,7 +2436,7 @@
|
||||||
let size = this.verticalMode ? "height" : "width";
|
let size = this.verticalMode ? "height" : "width";
|
||||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||||
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
let scrollDirection = this.verticalMode ? "scrollTop" : "scrollLeft";
|
||||||
@@ -424,7 +393,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let translateX = event.screenX - dragData.screenX;
|
let translateX = event.screenX - dragData.screenX;
|
||||||
let translateY = event.screenY - dragData.screenY;
|
let translateY = event.screenY - dragData.screenY;
|
||||||
|
|
||||||
@@ -2328,6 +2366,12 @@
|
@@ -2407,10 +2450,19 @@
|
||||||
let lastTab = tabs.at(-1);
|
let lastTab = tabs.at(-1);
|
||||||
let lastMovingTab = movingTabs.at(-1);
|
let lastMovingTab = movingTabs.at(-1);
|
||||||
let firstMovingTab = movingTabs[0];
|
let firstMovingTab = movingTabs[0];
|
||||||
@@ -437,20 +406,24 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||||
@@ -2348,7 +2392,11 @@
|
let shiftSize = lastMovingTabScreen - firstMovingTabScreen;
|
||||||
translate = Math.min(Math.max(translate, firstBound), lastBound);
|
+ if (firstMovingTab.hasAttribute("split-view-group")) {
|
||||||
|
+ shiftSize += 5; // A hack to allow more space for the group
|
||||||
for (let tab of movingTabs) {
|
+ }
|
||||||
- tab.style.transform = `${translateAxis}(${translate}px)`;
|
let translate = screen - dragData[screenAxis];
|
||||||
+ if (tab.group?.hasAttribute("split-view-group")) {
|
if (!isPinned) {
|
||||||
+ tab.group.style.transform = `${translateAxis}(${translate}px)`;
|
translate +=
|
||||||
+ } else {
|
@@ -2431,6 +2483,9 @@
|
||||||
+ tab.style.transform = `${translateAxis}(${translate}px)`;
|
// Shift the `.tab-group-label-container` to shift the label element.
|
||||||
|
item = item.parentElement;
|
||||||
|
}
|
||||||
|
+ if (item.parentElement?.hasAttribute("split-view-group")) {
|
||||||
|
+ item = item.parentElement;
|
||||||
+ }
|
+ }
|
||||||
|
item.style.transform = `${translateAxis}(${translate}px)`;
|
||||||
}
|
}
|
||||||
|
|
||||||
dragData.translatePos = translate;
|
@@ -2568,6 +2623,9 @@
|
||||||
@@ -2485,6 +2533,9 @@
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let element = tabs[mid];
|
let element = tabs[mid];
|
||||||
@@ -460,7 +433,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let elementForSize = isTabGroupLabel(element)
|
let elementForSize = isTabGroupLabel(element)
|
||||||
? element.parentElement
|
? element.parentElement
|
||||||
: element;
|
: element;
|
||||||
@@ -2507,6 +2558,10 @@
|
@@ -2590,6 +2648,10 @@
|
||||||
if (!dropElement) {
|
if (!dropElement) {
|
||||||
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
dropElement = this.ariaFocusableItems[oldDropElementIndex];
|
||||||
}
|
}
|
||||||
@@ -471,7 +444,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
let newDropElementIndex = dropElement
|
let newDropElementIndex = dropElement
|
||||||
? dropElement.elementIndex
|
? dropElement.elementIndex
|
||||||
: oldDropElementIndex;
|
: oldDropElementIndex;
|
||||||
@@ -2515,7 +2570,7 @@
|
@@ -2598,7 +2660,7 @@
|
||||||
let shouldCreateGroupOnDrop;
|
let shouldCreateGroupOnDrop;
|
||||||
let dropBefore;
|
let dropBefore;
|
||||||
if (dropElement) {
|
if (dropElement) {
|
||||||
@@ -480,11 +453,11 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
? dropElement.parentElement
|
? dropElement.parentElement
|
||||||
: dropElement;
|
: dropElement;
|
||||||
|
|
||||||
@@ -2566,12 +2621,12 @@
|
@@ -2660,12 +2722,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- if (gBrowser._tabGroupsEnabled && !isPinned) {
|
- if (gBrowser._tabGroupsEnabled && isTab(draggedTab) && !isPinned) {
|
||||||
+ if (true) {
|
+ if (true) {
|
||||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||||
|
|
||||||
@@ -495,7 +468,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
dropElement != draggedTab &&
|
dropElement != draggedTab &&
|
||||||
isTab(dropElement) &&
|
isTab(dropElement) &&
|
||||||
!dropElement?.group &&
|
!dropElement?.group &&
|
||||||
@@ -2639,7 +2694,7 @@
|
@@ -2735,7 +2797,7 @@
|
||||||
// Shift background tabs to leave a gap where the dragged tab
|
// Shift background tabs to leave a gap where the dragged tab
|
||||||
// would currently be dropped.
|
// would currently be dropped.
|
||||||
for (let item of tabs) {
|
for (let item of tabs) {
|
||||||
@@ -504,7 +477,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2648,6 +2703,9 @@
|
@@ -2744,6 +2806,9 @@
|
||||||
if (isTabGroupLabel(item)) {
|
if (isTabGroupLabel(item)) {
|
||||||
// Shift the `.tab-group-label-container` to shift the label element.
|
// Shift the `.tab-group-label-container` to shift the label element.
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
@@ -514,19 +487,19 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
}
|
}
|
||||||
item.style.transform = transform;
|
item.style.transform = transform;
|
||||||
}
|
}
|
||||||
@@ -2697,8 +2755,9 @@
|
@@ -2796,8 +2861,9 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
- _finishAnimateTabMove() {
|
- finishAnimateTabMove() {
|
||||||
- if (!this.hasAttribute("movingtab")) {
|
- if (!this.#isMovingTab()) {
|
||||||
+ _finishAnimateTabMove(always = false) {
|
+ finishAnimateTabMove(always = false) {
|
||||||
+ gZenPinnedTabManager.removeTabContainersDragoverClass();
|
+ gZenPinnedTabManager.removeTabContainersDragoverClass();
|
||||||
+ if (!this.hasAttribute("movingtab") && !always) {
|
+ if (!this.#isMovingTab() && !always) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2711,6 +2770,12 @@
|
@@ -2809,6 +2875,12 @@
|
||||||
item = item.parentElement;
|
item = item.parentElement;
|
||||||
}
|
}
|
||||||
item.style.transform = "";
|
item.style.transform = "";
|
||||||
@@ -539,7 +512,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
item.removeAttribute("dragover-createGroup");
|
item.removeAttribute("dragover-createGroup");
|
||||||
}
|
}
|
||||||
this.removeAttribute("movingtab-createGroup");
|
this.removeAttribute("movingtab-createGroup");
|
||||||
@@ -2754,7 +2819,7 @@
|
@@ -2855,7 +2927,7 @@
|
||||||
let postTransitionCleanup = () => {
|
let postTransitionCleanup = () => {
|
||||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||||
};
|
};
|
||||||
@@ -548,7 +521,7 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
postTransitionCleanup();
|
postTransitionCleanup();
|
||||||
} else {
|
} else {
|
||||||
let onTransitionEnd = transitionendEvent => {
|
let onTransitionEnd = transitionendEvent => {
|
||||||
@@ -2924,7 +2989,7 @@
|
@@ -3028,7 +3100,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
@@ -557,3 +530,13 @@ index 0fbdbf3aefc467880e6b0bae2615cb145735cb0f..75a30478387494c06e5c8131f55ba5dc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3154,6 +3226,9 @@
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ target = target.group.labelElement;
|
||||||
|
+ }
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862f1d17b8d 100644
|
index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..100f96cb58499dbae490b3772effef0f79aec75b 100644
|
||||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
@@ -67,6 +67,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
@@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||||
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
|
const SEARCH_BUTTON_CLASS = "urlbar-search-button";
|
||||||
|
|
||||||
@@ -348,7 +355,11 @@ export class UrlbarInput {
|
@@ -349,7 +356,11 @@ export class UrlbarInput {
|
||||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
||||||
// event but does not set the primary selection.
|
// event but does not set the primary selection.
|
||||||
this._suppressPrimaryAdjustment = true;
|
this._suppressPrimaryAdjustment = true;
|
||||||
@@ -28,7 +28,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
this._suppressPrimaryAdjustment = false;
|
this._suppressPrimaryAdjustment = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -424,6 +435,10 @@ export class UrlbarInput {
|
@@ -425,6 +436,10 @@ export class UrlbarInput {
|
||||||
hideSearchTerms = false,
|
hideSearchTerms = false,
|
||||||
isSameDocument = false
|
isSameDocument = false
|
||||||
) {
|
) {
|
||||||
@@ -39,7 +39,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
// We only need to update the searchModeUI on tab switch conditionally
|
// We only need to update the searchModeUI on tab switch conditionally
|
||||||
// as we only persist searchMode with ScotchBonnet enabled.
|
// as we only persist searchMode with ScotchBonnet enabled.
|
||||||
if (
|
if (
|
||||||
@@ -697,8 +712,11 @@ export class UrlbarInput {
|
@@ -698,8 +713,11 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -52,7 +52,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1092,7 +1110,11 @@ export class UrlbarInput {
|
@@ -1093,7 +1111,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.#providesSearchMode(result)) {
|
if (!this.#providesSearchMode(result)) {
|
||||||
@@ -65,7 +65,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.controller.recordSelectedResult(event, result);
|
this.controller.recordSelectedResult(event, result);
|
||||||
@@ -2124,6 +2146,10 @@ export class UrlbarInput {
|
@@ -2125,6 +2147,10 @@ export class UrlbarInput {
|
||||||
await this.#updateLayoutBreakoutDimensions();
|
await this.#updateLayoutBreakoutDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,7 +76,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
startLayoutExtend() {
|
startLayoutExtend() {
|
||||||
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
||||||
// Do not expand if the Urlbar does not support being expanded or it is
|
// Do not expand if the Urlbar does not support being expanded or it is
|
||||||
@@ -2146,6 +2172,11 @@ export class UrlbarInput {
|
@@ -2147,6 +2173,11 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.setAttribute("breakout-extend", "true");
|
this.setAttribute("breakout-extend", "true");
|
||||||
|
|
||||||
@@ -88,7 +88,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
// Enable the animation only after the first extend call to ensure it
|
// Enable the animation only after the first extend call to ensure it
|
||||||
// doesn't run when opening a new window.
|
// doesn't run when opening a new window.
|
||||||
if (!this.hasAttribute("breakout-extend-animate")) {
|
if (!this.hasAttribute("breakout-extend-animate")) {
|
||||||
@@ -2165,6 +2196,19 @@ export class UrlbarInput {
|
@@ -2166,6 +2197,19 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
this.removeAttribute("breakout-extend");
|
this.removeAttribute("breakout-extend");
|
||||||
this.#updateTextboxPosition();
|
this.#updateTextboxPosition();
|
||||||
}
|
}
|
||||||
@@ -2997,7 +3041,7 @@ export class UrlbarInput {
|
@@ -2998,7 +3042,7 @@ export class UrlbarInput {
|
||||||
*/
|
*/
|
||||||
_trimValue(val) {
|
_trimValue(val) {
|
||||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||||
@@ -117,7 +117,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
: val;
|
: val;
|
||||||
// Only trim value if the directionality doesn't change to RTL and we're not
|
// Only trim value if the directionality doesn't change to RTL and we're not
|
||||||
// showing a strikeout https protocol.
|
// showing a strikeout https protocol.
|
||||||
@@ -3367,6 +3411,10 @@ export class UrlbarInput {
|
@@ -3368,6 +3412,10 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
reuseEmpty = true;
|
reuseEmpty = true;
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
if (
|
if (
|
||||||
where == "tab" &&
|
where == "tab" &&
|
||||||
reuseEmpty &&
|
reuseEmpty &&
|
||||||
@@ -3374,6 +3422,9 @@ export class UrlbarInput {
|
@@ -3375,6 +3423,9 @@ export class UrlbarInput {
|
||||||
) {
|
) {
|
||||||
where = "current";
|
where = "current";
|
||||||
}
|
}
|
||||||
@@ -138,7 +138,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
return where;
|
return where;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3625,7 +3676,7 @@ export class UrlbarInput {
|
@@ -3626,7 +3677,7 @@ export class UrlbarInput {
|
||||||
pasteAndGo.setAttribute("anonid", "paste-and-go");
|
pasteAndGo.setAttribute("anonid", "paste-and-go");
|
||||||
pasteAndGo.addEventListener("command", () => {
|
pasteAndGo.addEventListener("command", () => {
|
||||||
this._suppressStartQuery = true;
|
this._suppressStartQuery = true;
|
||||||
@@ -147,7 +147,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
this.select();
|
this.select();
|
||||||
this.window.goDoCommand("cmd_paste");
|
this.window.goDoCommand("cmd_paste");
|
||||||
this.setResultForCurrentValue(null);
|
this.setResultForCurrentValue(null);
|
||||||
@@ -3638,7 +3689,6 @@ export class UrlbarInput {
|
@@ -3639,7 +3690,6 @@ export class UrlbarInput {
|
||||||
contextMenu.addEventListener("popupshowing", () => {
|
contextMenu.addEventListener("popupshowing", () => {
|
||||||
// Close the results pane when the input field contextual menu is open,
|
// Close the results pane when the input field contextual menu is open,
|
||||||
// because paste and go doesn't want a result selection.
|
// because paste and go doesn't want a result selection.
|
||||||
@@ -155,7 +155,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
|
|
||||||
let controller =
|
let controller =
|
||||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||||
@@ -4048,6 +4098,11 @@ export class UrlbarInput {
|
@@ -4053,6 +4103,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_click(event) {
|
_on_click(event) {
|
||||||
@@ -167,7 +167,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
if (
|
if (
|
||||||
event.target == this.inputField ||
|
event.target == this.inputField ||
|
||||||
event.target == this._inputContainer ||
|
event.target == this._inputContainer ||
|
||||||
@@ -4119,7 +4174,7 @@ export class UrlbarInput {
|
@@ -4124,7 +4179,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +176,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
this.view.autoOpen({ event });
|
this.view.autoOpen({ event });
|
||||||
} else {
|
} else {
|
||||||
if (this._untrimOnFocusAfterKeydown) {
|
if (this._untrimOnFocusAfterKeydown) {
|
||||||
@@ -4159,9 +4214,12 @@ export class UrlbarInput {
|
@@ -4164,9 +4219,12 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_mousedown(event) {
|
_on_mousedown(event) {
|
||||||
@@ -190,7 +190,7 @@ index 6de4c2ac873b1424abee118a143ac377f26beb80..23b4d238d767000b9f0de74cfc13c862
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
event.target != this.inputField &&
|
event.target != this.inputField &&
|
||||||
@@ -4171,8 +4229,8 @@ export class UrlbarInput {
|
@@ -4176,8 +4234,8 @@ export class UrlbarInput {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
index 0e6724f590490354cc4d4bde5176556f7e4b4a7c..bffc52488443d62de46abe5cbdac4504831c4a09 100644
|
index d5382623595de8daed8cd13ea2eb2de329a4bd92..8e160e0bb5a1cd626753feba2008a24e3bbd84cd 100644
|
||||||
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
@@ -610,7 +610,7 @@ export class UrlbarView {
|
@@ -609,7 +609,7 @@ export class UrlbarView {
|
||||||
!this.input.value ||
|
!this.input.value ||
|
||||||
this.input.getAttribute("pageproxystate") == "valid"
|
this.input.getAttribute("pageproxystate") == "valid"
|
||||||
) {
|
) {
|
||||||
|
@@ -1,13 +0,0 @@
|
|||||||
diff --git a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
|
||||||
index dcf192d0ab7323d69f1bf505971e57c98ad4397d..a4d88304786af35030391f71bc99eee6cf7c1a64 100644
|
|
||||||
--- a/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
|
||||||
+++ b/browser/extensions/newtab/content-src/components/CustomizeMenu/ContentSection/ContentSection.jsx
|
|
||||||
@@ -188,7 +188,7 @@ export class ContentSection extends React.PureComponent {
|
|
||||||
data-l10n-args='{"num": 4}'
|
|
||||||
/>
|
|
||||||
</select>
|
|
||||||
- {mayHaveSponsoredTopSites && (
|
|
||||||
+ {false && (
|
|
||||||
<div className="check-wrapper" role="presentation">
|
|
||||||
<input
|
|
||||||
id="sponsored-shortcuts"
|
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
diff --git a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||||
index df9d63c2713b4237d8acca93f108d5c788caed8d..a80cc02fdec6e1056d26a6b5a1cdc1a602e5cf2a 100644
|
index a325becabddda511204fc5bd2022edc332cdde7c..6bb29b21f1e6c1d6ea3d38d50f01148e0a51f0d7 100644
|
||||||
--- a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
--- a/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||||
+++ b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
+++ b/browser/extensions/newtab/lib/AboutPreferences.sys.mjs
|
||||||
@@ -34,7 +34,7 @@ const PREFS_BEFORE_SECTIONS = () => [
|
@@ -52,7 +52,7 @@ const PREFS_BEFORE_SECTIONS = () => [
|
||||||
titleString: "home-prefs-shortcuts-header",
|
titleString: "home-prefs-shortcuts-header",
|
||||||
descString: "home-prefs-shortcuts-description",
|
descString: "home-prefs-shortcuts-description",
|
||||||
get nestedPrefs() {
|
get nestedPrefs() {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
index b3d89213ec27151f05e9990d5a55c6e81ce3655f..3c485f616fa2daba62aacbdde2dfb3122e244821 100644
|
index 14183ad7165dc91126b4409b26f669409c4e9905..be979225b89b193b9e9c8903de5740dc04a8999f 100644
|
||||||
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
@@ -214,7 +214,7 @@ export const PREFS_CONFIG = new Map([
|
@@ -215,7 +215,7 @@ export const PREFS_CONFIG = new Map([
|
||||||
"showSponsoredTopSites",
|
"showSponsoredTopSites",
|
||||||
{
|
{
|
||||||
title: "Show sponsored top sites",
|
title: "Show sponsored top sites",
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
|
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
|
||||||
index c4428df9e1c43ba7a1dfefa2d55316023325d2db..191bc513862d5247e338c683b11ae891ab914479 100644
|
index 14bf18132eaee8a0c8fe6e108ac423de91a7d3e2..fa616654fdf8a29d59889227780a98f0f9dc9a20 100644
|
||||||
--- a/browser/modules/URILoadingHelper.sys.mjs
|
--- a/browser/modules/URILoadingHelper.sys.mjs
|
||||||
+++ b/browser/modules/URILoadingHelper.sys.mjs
|
+++ b/browser/modules/URILoadingHelper.sys.mjs
|
||||||
@@ -510,7 +510,7 @@ export const URILoadingHelper = {
|
@@ -516,7 +516,7 @@ export const URILoadingHelper = {
|
||||||
// page. If a load request bounces off for the currently selected tab,
|
// page. If a load request bounces off for the currently selected tab,
|
||||||
// we'll open a new tab instead.
|
// we'll open a new tab instead.
|
||||||
let tab = w.gBrowser.getTabForBrowser(targetBrowser);
|
let tab = w.gBrowser.getTabForBrowser(targetBrowser);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/BuiltInThemeConfig.sys.mjs b/browser/themes/BuiltInThemeConfig.sys.mjs
|
diff --git a/browser/themes/BuiltInThemeConfig.sys.mjs b/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||||
index 4e5a4f1795c18241d9143d159f7d040142e728d4..f4b0e9a7077076f2fbe8ac17fa6aadf586c6b37c 100644
|
index 081187147736f56abfe5866a69e00ac13a8dd940..9a980fe858c1a77af7634037aebc332d237e9c11 100644
|
||||||
--- a/browser/themes/BuiltInThemeConfig.sys.mjs
|
--- a/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||||
+++ b/browser/themes/BuiltInThemeConfig.sys.mjs
|
+++ b/browser/themes/BuiltInThemeConfig.sys.mjs
|
||||||
@@ -33,13 +33,6 @@ export const BuiltInThemeConfig = new Map([
|
@@ -33,13 +33,6 @@ export const BuiltInThemeConfig = new Map([
|
||||||
|
@@ -470,10 +470,33 @@ groupbox h2 {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.zenThemeMarketplaceItemHomepageButton {
|
||||||
|
width: 30px;
|
||||||
|
min-width: 0;
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: '';
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
width: 18px;
|
||||||
|
height: 18px;
|
||||||
|
background-image: url('chrome://browser/skin/home.svg');
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
fill: currentColor;
|
||||||
|
-moz-context-properties: fill, fill-opacity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.zenThemeMarketplaceItemConfigureButton {
|
.zenThemeMarketplaceItemConfigureButton {
|
||||||
width: 30px;
|
width: 30px;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
content: '';
|
content: '';
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52c16c5227 100644
|
index 6ca85d9d4d593271fe49138ea736bd96651c05f5..192acb662eaeaeb67df890de4c9681952b078526 100644
|
||||||
--- a/browser/themes/shared/tabbrowser/tabs.css
|
--- a/browser/themes/shared/tabbrowser/tabs.css
|
||||||
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
@@ -32,7 +32,7 @@
|
@@ -32,7 +32,7 @@
|
||||||
@@ -11,7 +11,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
--tab-hover-background-color: color-mix(in srgb, currentColor 11%, transparent);
|
--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-bgcolor: var(--toolbar-bgcolor);
|
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
||||||
@@ -214,8 +214,7 @@
|
@@ -210,8 +210,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
#tabbrowser-tabs[positionpinnedtabs] > #tabbrowser-arrowscrollbox > &[pinned] {
|
||||||
@@ -20,16 +20,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
+
|
+
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[movingtab] &:is([selected], [multiselected]) {
|
#tabbrowser-tabs[movingtab] &:is(:active, [multiselected]) {
|
||||||
@@ -254,7 +253,6 @@
|
@@ -257,7 +256,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not([uidensity=compact]) &[pinned] {
|
:root:not([uidensity=compact], [sidebar-expand-on-hover]) &[pinned] {
|
||||||
- padding: 0 10px;
|
- padding: 0 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
&:is([selected], [multiselected]) {
|
&:is([selected], [multiselected]) {
|
||||||
@@ -268,6 +266,7 @@
|
@@ -271,6 +269,7 @@
|
||||||
border-radius: inherit;
|
border-radius: inherit;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -37,7 +37,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -442,6 +441,7 @@
|
@@ -458,6 +457,7 @@
|
||||||
.tab-icon-image {
|
.tab-icon-image {
|
||||||
-moz-context-properties: fill, stroke;
|
-moz-context-properties: fill, stroke;
|
||||||
fill: currentColor;
|
fill: currentColor;
|
||||||
@@ -45,7 +45,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
|
|
||||||
/* Apply crisp rendering for favicons at exactly 2dppx resolution */
|
/* Apply crisp rendering for favicons at exactly 2dppx resolution */
|
||||||
@media (resolution: 2dppx) {
|
@media (resolution: 2dppx) {
|
||||||
@@ -523,7 +523,7 @@
|
@@ -557,7 +557,7 @@
|
||||||
z-index: 1; /* Overlay tab title */
|
z-index: 1; /* Overlay tab title */
|
||||||
|
|
||||||
#tabbrowser-tabs[orient=vertical] & {
|
#tabbrowser-tabs[orient=vertical] & {
|
||||||
@@ -54,7 +54,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[crashed] {
|
&[crashed] {
|
||||||
@@ -531,7 +531,7 @@
|
@@ -565,7 +565,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
||||||
@@ -63,7 +63,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
&[soundplaying] {
|
&[soundplaying] {
|
||||||
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
||||||
}
|
}
|
||||||
@@ -561,7 +561,7 @@
|
@@ -595,7 +595,7 @@
|
||||||
background-image: linear-gradient(var(--audio-overlay-extra-background)),
|
background-image: linear-gradient(var(--audio-overlay-extra-background)),
|
||||||
linear-gradient(var(--toolbox-bgcolor));
|
linear-gradient(var(--toolbox-bgcolor));
|
||||||
-moz-context-properties: fill;
|
-moz-context-properties: fill;
|
||||||
@@ -72,44 +72,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
color-scheme: var(--tab-selected-color-scheme);
|
color-scheme: var(--tab-selected-color-scheme);
|
||||||
border-radius: var(--border-radius-circle);
|
border-radius: var(--border-radius-circle);
|
||||||
|
|
||||||
@@ -593,7 +593,7 @@
|
@@ -1362,7 +1362,7 @@ tab-group {
|
||||||
}
|
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:is([soundplaying], [muted], [activemedia-blocked]),
|
|
||||||
- &[pinned]:is([soundplaying], [muted], [activemedia-blocked]),
|
|
||||||
+ &:is([soundplaying], [muted], [activemedia-blocked]),
|
|
||||||
&[crashed] {
|
|
||||||
display: revert;
|
|
||||||
}
|
|
||||||
@@ -607,7 +607,7 @@
|
|
||||||
--button-min-height-small: 24px;
|
|
||||||
--button-border-radius: var(--border-radius-small);
|
|
||||||
|
|
||||||
- #tabbrowser-tabs:is([orient="vertical"][expanded], [orient="horizontal"]) &:not([pinned]):not([crashed]) {
|
|
||||||
+ #tabbrowser-tabs:is([orient="horizontal"]) &:not([pinned]):not([crashed]) {
|
|
||||||
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
@@ -638,14 +638,14 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
&[textoverflow] {
|
|
||||||
- &[labeldirection=ltr]:not([pinned]),
|
|
||||||
- &:not([labeldirection], [pinned]):-moz-locale-dir(ltr) {
|
|
||||||
+ &[labeldirection=ltr],
|
|
||||||
+ &:not([labeldirection]):-moz-locale-dir(ltr) {
|
|
||||||
direction: ltr;
|
|
||||||
mask-image: linear-gradient(to left, transparent, black var(--tab-label-mask-size));
|
|
||||||
}
|
|
||||||
|
|
||||||
- &[labeldirection=rtl]:not([pinned]),
|
|
||||||
- &:not([labeldirection], [pinned]):-moz-locale-dir(rtl) {
|
|
||||||
+ &[labeldirection=rtl],
|
|
||||||
+ &:not([labeldirection]):-moz-locale-dir(rtl) {
|
|
||||||
direction: rtl;
|
|
||||||
mask-image: linear-gradient(to right, transparent, black var(--tab-label-mask-size));
|
|
||||||
}
|
|
||||||
@@ -1201,7 +1201,7 @@
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,7 +81,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
#vertical-tabs-newtab-button {
|
#vertical-tabs-newtab-button {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
min-height: var(--tab-min-height);
|
min-height: var(--tab-min-height);
|
||||||
@@ -1212,7 +1212,7 @@
|
@@ -1373,7 +1373,7 @@ tab-group {
|
||||||
margin-inline: var(--tab-inner-inline-margin);
|
margin-inline: var(--tab-inner-inline-margin);
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
||||||
@@ -127,7 +90,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -1236,7 +1236,7 @@
|
@@ -1397,7 +1397,7 @@ tab-group {
|
||||||
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
* 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.
|
* we don't want a gap (between tabs), so we have to add some margin.
|
||||||
*/
|
*/
|
||||||
@@ -136,15 +99,16 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
margin-block: var(--tab-block-margin);
|
margin-block: var(--tab-block-margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1260,7 +1260,6 @@
|
@@ -1471,8 +1471,6 @@ tab-group {
|
||||||
}
|
}
|
||||||
|
|
||||||
#vertical-pinned-tabs-container {
|
:root:not([sidebar-expand-on-hover]) & {
|
||||||
- --tab-inline-padding: calc((calc(var(--tab-collapsed-background-width) + 2 * var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2));
|
- --tab-inline-padding: calc((var(--tab-collapsed-background-width) + 2 *
|
||||||
display: none;
|
- var(--tab-pinned-margin-inline-expanded) - var(--icon-size-default)) / 2);
|
||||||
grid-template-columns: repeat(auto-fit, minmax(var(--tab-pinned-min-width-expanded), auto));
|
/* stylelint-disable-next-line media-query-no-invalid */
|
||||||
overflow-y: auto;
|
@media not -moz-pref("sidebar.visibility", "expand-on-hover") {
|
||||||
@@ -1480,7 +1479,7 @@
|
/* We need these rules to apply at all times when the sidebar.visibility
|
||||||
|
@@ -1717,7 +1715,7 @@ tab-group {
|
||||||
toolbarbutton:not(#firefox-view-button),
|
toolbarbutton:not(#firefox-view-button),
|
||||||
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
toolbarpaletteitem:not(#wrapper-firefox-view-button)
|
||||||
) ~ #tabbrowser-tabs {
|
) ~ #tabbrowser-tabs {
|
||||||
@@ -153,7 +117,7 @@ index bafbb39aac37843e3b6dceb0e81304af51e186cc..92b4fd725118150634ab2ae0a24efb52
|
|||||||
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
padding-inline-start: calc(var(--tab-overflow-pinned-tabs-width) + 2px);
|
||||||
margin-inline-start: 2px;
|
margin-inline-start: 2px;
|
||||||
}
|
}
|
||||||
@@ -1514,7 +1513,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
@@ -1751,7 +1749,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||||
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,10 +24,6 @@
|
|||||||
list-style-image: url('move-tab.svg') !important;
|
list-style-image: url('move-tab.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.zen-tab-unsplit-button {
|
|
||||||
list-style-image: url('unpin.svg') !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#forward-button,
|
#forward-button,
|
||||||
#zen-sidebar-web-panel-forward {
|
#zen-sidebar-web-panel-forward {
|
||||||
list-style-image: url('forward.svg') !important;
|
list-style-image: url('forward.svg') !important;
|
||||||
@@ -63,9 +59,7 @@
|
|||||||
list-style-image: url('sidebars-right.svg') !important;
|
list-style-image: url('sidebars-right.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#context_zenSplitTabs,
|
#context_zenSplitTabs {
|
||||||
#context-zenAddToWebPanel {
|
|
||||||
/* TODO: Add split view icon */
|
|
||||||
--menu-image: url('sidebars-right.svg') !important;
|
--menu-image: url('sidebars-right.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,10 +162,6 @@
|
|||||||
--menu-image: url('open.svg') !important;
|
--menu-image: url('open.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#context_zenSetAsDefaultWorkspace {
|
|
||||||
--menu-image: url('bookmark-hollow.svg') !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#context_zenEditWorkspace,
|
#context_zenEditWorkspace,
|
||||||
#zenToolbarThemePicker {
|
#zenToolbarThemePicker {
|
||||||
--menu-image: url('edit-theme.svg') !important;
|
--menu-image: url('edit-theme.svg') !important;
|
||||||
@@ -271,7 +261,8 @@
|
|||||||
#restore-button,
|
#restore-button,
|
||||||
#fullscreen-button,
|
#fullscreen-button,
|
||||||
#zen-glance-sidebar-open,
|
#zen-glance-sidebar-open,
|
||||||
#appMenu-fullscreen-button2 {
|
#appMenu-fullscreen-button2,
|
||||||
|
.zen-tab-unsplit-button {
|
||||||
list-style-image: url('fullscreen.svg') !important;
|
list-style-image: url('fullscreen.svg') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,20 +1,13 @@
|
|||||||
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
|
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
|
||||||
index 9af78803f0005a2b89e1c73f52153ed4d9e3154a..b63dc3d050144f048ac6a326acd57cc85fa8a3a7 100644
|
index 3e75a5f366e76acf4b9457a510b58b0cb8af580f..4962151f34ff52e8d009b82a9a12da99c4745a7a 100644
|
||||||
--- a/browser/themes/windows/browser.css
|
--- a/browser/themes/windows/browser.css
|
||||||
+++ b/browser/themes/windows/browser.css
|
+++ b/browser/themes/windows/browser.css
|
||||||
@@ -40,14 +40,13 @@
|
@@ -57,7 +57,7 @@
|
||||||
* override these on the tabs toolbar because the accent color is
|
|
||||||
* arbitrary, so the hardcoded colors from browser-custom-colors might
|
|
||||||
* not provide sufficient contrast. */
|
|
||||||
- --toolbarbutton-icon-fill: currentColor;
|
|
||||||
--toolbarbutton-hover-background: color-mix(in srgb, currentColor 17%, transparent);
|
|
||||||
--toolbarbutton-active-background: color-mix(in srgb, currentColor 30%, transparent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&[sizemode="normal"] #navigator-toolbox {
|
- &[sizemode="normal"] #navigator-toolbox {
|
||||||
- border-top: .5px solid ActiveBorder;
|
+ &[sizemode="normal"] #browser {
|
||||||
+ /* border-top: .5px solid ActiveBorder; Zen: Remove annoying top border, dont remove */
|
border-top: .5px solid ActiveBorder;
|
||||||
&:-moz-window-inactive {
|
&:-moz-window-inactive {
|
||||||
border-top-color: InactiveBorder;
|
border-top-color: InactiveBorder;
|
||||||
}
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
|
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
index de5cd910c85a195496eddf38d85b78fb97694ef1..d10d6dfeb25bf01e86d84d3843c5a42551cac3bd 100644
|
index 91b27e5b5fd938f8c5f141214b934999e0ad871e..d2fdae0b0de64c016abbdd5bf124da278d425b24 100644
|
||||||
--- a/devtools/startup/DevToolsStartup.sys.mjs
|
--- a/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
+++ b/devtools/startup/DevToolsStartup.sys.mjs
|
+++ b/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
@@ -806,6 +806,7 @@ DevToolsStartup.prototype = {
|
@@ -813,6 +813,7 @@ DevToolsStartup.prototype = {
|
||||||
// account (see bug 832984).
|
// account (see bug 832984).
|
||||||
const mainKeyset = doc.getElementById("mainKeyset");
|
const mainKeyset = doc.getElementById("mainKeyset");
|
||||||
mainKeyset.parentNode.insertBefore(keyset, mainKeyset);
|
mainKeyset.parentNode.insertBefore(keyset, mainKeyset);
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
|
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
|
||||||
index ffdb908e5760eea8643f3c3f85979cb5f7ff36ae..8ab16b5283f8c15f20b0d630a9b5fc82ec803af5 100644
|
index 58755773c26952b79df258dd8f55147c77db9c5f..041bd3fe99303621733cd3543e196b6a03950526 100644
|
||||||
--- a/dom/base/use_counter_metrics.yaml
|
--- a/dom/base/use_counter_metrics.yaml
|
||||||
+++ b/dom/base/use_counter_metrics.yaml
|
+++ b/dom/base/use_counter_metrics.yaml
|
||||||
@@ -21289,6 +21289,22 @@ use.counter.css.page:
|
@@ -21402,6 +21402,22 @@ use.counter.css.page:
|
||||||
send_in_pings:
|
send_in_pings:
|
||||||
- use-counters
|
- use-counters
|
||||||
|
|
||||||
@@ -25,7 +25,7 @@ index ffdb908e5760eea8643f3c3f85979cb5f7ff36ae..8ab16b5283f8c15f20b0d630a9b5fc82
|
|||||||
css_transform_origin:
|
css_transform_origin:
|
||||||
type: counter
|
type: counter
|
||||||
description: >
|
description: >
|
||||||
@@ -33259,6 +33275,22 @@ use.counter.css.doc:
|
@@ -33372,6 +33388,22 @@ use.counter.css.doc:
|
||||||
send_in_pings:
|
send_in_pings:
|
||||||
- use-counters
|
- use-counters
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/dom/script/ScriptLoader.cpp b/dom/script/ScriptLoader.cpp
|
diff --git a/dom/script/ScriptLoader.cpp b/dom/script/ScriptLoader.cpp
|
||||||
index 6276dcdb031a0325c481a1ea058d513f5c153944..4aee4acd681d3337cce7799d90db0fa0d777762d 100644
|
index b3bec3821582d48c79cd88a4efe5c7bae1fd42e6..0bb81a8b0fa9478c894f80cfa81fd04c67fdd79f 100644
|
||||||
--- a/dom/script/ScriptLoader.cpp
|
--- a/dom/script/ScriptLoader.cpp
|
||||||
+++ b/dom/script/ScriptLoader.cpp
|
+++ b/dom/script/ScriptLoader.cpp
|
||||||
@@ -2626,6 +2626,36 @@ void ScriptLoader::CalculateBytecodeCacheFlag(ScriptLoadRequest* aRequest) {
|
@@ -2670,6 +2670,36 @@ void ScriptLoader::CalculateBytecodeCacheFlag(ScriptLoadRequest* aRequest) {
|
||||||
hasFetchCountMin = false;
|
hasFetchCountMin = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
0
src/firefox-patches/.gitkeep
Normal file
0
src/firefox-patches/.gitkeep
Normal file
3
src/firefox-patches/README.md
Normal file
3
src/firefox-patches/README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Temporal patches done to Firefox
|
||||||
|
|
||||||
|
**IMPORTANT**: Once they start failing (on new Firefox releases), they should be removed as these patches are imported from future versions of Firefox as temporary solutions while we wait.
|
32
src/firefox-patches/ff139-sandbox-missing-header.patch
Normal file
32
src/firefox-patches/ff139-sandbox-missing-header.patch
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
# 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,
|
||||||
|
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp
|
diff --git a/layout/generic/nsIFrame.cpp b/layout/generic/nsIFrame.cpp
|
||||||
index 01f724b0c42999107c4622323f849ddd2a6fe5c9..9dafa755c711c43c11835dfe9f7ba1b70b52b9a3 100644
|
index 0fff882bd3b643e3ab59cfaada984bef0ae7fee4..71e981251fa9395cbb14927d9bd3473c1e18a2cb 100644
|
||||||
--- a/layout/generic/nsIFrame.cpp
|
--- a/layout/generic/nsIFrame.cpp
|
||||||
+++ b/layout/generic/nsIFrame.cpp
|
+++ b/layout/generic/nsIFrame.cpp
|
||||||
@@ -11694,6 +11694,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const {
|
@@ -11721,6 +11721,11 @@ gfx::Matrix nsIFrame::ComputeWidgetTransform() const {
|
||||||
gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms(
|
gfx::Matrix4x4 matrix = nsStyleTransformMatrix::ReadTransforms(
|
||||||
uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel));
|
uiReset->mMozWindowTransform, refBox, float(appUnitsPerDevPixel));
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h
|
diff --git a/layout/style/nsStyleStruct.h b/layout/style/nsStyleStruct.h
|
||||||
index 97eed3431394e21eb7b8890fd87aea8240e23f2b..898d5876c03f822e9e0f2ec892ee86e0d17daf73 100644
|
index 472c15a359ecd7ad0834d479f1acc53b4527f5ac..9f8377ab507b5883b92621160987a97e0be80014 100644
|
||||||
--- a/layout/style/nsStyleStruct.h
|
--- a/layout/style/nsStyleStruct.h
|
||||||
+++ b/layout/style/nsStyleStruct.h
|
+++ b/layout/style/nsStyleStruct.h
|
||||||
@@ -1875,6 +1875,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
|
@@ -1876,6 +1876,7 @@ struct MOZ_NEEDS_MEMMOVABLE_MEMBERS nsStyleUIReset {
|
||||||
// The margin of the window region that should be transparent to events.
|
// The margin of the window region that should be transparent to events.
|
||||||
mozilla::StyleLength mMozWindowInputRegionMargin;
|
mozilla::StyleLength mMozWindowInputRegionMargin;
|
||||||
mozilla::StyleTransform mMozWindowTransform;
|
mozilla::StyleTransform mMozWindowTransform;
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
|
diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml
|
||||||
index 2f0bb8a6e21bec5c89a4a25413bf8d1308210f52..450d8265c128861f3ad5973ec0417b9463ebffd0 100644
|
index a8ba391326f811ae80510585a3c6ab8d7579f739..5e4569032d4c62e59065262f7069663f9acadad1 100644
|
||||||
--- a/modules/libpref/init/StaticPrefList.yaml
|
--- a/modules/libpref/init/StaticPrefList.yaml
|
||||||
+++ b/modules/libpref/init/StaticPrefList.yaml
|
+++ b/modules/libpref/init/StaticPrefList.yaml
|
||||||
@@ -18598,6 +18598,7 @@
|
@@ -18804,6 +18804,7 @@
|
||||||
mirror: always
|
mirror: always
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@@ -11,10 +11,3 @@
|
|||||||
value: 1
|
value: 1
|
||||||
mirror: always
|
mirror: always
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef XP_WIN
|
|
||||||
- name: zen.widget.windows.acrylic
|
|
||||||
type: bool
|
|
||||||
value: true
|
|
||||||
mirror: always
|
|
||||||
#endif
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build
|
diff --git a/netwerk/protocol/http/moz.build b/netwerk/protocol/http/moz.build
|
||||||
index 9a737b89b791866a522100eac99d981a06524b82..2933072d0e8390ca584d0654920b749a180f41ef 100644
|
index a83080d963322d7baa581f1ca61f93d42bb5a938..0741be2ffc5449be829af7f6067d1abcdc86d155 100644
|
||||||
--- a/netwerk/protocol/http/moz.build
|
--- a/netwerk/protocol/http/moz.build
|
||||||
+++ b/netwerk/protocol/http/moz.build
|
+++ b/netwerk/protocol/http/moz.build
|
||||||
@@ -218,7 +218,7 @@ LOCAL_INCLUDES += [
|
@@ -223,7 +223,7 @@ LOCAL_INCLUDES += [
|
||||||
"/netwerk/url-classifier",
|
"/netwerk/url-classifier",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
|
diff --git a/servo/components/style/gecko/media_features.rs b/servo/components/style/gecko/media_features.rs
|
||||||
index 2baf0df323c83107a9a38e76bda3a273892b121e..8d03eeb78638c7c1bfc2cfff59571c76af11a607 100644
|
index cc24406e22f536733b07a9398580a8719b61e134..214f238b38377a8480711ea2d0ec30e99800bb5c 100644
|
||||||
--- a/servo/components/style/gecko/media_features.rs
|
--- a/servo/components/style/gecko/media_features.rs
|
||||||
+++ b/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};
|
@@ -13,6 +13,9 @@ use crate::values::computed::{CSSPixelLength, Context, Ratio, Resolution};
|
||||||
@@ -12,7 +12,7 @@ index 2baf0df323c83107a9a38e76bda3a273892b121e..8d03eeb78638c7c1bfc2cfff59571c76
|
|||||||
|
|
||||||
fn device_size(device: &Device) -> Size2D<Au> {
|
fn device_size(device: &Device) -> Size2D<Au> {
|
||||||
let mut width = 0;
|
let mut width = 0;
|
||||||
@@ -615,6 +618,13 @@ fn eval_moz_overlay_scrollbars(context: &Context) -> bool {
|
@@ -606,6 +609,13 @@ fn eval_moz_overlay_scrollbars(context: &Context) -> bool {
|
||||||
unsafe { bindings::Gecko_MediaFeatures_UseOverlayScrollbars(context.device().document()) }
|
unsafe { bindings::Gecko_MediaFeatures_UseOverlayScrollbars(context.device().document()) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,7 +26,7 @@ index 2baf0df323c83107a9a38e76bda3a273892b121e..8d03eeb78638c7c1bfc2cfff59571c76
|
|||||||
fn get_lnf_int(int_id: i32) -> i32 {
|
fn get_lnf_int(int_id: i32) -> i32 {
|
||||||
unsafe { bindings::Gecko_GetLookAndFeelInt(int_id) }
|
unsafe { bindings::Gecko_GetLookAndFeelInt(int_id) }
|
||||||
}
|
}
|
||||||
@@ -662,7 +672,7 @@ macro_rules! lnf_int_feature {
|
@@ -653,7 +663,7 @@ macro_rules! lnf_int_feature {
|
||||||
/// to support new types in these entries and (2) ensuring that either
|
/// to support new types in these entries and (2) ensuring that either
|
||||||
/// nsPresContext::MediaFeatureValuesChanged is called when the value that
|
/// nsPresContext::MediaFeatureValuesChanged is called when the value that
|
||||||
/// would be returned by the evaluator function could change.
|
/// would be returned by the evaluator function could change.
|
||||||
@@ -35,7 +35,7 @@ index 2baf0df323c83107a9a38e76bda3a273892b121e..8d03eeb78638c7c1bfc2cfff59571c76
|
|||||||
feature!(
|
feature!(
|
||||||
atom!("width"),
|
atom!("width"),
|
||||||
AllowsRanges::Yes,
|
AllowsRanges::Yes,
|
||||||
@@ -927,6 +937,12 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 61] = [
|
@@ -918,6 +928,12 @@ pub static MEDIA_FEATURES: [QueryFeatureDescription; 61] = [
|
||||||
Evaluator::BoolInteger(eval_moz_overlay_scrollbars),
|
Evaluator::BoolInteger(eval_moz_overlay_scrollbars),
|
||||||
FeatureFlags::CHROME_AND_UA_ONLY,
|
FeatureFlags::CHROME_AND_UA_ONLY,
|
||||||
),
|
),
|
||||||
|
@@ -1,16 +1,14 @@
|
|||||||
diff --git a/testing/profiles/mochitest/user.js b/testing/profiles/mochitest/user.js
|
diff --git a/testing/profiles/mochitest/user.js b/testing/profiles/mochitest/user.js
|
||||||
index a4068ac3f61161d014c49d54ae7a3bf886868f1b..84523e9e10d44269172aa6913699ec50def8166e 100644
|
index a4068ac3f61161d014c49d54ae7a3bf886868f1b..b9861cfaae19a4a71b75ccc73095dc602df22b12 100644
|
||||||
--- a/testing/profiles/mochitest/user.js
|
--- a/testing/profiles/mochitest/user.js
|
||||||
+++ b/testing/profiles/mochitest/user.js
|
+++ b/testing/profiles/mochitest/user.js
|
||||||
@@ -41,3 +41,11 @@ 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
|
// permission, and we can open it and wait for the user to give permission, then
|
||||||
// don't do that.
|
// don't do that.
|
||||||
user_pref("geo.prompt.open_system_prefs", false);
|
user_pref("geo.prompt.open_system_prefs", false);
|
||||||
+
|
+
|
||||||
+user_pref("zen.keyboard.shortcuts.enabled", false);
|
|
||||||
+user_pref("zen.welcome-screen.seen", true);
|
+user_pref("zen.welcome-screen.seen", true);
|
||||||
+user_pref("zen.tab-unloader.enabled", false);
|
+user_pref("zen.tab-unloader.enabled", false);
|
||||||
+user_pref("zen.workspaces.disable_empty_state_for_testing", true);
|
|
||||||
+user_pref("zen.watermark.enabled", false);
|
+user_pref("zen.watermark.enabled", false);
|
||||||
+user_pref("zen.urlbar.replace-newtab", false);
|
+user_pref("zen.urlbar.replace-newtab", false);
|
||||||
+user_pref("zen.sidebar.use-google-favicons", false); // Crashes on some platforms
|
+user_pref("zen.testing.enabled", true);
|
||||||
|
@@ -1,17 +1,16 @@
|
|||||||
diff --git a/testing/profiles/profileserver/user.js b/testing/profiles/profileserver/user.js
|
diff --git a/testing/profiles/profileserver/user.js b/testing/profiles/profileserver/user.js
|
||||||
index 19ff7d474f6d22d2d386764e2e6942ce6a324470..a1ed4b51f26f458f965fbc29dfa7b8ad451faf7f 100644
|
index 19ff7d474f6d22d2d386764e2e6942ce6a324470..a68a1f692e050c2a2a7e5e1390dec9556e71d7ed 100644
|
||||||
--- a/testing/profiles/profileserver/user.js
|
--- a/testing/profiles/profileserver/user.js
|
||||||
+++ b/testing/profiles/profileserver/user.js
|
+++ b/testing/profiles/profileserver/user.js
|
||||||
@@ -8,3 +8,12 @@
|
@@ -8,3 +8,11 @@
|
||||||
user_pref("dom.timeout.enable_budget_timer_throttling", false);
|
user_pref("dom.timeout.enable_budget_timer_throttling", false);
|
||||||
// Turn off update
|
// Turn off update
|
||||||
user_pref("app.update.disabledForTesting", true);
|
user_pref("app.update.disabledForTesting", true);
|
||||||
+
|
+
|
||||||
+// zen:
|
+// zen:
|
||||||
+// Disable some of zen's features to better match the default Firefox experience
|
+// Disable some of zen's features to better match the default Firefox experience
|
||||||
+user_pref("zen.workspaces.disabled_for_testing", true);
|
|
||||||
+user_pref("zen.workspaces.disable_empty_state_for_testing", true);
|
|
||||||
+user_pref("zen.welcome-screen.seen", true);
|
+user_pref("zen.welcome-screen.seen", true);
|
||||||
+user_pref("zen.tab-unloader.enabled", false);
|
+user_pref("zen.tab-unloader.enabled", false);
|
||||||
+user_pref("zen.watermark.enabled", false);
|
+user_pref("zen.watermark.enabled", false);
|
||||||
+user_pref("zen.glance.enabled", false);
|
+user_pref("zen.urlbar.replace-newtab", false);
|
||||||
|
+user_pref("zen.testing.enabled", true);
|
||||||
|
12
src/toolkit/actors/PictureInPictureChild-sys-mjs.patch
Normal file
12
src/toolkit/actors/PictureInPictureChild-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/toolkit/actors/PictureInPictureChild.sys.mjs b/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
|
index 7ae1aa58bbaeab7a1835a3ea8328735d4f4ecfb1..9d0679dde3c031c2459c09ffbc157f32bc7d003a 100644
|
||||||
|
--- a/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
|
+++ b/toolkit/actors/PictureInPictureChild.sys.mjs
|
||||||
|
@@ -291,6 +291,7 @@ export class PictureInPictureLauncherChild extends JSWindowActorChild {
|
||||||
|
if (
|
||||||
|
video &&
|
||||||
|
PictureInPictureChild.videoIsPlaying(video) &&
|
||||||
|
+ !video.muted &&
|
||||||
|
PictureInPictureChild.videoIsPiPEligible(video)
|
||||||
|
) {
|
||||||
|
this.togglePictureInPicture({ video, reason: "AutoPip" }, false);
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/components/aboutprocesses/content/aboutProcesses.html b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
diff --git a/toolkit/components/aboutprocesses/content/aboutProcesses.html b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
||||||
index 3d7085f487eb8eb3fb94dcc89e390dee525d8375..94298c2cb237edce7bb344797c054ba61b9f4d24 100644
|
index 1d936bcca6a606f062b9438d78a1165445468471..cbefb51920e7b2ad11621ab2b36c69fa63967dfe 100644
|
||||||
--- a/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
--- a/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
||||||
+++ b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
+++ b/toolkit/components/aboutprocesses/content/aboutProcesses.html
|
||||||
@@ -20,6 +20,7 @@
|
@@ -20,6 +20,7 @@
|
||||||
|
@@ -1,8 +1,18 @@
|
|||||||
diff --git a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
diff --git a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
||||||
index 5da0404b2672ba8cce7bcf808bf2373474776654..3b93217b38f25f54d7ef44d151e314bc1c5e5ce3 100644
|
index 5644bad94bd4741c4c807eaf5633ee18aacd633f..f89a3e24e850df04aebceb1ff70c0bed5a9db7e5 100644
|
||||||
--- a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
--- a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
||||||
+++ b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
+++ b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
|
||||||
@@ -494,7 +494,7 @@ export var PictureInPicture = {
|
@@ -122,6 +122,9 @@ export class PictureInPictureToggleParent extends JSWindowActorParent {
|
||||||
|
if (browser.ownerGlobal.gBrowser.selectedBrowser == browser) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
+ if (browser.audioMuted) {
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
let actor = browsingContext.currentWindowGlobal.getActor(
|
||||||
|
"PictureInPictureLauncher"
|
||||||
|
);
|
||||||
|
@@ -490,7 +493,7 @@ export var PictureInPicture = {
|
||||||
// focus the tab's window
|
// focus the tab's window
|
||||||
tab.ownerGlobal.focus();
|
tab.ownerGlobal.focus();
|
||||||
|
|
||||||
|
@@ -1,12 +1,12 @@
|
|||||||
diff --git a/toolkit/content/aboutSupport.xhtml b/toolkit/content/aboutSupport.xhtml
|
diff --git a/toolkit/content/aboutSupport.xhtml b/toolkit/content/aboutSupport.xhtml
|
||||||
index 05e3d72a6e67900e9b3d9bfd35c89b056c7ca747..55408e77830492765c976dd967ca14a7b74cba97 100644
|
index 296259cd0360a403e8659e22d0c08e968529a38a..bde1ee8d0a05e6ce2eb3ff8ff8a19ba28c20af98 100644
|
||||||
--- a/toolkit/content/aboutSupport.xhtml
|
--- a/toolkit/content/aboutSupport.xhtml
|
||||||
+++ b/toolkit/content/aboutSupport.xhtml
|
+++ b/toolkit/content/aboutSupport.xhtml
|
||||||
@@ -31,6 +31,7 @@
|
@@ -10,6 +10,7 @@
|
||||||
#ifndef ANDROID
|
|
||||||
<link rel="localization" href="toolkit/featuregates/features.ftl"/>
|
|
||||||
#endif
|
|
||||||
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body class="wide-container">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
<head>
|
||||||
|
+ <script src="chrome://browser/content/zenThemeModifier.js"></script>
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="default-src chrome:; object-src 'none'" />
|
||||||
|
<meta name="color-scheme" content="light dark" />
|
||||||
|
<title data-l10n-id="page-title"/>
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/content/widgets/arrowscrollbox.js b/toolkit/content/widgets/arrowscrollbox.js
|
diff --git a/toolkit/content/widgets/arrowscrollbox.js b/toolkit/content/widgets/arrowscrollbox.js
|
||||||
index 328c770d275ebbaada8a44438eaf738b1a62d985..95460108c6356408170b8a4a40d55a8f0621756b 100644
|
index f9191af09f1b7a1654aff62807e7dad573afc172..f94a8b3dc5871fba5d0dbed5d487d6e32a1ff29a 100644
|
||||||
--- a/toolkit/content/widgets/arrowscrollbox.js
|
--- a/toolkit/content/widgets/arrowscrollbox.js
|
||||||
+++ b/toolkit/content/widgets/arrowscrollbox.js
|
+++ b/toolkit/content/widgets/arrowscrollbox.js
|
||||||
@@ -98,6 +98,7 @@
|
@@ -98,6 +98,7 @@
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
|
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
|
||||||
index 717f0583f224be2d09a7966ee5627ebab83cc07f..ec251b99562f2a9b6dcfecc4588e44bbff315612 100644
|
index 6775a7635c6cdbb276b3a912d0bba07840acb28f..fc5d3b1fab286c657c27b98d56bb616dfab3caef 100644
|
||||||
--- a/toolkit/content/widgets/tabbox.js
|
--- a/toolkit/content/widgets/tabbox.js
|
||||||
+++ b/toolkit/content/widgets/tabbox.js
|
+++ b/toolkit/content/widgets/tabbox.js
|
||||||
@@ -213,7 +213,7 @@
|
@@ -213,7 +213,7 @@
|
||||||
@@ -11,7 +11,7 @@ index 717f0583f224be2d09a7966ee5627ebab83cc07f..ec251b99562f2a9b6dcfecc4588e44bb
|
|||||||
this._selectedPanel?.classList.add("deck-selected");
|
this._selectedPanel?.classList.add("deck-selected");
|
||||||
}
|
}
|
||||||
this.setAttribute("selectedIndex", val);
|
this.setAttribute("selectedIndex", val);
|
||||||
@@ -609,7 +609,7 @@
|
@@ -610,7 +610,7 @@
|
||||||
if (!tab) {
|
if (!tab) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ index 717f0583f224be2d09a7966ee5627ebab83cc07f..ec251b99562f2a9b6dcfecc4588e44bb
|
|||||||
if (otherTab != tab && otherTab.selected) {
|
if (otherTab != tab && otherTab.selected) {
|
||||||
otherTab._selected = false;
|
otherTab._selected = false;
|
||||||
}
|
}
|
||||||
@@ -822,7 +822,7 @@
|
@@ -823,7 +823,7 @@
|
||||||
if (tab == startTab) {
|
if (tab == startTab) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -29,7 +29,7 @@ index 717f0583f224be2d09a7966ee5627ebab83cc07f..ec251b99562f2a9b6dcfecc4588e44bb
|
|||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -887,7 +887,7 @@
|
@@ -888,7 +888,7 @@
|
||||||
let { ariaFocusedItem } = this;
|
let { ariaFocusedItem } = this;
|
||||||
let startTab = ariaFocusedItem;
|
let startTab = ariaFocusedItem;
|
||||||
if (!ariaFocusedItem || !this.allTabs.includes(ariaFocusedItem)) {
|
if (!ariaFocusedItem || !this.allTabs.includes(ariaFocusedItem)) {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
|
diff --git a/toolkit/modules/moz.build b/toolkit/modules/moz.build
|
||||||
index dd8d6498f5b7244726274c0588dae68f8261cbc0..ac1e25707a1d2ebf191f04f9e38e092cb3f4aa27 100644
|
index b7dd298c4ffa1b95531e3646d57a52e524fcf801..da23bcd2a8b4b49ce07f4602f5e624bf4bfbfc8d 100644
|
||||||
--- a/toolkit/modules/moz.build
|
--- a/toolkit/modules/moz.build
|
||||||
+++ b/toolkit/modules/moz.build
|
+++ b/toolkit/modules/moz.build
|
||||||
@@ -286,6 +286,7 @@ for var in (
|
@@ -282,6 +282,7 @@ for var in (
|
||||||
"DLL_SUFFIX",
|
"DLL_SUFFIX",
|
||||||
"DEBUG_JS_MODULES",
|
"DEBUG_JS_MODULES",
|
||||||
"OMNIJAR_NAME",
|
"OMNIJAR_NAME",
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
|
diff --git a/toolkit/moz.configure b/toolkit/moz.configure
|
||||||
index e5e517635d639f43de064fdc81a33090c28ca786..67ce7a27d93c3c6f9c8045c2d5796b85bf059113 100644
|
index 09b3065c214ecceacb6f264cdacbb777252f33ea..97ee12093d6330ae9da4aa1bea2ecd5b76843110 100644
|
||||||
--- a/toolkit/moz.configure
|
--- a/toolkit/moz.configure
|
||||||
+++ b/toolkit/moz.configure
|
+++ b/toolkit/moz.configure
|
||||||
@@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project):
|
@@ -22,6 +22,7 @@ def check_moz_app_id(moz_app_id, build_project):
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
diff --git a/toolkit/mozapps/extensions/AddonManager.sys.mjs b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
index 044e2960be887b9272509ceff2fc1a2952fd997c..326ddbc0f10fb4134f8b6116c788bef24bb2d3e8 100644
|
index 883e8389eec97815adfdb8c62fc15482f6d7f0e7..234c956ba799666a3cba6fd6dcdad774ffc6b79e 100644
|
||||||
--- a/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
--- a/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
+++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
+++ b/toolkit/mozapps/extensions/AddonManager.sys.mjs
|
||||||
@@ -1221,12 +1221,12 @@ var AddonManagerInternal = {
|
@@ -1221,12 +1221,12 @@ var AddonManagerInternal = {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/content/aboutaddons.html b/toolkit/mozapps/extensions/content/aboutaddons.html
|
diff --git a/toolkit/mozapps/extensions/content/aboutaddons.html b/toolkit/mozapps/extensions/content/aboutaddons.html
|
||||||
index a075350abd62ffa34874dbd8d5a9a3f9aec3560d..5cad47c50518eeb41b4d9657fa805d8fa1dba470 100644
|
index 67808c799aca92a0c71731ab0c345bb478522368..5ddcbcecd43b2b04eb4c0e5b86eebd69b142a5a3 100644
|
||||||
--- a/toolkit/mozapps/extensions/content/aboutaddons.html
|
--- a/toolkit/mozapps/extensions/content/aboutaddons.html
|
||||||
+++ b/toolkit/mozapps/extensions/content/aboutaddons.html
|
+++ b/toolkit/mozapps/extensions/content/aboutaddons.html
|
||||||
@@ -73,6 +73,7 @@
|
@@ -82,6 +82,7 @@
|
||||||
type="module"
|
type="module"
|
||||||
src="chrome://global/content/elements/moz-five-star.mjs"
|
src="chrome://global/content/elements/moz-five-star.mjs"
|
||||||
></script>
|
></script>
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
diff --git a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||||
index f6333f54da4cd0e81ef0cdf5720d54480a9c865e..2d098b0675e3efdfd6fa1ac0fed0e293b5367b1e 100644
|
index 1b01851e2fff6d07a4be8e282bd4b85e934a7978..1354405f0b2938d2f22a3dea000405babdafd665 100644
|
||||||
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
--- a/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||||
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
+++ b/toolkit/mozapps/extensions/internal/XPIDatabase.sys.mjs
|
||||||
@@ -138,7 +138,7 @@ const KEY_APP_GLOBAL = "app-global";
|
@@ -139,7 +139,7 @@ const KEY_APP_GLOBAL = "app-global";
|
||||||
const KEY_APP_PROFILE = "app-profile";
|
const KEY_APP_PROFILE = "app-profile";
|
||||||
const KEY_APP_TEMPORARY = "app-temporary";
|
const KEY_APP_TEMPORARY = "app-temporary";
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ index f6333f54da4cd0e81ef0cdf5720d54480a9c865e..2d098b0675e3efdfd6fa1ac0fed0e293
|
|||||||
|
|
||||||
// Properties to cache and reload when an addon installation is pending
|
// Properties to cache and reload when an addon installation is pending
|
||||||
const PENDING_INSTALL_METADATA = [
|
const PENDING_INSTALL_METADATA = [
|
||||||
@@ -1771,8 +1771,11 @@ const updatedAddonFluentIds = new Map([
|
@@ -1778,8 +1778,11 @@ const updatedAddonFluentIds = new Map([
|
||||||
updatedAddonFluentIds.get(defaultFluentId) || defaultFluentId;
|
updatedAddonFluentIds.get(defaultFluentId) || defaultFluentId;
|
||||||
[formattedMessage] = l10n.formatMessagesSync([{ id: fluentId }]);
|
[formattedMessage] = l10n.formatMessagesSync([{ id: fluentId }]);
|
||||||
}
|
}
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
diff --git a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
||||||
index 3af9a7779dd43a6ded906ceaf6768c56d53c8605..c0b597fa3f8073b9bfb4118d5352246a5b54c2d7 100644
|
index 2cafde2156680a557081c5b82923f14618749358..0f4f5160f649165df80f35fbe72e02786a5b867e 100644
|
||||||
--- a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
--- a/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
||||||
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
+++ b/toolkit/mozapps/extensions/internal/XPIProvider.sys.mjs
|
||||||
@@ -2556,8 +2556,8 @@ export var XPIProvider = {
|
@@ -2674,8 +2674,8 @@ export var XPIProvider = {
|
||||||
|
if (AppConstants.platform != "android") {
|
||||||
|
// Keep version in sync with toolkit/mozapps/extensions/default-theme/manifest.json
|
||||||
|
this.maybeInstallBuiltinAddon(
|
||||||
|
- "default-theme@mozilla.org",
|
||||||
|
- "1.4.1",
|
||||||
|
+ "firefox-compact-dark@mozilla.org",
|
||||||
|
+ "1.3",
|
||||||
|
"resource://default-theme/"
|
||||||
|
);
|
||||||
}
|
}
|
||||||
// Keep version in sync with toolkit/mozapps/extensions/default-theme/manifest.json
|
|
||||||
this.maybeInstallBuiltinAddon(
|
|
||||||
- "default-theme@mozilla.org",
|
|
||||||
- "1.4.1",
|
|
||||||
+ "firefox-compact-dark@mozilla.org",
|
|
||||||
+ "1.3",
|
|
||||||
"resource://default-theme/"
|
|
||||||
);
|
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
|
diff --git a/toolkit/profile/nsToolkitProfileService.cpp b/toolkit/profile/nsToolkitProfileService.cpp
|
||||||
index c1b7a4a3c9d01e660ec85cf114a6b1513d8fb7ce..df199875663b2b7aba6a5da33987b759e4e0d41b 100644
|
index e6722fb8f379c3032301fc3c1c49d894a566c28a..f6c560bb3f2ffdba4eaed876f7679245235fde8c 100644
|
||||||
--- a/toolkit/profile/nsToolkitProfileService.cpp
|
--- a/toolkit/profile/nsToolkitProfileService.cpp
|
||||||
+++ b/toolkit/profile/nsToolkitProfileService.cpp
|
+++ b/toolkit/profile/nsToolkitProfileService.cpp
|
||||||
@@ -82,6 +82,8 @@ using namespace mozilla;
|
@@ -82,6 +82,8 @@ using namespace mozilla;
|
||||||
@@ -11,7 +11,7 @@ index c1b7a4a3c9d01e660ec85cf114a6b1513d8fb7ce..df199875663b2b7aba6a5da33987b759
|
|||||||
struct KeyValue {
|
struct KeyValue {
|
||||||
KeyValue(const char* aKey, const char* aValue) : key(aKey), value(aValue) {}
|
KeyValue(const char* aKey, const char* aValue) : key(aKey), value(aValue) {}
|
||||||
|
|
||||||
@@ -1409,7 +1411,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile(
|
@@ -1404,7 +1406,7 @@ nsresult nsToolkitProfileService::CreateDefaultProfile(
|
||||||
if (mUseDevEditionProfile) {
|
if (mUseDevEditionProfile) {
|
||||||
name.AssignLiteral(DEV_EDITION_NAME);
|
name.AssignLiteral(DEV_EDITION_NAME);
|
||||||
} else if (mUseDedicatedProfile) {
|
} else if (mUseDedicatedProfile) {
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css
|
diff --git a/toolkit/themes/shared/aboutReader.css b/toolkit/themes/shared/aboutReader.css
|
||||||
index e91ae235726ec4edfbbdfebca159622a757640e9..21f761c5706c4747f5a990fc61b5f95e2eb63b5d 100644
|
index 2b06ac3bdb2e122f4553d7e11e1c9462ee45b487..9a78e79523a59448f0425609c311f81c14d4525b 100644
|
||||||
--- a/toolkit/themes/shared/aboutReader.css
|
--- a/toolkit/themes/shared/aboutReader.css
|
||||||
+++ b/toolkit/themes/shared/aboutReader.css
|
+++ b/toolkit/themes/shared/aboutReader.css
|
||||||
@@ -1190,3 +1190,43 @@ pre code {
|
@@ -1191,3 +1191,43 @@ pre code {
|
||||||
display: block;
|
display: block;
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
@@ -1,32 +1,15 @@
|
|||||||
diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css
|
diff --git a/toolkit/themes/shared/popup.css b/toolkit/themes/shared/popup.css
|
||||||
index ed0caa97db5726a7d1bc1cd0aa7af3fdf99690dc..ce49d7f6900a1184c9aed00c26bd7b42916482aa 100644
|
index 5701d305fdfc0407ead51aa52eefee38e7429de8..642325e981e9597eaaefefa725852a49b49ee6dc 100644
|
||||||
--- a/toolkit/themes/shared/popup.css
|
--- a/toolkit/themes/shared/popup.css
|
||||||
+++ b/toolkit/themes/shared/popup.css
|
+++ b/toolkit/themes/shared/popup.css
|
||||||
@@ -21,8 +21,8 @@ panel {
|
@@ -22,8 +22,8 @@ panel {
|
||||||
--panel-border-color: ThreeDShadow;
|
--panel-border-color: ThreeDShadow;
|
||||||
--panel-width: initial;
|
--panel-width: initial;
|
||||||
|
|
||||||
- --panel-shadow-margin: 0px;
|
- --panel-shadow-margin: 4px;
|
||||||
- --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2);
|
- --panel-shadow: 0 0 var(--panel-shadow-margin) hsla(0,0%,0%,.2);
|
||||||
+ --panel-shadow-margin: 10px;
|
+ --panel-shadow-margin: 10px;
|
||||||
+ --panel-shadow: var(--zen-big-shadow);
|
+ --panel-shadow: var(--zen-big-shadow);
|
||||||
-moz-window-input-region-margin: var(--panel-shadow-margin);
|
-moz-window-input-region-margin: var(--panel-shadow-margin);
|
||||||
margin: calc(-1 * var(--panel-shadow-margin));
|
margin: calc(-1 * var(--panel-shadow-margin));
|
||||||
|
|
||||||
@@ -30,8 +30,6 @@ panel {
|
|
||||||
--background-color-canvas: var(--panel-background);
|
|
||||||
|
|
||||||
@media (-moz-platform: linux) {
|
|
||||||
- --panel-border-radius: 8px;
|
|
||||||
- --panel-padding-block: 3px;
|
|
||||||
|
|
||||||
@media (prefers-contrast) {
|
|
||||||
--panel-border-color: color-mix(in srgb, currentColor 60%, transparent);
|
|
||||||
@@ -208,7 +206,6 @@ panel:where([type="arrow"]) {
|
|
||||||
}
|
|
||||||
|
|
||||||
&[animating] {
|
|
||||||
- pointer-events: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
|
diff --git a/widget/gtk/nsAppShell.cpp b/widget/gtk/nsAppShell.cpp
|
||||||
index eef6e76a26341d30748c6c4f054092ba0bfdd865..65b6e2583e6e6891dcbf9faeeefed21cc2d40d15 100644
|
index 117c1d6ae07c9b2539005dd05edf2c622985ac2f..126748a8fa13f3f9c163aca06a1d65f972b91f8f 100644
|
||||||
--- a/widget/gtk/nsAppShell.cpp
|
--- a/widget/gtk/nsAppShell.cpp
|
||||||
+++ b/widget/gtk/nsAppShell.cpp
|
+++ b/widget/gtk/nsAppShell.cpp
|
||||||
@@ -419,7 +419,8 @@ nsresult nsAppShell::Init() {
|
@@ -488,7 +488,8 @@ nsresult nsAppShell::Init() {
|
||||||
gchar* name = gdk_pixbuf_format_get_name(format);
|
gchar* name = gdk_pixbuf_format_get_name(format);
|
||||||
if (strcmp(name, "jpeg") && strcmp(name, "png") && strcmp(name, "gif") &&
|
if (strcmp(name, "jpeg") && strcmp(name, "png") && strcmp(name, "gif") &&
|
||||||
strcmp(name, "bmp") && strcmp(name, "ico") && strcmp(name, "xpm") &&
|
strcmp(name, "bmp") && strcmp(name, "ico") && strcmp(name, "xpm") &&
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user