diff --git a/.gitattributes b/.gitattributes
index 42b01886c..683555503 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -5,4 +5,4 @@
*.patch linguist-language=C++
*.d.ts linguist-language=TypeScript
-src/zen/tests/*.js linguist-language=Test
+src/zen/tests/** linguist-language=C++
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 6977bfe8c..5cd9cd53a 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -287,7 +287,7 @@ jobs:
with:
use-sccache: ${{ inputs.use-sccache }}
build-version: ${{ needs.build-data.outputs.version }}
- generate-gpo: true
+ generate-pgo: true
profile-data-path-archive: zen-windows-profile-data-and-jarlog.zip
release-branch: ${{ inputs.update_branch }}
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
@@ -313,7 +313,7 @@ jobs:
needs: [build-data, windows-step-2, start-self-host, buildid]
with:
build-version: ${{ needs.build-data.outputs.version }}
- generate-gpo: false
+ generate-pgo: false
release-branch: ${{ inputs.update_branch }}
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
use-sccache: ${{ inputs.use-sccache }}
@@ -331,15 +331,41 @@ jobs:
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
use-sccache: ${{ inputs.use-sccache }}
- mac:
- name: macOS build
+ mac-step-1:
+ name: macOS build step 1 (PGO build)
+ uses: ./.github/workflows/macos-release-build.yml
+ needs: [build-data, buildid]
+ permissions:
+ contents: write
+ secrets: inherit
+ with:
+ use-sccache: ${{ inputs.use-sccache }}
+ build-version: ${{ needs.build-data.outputs.version }}
+ generate-pgo: true
+ release-branch: ${{ inputs.update_branch }}
+ MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
+
+ mac-step-2:
+ name: macOS build step 2 (Generate profile data)
+ uses: ./.github/workflows/macos-profile-build.yml
+ permissions:
+ contents: write
+ secrets: inherit
+ needs: [mac-step-1, build-data]
+ with:
+ build-version: ${{ needs.build-data.outputs.version }}
+ release-branch: ${{ inputs.update_branch }}
+
+ mac-step-3:
+ name: macOS build step 3 (build with profile data)
uses: ./.github/workflows/macos-release-build.yml
permissions:
contents: write
secrets: inherit
- needs: [build-data, buildid]
+ needs: [build-data, mac-step-2, start-self-host, buildid]
with:
build-version: ${{ needs.build-data.outputs.version }}
+ generate-pgo: false
release-branch: ${{ inputs.update_branch }}
MOZ_BUILD_DATE: ${{needs.buildid.outputs.buildids}}
use-sccache: ${{ inputs.use-sccache }}
@@ -350,7 +376,7 @@ jobs:
permissions:
contents: write
secrets: inherit
- needs: [build-data, mac]
+ needs: [build-data, mac-step-3]
with:
build-version: ${{ needs.build-data.outputs.version }}
release-branch: ${{ inputs.update_branch }}
@@ -500,10 +526,24 @@ jobs:
path: updates-server
token: ${{ secrets.DEPLOY_KEY }}
- - name: Download object files
+ - name: Download signed windows objects
if: ${{ inputs.update_branch == 'release' }}
+ env:
+ GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
run: |
- git clone https://github.com/zen-browser/windows-binaries.git .github/workflows/object --depth 1
+ mkdir -p .github/workflows/object
+ gh release download "windows-signed-${{ github.run_id }}" \
+ --repo zen-browser/windows-binaries \
+ --pattern 'windows-x64-signed-*.tar.gz' \
+ --dir .github/workflows/object
+
+ for arch in x86_64 arm64; do
+ archive=".github/workflows/object/windows-x64-signed-$arch.tar.gz"
+ dest=".github/workflows/object/windows-x64-signed-$arch"
+ echo "Expanding $archive"
+ mkdir -p "$dest"
+ tar -xvf "$archive" -C "$dest"
+ done
- name: Sign MAR files
env:
@@ -616,6 +656,17 @@ jobs:
./.github/workflows/object/windows-x64-signed-arm64/zen.installer-arm64.exe
./zen.macos-universal.dmg/*
+ - name: Clean up signed windows staging release
+ if: ${{ inputs.update_branch == 'release' }}
+ env:
+ GH_TOKEN: ${{ secrets.DEPLOY_KEY }}
+ run: |
+ # The per-run staging prerelease on windows-binaries has served its purpose
+ # now that the signed bundles are published in the real release. Never fail
+ # the release over this cleanup.
+ gh release delete "windows-signed-${{ github.run_id }}" \
+ --repo zen-browser/windows-binaries --cleanup-tag --yes || true
+
prepare-flatpak:
if: ${{ inputs.create_release && inputs.update_branch == 'release' }}
permissions: write-all
diff --git a/.github/workflows/linux-release-build.yml b/.github/workflows/linux-release-build.yml
index 5e5a32bff..baaea9dbf 100644
--- a/.github/workflows/linux-release-build.yml
+++ b/.github/workflows/linux-release-build.yml
@@ -105,6 +105,8 @@ jobs:
SURFER_COMPAT: ${{ matrix.arch }}
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
+ SURFER_CERT_PATCH_NAME_PREV: ${{ secrets.SURFER_CERT_PATCH_NAME_PREV }}
+ SURFER_CERT_PATCH_ISSUER_PREV: ${{ secrets.SURFER_CERT_PATCH_ISSUER_PREV }}
run: |
. "$HOME/.cargo/env"
npm run import
diff --git a/.github/workflows/macos-profile-build.yml b/.github/workflows/macos-profile-build.yml
new file mode 100644
index 000000000..43aa552b2
--- /dev/null
+++ b/.github/workflows/macos-profile-build.yml
@@ -0,0 +1,111 @@
+name: macOS PGO Builds
+
+permissions:
+ contents: read
+
+on:
+ workflow_call:
+ inputs:
+ build-version:
+ description: "The version to build"
+ required: true
+ type: string
+ release-branch:
+ description: "The branch to build"
+ required: true
+ type: string
+
+jobs:
+ macos-profile-build:
+ name: |
+ macOS Profile Build - ${{ matrix.arch }}
+ strategy:
+ fail-fast: false
+ matrix:
+ arch: [x86_64, aarch64]
+
+ runs-on: ${{ matrix.arch == 'x86_64' && 'macos-15-intel' || 'macos-26' }}
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version-file: ".nvmrc"
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+
+ - name: Setup Git
+ run: |
+ git config --global user.name "github-actions[bot]"
+ git config --global user.email "github-actions[bot]@users.noreply.github.com"
+
+ - name: Setup Rust
+ run: |
+ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
+
+ - name: Install dependencies
+ run: npm ci
+
+ - name: Load Surfer CI setup
+ run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
+
+ - name: Download instrumented app
+ uses: actions/download-artifact@v4
+ with:
+ path: ~/instrumented
+ name: macos-pgo-stage1-${{ matrix.arch }}
+
+ - name: Download Firefox and dependencies
+ run: npm run download
+
+ - name: Import patches
+ env:
+ SURFER_NO_BRANDING_PATCH: true
+ run: |
+ . "$HOME/.cargo/env"
+ npm run import
+
+ - name: Bootstrap
+ run: |
+ cd engine
+ export SURFER_PLATFORM="darwin"
+ ./mach --no-interactive bootstrap --application-choice browser --exclude macos-sdk || true
+
+ - name: Extract instrumented app
+ run: |
+ set -ex
+ cd engine
+ ./mach python -m mozbuild.action.unpack_dmg \
+ "$HOME/instrumented/zen-macos-pgo-stage1-${{ matrix.arch }}.dmg" \
+ "$HOME/instrumented/app"
+ APP=$(find "$HOME/instrumented/app" -maxdepth 1 -name "*.app" -type d | head -1)
+ codesign --force --deep --sign - "$APP" || true
+
+ - name: Generate profile data
+ run: |
+ set -ex
+ export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
+ export JARLOG_FILE=en-US.log
+ BINARY=$(find "$HOME/instrumented" -type f -path "*/Contents/MacOS/zen" | head -1)
+ test -n "$BINARY"
+ cd engine
+ ./mach python ../scripts/download_pgo_extended_corpus.py
+ ./mach python build/pgo/profileserver.py --binary "$BINARY" --extended-corpus ./pgo-extended-corpus
+
+ - name: Move profile data
+ run: |
+ mv engine/merged.profdata merged.profdata
+ mv engine/en-US.log en-US.log
+
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ retention-days: 1
+ path: |
+ merged.profdata
+ en-US.log
+ name: macos-profdata-${{ matrix.arch }}
diff --git a/.github/workflows/macos-release-build.yml b/.github/workflows/macos-release-build.yml
index b3395f0f1..0423c566e 100644
--- a/.github/workflows/macos-release-build.yml
+++ b/.github/workflows/macos-release-build.yml
@@ -1,10 +1,15 @@
name: macOS Release Build
+
permissions:
contents: read
on:
workflow_call:
inputs:
+ generate-pgo:
+ required: true
+ type: boolean
+ default: false
build-version:
description: "The version to build"
required: true
@@ -26,17 +31,22 @@ on:
jobs:
mac-build:
name: Build macOS - ${{ matrix.arch }}
- runs-on: ${{ (inputs.release-branch == 'release') && 'blacksmith-6vcpu-macos-latest' || 'macos-26' }}
-
- strategy:
- fail-fast: false
- matrix:
- arch: [x86_64, aarch64]
+ runs-on: 'blacksmith-8vcpu-ubuntu-2404'
env:
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
+ strategy:
+ fail-fast: false
+ matrix:
+ arch: [x86_64, aarch64]
+
steps:
+ - name: Free Disk Space (Ubuntu)
+ uses: jlumbroso/free-disk-space@main
+ with:
+ tool-cache: false
+
- name: Checkout repository
uses: actions/checkout@v4
with:
@@ -44,16 +54,10 @@ jobs:
token: ${{ secrets.DEPLOY_KEY }}
- name: Setup Node.js
- uses: actions/setup-node@v4
+ uses: useblacksmith/setup-node@v5
with:
node-version-file: ".nvmrc"
- - name: Log SDK versions
- run: |
- ls /Library/Developer/CommandLineTools/SDKs/
- xcrun --show-sdk-version
- xcrun --show-sdk-path
-
- name: Run sccache-cache
uses: mozilla-actions/sccache-action@main
if: ${{ inputs.use-sccache }}
@@ -67,157 +71,158 @@ jobs:
core.exportVariable('ACTIONS_CACHE_URL', process.env['ACTIONS_CACHE_URL'])
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env['ACTIONS_RUNTIME_TOKEN'])
- - name: Setup Python
- uses: actions/setup-python@v5
- # note: This will use the version defined in '.python-version' by default
-
- name: Setup Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
- - name: Install system dependencies
+ - name: Install dependencies
run: |
- brew update
- brew install cairo gnu-tar mercurial
- sudo pip install setuptools
+ npm ci
+ sudo apt-get update
+ sudo apt-get install -y python3 python3-pip zstd yasm nasm build-essential libgtk2.0-dev libpython3-dev m4 uuid libasound2-dev libcurl4-openssl-dev libdbus-1-dev libdrm-dev libdbus-glib-1-dev libgtk-3-dev libpulse-dev libx11-xcb-dev libxt-dev xvfb --fix-missing
- brew uninstall --ignore-dependencies python3.12 -f
+ - name: Load Surfer CI setup
+ run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- export PATH="$(python3 -m site --user-base)/bin":$PATH
- python3 -m pip install --user mercurial
+ - name: Download Firefox and dependencies
+ run: npm run download
- rm '/usr/local/bin/2to3-3.11' '/usr/local/bin/2to3-3.12' '/usr/local/bin/2to3'
- rm '/usr/local/bin/idle3.11' '/usr/local/bin/idle3.12' '/usr/local/bin/idle3'
- rm '/usr/local/bin/pydoc3.11' '/usr/local/bin/pydoc3.12' '/usr/local/bin/pydoc3'
- rm '/usr/local/bin/python3.11' '/usr/local/bin/python3.12' '/usr/local/bin/python3'
- rm '/usr/local/bin/python3.11-config' '/usr/local/bin/python3.12-config' '/usr/local/bin/python3-config'
+ - name: mac-cross Cache
+ env:
+ SEGMENT_DOWNLOAD_TIMEOUT_MINS: 5
+ id: cache-mac-cross
+ uses: useblacksmith/cache@v5
+ with:
+ path: ${HOME}/mac-cross
+ key: mac-cross
- brew install watchman
+ - name: Setup for macOS (cctools and DMG tools)
+ if: steps.cache-mac-cross.outputs.cache-hit != 'true'
+ run: |
+ set -ex
+ mkdir -p ~/mac-cross
+ cd engine/
+ ./mach artifact toolchain --from-build linux64-cctools-port linux64-libdmg linux64-hfsplus
+ mv cctools dmg hfsplus ~/mac-cross/
+ ls ~/mac-cross/cctools/bin/x86_64-apple-darwin-ld ~/mac-cross/cctools/bin/aarch64-apple-darwin-ld ~/mac-cross/dmg/dmg ~/mac-cross/hfsplus/newfs_hfs
+ - name: Setup Rust
+ run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
source $HOME/.cargo/env
-
if test "${{ matrix.arch }}" = "aarch64"; then
rustup target add aarch64-apple-darwin
else
rustup target add x86_64-apple-darwin
fi
- - name: Force usage of gnu-tar
- run: |
- echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.bash_profile
- echo 'export PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"' >> ~/.zsh
- source ~/.bash_profile
-
- - name: Install dependencies
- run: |
- npm ci
-
- - name: Load surfer CI setup
- run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
-
- - name: Download Firefox source and dependencies
- run: npm run download
-
- name: Import
env:
SURFER_COMPAT: ${{ matrix.arch }}
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
- run: npm run import
+ SURFER_CERT_PATCH_NAME_PREV: ${{ secrets.SURFER_CERT_PATCH_NAME_PREV }}
+ SURFER_CERT_PATCH_ISSUER_PREV: ${{ secrets.SURFER_CERT_PATCH_ISSUER_PREV }}
+ SURFER_PLATFORM: darwin
+ run: |
+ . "$HOME/.cargo/env"
+ npm run import -- --verbose
- name: Bootstrap
run: |
- cd engine
+ set -x
export SURFER_PLATFORM="darwin"
- export PATH="$(python3 -m site --user-base)/bin":$PATH
- # Always exist with 0, even if bootstrap fails
- ./mach --no-interactive bootstrap --application-choice browser --exclude macos-sdk || true
- cd ..
+ npm run bootstrap
- name: Build language packs
run: sh scripts/download-language-packs.sh
- - name: Build Zen (PGO stage 1 - generate)
+ - name: Download artifact (if use profdata)
+ uses: actions/download-artifact@v4
+ if: ${{ !inputs.generate-pgo }}
+ with:
+ path: ~/artifact
+ name: macos-profdata-${{ matrix.arch }}
+
+ - name: Show artifact info
+ if: ${{ !inputs.generate-pgo }}
+ run: |
+ ls ~/artifact
+ ls ~/artifact/en-US.log
+ ls ~/artifact/merged.profdata
+
+ - name: Build
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
- ZEN_GA_GENERATE_PROFILE: 1
ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
- run: |
- export SURFER_PLATFORM="darwin"
- if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
- export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
- fi
- bash .github/workflows/src/release-build.sh
-
- - name: Generate PGO profile data
- env:
- SURFER_COMPAT: ${{ matrix.arch }}
run: |
set -x
- export LLVM_PROFDATA="$HOME/.mozbuild/clang/bin/llvm-profdata"
- export JARLOG_FILE=en-US.log
- mkdir -p "$HOME/artifact"
- cd engine
- ./mach python ../scripts/download_pgo_extended_corpus.py
- ./mach package
- ./mach python build/pgo/profileserver.py --extended-corpus ./pgo-extended-corpus
- mv merged.profdata "$HOME/artifact/merged.profdata"
- mv en-US.log "$HOME/artifact/en-US.log"
-
- - name: Build Zen
- env:
- SURFER_COMPAT: ${{ matrix.arch }}
- ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
- ZEN_SAFEBROWSING_API_KEY: ${{ secrets.ZEN_SAFEBROWSING_API_KEY }}
- ZEN_MOZILLA_API_KEY: ${{ secrets.ZEN_MOZILLA_API_KEY }}
- ZEN_GOOGLE_LOCATION_SERVICE_API_KEY: ${{ secrets.ZEN_GOOGLE_LOCATION_SERVICE_API_KEY }}
- run: |
export SURFER_PLATFORM="darwin"
+ export ZEN_CROSS_COMPILING=1
+ if test ${{ inputs.generate-pgo }} = true; then
+ export ZEN_GA_GENERATE_PROFILE=1
+ fi
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
export MOZ_BUILD_DATE=${{ inputs.MOZ_BUILD_DATE }}
fi
bash .github/workflows/src/release-build.sh
+ - name: Package instrumented app (PGO stage 1)
+ if: ${{ inputs.generate-pgo }}
+ env:
+ SURFER_COMPAT: ${{ matrix.arch }}
+ ZEN_RELEASE: 1
+ SURFER_PLATFORM: darwin
+ ZEN_CROSS_COMPILING: 1
+ ZEN_GA_GENERATE_PROFILE: 1
+ run: |
+ set -ex
+ cd engine
+ ./mach package
+ mv obj-${{ matrix.arch }}-apple-darwin/dist/*.dmg "$GITHUB_WORKSPACE/zen-macos-pgo-stage1-${{ matrix.arch }}.dmg"
+
+ - name: Upload artifact (PGO stage 1)
+ uses: actions/upload-artifact@v4
+ if: ${{ inputs.generate-pgo }}
+ with:
+ retention-days: 2
+ name: macos-pgo-stage1-${{ matrix.arch }}
+ path: ./zen-macos-pgo-stage1-${{ matrix.arch }}.dmg
+
- name: Package
+ if: ${{ !inputs.generate-pgo }}
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_GA_DISABLE_PGO: true
run: |
+ set -x
export SURFER_PLATFORM="darwin"
+ export ZEN_CROSS_COMPILING=1
export ZEN_RELEASE=1
npm run package
- name: Rename artifacts
+ if: ${{ !inputs.generate-pgo }}
run: |
- echo "Tarballing DMG"
set -ex
mv ./dist/*.dmg ./zen-${{ matrix.arch }}-apple-darwin-dist.dmg
- mv ./engine/obj-${{ matrix.arch }}-apple-darwin/dist/host/bin/mar ./zen-macos-host-mar
mv ./engine/obj-${{ matrix.arch }}-apple-darwin/dist/bin/platform.ini ./platform.ini
- name: Upload dist dmg
uses: actions/upload-artifact@v4
+ if: ${{ !inputs.generate-pgo }}
with:
retention-days: 1
name: zen-${{ matrix.arch }}-apple-darwin-dist.dmg
path: ./zen-${{ matrix.arch }}-apple-darwin-dist.dmg
- - name: Upload host mar
- uses: actions/upload-artifact@v4
- if: matrix.arch == 'aarch64'
- with:
- retention-days: 1
- name: zen-macos-host-mar
- path: ./zen-macos-host-mar
-
- name: Upload platform.ini
uses: actions/upload-artifact@v4
- if: matrix.arch == 'x86_64'
+ if: ${{ !inputs.generate-pgo && matrix.arch == 'x86_64' }}
with:
retention-days: 1
name: platform.ini
diff --git a/.github/workflows/macos-universal-release-build.yml b/.github/workflows/macos-universal-release-build.yml
index 762a92a6d..101d39738 100644
--- a/.github/workflows/macos-universal-release-build.yml
+++ b/.github/workflows/macos-universal-release-build.yml
@@ -99,6 +99,16 @@ jobs:
cd engine
./mach configure
+ - name: Build host mar tool
+ run: |
+ set -ex
+ cd engine
+ echo "ac_add_options --enable-project=tools/update-packaging" > mar-mozconfig
+ echo "mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-mar-tools" >> mar-mozconfig
+ MOZCONFIG=$PWD/mar-mozconfig ./mach build -v
+ cp obj-mar-tools/dist/host/bin/mar ../zen-macos-host-mar
+ rm -rf obj-mar-tools mar-mozconfig
+
- name: Download x86_64 DMG from artifacts
uses: actions/download-artifact@v4
with:
@@ -213,11 +223,6 @@ jobs:
--wait
xcrun stapler staple "zen.macos-universal.dmg"
- - name: Download host mar
- uses: actions/download-artifact@v4
- with:
- name: zen-macos-host-mar
-
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
diff --git a/.github/workflows/windows-profile-build.yml b/.github/workflows/windows-profile-build.yml
index 0984f2d37..694672647 100644
--- a/.github/workflows/windows-profile-build.yml
+++ b/.github/workflows/windows-profile-build.yml
@@ -61,7 +61,6 @@ jobs:
if: ${{ matrix.arch == 'x86_64' }}
run: |
cd C:\artifact
- ls
Expand-Archive -Path .\${{ inputs.profile-data-path-archive }} -DestinationPath C:\artifact
ls
diff --git a/.github/workflows/windows-release-build.yml b/.github/workflows/windows-release-build.yml
index 2f385cd30..e27d50589 100644
--- a/.github/workflows/windows-release-build.yml
+++ b/.github/workflows/windows-release-build.yml
@@ -6,7 +6,7 @@ permissions:
on:
workflow_call:
inputs:
- generate-gpo:
+ generate-pgo:
required: true
type: boolean
default: false
@@ -35,7 +35,7 @@ jobs:
windows-build:
name: Build Windows - ${{ matrix.arch }}
# aarch64 does not need full 16x, and we also dont use full LTO when generating GPO
- runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-gpo && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
+ runs-on: ${{ (inputs.release-branch == 'release' && !inputs.generate-pgo && matrix.arch == 'x86_64') && 'self-hosted' || 'blacksmith-8vcpu-ubuntu-2404' }}
env:
SCCACHE_GHA_ENABLED: ${{ inputs.use-sccache && 'true' || 'false' }}
CARGO_TERM_COLOR: always
@@ -48,7 +48,7 @@ jobs:
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
with:
tool-cache: false
@@ -91,7 +91,7 @@ jobs:
run: npm run surfer -- ci --brand ${{ inputs.release-branch }} --display-version ${{ inputs.build-version }}
- name: Download Firefox and dependencies
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
run: npm run download
- name: win-cross Cache
@@ -104,7 +104,7 @@ jobs:
key: win-cross
- name: Setup for Windows
- if: steps.cache-win-cross.outputs.cache-hit != 'true' && !(inputs.generate-gpo && matrix.arch == 'aarch64')
+ if: steps.cache-win-cross.outputs.cache-hit != 'true' && !(inputs.generate-pgo && matrix.arch == 'aarch64')
run: |
set -x
mkdir -p ~/win-cross
@@ -154,24 +154,26 @@ jobs:
zlib1g-dev \
aria2
echo Setup wine
- aria2c "https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/dQz_aHy8Rl-Lt0xf2WlrMw/artifacts/public/build/wine.tar.zst" -o wine.tar.zst
+ aria2c "https://firefox-ci-tc.services.mozilla.com/api/index/v1/task/gecko.cache.level-3.toolchains.v3.linux64-wine.latest/artifacts/public/build/wine.tar.zst" -o wine.tar.zst
tar --zstd -xf wine.tar.zst -C ~/win-cross
rm wine.tar.zst
echo Setup Visual Studio
./mach python --virtualenv build taskcluster/scripts/misc/get_vs.py build/vs/vs2026.yaml ~/win-cross/vs2026
- name: Import
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
env:
SURFER_COMPAT: ${{ matrix.arch }}
SURFER_CERT_PATCH_ISSUER: ${{ secrets.SURFER_CERT_PATCH_ISSUER }}
SURFER_CERT_PATCH_NAME: ${{ secrets.SURFER_CERT_PATCH_NAME }}
+ SURFER_CERT_PATCH_NAME_PREV: ${{ secrets.SURFER_CERT_PATCH_NAME_PREV }}
+ SURFER_CERT_PATCH_ISSUER_PREV: ${{ secrets.SURFER_CERT_PATCH_ISSUER_PREV }}
run: |
. "$HOME/.cargo/env"
npm run import -- --verbose
- name: Bootstrap
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
run: |
set -x
cd engine/
@@ -189,7 +191,7 @@ jobs:
ls ~/win-cross/vs2026 || true
- name: Setup Rust
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain $(cat .rust-toolchain)
source $HOME/.cargo/env
@@ -208,18 +210,18 @@ jobs:
echo "export MOZ_WINDOWS_RS_DIR=$(pwd)/windows-$WINDOWS_RS_VERSION" >> ../configs/common/mozconfig
- name: Build language packs
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
run: sh scripts/download-language-packs.sh
- name: Download artifact (if use profdata)
uses: actions/download-artifact@v4
- if: ${{ !inputs.generate-gpo && matrix.arch == 'x86_64' }}
+ if: ${{ !inputs.generate-pgo && matrix.arch == 'x86_64' }}
with:
path: ~/artifact
name: windows-profdata-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}
- name: Show artifact info
- if: ${{ !inputs.generate-gpo && matrix.arch == 'x86_64' }}
+ if: ${{ !inputs.generate-pgo && matrix.arch == 'x86_64' }}
run: |
ls ~/artifact
ls ~/artifact/en-US.log
@@ -228,7 +230,7 @@ jobs:
chmod +x ~/artifact/merged.profdata
- name: Build
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_RELEASE_BRANCH: ${{ inputs.release-branch }}
@@ -241,7 +243,7 @@ jobs:
dos2unix configs/windows/mozconfig
export SURFER_PLATFORM="win32"
export ZEN_CROSS_COMPILING=1
- if test ${{ inputs.generate-gpo }} = true; then
+ if test ${{ inputs.generate-pgo }} = true; then
export ZEN_GA_GENERATE_PROFILE=1
fi
if [[ -n ${{ inputs.MOZ_BUILD_DATE }} ]];then
@@ -250,7 +252,7 @@ jobs:
bash .github/workflows/src/release-build.sh
- name: Package
- if: ${{ !(inputs.generate-gpo && matrix.arch == 'aarch64') }}
+ if: ${{ !(inputs.generate-pgo && matrix.arch == 'aarch64') }}
env:
SURFER_COMPAT: ${{ matrix.arch }}
ZEN_GA_DISABLE_PGO: true
@@ -260,18 +262,18 @@ jobs:
export ZEN_CROSS_COMPILING=1
export ZEN_RELEASE=1
npm run package
- mv ./dist/zen-$(npm run --silent surfer -- get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
ls ./dist
+ mv ./dist/zen-$(npm run --silent surfer -- get version | xargs).en-US.win64${{ matrix.arch == 'aarch64' && '-aarch64' || '' }}.zip zen.win64.zip
ls .
- name: Move package for PGO upload
- if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
+ if: ${{ inputs.generate-pgo && matrix.arch == 'x86_64' }}
run: |
set -x
mv ./zen.win64.zip ./zen.win64-pgo-stage-1.zip
- name: Rename artifacts
- if: ${{ !inputs.generate-gpo }}
+ if: ${{ !inputs.generate-pgo }}
run: |
mv ./zen.win64.zip zen.win-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.zip
mv ./dist/output.mar windows${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
@@ -279,14 +281,14 @@ jobs:
- name: Upload artifact (PGO)
uses: actions/upload-artifact@v4
- if: ${{ inputs.generate-gpo && matrix.arch == 'x86_64' }}
+ if: ${{ inputs.generate-pgo && matrix.arch == 'x86_64' }}
with:
retention-days: 2
name: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.profile-data-path-archive }}
path: ./zen.win64-pgo-stage-1.zip
- name: Remove unnecessary files from obj
- if: ${{ !inputs.generate-gpo }}
+ if: ${{ !inputs.generate-pgo }}
run: |
set -x
mkdir obj-${{ matrix.arch }}-pc-windows-msvc/
@@ -301,7 +303,7 @@ jobs:
cp -r --no-dereference engine/obj-${{ matrix.arch }}-pc-windows-msvc/* obj-${{ matrix.arch }}-pc-windows-msvc/ || true
- name: Upload dist object
- if: ${{ !inputs.generate-gpo }}
+ if: ${{ !inputs.generate-pgo }}
uses: actions/upload-artifact@v4
with:
retention-days: 2
@@ -309,7 +311,7 @@ jobs:
path: obj-${{ matrix.arch }}-pc-windows-msvc
- name: Upload artifact (if Twilight branch, installer)
- if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
+ if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-pgo }}
uses: actions/upload-artifact@v4
with:
retention-days: 5
@@ -317,7 +319,7 @@ jobs:
path: ./zen.installer${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.exe
- name: Upload artifact (if Twilight branch, .mar)
- if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
+ if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-pgo }}
uses: actions/upload-artifact@v4
with:
retention-days: 5
@@ -325,7 +327,7 @@ jobs:
path: ./windows${{ matrix.arch == 'aarch64' && '-arm64' || '' }}.mar
- name: Upload artifact (if Twilight branch, update manifests)
- if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-gpo }}
+ if: ${{ inputs.release-branch == 'twilight' && !inputs.generate-pgo }}
uses: actions/upload-artifact@v4
with:
retention-days: 5
diff --git a/.rust-toolchain b/.rust-toolchain
index 88310d7db..4ec3257a1 100644
--- a/.rust-toolchain
+++ b/.rust-toolchain
@@ -1 +1 @@
-1.90
\ No newline at end of file
+1.94.1
\ No newline at end of file
diff --git a/README.md b/README.md
index 290101abd..434e58315 100644
--- a/README.md
+++ b/README.md
@@ -34,8 +34,8 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
### Firefox Versions
-- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `152.0.4`! 🚀
-- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 152.0.4`!
+- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `154.0.1`!
+- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 154.0.1`!
### Contributing
diff --git a/build/firefox-cache/l10n-last-commit-hash b/build/firefox-cache/l10n-last-commit-hash
index 0d260214c..2dbfec531 100644
--- a/build/firefox-cache/l10n-last-commit-hash
+++ b/build/firefox-cache/l10n-last-commit-hash
@@ -1 +1 @@
-3985a970489e32fc751e1b80abf4d5534c905e45
\ No newline at end of file
+bf4b57fd7fe94054457be7018e8e7beaf754c520
\ No newline at end of file
diff --git a/build/windows/sign.ps1 b/build/windows/sign.ps1
index b9301141c..4e0f345da 100644
--- a/build/windows/sign.ps1
+++ b/build/windows/sign.ps1
@@ -3,8 +3,6 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
param(
- [string][Parameter(Mandatory=$true)]$SignIdentity,
- [string][Parameter(Mandatory=$true)]$SignIdentityIssuer,
[string][Parameter(Mandatory=$true)]$GithubRunId
)
@@ -24,11 +22,15 @@ mkdir windsign-temp -ErrorAction SilentlyContinue
# echo "Downloaded git objects repo to"
#} -Verbose -ArgumentList $PWD -Debug
+$token = gh auth token
+
$env:SURFER_MOZCONFIG_ONLY="1"
$env:SURFER_SIGNING_MODE=""
-$env:SURFER_CERT_PATCH_ISSUER=$SignIdentityIssuer
-$env:SURFER_CERT_PATCH_NAME=$SignIdentity
+get-content "$PSScriptRoot/../.env" | foreach {
+ $name, $value = $_.split('=')
+ set-content env:\$name $value
+}
Start-Job -Name "DownloadGitl10n" -ScriptBlock {
param($PWD)
@@ -46,7 +48,6 @@ npm run build
echo "Downloading artifacts info"
$artifactsInfo=gh api repos/zen-browser/desktop/actions/runs/$GithubRunId/artifacts
-$token = gh auth token
function New-TemporaryDirectory {
$tmp = [System.IO.Path]::GetTempPath() # Not $env:TEMP, see https://stackoverflow.com/a/946017
@@ -170,14 +171,16 @@ function SignAndPackage($name) {
echo "Packaging $name"
npm run package -- --verbose
- # In the release script, we do the following:
+ # We assemble the signed bundle as a plain folder here (with no top-level
+ # directory inside it) and compress it into windows-x64-signed-$name.tar.gz
+ # at the end of the script, once every .exe has been signed. The release
+ # workflow expands it back with:
# tar -xvf .github/workflows/object/windows-x64-signed-x86_64.tar.gz -C windows-x64-signed-x86_64
- # We need to create a tar with the same structure and no top-level directory
- # Inside, we need:
+ # Inside the bundle we need:
# - update_manifest/*
# - windows.mar
# - zen.installer.exe
- echo "Creating tar for $name"
+ echo "Preparing signed bundle for $name"
rm .\windsign-temp\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
mkdir windsign-temp\windows-x64-signed-$name
@@ -200,9 +203,8 @@ function SignAndPackage($name) {
# Move the manifest
mv .\dist\update\. windsign-temp\windows-x64-signed-$name\update_manifest
- # note: We need to sign it into a parent folder, called windows-x64-signed-$name
- rmdir .\windsign-temp\windows-binaries\windows-x64-signed-$name -Recurse -ErrorAction SilentlyContinue
- mv windsign-temp\windows-x64-signed-$name .\windsign-temp\windows-binaries -Force
+ # The signed bundle stays in windsign-temp\windows-x64-signed-$name; it is
+ # compressed and uploaded to the staging release once every .exe is signed.
rmdir engine\obj-$objName-pc-windows-msvc\ -Recurse -ErrorAction SilentlyContinue
echo "Finished $name"
@@ -211,16 +213,34 @@ function SignAndPackage($name) {
SignAndPackage arm64
SignAndPackage x86_64
-$files = Get-ChildItem .\windsign-temp\windows-binaries -Recurse -Include *.exe
+$files = Get-ChildItem .\windsign-temp\windows-x64-signed-x86_64, .\windsign-temp\windows-x64-signed-arm64 -Recurse -Include *.exe
signtool.exe sign /n "$SignIdentity" /t http://time.certum.pl/ /fd sha256 /v $files
-echo "All artifacts signed and packaged, ready for release!"
-echo "Commiting the changes to the repository"
-cd windsign-temp\windows-binaries
-git add .
-git commit -m "Sign and package windows artifacts"
-git push
-cd ..\..
+$binariesRepo = "zen-browser/windows-binaries"
+$stagingTag = "windows-signed-$GithubRunId"
+echo "Ensuring staging release $stagingTag exists on $binariesRepo"
+gh release create $stagingTag --repo $binariesRepo --prerelease --title "Windows signed bundles ($GithubRunId)" --notes "Signed Windows bundles for run $GithubRunId, consumed by the release workflow. Safe to delete."
+if ($LASTEXITCODE -ne 0) {
+ throw "Failed to create staging release $stagingTag on $binariesRepo"
+}
+
+foreach ($name in @("x86_64", "arm64")) {
+ $signedDir = ".\windsign-temp\windows-x64-signed-$name"
+ $archive = ".\windsign-temp\windows-x64-signed-$name.tar.gz"
+ echo "Creating compressed tar for $name"
+ Remove-Item $archive -ErrorAction SilentlyContinue
+ tar -czvf $archive -C $signedDir .
+ if ($LASTEXITCODE -ne 0) {
+ throw "Failed to create tar archive for $name"
+ }
+ echo "Uploading $archive to $binariesRepo release $stagingTag"
+ gh release upload $stagingTag $archive --repo $binariesRepo --clobber
+ if ($LASTEXITCODE -ne 0) {
+ throw "Failed to upload $archive to release $stagingTag"
+ }
+}
+
+echo "All artifacts signed, packaged, and uploaded to $binariesRepo release $stagingTag!"
# Cleaning up
diff --git a/configs/branding/release/firefox.icns b/configs/branding/release/firefox.icns
new file mode 100644
index 000000000..87ec9d8b5
Binary files /dev/null and b/configs/branding/release/firefox.icns differ
diff --git a/configs/branding/twilight/firefox.icns b/configs/branding/twilight/firefox.icns
new file mode 100644
index 000000000..2698a9fad
Binary files /dev/null and b/configs/branding/twilight/firefox.icns differ
diff --git a/configs/common/mozconfig b/configs/common/mozconfig
index 22b8e95c5..2adf9d0eb 100644
--- a/configs/common/mozconfig
+++ b/configs/common/mozconfig
@@ -91,11 +91,6 @@ if test "$ZEN_RELEASE"; then
export MOZ_PACKAGE_JSSHELL=1
ac_add_options --disable-crashreporter
-
- # Experimental flag, enabled only on nightly for Firefox.
- # Should bring in some nice performance improvements,
- # but may cause stability issues.
- ac_add_options --enable-replace-malloc
fi
ac_add_options --enable-jxl
diff --git a/configs/macos/mozconfig b/configs/macos/mozconfig
index c838095cd..889f89e74 100644
--- a/configs/macos/mozconfig
+++ b/configs/macos/mozconfig
@@ -7,7 +7,21 @@ unset MOZ_STDCXX_COMPAT
ac_add_options --disable-dmd
ac_add_options --enable-eme=widevine
-if test "$ZEN_RELEASE"; then
+if test "$ZEN_CROSS_COMPILING"; then
+ ZEN_MAC_CROSS="$HOME/mac-cross"
+
+ mk_add_options "export PATH=$ZEN_MAC_CROSS/cctools/bin:$PATH"
+ mk_add_options "export LD_LIBRARY_PATH=$HOME/.mozbuild/clang/lib:$LD_LIBRARY_PATH"
+
+ export MKFSHFS=$ZEN_MAC_CROSS/hfsplus/newfs_hfs
+ export DMG_TOOL=$ZEN_MAC_CROSS/dmg/dmg
+ export HFS_TOOL=$ZEN_MAC_CROSS/dmg/hfsplus
+
+ if test "$ZEN_RELEASE"; then
+ export MOZ_LD64_KNOWN_GOOD=1
+ ac_add_options --enable-linker=ld64
+ fi
+elif test "$ZEN_RELEASE"; then
ALLOWED_SDKS="26.5 26.4"
for SDK in $ALLOWED_SDKS; do
if [ -d "/Library/Developer/CommandLineTools/SDKs/MacOSX${SDK}.sdk" ]; then
@@ -52,13 +66,3 @@ else
export CXXFLAGS="$CXXFLAGS -mcpu=apple-m1"
fi
fi
-
-# Keep using ld64 on PGO/LTO builds because of performance regressions when using lld.
-# Mozilla sets "MOZ_LD64_KNOWN_GOOD" to true when they do automated builds with PGO/LTO on macOS.
-# See https://searchfox.org/firefox-main/rev/e61d59b5c9a651fd7bf28043f87c0dc669833496/build/moz.configure/lto-pgo.configure#261
-# export MOZ_LD64_KNOWN_GOOD=1
-# ac_add_options --enable-linker=ld64
-#
-# if test "$ZEN_RELEASE"; then
-# mk_add_options MOZ_MAKE_FLAGS="-j4"
-# fi
diff --git a/configs/windows/mozconfig b/configs/windows/mozconfig
index 5e599b0e6..cc93620e7 100644
--- a/configs/windows/mozconfig
+++ b/configs/windows/mozconfig
@@ -10,7 +10,6 @@ if test "$ZEN_CROSS_COMPILING"; then
export WINEDEBUG=-all
export MOZ_STUB_INSTALLER=1
- export MOZ_PKG_FORMAT=TAR
export CROSS_BUILD=1
CROSS_COMPILE=1
diff --git a/crowdin.yml b/crowdin.yml
index e8b87dbd1..5ab7e3602 100644
--- a/crowdin.yml
+++ b/crowdin.yml
@@ -26,3 +26,5 @@ files:
translation: browser/browser/zen-boosts.ftl
- source: en-US/browser/browser/zen-space-routing.ftl
translation: browser/browser/zen-space-routing.ftl
+ - source: en-US/browser/browser/zen-command-palette.ftl
+ translation: browser/browser/zen-command-palette.ftl
diff --git a/locales/ar/browser/browser/preferences/zen-preferences.ftl b/locales/ar/browser/browser/preferences/zen-preferences.ftl
index a7b2acc92..ab555b85f 100644
--- a/locales/ar/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ar/browser/browser/preferences/zen-preferences.ftl
@@ -8,17 +8,17 @@ category-zen-looks =
zen-warning-language = تغيير اللغة الافتراضية يمكن أن يجعل من الأسهل على المواقع أن تتبعك.
zen-vertical-tabs-layout-header = تصميم المتصفح
zen-vertical-tabs-layout-description = اختر التخطيط الذي يناسبك بشكل أفضل
-zen-layout-single-toolbar = Single toolbar
-zen-layout-multiple-toolbar = Multiple toolbars
-zen-layout-collapsed-toolbar = Collapsed toolbar
-sync-currently-syncing-workspaces = Other Workspaces
+zen-layout-single-toolbar = الشريط الجانبي فقط
+zen-layout-multiple-toolbar = الشريط الجانبي و العلوي
+zen-layout-collapsed-toolbar = الشريط الجانبي مطوي
+sync-currently-syncing-workspaces = مساحات العمل
sync-engine-workspaces =
- .label = Other Workspaces
+ .label = مساحات العمل
.tooltiptext = مزامنة مساحات العمل الخاصة بك عبر الأجهزة
.accesskey = W
zen-glance-title = لمحة
zen-glance-header = الإعدادات العامة للنظرة
-zen-glance-description = احصل على نظرة عامة سريعة للروابط الخاصة بك دون فتحها في علامة تبويب جديدة
+zen-glance-description = احصل على نظرة عامة سريعة لروابطك دون فتحها في علامة تبويب جديدة
zen-glance-trigger-label = طريقة المشغل
zen-glance-enabled =
.label = تمكين اللمحة
@@ -27,17 +27,21 @@ zen-glance-trigger-ctrl-click =
zen-glance-trigger-alt-click =
.label = Alt + انقر
zen-glance-trigger-shift-click =
- .label = المناوبة + انقر
+ .label = Shift + اضغط
zen-glance-trigger-meta-click =
.label = Meta (Command) + اضغط
zen-look-and-feel-compact-view-header = إظهار في العرض المدمج
-zen-look-and-feel-compact-view-description = فقط إظهار أشرطة الأدوات التي تستخدمها!
+zen-look-and-feel-compact-view-description = فقط إظهار الأشرطة المستعملة!
zen-look-and-feel-compact-view-enabled =
.label = تمكين الوضع المدمج لـ { -brand-short-name }
zen-look-and-feel-compact-view-top-toolbar =
.label = إخفاء شريط الأدوات العلوي أيضا في الوضع المدمج
zen-look-and-feel-compact-toolbar-flash-popup =
.label = اجعل شريط الأدوات منبثقا عند التبديل أو فتح علامات تبويب جديدة في الوضع المدمج
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = إدارة علامة التبويب
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -106,9 +110,9 @@ zen-theme-disable-all-enabled =
.title = تعطيل جميع السمات
zen-theme-disable-all-disabled =
.title = تمكين جميع السمات
-zen-theme-marketplace-description = البحث عن الثيمات وتثبيتها من المتجر.
+zen-theme-marketplace-description = ابحث عن مودات وتثبيتها من المتجر.
zen-theme-marketplace-remove-button =
- .label = إزالة السمة
+ .label = إزالة المود
zen-theme-marketplace-check-for-updates-button =
.label = التحقق من وجود تحديثات
zen-theme-marketplace-import-button =
@@ -125,7 +129,7 @@ zen-theme-marketplace-toggle-enabled-button =
.title = تعطيل السمة
zen-theme-marketplace-toggle-disabled-button =
.title = تمكين السمة
-zen-theme-marketplace-remove-confirmation = هل أنت متأكد من أنك تريد إزالة هذا الوضع؟
+zen-theme-marketplace-remove-confirmation = هل أنت متأكد من أنك تريد إزالة هذا المود؟
zen-theme-marketplace-close-modal = أغلق
zen-theme-marketplace-theme-header-title =
.title = محدد CSS: { $name }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = عرض معلومات الصفحة
zen-find-shortcut = البحث في الصفحة
zen-search-find-again-shortcut = البحث مرة أخرى
zen-search-find-again-shortcut-prev = البحث عن السابق
-zen-search-find-again-shortcut-2 = ابحث مرة أخرى (بديل)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = ضع إشارة مرجعية على هذه الصفحة
zen-bookmark-show-library-shortcut = إظهار مكتبة الإشارات المرجعية
zen-key-stop = إيقاف التحميل
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = التبديل إلى مساحة العمل 9
zen-workspace-shortcut-switch-10 = التبديل إلى مساحة العمل 10
zen-workspace-shortcut-forward = إلى الأمام فضاء العمل
zen-workspace-shortcut-backward = مساحة العمل الخلفية
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = إنشاء مساحة عمل جديدة
zen-sidebar-shortcut-toggle = تبديل عرض شريط العرض
zen-pinned-tab-shortcut-reset = إعادة تعيين علامة التبويب المثبتة إلى عنوان URL المثبت
zen-split-view-shortcut-grid = تبديل عرض تقسيم الشبكة
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = قلب إمكانية الوصول
zen-close-all-unpinned-tabs-shortcut = إغلاق جميع علامات التبويب الغير مثبتة
zen-new-unsynced-window-shortcut = New Unsynced Window
zen-duplicate-tab-shortcut = Duplicate Tab
-zen-key-find-selection = Find Selection
+zen-key-find-selection = البحث عن الاختيار
diff --git a/locales/ar/browser/browser/zen-boosts.ftl b/locales/ar/browser/browser/zen-boosts.ftl
index eb42026a7..2aad2425c 100644
--- a/locales/ar/browser/browser/zen-boosts.ftl
+++ b/locales/ar/browser/browser/zen-boosts.ftl
@@ -11,7 +11,7 @@ zen-boost-edit-reset =
zen-boost-edit-delete =
.label = Delete Boost
zen-boost-size = Size
-zen-boost-case = Case
+zen-boost-case = الحالة
zen-boost-zap = Zap
zen-boost-code = Code
zen-boost-back = Back
@@ -48,9 +48,9 @@ zen-unzap-tooltip =
*[other] { $elementCount } elements zapped
}
zen-boost-save =
- .label = Export Boost
+ .label = تصدير التعزيز
zen-boost-load =
- .label = Import Boost
+ .label = استيراد التعزيز
zen-panel-ui-boosts-exported-message = Boost exported!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
diff --git a/locales/ar/browser/browser/zen-command-palette.ftl b/locales/ar/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/ar/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/ar/browser/browser/zen-general.ftl b/locales/ar/browser/browser/zen-general.ftl
index 688288f1b..8146c46a5 100644
--- a/locales/ar/browser/browser/zen-general.ftl
+++ b/locales/ar/browser/browser/zen-general.ftl
@@ -18,15 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } مملؤة
tab-context-zen-remove-essential =
.label = إزالة من الأساسيات
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] استبدل الرابط الأساسي بـ
- *[false]
- استبدل الرابط المثبت بـ
- الحالي
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = تغيير الاسم...
tab-context-zen-edit-icon =
@@ -49,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = تأكيد
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = تم تغيير اسم التبويب بنجاح!
zen-background-tab-opened-toast = تم فتح علامة تبويب خلفية جديدة!
zen-workspace-renamed-toast = تم تغيير اسم مساحة العمل بنجاح!
@@ -67,6 +75,8 @@ zen-icons-picker-emoji =
.label = ايموجي
zen-icons-picker-svg =
.label = الأيقونات
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = الإجراءات
zen-site-data-settings = الاعدادات
zen-generic-manage = إدارة
@@ -118,6 +128,9 @@ zen-sidebar-notification-updated-heading = اكتمل التحديث!
zen-sidebar-notification-updated-label = ما الجديد في { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = عرض ملاحظات الإصدار
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = شيء معطل؟
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = إعادة التشغيل في الوضع الآمن
diff --git a/locales/ar/browser/browser/zen-space-routing.ftl b/locales/ar/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/ar/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/ar/browser/browser/zen-workspaces.ftl b/locales/ar/browser/browser/zen-workspaces.ftl
index cb267ae7e..c1a4932a3 100644
--- a/locales/ar/browser/browser/zen-workspaces.ftl
+++ b/locales/ar/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = الملف الشخصي
.tooltiptext = تستخدم الملفات الشخصية لفصل ملفات تعريف الارتباط وبيانات الموقع بين المساحات.
zen-workspace-creation-header = إنشاء مساحة
zen-workspace-creation-label = يتم استخدام المساحات لتنظيم علامات التبويب والجلسات الخاصة بك.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = حذف المساحة؟
zen-workspaces-delete-workspace-body = هل أنت متأكد من رغبتك في حذف { $name }؟ لا يمكن التراجع عن هذا الإجراء.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/bg/browser/browser/preferences/zen-preferences.ftl b/locales/bg/browser/browser/preferences/zen-preferences.ftl
index a43ff8124..a6677a1da 100644
--- a/locales/bg/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/bg/browser/browser/preferences/zen-preferences.ftl
@@ -2,26 +2,26 @@
# 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/.
-pane-zen-looks-title = Look and Feel
+pane-zen-looks-title = Визия и усещане
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }
-zen-warning-language = Changing the default language could make it easier for Websites to track you.
-zen-vertical-tabs-layout-header = Browser Layout
-zen-vertical-tabs-layout-description = Choose the layout that suits you best
-zen-layout-single-toolbar = Only Sidebar
-zen-layout-multiple-toolbar = Sidebar and Top Toolbar
-zen-layout-collapsed-toolbar = Collapsed Sidebar
-sync-currently-syncing-workspaces = Workspaces
+zen-warning-language = Промяната на езика по подразбиране може да улесни уебсайтовете да те проследяват.
+zen-vertical-tabs-layout-header = Оформление на браузъра
+zen-vertical-tabs-layout-description = Избери оформлението, което най-добре ви подхожда
+zen-layout-single-toolbar = Само странична лента
+zen-layout-multiple-toolbar = Странична лента и горна лента с инструменти
+zen-layout-collapsed-toolbar = Скрита странична лента
+sync-currently-syncing-workspaces = Работни пространства
sync-engine-workspaces =
- .label = Workspaces
- .tooltiptext = Sync your workspaces across devices
+ .label = Работни пространства
+ .tooltiptext = Синхронизирай работните си пространства на всички устройства
.accesskey = W
-zen-glance-title = Glance
-zen-glance-header = General settings for glance
-zen-glance-description = Get a quick overview of your links without opening them in a new tab
-zen-glance-trigger-label = Trigger method
+zen-glance-title = Бърз поглед
+zen-glance-header = Главни настройки за бърз поглед
+zen-glance-description = Получи бърз преглед на твоите линкове, без да ги отваряш в нов прозорец
+zen-glance-trigger-label = Метод на задействане
zen-glance-enabled =
- .label = Enable Glance
+ .label = Включи бързия поглед
zen-glance-trigger-ctrl-click =
.label = Ctrl + Click
zen-glance-trigger-alt-click =
@@ -30,22 +30,26 @@ zen-glance-trigger-shift-click =
.label = Shift + Click
zen-glance-trigger-meta-click =
.label = Meta (Command) + Click
-zen-look-and-feel-compact-view-header = Show in compact view
-zen-look-and-feel-compact-view-description = Only show the toolbars you use!
+zen-look-and-feel-compact-view-header = Покажи в компактен изглед
+zen-look-and-feel-compact-view-description = Показвай само лентите с инструменти, които използваш!
zen-look-and-feel-compact-view-enabled =
- .label = Enable { -brand-short-name }'s compact mode
+ .label = Активирай компактния режим на { -brand-short-name }
zen-look-and-feel-compact-view-top-toolbar =
- .label = Hide the top toolbar as well in compact mode
+ .label = Скрий и горната лента с инструменти в компактен режим
zen-look-and-feel-compact-toolbar-flash-popup =
- .label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
-pane-zen-tabs-title = Tab Management
+ .label = При превключване или отваряне на нови раздели в компактен режим лентата с инструменти да се показва за кратко
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
+pane-zen-tabs-title = Управление на табове
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
-pane-settings-workspaces-title = Workspaces
+pane-settings-workspaces-title = Работни пространства
zen-tabs-select-recently-used-on-close =
- .label = When closing a tab, switch to the most recently used tab instead of the next tab
+ .label = При затваряне на раздел, преминавайте към най-скоро използвания, а не следващия
zen-tabs-close-on-back-with-no-history =
- .label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
+ .label = Затваряне на раздела и преминаване към раздела на неговия собственик (или към най-скоро използвания раздел) при връщане назад без история
zen-settings-workspaces-sync-unpinned-tabs =
.label = Sync only pinned tabs in workspaces
zen-tabs-cycle-by-attribute =
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/bg/browser/browser/zen-command-palette.ftl b/locales/bg/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/bg/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/bg/browser/browser/zen-general.ftl b/locales/bg/browser/browser/zen-general.ftl
index 3e7defe97..4ce02462c 100644
--- a/locales/bg/browser/browser/zen-general.ftl
+++ b/locales/bg/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = Запълнени слотове: { $num
tab-context-zen-remove-essential =
.label = Премахване от Основни
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Промени етикета...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Потвърди
zen-pinned-tab-replaced = Адресът на закачения раздел беше заменен с текущия адрес!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Разделът беше успешно преименуван!
zen-background-tab-opened-toast = Отворен е нов раздел на заден план!
zen-workspace-renamed-toast = Работното пространство беше преименувано успешно!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Емоджита
zen-icons-picker-svg =
.label = Икони
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Действия
zen-site-data-settings = Настройки
zen-generic-manage = Управление
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Актуализацията е за
zen-sidebar-notification-updated-label = Какво е ново в { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Виж бележките към изданието
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Има проблем?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Рестартирай в безопасен режим
diff --git a/locales/bg/browser/browser/zen-space-routing.ftl b/locales/bg/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/bg/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/bg/browser/browser/zen-workspaces.ftl b/locales/bg/browser/browser/zen-workspaces.ftl
index 7727a2ff2..01ef1f793 100644
--- a/locales/bg/browser/browser/zen-workspaces.ftl
+++ b/locales/bg/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Space?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/bs/browser/browser/preferences/zen-preferences.ftl b/locales/bs/browser/browser/preferences/zen-preferences.ftl
index a43ff8124..0f0ccb122 100644
--- a/locales/bs/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/bs/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Hide the top toolbar as well in compact mode
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/bs/browser/browser/zen-command-palette.ftl b/locales/bs/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/bs/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/bs/browser/browser/zen-general.ftl b/locales/bs/browser/browser/zen-general.ftl
index 709b4575f..5c026accb 100644
--- a/locales/bs/browser/browser/zen-general.ftl
+++ b/locales/bs/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/bs/browser/browser/zen-space-routing.ftl b/locales/bs/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/bs/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/bs/browser/browser/zen-workspaces.ftl b/locales/bs/browser/browser/zen-workspaces.ftl
index 7727a2ff2..01ef1f793 100644
--- a/locales/bs/browser/browser/zen-workspaces.ftl
+++ b/locales/bs/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Space?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/ca/browser/browser/preferences/zen-preferences.ftl b/locales/ca/browser/browser/preferences/zen-preferences.ftl
index 853f16287..d8bc0dd54 100644
--- a/locales/ca/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ca/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Amaga també la barra d'eines superior en el mode compacte
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Fa que la barra d'eines aparegui breument quan canvieu o obriu noves pestanyes en el mode compacte
+zen-look-and-feel-window-drag-header = Arrossegueu la finestra
+zen-look-and-feel-window-drag-description = Mou la finestra arrossegant l'espai buit a la part superior dels llocs web, igual que la barra de títol.
+zen-window-drag-enabled =
+ .label = Permet arrossegar la finestra des de les pàgines web
pane-zen-tabs-title = Gestió de pestanyes
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Mostra la informació de la pàgina
zen-find-shortcut = Cerca a la pàgina
zen-search-find-again-shortcut = Cerca-ho un altre cop
zen-search-find-again-shortcut-prev = Cerca l'anterior
-zen-search-find-again-shortcut-2 = Cerca-ho un altre cop (Alt)
+zen-search-find-again-shortcut-alt = Cerca-ho un altre cop (Alt)
+zen-search-find-again-shortcut-prev-alt = Cerca l'anterior (Alt)
zen-bookmark-this-page-shortcut = Afegeix aquesta pàgina als marcadors
zen-bookmark-show-library-shortcut = Mostra la biblioteca de marcadors
zen-key-stop = Atura la càrrega
diff --git a/locales/ca/browser/browser/zen-command-palette.ftl b/locales/ca/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/ca/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/ca/browser/browser/zen-general.ftl b/locales/ca/browser/browser/zen-general.ftl
index d50b46e7c..a882b1c91 100644
--- a/locales/ca/browser/browser/zen-general.ftl
+++ b/locales/ca/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Elimina dels essencials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Substitueix l'URL essencial per l'actual
- *[false] Substitueix l'URL fixat per l'actual
+ [true] Edita l'URL essencial
+ *[false] Edita l'URL fixada
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Substitueix amb l'URL actual
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edita…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Canvia l'etiqueta...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirma
zen-pinned-tab-replaced = L'URL de la pestanya fixada s'ha substituït per l'URL actual.
+zen-pinned-tab-url-edited = L'URL de la pestanya fixada s'ha actualitzat!
+zen-pinned-tab-url-invalid = Això no sembla una URL vàlida.
+zen-pinned-tab-edit-url-title = Edita l'URL fixada
+zen-pinned-tab-edit-url-label = Introduïu l'URL a la qual ha d'apuntar aquesta pestanya fixada:
zen-tabs-renamed = S'ha canviat el nom de la pestanya correctament
zen-background-tab-opened-toast = S'ha obert una nova pestanya de fons
zen-workspace-renamed-toast = S'ha canviat el nom de l'espai de treball correctament
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icones
+zen-emojis-picker-search =
+ .placeholder = Cerca emojis
urlbar-search-mode-zen_actions = Accions
zen-site-data-settings = Configuració
zen-generic-manage = Gestiona
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Actualització completada!
zen-sidebar-notification-updated-label = Novetats a { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Mostra les notes de la versió
+zen-sidebar-notification-donate-label = Ajudeu-nos { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Feu una donació al projecte
zen-sidebar-notification-restart-safe-mode-label = Alguna cosa no funciona?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reinici en mode segur
diff --git a/locales/ca/browser/browser/zen-space-routing.ftl b/locales/ca/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..9ae2b8e50
--- /dev/null
+++ b/locales/ca/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Configuració de l'encaminament d'espais
+zen-space-routing-rulepanel-placeholder = Les rutes us permeten triar on s'obren llocs específics dins del Zen. Per exemple, podeu encaminar els enllaços del YouTube perquè sempre s'obrin dins del vostre espai personal.
+zen-space-routing-dialog-title = Configuració de l'encaminament d'espais
+zen-space-routing-external-default = Ruta per defecte per a enllaços externs
+zen-space-routing-new-route = Nova ruta
+zen-space-routing-open-in-space = Obre a l'espai
+zen-space-routing-most-recent-space = Espai més recent
+zen-space-routing-close-button =
+ .aria-label = Tanca
+ .tooltiptext = Tanca
+zen-space-routing-contains =
+ .label = Conté
+zen-space-routing-equal-to =
+ .label = És igual a
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Obre a
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Nova pestanya oberta a { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Afegeix una ruta per al domini
+ *[other] Afegeix una ruta per als dominis
+ }
diff --git a/locales/ca/browser/browser/zen-workspaces.ftl b/locales/ca/browser/browser/zen-workspaces.ftl
index d804b5bec..127c5fbc8 100644
--- a/locales/ca/browser/browser/zen-workspaces.ftl
+++ b/locales/ca/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Perfil
.tooltiptext = Els perfils s'utilitzen per separar les galetes i les dades del lloc entre espais.
zen-workspace-creation-header = Creació d'un espai
zen-workspace-creation-label = Els espais s'utilitzen per organitzar les pestanyes i les sessions.
+zen-workspace-default-profile = Per defecte
zen-workspaces-delete-workspace-title = Voleu suprimir l'espai de treball?
zen-workspaces-delete-workspace-body = Esteu segur que voleu suprimir { $name }? Aquesta acció no es pot desfer.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/cs/browser/browser/preferences/zen-preferences.ftl b/locales/cs/browser/browser/preferences/zen-preferences.ftl
index b0194f747..1574529dc 100644
--- a/locales/cs/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/cs/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Skrýt horní panel nástrojů i v kompaktním režimu
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Krátce zobrazit vyskakovací panel nástrojů při přepínání nebo otevírání nových panelů v kompaktním režimu
+zen-look-and-feel-window-drag-header = Táhnutí okna
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Povolit přetahování okna z webových stránek
pane-zen-tabs-title = Správa karet
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Zobrazit informace o stránce
zen-find-shortcut = Najít na stránce
zen-search-find-again-shortcut = Najít znovu
zen-search-find-again-shortcut-prev = Najít předchozí
-zen-search-find-again-shortcut-2 = Najít znovu (Alt)
+zen-search-find-again-shortcut-alt = Najít znovu (Alt)
+zen-search-find-again-shortcut-prev-alt = Najít předchozí (Alt)
zen-bookmark-this-page-shortcut = Přidat záložku
zen-bookmark-show-library-shortcut = Zobrazit knihovnu záložek
zen-key-stop = Zastavit načítání
diff --git a/locales/cs/browser/browser/zen-boosts.ftl b/locales/cs/browser/browser/zen-boosts.ftl
index eb42026a7..5223dce6a 100644
--- a/locales/cs/browser/browser/zen-boosts.ftl
+++ b/locales/cs/browser/browser/zen-boosts.ftl
@@ -3,44 +3,44 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Přejmenovat Boost
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Zamíchat náladu
zen-boost-edit-reset =
- .label = Reset All Edits
+ .label = Obnovit všechny úpravy
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
+ .label = Odstranit Boost
+zen-boost-size = Velikost
zen-boost-case = Case
zen-boost-zap = Zap
zen-boost-code = Code
-zen-boost-back = Back
+zen-boost-back = Zpět
zen-boost-shuffle =
.tooltiptext = Shuffle Boost Settings
zen-boost-invert =
.tooltiptext = Smart Invert Colors
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Pokročilé nastavení barev
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Zakázat úpravy barev
zen-boost-text-case-toggle =
.tooltiptext = Toggle Text Case
zen-boost-css-picker =
.tooltiptext = Pick Selector
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
-zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
-zen-boost-color-original-saturation = Original Saturation
+ .tooltiptext = Otevřít inspektor
+zen-boost-color-contrast = Kontrast
+zen-boost-color-brightness = Jas
+zen-boost-color-original-saturation = Původní sytost
zen-add-zap-helper = Click elements on the page to Zap them
zen-remove-zap-helper = ← Click to Unzap
zen-select-this = Insert selector for this
zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
+zen-select-cancel = Zrušit
zen-zap-this = Zap this
zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+zen-zap-cancel = Zrušit
+zen-zap-done = Hotovo
zen-unzap-tooltip =
{ $elementCount ->
[0] No elements zapped
@@ -48,11 +48,11 @@ zen-unzap-tooltip =
*[other] { $elementCount } elements zapped
}
zen-boost-save =
- .label = Export Boost
+ .label = Exportovat Boost
zen-boost-load =
.label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+zen-panel-ui-boosts-exported-message = Boost exportován!
+zen-site-data-boosts = Boosty
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Vytvořit nový Boost
+zen-boost-rename-boost-prompt = Přejmenovat Boost?
diff --git a/locales/cs/browser/browser/zen-command-palette.ftl b/locales/cs/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..799df2728
--- /dev/null
+++ b/locales/cs/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Přepnout kompaktní režim
+zen-action-open-theme-picker = Otevřít výběr motivu
+zen-action-new-split-view = Nové rozdělení zobrazení
+zen-action-new-folder = Nová složka
+zen-action-copy-current-url = Kopírovat aktuální URL adresu
+zen-action-settings = Nastavení
+zen-action-open-private-window = Otevřít nové anonymní okno
+zen-action-open-new-window = Otevřít nové okno
+zen-action-new-blank-window = Nové prázdné okno
+zen-action-pin-tab = Připnout panel
+zen-action-unpin-tab = Odepnout panel
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = Nový boost
+zen-action-next-space = Další prostor
+zen-action-previous-space = Předchozí prostor
+zen-action-close-tab = Zavřít panel
+zen-action-reload-tab = Obnovit panel
+zen-action-reload-tab-without-cache = Znovu načíst kartu bez mezipaměti
+zen-action-next-tab = Další karta
+zen-action-previous-tab = Předchozí karta
+zen-action-capture-screenshot = Pořídit snímek obrazovky
+zen-action-toggle-tabs-on-right = Přepnout panely vpravo
+zen-action-add-to-essentials = Přídat do Essentials
+zen-action-remove-from-essentials = Odstranit z Essentials
+zen-action-find-in-page = Najít na stránce
+zen-action-manage-extensions = Spravovat rozšíření
+zen-action-switch-to-automatic-appearance = Přepnout na automatický vzhled
+zen-action-switch-to-light-mode = Přepnout do světlého režimu
+zen-action-switch-to-dark-mode = Přepnout do tmavého režimu
+zen-action-print = Tisk
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/cs/browser/browser/zen-general.ftl b/locales/cs/browser/browser/zen-general.ftl
index ca6132599..666109bb0 100644
--- a/locales/cs/browser/browser/zen-general.ftl
+++ b/locales/cs/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } zaplněných slotů
tab-context-zen-remove-essential =
.label = Odstranit z Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Nahradit Essential URL aktuální
- *[false] Nahradit připnutou URL aktuální
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Nahradit současnou URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Upravit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Změnit název...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Potvrdit
zen-pinned-tab-replaced = Připnutá URL adresa panelu byla nahrazena aktuální URL adresou.
+zen-pinned-tab-url-edited = URL připnuté karty byla aktualizována!
+zen-pinned-tab-url-invalid = To nevypadá jako platná URL adresa.
+zen-pinned-tab-edit-url-title = Upravit připnutou adresu URL
+zen-pinned-tab-edit-url-label = Zadejte URL, na kterou by měl tento připnutý panel odkazovat:
zen-tabs-renamed = Panel byl úspěšně přejmenován!
zen-background-tab-opened-toast = Nový panel na pozadí byl otevřen!
zen-workspace-renamed-toast = Pracovní prostor byl úspěšně přejmenován!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emodži
zen-icons-picker-svg =
.label = Ikony
+zen-emojis-picker-search =
+ .placeholder = Vyhledat emoji
urlbar-search-mode-zen_actions = Akce
zen-site-data-settings = Nastavení
zen-generic-manage = Spravovat
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Aktualizace byla dokončena!
zen-sidebar-notification-updated-label = Co je nového v prohlížeči { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Zobrazit změny
+zen-sidebar-notification-donate-label = Podpořte { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Přispět na projekt
zen-sidebar-notification-restart-safe-mode-label = Něco se rozbilo?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restartovat v Nouzovém Režimu
diff --git a/locales/cs/browser/browser/zen-space-routing.ftl b/locales/cs/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..7d0f35e39
--- /dev/null
+++ b/locales/cs/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Otevřít v prostoru
+zen-space-routing-most-recent-space = Nejnovější prostor
+zen-space-routing-close-button =
+ .aria-label = Zavřít
+ .tooltiptext = Zavřít
+zen-space-routing-contains =
+ .label = Obsahuje
+zen-space-routing-equal-to =
+ .label = Je rovno
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Otevřít v
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/cs/browser/browser/zen-workspaces.ftl b/locales/cs/browser/browser/zen-workspaces.ftl
index 529d3514c..c4659c719 100644
--- a/locales/cs/browser/browser/zen-workspaces.ftl
+++ b/locales/cs/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profily se používají k oddělení cookies a údajů webových stránek mezi prostory.
zen-workspace-creation-header = Vytvořte si prostor
zen-workspace-creation-label = Prostory slouží k organizaci Vašich karet a relací.
+zen-workspace-default-profile = Výchozí
zen-workspaces-delete-workspace-title = Odstranit prostor?
zen-workspaces-delete-workspace-body = Opravdu chcete smazat { $name }? Tuto akci nelze vrátit zpět.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/cy/browser/browser/preferences/zen-preferences.ftl b/locales/cy/browser/browser/preferences/zen-preferences.ftl
index 2a24fed35..3ed1d9af4 100644
--- a/locales/cy/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/cy/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Cuddio'r bar offer uchaf hefyd yn y modd cryno
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Gwneud i'r bar offer ymddangos yn fyr wrth newid neu agor tabiau newydd yn y modd cryno
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Rheoli Tabiau
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Gweld Manylion Tudalen
zen-find-shortcut = Canfod ar y Dudalen
zen-search-find-again-shortcut = Canfod Eto
zen-search-find-again-shortcut-prev = Canfod y Blaenorol
-zen-search-find-again-shortcut-2 = Canfod Eto (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Gosod Nod Tudalen i'r Dudalen Hon
zen-bookmark-show-library-shortcut = Dangos Llyfrgell Nodau Tudalen
zen-key-stop = Stopio Llwytho
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Symud i Gofod Gwaith 9
zen-workspace-shortcut-switch-10 = Symud i Gofod Gwaith 10
zen-workspace-shortcut-forward = Gofod Gwaith Ymlaen
zen-workspace-shortcut-backward = Gofod Gwaith Nôl
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Creu Gofod Gwaith Newydd
zen-sidebar-shortcut-toggle = Toglo Lled y Bar Ochr
zen-pinned-tab-shortcut-reset = Ailosod y Tab wedi'i Binio i URL wedi'i Binio
zen-split-view-shortcut-grid = Toglo Grid Golwg Hollt
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = Toglo Hygyrchedd
zen-close-all-unpinned-tabs-shortcut = Cau Pob Tab Heb ei Binio
zen-new-unsynced-window-shortcut = Ffenestr Wag Newydd
zen-duplicate-tab-shortcut = Tab Dyblyg
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Canfod y Dewis
diff --git a/locales/cy/browser/browser/zen-boosts.ftl b/locales/cy/browser/browser/zen-boosts.ftl
index eb42026a7..712ce96b2 100644
--- a/locales/cy/browser/browser/zen-boosts.ftl
+++ b/locales/cy/browser/browser/zen-boosts.ftl
@@ -3,56 +3,56 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Ailenwi Hwb
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Shyfflo Vibes
zen-boost-edit-reset =
- .label = Reset All Edits
+ .label = Ailosod Pob Golygiad
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
-zen-boost-case = Case
-zen-boost-zap = Zap
-zen-boost-code = Code
-zen-boost-back = Back
+ .label = Dileu Hwb
+zen-boost-size = Maint
+zen-boost-case = Maint Nod
+zen-boost-zap = Sap
+zen-boost-code = Côd
+zen-boost-back = Nôl
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Syfflo Gosodiadau Hwb
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Lliwiau Gwrthdroi Clyfar
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Rheolyddion Lliw Uwch
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Analluogi Addasiadau Lliw
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Toglo Priflythreniad Testun
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Dewis Dewisydd
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
-zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
-zen-boost-color-original-saturation = Original Saturation
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+ .tooltiptext = Agor Arolygydd
+zen-boost-color-contrast = Cyferbyniad
+zen-boost-color-brightness = Disgleirdeb
+zen-boost-color-original-saturation = Dirlawnder Gwreiddiol
+zen-add-zap-helper = Cliciwch elfennau ar y dudalen i'w Sapio
+zen-remove-zap-helper = ← Clicio i Ddadsapio
+zen-select-this = Mewnosod dewisydd ar gyfer hwn
+zen-select-related = Mewnosod dewisydd ar gyfer cysylltiedig
+zen-select-cancel = Na
+zen-zap-this = Sapio hwn
+zen-zap-related = Sapio pob elfen gysylltiedig
+zen-zap-cancel = Na
+zen-zap-done = Gorffen
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Dim elfennau wedi'u sapio
+ [1] { $elementCount } elfen wedi'i sapio
+ *[other] { $elementCount } elfan wedi'u sapio
}
zen-boost-save =
- .label = Export Boost
+ .label = Allforio Hwb
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+ .label = Mewnforio Hwb
+zen-panel-ui-boosts-exported-message = Hwb wedi'i allforio!
+zen-site-data-boosts = Hybiau
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Creu hwb newydd
+zen-boost-rename-boost-prompt = Ailenwi Hwb?
diff --git a/locales/cy/browser/browser/zen-command-palette.ftl b/locales/cy/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/cy/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/cy/browser/browser/zen-general.ftl b/locales/cy/browser/browser/zen-general.ftl
index 752f932a3..c86f50f2b 100644
--- a/locales/cy/browser/browser/zen-general.ftl
+++ b/locales/cy/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slotiau wedi'u llenwi
tab-context-zen-remove-essential =
.label = Dileu o'r Hanfodion
.accesskey = D
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Amnewid URL Hanfodol gyda'r Cyfredol
- *[false] Amnewid URL wedi'i binio gyda'r Cyfredol
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
.accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
+ .accesskey = P
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Newid Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Cadarnhau
zen-pinned-tab-replaced = Mae URL y tab wedi'i binio wedi'i newid i'r URL gyfredol!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Mae'r tab wedi cael ei ailenwi'n llwyddiannus!
zen-background-tab-opened-toast = Tab cefndir newydd wedi'i agor!
zen-workspace-renamed-toast = Mae'r Man Gwaith wedi cael ei ailenwi'n llwyddiannus!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Eiconau
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Gweithredoedd
zen-site-data-settings = Gosodiadau
zen-generic-manage = Rheoli
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Diweddariad Wedi'i Gwblhau!
zen-sidebar-notification-updated-label = Beth sy'n newydd yn { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Gweld Nodiadau Rhyddhau
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Rhywbeth wedi torri?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Ailgychwyn yn y Modd Diogel
diff --git a/locales/cy/browser/browser/zen-space-routing.ftl b/locales/cy/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..0e45a7c83
--- /dev/null
+++ b/locales/cy/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Gosodiadau Llwybro Gofod
+zen-space-routing-rulepanel-placeholder = Mae Llwybrau yn gadael i chi ddewis lle mae wefannau penodol yn agor o fewn Zen. Er enghraifft, gallwch lywio dolenni YouTube i agor bob tro o fewn eich gofod Personol.
+zen-space-routing-dialog-title = Gosodiadau Llwybro Gofod
+zen-space-routing-external-default = Llwybr rhagosodedig ar gyfer dolenni allanol
+zen-space-routing-new-route = Llwybr Newydd
+zen-space-routing-open-in-space = Agor mewn Gofod
+zen-space-routing-most-recent-space = Gofod Diweddaraf
+zen-space-routing-close-button =
+ .aria-label = Cau
+ .tooltiptext = Cau
+zen-space-routing-contains =
+ .label = Yn cynnwys
+zen-space-routing-equal-to =
+ .label = Yn Hafal i
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Yn Agor Yn
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/cy/browser/browser/zen-workspaces.ftl b/locales/cy/browser/browser/zen-workspaces.ftl
index 28f2adf99..cd4e3ebc2 100644
--- a/locales/cy/browser/browser/zen-workspaces.ftl
+++ b/locales/cy/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Proffil
.tooltiptext = Mae proffiliau'n cael eu defnyddio i wahanu cwcis a data gwefan rhwng gofodau.
zen-workspace-creation-header = Creu Gofod
zen-workspace-creation-label = Mae gofodau'n cael eu defnyddio i drefnu eich tabiau a'ch sesiynau.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Dileu Gofod Gwaith?
zen-workspaces-delete-workspace-body = Ydych chi'n siŵr eich bod chi eisiau dileu { $name }? Does dim modd dadwneud y weithred hon.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/da/browser/browser/preferences/zen-preferences.ftl b/locales/da/browser/browser/preferences/zen-preferences.ftl
index 9e90de776..3aa0feb0e 100644
--- a/locales/da/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/da/browser/browser/preferences/zen-preferences.ftl
@@ -38,23 +38,27 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Skjul også den øverste værktøjslinje i kompakt tilstand
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Vis kortvarigt værktøjslinjen ved skift eller åbning af nye faner i kompakt tilstand
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Fanehåndtering
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Arbejdsområder
zen-tabs-select-recently-used-on-close =
- .label = When closing a tab, switch to the most recently used tab instead of the next tab
+ .label = Når en fane lukkes, skift til den senest bruge fane i stedet for den næste fane
zen-tabs-close-on-back-with-no-history =
- .label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
+ .label = Luk fanen og skift til dens ejerfane (eller den senest brugte fane), når du går tilbage uden historik
zen-settings-workspaces-sync-unpinned-tabs =
- .label = Sync only pinned tabs in workspaces
+ .label = Synkroniser kun fastgjorte faner i arbejdsområder
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab cycles within Essential or Workspace tabs only
zen-tabs-cycle-ignore-pending-tabs =
- .label = Ignore Pending tabs when cycling with Ctrl+Tab
-zen-tabs-cycle-by-attribute-warning = Ctrl+Tab will cycle by recently used order, as it is enabled
+ .label = Ignorer Ventende faner, når du bruger Ctrl+Tab
+zen-tabs-cycle-by-attribute-warning = Ctrl+Tab cykler efter senest brugte rækkefølge, da det er aktiveret
zen-look-and-feel-compact-toolbar-themed =
- .label = Use themed background for compact toolbar
+ .label = Brug temabaggrund til kompakt værktøjslinje
zen-workspace-continue-where-left-off =
.label = Fortsæt, hvor du slap
pane-zen-pinned-tab-manager-title = Fastgjorte Faner
@@ -85,7 +89,7 @@ zen-settings-workspaces-enabled =
zen-settings-workspaces-hide-default-container-indicator =
.label = Skjul standardindikatoren for beholdere i fanelinjen
zen-key-unsaved = Ikke-gemt genvej! Gem den ved at klikke på "Escape"-tasten efter at have indtastet den igen.
-zen-key-conflict = Conflicts with { $group } -> { $shortcut }
+zen-key-conflict = Konflikter med { $group } -> { $shortcut }
pane-zen-theme-title = Temaindstillinger
zen-vertical-tabs-title = Layout for sidepanel og faner
zen-vertical-tabs-header = Lodrette Faner
@@ -234,7 +238,7 @@ zen-key-exit-full-screen = Afslut fuld skærm
zen-ai-chatbot-sidebar-shortcut = Slå sidepanel for AI-chatbot til/fra
zen-key-inspector-mac = Slå inspektør til/fra (Mac)
zen-toggle-sidebar-shortcut = Slå Firefox-sidepanel til/fra
-zen-toggle-pin-tab-shortcut = Toggle Pin Tab
+zen-toggle-pin-tab-shortcut = Slå fanen Fastgør til/fra
zen-reader-mode-toggle-shortcut-other = Slå Læsertilstand Til/Fra
zen-picture-in-picture-toggle-shortcut = Slå Billede-i-Billede Til/Fra
zen-nav-reload-shortcut-2 = Genindlæs side
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Se sideoplysninger
zen-find-shortcut = Find på side
zen-search-find-again-shortcut = Find igen
zen-search-find-again-shortcut-prev = Find forrige
-zen-search-find-again-shortcut-2 = Find igen (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bogmærk denne side
zen-bookmark-show-library-shortcut = Vis Bogmærkebibliotek
zen-key-stop = Stop indlæsning
@@ -268,7 +273,7 @@ zen-close-tab-shortcut = Luk fane
zen-compact-mode-shortcut-show-sidebar = Flydende sidepanel til/fra
zen-compact-mode-shortcut-show-toolbar = Flydende værktøjslinje til/fra
zen-compact-mode-shortcut-toggle = Kompakt tilstand til/fra
-zen-glance-expand = Expand Glance
+zen-glance-expand = Udvid Glance
zen-workspace-shortcut-switch-1 = Skift til arbejdsområde 1
zen-workspace-shortcut-switch-2 = Skift til arbejdsområde 2
zen-workspace-shortcut-switch-3 = Skift til arbejdsområde 3
@@ -281,14 +286,14 @@ zen-workspace-shortcut-switch-9 = Skift til arbejdsområde 9
zen-workspace-shortcut-switch-10 = Skift til arbejdsområde 10
zen-workspace-shortcut-forward = Fremad Arbejdsområde
zen-workspace-shortcut-backward = Bagudrettet Arbejdsrum
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Opret Nyt Arbejdsrum
zen-sidebar-shortcut-toggle = Skift sidepanelets bredde
zen-pinned-tab-shortcut-reset = Nulstil fastgjort fane til fastgjort URL
zen-split-view-shortcut-grid = Opdelt visning i gitter til/fra
zen-split-view-shortcut-vertical = Lodret opdelt visning til/fra
zen-split-view-shortcut-horizontal = Vandret opdelt visning til/fra
zen-split-view-shortcut-unsplit = Luk opdelt visning
-zen-new-empty-split-view-shortcut = New Empty Split View
+zen-new-empty-split-view-shortcut = Ny Tom Delt Visning
zen-key-select-tab-1 = Vælg fane #1
zen-key-select-tab-2 = Vælg fane #2
zen-key-select-tab-3 = Vælg fane #3
@@ -316,7 +321,7 @@ zen-devtools-toggle-performance-shortcut = Vis/skjul Ydeevne
zen-devtools-toggle-storage-shortcut = Vis/skjul Lager
zen-devtools-toggle-dom-shortcut = Vis/skjul DOM
zen-devtools-toggle-accessibility-shortcut = Vis/skjul Tilgængelighed
-zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
+zen-close-all-unpinned-tabs-shortcut = Luk Alle Ikke Fastgjorte Faner
zen-new-unsynced-window-shortcut = New Unsynced Window
-zen-duplicate-tab-shortcut = Duplicate Tab
-zen-key-find-selection = Find Selection
+zen-duplicate-tab-shortcut = Dupliker Fane
+zen-key-find-selection = Find Valgte
diff --git a/locales/da/browser/browser/zen-boosts.ftl b/locales/da/browser/browser/zen-boosts.ftl
index eb42026a7..aa4dd0e0a 100644
--- a/locales/da/browser/browser/zen-boosts.ftl
+++ b/locales/da/browser/browser/zen-boosts.ftl
@@ -3,44 +3,44 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Omdøb Boost
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Bland Vibes
zen-boost-edit-reset =
.label = Reset All Edits
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
+ .label = Slet Boost
+zen-boost-size = Størrelse
zen-boost-case = Case
zen-boost-zap = Zap
zen-boost-code = Code
-zen-boost-back = Back
+zen-boost-back = Tilbage
zen-boost-shuffle =
.tooltiptext = Shuffle Boost Settings
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Intelligent Invertering af Farver
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Avanceret Farvekontroller
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Deaktiver Farvejusteringer
zen-boost-text-case-toggle =
.tooltiptext = Toggle Text Case
zen-boost-css-picker =
.tooltiptext = Pick Selector
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
-zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
+ .tooltiptext = Åben Inspektør
+zen-boost-color-contrast = Kontrast
+zen-boost-color-brightness = Lysstyrke
zen-boost-color-original-saturation = Original Saturation
zen-add-zap-helper = Click elements on the page to Zap them
zen-remove-zap-helper = ← Click to Unzap
zen-select-this = Insert selector for this
zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
+zen-select-cancel = Annuller
zen-zap-this = Zap this
zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+zen-zap-cancel = Annuller
+zen-zap-done = Færdig
zen-unzap-tooltip =
{ $elementCount ->
[0] No elements zapped
@@ -48,11 +48,11 @@ zen-unzap-tooltip =
*[other] { $elementCount } elements zapped
}
zen-boost-save =
- .label = Export Boost
+ .label = Eksporter Boost
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
+ .label = Importer Boost
+zen-panel-ui-boosts-exported-message = Boost Eksporteret!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Opret ny boost
+zen-boost-rename-boost-prompt = Omdøb Boost?
diff --git a/locales/da/browser/browser/zen-command-palette.ftl b/locales/da/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/da/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/da/browser/browser/zen-general.ftl b/locales/da/browser/browser/zen-general.ftl
index b8181d220..5372ff43b 100644
--- a/locales/da/browser/browser/zen-general.ftl
+++ b/locales/da/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Fjern fra Essentielle
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -41,16 +47,20 @@ pictureinpicture-minimize-btn =
.tooltip = Minimer
zen-panel-ui-gradient-generator-custom-color = Brugerdefineret Farve
zen-copy-current-url-confirmation = Kopieret nuværende URL!
-zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
+zen-copy-current-url-as-markdown-confirmation = Kopierede nuværende URL som Markdown!
zen-general-cancel-label =
.label = Annuller
zen-general-confirm =
.label = Bekræft
zen-pinned-tab-replaced = Den fastgjorte fane-URL blev erstattet med den aktuelle.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Fanen blev omdøbt!
zen-background-tab-opened-toast = Ny baggrundsfane åbnet!
zen-workspace-renamed-toast = Arbejdsområde blev omdøbt!
-zen-split-view-limit-toast = Can't add more panels to the split view!
+zen-split-view-limit-toast = Kan ikke tilføje flere paneler til denne delte visning!
zen-toggle-compact-mode-button =
.label = Kompakt tilstand
.tooltiptext = Kompakt tilstand til/fra
@@ -65,18 +75,20 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Ikoner
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Handlinger
zen-site-data-settings = Indstillinger
zen-generic-manage = Administrer
zen-generic-more = Mere
zen-generic-next = Næste
zen-essentials-promo-label = Add to Essentials
-zen-essentials-promo-sublabel = Keep your favorite tabs just a click away
+zen-essentials-promo-sublabel = Hold dine yndlings faner et klik væk
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Tilladt
zen-site-data-setting-block = Blokeret
-zen-site-data-protections-enabled = Enabled
-zen-site-data-protections-disabled = Disabled
+zen-site-data-protections-enabled = Aktiveret
+zen-site-data-protections-disabled = Deaktiveret
zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension =
.label = Udvidelse
@@ -89,15 +101,15 @@ zen-site-data-manage-addons =
zen-site-data-get-addons =
.label = Tilføj udvidelser
zen-site-data-site-settings =
- .label = All Site Settings
+ .label = Alle Side Indstillinger
zen-site-data-header-share =
- .tooltiptext = Share This Page
+ .tooltiptext = Del Denne Side
zen-site-data-header-reader-mode =
- .tooltiptext = Enter Reader Mode
+ .tooltiptext = Åben Læsertilstand
zen-site-data-header-screenshot =
- .tooltiptext = Take a Screenshot
+ .tooltiptext = Tag et Skærmbillede
zen-site-data-header-bookmark =
- .tooltiptext = Bookmark This Page
+ .tooltiptext = Tilføj Side til Bogmærker
zen-urlbar-copy-url-button =
.tooltiptext = Kopiér URL
zen-site-data-setting-site-protection = Sporingsbeskyttelse
@@ -105,23 +117,26 @@ zen-site-data-setting-site-protection = Sporingsbeskyttelse
# Section: Feature callouts
zen-site-data-panel-feature-callout-title = Et nyt hjem for tilføjelser, tilladelser og mere
-zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
+zen-site-data-panel-feature-callout-subtitle = Klik ikonet for at administrere side indstillinger, se sikkerhedsoplysninger, tilgå udvidelser, og udføre almindelige handlinger.
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
-zen-sidebar-notification-updated-heading = Update Complete!
+zen-sidebar-notification-updated-heading = Opdatering Fuldført!
# See ZenSidebarNotification.mjs to see how these would be used
-zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
+zen-sidebar-notification-updated-label = Hvad er nyt i { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
- .title = View Release Notes
-zen-sidebar-notification-restart-safe-mode-label = Something broke?
+ .title = Se Udgivelsesnoter
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
+zen-sidebar-notification-restart-safe-mode-label = Noget der ikke virker?
zen-sidebar-notification-restart-safe-mode-tooltip =
- .title = Restart in Safe Mode
-zen-window-sync-migration-dialog-title = Keep Your Windows in Sync
-zen-window-sync-migration-dialog-message = Zen now syncs windows on the same device, so changes in one window are reflected across the others instantly.
-zen-window-sync-migration-dialog-learn-more = Learn More
-zen-window-sync-migration-dialog-accept = Got It
+ .title = Genstart i Beskyttet Tilstand
+zen-window-sync-migration-dialog-title = Hold Dine Vinduer Synkroniseret
+zen-window-sync-migration-dialog-message = Zen synkroniserer nu vinduer på samme enhed, så ændringer i et vindue afspejles øjeblikkeligt på tværs af de andre.
+zen-window-sync-migration-dialog-learn-more = Lær Mere
+zen-window-sync-migration-dialog-accept = Forstået
zen-appmenu-new-blank-window =
- .label = New blank window
+ .label = Nyt tomt vindue
diff --git a/locales/da/browser/browser/zen-menubar.ftl b/locales/da/browser/browser/zen-menubar.ftl
index a24d50928..d9889d58b 100644
--- a/locales/da/browser/browser/zen-menubar.ftl
+++ b/locales/da/browser/browser/zen-menubar.ftl
@@ -9,14 +9,14 @@ zen-menubar-toggle-pinned-tabs =
*[false] Collapse Pinned Tabs
}
zen-menubar-appearance =
- .label = Appearance
+ .label = Udseende
zen-menubar-appearance-description =
- .label = Websites will use:
+ .label = Hjemmesider vil bruge:
zen-menubar-appearance-auto =
- .label = Automatic
+ .label = Automatisk
zen-menubar-appearance-light =
- .label = Light
+ .label = Lys
zen-menubar-appearance-dark =
- .label = Dark
+ .label = Mørk
zen-menubar-new-blank-window =
- .label = New Blank Window
+ .label = Nyt Tomt Vindue
diff --git a/locales/da/browser/browser/zen-space-routing.ftl b/locales/da/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..699599a41
--- /dev/null
+++ b/locales/da/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Åben i Arbejdsområde
+zen-space-routing-most-recent-space = Seneste Arbejdsområde
+zen-space-routing-close-button =
+ .aria-label = Luk
+ .tooltiptext = Luk
+zen-space-routing-contains =
+ .label = Indeholder
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Åben i
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/da/browser/browser/zen-split-view.ftl b/locales/da/browser/browser/zen-split-view.ftl
index 5dd6024ab..a35d538dd 100644
--- a/locales/da/browser/browser/zen-split-view.ftl
+++ b/locales/da/browser/browser/zen-split-view.ftl
@@ -5,9 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
- [-1] Split out tab
- [1] Add split view...
- *[other] Join { $tabCount } Tabs
+ [-1] Opdel fane
+ [1] Tilføj opdelt visning...
+ *[other] Sammenføj { $tabCount } Faner
}
.accesskey = S
zen-split-link =
diff --git a/locales/da/browser/browser/zen-vertical-tabs.ftl b/locales/da/browser/browser/zen-vertical-tabs.ftl
index 77325e82f..132ea277a 100644
--- a/locales/da/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/da/browser/browser/zen-vertical-tabs.ftl
@@ -41,7 +41,7 @@ tabbrowser-reset-pin-button =
}
zen-tab-sublabel =
{ $tabSubtitle ->
- [zen-default-pinned] Back to pinned url
- [zen-default-pinned-cmd] Separate from pinned tab
+ [zen-default-pinned] Tilbage til fastgjort url
+ [zen-default-pinned-cmd] Adskil fra fastgjort fane
*[other] { $tabSubtitle }
}
diff --git a/locales/da/browser/browser/zen-workspaces.ftl b/locales/da/browser/browser/zen-workspaces.ftl
index f3208dc65..32be4a5aa 100644
--- a/locales/da/browser/browser/zen-workspaces.ftl
+++ b/locales/da/browser/browser/zen-workspaces.ftl
@@ -4,15 +4,15 @@
zen-panel-ui-workspaces-text = Arbejdsområder
zen-panel-ui-spaces-label =
- .label = Spaces
+ .label = Rum
zen-panel-ui-workspaces-create =
.label = Opret rum
zen-panel-ui-folder-create =
.label = Opret mappe
zen-panel-ui-live-folder-create =
- .label = Live Folder
+ .label = Live Mappe
zen-panel-ui-new-empty-split =
- .label = New Split
+ .label = Ny Opdeling
zen-workspaces-panel-context-delete =
.label = Slet arbejdsområde
.accesskey = D
@@ -23,9 +23,9 @@ zen-workspaces-panel-change-icon =
zen-workspaces-panel-context-default-profile =
.label = Indstil profil
zen-workspaces-panel-unload =
- .label = Unload Space
+ .label = Sæt Rum i Dvale
zen-workspaces-panel-unload-others =
- .label = Unload All Other Spaces
+ .label = Sæt Alle Andre Rum i Dvale
zen-workspaces-how-to-reorder-title = Sådan omarrangerer du rum
zen-workspaces-how-to-reorder-desc = Træk rumikonerne nederst i sidepanelet for at omarrangere dem
zen-workspaces-change-theme =
@@ -37,7 +37,7 @@ zen-workspaces-panel-context-edit =
.label = Rediger arbejdsområde
.accesskey = E
zen-bookmark-edit-panel-workspace-selector =
- .value = Spaces
+ .value = Rum
.accesskey = W
zen-panel-ui-gradient-generator-algo-complementary =
.label = Komplementær
@@ -54,22 +54,23 @@ zen-workspace-creation-name =
.placeholder = Rumnavn
zen-move-tab-to-workspace-button =
.label = Move To...
- .tooltiptext = Move all tabs in this window to a Space
+ .tooltiptext = Bevæg alle faner i dette vindue til et Rum
zen-workspaces-panel-context-reorder =
.label = Omarranger rum
zen-workspace-creation-profile = Profil
.tooltiptext = Profiler bruges til at adskille cookies og webstedsdata mellem forskellige rum.
zen-workspace-creation-header = Opret et rum
zen-workspace-creation-label = Rum bruges til at organisere dine faner og sessioner.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Slet arbejdsområde?
zen-workspaces-delete-workspace-body = Er du sikker på, at du vil slette { $name }? Dette kan ikke fortrydes.
# Note that the html tag MUST not be changed or removed, as it is used to better
# display the shortcut in the toast notification.
-zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use { $shortcut } to undo.
+zen-workspaces-close-all-unpinned-tabs-toast = Faner Lukket! Brug { $shortcut } for at fortryd.
zen-workspaces-close-all-unpinned-tabs-title =
- .label = Clear
- .tooltiptext = Close all unpinned tabs
+ .label = Ryd
+ .tooltiptext = Luk alle ikke-fastgjorte faner
zen-panel-ui-workspaces-change-forward =
- .label = Next Space
+ .label = Nyt Rum
zen-panel-ui-workspaces-change-back =
- .label = Previous Space
+ .label = Tidligere Rum
diff --git a/locales/de/browser/browser/preferences/zen-preferences.ftl b/locales/de/browser/browser/preferences/zen-preferences.ftl
index d58554d05..715672499 100644
--- a/locales/de/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/de/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Die obere Symbolleiste auch im Kompaktmodus ausblenden
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Symbolleiste im Kompaktmodus beim Wechseln oder Öffnen neuer Tabs kurz einblenden
+zen-look-and-feel-window-drag-header = Fenster ziehen
+zen-look-and-feel-window-drag-description = Verschiebe das Fenster, indem du leeren Platz an der Spitze der Webseite ziehst, genau wie die Titelleiste.
+zen-window-drag-enabled =
+ .label = Erlaube das Ziehen des Fensters einer Webseite
pane-zen-tabs-title = Tab-Verwaltung
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -54,7 +58,7 @@ zen-tabs-cycle-ignore-pending-tabs =
.label = Ausstehende Tabs beim Wechseln mit Strg+Tab ignorieren
zen-tabs-cycle-by-attribute-warning = Strg+Tab wechselt in der zuletzt verwendeten Reihenfolge, da diese Option aktiviert ist
zen-look-and-feel-compact-toolbar-themed =
- .label = Theme-Hintergrund für kompakte Symbolleiste verwenden
+ .label = Design-Hintergrund für kompakte Symbolleiste verwenden
zen-workspace-continue-where-left-off =
.label = Dort fortfahren, wo du aufgehört hast
pane-zen-pinned-tab-manager-title = Angeheftete Tabs
@@ -64,7 +68,7 @@ zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Angeheftete Tabs beim Start auf ihre ursprüngliche URL zurücksetzen
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Container-spezifische Essentials aktivieren
-zen-pinned-tab-manager-close-shortcut-behavior-label = Verhalten der Tastenkombination zum Schließen von Tabs
+zen-pinned-tab-manager-close-shortcut-behavior-label = Verhalten des Tastenkürzels zum Schließen von Tabs
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
.label = URL zurücksetzen, entladen und zum nächsten Tab wechseln
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
@@ -79,7 +83,7 @@ zen-pinned-tab-manager-close-close-shortcut-option =
.label = Tab schließen
pane-zen-workspaces-header = Arbeitsbereiche
zen-settings-workspaces-header = Allgemeine Einstellungen für Arbeitsbereiche
-zen-settings-workspaces-description = Mit Arbeitsbereichen kannst du mehrere Browser-Sitzungen gleichzeitig haben
+zen-settings-workspaces-description = Mit Arbeitsbereichen kannst du mehrere Browser-Sitzungen gleichzeitig haben!
zen-settings-workspaces-enabled =
.label = Arbeitsbereiche aktivieren (experimentell)
zen-settings-workspaces-hide-default-container-indicator =
@@ -91,16 +95,16 @@ zen-vertical-tabs-title = Seitenleiste und Tab-Layout
zen-vertical-tabs-header = Vertikale Tabs
zen-vertical-tabs-description = Verwalte deine Tabs in einem vertikalen Layout
zen-vertical-tabs-show-expand-button =
- .label = Erweitern-Schaltfläche anzeigen
+ .label = Ausklapp-Button anzeigen
zen-vertical-tabs-newtab-on-tab-list =
.label = „Neuer Tab“-Button in der Tab-Liste anzeigen
zen-vertical-tabs-newtab-top-button-up =
.label = Schaltfläche „Neuer Tab“ nach oben verschieben
-zen-vertical-tabs-expand-tabs-by-default = Tabs standardmäßig erweitern
-zen-vertical-tabs-dont-expand-tabs-by-default = Tabs standardmäßig nicht erweitern
+zen-vertical-tabs-expand-tabs-by-default = Tabs standardmäßig ausklappen
+zen-vertical-tabs-dont-expand-tabs-by-default = Tabs standardmäßig nicht ausklappen
zen-vertical-tabs-expand-tabs-on-hover = Tabs beim Drüberfahren erweitern (funktioniert nicht im Kompaktmodus)
-zen-vertical-tabs-expand-tabs-header = Wie Tabs erweitert werden sollen
-zen-vertical-tabs-expand-tabs-description = Wähle aus, wie Tabs in der Seitenleiste erweitert werden sollen
+zen-vertical-tabs-expand-tabs-header = Wie Tabs ausgeklappt werden
+zen-vertical-tabs-expand-tabs-description = Wähle aus, wie Tabs in der Seitenleiste ausgeklappt werden
zen-theme-marketplace-header = Zen-Mods
zen-theme-disable-all-enabled =
.title = Alle Mods deaktivieren
@@ -142,7 +146,7 @@ zen-theme-marketplace-link = Store besuchen
zen-dark-theme-styles-header = Dunkles Design
zen-dark-theme-styles-description = Passe das dunkle Design nach deinen Wünschen an
zen-dark-theme-styles-amoled = Nacht-Design
-zen-dark-theme-styles-default = Standardmäßiges dunkles Design
+zen-dark-theme-styles-default = Dunkles Standard-Design
zen-dark-theme-styles-colorful = Farbenfrohes dunkles Design
zen-compact-mode-styles-left = Tab-Leiste ausblenden
zen-compact-mode-styles-top = Obere Leiste ausblenden
@@ -208,7 +212,7 @@ zen-picture-in-picture-toggle-shortcut-mac = Bild-im-Bild umschalten (Mac)
zen-picture-in-picture-toggle-shortcut-mac-alt = Bild-im-Bild umschalten (Mac Alternative)
zen-page-source-shortcut-safari = Seitenquelltext (Safari)
zen-nav-stop-shortcut = Navigation stoppen
-zen-history-sidebar-shortcut = Verlaufs-Seitenleiste
+zen-history-sidebar-shortcut = Verlaufs-Seitenleiste anzeigen
zen-window-minimize-shortcut = Fenster minimieren
zen-help-shortcut = Hilfe öffnen
zen-preferences-shortcut = Einstellungen öffnen
@@ -238,13 +242,14 @@ zen-toggle-pin-tab-shortcut = Tab anheften/lösen
zen-reader-mode-toggle-shortcut-other = Lesemodus umschalten
zen-picture-in-picture-toggle-shortcut = Bild-im-Bild umschalten
zen-nav-reload-shortcut-2 = Seite neu laden
-zen-key-about-processes = Über Prozesse
+zen-key-about-processes = Prozess-Manager öffnen
zen-page-source-shortcut = Seitenquelltext anzeigen
zen-page-info-shortcut = Seiteninformationen anzeigen
zen-find-shortcut = Auf Seite suchen
zen-search-find-again-shortcut = Weitersuchen
zen-search-find-again-shortcut-prev = Vorheriges suchen
-zen-search-find-again-shortcut-2 = Weitersuchen (Alt)
+zen-search-find-again-shortcut-alt = Erneut suchen (Alt)
+zen-search-find-again-shortcut-prev-alt = Vorherigen suchen (Alt)
zen-bookmark-this-page-shortcut = Diese Seite als Lesezeichen speichern
zen-bookmark-show-library-shortcut = Lesezeichen-Bibliothek anzeigen
zen-key-stop = Laden stoppen
@@ -255,7 +260,7 @@ zen-full-zoom-reset-shortcut-alt = Zoom zurücksetzen (Alt)
zen-full-zoom-enlarge-shortcut-alt = Hineinzoomen (Alt)
zen-full-zoom-enlarge-shortcut-alt2 = Hineinzoomen (Alt 2)
zen-bidi-switch-direction-shortcut = Text-Richtung wechseln
-zen-private-browsing-shortcut = Privaten Modus öffnen
+zen-private-browsing-shortcut = Privates Fenster öffnen
zen-screenshot-shortcut = Bildschirmfoto erstellen
zen-key-sanitize = Browser-Daten löschen
zen-quit-app-shortcut = Anwendung beenden
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Zu Arbeitsbereich 9 wechseln
zen-workspace-shortcut-switch-10 = Zu Arbeitsbereich 10 wechseln
zen-workspace-shortcut-forward = Zum nächsten Arbeitsbereich wechseln
zen-workspace-shortcut-backward = Zum vorherigen Arbeitsbereich wechseln
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Neuen Arbeitsbereich erstellen
zen-sidebar-shortcut-toggle = Seitenleisten-Breite umschalten
zen-pinned-tab-shortcut-reset = Angehefteten Tab zurücksetzen
zen-split-view-shortcut-grid = Raster-Layout für geteilte Ansicht umschalten
@@ -303,20 +308,20 @@ zen-key-goto-history = Zum Verlauf gehen
zen-key-go-home = Zur Startseite gehen
zen-bookmark-show-sidebar-shortcut = Lesezeichen-Seitenleiste anzeigen
zen-bookmark-show-toolbar-shortcut = Lesezeichen-Symbolleiste anzeigen
-zen-devtools-toggle-shortcut = Entwicklertools umschalten
+zen-devtools-toggle-shortcut = Entwicklerwerkzeuge umschalten
zen-devtools-toggle-browser-toolbox-shortcut = Browser-Toolbox umschalten
zen-devtools-toggle-browser-console-shortcut = Browser-Konsole umschalten
zen-devtools-toggle-responsive-design-mode-shortcut = Responsive-Design-Modus umschalten
zen-devtools-toggle-inspector-shortcut = Inspektor umschalten
zen-devtools-toggle-web-console-shortcut = Web-Konsole umschalten
zen-devtools-toggle-js-debugger-shortcut = JavaScript-Debugger umschalten
-zen-devtools-toggle-net-monitor-shortcut = Netzwerk-Monitor umschalten
+zen-devtools-toggle-net-monitor-shortcut = Netzwerkanalyse umschalten
zen-devtools-toggle-style-editor-shortcut = Stil-Editor umschalten
-zen-devtools-toggle-performance-shortcut = Performance umschalten
+zen-devtools-toggle-performance-shortcut = Leistung umschalten
zen-devtools-toggle-storage-shortcut = Speicher umschalten
zen-devtools-toggle-dom-shortcut = DOM umschalten
zen-devtools-toggle-accessibility-shortcut = Barrierefreiheit umschalten
zen-close-all-unpinned-tabs-shortcut = Alle nicht angehefteten Tabs schließen
zen-new-unsynced-window-shortcut = Neues leeres Fenster
zen-duplicate-tab-shortcut = Tab duplizieren
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Auswahl suchen
diff --git a/locales/de/browser/browser/zen-boosts.ftl b/locales/de/browser/browser/zen-boosts.ftl
index 3dc0465ed..c2164344a 100644
--- a/locales/de/browser/browser/zen-boosts.ftl
+++ b/locales/de/browser/browser/zen-boosts.ftl
@@ -11,7 +11,7 @@ zen-boost-edit-reset =
zen-boost-edit-delete =
.label = Boost löschen
zen-boost-size = Größe
-zen-boost-case = Case
+zen-boost-case = Schreibweise
zen-boost-zap = Zap
zen-boost-code = Code
zen-boost-back = Zurück
@@ -32,25 +32,25 @@ zen-boost-css-inspector =
zen-boost-color-contrast = Kontrast
zen-boost-color-brightness = Helligkeit
zen-boost-color-original-saturation = Ausgangssättigung
-zen-add-zap-helper = Klicke auf Elemente auf der Seite, um sie mit Zap zu markieren
-zen-remove-zap-helper = ← Erneut klicken zum Wiederherstellen
+zen-add-zap-helper = Klicke auf Elemente der Seite, um sie zu zappen
+zen-remove-zap-helper = ← Klicken zum Entzappen
zen-select-this = Selektor für dieses Element einfügen
zen-select-related = Selektor für verwandte Elemente einfügen
zen-select-cancel = Abbrechen
-zen-zap-this = Dieses entfernen
-zen-zap-related = Alle verwandten Elemente entfernen
+zen-zap-this = Dieses Element zappen
+zen-zap-related = Alle verwandten Elemente zappen
zen-zap-cancel = Abbrechen
zen-zap-done = Fertig
zen-unzap-tooltip =
{ $elementCount ->
- [0] Keine Elemente entfernt
- [1] { $elementCount } Element entfernt
- *[other] { $elementCount } Elemente entfernt
+ [0] Keine Elemente gezappt
+ [1] { $elementCount } Element gezappt
+ *[other] { $elementCount } Elemente gezappt
}
zen-boost-save =
- .label = Export Boost
+ .label = Boost exportieren
zen-boost-load =
- .label = Import Boost
+ .label = Boost importieren
zen-panel-ui-boosts-exported-message = Boost exportiert!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
diff --git a/locales/de/browser/browser/zen-command-palette.ftl b/locales/de/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..e701fa447
--- /dev/null
+++ b/locales/de/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Kompakten Modus umschalten
+zen-action-open-theme-picker = Theme-Auswahl öffnen
+zen-action-new-split-view = Neue geteilte Ansicht
+zen-action-new-folder = Neuer Ordner
+zen-action-copy-current-url = Aktuelle URL kopieren
+zen-action-settings = Einstellungen
+zen-action-open-private-window = Privates Fenster öffnen
+zen-action-open-new-window = Neues Fenster öffnen
+zen-action-new-blank-window = Neues leeres Fenster
+zen-action-pin-tab = Tab anheften
+zen-action-unpin-tab = Tab lösen
+zen-action-open-space-routing = Arbeitsbereich-Routing öffnen
+zen-action-new-boost = Neuer Boost
+zen-action-next-space = Neuer Arbeitsbereich
+zen-action-previous-space = Vorheriger Arbeitsbereich
+zen-action-close-tab = Tab schließen
+zen-action-reload-tab = Tab neu laden
+zen-action-reload-tab-without-cache = Tab ohne Cache neu laden
+zen-action-next-tab = Nächster Tab
+zen-action-previous-tab = Vorherige Tab
+zen-action-capture-screenshot = Screenshot erstellen
+zen-action-toggle-tabs-on-right = Tab nach rechts umschalten
+zen-action-add-to-essentials = Zu Essentials hinzufügen
+zen-action-remove-from-essentials = Von Essentials entfernen
+zen-action-find-in-page = In Seite suchen
+zen-action-manage-extensions = Erweiterungen verwalten
+zen-action-switch-to-automatic-appearance = Zur automatischen Darstellung wechseln
+zen-action-switch-to-light-mode = Zum hellen Modus wechseln
+zen-action-switch-to-dark-mode = Zum dunklen Modus wechseln
+zen-action-print = Drucken
+zen-action-focus-on = Fokussieren auf
+zen-action-extension = Erweiterung
diff --git a/locales/de/browser/browser/zen-general.ftl b/locales/de/browser/browser/zen-general.ftl
index 66b8d4849..04c4f8472 100644
--- a/locales/de/browser/browser/zen-general.ftl
+++ b/locales/de/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } Plätzen belegt
tab-context-zen-remove-essential =
.label = Aus Essentials entfernen
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Essential-URL durch aktuelle ersetzen
- *[false] Angeheftete URL durch aktuelle ersetzen
+ [true] Essentials URL bearbeiten
+ *[false] Angeheftete URL bearbeiten
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Mit aktueller URL ersetzen
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Bearbeiten...
+ .accesskey = E
tab-context-zen-edit-title =
.label = Titel ändern...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Bestätigen
zen-pinned-tab-replaced = Die URL des angehefteten Tabs wurde aktualisiert!
+zen-pinned-tab-url-edited = Angeheftete URL wurde aktualisiert!
+zen-pinned-tab-url-invalid = Das sieht nicht nach einer gültigen URL aus.
+zen-pinned-tab-edit-url-title = Angeheftete URL bearbeiten
+zen-pinned-tab-edit-url-label = Gib die URL an, auf die der angeheftete Tab verweisen soll:
zen-tabs-renamed = Tab umbenannt!
zen-background-tab-opened-toast = Neuer Tab im Hintergrund geöffnet!
zen-workspace-renamed-toast = Arbeitsbereich umbenannt!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Symbole
+zen-emojis-picker-search =
+ .placeholder = Emojis durchsuchen
urlbar-search-mode-zen_actions = Aktionen
zen-site-data-settings = Einstellungen
zen-generic-manage = Verwalten
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update abgeschlossen!
zen-sidebar-notification-updated-label = Was in { -brand-short-name } neu ist
zen-sidebar-notification-updated-tooltip =
.title = Versionshinweise anzeigen
+zen-sidebar-notification-donate-label = Unterstütze { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Spende für das Projekt
zen-sidebar-notification-restart-safe-mode-label = Funktioniert etwas nicht?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Im abgesicherten Modus neu starten
diff --git a/locales/de/browser/browser/zen-space-routing.ftl b/locales/de/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d8ab60f27
--- /dev/null
+++ b/locales/de/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Einstellungen für Arbeitsbereich-Routing
+zen-space-routing-rulepanel-placeholder = Mit Routen legst du fest, wo bestimmte Websites in Zen geöffnet werden. Du kannst zum Beispiel YouTube-Links immer in deinem privaten Arbeitsbereich öffnen lassen.
+zen-space-routing-dialog-title = Einstellungen für Arbeitsbereich-Routing
+zen-space-routing-external-default = Standardroute für externe Links
+zen-space-routing-new-route = Neue Route
+zen-space-routing-open-in-space = Im Arbeitsbereich öffnen
+zen-space-routing-most-recent-space = Zuletzt genutzter Arbeitsbereich
+zen-space-routing-close-button =
+ .aria-label = Schließen
+ .tooltiptext = Schließen
+zen-space-routing-contains =
+ .label = Enthält
+zen-space-routing-equal-to =
+ .label = Ist gleich
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Öffnen in
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Neuer Tab in { $targetWorkspace } geöffnet
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Route für Domain hinzufügen
+ *[other] Route für Domains hinzufügen
+ }
diff --git a/locales/de/browser/browser/zen-split-view.ftl b/locales/de/browser/browser/zen-split-view.ftl
index d230a24cb..9461629fb 100644
--- a/locales/de/browser/browser/zen-split-view.ftl
+++ b/locales/de/browser/browser/zen-split-view.ftl
@@ -6,13 +6,13 @@ tab-zen-split-tabs =
.label =
{ $tabCount ->
[-1] Tab abtrennen
- [1] Split View hinzufügen...
+ [1] Geteilte Ansicht hinzufügen…
*[other] { $tabCount } Tabs zusammenführen
}
.accesskey = S
zen-split-link =
- .label = Link in geteiltem Tab öffnen
- .accesskey = S
+ .label = Link in geteilter Ansicht öffnen
+ .accesskey = G
zen-split-view-modifier-header = Geteilte Ansicht
zen-split-view-modifier-activate-reallocation =
.label = Anordnung ändern
diff --git a/locales/de/browser/browser/zen-vertical-tabs.ftl b/locales/de/browser/browser/zen-vertical-tabs.ftl
index 633973af8..a2c3a7fde 100644
--- a/locales/de/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/de/browser/browser/zen-vertical-tabs.ftl
@@ -16,10 +16,10 @@ zen-toolbar-context-compact-mode-just-toolbar =
.label = Nur Symbolleiste ausblenden
zen-toolbar-context-compact-mode-hide-both =
.label = Beides ausblenden
- .accesskey = H
+ .accesskey = B
zen-toolbar-context-move-to-folder =
.label = In Ordner verschieben...
- .accesskey = M
+ .accesskey = O
zen-toolbar-context-new-folder =
.label = Neuer Ordner
.accesskey = N
diff --git a/locales/de/browser/browser/zen-welcome.ftl b/locales/de/browser/browser/zen-welcome.ftl
index d46b7759a..41757708e 100644
--- a/locales/de/browser/browser/zen-welcome.ftl
+++ b/locales/de/browser/browser/zen-welcome.ftl
@@ -2,24 +2,24 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-zen-welcome-title-line1 = Willkommen zu
+zen-welcome-title-line1 = Willkommen in
zen-welcome-title-line2 = einem ruhigeren Internet
zen-welcome-import-title = Ein neuer Anfang, dieselben Lesezeichen
zen-welcome-import-description-1 = Deine Lesezeichen, dein Verlauf und deine Passwörter sind wie eine Spur durch das Internet – lass sie nicht zurück!
zen-welcome-import-description-2 = Übertrage sie ganz einfach aus einem anderen Browser und mache genau dort weiter, wo du aufgehört hast.
zen-welcome-import-button = Jetzt importieren
zen-welcome-set-default-browser = { -brand-short-name } als Standardbrowser festlegen
-zen-welcome-dont-set-default-browser = { -brand-short-name } nicht als Standardbrowser festlegen
+zen-welcome-dont-set-default-browser = { -brand-short-name } NICHT als Standardbrowser festlegen
zen-welcome-initial-essentials-title = Deine wichtigsten Tabs, immer in Reichweite
zen-welcome-initial-essentials-description-1 = Halte deine wichtigsten Tabs leicht zugänglich und immer griffbereit, egal wie viele du öffnest.
-zen-welcome-initial-essentials-description-2 = Essential-Tabs sind immer sichtbar, unabhängig davon, in welchem Arbeitsbereich du dich befindest.
+zen-welcome-initial-essentials-description-2 = Essential-Tabs sind immer sichtbar, egal in welchem Arbeitsbereich du bist.
zen-welcome-workspace-colors-title = Deine Arbeitsbereiche, deine Farben
zen-welcome-workspace-colors-description = Personalisiere deinen Browser, indem du jedem Arbeitsbereich eine eigene Farbidentität gibst.
zen-welcome-start-browsing-title =
Alles bereit?
Los geht's!
zen-welcome-start-browsing-description-1 = Du bist startklar! Klicke auf den Button unten, um mit { -brand-short-name } loszulegen.
-zen-welcome-start-browsing = Los geht's!
+zen-welcome-start-browsing = Loslegen!
zen-welcome-default-search-title = Deine Standard-Suchmaschine
zen-welcome-default-search-description = Wähle deine Standard-Suchmaschine. Du kannst sie jederzeit später ändern!
zen-welcome-skip-button = Überspringen
diff --git a/locales/de/browser/browser/zen-workspaces.ftl b/locales/de/browser/browser/zen-workspaces.ftl
index 829e1f606..bf18b4e89 100644
--- a/locales/de/browser/browser/zen-workspaces.ftl
+++ b/locales/de/browser/browser/zen-workspaces.ftl
@@ -12,10 +12,10 @@ zen-panel-ui-folder-create =
zen-panel-ui-live-folder-create =
.label = Live-Ordner
zen-panel-ui-new-empty-split =
- .label = Neuen Split erstellen
+ .label = Neue geteilte Ansicht
zen-workspaces-panel-context-delete =
.label = Arbeitsbereich löschen
- .accesskey = D
+ .accesskey = L
zen-workspaces-panel-change-name =
.label = Namen ändern
zen-workspaces-panel-change-icon =
@@ -32,13 +32,13 @@ zen-workspaces-change-theme =
.label = Design anpassen
zen-workspaces-panel-context-open =
.label = Arbeitsbereich öffnen
- .accesskey = O
+ .accesskey = ö
zen-workspaces-panel-context-edit =
.label = Arbeitsbereich bearbeiten
.accesskey = E
zen-bookmark-edit-panel-workspace-selector =
.value = Arbeitsbereiche
- .accesskey = W
+ .accesskey = A
zen-panel-ui-gradient-generator-algo-complementary =
.label = Komplementär
zen-panel-ui-gradient-generator-algo-splitComplementary =
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profile trennen Cookies und Website-Daten zwischen verschiedenen Arbeitsbereichen.
zen-workspace-creation-header = Arbeitsbereich erstellen
zen-workspace-creation-label = Arbeitsbereiche helfen dir, deine Tabs und Sitzungen zu organisieren.
+zen-workspace-default-profile = Standard
zen-workspaces-delete-workspace-title = Arbeitsbereich löschen?
zen-workspaces-delete-workspace-body = Möchtest du { $name } wirklich löschen? Das lässt sich nicht rückgängig machen.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/el/browser/browser/preferences/zen-preferences.ftl b/locales/el/browser/browser/preferences/zen-preferences.ftl
index 61e2f7bdd..b39e2e77b 100644
--- a/locales/el/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/el/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Απόκρυψη και της επάνω γραμμής εργαλείων σε συμπαγή λειτουργία
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Σύντομη ανάδυση της γραμμής εργαλείων κατά την εναλλαγή ή το άνοιγμα νέων καρτελών σε συμπαγή λειτουργία
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Διαχείριση Καρτελών
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Προβολή Πληροφοριών Σελίδας
zen-find-shortcut = Εύρεση στη Σελίδα
zen-search-find-again-shortcut = Εύρεση Ξανά
zen-search-find-again-shortcut-prev = Εύρεση Προηγουμένου
-zen-search-find-again-shortcut-2 = Εύρεση Ξανά (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Σελιδοδείκτης στη Σελίδα
zen-bookmark-show-library-shortcut = Εμφάνιση Βιβλιοθήκης Σελιδοδεικτών
zen-key-stop = Διακοπή Φόρτωσης
diff --git a/locales/el/browser/browser/zen-command-palette.ftl b/locales/el/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/el/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/el/browser/browser/zen-general.ftl b/locales/el/browser/browser/zen-general.ftl
index 7e9c8c2ff..09c9dd9d4 100644
--- a/locales/el/browser/browser/zen-general.ftl
+++ b/locales/el/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } γεμισμένες
tab-context-zen-remove-essential =
.label = Αφαίρεση από Απαραίτητα
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Αντικατάσταση Απαραίτητης διεύθυνσής με την τωρινή
- *[false] Αντικατάσταση Καρφιτσωμένης διεύθυνσής με την τωρινή
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Αλλαγή Ετικέτας...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Επιβεβαίωση
zen-pinned-tab-replaced = Το URL της καρφιτσωμένης καρτέλας έχει αντικατασταθεί από το τρέχον URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Η καρτέλα μετονομάστηκε επιτυχώς!
zen-background-tab-opened-toast = Άνοιξε νέα καρτέλα στο παρασκήνιο!
zen-workspace-renamed-toast = Ο χώρος εργασίας μετονομάστηκε επιτυχώς!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Εμότζι
zen-icons-picker-svg =
.label = Εικονίδια
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Ενέργειες
zen-site-data-settings = Ρυθμίσεις
zen-generic-manage = Διαχείριση
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Η Ενημέρωση Ολοκληρ
zen-sidebar-notification-updated-label = Τι νέο υπάρχει στο { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Προβολή Σημειώσεων Έκδοσης
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Χάλασε κάτι;
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Επανεκκίνηση σε Ασφαλή Λειτουργία
diff --git a/locales/el/browser/browser/zen-space-routing.ftl b/locales/el/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/el/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/el/browser/browser/zen-workspaces.ftl b/locales/el/browser/browser/zen-workspaces.ftl
index 320be140b..10c085bc2 100644
--- a/locales/el/browser/browser/zen-workspaces.ftl
+++ b/locales/el/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Προφίλ
.tooltiptext = Τα προφίλ χρησιμοποιούνται για να διαχωρίζουν τα cookies και τα δεδομένα του ιστότοπου μεταξύ των χώρων.
zen-workspace-creation-header = Δημιουργία Χώρου
zen-workspace-creation-label = Οι χώροι χρησιμοποιούνται για την οργάνωση των καρτελών και των συνεδριών σας.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Διαγραφή Χώρου Εργασίας;
zen-workspaces-delete-workspace-body = Είστε σίγουροι ότι Θέλετε να διαγράψετε το { $name }; Αυτή η πράξη δεν μπορεί να αναιρεθεί.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/en-GB/browser/browser/preferences/zen-preferences.ftl b/locales/en-GB/browser/browser/preferences/zen-preferences.ftl
index 295f8542e..c67ebbf74 100644
--- a/locales/en-GB/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/en-GB/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Hide the top toolbar as well in compact mode
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar pop-up when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/en-GB/browser/browser/zen-command-palette.ftl b/locales/en-GB/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/en-GB/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/en-GB/browser/browser/zen-general.ftl b/locales/en-GB/browser/browser/zen-general.ftl
index 479798b15..f03e87ce2 100644
--- a/locales/en-GB/browser/browser/zen-general.ftl
+++ b/locales/en-GB/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/en-GB/browser/browser/zen-space-routing.ftl b/locales/en-GB/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/en-GB/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/en-GB/browser/browser/zen-workspaces.ftl b/locales/en-GB/browser/browser/zen-workspaces.ftl
index dc52e03d1..55aaf4040 100644
--- a/locales/en-GB/browser/browser/zen-workspaces.ftl
+++ b/locales/en-GB/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organise your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/en-US/browser/browser/preferences/zen-preferences.ftl b/locales/en-US/browser/browser/preferences/zen-preferences.ftl
index b403bad5a..473bfb740 100644
--- a/locales/en-US/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/en-US/browser/browser/preferences/zen-preferences.ftl
@@ -48,6 +48,11 @@ zen-look-and-feel-compact-view-top-toolbar =
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
+
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -283,7 +288,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/en-US/browser/browser/zen-command-palette.ftl b/locales/en-US/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/en-US/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/en-US/browser/browser/zen-general.ftl b/locales/en-US/browser/browser/zen-general.ftl
index cf6c3b95b..31bdff0a4 100644
--- a/locales/en-US/browser/browser/zen-general.ftl
+++ b/locales/en-US/browser/browser/zen-general.ftl
@@ -87,6 +87,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
@@ -149,6 +151,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
@@ -159,5 +164,5 @@ zen-window-sync-migration-dialog-learn-more = Learn More
zen-window-sync-migration-dialog-accept = Got It
zen-appmenu-new-blank-window =
- .label = New blank window
+ .label = New Blank Window
diff --git a/locales/en-US/browser/browser/zen-library.ftl b/locales/en-US/browser/browser/zen-library.ftl
index 76d98c665..4db4dbd40 100644
--- a/locales/en-US/browser/browser/zen-library.ftl
+++ b/locales/en-US/browser/browser/zen-library.ftl
@@ -87,3 +87,8 @@ library-downloads-state-downloading = Downloading…
library-downloads-state-canceled = Canceled
library-downloads-state-failed = Failed
library-downloads-state-incomplete = Incomplete
+
+library-close-button =
+ .tooltiptext = Close Library
+library-donate-button =
+ .tooltiptext = Support Zen
diff --git a/locales/en-US/browser/browser/zen-live-folders.ftl b/locales/en-US/browser/browser/zen-live-folders.ftl
index 79988c1dc..92f43e43f 100644
--- a/locales/en-US/browser/browser/zen-live-folders.ftl
+++ b/locales/en-US/browser/browser/zen-live-folders.ftl
@@ -20,6 +20,9 @@ zen-live-folder-github-option-assigned-self =
zen-live-folder-github-option-review-requested =
.label = Review Requests
+zen-live-folder-github-option-include-drafts =
+ .label = Include Draft Pull Requests
+
zen-live-folder-type-rss =
.label = RSS Feed
diff --git a/locales/en-US/browser/browser/zen-split-view.ftl b/locales/en-US/browser/browser/zen-split-view.ftl
index ee1e7081f..0a6176942 100644
--- a/locales/en-US/browser/browser/zen-split-view.ftl
+++ b/locales/en-US/browser/browser/zen-split-view.ftl
@@ -5,14 +5,14 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
- [-1] Split out tab
- [1] Add split view...
+ [-1] Split Out Tab
+ [1] Add Split View...
*[other] Join { $tabCount } Tabs
}
.accesskey = S
zen-split-link =
- .label = Split link to new tab
+ .label = Split Link to New Tab
.accesskey = S
zen-split-view-modifier-header = Split View
diff --git a/locales/en-US/browser/browser/zen-workspaces.ftl b/locales/en-US/browser/browser/zen-workspaces.ftl
index c29549776..7274a6bcc 100644
--- a/locales/en-US/browser/browser/zen-workspaces.ftl
+++ b/locales/en-US/browser/browser/zen-workspaces.ftl
@@ -82,9 +82,12 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Space?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
+zen-workspaces-remote-delete-title = Delete Synced Space?
+zen-workspaces-remote-delete-body = { $name } was deleted on another device. Delete it here too? Keeping it will restore it on your other devices.
# Note that the html tag MUST not be changed or removed, as it is used to better
# display the shortcut in the toast notification.
diff --git a/locales/es-ES/browser/browser/preferences/zen-preferences.ftl b/locales/es-ES/browser/browser/preferences/zen-preferences.ftl
index 305e2f0b6..ba8bce037 100644
--- a/locales/es-ES/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/es-ES/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Ocultar también la barra de herramientas superior en el modo compacto
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Hacer emerger brevemente la barra de herramientas al cambiar o abrir nuevas pestañas en el modo compacto
+zen-look-and-feel-window-drag-header = Arrastrar ventana
+zen-look-and-feel-window-drag-description = Mueva la ventana arrastrando espacio vacío en la parte superior de los sitios web, al igual que la barra de título.
+zen-window-drag-enabled =
+ .label = Permitir arrastrar la ventana desde páginas web
pane-zen-tabs-title = Administración de pestañas
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Ver información de la página
zen-find-shortcut = Encontrar en la página
zen-search-find-again-shortcut = Encontrar de nuevo
zen-search-find-again-shortcut-prev = Encontrar anterior
-zen-search-find-again-shortcut-2 = Encontrar de nuevo (Alt)
+zen-search-find-again-shortcut-alt = Encontrar de nuevo (Alt)
+zen-search-find-again-shortcut-prev-alt = Encontrar anterior (Alt)
zen-bookmark-this-page-shortcut = Añadir página a marcadores
zen-bookmark-show-library-shortcut = Mostrar catálogo de marcadores
zen-key-stop = Detener carga
diff --git a/locales/es-ES/browser/browser/zen-command-palette.ftl b/locales/es-ES/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..9104b6822
--- /dev/null
+++ b/locales/es-ES/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Alternar modo compacto
+zen-action-open-theme-picker = Abrir selector de temas
+zen-action-new-split-view = Nueva vista dividida
+zen-action-new-folder = Nueva carpeta
+zen-action-copy-current-url = Copiar URL actual
+zen-action-settings = Ajustes
+zen-action-open-private-window = Abrir ventana privada
+zen-action-open-new-window = Abrir nueva ventana
+zen-action-new-blank-window = Nueva ventana en blanco
+zen-action-pin-tab = Fijar pestaña
+zen-action-unpin-tab = Desfijar pestaña
+zen-action-open-space-routing = Abrir enrutamiento del espacio
+zen-action-new-boost = Nuevo Boost
+zen-action-next-space = Espacio siguiente
+zen-action-previous-space = Espacio anterior
+zen-action-close-tab = Cerrar pestaña
+zen-action-reload-tab = Recargar pestaña
+zen-action-reload-tab-without-cache = Recargar pestaña sin caché
+zen-action-next-tab = Pestaña siguiente
+zen-action-previous-tab = Pestaña anterior
+zen-action-capture-screenshot = Tomar captura de pantalla
+zen-action-toggle-tabs-on-right = Alternar pestañas a la derecha
+zen-action-add-to-essentials = Añadir a esenciales
+zen-action-remove-from-essentials = Quitar de esenciales
+zen-action-find-in-page = Encontrar en la página
+zen-action-manage-extensions = Administrar extensiones
+zen-action-switch-to-automatic-appearance = Cambiar a apariencia automática
+zen-action-switch-to-light-mode = Cambiar al modo claro
+zen-action-switch-to-dark-mode = Cambiar al modo oscuro
+zen-action-print = Imprimir
+zen-action-focus-on = Centrarse en
+zen-action-extension = Extensión
diff --git a/locales/es-ES/browser/browser/zen-general.ftl b/locales/es-ES/browser/browser/zen-general.ftl
index b9fb5237f..82fe9752b 100644
--- a/locales/es-ES/browser/browser/zen-general.ftl
+++ b/locales/es-ES/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } huecos llenos
tab-context-zen-remove-essential =
.label = Quitar de esenciales
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Reemplazar URL esencial con la actual
- *[false] Reemplazar URL fijada con la actual
+ [true] Editar URL esencial
+ *[false] Editar URL fijada
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Reemplazar con la URL actual
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Editar…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Cambiar etiqueta...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirmar
zen-pinned-tab-replaced = La URL de la pestaña fijada se ha reemplazado por la URL actual.
+zen-pinned-tab-url-edited = ¡La URL de la pestaña fijada ha sido actualizada!
+zen-pinned-tab-url-invalid = Eso no parece una URL válida.
+zen-pinned-tab-edit-url-title = Editar URL fijada
+zen-pinned-tab-edit-url-label = Introduzca la URL a la que debe apuntar esta pestaña fijada:
zen-tabs-renamed = ¡La pestaña se ha renombrado con éxito!
zen-background-tab-opened-toast = ¡Nueva pestaña abierta en segundo plano!
zen-workspace-renamed-toast = ¡El espacio de trabajo ha sido renombrado con éxito!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Iconos
+zen-emojis-picker-search =
+ .placeholder = Buscar emojis
urlbar-search-mode-zen_actions = Acciones
zen-site-data-settings = Ajustes
zen-generic-manage = Administrar
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = ¡Actualización completada!
zen-sidebar-notification-updated-label = Novedades en { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Ver notas de la versión
+zen-sidebar-notification-donate-label = Soporte { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donar al proyecto
zen-sidebar-notification-restart-safe-mode-label = ¿Algo dejó de funcionar?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reiniciar en modo seguro
diff --git a/locales/es-ES/browser/browser/zen-space-routing.ftl b/locales/es-ES/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..4137fd958
--- /dev/null
+++ b/locales/es-ES/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Ajustes del enrutamiento del espacio
+zen-space-routing-rulepanel-placeholder = Las rutas le permiten elegir donde se abren sitios web específicos dentro de Zen. Por ejemplo, puede enrutar los enlaces de YouTube para que siempre se abran dentro de su espacio personal.
+zen-space-routing-dialog-title = Ajustes del enrutamiento del espacio
+zen-space-routing-external-default = Ruta por defecto para los enlaces externos
+zen-space-routing-new-route = Nueva ruta
+zen-space-routing-open-in-space = Abrir en espacio
+zen-space-routing-most-recent-space = Espacio más reciente
+zen-space-routing-close-button =
+ .aria-label = Cerrar
+ .tooltiptext = Cerrar
+zen-space-routing-contains =
+ .label = Contiene
+zen-space-routing-equal-to =
+ .label = Es igual a
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Abrir en
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Nueva pestaña abierta en { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Añadir ruta para el dominio
+ *[other] Añadir ruta para los dominios
+ }
diff --git a/locales/es-ES/browser/browser/zen-workspaces.ftl b/locales/es-ES/browser/browser/zen-workspaces.ftl
index 5e81b9307..e5e25c4c8 100644
--- a/locales/es-ES/browser/browser/zen-workspaces.ftl
+++ b/locales/es-ES/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Perfil
.tooltiptext = Los perfiles se utilizan para separar las cookies y los datos de sitios entre espacios.
zen-workspace-creation-header = Crear un espacio
zen-workspace-creation-label = Los espacios se utilizan para organizar sus pestañas y sesiones.
+zen-workspace-default-profile = Predeterminado
zen-workspaces-delete-workspace-title = ¿Eliminar espacio de trabajo?
zen-workspaces-delete-workspace-body = ¿Seguro que quiere eliminar { $name }? Esta acción no se puede deshacer.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/et/browser/browser/preferences/zen-preferences.ftl b/locales/et/browser/browser/preferences/zen-preferences.ftl
index 9aa14af82..857e44c3b 100644
--- a/locales/et/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/et/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Peida ka ülemine tööriistariba kompaktses vaates
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Lühidalt kuva tööriistariba hüpikut kui lülitutakse kaartide vahel või avatakse uus kaart kompaktses režiimis
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Kaartide haldamine
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Vaata veebilehe infot
zen-find-shortcut = Otsi lehelt
zen-search-find-again-shortcut = Otsi järgmist
zen-search-find-again-shortcut-prev = Otsi eelmist
-zen-search-find-again-shortcut-2 = Otsi järgmist (alternatiivne)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Lisa järjehoidjatesse
zen-bookmark-show-library-shortcut = Näita järjehoidjaid
zen-key-stop = Peata laadimine
diff --git a/locales/et/browser/browser/zen-command-palette.ftl b/locales/et/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/et/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/et/browser/browser/zen-general.ftl b/locales/et/browser/browser/zen-general.ftl
index 7ba7cbd2d..9895e1a08 100644
--- a/locales/et/browser/browser/zen-general.ftl
+++ b/locales/et/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Eemalda olulistest
.accesskey = o
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = p
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Kinnita
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Kaart on edukalt ümber nimetatud!
zen-background-tab-opened-toast = Taustal avati uus kaart!
zen-workspace-renamed-toast = Tööruum on edukalt ümber nimetatud!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojid
zen-icons-picker-svg =
.label = Ikoonid
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Tegevused
zen-site-data-settings = Sätted
zen-generic-manage = Halda
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/et/browser/browser/zen-space-routing.ftl b/locales/et/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/et/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/et/browser/browser/zen-workspaces.ftl b/locales/et/browser/browser/zen-workspaces.ftl
index fafba2b1a..289f54969 100644
--- a/locales/et/browser/browser/zen-workspaces.ftl
+++ b/locales/et/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profiil
.tooltiptext = Profiile kasutatakse küpsiste ning saidi andmete eraldamiseks tööruumide vahel.
zen-workspace-creation-header = Loo uus tööruum
zen-workspace-creation-label = Tööruume kasutatakse kaartide ja sessioonide organiseerimiseks.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Kas oled kindel, et soovid kustutada tööruumi { $name }? Seda tegevust ei saa tagasi võtta.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/eu/browser/browser/preferences/zen-preferences.ftl b/locales/eu/browser/browser/preferences/zen-preferences.ftl
index cc6082d37..fc091918e 100644
--- a/locales/eu/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/eu/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Hide the top toolbar as well in compact mode
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/eu/browser/browser/zen-command-palette.ftl b/locales/eu/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/eu/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/eu/browser/browser/zen-general.ftl b/locales/eu/browser/browser/zen-general.ftl
index c2754b4f4..a4c8a90ff 100644
--- a/locales/eu/browser/browser/zen-general.ftl
+++ b/locales/eu/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } hutsune beteta
tab-context-zen-remove-essential =
.label = Funtsezko fitxetatik Kendu
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Ordezkatu Funtsezko URLa Oraingoarekin
- *[false] Ordezkatu Ainguratutako URLa Oraingoarekin
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Etiketa aldatu...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Baieztatu
zen-pinned-tab-replaced = Oraingo estekak ordezkatu du ainguratutako fitxarena!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Fitxaren izena ongi aldatu da!
zen-background-tab-opened-toast = Fitxa berri bat zabaldu da bigarren planoan!
zen-workspace-renamed-toast = Lan-eremuaren izena ongi aldatu da!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojiak
zen-icons-picker-svg =
.label = Ikonoak
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Ekintzak
zen-site-data-settings = Ezarpenak
zen-generic-manage = Kudeatu
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/eu/browser/browser/zen-space-routing.ftl b/locales/eu/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/eu/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/eu/browser/browser/zen-workspaces.ftl b/locales/eu/browser/browser/zen-workspaces.ftl
index 7727a2ff2..01ef1f793 100644
--- a/locales/eu/browser/browser/zen-workspaces.ftl
+++ b/locales/eu/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Space?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/fa/browser/browser/preferences/zen-preferences.ftl b/locales/fa/browser/browser/preferences/zen-preferences.ftl
index 7ed3131a5..a0115b82a 100644
--- a/locales/fa/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/fa/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = پنهانکردن نوار ابزار بالا در حالت فشرده
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/fa/browser/browser/zen-command-palette.ftl b/locales/fa/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/fa/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/fa/browser/browser/zen-general.ftl b/locales/fa/browser/browser/zen-general.ftl
index f4b3f238d..19dba2f76 100644
--- a/locales/fa/browser/browser/zen-general.ftl
+++ b/locales/fa/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = تایید
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/fa/browser/browser/zen-space-routing.ftl b/locales/fa/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/fa/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/fa/browser/browser/zen-workspaces.ftl b/locales/fa/browser/browser/zen-workspaces.ftl
index b7ae488b2..2b5fe5d83 100644
--- a/locales/fa/browser/browser/zen-workspaces.ftl
+++ b/locales/fa/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/fi/browser/browser/preferences/zen-preferences.ftl b/locales/fi/browser/browser/preferences/zen-preferences.ftl
index 08f86534f..52a4ec3dd 100644
--- a/locales/fi/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/fi/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Piilota työkalupalkki niin myös kompaktissa tilassa
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Tee työkalurivin ponnahdusikkuna lyhyesti, kun vaihdat tai avaat uusia välilehtiä kompaktitilassa
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Välilehtien Hallinta
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Näytä Sivun Tiedot
zen-find-shortcut = Etsi sivulta
zen-search-find-again-shortcut = Etsi Uudelleen
zen-search-find-again-shortcut-prev = Etsi Edellinen
-zen-search-find-again-shortcut-2 = Etsi Uudelleen (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Lisää Tämä Sivu Kirjanmerkkeihin
zen-bookmark-show-library-shortcut = Näytä Kirjanmerkkikirjasto
zen-key-stop = Lopeta Lataaminen
diff --git a/locales/fi/browser/browser/zen-command-palette.ftl b/locales/fi/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/fi/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/fi/browser/browser/zen-general.ftl b/locales/fi/browser/browser/zen-general.ftl
index 7ddce52f2..007d310df 100644
--- a/locales/fi/browser/browser/zen-general.ftl
+++ b/locales/fi/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } täytetty paikka
tab-context-zen-remove-essential =
.label = Poista olennaisista
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Vahvista
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Välilehti on nimetty uudelleen!
zen-background-tab-opened-toast = Uusi taustavälilehti avattu!
zen-workspace-renamed-toast = Työtila on nimetty uudelleen!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojit
zen-icons-picker-svg =
.label = Kuvakkeet
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Toiminnot
zen-site-data-settings = Asetukset
zen-generic-manage = Hallitse
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Päivitys valmis!
zen-sidebar-notification-updated-label = Mitä uutta { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Katso Julkaisutiedot
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Jotain rikki?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Käynnistä uudelleen vianmääritystilassa
diff --git a/locales/fi/browser/browser/zen-space-routing.ftl b/locales/fi/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/fi/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/fi/browser/browser/zen-workspaces.ftl b/locales/fi/browser/browser/zen-workspaces.ftl
index 3a02f6a80..6775d5e56 100644
--- a/locales/fi/browser/browser/zen-workspaces.ftl
+++ b/locales/fi/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profiili
.tooltiptext = Profiileja käytetään erottamaan evästeet ja sivustontiedot tiloihin.
zen-workspace-creation-header = Luo työtila
zen-workspace-creation-label = Työtiloja käytetään järjestämään sinun välilehtiä ja istuntoja.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Poista Työtila?
zen-workspaces-delete-workspace-body = Oletko varma, että haluat poistaa { $name }? Tätä toimintoa ei voi peruuttaa.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/fr/browser/browser/preferences/zen-preferences.ftl b/locales/fr/browser/browser/preferences/zen-preferences.ftl
index d5828a59c..8e294eaf2 100644
--- a/locales/fr/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/fr/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Masquer aussi la barre d’outils du haut en mode compact
zen-look-and-feel-compact-toolbar-flash-popup =
.label = En mode compact, faire brièvement apparaitre la barre d’outils au changement ou à l’ouverture de nouveaux onglets
+zen-look-and-feel-window-drag-header = Déplacement de la fenêtre
+zen-look-and-feel-window-drag-description = Déplacer la fenêtre en faisant glisser un espace vide en haut des sites Web, comme la barre de titre.
+zen-window-drag-enabled =
+ .label = Autoriser le déplacement de la fenêtre depuis les pages web
pane-zen-tabs-title = Gestion des onglets
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Voir les informations de la page
zen-find-shortcut = Rechercher dans la page
zen-search-find-again-shortcut = Retrouver
zen-search-find-again-shortcut-prev = Rechercher le précédent
-zen-search-find-again-shortcut-2 = Rechercher à nouveau (alternatif)
+zen-search-find-again-shortcut-alt = Rechercher à nouveau (Alt)
+zen-search-find-again-shortcut-prev-alt = Rechercher le précédent (Alt)
zen-bookmark-this-page-shortcut = Ajouter cette page aux favoris
zen-bookmark-show-library-shortcut = Afficher la bibliothèque des favoris
zen-key-stop = Arrêter le chargement
diff --git a/locales/fr/browser/browser/zen-command-palette.ftl b/locales/fr/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..85611e0f5
--- /dev/null
+++ b/locales/fr/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Activer/désactiver le mode compact
+zen-action-open-theme-picker = Ouvrir le sélecteur de thème
+zen-action-new-split-view = Nouvelle vue fractionnée
+zen-action-new-folder = Nouveau dossier
+zen-action-copy-current-url = Copier l’adresse actuelle
+zen-action-settings = Paramètres
+zen-action-open-private-window = Ouvrir une fenêtre privée
+zen-action-open-new-window = Ouvrir une nouvelle fenêtre
+zen-action-new-blank-window = Nouvelle fenêtre vide
+zen-action-pin-tab = Épingler l'onglet
+zen-action-unpin-tab = Désépingler l'onglet
+zen-action-open-space-routing = Ouvrir le routage des espaces
+zen-action-new-boost = Nouveau Boost
+zen-action-next-space = Espace suivant
+zen-action-previous-space = Espace précédent
+zen-action-close-tab = Fermer l’onglet
+zen-action-reload-tab = Recharger l'onglet
+zen-action-reload-tab-without-cache = Recharger l'onglet sans cache
+zen-action-next-tab = Onglet suivant
+zen-action-previous-tab = Onglet précédent
+zen-action-capture-screenshot = Prendre une capture d'écran
+zen-action-toggle-tabs-on-right = Activer/désactiver les onglets à droite
+zen-action-add-to-essentials = Ajouter aux Essentials
+zen-action-remove-from-essentials = Retirer des Essentials
+zen-action-find-in-page = Rechercher dans la page
+zen-action-manage-extensions = Gérer les extensions
+zen-action-switch-to-automatic-appearance = Passer à l'apparence automatique
+zen-action-switch-to-light-mode = Passer au mode clair
+zen-action-switch-to-dark-mode = Passer au mode sombre
+zen-action-print = Imprimer
+zen-action-focus-on = Focus sur
+zen-action-extension = Extension
diff --git a/locales/fr/browser/browser/zen-general.ftl b/locales/fr/browser/browser/zen-general.ftl
index 41d53b68f..26e45fd6f 100644
--- a/locales/fr/browser/browser/zen-general.ftl
+++ b/locales/fr/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Retirer des Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Remplacer l'URL de l'Essential par l'actuelle
- *[false] Remplacer l'URL de l'onglet épinglé par l'actuelle
+ [true] Modifier l'URL de l'Essential
+ *[false] Modifier de l'URL de l'onglet épinglé
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Remplacer par l'URL actuelle
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Modifier…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Changer le libellé...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirmer
zen-pinned-tab-replaced = L’adresse de l'onglet épinglé a été remplacée par l’adresse actuelle.
+zen-pinned-tab-url-edited = L'URL de l'onglet épinglé a été mise à jour !
+zen-pinned-tab-url-invalid = Cela ne ressemble pas à une URL valide.
+zen-pinned-tab-edit-url-title = Modifier l'URL épinglée
+zen-pinned-tab-edit-url-label = Entrer l'URL à laquelle cet onglet épinglé devrait pointer :
zen-tabs-renamed = L’onglet a été renommé avec succès !
zen-background-tab-opened-toast = Nouvel onglet ouvert en arrière-plan !
zen-workspace-renamed-toast = L'espace de travail a été renommé avec succès !
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Émojis
zen-icons-picker-svg =
.label = Icônes
+zen-emojis-picker-search =
+ .placeholder = Rechercher des émojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Paramètres
zen-generic-manage = Gérer
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Mise à jour terminée !
zen-sidebar-notification-updated-label = Quoi de neuf dans { -brand-short-name } ?
zen-sidebar-notification-updated-tooltip =
.title = Voir les notes de version
+zen-sidebar-notification-donate-label = Soutenir { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Faire un don au projet
zen-sidebar-notification-restart-safe-mode-label = Un problème est survenu ?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Redémarrer en mode de dépannage
diff --git a/locales/fr/browser/browser/zen-space-routing.ftl b/locales/fr/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..9719ffc7f
--- /dev/null
+++ b/locales/fr/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Paramètres de routage des espaces
+zen-space-routing-rulepanel-placeholder = Les routes vous permettent de choisir où s'ouvrent certains sites dans Zen. Par exemple, vous pouvez configurer les liens YouTube pour qu'ils s'ouvrent toujours dans votre espace personnel.
+zen-space-routing-dialog-title = Paramètres du routage des espaces
+zen-space-routing-external-default = Route par défaut pour les liens externes
+zen-space-routing-new-route = Nouvelle route
+zen-space-routing-open-in-space = Ouvrir dans l'espace
+zen-space-routing-most-recent-space = Espace le plus récent
+zen-space-routing-close-button =
+ .aria-label = Fermer
+ .tooltiptext = Fermer
+zen-space-routing-contains =
+ .label = Contient
+zen-space-routing-equal-to =
+ .label = Est égal à
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Ouvrir dans
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Nouvel onglet ouvert dans { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Ajouter une route pour le domaine
+ *[other] Ajouter une route pour les domaines
+ }
diff --git a/locales/fr/browser/browser/zen-workspaces.ftl b/locales/fr/browser/browser/zen-workspaces.ftl
index 0e64b9a29..0ea704098 100644
--- a/locales/fr/browser/browser/zen-workspaces.ftl
+++ b/locales/fr/browser/browser/zen-workspaces.ftl
@@ -58,9 +58,10 @@ zen-move-tab-to-workspace-button =
zen-workspaces-panel-context-reorder =
.label = Réorganiser les espaces
zen-workspace-creation-profile = Profil
- .tooltiptext = Les profils sont utilisés pour séparer les cookies et les données des sites entre les Espaces.
+ .tooltiptext = Les profils sont utilisés pour séparer les cookies et les données des sites entre les espaces.
zen-workspace-creation-header = Créer un espace
zen-workspace-creation-label = Les espaces sont utilisés pour organiser vos onglets et sessions.
+zen-workspace-default-profile = Par défaut
zen-workspaces-delete-workspace-title = Supprimer l’espace ?
zen-workspaces-delete-workspace-body = Êtes-vous sûr de vouloir supprimer { $name } ? Cette action ne peut pas être annulée.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/ga-IE/browser/browser/preferences/zen-preferences.ftl b/locales/ga-IE/browser/browser/preferences/zen-preferences.ftl
index e370988ce..ff788191a 100644
--- a/locales/ga-IE/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ga-IE/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Folaigh an barra uirlisí barr chomh maith i mód dlúth
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Déan preabfhuinneog an bharra uirlisí go hachomair agus cluaisíní nua á n-athrú nó á n-oscailt i mód dlúth
+zen-look-and-feel-window-drag-header = Tarraingt fuinneoige
+zen-look-and-feel-window-drag-description = Bog an fhuinneog trí spás folamh a tharraingt ag barr na suíomhanna gréasáin, díreach cosúil leis an mbarra teidil.
+zen-window-drag-enabled =
+ .label = Ceadaigh an fhuinneog a tharraingt ó leathanaigh ghréasáin
pane-zen-tabs-title = Bainistíocht Cluaisíní
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Féach ar Fhaisnéis an Leathanaigh
zen-find-shortcut = Aimsigh ar Leathanach
zen-search-find-again-shortcut = Aimsigh Arís
zen-search-find-again-shortcut-prev = Aimsigh Roimhe Seo
-zen-search-find-again-shortcut-2 = Aimsigh Arís (Alt)
+zen-search-find-again-shortcut-alt = Aimsigh Arís (Alt)
+zen-search-find-again-shortcut-prev-alt = Aimsigh Roimhe Seo (Alt)
zen-bookmark-this-page-shortcut = Leabharmharc an Leathanach seo
zen-bookmark-show-library-shortcut = Taispeáin Leabharlann Leabharmharcanna
zen-key-stop = Stop ag Lódáil
diff --git a/locales/ga-IE/browser/browser/zen-command-palette.ftl b/locales/ga-IE/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..7f3aafb47
--- /dev/null
+++ b/locales/ga-IE/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Mód Dlúth a Athrú
+zen-action-open-theme-picker = Oscail an Roghnóir Téama
+zen-action-new-split-view = Radharc Scoilte Nua
+zen-action-new-folder = Fillteán Nua
+zen-action-copy-current-url = Cóipeáil an URL Reatha
+zen-action-settings = Socruithe
+zen-action-open-private-window = Oscail Fuinneog Phríobháideach
+zen-action-open-new-window = Oscail Fuinneog Nua
+zen-action-new-blank-window = Fuinneog Nua Bán
+zen-action-pin-tab = Cluaisín bioráin
+zen-action-unpin-tab = Díphionáil an Cluaisín
+zen-action-open-space-routing = Bealachú Spáis Oscailte
+zen-action-new-boost = Borradh Nua
+zen-action-next-space = An Chéad Spás Eile
+zen-action-previous-space = Spás Roimhe Seo
+zen-action-close-tab = Dún an Cluaisín
+zen-action-reload-tab = Athlódáil an cluaisín
+zen-action-reload-tab-without-cache = Athlódáil an Cluaisín Gan Taisce
+zen-action-next-tab = An Chluaisín Eile
+zen-action-previous-tab = Cluaisín Roimhe Seo
+zen-action-capture-screenshot = Gabh Seat Scáileán
+zen-action-toggle-tabs-on-right = Athraigh na cluaisíní ar dheis
+zen-action-add-to-essentials = Cuir leis na Bunriachtanais
+zen-action-remove-from-essentials = Bain de na Bunriachtanais
+zen-action-find-in-page = Aimsigh sa Leathanach
+zen-action-manage-extensions = Bainistigh Síneadh
+zen-action-switch-to-automatic-appearance = Athraigh go Dealramh Uathoibríoch
+zen-action-switch-to-light-mode = Athraigh go Mód Solais
+zen-action-switch-to-dark-mode = Athraigh go Mód Dorcha
+zen-action-print = Priontáil
+zen-action-focus-on = Dírigh ar
+zen-action-extension = Síneadh
diff --git a/locales/ga-IE/browser/browser/zen-general.ftl b/locales/ga-IE/browser/browser/zen-general.ftl
index 7b73f797e..d559d9a98 100644
--- a/locales/ga-IE/browser/browser/zen-general.ftl
+++ b/locales/ga-IE/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } sliotán líonta
tab-context-zen-remove-essential =
.label = Bain de na Bunriachtanais
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Cuir an URL Riachtanach in ionad an URL Reatha
- *[false] Cuir an URL Priontáilte in ionad an URL Reatha
+ [true] Cuir URL Riachtanach in Eagar
+ *[false] Cuir URL Priontáilte in Eagar
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Ionadaigh leis an URL Reatha
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Cuir in eagar…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Athraigh Lipéad...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Deimhnigh
zen-pinned-tab-replaced = Tá URL an chluaisín phinnáilte curtha in ionad an URL reatha!
+zen-pinned-tab-url-edited = Tá URL an chluaisín phinnáilte nuashonraithe!
+zen-pinned-tab-url-invalid = Ní cosúil gur URL bailí é sin.
+zen-pinned-tab-edit-url-title = Cuir URL bioráin in Eagar
+zen-pinned-tab-edit-url-label = Cuir isteach an URL ar cheart don chluaisín bioráilte seo a bheith ag pointeáil chuige:
zen-tabs-renamed = Athainmníodh an cluaisín go rathúil!
zen-background-tab-opened-toast = Tá cluaisín cúlra nua oscailte!
zen-workspace-renamed-toast = Athainmníodh an spás oibre go rathúil!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Deilbhíní
+zen-emojis-picker-search =
+ .placeholder = Cuardaigh emojis
urlbar-search-mode-zen_actions = Gníomhartha
zen-site-data-settings = Socruithe
zen-generic-manage = Bainistigh
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Nuashonrú críochnaithe!
zen-sidebar-notification-updated-label = Cad atá nua i { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Féach ar Nótaí Eisiúna
+zen-sidebar-notification-donate-label = Tacaíocht { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Tabhair síntiús don tionscadal
zen-sidebar-notification-restart-safe-mode-label = Bhris rud éigin?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Atosaigh i Mód Sábháilte
diff --git a/locales/ga-IE/browser/browser/zen-space-routing.ftl b/locales/ga-IE/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..c0d91810d
--- /dev/null
+++ b/locales/ga-IE/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Socruithe Ródaithe Spáis
+zen-space-routing-rulepanel-placeholder = Le bealaí is féidir leat a roghnú cá n-osclaítear suíomhanna sonracha laistigh de Zen. Mar shampla, is féidir leat naisc YouTube a threorú chun go n-osclófar iad i gcónaí laistigh de do Spás Pearsanta.
+zen-space-routing-dialog-title = Socruithe Ródaithe Spáis
+zen-space-routing-external-default = Bealach réamhshocraithe le haghaidh naisc sheachtracha
+zen-space-routing-new-route = Bealach Nua
+zen-space-routing-open-in-space = Oscail sa Spás
+zen-space-routing-most-recent-space = Spás is déanaí
+zen-space-routing-close-button =
+ .aria-label = Dún
+ .tooltiptext = Dún
+zen-space-routing-contains =
+ .label = Tá
+zen-space-routing-equal-to =
+ .label = Is Cothrom le
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Oscail Isteach
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Osclaíodh cluaisín nua i { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Cuir Bealach leis don Fhearann
+ *[other] Cuir Bealach leis do Fhearainn
+ }
diff --git a/locales/ga-IE/browser/browser/zen-workspaces.ftl b/locales/ga-IE/browser/browser/zen-workspaces.ftl
index 789d9b5d7..70c80fa9b 100644
--- a/locales/ga-IE/browser/browser/zen-workspaces.ftl
+++ b/locales/ga-IE/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Próifíl
.tooltiptext = Úsáidtear próifílí chun fianáin agus sonraí suímh a dheighilt idir spásanna.
zen-workspace-creation-header = Cruthaigh Spás
zen-workspace-creation-label = Úsáidtear spásanna chun do chluaisíní agus do sheisiúin a eagrú.
+zen-workspace-default-profile = Réamhshocrú
zen-workspaces-delete-workspace-title = Scrios an spás?
zen-workspaces-delete-workspace-body = An bhfuil tú cinnte gur mian leat { $name } a scriosadh? Ní féidir an gníomh seo a chealú.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/he/browser/browser/preferences/zen-preferences.ftl b/locales/he/browser/browser/preferences/zen-preferences.ftl
index 974be8fd7..28f5b5938 100644
--- a/locales/he/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/he/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = הסתרת סרגל עליון גם במצב מכווץ
zen-look-and-feel-compact-toolbar-flash-popup =
.label = הקפצה קצרה של סרגל הכלים במעבר או פתיחת לשוניות חדשות במצב מכווץ
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = ניהול לשוניות
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = הצג מידע על עמוד
zen-find-shortcut = חיפוש בעמוד
zen-search-find-again-shortcut = מצא שוב
zen-search-find-again-shortcut-prev = מצא קודם
-zen-search-find-again-shortcut-2 = מצא שוב (משני)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = שים עמוד בסמניה
zen-bookmark-show-library-shortcut = הצג ספריית סימניות
zen-key-stop = עצור טעינה
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = מעבר למרחב עבודה 9
zen-workspace-shortcut-switch-10 = מעבר למרחב עבודה 10
zen-workspace-shortcut-forward = העברת מרחב העבודה קדימה
zen-workspace-shortcut-backward = העברת מרחב העבודה אחורה
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = יצירת מרחב עבודה חדש
zen-sidebar-shortcut-toggle = הפעל/כבה עובי של סרגל צד
zen-pinned-tab-shortcut-reset = איפוס הלשונית המוצמדת לכתובת המוצמדת
zen-split-view-shortcut-grid = הפעל/כבה תצוגה מפוצלת רשת
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = הפעל/כבה נגישות
zen-close-all-unpinned-tabs-shortcut = סגירת כל הלשוניות שאינן מוצמדות
zen-new-unsynced-window-shortcut = חלון לא מסונכרן חדש
zen-duplicate-tab-shortcut = שכפול לשונית
-zen-key-find-selection = Find Selection
+zen-key-find-selection = איתור בחירה
diff --git a/locales/he/browser/browser/zen-boosts.ftl b/locales/he/browser/browser/zen-boosts.ftl
index 66a825ec5..7688531b7 100644
--- a/locales/he/browser/browser/zen-boosts.ftl
+++ b/locales/he/browser/browser/zen-boosts.ftl
@@ -10,11 +10,11 @@ zen-boost-edit-reset =
.label = Reset All Edits
zen-boost-edit-delete =
.label = Delete Boost
-zen-boost-size = Size
+zen-boost-size = גודל
zen-boost-case = Case
zen-boost-zap = Zap
zen-boost-code = Code
-zen-boost-back = Back
+zen-boost-back = חזרה
zen-boost-shuffle =
.tooltiptext = Shuffle Boost Settings
zen-boost-invert =
diff --git a/locales/he/browser/browser/zen-command-palette.ftl b/locales/he/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/he/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/he/browser/browser/zen-general.ftl b/locales/he/browser/browser/zen-general.ftl
index dd85f9dc0..845498c57 100644
--- a/locales/he/browser/browser/zen-general.ftl
+++ b/locales/he/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } מקומות מלאי
tab-context-zen-remove-essential =
.label = הסרה מהחיוניות
.accesskey = ר
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = ב
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = שינוי תווית...
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = אישור
zen-pinned-tab-replaced = כתובת הלשונית המוצמדת הוחלפה בכתובת הנוכחית!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = שם הלשונית השתנה בהצלחה!
zen-background-tab-opened-toast = לשונית נפתחה ברקע!
zen-workspace-renamed-toast = שם מרחב העבודה השתנה בהצלחה!
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = אימוג׳י
zen-icons-picker-svg =
.label = סמלים
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = פעולות
zen-site-data-settings = הגדרות
zen-generic-manage = ניהול
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = העדכון הושלם!
zen-sidebar-notification-updated-label = מה חדש ב־{ -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = צפייה בהערות שחרור הגרסה
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = משהו השתבש?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = הפעלה מחדש במצב בטוח
diff --git a/locales/he/browser/browser/zen-space-routing.ftl b/locales/he/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..308665eb4
--- /dev/null
+++ b/locales/he/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = סגירה
+ .tooltiptext = סגירה
+zen-space-routing-contains =
+ .label = מכיל
+zen-space-routing-equal-to =
+ .label = בדיוק
+zen-space-routing-regex =
+ .label = ביטוי רגולרי
+zen-space-routing-open-in = פתיחה בתוך
+zen-space-routing-url = כתובת
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/he/browser/browser/zen-workspaces.ftl b/locales/he/browser/browser/zen-workspaces.ftl
index e35618442..b175e8cb3 100644
--- a/locales/he/browser/browser/zen-workspaces.ftl
+++ b/locales/he/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = פרופיל
.tooltiptext = פרופילים משמשים להפרדת קובצי Cookie ונתוני אתר בין מרחבים שונים.
zen-workspace-creation-header = יצירת מרחב
zen-workspace-creation-label = המרחבים משמשים לסידור לשוניות והפעלות.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = למחוק את המרחב?
zen-workspaces-delete-workspace-body = למחוק את { $name }? לא ניתן לבטל פעולה זו.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/hu/browser/browser/preferences/zen-preferences.ftl b/locales/hu/browser/browser/preferences/zen-preferences.ftl
index d0cc5bbce..28a4a3bcd 100644
--- a/locales/hu/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/hu/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = A felső eszköztár is legyen elrejtve kompakt módban
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Eszköztár megjelenítése rövid ideig lap váltás vagy új megnyitása során kompakt módban
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Lap kezelés
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -222,7 +226,7 @@ zen-file-open-shortcut = Fájl megnyitása
zen-save-page-shortcut = Oldal mentése
zen-print-shortcut = Oldal nyomtatása
zen-close-shortcut-2 = Lap bezárása
-zen-mute-toggle-shortcut = Némítás be-/kikapcsolása
+zen-mute-toggle-shortcut = Némítás kapcsolása
zen-key-delete = Törlés gomb
zen-key-go-back = Vissza
zen-key-go-forward = Előre
@@ -231,12 +235,12 @@ zen-nav-fwd-shortcut-alt = Előrenavigálás (Alt)
zen-history-show-all-shortcut = Minden előzmény megjelenítése
zen-key-enter-full-screen = Belépés a teljes képernyőbe
zen-key-exit-full-screen = Kilépés a teljes képernyőből
-zen-ai-chatbot-sidebar-shortcut = AI Chatbot oldalsáv ki-/bekapcsolása
-zen-key-inspector-mac = Vizsgáló ki-/bekapcsolása (Mac)
-zen-toggle-sidebar-shortcut = Firefox oldalsáv ki-/bekapcsolása
+zen-ai-chatbot-sidebar-shortcut = AI Chatbot oldalsáv kapcsolása
+zen-key-inspector-mac = Vizsgáló kapcsolása (Mac)
+zen-toggle-sidebar-shortcut = Firefox oldalsáv kapcsolása
zen-toggle-pin-tab-shortcut = Lap rögzítése/feloldása
-zen-reader-mode-toggle-shortcut-other = Olvasó mód ki-/bekapcsolása
-zen-picture-in-picture-toggle-shortcut = Kép a képben mód ki-/bekapcsolása
+zen-reader-mode-toggle-shortcut-other = Olvasó mód kapcsolása
+zen-picture-in-picture-toggle-shortcut = Kép a képben mód kapcsolása
zen-nav-reload-shortcut-2 = Oldal újratöltése
zen-key-about-processes = A folyamatokról
zen-page-source-shortcut = Oldal forrásának megtekintése
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Oldal adatainak megtekintése
zen-find-shortcut = Keresés az oldalon
zen-search-find-again-shortcut = Keresés újra
zen-search-find-again-shortcut-prev = Előző keresése
-zen-search-find-again-shortcut-2 = Keresés újra (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Oldal mentése a könyvjelzők közé
zen-bookmark-show-library-shortcut = Könyvjelzőkönyvtár megtekintése
zen-key-stop = Betöltés leállítása
@@ -260,14 +265,14 @@ zen-screenshot-shortcut = Képernyőkép-készítés
zen-key-sanitize = Böngészési adatok törlése
zen-quit-app-shortcut = Kilépés az alkalmazásból
zen-key-wr-capture-cmd = WR rögzítési parancs
-zen-key-wr-toggle-capture-sequence-cmd = WR rögzítési szekvencia ki-/bekapcsolása
+zen-key-wr-toggle-capture-sequence-cmd = WR rögzítési szekvencia kapcsolása
zen-nav-reload-shortcut = Oldal újratöltése
zen-nav-reload-shortcut-skip-cache = Oldal újratöltése (Gyorsítótár átugrása)
zen-close-shortcut = Ablak bezárása
zen-close-tab-shortcut = Lap bezárása
-zen-compact-mode-shortcut-show-sidebar = Lebegő oldalsáv ki-/bekapcsolása
-zen-compact-mode-shortcut-show-toolbar = Lebegő eszköztár ki-/bekapcsolása
-zen-compact-mode-shortcut-toggle = Kompakt mód ki-/bekapcsolása
+zen-compact-mode-shortcut-show-sidebar = Lebegő oldalsáv kapcsolása
+zen-compact-mode-shortcut-show-toolbar = Lebegő eszköztár kapcsolása
+zen-compact-mode-shortcut-toggle = Kompakt mód kapcsolása
zen-glance-expand = Bepillantás kiterjesztése
zen-workspace-shortcut-switch-1 = Első munkakörnyezetre váltás
zen-workspace-shortcut-switch-2 = Második munkakörnyezetre váltás
@@ -281,10 +286,10 @@ zen-workspace-shortcut-switch-9 = Kilencedik munkakörnyezetre váltás
zen-workspace-shortcut-switch-10 = Tizedik munkakörnyezetre váltás
zen-workspace-shortcut-forward = Következő munkakörnyezet
zen-workspace-shortcut-backward = Előző munkakörnyezet
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Új munkakörnyezet létrehozása
zen-sidebar-shortcut-toggle = Oldalsáv szélességének váltása
zen-pinned-tab-shortcut-reset = Rögzített lap visszaállítása rögzítéskori URL-re
-zen-split-view-shortcut-grid = Osztott nézet grid ki-/bekapcsolása
+zen-split-view-shortcut-grid = Osztott nézet grid kapcsolása
zen-split-view-shortcut-vertical = Osztott nézet függőlegesen
zen-split-view-shortcut-horizontal = Osztott nézet vízszintesen
zen-split-view-shortcut-unsplit = Osztott nézet bezárása
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = Hozzáférhetőség kapcsolása
zen-close-all-unpinned-tabs-shortcut = Összes rögzítetlen lap bezárása
zen-new-unsynced-window-shortcut = Új szinkronizálatlan ablak
zen-duplicate-tab-shortcut = Lap duplikálása
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Keresés kijelölésben
diff --git a/locales/hu/browser/browser/zen-boosts.ftl b/locales/hu/browser/browser/zen-boosts.ftl
index 30caaedb0..26c46b99c 100644
--- a/locales/hu/browser/browser/zen-boosts.ftl
+++ b/locales/hu/browser/browser/zen-boosts.ftl
@@ -5,18 +5,18 @@
zen-boost-edit-rename =
.label = Boost átnevezése
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Hangulat keverése
zen-boost-edit-reset =
.label = Minden módosítás visszaállítása
zen-boost-edit-delete =
.label = Boost törlése
zen-boost-size = Méret
-zen-boost-case = Case
-zen-boost-zap = Zap
+zen-boost-case = Kis-/nagybetű
+zen-boost-zap = Eltüntet
zen-boost-code = Kód
zen-boost-back = Vissza
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Boost beállítások keverése
zen-boost-invert =
.tooltiptext = Színek intelligens invertálása
zen-boost-controls =
@@ -24,28 +24,28 @@ zen-boost-controls =
zen-boost-disable =
.tooltiptext = Színbeállítások letiltása
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Kis- és nagybetűk váltása
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Szelektor kiválasztása
zen-boost-css-inspector =
.tooltiptext = Vizsgáló megnyitása
zen-boost-color-contrast = Kontraszt
zen-boost-color-brightness = Fényerő
zen-boost-color-original-saturation = Eredeti szaturáció
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
+zen-add-zap-helper = Kattints az oldal elemeire, hogy Eltüntetsd őket
+zen-remove-zap-helper = ← Visszaállításhoz kattints
+zen-select-this = Szelektor beillesztése ehhez
+zen-select-related = Szelektor beillesztése a kapcsolódó elemhez
zen-select-cancel = Mégse
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
+zen-zap-this = Tüntesd el ezt
+zen-zap-related = Összes kapcsolódó elem eltüntetése
zen-zap-cancel = Mégse
zen-zap-done = Kész
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Nincs eltüntetett elem
+ [1] { $elementCount } elem eltüntetve
+ *[other] { $elementCount } elem eltüntetve
}
zen-boost-save =
.label = Boost exportálása
diff --git a/locales/hu/browser/browser/zen-command-palette.ftl b/locales/hu/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/hu/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/hu/browser/browser/zen-general.ftl b/locales/hu/browser/browser/zen-general.ftl
index 93f887358..d45f52667 100644
--- a/locales/hu/browser/browser/zen-general.ftl
+++ b/locales/hu/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } hely foglalt
tab-context-zen-remove-essential =
.label = Eltávolítás az alapvetőkből
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Alapvető lap cseréje az aktuális URL-el
- *[false] Rögzített lap cseréje az aktuális URL-el
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Címke módosítása...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Megerősítés
zen-pinned-tab-replaced = A rögzített lap URL címe helyébe az aktuális URL cím lépett!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = A lap sikeresen át lett nevezve!
zen-background-tab-opened-toast = Új lap megnyitva!
zen-workspace-renamed-toast = A munkakörnyezet sikeresen át lett nevezve!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojik
zen-icons-picker-svg =
.label = Ikonok
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Műveletek
zen-site-data-settings = Beállítások
zen-generic-manage = Kezelés
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Frissítés befejezve!
zen-sidebar-notification-updated-label = { -brand-short-name } újdonságai
zen-sidebar-notification-updated-tooltip =
.title = Változások listájának megtekintése
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Valami elromlott?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Újraindítás biztonságos módban
diff --git a/locales/hu/browser/browser/zen-space-routing.ftl b/locales/hu/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..7dd1e5178
--- /dev/null
+++ b/locales/hu/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Környezet útválasztási beállítások
+zen-space-routing-rulepanel-placeholder = Az útvonalakkal meghatározhatja, hogy az egyes webhelyek hol nyíljanak meg a Zen-ben. Beállíthatod például, hogy a YouTube-linkek mindig a Személyes környezetben nyíljanak meg.
+zen-space-routing-dialog-title = Környezet útválasztási beállítások
+zen-space-routing-external-default = Külső hivatkozások alapértelmezett útvonala
+zen-space-routing-new-route = Új útvonal
+zen-space-routing-open-in-space = Megnyitás környezetben
+zen-space-routing-most-recent-space = Legutóbbi környezet
+zen-space-routing-close-button =
+ .aria-label = Bezárás
+ .tooltiptext = Bezárás
+zen-space-routing-contains =
+ .label = Tartalmazza
+zen-space-routing-equal-to =
+ .label = Megegyezik ezzel
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Megnyitás itt
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/hu/browser/browser/zen-workspaces.ftl b/locales/hu/browser/browser/zen-workspaces.ftl
index 00f7ead46..fdf2ca829 100644
--- a/locales/hu/browser/browser/zen-workspaces.ftl
+++ b/locales/hu/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = A profilok arra szolgálnak, hogy a sütiket és a webhelyadatokat elkülönítsék a munkakörnyezetek között.
zen-workspace-creation-header = Környezet létrehozása
zen-workspace-creation-label = A munkakörnyezetek a lapok és munkamenetek rendszerezésére szolgálnak.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Munkakörnyezet törlése?
zen-workspaces-delete-workspace-body = Biztosan törölni szeretnéd ezt: { $name }? Ez a művelet visszafordíthatatlan.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/id/browser/browser/preferences/zen-preferences.ftl b/locales/id/browser/browser/preferences/zen-preferences.ftl
index 61fb563cf..9c35a6091 100644
--- a/locales/id/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/id/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Sembunyikan juga toolbar atas dalam mode ringkas
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Buat bilah tab muncul sebentar saat beralih atau membuka tab baru dalam mode ringkas
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Pengelolaan Tab
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Lihat Info Halaman
zen-find-shortcut = Temukan di Halaman
zen-search-find-again-shortcut = Temukan Lagi
zen-search-find-again-shortcut-prev = Cari Sebelumnya
-zen-search-find-again-shortcut-2 = Cari Lagi (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Markahi Laman Ini
zen-bookmark-show-library-shortcut = Tampilkan Pustaka Markah
zen-key-stop = Berhenti Memuat
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Beralih ke Ruang Kerja 9
zen-workspace-shortcut-switch-10 = Beralih ke Ruang Kerja 10
zen-workspace-shortcut-forward = Ruang Kerja setelahnya
zen-workspace-shortcut-backward = Ruang Kerja sebelumnya
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Buat Ruang Kerja Baru
zen-sidebar-shortcut-toggle = Peralihan lebar Bilah sisi
zen-pinned-tab-shortcut-reset = Setel ulang Tab yang Disematkan ke URL awal
zen-split-view-shortcut-grid = Beralih ke Panel terbagi
diff --git a/locales/id/browser/browser/zen-boosts.ftl b/locales/id/browser/browser/zen-boosts.ftl
index eb42026a7..c71740426 100644
--- a/locales/id/browser/browser/zen-boosts.ftl
+++ b/locales/id/browser/browser/zen-boosts.ftl
@@ -48,9 +48,9 @@ zen-unzap-tooltip =
*[other] { $elementCount } elements zapped
}
zen-boost-save =
- .label = Export Boost
+ .label = Ekspor Boost
zen-boost-load =
- .label = Import Boost
+ .label = Impor Boost
zen-panel-ui-boosts-exported-message = Boost exported!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
diff --git a/locales/id/browser/browser/zen-command-palette.ftl b/locales/id/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/id/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/id/browser/browser/zen-general.ftl b/locales/id/browser/browser/zen-general.ftl
index 860c3deed..04f2da7aa 100644
--- a/locales/id/browser/browser/zen-general.ftl
+++ b/locales/id/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slot terisi
tab-context-zen-remove-essential =
.label = Hapus dari Esensial
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Perbarui URL awal Tab Esensial
- *[false] Perbarui URL awal Tab Sematan
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Ubah Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Konfirmasi
zen-pinned-tab-replaced = URL awal dari tab yang disematkan telah diganti dengan URL saat ini.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab telah berhasil diubah namanya!
zen-background-tab-opened-toast = Tab baru telah terbuka di latar belakang!
zen-workspace-renamed-toast = Ruang Kerja telah berhasil diubah namanya!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emoji
zen-icons-picker-svg =
.label = Ikon
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Aksi
zen-site-data-settings = Pengaturan
zen-generic-manage = Kelola
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Pembaruan Selesai!
zen-sidebar-notification-updated-label = Apa yang baru di { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Lihat Catatan Rilis
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Ada yang rusak?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Mulai Ulang dalam Mode Aman
diff --git a/locales/id/browser/browser/zen-space-routing.ftl b/locales/id/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/id/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/id/browser/browser/zen-workspaces.ftl b/locales/id/browser/browser/zen-workspaces.ftl
index abc634e71..9e6ff7c87 100644
--- a/locales/id/browser/browser/zen-workspaces.ftl
+++ b/locales/id/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profil (Kontainer) digunakan untuk memisahkan cookie dan data situs antar Ruang.
zen-workspace-creation-header = Buat sebuah Ruang
zen-workspace-creation-label = Ruang digunakan untuk mengorganisasikan tab dan sesi Anda.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Hapus Ruang?
zen-workspaces-delete-workspace-body = Apakah Anda yakin ingin menghapus { $name }? Tindakan ini tidak bisa dibatalkan.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/is/browser/browser/preferences/zen-preferences.ftl b/locales/is/browser/browser/preferences/zen-preferences.ftl
index 11ac037c8..32db43305 100644
--- a/locales/is/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/is/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Fela efstu verkfærastikuna einnig í þjöppuðu viðmóti
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Láta verkfærastikuna hoppa upp þegar skipt er um flipa eða nýir eru opnaðir í þjöppuðu viðmóti
+zen-look-and-feel-window-drag-header = Gluggadráttur
+zen-look-and-feel-window-drag-description = Færðu gluggann með því að draga autt svæði efst á vefsíðum, rétt eins og titilstikuna.
+zen-window-drag-enabled =
+ .label = Leyfa að draga gluggann af vefsíðum
pane-zen-tabs-title = Umsýsla flipa
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -49,7 +53,7 @@ zen-tabs-close-on-back-with-no-history =
zen-settings-workspaces-sync-unpinned-tabs =
.label = Samstilla einungis festa flipa í vinnusvæðum
zen-tabs-cycle-by-attribute =
- .label = Ctrl+Tab flettir aðeins innan flipa í þarfagripum eða vinnusvæðum
+ .label = Ctrl+Tab flettir aðeins innan flipa í Mikilvægt eða vinnusvæðum
zen-tabs-cycle-ignore-pending-tabs =
.label = Hunsa flipa í bið þegar flett er í gegnum með Ctrl + Tab
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab mun fletta í gegnum röð eftir nýlega notuðum flipum, þegar það er virkjað
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Skoða upplýsingar um síðu
zen-find-shortcut = Finna á síðu
zen-search-find-again-shortcut = Finna aftur
zen-search-find-again-shortcut-prev = Finna fyrra
-zen-search-find-again-shortcut-2 = Finna aftur (Alt)
+zen-search-find-again-shortcut-alt = Finna aftur (Alt)
+zen-search-find-again-shortcut-prev-alt = Finna fyrra (Alt)
zen-bookmark-this-page-shortcut = Bókamerkja þessa síðu
zen-bookmark-show-library-shortcut = Birta bókamerkjasafn
zen-key-stop = Stöðva hleðslu
diff --git a/locales/is/browser/browser/zen-command-palette.ftl b/locales/is/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..10a2da5be
--- /dev/null
+++ b/locales/is/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Víxla þjöppuðu viðmóti
+zen-action-open-theme-picker = Opna þemaval
+zen-action-new-split-view = Nýtt klofið yfirlit
+zen-action-new-folder = Ný mappa
+zen-action-copy-current-url = Afrita fyrirliggjandi slóð
+zen-action-settings = Stillingar
+zen-action-open-private-window = Opna huliðsglugga
+zen-action-open-new-window = Opna nýjan glugga
+zen-action-new-blank-window = Nýr auður gluggi
+zen-action-pin-tab = Festa flipa
+zen-action-unpin-tab = Losa flipa
+zen-action-open-space-routing = Opna Svæðabeiningar
+zen-action-new-boost = Ný endurhönnun
+zen-action-next-space = Næsta svæði
+zen-action-previous-space = Fyrra svæði
+zen-action-close-tab = Loka flipa
+zen-action-reload-tab = Endurhlaða flipa
+zen-action-reload-tab-without-cache = Endurhlaða flipa án skyndiminnis
+zen-action-next-tab = Næsta flipa
+zen-action-previous-tab = Fyrri flipa
+zen-action-capture-screenshot = Taka skjámynd
+zen-action-toggle-tabs-on-right = Víxla sýnileika flipa hægra megin
+zen-action-add-to-essentials = Bæta við Mikilvægt
+zen-action-remove-from-essentials = Fjarlægja úr Mikilvægt-flipum
+zen-action-find-in-page = Finna á síðu
+zen-action-manage-extensions = Sýsla með forritsauka
+zen-action-switch-to-automatic-appearance = Skipta yfir í sjálfvirkan útlitsham
+zen-action-switch-to-light-mode = Skipta yfir í ljósan ham
+zen-action-switch-to-dark-mode = Skipta yfir í dökkan ham
+zen-action-print = Prenta
+zen-action-focus-on = Skerpa
+zen-action-extension = Viðbót
diff --git a/locales/is/browser/browser/zen-general.ftl b/locales/is/browser/browser/zen-general.ftl
index 39f8aa763..05df7fdb8 100644
--- a/locales/is/browser/browser/zen-general.ftl
+++ b/locales/is/browser/browser/zen-general.ftl
@@ -7,24 +7,30 @@ unified-extensions-description = Forritsaukar eru notaðir til að auðga notagi
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
- [true] Endurglæða þarfaflipa
- *[false] Endurglæða festan flipa
+ [true] Endurlesa Mikilvægt-flipa
+ *[false] Endurlesa festan flipa
}
.accesskey = R
tab-context-zen-add-essential =
- .label = Bæta við þarfaflipa
+ .label = Bæta við Mikilvægt
.accesskey = F
tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
- .label = Fjarlægja úr þarfaflipum
+ .label = Fjarlægja úr Mikilvægt-flipum
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Skipta út vefslóð þarfaflipa fyrir fyrirliggjandi slóð
- *[false] Skipta út vefslóð fests flipa fyrir fyrirliggjandi slóð
+ [true] Breyta vefslóð á Mikilvægt
+ *[false] Breyta vefslóð fests flipa
}
.accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Skipta út fyrir fyrirliggjandi vefslóð
+ .accesskey = P
+tab-context-zen-edit-pinned-url =
+ .label = Breyta…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Skipta um merkingu...
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Staðfesta
zen-pinned-tab-replaced = URL-slóð festa flipans hefur verið skipt út með fyrirliggjandi slóð!
+zen-pinned-tab-url-edited = Vefslóð festa flipans hefur verið breytt!
+zen-pinned-tab-url-invalid = Þetta virðist ekki vera gild vefslóð.
+zen-pinned-tab-edit-url-title = Breyta festri vefslóð
+zen-pinned-tab-edit-url-label = Sláðu inn slóðina sem þessi festi flipi ætti að vísa á:
zen-tabs-renamed = Tókst að endurnefna flipann!
zen-background-tab-opened-toast = Nýr bakgrunnsflipi opnaður!
zen-workspace-renamed-toast = Tókst að endurnefna vinnusvæðið!
@@ -63,12 +73,14 @@ zen-icons-picker-emoji =
.label = Emoji-tákn
zen-icons-picker-svg =
.label = Táknmyndir
+zen-emojis-picker-search =
+ .placeholder = Leita að emoji-táknum
urlbar-search-mode-zen_actions = Aðgerðir
zen-site-data-settings = Stillingar
zen-generic-manage = Sýsla
zen-generic-more = Meira
zen-generic-next = Næsta
-zen-essentials-promo-label = Bæta við þarfaflipa
+zen-essentials-promo-label = Bæta við Mikilvægt
zen-essentials-promo-sublabel = Hafðu eftirlætisflipana þína við hendina
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Leyft
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Uppfærslu lokið!
zen-sidebar-notification-updated-label = Nýtt á döfinni í { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Skoða útgáfuupplýsingar
+zen-sidebar-notification-donate-label = Styrkja { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Styrkja verkefnið með framlagi
zen-sidebar-notification-restart-safe-mode-label = Bilaði eitthvað?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Endurræsa í öruggum ham
diff --git a/locales/is/browser/browser/zen-space-routing.ftl b/locales/is/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..05226f6ff
--- /dev/null
+++ b/locales/is/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Stillingar beininga á svæði
+zen-space-routing-rulepanel-placeholder = Beiningar gera þér kleift að velja hvar ákveðin vefsvæði opnast inni í Zen. Til dæmis geturðu stillt það þannig að YouTube-tenglar opnist alltaf í persónulega svæðinu þínu.
+zen-space-routing-dialog-title = Stillingar beininga á svæði
+zen-space-routing-external-default = Sjálfgefin beining fyrir utanaðkomandi tengla
+zen-space-routing-new-route = Ný beining
+zen-space-routing-open-in-space = Opna í svæði
+zen-space-routing-most-recent-space = Nýjast notaða svæðið
+zen-space-routing-close-button =
+ .aria-label = Loka
+ .tooltiptext = Loka
+zen-space-routing-contains =
+ .label = Inniheldur
+zen-space-routing-equal-to =
+ .label = Er jafnt og
+zen-space-routing-regex =
+ .label = Regluleg segð
+zen-space-routing-open-in = Opna í
+zen-space-routing-url = Slóð
+zen-space-routing-tab-routed-toast = Nýr flipi opnaður innan { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Bæta við beiningu fyrir lén
+ *[other] Bæta við beiningu fyrir lén
+ }
diff --git a/locales/is/browser/browser/zen-welcome.ftl b/locales/is/browser/browser/zen-welcome.ftl
index d9d12a22d..f0bda4f48 100644
--- a/locales/is/browser/browser/zen-welcome.ftl
+++ b/locales/is/browser/browser/zen-welcome.ftl
@@ -12,7 +12,7 @@ zen-welcome-set-default-browser = Setja { -brand-short-name } sem sjálfgefna va
zen-welcome-dont-set-default-browser = EKKI setja { -brand-short-name } sem sjálfgefna vafrann þinn
zen-welcome-initial-essentials-title = Þörfustu fliparnir þinir, alltaf innan seilingar
zen-welcome-initial-essentials-description-1 = Haltu mikilvægustu flipunum þínum við hendina, alveg sama hvað þeir eru margir.
-zen-welcome-initial-essentials-description-2 = Þarfafliparnir eru alltaf sjáanlegir, sama hvaða vinnusvæði þú ert á.
+zen-welcome-initial-essentials-description-2 = Mikilvægt-fliparnir eru alltaf sjáanlegir, sama hvaða vinnusvæði þú ert á.
zen-welcome-workspace-colors-title = Vinnusvæðin þín, litirnir þínir
zen-welcome-workspace-colors-description = Aðlagaðu vafrann að þínum þörfum með því að gefa hverju vinnusvæði sinn einstaka lit.
zen-welcome-start-browsing-title =
diff --git a/locales/is/browser/browser/zen-workspaces.ftl b/locales/is/browser/browser/zen-workspaces.ftl
index 5fbf6d43f..69fc37cd8 100644
--- a/locales/is/browser/browser/zen-workspaces.ftl
+++ b/locales/is/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Notkunarsnið
.tooltiptext = Notkunarsnið eru til þess að aðskilja vefkökur og gögn vefsvæða á milli vinnusvæða.
zen-workspace-creation-header = Búa til vinnusvæði
zen-workspace-creation-label = Vinnusvæði eru notuð til að skipuleggja flipana þína og vafurlotur.
+zen-workspace-default-profile = Sjálfgefið
zen-workspaces-delete-workspace-title = Eyða svæði?
zen-workspaces-delete-workspace-body = Ertu viss um að þú viljir eyða { $name }? Þessi aðgerð er ekki afturkallanleg.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/it/browser/browser/preferences/zen-preferences.ftl b/locales/it/browser/browser/preferences/zen-preferences.ftl
index 36a85b054..0935e3db2 100644
--- a/locales/it/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/it/browser/browser/preferences/zen-preferences.ftl
@@ -38,16 +38,20 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Nascondi anche la barra degli strumenti superiore in modalità compatta
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Fai comparire brevemente la barra degli strumenti quando si cambiano o si aprono nuove schede in modalità compatta
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Gestione Schede
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Workspace
zen-tabs-select-recently-used-on-close =
- .label = When closing a tab, switch to the most recently used tab instead of the next tab
+ .label = Quando si chiude una scheda, passa alla scheda usata più di recente invece della scheda successiva
zen-tabs-close-on-back-with-no-history =
.label = Chiudi scheda e passa alla scheda proprietario (o scheda usata più di recente) quando si torna indietro senza cronologia
zen-settings-workspaces-sync-unpinned-tabs =
- .label = Sync only pinned tabs in workspaces
+ .label = Sincronizza solo schede bloccate negli spazi di lavoro
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab cicla solo tra le schede Essenziali o Spazi
zen-tabs-cycle-ignore-pending-tabs =
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Visualizza Informazioni Pagina
zen-find-shortcut = Trova nella pagina
zen-search-find-again-shortcut = Trova Di Nuovo
zen-search-find-again-shortcut-prev = Trova Precedente
-zen-search-find-again-shortcut-2 = Trova Ancora (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Aggiungi questa pagina ai segnalibri
zen-bookmark-show-library-shortcut = Mostra Libreria Segnalibri
zen-key-stop = Interrompi Caricamento
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Passa allo spazio di lavoro 9
zen-workspace-shortcut-switch-10 = Passa allo spazio di lavoro 10
zen-workspace-shortcut-forward = Spazio Successivo
zen-workspace-shortcut-backward = Spazio Precedente
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Crea nuovo spazio di lavoro
zen-sidebar-shortcut-toggle = Attiva/Disattiva Larghezza Barra Laterale
zen-pinned-tab-shortcut-reset = Reimposta la scheda bloccata all'URL bloccata
zen-split-view-shortcut-grid = Attiva/Disattiva Griglia Visualizzazione Dividi
@@ -318,5 +323,5 @@ zen-devtools-toggle-dom-shortcut = Attiva/Disattiva DOM
zen-devtools-toggle-accessibility-shortcut = Attiva/Disattiva Accessibilità
zen-close-all-unpinned-tabs-shortcut = Chiudi Tutte Le Schede Non Bloccate
zen-new-unsynced-window-shortcut = New Unsynced Window
-zen-duplicate-tab-shortcut = Duplicate Tab
-zen-key-find-selection = Find Selection
+zen-duplicate-tab-shortcut = Duplica scheda
+zen-key-find-selection = Trova Selezione
diff --git a/locales/it/browser/browser/zen-boosts.ftl b/locales/it/browser/browser/zen-boosts.ftl
index eb42026a7..074013167 100644
--- a/locales/it/browser/browser/zen-boosts.ftl
+++ b/locales/it/browser/browser/zen-boosts.ftl
@@ -3,56 +3,56 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Rinomina Potenziamento
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Mischia Le Vibes
zen-boost-edit-reset =
- .label = Reset All Edits
+ .label = Reimposta Tutte Le Modifiche
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
-zen-boost-case = Case
+ .label = Elimina Potenziamento
+zen-boost-size = Dimensione
+zen-boost-case = Maiuscole/minuscole
zen-boost-zap = Zap
-zen-boost-code = Code
-zen-boost-back = Back
+zen-boost-code = Codice
+zen-boost-back = Indietro
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Impostazioni Boost Casuale
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Inverti Colori Intelligente
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Controlli Dei Colori Avanzati
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Disabilita Regolazioni Colore
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Attiva/Disattiva Maiuscole
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Scegli Selettore
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
-zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
-zen-boost-color-original-saturation = Original Saturation
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+ .tooltiptext = Apri Ispettore
+zen-boost-color-contrast = Contrasto
+zen-boost-color-brightness = Luminosità
+zen-boost-color-original-saturation = Saturazione Originale
+zen-add-zap-helper = Clicca gli elementi sulla pagina per Zapparli
+zen-remove-zap-helper = ← Clicca per Un-zappare
+zen-select-this = Inserisci un selettore per questo
+zen-select-related = Inserisci selettore per i correlati
+zen-select-cancel = Annulla
+zen-zap-this = Zappa questo
+zen-zap-related = Zappa tutti gli elementi correlati
+zen-zap-cancel = Annulla
+zen-zap-done = Fatto
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Nessun elemento zappato
+ [1] { $elementCount } elemento zappato
+ *[other] { $elementCount } elementi zappati
}
zen-boost-save =
- .label = Export Boost
+ .label = Esporta Potenziamento
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+ .label = Importa Potenziamento
+zen-panel-ui-boosts-exported-message = Potenziamento esportato!
+zen-site-data-boosts = Potenziamenti
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Crea nuovo potenziamento
+zen-boost-rename-boost-prompt = Rinomina Potenziamento?
diff --git a/locales/it/browser/browser/zen-command-palette.ftl b/locales/it/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..d7240c602
--- /dev/null
+++ b/locales/it/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Apri Selettore di Temi
+zen-action-new-split-view = New Split View
+zen-action-new-folder = Nuova Cartella
+zen-action-copy-current-url = Copia URL Corrente
+zen-action-settings = Impostazioni
+zen-action-open-private-window = Apri Finestra Privata
+zen-action-open-new-window = Apri Nuova Finestra
+zen-action-new-blank-window = Apri Finestra Vuota
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = Nuovo Boost
+zen-action-next-space = Spazio Successivo
+zen-action-previous-space = Spazio Precedente
+zen-action-close-tab = Chiudi Scheda
+zen-action-reload-tab = Ricarica Scheda
+zen-action-reload-tab-without-cache = Ricarica Scheda Senza Cache
+zen-action-next-tab = Scheda Successiva
+zen-action-previous-tab = Scheda Precedente
+zen-action-capture-screenshot = Cattura Schermata
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Aggiungi agli Essenziali
+zen-action-remove-from-essentials = Rimuovi dagli Essenziali
+zen-action-find-in-page = Trova nella Pagina
+zen-action-manage-extensions = Gestisci Estensioni
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Stampa
+zen-action-focus-on = Focus on
+zen-action-extension = Estensione
diff --git a/locales/it/browser/browser/zen-general.ftl b/locales/it/browser/browser/zen-general.ftl
index b4b052db6..b14646b20 100644
--- a/locales/it/browser/browser/zen-general.ftl
+++ b/locales/it/browser/browser/zen-general.ftl
@@ -7,8 +7,8 @@ unified-extensions-description = Le estensioni sono usate per portare più funzi
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
- [true] Reset Essential Tab
- *[false] Reset Pinned Tab
+ [true] Resetta Scheda Essenziale
+ *[false] Resetta Scheda Bloccata
}
.accesskey = R
tab-context-zen-add-essential =
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slot riempiti
tab-context-zen-remove-essential =
.label = Rimuovi dagli Essenziali
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Cambia Etichetta...
tab-context-zen-edit-icon =
@@ -39,16 +45,20 @@ pictureinpicture-minimize-btn =
.tooltip = Minimizza
zen-panel-ui-gradient-generator-custom-color = Colore personalizzato
zen-copy-current-url-confirmation = L'URL corrente è stato copiato!
-zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
+zen-copy-current-url-as-markdown-confirmation = URL corrente copiato come Markdown!
zen-general-cancel-label =
.label = Annulla
zen-general-confirm =
.label = Conferma
zen-pinned-tab-replaced = L'URL della scheda bloccata è stato sostituito con l'URL attuale.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = La scheda è stata rinominata con successo!
zen-background-tab-opened-toast = Nuova scheda aperta in background!
zen-workspace-renamed-toast = Il Workspace è stato rinominato con successo!
-zen-split-view-limit-toast = Can't add more panels to the split view!
+zen-split-view-limit-toast = Impossibile aggiungere altri pannelli alla vista divisa!
zen-toggle-compact-mode-button =
.label = Modalità compatta
.tooltiptext = Attiva/disattiva Modalità compatta
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = Emoji
zen-icons-picker-svg =
.label = Icone
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Azioni
zen-site-data-settings = Impostazioni
zen-generic-manage = Gestisci
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Aggiornamento completato!
zen-sidebar-notification-updated-label = Cosa c'è di nuovo in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Vedi Note di Rilascio
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Si è rotto qualcosa?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Riavvia in Modalità Provvisoria
@@ -122,4 +137,4 @@ zen-window-sync-migration-dialog-message = Zen ora sincronizza le finestre sullo
zen-window-sync-migration-dialog-learn-more = Scopri di più
zen-window-sync-migration-dialog-accept = Ho capito
zen-appmenu-new-blank-window =
- .label = New blank window
+ .label = Nuova finestra vuota
diff --git a/locales/it/browser/browser/zen-menubar.ftl b/locales/it/browser/browser/zen-menubar.ftl
index feed1fb0b..044a0cb44 100644
--- a/locales/it/browser/browser/zen-menubar.ftl
+++ b/locales/it/browser/browser/zen-menubar.ftl
@@ -19,4 +19,4 @@ zen-menubar-appearance-light =
zen-menubar-appearance-dark =
.label = Scuro
zen-menubar-new-blank-window =
- .label = New Blank Window
+ .label = Nuova Finestra Vuota
diff --git a/locales/it/browser/browser/zen-space-routing.ftl b/locales/it/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/it/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/it/browser/browser/zen-split-view.ftl b/locales/it/browser/browser/zen-split-view.ftl
index 27af93a9b..59a4a13c9 100644
--- a/locales/it/browser/browser/zen-split-view.ftl
+++ b/locales/it/browser/browser/zen-split-view.ftl
@@ -5,9 +5,9 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
- [-1] Split out tab
- [1] Add split view...
- *[other] Join { $tabCount } Tabs
+ [-1] Dividi scheda
+ [1] Aggiungi vista divisa...
+ *[other] Combina { $tabCount } Schede
}
.accesskey = S
zen-split-link =
diff --git a/locales/it/browser/browser/zen-vertical-tabs.ftl b/locales/it/browser/browser/zen-vertical-tabs.ftl
index ca8bf28a1..1df678a3c 100644
--- a/locales/it/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/it/browser/browser/zen-vertical-tabs.ftl
@@ -41,7 +41,7 @@ tabbrowser-reset-pin-button =
}
zen-tab-sublabel =
{ $tabSubtitle ->
- [zen-default-pinned] Back to pinned url
- [zen-default-pinned-cmd] Separate from pinned tab
+ [zen-default-pinned] Torna all'url bloccato
+ [zen-default-pinned-cmd] Separa dalla scheda bloccata
*[other] { $tabSubtitle }
}
diff --git a/locales/it/browser/browser/zen-workspaces.ftl b/locales/it/browser/browser/zen-workspaces.ftl
index 17c30a8c6..4302b2294 100644
--- a/locales/it/browser/browser/zen-workspaces.ftl
+++ b/locales/it/browser/browser/zen-workspaces.ftl
@@ -10,7 +10,7 @@ zen-panel-ui-workspaces-create =
zen-panel-ui-folder-create =
.label = Crea Cartella
zen-panel-ui-live-folder-create =
- .label = Live Folder
+ .label = Cartella Dinamica
zen-panel-ui-new-empty-split =
.label = Nuova Divisione
zen-workspaces-panel-context-delete =
@@ -25,7 +25,7 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload =
.label = Scarica Spazio
zen-workspaces-panel-unload-others =
- .label = Unload All Other Spaces
+ .label = Scarica Tutti Gli Altri Spazi
zen-workspaces-how-to-reorder-title = Come riordinare gli spazi
zen-workspaces-how-to-reorder-desc = Trascina le icone degli spazi in fondo alla barra laterale per riordinarle
zen-workspaces-change-theme =
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profilo
.tooltiptext = I profili vengono usati per separare i cookie e i dati dei siti tra gli spazi.
zen-workspace-creation-header = Crea uno Spazio
zen-workspace-creation-label = Gli Spazi sono usati per organizzare le tue schede e sessioni.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Eliminare Spazio?
zen-workspaces-delete-workspace-body = Sei sicuro di voler cancellare { $name }? Questa azione non può essere annullata.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/ja/browser/browser/preferences/zen-preferences.ftl b/locales/ja/browser/browser/preferences/zen-preferences.ftl
index 63a8186a9..31dd01fdb 100644
--- a/locales/ja/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ja/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = 上のツールバーをコンパクトモードで非表示にします
zen-look-and-feel-compact-toolbar-flash-popup =
.label = コンパクトモードでタブを切り替えたり新しいタブを開いたりするときに、ツールバーを一時的にポップアップ表示します
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = タブ管理
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -47,7 +51,7 @@ zen-tabs-select-recently-used-on-close =
zen-tabs-close-on-back-with-no-history =
.label = タブを閉じ、履歴がない状態で戻るときに所有者のタブ(または最近使用したタブ)に切り替えます
zen-settings-workspaces-sync-unpinned-tabs =
- .label = ワークスペースのタブのうちピン留めされているタブのみを同期する
+ .label = ワークスペースにはピン留めされているタブのみを同期する
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tabキーを押してワークスペースタブ内または重要なタブ内のサイクルを切り替えます
zen-tabs-cycle-ignore-pending-tabs =
@@ -234,7 +238,7 @@ zen-key-exit-full-screen = 全画面表示を終了
zen-ai-chatbot-sidebar-shortcut = AIチャットボットサイドバーの切り替え
zen-key-inspector-mac = インスペクタの切り替え (Mac)
zen-toggle-sidebar-shortcut = Firefoxサイドバーの切り替え
-zen-toggle-pin-tab-shortcut = ピンタブの切り替え
+zen-toggle-pin-tab-shortcut = ピン留めさせるタブの切り替え
zen-reader-mode-toggle-shortcut-other = リーダーモードの切り替え
zen-picture-in-picture-toggle-shortcut = ピクチャーインピクチャーの切り替え
zen-nav-reload-shortcut-2 = ページを再読み込み
@@ -244,7 +248,8 @@ zen-page-info-shortcut = ページ情報を表示
zen-find-shortcut = ページ上で検索
zen-search-find-again-shortcut = 再検索
zen-search-find-again-shortcut-prev = 前を検索
-zen-search-find-again-shortcut-2 = 再検索 (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = このページをブックマーク
zen-bookmark-show-library-shortcut = ブックマークライブラリを表示
zen-key-stop = 読み込みを中止
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = ワークスペース9に切り替える
zen-workspace-shortcut-switch-10 = ワークスペース10に切り替える
zen-workspace-shortcut-forward = 次のワークスペースに移動
zen-workspace-shortcut-backward = 前のワークスペースへ移動
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = 新しいワークスペースを作成する
zen-sidebar-shortcut-toggle = サイドバーの幅を切り替える
zen-pinned-tab-shortcut-reset = ピン留めされたタブをピン留めしたURLにリセット
zen-split-view-shortcut-grid = 分割表示グリッドの切り替え
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = アクセシビリティの切り
zen-close-all-unpinned-tabs-shortcut = ピン留めされていないすべてのタブを閉じる
zen-new-unsynced-window-shortcut = New Unsynced Window
zen-duplicate-tab-shortcut = タブを複製
-zen-key-find-selection = Find Selection
+zen-key-find-selection = 選択を見つける
diff --git a/locales/ja/browser/browser/zen-boosts.ftl b/locales/ja/browser/browser/zen-boosts.ftl
index 6172b8b53..353231e92 100644
--- a/locales/ja/browser/browser/zen-boosts.ftl
+++ b/locales/ja/browser/browser/zen-boosts.ftl
@@ -11,7 +11,7 @@ zen-boost-edit-reset =
zen-boost-edit-delete =
.label = ブーストを削除
zen-boost-size = サイズ
-zen-boost-case = Case
+zen-boost-case = 大文字、小文字
zen-boost-zap = ザップ
zen-boost-code = コード
zen-boost-back = 戻る
@@ -48,9 +48,9 @@ zen-unzap-tooltip =
*[other] { $elementCount } elements zapped
}
zen-boost-save =
- .label = Export Boost
+ .label = ブーストをエキスポ―とする
zen-boost-load =
- .label = Import Boost
+ .label = ブーストをインポートする
zen-panel-ui-boosts-exported-message = ブーストがエクスポートされました!
zen-site-data-boosts = ブースト
zen-site-data-create-boost =
diff --git a/locales/ja/browser/browser/zen-command-palette.ftl b/locales/ja/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..8384bf68d
--- /dev/null
+++ b/locales/ja/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = コンパクトモードを切り替える
+zen-action-open-theme-picker = テーマピッカーを開く
+zen-action-new-split-view = 新しく分割ビューを作成
+zen-action-new-folder = 新しいフォルダを作成
+zen-action-copy-current-url = 現在のURLをコピー
+zen-action-settings = 設定
+zen-action-open-private-window = プライベートウィンドウを開く
+zen-action-open-new-window = 新しいウィンドウを開く
+zen-action-new-blank-window = 新しい空のウィンドウを開く
+zen-action-pin-tab = タブをピン留め
+zen-action-unpin-tab = タブのピン留めを解除
+zen-action-open-space-routing = スペースルーティングを開く
+zen-action-new-boost = 新しいブースト
+zen-action-next-space = 次のスペースへ移動
+zen-action-previous-space = 前のスペースへ移動
+zen-action-close-tab = タブを閉じる
+zen-action-reload-tab = タブをリロード
+zen-action-reload-tab-without-cache = キャッシュをクリアしてタブをリロード
+zen-action-next-tab = 次のタブへ移動
+zen-action-previous-tab = 前のタブへ移動
+zen-action-capture-screenshot = スクリーンショットを撮る
+zen-action-toggle-tabs-on-right = 右のタブを切り替える
+zen-action-add-to-essentials = Essentialsに追加する
+zen-action-remove-from-essentials = Essentialsから削除する
+zen-action-find-in-page = ページ内を検索する
+zen-action-manage-extensions = 拡張機能を管理
+zen-action-switch-to-automatic-appearance = テーマの自動切り替えをオン
+zen-action-switch-to-light-mode = ライトモードに切り替える
+zen-action-switch-to-dark-mode = ダークモードに切り替える
+zen-action-print = 印刷
+zen-action-focus-on = フォーカスする
+zen-action-extension = 拡張機能
diff --git a/locales/ja/browser/browser/zen-folders.ftl b/locales/ja/browser/browser/zen-folders.ftl
index 1461393ab..e11c39586 100644
--- a/locales/ja/browser/browser/zen-folders.ftl
+++ b/locales/ja/browser/browser/zen-folders.ftl
@@ -3,7 +3,7 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-folders-search-placeholder =
- .placeholder = { $folder-name } を検索
+ .placeholder = { $folder-name } を検索…
zen-folders-panel-rename-folder =
.label = フォルダの名前を変更
zen-folders-panel-unpack-folder =
diff --git a/locales/ja/browser/browser/zen-general.ftl b/locales/ja/browser/browser/zen-general.ftl
index 81f90c814..08057a38a 100644
--- a/locales/ja/browser/browser/zen-general.ftl
+++ b/locales/ja/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }スロットがいっ
tab-context-zen-remove-essential =
.label = Essentialsから削除
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] EssentialタブのURLを今開いているURLで置き換える
- *[false] ピン留めされたタブのURLを今開いているURLで置き換える
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = ラベルを変更する...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = 確定
zen-pinned-tab-replaced = 固定したタブのURLが現在のURLに置き換えられました!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = タブの名前は無事に変更されました!
zen-background-tab-opened-toast = 新しい背景タブが開きました!
zen-workspace-renamed-toast = ワークスペースの名前が変更されました!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = 絵文字
zen-icons-picker-svg =
.label = アイコン
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = アクション
zen-site-data-settings = 設定
zen-generic-manage = 管理
@@ -116,10 +128,13 @@ zen-sidebar-notification-updated-heading = アップデートが完了しまし
zen-sidebar-notification-updated-label = { -brand-short-name }の新機能
zen-sidebar-notification-updated-tooltip =
.title = リリースノートを表示する
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = 何か壊れましたか?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = セーフモードで再起動する
-zen-window-sync-migration-dialog-title = Windowsを同期させておく
+zen-window-sync-migration-dialog-title = Windowsとの同期を維持
zen-window-sync-migration-dialog-message = Zenは同一デバイス内のウィンドウを同期するようになり、1つのウィンドウでの操作が、他のウィンドウに、即座に反映されます。
zen-window-sync-migration-dialog-learn-more = もっと詳しく
zen-window-sync-migration-dialog-accept = わかりました
diff --git a/locales/ja/browser/browser/zen-menubar.ftl b/locales/ja/browser/browser/zen-menubar.ftl
index ca733f7ec..7a345c91d 100644
--- a/locales/ja/browser/browser/zen-menubar.ftl
+++ b/locales/ja/browser/browser/zen-menubar.ftl
@@ -5,8 +5,8 @@
zen-menubar-toggle-pinned-tabs =
.label =
{ $pinnedAreCollapsed ->
- [true] ピン留めされたタブ
- *[false] ピン留めされたタブ
+ [true] ピン留めされたタブを表示する
+ *[false] ピン留めされたタブを表示しない
}
zen-menubar-appearance =
.label = 外観
diff --git a/locales/ja/browser/browser/zen-space-routing.ftl b/locales/ja/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..ff7fae4d2
--- /dev/null
+++ b/locales/ja/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = スペースルーティングの設定
+zen-space-routing-rulepanel-placeholder = ルートを使用すると、特定のサイトが「Zen」内でどこに開かれるかを選択できます。たとえば、YouTubeのリンクをあなたの個人的なスペース内に常に開くようにルーティングできます。
+zen-space-routing-dialog-title = スペースルーティングの設定
+zen-space-routing-external-default = 外部リンクのデフォルトルート
+zen-space-routing-new-route = 新しいルート
+zen-space-routing-open-in-space = スペースで開く
+zen-space-routing-most-recent-space = 直近のスペース
+zen-space-routing-close-button =
+ .aria-label = 閉じる
+ .tooltiptext = 閉じる
+zen-space-routing-contains =
+ .label = 含まれています
+zen-space-routing-equal-to =
+ .label = に等しい
+zen-space-routing-regex =
+ .label = 正規表現
+zen-space-routing-open-in = 開く
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/ja/browser/browser/zen-vertical-tabs.ftl b/locales/ja/browser/browser/zen-vertical-tabs.ftl
index dc726b4bb..acbc296aa 100644
--- a/locales/ja/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/ja/browser/browser/zen-vertical-tabs.ftl
@@ -37,11 +37,11 @@ tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
[one] タブをリセットして固定する
- *[other] タブをリセットして{ $tabCount }つのタブを固定する
+ *[other] タブをリセットして{ $tabCount }つのタブをピン留めする
}
zen-tab-sublabel =
{ $tabSubtitle ->
- [zen-default-pinned] 固定された URL に戻る
- [zen-default-pinned-cmd] 固定されたタブから切り離す
+ [zen-default-pinned] ピン留めされた URL に戻る
+ [zen-default-pinned-cmd] ピン留めされたタブから切り離す
*[other] { $tabSubtitle }
}
diff --git a/locales/ja/browser/browser/zen-workspaces.ftl b/locales/ja/browser/browser/zen-workspaces.ftl
index 5af1417c3..4adf7e749 100644
--- a/locales/ja/browser/browser/zen-workspaces.ftl
+++ b/locales/ja/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = プロファイル
.tooltiptext = プロファイルはスペース間でクッキーとサイトデータを分離するために使用されます。
zen-workspace-creation-header = スペースを作成する
zen-workspace-creation-label = スペースはタブやセッションを整理するために使用されます。
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = スペースを削除しますか?
zen-workspaces-delete-workspace-body = { $name }を削除してもよろしいですか?この操作は元に戻せません。
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/ko/browser/browser/preferences/zen-preferences.ftl b/locales/ko/browser/browser/preferences/zen-preferences.ftl
index 1a5b6544a..7b469cb06 100644
--- a/locales/ko/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ko/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = 사이드바 축소 모드에서 상단 툴바 숨기기
zen-look-and-feel-compact-toolbar-flash-popup =
.label = 사이드바 축소 모드에서 새 탭을 전환하거나 열 때 툴바를 간략하게 팝업으로 표시합니다
+zen-look-and-feel-window-drag-header = 창 드래그
+zen-look-and-feel-window-drag-description = 타이틀바처럼, 웹사이트 위의 빈 공간을 드래그해 창을 움직이세요.
+zen-window-drag-enabled =
+ .label = 웹 페이지에서 창 드래그 허용
pane-zen-tabs-title = 탭 관리
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = 페이지 정보 보기
zen-find-shortcut = 페이지에서 검색
zen-search-find-again-shortcut = 재검색
zen-search-find-again-shortcut-prev = 뒤로 검색
-zen-search-find-again-shortcut-2 = 재검색 (Alt)
+zen-search-find-again-shortcut-alt = 다시 찾기 (Alt)
+zen-search-find-again-shortcut-prev-alt = 이전 찾기 (Alt)
zen-bookmark-this-page-shortcut = 이 페이지 북마크
zen-bookmark-show-library-shortcut = 북마크 라이브러리 보기
zen-key-stop = 로딩 멈추기
diff --git a/locales/ko/browser/browser/zen-command-palette.ftl b/locales/ko/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..061df31c3
--- /dev/null
+++ b/locales/ko/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = 축소 모드 전환
+zen-action-open-theme-picker = 테마 편집기 열기
+zen-action-new-split-view = 새 분할 화면
+zen-action-new-folder = 새 폴더
+zen-action-copy-current-url = 현재 URL 복사
+zen-action-settings = 설정
+zen-action-open-private-window = 사생활 보호 창 열기
+zen-action-open-new-window = 새 창 열기
+zen-action-new-blank-window = 새 빈 창
+zen-action-pin-tab = 탭 고정
+zen-action-unpin-tab = 탭 고정 해제
+zen-action-open-space-routing = 스페이스 경로 설정 열기
+zen-action-new-boost = 새 부스트
+zen-action-next-space = 다음 스페이스
+zen-action-previous-space = 이전 스페이스
+zen-action-close-tab = 탭 닫기
+zen-action-reload-tab = 탭 새로고침
+zen-action-reload-tab-without-cache = 캐시 없이 탭 새로고침
+zen-action-next-tab = 다음 탭
+zen-action-previous-tab = 이전 탭
+zen-action-capture-screenshot = 스크린샷 캡쳐
+zen-action-toggle-tabs-on-right = 우측 탭 표시 전환
+zen-action-add-to-essentials = 에센셜에 추가
+zen-action-remove-from-essentials = 에센셜에서 제거
+zen-action-find-in-page = 페이지에서 찾기
+zen-action-manage-extensions = 확장 프로그램 관리
+zen-action-switch-to-automatic-appearance = 자동으로 모양 변경
+zen-action-switch-to-light-mode = 밝은 모드로 변경
+zen-action-switch-to-dark-mode = 어두운 모드로 변경
+zen-action-print = 인쇄
+zen-action-focus-on = 집중
+zen-action-extension = 확장 프로그램
diff --git a/locales/ko/browser/browser/zen-general.ftl b/locales/ko/browser/browser/zen-general.ftl
index dd2018713..c72b683c9 100644
--- a/locales/ko/browser/browser/zen-general.ftl
+++ b/locales/ko/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }개 추가됨
tab-context-zen-remove-essential =
.label = 에센셜에서 제거하기
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] 에센셜 탭을 현재 URL로 초기화
- *[false] 고정된 탭을 현재 URL로 초기화
+ [true] 에센셜 URL 편집
+ *[false] 고정된 탭 URL 편집
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = 현재 URL로 변경
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = 편집…
+ .accesskey = E
tab-context-zen-edit-title =
.label = 라벨 편집...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = 확인
zen-pinned-tab-replaced = 고정 URL이 현재 URL로 변경되었습니다!
+zen-pinned-tab-url-edited = 고정된 탭 URL이 변경되었습니다!
+zen-pinned-tab-url-invalid = 올바른 URL 형식이 아닙니다.
+zen-pinned-tab-edit-url-title = 고정된 탭 URL 편집
+zen-pinned-tab-edit-url-label = 이 고정된 탭이 고정할 URL을 입력하세요:
zen-tabs-renamed = 탭의 이름이 성공적으로 변경되었습니다!
zen-background-tab-opened-toast = 새 백그라운드 탭이 열렸습니다!
zen-workspace-renamed-toast = 워크스페이스 이름이 변경되었습니다!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = 이모티콘
zen-icons-picker-svg =
.label = 아이콘
+zen-emojis-picker-search =
+ .placeholder = 이모지 검색
urlbar-search-mode-zen_actions = 액션
zen-site-data-settings = 설정
zen-generic-manage = 관리
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = 업데이트 완료!
zen-sidebar-notification-updated-label = { -brand-short-name }의 새로운 기능
zen-sidebar-notification-updated-tooltip =
.title = 업데이트 기록 보기
+zen-sidebar-notification-donate-label = { -brand-short-name } 후원
+zen-sidebar-notification-donate-tooltip =
+ .title = 프로젝트에 후원하기
zen-sidebar-notification-restart-safe-mode-label = 무언가 고장났나요?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = 안전 모드로 다시 시작
diff --git a/locales/ko/browser/browser/zen-space-routing.ftl b/locales/ko/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..f503adb64
--- /dev/null
+++ b/locales/ko/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = 스페이스 경로 설정
+zen-space-routing-rulepanel-placeholder = 경로는 특정 사이트가 Zen의 어떤 곳으로 열릴지 설정할 수 있도록 합니다. 예를 들어, 유튜브 링크를 항상 "개인" 스페이스로 열리도록 할 수 있습니다.
+zen-space-routing-dialog-title = 스페이스 경로 설정
+zen-space-routing-external-default = 외부 링크의 기본 경로
+zen-space-routing-new-route = 새로운 경로
+zen-space-routing-open-in-space = 스페이스 안에서 열기
+zen-space-routing-most-recent-space = 가장 최근에 사용한 스페이스
+zen-space-routing-close-button =
+ .aria-label = 닫기
+ .tooltiptext = 닫기
+zen-space-routing-contains =
+ .label = 포함
+zen-space-routing-equal-to =
+ .label = 일치
+zen-space-routing-regex =
+ .label = 정규식
+zen-space-routing-open-in = ...에서 열기
+zen-space-routing-url = 주소
+zen-space-routing-tab-routed-toast = { $targetWorkspace }에 새 탭이 열렸습니다
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] 이 도메인을 경로로 추가
+ *[other] 이 도메인들을 경로로 추가
+ }
diff --git a/locales/ko/browser/browser/zen-workspaces.ftl b/locales/ko/browser/browser/zen-workspaces.ftl
index eaa6ea654..c2e611ce4 100644
--- a/locales/ko/browser/browser/zen-workspaces.ftl
+++ b/locales/ko/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = 프로필
.tooltiptext = 프로필은 스페이스 간의 쿠키와 사이트 데이터를 분리하기 위해 사용됩니다.
zen-workspace-creation-header = 스페이스 생성
zen-workspace-creation-label = 스페이스는 탭과 세션을 정리하기 위해 사용됩니다.
+zen-workspace-default-profile = 기본
zen-workspaces-delete-workspace-title = 워크스페이스를 삭제하시겠습니까?
zen-workspaces-delete-workspace-body = 정말 { $name }을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/lt/browser/browser/preferences/zen-preferences.ftl b/locales/lt/browser/browser/preferences/zen-preferences.ftl
index e156f4da5..97ab02de0 100644
--- a/locales/lt/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/lt/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Slėpti viršutinę įrankių juostą ir kompaktiniu režimu
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Trumpai padaryti, kad įrankių juosta iškiltų perjungiant arba atidarant naujas korteles kompaktiniu režimu
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Kortelių tvarkymas
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -64,7 +68,7 @@ zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
.label = Atkurti prisegtas korteles į jų originalų prisegtą URL paleidimo metu
zen-pinned-tab-manager-container-specific-essentials-enabled =
.label = Įjungti konkrečiam konteineriui būtinuosius
-zen-pinned-tab-manager-close-shortcut-behavior-label = Užvėrimo kortelę sparčiųjų klavišų elgsena
+zen-pinned-tab-manager-close-shortcut-behavior-label = Užvėrimo kortelės sparčiųjų klavišų elgsena
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
.label = Atkurti URL, iškelti ir perjungti į sekančią kortelę
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
@@ -110,7 +114,7 @@ zen-theme-marketplace-description = Raskite ir įdiekite modifikacijas iš pardu
zen-theme-marketplace-remove-button =
.label = Šalinti modifikaciją
zen-theme-marketplace-check-for-updates-button =
- .label = Tikrinti, ar yra naujinimų
+ .label = Tikrinti dėl naujinimų
zen-theme-marketplace-import-button =
.label = Importuoti modifikacijas
zen-theme-marketplace-export-button =
@@ -242,9 +246,10 @@ zen-key-about-processes = Apie procesus
zen-page-source-shortcut = Peržiūrėti puslapio šaltinį
zen-page-info-shortcut = Peržiūrėti puslapio informaciją
zen-find-shortcut = Rasti puslapyje
-zen-search-find-again-shortcut = Rasti dar kartą
+zen-search-find-again-shortcut = Rasti vėl
zen-search-find-again-shortcut-prev = Rasti ankstesnį
-zen-search-find-again-shortcut-2 = Rasti dar kartą (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Įtraukti šį puslapį į adresyną
zen-bookmark-show-library-shortcut = Rodyti adresyno biblioteką
zen-key-stop = Stabdyti įkėlimą
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Perjungti į 9 darbo sritį
zen-workspace-shortcut-switch-10 = Perjungti į 10 darbo sritį
zen-workspace-shortcut-forward = Pirmyn darbo sritį
zen-workspace-shortcut-backward = Atgal darbo sritį
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Kurti naują darbo sritį
zen-sidebar-shortcut-toggle = Perjungti šoninės juostos plotį
zen-pinned-tab-shortcut-reset = Atkurti prisegtą kortelę į prisegtą URL
zen-split-view-shortcut-grid = Perjungti skaidymo rodinį tinkleliu
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = Perjungti prieinamumą
zen-close-all-unpinned-tabs-shortcut = Užverti visas neprisegtas korteles
zen-new-unsynced-window-shortcut = Naujas tuščias langas
zen-duplicate-tab-shortcut = Dubliuoti kortelę
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Rasti pasirinktus
diff --git a/locales/lt/browser/browser/zen-boosts.ftl b/locales/lt/browser/browser/zen-boosts.ftl
index 60b7619e8..3a0206659 100644
--- a/locales/lt/browser/browser/zen-boosts.ftl
+++ b/locales/lt/browser/browser/zen-boosts.ftl
@@ -3,56 +3,58 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Pervadinti apipavidalinimą
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Maišyti vaibus
zen-boost-edit-reset =
.label = Atkurti visus redagavimus
zen-boost-edit-delete =
- .label = Delete Boost
+ .label = Ištrinti apipavidalinimą
zen-boost-size = Dydis
-zen-boost-case = Case
-zen-boost-zap = Zap
+zen-boost-case = Raidžių lygis
+zen-boost-zap = Šalinti
zen-boost-code = Kodas
-zen-boost-back = Back
+zen-boost-back = Atgal
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Maišymo apipavidalinimo nustatymai
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Išmanusis spalvų inversija
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Išplėstiniai spalvų valdymai
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Išjungti spalvų priderinimą
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Perjungti teksto raidžių lygį
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Pasirinkimo parinkiklis
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
+ .tooltiptext = Atverti inspektorių
zen-boost-color-contrast = Kontrastas
zen-boost-color-brightness = Šviesumas
-zen-boost-color-original-saturation = Original Saturation
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
+zen-boost-color-original-saturation = Originali grynis
+zen-add-zap-helper = Spustelėkite elementus puslapyje, kad juos pašalintumėte („nutrūkčioti“).
+zen-remove-zap-helper = ← Spustelėkite, kad atkurtumėte
+zen-select-this = Įterpti pasirinkiklį šiam
+zen-select-related = Įterpti pasirinkiklį susijusiems
zen-select-cancel = Atsisakyti
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+zen-zap-this = Šalinti šį
+zen-zap-related = Šalinti visus susijusius elementus
+zen-zap-cancel = Atsisakyti
+zen-zap-done = Atlikta
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Jokių elementų nepašalinta.
+ [1] { $elementCount } elementas pašalintas.
+ [few] { $elementCount } elementai pašalinti.
+ [many] { $elementCount } elemento pašalinta.
+ *[other] { $elementCount } elementų pašalinta.
}
zen-boost-save =
- .label = Export Boost
+ .label = Eksportuoti apipavidalinimą
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+ .label = Importuoti apipavidalinimą
+zen-panel-ui-boosts-exported-message = Apipavidalinimas eksportuotas.
+zen-site-data-boosts = Apipavidalinimai
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Kurti naują apipavidalinimą
+zen-boost-rename-boost-prompt = Pervadinti apipavidalinimą?
diff --git a/locales/lt/browser/browser/zen-command-palette.ftl b/locales/lt/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/lt/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/lt/browser/browser/zen-general.ftl b/locales/lt/browser/browser/zen-general.ftl
index 5f91e697b..c6c9f0148 100644
--- a/locales/lt/browser/browser/zen-general.ftl
+++ b/locales/lt/browser/browser/zen-general.ftl
@@ -7,24 +7,30 @@ unified-extensions-description = Plėtiniai naudojami norint į „{ -brand-shor
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
- [true] Atkurti butiniausią kortelę
+ [true] Atkurti būtiniausią kortelę
*[false] Atkurti prisegtą kortelę
}
.accesskey = R
tab-context-zen-add-essential =
.label = Įtraukti į būtiniausius
.accesskey = E
-tab-context-zen-add-essential-badge = { $num } / { $max } užpildytų vietų
+tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Šalinti iš būtiniausių
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Keisti būtiniausią URL su dabartiniu
- *[false] Keisti prisegtą URL su dabartiniu
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Keisti žymę...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Patvirtinti
zen-pinned-tab-replaced = Prisegtos kortelės URL pakeistas dabartiniu URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Kortelė sėkmingai pervadinta.
zen-background-tab-opened-toast = Nauja fonos kortelė atverta.
zen-workspace-renamed-toast = Darbo sritis sėkmingai pervadintas.
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Jaustukai
zen-icons-picker-svg =
.label = Piktogramos
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Veiksmai
zen-site-data-settings = Nustatymai
zen-generic-manage = Tvarkyti
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Naujinimas baigtas.
zen-sidebar-notification-updated-label = Kas naujo naršyklėje „{ -brand-short-name }“
zen-sidebar-notification-updated-tooltip =
.title = Peržiūrėti leidimo pastabas
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Kažkas neveikia?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Paleisti iš naujo saugioje režime
diff --git a/locales/lt/browser/browser/zen-space-routing.ftl b/locales/lt/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..b1538d5a1
--- /dev/null
+++ b/locales/lt/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Erdvės nukreipimo nustatymai
+zen-space-routing-rulepanel-placeholder = Nukreipimai leidžia pasirinkti, kur konkrečios svetainės atveriamos naršyklėje „Zen“. Pavyzdžiui, galite nukreipti „YouTube“ nuorodas taip, kad jos visada būtų atveriamos jūsų asmeninėje erdvėje.
+zen-space-routing-dialog-title = Erdvės nukreipimo nustatymai
+zen-space-routing-external-default = Numatytasis nukreipimas išorės nuorodoms
+zen-space-routing-new-route = Naujas nukreipimas
+zen-space-routing-open-in-space = Atverti erdvėje
+zen-space-routing-most-recent-space = Naujausia erdvė
+zen-space-routing-close-button =
+ .aria-label = Užverti
+ .tooltiptext = Užverti
+zen-space-routing-contains =
+ .label = Turi
+zen-space-routing-equal-to =
+ .label = Yra lygus
+zen-space-routing-regex =
+ .label = Reguliarusis reiškinys
+zen-space-routing-open-in = Atverti per
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/lt/browser/browser/zen-workspaces.ftl b/locales/lt/browser/browser/zen-workspaces.ftl
index 3c7464e7c..8889194e1 100644
--- a/locales/lt/browser/browser/zen-workspaces.ftl
+++ b/locales/lt/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profilis
.tooltiptext = Profiliai naudojami atskirti slapukus ir svetainės duomenis tarp erdvių.
zen-workspace-creation-header = Kurti erdvę
zen-workspace-creation-label = Erdvės naudojamos tvarkyti jūsų korteles ir seansus.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Ištrinti erdvę?
zen-workspaces-delete-workspace-body = Ar tikrai norite ištrinti „{ $name }“? Šio veiksmo anuliuoti negalima.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/nb/browser/browser/preferences/zen-preferences.ftl b/locales/nb/browser/browser/preferences/zen-preferences.ftl
index 38868994a..1188e137e 100644
--- a/locales/nb/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/nb/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Skjul også øvre verktøylinje i kompakt modus
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Få verktøylinjen til å komme opp momentert når du bytter til- eller åpner nye faner i kompakt modus
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Fanebehandling
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Se sideinformasjon
zen-find-shortcut = Finn på side
zen-search-find-again-shortcut = Finn igjen
zen-search-find-again-shortcut-prev = Finn forrige
-zen-search-find-again-shortcut-2 = Finn igjen (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bokmerk denne siden
zen-bookmark-show-library-shortcut = Vis Bokmerkebiblioteket
zen-key-stop = Slutt å laste
diff --git a/locales/nb/browser/browser/zen-command-palette.ftl b/locales/nb/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/nb/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/nb/browser/browser/zen-general.ftl b/locales/nb/browser/browser/zen-general.ftl
index 97afeee60..826e42b25 100644
--- a/locales/nb/browser/browser/zen-general.ftl
+++ b/locales/nb/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Fjern fra Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Erstatt Essential nettadresse med gjeldende
- *[false] Erstatt festet nettadresse med gjeldende
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Endre etikett...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Bekreft
zen-pinned-tab-replaced = Festet fanes nettadresse har blit erstattet med gjeldende nettadresse!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Fanen har fått nytt navn!
zen-background-tab-opened-toast = Ny bakgrunnsfane åpnet!
zen-workspace-renamed-toast = Arbeidsområdet har fått nytt navn!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojier
zen-icons-picker-svg =
.label = Ikoner
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Handlinger
zen-site-data-settings = Innstillinger
zen-generic-manage = Behandle
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Oppdatering fullført!
zen-sidebar-notification-updated-label = Hva er nytt i { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Se versjonsnotater
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Er noe ødelagt?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Start på nytt i sikker modus
diff --git a/locales/nb/browser/browser/zen-space-routing.ftl b/locales/nb/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/nb/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/nb/browser/browser/zen-workspaces.ftl b/locales/nb/browser/browser/zen-workspaces.ftl
index 6cce57b33..dcce58ddf 100644
--- a/locales/nb/browser/browser/zen-workspaces.ftl
+++ b/locales/nb/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profiler er brukt til å separere informasjonskapsler og nettstedsdata mellom områder.
zen-workspace-creation-header = Opprett et område
zen-workspace-creation-label = Områder er brukt til å organisere fanene og øktene dine.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Slett Område?
zen-workspaces-delete-workspace-body = Er du sikker på at du vil slette { $name }? Denne handlingen kan ikke angres.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/nl/browser/browser/preferences/zen-preferences.ftl b/locales/nl/browser/browser/preferences/zen-preferences.ftl
index ac7e8ac4b..6f06b3bb9 100644
--- a/locales/nl/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/nl/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Verberg de bovenste werkbalk ook in compacte modus
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Laat kort de werkbalk zien bij het wisselen of openen van nieuwe tabbladen in compacte modus
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tabblad beheer
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Pagina info bekijken
zen-find-shortcut = Vinden op pagina
zen-search-find-again-shortcut = Opnieuw zoeken
zen-search-find-again-shortcut-prev = Vorige vinden
-zen-search-find-again-shortcut-2 = Opnieuw zoeken (alternatief)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bladwijzer toevoegen voor deze pagina
zen-bookmark-show-library-shortcut = Bladwijzerbibliotheek weergeven
zen-key-stop = Laden stoppen
diff --git a/locales/nl/browser/browser/zen-command-palette.ftl b/locales/nl/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/nl/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/nl/browser/browser/zen-general.ftl b/locales/nl/browser/browser/zen-general.ftl
index 045faced3..0d741426f 100644
--- a/locales/nl/browser/browser/zen-general.ftl
+++ b/locales/nl/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } plekken bezet
tab-context-zen-remove-essential =
.label = Verwijderen uit Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Essential-URL vervangen door huidige
- *[false] Vastgezette URL vervangen door huidige
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Naam veranderen...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Bevestigen
zen-pinned-tab-replaced = Vastgemaakte tabblad URL is vervangen met de huidige URL!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tabblad is succesvol hernoemd!
zen-background-tab-opened-toast = Nieuw achtergrondtabblad geopend!
zen-workspace-renamed-toast = Werkruimte succesvol is hernoemd!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emoji's
zen-icons-picker-svg =
.label = Iconen
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Acties
zen-site-data-settings = Instellingen
zen-generic-manage = Beheren
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update voltooid!
zen-sidebar-notification-updated-label = Wat is er veranderd in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Versie-informatie bekijken
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Werkt er iets niet?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Herstarten in veilige modus
diff --git a/locales/nl/browser/browser/zen-space-routing.ftl b/locales/nl/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/nl/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/nl/browser/browser/zen-workspaces.ftl b/locales/nl/browser/browser/zen-workspaces.ftl
index 11ba1aad7..6f703abdb 100644
--- a/locales/nl/browser/browser/zen-workspaces.ftl
+++ b/locales/nl/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profiel
.tooltiptext = Profielen worden gebruikt om cookies en site-gegevens tussen ruimtes te scheiden.
zen-workspace-creation-header = Maak een ruimte
zen-workspace-creation-label = Ruimtes worden gebruikt om je tabbladen en sessies te organiseren.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Ruimte verwijderen?
zen-workspaces-delete-workspace-body = Weet je zeker dat je { $name } wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/nn-NO/browser/browser/preferences/zen-preferences.ftl b/locales/nn-NO/browser/browser/preferences/zen-preferences.ftl
index 3b6670d6d..ff86b6c33 100644
--- a/locales/nn-NO/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/nn-NO/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Hide the top toolbar as well in compact mode
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Tab Management
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = Find on Page
zen-search-find-again-shortcut = Find Again
zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = Stop Loading
diff --git a/locales/nn-NO/browser/browser/zen-command-palette.ftl b/locales/nn-NO/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/nn-NO/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/nn-NO/browser/browser/zen-general.ftl b/locales/nn-NO/browser/browser/zen-general.ftl
index f4cd42a80..9403e908a 100644
--- a/locales/nn-NO/browser/browser/zen-general.ftl
+++ b/locales/nn-NO/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Update Complete!
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/nn-NO/browser/browser/zen-space-routing.ftl b/locales/nn-NO/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/nn-NO/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/nn-NO/browser/browser/zen-workspaces.ftl b/locales/nn-NO/browser/browser/zen-workspaces.ftl
index 41b6dc5ed..4a9650c22 100644
--- a/locales/nn-NO/browser/browser/zen-workspaces.ftl
+++ b/locales/nn-NO/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/pl/browser/browser/preferences/zen-preferences.ftl b/locales/pl/browser/browser/preferences/zen-preferences.ftl
index bb0b0f05e..9d0830818 100644
--- a/locales/pl/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/pl/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Ukryj również górny pasek narzędzi w trybie kompaktowym
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Wyświetlaj na krótko pasek narzędzi podczas przełączania lub otwierania nowych kart w trybie kompaktowym
+zen-look-and-feel-window-drag-header = Przesuwanie okna
+zen-look-and-feel-window-drag-description = Przesuwaj okno, przeciągając pustą przestrzeń u góry stron internetowych, tak samo jak na pasku tytułu.
+zen-window-drag-enabled =
+ .label = Zezwalaj na przeciąganie okna z poziomu stron internetowych
pane-zen-tabs-title = Zarządzanie kartami
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Zobacz informacje o stronie
zen-find-shortcut = Znajdź na stronie
zen-search-find-again-shortcut = Znajdź ponownie
zen-search-find-again-shortcut-prev = Znajdź poprzedni
-zen-search-find-again-shortcut-2 = Znajdź ponownie (Alt)
+zen-search-find-again-shortcut-alt = Znajdź ponownie (Alt)
+zen-search-find-again-shortcut-prev-alt = Znajdź poprzedni (Alt)
zen-bookmark-this-page-shortcut = Dodaj zakładkę do tej strony
zen-bookmark-show-library-shortcut = Pokaż bibliotekę zakładek
zen-key-stop = Zatrzymaj ładowanie
diff --git a/locales/pl/browser/browser/zen-boosts.ftl b/locales/pl/browser/browser/zen-boosts.ftl
index c2d9a4519..c7057e6c8 100644
--- a/locales/pl/browser/browser/zen-boosts.ftl
+++ b/locales/pl/browser/browser/zen-boosts.ftl
@@ -44,9 +44,9 @@ zen-zap-done = Gotowe
zen-unzap-tooltip =
{ $elementCount ->
[0] Nie ukryto żadnych elementów
- [1] Ukryto {$elementCount} element
- [few] Ukryto {$elementCount} elementy
- *[other] Ukryto {$elementCount} elementów
+ [1] Ukryto { $elementCount } element
+ [few] Ukryto { $elementCount } elementy
+ *[other] Ukryto { $elementCount } elementów
}
zen-boost-save =
.label = Eksportuj Boosta
diff --git a/locales/pl/browser/browser/zen-command-palette.ftl b/locales/pl/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..355673562
--- /dev/null
+++ b/locales/pl/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Przełącz tryb kompaktowy
+zen-action-open-theme-picker = Otwórz wybór motywu
+zen-action-new-split-view = Nowy widok podzielony
+zen-action-new-folder = Nowy folder
+zen-action-copy-current-url = Skopiuj bieżący URL
+zen-action-settings = Ustawienia
+zen-action-open-private-window = Otwórz okno prywatne
+zen-action-open-new-window = Otwórz nowe okno
+zen-action-new-blank-window = Nowe puste okno
+zen-action-pin-tab = Przypnij kartę
+zen-action-unpin-tab = Odepnij kartę
+zen-action-open-space-routing = Otwórz reguły przestrzeni
+zen-action-new-boost = Nowy Boost
+zen-action-next-space = Następna przestrzeń
+zen-action-previous-space = Poprzednia przestrzeń
+zen-action-close-tab = Zamknij kartę
+zen-action-reload-tab = Odśwież kartę
+zen-action-reload-tab-without-cache = Odśwież kartę bez cache
+zen-action-next-tab = Następna karta
+zen-action-previous-tab = Poprzednia karta
+zen-action-capture-screenshot = Wykonaj zrzut ekranu
+zen-action-toggle-tabs-on-right = Przełącz karty na prawą stronę
+zen-action-add-to-essentials = Dodaj do niezbędnych
+zen-action-remove-from-essentials = Usuń z niezbędnych
+zen-action-find-in-page = Znajdź na stronie
+zen-action-manage-extensions = Zarządzaj rozszerzeniami
+zen-action-switch-to-automatic-appearance = Przełącz na wygląd automatyczny
+zen-action-switch-to-light-mode = Przełącz na tryb jasny
+zen-action-switch-to-dark-mode = Przełącz na tryb ciemny
+zen-action-print = Drukuj
+zen-action-focus-on = Przejdź do
+zen-action-extension = Rozszerzenie
diff --git a/locales/pl/browser/browser/zen-general.ftl b/locales/pl/browser/browser/zen-general.ftl
index 3d041a34f..562dd4153 100644
--- a/locales/pl/browser/browser/zen-general.ftl
+++ b/locales/pl/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Usuń z niezbędnych
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Zastąp adres URL niezbędnej karty bieżącym
- *[false] Zastąp adres URL przypiętej karty bieżącym
+ [true] Edytuj niezbędny adres URL
+ *[false] Edytuj przypięty adres URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Zastąp bieżącym adresem URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edytuj…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Zmień nazwę...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Potwierdź
zen-pinned-tab-replaced = URL przypiętej karty został zastąpiony bieżącym adresem!
+zen-pinned-tab-url-edited = Adres URL przypiętej karty został zaktualizowany!
+zen-pinned-tab-url-invalid = To nie wygląda na prawidłowy adres URL.
+zen-pinned-tab-edit-url-title = Edytuj przypięty adres URL
+zen-pinned-tab-edit-url-label = Wprowadź adres URL, do którego ma prowadzić ta przypięta karta:
zen-tabs-renamed = Nazwa karty została pomyślnie zmieniona!
zen-background-tab-opened-toast = Nowa karta została otworzona w tle!
zen-workspace-renamed-toast = Zmieniono nazwę przestrzeni roboczej!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emotikony
zen-icons-picker-svg =
.label = Ikony
+zen-emojis-picker-search =
+ .placeholder = Szukaj emoji
urlbar-search-mode-zen_actions = Akcje
zen-site-data-settings = Ustawienia
zen-generic-manage = Zarządzaj
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Aktualizacja ukończona!
zen-sidebar-notification-updated-label = Co nowego w { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Zobacz informacje o aktualizacji
+zen-sidebar-notification-donate-label = Wesprzyj { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Wesprzyj projekt
zen-sidebar-notification-restart-safe-mode-label = Coś się zepsuło?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Zrestartuj w trybie bezpiecznym
diff --git a/locales/pl/browser/browser/zen-space-routing.ftl b/locales/pl/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..314cabf25
--- /dev/null
+++ b/locales/pl/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Ustawienia przekierowywania przestrzeni
+zen-space-routing-rulepanel-placeholder = Reguły pozwalają wybrać, gdzie konkretne strony będą otwierane w przeglądarce Zen. Na przykład możesz przekierować linki do YouTube, aby zawsze otwierały się w Twojej prywatnej przestrzeni.
+zen-space-routing-dialog-title = Ustawienia przekierowywania przestrzeni
+zen-space-routing-external-default = Domyślne przekierowanie dla linków zewnętrznych
+zen-space-routing-new-route = Nowe przekierowanie
+zen-space-routing-open-in-space = Otwórz w przestrzeni
+zen-space-routing-most-recent-space = Ostatnio używana przestrzeń
+zen-space-routing-close-button =
+ .aria-label = Zamknij
+ .tooltiptext = Zamknij
+zen-space-routing-contains =
+ .label = Zawiera
+zen-space-routing-equal-to =
+ .label = Jest równe
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Otwórz w
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Nowa karta otwarta w { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Dodaj regułę dla domeny
+ *[other] Dodaj regułę dla domen
+ }
diff --git a/locales/pl/browser/browser/zen-workspaces.ftl b/locales/pl/browser/browser/zen-workspaces.ftl
index 143622b49..ccf5352dd 100644
--- a/locales/pl/browser/browser/zen-workspaces.ftl
+++ b/locales/pl/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profile służą do rozdzielania plików cookie i danych witryny między przestrzeniami.
zen-workspace-creation-header = Utwórz przestrzeń
zen-workspace-creation-label = Przestrzenie są wykorzystywane do zorganizowania kart i sesji.
+zen-workspace-default-profile = Domyślny
zen-workspaces-delete-workspace-title = Usunąć przestrzeń?
zen-workspaces-delete-workspace-body = Czy na pewno chcesz usunąć { $name }? Tej czynności nie można cofnąć.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/pt-BR/browser/browser/preferences/zen-preferences.ftl b/locales/pt-BR/browser/browser/preferences/zen-preferences.ftl
index 63e8299c6..19f1ed30a 100644
--- a/locales/pt-BR/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/pt-BR/browser/browser/preferences/zen-preferences.ftl
@@ -2,24 +2,24 @@
# 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/.
-pane-zen-looks-title = Aparência e Comportamento
+pane-zen-looks-title = Aparência
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }
-zen-warning-language = Alterar o idioma padrão pode facilitar o rastreamento por sites.
-zen-vertical-tabs-layout-header = Layout do Navegador
-zen-vertical-tabs-layout-description = Escolha o layout que melhor se adapta a você
-zen-layout-single-toolbar = Somente a barra lateral
+zen-warning-language = Alterar o idioma padrão talvez facilite que sites rastreiem você.
+zen-vertical-tabs-layout-header = Estilo do Navegador
+zen-vertical-tabs-layout-description = Defina o estilo que se encaixa melhor com você
+zen-layout-single-toolbar = Apenas a barra lateral
zen-layout-multiple-toolbar = Barra lateral e barra de ferramentas superior
-zen-layout-collapsed-toolbar = Recolher Barra Lateral
+zen-layout-collapsed-toolbar = Barra lateral colapsada
sync-currently-syncing-workspaces = Áreas de Trabalho
sync-engine-workspaces =
.label = Áreas de Trabalho
.tooltiptext = Sincronize suas áreas de trabalho entre dispositivos
.accesskey = W
zen-glance-title = Glance
-zen-glance-header = Configurações gerais do Glance
-zen-glance-description = Tenha uma visão geral rápida dos seus links sem abri-los em uma nova guia
-zen-glance-trigger-label = Método de acionamento
+zen-glance-header = Opções gerais do Glance
+zen-glance-description = Obtenha uma visão geral rápida dos seus links sem precisar abri-los em novas guias
+zen-glance-trigger-label = Modo de ativação
zen-glance-enabled =
.label = Ativar Glance
zen-glance-trigger-ctrl-click =
@@ -31,59 +31,63 @@ zen-glance-trigger-shift-click =
zen-glance-trigger-meta-click =
.label = Meta (Comando) + Clique
zen-look-and-feel-compact-view-header = Exibir em modo compacto
-zen-look-and-feel-compact-view-description = Apenas mostre as barras de ferramentas que você usa!
+zen-look-and-feel-compact-view-description = Exiba apenas as barras de ferramentas que você usa!
zen-look-and-feel-compact-view-enabled =
- .label = Ativar modo compacto de { -brand-short-name }s
+ .label = Ativar modo compacto de { -brand-short-name }
zen-look-and-feel-compact-view-top-toolbar =
.label = Ocultar também a barra de ferramentas superior no modo compacto
zen-look-and-feel-compact-toolbar-flash-popup =
- .label = Exibir a barra de ferramentas brevemente ao alternar ou abrir novas guias no modo compacto
+ .label = Exibir brevemente a barra de ferramentas ao trocar ou abrir novas abas no modo compacto
+zen-look-and-feel-window-drag-header = Arrastar janela
+zen-look-and-feel-window-drag-description = Mova a janela arrastando o espaço vazio no topo dos sites, assim como na barra de título.
+zen-window-drag-enabled =
+ .label = Permitir arrastar a janela das páginas
pane-zen-tabs-title = Gerenciamento de Guias
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
pane-settings-workspaces-title = Áreas de Trabalho
zen-tabs-select-recently-used-on-close =
- .label = Quando a aba for fechada, troque para a aba usada por último ao invés da próxima aba
+ .label = Ao fechar uma aba, trocar para a aba mais usada recentemente ao invés da próxima aba
zen-tabs-close-on-back-with-no-history =
- .label = Fechar a aba e mudar para a aba dona dela (ou para a mais recentemente usada) ao voltar sem histórico
+ .label = Fechar aba e trocar para a aba proprietária (ou para a mais usada recentemente) ao voltar sem histórico
zen-settings-workspaces-sync-unpinned-tabs =
- .label = Sincronize apenas as abas fixadas nos espaços
+ .label = Sincronizar apenas abas fixadas na área de trabalho
zen-tabs-cycle-by-attribute =
- .label = Ctrl+Tab alterna apenas entre as abas Essenciais ou Área de Trabalho
+ .label = Ctrl+Tab alterna apenas entre abas Essenciais ou da Área de Trabalho
zen-tabs-cycle-ignore-pending-tabs =
- .label = Ignorar abas Pendentes ao alternar com Ctrl+Tab
-zen-tabs-cycle-by-attribute-warning = Ctrl+Tab vai alternar pela ordem de uso recente, já que está ativado
+ .label = Ignorar abas pendentes ao alternar com Ctrl+Tab
+zen-tabs-cycle-by-attribute-warning = Ctrl+Tab alternará em ordem de uso recente, já que está ativado
zen-look-and-feel-compact-toolbar-themed =
- .label = Usar fundo temático na barra de ferramentas compacta
+ .label = Usar fundo temático para a barra de ferramentas compacta
zen-workspace-continue-where-left-off =
- .label = Continue de onde você parou
-pane-zen-pinned-tab-manager-title = Guias Fixadas
-zen-pinned-tab-manager-header = Configurações gerais para guias fixadas
-zen-pinned-tab-manager-description = Gerencie o comportamento adicional das guias fixadas
+ .label = Continue de onde parou
+pane-zen-pinned-tab-manager-title = Abas Fixadas
+zen-pinned-tab-manager-header = Opções gerais para abas fixadas
+zen-pinned-tab-manager-description = Gerencie o comportamento adicional das abas fixadas
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
- .label = Restaurar guias fixadas para a URL original na inicialização
+ .label = Restaurar abas fixadas para seu URL original fixado na inicialização
zen-pinned-tab-manager-container-specific-essentials-enabled =
- .label = Ativar essenciais específicos do contêiner
-zen-pinned-tab-manager-close-shortcut-behavior-label = Fechar Comportamento com Atalho Aba
+ .label = Ativar essenciais exclusivos de contêiner
+zen-pinned-tab-manager-close-shortcut-behavior-label = Atalho de fechar aba
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
- .label = Redefina a URL, descarregue e mude para a próxima aba
+ .label = Redefinir o URL, descarregar e trocar para a próxima aba
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
- .label = Descarregar e alternar para a próxima aba
+ .label = Descarregar e trocar para a próxima aba
zen-pinned-tab-manager-reset-switch-close-shortcut-option =
- .label = Redefinir o URL e mudar para a próxima aba
+ .label = Redefinir o URL e trocar para a próxima aba
zen-pinned-tab-manager-switch-close-shortcut-option =
- .label = Mudar para a próxima aba
+ .label = Trocar para a próxima aba
zen-pinned-tab-manager-reset-close-shortcut-option =
.label = Redefinir URL
zen-pinned-tab-manager-close-close-shortcut-option =
.label = Fechar aba
-pane-zen-workspaces-header = Projetos
-zen-settings-workspaces-header = Configurações gerais para áreas de trabalho
-zen-settings-workspaces-description = Com espaços de trabalho, você pode ter várias sessões de navegação de uma vez!
+pane-zen-workspaces-header = Áreas de Trabalho
+zen-settings-workspaces-header = Opções gerais para áreas de trabalho
+zen-settings-workspaces-description = Com áreas de trabalho, você pode ter várias sessões de navegação de uma vez!
zen-settings-workspaces-enabled =
- .label = Habilitar Área de Trabalho
+ .label = Ativar Áreas de Trabalho
zen-settings-workspaces-hide-default-container-indicator =
- .label = Ocultar o indicador padrão do contêiner na barra de guias
+ .label = Ocultar o indicador padrão do contêiner na barra de abas
zen-key-unsaved = Atalho não salvo! Proteja-o clicando na tecla "Escape" após digitá-lo novamente.
zen-key-conflict = Conflitos com { $group } -> { $shortcut }
pane-zen-theme-title = Opções de tema
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Exibir informações da página
zen-find-shortcut = Encontrar na Página
zen-search-find-again-shortcut = Localizar novamente
zen-search-find-again-shortcut-prev = Localizar Anterior
-zen-search-find-again-shortcut-2 = Pesquisar novamente (Alt)
+zen-search-find-again-shortcut-alt = Localizar Novamente (Alt)
+zen-search-find-again-shortcut-prev-alt = Localizar Anterior (Alt)
zen-bookmark-this-page-shortcut = Adicionar aos favoritos
zen-bookmark-show-library-shortcut = Mostrar Biblioteca de Favoritos
zen-key-stop = Parar carregamento
diff --git a/locales/pt-BR/browser/browser/zen-boosts.ftl b/locales/pt-BR/browser/browser/zen-boosts.ftl
index cf906da64..471503d7f 100644
--- a/locales/pt-BR/browser/browser/zen-boosts.ftl
+++ b/locales/pt-BR/browser/browser/zen-boosts.ftl
@@ -37,7 +37,7 @@ zen-remove-zap-helper = Clique para Deszapar
zen-select-this = Inserir seletor para isto
zen-select-related = Inserir seletor para relacionados
zen-select-cancel = Cancelar
-zen-zap-this = Zap isso
+zen-zap-this = Zap nisso
zen-zap-related = Zap em todos os elementos relacionados
zen-zap-cancel = Cancelar
zen-zap-done = Pronto
diff --git a/locales/pt-BR/browser/browser/zen-command-palette.ftl b/locales/pt-BR/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..522ed1cbd
--- /dev/null
+++ b/locales/pt-BR/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Alternar Modo Compacto
+zen-action-open-theme-picker = Abrir Seletor de Temas
+zen-action-new-split-view = Nova Vista Dividida
+zen-action-new-folder = Nova Pasta
+zen-action-copy-current-url = Copiar URL Atual
+zen-action-settings = Configurações
+zen-action-open-private-window = Abrir Janela Privada
+zen-action-open-new-window = Abrir nova janela
+zen-action-new-blank-window = Nova Janela em Branco
+zen-action-pin-tab = Fixar Aba
+zen-action-unpin-tab = Desafixar Aba
+zen-action-open-space-routing = Abrir Roteamento de Espaço
+zen-action-new-boost = Novo Boost
+zen-action-next-space = Próximo Espaço
+zen-action-previous-space = Espaço Anterior
+zen-action-close-tab = Fechar Aba
+zen-action-reload-tab = Recarregar Aba
+zen-action-reload-tab-without-cache = Recarregar Aba sem Cache
+zen-action-next-tab = Próxima Aba
+zen-action-previous-tab = Aba Anterior
+zen-action-capture-screenshot = Captura de Tela
+zen-action-toggle-tabs-on-right = Alternar Abas à Direita
+zen-action-add-to-essentials = Adicionar aos Essenciais
+zen-action-remove-from-essentials = Remover dos Essenciais
+zen-action-find-in-page = Encontrar na Página
+zen-action-manage-extensions = Gerenciar Extensões
+zen-action-switch-to-automatic-appearance = Mudar para Modo Automático
+zen-action-switch-to-light-mode = Mudar para Modo Claro
+zen-action-switch-to-dark-mode = Mudar para Modo Escuro
+zen-action-print = Imprimir
+zen-action-focus-on = Focar em
+zen-action-extension = Extensão
diff --git a/locales/pt-BR/browser/browser/zen-general.ftl b/locales/pt-BR/browser/browser/zen-general.ftl
index d1a05e002..b803ce77b 100644
--- a/locales/pt-BR/browser/browser/zen-general.ftl
+++ b/locales/pt-BR/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } Espaços preenchidos
tab-context-zen-remove-essential =
.label = Remover dos Essenciais
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Substituir URL Essencial pela atual
- *[false] Substituir URL Fixada pela atual
+ [true] Editar URL Essencial
+ *[false] Editar URL Fixada
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Substituir por URL atual
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Editar…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Alterar Rótulo...
tab-context-zen-edit-icon =
@@ -44,9 +50,13 @@ zen-general-cancel-label =
.label = Cancelar
zen-general-confirm =
.label = Confirmar
-zen-pinned-tab-replaced = A URL da guia fixada foi substituída pela URL atual!
-zen-tabs-renamed = A guia foi renomeada com sucesso!
-zen-background-tab-opened-toast = Nova guia em segundo plano aberta!
+zen-pinned-tab-replaced = A URL da aba fixada foi substituída pela URL atual!
+zen-pinned-tab-url-edited = A URL da aba fixada foi atualizada!
+zen-pinned-tab-url-invalid = Isso não parece ser uma URL válida.
+zen-pinned-tab-edit-url-title = Editar URL Fixada
+zen-pinned-tab-edit-url-label = Digite a URL que esta aba fixada deve apontar para:
+zen-tabs-renamed = A aba foi renomeada com sucesso!
+zen-background-tab-opened-toast = Nova aba em segundo plano aberta!
zen-workspace-renamed-toast = A área de trabalho foi renomeada com sucesso!
zen-split-view-limit-toast = Não é possível adicionar mais painéis à visualização dividida!
zen-toggle-compact-mode-button =
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Ícones
+zen-emojis-picker-search =
+ .placeholder = Procurar emojis
urlbar-search-mode-zen_actions = Ações
zen-site-data-settings = Configurações
zen-generic-manage = Gerenciar
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Atualização Completa!
zen-sidebar-notification-updated-label = O que há de novo em { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Ver Notas da Versão
+zen-sidebar-notification-donate-label = Apoie { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Doe para o projeto
zen-sidebar-notification-restart-safe-mode-label = Algo quebrou?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reiniciar no Modo Seguro
diff --git a/locales/pt-BR/browser/browser/zen-space-routing.ftl b/locales/pt-BR/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..75ac6d7b1
--- /dev/null
+++ b/locales/pt-BR/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Opções de Roteamento de Espaço
+zen-space-routing-rulepanel-placeholder = As rotas permitem escolher onde sites específicos abrem no zen. Por exemplo, você pode encaminhar links do YouTube para sempre abrirem no seu Espaço Pessoal.
+zen-space-routing-dialog-title = Opções de Roteamento de Espaço
+zen-space-routing-external-default = Rota padrão para links externos
+zen-space-routing-new-route = Nova Rota
+zen-space-routing-open-in-space = Abrir no Espaço
+zen-space-routing-most-recent-space = Espaço mais recente
+zen-space-routing-close-button =
+ .aria-label = Fechar
+ .tooltiptext = Fechar
+zen-space-routing-contains =
+ .label = Contém
+zen-space-routing-equal-to =
+ .label = É igual a
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Abrir em
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Nova aba aberta em { $targetWorkspace}
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Adicionar Rota para Domínio
+ *[other] Adicionar Rota para Domínios
+ }
diff --git a/locales/pt-BR/browser/browser/zen-workspaces.ftl b/locales/pt-BR/browser/browser/zen-workspaces.ftl
index d8a2ed315..c61535b85 100644
--- a/locales/pt-BR/browser/browser/zen-workspaces.ftl
+++ b/locales/pt-BR/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Perfil
.tooltiptext = Perfis são usados para separar cookies e dados de sites entre os espaços.
zen-workspace-creation-header = Crie um Espaço
zen-workspace-creation-label = Espaços são usados para organizar suas guias e sessões.
+zen-workspace-default-profile = Padrão
zen-workspaces-delete-workspace-title = Excluir Espaço?
zen-workspaces-delete-workspace-body = Tem certeza que deseja excluir { $name }? Esta ação não pode ser desfeita.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/pt-PT/browser/browser/preferences/zen-preferences.ftl b/locales/pt-PT/browser/browser/preferences/zen-preferences.ftl
index a501737b7..67554ef60 100644
--- a/locales/pt-PT/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/pt-PT/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Ocultar a barra de ferramentas superior também no modo compacto
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Fazer a barra de ferramentas saltar ligeiramente ao mudar ou ao abrir novos separadores no modo compacto
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Gestão de Separadores
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Ver Informação da Página
zen-find-shortcut = Procurar na Página
zen-search-find-again-shortcut = Procurar Seguinte
zen-search-find-again-shortcut-prev = Procurar Anterior
-zen-search-find-again-shortcut-2 = Procurar Seguinte (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Adicionar esta Página aos Favoritos
zen-bookmark-show-library-shortcut = Mostrar Biblioteca de Favoritos
zen-key-stop = Parar Carregamento
diff --git a/locales/pt-PT/browser/browser/zen-command-palette.ftl b/locales/pt-PT/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..1b2aecf75
--- /dev/null
+++ b/locales/pt-PT/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Alternar Modo Compacto
+zen-action-open-theme-picker = Abrir Seletor de Temas
+zen-action-new-split-view = Nova Vista Dividida
+zen-action-new-folder = Nova Pasta
+zen-action-copy-current-url = Copiar o URL atual
+zen-action-settings = Definições
+zen-action-open-private-window = Abrir Janela Privada
+zen-action-open-new-window = Abrir Nova Janela
+zen-action-new-blank-window = Nova Janela sem Sincronização
+zen-action-pin-tab = Fixar a Página
+zen-action-unpin-tab = Soltar a Página
+zen-action-open-space-routing = Abrir Roteamento de Espaços
+zen-action-new-boost = Novo Boost
+zen-action-next-space = Espaço seguinte
+zen-action-previous-space = Espaço anterior
+zen-action-close-tab = Fechar Separador
+zen-action-reload-tab = Recarregar separador
+zen-action-reload-tab-without-cache = Recarregar separador sem cache
+zen-action-next-tab = Separador seguinte
+zen-action-previous-tab = Separador anterior
+zen-action-capture-screenshot = Capturar o Ecrã
+zen-action-toggle-tabs-on-right = Alternar separadores à direita
+zen-action-add-to-essentials = Adicionar aos Essenciais
+zen-action-remove-from-essentials = Remover dos Essenciais
+zen-action-find-in-page = Localizar na página
+zen-action-manage-extensions = Gerir Extensões
+zen-action-switch-to-automatic-appearance = Alternar para Aparência Automática
+zen-action-switch-to-light-mode = Mudar para Modo Claro
+zen-action-switch-to-dark-mode = Mudar para Modo Escuro
+zen-action-print = Imprimir
+zen-action-focus-on = Focar em
+zen-action-extension = Extensão
diff --git a/locales/pt-PT/browser/browser/zen-general.ftl b/locales/pt-PT/browser/browser/zen-general.ftl
index c92bfecfe..40ffeef97 100644
--- a/locales/pt-PT/browser/browser/zen-general.ftl
+++ b/locales/pt-PT/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } espaços preenchidos
tab-context-zen-remove-essential =
.label = Remover dos Essenciais
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Substituir URL Essencial com o Atual
- *[false] Substituir URL Fixado com o Atual
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Alterar etiqueta...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Confirmar
zen-pinned-tab-replaced = O URL do separador fixado foi substituído pelo URL atual.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Nome do separador alterado com sucesso!
zen-background-tab-opened-toast = Novo separador aberto em segundo plano!
zen-workspace-renamed-toast = Nome do espaço de trabalho alterado com sucesso!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Ícones
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Ações
zen-site-data-settings = Definições
zen-generic-manage = Gerir
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Atualização Concluída!
zen-sidebar-notification-updated-label = O que há de novo no { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Ver Notas de Lançamento
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Falhou alguma coisa?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reiniciar em Modo de Segurança
diff --git a/locales/pt-PT/browser/browser/zen-space-routing.ftl b/locales/pt-PT/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/pt-PT/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/pt-PT/browser/browser/zen-workspaces.ftl b/locales/pt-PT/browser/browser/zen-workspaces.ftl
index 985a837c1..de19cb7dc 100644
--- a/locales/pt-PT/browser/browser/zen-workspaces.ftl
+++ b/locales/pt-PT/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Perfil
.tooltiptext = Os perfis são usados para separar cookies e dados de sites entre espaços.
zen-workspace-creation-header = Criar um Espaço
zen-workspace-creation-label = Os espaços são usados para organizar os seus separadores e sessões.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Eliminar Espaço de Trabalho?
zen-workspaces-delete-workspace-body = Tem certeza que deseja eliminar { $name }? Esta ação não pode ser desfeita.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/ro/browser/browser/preferences/zen-preferences.ftl b/locales/ro/browser/browser/preferences/zen-preferences.ftl
index a43ff8124..41abe1cd5 100644
--- a/locales/ro/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ro/browser/browser/preferences/zen-preferences.ftl
@@ -2,26 +2,26 @@
# 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/.
-pane-zen-looks-title = Look and Feel
+pane-zen-looks-title = Aspect și Atmosferă
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }
-zen-warning-language = Changing the default language could make it easier for Websites to track you.
-zen-vertical-tabs-layout-header = Browser Layout
-zen-vertical-tabs-layout-description = Choose the layout that suits you best
-zen-layout-single-toolbar = Only Sidebar
-zen-layout-multiple-toolbar = Sidebar and Top Toolbar
-zen-layout-collapsed-toolbar = Collapsed Sidebar
-sync-currently-syncing-workspaces = Workspaces
+zen-warning-language = Schimbarea limbii implicite poate face ca Website-urile să te urmărească mai ușor.
+zen-vertical-tabs-layout-header = Aspect Browser
+zen-vertical-tabs-layout-description = Alege aspectul care ți se potrivește cel mai bine
+zen-layout-single-toolbar = Doar Bara Laterală
+zen-layout-multiple-toolbar = Bara Laterală și Bara de Unelte
+zen-layout-collapsed-toolbar = Bara Laterală Închisă
+sync-currently-syncing-workspaces = Spații de Lucru
sync-engine-workspaces =
- .label = Workspaces
- .tooltiptext = Sync your workspaces across devices
+ .label = Spații de Lucru
+ .tooltiptext = Sincronizează-ți Spațiile de Lucru pe toate dispozitivele
.accesskey = W
zen-glance-title = Glance
-zen-glance-header = General settings for glance
-zen-glance-description = Get a quick overview of your links without opening them in a new tab
-zen-glance-trigger-label = Trigger method
+zen-glance-header = Setări generale pentru Glance
+zen-glance-description = Vizualizează conținutul link-ului fără a deschide o filă nouă
+zen-glance-trigger-label = Metoda declanșării
zen-glance-enabled =
- .label = Enable Glance
+ .label = Activează Glance
zen-glance-trigger-ctrl-click =
.label = Ctrl + Click
zen-glance-trigger-alt-click =
@@ -30,293 +30,298 @@ zen-glance-trigger-shift-click =
.label = Shift + Click
zen-glance-trigger-meta-click =
.label = Meta (Command) + Click
-zen-look-and-feel-compact-view-header = Show in compact view
-zen-look-and-feel-compact-view-description = Only show the toolbars you use!
+zen-look-and-feel-compact-view-header = Afișează în Vizualizarea Compactă
+zen-look-and-feel-compact-view-description = Afișează doar Bara de Unelte pe care o folosești!
zen-look-and-feel-compact-view-enabled =
- .label = Enable { -brand-short-name }'s compact mode
+ .label = Activează Modul Compact { -brand-short-name }
zen-look-and-feel-compact-view-top-toolbar =
- .label = Hide the top toolbar as well in compact mode
+ .label = Ascunde Bara de Unelte și în Modul Compact
zen-look-and-feel-compact-toolbar-flash-popup =
- .label = Briefly make the toolbar popup when switching or opening new tabs in compact mode
-pane-zen-tabs-title = Tab Management
+ .label = Arată temporar Bara de Unelte când schimbi sau deschizi file noi în Modul Compact
+zen-look-and-feel-window-drag-header = Tragerea ferestrei
+zen-look-and-feel-window-drag-description = Mută fereastra trăgând de spațiul liber din partea de sus a site-urilor, la fel cum tragi de bara de titlu.
+zen-window-drag-enabled =
+ .label = Permite tragerea ferestrei de pe pagini web
+pane-zen-tabs-title = Gestionare File
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
-pane-settings-workspaces-title = Workspaces
+pane-settings-workspaces-title = Spații de Lucru
zen-tabs-select-recently-used-on-close =
- .label = When closing a tab, switch to the most recently used tab instead of the next tab
+ .label = La închiderea unei file, comută la cea mai recent folosită filă în loc de fila următoare
zen-tabs-close-on-back-with-no-history =
- .label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
+ .label = Închide fila și comută la fila părinte (sau cea mai recent folosită filă) când revii fără istoric
zen-settings-workspaces-sync-unpinned-tabs =
- .label = Sync only pinned tabs in workspaces
+ .label = Sincronizează doar Filele Fixate din Spațiile de Lucru
zen-tabs-cycle-by-attribute =
- .label = Ctrl+Tab cycles within Essential or Workspace tabs only
+ .label = Ctrl+Tab parcurge doar prin filele Esențiale sau ale Spațiului de Lucru
zen-tabs-cycle-ignore-pending-tabs =
- .label = Ignore Pending tabs when cycling with Ctrl+Tab
-zen-tabs-cycle-by-attribute-warning = Ctrl+Tab will cycle by recently used order, as it is enabled
+ .label = Ignoră Filele în Așteptare când se parcurge cu Ctrl+Tab
+zen-tabs-cycle-by-attribute-warning = Cu această setare activată, Ctrl+Tab va comuta între file în ordinea accesării lor
zen-look-and-feel-compact-toolbar-themed =
- .label = Use themed background for compact toolbar
+ .label = Folosește fundal tematic pentru Bara de Unelte compactă
zen-workspace-continue-where-left-off =
- .label = Continue where you left off
-pane-zen-pinned-tab-manager-title = Pinned Tabs
-zen-pinned-tab-manager-header = General settings for pinned tabs
-zen-pinned-tab-manager-description = Manage additional behavior of pinned tabs
+ .label = Continuă de unde ai rămas
+pane-zen-pinned-tab-manager-title = File Fixate
+zen-pinned-tab-manager-header = Setări generale pentru File Fixate
+zen-pinned-tab-manager-description = Gestionează opțiuni suplimentare pentru Filele Fixate
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
- .label = Restore pinned tabs to their originally pinned URL on startup
+ .label = La pornire restaurează Filele Fixate la URL-ul fixat inițial
zen-pinned-tab-manager-container-specific-essentials-enabled =
- .label = Enable container-specific essentials
-zen-pinned-tab-manager-close-shortcut-behavior-label = Close Tab Shortcut Behavior
+ .label = Activează Tab-uri Esențiale per container
+zen-pinned-tab-manager-close-shortcut-behavior-label = Comportamentul Scurtăturii la închiderea filei
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
- .label = Reset URL, unload and switch to next tab
+ .label = Resetează URL-ul, închide și comută la file următoare
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
- .label = Unload and switch to next tab
+ .label = Închide și comută la fila următoare
zen-pinned-tab-manager-reset-switch-close-shortcut-option =
- .label = Reset URL and switch to next tab
+ .label = Resetează URL-ul și comută la fila următoare
zen-pinned-tab-manager-switch-close-shortcut-option =
- .label = Switch to next tab
+ .label = Comută la fila următoare
zen-pinned-tab-manager-reset-close-shortcut-option =
- .label = Reset URL
+ .label = Resetează URL-ul
zen-pinned-tab-manager-close-close-shortcut-option =
- .label = Close tab
-pane-zen-workspaces-header = Workspaces
-zen-settings-workspaces-header = General settings for workspaces
-zen-settings-workspaces-description = With workspaces, you can have multiple browsing sessions at once!
+ .label = Închide fila
+pane-zen-workspaces-header = Spații de Lucru
+zen-settings-workspaces-header = Setări generale pentru Spațiile de Lucru
+zen-settings-workspaces-description = Cu Spațiile de Lucru, poți avea mai multe sesiuni de navigare simultan!
zen-settings-workspaces-enabled =
- .label = Enable Workspaces
+ .label = Activează Spațiile de Lucru
zen-settings-workspaces-hide-default-container-indicator =
- .label = Hide the default container indicator in the tab bar
-zen-key-unsaved = Unsaved shortcut! Please save it by clicking the "Escape" key after retyping it.
-zen-key-conflict = Conflicts with { $group } -> { $shortcut }
-pane-zen-theme-title = Theme Settings
-zen-vertical-tabs-title = Sidebar and tabs layout
-zen-vertical-tabs-header = Vertical Tabs
-zen-vertical-tabs-description = Manage your tabs in a vertical layout
+ .label = Ascunde indicatorul containerului implicit în bara de file
+zen-key-unsaved = Scurtătură nesalvată! Te rugăm să o salvezi tastând "Escape" după ce a fost reintrodusă.
+zen-key-conflict = Conflict cu { $group } -> { $shortcut}
+pane-zen-theme-title = Setări Temă
+zen-vertical-tabs-title = Aspect bară laterală și file
+zen-vertical-tabs-header = File Verticale
+zen-vertical-tabs-description = Gestionează filele într-un aspect vertical
zen-vertical-tabs-show-expand-button =
- .label = Show Expand Button
+ .label = Arată Butonul de Extindere
zen-vertical-tabs-newtab-on-tab-list =
- .label = Show New Tab Button on Tab List
+ .label = Arată butonul pentru Filă Nouă în lista de tab-uri
zen-vertical-tabs-newtab-top-button-up =
- .label = Move the new tab button to the top
-zen-vertical-tabs-expand-tabs-by-default = Expand Tabs by Default
-zen-vertical-tabs-dont-expand-tabs-by-default = Don't Expand Tabs by Default
-zen-vertical-tabs-expand-tabs-on-hover = Expand Tabs on Hover (Won't work on compact mode)
-zen-vertical-tabs-expand-tabs-header = How to expand tabs
-zen-vertical-tabs-expand-tabs-description = Choose how to expand tabs in the sidebar
-zen-theme-marketplace-header = Zen Mods
+ .label = Mută butonul pentru Filă Nouă în partea de sus
+zen-vertical-tabs-expand-tabs-by-default = Extinde filele în mod implicit
+zen-vertical-tabs-dont-expand-tabs-by-default = Nu extinde filele în mod implicit
+zen-vertical-tabs-expand-tabs-on-hover = Extinde filele la Survolare (Nu funcționează în Modul Compact)
+zen-vertical-tabs-expand-tabs-header = Cum se extind filele
+zen-vertical-tabs-expand-tabs-description = Alege cum să extinzi filele in bara laterală
+zen-theme-marketplace-header = Mod-uri Zen
zen-theme-disable-all-enabled =
- .title = Disable all mods
+ .title = Dezactivează toate Mod-urile
zen-theme-disable-all-disabled =
- .title = Enable all mods
-zen-theme-marketplace-description = Find and install mods from the store.
+ .title = Activează toate Mod-urile
+zen-theme-marketplace-description = Caută și instalează Mod-uri din magazin.
zen-theme-marketplace-remove-button =
- .label = Remove mod
+ .label = Șterge Mod
zen-theme-marketplace-check-for-updates-button =
- .label = Check for Updates
+ .label = Verifică dacă există Actualizări
zen-theme-marketplace-import-button =
- .label = Import mods
+ .label = Importă Mod-uri
zen-theme-marketplace-export-button =
- .label = Export Mods
-zen-theme-marketplace-import-success = Mods imported successfully
-zen-theme-marketplace-import-failure = There was an error importing the mods
-zen-theme-marketplace-export-success = Mods exported successfully
-zen-theme-marketplace-export-failure = There was an error exporting the mods
-zen-theme-marketplace-updates-success = Mods updated successfully
-zen-theme-marketplace-updates-failure = Couldn't find any updates!
+ .label = Exportă Mod-uri
+zen-theme-marketplace-import-success = Mod-uri importate cu succes
+zen-theme-marketplace-import-failure = A apărut o eroare la importarea Mod-urilor
+zen-theme-marketplace-export-success = Mod-uri exportate cu succes
+zen-theme-marketplace-export-failure = A apărut o eroare la exportarea Mod-urilor
+zen-theme-marketplace-updates-success = Mod-uri actualizate cu succes
+zen-theme-marketplace-updates-failure = Nu s-au găsit actualizări!
zen-theme-marketplace-toggle-enabled-button =
- .title = Disable mod
+ .title = Dezactivează Mod
zen-theme-marketplace-toggle-disabled-button =
- .title = Enable mod
-zen-theme-marketplace-remove-confirmation = Are you sure you want to remove this mod?
-zen-theme-marketplace-close-modal = Close
+ .title = Dezactivează Mod
+zen-theme-marketplace-remove-confirmation = Ești sigur că vrei să ștergi acest Mod?
+zen-theme-marketplace-close-modal = Închide
zen-theme-marketplace-theme-header-title =
- .title = CSS Selector: { $name }
+ .title = Selector CSS: { $name }
zen-theme-marketplace-dropdown-default-label =
- .label = None
+ .label = Nimic
zen-theme-marketplace-input-default-placeholder =
- .placeholder = Type something...
-pane-zen-marketplace-title = Zen Mods
+ .placeholder = Scrie ceva...
+pane-zen-marketplace-title = Mod-uri Zen
zen-themes-auto-update =
- .label = Automatically update installed mods on startup
+ .label = Actualizează automat Mod-urile instalate la pornire
zen-settings-workspaces-force-container-tabs-to-workspace =
- .label = Switch to workspace where container is set as default when opening container tabs
-zen-theme-marketplace-link = Visit Store
-zen-dark-theme-styles-header = Dark Theme Styles
-zen-dark-theme-styles-description = Customize the dark theme to your liking
-zen-dark-theme-styles-amoled = Night Theme
-zen-dark-theme-styles-default = Default Dark Theme
-zen-dark-theme-styles-colorful = Colorful Dark Theme
-zen-compact-mode-styles-left = Hide Tab bar
-zen-compact-mode-styles-top = Hide Top bar
-zen-compact-mode-styles-both = Hide Both
-zen-urlbar-title = Zen URL Bar
-zen-urlbar-header = General settings for the URL bar
-zen-urlbar-description = Customize the URL bar to your liking
-zen-urlbar-behavior-label = Behavior
+ .label = Schimbă pe Spațiul de Lucru unde containerul este setat implicit când deschizi o filă container
+zen-theme-marketplace-link = Vizitează Magazinul
+zen-dark-theme-styles-header = Stiluri Temă Întunecată
+zen-dark-theme-styles-description = Personalizează tema întunecată după gustul tău
+zen-dark-theme-styles-amoled = Temă de Noapte
+zen-dark-theme-styles-default = Tema Întunecată Implicită
+zen-dark-theme-styles-colorful = Tema Întunecată Colorată
+zen-compact-mode-styles-left = Ascunde Bara de File
+zen-compact-mode-styles-top = Ascunde Bara de Sus
+zen-compact-mode-styles-both = Ascunde Ambele
+zen-urlbar-title = Bara URL Zen
+zen-urlbar-header = Setări generale pentru bara URL
+zen-urlbar-description = Personalizează bara URL după gustul tău
+zen-urlbar-behavior-label = Comportament
zen-urlbar-behavior-normal =
.label = Normal
zen-urlbar-behavior-floating-on-type =
- .label = Floating only when typing
+ .label = Plutitor doar când tastezi
zen-urlbar-behavior-float =
- .label = Always floating
-pane-zen-CKS-title = Keyboard Shortcuts
+ .label = Întotdeauna plutitor
+pane-zen-CKS-title = Scurtături de Tastatură
category-zen-CKS =
.tooltiptext = { pane-zen-CKS-title }
-pane-settings-CKS-title = { -brand-short-name } Keyboard Shortcuts
+pane-settings-CKS-title = Scurtături de Tastatură { -brand-short-name }
category-zen-marketplace =
- .tooltiptext = Zen Mods
-zen-settings-CKS-header = Customize your keyboard shortcuts
-zen-settings-CKS-description = Change the default keyboard shortcuts to your liking and improve your browsing experience
+ .tooltiptext = Mod-uri Zen
+zen-settings-CKS-header = Personalizează-ți scurtăturile de tastatură
+zen-settings-CKS-description = Schimbă scurtăturile de tastatură implicite după gustul tău și îmbunătățește experiența de navigare
zen-settings-CKS-disable-firefox =
- .label = Disable { -brand-short-name }'s default keyboard shortcuts
+ .label = Dezactivează scurtăturile de tastatură implicite { -brand-short-name }
zen-settings-CKS-duplicate-shortcut =
- .label = Duplicate Shortcut
+ .label = Scurtătură Duplicată
zen-settings-CKS-reset-shortcuts =
- .label = Reset to Default
-zenCKSOption-group-other = Other
-zenCKSOption-group-windowAndTabManagement = Window & Tab Management
-zenCKSOption-group-navigation = Navigation
-zenCKSOption-group-searchAndFind = Search & Find
-zenCKSOption-group-pageOperations = Page Operations
-zenCKSOption-group-historyAndBookmarks = History & Bookmarks
-zenCKSOption-group-mediaAndDisplay = Media & Display
-zenCKSOption-group-zen-compact-mode = Compact Mode
-zenCKSOption-group-zen-workspace = Workspaces
-zenCKSOption-group-zen-other = Other Zen Features
-zenCKSOption-group-zen-split-view = Split View
-zenCKSOption-group-devTools = Developer Tools
-zen-key-quick-restart = Quick Restart
-zen-window-new-shortcut = New Window
-zen-tab-new-shortcut = New Tab
-zen-key-redo = Redo
-zen-restore-last-closed-tab-shortcut = Restore Last Closed Tab
-zen-location-open-shortcut = Open Location
-zen-location-open-shortcut-alt = Open Location (Alt)
-zen-key-undo-close-window = Undo Close Window
-zen-text-action-undo-shortcut = Undo
-zen-text-action-redo-shortcut = Redo
-zen-text-action-cut-shortcut = Cut
-zen-text-action-copy-shortcut = Copy
-zen-text-action-copy-url-shortcut = Copy current URL
-zen-text-action-copy-url-markdown-shortcut = Copy current URL as Markdown
-zen-text-action-paste-shortcut = Paste
-zen-text-action-select-all-shortcut = Select All
-zen-text-action-delete-shortcut = Delete
-zen-history-show-all-shortcut-mac = Show All History (Mac)
-zen-full-screen-shortcut = Toggle Full Screen
-zen-reader-mode-toggle-shortcut-windows = Toggle Reader Mode (Windows)
-zen-picture-in-picture-toggle-shortcut-alt = Toggle Picture-in-Picture (Alt)
-zen-picture-in-picture-toggle-shortcut-mac = Toggle Picture-in-Picture (Mac)
-zen-picture-in-picture-toggle-shortcut-mac-alt = Toggle Picture-in-Picture (Mac Alt)
-zen-page-source-shortcut-safari = View Page Source (Safari)
-zen-nav-stop-shortcut = Stop Loading
-zen-history-sidebar-shortcut = Show History Sidebar
-zen-window-minimize-shortcut = Minimize Window
-zen-help-shortcut = Open Help
-zen-preferences-shortcut = Open Preferences
-zen-hide-app-shortcut = Hide Application
-zen-hide-other-apps-shortcut = Hide Other Applications
-zen-search-focus-shortcut = Focus Search
-zen-search-focus-shortcut-alt = Focus Search (Alt)
-zen-downloads-shortcut = Open Downloads
-zen-addons-shortcut = Open Add-ons
-zen-file-open-shortcut = Open File
-zen-save-page-shortcut = Save Page
-zen-print-shortcut = Print Page
-zen-close-shortcut-2 = Close Tab
-zen-mute-toggle-shortcut = Toggle Mute
-zen-key-delete = Delete Key
-zen-key-go-back = Go Back
-zen-key-go-forward = Go Forward
-zen-nav-back-shortcut-alt = Navigate Back (Alt)
-zen-nav-fwd-shortcut-alt = Navigate Forward (Alt)
-zen-history-show-all-shortcut = Show All History
-zen-key-enter-full-screen = Enter Full Screen
-zen-key-exit-full-screen = Exit Full Screen
-zen-ai-chatbot-sidebar-shortcut = Toggle AI Chatbot Sidebar
-zen-key-inspector-mac = Toggle Inspector (Mac)
-zen-toggle-sidebar-shortcut = Toggle Firefox Sidebar
-zen-toggle-pin-tab-shortcut = Toggle Pin Tab
-zen-reader-mode-toggle-shortcut-other = Toggle Reader Mode
-zen-picture-in-picture-toggle-shortcut = Toggle Picture-in-Picture
-zen-nav-reload-shortcut-2 = Reload Page
-zen-key-about-processes = About Processes
-zen-page-source-shortcut = View Page Source
-zen-page-info-shortcut = View Page Info
-zen-find-shortcut = Find on Page
-zen-search-find-again-shortcut = Find Again
-zen-search-find-again-shortcut-prev = Find Previous
-zen-search-find-again-shortcut-2 = Find Again (Alt)
-zen-bookmark-this-page-shortcut = Bookmark This Page
-zen-bookmark-show-library-shortcut = Show Bookmarks Library
-zen-key-stop = Stop Loading
-zen-full-zoom-reduce-shortcut = Zoom Out
-zen-full-zoom-enlarge-shortcut = Zoom In
-zen-full-zoom-reset-shortcut = Reset Zoom
-zen-full-zoom-reset-shortcut-alt = Reset Zoom (Alt)
-zen-full-zoom-enlarge-shortcut-alt = Zoom In (Alt)
-zen-full-zoom-enlarge-shortcut-alt2 = Zoom In (Alt 2)
-zen-bidi-switch-direction-shortcut = Switch Text Direction
-zen-private-browsing-shortcut = Private Browsing
-zen-screenshot-shortcut = Take Screenshot
-zen-key-sanitize = Clear Browsing Data
-zen-quit-app-shortcut = Quit Application
-zen-key-wr-capture-cmd = WR Capture Command
-zen-key-wr-toggle-capture-sequence-cmd = Toggle WR Capture Sequence
-zen-nav-reload-shortcut = Reload Page
-zen-nav-reload-shortcut-skip-cache = Reload Page (Skip Cache)
-zen-close-shortcut = Close Window
-zen-close-tab-shortcut = Close Tab
-zen-compact-mode-shortcut-show-sidebar = Toggle Floating Sidebar
-zen-compact-mode-shortcut-show-toolbar = Toggle Floating Toolbar
-zen-compact-mode-shortcut-toggle = Toggle Compact Mode
-zen-glance-expand = Expand Glance
-zen-workspace-shortcut-switch-1 = Switch to Workspace 1
-zen-workspace-shortcut-switch-2 = Switch to Workspace 2
-zen-workspace-shortcut-switch-3 = Switch to Workspace 3
-zen-workspace-shortcut-switch-4 = Switch to Workspace 4
-zen-workspace-shortcut-switch-5 = Switch to Workspace 5
-zen-workspace-shortcut-switch-6 = Switch to Workspace 6
-zen-workspace-shortcut-switch-7 = Switch to Workspace 7
-zen-workspace-shortcut-switch-8 = Switch to Workspace 8
-zen-workspace-shortcut-switch-9 = Switch to Workspace 9
-zen-workspace-shortcut-switch-10 = Switch to Workspace 10
-zen-workspace-shortcut-forward = Forward Workspace
-zen-workspace-shortcut-backward = Backward Workspace
-zen-workspace-shortcut-create = Create New Workspace
-zen-sidebar-shortcut-toggle = Toggle Sidebar's Width
-zen-pinned-tab-shortcut-reset = Reset Pinned Tab to Pinned URL
-zen-split-view-shortcut-grid = Toggle Split View Grid
-zen-split-view-shortcut-vertical = Toggle Split View Vertical
-zen-split-view-shortcut-horizontal = Toggle Split View Horizontal
-zen-split-view-shortcut-unsplit = Close Split View
-zen-new-empty-split-view-shortcut = New Empty Split View
-zen-key-select-tab-1 = Select tab #1
-zen-key-select-tab-2 = Select tab #2
-zen-key-select-tab-3 = Select tab #3
-zen-key-select-tab-4 = Select tab #4
-zen-key-select-tab-5 = Select tab #5
-zen-key-select-tab-6 = Select tab #6
-zen-key-select-tab-7 = Select tab #7
-zen-key-select-tab-8 = Select tab #8
-zen-key-select-tab-last = Select last tab
-zen-key-show-all-tabs = Show all tabs
-zen-key-goto-history = Go to history
-zen-key-go-home = Go Home
-zen-bookmark-show-sidebar-shortcut = Show Bookmarks Sidebar
-zen-bookmark-show-toolbar-shortcut = Show Bookmarks Toolbar
-zen-devtools-toggle-shortcut = Toggle DevTools
-zen-devtools-toggle-browser-toolbox-shortcut = Toggle Browser Toolbox
-zen-devtools-toggle-browser-console-shortcut = Toggle Browser Console
-zen-devtools-toggle-responsive-design-mode-shortcut = Toggle Responsive Design Mode
-zen-devtools-toggle-inspector-shortcut = Toggle Inspector
-zen-devtools-toggle-web-console-shortcut = Toggle Web Console
-zen-devtools-toggle-js-debugger-shortcut = Toggle JavaScript Debugger
-zen-devtools-toggle-net-monitor-shortcut = Toggle Network Monitor
-zen-devtools-toggle-style-editor-shortcut = Toggle Style Editor
-zen-devtools-toggle-performance-shortcut = Toggle Performance
-zen-devtools-toggle-storage-shortcut = Toggle Storage
-zen-devtools-toggle-dom-shortcut = Toggle DOM
-zen-devtools-toggle-accessibility-shortcut = Toggle Accessibility
-zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
-zen-new-unsynced-window-shortcut = New Unsynced Window
-zen-duplicate-tab-shortcut = Duplicate Tab
-zen-key-find-selection = Find Selection
+ .label = Resetează la valoarea implicită
+zenCKSOption-group-other = Altceva
+zenCKSOption-group-windowAndTabManagement = Gestionarea Ferestrelor și Filelor
+zenCKSOption-group-navigation = Navigare
+zenCKSOption-group-searchAndFind = Caută și Găsește
+zenCKSOption-group-pageOperations = Operații pe Pagină
+zenCKSOption-group-historyAndBookmarks = Istoric și Marcaje
+zenCKSOption-group-mediaAndDisplay = Media și Afișare
+zenCKSOption-group-zen-compact-mode = Modul Compact
+zenCKSOption-group-zen-workspace = Spații de Lucru
+zenCKSOption-group-zen-other = Alte Funcții Zen
+zenCKSOption-group-zen-split-view = Vizualizare Împărțită
+zenCKSOption-group-devTools = Unelte pentru Dezvoltatori
+zen-key-quick-restart = Repornire Rapidă
+zen-window-new-shortcut = Fereastră Nouă
+zen-tab-new-shortcut = Filă Nouă
+zen-key-redo = Refă
+zen-restore-last-closed-tab-shortcut = Restaurează Ultima Filă Închisă
+zen-location-open-shortcut = Deschide Locația
+zen-location-open-shortcut-alt = Deschide Locația (Alt)
+zen-key-undo-close-window = Anulează Închiderea Ferestrei
+zen-text-action-undo-shortcut = Anulează
+zen-text-action-redo-shortcut = Refă
+zen-text-action-cut-shortcut = Decupează
+zen-text-action-copy-shortcut = Copiază
+zen-text-action-copy-url-shortcut = Copiază URL-ul curent
+zen-text-action-copy-url-markdown-shortcut = Copiază URL-ul curent ca Markdown
+zen-text-action-paste-shortcut = Lipește
+zen-text-action-select-all-shortcut = Selectează tot
+zen-text-action-delete-shortcut = Șterge
+zen-history-show-all-shortcut-mac = Arată tot istoricul (Mac)
+zen-full-screen-shortcut = Comută Ecran Complet
+zen-reader-mode-toggle-shortcut-windows = Comută Modul Cititor (Windows)
+zen-picture-in-picture-toggle-shortcut-alt = Comută Imaginea-în-Imagine (Alt)
+zen-picture-in-picture-toggle-shortcut-mac = Comută Imaginea-în-Imagine (Mac)
+zen-picture-in-picture-toggle-shortcut-mac-alt = Comută Imaginea-în-Imagine (Mac Alt)
+zen-page-source-shortcut-safari = Vezi Sursa Paginii (Safari)
+zen-nav-stop-shortcut = Oprește Încărcarea
+zen-history-sidebar-shortcut = Arată bara laterală a Istoricului
+zen-window-minimize-shortcut = Minimizează Fereastra
+zen-help-shortcut = Deschide Ajutor
+zen-preferences-shortcut = Deschide Preferințele
+zen-hide-app-shortcut = Ascunde Aplicația
+zen-hide-other-apps-shortcut = Ascunde Alte Aplicații
+zen-search-focus-shortcut = Focalizează pe Căutare
+zen-search-focus-shortcut-alt = Focalizează pe Căutare (Alt)
+zen-downloads-shortcut = Deschide Descărcările
+zen-addons-shortcut = Deschide Suplimentele
+zen-file-open-shortcut = Deschide Fișier
+zen-save-page-shortcut = Salvează Pagina
+zen-print-shortcut = Tipărește Pagina
+zen-close-shortcut-2 = Închide fila
+zen-mute-toggle-shortcut = Comută Sunet Mut
+zen-key-delete = Șterge Cheia
+zen-key-go-back = Mergi Înapoi
+zen-key-go-forward = Mergi Înainte
+zen-nav-back-shortcut-alt = Navighează Înapoi (Alt)
+zen-nav-fwd-shortcut-alt = Navighează Înainte (Alt)
+zen-history-show-all-shortcut = Arată tot istoricul
+zen-key-enter-full-screen = Intră în Ecran Complet
+zen-key-exit-full-screen = Ieși din Ecran Complet
+zen-ai-chatbot-sidebar-shortcut = Comută bara laterală a Robotului AI
+zen-key-inspector-mac = Comută Inspectorul (Mac)
+zen-toggle-sidebar-shortcut = Comută bara laterală Firefox
+zen-toggle-pin-tab-shortcut = Comută Fila Fixată
+zen-reader-mode-toggle-shortcut-other = Comută Modul Cititor
+zen-picture-in-picture-toggle-shortcut = Comută Imaginea-în-Imagine
+zen-nav-reload-shortcut-2 = Reîncarcă Pagina
+zen-key-about-processes = Despre Procese
+zen-page-source-shortcut = Vezi Sursa Paginii
+zen-page-info-shortcut = Vezi Informațiile Paginii
+zen-find-shortcut = Găsește în Pagină
+zen-search-find-again-shortcut = Găsește din nou
+zen-search-find-again-shortcut-prev = Găsește Anteriorul
+zen-search-find-again-shortcut-alt = Caută din nou (Alt)
+zen-search-find-again-shortcut-prev-alt = Caută anterior (Alt)
+zen-bookmark-this-page-shortcut = Marchează Această Pagină
+zen-bookmark-show-library-shortcut = Arată Librăria Marcajelor
+zen-key-stop = Oprește Încărcarea
+zen-full-zoom-reduce-shortcut = Micșorează
+zen-full-zoom-enlarge-shortcut = Mărește
+zen-full-zoom-reset-shortcut = Resetează Zoom
+zen-full-zoom-reset-shortcut-alt = Resetează Zoom (Alt)
+zen-full-zoom-enlarge-shortcut-alt = Mărește (Alt)
+zen-full-zoom-enlarge-shortcut-alt2 = Mărește (Alt 2)
+zen-bidi-switch-direction-shortcut = Schimbă Direcția Textului
+zen-private-browsing-shortcut = Navigare Anonimă
+zen-screenshot-shortcut = Fă o Captură de ecran
+zen-key-sanitize = Șterge Datele de Navigare
+zen-quit-app-shortcut = Închide Aplicația
+zen-key-wr-capture-cmd = Comanda de Captură WR
+zen-key-wr-toggle-capture-sequence-cmd = Comută Secvența de Captură WR
+zen-nav-reload-shortcut = Reîncarcă Pagina
+zen-nav-reload-shortcut-skip-cache = Reîncarcă Pagina (fără cache)
+zen-close-shortcut = Închide Fereastra
+zen-close-tab-shortcut = Închide fila
+zen-compact-mode-shortcut-show-sidebar = Comută Bara Laterală Plutitoare
+zen-compact-mode-shortcut-show-toolbar = Comută Bara de Unelte Plutitoare
+zen-compact-mode-shortcut-toggle = Comută Modul Compact
+zen-glance-expand = Extinde Glance
+zen-workspace-shortcut-switch-1 = Mergi la Spațiul de Lucru 1
+zen-workspace-shortcut-switch-2 = Mergi la Spațiul de Lucru 2
+zen-workspace-shortcut-switch-3 = Mergi la Spațiul de Lucru 3
+zen-workspace-shortcut-switch-4 = Mergi la Spațiul de Lucru 4
+zen-workspace-shortcut-switch-5 = Mergi la Spațiul de Lucru 5
+zen-workspace-shortcut-switch-6 = Mergi la Spațiul de Lucru 6
+zen-workspace-shortcut-switch-7 = Mergi la Spațiul de Lucru 7
+zen-workspace-shortcut-switch-8 = Mergi la Spațiul de Lucru 8
+zen-workspace-shortcut-switch-9 = Mergi la Spațiul de Lucru 9
+zen-workspace-shortcut-switch-10 = Mergi la Spațiul de Lucru 10
+zen-workspace-shortcut-forward = Spațiul de Lucru Următor
+zen-workspace-shortcut-backward = Spațiul de Lucru Anterior
+zen-workspace-shortcut-create = Creează un Spațiu de Lucru Nou
+zen-sidebar-shortcut-toggle = Comută Lățimea Barei Laterale
+zen-pinned-tab-shortcut-reset = Resetează Fila Fixată la URL-ul Fixat
+zen-split-view-shortcut-grid = Comută Vizualizarea Împărțită tip Grilă
+zen-split-view-shortcut-vertical = Comută Vizualizarea Împărțită Verticală
+zen-split-view-shortcut-horizontal = Comută Vizualizarea Împărțită Orizontală
+zen-split-view-shortcut-unsplit = Închide Vizualizarea Împărțită
+zen-new-empty-split-view-shortcut = Vizualizare Împărțită Nouă Goală
+zen-key-select-tab-1 = Selectează fila #1
+zen-key-select-tab-2 = Selectează fila #2
+zen-key-select-tab-3 = Selectează fila #3
+zen-key-select-tab-4 = Selectează fila #4
+zen-key-select-tab-5 = Selectează fila #5
+zen-key-select-tab-6 = Selectează fila #6
+zen-key-select-tab-7 = Selectează fila #7
+zen-key-select-tab-8 = Selectează fila #8
+zen-key-select-tab-last = Selectează ultima filă
+zen-key-show-all-tabs = Arată toate filele
+zen-key-goto-history = Mergi la istoric
+zen-key-go-home = Întoarce-te Acasă
+zen-bookmark-show-sidebar-shortcut = Arată Bara Laterală a Marcajelor
+zen-bookmark-show-toolbar-shortcut = Arată Bara de Unelte a Marcajelor
+zen-devtools-toggle-shortcut = Comută DevTools
+zen-devtools-toggle-browser-toolbox-shortcut = Comută Cutia de Unelte a Browser-ului
+zen-devtools-toggle-browser-console-shortcut = Comută Consola Browser-ului
+zen-devtools-toggle-responsive-design-mode-shortcut = Comută Modul de Design Receptiv
+zen-devtools-toggle-inspector-shortcut = Comută Inspectorul
+zen-devtools-toggle-web-console-shortcut = Comută Consola Web
+zen-devtools-toggle-js-debugger-shortcut = Comută Depănătorul JavaScript
+zen-devtools-toggle-net-monitor-shortcut = Comută Monitorul de Rețea
+zen-devtools-toggle-style-editor-shortcut = Comută Editorul de Stil
+zen-devtools-toggle-performance-shortcut = Comută Performanța
+zen-devtools-toggle-storage-shortcut = Comută Stocarea
+zen-devtools-toggle-dom-shortcut = Comută DOM
+zen-devtools-toggle-accessibility-shortcut = Comută Accesibilitatea
+zen-close-all-unpinned-tabs-shortcut = Închide toate filele nefixate
+zen-new-unsynced-window-shortcut = Fereastră Nouă Goală
+zen-duplicate-tab-shortcut = Duplică fila
+zen-key-find-selection = Găsește Selecția
diff --git a/locales/ro/browser/browser/zen-boosts.ftl b/locales/ro/browser/browser/zen-boosts.ftl
index eb42026a7..ca4cc4783 100644
--- a/locales/ro/browser/browser/zen-boosts.ftl
+++ b/locales/ro/browser/browser/zen-boosts.ftl
@@ -3,56 +3,56 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Redenumește Boost
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Amestecă Stilurile
zen-boost-edit-reset =
- .label = Reset All Edits
+ .label = Resetează Toate Modificările
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
-zen-boost-case = Case
-zen-boost-zap = Zap
-zen-boost-code = Code
-zen-boost-back = Back
+ .label = Șterge Boost
+zen-boost-size = Mărime
+zen-boost-case = Capitalizare
+zen-boost-zap = Șterge
+zen-boost-code = Cod
+zen-boost-back = Înapoi
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Amestecă Setările Boost-ului
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Culori Inversate Inteligent
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Comenzi de Culoare Avansate
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Dezactivează Ajustările de Culoare
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Schimbă Capitalizarea
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Alege Selectorul
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
+ .tooltiptext = Deschide Inspectorul
zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
-zen-boost-color-original-saturation = Original Saturation
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+zen-boost-color-brightness = Luminozitate
+zen-boost-color-original-saturation = Saturație Originală
+zen-add-zap-helper = Apasă pe elemente din pagină pentru a le Șterge
+zen-remove-zap-helper = ← Anulează Ștergerea
+zen-select-this = Inserează selector pentru acesta
+zen-select-related = Inserează selector pentru elemente asociate
+zen-select-cancel = Anulează
+zen-zap-this = Șterge element
+zen-zap-related = Șterge toate elementele asociate
+zen-zap-cancel = Anulează
+zen-zap-done = Gata
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Niciun element șters
+ [1] Un element șters
+ *[other] { $elementCount } elemente șterse
}
zen-boost-save =
- .label = Export Boost
+ .label = Exportă Boost
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+ .label = Importă Boost
+zen-panel-ui-boosts-exported-message = Boost exportat!
+zen-site-data-boosts = Boost-uri
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Creează Boost nou
+zen-boost-rename-boost-prompt = Redenumește Boost?
diff --git a/locales/ro/browser/browser/zen-command-palette.ftl b/locales/ro/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..bc2bea0c6
--- /dev/null
+++ b/locales/ro/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Comută Modul Compact
+zen-action-open-theme-picker = Deschide selectorul de teme
+zen-action-new-split-view = Vizualizare împărțită nouă
+zen-action-new-folder = Folder nou
+zen-action-copy-current-url = Copiază URL-ul curent
+zen-action-settings = Setări
+zen-action-open-private-window = Deschide fereastră privată
+zen-action-open-new-window = Deschide o fereastră nouă
+zen-action-new-blank-window = Fereastră nouă goală
+zen-action-pin-tab = Fixează fila
+zen-action-unpin-tab = Anulează fixarea filei
+zen-action-open-space-routing = Deschide rutarea spațiilor
+zen-action-new-boost = Boost nou
+zen-action-next-space = Spațiul următor
+zen-action-previous-space = Spațiul anterior
+zen-action-close-tab = Închide fila
+zen-action-reload-tab = Reîncarcă fila
+zen-action-reload-tab-without-cache = Reîncarcă fila fără cache
+zen-action-next-tab = Fila următoare
+zen-action-previous-tab = Fila anterioară
+zen-action-capture-screenshot = Captură de ecran
+zen-action-toggle-tabs-on-right = Comută filele în dreapta
+zen-action-add-to-essentials = Adaugă la Esențiale
+zen-action-remove-from-essentials = Elimină din Esențiale
+zen-action-find-in-page = Găsește în pagină
+zen-action-manage-extensions = Gestionează extensiile
+zen-action-switch-to-automatic-appearance = Schimbă în modul Aparență Automată
+zen-action-switch-to-light-mode = Schimbă în modul luminos
+zen-action-switch-to-dark-mode = Schimbă în modul întunecat
+zen-action-print = Tipărește
+zen-action-focus-on = Focalizare pe
+zen-action-extension = Extensie
diff --git a/locales/ro/browser/browser/zen-folders.ftl b/locales/ro/browser/browser/zen-folders.ftl
index ebb7efe51..6acf2c4d2 100644
--- a/locales/ro/browser/browser/zen-folders.ftl
+++ b/locales/ro/browser/browser/zen-folders.ftl
@@ -3,21 +3,21 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-folders-search-placeholder =
- .placeholder = Search { $folder-name }...
+ .placeholder = Caută { $folder-name }...
zen-folders-panel-rename-folder =
.label = Rename Folder
zen-folders-panel-unpack-folder =
- .label = Unpack Folder
+ .label = Despachetare Folder
zen-folders-new-subfolder =
.label = New Subfolder
zen-folders-panel-delete-folder =
- .label = Delete Folder
+ .label = Șterge Folder
zen-folders-panel-convert-folder-to-space =
- .label = Convert folder to Space
+ .label = Convertește folderul în Spațiu
zen-folders-panel-change-folder-space =
.label = Change Space...
zen-folders-unload-all-tooltip =
- .tooltiptext = Unload active in this folder
+ .tooltiptext = Închide tab-urile active din folder
zen-folders-unload-folder =
- .label = Unload All Tabs
-zen-folders-search-no-results = No tabs matching that search 🤔
+ .label = Închide toate filele
+zen-folders-search-no-results = Nicio filă nu se potrivește căutării 🤔
diff --git a/locales/ro/browser/browser/zen-general.ftl b/locales/ro/browser/browser/zen-general.ftl
index 709b4575f..2bbaf6840 100644
--- a/locales/ro/browser/browser/zen-general.ftl
+++ b/locales/ro/browser/browser/zen-general.ftl
@@ -2,126 +2,141 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-zen-panel-ui-current-profile-text = current profile
-unified-extensions-description = Extensions are used to bring more extra functionality into { -brand-short-name }.
+zen-panel-ui-current-profile-text = profilul curent
+unified-extensions-description = Extensiile sunt folosite pentru a aduce funcționalități suplimentare în { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
.label =
{ $isEssential ->
- [true] Reset Essential Tab
- *[false] Reset Pinned Tab
+ [true] Resetare Filă Esențială
+ *[false] Resetare Filă Fixată
}
.accesskey = R
tab-context-zen-add-essential =
- .label = Add to Essentials
+ .label = Adaugă la Esențiale
.accesskey = E
-tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
+tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
- .label = Remove from Essentials
+ .label = Elimină din Esențiale
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Editează URL-ul filei esențiale
+ *[false] Editează URL-ul filei fixate
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Înlocuiește cu URL-ul curent
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Editează…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
.label = Change Icon...
-zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
-zen-shortcuts-corrupted = Your { -brand-short-name } shortcuts file is corrupted. They have been reset to the default shortcuts.
+zen-themes-corrupted = Fișierul tău de moduri { -brand-short-name } este corupt. Acestea au fost resetate la tema implicită.
+zen-shortcuts-corrupted = Fișierul tău de scurtături { -brand-short-name } este corupt. Acestea au fost resetate la scurtăturile implicite.
# note: Do not translate the " " tags in the following string
zen-new-urlbar-notification =
- The new URL bar has been enabled, removing the need for new tab pages.
- Try opening a new tab to see the new URL bar in action!
-zen-disable = Disable
+ Noua bară URL a fost activată, eliminând necesitatea pentru paginile cu file noi.
+ Încearcă să deschizi o filă nouă pentru a vedea noua bară URL în acțiune!
+zen-disable = Dezactivează
pictureinpicture-minimize-btn =
- .aria-label = Minimize
- .tooltip = Minimize
-zen-panel-ui-gradient-generator-custom-color = Custom Color
-zen-copy-current-url-confirmation = Copied current URL!
-zen-copy-current-url-as-markdown-confirmation = Copied current URL as Markdown!
+ .aria-label = Minimizează
+ .tooltip = Minimizează
+zen-panel-ui-gradient-generator-custom-color = Culoare Personalizată
+zen-copy-current-url-confirmation = URL-ul curent a fost copiat!
+zen-copy-current-url-as-markdown-confirmation = URL-ul curent a fost copiat ca Markdown!
zen-general-cancel-label =
- .label = Cancel
+ .label = Anulează
zen-general-confirm =
- .label = Confirm
-zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL!
-zen-tabs-renamed = Tab has been successfully renamed!
-zen-background-tab-opened-toast = New background tab opened!
-zen-workspace-renamed-toast = Workspace has been successfully renamed!
-zen-split-view-limit-toast = Can't add more panels to the split view!
+ .label = Confirmă
+zen-pinned-tab-replaced = URL-ul filei fixate a fost înlocuit cu URL-ul curent!
+zen-pinned-tab-url-edited = URL-ul filei fixate a fost actualizat!
+zen-pinned-tab-url-invalid = Nu pare a fi un URL valid.
+zen-pinned-tab-edit-url-title = Editare URL fixat
+zen-pinned-tab-edit-url-label = Introdu URL-ul pe care această filă trebuie să-l indice:
+zen-tabs-renamed = Fila a fost redenumită cu succes!
+zen-background-tab-opened-toast = Filă nouă de fundal deschisă!
+zen-workspace-renamed-toast = Spațiul de Lucru a fost redenumit cu succes!
+zen-split-view-limit-toast = Nu se mai pot adăuga panouri noi la vizualizarea împărțită!
zen-toggle-compact-mode-button =
- .label = Compact Mode
- .tooltiptext = Toggle Compact Mode
+ .label = Modul Compact
+ .tooltiptext = Comută Modul Compact
# note: Do not translate the " " tags in the following string
-zen-learn-more-text = Learn More
-zen-close-label = Close
+zen-learn-more-text = Află mai multe
+zen-close-label = Închide
zen-singletoolbar-urlbar-placeholder-with-name =
- .placeholder = Search...
+ .placeholder = Caută...
zen-icons-picker-emoji =
- .label = Emojis
+ .label = Emoji-uri
zen-icons-picker-svg =
- .label = Icons
-urlbar-search-mode-zen_actions = Actions
-zen-site-data-settings = Settings
-zen-generic-manage = Manage
-zen-generic-more = More
-zen-generic-next = Next
-zen-essentials-promo-label = Add to Essentials
-zen-essentials-promo-sublabel = Keep your favorite tabs just a click away
+ .label = Iconițe
+zen-emojis-picker-search =
+ .placeholder = Caută Emoji
+urlbar-search-mode-zen_actions = Acțiuni
+zen-site-data-settings = Setări
+zen-generic-manage = Gestionează
+zen-generic-more = Mai multe
+zen-generic-next = Următorul
+zen-essentials-promo-label = Adaugă la Esențiale
+zen-essentials-promo-sublabel = Ține filele tale preferate la un click distanță
# These labels will be used for the site data panel settings
-zen-site-data-setting-allow = Allowed
-zen-site-data-setting-block = Blocked
-zen-site-data-protections-enabled = Enabled
-zen-site-data-protections-disabled = Disabled
-zen-site-data-setting-cross-site = Cross-Site cookie
+zen-site-data-setting-allow = Permis
+zen-site-data-setting-block = Blocat
+zen-site-data-protections-enabled = Activat
+zen-site-data-protections-disabled = Dezactivat
+zen-site-data-setting-cross-site = Cookie Cross-Site
zen-site-data-security-info-extension =
- .label = Extension
+ .label = Extensie
zen-site-data-security-info-secure =
- .label = Secure
+ .label = Securizat
zen-site-data-security-info-not-secure =
- .label = Not Secure
+ .label = Nesecurizat
zen-site-data-manage-addons =
- .label = Manage Extensions
+ .label = Gestionează Extensiile
zen-site-data-get-addons =
- .label = Add Extensions
+ .label = Adaugă Extensii
zen-site-data-site-settings =
- .label = All Site Settings
+ .label = Toate Setările Site-ului
zen-site-data-header-share =
- .tooltiptext = Share This Page
+ .tooltiptext = Distribuie Această Pagină
zen-site-data-header-reader-mode =
- .tooltiptext = Enter Reader Mode
+ .tooltiptext = Intră în Modul Cititor
zen-site-data-header-screenshot =
- .tooltiptext = Take a Screenshot
+ .tooltiptext = Fă o Captură Ecran
zen-site-data-header-bookmark =
- .tooltiptext = Bookmark This Page
+ .tooltiptext = Marchează Această Pagină
zen-urlbar-copy-url-button =
- .tooltiptext = Copy URL
-zen-site-data-setting-site-protection = Tracking Protection
+ .tooltiptext = Copiază URL-ul
+zen-site-data-setting-site-protection = Protecție împotriva Urmăririi
# Section: Feature callouts
-zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
-zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
+zen-site-data-panel-feature-callout-title = O casă nouă pentru Suplimente, Permisiuni și multe altele
+zen-site-data-panel-feature-callout-subtitle = Apasă pe iconiță pentru a gestiona setările site-ului, pentru a vizualiza informațiile de securitate, accesul extensiilor și pentru a efectua acțiuni comune.
zen-open-link-in-glance =
- .label = Open Link in Glance
+ .label = Deschide link-ul în Glance
.accesskey = G
-zen-sidebar-notification-updated-heading = Update Complete!
+zen-sidebar-notification-updated-heading = Actualizare finalizată!
# See ZenSidebarNotification.mjs to see how these would be used
-zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
+zen-sidebar-notification-updated-label = Ce este nou în { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
- .title = View Release Notes
-zen-sidebar-notification-restart-safe-mode-label = Something broke?
+ .title = Vezi Notele de Lansare
+zen-sidebar-notification-donate-label = Suportă { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donează proiectului
+zen-sidebar-notification-restart-safe-mode-label = S-a stricat ceva?
zen-sidebar-notification-restart-safe-mode-tooltip =
- .title = Restart in Safe Mode
-zen-window-sync-migration-dialog-title = Keep Your Windows in Sync
-zen-window-sync-migration-dialog-message = Zen now syncs windows on the same device, so changes in one window are reflected across the others instantly.
-zen-window-sync-migration-dialog-learn-more = Learn More
-zen-window-sync-migration-dialog-accept = Got It
+ .title = Repornește în Modul Sigur
+zen-window-sync-migration-dialog-title = Păstrează-ți Ferestrele Sincronizate
+zen-window-sync-migration-dialog-message = Zen sincronizează ferestrele pe același dispozitiv, deci modificările dintr-o fereastră sunt reflectate instantaneu la celelalte ferestre.
+zen-window-sync-migration-dialog-learn-more = Află mai multe
+zen-window-sync-migration-dialog-accept = Am înțeles
zen-appmenu-new-blank-window =
- .label = New blank window
+ .label = Fereastră Nouă Goală
diff --git a/locales/ro/browser/browser/zen-menubar.ftl b/locales/ro/browser/browser/zen-menubar.ftl
index a24d50928..1b029321f 100644
--- a/locales/ro/browser/browser/zen-menubar.ftl
+++ b/locales/ro/browser/browser/zen-menubar.ftl
@@ -5,18 +5,18 @@
zen-menubar-toggle-pinned-tabs =
.label =
{ $pinnedAreCollapsed ->
- [true] Expand Pinned Tabs
- *[false] Collapse Pinned Tabs
+ [true] Extinde Filele Fixate
+ *[false] Restrânge Filele Fixate
}
zen-menubar-appearance =
- .label = Appearance
+ .label = Aspect
zen-menubar-appearance-description =
- .label = Websites will use:
+ .label = Website-urile vor folosi:
zen-menubar-appearance-auto =
- .label = Automatic
+ .label = Automat
zen-menubar-appearance-light =
- .label = Light
+ .label = Luminos
zen-menubar-appearance-dark =
- .label = Dark
+ .label = Întunecat
zen-menubar-new-blank-window =
- .label = New Blank Window
+ .label = Fereastră Nouă Goală
diff --git a/locales/ro/browser/browser/zen-space-routing.ftl b/locales/ro/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..ec962ff32
--- /dev/null
+++ b/locales/ro/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Setări Rutare Spații
+zen-space-routing-rulepanel-placeholder = Rutele îți permit să alegi unde se deschid anumite site-uri în Zen. De exemplu, poți ruta link-urile de YouTube să fie deschide întotdeauna în Spațiul Personal.
+zen-space-routing-dialog-title = Setări Rutare Spații
+zen-space-routing-external-default = Rută implicită pentru link-uri externe
+zen-space-routing-new-route = Rută nouă
+zen-space-routing-open-in-space = Deschide în Spațiu
+zen-space-routing-most-recent-space = Cel mai recent Spațiu
+zen-space-routing-close-button =
+ .aria-label = Închide
+ .tooltiptext = Închide
+zen-space-routing-contains =
+ .label = Conține
+zen-space-routing-equal-to =
+ .label = Este egal cu
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Deschide în
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Filă nouă deschisă în { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Adaugă ruta pentru domeniu
+ *[other] Adaugă ruta pentru domenii
+ }
diff --git a/locales/ro/browser/browser/zen-split-view.ftl b/locales/ro/browser/browser/zen-split-view.ftl
index 4430fab34..d0a9453aa 100644
--- a/locales/ro/browser/browser/zen-split-view.ftl
+++ b/locales/ro/browser/browser/zen-split-view.ftl
@@ -5,14 +5,14 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
- [-1] Split out tab
- [1] Add split view...
- *[other] Join { $tabCount } Tabs
+ [-1] Desparte fila
+ [1] Împarte fila...
+ *[other] Îmbină { $tabCount } file
}
.accesskey = S
zen-split-link =
- .label = Split link to new tab
+ .label = Împarte link-ul către o filă nouă
.accesskey = S
-zen-split-view-modifier-header = Split View
+zen-split-view-modifier-header = Vizualizare Împărțită
zen-split-view-modifier-activate-reallocation =
- .label = Activate reallocation
+ .label = Activează realocarea
diff --git a/locales/ro/browser/browser/zen-vertical-tabs.ftl b/locales/ro/browser/browser/zen-vertical-tabs.ftl
index 9989c7666..502de53ee 100644
--- a/locales/ro/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/ro/browser/browser/zen-vertical-tabs.ftl
@@ -3,45 +3,45 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-toolbar-context-tabs-right =
- .label = Tabs on the right
+ .label = File pe partea dreaptă
.accesskey = R
zen-toolbar-context-compact-mode =
- .label = Compact Mode
+ .label = Modul Compact
zen-toolbar-context-compact-mode-enable =
- .label = Enable compact mode
+ .label = Activează modul compact
.accesskey = D
zen-toolbar-context-compact-mode-just-tabs =
- .label = Hide sidebar
+ .label = Ascunde bara laterală
zen-toolbar-context-compact-mode-just-toolbar =
- .label = Hide toolbar
+ .label = Ascunde bara de unelte
zen-toolbar-context-compact-mode-hide-both =
- .label = Hide both
+ .label = Ascunde ambele
.accesskey = H
zen-toolbar-context-move-to-folder =
.label = Move to Folder...
.accesskey = M
zen-toolbar-context-new-folder =
- .label = New Folder
+ .label = Folder Nou
.accesskey = N
sidebar-zen-expand =
- .label = Expand Sidebar
+ .label = Extinde bara laterală
sidebar-zen-create-new =
.label = Create New...
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
- [one] Unload and switch to tab
- *[other] Unload { $tabCount } tabs and switch to the first
+ [one] Închide şi treci la filă
+ *[other] Închide { $tabCount } file şi treci la prima
}
tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
- [one] Reset and pin tab
- *[other] Reset and pin { $tabCount } tabs
+ [one] Resetează și Fixează fila
+ *[other] Resetează și Fixează { $tabCount } file
}
zen-tab-sublabel =
{ $tabSubtitle ->
- [zen-default-pinned] Back to pinned url
- [zen-default-pinned-cmd] Separate from pinned tab
+ [zen-default-pinned] Înapoi la url-ul fixat
+ [zen-default-pinned-cmd] Separă de filele fixate
*[other] { $tabSubtitle }
}
diff --git a/locales/ro/browser/browser/zen-welcome.ftl b/locales/ro/browser/browser/zen-welcome.ftl
index 063aff1e7..e5e8823f7 100644
--- a/locales/ro/browser/browser/zen-welcome.ftl
+++ b/locales/ro/browser/browser/zen-welcome.ftl
@@ -2,25 +2,25 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-zen-welcome-title-line1 = Welcome to
-zen-welcome-title-line2 = a calmer internet
-zen-welcome-import-title = A Fresh Start, Same Bookmarks
-zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—don’t leave them behind!
-zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off.
-zen-welcome-import-button = Import now
-zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser
-zen-welcome-dont-set-default-browser = DON’T set { -brand-short-name } as your default browser
-zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach
-zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open.
-zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in.
-zen-welcome-workspace-colors-title = Your Workspaces, Your Colors
-zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity.
+zen-welcome-title-line1 = Bine ai venit la
+zen-welcome-title-line2 = un internet mai calm
+zen-welcome-import-title = Un Început Proaspăt, Aceleași Marcaje
+zen-welcome-import-description-1 = Marcajele, istoricul și parolele tale sunt ca un șir de firimituri care îți dezvăluie traseul pe internet — nu le lăsa în urmă!
+zen-welcome-import-description-2 = Adu-le cu ușurință din alt browser și continuă exact de unde ai rămas.
+zen-welcome-import-button = Importă acum
+zen-welcome-set-default-browser = Setează { -brand-short-name } ca browser principal
+zen-welcome-dont-set-default-browser = NU seta { -brand-short-name } ca browser principal
+zen-welcome-initial-essentials-title = Filele tale cheie, întotdeauna la îndemână
+zen-welcome-initial-essentials-description-1 = Păstrează-ți cele mai importante file ușor de accesat, indiferent de câte ai deschise.
+zen-welcome-initial-essentials-description-2 = Filele Esențiale sunt mereu vizibile, indiferent de Spațiul de Lucru în care te afli.
+zen-welcome-workspace-colors-title = Spațiul Tău de Lucru, Culorile Tale
+zen-welcome-workspace-colors-description = Personalizează-ți browser-ul dând fiecărui Spațiu de Lucru o culoare de identitate unică.
zen-welcome-start-browsing-title =
- All set?
- Let’s get rolling!
-zen-welcome-start-browsing-description-1 = You’re all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
-zen-welcome-start-browsing = Dive in!
-zen-welcome-default-search-title = Your Default Search Engine
-zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
-zen-welcome-skip-button = Skip
-zen-welcome-finished = Your Zen has been set up correctly!
+ Totul este gata?
+ Haide să începem!
+zen-welcome-start-browsing-description-1 = Totul este pregătit. Dă click pe butonul de mai jos și începe navigarea cu { -brand-short-name }.
+zen-welcome-start-browsing = Începe acum!
+zen-welcome-default-search-title = Motorul Tău de Căutare Principal
+zen-welcome-default-search-description = Alege-ți motorul tău de căutare principal. Îl poți schimba oricând mai târziu!
+zen-welcome-skip-button = Treci peste
+zen-welcome-finished = Zen-ul tău a fost configurat corect!
diff --git a/locales/ro/browser/browser/zen-workspaces.ftl b/locales/ro/browser/browser/zen-workspaces.ftl
index 7727a2ff2..4a797e137 100644
--- a/locales/ro/browser/browser/zen-workspaces.ftl
+++ b/locales/ro/browser/browser/zen-workspaces.ftl
@@ -2,74 +2,75 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-zen-panel-ui-workspaces-text = Spaces
+zen-panel-ui-workspaces-text = Spații
zen-panel-ui-spaces-label =
- .label = Spaces
+ .label = Spații
zen-panel-ui-workspaces-create =
- .label = Create Space
+ .label = Creează Spațiu
zen-panel-ui-folder-create =
- .label = Create Folder
+ .label = Creează Folder
zen-panel-ui-live-folder-create =
- .label = Live Folder
+ .label = Folder Live
zen-panel-ui-new-empty-split =
- .label = New Split
+ .label = Împărțire nouă
zen-workspaces-panel-context-delete =
- .label = Delete Space
+ .label = Șterge Spațiu
.accesskey = D
zen-workspaces-panel-change-name =
.label = Change Name
zen-workspaces-panel-change-icon =
.label = Change Icon
zen-workspaces-panel-context-default-profile =
- .label = Set Profile
+ .label = Schimbă profilul
zen-workspaces-panel-unload =
- .label = Unload Space
+ .label = Închide Spațiul
zen-workspaces-panel-unload-others =
- .label = Unload All Other Spaces
-zen-workspaces-how-to-reorder-title = How to reorder spaces
-zen-workspaces-how-to-reorder-desc = Drag the space icons at the bottom of the sidebar to reorder them
+ .label = Închide Toate Celelalte Spații
+zen-workspaces-how-to-reorder-title = Cum să reordonezi spațiile
+zen-workspaces-how-to-reorder-desc = Trage iconițele spațiilor din josul barei laterale pentru a le reordone
zen-workspaces-change-theme =
.label = Edit Theme
zen-workspaces-panel-context-open =
- .label = Open Workspace
+ .label = Deschide Spațiul de Lucru
.accesskey = O
zen-workspaces-panel-context-edit =
- .label = Edit Space
+ .label = Modifică Spațiul
.accesskey = E
zen-bookmark-edit-panel-workspace-selector =
- .value = Spaces
+ .value = Spații
.accesskey = W
zen-panel-ui-gradient-generator-algo-complementary =
- .label = Complementary
+ .label = Complementar
zen-panel-ui-gradient-generator-algo-splitComplementary =
- .label = Split
+ .label = Împărțire
zen-panel-ui-gradient-generator-algo-analogous =
- .label = Analogous
+ .label = Analogic
zen-panel-ui-gradient-generator-algo-triadic =
.label = Triadic
zen-panel-ui-gradient-generator-algo-floating =
- .label = Floating
-zen-panel-ui-gradient-click-to-add = Click to add a color
+ .label = Plutitor
+zen-panel-ui-gradient-click-to-add = Apasă pentru a adăuga o culoare
zen-workspace-creation-name =
- .placeholder = Space Name
+ .placeholder = Numele Spațiului
zen-move-tab-to-workspace-button =
.label = Move To...
- .tooltiptext = Move all tabs in this window to a Space
+ .tooltiptext = Mută toate filele din această fereastră într-un Spațiu
zen-workspaces-panel-context-reorder =
- .label = Reorder Spaces
-zen-workspace-creation-profile = Profile
- .tooltiptext = Profiles are used to separate cookies and site data between spaces.
-zen-workspace-creation-header = Create a Space
-zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
-zen-workspaces-delete-workspace-title = Delete Space?
-zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
+ .label = Reordonează Spațiile
+zen-workspace-creation-profile = Profil
+ .tooltiptext = Profilurile sunt folosite pentru a separa cookie-urile și datele site-ului între spații.
+zen-workspace-creation-header = Creează un Spațiu
+zen-workspace-creation-label = Spațiile sunt folosite pentru a organiza filele și sesiunile tale.
+zen-workspace-default-profile = Implicit
+zen-workspaces-delete-workspace-title = Ștergi Spațiul?
+zen-workspaces-delete-workspace-body = Ești sigur că vrei să ștergi { $name }? Această acțiune nu poate fi anulată.
# Note that the html tag MUST not be changed or removed, as it is used to better
# display the shortcut in the toast notification.
-zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use { $shortcut } to undo.
+zen-workspaces-close-all-unpinned-tabs-toast = File închise! Apasă { $shortcut } pentru a anula.
zen-workspaces-close-all-unpinned-tabs-title =
- .label = Clear
- .tooltiptext = Close all unpinned tabs
+ .label = Curăță
+ .tooltiptext = Închide toate filele nefixate
zen-panel-ui-workspaces-change-forward =
- .label = Next Space
+ .label = Spațiul Următor
zen-panel-ui-workspaces-change-back =
- .label = Previous Space
+ .label = Spațiul Anterior
diff --git a/locales/ru/browser/browser/preferences/zen-preferences.ftl b/locales/ru/browser/browser/preferences/zen-preferences.ftl
index bd2d72876..c4700086f 100644
--- a/locales/ru/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/ru/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Скрыть верхнюю панель инструментов в компактном виде
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Временно отображать панель инструментов при переключении или открытии новых вкладок в компактном виде
+zen-look-and-feel-window-drag-header = Перетаскивание окна
+zen-look-and-feel-window-drag-description = Перемещайте окно, перетаскивая пустое место в верхней части веб-сайтов, так же как и в заголовке.
+zen-window-drag-enabled =
+ .label = Разрешить перетаскивание окна с веб-страниц
pane-zen-tabs-title = Управление вкладками
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Просмотр информации о страниц
zen-find-shortcut = Найти на странице
zen-search-find-again-shortcut = Найти следующее
zen-search-find-again-shortcut-prev = Найти предыдущий
-zen-search-find-again-shortcut-2 = Найти снова (Alt)
+zen-search-find-again-shortcut-alt = Найти снова (Alt)
+zen-search-find-again-shortcut-prev-alt = Найти предыдущий (Alt)
zen-bookmark-this-page-shortcut = Добавить эту страницу в закладки
zen-bookmark-show-library-shortcut = Показать библиотеку закладок
zen-key-stop = Остановить загрузку
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Переключиться на простра
zen-workspace-shortcut-switch-10 = Переключиться на пространство 10
zen-workspace-shortcut-forward = Следующее пространство
zen-workspace-shortcut-backward = Предыдущее пространство
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Создать новое рабочее пространство
zen-sidebar-shortcut-toggle = Ширина боковой панели
zen-pinned-tab-shortcut-reset = Восстановить адрес закрепленной вкладки
zen-split-view-shortcut-grid = Переключить разделение сетки вида
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = Включить/выключить
zen-close-all-unpinned-tabs-shortcut = Закрыть все не закреплённые вкладки
zen-new-unsynced-window-shortcut = Новое пустое окно
zen-duplicate-tab-shortcut = Дублировать вкладку
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Найти выбранное
diff --git a/locales/ru/browser/browser/zen-boosts.ftl b/locales/ru/browser/browser/zen-boosts.ftl
index eb42026a7..d3b17d1c1 100644
--- a/locales/ru/browser/browser/zen-boosts.ftl
+++ b/locales/ru/browser/browser/zen-boosts.ftl
@@ -3,56 +3,57 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Переименовать стиль
zen-boost-edit-shuffle =
- .label = Shuffle Vibes
+ .label = Сменить настроение
zen-boost-edit-reset =
- .label = Reset All Edits
+ .label = Сбросить все изменения
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
-zen-boost-case = Case
-zen-boost-zap = Zap
-zen-boost-code = Code
-zen-boost-back = Back
+ .label = Удалить стиль
+zen-boost-size = Размер
+zen-boost-case = Регистр
+zen-boost-zap = Ластик
+zen-boost-code = Код
+zen-boost-back = Назад
zen-boost-shuffle =
- .tooltiptext = Shuffle Boost Settings
+ .tooltiptext = Перемешать настройки стиля
zen-boost-invert =
- .tooltiptext = Smart Invert Colors
+ .tooltiptext = Умная инверсия цвета
zen-boost-controls =
- .tooltiptext = Advanced Color Controls
+ .tooltiptext = Расширенные параметры цвета
zen-boost-disable =
- .tooltiptext = Disable Color Adjustments
+ .tooltiptext = Отключить изменения цвета
zen-boost-text-case-toggle =
- .tooltiptext = Toggle Text Case
+ .tooltiptext = Изменить регистр текста
zen-boost-css-picker =
- .tooltiptext = Pick Selector
+ .tooltiptext = Выбрать селектор
zen-boost-css-inspector =
- .tooltiptext = Open Inspector
-zen-boost-color-contrast = Contrast
-zen-boost-color-brightness = Brightness
-zen-boost-color-original-saturation = Original Saturation
-zen-add-zap-helper = Click elements on the page to Zap them
-zen-remove-zap-helper = ← Click to Unzap
-zen-select-this = Insert selector for this
-zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
-zen-zap-this = Zap this
-zen-zap-related = Zap all related elements
-zen-zap-cancel = Cancel
-zen-zap-done = Done
+ .tooltiptext = Открыть инспектор
+zen-boost-color-contrast = Контраст
+zen-boost-color-brightness = Яркость
+zen-boost-color-original-saturation = Исходная насыщенность
+zen-add-zap-helper = Нажимайте по элементам на странице чтобы стереть их
+zen-remove-zap-helper = ← Нажмите, чтобы вернуть
+zen-select-this = Вставить селектор для этого
+zen-select-related = Вставить селектор для связанного
+zen-select-cancel = Отменить
+zen-zap-this = Стереть это
+zen-zap-related = Стереть всё связанное
+zen-zap-cancel = Отменить
+zen-zap-done = Готово
zen-unzap-tooltip =
{ $elementCount ->
- [0] No elements zapped
- [1] { $elementCount } element zapped
- *[other] { $elementCount } elements zapped
+ [0] Нет стёртых элементов
+ [1] Стёрт { $elementCount } элемент
+ [few] Стёрто { $elementCount } элемента
+ *[other] Стёрто { $elementCount } элементов
}
zen-boost-save =
- .label = Export Boost
+ .label = Экспортировать стиль
zen-boost-load =
- .label = Import Boost
-zen-panel-ui-boosts-exported-message = Boost exported!
-zen-site-data-boosts = Boosts
+ .label = Импортировать стиль
+zen-panel-ui-boosts-exported-message = Стиль экспортирован!
+zen-site-data-boosts = Стили
zen-site-data-create-boost =
- .tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+ .tooltiptext = Создать новый стиль
+zen-boost-rename-boost-prompt = Переименовать стиль?
diff --git a/locales/ru/browser/browser/zen-command-palette.ftl b/locales/ru/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..d20810455
--- /dev/null
+++ b/locales/ru/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Переключить компактный режим
+zen-action-open-theme-picker = Открыть выбор темы
+zen-action-new-split-view = Новая разделённая вкладка
+zen-action-new-folder = Новая папка
+zen-action-copy-current-url = Скопировать текущую ссылку
+zen-action-settings = Настройки
+zen-action-open-private-window = Открыть новое приватное окно
+zen-action-open-new-window = Открыть новое окно
+zen-action-new-blank-window = Новое пустое окно
+zen-action-pin-tab = Закрепить вкладку
+zen-action-unpin-tab = Открепить вкладку
+zen-action-open-space-routing = Открыть маршрутизацию пространств
+zen-action-new-boost = Новый стиль
+zen-action-next-space = Следующее пространство
+zen-action-previous-space = Предыдущее пространство
+zen-action-close-tab = Закрыть вкладку
+zen-action-reload-tab = Перезагрузить вкладку
+zen-action-reload-tab-without-cache = Перезагрузить вкладку без кэша
+zen-action-next-tab = Следующая вкладка
+zen-action-previous-tab = Предыдущая вкладка
+zen-action-capture-screenshot = Сделать скриншот
+zen-action-toggle-tabs-on-right = Переключить вкладки справа
+zen-action-add-to-essentials = Добавить в важное
+zen-action-remove-from-essentials = Удалить из важного
+zen-action-find-in-page = Найти на странице
+zen-action-manage-extensions = Управление расширениями
+zen-action-switch-to-automatic-appearance = Переключиться на автоматический вид
+zen-action-switch-to-light-mode = Переключиться на светлую тему
+zen-action-switch-to-dark-mode = Переключиться на темную тему
+zen-action-print = Печать
+zen-action-focus-on = Сфокусироваться на
+zen-action-extension = Расширения
diff --git a/locales/ru/browser/browser/zen-general.ftl b/locales/ru/browser/browser/zen-general.ftl
index d5d80ae37..2859b48d7 100644
--- a/locales/ru/browser/browser/zen-general.ftl
+++ b/locales/ru/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num }/{ $max } мест занято
tab-context-zen-remove-essential =
.label = Удалить из важного
.accesskey = К
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Заменить адрес важной вкладки на текущий
- *[false] Заменить адрес закреплённой вкладки на текущий
+ [true] Изменить URL-адрес из важного
+ *[false] Изменить закрепленный URL-адрес
}
+ .accesskey = З
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Заменить текущим URL-адресом
.accesskey = С
+tab-context-zen-edit-pinned-url =
+ .label = Редактировать…
+ .accesskey = У
tab-context-zen-edit-title =
.label = Переименовать...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Подтвердить
zen-pinned-tab-replaced = Адрес закреплённой вкладки заменён на текущий адрес!
+zen-pinned-tab-url-edited = Ссылка на закрепленную вкладку обновлена!
+zen-pinned-tab-url-invalid = Это не похоже на допустимый URL.
+zen-pinned-tab-edit-url-title = Редактировать прикрепленный URL
+zen-pinned-tab-edit-url-label = Введите URL на который должна вести эта вкладка:
zen-tabs-renamed = Вкладка успешно переименована!
zen-background-tab-opened-toast = Открыта новая фоновая вкладка!
zen-workspace-renamed-toast = Пространство успешно переименовано!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Эмодзи
zen-icons-picker-svg =
.label = Иконки
+zen-emojis-picker-search =
+ .placeholder = Поиск эмодзи
urlbar-search-mode-zen_actions = Действия
zen-site-data-settings = Настройки
zen-generic-manage = Изменить
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Обновление завершен
zen-sidebar-notification-updated-label = Что нового в { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Примечания к выпуску
+zen-sidebar-notification-donate-label = Поддержать { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Поддержать проект
zen-sidebar-notification-restart-safe-mode-label = Что-то пошло не так?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Перезапустить в безопасном режиме
diff --git a/locales/ru/browser/browser/zen-space-routing.ftl b/locales/ru/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..7cea799a2
--- /dev/null
+++ b/locales/ru/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Настройки маршрутизации
+zen-space-routing-rulepanel-placeholder = Маршруты позволяют настроить где каждый конкретный сайт будет открываться. Например, вы можете настроить чтобы ссылки на YouTube всегда открывались в пространстве "Личное".
+zen-space-routing-dialog-title = Маршрутизация пространств
+zen-space-routing-external-default = Стандартный маршрут для внешних ссылок
+zen-space-routing-new-route = Новый маршрут
+zen-space-routing-open-in-space = Открывать в пространстве
+zen-space-routing-most-recent-space = Последнее активное
+zen-space-routing-close-button =
+ .aria-label = Закрыть
+ .tooltiptext = Закрыть
+zen-space-routing-contains =
+ .label = Содержит
+zen-space-routing-equal-to =
+ .label = Совпадает с
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Открывать в
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Новая вкладка открыта в { $targetWorkspace}
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Добавить маршрутизацию для домена
+ *[other] Добавить маршрутизацию для доменов
+ }
diff --git a/locales/ru/browser/browser/zen-split-view.ftl b/locales/ru/browser/browser/zen-split-view.ftl
index b89b20b46..70be52875 100644
--- a/locales/ru/browser/browser/zen-split-view.ftl
+++ b/locales/ru/browser/browser/zen-split-view.ftl
@@ -5,9 +5,10 @@
tab-zen-split-tabs =
.label =
{ $tabCount ->
- [-1] Split out tab
- [1] Add split view...
- *[other] Join { $tabCount } Tabs
+ [-1] Убрать из разделения
+ [1] Добавить разделённую вкладку
+ [few] Объединить { $tabCount } вкладки
+ *[other] Объединить { $tabCount } вкладок
}
.accesskey = Ы
zen-split-link =
diff --git a/locales/ru/browser/browser/zen-workspaces.ftl b/locales/ru/browser/browser/zen-workspaces.ftl
index 6ec6134bf..ea5b5819e 100644
--- a/locales/ru/browser/browser/zen-workspaces.ftl
+++ b/locales/ru/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Профиль
.tooltiptext = Профили используются для разделения файлов куки и данных сайта между пространствами.
zen-workspace-creation-header = Создать пространство
zen-workspace-creation-label = Пространства используются для организации ваших вкладок и сеансов.
+zen-workspace-default-profile = По умолчанию
zen-workspaces-delete-workspace-title = Удалить пространство?
zen-workspaces-delete-workspace-body = Вы уверены, что хотите удалить { $name }? Это действие необратимо.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/sk/browser/browser/preferences/zen-preferences.ftl b/locales/sk/browser/browser/preferences/zen-preferences.ftl
index ba3976eb2..17d8a7de1 100644
--- a/locales/sk/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/sk/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = V kompaktnom režime skryť aj horný panel nástrojov
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Pri prepínaní alebo otváraní nových kariet v kompaktnom režime nakrátko zobraziť panel nástrojov
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Správa kariet
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Zobraziť zdroj stránky
zen-find-shortcut = Hľadať na stránke
zen-search-find-again-shortcut = Hľadať znova
zen-search-find-again-shortcut-prev = Hľadať predchádzajúce
-zen-search-find-again-shortcut-2 = Hľadať znova (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Pridať stránku do záložiek
zen-bookmark-show-library-shortcut = Zobraziť knižnicu záložiek
zen-key-stop = Zastaviť načítanie
diff --git a/locales/sk/browser/browser/zen-boosts.ftl b/locales/sk/browser/browser/zen-boosts.ftl
index eb42026a7..919d84b9c 100644
--- a/locales/sk/browser/browser/zen-boosts.ftl
+++ b/locales/sk/browser/browser/zen-boosts.ftl
@@ -3,18 +3,18 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Rename Boost
+ .label = Premenovať Boost
zen-boost-edit-shuffle =
.label = Shuffle Vibes
zen-boost-edit-reset =
.label = Reset All Edits
zen-boost-edit-delete =
- .label = Delete Boost
-zen-boost-size = Size
+ .label = Odstrániť Boost
+zen-boost-size = Velkosť
zen-boost-case = Case
zen-boost-zap = Zap
-zen-boost-code = Code
-zen-boost-back = Back
+zen-boost-code = Kód
+zen-boost-back = Späť
zen-boost-shuffle =
.tooltiptext = Shuffle Boost Settings
zen-boost-invert =
@@ -36,7 +36,7 @@ zen-add-zap-helper = Click elements on the page to Zap them
zen-remove-zap-helper = ← Click to Unzap
zen-select-this = Insert selector for this
zen-select-related = Insert selector for related
-zen-select-cancel = Cancel
+zen-select-cancel = Zrušiť
zen-zap-this = Zap this
zen-zap-related = Zap all related elements
zen-zap-cancel = Cancel
@@ -55,4 +55,4 @@ zen-panel-ui-boosts-exported-message = Boost exported!
zen-site-data-boosts = Boosts
zen-site-data-create-boost =
.tooltiptext = Create new boost
-zen-boost-rename-boost-prompt = Rename Boost?
+zen-boost-rename-boost-prompt = Premenovať Boost?
diff --git a/locales/sk/browser/browser/zen-command-palette.ftl b/locales/sk/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/sk/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/sk/browser/browser/zen-general.ftl b/locales/sk/browser/browser/zen-general.ftl
index 2768b6852..a3ec4bd7a 100644
--- a/locales/sk/browser/browser/zen-general.ftl
+++ b/locales/sk/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = Využité pozície: { $num } / { $max }
tab-context-zen-remove-essential =
.label = Odstrániť z hlavných
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Zmeniť Označenie...
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Potvrdiť
zen-pinned-tab-replaced = URL pripnutej karty bola nahradená aktuálnou URL!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Karta bola úspešne premenovaná!
zen-background-tab-opened-toast = Nová karta otvorená na pozadí!
zen-workspace-renamed-toast = Pracovný priestor bol úspešne premenovaný!
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = Emoji
zen-icons-picker-svg =
.label = Ikony
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Akcie
zen-site-data-settings = Nastavenia
zen-generic-manage = Spravovať
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Aktualizácia Dokončená!
zen-sidebar-notification-updated-label = Čo je nové v { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Zobraziť Poznámky k Vydaniu
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Niečo sa pokazilo?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reštartovať v Núdzovom Režime
diff --git a/locales/sk/browser/browser/zen-space-routing.ftl b/locales/sk/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/sk/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/sk/browser/browser/zen-workspaces.ftl b/locales/sk/browser/browser/zen-workspaces.ftl
index 5b93a0502..af3539cfb 100644
--- a/locales/sk/browser/browser/zen-workspaces.ftl
+++ b/locales/sk/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profily sa používajú na oddelenie súborov cookie a údajov stránok medzi priestormi.
zen-workspace-creation-header = Vytvoriť priestor
zen-workspace-creation-label = Priestory sa používajú na organizáciu vašich kariet a relácií.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Odstrániť priestor?
zen-workspaces-delete-workspace-body = Naozaj chcete odstrániť priestor { $name }? Túto akciu nie je možné vrátiť späť.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/sv-SE/browser/browser/preferences/zen-preferences.ftl b/locales/sv-SE/browser/browser/preferences/zen-preferences.ftl
index fca5ef3b3..bd3569ba1 100644
--- a/locales/sv-SE/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/sv-SE/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Dölj det övre verktygsfältet samt i kompakt läge
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Gör kort popup i verktygsfältet när du växlar eller öppnar nya flikar i kompakt läge
+zen-look-and-feel-window-drag-header = Fönsterdragning
+zen-look-and-feel-window-drag-description = Flytta fönstret genom att dra tomt utrymme högst upp på webbplatser, precis som titelfältet.
+zen-window-drag-enabled =
+ .label = Tillåt att dra i fönstret från webbsidor
pane-zen-tabs-title = Flikhantering
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Visa sidinformation
zen-find-shortcut = Hitta på sidan
zen-search-find-again-shortcut = Hitta igen
zen-search-find-again-shortcut-prev = Hitta föregående
-zen-search-find-again-shortcut-2 = Hitta igen (Alt)
+zen-search-find-again-shortcut-alt = Hitta igen (Alt)
+zen-search-find-again-shortcut-prev-alt = Hitta föregående (Alt)
zen-bookmark-this-page-shortcut = Bokmärk denna sida
zen-bookmark-show-library-shortcut = Visa bokmärkesbibliotek
zen-key-stop = Sluta ladda
diff --git a/locales/sv-SE/browser/browser/zen-command-palette.ftl b/locales/sv-SE/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..188732cf2
--- /dev/null
+++ b/locales/sv-SE/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Växla kompakt läge
+zen-action-open-theme-picker = Öppna temaväljare
+zen-action-new-split-view = Ny delad vy
+zen-action-new-folder = Ny mapp
+zen-action-copy-current-url = Kopiera nuvarande URL
+zen-action-settings = Inställningar
+zen-action-open-private-window = Öppna privat fönster
+zen-action-open-new-window = Öppna nytt fönster
+zen-action-new-blank-window = Nytt blankt fönster
+zen-action-pin-tab = Fäst flik
+zen-action-unpin-tab = Avfäst flik
+zen-action-open-space-routing = Rutter med öppet utrymme
+zen-action-new-boost = Ny boost
+zen-action-next-space = Nästa arbetsyta
+zen-action-previous-space = Föregående arbetsyta
+zen-action-close-tab = Stäng flik
+zen-action-reload-tab = Ladda om flik
+zen-action-reload-tab-without-cache = Ladda om flik utan cache
+zen-action-next-tab = Nästa flik
+zen-action-previous-tab = Föregående flik
+zen-action-capture-screenshot = Fånga skärmdump
+zen-action-toggle-tabs-on-right = Växla flikar till höger
+zen-action-add-to-essentials = Lägg till Essentials
+zen-action-remove-from-essentials = Ta bort från Essentials
+zen-action-find-in-page = Hitta på sida
+zen-action-manage-extensions = Hantera tillägg
+zen-action-switch-to-automatic-appearance = Växla till automatiskt utseende
+zen-action-switch-to-light-mode = Växla till ljust läge
+zen-action-switch-to-dark-mode = Växla till mörkt läge
+zen-action-print = Skriv ut
+zen-action-focus-on = Fokus på
+zen-action-extension = Tillägg
diff --git a/locales/sv-SE/browser/browser/zen-general.ftl b/locales/sv-SE/browser/browser/zen-general.ftl
index db279ce9e..a16329b25 100644
--- a/locales/sv-SE/browser/browser/zen-general.ftl
+++ b/locales/sv-SE/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } platser fyllda
tab-context-zen-remove-essential =
.label = Ta bort från Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Ersätt Essential webbadress med nuvarande
- *[false] Ersätt fäst webbadress med nuvarande
+ [true] Redigera Essential URL
+ *[false] Redigera fäst URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Ersätt med nuvarande URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Redigera…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Ändra etikett...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Bekräfta
zen-pinned-tab-replaced = Den fästa flikens URL har ersatts med den aktuella URL!
+zen-pinned-tab-url-edited = Fäst flik URL har uppdaterats!
+zen-pinned-tab-url-invalid = Det ser inte ut som en giltig URL.
+zen-pinned-tab-edit-url-title = Redigera fäst URL
+zen-pinned-tab-edit-url-label = Ange den URL som den fästa fliken ska peka till:
zen-tabs-renamed = Fliken har fått nytt namn!
zen-background-tab-opened-toast = Ny bakgrundsflik öppnad!
zen-workspace-renamed-toast = Arbetsytan har fått ett nytt namn!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Ikoner
+zen-emojis-picker-search =
+ .placeholder = Sök emojis
urlbar-search-mode-zen_actions = Åtgärder
zen-site-data-settings = Inställningar
zen-generic-manage = Hantera
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Uppdatering slutförd!
zen-sidebar-notification-updated-label = Vad är nytt i { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Visa versionsfakta
+zen-sidebar-notification-donate-label = Stöd { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donera till projektet
zen-sidebar-notification-restart-safe-mode-label = Har något gått sönder?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Starta om i felsäkert läge
diff --git a/locales/sv-SE/browser/browser/zen-space-routing.ftl b/locales/sv-SE/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..02b6dfd95
--- /dev/null
+++ b/locales/sv-SE/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Inställningar för ruttning av utrymme
+zen-space-routing-rulepanel-placeholder = Med rutter kan du välja var specifika webbplatser öppnas i Zen. Du kan till exempel dirigera YouTube-länkar så att de alltid öppnas i ditt personliga utrymme.
+zen-space-routing-dialog-title = Inställningar för ruttning av utrymme
+zen-space-routing-external-default = Standardrutt för externa länkar
+zen-space-routing-new-route = Ny rutt
+zen-space-routing-open-in-space = Öppna i utrymme
+zen-space-routing-most-recent-space = Mest senaste utrymme
+zen-space-routing-close-button =
+ .aria-label = Stäng
+ .tooltiptext = Stäng
+zen-space-routing-contains =
+ .label = Innehåller
+zen-space-routing-equal-to =
+ .label = Är lika med
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Öppna i
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = Ny flik öppnad i { $targetWorkspace}
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Lägg till rutt för domän
+ *[other] Lägg till rutter för domäner
+ }
diff --git a/locales/sv-SE/browser/browser/zen-workspaces.ftl b/locales/sv-SE/browser/browser/zen-workspaces.ftl
index 6ad05c202..62a62cca6 100644
--- a/locales/sv-SE/browser/browser/zen-workspaces.ftl
+++ b/locales/sv-SE/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profiler används för att separera kakor och webbplatsdata mellan arbetsytor.
zen-workspace-creation-header = Skapa en arbetsyta
zen-workspace-creation-label = Arbetsytor används för att organisera dina flikar och sessioner.
+zen-workspace-default-profile = Standard
zen-workspaces-delete-workspace-title = Ta bort arbetsyta?
zen-workspaces-delete-workspace-body = Är du säker på att du vill radera { $name }? den här åtgärden kan inte ångras.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/th/browser/browser/preferences/zen-preferences.ftl b/locales/th/browser/browser/preferences/zen-preferences.ftl
index 4a8417a09..682177f3d 100644
--- a/locales/th/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/th/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = ซ่อนแถบเครื่องมือด้านบนด้วยในโหมดกะทัดรัด
zen-look-and-feel-compact-toolbar-flash-popup =
.label = แสดงแถบเครื่องมือชั่วขณะเมื่อสลับแท็บหรือเปิดแท็บใหม่ในโหมดกะทัดรัด
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = การจัดการแท็บ
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = View Page Info
zen-find-shortcut = ค้นหาในหน้านี้
zen-search-find-again-shortcut = ค้นหาอีกครั้ง
zen-search-find-again-shortcut-prev = ค้นหาก่อนหน้านี้
-zen-search-find-again-shortcut-2 = ค้นหาอีกครั้ง (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Bookmark This Page
zen-bookmark-show-library-shortcut = Show Bookmarks Library
zen-key-stop = หยุดการโหลด
diff --git a/locales/th/browser/browser/zen-command-palette.ftl b/locales/th/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/th/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/th/browser/browser/zen-general.ftl b/locales/th/browser/browser/zen-general.ftl
index c8f27e979..8ad5243d8 100644
--- a/locales/th/browser/browser/zen-general.ftl
+++ b/locales/th/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Replace Essential URL with Current
- *[false] Replace Pinned URL with Current
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Change Label...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = ยืนยัน
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = อิโมจิ
zen-icons-picker-svg =
.label = ไอคอน
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = การตั้งค่า
zen-generic-manage = จัดการ
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = อัปเดตเสร็จส
zen-sidebar-notification-updated-label = มีอะไรใหม่ใน { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode
diff --git a/locales/th/browser/browser/zen-space-routing.ftl b/locales/th/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/th/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/th/browser/browser/zen-workspaces.ftl b/locales/th/browser/browser/zen-workspaces.ftl
index ae5110fae..d5019ef48 100644
--- a/locales/th/browser/browser/zen-workspaces.ftl
+++ b/locales/th/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/tr/browser/browser/preferences/zen-preferences.ftl b/locales/tr/browser/browser/preferences/zen-preferences.ftl
index 44f39df3c..9579823cd 100644
--- a/locales/tr/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/tr/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Kompakt modda üst araç çubuğunu gizle
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Kompakt modda yeni sekmeler arasında geçiş yaparken veya yeni sekmeler açarken araç çubuğunun açılır penceresini aktif edin
+zen-look-and-feel-window-drag-header = Pencere sürükleme
+zen-look-and-feel-window-drag-description = Web sitelerinin üst kısmındaki boş alanı tıpkı başlık çubuğu gibi sürükleyerek pencereyi taşıyın.
+zen-window-drag-enabled =
+ .label = Pencerenin web sayfalarından sürüklenmesine izin ver
pane-zen-tabs-title = Sekme Yönetimi
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Sayfa detaylarını görüntüle
zen-find-shortcut = Sayfada bul
zen-search-find-again-shortcut = Tekrar ara
zen-search-find-again-shortcut-prev = Öncekini ara
-zen-search-find-again-shortcut-2 = Tekrar ara (Alt)
+zen-search-find-again-shortcut-alt = Tekrar bul (Alt)
+zen-search-find-again-shortcut-prev-alt = Öncekini bul (Alt)
zen-bookmark-this-page-shortcut = Sayfayı yer imlerine ekle
zen-bookmark-show-library-shortcut = Yer imleri kütüphanesini göster
zen-key-stop = Yüklemeyi durdur
diff --git a/locales/tr/browser/browser/zen-boosts.ftl b/locales/tr/browser/browser/zen-boosts.ftl
index 5e5e94f13..e1437331e 100644
--- a/locales/tr/browser/browser/zen-boosts.ftl
+++ b/locales/tr/browser/browser/zen-boosts.ftl
@@ -3,13 +3,13 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-boost-edit-rename =
- .label = Boost’u yeniden adlandır
+ .label = Boostu yeniden adlandır
zen-boost-edit-shuffle =
.label = Vibe'ları karıştır
zen-boost-edit-reset =
.label = Tüm düzenlemeleri sıfırla
zen-boost-edit-delete =
- .label = Boost’u sil
+ .label = Boostu sil
zen-boost-size = Boyut
zen-boost-case = Büyük/küçük harf
zen-boost-zap = Zap
@@ -48,11 +48,11 @@ zen-unzap-tooltip =
*[other] { $elementCount } öge Zap’lenmiş
}
zen-boost-save =
- .label = Boost’u dışa aktar
+ .label = Boostu dışa aktar
zen-boost-load =
- .label = Boost’u içe aktar
+ .label = Boostu içe aktar
zen-panel-ui-boosts-exported-message = Boost dışa aktarıldı!
-zen-site-data-boosts = Boost'lar
+zen-site-data-boosts = Boostlar
zen-site-data-create-boost =
- .tooltiptext = Yeni Boost oluştur
+ .tooltiptext = Yeni boost oluştur
zen-boost-rename-boost-prompt = Boost yeniden adlandırılsın mı?
diff --git a/locales/tr/browser/browser/zen-command-palette.ftl b/locales/tr/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..e7eb78b19
--- /dev/null
+++ b/locales/tr/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Kompakt modu aç/kapat
+zen-action-open-theme-picker = Tema seçiciyi aç
+zen-action-new-split-view = Yeni bölünmüş görünüm
+zen-action-new-folder = Yeni klasör
+zen-action-copy-current-url = Geçerli URL'yi kopyala
+zen-action-settings = Ayarlar
+zen-action-open-private-window = Gizli pencere aç
+zen-action-open-new-window = Yeni pencere aç
+zen-action-new-blank-window = Yeni boş pencere
+zen-action-pin-tab = Sekmeyi sabitle
+zen-action-unpin-tab = Sabitlemeyi kaldır
+zen-action-open-space-routing = Alan yönlendirmesini aç
+zen-action-new-boost = Yeni boost
+zen-action-next-space = Sonraki alan
+zen-action-previous-space = Önceli alan
+zen-action-close-tab = Sekmeyi kapat
+zen-action-reload-tab = Sekmeyi yenile
+zen-action-reload-tab-without-cache = Sekmeyi önbelleksiz yenile
+zen-action-next-tab = Sonraki sekme
+zen-action-previous-tab = Önceki sekme
+zen-action-capture-screenshot = Ekran görüntüsü al
+zen-action-toggle-tabs-on-right = Sekmeler sağda olsun
+zen-action-add-to-essentials = Temel sekmelere ekle
+zen-action-remove-from-essentials = Temel sekmelerden kaldır
+zen-action-find-in-page = Sayfada bul
+zen-action-manage-extensions = Uzantıları yönet
+zen-action-switch-to-automatic-appearance = Otomatik görünüme geç
+zen-action-switch-to-light-mode = Açık moda geç
+zen-action-switch-to-dark-mode = Koyu moda geç
+zen-action-print = Yazdır
+zen-action-focus-on = Odaklan
+zen-action-extension = Uzantı
diff --git a/locales/tr/browser/browser/zen-folders.ftl b/locales/tr/browser/browser/zen-folders.ftl
index a91c65ccf..650749081 100644
--- a/locales/tr/browser/browser/zen-folders.ftl
+++ b/locales/tr/browser/browser/zen-folders.ftl
@@ -5,17 +5,17 @@
zen-folders-search-placeholder =
.placeholder = { $folder-name } Ara...
zen-folders-panel-rename-folder =
- .label = Klasörü yeniden adlandır
+ .label = Klasörü yeniden adlandır…
zen-folders-panel-unpack-folder =
.label = Klasörü çıkar
zen-folders-new-subfolder =
- .label = Yeni alt klasör
+ .label = Yeni alt klasör…
zen-folders-panel-delete-folder =
.label = Klasörü sil
zen-folders-panel-convert-folder-to-space =
.label = Klasörü alana dönüştür
zen-folders-panel-change-folder-space =
- .label = Alanı değiştir...
+ .label = Alanı değiştir
zen-folders-unload-all-tooltip =
.tooltiptext = Klasörde aktif olanları boşalt
zen-folders-unload-folder =
diff --git a/locales/tr/browser/browser/zen-general.ftl b/locales/tr/browser/browser/zen-general.ftl
index 111178b6b..dbd486736 100644
--- a/locales/tr/browser/browser/zen-general.ftl
+++ b/locales/tr/browser/browser/zen-general.ftl
@@ -18,17 +18,23 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Temel sekmelerden kaldır
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Temel sekmenin URL’sini geçerli olanla değiştir
- *[false] Sabitlenmiş sekme URL’sini geçerli olanla değiştir
+ [true] Temel sekme adresini düzenle
+ *[false] Sabitlenmiş sekme adresini düzenle
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Mevcut adresle değiştir
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Düzenle…
+ .accesskey = E
tab-context-zen-edit-title =
- .label = Etiketi Değiştir...
+ .label = Etiketi değiştir…
tab-context-zen-edit-icon =
- .label = Simgeyi Değiştir...
+ .label = Simgeyi değiştir…
zen-themes-corrupted = { -brand-short-name } adlı modun dosyaları hatalı. Varsayılan temaya sıfırlandılar.
zen-shortcuts-corrupted = { -brand-short-name } kısayol dosyanız bozuldu. Varsayılan kısayollara sıfırlandı.
# note: Do not translate the " " tags in the following string
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Onayla
zen-pinned-tab-replaced = Sabitlenmiş sekmenin URL’si, mevcut URL ile değiştirildi!
+zen-pinned-tab-url-edited = Sabitlenmiş sekme adresi güncellendi!
+zen-pinned-tab-url-invalid = Bu geçerli bir adres gibi görünmüyor.
+zen-pinned-tab-edit-url-title = Sabitlenmiş sekme adresini düzenle
+zen-pinned-tab-edit-url-label = Bu sabitlenmiş sekmenin yönlendirileceği adresi girin:
zen-tabs-renamed = Sekme başarıyla yeniden adlandırıldı!
zen-background-tab-opened-toast = Yeni arka plan sekmesi açıldı!
zen-workspace-renamed-toast = Çalışma alanı başarıyla yeniden adlandırıldı!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Emojiler
zen-icons-picker-svg =
.label = Simgeler
+zen-emojis-picker-search =
+ .placeholder = Emojilerde ara
urlbar-search-mode-zen_actions = Eylemler
zen-site-data-settings = Ayarlar
zen-generic-manage = Yönet
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Güncelleme tamamlandı!
zen-sidebar-notification-updated-label = { -brand-short-name }'de neler yeni
zen-sidebar-notification-updated-tooltip =
.title = Sürüm Notlarını Görüntüle
+zen-sidebar-notification-donate-label = { -brand-short-name } uygulamasını destekle
+zen-sidebar-notification-donate-tooltip =
+ .title = Projeye bağış yap
zen-sidebar-notification-restart-safe-mode-label = Bir sorun mu oluştu?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Güvenli Modda Yeniden Başlat
diff --git a/locales/tr/browser/browser/zen-space-routing.ftl b/locales/tr/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..090dae2b5
--- /dev/null
+++ b/locales/tr/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Alan yönlendirme ayarları
+zen-space-routing-rulepanel-placeholder = Yönlendirmeler, belirli sitelerin Zen içinde nerede açılacağını seçmenizi sağlar. Örneğin, YouTube bağlantılarının her zaman Kişisel alanınızda açılmasını sağlayabilirsiniz.
+zen-space-routing-dialog-title = Alan Yönlendirme Ayarları
+zen-space-routing-external-default = Harici bağlantılar için varsayılan yönlendirme
+zen-space-routing-new-route = Yeni yönlendirme
+zen-space-routing-open-in-space = Alanda aç
+zen-space-routing-most-recent-space = En son kullanılan alan
+zen-space-routing-close-button =
+ .aria-label = Kapat
+ .tooltiptext = Kapat
+zen-space-routing-contains =
+ .label = İçerir
+zen-space-routing-equal-to =
+ .label = Şuna eşittir
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Şurada aç
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = { $targetWorkspace } alanında yeni sekme açıldı
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Alan adı için yönlendirme ekle
+ *[other] Alan adları için yönlendirme ekle
+ }
diff --git a/locales/tr/browser/browser/zen-vertical-tabs.ftl b/locales/tr/browser/browser/zen-vertical-tabs.ftl
index 47f635615..c4c3beced 100644
--- a/locales/tr/browser/browser/zen-vertical-tabs.ftl
+++ b/locales/tr/browser/browser/zen-vertical-tabs.ftl
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
.label = İkisini de gizle
.accesskey = H
zen-toolbar-context-move-to-folder =
- .label = Klasöre taşı...
+ .label = Klasöre taşı
.accesskey = M
zen-toolbar-context-new-folder =
.label = Yeni klasör
@@ -26,7 +26,7 @@ zen-toolbar-context-new-folder =
sidebar-zen-expand =
.label = Kenar çubuğunu genişlet
sidebar-zen-create-new =
- .label = Yeni oluştur...
+ .label = Yeni oluştur
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
diff --git a/locales/tr/browser/browser/zen-workspaces.ftl b/locales/tr/browser/browser/zen-workspaces.ftl
index 39a66c11f..ba0f83ef7 100644
--- a/locales/tr/browser/browser/zen-workspaces.ftl
+++ b/locales/tr/browser/browser/zen-workspaces.ftl
@@ -17,9 +17,9 @@ zen-workspaces-panel-context-delete =
.label = Çalışma alanını sil
.accesskey = D
zen-workspaces-panel-change-name =
- .label = Adı değiştir
+ .label = Adı değiştir…
zen-workspaces-panel-change-icon =
- .label = Simgeyi değiştir
+ .label = Simgeyi değiştir…
zen-workspaces-panel-context-default-profile =
.label = Profil ayarla
zen-workspaces-panel-unload =
@@ -29,7 +29,7 @@ zen-workspaces-panel-unload-others =
zen-workspaces-how-to-reorder-title = Alanlar nasıl yeniden sıralanır
zen-workspaces-how-to-reorder-desc = Alanları yeniden sıralamak için kenar çubuğunun altındaki alan simgelerini sürükleyin
zen-workspaces-change-theme =
- .label = Temayı düzenle
+ .label = Temayı düzenle…
zen-workspaces-panel-context-open =
.label = Çalışma alanı aç
.accesskey = O
@@ -53,7 +53,7 @@ zen-panel-ui-gradient-click-to-add = Renk eklemek için tıkla
zen-workspace-creation-name =
.placeholder = Alan adı
zen-move-tab-to-workspace-button =
- .label = Şuraya taşı...
+ .label = Şuraya taşı
.tooltiptext = Bu penceredeki tüm sekmeleri bir Alana taşı
zen-workspaces-panel-context-reorder =
.label = Alanları yeniden sırala
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Profil
.tooltiptext = Profiller, alanlar arasındaki çerezleri ve site verilerini ayırmak için kullanılır.
zen-workspace-creation-header = Bir Alan Oluştur
zen-workspace-creation-label = Alanlar, sekme ve oturumlarınızı düzenlemek için kullanılır.
+zen-workspace-default-profile = Varsayılan
zen-workspaces-delete-workspace-title = Alan Silinsin mi?
zen-workspaces-delete-workspace-body = { $name } ögesini silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/uk/browser/browser/preferences/zen-preferences.ftl b/locales/uk/browser/browser/preferences/zen-preferences.ftl
index c2860504c..bab009e51 100644
--- a/locales/uk/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/uk/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Приховати верхню панель і в режимі компактного меню
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Коротко показувати, щоби панель інструментів спливала при перемиканні або відкритті нових вкладок у компактному режимі
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Керування вкладками
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Інформація про сторінку
zen-find-shortcut = Знайти на сторінці
zen-search-find-again-shortcut = Знайти ще раз
zen-search-find-again-shortcut-prev = Знайти попереднє
-zen-search-find-again-shortcut-2 = Знайти знову (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Додати цю сторінку в закладки
zen-bookmark-show-library-shortcut = Показати бібліотеку закладок
zen-key-stop = Зупинити завантаження
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = Перейти на робочу област
zen-workspace-shortcut-switch-10 = Перейти на робочу область 10
zen-workspace-shortcut-forward = Наступний робочий простір
zen-workspace-shortcut-backward = Попередній робочий простір
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = Створити новий робочий простір
zen-sidebar-shortcut-toggle = Перемкнути ширину бічної панелі
zen-pinned-tab-shortcut-reset = Скинути прикріплену вкладку до закріпленої URL-адреси
zen-split-view-shortcut-grid = Перемкнути розділену сітку
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = Увімк. / Вимк. досту
zen-close-all-unpinned-tabs-shortcut = Закрити всі відкріплені вкладки
zen-new-unsynced-window-shortcut = Нове несинхронізоване вікно
zen-duplicate-tab-shortcut = Дублювати вкладку
-zen-key-find-selection = Find Selection
+zen-key-find-selection = Знайти виділене
diff --git a/locales/uk/browser/browser/zen-boosts.ftl b/locales/uk/browser/browser/zen-boosts.ftl
index 37e88193d..1afd6576c 100644
--- a/locales/uk/browser/browser/zen-boosts.ftl
+++ b/locales/uk/browser/browser/zen-boosts.ftl
@@ -11,7 +11,7 @@ zen-boost-edit-reset =
zen-boost-edit-delete =
.label = Видалити підсилення
zen-boost-size = Розмір
-zen-boost-case = Case
+zen-boost-case = Регістр літер
zen-boost-zap = Сховати
zen-boost-code = Код
zen-boost-back = Назад
@@ -44,14 +44,14 @@ zen-zap-done = Готово
zen-unzap-tooltip =
{ $elementCount ->
[0] Жоден елемент не сховано
- [1] Сховано {$elementCount} елемент
- [few] Сховано {$elementCount} елементи
- *[other] Сховано {$elementCount} елементів
+ [1] Сховано { $elementCount } елемент
+ [few] Сховано { $elementCount } елементи
+ *[other] Сховано { $elementCount } елементів
}
zen-boost-save =
- .label = Export Boost
+ .label = Експортувати підсилення
zen-boost-load =
- .label = Import Boost
+ .label = Імпортувати підсилення
zen-panel-ui-boosts-exported-message = Підсилення експортовано!
zen-site-data-boosts = Підсилення
zen-site-data-create-boost =
diff --git a/locales/uk/browser/browser/zen-command-palette.ftl b/locales/uk/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/uk/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/uk/browser/browser/zen-general.ftl b/locales/uk/browser/browser/zen-general.ftl
index a727b433b..ae390fb10 100644
--- a/locales/uk/browser/browser/zen-general.ftl
+++ b/locales/uk/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max } комірок зап
tab-context-zen-remove-essential =
.label = Вилучити з основних елементів
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Замінити основну адресу на поточну
- *[false] Замінити закріплену адресу на поточну
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Змінити мітку...
tab-context-zen-edit-icon =
@@ -47,6 +53,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Підтвердити
zen-pinned-tab-replaced = URL-адресу закріпленої вкладки замінено на поточну URL-адресу.
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Вкладку успішно перейменовано!
zen-background-tab-opened-toast = Відкрито нову фонову вкладку!
zen-workspace-renamed-toast = Робочий простір успішно перейменовано!
@@ -65,6 +75,8 @@ zen-icons-picker-emoji =
.label = Емоджі
zen-icons-picker-svg =
.label = Значки
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Дії
zen-site-data-settings = Налаштування
zen-generic-manage = Керувати
@@ -116,6 +128,9 @@ zen-sidebar-notification-updated-heading = Оновлення завершено
zen-sidebar-notification-updated-label = Що нового в { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Переглянути примітки до випуску
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Щось зламалося?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Перезапустити в безпечному режимі
diff --git a/locales/uk/browser/browser/zen-space-routing.ftl b/locales/uk/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..52f4e4fc7
--- /dev/null
+++ b/locales/uk/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Налаштування маршрутизації в просторі
+zen-space-routing-rulepanel-placeholder = За допомогою маршрутів ви можете вибрати, де саме в Zen будуть відкриватися певні сайти. Наприклад, ви можете налаштувати, щоби посилання на YouTube завжди відкривалися у вашому особистому просторі.
+zen-space-routing-dialog-title = Налаштування маршрутизації в просторі
+zen-space-routing-external-default = Типовий маршрут для зовнішніх посилань
+zen-space-routing-new-route = Новий маршрут
+zen-space-routing-open-in-space = Відкрити в просторі
+zen-space-routing-most-recent-space = Останній простір
+zen-space-routing-close-button =
+ .aria-label = Закрити
+ .tooltiptext = Закрити
+zen-space-routing-contains =
+ .label = Містить
+zen-space-routing-equal-to =
+ .label = Це дорівнює
+zen-space-routing-regex =
+ .label = Регулярний вираз
+zen-space-routing-open-in = Відкрити в
+zen-space-routing-url = URL-адреса
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/uk/browser/browser/zen-workspaces.ftl b/locales/uk/browser/browser/zen-workspaces.ftl
index bcb959308..1591cdf5e 100644
--- a/locales/uk/browser/browser/zen-workspaces.ftl
+++ b/locales/uk/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Профіль
.tooltiptext = Профілі використовуються для розділення файлів cookie і даних сайту між просторами.
zen-workspace-creation-header = Створити простір
zen-workspace-creation-label = Простори використовуються для організації ваших вкладок та сеансів.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Видалити простір?
zen-workspaces-delete-workspace-body = Упевнені, що хочете видалити { $name }? Цю дію неможливо скасувати.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/vi/browser/browser/preferences/zen-preferences.ftl b/locales/vi/browser/browser/preferences/zen-preferences.ftl
index 1158ff2aa..986708cf6 100644
--- a/locales/vi/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/vi/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = Ẩn thanh công cụ trên cùng trong chế độ thu gọn
zen-look-and-feel-compact-toolbar-flash-popup =
.label = Thanh bên hiện lên khi chuyển thẻ hoặc mở thẻ mới trong chế độ thu gọn
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = Quản lí thẻ
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = Xem thông tin trang
zen-find-shortcut = Tìm kiếm trên trang
zen-search-find-again-shortcut = Tìm lại
zen-search-find-again-shortcut-prev = Tìm trước đó
-zen-search-find-again-shortcut-2 = Tìm lại (Alt)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = Đánh dấu trang này
zen-bookmark-show-library-shortcut = Hiển thị thư viện dấu trang
zen-key-stop = Dừng tải
diff --git a/locales/vi/browser/browser/zen-command-palette.ftl b/locales/vi/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..c8af413e2
--- /dev/null
+++ b/locales/vi/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = Toggle Compact Mode
+zen-action-open-theme-picker = Open Theme Picker
+zen-action-new-split-view = New Split View
+zen-action-new-folder = New Folder
+zen-action-copy-current-url = Copy Current URL
+zen-action-settings = Settings
+zen-action-open-private-window = Open Private Window
+zen-action-open-new-window = Open New Window
+zen-action-new-blank-window = New Blank Window
+zen-action-pin-tab = Pin Tab
+zen-action-unpin-tab = Unpin Tab
+zen-action-open-space-routing = Open Space Routing
+zen-action-new-boost = New Boost
+zen-action-next-space = Next Space
+zen-action-previous-space = Previous Space
+zen-action-close-tab = Close Tab
+zen-action-reload-tab = Reload Tab
+zen-action-reload-tab-without-cache = Reload Tab Without Cache
+zen-action-next-tab = Next Tab
+zen-action-previous-tab = Previous Tab
+zen-action-capture-screenshot = Capture Screenshot
+zen-action-toggle-tabs-on-right = Toggle Tabs on right
+zen-action-add-to-essentials = Add to Essentials
+zen-action-remove-from-essentials = Remove from Essentials
+zen-action-find-in-page = Find in Page
+zen-action-manage-extensions = Manage Extensions
+zen-action-switch-to-automatic-appearance = Switch to Automatic Appearance
+zen-action-switch-to-light-mode = Switch to Light Mode
+zen-action-switch-to-dark-mode = Switch to Dark Mode
+zen-action-print = Print
+zen-action-focus-on = Focus on
+zen-action-extension = Extension
diff --git a/locales/vi/browser/browser/zen-general.ftl b/locales/vi/browser/browser/zen-general.ftl
index 405d42a21..5e56d667c 100644
--- a/locales/vi/browser/browser/zen-general.ftl
+++ b/locales/vi/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = Gỡ khỏi thẻ chính
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] Thay thế URL của thẻ chính bằng URL hiện tại
- *[false] Thay thế URL của thẻ đã ghim bằng URL hiện tại
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = Đổi tên...
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = Xác nhận
zen-pinned-tab-replaced = URL của thẻ đã ghim đã được thay thế bằng URL hiện tại!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = Thẻ đã được đổi tên!
zen-background-tab-opened-toast = Một thẻ mới đã được mở dưới nền!
zen-workspace-renamed-toast = Không gian làm việc đã được đổi tên!
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = Biểu cảm
zen-icons-picker-svg =
.label = Biểu tượng
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = Hành động
zen-site-data-settings = Thiết lập
zen-generic-manage = Quản lý
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = Cập nhật hoàn tất!
zen-sidebar-notification-updated-label = Có gì mới trong { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Xem ghi chú phát hành
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = Có lỗi xảy ra?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Khởi động lại ở Chế độ an toàn
diff --git a/locales/vi/browser/browser/zen-space-routing.ftl b/locales/vi/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..d757144bb
--- /dev/null
+++ b/locales/vi/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = Space Routing Settings
+zen-space-routing-rulepanel-placeholder = Routes let you choose where specific sites open inside Zen. For example, you can route YouTube links to always open inside your Personal space.
+zen-space-routing-dialog-title = Space Routing Settings
+zen-space-routing-external-default = Default route for external links
+zen-space-routing-new-route = New Route
+zen-space-routing-open-in-space = Open in Space
+zen-space-routing-most-recent-space = Most recent Space
+zen-space-routing-close-button =
+ .aria-label = Close
+ .tooltiptext = Close
+zen-space-routing-contains =
+ .label = Contains
+zen-space-routing-equal-to =
+ .label = Is Equal To
+zen-space-routing-regex =
+ .label = RegEx
+zen-space-routing-open-in = Open In
+zen-space-routing-url = URL
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/vi/browser/browser/zen-workspaces.ftl b/locales/vi/browser/browser/zen-workspaces.ftl
index c355cab68..14e71b03a 100644
--- a/locales/vi/browser/browser/zen-workspaces.ftl
+++ b/locales/vi/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = Hồ sơ
.tooltiptext = Các hồ sơ sẽ không dùng chung dữ liệu giữa các không gian làm việc.
zen-workspace-creation-header = Tạo không gian
zen-workspace-creation-label = Không gian dùng để sắp xếp các thẻ và phiên làm việc của bạn.
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = Xóa không gian?
zen-workspaces-delete-workspace-body = Bạn có chắc chắn muốn xóa { $name }? Thao tác này không thể hoàn tác.
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/zh-CN/browser/browser/preferences/zen-preferences.ftl b/locales/zh-CN/browser/browser/preferences/zen-preferences.ftl
index cc5014b4f..a29beed05 100644
--- a/locales/zh-CN/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/zh-CN/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = 在简洁模式下隐藏顶部工具栏
zen-look-and-feel-compact-toolbar-flash-popup =
.label = 简洁模式下,切换或打开新标签页时短暂弹出工具栏
+zen-look-and-feel-window-drag-header = 窗口拖动
+zen-look-and-feel-window-drag-description = 像拖动标题栏一样,通过拖动网站顶部的空白区域来移动窗口。
+zen-window-drag-enabled =
+ .label = 允许从网页拖动窗口
pane-zen-tabs-title = 标签页管理
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = 查看页面信息
zen-find-shortcut = 在页面上查找
zen-search-find-again-shortcut = 查找下一个
zen-search-find-again-shortcut-prev = 查找上一个
-zen-search-find-again-shortcut-2 = 查找下一个(Alt)
+zen-search-find-again-shortcut-alt = 查找下一个(Alt)
+zen-search-find-again-shortcut-prev-alt = 查找上一个(Alt)
zen-bookmark-this-page-shortcut = 将此页面加入书签
zen-bookmark-show-library-shortcut = 显示书签库
zen-key-stop = 停止加载
@@ -281,7 +286,7 @@ zen-workspace-shortcut-switch-9 = 切换到工作区 9
zen-workspace-shortcut-switch-10 = 切换到工作区 10
zen-workspace-shortcut-forward = 下一个工作区
zen-workspace-shortcut-backward = 上一个工作区
-zen-workspace-shortcut-create = Create New Workspace
+zen-workspace-shortcut-create = 新建工作区
zen-sidebar-shortcut-toggle = 折叠/展开侧边栏
zen-pinned-tab-shortcut-reset = 重置固定标签页至其固定的 URL
zen-split-view-shortcut-grid = 切换网格分屏视图
@@ -319,4 +324,4 @@ zen-devtools-toggle-accessibility-shortcut = 切换无障碍环境
zen-close-all-unpinned-tabs-shortcut = 关闭所有未固定的标签页
zen-new-unsynced-window-shortcut = 新建空白窗口
zen-duplicate-tab-shortcut = 克隆标签页
-zen-key-find-selection = Find Selection
+zen-key-find-selection = 查找选中内容
diff --git a/locales/zh-CN/browser/browser/zen-boosts.ftl b/locales/zh-CN/browser/browser/zen-boosts.ftl
index 650ea1dc6..ef67d6da1 100644
--- a/locales/zh-CN/browser/browser/zen-boosts.ftl
+++ b/locales/zh-CN/browser/browser/zen-boosts.ftl
@@ -11,7 +11,7 @@ zen-boost-edit-reset =
zen-boost-edit-delete =
.label = 删除 Boost
zen-boost-size = 尺寸
-zen-boost-case = Case
+zen-boost-case = 大小写
zen-boost-zap = 屏蔽
zen-boost-code = 代码
zen-boost-back = 返回
@@ -48,9 +48,9 @@ zen-unzap-tooltip =
*[other] 已屏蔽 { $elementCount } 个元素
}
zen-boost-save =
- .label = Export Boost
+ .label = 导出 Boost
zen-boost-load =
- .label = Import Boost
+ .label = 导入 Boost
zen-panel-ui-boosts-exported-message = Boost 已导出!
zen-site-data-boosts = Boost
zen-site-data-create-boost =
diff --git a/locales/zh-CN/browser/browser/zen-command-palette.ftl b/locales/zh-CN/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..da6fae139
--- /dev/null
+++ b/locales/zh-CN/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = 切换简洁模式
+zen-action-open-theme-picker = 打开主题选择器
+zen-action-new-split-view = 新建分屏视图
+zen-action-new-folder = 新建文件夹
+zen-action-copy-current-url = 复制当前网址
+zen-action-settings = 设置
+zen-action-open-private-window = 打开隐私窗口
+zen-action-open-new-window = 打开新窗口
+zen-action-new-blank-window = 新建空白窗口
+zen-action-pin-tab = 固定标签页
+zen-action-unpin-tab = 取消固定标签页
+zen-action-open-space-routing = 打开工作区路由
+zen-action-new-boost = 新建 Boost
+zen-action-next-space = 下一个工作区
+zen-action-previous-space = 上一个工作区
+zen-action-close-tab = 关闭标签页
+zen-action-reload-tab = 刷新标签页
+zen-action-reload-tab-without-cache = 刷新标签页并跳过缓存
+zen-action-next-tab = 下一个标签页
+zen-action-previous-tab = 上一个标签页
+zen-action-capture-screenshot = 截图
+zen-action-toggle-tabs-on-right = 切换右侧标签页
+zen-action-add-to-essentials = 添加到常驻标签页
+zen-action-remove-from-essentials = 从常驻标签页中移除
+zen-action-find-in-page = 在页面中查找
+zen-action-manage-extensions = 管理扩展
+zen-action-switch-to-automatic-appearance = 切换到自动外观模式
+zen-action-switch-to-light-mode = 切换到浅色模式
+zen-action-switch-to-dark-mode = 切换到深色模式
+zen-action-print = 打印
+zen-action-focus-on = 切换到
+zen-action-extension = 扩展
diff --git a/locales/zh-CN/browser/browser/zen-general.ftl b/locales/zh-CN/browser/browser/zen-general.ftl
index 0f2a108fc..d25b6f3b4 100644
--- a/locales/zh-CN/browser/browser/zen-general.ftl
+++ b/locales/zh-CN/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = 已使用 { $num } / { $max }
tab-context-zen-remove-essential =
.label = 从常驻标签页中移除
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] 用当前内容替换常驻标签页URL
- *[false] 用当前内容替换标签页URL
+ [true] 编辑常驻标签页
+ *[false] 编辑固定标签页
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = 替换为当前 URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = 编辑…
+ .accesskey = E
tab-context-zen-edit-title =
.label = 更改标签…
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = 确认
zen-pinned-tab-replaced = 固定标签页的网址已更新为当前页面网址!
+zen-pinned-tab-url-edited = 固定标签页的 URL 已更新!
+zen-pinned-tab-url-invalid = URL 无效。
+zen-pinned-tab-edit-url-title = 编辑固定 URL
+zen-pinned-tab-edit-url-label = 请输入此固定标签页应指向的 URL:
zen-tabs-renamed = 标签页重命名成功!
zen-background-tab-opened-toast = 新的后台标签页已打开 !
zen-workspace-renamed-toast = 工作区重命名成功!
@@ -63,6 +73,8 @@ zen-icons-picker-emoji =
.label = 表情符号
zen-icons-picker-svg =
.label = 图标集
+zen-emojis-picker-search =
+ .placeholder = 搜索表情符号
urlbar-search-mode-zen_actions = 操作
zen-site-data-settings = 设置
zen-generic-manage = 管理
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = 更新完成!
zen-sidebar-notification-updated-label = 了解 { -brand-short-name } 的新版变化
zen-sidebar-notification-updated-tooltip =
.title = 查看更新日志
+zen-sidebar-notification-donate-label = 支持 { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = 为此项目捐赠
zen-sidebar-notification-restart-safe-mode-label = 出了什么问题吗?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = 在排障模式下重启
diff --git a/locales/zh-CN/browser/browser/zen-space-routing.ftl b/locales/zh-CN/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..519842718
--- /dev/null
+++ b/locales/zh-CN/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = 工作区路由设置
+zen-space-routing-rulepanel-placeholder = 利用路由,您可以指定在哪里打开特定的站点;比方说,您可以将 YouTube 链接设置为始终在个人工作区中打开。
+zen-space-routing-dialog-title = 工作区路由设置
+zen-space-routing-external-default = 外部链接的默认路由
+zen-space-routing-new-route = 新建路由
+zen-space-routing-open-in-space = 打开于
+zen-space-routing-most-recent-space = 最近使用的工作区
+zen-space-routing-close-button =
+ .aria-label = 关闭
+ .tooltiptext = 关闭
+zen-space-routing-contains =
+ .label = 包含
+zen-space-routing-equal-to =
+ .label = 等于
+zen-space-routing-regex =
+ .label = 正则表达式
+zen-space-routing-open-in = 打开于
+zen-space-routing-url = 网址
+zen-space-routing-tab-routed-toast = 新标签页将打开于 { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] 为域名添加路由
+ *[other] 为多个域名添加路由
+ }
diff --git a/locales/zh-CN/browser/browser/zen-workspaces.ftl b/locales/zh-CN/browser/browser/zen-workspaces.ftl
index 219ccc4c1..c397c2812 100644
--- a/locales/zh-CN/browser/browser/zen-workspaces.ftl
+++ b/locales/zh-CN/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = 身份
.tooltiptext = 身份用于在工作区之间分隔 Cookie 和站点数据。
zen-workspace-creation-header = 创建工作区
zen-workspace-creation-label = 工作区用于组织标签页和会话。
+zen-workspace-default-profile = 默认
zen-workspaces-delete-workspace-title = 删除工作区?
zen-workspaces-delete-workspace-body = 你确定要删除 { $name } 吗?这个操作无法撤销。
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/locales/zh-TW/browser/browser/preferences/zen-preferences.ftl b/locales/zh-TW/browser/browser/preferences/zen-preferences.ftl
index e47b873db..765aa9a76 100644
--- a/locales/zh-TW/browser/browser/preferences/zen-preferences.ftl
+++ b/locales/zh-TW/browser/browser/preferences/zen-preferences.ftl
@@ -38,6 +38,10 @@ zen-look-and-feel-compact-view-top-toolbar =
.label = 在緊湊模式中也隱藏頂部的工具列
zen-look-and-feel-compact-toolbar-flash-popup =
.label = 在緊湊模式下切換或開啟新分頁時短暫彈出工具列
+zen-look-and-feel-window-drag-header = Window dragging
+zen-look-and-feel-window-drag-description = Move the window by dragging empty space at the top of websites, just like the titlebar.
+zen-window-drag-enabled =
+ .label = Allow dragging the window from web pages
pane-zen-tabs-title = 分頁管理
category-zen-workspaces =
.tooltiptext = { pane-zen-tabs-title }
@@ -244,7 +248,8 @@ zen-page-info-shortcut = 頁面資訊
zen-find-shortcut = 尋找
zen-search-find-again-shortcut = 找下一個
zen-search-find-again-shortcut-prev = 找上一個
-zen-search-find-again-shortcut-2 = 再次尋找 (備用)
+zen-search-find-again-shortcut-alt = Find Again (Alt)
+zen-search-find-again-shortcut-prev-alt = Find Previous (Alt)
zen-bookmark-this-page-shortcut = 將目前頁面加入書籤
zen-bookmark-show-library-shortcut = 顯示書籤庫
zen-key-stop = 停止載入
@@ -265,7 +270,7 @@ zen-nav-reload-shortcut = 重新整理頁面
zen-nav-reload-shortcut-skip-cache = 重新整理頁面 (忽略快取)
zen-close-shortcut = 關閉視窗
zen-close-tab-shortcut = 關閉分頁
-zen-compact-mode-shortcut-show-sidebar = 切換浮動側邊欄
+zen-compact-mode-shortcut-show-sidebar = 叫出/收回浮動側邊欄
zen-compact-mode-shortcut-show-toolbar = 切換浮動工具列
zen-compact-mode-shortcut-toggle = 切換緊湊模式
zen-glance-expand = 展開 Glance
diff --git a/locales/zh-TW/browser/browser/zen-command-palette.ftl b/locales/zh-TW/browser/browser/zen-command-palette.ftl
new file mode 100644
index 000000000..374ca610f
--- /dev/null
+++ b/locales/zh-TW/browser/browser/zen-command-palette.ftl
@@ -0,0 +1,36 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-action-toggle-compact-mode = 切換緊湊模式
+zen-action-open-theme-picker = 開啟主題編輯面板
+zen-action-new-split-view = 新增分割畫面
+zen-action-new-folder = 新增分頁夾
+zen-action-copy-current-url = 複製當前網址
+zen-action-settings = 設定
+zen-action-open-private-window = 開新隱私視窗
+zen-action-open-new-window = 開新視窗
+zen-action-new-blank-window = 開新簡白視窗
+zen-action-pin-tab = 釘選分頁
+zen-action-unpin-tab = 解除釘選分頁
+zen-action-open-space-routing = 開啟網址導航設定
+zen-action-new-boost = 建立新Boost
+zen-action-next-space = 下一工作區
+zen-action-previous-space = 上一工作區
+zen-action-close-tab = 關閉分頁
+zen-action-reload-tab = 重新整理頁面
+zen-action-reload-tab-without-cache = 重新整理頁面 (忽略快取)
+zen-action-next-tab = 下一分頁
+zen-action-previous-tab = 上一分頁
+zen-action-capture-screenshot = 拍攝畫面截圖
+zen-action-toggle-tabs-on-right = 切換右側分頁欄
+zen-action-add-to-essentials = 新增至 Essentials
+zen-action-remove-from-essentials = 從 Essentials 中移除
+zen-action-find-in-page = 在頁面中搜尋
+zen-action-manage-extensions = 管理擴充套件
+zen-action-switch-to-automatic-appearance = 切換為自動匹配亮暗色
+zen-action-switch-to-light-mode = 切換至亮色模式
+zen-action-switch-to-dark-mode = 切換為暗色模式
+zen-action-print = 列印
+zen-action-focus-on = 將焦點移至
+zen-action-extension = 擴充套件
diff --git a/locales/zh-TW/browser/browser/zen-general.ftl b/locales/zh-TW/browser/browser/zen-general.ftl
index 99476e47b..19aa7eb59 100644
--- a/locales/zh-TW/browser/browser/zen-general.ftl
+++ b/locales/zh-TW/browser/browser/zen-general.ftl
@@ -18,13 +18,19 @@ tab-context-zen-add-essential-badge = { $num } / { $max }
tab-context-zen-remove-essential =
.label = 從 Essentials 中移除
.accesskey = R
-tab-context-zen-replace-pinned-url-with-current =
+tab-context-zen-edit-pinned-page =
.label =
{ $isEssential ->
- [true] 以當前網址替換Essentials
- *[false] 以當前網址替換釘選分頁
+ [true] Edit Essential URL
+ *[false] Edit Pinned URL
}
+ .accesskey = P
+tab-context-zen-replace-pinned-url-with-current =
+ .label = Replace with Current URL
.accesskey = C
+tab-context-zen-edit-pinned-url =
+ .label = Edit…
+ .accesskey = E
tab-context-zen-edit-title =
.label = 重新命名
tab-context-zen-edit-icon =
@@ -45,6 +51,10 @@ zen-general-cancel-label =
zen-general-confirm =
.label = 確認
zen-pinned-tab-replaced = 釘選分頁網址已替換為當前網址!
+zen-pinned-tab-url-edited = Pinned tab URL has been updated!
+zen-pinned-tab-url-invalid = That doesn't look like a valid URL.
+zen-pinned-tab-edit-url-title = Edit Pinned URL
+zen-pinned-tab-edit-url-label = Enter the URL this pinned tab should point to:
zen-tabs-renamed = 成功重新命名分頁!
zen-background-tab-opened-toast = 新分頁已在背景開啟!
zen-workspace-renamed-toast = 成功重新命名工作區!
@@ -58,18 +68,20 @@ zen-toggle-compact-mode-button =
zen-learn-more-text = 瞭解更多
zen-close-label = 關閉
zen-singletoolbar-urlbar-placeholder-with-name =
- .placeholder = 搜尋...
+ .placeholder = 搜尋…
zen-icons-picker-emoji =
.label = 表情符號
zen-icons-picker-svg =
.label = 圖示
+zen-emojis-picker-search =
+ .placeholder = Search emojis
urlbar-search-mode-zen_actions = 操作
zen-site-data-settings = 設定
zen-generic-manage = 管理
zen-generic-more = 更多
zen-generic-next = 下一個
zen-essentials-promo-label = 新增至 Essentials
-zen-essentials-promo-sublabel = 僅需點擊一下就能切換至您的最愛分頁
+zen-essentials-promo-sublabel = 僅需點擊一下就能切換至您的心儀分頁
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = 允許
zen-site-data-setting-block = 已封鎖
@@ -114,6 +126,9 @@ zen-sidebar-notification-updated-heading = 更新成功!
zen-sidebar-notification-updated-label = { -brand-short-name } 更新了什麼
zen-sidebar-notification-updated-tooltip =
.title = 查看版本資訊
+zen-sidebar-notification-donate-label = Support { -brand-short-name }
+zen-sidebar-notification-donate-tooltip =
+ .title = Donate to the project
zen-sidebar-notification-restart-safe-mode-label = 有東西壞掉了嗎?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = 在安全模式下重新啟動
diff --git a/locales/zh-TW/browser/browser/zen-space-routing.ftl b/locales/zh-TW/browser/browser/zen-space-routing.ftl
new file mode 100644
index 000000000..c8351738e
--- /dev/null
+++ b/locales/zh-TW/browser/browser/zen-space-routing.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+zen-space-routing-settings =
+ .label = 網址導向設定
+zen-space-routing-rulepanel-placeholder = 讓您能選擇要將特定網站開啟在 Zen 的某個工作區。舉例來說,您可以設定將YouTube連結一律開啟在Personal工作區內。
+zen-space-routing-dialog-title = 網址導向設定
+zen-space-routing-external-default = 外部傳入網址的預設導向
+zen-space-routing-new-route = 新導向
+zen-space-routing-open-in-space = 開啟在
+zen-space-routing-most-recent-space = 最近使用的工作區
+zen-space-routing-close-button =
+ .aria-label = 關閉
+ .tooltiptext = 關閉
+zen-space-routing-contains =
+ .label = 包含
+zen-space-routing-equal-to =
+ .label = 等同於
+zen-space-routing-regex =
+ .label = 正規表達式
+zen-space-routing-open-in = 開啟在
+zen-space-routing-url = 網址
+zen-space-routing-tab-routed-toast = New tab opened in { $targetWorkspace }
+tab-context-zen-add-domain-to-sr =
+ .label =
+ { $tabCount ->
+ [one] Add Route for Domain
+ *[other] Add Route for Domains
+ }
diff --git a/locales/zh-TW/browser/browser/zen-workspaces.ftl b/locales/zh-TW/browser/browser/zen-workspaces.ftl
index c0a20939b..feb561cd3 100644
--- a/locales/zh-TW/browser/browser/zen-workspaces.ftl
+++ b/locales/zh-TW/browser/browser/zen-workspaces.ftl
@@ -61,6 +61,7 @@ zen-workspace-creation-profile = 設定檔
.tooltiptext = 設定檔用於隔離不同工作區的 Cookie 和網站資料。
zen-workspace-creation-header = 建立工作區
zen-workspace-creation-label = 工作區用於組織您的分頁與工作階段。
+zen-workspace-default-profile = Default
zen-workspaces-delete-workspace-title = 刪除工作區?
zen-workspaces-delete-workspace-body = 您確定要刪除 { $name } 嗎?此操作無法復原。
# Note that the html tag MUST not be changed or removed, as it is used to better
diff --git a/package-lock.json b/package-lock.json
index 1224e4955..484c33d77 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,7 +11,7 @@
"devDependencies": {
"@babel/preset-typescript": "^7.27.0",
"@zen-browser/prettier": "^3.9.3",
- "@zen-browser/surfer": "^1.14.6",
+ "@zen-browser/surfer": "^1.14.8",
"formal-git": "^1.2.9",
"globals": "^16.3.0",
"husky": "^9.1.7",
@@ -860,9 +860,9 @@
}
},
"node_modules/@zen-browser/surfer": {
- "version": "1.14.6",
- "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.14.6.tgz",
- "integrity": "sha512-hgTKadIJ/9/9dizHn4229ZZHQckd7D4OR6e7HVkcmtuq1Jke3OAn6SH7u7NjvzvYy35Mb2sXjVUvZEG1ITIfgg==",
+ "version": "1.14.8",
+ "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.14.8.tgz",
+ "integrity": "sha512-5HHcfibwHIK5n3huhJL2TLBX2+8odj6ebCMA6U2EcUj9ROSrcz7/bjY2n5MIa9oIRL9gtV3ott0jwJj6SlapxA==",
"dev": true,
"license": "MPL-2.0",
"dependencies": {
diff --git a/package.json b/package.json
index c62853c08..c0ed6239c 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"devDependencies": {
"@babel/preset-typescript": "^7.27.0",
"@zen-browser/prettier": "^3.9.3",
- "@zen-browser/surfer": "^1.14.6",
+ "@zen-browser/surfer": "^1.14.8",
"formal-git": "^1.2.9",
"globals": "^16.3.0",
"husky": "^9.1.7",
diff --git a/prefs/firefox/browser.yaml b/prefs/firefox/browser.yaml
index 4545795c6..cd66abc63 100644
--- a/prefs/firefox/browser.yaml
+++ b/prefs/firefox/browser.yaml
@@ -99,3 +99,13 @@
# Only enabled for windows, doesn't really fit inside Zen.
- name: browser.startup.preXulSkeletonUI
value: false
+
+- name: browser.preonboarding.enabled
+ value: false
+
+- name: browser.referrals.enabled
+ value: false
+ locked: true
+
+- name: browser.shell.customIcon.enabled
+ value: false # For now?
diff --git a/prefs/firefox/performance.yaml b/prefs/firefox/performance.yaml
index c58582064..e972fd471 100644
--- a/prefs/firefox/performance.yaml
+++ b/prefs/firefox/performance.yaml
@@ -2,18 +2,11 @@
# 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/.
-- name: browser.lowMemoryResponseMask
- value: 3
- condition: "defined(XP_MACOSX)"
-
-- name: network.predictor.enable-hover-on-ssl
- value: true
-
# See https://github.com/zen-browser/desktop/issues/11599, this pref seems to
# have disabled itself on macos for some unknown reason.
# Make sure its in sync with:
-# https://searchfox.org/firefox-main/rev/1477feb9706f4ccc5bd571c1c215832a6fbb7464/modules/libpref/init/StaticPrefList.yaml#7741-7748
+# https://searchfox.org/firefox-main/rev/dd2579cb6e7f1761a27ce64fb84d92c61d85c27f/modules/libpref/init/StaticPrefList.yaml#8396
- name: gfx.webrender.compositor
- condition: "defined(XP_WIN) || defined(XP_DARWIN)"
+ condition: "defined(XP_WIN) || defined(XP_DARWIN) || defined(MOZ_WIDGET_GTK)"
value: "@cond"
mirror: once
diff --git a/prefs/zen/compact-mode.yaml b/prefs/zen/compact-mode.yaml
index 829ca7367..d7de3a472 100644
--- a/prefs/zen/compact-mode.yaml
+++ b/prefs/zen/compact-mode.yaml
@@ -20,6 +20,14 @@
- name: zen.view.compact.sidebar-keep-hover.duration
value: 150
+# How far (in CSS pixels) the mouse may travel past the window bounds after
+# leaving the window before the hovered sidebar/toolbar is collapsed
+- name: zen.view.compact.outside-window-edge-offset.horizontal
+ value: 200
+
+- name: zen.view.compact.outside-window-edge-offset.vertical
+ value: 100
+
- name: zen.view.compact.animate-sidebar
value: true
diff --git a/prefs/zen/macos.yaml b/prefs/zen/macos.yaml
index abca5c987..3f3fd2f18 100644
--- a/prefs/zen/macos.yaml
+++ b/prefs/zen/macos.yaml
@@ -2,10 +2,14 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
-# Enable transparent background for macos
-- name: widget.macos.sidebar-blend-mode.behind-window
+# Give the whole window a translucent, blurred backdrop, using the material
+# below. See ZenWindowMaterialView in nsCocoaWindow.mm.
+- name: zen.widget.macos.window-vibrancy
value: true
condition: "defined(XP_MACOSX)"
+ cpptype: bool
+ mirror: always
+ type: static
# 1. hudWindow
# 2. fullScreenUI
diff --git a/prefs/zen/media.yaml b/prefs/zen/media.yaml
index abf40e5db..7402f3965 100644
--- a/prefs/zen/media.yaml
+++ b/prefs/zen/media.yaml
@@ -8,9 +8,5 @@
- name: svg.context-properties.content.enabled
value: true
-- name: image.avif.enabled
- value: true
- locked: true
-
- name: media.eme.enabled
value: true
diff --git a/prefs/zen/sync.yaml b/prefs/zen/sync.yaml
new file mode 100644
index 000000000..9ed0efc35
--- /dev/null
+++ b/prefs/zen/sync.yaml
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+- name: services.sync.engine.spaces
+ value: true
+ condition: "@IS_TWILIGHT@"
+
+- name: services.sync.engine.spaces
+ value: false
+ locked: true
+ condition: "!@IS_TWILIGHT@"
+
+- name: zen.spaces-sync.debug
+ value: false
diff --git a/prefs/zen/view.yaml b/prefs/zen/view.yaml
index 69066e600..3cb5c0338 100644
--- a/prefs/zen/view.yaml
+++ b/prefs/zen/view.yaml
@@ -46,6 +46,12 @@
- name: zen.view.context-menu.refresh
value: "@IS_TWILIGHT@"
+- name: zen.view.drag-window-from-content
+ value: true
+
+- name: zen.view.drag-window-from-content.height-percentage
+ value: 5
+
- name: zen.view.borderless-fullscreen
value: true
diff --git a/prefs/zen/workspaces.yaml b/prefs/zen/workspaces.yaml
index 24aaf887c..156672855 100644
--- a/prefs/zen/workspaces.yaml
+++ b/prefs/zen/workspaces.yaml
@@ -21,7 +21,7 @@
value: 100
- name: zen.workspaces.switch-animation-duration
- value: 200
+ value: 250
- name: zen.workspaces.wrap-around-navigation
value: true
@@ -32,9 +32,6 @@
- name: zen.workspaces.scroll-modifier-key
value: ctrl
-- name: services.sync.engine.workspaces
- value: false
-
- name: zen.workspaces.separate-essentials
value: true
diff --git a/requirements.txt b/requirements.txt
index 03b71cd68..461f70773 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,4 +8,4 @@ packaging==24.2
pathspec==0.12.1
platformdirs==4.3.6
pycodestyle==2.12.1
-requests==2.33.0
+requests==2.34.2
diff --git a/scripts/update_external_patches.py b/scripts/update_external_patches.py
index 341cb77f7..bb7a26626 100644
--- a/scripts/update_external_patches.py
+++ b/scripts/update_external_patches.py
@@ -83,7 +83,7 @@ def main():
dest = patch.get("dest")
if not url or not dest:
die(f"Patch entry missing 'url' or 'dest': {patch}")
- filename = url.split("/")[-1]
+ filename = patch.get("filename", url.split("/")[-1])
output_file = os.path.join(OUTPUT_DIR, dest, filename)
download_patch_from_url(url, output_file)
replaces = patch.get("replaces", {})
diff --git a/src/-prettierignore.patch b/src/-prettierignore.patch
index ed444531d..3142c427a 100644
--- a/src/-prettierignore.patch
+++ b/src/-prettierignore.patch
@@ -1,8 +1,8 @@
diff --git a/.prettierignore b/.prettierignore
-index 949896ff064ae0b54b6a657ea074bc88e12820f7..5249f420972667bece4d85fe8d35073afaebeb8a 100644
+index bd8ab46ff7175f5039b69b04c1afe53ab8efe746..7ae12a1ff3724e99aeec2e93518640a2fa9611e6 100644
--- a/.prettierignore
+++ b/.prettierignore
-@@ -1803,3 +1803,12 @@ tools/ts/test/baselines/
+@@ -1807,3 +1807,12 @@ tools/ts/test/baselines/
try_task_config.json
xpcom/idl-parser/xpidl/fixtures/xpctest.d.json
**/package-lock.json
@@ -12,6 +12,6 @@ index 949896ff064ae0b54b6a657ea074bc88e12820f7..5249f420972667bece4d85fe8d35073a
+*.min.js
+*.min.mjs
+*.inc
-+*/mochitests/*
++**/mochitests/**
+*.svg
+
diff --git a/src/-stylelintrc-js.patch b/src/-stylelintrc-js.patch
index 2454e3824..baadd6208 100644
--- a/src/-stylelintrc-js.patch
+++ b/src/-stylelintrc-js.patch
@@ -1,5 +1,5 @@
diff --git a/.stylelintrc.js b/.stylelintrc.js
-index 3c9fecf731126fdbf900d1bdcd3635dd31ed53ef..c3a210b8153e9699c6cbdc0d568bb72433976b2c 100644
+index b484bf6600a7e1b8ad2aed8c8b7fe5e84cc3d023..f89712e2c13dfa0bcb48e55cd3872c67f5c98dad 100644
--- a/.stylelintrc.js
+++ b/.stylelintrc.js
@@ -67,7 +67,7 @@ module.exports = {
@@ -11,9 +11,9 @@ index 3c9fecf731126fdbf900d1bdcd3635dd31ed53ef..c3a210b8153e9699c6cbdc0d568bb724
{
ignore: ["blockless-at-rules"],
},
-@@ -274,7 +274,7 @@ module.exports = {
- // Remove this line setting `csscontrols/use-logical` to null after implementing fixes
- "csstools/use-logical": null,
+@@ -280,7 +280,7 @@ module.exports = {
+ "media-query-no-invalid": null,
+ "stylelint-plugin-mozilla/media-query-no-invalid": true,
"stylelint-plugin-mozilla/no-base-design-tokens": true,
- "stylelint-plugin-mozilla/use-design-tokens": true,
+ "stylelint-plugin-mozilla/use-design-tokens": false,
diff --git a/src/browser/base/content/aboutDialog-js.patch b/src/browser/base/content/aboutDialog-js.patch
index 5ca9f1b12..b0bf35bf5 100644
--- a/src/browser/base/content/aboutDialog-js.patch
+++ b/src/browser/base/content/aboutDialog-js.patch
@@ -1,8 +1,8 @@
diff --git a/browser/base/content/aboutDialog.js b/browser/base/content/aboutDialog.js
-index f6e1391baf12abb91c85a95107bb3923118746c0..cac04aa288e8a305d0c8b28e0c919abce87658e5 100644
+index a2fb4433c7044e7f5681d5762285314fa3e00a5c..dac1e79e86c534247a470ae062e59f7e7cba6e38 100644
--- a/browser/base/content/aboutDialog.js
+++ b/browser/base/content/aboutDialog.js
-@@ -52,7 +52,7 @@ function init() {
+@@ -58,7 +58,7 @@ function init() {
]);
let versionIdKey = "base";
let versionAttributes = {
@@ -11,7 +11,7 @@ index f6e1391baf12abb91c85a95107bb3923118746c0..cac04aa288e8a305d0c8b28e0c919abc
};
let arch = Services.sysinfo.get("arch");
-@@ -64,7 +64,7 @@ function init() {
+@@ -70,7 +70,7 @@ function init() {
}
let version = Services.appinfo.version;
@@ -20,7 +20,7 @@ index f6e1391baf12abb91c85a95107bb3923118746c0..cac04aa288e8a305d0c8b28e0c919abc
versionIdKey += "-nightly";
let buildID = Services.appinfo.appBuildID;
let year = buildID.slice(0, 4);
-@@ -125,14 +125,6 @@ function init() {
+@@ -158,14 +158,6 @@ function init() {
window.close();
});
if (AppConstants.MOZ_UPDATER) {
diff --git a/src/browser/base/content/aboutDialog-xhtml.patch b/src/browser/base/content/aboutDialog-xhtml.patch
index 3665d002a..db0836ebf 100644
--- a/src/browser/base/content/aboutDialog-xhtml.patch
+++ b/src/browser/base/content/aboutDialog-xhtml.patch
@@ -1,5 +1,5 @@
diff --git a/browser/base/content/aboutDialog.xhtml b/browser/base/content/aboutDialog.xhtml
-index 3ffd464b960a4299a7dd0cd87e4fc2f781b9d593..7a831c8ee2b73bb89bf8a82ac24958b55c16a5aa 100644
+index 067eaf8d4e23f76a2423d01a1d9fa71d9ef3c65f..e0badae05d1da7e6de43e1d517539d4b09ec90f5 100644
--- a/browser/base/content/aboutDialog.xhtml
+++ b/browser/base/content/aboutDialog.xhtml
@@ -102,10 +102,6 @@
@@ -13,7 +13,7 @@ index 3ffd464b960a4299a7dd0cd87e4fc2f781b9d593..7a831c8ee2b73bb89bf8a82ac24958b5
#endif
-@@ -120,26 +116,22 @@
+@@ -120,12 +116,12 @@
@@ -27,13 +27,8 @@ index 3ffd464b960a4299a7dd0cd87e4fc2f781b9d593..7a831c8ee2b73bb89bf8a82ac24958b5
+
--
--
--
--
-
-
-
+
+@@ -144,8 +140,8 @@
diff --git a/src/browser/base/content/browser-box-inc-xhtml.patch b/src/browser/base/content/browser-box-inc-xhtml.patch
index e807e8553..0fbb710dd 100644
--- a/src/browser/base/content/browser-box-inc-xhtml.patch
+++ b/src/browser/base/content/browser-box-inc-xhtml.patch
@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-box.inc.xhtml b/browser/base/content/browser-box.inc.xhtml
-index 31cd4f927c273573b38021f84417101c57377902..f293e1c61d3b7a80b7dc472d927893f0439d6af9 100644
+index cf35762fdcc4716932c7af7cf4af4b2f72aea038..6c13e42806ce80accce464d7ec7e022a0d8e0078 100644
--- a/browser/base/content/browser-box.inc.xhtml
+++ b/browser/base/content/browser-box.inc.xhtml
@@ -3,12 +3,22 @@
@@ -10,7 +10,7 @@ index 31cd4f927c273573b38021f84417101c57377902..f293e1c61d3b7a80b7dc472d927893f0
+
+
+
-
+
@@ -28,12 +28,12 @@ index 31cd4f927c273573b38021f84417101c57377902..f293e1c61d3b7a80b7dc472d927893f0
@@ -25,7 +35,7 @@
-
+
-
+#include zen-tabbrowser-elements.inc.xhtml
-
+
@@ -34,3 +44,5 @@
diff --git a/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch b/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch
index e3f016e80..06d8aa99b 100644
--- a/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch
+++ b/src/browser/base/content/browser-fullScreenAndPointerLock-js.patch
@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
-index d0d3b6fc57800b073bb1c75f6e55212749815b0a..f3d5790eed58f1cb9a36229582e0fa00f3668962 100644
+index 991cbab1fca19bc20adabb73c146c26a57db68eb..5c0debc58c9614b13916e758c7f64b522756c1d4 100644
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
@@ -502,8 +502,6 @@ var FullScreen = {
@@ -7,7 +7,7 @@ index d0d3b6fc57800b073bb1c75f6e55212749815b0a..f3d5790eed58f1cb9a36229582e0fa00
let translate = shiftSize > 0 ? `0 ${shiftSize}px` : "";
gNavToolbox.classList.toggle("fullscreen-floating-toolbox", shiftSize > 0);
- gNavToolbox.style.translate = translate;
-- gURLBar.style.translate = gURLBar.hasAttribute("breakout") ? translate : "";
- let searchbar = document.getElementById("searchbar-new");
- if (searchbar) {
- searchbar.style.translate = searchbar.hasAttribute("breakout")
+- gURLBar.style.setProperty("--toolbar-shift-translate", translate);
+ document
+ .getElementById("searchbar-new")
+ ?.style.setProperty("--toolbar-shift-translate", translate);
diff --git a/src/browser/base/content/browser-js.patch b/src/browser/base/content/browser-js.patch
index db7aaeba1..ad3e5b9a2 100644
--- a/src/browser/base/content/browser-js.patch
+++ b/src/browser/base/content/browser-js.patch
@@ -1,16 +1,16 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
-index 1026474bb1bc026987be01a8c18fa0927cb911bc..60294e0587147d86ace8e6d6985d8c6eae8248b6 100644
+index 4960f4baed32a9e9f523262591eb93550ca9c4b0..9ee825057b1b3b5a08e1d2b2c1036f1be2088da6 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -34,6 +34,7 @@ ChromeUtils.defineESModuleGetters(this, {
- "resource://gre/modules/ContextualIdentityService.sys.mjs",
+ "moz-src:///toolkit/components/contextualidentity/ContextualIdentityService.sys.mjs",
CustomizableUI:
"moz-src:///browser/components/customizableui/CustomizableUI.sys.mjs",
+ ZenCustomizableUI: "resource:///modules/ZenCustomizableUI.sys.mjs",
DevToolsSocketStatus:
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
-@@ -816,7 +817,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
+@@ -831,7 +832,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
var backDisabled = backCommand.hasAttribute("disabled");
var forwardDisabled = forwardCommand.hasAttribute("disabled");
@@ -24,7 +24,7 @@ index 1026474bb1bc026987be01a8c18fa0927cb911bc..60294e0587147d86ace8e6d6985d8c6e
if (backDisabled) {
backCommand.removeAttribute("disabled");
} else {
-@@ -3719,7 +3725,7 @@ function warnAboutClosingWindow() {
+@@ -3973,7 +3979,7 @@ function warnAboutClosingWindow() {
if (!isPBWindow && !toolbar.visible) {
return gBrowser.warnAboutClosingTabs(
@@ -33,7 +33,7 @@ index 1026474bb1bc026987be01a8c18fa0927cb911bc..60294e0587147d86ace8e6d6985d8c6e
gBrowser.closingTabsEnum.ALL
);
}
-@@ -3759,7 +3765,7 @@ function warnAboutClosingWindow() {
+@@ -4013,7 +4019,7 @@ function warnAboutClosingWindow() {
return (
isPBWindow ||
gBrowser.warnAboutClosingTabs(
@@ -42,7 +42,7 @@ index 1026474bb1bc026987be01a8c18fa0927cb911bc..60294e0587147d86ace8e6d6985d8c6e
gBrowser.closingTabsEnum.ALL
)
);
-@@ -3784,7 +3790,7 @@ function warnAboutClosingWindow() {
+@@ -4038,7 +4044,7 @@ function warnAboutClosingWindow() {
AppConstants.platform != "macosx" ||
isPBWindow ||
gBrowser.warnAboutClosingTabs(
@@ -51,7 +51,7 @@ index 1026474bb1bc026987be01a8c18fa0927cb911bc..60294e0587147d86ace8e6d6985d8c6e
gBrowser.closingTabsEnum.ALL
)
);
-@@ -4744,6 +4750,16 @@ var ConfirmationHint = {
+@@ -4998,6 +5004,16 @@ var ConfirmationHint = {
}
document.l10n.setAttributes(this._message, messageId, l10nArgs);
diff --git a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch
index d9599a782..38ad5946e 100644
--- a/src/browser/base/content/navigator-toolbox-inc-xhtml.patch
+++ b/src/browser/base/content/navigator-toolbox-inc-xhtml.patch
@@ -1,5 +1,5 @@
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
-index e7e94e13a990c154fb54bda4a3420ca00bdac009..e3b4846e1b198711d3e0047d38da1c1ed58a2ab2 100644
+index dd2f391096968564086911c532f696dc7ffb8ae1..c3e809a543397ab360fb83b3f61ef52d3c3bb738 100644
--- a/browser/base/content/navigator-toolbox.inc.xhtml
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
@@ -2,7 +2,7 @@
@@ -26,7 +26,7 @@ index e7e94e13a990c154fb54bda4a3420ca00bdac009..e3b4846e1b198711d3e0047d38da1c1e
@@ -34,8 +34,8 @@ index e7e94e13a990c154fb54bda4a3420ca00bdac009..e3b4846e1b198711d3e0047d38da1c1e
+
-
-@@ -81,6 +87,7 @@
+
+@@ -73,6 +79,7 @@
tooltip="dynamic-shortcut-tooltip"
data-l10n-id="tabs-toolbar-new-tab"/>
@@ -43,7 +43,7 @@ index e7e94e13a990c154fb54bda4a3420ca00bdac009..e3b4846e1b198711d3e0047d38da1c1e
@@ -55,7 +55,7 @@ index e7e94e13a990c154fb54bda4a3420ca00bdac009..e3b4846e1b198711d3e0047d38da1c1e
-
+
diff --git a/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch b/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch
index c4f1266bd..7f7063e78 100644
--- a/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch
+++ b/src/browser/components/aiwindow/ui/modules/AIWindow-sys-mjs.patch
@@ -1,12 +1,12 @@
diff --git a/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs b/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs
-index f6f1dd1f6b4d21d27e39b48bb7a57871ad5d019d..bf743120cf9f137cbe06d05896f706fb3d5b9435 100644
+index e0b78c29ad081e6eb541eb2aeae4cb6d5cbb9b9b..ae56a624523bee66bc1d1343b455fc7cb65ebef1 100644
--- a/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs
+++ b/browser/components/aiwindow/ui/modules/AIWindow.sys.mjs
-@@ -287,6 +287,7 @@ export const AIWindow = {
- },
-
- _updateToolbarButtonPositions(win, { isToggling = false } = {}) {
+@@ -321,6 +321,7 @@ export const AIWindow = {
+ * @param {boolean} [options.isToggling]
+ */
+ _updateHamburgerMenuPosition(win, { isToggling = false } = {}) {
+ return;
- const modeSwitcherButton = win.document.getElementById("ai-window-toggle");
const hamburgerMenu = win.document.getElementById("PanelUI-button");
-
+ const targetToolbar = win.document.getElementById(
+ this.verticalTabsEnabled ? "nav-bar" : "TabsToolbar"
diff --git a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch
index 3a890147a..cffa61439 100644
--- a/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch
+++ b/src/browser/components/asrouter/modules/FeatureCallout-sys-mjs.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
-index c4638d2d557f05fa6638cd379be8e0076336f8dc..2e25f485aa94485d12ca9e98aa4eaf56a06cf1f8 100644
+index f6230d6f7ed589f4336387b6115ae4527cdb071b..a289f7b3a665154025121cc9184ab851a74ea33d 100644
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
-@@ -778,6 +778,7 @@ export class FeatureCallout {
+@@ -812,6 +812,7 @@ export class FeatureCallout {
) {
return false;
}
@@ -10,3 +10,11 @@ index c4638d2d557f05fa6638cd379be8e0076336f8dc..2e25f485aa94485d12ca9e98aa4eaf56
const style = this.win.getComputedStyle(el);
return style?.visibility === "visible" && style?.display !== "none";
+@@ -1115,7 +1116,6 @@ export class FeatureCallout {
+ type="arrow"
+ consumeoutsideclicks="never"
+ norolluponanchor="true"
+- nonnative=""
+ position="${panel_position?.panel_position_string}"
+ ${hide_arrow ? "" : 'show-arrow=""'}
+ ${autohide ? "" : 'noautohide="true"'}
diff --git a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch
index ee13d11b3..15192e8c1 100644
--- a/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch
+++ b/src/browser/components/customizableui/CustomizableUI-sys-mjs.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
-index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80bbcf503b2 100644
+index 491161e48044f75167a8e8a0348779cfa22fc40e..867d51b8a6b74f841afc6d84dcdfd8f2681652e5 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -13,6 +13,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -10,7 +10,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
HomePage: "resource:///modules/HomePage.sys.mjs",
PanelMultiView:
"moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs",
-@@ -347,7 +348,7 @@ var CustomizableUIInternal = {
+@@ -348,7 +349,7 @@ var CustomizableUIInternal = {
{
type: CustomizableUI.TYPE_PANEL,
defaultPlacements: [],
@@ -19,7 +19,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
},
false
);
-@@ -357,20 +358,15 @@ var CustomizableUIInternal = {
+@@ -358,27 +359,23 @@ var CustomizableUIInternal = {
"back-button",
"forward-button",
"stop-reload-button",
@@ -41,27 +41,26 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
this.registerArea(
CustomizableUI.AREA_NAVBAR,
{
-@@ -378,8 +374,6 @@ var CustomizableUIInternal = {
+ type: CustomizableUI.TYPE_TOOLBAR,
overflowable: true,
defaultPlacements: navbarPlacements,
- verticalTabsDefaultPlacements: [
-- "firefox-view-button",
-- "alltabs-button",
- ],
+- verticalTabsDefaultPlacements: ["alltabs-button", "ai-window-toggle"],
++ verticalTabsDefaultPlacements: [
++ ],
defaultCollapsed: false,
},
-@@ -403,10 +397,7 @@ var CustomizableUIInternal = {
- {
+ true
+@@ -402,9 +399,6 @@ var CustomizableUIInternal = {
type: CustomizableUI.TYPE_TOOLBAR,
defaultPlacements: [
-- "firefox-view-button",
"tabbrowser-tabs",
- "new-tab-button",
- "alltabs-button",
+- "ai-window-toggle",
],
verticalTabsDefaultPlacements: [],
defaultCollapsed: null,
-@@ -486,6 +477,7 @@ var CustomizableUIInternal = {
+@@ -484,6 +478,7 @@ var CustomizableUIInternal = {
CustomizableUI.AREA_NAVBAR,
CustomizableUI.AREA_BOOKMARKS,
CustomizableUI.AREA_TABSTRIP,
@@ -69,7 +68,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
]);
if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR);
-@@ -1262,6 +1254,9 @@ var CustomizableUIInternal = {
+@@ -1285,6 +1280,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area);
}
@@ -79,7 +78,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
// For toolbars that need it, mark as dirty.
let defaultPlacements = areaProperties.get("defaultPlacements");
if (
-@@ -1769,7 +1764,6 @@ var CustomizableUIInternal = {
+@@ -1793,7 +1791,6 @@ var CustomizableUIInternal = {
lazy.log.info(
"Widget " + aWidgetId + " not found, unable to remove from " + aArea
);
@@ -87,7 +86,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
}
this.notifyDOMChange(widgetNode, null, container, true, () => {
-@@ -1779,7 +1773,7 @@ var CustomizableUIInternal = {
+@@ -1803,7 +1800,7 @@ var CustomizableUIInternal = {
// We also need to remove the panel context menu if it's there:
this.ensureButtonContextMenu(widgetNode);
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
@@ -96,7 +95,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
} else {
window.gNavToolbox.palette.appendChild(widgetNode);
}
-@@ -1947,16 +1941,16 @@ var CustomizableUIInternal = {
+@@ -1971,16 +1968,16 @@ var CustomizableUIInternal = {
elem.setAttribute("skipintoolbarset", "true");
}
}
@@ -116,7 +115,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
// Handle initial state of vertical tabs.
if (isVerticalTabs) {
// Show the vertical tabs toolbar
-@@ -2198,6 +2192,10 @@ var CustomizableUIInternal = {
+@@ -2222,6 +2219,10 @@ var CustomizableUIInternal = {
* The identifier string of the area that aNode is being inserted into.
*/
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
@@ -127,7 +126,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
this.setLocationAttributes(aNode, aAreaId);
aContainer.insertBefore(aNode, aNextNode);
-@@ -4562,7 +4560,7 @@ var CustomizableUIInternal = {
+@@ -4592,7 +4593,7 @@ var CustomizableUIInternal = {
* For all registered areas, builds those areas to reflect the current
* placement state of all widgets.
*/
@@ -136,7 +135,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
for (let [areaId, areaNodes] of gBuildAreas) {
let placements = gPlacements.get(areaId);
let isFirstChangedToolbar = true;
-@@ -4573,7 +4571,7 @@ var CustomizableUIInternal = {
+@@ -4603,7 +4604,7 @@ var CustomizableUIInternal = {
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
let defaultCollapsed = area.get("defaultCollapsed");
let win = areaNode.documentGlobal;
@@ -145,7 +144,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
win.setToolbarVisibility(
areaNode,
typeof defaultCollapsed == "string"
-@@ -5864,6 +5862,7 @@ export var CustomizableUI = {
+@@ -5899,6 +5900,7 @@ export var CustomizableUI = {
unregisterArea(aName, aDestroyPlacements) {
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
},
@@ -153,7 +152,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
/**
* Add a widget to an area.
* If the area to which you try to add is not known to CustomizableUI,
-@@ -7827,7 +7826,9 @@ class OverflowableToolbar {
+@@ -7869,7 +7871,9 @@ class OverflowableToolbar {
);
if (webExtList && CustomizableUI.isWebExtensionWidget(child.id)) {
@@ -163,7 +162,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
webExtList.insertBefore(child, webExtList.firstElementChild);
} else {
child.setAttribute("cui-anchorid", this.#defaultListButton.id);
-@@ -7887,7 +7888,7 @@ class OverflowableToolbar {
+@@ -7929,7 +7933,7 @@ class OverflowableToolbar {
) {
continue;
}
@@ -172,7 +171,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
if (child != aExceptChild) {
sum += getInlineSize(child);
}
-@@ -7911,11 +7912,11 @@ class OverflowableToolbar {
+@@ -7953,11 +7957,11 @@ class OverflowableToolbar {
parseFloat(style.paddingLeft) -
parseFloat(style.paddingRight) -
toolbarChildrenWidth;
@@ -186,7 +185,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
});
lazy.log.debug(
-@@ -7930,7 +7931,39 @@ class OverflowableToolbar {
+@@ -7972,7 +7976,39 @@ class OverflowableToolbar {
Math.max(targetWidth, targetChildrenWidth)
);
totalAvailWidth = Math.ceil(totalAvailWidth);
@@ -227,7 +226,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
return { isOverflowing, targetContentWidth, totalAvailWidth };
}
-@@ -7991,7 +8024,11 @@ class OverflowableToolbar {
+@@ -8033,7 +8069,11 @@ class OverflowableToolbar {
return;
}
}
@@ -240,7 +239,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
lazy.log.debug(
`Need ${minSize} but width is ${totalAvailWidth} so bailing`
);
-@@ -8024,7 +8061,7 @@ class OverflowableToolbar {
+@@ -8066,7 +8106,7 @@ class OverflowableToolbar {
}
}
if (!inserted) {
@@ -249,7 +248,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
}
child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem");
-@@ -8150,6 +8187,9 @@ class OverflowableToolbar {
+@@ -8192,6 +8232,9 @@ class OverflowableToolbar {
* if no such list exists.
*/
get #webExtList() {
@@ -259,7 +258,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
if (!this.#webExtListRef) {
let targetID = this.#toolbar.getAttribute("addon-webext-overflowtarget");
if (!targetID) {
-@@ -8161,6 +8201,9 @@ class OverflowableToolbar {
+@@ -8203,6 +8246,9 @@ class OverflowableToolbar {
let win = this.#toolbar.documentGlobal;
let { panel } = win.gUnifiedExtensions;
this.#webExtListRef = panel.querySelector(`#${targetID}`);
@@ -269,7 +268,7 @@ index d5d4596739cde5d3d49d6294867f5da122c526b8..c206cfb374542c496be9bf0305a0a80b
}
return this.#webExtListRef;
}
-@@ -8369,7 +8412,7 @@ class OverflowableToolbar {
+@@ -8411,7 +8457,7 @@ class OverflowableToolbar {
break;
}
case "mousedown": {
diff --git a/src/browser/components/extensions/parent/ext-browser-js.patch b/src/browser/components/extensions/parent/ext-browser-js.patch
index 05916d78b..23cdaf996 100644
--- a/src/browser/components/extensions/parent/ext-browser-js.patch
+++ b/src/browser/components/extensions/parent/ext-browser-js.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
-index aca5a23deda6b0f2316b0e108cff20ffd7feda67..a06c90937f97a4994b0807b54984089dbe627a71 100644
+index 91adc6bc3649af47745818e6f9d00cbbdffc35a5..e221b077dbfbe20c8696732f003bd5809d761a02 100644
--- a/browser/components/extensions/parent/ext-browser.js
+++ b/browser/components/extensions/parent/ext-browser.js
-@@ -352,6 +352,7 @@ class TabTracker extends TabTrackerBase {
+@@ -362,6 +362,7 @@ class TabTracker extends TabTrackerBase {
}
getId(nativeTab) {
@@ -10,15 +10,15 @@ index aca5a23deda6b0f2316b0e108cff20ffd7feda67..a06c90937f97a4994b0807b54984089d
let id = this._tabs.get(nativeTab);
if (id) {
return id;
-@@ -386,6 +387,7 @@ class TabTracker extends TabTrackerBase {
+@@ -395,6 +396,7 @@ class TabTracker extends TabTrackerBase {
if (nativeTab.documentGlobal.closed) {
throw new Error("Cannot attach ID to a tab in a closed window.");
}
+ if (nativeTab.hasAttribute("zen-empty-tab")) return;
this._tabs.set(nativeTab, id);
- if (nativeTab.linkedBrowser) {
-@@ -1276,6 +1278,10 @@ class TabManager extends TabManagerBase {
+ this._tabIds.set(id, nativeTab);
+@@ -1262,6 +1264,10 @@ class TabManager extends TabManagerBase {
}
canAccessTab(nativeTab) {
diff --git a/src/browser/components/extensions/parent/ext-tabs-js.patch b/src/browser/components/extensions/parent/ext-tabs-js.patch
index c0136e1e0..fa1206baf 100644
--- a/src/browser/components/extensions/parent/ext-tabs-js.patch
+++ b/src/browser/components/extensions/parent/ext-tabs-js.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/extensions/parent/ext-tabs.js b/browser/components/extensions/parent/ext-tabs.js
-index 8f5fdecc9394d42a1460a1b73fb8c4e92f63c41e..82c03e234289c7b00f49f73854be45fb95fb91d7 100644
+index f342748d4b680a5de3a8b7c90df79f7c380b9e1c..65091cf370e00a580ae2cb1fad9cde76f10c8bd9 100644
--- a/browser/components/extensions/parent/ext-tabs.js
+++ b/browser/components/extensions/parent/ext-tabs.js
-@@ -514,6 +514,7 @@ this.tabs = class extends ExtensionAPIPersistent {
+@@ -438,6 +438,7 @@ this.tabs = class extends ExtensionAPIPersistent {
}
let tab = tabManager.getWrapper(updatedTab);
@@ -10,11 +10,11 @@ index 8f5fdecc9394d42a1460a1b73fb8c4e92f63c41e..82c03e234289c7b00f49f73854be45fb
let changeInfo = {};
for (let prop of needed) {
-@@ -883,6 +884,7 @@ this.tabs = class extends ExtensionAPIPersistent {
+@@ -806,6 +807,7 @@ this.tabs = class extends ExtensionAPIPersistent {
});
}
+ window.gZenCompactModeManager._nextTimeWillBeActive = active;
let nativeTab = window.gBrowser.addTab(url, options);
+ tabTracker.addTabReadyBlocker(nativeTab);
- if (active) {
diff --git a/src/browser/components/nova/NovaPrefs-sys-mjs.patch b/src/browser/components/nova/NovaPrefs-sys-mjs.patch
deleted file mode 100644
index a8e46884d..000000000
--- a/src/browser/components/nova/NovaPrefs-sys-mjs.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/browser/components/nova/NovaPrefs.sys.mjs b/browser/components/nova/NovaPrefs.sys.mjs
-index 3d22c881c481643fcffbc581523905a1847a7d41..453dd4d9c43d7483c037a993afbf2b854533497c 100644
---- a/browser/components/nova/NovaPrefs.sys.mjs
-+++ b/browser/components/nova/NovaPrefs.sys.mjs
-@@ -18,7 +18,7 @@ const PLATFORM_PREFS = (() => {
- })();
-
- function applyNovaPlatformDefaults() {
-- const on = Services.prefs.getBoolPref("browser.nova.enabled", false);
-+ const on = true;
- const defaults = Services.prefs.getDefaultBranch("");
- for (const pref of PLATFORM_PREFS) {
- defaults.setBoolPref(pref, on);
diff --git a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch
index e31abe1c0..0a549c356 100644
--- a/src/browser/components/places/PlacesUIUtils-sys-mjs.patch
+++ b/src/browser/components/places/PlacesUIUtils-sys-mjs.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
-index 7c2786cc1be512ddfc165fb8f6514131ac033040..5846aff53030ef0fad2f87d017ba3713889b474d 100644
+index 7c11a2004c87aa6f0c61cf05ca522c7471c7be71..0f92f9925221cadbd258402f1b6a86a71fdb42e9 100644
--- a/browser/components/places/PlacesUIUtils.sys.mjs
+++ b/browser/components/places/PlacesUIUtils.sys.mjs
@@ -61,6 +61,7 @@ class BookmarkState {
@@ -157,12 +157,3 @@ index 7c2786cc1be512ddfc165fb8f6514131ac033040..5846aff53030ef0fad2f87d017ba3713
/**
* Append transactions to update tags by given information.
*
-@@ -915,7 +1024,7 @@ export var PlacesUIUtils = {
- aNode,
- aWhere,
- aWindow,
-- { aPrivate = false, userContextId = 0 } = {}
-+ { aPrivate = false, userContextId = undefined } = {}
- ) {
- if (
- aNode &&
diff --git a/src/browser/components/preferences/config/account-sync-mjs.patch b/src/browser/components/preferences/config/account-sync-mjs.patch
new file mode 100644
index 000000000..ce14b3e05
--- /dev/null
+++ b/src/browser/components/preferences/config/account-sync-mjs.patch
@@ -0,0 +1,20 @@
+diff --git a/browser/components/preferences/config/account-sync.mjs b/browser/components/preferences/config/account-sync.mjs
+index b503987a08e2ce64bfc01c4e3a21e5e19ef834f0..b1c03a0b219fd3eddd93c1deaeb18ab79c85f168 100644
+--- a/browser/components/preferences/config/account-sync.mjs
++++ b/browser/components/preferences/config/account-sync.mjs
+@@ -42,6 +42,7 @@ Preferences.addAll([
+ { id: "services.sync.engine.creditcards", type: "bool" },
+ { id: "services.sync.engine.addons", type: "bool" },
+ { id: "services.sync.engine.prefs", type: "bool" },
++ { id: "services.sync.engine.spaces", type: "bool" },
+ ]);
+
+ /**
+@@ -546,6 +547,7 @@ const SYNC_ENGINE_SETTINGS = [
+ type: "payments",
+ },
+ { id: "syncAddons", pref: "services.sync.engine.addons", type: "addons" },
++ { id: "syncSpaces", pref: "services.sync.engine.spaces", type: "workspaces" },
+ { id: "syncSettings", pref: "services.sync.engine.prefs", type: "settings" },
+ ];
+
diff --git a/src/browser/components/preferences/dialogs/syncChooseWhatToSync-js.patch b/src/browser/components/preferences/dialogs/syncChooseWhatToSync-js.patch
index e066aca21..da89f90fb 100644
--- a/src/browser/components/preferences/dialogs/syncChooseWhatToSync-js.patch
+++ b/src/browser/components/preferences/dialogs/syncChooseWhatToSync-js.patch
@@ -6,7 +6,7 @@ index 64aa0d98a0622c01f3dcfff1a04bfcda368354d2..2013e04b0881ad2295d6897b91e1573c
{ id: "services.sync.engine.passwords", type: "bool" },
{ id: "services.sync.engine.addresses", type: "bool" },
{ id: "services.sync.engine.creditcards", type: "bool" },
-+ { id: "services.sync.engine.workspaces", type: "bool" },
++ { id: "services.sync.engine.spaces", type: "bool" },
]);
let gSyncChooseWhatToSync = {
diff --git a/src/browser/components/preferences/dialogs/syncChooseWhatToSync-xhtml.patch b/src/browser/components/preferences/dialogs/syncChooseWhatToSync-xhtml.patch
index 3b0ab370d..0ebce7576 100644
--- a/src/browser/components/preferences/dialogs/syncChooseWhatToSync-xhtml.patch
+++ b/src/browser/components/preferences/dialogs/syncChooseWhatToSync-xhtml.patch
@@ -20,7 +20,7 @@ index a893c5ec3d007820d98f5d92dd039640faa2c181..9cbd00102e44ccf98b37845474d92d57
+
+
+
diff --git a/src/browser/components/preferences/main-js.patch b/src/browser/components/preferences/main-js.patch
index e5053ab79..960d01ed7 100644
--- a/src/browser/components/preferences/main-js.patch
+++ b/src/browser/components/preferences/main-js.patch
@@ -1,10 +1,10 @@
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
-index c86e54bb6f5e00d9d7bdd81154857a5be97f909c..4035f6a667a361ad106e816a172342724a770435 100644
+index 88675d1bcbf000b10d85a9c0980bc6069d88052c..ed3a1e809eb0fcccc5a957be7affb77be8978e32 100644
--- a/browser/components/preferences/main.js
+++ b/browser/components/preferences/main.js
-@@ -643,6 +643,11 @@ function createStartupConfig(hidden = false) {
- id: "browserRestoreSession",
- l10nId: "startup-restore-windows-and-tabs",
+@@ -528,6 +528,11 @@ function createStartupConfig(hidden = false) {
+ },
+ ],
},
+ {
+ id: "zenWorkspaceContinueWhereLeftOff",
@@ -14,16 +14,16 @@ index c86e54bb6f5e00d9d7bdd81154857a5be97f909c..4035f6a667a361ad106e816a17234272
{
id: "windowsLaunchOnLogin",
l10nId: "windows-launch-on-login",
-@@ -690,7 +695,7 @@ function createStartupConfig(hidden = false) {
+@@ -575,7 +580,7 @@ function createStartupConfig(hidden = false) {
SettingGroupManager.registerGroups({
defaultBrowser: createDefaultBrowserConfig(),
startup: createStartupConfig(
-- Services.prefs.getBoolPref("browser-settings-redesign.enabled", false)
+- Services.prefs.getBoolPref("browser.settings-redesign.enabled", false)
+ false
),
});
-@@ -743,7 +748,7 @@ function getBundleForLocales(newLocales) {
+@@ -628,7 +633,7 @@ function getBundleForLocales(newLocales) {
])
);
return new Localization(
diff --git a/src/browser/components/preferences/preferences-js.patch b/src/browser/components/preferences/preferences-js.patch
index 4aa64e88f..3e3ad8c86 100644
--- a/src/browser/components/preferences/preferences-js.patch
+++ b/src/browser/components/preferences/preferences-js.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
-index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070c1574714 100644
+index a76699af75252bec31e17b562463c37236cbbfe5..6355a6ee92754846ffcdd123ac49545d520470c7 100644
--- a/browser/components/preferences/preferences.js
+++ b/browser/components/preferences/preferences.js
@@ -132,6 +132,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
@@ -10,7 +10,7 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070
],
resizeCallback: async ({ title, frame }) => {
// Search within main document and highlight matched keyword.
-@@ -437,6 +437,8 @@ const CONFIG_PANES = Object.freeze({
+@@ -462,6 +463,8 @@ const CONFIG_PANES = Object.freeze({
tabsBrowsing: {
l10nId: "tabs-browsing-section",
groupIds: [
@@ -19,7 +19,7 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070
"browserLayout",
"tabs",
"pageNavigation",
-@@ -477,7 +480,7 @@ function register_module(categoryName, categoryObject) {
+@@ -509,7 +512,7 @@ function register_module(categoryName, categoryObject) {
}
this._initted = true;
let template = document.getElementById("template-" + categoryName);
@@ -28,10 +28,10 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070
// Replace the template element with the nodes inside of it.
template.replaceWith(template.content);
-@@ -522,6 +525,10 @@ function init_all() {
+@@ -553,6 +556,10 @@ function init_all() {
+ register_module("paneHome", gHomePane);
register_module("paneSearch", gSearchPane);
register_module("panePrivacy", gPrivacyPane);
- register_module("paneContainers", gContainersPane);
+ register_module("paneZenLooks", gZenLooksAndFeel);
+ register_module("paneZenTabManagement", gZenWorkspacesSettings);
+ register_module("paneZenCKS", gZenCKSSettings);
@@ -39,15 +39,3 @@ index 57add34d876fb885275f1147209c6fbeee367a7c..be0ab43b299317c0022a5e719f47a070
// Restore the cached Firefox Labs nav button visibility so it shows
// immediately when recipes are expected to be available, before
-@@ -651,9 +658,9 @@ async function gotoPref(
- let redesignEnabled = srdSectionPrefs.all;
- let categories = document.getElementById("categories");
- const kDefaultCategoryInternalName = redesignEnabled
-- ? "paneSync"
-+ ? "paneTabsBrowsing"
- : "paneGeneral";
-- const kDefaultCategory = redesignEnabled ? "sync" : "general";
-+ const kDefaultCategory = redesignEnabled ? "tabsBrowsing" : "general";
- let hash = document.location.hash;
- let category = aCategory || hash.substring(1) || kDefaultCategoryInternalName;
-
diff --git a/src/browser/components/preferences/preferences-xhtml.patch b/src/browser/components/preferences/preferences-xhtml.patch
index dccd50ec5..2c2c134fb 100644
--- a/src/browser/components/preferences/preferences-xhtml.patch
+++ b/src/browser/components/preferences/preferences-xhtml.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
-index 9760a4a35b0b3bd21edec07a70c10bccc23e4a09..9f22146c259ea5b45005be660bfcb9ea2c1297ee 100644
+index 1b8c38159314b6edee9e6f455beb2b63db1ad3f0..1308345db640dba6b2848b49ef7c11819f9f5727 100644
--- a/browser/components/preferences/preferences.xhtml
+++ b/browser/components/preferences/preferences.xhtml
-@@ -42,6 +42,8 @@
+@@ -39,6 +39,8 @@
@@ -11,7 +11,7 @@ index 9760a4a35b0b3bd21edec07a70c10bccc23e4a09..9f22146c259ea5b45005be660bfcb9ea
-@@ -121,6 +123,26 @@
+@@ -118,6 +120,26 @@
iconsrc="chrome://browser/skin/preferences/category-general.svg"
data-l10n-id="pane-general-title">
@@ -38,8 +38,8 @@ index 9760a4a35b0b3bd21edec07a70c10bccc23e4a09..9f22146c259ea5b45005be660bfcb9ea
-+
++
+
+
+
diff --git a/src/browser/components/preferences/widgets/sync-engine-list/sync-engines-list-mjs.patch b/src/browser/components/preferences/widgets/sync-engine-list/sync-engines-list-mjs.patch
new file mode 100644
index 000000000..6bcfd56b9
--- /dev/null
+++ b/src/browser/components/preferences/widgets/sync-engine-list/sync-engines-list-mjs.patch
@@ -0,0 +1,15 @@
+diff --git a/browser/components/preferences/widgets/sync-engine-list/sync-engines-list.mjs b/browser/components/preferences/widgets/sync-engine-list/sync-engines-list.mjs
+index 9359a485ed6212c7df49a8d4b1e4a8febbc1c9b6..132fea440cfa535e78b35f706e7ef2d6881f9ba6 100644
+--- a/browser/components/preferences/widgets/sync-engine-list/sync-engines-list.mjs
++++ b/browser/components/preferences/widgets/sync-engine-list/sync-engines-list.mjs
+@@ -50,6 +50,10 @@ const engineTypeToMetadata = {
+ iconSrc: "chrome://global/skin/icons/settings.svg",
+ l10nId: "sync-currently-syncing-settings",
+ },
++ workspaces: {
++ iconSrc: "chrome://devtools/skin/images/tool-storage.svg",
++ l10nId: "sync-currently-syncing-workspaces",
++ },
+ };
+
+ /**
diff --git a/src/browser/components/preferences/zen-settings.js b/src/browser/components/preferences/zen-settings.js
index c048ecffa..83f2fc3c4 100644
--- a/src/browser/components/preferences/zen-settings.js
+++ b/src/browser/components/preferences/zen-settings.js
@@ -803,6 +803,7 @@ const zenMissingKeyboardShortcutL10n = {
key_inspectorMac: "zen-key-inspector-mac",
key_findSelection: "zen-key-find-selection",
+ key_findPrevious2: "zen-search-find-again-shortcut-prev-alt",
// Devtools
key_toggleToolbox: "zen-devtools-toggle-shortcut",
@@ -826,6 +827,9 @@ var zenIgnoreKeyboardShortcutIDs = [
"key_exitFullScreen_old",
"key_exitFullScreen_compat",
"key_duplicateTab",
+ "key_addTabSplitView",
+ "key_separateTabSplitView",
+ "viewOpenTabsSidebarKb",
];
var zenIgnoreKeyboardShortcutL10n = [
@@ -1180,6 +1184,11 @@ Preferences.addAll([
type: "bool",
default: true,
},
+ {
+ id: "zen.view.drag-window-from-content",
+ type: "bool",
+ default: true,
+ },
{
id: "zen.urlbar.behavior",
type: "string",
diff --git a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
index 08b2c2ef7..8f004a3b5 100644
--- a/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
+++ b/src/browser/components/preferences/zenLooksAndFeel.inc.xhtml
@@ -61,6 +61,15 @@
data-l10n-id="zen-look-and-feel-compact-toolbar-flash-popup"
preference="zen.view.compact.toolbar-flash-popup"/>
+
+
+
+
+
+
+ {
-@@ -1287,10 +1292,7 @@ var SessionStoreInternal = {
+@@ -1317,10 +1324,7 @@ var SessionStoreInternal = {
*/
get willAutoRestore() {
return (
@@ -33,17 +35,19 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
);
},
-@@ -1965,6 +1967,9 @@ var SessionStoreInternal = {
+@@ -2008,6 +2012,11 @@ var SessionStoreInternal = {
case "TabPinned":
case "TabUnpinned":
case "SwapDocShells":
+ case "TabRemovedFromEssentials":
+ case "TabAddedToEssentials":
++ case "TabMove":
++ case "TabGroupMoved":
+ case "ZenWorkspaceDataChanged":
this.saveStateDelayed(win);
break;
case "TabGroupCreate":
-@@ -2074,6 +2079,10 @@ var SessionStoreInternal = {
+@@ -2117,6 +2126,10 @@ var SessionStoreInternal = {
this._windows[aWindow.__SSi].isTaskbarTab = true;
}
@@ -54,7 +58,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
if (lazy.AIWindow.isAIWindowActiveAndEnabled(aWindow)) {
this._windows[aWindow.__SSi].isAIWindow = true;
}
-@@ -2110,7 +2119,7 @@ var SessionStoreInternal = {
+@@ -2153,7 +2166,7 @@ var SessionStoreInternal = {
let isTaskbarTab = this._windows[aWindow.__SSi].isTaskbarTab;
// A regular window is not a private window, taskbar tab window, or popup window
let isRegularWindow =
@@ -63,7 +67,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// perform additional initialization when the first window is loading
if (lazy.RunState.isStopped) {
-@@ -2122,7 +2131,7 @@ var SessionStoreInternal = {
+@@ -2165,7 +2178,7 @@ var SessionStoreInternal = {
// to disk to NOW() to enforce a full interval before the next write.
lazy.SessionSaver.updateLastSaveTime();
@@ -72,7 +76,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
this._log.debug(
"initializeWindow, the window is private or a web app. Saving SessionStartup.state for possibly restoring later"
);
-@@ -2164,6 +2173,7 @@ var SessionStoreInternal = {
+@@ -2209,6 +2222,7 @@ var SessionStoreInternal = {
null,
"sessionstore-one-or-no-tab-restored"
);
@@ -80,7 +84,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
this._deferredAllWindowsRestored.resolve();
}
// this window was opened by _openWindowWithState
-@@ -2213,7 +2223,6 @@ var SessionStoreInternal = {
+@@ -2258,7 +2272,6 @@ var SessionStoreInternal = {
if (closedWindowState) {
let newWindowState;
if (
@@ -88,7 +92,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
!lazy.SessionStartup.willRestore()
) {
// We want to split the window up into pinned tabs and unpinned tabs.
-@@ -2249,6 +2258,7 @@ var SessionStoreInternal = {
+@@ -2294,6 +2307,7 @@ var SessionStoreInternal = {
}
if (newWindowState) {
@@ -96,23 +100,17 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// Ensure that the window state isn't hidden
this._restoreCount = 1;
let state = { windows: [newWindowState] };
-@@ -2277,6 +2287,15 @@ var SessionStoreInternal = {
+@@ -2330,6 +2344,9 @@ var SessionStoreInternal = {
});
this._shouldRestoreLastSession = false;
}
+ else if (!aInitialState && isRegularWindow) {
-+ let windowPromises = [];
-+ for (let window of this._browserWindows) {
-+ windowPromises.push(lazy.TabStateFlusher.flushWindow(window));
-+ }
-+ Promise.all(windowPromises).finally(() => {
-+ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
-+ });
++ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
+ }
if (this._restoreLastWindow && aWindow.toolbar.visible) {
// always reset (if not a popup window)
-@@ -2427,7 +2446,7 @@ var SessionStoreInternal = {
+@@ -2480,7 +2497,7 @@ var SessionStoreInternal = {
var tabbrowser = aWindow.gBrowser;
@@ -121,7 +119,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
TAB_EVENTS.forEach(function (aEvent) {
tabbrowser.tabContainer.removeEventListener(aEvent, this, true);
-@@ -2478,7 +2497,7 @@ var SessionStoreInternal = {
+@@ -2531,7 +2548,7 @@ var SessionStoreInternal = {
let isLastRegularWindow =
Object.values(this._windows).filter(
@@ -130,7 +128,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
).length == 1;
this._log.debug(
`onClose, closing window isLastRegularWindow? ${isLastRegularWindow}`
-@@ -2535,8 +2554,8 @@ var SessionStoreInternal = {
+@@ -2588,8 +2605,8 @@ var SessionStoreInternal = {
// 2) Flush the window.
// 3) When the flush is complete, revisit our decision to store the window
// in _closedWindows, and add/remove as necessary.
@@ -141,7 +139,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
}
completionPromise = lazy.TabStateFlusher.flushWindow(aWindow).then(() => {
-@@ -2556,8 +2575,9 @@ var SessionStoreInternal = {
+@@ -2609,8 +2626,9 @@ var SessionStoreInternal = {
// Save non-private windows if they have at
// least one saveable tab or are the last window.
@@ -153,7 +151,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
if (!isLastWindow && winData.closedId > -1) {
this._addClosedAction(
-@@ -2633,7 +2653,7 @@ var SessionStoreInternal = {
+@@ -2686,7 +2704,7 @@ var SessionStoreInternal = {
* to call this method again asynchronously (for example, after
* a window flush).
*/
@@ -162,7 +160,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// Make sure SessionStore is still running, and make sure that we
// haven't chosen to forget this window.
if (
-@@ -2650,6 +2670,7 @@ var SessionStoreInternal = {
+@@ -2703,6 +2721,7 @@ var SessionStoreInternal = {
// _closedWindows from a previous call to this function.
let winIndex = this._closedWindows.indexOf(winData);
let alreadyStored = winIndex != -1;
@@ -170,7 +168,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// If sidebar command is truthy, i.e. sidebar is open, store sidebar settings
let shouldStore = hasSaveableTabs || isLastWindow;
-@@ -3467,7 +3488,7 @@ var SessionStoreInternal = {
+@@ -3525,7 +3544,7 @@ var SessionStoreInternal = {
if (!isPrivateWindow && tabState.isPrivate) {
return;
}
@@ -179,7 +177,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
return;
}
-@@ -4206,6 +4227,12 @@ var SessionStoreInternal = {
+@@ -4264,6 +4283,12 @@ var SessionStoreInternal = {
Math.min(tabState.index, tabState.entries.length)
);
tabState.pinned = false;
@@ -192,7 +190,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
if (inBackground === false) {
aWindow.gBrowser.selectedTab = newTab;
-@@ -4642,6 +4669,8 @@ var SessionStoreInternal = {
+@@ -4697,6 +4722,8 @@ var SessionStoreInternal = {
// Append the tab if we're opening into a different window,
tabIndex: aSource == aTargetWindow ? pos : Infinity,
pinned: state.pinned,
@@ -201,7 +199,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
userContextId: state.userContextId,
skipLoad: true,
preferredRemoteType,
-@@ -5146,9 +5175,10 @@ var SessionStoreInternal = {
+@@ -5194,9 +5221,10 @@ var SessionStoreInternal = {
if (activePageData.title && activePageData.title != activePageData.url) {
win.gBrowser.setInitialTabTitle(tab, activePageData.title, {
isContentTitle: true,
@@ -213,7 +211,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
}
}
-@@ -5513,7 +5543,7 @@ var SessionStoreInternal = {
+@@ -5561,7 +5589,7 @@ var SessionStoreInternal = {
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
let tab = tabbrowser.tabs[i];
@@ -222,7 +220,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
removableTabs.push(tab);
}
}
-@@ -5626,7 +5656,7 @@ var SessionStoreInternal = {
+@@ -5674,7 +5702,7 @@ var SessionStoreInternal = {
// collect the data for all windows
for (ix in this._windows) {
@@ -231,7 +229,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// window data is still in _statesToRestore
continue;
}
-@@ -5770,11 +5800,12 @@ var SessionStoreInternal = {
+@@ -5818,11 +5846,12 @@ var SessionStoreInternal = {
}
let tabbrowser = aWindow.gBrowser;
@@ -245,7 +243,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// update the internal state data for this window
for (let tab of tabs) {
if (tab == aWindow.FirefoxViewHandler.tab) {
-@@ -5785,6 +5816,9 @@ var SessionStoreInternal = {
+@@ -5833,6 +5862,9 @@ var SessionStoreInternal = {
tabsData.push(tabData);
}
@@ -255,7 +253,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// update tab group state for this window
winData.groups = [];
for (let tabGroup of aWindow.gBrowser.tabGroups) {
-@@ -5801,7 +5835,7 @@ var SessionStoreInternal = {
+@@ -5849,7 +5881,7 @@ var SessionStoreInternal = {
// 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).
if (aWindow.FirefoxViewHandler.tab?.selected) {
@@ -264,7 +262,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
winData.title = tabbrowser.tabs[0].label;
}
winData.selected = selectedIndex;
-@@ -6003,8 +6037,8 @@ var SessionStoreInternal = {
+@@ -6051,8 +6083,8 @@ var SessionStoreInternal = {
// selectTab represents.
let selectTab = 0;
if (overwriteTabs) {
@@ -275,7 +273,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
selectTab = Math.min(selectTab, winData.tabs.length);
}
-@@ -6026,6 +6060,7 @@ var SessionStoreInternal = {
+@@ -6074,6 +6106,7 @@ var SessionStoreInternal = {
if (overwriteTabs) {
for (let i = tabbrowser.browsers.length - 1; i >= 0; i--) {
if (!tabbrowser.tabs[i].selected) {
@@ -283,7 +281,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
tabbrowser.removeTab(tabbrowser.tabs[i]);
}
}
-@@ -6060,6 +6095,12 @@ var SessionStoreInternal = {
+@@ -6108,6 +6141,12 @@ var SessionStoreInternal = {
savedTabGroup => !openTabGroupIdsInWindow.has(savedTabGroup.id)
);
}
@@ -296,7 +294,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// Move the originally open tabs to the end.
if (initialTabs) {
-@@ -6626,6 +6667,25 @@ var SessionStoreInternal = {
+@@ -6674,6 +6713,25 @@ var SessionStoreInternal = {
// Most of tabData has been restored, now continue with restoring
// attributes that may trigger external events.
@@ -322,7 +320,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
if (tabData.pinned) {
tabbrowser.pinTab(tab);
-@@ -6793,6 +6853,9 @@ var SessionStoreInternal = {
+@@ -6859,6 +6917,9 @@ var SessionStoreInternal = {
aWindow.gURLBar.readOnly = false;
}
}
@@ -332,7 +330,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
let promiseParts = Promise.withResolvers();
aWindow.setTimeout(() => {
-@@ -7588,7 +7651,7 @@ var SessionStoreInternal = {
+@@ -7654,7 +7715,7 @@ var SessionStoreInternal = {
let groupsToSave = new Map();
for (let tIndex = 0; tIndex < window.tabs.length; ) {
@@ -341,7 +339,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// Adjust window.selected
if (tIndex + 1 < window.selected) {
window.selected -= 1;
-@@ -7603,7 +7666,7 @@ var SessionStoreInternal = {
+@@ -7669,7 +7730,7 @@ var SessionStoreInternal = {
);
// We don't want to increment tIndex here.
continue;
@@ -350,7 +348,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
// Convert any open groups into saved groups.
let groupStateToSave = window.groups.find(
groupState => groupState.id == window.tabs[tIndex].groupId
-@@ -8062,7 +8125,6 @@ var SessionStoreInternal = {
+@@ -8233,7 +8294,6 @@ var SessionStoreInternal = {
timer.initWithCallback(
function () {
if (beats <= 0) {
@@ -358,7 +356,7 @@ index 183543c5f29ff4c879d3058e4c09faf376a69cb7..ab482c32cc697ccef82bf0aeaa0e3a1d
Glean.sessionRestore.shutdownFlushAllOutcomes.timed_out.add(1);
deferred.resolve();
}
-@@ -8540,6 +8602,7 @@ var SessionStoreInternal = {
+@@ -8711,6 +8771,7 @@ var SessionStoreInternal = {
if (
!savedTabGroupState.tabs.length ||
this.getSavedTabGroup(savedTabGroupState.id)
diff --git a/src/browser/components/sessionstore/TabState-sys-mjs.patch b/src/browser/components/sessionstore/TabState-sys-mjs.patch
index ea08f3598..e9b6ed2a6 100644
--- a/src/browser/components/sessionstore/TabState-sys-mjs.patch
+++ b/src/browser/components/sessionstore/TabState-sys-mjs.patch
@@ -1,8 +1,16 @@
diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs
-index 4ba4dda363b602cb6f4445ef056f2f9abb1b0e1e..6b4b407e05e26faca69d9d7ac6f31510620898fe 100644
+index a33deeb5b587d6a950960a1a4781176e4e730ad7..e96cfb9a5ffbe4feccdffa8b6d18ececb48d4c52 100644
--- a/browser/components/sessionstore/TabState.sys.mjs
+++ b/browser/components/sessionstore/TabState.sys.mjs
-@@ -99,10 +99,28 @@ class _TabState {
+@@ -8,6 +8,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
+ PrivacyFilter: "resource://gre/modules/sessionstore/PrivacyFilter.sys.mjs",
+ TabAttributes: "resource:///modules/sessionstore/TabAttributes.sys.mjs",
+ TabStateCache: "resource:///modules/sessionstore/TabStateCache.sys.mjs",
++ UrlbarShared: "chrome://browser/content/urlbar/UrlbarShared.mjs",
+ sessionStoreLogger: "resource:///modules/sessionstore/SessionLogger.sys.mjs",
+ });
+
+@@ -103,10 +104,28 @@ class _TabState {
}
}
@@ -25,7 +33,7 @@ index 4ba4dda363b602cb6f4445ef056f2f9abb1b0e1e..6b4b407e05e26faca69d9d7ac6f31510
browser,
true
);
-+ if (tabData.searchMode?.source === tab.documentGlobal.UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS) {
++ if (tabData.searchMode?.source === lazy.UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS) {
+ delete tabData.searchMode;
+ }
diff --git a/src/browser/components/tabbrowser/content/tab-context-menu-js.patch b/src/browser/components/tabbrowser/content/tab-context-menu-js.patch
new file mode 100644
index 000000000..a99739423
--- /dev/null
+++ b/src/browser/components/tabbrowser/content/tab-context-menu-js.patch
@@ -0,0 +1,21 @@
+diff --git a/browser/components/tabbrowser/content/tab-context-menu.js b/browser/components/tabbrowser/content/tab-context-menu.js
+index 4a7cb33a4d9067d469bbe09d4cd8844581642f7a..d7f75471a207cccac6ca3dec49037ac30dd76163 100644
+--- a/browser/components/tabbrowser/content/tab-context-menu.js
++++ b/browser/components/tabbrowser/content/tab-context-menu.js
+@@ -839,13 +839,15 @@ var TabContextMenu = {
+ );
+ contextUnpinSelectedTabs.hidden =
+ !this.contextTab.pinned || !this.multiselected;
+-
++ gZenViewSplitter.updateContextMenuItems();
++ gZenPinnedTabManager.updatePinnedTabContextMenu(this.contextTab);
+ // Build Ask Chat items. The classic layout shows the full ask-chat submenu
+ // (#context_askChat); the alt layout shows only a flat "Summarize Page" item
+ // (#context_askChatSummarize). Hide whichever one this layout doesn't use so
+ // a pref toggle reverses cleanly.
+ if (!this._altTabContextMenu) {
+ document.getElementById("context_askChatSummarize").hidden = true;
++ document.getElementById("context_aiSeparator").hidden = true;
+ TabContextMenu.GenAI.buildTabMenu(
+ document.getElementById("context_askChat"),
+ this
diff --git a/src/browser/components/tabbrowser/content/tab-js.patch b/src/browser/components/tabbrowser/content/tab-js.patch
index a1aad36c5..f65f096c0 100644
--- a/src/browser/components/tabbrowser/content/tab-js.patch
+++ b/src/browser/components/tabbrowser/content/tab-js.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
-index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce785ca5c2c3 100644
+index 6fcef5bf0f4ac8c58515afd127c7065f26251c7c..0307d79923612b8f728bf41c13b39aa8c579171b 100644
--- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@
@@ -52,7 +52,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
return;
}
-@@ -220,11 +223,25 @@
+@@ -216,11 +219,25 @@
}
get visible() {
@@ -83,7 +83,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
}
get hidden() {
-@@ -303,7 +320,7 @@
+@@ -299,7 +316,7 @@
return false;
}
@@ -92,7 +92,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
}
get lastAccessed() {
-@@ -388,7 +405,18 @@
+@@ -384,7 +401,18 @@
}
get group() {
@@ -112,7 +112,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
}
get splitview() {
-@@ -470,6 +498,10 @@
+@@ -466,6 +494,10 @@
}
}
@@ -123,7 +123,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
// If the previous target wasn't part of this tab then this is a mouseenter event.
if (!this.contains(event.relatedTarget)) {
this._mouseenter();
-@@ -499,6 +531,7 @@
+@@ -495,6 +527,7 @@
if (!this.contains(event.relatedTarget)) {
this._mouseleave();
}
@@ -131,7 +131,15 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
}
on_dragstart(event) {
-@@ -533,6 +566,8 @@
+@@ -506,6 +539,7 @@
+ if (event.eventPhase == Event.CAPTURING_PHASE) {
+ this.style.MozUserFocus = "";
+ } else if (
++ event.target.classList?.contains("tab-reset-button") ||
+ event.target.classList?.contains("tab-close-button") ||
+ gSharedTabWarning.willShowSharedTabWarning(this)
+ ) {
+@@ -529,6 +563,8 @@
this.style.MozUserFocus = "ignore";
} else if (
event.target.classList.contains("tab-close-button") ||
@@ -140,7 +148,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button")
) {
-@@ -567,7 +602,7 @@
+@@ -563,7 +599,7 @@
}
} else if (
event.altKey &&
@@ -149,7 +157,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
) {
eventMaySelectTab = false;
} else if (!this.selected && this.multiselected) {
-@@ -592,6 +627,10 @@
+@@ -600,6 +636,10 @@
this.style.MozUserFocus = "";
}
@@ -160,7 +168,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
on_click(event) {
if (event.button != 0) {
return;
-@@ -615,14 +654,31 @@
+@@ -623,14 +663,31 @@
trigger: "alt_click",
});
}
@@ -193,7 +201,7 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
gBrowser.multiSelectedTabsCount > 0 &&
!event.target.classList.contains("tab-close-button") &&
!event.target.classList.contains("tab-icon-overlay") &&
-@@ -634,8 +690,9 @@
+@@ -642,8 +699,9 @@
}
if (
@@ -205,16 +213,16 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
) {
if (this.activeMediaBlocked) {
if (this.multiselected) {
-@@ -653,7 +710,7 @@
+@@ -661,7 +719,7 @@
return;
}
- if (event.target.classList.contains("tab-close-button")) {
+ if (!event.getModifierState("Accel") && event.target.classList.contains("tab-close-button")) {
if (this.multiselected) {
- gBrowser.removeMultiSelectedTabs(
- lazy.TabMetrics.userTriggeredContext(
-@@ -673,6 +730,14 @@
+ gBrowser.removeMultiSelectedTabs({
+ metricsContext: lazy.TabMetrics.userTriggeredContext(
+@@ -681,6 +739,14 @@
// (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true;
}
@@ -229,9 +237,9 @@ index 8f2ebf3a0bd4e2af01cf41024b16bd491e8ed961..27721e26c3cd8cb066b462dedfa4ce78
}
on_dblclick(event) {
-@@ -696,6 +761,8 @@
- animate: true,
- triggeringEvent: event,
+@@ -707,6 +773,8 @@
+ lazy.TabMetrics.METRIC_SOURCE.TAB_STRIP
+ ),
});
+ } else if (this.hasAttribute('zen-essential') && !event.target.classList.contains("tab-icon-overlay")) {
+ gZenPinnedTabManager._onTabResetPinButton(event, this, 'reset');
diff --git a/src/browser/components/tabbrowser/content/tabbrowser-js.patch b/src/browser/components/tabbrowser/content/tabbrowser-js.patch
index 006b24ec7..54ab76446 100644
--- a/src/browser/components/tabbrowser/content/tabbrowser-js.patch
+++ b/src/browser/components/tabbrowser/content/tabbrowser-js.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
-index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae107790751 100644
+index 39b5babee5942427a82a7a64ad69e1b16efebcc1..32beac13dd4215a16de3a783db6c32da5504f9d8 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js
-@@ -511,6 +511,7 @@
+@@ -513,6 +513,7 @@
* @type {MozBrowser[]}
*/
get splitViewBrowsers() {
@@ -10,7 +10,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
const browsers = [];
if (this.#activeSplitView) {
for (const tab of this.#activeSplitView.tabs) {
-@@ -584,15 +585,66 @@
+@@ -611,15 +612,66 @@
return this.tabContainer.visibleTabs;
}
@@ -76,10 +76,10 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+ return this.tabs.filter(tab => !tab.hasAttribute("zen-glance-tab"));
+ }
+
- set selectedTab(val) {
- if (
- gSharedTabWarning.willShowSharedTabWarning(val) ||
-@@ -601,6 +653,9 @@
+ setSelectedTab(val, metricsContext = null) {
+ if (this.selectedTab === val) {
+ return;
+@@ -632,6 +684,9 @@
) {
return;
}
@@ -88,8 +88,8 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+ }
// Update the tab
this.tabbox.selectedTab = val;
- }
-@@ -668,6 +723,10 @@
+
+@@ -708,6 +763,10 @@
userContextId = parseInt(tabArgument.getAttribute("usercontextid"), 10);
}
@@ -97,10 +97,10 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+ userContextId = window._zenStartupUnsyncedUserContextId;
+ }
+
- if (tabArgument && tabArgument.linkedBrowser) {
- remoteType = tabArgument.linkedBrowser.remoteType;
- initialBrowsingContextGroupId =
-@@ -760,6 +819,8 @@
+ if (openWindowInfo) {
+ userContextId = openWindowInfo.originAttributes.userContextId;
+ }
+@@ -809,6 +868,8 @@
this.tabpanels.appendChild(panel);
let tab = this.tabs[0];
@@ -109,10 +109,10 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
tab.linkedPanel = uniqueId;
this._selectedTab = tab;
this._selectedBrowser = browser;
-@@ -1126,18 +1187,24 @@
- aTab,
- { telemetrySource = this.TabMetrics.METRIC_SOURCE.UNKNOWN } = {}
- ) {
+@@ -1178,18 +1239,24 @@
+ * The context for the operation for telemetry purposes, defaults to an unknown context.
+ */
+ pinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) {
+ aTab = gZenGlanceManager.getTabOrGlanceParent(aTab);
if (aTab.pinned || aTab == FirefoxViewHandler.tab) {
return;
@@ -135,10 +135,10 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
aTab.setAttribute("pinned", "true");
this._updateTabBarForPinnedTabs();
-@@ -1145,16 +1212,25 @@
- }
-
- unpinTab(aTab) {
+@@ -1206,16 +1273,25 @@
+ * The context for the operation for telemetry purposes, defaults to an unknown context.
+ */
+ unpinTab(aTab, { metricsContext = this.TabMetrics.UNKNOWN_CONTEXT } = {}) {
+ aTab = gZenGlanceManager.getTabOrGlanceParent(aTab);
if (!aTab.pinned) {
return;
@@ -162,7 +162,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
});
aTab.style.marginInlineStart = "";
-@@ -1369,6 +1445,9 @@
+@@ -1430,6 +1506,9 @@
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
@@ -172,7 +172,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (
aIconURL &&
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
-@@ -1378,6 +1457,9 @@
+@@ -1439,6 +1518,9 @@
);
return;
}
@@ -182,23 +182,23 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let browser = this.getBrowserForTab(aTab);
browser.mIconURL = aIconURL;
-@@ -1700,7 +1782,6 @@
+@@ -1761,7 +1843,6 @@
// Preview mode should not reset the owner
- if (!this._previewMode && !oldTab.selected) {
+ if (!this.#previewMode && !oldTab.selected) {
- oldTab.owner = null;
}
- let lastRelatedTab = this._lastRelatedTabMap.get(oldTab);
-@@ -1791,6 +1872,7 @@
- if (!this._previewMode) {
+ let lastRelatedTab = this.#lastRelatedTabMap.get(oldTab);
+@@ -1852,6 +1933,7 @@
+ if (!this.#previewMode) {
newTab.recordTimeFromUnloadToReload();
newTab.updateLastAccessed();
+ newTab.removeAttribute("unread");
oldTab.updateLastAccessed();
// if this is the foreground window, update the last-seen timestamps.
if (this.documentGlobal == BrowserWindowTracker.getTopWindow()) {
-@@ -2005,6 +2087,9 @@
+@@ -2066,6 +2148,9 @@
}
let activeEl = document.activeElement;
@@ -208,7 +208,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// If focus is on the old tab, move it to the new tab.
if (activeEl == oldTab) {
newTab.focus();
-@@ -2043,7 +2128,7 @@
+@@ -2104,7 +2189,7 @@
// Focus the location bar if it was previously focused for that tab.
// In full screen mode, only bother making the location bar visible
// if the tab is a blank one.
@@ -217,7 +217,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let selectURL = () => {
if (this._asyncTabSwitching) {
// Set _awaitingSetURI flag to suppress popup notification
-@@ -2331,7 +2416,12 @@
+@@ -2392,7 +2477,12 @@
return this._setTabLabel(aTab, aLabel);
}
@@ -231,16 +231,16 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (!aLabel || (isURL && /^about:reader\?url=/.test(aLabel))) {
return false;
}
-@@ -2457,7 +2547,7 @@
+@@ -2518,7 +2608,7 @@
newIndex = this.selectedTab._tPos + 1;
}
- if (replace) {
-+ if (replace && !(!targetTab && this.selectedTab?.hasAttribute('zen-empty-tab'))) {
++ if (replace && !((targetTab || this.selectedTab)?.hasAttribute('zen-empty-tab'))) {
if (this.isTabGroupLabel(targetTab)) {
throw new Error(
"Replacing a tab group label with a tab is not supported"
-@@ -2737,6 +2827,7 @@
+@@ -2793,6 +2883,7 @@
uriIsAboutBlank,
userContextId,
skipLoad,
@@ -248,7 +248,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} = {}) {
let b = document.createXULElement("browser");
// Use the JSM global to create the permanentKey, so that if the
-@@ -2810,8 +2901,7 @@
+@@ -2866,8 +2957,7 @@
// we use a different attribute name for this?
b.setAttribute("name", name);
}
@@ -258,7 +258,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
b.setAttribute("transparent", "true");
}
-@@ -2981,7 +3071,7 @@
+@@ -3022,7 +3112,7 @@
let panel = this.getPanel(browser);
let uniqueId = this._generateUniquePanelID();
@@ -267,7 +267,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
aTab.linkedPanel = uniqueId;
// Inject the into the DOM if necessary.
-@@ -3041,8 +3131,8 @@
+@@ -3082,8 +3172,8 @@
// If we transitioned from one browser to two browsers, we need to set
// hasSiblings=false on both the existing browser and the new browser.
if (this.tabs.length == 2) {
@@ -278,7 +278,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} else {
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
}
-@@ -3227,7 +3317,6 @@
+@@ -3268,7 +3358,6 @@
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
tabIndex: tab._tPos + 1,
userContextId: tab.userContextId,
@@ -286,7 +286,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
focusUrlBar: true,
});
resolve(this.selectedBrowser);
-@@ -3337,6 +3426,10 @@
+@@ -3378,6 +3467,10 @@
schemelessInput,
hasValidUserGestureActivation = false,
textDirectiveUserActivation = false,
@@ -297,7 +297,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} = {}
) {
// all callers of addTab that pass a params object need to pass
-@@ -3347,10 +3440,25 @@
+@@ -3388,10 +3481,25 @@
);
}
@@ -308,7 +308,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+
+ let hasZenDefaultUserContextId = false;
+ let zenForcedWorkspaceId = undefined;
-+ if (beforeRouteResult.isRouteFound && typeof userContextId !== "undefined") {
++ if (beforeRouteResult.isRouteFound && (typeof userContextId === "undefined" || fromExternal)) {
+ userContextId = beforeRouteResult.userContextId;
+ hasZenDefaultUserContextId = true;
+ } else if (typeof gZenWorkspaces !== "undefined" && !_forZenEmptyTab) {
@@ -323,7 +323,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// If we're opening a foreground tab, set the owner by default.
ownerTab ??= inBackground ? null : this.selectedTab;
-@@ -3358,6 +3466,7 @@
+@@ -3399,6 +3507,7 @@
if (this.selectedTab.owner) {
this.selectedTab.owner = null;
}
@@ -331,7 +331,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// Find the tab that opened this one, if any. This is used for
// determining positioning, and inherited attributes such as the
-@@ -3410,6 +3519,22 @@
+@@ -3451,6 +3560,22 @@
noInitialLabel,
skipBackgroundNotify,
});
@@ -354,7 +354,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (insertTab) {
// Insert the tab into the tab container in the correct position.
this.#insertTabAtIndex(t, {
-@@ -3418,6 +3543,7 @@
+@@ -3459,6 +3584,7 @@
ownerTab,
openerTab,
pinned,
@@ -362,7 +362,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
bulkOrderedOpen,
tabGroup: tabGroup ?? openerTab?.group,
});
-@@ -3436,6 +3562,7 @@
+@@ -3477,6 +3603,7 @@
openWindowInfo,
skipLoad,
triggeringRemoteType,
@@ -370,7 +370,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}));
if (focusUrlBar) {
-@@ -3560,6 +3687,12 @@
+@@ -3601,6 +3728,12 @@
}
}
@@ -383,7 +383,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// Additionally send pinned tab events
if (pinned) {
this.#notifyPinnedStatus(t);
-@@ -3570,6 +3703,15 @@
+@@ -3611,6 +3744,15 @@
if (!inBackground) {
this.selectedTab = t;
}
@@ -399,15 +399,15 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
return t;
}
-@@ -3802,6 +3944,7 @@
+@@ -3834,6 +3976,7 @@
+ insertBefore = null,
isAdoptingGroup = false,
- isUserTriggered = false,
- telemetryUserCreateSource = "unknown",
+ metricsContext = this.TabMetrics.UNKNOWN_CONTEXT,
+ forSplitView = false,
} = {}
) {
if (
-@@ -3812,9 +3955,6 @@
+@@ -3844,9 +3987,6 @@
!this.isSplitViewWrapper(tabOrSplitView)
)
) {
@@ -417,7 +417,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
if (!color) {
-@@ -3835,9 +3975,14 @@
+@@ -3867,9 +4007,14 @@
label,
isAdoptingGroup
);
@@ -432,9 +432,9 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
group,
- insertBefore?.group ?? insertBefore
);
- group.addTabs(tabsAndSplitViews);
+ group.addTabs(tabsAndSplitViews, metricsContext);
-@@ -3958,7 +4103,7 @@
+@@ -3973,7 +4118,7 @@
}
this.#handleTabMove(tab, () =>
@@ -443,7 +443,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
);
}
-@@ -4044,6 +4189,7 @@
+@@ -4059,6 +4204,7 @@
color: group.color,
insertBefore: newTabs[0],
isAdoptingGroup: true,
@@ -451,7 +451,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
});
}
-@@ -4254,6 +4400,7 @@
+@@ -4269,6 +4415,7 @@
openWindowInfo,
skipLoad,
triggeringRemoteType,
@@ -459,7 +459,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
) {
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
-@@ -4323,6 +4470,7 @@
+@@ -4329,6 +4476,7 @@
openWindowInfo,
name,
skipLoad,
@@ -467,7 +467,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
});
}
-@@ -4536,9 +4684,9 @@
+@@ -4542,9 +4690,9 @@
}
// Add a new tab if needed.
@@ -479,7 +479,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let url = "about:blank";
if (tabData.entries?.length) {
-@@ -4575,8 +4723,10 @@
+@@ -4577,8 +4725,10 @@
insertTab: false,
skipLoad: true,
preferredRemoteType,
@@ -491,7 +491,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (select) {
tabToSelect = tab;
}
-@@ -4598,7 +4748,8 @@
+@@ -4600,7 +4750,8 @@
this.pinTab(tab);
// Then ensure all the tab open/pinning information is sent.
this._fireTabOpen(tab, {});
@@ -501,7 +501,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let { groupId } = tabData;
const tabGroup = tabGroupWorkingData.get(groupId);
// if a tab refers to a tab group we don't know, skip any group
-@@ -4618,7 +4769,10 @@
+@@ -4620,7 +4771,10 @@
tabGroup.stateData.id,
tabGroup.stateData.color,
tabGroup.stateData.collapsed,
@@ -513,7 +513,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
);
tabsFragment.appendChild(tabGroup.node);
}
-@@ -4673,9 +4827,21 @@
+@@ -4675,9 +4829,21 @@
// to remove the old selected tab.
if (tabToSelect) {
let leftoverTab = this.selectedTab;
@@ -535,7 +535,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert();
-@@ -4866,11 +5032,17 @@
+@@ -4882,11 +5048,17 @@
if (ownerTab) {
tab.owner = ownerTab;
}
@@ -554,16 +554,16 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (
!bulkOrderedOpen &&
((openerTab &&
-@@ -4882,7 +5054,7 @@
+@@ -4898,7 +5070,7 @@
let lastRelatedTab =
- openerTab && this._lastRelatedTabMap.get(openerTab);
+ openerTab && this.#lastRelatedTabMap.get(openerTab);
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
- if (!tabGroup) {
+ if (!tabGroup && pinned === previousTab.group?.pinned) {
tabGroup = previousTab.group;
}
if (
-@@ -4898,7 +5070,7 @@
+@@ -4914,7 +5086,7 @@
previousTab.splitview
) + 1;
} else if (previousTab.visible) {
@@ -572,7 +572,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0;
}
-@@ -4926,14 +5098,14 @@
+@@ -4942,14 +5114,14 @@
}
// Ensure index is within bounds.
if (tab.pinned) {
@@ -591,7 +591,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (pinned && !itemAfter?.pinned) {
itemAfter = null;
-@@ -4950,7 +5122,7 @@
+@@ -4966,7 +5138,7 @@
this.tabContainer._invalidateCachedTabs();
@@ -600,7 +600,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (
(this.isTab(itemAfter) && itemAfter.group == tabGroup) ||
this.isSplitViewWrapper(itemAfter)
-@@ -4981,7 +5153,11 @@
+@@ -4997,7 +5169,11 @@
const tabContainer = pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
@@ -612,7 +612,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
if (tab.group?.collapsed) {
-@@ -4996,6 +5172,7 @@
+@@ -5012,6 +5188,7 @@
if (pinned) {
this._updateTabBarForPinnedTabs();
}
@@ -620,23 +620,23 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
TabBarVisibility.update();
}
-@@ -5544,6 +5721,7 @@
- telemetrySource,
+@@ -5568,6 +5745,7 @@
+ metricsContext,
} = {}
) {
+ tabs = tabs.filter(tab => !tab.hasAttribute("zen-empty-tab"));
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window.
if (
-@@ -5633,6 +5811,7 @@
- if (lastToClose) {
- this.removeTab(lastToClose, aParams);
+@@ -5678,6 +5856,7 @@
+ closedTabCount -= 1;
+ }
}
+ gZenUIManager.onTabClose(undefined);
- } catch (e) {
- console.error(e);
- }
-@@ -5678,6 +5857,14 @@
+
+ if (closedTabCount > 0) {
+ this.recordTabMetrics(
+@@ -5730,6 +5909,14 @@
return;
}
@@ -651,7 +651,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let isVisibleTab = aTab.visible;
// We have to sample the tab width now, since _beginRemoveTab might
// end up modifying the DOM in such a way that aTab gets a new
-@@ -5685,6 +5872,9 @@
+@@ -5737,6 +5924,9 @@
// state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab);
@@ -661,8 +661,8 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (
!this._beginRemoveTab(aTab, {
closeWindowFastpath: true,
-@@ -5696,13 +5886,14 @@
- telemetrySource,
+@@ -5747,13 +5937,14 @@
+ metricsContext,
})
) {
+ delete gZenWorkspaces._isClosingWindow;
@@ -677,7 +677,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let lockTabSizing =
!this.tabContainer.verticalMode &&
!aTab.pinned &&
-@@ -5733,7 +5924,13 @@
+@@ -5784,7 +5975,13 @@
// We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null;
@@ -692,7 +692,16 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
return;
}
-@@ -5867,7 +6064,7 @@
+@@ -5827,7 +6024,7 @@
+ */
+ #isLastTabInWindow(tab) {
+ for (const otherTab of this.tabs) {
+- if (otherTab != tab && otherTab.isOpen && !otherTab.hidden) {
++ if (otherTab != tab && otherTab.isOpen && !otherTab.hidden && !otherTab.hasAttribute("zen-empty-tab")) {
+ return false;
+ }
+ }
+@@ -5917,7 +6114,7 @@
closeWindowWithLastTab != null
? closeWindowWithLastTab
: !window.toolbar.visible ||
@@ -701,7 +710,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here,
-@@ -5891,6 +6088,7 @@
+@@ -5941,6 +6138,7 @@
newTab = true;
}
@@ -709,7 +718,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation.
-@@ -5931,13 +6129,7 @@
+@@ -5982,13 +6180,7 @@
aTab._mouseleave();
if (newTab) {
@@ -724,15 +733,15 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} else {
TabBarVisibility.update();
}
-@@ -6070,6 +6262,7 @@
+@@ -6128,6 +6320,7 @@
this.tabs[i]._tPos = i;
}
+ gZenWorkspaces.updateTabsContainers();
- if (!this._windowIsClosing) {
+ if (!this.#windowIsClosing) {
// update tab close buttons state
this.tabContainer._updateCloseButtons();
-@@ -6255,6 +6448,7 @@
+@@ -6313,6 +6506,7 @@
memory_after: await getTotalMemoryUsage(),
time_to_unload_in_ms: timeElapsed,
});
@@ -740,7 +749,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
/**
-@@ -6300,6 +6494,7 @@
+@@ -6358,6 +6552,7 @@
}
let excludeTabs = new Set(aExcludeTabs);
@@ -748,7 +757,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor.
-@@ -6312,15 +6507,22 @@
+@@ -6370,13 +6565,13 @@
!excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) {
@@ -763,6 +772,11 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+ tab => !excludeTabs.has(tab) && gZenWorkspaces._shouldChangeToTab(tab) && tab !== aTab
);
+ if (Services.prefs.getBoolPref("browser.tabs.selectMRUOnClose", false)) {
+@@ -6392,6 +6587,13 @@
+ }
+ }
+
+ if (remainingTabs.length > 0 && Services.prefs.getBoolPref("zen.tabs.select-recently-used-on-close")) {
+ let mostRecentTab = remainingTabs.reduce((a, b) =>
+ b.lastAccessed > a.lastAccessed ? b : a
@@ -773,7 +787,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
let tab = this.tabContainer.findNextTab(aTab, {
direction: 1,
filter: _tab => remainingTabs.includes(_tab),
-@@ -6334,7 +6536,7 @@
+@@ -6405,7 +6607,7 @@
}
if (tab) {
@@ -782,7 +796,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
// If no qualifying visible tab was found, see if there is a tab in
-@@ -6355,7 +6557,7 @@
+@@ -6426,7 +6628,7 @@
});
}
@@ -791,7 +805,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
_blurTab(aTab) {
-@@ -6366,7 +6568,7 @@
+@@ -6437,7 +6639,7 @@
* @returns {boolean}
* False if swapping isn't permitted, true otherwise.
*/
@@ -800,7 +814,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// Do not allow transfering a private tab to a non-private window
// and vice versa.
if (
-@@ -6420,6 +6622,7 @@
+@@ -6491,6 +6693,7 @@
// fire the beforeunload event in the process. Close the other
// window if this was its last tab.
if (
@@ -808,7 +822,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
!remoteBrowser._beginRemoveTab(aOtherTab, {
adoptedByTab: aOurTab,
closeWindowWithLastTab: true,
-@@ -6431,7 +6634,7 @@
+@@ -6502,7 +6705,7 @@
// If this is the last tab of the window, hide the window
// immediately without animation before the docshell swap, to avoid
// about:blank being painted.
@@ -817,7 +831,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (closeWindow) {
let win = aOtherTab.documentGlobal;
win.windowUtils.suppressAnimation(true);
-@@ -6565,11 +6768,13 @@
+@@ -6636,11 +6839,13 @@
}
// Finish tearing down the tab that's going away.
@@ -831,7 +845,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
this.setTabTitle(aOurTab);
-@@ -6771,10 +6976,10 @@
+@@ -6860,10 +7065,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
}
@@ -844,7 +858,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
aTab.selected ||
aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
-@@ -6834,7 +7039,8 @@
+@@ -6923,7 +7128,8 @@
* @param {object} [aOptions={}]
* Key-value pairs that will be serialized into the features string.
*/
@@ -854,7 +868,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (this.tabs.length == 1) {
return null;
}
-@@ -6851,7 +7057,7 @@
+@@ -6940,7 +7146,7 @@
// tell a new window to take the "dropped" tab
let args = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
args.appendElement(aTab.splitview ?? aTab);
@@ -863,7 +877,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
private: PrivateBrowsingUtils.isWindowPrivate(window),
features: Object.entries(aOptions)
.map(([key, value]) => `${key}=${value}`)
-@@ -6859,6 +7065,8 @@
+@@ -6948,6 +7154,8 @@
openerWindow: window,
args,
});
@@ -872,7 +886,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
/**
-@@ -6971,7 +7179,7 @@
+@@ -7074,7 +7282,7 @@
* `true` if element is a ``
*/
isTabGroup(element) {
@@ -881,7 +895,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
/**
-@@ -7056,8 +7264,8 @@
+@@ -7146,8 +7354,8 @@
}
// Don't allow mixing pinned and unpinned tabs.
@@ -892,7 +906,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
}
-@@ -7103,8 +7311,8 @@
+@@ -7193,8 +7401,8 @@
this.#handleTabMove(
element,
() => {
@@ -903,7 +917,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
neighbor = neighbor.group;
}
if (neighbor?.splitview) {
-@@ -7115,6 +7323,12 @@
+@@ -7205,6 +7413,12 @@
return;
}
}
@@ -916,8 +930,8 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
if (movingForwards && neighbor) {
neighbor.after(element);
-@@ -7173,23 +7387,31 @@
- #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
+@@ -7278,23 +7492,31 @@
+ ) {
if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group;
- if (!moveBefore && !targetElement.collapsed) {
@@ -954,7 +968,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
} else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element
-@@ -7202,12 +7424,35 @@
+@@ -7307,12 +7529,35 @@
// move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group.
@@ -991,7 +1005,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// We want to include the splitview wrapper if it's the targetElement, but
// not in the case where we want to reverse tabs within the same splitview.
-@@ -7216,6 +7461,7 @@
+@@ -7321,6 +7566,7 @@
}
let getContainer = () =>
@@ -999,7 +1013,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
element.pinned
? this.tabContainer.pinnedTabsContainer
: this.tabContainer;
-@@ -7224,11 +7470,15 @@
+@@ -7329,11 +7575,15 @@
element,
() => {
if (moveBefore) {
@@ -1015,11 +1029,11 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
+ }
}
},
- metricsContext
-@@ -7302,11 +7552,15 @@
- * @param {TabMetricsContext} [metricsContext]
+ { metricsContext }
+@@ -7411,11 +7661,15 @@
+ * The context for the operation for telemetry purposes.
*/
- moveTabToExistingGroup(aTab, aGroup, metricsContext) {
+ moveTabToExistingGroup(aTab, aGroup, { metricsContext } = {}) {
- if (!this.isTab(aTab)) {
+ if (!this.isTab(aTab) && !aTab.hasAttribute('split-view-group')) {
throw new Error("Can only move a tab into a tab group");
@@ -1035,7 +1049,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
}
if (aTab.group && aTab.group.id === aGroup.id) {
return;
-@@ -7378,6 +7632,7 @@
+@@ -7489,6 +7743,7 @@
let state = {
tabIndex: tab._tPos,
@@ -1043,7 +1057,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
};
if (tab.visible) {
state.elementIndex = tab.elementIndex;
-@@ -7409,7 +7664,7 @@
+@@ -7527,7 +7782,7 @@
let changedSplitView =
previousTabState.splitViewId != currentTabState.splitViewId;
@@ -1052,7 +1066,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
tab.dispatchEvent(
new CustomEvent("TabMove", {
bubbles: true,
-@@ -7456,6 +7711,10 @@
+@@ -7579,6 +7834,10 @@
moveActionCallback();
@@ -1063,7 +1077,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// Clear tabs cache after moving nodes because the order of tabs may have
// changed.
this.tabContainer._invalidateCachedTabs();
-@@ -7506,7 +7765,22 @@
+@@ -7626,7 +7885,22 @@
* @returns {object}
* The new tab in the current window, null if the tab couldn't be adopted.
*/
@@ -1087,7 +1101,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
// Swap the dropped tab with a new one we create and then close
// it in the other window (making it seem to have moved between
// windows). We also ensure that the tab we create to swap into has
-@@ -7549,6 +7823,8 @@
+@@ -7669,6 +7943,8 @@
}
params.skipLoad = true;
let newTab = this.addWebTab("about:blank", params);
@@ -1096,7 +1110,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
aTab.container.tabDragAndDrop.finishAnimateTabMove();
-@@ -8259,7 +8535,7 @@
+@@ -8448,7 +8724,7 @@
// preventDefault(). It will still raise the window if appropriate.
return;
}
@@ -1105,7 +1119,7 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
window.focus();
aEvent.preventDefault();
}
-@@ -8276,7 +8552,6 @@
+@@ -8465,7 +8741,6 @@
on_TabGroupCollapse(aEvent) {
aEvent.target.tabs.forEach(tab => {
@@ -1113,38 +1127,38 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
});
}
-@@ -8630,7 +8905,9 @@
+@@ -8819,7 +9094,9 @@
- let filter = this._tabFilters.get(tab);
+ let filter = this.#tabFilters.get(tab);
if (filter) {
+ try {
browser.webProgress.removeProgressListener(filter);
+ } catch {}
- let listener = this._tabListeners.get(tab);
+ let listener = this.#tabListeners.get(tab);
if (listener) {
-@@ -9435,6 +9712,7 @@
+@@ -9604,6 +9881,7 @@
aWebProgress.isTopLevel
) {
- this.mTab.setAttribute("busy", "true");
-+ if (!this.mTab.selected) this.mTab.setAttribute("unread", "true");
- gBrowser._tabAttrModified(this.mTab, ["busy"]);
- this.mTab._notselectedsinceload = !this.mTab.selected;
+ this._tab.setAttribute("busy", "true");
++ if (!this._tab.selected) this._tab.setAttribute("unread", "true");
+ gBrowser._tabAttrModified(this._tab, ["busy"]);
+ this._tab._notselectedsinceload = !this._tab.selected;
}
-@@ -9515,6 +9793,7 @@
+@@ -9684,6 +9962,7 @@
// known defaults. Note we use the original URL since about:newtab
// redirects to a prerendered page.
const shouldRemoveFavicon =
-+ !this.mTab.zenStaticIcon &&
- !this.mBrowser.mIconURL &&
++ !this._tab.zenStaticIcon &&
+ !this._browser.mIconURL &&
!ignoreBlank &&
!(originalLocation.spec in FAVICON_DEFAULTS);
-@@ -9689,13 +9968,6 @@
- this.mBrowser.originalURI = aRequest.originalURI;
+@@ -9858,13 +10137,6 @@
+ this._browser.originalURI = aRequest.originalURI;
}
- if (!gBrowser._allowTransparentBrowser) {
-- this.mBrowser.toggleAttribute(
+- this._browser.toggleAttribute(
- "transparent",
- AIWindow.isAIWindowActive(window) &&
- AIWindow.isAIWindowContentPage(aLocation)
@@ -1152,14 +1166,4 @@ index 08b5b56e069d038d72c87355920c4ce8a55ed805..209c0ddc0297adb8340180c58de07ae1
- }
}
- let userContextId = this.mBrowser.getAttribute("usercontextid") || 0;
-@@ -10587,7 +10859,8 @@ var TabContextMenu = {
- );
- contextUnpinSelectedTabs.hidden =
- !this.contextTab.pinned || !this.multiselected;
--
-+ gZenViewSplitter.updateContextMenuItems();
-+ gZenPinnedTabManager.updatePinnedTabContextMenu(this.contextTab);
- // Build Ask Chat items
- TabContextMenu.GenAI.buildTabMenu(
- document.getElementById("context_askChat"),
+ let userContextId = this._browser.getAttribute("usercontextid") || 0;
diff --git a/src/browser/components/tabbrowser/content/tabgroup-js.patch b/src/browser/components/tabbrowser/content/tabgroup-js.patch
index 98e1d9fe6..140b011c2 100644
--- a/src/browser/components/tabbrowser/content/tabgroup-js.patch
+++ b/src/browser/components/tabbrowser/content/tabgroup-js.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
-index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e398ee999 100644
+index 237950fb2c449ce088c204d33a70b1d95dae549b..af200a043dcd2e24393fcefe32493e356c9f8c6f 100644
--- a/browser/components/tabbrowser/content/tabgroup.js
+++ b/browser/components/tabbrowser/content/tabgroup.js
@@ -14,11 +14,11 @@
@@ -129,7 +129,7 @@ index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e
}
get color() {
-@@ -335,6 +366,9 @@
+@@ -330,6 +361,9 @@
}
set collapsed(val) {
@@ -139,7 +139,7 @@ index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e
if (!!val == this.collapsed) {
return;
}
-@@ -421,7 +455,6 @@
+@@ -416,7 +450,6 @@
tabGroupName,
})
.then(result => {
@@ -147,7 +147,7 @@ index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e
});
}
-@@ -496,13 +529,68 @@
+@@ -491,13 +524,68 @@
* @returns {MozTabbrowserTab[]}
*/
get tabs() {
@@ -221,15 +221,17 @@ index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e
}
/**
-@@ -610,7 +698,6 @@
- );
+@@ -617,9 +705,6 @@
+ });
} else {
if (tabOrSplitView.pinned) {
-- tabOrSplitView.documentGlobal.gBrowser.unpinTab(tabOrSplitView);
+- tabOrSplitView.documentGlobal.gBrowser.unpinTab(tabOrSplitView, {
+- metricsContext,
+- });
}
let tabToMove =
this.documentGlobal === tabOrSplitView.documentGlobal
-@@ -679,7 +766,7 @@
+@@ -682,7 +767,7 @@
*/
on_click(event) {
let isToggleElement =
@@ -238,7 +240,7 @@ index e78fa0dec83424c0059c081f83fda0d23bdb5a94..a7de584d9029ff9e55d809d50377593e
event.target === this.#overflowCountLabel;
if (isToggleElement && event.button === 0) {
event.preventDefault();
-@@ -758,5 +845,6 @@
+@@ -761,5 +846,6 @@
}
}
diff --git a/src/browser/components/urlbar/UrlbarController-sys-mjs.patch b/src/browser/components/urlbar/UrlbarController-sys-mjs.patch
deleted file mode 100644
index 3db64fc48..000000000
--- a/src/browser/components/urlbar/UrlbarController-sys-mjs.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
-index a05894d593e4149097c473822a38f87b2220625f..1660106c2a6548920fdffd2656e5a1f12c2d548b 100644
---- a/browser/components/urlbar/UrlbarController.sys.mjs
-+++ b/browser/components/urlbar/UrlbarController.sys.mjs
-@@ -305,7 +305,6 @@ export class UrlbarController {
- const isMac = AppConstants.platform == "macosx";
- // Handle readline/emacs-style navigation bindings on Mac.
- if (
-- isMac &&
- this.view.isOpen &&
- event.ctrlKey &&
- (event.key == "n" || event.key == "p")
-@@ -494,6 +493,8 @@ export class UrlbarController {
- });
- }
- event.preventDefault();
-+ } else if (!this.input.value && !(event.ctrlKey || event.altKey || event.shiftKey)) {
-+ this.browserWindow.gZenUIManager.enableCommandsMode(event);
- }
- break;
- }
diff --git a/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch b/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch
index c45a18d70..ffa54d3ae 100644
--- a/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch
+++ b/src/browser/components/urlbar/UrlbarMuxerStandard-sys-mjs.patch
@@ -1,14 +1,14 @@
diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
-index 16041c10755adced9d665539796737a9f55712de..2232bdcc02e20dbb384ca0529a8bd8ce73dc6284 100644
+index 65bd41b2ea14c26d490632d4a5348d6cf33ee9dd..80fbd685156949b6c7e93ed9d0ef56350dd1a0fe 100644
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
-@@ -837,11 +837,16 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
+@@ -925,11 +925,16 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
result.providerName == "UrlbarProviderHeuristicFallback" &&
state.context.heuristicResult?.providerName !=
"UrlbarProviderHeuristicFallback"
+ && !(
-+ result.type == UrlbarUtils.RESULT_TYPE.SEARCH &&
-+ state.context.heuristicResult?.type == UrlbarUtils.RESULT_TYPE.URL
++ result.type == lazy.UrlbarShared.RESULT_TYPE.SEARCH &&
++ state.context.heuristicResult?.type == lazy.UrlbarShared.RESULT_TYPE.URL
+ )
) {
return false;
@@ -19,11 +19,11 @@ index 16041c10755adced9d665539796737a9f55712de..2232bdcc02e20dbb384ca0529a8bd8ce
// Discard the result if a tab-to-search result was added already.
if (!state.canAddTabToSearch) {
return false;
-@@ -1491,7 +1496,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
+@@ -1593,7 +1598,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
usedLimits.maxResultCount++;
}
-+ if (!(result.heuristic && result.source == UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS)) {
++ if (!(result.heuristic && result.source == lazy.UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS)) {
state.usedResultSpan += span;
+ }
this._updateStatePostAdd(result, state);
diff --git a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch
index 9b41ab880..9644cca42 100644
--- a/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch
+++ b/src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch
@@ -1,8 +1,18 @@
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
-index 2d21248256c6c2bfb8dac958133c10e3251ef564..f788bd10ec2c08e4b27b77cd3bb0489fb04e8b7a 100644
+index 89f0d44d462de3d7d0f581d6371606f475443822..0d45ce5f6455e9c7276c54f504906bade5b3d286 100644
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
-@@ -462,6 +462,7 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([
+@@ -163,6 +163,9 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([
+ // Feature gate pref for flight status suggestions in the urlbar.
+ ["flightStatus.featureGate", false],
+
++ // Whether to close the urlbar when blurring the window while the urlbar is focused.
++ ["closeOnWindowBlur", true],
++
+ // The minimum prefix length of a flight status keyword the user must type to
+ // trigger the suggestion. 0 means the min length should be taken from Nimbus
+ // or remote settings.
+@@ -482,6 +485,7 @@ const PREF_URLBAR_DEFAULTS = /** @type {PreferenceDefinition[]} */ ([
["shortcuts.tabs", true],
["shortcuts.history", true],
["shortcuts.actions", true],
@@ -10,7 +20,7 @@ index 2d21248256c6c2bfb8dac958133c10e3251ef564..f788bd10ec2c08e4b27b77cd3bb0489f
// Boolean to determine if the providers defined in `exposureResults`
// should be displayed in search results. This can be set by a
-@@ -799,6 +800,8 @@ function makeDefaultResultGroups({ showSearchSuggestionsFirst }) {
+@@ -840,6 +844,8 @@ function makeDefaultResultGroups({
*/
let rootGroup = {
children: [
diff --git a/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch b/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch
index 83a3c92b0..7a443b0b3 100644
--- a/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch
+++ b/src/browser/components/urlbar/UrlbarProvidersManager-sys-mjs.patch
@@ -1,35 +1,35 @@
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
-index 8de151f473ac6b95bc606251f78a4bede093ee0c..dbd302259c54b0196a370b9ff12ba0dcf1545272 100644
+index 67f51c7996c24549f39594c9a518bc5316350ce7..d66969f2411bb687c15448ad828b64ddf43c3389 100644
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
-@@ -913,6 +913,7 @@ export class Query {
+@@ -914,6 +914,7 @@ export class Query {
if (
result.heuristic &&
this.context.searchMode &&
-+ !(this.context.searchMode.source === lazy.UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS && result.payload?.zenAction) &&
++ !(this.context.searchMode.source === lazy.UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS && result.payload?.zenAction) &&
(!this.context.trimmedSearchString ||
(!this.context.searchMode.engineName && !result.autofill))
) {
-@@ -1043,6 +1044,7 @@ function updateSourcesIfEmpty(context) {
- lazy.UrlbarTokenizer.TYPE.RESTRICT_TITLE,
- lazy.UrlbarTokenizer.TYPE.RESTRICT_URL,
- lazy.UrlbarTokenizer.TYPE.RESTRICT_ACTION,
-+ lazy.UrlbarTokenizer.TYPE.RESTRICT_WORKSPACE,
+@@ -1060,6 +1061,7 @@ function updateSourcesIfEmpty(context) {
+ lazy.UrlbarShared.TOKEN_TYPE.RESTRICT_TITLE,
+ lazy.UrlbarShared.TOKEN_TYPE.RESTRICT_URL,
+ lazy.UrlbarShared.TOKEN_TYPE.RESTRICT_ACTION,
++ lazy.UrlbarShared.TOKEN_TYPE.RESTRICT_WORKSPACE,
].includes(t.type)
);
-@@ -1100,6 +1102,14 @@ function updateSourcesIfEmpty(context) {
+@@ -1119,6 +1121,14 @@ function updateSourcesIfEmpty(context) {
acceptedSources.push(source);
}
break;
-+ case lazy.UrlbarUtils.RESULT_SOURCE.WORKSPACES:
++ case lazy.UrlbarShared.RESULT_SOURCE.WORKSPACES:
+ if (
-+ restrictTokenType === lazy.UrlbarTokenizer.TYPE.RESTRICT_WORKSPACE ||
++ restrictTokenType === lazy.UrlbarShared.TOKEN_TYPE.RESTRICT_WORKSPACE ||
+ !restrictTokenType
+ ) {
+ acceptedSources.push(source);
+ }
+ break;
- case lazy.UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL:
- case lazy.UrlbarUtils.RESULT_SOURCE.ADDON:
+ case lazy.UrlbarShared.RESULT_SOURCE.OTHER_LOCAL:
+ case lazy.UrlbarShared.RESULT_SOURCE.ADDON:
default:
diff --git a/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch b/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch
deleted file mode 100644
index 0b5a8b9b8..000000000
--- a/src/browser/components/urlbar/UrlbarResult-sys-mjs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/browser/components/urlbar/UrlbarResult.sys.mjs b/browser/components/urlbar/UrlbarResult.sys.mjs
-index 21f7938f76375e7230f9509e4932cafa4d0e57f2..ab96b160b6c65da3bf267d9fe2f1f35c7507466e 100644
---- a/browser/components/urlbar/UrlbarResult.sys.mjs
-+++ b/browser/components/urlbar/UrlbarResult.sys.mjs
-@@ -181,6 +181,10 @@ export class UrlbarResult {
- return this.#heuristic;
- }
-
-+ set heuristic(value) {
-+ this.#heuristic = value;
-+ }
-+
- get hideRowLabel() {
- return this.#hideRowLabel;
- }
diff --git a/src/browser/components/urlbar/UrlbarTokenizer-sys-mjs.patch b/src/browser/components/urlbar/UrlbarTokenizer-sys-mjs.patch
deleted file mode 100644
index c195ba7d9..000000000
--- a/src/browser/components/urlbar/UrlbarTokenizer-sys-mjs.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/browser/components/urlbar/UrlbarTokenizer.sys.mjs b/browser/components/urlbar/UrlbarTokenizer.sys.mjs
-index d4af0ee5138a69139b94d898fb07e2345172f025..f750aae3f9f0a849ca009784510575b2b7119e6d 100644
---- a/browser/components/urlbar/UrlbarTokenizer.sys.mjs
-+++ b/browser/components/urlbar/UrlbarTokenizer.sys.mjs
-@@ -66,6 +66,7 @@ export var UrlbarTokenizer = {
- // `looksLikeOrigin()` returned `LOOKS_LIKE_ORIGIN.OTHER` for this token. It
- // may or may not be an origin.
- POSSIBLE_ORIGIN_BUT_SEARCH_ALLOWED: 12,
-+ RESTRICT_WORKSPACE: 13,
- }),
-
- // The special characters below can be typed into the urlbar to restrict
-@@ -83,6 +84,7 @@ export var UrlbarTokenizer = {
- TITLE: "#",
- URL: "$",
- ACTION: ">",
-+ WORKSPACE: "`",
- }),
-
- // The keys of characters in RESTRICT that will enter search mode.
-@@ -97,6 +99,7 @@ export var UrlbarTokenizer = {
- if (lazy.UrlbarPrefs.get("scotchBonnet.enableOverride")) {
- keys.push(this.RESTRICT.ACTION);
- }
-+ keys.push(this.RESTRICT.WORKSPACE);
- return new Set(keys);
- },
-
diff --git a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch
index 3b3dd4315..630553ff9 100644
--- a/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch
+++ b/src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch
@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
-index aa7c67f2bfaa3f15d592a14b527a8721dfc9bc6f..d2fe012796ea3a5be05090a732011b3cf92b78be 100644
+index 78c76bde00b6b581184cee1cd0e1756e5f2da6a4..94c713470b1240729ef2350d090b0449f3801af4 100644
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
-@@ -110,6 +110,8 @@ export var UrlbarUtils = {
+@@ -126,6 +126,8 @@ export var UrlbarUtils = {
SEMANTIC_HISTORY: "semanticHistory",
SUGGESTED_INDEX: "suggestedIndex",
TAIL_SUGGESTION: "tailSuggestion",
@@ -11,22 +11,13 @@ index aa7c67f2bfaa3f15d592a14b527a8721dfc9bc6f..d2fe012796ea3a5be05090a732011b3c
}),
// Defines provider types.
-@@ -171,6 +173,8 @@ export var UrlbarUtils = {
- OTHER_NETWORK: 6,
- ADDON: 7,
- ACTIONS: 8,
-+ ZEN_ACTIONS: 9,
-+ WORKSPACES: 10,
- }),
-
- // Per-result exposure telemetry.
-@@ -320,6 +324,14 @@ export var UrlbarUtils = {
+@@ -274,6 +276,14 @@ export var UrlbarUtils = {
telemetryLabel: "actions",
- uiLabel: "urlbar-searchmode-actions2",
+ uiLabel: "urlbar-searchmode-actions3",
},
+ {
-+ source: this.RESULT_SOURCE.WORKSPACES,
-+ restrict: lazy.UrlbarTokenizer.RESTRICT.WORKSPACE,
++ source: UrlbarShared.RESULT_SOURCE.WORKSPACES,
++ restrict: UrlbarShared.RESTRICT_TOKENS.WORKSPACE,
+ icon: "chrome://browser/skin/zen-icons/selectable/layers.svg",
+ pref: "shortcuts.workspaces",
+ telemetryLabel: "workspaces",
@@ -35,12 +26,12 @@ index aa7c67f2bfaa3f15d592a14b527a8721dfc9bc6f..d2fe012796ea3a5be05090a732011b3c
]);
},
-@@ -612,6 +624,12 @@ export var UrlbarUtils = {
+@@ -566,6 +576,12 @@ export var UrlbarUtils = {
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
case "UrlbarProviderHistoryUrlHeuristic":
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
+ case "ZenUrlbarProviderGlobalActions":
-+ if (result.source == this.RESULT_SOURCE.WORKSPACES) {
++ if (result.source == UrlbarShared.RESULT_SOURCE.WORKSPACES) {
+ return this.RESULT_GROUP.ZEN_WORKSPACE;
+ } else {
+ return this.RESULT_GROUP.ZEN_ACTION;
diff --git a/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch b/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch
index 432482c51..07511ad10 100644
--- a/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch
+++ b/src/browser/components/urlbar/UrlbarValueFormatter-sys-mjs.patch
@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
-index 8def83509f097ba034b9d94ae00d2ee474ec2d30..ebdb84b9af928b132b848bd4c5bb506d813e5e06 100644
+index 7ccffa60be42ba5e554b0e91bc831c56c24dfb42..ca5d6f983490f6cfc392c92f3570a5fb1bb3c43d 100644
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
@@ -77,7 +77,7 @@ export class UrlbarValueFormatter {
@@ -11,7 +11,7 @@ index 8def83509f097ba034b9d94ae00d2ee474ec2d30..ebdb84b9af928b132b848bd4c5bb506d
});
}
-@@ -105,6 +105,18 @@ export class UrlbarValueFormatter {
+@@ -126,6 +126,18 @@ export class UrlbarValueFormatter {
}
#ensureFormattedHostVisible(urlMetaData) {
@@ -30,7 +30,7 @@ index 8def83509f097ba034b9d94ae00d2ee474ec2d30..ebdb84b9af928b132b848bd4c5bb506d
// Make sure the host is always visible. Since it is aligned on
// the first strong directional character, we set scrollLeft
// appropriately to ensure the domain stays visible in case of an
-@@ -381,7 +393,7 @@ export class UrlbarValueFormatter {
+@@ -403,7 +415,7 @@ export class UrlbarValueFormatter {
* @returns {boolean}
* True if formatting was applied and false if not.
*/
@@ -39,11 +39,15 @@ index 8def83509f097ba034b9d94ae00d2ee474ec2d30..ebdb84b9af928b132b848bd4c5bb506d
let urlMetaData = this.#getUrlMetaData();
if (!urlMetaData) {
return false;
-@@ -650,6 +662,7 @@ export class UrlbarValueFormatter {
- this.#window.requestAnimationFrame(() => {
- if (instance == this.#resizeInstance) {
- this.#ensureFormattedHostVisible();
-+ this._formatURL();
+@@ -688,9 +700,10 @@ export class UrlbarValueFormatter {
+ ) {
+ // The host range is no longer valid.
+ this.#removeURLFormat();
+- this.#formatURL();
++ this._formatURL();
+ } else {
+ this.#ensureFormattedHostVisible();
++ this._formatURL();
+ }
}
});
- }, 100);
diff --git a/src/browser/components/urlbar/content/UrlbarChildController-mjs.patch b/src/browser/components/urlbar/content/UrlbarChildController-mjs.patch
new file mode 100644
index 000000000..a7751f7ca
--- /dev/null
+++ b/src/browser/components/urlbar/content/UrlbarChildController-mjs.patch
@@ -0,0 +1,21 @@
+diff --git a/browser/components/urlbar/content/UrlbarChildController.mjs b/browser/components/urlbar/content/UrlbarChildController.mjs
+index a8e9d3093d046612650a17970330a8279f55833f..063a3e8adf009d6c0ddc60430bc0e7485e812b8a 100644
+--- a/browser/components/urlbar/content/UrlbarChildController.mjs
++++ b/browser/components/urlbar/content/UrlbarChildController.mjs
+@@ -258,7 +258,6 @@ export class UrlbarChildController {
+ const isMac = AppConstants.platform == "macosx";
+ // Handle readline/emacs-style navigation bindings on Mac.
+ if (
+- isMac &&
+ this.view.isOpen &&
+ event.ctrlKey &&
+ (event.key == "n" || event.key == "p")
+@@ -450,6 +449,8 @@ export class UrlbarChildController {
+ });
+ }
+ event.preventDefault();
++ } else if (!this.input.value && !(event.ctrlKey || event.altKey || event.shiftKey)) {
++ this.window.gZenUIManager.enableCommandsMode(event);
+ }
+ break;
+ }
diff --git a/src/browser/components/urlbar/content/UrlbarInput-mjs.patch b/src/browser/components/urlbar/content/UrlbarInput-mjs.patch
index a880c4f88..3fb7cbeb4 100644
--- a/src/browser/components/urlbar/content/UrlbarInput-mjs.patch
+++ b/src/browser/components/urlbar/content/UrlbarInput-mjs.patch
@@ -1,9 +1,9 @@
diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs
-index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03fb88add9 100644
+index e7e9495e56076cd112beafb8297dece4ae4cea58..afdc80c034e2a3c9a50e6e5d2cc650e59bf2eb91 100644
--- a/browser/components/urlbar/content/UrlbarInput.mjs
+++ b/browser/components/urlbar/content/UrlbarInput.mjs
-@@ -98,6 +98,13 @@ const lazy = XPCOMUtils.declareLazy({
- logger: () => lazy.UrlbarUtils.getLogger({ prefix: "Input" }),
+@@ -101,6 +101,13 @@ const lazy = XPCOMUtils.declareLazy({
+ logger: () => UrlbarShared.getLogger({ prefix: "Input" }),
});
+XPCOMUtils.defineLazyPreferenceGetter(
@@ -16,7 +16,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
const UNLIMITED_MAX_RESULTS = 99;
let getBoundsWithoutFlushing = element =>
-@@ -770,7 +777,16 @@ ${
+@@ -769,7 +776,16 @@ ${
// See _on_select(). HTMLInputElement.select() dispatches a "select"
// event but does not set the primary selection.
this._suppressPrimaryAdjustment = true;
@@ -33,7 +33,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
this._suppressPrimaryAdjustment = false;
}
-@@ -844,6 +860,10 @@ ${
+@@ -843,6 +859,10 @@ ${
hideSearchTerms = false,
isSameDocument = false,
} = {}) {
@@ -44,7 +44,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
if (!this.#isAddressbar) {
throw new Error(
"Cannot set URI for UrlbarInput that is not an address bar"
-@@ -1138,7 +1158,16 @@ ${
+@@ -1137,7 +1157,16 @@ ${
this.searchModeSwitcher?.updateSearchIcon();
}
@@ -61,10 +61,10 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
}
/**
-@@ -1627,7 +1656,11 @@ ${
- }
+@@ -1626,7 +1655,11 @@ ${
+ openParams.avoidBrowserFocus = keepViewOpen;
- if (!this.#providesSearchMode(result)) {
+ if (!this.#providesSearchMode(result) && !keepViewOpen) {
- this.view.close({ elementPicked: true });
+ if (this._zenHandleUrlbarClose) {
+ this._zenHandleUrlbarClose(true, true);
@@ -74,7 +74,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
}
if (isCanonized) {
-@@ -2936,6 +2969,42 @@ ${
+@@ -2974,6 +3007,42 @@ ${
await this.#updateLayoutBreakoutDimensions();
}
@@ -117,14 +117,10 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
startLayoutExtend() {
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
// Do not expand if the Urlbar does not support being expanded or it is
-@@ -2950,10 +3019,18 @@ ${
- return;
- }
-
+@@ -2988,6 +3057,14 @@ ${
+ this.setAttribute("popover", "manual");
- this.#updateTextboxPosition();
-
this.toggleAttribute("breakout-extend", true);
+ this.#updateTextboxPosition();
+ this.window.gZenUIManager.onUrlbarOpen();
+ if (this.zenUrlbarBehavior == 'float' || (this.zenUrlbarBehavior == 'floating-on-type' && !this.focusedViaMousedown)) {
@@ -136,7 +132,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
// Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window.
if (!this.hasAttribute("breakout-extend-animate")) {
-@@ -2981,7 +3058,31 @@ ${
+@@ -3011,6 +3088,30 @@ ${
return;
}
@@ -167,8 +163,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
+ this.removeAttribute("popover");
this.#updateTextboxPosition();
}
-
-@@ -3028,7 +3129,7 @@ ${
+@@ -3049,7 +3148,7 @@ ${
forceUnifiedSearchButtonAvailable = false
) {
let prevState = this.getAttribute("pageproxystate");
@@ -177,7 +172,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
this.setAttribute("pageproxystate", state);
this._inputContainer.setAttribute("pageproxystate", state);
this._identityBox?.setAttribute("pageproxystate", state);
-@@ -3309,10 +3410,12 @@ ${
+@@ -3332,10 +3431,12 @@ ${
}
this.style.top = px(
@@ -190,7 +185,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
);
}
-@@ -3371,9 +3474,10 @@ ${
+@@ -3394,9 +3495,10 @@ ${
return;
}
@@ -202,7 +197,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
);
this.style.setProperty(
"--urlbar-height",
-@@ -3878,6 +3982,7 @@ ${
+@@ -3902,6 +4004,7 @@ ${
}
_toggleActionOverride(event) {
@@ -210,7 +205,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
if (
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
event.keyCode == KeyEvent.DOM_VK_ALT ||
-@@ -3990,8 +4095,8 @@ ${
+@@ -4014,8 +4117,8 @@ ${
if (!this.#isAddressbar) {
return val;
}
@@ -221,15 +216,15 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
: val;
// Only trim value if the directionality doesn't change to RTL and we're not
// showing a strikeout https protocol.
-@@ -4290,6 +4395,7 @@ ${
- resultDetails = null,
- browser = this.window.gBrowser.selectedBrowser
+@@ -4317,6 +4420,7 @@ ${
+ browser = this.window.gBrowser.selectedBrowser,
+ keepViewOpen = false
) {
+ openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere);
if (this.#isAddressbar) {
this.#prepareAddressbarLoad(
url,
-@@ -4401,6 +4507,10 @@ ${
+@@ -4430,6 +4534,10 @@ ${
}
reuseEmpty = true;
}
@@ -240,7 +235,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
if (
where == "tab" &&
reuseEmpty &&
-@@ -4408,6 +4518,9 @@ ${
+@@ -4437,6 +4545,9 @@ ${
) {
where = "current";
}
@@ -250,7 +245,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
return where;
}
-@@ -4662,6 +4775,7 @@ ${
+@@ -4691,6 +4802,7 @@ ${
this.setResultForCurrentValue(null);
this.handleCommand();
this.controller.clearLastQueryContextCache();
@@ -258,7 +253,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
this._suppressStartQuery = false;
});
-@@ -4669,7 +4783,6 @@ ${
+@@ -4698,7 +4810,6 @@ ${
contextMenu.addEventListener("popupshowing", () => {
// Close the results pane when the input field contextual menu is open,
// because paste and go doesn't want a result selection.
@@ -266,7 +261,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
-@@ -4825,7 +4938,11 @@ ${
+@@ -4979,7 +5090,11 @@ ${
if (!engineName && !source && !this.hasAttribute("searchmode")) {
return;
}
@@ -279,7 +274,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
if (this._searchModeIndicatorTitle) {
this._searchModeIndicatorTitle.textContent = "";
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
-@@ -5141,6 +5258,7 @@ ${
+@@ -5297,6 +5412,7 @@ ${
this.document.l10n.setAttributes(
this.inputField,
@@ -287,7 +282,20 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
l10nId,
l10nId == "urlbar-placeholder-with-name"
? { name: engineName }
-@@ -5264,6 +5382,11 @@ ${
+@@ -5347,6 +5463,12 @@ ${
+ }
+
+ lazy.logger.debug("Blur Event");
++ if (
++ this.document.commandDispatcher.focusedElement == this.inputField &&
++ !lazy.UrlbarPrefs.get("closeOnWindowBlur")
++ ) {
++ return;
++ }
+ // We cannot count every blur events after a missed engagement as abandoment
+ // because the user may have clicked on some view element that executes
+ // a command causing a focus change. For example opening preferences from
+@@ -5424,6 +5546,11 @@ ${
}
_on_click(event) {
@@ -299,7 +307,11 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
switch (event.target) {
case this.inputField:
case this._inputContainer:
-@@ -5356,7 +5479,7 @@ ${
+@@ -5513,10 +5640,11 @@ ${
+ }
+ if (untrim) {
+ this.setValue(this._untrimmedValue);
++ this.setSelectionRange(0, this.value.length);
}
}
@@ -308,7 +320,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
this.view.autoOpen({ event });
} else {
if (this._untrimOnFocusAfterKeydown) {
-@@ -5396,9 +5519,16 @@ ${
+@@ -5556,9 +5684,16 @@ ${
}
_on_mousedown(event) {
@@ -326,7 +338,7 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
if (
event.composedTarget != this.inputField &&
event.composedTarget != this._inputContainer
-@@ -5408,6 +5538,10 @@ ${
+@@ -5568,6 +5703,10 @@ ${
this.focusedViaMousedown = !this.focused;
this.#preventClickSelectsAll = this.focused;
@@ -337,21 +349,21 @@ index 0fba59d62af9d3cd05bfee2cf84cd8b7cf9bfd6e..fdf4f8a89fc35a6cf214fb0213f6cd03
// Keep the focus status, since the attribute may be changed
// upon calling this.focus().
-@@ -5443,7 +5577,7 @@ ${
- }
- // Don't close the view when clicking on a tab; we may want to keep the
+@@ -5605,7 +5744,7 @@ ${
// view open on tab switch, and the TabSelect event arrived earlier.
-- if (event.target.closest?.("tab")) {
-+ if (event.target.closest?.("tab") || event.target.closest?.("#tabs-newtab-button")) {
+ // Also ignore mousedown on the urlbarView context menu: opening/closing the
+ // view is already handled by the result opening flow.
+- if (event.target.closest?.("tab, #urlbarView-context-menu")) {
++ if (event.target.closest?.("tab, #urlbarView-context-menu") || event.target.closest?.("#tabs-newtab-button")) {
break;
}
-@@ -5732,7 +5866,7 @@ ${
+@@ -5894,7 +6033,7 @@ ${
// When we are in actions search mode we can show more results so
// increase the limit.
let maxResults =
-- this.searchMode?.source != lazy.UrlbarUtils.RESULT_SOURCE.ACTIONS
-+ this.searchMode?.source != lazy.UrlbarUtils.RESULT_SOURCE.ZEN_ACTIONS
+- this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ACTIONS
++ this.searchMode?.source != UrlbarShared.RESULT_SOURCE.ZEN_ACTIONS
? lazy.UrlbarPrefs.get("maxRichResults")
: UNLIMITED_MAX_RESULTS;
let options = {
diff --git a/src/browser/components/urlbar/content/UrlbarResult-mjs.patch b/src/browser/components/urlbar/content/UrlbarResult-mjs.patch
new file mode 100644
index 000000000..ec4496a54
--- /dev/null
+++ b/src/browser/components/urlbar/content/UrlbarResult-mjs.patch
@@ -0,0 +1,15 @@
+diff --git a/browser/components/urlbar/content/UrlbarResult.mjs b/browser/components/urlbar/content/UrlbarResult.mjs
+index 30662cbb0551a5efe12926eb1524719ece24ee48..1ed598c8b8c0836759b5af10e6cc9f5e334744ef 100644
+--- a/browser/components/urlbar/content/UrlbarResult.mjs
++++ b/browser/components/urlbar/content/UrlbarResult.mjs
+@@ -184,6 +184,10 @@ export class UrlbarResult {
+ return this.#heuristic;
+ }
+
++ set heuristic(value) {
++ this.#heuristic = value;
++ }
++
+ get hideRowLabel() {
+ return this.#hideRowLabel;
+ }
diff --git a/src/browser/components/urlbar/content/UrlbarShared-mjs.patch b/src/browser/components/urlbar/content/UrlbarShared-mjs.patch
new file mode 100644
index 000000000..6a676136c
--- /dev/null
+++ b/src/browser/components/urlbar/content/UrlbarShared-mjs.patch
@@ -0,0 +1,37 @@
+diff --git a/browser/components/urlbar/content/UrlbarShared.mjs b/browser/components/urlbar/content/UrlbarShared.mjs
+index 5b45afb747bfcdbd06782186737669aa2c4c634d..f68bd009f70415b5fb513abdfe19b4427ceefbfc 100644
+--- a/browser/components/urlbar/content/UrlbarShared.mjs
++++ b/browser/components/urlbar/content/UrlbarShared.mjs
+@@ -47,6 +47,7 @@ export const UrlbarShared = {
+ // `looksLikeOrigin()` returned `LOOKS_LIKE_ORIGIN.OTHER` for this token.
+ // It may or may not be an origin.
+ POSSIBLE_ORIGIN_BUT_SEARCH_ALLOWED: 12,
++ RESTRICT_WORKSPACE: 13,
+ }),
+
+ /**
+@@ -67,6 +68,7 @@ export const UrlbarShared = {
+ TITLE: "#",
+ URL: "$",
+ ACTION: ">",
++ WORKSPACE: "`",
+ }),
+
+ // Defines UrlbarResult types.
+@@ -112,6 +114,8 @@ export const UrlbarShared = {
+ OTHER_NETWORK: 6,
+ ADDON: 7,
+ ACTIONS: 8,
++ ZEN_ACTIONS: 9,
++ WORKSPACES: 10,
+ }),
+
+ /**
+@@ -128,6 +132,7 @@ export const UrlbarShared = {
+ if (lazy.UrlbarPrefs.get("scotchBonnet.enableOverride")) {
+ keys.push(this.RESTRICT_TOKENS.ACTION);
+ }
++ keys.push(this.RESTRICT_TOKENS.WORKSPACE);
+ return new Set(keys);
+ },
+
diff --git a/src/browser/components/urlbar/UrlbarView-sys-mjs.patch b/src/browser/components/urlbar/content/UrlbarView-mjs.patch
similarity index 57%
rename from src/browser/components/urlbar/UrlbarView-sys-mjs.patch
rename to src/browser/components/urlbar/content/UrlbarView-mjs.patch
index 55f97628c..7225a807e 100644
--- a/src/browser/components/urlbar/UrlbarView-sys-mjs.patch
+++ b/src/browser/components/urlbar/content/UrlbarView-mjs.patch
@@ -1,8 +1,8 @@
-diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
-index b665adb1a1ce8bbae8df4cbea6c3248c3e4fb431..1de7f9461b8ccbd4680b917e6dd5ba3c02f69a94 100644
---- a/browser/components/urlbar/UrlbarView.sys.mjs
-+++ b/browser/components/urlbar/UrlbarView.sys.mjs
-@@ -640,7 +640,7 @@ export class UrlbarView {
+diff --git a/browser/components/urlbar/content/UrlbarView.mjs b/browser/components/urlbar/content/UrlbarView.mjs
+index e465806c4ae4fc372d9aa2b71aa7f0e74c65d026..c0b3781901298bedee2736819a93edbf545507a7 100644
+--- a/browser/components/urlbar/content/UrlbarView.mjs
++++ b/browser/components/urlbar/content/UrlbarView.mjs
+@@ -803,7 +803,7 @@ export class UrlbarView {
!this.input.value ||
this.input.getAttribute("pageproxystate") == "valid"
) {
@@ -11,7 +11,7 @@ index b665adb1a1ce8bbae8df4cbea6c3248c3e4fb431..1de7f9461b8ccbd4680b917e6dd5ba3c
// Try to reuse the cached top-sites context. If it's not cached, then
// there will be a gap of time between when the input is focused and
// when the view opens that can be perceived as flicker.
-@@ -777,10 +777,6 @@ export class UrlbarView {
+@@ -941,10 +941,6 @@ export class UrlbarView {
}
// If search mode isn't active, close the view.
@@ -22,7 +22,7 @@ index b665adb1a1ce8bbae8df4cbea6c3248c3e4fb431..1de7f9461b8ccbd4680b917e6dd5ba3c
// Search mode is active. If the one-offs should be shown, make sure they
// are enabled and show the view.
-@@ -2988,6 +2984,8 @@ export class UrlbarView {
+@@ -3203,6 +3199,8 @@ export class UrlbarView {
if (row?.hasAttribute("row-selectable")) {
row?.toggleAttribute("selected", true);
}
@@ -31,7 +31,7 @@ index b665adb1a1ce8bbae8df4cbea6c3248c3e4fb431..1de7f9461b8ccbd4680b917e6dd5ba3c
if (element != row) {
row?.toggleAttribute("descendant-selected", true);
}
-@@ -3477,7 +3475,7 @@ export class UrlbarView {
+@@ -3715,7 +3713,7 @@ export class UrlbarView {
}
#enableOrDisableRowWrap() {
@@ -40,3 +40,16 @@ index b665adb1a1ce8bbae8df4cbea6c3248c3e4fb431..1de7f9461b8ccbd4680b917e6dd5ba3c
this.#rows.toggleAttribute("wrap", wrap);
this.oneOffSearchButtons?.container.toggleAttribute("wrap", wrap);
}
+@@ -4144,6 +4142,12 @@ export class UrlbarView {
+ }
+
+ on_blur() {
++ if (
++ this.document.commandDispatcher.focusedElement == this.input.inputField &&
++ !lazy.UrlbarPrefs.get("closeOnWindowBlur")
++ ) {
++ return;
++ }
+ // If the view is open without the input being focused, it will not close
+ // automatically when the window loses focus. We might be in this state
+ // after a Search Tip is shown on an engine homepage.
diff --git a/src/browser/themes/linux/browser-css.patch b/src/browser/themes/linux/browser-css.patch
index bc54b6b5d..4331385b9 100644
--- a/src/browser/themes/linux/browser-css.patch
+++ b/src/browser/themes/linux/browser-css.patch
@@ -1,11 +1,11 @@
diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css
-index 5e5d39787674d1d5ac8c39edccb04f8b8993fbb8..6c8b483ad19d9b26232592c68a7f2a6887161057 100644
+index e735ec80b56e1a2da4bc5bec29136ce60353277b..330ea62d220d9acd96a95a605888839388e97452 100644
--- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css
@@ -14,7 +14,6 @@
@media (-moz-gtk-theme-family) {
--tabs-navbar-separator-style: none;
- @media (prefers-color-scheme: light) {
+ @media (prefers-color-scheme: light) and (not -moz-pref("browser.nova.enabled")) {
- --urlbar-box-background-color: #fafafa;
}
}
diff --git a/src/browser/themes/shared/identity-block/identity-block-css.patch b/src/browser/themes/shared/identity-block/identity-block-css.patch
index 9ba08a4b0..9508f6716 100644
--- a/src/browser/themes/shared/identity-block/identity-block-css.patch
+++ b/src/browser/themes/shared/identity-block/identity-block-css.patch
@@ -1,18 +1,18 @@
diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css
-index f239438ce661ae2c33a3e04ecc6d403b3a56a42b..c3a237aa78cff7aaaf0a7b931dd2b4d99049c051 100644
+index 82c3e319f783e6383ce437131808bbde14293379..6b4444b8ad68664f746be057aae4c59e01e8d170 100644
--- a/browser/themes/shared/identity-block/identity-block.css
+++ b/browser/themes/shared/identity-block/identity-block.css
-@@ -7,7 +7,7 @@
- #identity-box {
- margin-inline-end: var(--identity-box-margin-inline);
+@@ -12,7 +12,7 @@
+ }
+ #identity-box {
- &[pageproxystate="invalid"] {
+ :root[zen-has-empty-tab='true'] & {
pointer-events: none;
-moz-user-focus: ignore;
- }
-@@ -85,13 +85,6 @@
- }
+
+@@ -96,13 +96,6 @@
+ margin: 0;
}
-#identity-box[pageproxystate="valid"]:is(.notSecureText, .chromeUI, .extensionPage) > .identity-box-button,
@@ -25,7 +25,7 @@ index f239438ce661ae2c33a3e04ecc6d403b3a56a42b..c3a237aa78cff7aaaf0a7b931dd2b4d9
#urlbar[focused] {
#identity-box[pageproxystate="valid"]:is(.notSecureText, .chromeUI, .extensionPage) > .identity-box-button:not(:hover, [open]),
-@@ -182,16 +175,17 @@
+@@ -193,16 +186,17 @@
}
#identity-icon {
diff --git a/src/browser/themes/shared/jar-inc-mn.patch b/src/browser/themes/shared/jar-inc-mn.patch
index b07bcd68e..e912cc075 100644
--- a/src/browser/themes/shared/jar-inc-mn.patch
+++ b/src/browser/themes/shared/jar-inc-mn.patch
@@ -1,11 +1,10 @@
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
-index e3bdc11e449fb2cd2a4033a1d8c1bba00455e748..f928bc1a3a668dcc1a9ecde9945c6349e5903828 100644
+index 7892988bd5994d5183d25bf575d486f89ac888d0..a837672bb2fa1a404640fc8b2908fe4bd68d3c04 100644
--- a/browser/themes/shared/jar.inc.mn
+++ b/browser/themes/shared/jar.inc.mn
-@@ -352,3 +352,5 @@
-
+@@ -357,3 +357,5 @@
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
+ skin/classic/browser/illustrations/tab-groups.svg (../shared/illustrations/tab-groups.svg)
skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg)
+
+#include zen-sources.inc.mn
-\ No newline at end of file
diff --git a/src/browser/themes/shared/places/organizer-shared-css.patch b/src/browser/themes/shared/places/organizer-shared-css.patch
new file mode 100644
index 000000000..dd9768cc1
--- /dev/null
+++ b/src/browser/themes/shared/places/organizer-shared-css.patch
@@ -0,0 +1,21 @@
+diff --git a/browser/themes/shared/places/organizer-shared.css b/browser/themes/shared/places/organizer-shared.css
+index fe6b79cfc2453927c324a044bd62040f866def95..a93813c76ba3633c365a739289b39187c0d1e881 100644
+--- a/browser/themes/shared/places/organizer-shared.css
++++ b/browser/themes/shared/places/organizer-shared.css
+@@ -52,6 +52,16 @@
+ }
+ }
+
++#places .zenEditBMPanel_fieldContainer {
++ display: contents;
++}
++
++#places label[control="editBMPanel_workspacesSelectorExpander"],
++#places #editBMPanel_workspaceDropdown,
++#places #editBMPanel_workspaceList {
++ display: none;
++}
++
+ #editBMPanel_itemsCountText {
+ grid-column: auto / span 2;
+ justify-self: center;
diff --git a/src/browser/themes/shared/preferences/zen-preferences.css b/src/browser/themes/shared/preferences/zen-preferences.css
index 852e7be0f..fe659afca 100644
--- a/src/browser/themes/shared/preferences/zen-preferences.css
+++ b/src/browser/themes/shared/preferences/zen-preferences.css
@@ -484,11 +484,10 @@ groupbox h2 {
#helpButton,
#support-firefox,
#tabGroupSuggestions,
-#web-appearance-manage-themes-link,
#setting-control-sidebarChatbotFieldset,
#setting-control-supportFirefox,
.mission-message,
-html|setting-group:is([data-subcategory="layout"], [groupid="support"]) {
+html|setting-group:is([data-subcategory="layout"], [groupid="support"], [groupid="browserTheme"]) {
display: none !important;
}
diff --git a/src/browser/themes/shared/tabbrowser/content-area-css.patch b/src/browser/themes/shared/tabbrowser/content-area-css.patch
index 0c5d741bc..678dc33ec 100644
--- a/src/browser/themes/shared/tabbrowser/content-area-css.patch
+++ b/src/browser/themes/shared/tabbrowser/content-area-css.patch
@@ -1,16 +1,16 @@
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
-index dff8162a84dbbe6873fa771828698b47b80d0472..e0c378af7a5cc607c2de1c9b5693adb04ac6adbd 100644
+index 3acdec2b8e043fe27919cfa54e73f4d3c491bfc8..267a1087134464a8193a824a2d7f8ac15ff8ad60 100644
--- a/browser/themes/shared/tabbrowser/content-area.css
+++ b/browser/themes/shared/tabbrowser/content-area.css
-@@ -171,7 +171,6 @@
+@@ -157,7 +157,6 @@
min-height: 0;
/* We want to be able to show the frame color behind the clipped radiused corner */
- background: var(--tabpanel-background-color);
- /* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("sidebar.revamp") {
-@@ -235,7 +234,6 @@
+ outline: 0.01px solid var(--chrome-content-separator-color);
+@@ -216,7 +215,6 @@
}
browser:is([blank], [pendingpaint]) {
@@ -18,7 +18,7 @@ index dff8162a84dbbe6873fa771828698b47b80d0472..e0c378af7a5cc607c2de1c9b5693adb0
}
/* Exclude browsers with smartwindow-content attribute which inherit
-@@ -555,7 +553,7 @@ split-view-footer {
+@@ -553,7 +551,7 @@ split-view-footer {
.dialogStack {
z-index: var(--browser-stack-z-index-dialog-stack);
@@ -27,7 +27,7 @@ index dff8162a84dbbe6873fa771828698b47b80d0472..e0c378af7a5cc607c2de1c9b5693adb0
inset: 0;
/* --browser-with-dialog set on browser[tabDialogShowing], we want to position the overlay
only on the top of the element so it doesn't overlap the DevTools toolbox */
-@@ -722,7 +720,7 @@ split-view-footer {
+@@ -718,7 +716,7 @@ split-view-footer {
.dialogOverlay[topmost="true"],
#window-modal-dialog::backdrop {
diff --git a/src/browser/themes/shared/tabbrowser/tabs-css.patch b/src/browser/themes/shared/tabbrowser/tabs-css.patch
index f64d8892b..28160af66 100644
--- a/src/browser/themes/shared/tabbrowser/tabs-css.patch
+++ b/src/browser/themes/shared/tabbrowser/tabs-css.patch
@@ -1,8 +1,8 @@
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
-index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf272870987 100644
+index 0820fa040642ee05c2a24f5d2cfa58da5c926647..2d93abcce1729744e5963f1c6ad47f253804576e 100644
--- a/browser/themes/shared/tabbrowser/tabs.css
+++ b/browser/themes/shared/tabbrowser/tabs.css
-@@ -34,7 +34,7 @@
+@@ -45,7 +45,7 @@
--tab-group-line-thickness: 2px;
--tab-group-line-toolbar-border-distance: 1px;
/* Collapsed tabs should be square, so set width to match the min height */
@@ -11,7 +11,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
--tab-collapsed-width: calc(var(--tab-collapsed-background-width) + 2 * var(--tab-inner-inline-margin));
--tab-pinned-min-width-expanded: calc(var(--tab-pinned-expanded-background-width) + 2 * var(--tab-pinned-margin-inline-expanded));
--tab-note-icon-end-margin: var(--dimension-4);
-@@ -285,7 +285,6 @@ tab-split-view-wrapper[dragtarget] {
+@@ -295,7 +295,6 @@ tab-split-view-wrapper[dragtarget] {
}
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
@@ -19,7 +19,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
}
&:is([selected], [multiselected]) {
-@@ -299,6 +298,7 @@ tab-split-view-wrapper[dragtarget] {
+@@ -309,6 +308,7 @@ tab-split-view-wrapper[dragtarget] {
border-radius: inherit;
position: relative;
overflow: hidden;
@@ -27,8 +27,8 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&::before {
position: absolute;
-@@ -498,10 +498,6 @@ tab-split-view-wrapper[dragtarget] {
- /* stylelint-disable-next-line media-query-no-invalid */
+@@ -506,10 +506,6 @@ tab-split-view-wrapper[dragtarget] {
+
@media -moz-pref("browser.tabs.fadeOutUnloadedTabs") {
&[pending] {
- filter: grayscale(100%);
@@ -38,8 +38,8 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
opacity: 0.5;
/* Fade the favicon out */
transition-property: filter, opacity;
-@@ -518,10 +514,6 @@ tab-split-view-wrapper[dragtarget] {
- /* stylelint-disable-next-line media-query-no-invalid */
+@@ -525,10 +521,6 @@ tab-split-view-wrapper[dragtarget] {
+
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
&[pending][discarded] {
- filter: grayscale(100%);
@@ -49,7 +49,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
opacity: 0.5;
/* Fade the favicon out */
transition-property: filter, opacity;
-@@ -596,7 +588,7 @@ tab-split-view-wrapper[dragtarget] {
+@@ -602,7 +594,7 @@ tab-split-view-wrapper[dragtarget] {
}
#tabbrowser-tabs[orient="vertical"] & {
@@ -58,7 +58,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
}
&[crashed] {
-@@ -604,7 +596,7 @@ tab-split-view-wrapper[dragtarget] {
+@@ -610,7 +602,7 @@ tab-split-view-wrapper[dragtarget] {
}
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -67,7 +67,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&[soundplaying] {
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
}
-@@ -661,7 +653,7 @@ tab-split-view-wrapper[dragtarget] {
+@@ -664,7 +656,7 @@ tab-split-view-wrapper[dragtarget] {
}
}
@@ -76,7 +76,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&[crashed] {
display: revert;
}
-@@ -829,7 +821,7 @@ tab-split-view-wrapper[dragtarget] {
+@@ -824,7 +816,7 @@ tab-split-view-wrapper[dragtarget] {
has not been added to root. There are certain scenarios when that attribute is temporarily
removed from root such as when toggling the sidebar to expand with the toolbar button. */
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
@@ -85,7 +85,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&:is([soundplaying], [muted], [activemedia-blocked]) {
display: flex;
}
-@@ -1053,7 +1045,6 @@ tab-split-view-wrapper[dragtarget] {
+@@ -1044,7 +1036,6 @@ tab-split-view-wrapper[dragtarget] {
.tabbrowser-tab:is([image], [pinned]) > .tab-stack > .tab-content[attention]:not([selected]),
.tabbrowser-tab > .tab-stack > .tab-content[pinned][titlechanged]:not([selected]),
#tabbrowser-tabs[orient="vertical"] .tabbrowser-tab > .tab-stack > .tab-content[titlechanged]:not([selected]) {
@@ -93,7 +93,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
background-position: center bottom 6.5px;
background-size: 4px 4px;
background-repeat: no-repeat;
-@@ -1813,7 +1804,7 @@ tab-group {
+@@ -1797,7 +1788,7 @@ tab-group {
}
#tabbrowser-tabs[orient="vertical"][expanded] {
@@ -102,7 +102,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
margin-inline-start: var(--space-medium);
}
-@@ -2378,7 +2369,7 @@ tab-group {
+@@ -2351,7 +2342,7 @@ tab-group {
}
}
@@ -111,7 +111,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
#vertical-tabs-newtab-button {
appearance: none;
min-height: var(--tab-min-height);
-@@ -2389,7 +2380,7 @@ tab-group {
+@@ -2362,7 +2353,7 @@ tab-group {
margin-inline: var(--tab-inner-inline-margin);
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
@@ -120,16 +120,16 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
}
&:hover {
-@@ -2413,7 +2404,7 @@ tab-group {
+@@ -2386,7 +2377,7 @@ tab-group {
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
* we don't want a gap (between tabs), so we have to add some margin.
*/
-#tabbrowser-arrowscrollbox[orient="vertical"] > #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button {
+#tabbrowser-arrowscrollbox[orient="vertical"] #tabbrowser-arrowscrollbox-periphery > #tabs-newtab-button {
- margin-block: var(--tab-block-margin);
+ margin-block: var(--tab-margin-block);
}
-@@ -2610,7 +2601,6 @@ tab-group {
+@@ -2576,7 +2567,6 @@ tab-group {
&:not([expanded]) {
.tabbrowser-tab[pinned] {
@@ -137,7 +137,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
}
.tab-background {
-@@ -2651,8 +2641,8 @@ tab-group {
+@@ -2615,8 +2605,8 @@ tab-group {
display: block;
position: absolute;
inset: auto;
@@ -148,7 +148,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
&:-moz-window-inactive {
background-image:
-@@ -2753,9 +2743,6 @@ tab-group {
+@@ -2714,9 +2704,6 @@ tab-group {
~ #tabbrowser-tabs[orient="horizontal"]::before {
display: flex;
content: "";
@@ -158,7 +158,7 @@ index b70af17781a4128593e3c092cf0f6aec81ab5f9a..1c11c2bf9dcde9d468959e9115a48cf2
}
}
-@@ -2788,7 +2775,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
+@@ -2749,7 +2736,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
list-style-image: url(chrome://global/skin/icons/plus.svg);
}
diff --git a/src/browser/themes/shared/urlbar-searchbar-css.patch b/src/browser/themes/shared/urlbar-searchbar-css.patch
index 2fb638c24..fdc1f148d 100644
--- a/src/browser/themes/shared/urlbar-searchbar-css.patch
+++ b/src/browser/themes/shared/urlbar-searchbar-css.patch
@@ -1,17 +1,19 @@
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
-index cbd074b9bacfbf7cc82a67ad586ebc31c4d85970..993c61ba389cb9d912b2cebee9d71bec772e3a7d 100644
+index 22d624d718a289dd7b84ffc2f04dd35893dfbe95..4f57f7853f3043e3ad01d893aa928b9d2e6f3c16 100644
--- a/browser/themes/shared/urlbar-searchbar.css
+++ b/browser/themes/shared/urlbar-searchbar.css
-@@ -12,7 +12,7 @@
- /* Usually we wouldn't need snapping border widths manually, but we use this
- * for other layout calculations too */
- --urlbar-container-border-width: max(env(hairline), round(down, 1px, env(hairline)));
-- --urlbar-container-padding: round(up, 1px, env(hairline));
-+ --urlbar-container-padding: 2px;
- --urlbar-container-inset: calc(var(--urlbar-container-border-width) + var(--urlbar-container-padding));
+@@ -19,8 +19,8 @@
+ @media not -moz-pref("browser.nova.enabled") {
+ --urlbar-basic-component-size: calc(var(--urlbar-min-height) - 2 * (var(--urlbar-input-container-border-width) + var(--urlbar-input-container-padding)));
+- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
+- --urlbar-input-container-padding: round(up, 1px, env(hairline));
++ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
++ --urlbar-input-container-padding: 2px;
+ }
@media (max-width: 770px) {
-@@ -55,7 +55,7 @@ toolbar[inactive="true"] .urlbar,
+ --urlbar-container-min-width: 240px;
+@@ -126,7 +126,7 @@ toolbar[inactive="true"] .urlbar,
.urlbar:not([usertyping]) > .urlbar-input-container > .urlbar-go-button,
.urlbar:not(#searchbar-new, [focused]) > .urlbar-input-container > .urlbar-go-button,
#urlbar-revert-button-container {
@@ -20,18 +22,18 @@ index cbd074b9bacfbf7cc82a67ad586ebc31c4d85970..993c61ba389cb9d912b2cebee9d71bec
}
/* Document Picture-in-Picture API window */
-@@ -205,6 +205,10 @@ toolbar[inactive="true"] .urlbar,
+@@ -403,6 +403,10 @@ toolbar[inactive="true"] .urlbar,
+ .urlbar:not([focused])[textoverflow="left"][domaindir="rtl"] > .urlbar-input-container > .urlbar-input-box > & {
mask-image: linear-gradient(to right, transparent var(--urlbar-scheme-size), black calc(var(--urlbar-scheme-size) + 3ch));
}
-
++
+ #navigator-toolbox[zen-has-implicit-hover="true"] .urlbar:not([focused])[textoverflow="left"] > .urlbar-input-container > .urlbar-input-box > & {
+ mask-image: linear-gradient(to right, transparent, black 3ch, black calc(100% - 3ch), transparent);
+ }
-+
- /* stylelint-disable-next-line media-query-no-invalid */
- @media -moz-pref("browser.nova.enabled") {
- &::selection {
-@@ -429,10 +433,14 @@ toolbar[inactive="true"] .urlbar,
+ }
+
+ #urlbar-scheme {
+@@ -492,10 +496,14 @@ toolbar[inactive="true"] .urlbar,
.urlbar[breakout][breakout-extend] {
height: auto;
@@ -44,5 +46,5 @@ index cbd074b9bacfbf7cc82a67ad586ebc31c4d85970..993c61ba389cb9d912b2cebee9d71bec
> .urlbar-input-container {
+ align-items: center;
height: var(--urlbar-container-height);
- padding-block: calc((var(--urlbar-container-height) - var(--urlbar-height)) / 2 + var(--urlbar-container-padding));
- padding-inline: calc(var(--urlbar-margin-inline) + var(--urlbar-container-padding));
+ padding-block: calc((var(--urlbar-container-height) - var(--urlbar-height)) / 2);
+ padding-inline: calc(var(--urlbar-margin-inline) + var(--urlbar-input-container-padding));
diff --git a/src/browser/themes/shared/urlbar/variables-css.patch b/src/browser/themes/shared/urlbar/variables-css.patch
deleted file mode 100644
index 7fe83c809..000000000
--- a/src/browser/themes/shared/urlbar/variables-css.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/browser/themes/shared/urlbar/variables.css b/browser/themes/shared/urlbar/variables.css
-index 64eb46b3061504e590d3fcee0c30c902f68764fe..6e7ffe043c5676da27a6eb5b105dac2fde3309da 100644
---- a/browser/themes/shared/urlbar/variables.css
-+++ b/browser/themes/shared/urlbar/variables.css
-@@ -9,7 +9,7 @@
- :root {
- --identity-box-margin-inline: 4px;
- --urlbar-min-height: max(32px, 1.4em);
-- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
-+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
-
- /* This should be used for icons and chiclets inside the input field, as well
- as result rows. It makes the gap around them more uniform when they are
diff --git a/src/browser/themes/shared/urlbar/view-proton-css.patch b/src/browser/themes/shared/urlbar/view-proton-css.patch
index 9ae3d6c26..2ceb82290 100644
--- a/src/browser/themes/shared/urlbar/view-proton-css.patch
+++ b/src/browser/themes/shared/urlbar/view-proton-css.patch
@@ -1,18 +1,18 @@
diff --git a/browser/themes/shared/urlbar/view-proton.css b/browser/themes/shared/urlbar/view-proton.css
-index 0b10c077a555e5d0fc488a3bb1b1b920f433204c..38e9d14e9838f2b8de6f654ff4e0700bb65506f0 100644
+index 3620b33cb11f2e6bba189cbaf7532cca0e97cd3b..346c318ed178fb77a217b3b992b94706db6bf0ee 100644
--- a/browser/themes/shared/urlbar/view-proton.css
+++ b/browser/themes/shared/urlbar/view-proton.css
-@@ -14,7 +14,7 @@
+@@ -12,7 +12,7 @@
--urlbarView-small-font-size: 0.85em;
- --urlbarView-results-padding: 7px;
+ --urlbarView-results-padding: 8px;
--urlbarView-row-gutter: var(--space-xxsmall);
+ --urlbarview-row-padding-block: 6px;
--urlbarView-row-padding-inline: var(--urlbar-icon-padding);
- --urlbarView-row-padding-block: 6px;
-@@ -174,7 +174,6 @@
- min-height: var(--urlbarView-row-min-height);
+@@ -165,7 +165,6 @@
+ min-height: var(--urlbarview-row-min-height);
}
:root[uidensity="touch"] & {
- padding-block: 11px;
diff --git a/src/browser/themes/shared/zen-icons/icons.css b/src/browser/themes/shared/zen-icons/icons.css
index 20a8c58ce..bc93bf282 100644
--- a/src/browser/themes/shared/zen-icons/icons.css
+++ b/src/browser/themes/shared/zen-icons/icons.css
@@ -817,61 +817,57 @@
display: none !important;
}
-#zen-media-playpause-button {
+.zen-media-playpause-button {
list-style-image: url("media-play.svg");
}
-#zen-media-controls-toolbar.playing #zen-media-playpause-button {
+.zen-media-card.playing .zen-media-playpause-button {
list-style-image: url("media-pause.svg");
}
-#zen-media-nexttrack-button {
+.zen-media-nexttrack-button {
list-style-image: url("media-next.svg");
}
-#zen-media-previoustrack-button {
+.zen-media-previoustrack-button {
list-style-image: url("media-previous.svg");
}
-#zen-media-controls-toolbar[muted] #zen-media-mute-button {
+.zen-media-card[muted] .zen-media-mute-button {
list-style-image: url("media-mute.svg");
}
-#zen-media-mute-button {
+.zen-media-mute-button {
list-style-image: url("media-unmute.svg");
}
-#zen-media-close-button {
+.zen-media-close-button {
list-style-image: url("close.svg");
}
-#zen-media-focus-button:hover {
+.zen-media-focus-button:hover {
list-style-image: url("screen.svg");
}
-#zen-media-close-button {
- list-style-image: url("close.svg");
-}
-
-#zen-media-mute-mic-button {
+.zen-media-mute-mic-button {
list-style-image: url("microphone-fill.svg");
}
-#zen-media-controls-toolbar[mic-muted] #zen-media-mute-mic-button {
+.zen-media-card[mic-muted] .zen-media-mute-mic-button {
list-style-image: url("microphone-blocked-fill.svg");
fill: rgb(224, 41, 29);
}
-#zen-media-mute-camera-button {
+.zen-media-mute-camera-button {
list-style-image: url("video-fill.svg");
}
-#zen-media-controls-toolbar[camera-muted] #zen-media-mute-camera-button {
+.zen-media-card[camera-muted] .zen-media-mute-camera-button {
list-style-image: url("video-blocked-fill.svg");
fill: rgb(224, 41, 29);
}
-#zen-media-pip-button {
+.zen-media-pip-button {
list-style-image: url("chrome://global/skin/media/picture-in-picture-open.svg");
}
diff --git a/src/docshell/base/BrowsingContext-h.patch b/src/docshell/base/BrowsingContext-h.patch
index 12860e76c..770ca7994 100644
--- a/src/docshell/base/BrowsingContext-h.patch
+++ b/src/docshell/base/BrowsingContext-h.patch
@@ -1,5 +1,5 @@
diff --git a/docshell/base/BrowsingContext.h b/docshell/base/BrowsingContext.h
-index 02abb6ab9562a7b41f4a95a6289c80da8d1176e8..1722802021f331338fc10c768301a953e582b711 100644
+index 6f7f58bba3be6f08b3b27e81f30864c61d683351..2516126365ee9e1c07e245a873efe5f48767aff7 100644
--- a/docshell/base/BrowsingContext.h
+++ b/docshell/base/BrowsingContext.h
@@ -265,6 +265,9 @@ struct EmbedderColorSchemes {
@@ -24,13 +24,23 @@ index 02abb6ab9562a7b41f4a95a6289c80da8d1176e8..1722802021f331338fc10c768301a953
float FullZoom() const { return GetFullZoom(); }
float TextZoom() const { return GetTextZoom(); }
-@@ -1275,6 +1283,9 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
+@@ -1290,6 +1298,19 @@ class BrowsingContext : public nsILoadContext, public nsWrapperCache {
}
void DidSet(FieldIndex, uint32_t aOldValue);
+ void DidSet(FieldIndex, nscolor aOldValue);
+ void DidSet(FieldIndex, float aOldValue);
+ void DidSet(FieldIndex, bool aOldValue);
++ bool CanSet(FieldIndex, const nscolor&, ContentParent*) {
++ return true;
++ }
++ bool CanSet(FieldIndex, const float&,
++ ContentParent*) {
++ return true;
++ }
++ bool CanSet(FieldIndex, const bool&, ContentParent*) {
++ return true;
++ }
- using CanSetResult = syncedcontext::CanSetResult;
-
+ // Ensure that opener is in the same BrowsingContextGroup.
+ bool CanSet(FieldIndex, const uint64_t& aValue,
diff --git a/src/dom/base/Document-cpp.patch b/src/dom/base/Document-cpp.patch
index 9b1b29f1f..00b70fb4c 100644
--- a/src/dom/base/Document-cpp.patch
+++ b/src/dom/base/Document-cpp.patch
@@ -1,8 +1,8 @@
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
-index 328b7524810322561700347fa7f26403897635a8..58d33d68e050d11ea712413ad5c2170a112e404a 100644
+index 73eb08f648d55121a0cd96cd808f932fb14bfee6..efa99861a5da12ad8d0daa2c0eb1473c57810397 100644
--- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp
-@@ -467,6 +467,7 @@
+@@ -471,6 +471,7 @@
#include "prtime.h"
#include "prtypes.h"
#include "xpcpublic.h"
@@ -10,14 +10,15 @@ index 328b7524810322561700347fa7f26403897635a8..58d33d68e050d11ea712413ad5c2170a
// clang-format off
#include "mozilla/Encoding.h"
-@@ -3198,6 +3199,10 @@ void Document::FillStyleSetUserAndUASheets() {
- for (StyleSheet* sheet : *sheetService->UserStyleSheets()) {
- styleSet.AppendStyleSheet(*sheet);
- }
-+ if (auto sheet = zen::ZenStyleSheetCache::Singleton()->GetModsSheet(); sheet && IsInChromeDocShell()) {
-+ // The mods sheet is only used in the chrome docshell.
-+ styleSet.AppendStyleSheet(*sheet);
-+ }
+@@ -3164,6 +3165,11 @@ void Document::FillStyleSetUserAndUASheets() {
+ }
+ };
- StyleSheet* sheet = IsInChromeDocShell() ? cache->GetUserChromeSheet()
- : cache->GetUserContentSheet();
++ if (IsInChromeDocShell()) {
++ // The mods sheet is only used in the chrome docshell.
++ MaybeAppend(zen::ZenStyleSheetCache::Singleton()->GetModsSheet());
++ }
++
+ MaybeAppend(IsInChromeDocShell() ? cache->GetUserChromeSheet()
+ : cache->GetUserContentSheet());
+ MaybeAppend(cache->GetUASheet());
diff --git a/src/dom/chrome-webidl/MediaController-webidl.patch b/src/dom/chrome-webidl/MediaController-webidl.patch
index 86de13b0d..3f0a31ddd 100644
--- a/src/dom/chrome-webidl/MediaController-webidl.patch
+++ b/src/dom/chrome-webidl/MediaController-webidl.patch
@@ -1,5 +1,5 @@
diff --git a/dom/chrome-webidl/MediaController.webidl b/dom/chrome-webidl/MediaController.webidl
-index 6063e86e747dac87aafc865af95800daef2a5b9d..7fc4e72ee73a16b9ec2c1b9d11d926246fb7f7b6 100644
+index 494ed7a424457dae822c86c0ef7f6d4e8685cd5e..a5a859cbdc76e0d79460780cfc41d7ed95e660e1 100644
--- a/dom/chrome-webidl/MediaController.webidl
+++ b/dom/chrome-webidl/MediaController.webidl
@@ -23,6 +23,12 @@ enum MediaControlKey {
@@ -13,14 +13,17 @@ index 6063e86e747dac87aafc865af95800daef2a5b9d..7fc4e72ee73a16b9ec2c1b9d11d92624
+};
+
/**
- * MediaController is used to control media playback for a tab, and each tab
- * would only have one media controller, which can be accessed from the
-@@ -36,10 +42,14 @@ interface MediaController : EventTarget {
+ * The reason a chrome caller is pausing the controller. "user" preserves the
+ * existing user-initiated pause; the "system-*" values represent an
+@@ -49,6 +55,7 @@ interface MediaController : EventTarget {
readonly attribute boolean isPlaying;
readonly attribute boolean isAnyMediaBeingControlled;
readonly attribute MediaSessionPlaybackState playbackState;
+ readonly attribute boolean isBeingUsedInPIPModeOrFullscreen;
+ // The effective audio-session type the tab is currently claiming. Chrome
+ // consumers can use this to apply tab/application level audio-focus
+@@ -59,6 +66,9 @@ interface MediaController : EventTarget {
[Throws]
MediaMetadataInit getMetadata();
diff --git a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch
index 8fd51cb02..a00bb2656 100644
--- a/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch
+++ b/src/dom/media/mediaelement/HTMLMediaElement-cpp.patch
@@ -1,16 +1,16 @@
diff --git a/dom/media/mediaelement/HTMLMediaElement.cpp b/dom/media/mediaelement/HTMLMediaElement.cpp
-index b4ab1622d0e58781929aa6801dfd374f42567a7a..358f3d3cac3381ab9de3af65616095f69b9c7b23 100644
+index 912f2e08bd0d50e7ba012ed11b583127cf3e35e5..b60ec40f06f4e1a0f433eadebb1a18d40fd6d60f 100644
--- a/dom/media/mediaelement/HTMLMediaElement.cpp
+++ b/dom/media/mediaelement/HTMLMediaElement.cpp
-@@ -450,6 +450,7 @@ class HTMLMediaElement::MediaControlKeyListener final
- // audible state. Therefore, in that case we would noitfy the audible state
- // when media starts playing.
- if (mState == MediaPlaybackState::ePlayed) {
+@@ -495,6 +495,7 @@ class HTMLMediaElement::MediaControlKeyListener final
+ // started, since they never reach the playing state.
+ if (mState == MediaPlaybackState::ePlayed ||
+ (IsStarted() && mControlType == ControlType::eUncontrollable)) {
+ NotifyMediaPositionState();
- NotifyAudibleStateChanged(mIsOwnerAudible
- ? MediaAudibleState::eAudible
- : MediaAudibleState::eInaudible);
-@@ -7450,6 +7451,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) {
+ NotifyAudibleStateChanged(newState);
+ }
+ }
+@@ -7738,6 +7739,9 @@ void HTMLMediaElement::FireTimeUpdate(TimeupdateType aType) {
QueueTask(std::move(runner));
mQueueTimeUpdateRunnerTime = TimeStamp::Now();
mLastCurrentTime = CurrentTime();
diff --git a/src/eslint-file-globals-config-mjs.patch b/src/eslint-file-globals-config-mjs.patch
index 5eb4a2eda..64d789e29 100644
--- a/src/eslint-file-globals-config-mjs.patch
+++ b/src/eslint-file-globals-config-mjs.patch
@@ -1,5 +1,5 @@
diff --git a/eslint-file-globals.config.mjs b/eslint-file-globals.config.mjs
-index bf1341a84382380d45b936aeffde3f167301a9ed..b6aa373252888dcdefd528a40329f1959086d8e5 100644
+index c15744aeaf940cea9e438e7b9924a328d2615b9f..df5c6c3f36e78537e0a54fb89dfd5b3d510a51a4 100644
--- a/eslint-file-globals.config.mjs
+++ b/eslint-file-globals.config.mjs
@@ -22,6 +22,7 @@
@@ -10,9 +10,9 @@ index bf1341a84382380d45b936aeffde3f167301a9ed..b6aa373252888dcdefd528a40329f195
export default [
{
-@@ -550,4 +551,9 @@ export default [
- ],
- languageOptions: { globals: globals.worker },
+@@ -576,4 +577,9 @@ export default [
+ globals: globals.audioWorklet,
+ },
},
+ {
+ name: "zen-globals",
diff --git a/src/external-patches/firefox/add_urlbar_closeonwindowblur_preference.patch b/src/external-patches/firefox/add_urlbar_closeonwindowblur_preference.patch
deleted file mode 100644
index e1c9b63ad..000000000
--- a/src/external-patches/firefox/add_urlbar_closeonwindowblur_preference.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js
---- a/browser/app/profile/firefox.js
-+++ b/browser/app/profile/firefox.js
-@@ -411,10 +411,13 @@
- pref("browser.urlbar.maxRichResults", 10);
-
- // The maximum number of historical search results to show.
- pref("browser.urlbar.maxHistoricalSearchSuggestions", 2);
-
-+// Whether to close the urlbar when blurring the window while the urlbar is focused.
-+pref("browser.urlbar.closeOnWindowBlur", true);
-+
- // The default behavior for the urlbar can be configured to use any combination
- // of the match filters with each additional filter adding more results (union).
- pref("browser.urlbar.suggest.bookmark", true);
- pref("browser.urlbar.suggest.clipboard", true);
- pref("browser.urlbar.suggest.history", true);
-diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
---- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
-+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
-@@ -152,10 +152,13 @@
- ["filter.javascript", true],
-
- // Feature gate pref for flight status suggestions in the urlbar.
- ["flightStatus.featureGate", false],
-
-+ // Whether to close the urlbar when blurring the window while the urlbar is focused.
-+ ["closeOnWindowBlur", true],
-+
- // The minimum prefix length of a flight status keyword the user must type to
- // trigger the suggestion. 0 means the min length should be taken from Nimbus
- // or remote settings.
- ["flightStatus.minKeywordLength", 0],
-
-diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
---- a/browser/components/urlbar/UrlbarView.sys.mjs
-+++ b/browser/components/urlbar/UrlbarView.sys.mjs
-@@ -3909,10 +3909,16 @@
- }
- }
- }
-
- on_blur() {
-+ if (
-+ this.document.commandDispatcher.focusedElement == this.input.inputField &&
-+ !lazy.UrlbarPrefs.get("closeOnWindowBlur")
-+ ) {
-+ return;
-+ }
- // If the view is open without the input being focused, it will not close
- // automatically when the window loses focus. We might be in this state
- // after a Search Tip is shown on an engine homepage.
- if (!lazy.UrlbarPrefs.get("ui.popup.disable_autohide")) {
- this.close();
-diff --git a/browser/components/urlbar/content/UrlbarInput.mjs b/browser/components/urlbar/content/UrlbarInput.mjs
---- a/browser/components/urlbar/content/UrlbarInput.mjs
-+++ b/browser/components/urlbar/content/UrlbarInput.mjs
-@@ -4783,10 +4783,16 @@
- }
- }
-
- _on_blur(event) {
- lazy.logger.debug("Blur Event");
-+ if (
-+ this.document.commandDispatcher.focusedElement == this.inputField &&
-+ !lazy.UrlbarPrefs.get("closeOnWindowBlur")
-+ ) {
-+ return;
-+ }
- // We cannot count every blur events after a missed engagement as abandoment
- // because the user may have clicked on some view element that executes
- // a command causing a focus change. For example opening preferences from
- // the oneoff settings button.
- // For now we detect that case by discarding the event on command, but we
- // may want to figure out a more robust way to detect abandonment.
\ No newline at end of file
diff --git a/src/external-patches/firefox/bug_2011236.patch b/src/external-patches/firefox/bug_2011236.patch
new file mode 100644
index 000000000..a8764a3d4
--- /dev/null
+++ b/src/external-patches/firefox/bug_2011236.patch
@@ -0,0 +1,166 @@
+diff --git a/browser/components/sessionstore/test/browser.toml b/browser/components/sessionstore/test/browser.toml
+--- a/browser/components/sessionstore/test/browser.toml
++++ b/browser/components/sessionstore/test/browser.toml
+@@ -14,10 +14,12 @@
+ "browser_frame_history_c.html",
+ "browser_frame_history_c1.html",
+ "browser_frame_history_c2.html",
+ "browser_formdata_format_sample.html",
+ "browser_sessionHistory_slow.sjs",
++ "browser_policy_container_sample.html",
++ "browser_policy_container_sample_frame.html",
+ "browser_scrollPositions_sample.html",
+ "browser_scrollPositions_sample2.html",
+ "browser_scrollPositions_sample_frameset.html",
+ "browser_scrollPositions_readerModeArticle.html",
+ "browser_sessionStorage.html",
+@@ -226,10 +228,12 @@
+ ["browser_pinned_tabs.js"]
+ skip-if = [
+ "ccov", # Bug 1625525
+ ]
+
++["browser_policy_container_not_stored.js"]
++
+ ["browser_privatetabs.js"]
+
+ ["browser_purge_domaindata.js"]
+
+ ["browser_purge_shistory.js"]
+diff --git a/browser/components/sessionstore/test/browser_policy_container_not_stored.js b/browser/components/sessionstore/test/browser_policy_container_not_stored.js
+new file mode 100644
+--- /dev/null
++++ b/browser/components/sessionstore/test/browser_policy_container_not_stored.js
+@@ -0,0 +1,51 @@
++/* 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/. */
++
++"use strict";
++
++/**
++ * A session history entry only needs to retain the policy container for loads
++ * that inherit their policies (about:blank, about:srcdoc, blob:, data:, ...).
++ * Anything fetched over the network gets its policies from the response again,
++ * so storing them would only bloat the session store (bug 2011236).
++ */
++
++const TEST_ROOT = getRootDirectory(gTestPath).replace(
++ "chrome://mochitests/content",
++ "https://example.com"
++);
++const PARENT_URL = TEST_ROOT + "browser_policy_container_sample.html";
++const FRAME_URL = TEST_ROOT + "browser_policy_container_sample_frame.html";
++
++add_task(async function test_policy_container_only_for_inheriting_loads() {
++ const tab = BrowserTestUtils.addTab(gBrowser, PARENT_URL);
++ gBrowser.selectedTab = tab;
++ await promiseBrowserLoaded(tab.linkedBrowser, true, PARENT_URL);
++ await TabStateFlusher.flush(tab.linkedBrowser);
++
++ const state = JSON.parse(ss.getTabState(tab));
++ const topEntry = state.entries.at(-1);
++ is(topEntry.url, PARENT_URL, "collected the parent entry");
++
++ const children = topEntry.children ?? [];
++ const networkFrame = children.find(child => child.url === FRAME_URL);
++ const blankFrame = children.find(child => child.url === "about:blank");
++
++ ok(networkFrame, "collected the network-scheme subframe entry");
++ ok(blankFrame, "collected the about:blank subframe entry");
++
++ // The parent has a CSP, so both subframes inherit a policy container onto
++ // their load state. Only the one that cannot recover it from a response
++ // should keep it in session history.
++ ok(
++ !("policyContainer" in networkFrame),
++ "https subframe entry does not store a policyContainer"
++ );
++ ok(
++ "policyContainer" in blankFrame,
++ "about:blank subframe entry still stores its inherited policyContainer"
++ );
++
++ await BrowserTestUtils.removeTab(tab);
++});
+diff --git a/browser/components/sessionstore/test/browser_policy_container_sample.html b/browser/components/sessionstore/test/browser_policy_container_sample.html
+new file mode 100644
+--- /dev/null
++++ b/browser/components/sessionstore/test/browser_policy_container_sample.html
+@@ -0,0 +1,12 @@
++
++
++
++
++
++ policyContainer session store sample
++
++
++
++
++
++
+diff --git a/browser/components/sessionstore/test/browser_policy_container_sample_frame.html b/browser/components/sessionstore/test/browser_policy_container_sample_frame.html
+new file mode 100644
+--- /dev/null
++++ b/browser/components/sessionstore/test/browser_policy_container_sample_frame.html
+@@ -0,0 +1,10 @@
++
++
++
++
++ policyContainer session store sample frame
++
++
++ frame
++
++
+diff --git a/docshell/shistory/SessionHistoryEntry.cpp b/docshell/shistory/SessionHistoryEntry.cpp
+--- a/docshell/shistory/SessionHistoryEntry.cpp
++++ b/docshell/shistory/SessionHistoryEntry.cpp
+@@ -41,10 +41,18 @@
+ extern mozilla::LazyLogModule gSHLog;
+
+ namespace mozilla {
+ namespace dom {
+
++// Only store policy container for loads that can't carry it themselves
++// (about:blank, about:srcdoc, blob:, data:, ...)
++// bug 1867137, bug 2011236
++static nsIPolicyContainer* PolicyContainerToStore(
++ nsIURI* aURI, nsIPolicyContainer* aPolicyContainer) {
++ return CSP_ShouldURIInheritCSP(aURI) ? aPolicyContainer : nullptr;
++}
++
+ SessionHistoryInfo::SessionHistoryInfo(nsDocShellLoadState* aLoadState,
+ nsIChannel* aChannel)
+ : mURI(aLoadState->URI()),
+ mOriginalURI(aLoadState->OriginalURI()),
+ mResultPrincipalURI(aLoadState->ResultPrincipalURI()),
+@@ -59,9 +67,10 @@
+ mLoadReplace(aLoadState->LoadReplace()),
+ mHasUserActivation(aLoadState->HasValidUserGestureActivation()),
+ mSharedState(SharedState::Create(
+ aLoadState->TriggeringPrincipal(), aLoadState->PrincipalToInherit(),
+ aLoadState->PartitionedPrincipalToInherit(),
+- aLoadState->PolicyContainer(),
++ PolicyContainerToStore(aLoadState->URI(),
++ aLoadState->PolicyContainer()),
+ /* FIXME Is this correct? */
+ aLoadState->TypeHint())) {
+ // Pull the upload stream off of the channel instead of the load state, as
+@@ -124,11 +133,12 @@
+ loadInfo->GetPrincipalToInherit(
+ getter_AddRefs(mSharedState.Get()->mPrincipalToInherit));
+
+ mSharedState.Get()->mPartitionedPrincipalToInherit =
+ aPartitionedPrincipalToInherit;
+- mSharedState.Get()->mPolicyContainer = aPolicyContainer;
++ mSharedState.Get()->mPolicyContainer =
++ PolicyContainerToStore(mURI, aPolicyContainer);
+ aChannel->GetContentType(mSharedState.Get()->mContentType);
+ aChannel->GetOriginalURI(getter_AddRefs(mOriginalURI));
+
+ uint32_t loadFlags;
+ aChannel->GetLoadFlags(&loadFlags);
+
diff --git a/src/external-patches/firefox/expose_tiled_attribute_to_all_platforms.patch b/src/external-patches/firefox/expose_tiled_attribute_to_all_platforms.patch
new file mode 100644
index 000000000..1b3e06b11
--- /dev/null
+++ b/src/external-patches/firefox/expose_tiled_attribute_to_all_platforms.patch
@@ -0,0 +1,72 @@
+diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm
+--- a/widget/cocoa/nsCocoaWindow.mm
++++ b/widget/cocoa/nsCocoaWindow.mm
+@@ -70,10 +70,11 @@
+ #include "nsXULPopupManager.h"
+
+ #include "gfxPlatform.h"
+ #include "qcms.h"
+
++#import
+ #include
+ #include "mozilla/AutoRestore.h"
+ #include "mozilla/BasicEvents.h"
+ #include "mozilla/Maybe.h"
+ #include "mozilla/NativeKeyBindingsType.h"
+@@ -6948,10 +6949,31 @@
+ return nsSizeMode_Maximized;
+ }
+ return nsSizeMode_Normal;
+ }
+
++// The tiling state lives in a private NSWindow ivar "_tilingStateController"
++// (an _NSWMWindowTilingStateController). That controller's -tilingState returns
++// a non-nil _WMWindowTilingState only while the window is tiled by the system
++// window manager. None of this is public API, so it is all guarded and degrades
++// to false if the internals ever change.
++static bool WindowIsTiled(NSWindow* aWindow) {
++ if (!aWindow) {
++ return false;
++ }
++ static Ivar sControllerIvar =
++ class_getInstanceVariable([NSWindow class], "_tilingStateController");
++ if (!sControllerIvar) {
++ return false;
++ }
++ id controller = object_getIvar(aWindow, sControllerIvar);
++ if (![controller respondsToSelector:@selector(tilingState)]) {
++ return false;
++ }
++ return [controller performSelector:@selector(tilingState)] != nil;
++}
++
+ void nsCocoaWindow::ReportMoveEvent() {
+ NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
+
+ // Prevent recursion, which can become infinite (see bug 708278). This
+ // can happen when the call to [NSWindow setFrameTopLeftPoint:] in
+@@ -6961,10 +6983,11 @@
+ return;
+ }
+ mInReportMoveEvent = true;
+
+ UpdateBounds();
++ SetIsTiled(WindowIsTiled(mWindow));
+
+ // The zoomed state can change when we're moving, in which case we need to
+ // update our internal mSizeMode. This can happen either if we're maximized
+ // and then moved, or if we're not maximized and moved back to zoomed state.
+ if (mWindow && (mSizeMode == nsSizeMode_Maximized) ^ mWindow.isZoomed) {
+@@ -7055,10 +7078,11 @@
+
+ void nsCocoaWindow::ReportSizeEvent() {
+ NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
+
+ UpdateBounds();
++ SetIsTiled(WindowIsTiled(mWindow));
+ LayoutDeviceIntRect innerBounds = GetClientBounds();
+ if (mWidgetListener) {
+ mWidgetListener->WindowResized(this, innerBounds.Size());
+ }
+ if (mAttachedWidgetListener) {
+
diff --git a/src/external-patches/firefox/gh-12979_clip_dirty_rect_to_device_size.patch b/src/external-patches/firefox/gh-12979_clip_dirty_rect_to_device_size.patch
deleted file mode 100644
index 4cd381da1..000000000
--- a/src/external-patches/firefox/gh-12979_clip_dirty_rect_to_device_size.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/gfx/wr/webrender/src/renderer/composite.rs b/gfx/wr/webrender/src/renderer/composite.rs
---- a/gfx/wr/webrender/src/renderer/composite.rs
-+++ b/gfx/wr/webrender/src/renderer/composite.rs
-@@ -974,12 +974,15 @@
- .iter()
- .chain(self.layer_compositor_frame_state_in_prev_frame.as_ref().unwrap().rects_without_id.iter()) {
- combined_dirty_rect = combined_dirty_rect.union(&rect);
- }
-
-+ let device_rect = DeviceRect::from_size(device_size.to_f32());
-+ let clipped_dirty_rect = combined_dirty_rect.intersection_unchecked(&device_rect);
-+
- partial_present_mode = Some(PartialPresentMode::Single {
-- dirty_rect: combined_dirty_rect,
-+ dirty_rect: clipped_dirty_rect,
- });
- } else {
- partial_present_mode = None;
- }
-
-
diff --git a/src/external-patches/firefox/issue_14710.patch b/src/external-patches/firefox/issue_14710.patch
new file mode 100644
index 000000000..54e288ed8
--- /dev/null
+++ b/src/external-patches/firefox/issue_14710.patch
@@ -0,0 +1,55 @@
+diff --git a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
+--- a/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
++++ b/toolkit/components/pictureinpicture/PictureInPicture.sys.mjs
+@@ -119,10 +119,19 @@
+ }
+ case "PictureInPicture:VideoTabHidden": {
+ if (!lazy.PIP_ENABLED || !lazy.PIP_WHEN_SWITCHING_TABS) {
+ break;
+ }
++
++ // Suppress auto-toggle if the user deliberately closed this PiP window
++ if (
++ PictureInPicture.weakAutoPipBrowserClosedDeliberately.has(browser)
++ ) {
++ PictureInPicture.weakAutoPipBrowserClosedDeliberately.delete(browser);
++ break;
++ }
++
+ // If the tab is still selected, then we can ignore this event
+ if (browser.documentGlobal.gBrowser.selectedBrowser == browser) {
+ break;
+ }
+ let actor = browsingContext.currentWindowGlobal.getActor(
+@@ -261,10 +270,12 @@
+ maxConcurrentPlayerCount: 0,
+
+ // Maps auto pip browser to PictureInPictureParent actor
+ weakAutoPipBrowserToParent: new WeakMap(),
+
++ weakAutoPipBrowserClosedDeliberately: new WeakSet(),
++
+ /**
+ * Returns the player window if one exists and if it hasn't yet been closed.
+ *
+ * @param {PictureInPictureParent} pipActorRef
+ * Reference to the calling PictureInPictureParent actor
+@@ -899,10 +910,17 @@
+ const { reason, actorRef } = closeData;
+ const win = this.getWeakPipPlayer(actorRef);
+ if (!win) {
+ return;
+ }
++
++ const browser = this.weakWinToBrowser.get(win);
++
++ if (reason === "CloseButton") {
++ PictureInPicture.weakAutoPipBrowserClosedDeliberately.add(browser);
++ }
++
+ this.removePiPBrowserFromWeakMap(this.weakWinToBrowser.get(win));
+ this.weakAutoPipBrowserToParent.delete(this.weakWinToBrowser.get(win));
+
+ Glean.pictureinpicture["closedMethod" + reason].record();
+ await this.closePipWindow(win);
+
diff --git a/src/external-patches/firefox/issue_14990.patch b/src/external-patches/firefox/issue_14990.patch
new file mode 100644
index 000000000..7f90b2a51
--- /dev/null
+++ b/src/external-patches/firefox/issue_14990.patch
@@ -0,0 +1,254 @@
+diff --git a/browser/components/sessionstore/SessionWriter.sys.mjs b/browser/components/sessionstore/SessionWriter.sys.mjs
+--- a/browser/components/sessionstore/SessionWriter.sys.mjs
++++ b/browser/components/sessionstore/SessionWriter.sys.mjs
+@@ -80,10 +80,14 @@
+ return await SessionWriterInternal.wipe();
+ } finally {
+ unlock();
+ }
+ },
++
++ get _jsonLengthHint() {
++ return SessionWriterInternal._lastJsonLength;
++ },
+ };
+
+ const SessionWriterInternal = {
+ // Path to the files used by the SessionWriter
+ Paths: null,
+@@ -104,10 +108,14 @@
+ /**
+ * Number of old upgrade backups that are being kept
+ */
+ maxUpgradeBackups: null,
+
++ // Estimated JSON string length from the previous write, used to pre-size
++ // the serialization buffer and avoid incremental reallocations.
++ _lastJsonLength: 0,
++
+ /**
+ * Initialize (or reinitialize) the writer.
+ *
+ * @param {string} origin Which of sessionstore.js or its backups
+ * was used. One of the `STATE_*` constants defined above.
+@@ -201,48 +209,60 @@
+ }
+ }
+
+ let startWriteMs = Date.now();
+ let fileStat;
++ // Add 5% headroom to the hint so small growth between saves doesn't
++ // cause reallocs. The compressed-size-based estimate already has
++ // sufficient margin from the 4x multiplier.
++ let jsonLengthHint = Math.ceil(this._lastJsonLength * 1.05);
++
++ let uncompressedBytes;
+
+ if (options.isFinalWrite) {
+ // We are shutting down. At this stage, we know that
+ // $Paths.clean is either absent or corrupted. If it was
+ // originally present and valid, it has been moved to
+ // $Paths.cleanBackup a long time ago. We can therefore write
+ // with the guarantees that we erase no important data.
+- await IOUtils.writeJSON(this.Paths.clean, state, {
++ uncompressedBytes = await IOUtils.writeJSON(this.Paths.clean, state, {
+ tmpPath: this.Paths.clean + ".tmp",
+ compress: true,
++ lengthHint: jsonLengthHint,
+ });
+ fileStat = await IOUtils.stat(this.Paths.clean);
+ } else if (this.state == STATE_RECOVERY) {
+ // At this stage, either $Paths.recovery was written >= 15
+ // seconds ago during this session or we have just started
+ // from $Paths.recovery left from the previous session. Either
+ // way, $Paths.recovery is good. We can move $Path.backup to
+ // $Path.recoveryBackup without erasing a good file with a bad
+ // file.
+- await IOUtils.writeJSON(this.Paths.recovery, state, {
++ uncompressedBytes = await IOUtils.writeJSON(this.Paths.recovery, state, {
+ tmpPath: this.Paths.recovery + ".tmp",
+ backupFile: this.Paths.recoveryBackup,
+ compress: true,
++ lengthHint: jsonLengthHint,
+ });
+ fileStat = await IOUtils.stat(this.Paths.recovery);
+ } else {
+ // In other cases, either $Path.recovery is not necessary, or
+ // it doesn't exist or it has been corrupted. Regardless,
+ // don't backup $Path.recovery.
+- await IOUtils.writeJSON(this.Paths.recovery, state, {
++ uncompressedBytes = await IOUtils.writeJSON(this.Paths.recovery, state, {
+ tmpPath: this.Paths.recovery + ".tmp",
+ compress: true,
++ lengthHint: jsonLengthHint,
+ });
+ fileStat = await IOUtils.stat(this.Paths.recovery);
+ }
+
+ telemetry.writeFileMs = Date.now() - startWriteMs;
+ telemetry.fileSizeBytes = fileStat.size;
++ // Use the actual pre-compression size from this write as the hint
++ // for the next write's buffer allocation.
++ this._lastJsonLength = uncompressedBytes.jsonLength;
+ lazy.sessionStoreLogger.debug(
+ `SessionWriter.write wrote ${telemetry.fileSizeBytes} bytes in ${telemetry.writeFileMs}ms`
+ );
+ } catch (ex) {
+ // Don't throw immediately
+@@ -375,10 +395,11 @@
+ } catch (ex) {
+ exn = exn || ex;
+ }
+
+ this.state = STATE_EMPTY;
++ this._lastJsonLength = 0;
+ if (exn) {
+ throw exn;
+ }
+
+ return { result: true };
+diff --git a/browser/components/sessionstore/test/unit/test_write_json_length_hint.js b/browser/components/sessionstore/test/unit/test_write_json_length_hint.js
+new file mode 100644
+--- /dev/null
++++ b/browser/components/sessionstore/test/unit/test_write_json_length_hint.js
+@@ -0,0 +1,73 @@
++/* Any copyright is dedicated to the Public Domain.
++ http://creativecommons.org/publicdomain/zero/1.0/ */
++
++"use strict";
++
++const { SessionWriter } = ChromeUtils.importESModule(
++ "resource:///modules/sessionstore/SessionWriter.sys.mjs"
++);
++
++const profd = do_get_profile();
++const { SessionFile } = ChromeUtils.importESModule(
++ "resource:///modules/sessionstore/SessionFile.sys.mjs"
++);
++
++const { updateAppInfo } = ChromeUtils.importESModule(
++ "resource://testing-common/AppInfo.sys.mjs"
++);
++updateAppInfo({
++ name: "SessionRestoreTest",
++ ID: "{230de50e-4cd1-11dc-8314-0800200c9a66}",
++ version: "1",
++ platformVersion: "",
++});
++
++add_setup(async function () {
++ let source = do_get_file("data/sessionstore_valid.js");
++ source.copyTo(profd, "sessionstore.js");
++ await writeCompressedFile(
++ SessionFile.Paths.clean.replace("jsonlz4", "js"),
++ SessionFile.Paths.clean
++ );
++ await SessionFile.read();
++});
++
++add_task(async function test_length_hint_updates_after_write() {
++ Assert.equal(
++ SessionWriter._jsonLengthHint,
++ 0,
++ "Length hint starts at 0"
++ );
++
++ await SessionFile.write({});
++
++ let hintAfterSmall = SessionWriter._jsonLengthHint;
++ Assert.equal(
++ hintAfterSmall,
++ JSON.stringify({}).length,
++ "Hint matches the uncompressed JSON byte length"
++ );
++
++ let largerState = await IOUtils.readJSON(
++ PathUtils.join(do_get_cwd().path, "data", "sessionstore_complete.json")
++ );
++ await SessionFile.write(largerState);
++
++ Assert.greater(
++ SessionWriter._jsonLengthHint,
++ hintAfterSmall,
++ "Hint grows after writing a larger state"
++ );
++});
++
++add_task(async function test_length_hint_resets_on_wipe() {
++ await SessionFile.write({ windows: [{ tabs: [{ entries: [] }] }] });
++ Assert.greater(SessionWriter._jsonLengthHint, 0, "Hint is nonzero");
++
++ await SessionFile.wipe();
++ Assert.equal(
++ SessionWriter._jsonLengthHint,
++ 0,
++ "Hint resets to 0 after wipe"
++ );
++});
+diff --git a/browser/components/sessionstore/test/unit/xpcshell.toml b/browser/components/sessionstore/test/unit/xpcshell.toml
+--- a/browser/components/sessionstore/test/unit/xpcshell.toml
++++ b/browser/components/sessionstore/test/unit/xpcshell.toml
+@@ -39,5 +39,10 @@
+ skip-if = [
+ "condprof", # Bug 1769154
+ ]
+
+ ["test_startup_session_async.js"]
++
++["test_write_json_length_hint.js"]
++support-files = [
++ "data/sessionstore_complete.json",
++]
+diff --git a/dom/chrome-webidl/IOUtils.webidl b/dom/chrome-webidl/IOUtils.webidl
+--- a/dom/chrome-webidl/IOUtils.webidl
++++ b/dom/chrome-webidl/IOUtils.webidl
+@@ -101,12 +101,12 @@
+ *
+ * @param path An absolute file path
+ * @param value The value to be serialized.
+ * @param options Options for writing the file. The "append" mode is not supported.
+ *
+- * @return Resolves with the number of bytes successfully written to the file,
+- * otherwise rejects with a DOMException.
++ * @return Resolves with the pre-compression size of the serialized JSON in
++ * bytes (UTF-8), otherwise rejects with a DOMException.
+ */
+ [NewObject]
+ Promise writeJSON(DOMString path, any value, optional WriteJSONOptions options = {});
+ /**
+ * Moves the file from |sourcePath| to |destPath|, creating necessary parents.
+@@ -564,10 +564,16 @@
+ boolean flush = false;
+ /**
+ * If true, compress the data with LZ4-encoding before writing to the file.
+ */
+ boolean compress = false;
++ /**
++ * For |writeJSON|, a hint for the expected JSON string length in UTF-16 code
++ * units. When provided, the JSON serializer pre-allocates a buffer of this
++ * size to avoid incremental reallocations.
++ */
++ unsigned long long jsonLengthHint = 0;
+ };
+
+ /**
+ * Options to be passed to the |IOUtils.writeJSON| method.
+ */
+diff --git a/xpcom/ioutils/IOUtils.cpp b/xpcom/ioutils/IOUtils.cpp
+--- a/xpcom/ioutils/IOUtils.cpp
++++ b/xpcom/ioutils/IOUtils.cpp
+@@ -629,10 +629,13 @@
+ }
+
+ JSContext* cx = aGlobal.Context();
+ JS::Rooted value(cx, aValue);
+ nsString string;
++ if (opts.mLengthHint) {
++ string.SetCapacity(opts.mLengthHint);
++ }
+ if (!JS_StringifyWithLengthHint(cx, &value, nullptr,
+ JS::NullHandleValue, AppendJSON,
+ &string, opts.mLengthHint)) {
+ JS::Rooted exn(cx, JS::UndefinedValue());
+ if (JS_GetPendingException(cx, &exn)) {
+
diff --git a/src/external-patches/manifest.json b/src/external-patches/manifest.json
index 8f89a255f..7c794ef9c 100644
--- a/src/external-patches/manifest.json
+++ b/src/external-patches/manifest.json
@@ -7,14 +7,6 @@
"id": "D299584",
"name": "Native MacOS popovers fix"
},
- {
- "type": "phabricator",
- "id": "D284404",
- "name": "Add urlbar closeOnWindowBlur preference",
- "replaces": {
- "\n\n": "\n // may want to figure out a more robust way to detect abandonment."
- }
- },
{
"type": "local",
// TODO: Convert into https://phabricator.services.mozilla.com/D298079
@@ -37,7 +29,32 @@
},
{
"type": "phabricator",
- "id": "D291714",
- "name": "gh-12979 Clip dirty_rect to device_size"
+ "id": "D312091",
+ "name": "Expose tiled attribute to all platforms"
+ },
+ {
+ "type": "phabricator",
+ "id": "D298708",
+ "name": "Issue 14990",
+ "replaces": {
+ "this._lastJsonLength = uncompressedBytes;": "this._lastJsonLength = uncompressedBytes.jsonLength;",
+ " jsonLengthHint,": " lengthHint: jsonLengthHint,"
+ }
+ },
+ {
+ "type": "phabricator",
+ "id": "D320897",
+ "name": "Bug 2011236",
+ "replaces": {
+ // The upstream patch context includes a MOZ_DIAGNOSTIC_ASSERT that
+ // doesn't exist yet in our Firefox version.
+ "@@ -59,11 +67,12 @@": "@@ -59,9 +67,10 @@",
+ "aLoadState->TypeHint())) {\n MOZ_DIAGNOSTIC_ASSERT(!mURI->SchemeIs(\"javascript\"));\n \n // Pull": "aLoadState->TypeHint())) {\n // Pull"
+ }
+ },
+ {
+ "type": "phabricator",
+ "id": "D321446",
+ "name": "Issue 14710"
}
]
diff --git a/src/gfx/layers/AnimationInfo-cpp.patch b/src/gfx/layers/AnimationInfo-cpp.patch
index 83ce49a05..18032d367 100644
--- a/src/gfx/layers/AnimationInfo-cpp.patch
+++ b/src/gfx/layers/AnimationInfo-cpp.patch
@@ -1,16 +1,16 @@
diff --git a/gfx/layers/AnimationInfo.cpp b/gfx/layers/AnimationInfo.cpp
-index b4941588bfbd94a337f2e848c659021723e1500d..8f91ca5b2fcca6ff04aa2c0af5ba26dd9fe7df0e 100644
+index 538808aa15d1902fc517f79e3a6d62f4d7fd9d37..4b0760b7be9d872a926f99716d16f3f64dcb2378 100644
--- a/gfx/layers/AnimationInfo.cpp
+++ b/gfx/layers/AnimationInfo.cpp
-@@ -14,6 +14,7 @@
- #include "mozilla/MotionPathUtils.h"
- #include "mozilla/PresShell.h"
- #include "mozilla/ScrollContainerFrame.h"
+@@ -18,6 +18,7 @@
+ #include "mozilla/layers/AnimationStorageData.h"
+ #include "mozilla/layers/CompositorThread.h"
+ #include "mozilla/layers/WebRenderLayerManager.h"
+#include "mozilla/nsZenBoostsBackend.h"
#include "nsIContent.h"
#include "nsLayoutUtils.h"
#include "nsRefreshDriver.h"
-@@ -341,9 +342,13 @@ static void SetAnimatable(NonCustomCSSPropertyId aProperty,
+@@ -367,9 +368,13 @@ static void SetAnimatable(NonCustomCSSPropertyId aProperty,
case eCSSProperty_background_color: {
// We don't support color animation on the compositor yet so that we can
// resolve currentColor at this moment.
diff --git a/src/layout/base/nsPresContext-h.patch b/src/layout/base/nsPresContext-h.patch
index f408114e4..93a597a68 100644
--- a/src/layout/base/nsPresContext-h.patch
+++ b/src/layout/base/nsPresContext-h.patch
@@ -1,5 +1,5 @@
diff --git a/layout/base/nsPresContext.h b/layout/base/nsPresContext.h
-index 13aa7141c8e5297d0dd6aa9bd78fd32f050e8123..149a89e928d354f116c54f71605830f5ec6b7f8a 100644
+index 5f27c288fd027cf245421e7f049103a7e19da18a..fcd65b74c5881a75d9cb6847379e32d0a0652e67 100644
--- a/layout/base/nsPresContext.h
+++ b/layout/base/nsPresContext.h
@@ -594,6 +594,22 @@ class nsPresContext : public nsISupports,
@@ -23,11 +23,11 @@ index 13aa7141c8e5297d0dd6aa9bd78fd32f050e8123..149a89e928d354f116c54f71605830f5
+ bool ZenBoostsOverrideInverted() const { return mZenBoostsOverrideInverted; }
+
/**
- * Return the device's screen size in inches, for font size
- * inflation.
-@@ -1441,6 +1457,11 @@ class nsPresContext : public nsISupports,
- mozilla::dom::PrefersColorSchemeOverride mOverriddenOrEmbedderColorScheme;
+ * Sets the effective link parameters overrides, and invalidate stuff as
+ * needed.
+@@ -1434,6 +1450,11 @@ class nsPresContext : public nsISupports,
mozilla::StyleForcedColors mForcedColors;
+ mozilla::StyleLinkParameters mLinkParameters;
+ nscolor mZenBoostsOverrideAccent = 0;
+ float mZenBoostsOverrideComplementaryRotation = 0.0f;
diff --git a/src/layout/generic/nsTextPaintStyle-cpp.patch b/src/layout/generic/nsTextPaintStyle-cpp.patch
index 9ff579abb..3989cd21b 100644
--- a/src/layout/generic/nsTextPaintStyle-cpp.patch
+++ b/src/layout/generic/nsTextPaintStyle-cpp.patch
@@ -1,5 +1,5 @@
diff --git a/layout/generic/nsTextPaintStyle.cpp b/layout/generic/nsTextPaintStyle.cpp
-index 5d1bf44687e925aff67f44c8e0629f7f06e84e98..1fa60a4d91edc60ba733cefc5f73ab8b7684d02a 100644
+index 9dba72de611cd84ed07805f5ce40f882071240f0..782dea67f6d975ba5b7daa1e2e2ed862f7941952 100644
--- a/layout/generic/nsTextPaintStyle.cpp
+++ b/layout/generic/nsTextPaintStyle.cpp
@@ -240,7 +240,7 @@ bool nsTextPaintStyle::GetTargetTextColor(nscolor* aForeColor) {
@@ -39,28 +39,15 @@ index 5d1bf44687e925aff67f44c8e0629f7f06e84e98..1fa60a4d91edc60ba733cefc5f73ab8b
return NS_GET_A(*aBackColor) != 0;
}
-@@ -466,19 +467,19 @@ bool nsTextPaintStyle::InitSelectionColorsAndShadow() {
- // this is web content or chrome content. See bug 2029839.
- if (!mFrame->PresContext()->Document()->ChromeRulesEnabled()) {
+@@ -463,9 +464,9 @@ bool nsTextPaintStyle::InitSelectionColorsAndShadow() {
+ if (mSelectionPseudoStyle->HasAuthorSpecifiedTextColor() ||
+ mSelectionPseudoStyle->HasAuthorSpecifiedBorderOrBackground()) {
mSelectionBGColor = mSelectionPseudoStyle->GetVisitedDependentColor(
- &nsStyleBackground::mBackgroundColor);
- mSelectionTextColor =
- mSelectionPseudoStyle->GetVisitedDependentColor(&nsStyleText::mColor);
+ &nsStyleBackground::mBackgroundColor, mFrame);
+ mSelectionTextColor = mSelectionPseudoStyle->GetVisitedDependentColor(
-+ &nsStyleText::mColor, mFrame);
- return true;
- }
-
- if (nscolor bgColor = mSelectionPseudoStyle->GetVisitedDependentColor(
-- &nsStyleBackground::mBackgroundColor);
-+ &nsStyleBackground::mBackgroundColor, mFrame);
- mSelectionPseudoStyle->HasAuthorSpecifiedTextColor() ||
- NS_GET_A(bgColor) > 0) {
- mSelectionBGColor = bgColor;
-- mSelectionTextColor =
-- mSelectionPseudoStyle->GetVisitedDependentColor(&nsStyleText::mColor);
-+ mSelectionTextColor = mSelectionPseudoStyle->GetVisitedDependentColor(
+ &nsStyleText::mColor, mFrame);
return true;
}
diff --git a/src/layout/style/StyleColor-cpp.patch b/src/layout/style/StyleColor-cpp.patch
index f5aa44115..b95dbad1a 100644
--- a/src/layout/style/StyleColor-cpp.patch
+++ b/src/layout/style/StyleColor-cpp.patch
@@ -1,8 +1,8 @@
diff --git a/layout/style/StyleColor.cpp b/layout/style/StyleColor.cpp
-index 95c7ae6abea5032bef0466e8d59d212374d7a4d0..85a48f27251756c72db8ed03a673a18e96cf76f9 100644
+index bbee32af30f35525730a10d0b242c0e8a8fe4695..a590fff105b30bc96fa7a0d8a8d3b1d5aa997e08 100644
--- a/layout/style/StyleColor.cpp
+++ b/layout/style/StyleColor.cpp
-@@ -8,6 +8,7 @@
+@@ -9,6 +9,7 @@
#include "mozilla/dom/BindingDeclarations.h"
#include "nsIFrame.h"
#include "nsStyleStruct.h"
@@ -10,7 +10,7 @@ index 95c7ae6abea5032bef0466e8d59d212374d7a4d0..85a48f27251756c72db8ed03a673a18e
namespace mozilla {
-@@ -34,23 +35,24 @@ StyleAbsoluteColor StyleColor::ResolveColor(
+@@ -96,23 +97,24 @@ StyleAbsoluteColor StyleColor::ResolveColor(
template <>
nscolor StyleColor::CalcColor(nscolor aColor) const {
@@ -40,27 +40,31 @@ index 95c7ae6abea5032bef0466e8d59d212374d7a4d0..85a48f27251756c72db8ed03a673a18e
}
StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace(
-@@ -58,7 +60,7 @@ StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace(
+@@ -120,7 +122,7 @@ StyleAbsoluteColor StyleAbsoluteColor::ToColorSpace(
return Servo_ConvertColorSpace(this, aColorSpace);
}
-nscolor StyleAbsoluteColor::ToColor() const {
+nscolor StyleAbsoluteColor::ToColor(const nsIFrame* aFrame) const {
- auto srgb = ToColorSpace(StyleColorSpace::Srgb);
+ constexpr StyleColorSpace DEST_COLOR_SPACE = StyleColorSpace::Srgb;
- // TODO(tlouw): Needs gamut mapping here. Right now we just hard clip the
-@@ -68,10 +70,12 @@ nscolor StyleAbsoluteColor::ToColor() const {
- auto green = std::clamp(srgb.components._1, 0.0f, 1.0f);
- auto blue = std::clamp(srgb.components._2, 0.0f, 1.0f);
+ constexpr float MIN = 0.0f;
+@@ -162,11 +164,13 @@ nscolor StyleAbsoluteColor::ToColor() const {
+ }
+ }
-- return NS_RGBA(nsStyleUtil::FloatToColorComponent(red),
+- return NS_RGBA(
+- nsStyleUtil::FloatToColorComponent(translatedColor.components._0),
+- nsStyleUtil::FloatToColorComponent(translatedColor.components._1),
+- nsStyleUtil::FloatToColorComponent(translatedColor.components._2),
+- nsStyleUtil::FloatToColorComponent(translatedColor.alpha));
+ return zen::nsZenBoostsBackend::ResolveStyleColor(
-+ NS_RGBA(nsStyleUtil::FloatToColorComponent(red),
- nsStyleUtil::FloatToColorComponent(green),
- nsStyleUtil::FloatToColorComponent(blue),
-- nsStyleUtil::FloatToColorComponent(srgb.alpha));
-+ nsStyleUtil::FloatToColorComponent(srgb.alpha)),
-+ aFrame);
++ NS_RGBA(
++ nsStyleUtil::FloatToColorComponent(translatedColor.components._0),
++ nsStyleUtil::FloatToColorComponent(translatedColor.components._1),
++ nsStyleUtil::FloatToColorComponent(translatedColor.components._2),
++ nsStyleUtil::FloatToColorComponent(translatedColor.alpha)),
++ aFrame);
}
} // namespace mozilla
diff --git a/src/layout/svg/SVGImageContext-cpp.patch b/src/layout/svg/SVGImageContext-cpp.patch
index 4e8258689..b83784c10 100644
--- a/src/layout/svg/SVGImageContext-cpp.patch
+++ b/src/layout/svg/SVGImageContext-cpp.patch
@@ -1,5 +1,5 @@
diff --git a/layout/svg/SVGImageContext.cpp b/layout/svg/SVGImageContext.cpp
-index ecbda963b75fb70b62885a0c8f7a517011a8d5dc..5f55f0a4174db830656d434b5295835ab18e6619 100644
+index 4d43db157aa9447105eeb5459cad74de6cef01d6..327d8e4f7e21783824616800fa821218c8c848e8 100644
--- a/layout/svg/SVGImageContext.cpp
+++ b/layout/svg/SVGImageContext.cpp
@@ -10,6 +10,7 @@
@@ -30,8 +30,8 @@ index ecbda963b75fb70b62885a0c8f7a517011a8d5dc..5f55f0a4174db830656d434b5295835a
/* static */
void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
nsIFrame* aFromFrame,
-@@ -43,6 +57,8 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
- aContext.SetColorScheme(Some(scheme));
+@@ -50,6 +64,8 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
+ }
}
+ MaybeStoreZenBoosts(aContext, aPresContext);
@@ -39,20 +39,17 @@ index ecbda963b75fb70b62885a0c8f7a517011a8d5dc..5f55f0a4174db830656d434b5295835a
const nsStyleSVG* style = aStyle.StyleSVG();
if (!style->ExposesContextProperties()) {
// Content must have '-moz-context-properties' set to the names of the
-@@ -57,12 +73,14 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
+@@ -62,11 +78,11 @@ void SVGImageContext::MaybeStoreContextPaint(SVGImageContext& aContext,
+
if ((style->mMozContextProperties.bits & StyleContextPropertyBits::FILL) &&
style->mFill.kind.IsColor()) {
- haveContextPaint = true;
-- contextPaint->SetFill(style->mFill.kind.AsColor().CalcColor(aStyle));
-+ contextPaint->SetFill(
-+ style->mFill.kind.AsColor().CalcColor(aStyle, nullptr));
+- fill = Some(style->mFill.kind.AsColor().CalcColor(aStyle));
++ fill = Some(style->mFill.kind.AsColor().CalcColor(aStyle, nullptr));
}
if ((style->mMozContextProperties.bits & StyleContextPropertyBits::STROKE) &&
style->mStroke.kind.IsColor()) {
- haveContextPaint = true;
-- contextPaint->SetStroke(style->mStroke.kind.AsColor().CalcColor(aStyle));
-+ contextPaint->SetStroke(
-+ style->mStroke.kind.AsColor().CalcColor(aStyle, nullptr));
+- stroke = Some(style->mStroke.kind.AsColor().CalcColor(aStyle));
++ stroke = Some(style->mStroke.kind.AsColor().CalcColor(aStyle, nullptr));
}
- if (style->mMozContextProperties.bits &
- StyleContextPropertyBits::FILL_OPACITY) {
+ if ((style->mMozContextProperties.bits &
+ StyleContextPropertyBits::FILL_OPACITY) &&
diff --git a/src/layout/svg/SVGImageContext-h.patch b/src/layout/svg/SVGImageContext-h.patch
index c0cff0a5d..591d42ada 100644
--- a/src/layout/svg/SVGImageContext-h.patch
+++ b/src/layout/svg/SVGImageContext-h.patch
@@ -1,5 +1,5 @@
diff --git a/layout/svg/SVGImageContext.h b/layout/svg/SVGImageContext.h
-index 159d9cbbd0711076ee6c2a71a3da04bd92a0102c..daefc40590c4d7d7fac9db25c6ec4ba2424dded5 100644
+index b1f811989697966e30859610f4fc07579d0385ab..f6f4cd5a45fc49b416111d980fab4e612788903e 100644
--- a/layout/svg/SVGImageContext.h
+++ b/layout/svg/SVGImageContext.h
@@ -6,6 +6,7 @@
@@ -44,12 +44,12 @@ index 159d9cbbd0711076ee6c2a71a3da04bd92a0102c..daefc40590c4d7d7fac9db25c6ec4ba2
const Maybe& GetPreserveAspectRatio() const {
return mPreserveAspectRatio;
}
-@@ -107,7 +128,11 @@ class SVGImageContext {
-
+@@ -116,7 +137,11 @@ class SVGImageContext {
return contextPaintIsEqual && mViewportSize == aOther.mViewportSize &&
mPreserveAspectRatio == aOther.mPreserveAspectRatio &&
-- mColorScheme == aOther.mColorScheme;
-+ mColorScheme == aOther.mColorScheme &&
+ mColorScheme == aOther.mColorScheme &&
+- mLinkParameters == aOther.mLinkParameters;
++ mLinkParameters == aOther.mLinkParameters &&
+ mZenBoostsAccent == aOther.mZenBoostsAccent &&
+ mZenBoostsComplementaryRotation ==
+ aOther.mZenBoostsComplementaryRotation &&
@@ -57,21 +57,20 @@ index 159d9cbbd0711076ee6c2a71a3da04bd92a0102c..daefc40590c4d7d7fac9db25c6ec4ba2
}
bool operator!=(const SVGImageContext&) const = default;
-@@ -119,7 +144,9 @@ class SVGImageContext {
- }
+@@ -129,7 +154,8 @@ class SVGImageContext {
return HashGeneric(hash, mViewportSize.map(HashSize).valueOr(0),
mPreserveAspectRatio.map(HashPAR).valueOr(0),
-- mColorScheme.map(HashColorScheme).valueOr(0));
-+ mColorScheme.map(HashColorScheme).valueOr(0),
-+ mZenBoostsAccent, mZenBoostsComplementaryRotation,
-+ mZenBoostsInverted);
+ mColorScheme.map(HashColorScheme).valueOr(0),
+- HashLinkParameters(mLinkParameters));
++ HashLinkParameters(mLinkParameters), mZenBoostsAccent,
++ mZenBoostsComplementaryRotation, mZenBoostsInverted);
}
private:
-@@ -138,6 +165,9 @@ class SVGImageContext {
- Maybe mViewportSize;
+@@ -167,6 +193,9 @@ class SVGImageContext {
Maybe mPreserveAspectRatio;
Maybe mColorScheme;
+ StyleLinkParameters mLinkParameters;
+ nscolor mZenBoostsAccent = 0;
+ float mZenBoostsComplementaryRotation = 0.0f;
+ bool mZenBoostsInverted = false;
diff --git a/src/services/sync/modules/service-sys-mjs.patch b/src/services/sync/modules/service-sys-mjs.patch
new file mode 100644
index 000000000..3b616d60a
--- /dev/null
+++ b/src/services/sync/modules/service-sys-mjs.patch
@@ -0,0 +1,15 @@
+diff --git a/services/sync/modules/service.sys.mjs b/services/sync/modules/service.sys.mjs
+index 4f4efe572909441abdd81909282936702c225621..2b47a2c9e97cf87641a0be9814f9a6be4d43f6ea 100644
+--- a/services/sync/modules/service.sys.mjs
++++ b/services/sync/modules/service.sys.mjs
+@@ -99,6 +99,10 @@ function getEngineModules() {
+ whenTrue: "ExtensionStorageEngineKinto",
+ whenFalse: "ExtensionStorageEngineBridge",
+ };
++ result.Spaces = {
++ module: "resource:///modules/zen/ZenSpacesSync.sys.mjs",
++ symbol: "ZenSpacesSyncEngine",
++ };
+ return result;
+ }
+
diff --git a/src/servo/ports/geckolib/cbindgen-toml.patch b/src/servo/ports/geckolib/cbindgen-toml.patch
index 7ceec28b5..b094044c6 100644
--- a/src/servo/ports/geckolib/cbindgen-toml.patch
+++ b/src/servo/ports/geckolib/cbindgen-toml.patch
@@ -1,8 +1,8 @@
diff --git a/servo/ports/geckolib/cbindgen.toml b/servo/ports/geckolib/cbindgen.toml
-index 17937bd70ead3b86e59b3da8c8d90591ee48e0a2..2bddfd549243ddc387107df00625ea5f38e5c655 100644
+index 10c0c702dbad97d5e73d84e2c913a3541380c4dd..2291871e58ae259f3bc3d573eb32e7cb47cc8953 100644
--- a/servo/ports/geckolib/cbindgen.toml
+++ b/servo/ports/geckolib/cbindgen.toml
-@@ -666,9 +666,9 @@ renaming_overrides_prefixing = true
+@@ -673,9 +673,9 @@ renaming_overrides_prefixing = true
nscolor CalcColor(const nsIFrame*) const;
/**
* Compute the final color, taking into account the foreground color from the
@@ -14,7 +14,7 @@ index 17937bd70ead3b86e59b3da8c8d90591ee48e0a2..2bddfd549243ddc387107df00625ea5f
/**
* Compute the final color, making the argument the foreground color.
*/
-@@ -691,9 +691,11 @@ renaming_overrides_prefixing = true
+@@ -698,9 +698,11 @@ renaming_overrides_prefixing = true
/**
* Convert this color to an nscolor. The color will be converted to sRGB first
@@ -27,4 +27,4 @@ index 17937bd70ead3b86e59b3da8c8d90591ee48e0a2..2bddfd549243ddc387107df00625ea5f
+ nscolor ToColor(const nsIFrame*) const;
"""
- "OwnedSlice" = """
+ "ColorFunction" = """
diff --git a/src/testing/xpcshell/runxpcshelltests-py.patch b/src/testing/xpcshell/runxpcshelltests-py.patch
new file mode 100644
index 000000000..c0aaeea1b
--- /dev/null
+++ b/src/testing/xpcshell/runxpcshelltests-py.patch
@@ -0,0 +1,14 @@
+diff --git a/testing/xpcshell/runxpcshelltests.py b/testing/xpcshell/runxpcshelltests.py
+index 403401613189ffb758037850dc6bbb1d55f194ab..cad28e245155eb54775e551885532026e56c5fa9 100755
+--- a/testing/xpcshell/runxpcshelltests.py
++++ b/testing/xpcshell/runxpcshelltests.py
+@@ -2275,6 +2275,9 @@ class XPCShellTests:
+ appDirKey = None
+ if "appname" in self.mozInfo:
+ appDirKey = self.mozInfo["appname"] + "-appdir"
++ if appDirKey == "zen-appdir":
++ # Inherited manifests use firefox-appdir.
++ appDirKey = "firefox-appdir"
+
+ # We have to do this before we run tests that depend on having the node
+ # http/2 server.
diff --git a/src/toolkit/content/widgets/panel-list/panel-list-mjs.patch b/src/toolkit/content/widgets/panel-list/panel-list-mjs.patch
new file mode 100644
index 000000000..adde5f129
--- /dev/null
+++ b/src/toolkit/content/widgets/panel-list/panel-list-mjs.patch
@@ -0,0 +1,29 @@
+diff --git a/toolkit/content/widgets/panel-list/panel-list.mjs b/toolkit/content/widgets/panel-list/panel-list.mjs
+index 68ad2fafc8b31dfff541cf8381d9b9533e376d1c..fa62fec6bfb33338091fc06d3736fb76fd5c47c4 100644
+--- a/toolkit/content/widgets/panel-list/panel-list.mjs
++++ b/toolkit/content/widgets/panel-list/panel-list.mjs
+@@ -223,7 +223,12 @@ export class PanelList extends HTMLElement {
+ this.setAttribute("showing", "true");
+ // Tell the host element to hide any overflow in case the panel extends off
+ // the page before the alignment is set.
+- hostElement.style.overflow = "hidden";
++ const hostHidesOverflow = !getComputedStyle(hostElement)
++ .overflow.split(" ")
++ .includes("visible");
++ if (!hostHidesOverflow) {
++ hostElement.style.overflow = "hidden";
++ }
+
+ // Wait for a layout flush, then find the bounds.
+ let {
+@@ -344,7 +349,9 @@ export class PanelList extends HTMLElement {
+ // Set the alignments and show the panel.
+ this.setAttribute("align", align);
+ this.setAttribute("valign", valign);
+- hostElement.style.overflow = "";
++ if (!hostHidesOverflow) {
++ hostElement.style.overflow = "";
++ }
+ // Decide positioning based on where this panel will be rendered
+ const offsetParentIsBody =
+ this.supportsPopover() ||
diff --git a/src/toolkit/content/widgets/tabbox-js.patch b/src/toolkit/content/widgets/tabbox-js.patch
index 40f876dc8..8056fd11b 100644
--- a/src/toolkit/content/widgets/tabbox-js.patch
+++ b/src/toolkit/content/widgets/tabbox-js.patch
@@ -1,5 +1,5 @@
diff --git a/toolkit/content/widgets/tabbox.js b/toolkit/content/widgets/tabbox.js
-index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b577e10a46 100644
+index 402fe6a74b5327a30199667de18f053ad75fe910..9bcbc827d18db2f996d964f7c7e3439e064c9e0d 100644
--- a/toolkit/content/widgets/tabbox.js
+++ b/toolkit/content/widgets/tabbox.js
@@ -11,6 +11,23 @@
@@ -26,7 +26,7 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
let imports = {};
ChromeUtils.defineESModuleGetters(imports, {
DeferredTask: "resource://gre/modules/DeferredTask.sys.mjs",
-@@ -225,7 +242,7 @@
+@@ -226,7 +243,7 @@
) {
this._inAsyncOperation = false;
if (oldPanel != this._selectedPanel) {
@@ -35,7 +35,7 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
this._selectedPanel?.classList.add("deck-selected");
}
this.setAttribute("selectedIndex", val);
-@@ -924,7 +941,7 @@
+@@ -898,7 +915,7 @@
if (!tab) {
return;
}
@@ -44,7 +44,7 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
if (otherTab != tab && otherTab.selected) {
otherTab._selected = false;
}
-@@ -960,6 +977,7 @@
+@@ -934,6 +951,7 @@
* @param {MozTab|null} [val]
*/
set selectedItem(val) {
@@ -52,7 +52,7 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
if (val && !val.selected) {
// The selectedIndex setter ignores invalid values
// such as -1 if |val| isn't one of our child nodes.
-@@ -1137,7 +1155,7 @@
+@@ -1111,7 +1129,7 @@
if (tab == startTab) {
return null;
}
@@ -61,10 +61,10 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
return tab;
}
}
-@@ -1199,13 +1217,30 @@
- * @param {boolean} [aWrap]
+@@ -1175,13 +1193,30 @@
*/
- advanceSelectedTab(aDir, aWrap) {
+ // eslint-disable-next-line no-unused-vars
+ advanceSelectedTab(aDir, aWrap, aEvent) {
+ if (window?.gZenGlanceManager?._animating) return;
let { ariaFocusedItem } = this;
let startTab = ariaFocusedItem;
@@ -93,7 +93,7 @@ index 9334120e818b609c6cb6792fd509e90c9b362551..2dde0c8698eb75bac0d0eb4d800d11b5
// Handle keyboard navigation for a hidden tab that can be selected, like the Firefox View tab,
// which has a random placement in this.allTabs.
if (startTab.hidden) {
-@@ -1218,7 +1253,7 @@
+@@ -1194,7 +1229,7 @@
newTab = this.findNextTab(startTab, {
direction: aDir,
wrap: aWrap,
diff --git a/src/toolkit/modules/JSONFile-sys-mjs.patch b/src/toolkit/modules/JSONFile-sys-mjs.patch
index f289c4b40..ca27e90bc 100644
--- a/src/toolkit/modules/JSONFile-sys-mjs.patch
+++ b/src/toolkit/modules/JSONFile-sys-mjs.patch
@@ -1,5 +1,5 @@
diff --git a/toolkit/modules/JSONFile.sys.mjs b/toolkit/modules/JSONFile.sys.mjs
-index 397991e4af8f49b6365d729fc11267b5c1113400..9b1d6fd3850b239000a3c4d2a2d5799a0989f4e3 100644
+index 397991e4af8f49b6365d729fc11267b5c1113400..599ed16981aa1f1e9abfee2ad6c1883efd88e0ba 100644
--- a/toolkit/modules/JSONFile.sys.mjs
+++ b/toolkit/modules/JSONFile.sys.mjs
@@ -132,6 +132,7 @@ export function JSONFile(config) {
@@ -16,14 +16,14 @@ index 397991e4af8f49b6365d729fc11267b5c1113400..9b1d6fd3850b239000a3c4d2a2d5799a
try {
- await IOUtils.writeJSON(
+ if (this._useSizeHints && this._lastSavedSize) {
-+ this._options.jsonLengthHint = Math.ceil(this._lastSavedSize * 1.05);
++ this._options.lengthHint = Math.ceil(this._lastSavedSize * 1.05);
+ }
+ const result = await IOUtils.writeJSON(
this.path,
this._data,
Object.assign({ tmpPath: this.path + ".tmp" }, this._options)
);
-+ this._lastSavedSize = this._useSizeHints ? result : null;
++ this._lastSavedSize = this._useSizeHints ? result.jsonLength : null;
} catch (ex) {
if (typeof this._data.toJSONSafe == "function") {
// If serialization fails, try fallback safe JSON converter.
diff --git a/src/toolkit/mozapps/extensions/Blocklist-sys-mjs.patch b/src/toolkit/mozapps/extensions/Blocklist-sys-mjs.patch
new file mode 100644
index 000000000..c2125b8a4
--- /dev/null
+++ b/src/toolkit/mozapps/extensions/Blocklist-sys-mjs.patch
@@ -0,0 +1,22 @@
+diff --git a/toolkit/mozapps/extensions/Blocklist.sys.mjs b/toolkit/mozapps/extensions/Blocklist.sys.mjs
+index 4e1e0aac91612c846bb664efe3dbb50ecf63597d..93eb9a05520198eb3f9af35aa58d789719169434 100644
+--- a/toolkit/mozapps/extensions/Blocklist.sys.mjs
++++ b/toolkit/mozapps/extensions/Blocklist.sys.mjs
+@@ -411,7 +411,7 @@ class TargetAppFilter {
+ if (!Array.isArray(versionRange)) {
+ const { maxVersion = "*" } = versionRange;
+ const matchesRange =
+- Services.vc.compare(lazy.gApp.version, maxVersion) <= 0;
++ Services.vc.compare(AppConstants.ZEN_FIREFOX_VERSION, maxVersion) <= 0;
+ return matchesRange ? entry : null;
+ }
+
+@@ -433,7 +433,7 @@ class TargetAppFilter {
+ const { maxVersion = "*" } = ta;
+ if (
+ guid == lazy.gAppID &&
+- Services.vc.compare(lazy.gApp.version, maxVersion) <= 0
++ Services.vc.compare(AppConstants.ZEN_FIREFOX_VERSION, maxVersion) <= 0
+ ) {
+ return entry;
+ }
diff --git a/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch b/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch
index e45f09187..085ab3862 100644
--- a/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch
+++ b/src/toolkit/mozapps/extensions/content/aboutaddons-css.patch
@@ -1,18 +1,17 @@
diff --git a/toolkit/mozapps/extensions/content/aboutaddons.css b/toolkit/mozapps/extensions/content/aboutaddons.css
-index 619ae975710359fe879f197c689969ed726de7c0..542adaf0aa4f9d7336d969754228c1a93640b6af 100644
+index d0af33257f01df0deb5469d964a53be687a15f2f..2ef7fc1f0d8b0b67743b7d67df3719be0b46a4b0 100644
--- a/toolkit/mozapps/extensions/content/aboutaddons.css
+++ b/toolkit/mozapps/extensions/content/aboutaddons.css
-@@ -105,6 +105,13 @@ h2 {
- .category[name="theme"] {
- background-image: url("chrome://mozapps/skin/extensions/category-themes.svg");
+@@ -713,6 +713,12 @@ section:not(:empty) ~ #empty-addons-message {
+ font-weight: var(--font-weight-bold);
}
-+
+
+@media -moz-pref('zen.theme.disable-lightweight') {
-+ .category[name="theme"] {
++ #category-theme {
+ display: none;
+ }
+}
+
- .category[name="plugin"] {
- background-image: url("chrome://mozapps/skin/extensions/category-plugins.svg");
- }
+ /* Position the badged dot in the top-end (right in ltr, left in rtl)
+ * corner of the badged category icon. */
+ @media (max-width: 950px) {
diff --git a/src/toolkit/themes/shared/design-system/dist/tokens-shared-css.patch b/src/toolkit/themes/shared/design-system/dist/tokens-shared-css.patch
index 280ba70ce..0dcc3ed65 100644
--- a/src/toolkit/themes/shared/design-system/dist/tokens-shared-css.patch
+++ b/src/toolkit/themes/shared/design-system/dist/tokens-shared-css.patch
@@ -1,19 +1,19 @@
diff --git a/toolkit/themes/shared/design-system/dist/tokens-shared.css b/toolkit/themes/shared/design-system/dist/tokens-shared.css
-index 94afbe630914eef375967f2eff310d69c61fa1aa..04b42529d43c5100a76c883220875c0b70ad0616 100644
+index 15c0d98a18b4f19e7f2e03d2b78066b0353f416a..b32f6244c7a07e93894bab422691a605456034a1 100644
--- a/toolkit/themes/shared/design-system/dist/tokens-shared.css
+++ b/toolkit/themes/shared/design-system/dist/tokens-shared.css
@@ -7,6 +7,8 @@
- @layer tokens-foundation, tokens-foundation-nova, tokens-prefers-contrast, tokens-prefers-contrast-nova, tokens-forced-colors, tokens-forced-colors-nova, tokens-browser-theme, tokens-browser-theme-nova;
+ @layer tokens-foundation, tokens-browser-theme, tokens-foundation-brand, tokens-foundation-nova, tokens-browser-theme-nova, tokens-foundation-brand-nova, tokens-prefers-contrast, tokens-prefers-contrast-nova, tokens-forced-colors, tokens-forced-colors-nova;
+@import url("chrome://browser/content/zen-styles/zen-theme.css");
+
@layer tokens-foundation {
:root,
:host(.anonymous-content-host) {
-@@ -368,8 +370,8 @@
- --panel-background-color-dimmed-further: color-mix(in srgb, currentColor 30%, transparent);
- --panel-border-color: ThreeDShadow;
+@@ -424,8 +426,8 @@
+ --panel-background-color-dimmed-further: var(--background-color-dimmed-further);
+ --panel-border-color: light-dark(rgb(240, 240, 244), rgb(82, 82, 94));
--panel-border-radius: var(--border-radius-medium);
- --panel-box-shadow: 0 0 var(--panel-box-shadow-margin) hsla(0, 0%, 0%, 0.2);
- --panel-box-shadow-margin: 4px;
@@ -21,4 +21,4 @@ index 94afbe630914eef375967f2eff310d69c61fa1aa..04b42529d43c5100a76c883220875c0b
+ --panel-box-shadow-margin: 8px;
--panel-menuitem-border-radius: var(--border-radius-small);
--panel-menuitem-margin: var(--panel-menuitem-margin-block) var(--panel-menuitem-margin-inline);
- --panel-menuitem-margin-block: 0px;
+ --panel-menuitem-margin-block: 0;
diff --git a/src/toolkit/themes/shared/in-content/common-shared-css.patch b/src/toolkit/themes/shared/in-content/common-shared-css.patch
index 5d60ff2e8..18134512d 100644
--- a/src/toolkit/themes/shared/in-content/common-shared-css.patch
+++ b/src/toolkit/themes/shared/in-content/common-shared-css.patch
@@ -1,17 +1,17 @@
diff --git a/toolkit/themes/shared/in-content/common-shared.css b/toolkit/themes/shared/in-content/common-shared.css
-index 8cbeb5d266b19c2c5b3d605b23c8c421a03c2a0e..7db0baeee11b99a5da1c143c682e38751a9ac03c 100644
+index 087d356b80886b22692f948a97f229ccf75737fd..9c2d370e94d1f901ded4a7a786a475fdf867de07 100644
--- a/toolkit/themes/shared/in-content/common-shared.css
+++ b/toolkit/themes/shared/in-content/common-shared.css
-@@ -57,7 +57,7 @@
+@@ -40,7 +40,7 @@
* this in forced colors mode, as we should be using system colours then.
*/
:root[dialogroot] {
-- --background-color-canvas: #42414d;
+- --background-color-canvas: var(--color-gray-80);
+ --background-color-canvas: var(--zen-dialog-background);
}
}
-@@ -158,7 +158,7 @@ xul|menulist {
+@@ -141,7 +141,7 @@ xul|menulist {
border-radius: var(--button-border-radius);
background-color: var(--button-background-color);
font-weight: normal;
diff --git a/src/toolkit/themes/shared/menulist-css.patch b/src/toolkit/themes/shared/menulist-css.patch
index 427888eed..b89bfa0c4 100644
--- a/src/toolkit/themes/shared/menulist-css.patch
+++ b/src/toolkit/themes/shared/menulist-css.patch
@@ -1,13 +1,13 @@
diff --git a/toolkit/themes/shared/menulist.css b/toolkit/themes/shared/menulist.css
-index 3b3e855f20c74f096324c42814e63cbdeb486051..f52e47fc8acea20a4e073b7f4a588d4d4e721aa8 100644
+index d763691ab48424aebd1f5152c8b60011445f2244..984b39f8a21c9460d316f8c0b77003a279aa2b6e 100644
--- a/toolkit/themes/shared/menulist.css
+++ b/toolkit/themes/shared/menulist.css
-@@ -53,7 +53,7 @@
+@@ -55,7 +55,7 @@
:host(:not([native])) {
appearance: none;
-- background-color: var(--button-background-color);
+- background-color: var(--select-background-color);
+ background-color: light-dark(rgba(0,0,0,.1), rgba(255,255,255,.1));
- color: var(--button-text-color);
- border-radius: var(--button-border-radius);
- padding-block: var(--space-xsmall);
+ color: var(--select-text-color);
+ border: var(--select-border);
+ border-radius: var(--select-border-radius);
diff --git a/src/toolkit/xre/nsXREDirProvider-cpp.patch b/src/toolkit/xre/nsXREDirProvider-cpp.patch
index 963848a85..63b9c99ac 100644
--- a/src/toolkit/xre/nsXREDirProvider-cpp.patch
+++ b/src/toolkit/xre/nsXREDirProvider-cpp.patch
@@ -1,8 +1,8 @@
diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp
-index b54980f967ab8fe9b9c13bbad8fae6323ec84f1f..f1a5481fb3bd44c1f8f6e40f4163aa7842623325 100644
+index dcce3335e14f9f5d3c0b9fe6a86527be6011c143..ca788d6bd1db3a14d80bf571813e9c706456968f 100644
--- a/toolkit/xre/nsXREDirProvider.cpp
+++ b/toolkit/xre/nsXREDirProvider.cpp
-@@ -1333,9 +1333,11 @@ nsresult nsXREDirProvider::AppendFromAppData(nsIFile* aFile, bool aIsDotted) {
+@@ -1335,14 +1335,10 @@ nsresult nsXREDirProvider::AppendFromAppData(nsIFile* aFile, bool aIsDotted) {
// Similar to nsXREDirProvider::AppendProfilePath.
// TODO: Bug 1990407 - Evaluate if refactoring might be required there in the
// future?
@@ -10,12 +10,17 @@ index b54980f967ab8fe9b9c13bbad8fae6323ec84f1f..f1a5481fb3bd44c1f8f6e40f4163aa78
+ // Use aIsDotted for a different purpose here, will probably break in the future
+ if (gAppData->profile && aIsDotted) {
nsAutoCString profile;
- profile = gAppData->profile;
+-# if defined(MOZ_THUNDERBIRD)
+- if (gAppData->profile[0] != '.') {
+- profile.Assign('.');
+- }
+-# endif
+- profile.Append(gAppData->profile);
+ profile = "."_ns + nsDependentCString(gAppData->profile);
MOZ_TRY(aFile->AppendRelativeNativePath(profile));
} else {
nsAutoCString vendor;
-@@ -1345,8 +1347,6 @@ nsresult nsXREDirProvider::AppendFromAppData(nsIFile* aFile, bool aIsDotted) {
+@@ -1352,8 +1348,6 @@ nsresult nsXREDirProvider::AppendFromAppData(nsIFile* aFile, bool aIsDotted) {
ToLowerCase(vendor);
ToLowerCase(appName);
@@ -24,11 +29,16 @@ index b54980f967ab8fe9b9c13bbad8fae6323ec84f1f..f1a5481fb3bd44c1f8f6e40f4163aa78
MOZ_TRY(aFile->AppendRelativeNativePath(appName));
}
-@@ -1514,13 +1514,8 @@ nsresult nsXREDirProvider::GetLegacyOrXDGHomePath(const char* aHomeDir,
-
- // If the build was made against a specific profile name, MOZ_APP_PROFILE=
- // then make sure we respect this and dont move to XDG directory
-- if (gAppData->profile) {
+@@ -1530,18 +1524,8 @@ nsresult nsXREDirProvider::GetLegacyOrXDGHomePath(const char* aHomeDir,
+ // of a specific build where legacy needs to be forced, similar to the
+ // Firefox handling. Both casing are verified to account for systems where
+ // that matters.
+- if (gAppData->profile
+-# if defined(MOZ_THUNDERBIRD)
+- && strcmp(gAppData->profile, "thunderbird") != 0 &&
+- strcmp(gAppData->profile, "Thunderbird") != 0
+-# endif
+- ) {
- MOZ_TRY(NS_NewNativeLocalFile(nsDependentCString(aHomeDir),
- getter_AddRefs(localDir)));
- } else {
diff --git a/src/widget/SwipeTracker-cpp.patch b/src/widget/SwipeTracker-cpp.patch
index 965a670ea..39bceca6f 100644
--- a/src/widget/SwipeTracker-cpp.patch
+++ b/src/widget/SwipeTracker-cpp.patch
@@ -1,15 +1,15 @@
diff --git a/widget/SwipeTracker.cpp b/widget/SwipeTracker.cpp
-index 887d06d3bd9cdaa934880e0ae7a11ec8b737fb61..979f93ddab0d661ac1a1d73e7a0ba27fa2c8f9b7 100644
+index 83b80a808261ce28e5c571dc802993556477f0c8..8de39d5c724e23f540a70f47e893e46bcf1112e6 100644
--- a/widget/SwipeTracker.cpp
+++ b/widget/SwipeTracker.cpp
-@@ -3,6 +3,7 @@
- * You can obtain one at http://mozilla.org/MPL/2.0/. */
-
- #include "SwipeTracker.h"
+@@ -10,6 +10,7 @@
+ #include "mozilla/PresShell.h"
+ #include "mozilla/StaticPrefs_browser.h"
+ #include "mozilla/StaticPrefs_widget.h"
+#include "mozilla/StaticPrefs_zen.h"
-
- #include "InputData.h"
- #include "mozilla/FlushType.h"
+ #include "mozilla/TimeStamp.h"
+ #include "mozilla/TouchEvents.h"
+ #include "mozilla/dom/SimpleGestureEventBinding.h"
@@ -67,6 +68,9 @@ double SwipeTracker::SwipeSuccessTargetValue() const {
}
diff --git a/src/widget/Theme-cpp.patch b/src/widget/Theme-cpp.patch
index 1b88b2c75..f8a79df1b 100644
--- a/src/widget/Theme-cpp.patch
+++ b/src/widget/Theme-cpp.patch
@@ -1,16 +1,16 @@
diff --git a/widget/Theme.cpp b/widget/Theme.cpp
-index 766a8ca4bc6fcc98f719ad4f472b20bc1d198ac9..be4419cfafb55e5cac8f5de741185ee3cabc4722 100644
+index 0d9c9014dabfe7177c25d6f983ff823c4435a327..7995de05ed556fa6373b83e3e44bffc1b857dd73 100644
--- a/widget/Theme.cpp
+++ b/widget/Theme.cpp
-@@ -18,6 +18,7 @@
- #include "mozilla/RelativeLuminanceUtils.h"
- #include "mozilla/ScrollContainerFrame.h"
- #include "mozilla/StaticPrefs_widget.h"
+@@ -25,6 +25,7 @@
+ #include "mozilla/gfx/Filters.h"
+ #include "mozilla/gfx/Rect.h"
+ #include "mozilla/gfx/Types.h"
+#include "mozilla/nsZenBoostsBackend.h"
#include "mozilla/webrender/WebRenderAPI.h"
#include "nsCSSColorUtils.h"
#include "nsCSSRendering.h"
-@@ -670,10 +671,15 @@ template
+@@ -671,10 +672,15 @@ template
void Theme::PaintTextField(PaintBackendData& aPaintData,
const LayoutDeviceRect& aRect,
const ElementState& aState, const Colors& aColors,
@@ -27,7 +27,7 @@ index 766a8ca4bc6fcc98f719ad4f472b20bc1d198ac9..be4419cfafb55e5cac8f5de741185ee3
const CSSCoord radius = 2.0f;
ThemeDrawing::PaintRoundedRectWithRadius(aPaintData, aRect, backgroundColor,
-@@ -690,9 +696,9 @@ template
+@@ -691,9 +697,9 @@ template
void Theme::PaintListbox(PaintBackendData& aPaintData,
const LayoutDeviceRect& aRect,
const ElementState& aState, const Colors& aColors,
@@ -39,7 +39,7 @@ index 766a8ca4bc6fcc98f719ad4f472b20bc1d198ac9..be4419cfafb55e5cac8f5de741185ee3
}
template
-@@ -1158,10 +1164,12 @@ bool Theme::DoDrawWidgetBackground(PaintBackendData& aPaintData,
+@@ -1159,10 +1165,12 @@ bool Theme::DoDrawWidgetBackground(PaintBackendData& aPaintData,
case StyleAppearance::Textfield:
case StyleAppearance::NumberInput:
case StyleAppearance::PasswordInput:
diff --git a/src/widget/cocoa/VibrancyManager-mm.patch b/src/widget/cocoa/VibrancyManager-mm.patch
index 00ea2b670..52a41a5a9 100644
--- a/src/widget/cocoa/VibrancyManager-mm.patch
+++ b/src/widget/cocoa/VibrancyManager-mm.patch
@@ -1,16 +1,16 @@
diff --git a/widget/cocoa/VibrancyManager.mm b/widget/cocoa/VibrancyManager.mm
-index 5df70a63afb235d2db11712276bb63f756222a0f..a2865aa2748433cbfd956ae46d197200fbbcfadd 100644
+index bc62ff28285691c605fe0680e7a98927f11d5882..c209b63179df298e9b43182813ba0045f08328cc 100644
--- a/widget/cocoa/VibrancyManager.mm
+++ b/widget/cocoa/VibrancyManager.mm
-@@ -11,6 +11,7 @@
+@@ -9,6 +9,7 @@
+ #import
- #include "nsCocoaWindow.h"
#include "mozilla/StaticPrefs_widget.h"
+#include "mozilla/StaticPrefs_zen.h"
+ #include "nsCocoaWindow.h"
using namespace mozilla;
-
-@@ -29,6 +30,9 @@ static NSVisualEffectState VisualEffectStateForVibrancyType(
+@@ -28,6 +29,9 @@ static NSVisualEffectState VisualEffectStateForVibrancyType(
case VibrancyType::Sidebar:
break;
}
@@ -20,44 +20,3 @@ index 5df70a63afb235d2db11712276bb63f756222a0f..a2865aa2748433cbfd956ae46d197200
return NSVisualEffectStateFollowsWindowActiveState;
}
-@@ -36,7 +40,23 @@ static NSVisualEffectMaterial VisualEffectMaterialForVibrancyType(
- VibrancyType aType) {
- switch (aType) {
- case VibrancyType::Sidebar:
-- return NSVisualEffectMaterialSidebar;
-+ switch (StaticPrefs::zen_widget_macos_window_material()) {
-+ case 1:
-+ return NSVisualEffectMaterialHUDWindow;
-+ case 2:
-+ return NSVisualEffectMaterialFullScreenUI;
-+ case 3:
-+ return NSVisualEffectMaterialPopover;
-+ case 4:
-+ return NSVisualEffectMaterialMenu;
-+ case 5:
-+ return NSVisualEffectMaterialToolTip;
-+ case 6:
-+ return NSVisualEffectMaterialHeaderView;
-+ case 7:
-+ default:
-+ return NSVisualEffectMaterialUnderWindowBackground;
-+ }
- case VibrancyType::Titlebar:
- return NSVisualEffectMaterialTitlebar;
- }
-@@ -76,6 +96,7 @@ - (NSView*)hitTest:(NSPoint)aPoint {
-
- - (void)prefChanged {
- self.blendingMode = VisualEffectBlendingModeForVibrancyType(mType);
-+ self.material = VisualEffectMaterialForVibrancyType(mType);
- }
- @end
-
-@@ -86,6 +107,7 @@ static void PrefChanged(const char* aPref, void* aClosure) {
- static constexpr nsLiteralCString kObservedPrefs[] = {
- "widget.macos.sidebar-blend-mode.behind-window"_ns,
- "widget.macos.titlebar-blend-mode.behind-window"_ns,
-+ "zen.widget.macos.window-material"_ns,
- };
-
- VibrancyManager::VibrancyManager(const nsCocoaWindow& aCoordinateConverter,
diff --git a/src/widget/cocoa/nsCocoaWindow-h.patch b/src/widget/cocoa/nsCocoaWindow-h.patch
new file mode 100644
index 000000000..77f4033c0
--- /dev/null
+++ b/src/widget/cocoa/nsCocoaWindow-h.patch
@@ -0,0 +1,23 @@
+diff --git a/widget/cocoa/nsCocoaWindow.h b/widget/cocoa/nsCocoaWindow.h
+index 312011c1c2ac41e78affecbdef25d72766a7c882..e5865c7d6259f0a3df48edf7a26b1b75a23cdb3a 100644
+--- a/widget/cocoa/nsCocoaWindow.h
++++ b/widget/cocoa/nsCocoaWindow.h
+@@ -462,6 +462,10 @@ class nsCocoaWindow final : public nsIWidget {
+ void SetHideTitlebarSeparator(bool) override;
+ bool IsMacTitlebarDirectionRTL() override;
+ void SetCustomTitlebar(bool) override;
++ void SetWindowClass(const nsAString& aXulWinType,
++ const nsAString& aXulWinClass,
++ const nsAString& aXulWinName) override;
++ void UpdateWindowMaterial();
+ void UpdateThemeGeometries(
+ const nsTArray& aThemeGeometries) override;
+ void LockAspectRatio(bool aShouldLock) override;
+@@ -672,6 +676,7 @@ class nsCocoaWindow final : public nsIWidget {
+ bool mAspectRatioLocked = false;
+ bool mIsAlert = false; // True if this is an non-native alert window.
+ bool mWasShown = false;
++ bool mIsBrowserWindow = false;
+
+ int32_t mNumModalDescendants = 0;
+
diff --git a/src/widget/cocoa/nsCocoaWindow-mm.patch b/src/widget/cocoa/nsCocoaWindow-mm.patch
new file mode 100644
index 000000000..983efe466
--- /dev/null
+++ b/src/widget/cocoa/nsCocoaWindow-mm.patch
@@ -0,0 +1,134 @@
+diff --git a/widget/cocoa/nsCocoaWindow.mm b/widget/cocoa/nsCocoaWindow.mm
+index 2efd02e4a92433fd29bbfdb707aa81cfec45031e..3b763c3927f07e529c826f8e4f62bc80a324b247 100644
+--- a/widget/cocoa/nsCocoaWindow.mm
++++ b/widget/cocoa/nsCocoaWindow.mm
+@@ -86,6 +86,7 @@
+ #include "mozilla/StaticPrefs_gfx.h"
+ #include "mozilla/StaticPrefs_ui.h"
+ #include "mozilla/StaticPrefs_widget.h"
++#include "mozilla/StaticPrefs_zen.h"
+ #include "mozilla/WritingModes.h"
+ #include "mozilla/dom/Document.h"
+ #include "mozilla/layers/CompositorBridgeChild.h"
+@@ -1332,6 +1333,110 @@ - (NSRect)_opaqueRectForWindowMoveWhenInTitlebar {
+ }
+ @end
+
++@interface ZenWindowMaterialView : NSVisualEffectView
++- (void)prefChanged;
++@end
++
++static void ZenWindowMaterialPrefChanged(const char* aPref, void* aClosure) {
++ [static_cast(aClosure) prefChanged];
++}
++
++static constexpr nsLiteralCString kZenWindowMaterialPrefs[] = {
++ "zen.widget.macos.window-material"_ns,
++ "zen.view.grey-out-inactive-windows"_ns,
++};
++
++static NSVisualEffectMaterial ZenWindowMaterial() {
++ switch (StaticPrefs::zen_widget_macos_window_material()) {
++ case 1:
++ return NSVisualEffectMaterialHUDWindow;
++ case 2:
++ return NSVisualEffectMaterialFullScreenUI;
++ case 3:
++ return NSVisualEffectMaterialPopover;
++ case 4:
++ return NSVisualEffectMaterialMenu;
++ case 5:
++ return NSVisualEffectMaterialToolTip;
++ case 6:
++ return NSVisualEffectMaterialHeaderView;
++ case 7:
++ default:
++ return NSVisualEffectMaterialUnderWindowBackground;
++ }
++}
++
++@implementation ZenWindowMaterialView
++- (instancetype)initWithFrame:(NSRect)aRect {
++ self = [super initWithFrame:aRect];
++ self.appearance = nil;
++ self.emphasized = NO;
++ self.blendingMode = NSVisualEffectBlendingModeBehindWindow;
++ [self prefChanged];
++ for (const auto& pref : kZenWindowMaterialPrefs) {
++ Preferences::RegisterCallback(ZenWindowMaterialPrefChanged, pref, self);
++ }
++ return self;
++}
++
++- (void)dealloc {
++ for (const auto& pref : kZenWindowMaterialPrefs) {
++ Preferences::UnregisterCallback(ZenWindowMaterialPrefChanged, pref, self);
++ }
++ [super dealloc];
++}
++
++- (void)prefChanged {
++ self.state = StaticPrefs::zen_view_grey_out_inactive_windows()
++ ? NSVisualEffectStateFollowsWindowActiveState
++ : NSVisualEffectStateActive;
++ self.material = ZenWindowMaterial();
++}
++@end
++
++static void ZenWindowVibrancyPrefChanged(const char* aPref, void* aClosure) {
++ static_cast(aClosure)->UpdateWindowMaterial();
++}
++
++void nsCocoaWindow::SetWindowClass(const nsAString& aXulWinType,
++ const nsAString& aXulWinClass,
++ const nsAString& aXulWinName) {
++ if (mWindowType != WindowType::TopLevel || mIsBrowserWindow ||
++ !aXulWinType.EqualsLiteral("navigator:browser")) {
++ return;
++ }
++ mIsBrowserWindow = true;
++ Preferences::RegisterCallback(ZenWindowVibrancyPrefChanged,
++ "zen.widget.macos.window-vibrancy", this);
++ UpdateWindowMaterial();
++}
++
++void nsCocoaWindow::UpdateWindowMaterial() {
++ NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
++
++ if (!mWindow) {
++ return;
++ }
++ bool wanted = StaticPrefs::zen_widget_macos_window_vibrancy();
++ if (wanted ==
++ [mWindow.contentView isKindOfClass:[ZenWindowMaterialView class]]) {
++ return;
++ }
++
++ NSRect frame = mWindow.contentView.frame;
++ NSView* wrapper = wanted ? [[ZenWindowMaterialView alloc] initWithFrame:frame]
++ : [[NSView alloc] initWithFrame:frame];
++ wrapper.wantsLayer = YES;
++ for (NSView* view in [mWindow contentViewContents]) {
++ [view removeFromSuperviewWithoutNeedingDisplay];
++ [wrapper addSubview:view];
++ }
++ mWindow.contentView = wrapper;
++ [wrapper release];
++
++ NS_OBJC_END_TRY_IGNORE_BLOCK;
++}
++
+ void nsCocoaWindow::UpdateWindowDraggingRegion(
+ const LayoutDeviceIntRegion& aRegion) {
+ // mChildView returns YES from mouseDownCanMoveWindow, so we need to put
+@@ -4919,6 +5024,10 @@ - (BOOL)wantsBestResolutionOpenGLSurface {
+ nsCocoaWindow::~nsCocoaWindow() {
+ NS_OBJC_BEGIN_TRY_IGNORE_BLOCK;
+
++ if (mIsBrowserWindow) {
++ Preferences::UnregisterCallback(ZenWindowVibrancyPrefChanged,
++ "zen.widget.macos.window-vibrancy", this);
++ }
+ RemoveAllChildren();
+ if (mWindow && mWindowMadeHere) {
+ CancelAllTransitions();
diff --git a/src/widget/cocoa/nsDragService-mm.patch b/src/widget/cocoa/nsDragService-mm.patch
index 8109f2625..8308e701c 100644
--- a/src/widget/cocoa/nsDragService-mm.patch
+++ b/src/widget/cocoa/nsDragService-mm.patch
@@ -1,16 +1,16 @@
diff --git a/widget/cocoa/nsDragService.mm b/widget/cocoa/nsDragService.mm
-index 81fe6f749c1d046141003ad2413605b4d4acf9ed..f26c2556657ad683dad3fa712feca5965343175d 100644
+index 340a9ad81c5cb23bb7e5f927d11d5cffdde7ce70..32fc707ccfa56fa8c307860868d092c4a9050419 100644
--- a/widget/cocoa/nsDragService.mm
+++ b/widget/cocoa/nsDragService.mm
-@@ -22,6 +22,7 @@
- #include "mozilla/PresShell.h"
+@@ -10,6 +10,7 @@
#include "mozilla/dom/Document.h"
#include "mozilla/dom/DocumentInlines.h"
-+#include "mozilla/nsZenDragAndDrop.h"
- #include "nsIContent.h"
- #include "nsCocoaUtils.h"
#include "mozilla/gfx/2D.h"
-@@ -146,6 +147,10 @@
++#include "mozilla/nsZenDragAndDrop.h"
+ #include "nsArrayUtils.h"
+ #include "nsCOMPtr.h"
+ #include "nsClipboard.h"
+@@ -145,6 +146,10 @@
bitsPerPixel:32];
uint8_t* dest = [imageRep bitmapData];
@@ -21,7 +21,7 @@ index 81fe6f749c1d046141003ad2413605b4d4acf9ed..f26c2556657ad683dad3fa712feca596
for (uint32_t i = 0; i < height; ++i) {
uint8_t* src = map.mData + i * map.mStride;
for (uint32_t j = 0; j < width; ++j) {
-@@ -153,15 +158,15 @@
+@@ -152,15 +157,15 @@
// is premultipled here. Also, Quartz likes RGBA, so do that translation
// as well.
#ifdef IS_BIG_ENDIAN
diff --git a/src/widget/gtk/nsDragService-cpp.patch b/src/widget/gtk/nsDragService-cpp.patch
new file mode 100644
index 000000000..85e9760e3
--- /dev/null
+++ b/src/widget/gtk/nsDragService-cpp.patch
@@ -0,0 +1,29 @@
+diff --git a/widget/gtk/nsDragService.cpp b/widget/gtk/nsDragService.cpp
+index f760a6bb887b321376761431886c771f14fd03af..d52110ba52a95ef7c7bfb915e120b8dd636c9448 100644
+--- a/widget/gtk/nsDragService.cpp
++++ b/widget/gtk/nsDragService.cpp
+@@ -23,6 +23,7 @@
+ #include "mozilla/StaticPrefs_widget.h"
+ #include "mozilla/WidgetUtils.h"
+ #include "mozilla/WidgetUtilsGtk.h"
++#include "mozilla/nsZenDragAndDrop.h"
+ #include "nsAppShell.h"
+ #include "nsArrayUtils.h"
+ #include "nsCRT.h"
+@@ -2304,11 +2305,15 @@ bool nsDragSession::SetAlphaPixmap(SourceSurface* aSurface,
+ cairo_image_surface_get_stride(surf), SurfaceFormat::B8G8R8A8);
+ if (!dt) return false;
+
++ auto drag_translucency = DRAG_IMAGE_ALPHA_LEVEL;
++ if (auto zenDragAndDrop = zen::nsZenDragAndDrop::GetZenDragAndDropInstance()) {
++ drag_translucency = zenDragAndDrop->GetDragImageOpacity();
++ }
+ dt->ClearRect(Rect(0, 0, dragRect.width, dragRect.height));
+ dt->DrawSurface(
+ aSurface, Rect(0, 0, dragRect.width, dragRect.height),
+ Rect(0, 0, dragRect.width, dragRect.height), DrawSurfaceOptions(),
+- DrawOptions(DRAG_IMAGE_ALPHA_LEVEL, CompositionOp::OP_SOURCE));
++ DrawOptions(drag_translucency, CompositionOp::OP_SOURCE));
+
+ cairo_surface_mark_dirty(surf);
+ cairo_surface_set_device_offset(surf, -aXOffset, -aYOffset);
diff --git a/src/zen/@types/lib.gecko.darwin.d.ts b/src/zen/@types/lib.gecko.darwin.d.ts
index f0ae454f1..1633bd800 100644
--- a/src/zen/@types/lib.gecko.darwin.d.ts
+++ b/src/zen/@types/lib.gecko.darwin.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from source XPCOM .idl files.
@@ -8,7 +5,7 @@
*/
declare global {
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleMacInterface.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleMacInterface.idl
interface nsIAccessibleMacNSObjectWrapper extends nsISupports {}
@@ -29,13 +26,13 @@ declare global {
readonly data: any;
}
- // https://searchfox.org/mozilla-central/source/browser/components/migration/nsIKeychainMigrationUtils.idl
+ // https://searchfox.org/firefox-main/source/browser/components/migration/nsIKeychainMigrationUtils.idl
interface nsIKeychainMigrationUtils extends nsISupports {
getGenericPassword(aServiceName: string, aAccountName: string): string;
}
- // https://searchfox.org/mozilla-central/source/browser/components/shell/nsIMacShellService.idl
+ // https://searchfox.org/firefox-main/source/browser/components/shell/nsIMacShellService.idl
interface nsIMacShellService extends nsIShellService {
showDesktopPreferences(): void;
@@ -43,7 +40,7 @@ declare global {
getAvailableApplicationsForProtocol(protocol: string): string[][];
}
- // https://searchfox.org/mozilla-central/source/widget/nsIMacDockSupport.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIMacDockSupport.idl
interface nsIAppBundleLaunchOptions extends nsISupports {
readonly addsToRecentItems: boolean;
@@ -69,7 +66,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIMacFinderProgress.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIMacFinderProgress.idl
type nsIMacFinderProgressCanceledCallback = Callable<{
canceled(): void;
@@ -84,7 +81,7 @@ declare global {
end(): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIMacSharingService.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIMacSharingService.idl
interface nsIMacSharingService extends nsISupports {
getSharingProviders(pageUrl: string): any;
@@ -92,7 +89,7 @@ declare global {
openSharingPreferences(): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIMacUserActivityUpdater.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIMacUserActivityUpdater.idl
interface nsIMacUserActivityUpdater extends nsISupports {
updateLocation(
@@ -102,7 +99,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIMacWebAppUtils.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIMacWebAppUtils.idl
type nsITrashAppCallback = Callable<{
trashAppFinished(rv: nsresult): void;
@@ -114,7 +111,7 @@ declare global {
trashApp(path: string, callback: nsITrashAppCallback): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIStandaloneNativeMenu.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIStandaloneNativeMenu.idl
interface nsIStandaloneNativeMenu extends nsISupports {
init(aElement: Element): void;
@@ -124,7 +121,7 @@ declare global {
dump(): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarProgress.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarProgress.idl
interface nsITaskbarProgress extends nsISupports {
readonly STATE_NO_PROGRESS?: 0;
@@ -140,7 +137,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITouchBarHelper.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITouchBarHelper.idl
interface nsITouchBarHelper extends nsISupports {
readonly activeUrl: string;
@@ -154,7 +151,7 @@ declare global {
insertRestrictionInUrlbar(aToken: string): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITouchBarInput.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITouchBarInput.idl
type nsITouchBarInputCallback = Callable<{
onCommand(): void;
@@ -171,7 +168,7 @@ declare global {
children: nsIArray;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITouchBarUpdater.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITouchBarUpdater.idl
interface nsITouchBarUpdater extends nsISupports {
updateTouchBarInputs(
@@ -188,14 +185,14 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/xpcom/base/nsIMacPreferencesReader.idl
+ // https://searchfox.org/firefox-main/source/xpcom/base/nsIMacPreferencesReader.idl
interface nsIMacPreferencesReader extends nsISupports {
policiesEnabled(): boolean;
readPreferences(): any;
}
- // https://searchfox.org/mozilla-central/source/xpcom/io/nsILocalFileMac.idl
+ // https://searchfox.org/firefox-main/source/xpcom/io/nsILocalFileMac.idl
interface nsILocalFileMac extends nsIFile {
launchWithDoc(aDocToLoad: nsIFile, aLaunchInBackground: boolean): void;
diff --git a/src/zen/@types/lib.gecko.dom.d.ts b/src/zen/@types/lib.gecko.dom.d.ts
index 1ac788e50..855fde52c 100644
--- a/src/zen/@types/lib.gecko.dom.d.ts
+++ b/src/zen/@types/lib.gecko.dom.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from source .webidl files.
@@ -59,13 +56,14 @@ interface AnalyserOptions extends AudioNodeOptions {
}
interface AnimationEventInit extends EventInit {
+ animation?: CSSAnimation | null;
animationName?: string;
elapsedTime?: number;
pseudoElement?: string;
}
interface AnimationPlaybackEventInit extends EventInit {
- currentTime?: number | null;
+ currentTime?: CSSNumberish | null;
timelineTime?: number | null;
}
@@ -357,6 +355,11 @@ interface CDMInformation {
keySystemName: string;
}
+interface CSSContainerCondition {
+ name: string;
+ query: string;
+}
+
interface CSSCustomPropertyRegisteredEventInit extends EventInit {
propertyDefinition: InspectorCSSPropertyDefinition;
}
@@ -428,6 +431,11 @@ interface ChannelSplitterOptions extends AudioNodeOptions {
numberOfOutputs?: number;
}
+interface CharacterBoundsUpdateEventInit extends EventInit {
+ rangeEnd?: number;
+ rangeStart?: number;
+}
+
interface CheckVisibilityOptions {
checkOpacity?: boolean;
checkVisibilityCSS?: boolean;
@@ -521,10 +529,10 @@ interface CompositionEventInit extends UIEventInit {
}
interface ComputedEffectTiming extends EffectTiming {
- activeDuration?: number;
+ activeDuration?: CSSNumberish;
currentIteration?: number | null;
- endTime?: number;
- localTime?: number | null;
+ endTime?: CSSNumberish;
+ localTime?: CSSNumberish | null;
progress?: number | null;
}
@@ -838,10 +846,16 @@ interface EMEDebugInfo {
sessionsInfo?: string;
}
+interface EditContextInit {
+ selectionEnd?: number;
+ selectionStart?: number;
+ text?: string;
+}
+
interface EffectTiming {
delay?: number;
direction?: PlaybackDirection;
- duration?: number | string;
+ duration?: number | CSSNumericValue | string;
easing?: string;
endDelay?: number;
fill?: FillMode;
@@ -925,6 +939,12 @@ interface ExecuteInGlobalOptions {
reportExceptions?: boolean;
}
+interface ExtensionGuardSetInit {
+ deny: string[];
+ except?: string[];
+ source: ExtensionGuardSource;
+}
+
interface FailedCertSecurityInfo {
certChainStrings?: string[];
certValidityRangeNotAfter?: DOMTimeStamp;
@@ -1053,6 +1073,10 @@ interface FrameCrashedEventInit extends EventInit {
isTopFrame?: boolean;
}
+interface FullscreenOptions {
+ keyboardLock?: FullscreenKeyboardLock;
+}
+
interface GPUBindGroupDescriptor extends GPUObjectDescriptorBase {
entries: GPUBindGroupEntry[];
layout: GPUBindGroupLayout;
@@ -1445,6 +1469,7 @@ interface GeometryUtilsOptions {
}
interface GetAnimationsOptions {
+ pseudoElement?: string | null;
subtree?: boolean;
}
@@ -1522,6 +1547,12 @@ interface IDBDatabaseInfo {
version?: number;
}
+interface IDBGetAllOptions {
+ count?: number;
+ direction?: IDBCursorDirection;
+ query?: any;
+}
+
interface IDBIndexParameters {
locale?: string | null;
multiEntry?: boolean;
@@ -1765,6 +1796,14 @@ interface InvokeToolOptions {
signal?: AbortSignal;
}
+interface JSActorOptions {
+ remoteTypes?: string[];
+}
+
+interface JSActorSidedOptions {
+ esModuleURI?: string;
+}
+
interface KeySystemTrackConfiguration {
encryptionScheme?: string | null;
robustness?: string;
@@ -1783,6 +1822,7 @@ interface KeyboardEventInit extends EventModifierInit {
interface KeyframeAnimationOptions extends KeyframeEffectOptions {
id?: string;
+ timeline?: AnimationTimeline | null;
}
interface KeyframeEffectOptions extends EffectTiming {
@@ -2603,7 +2643,7 @@ interface OpenPopupOptions {
interface OptionalEffectTiming {
delay?: number;
direction?: PlaybackDirection;
- duration?: number | string;
+ duration?: number | CSSNumericValue | string;
easing?: string;
endDelay?: number;
fill?: FillMode;
@@ -2825,6 +2865,10 @@ interface PermissionSetParameters {
state: PermissionState;
}
+interface PictureInPictureEventInit extends EventInit {
+ pictureInPictureWindow: PictureInPictureWindow;
+}
+
interface PlacesBookmarkAdditionInit {
dateAdded: number;
frecency: number;
@@ -3004,6 +3048,10 @@ interface PointerEventInit extends MouseEventInit {
width?: number;
}
+interface PointerLockOptions {
+ unadjustedMovement?: boolean;
+}
+
interface PopStateEventInit extends EventInit {
hasUAVisualTransition?: boolean;
state?: any;
@@ -3035,6 +3083,16 @@ interface PositionStateEventInit extends EventInit {
position: number;
}
+interface PredictRemoteTypeOptions {
+ geckoViewSessionContextId?: string;
+ preferredRemoteType?: string | null;
+ privateBrowsingId?: number;
+ useRemoteSubframes?: boolean;
+ useRemoteTabs?: boolean;
+ userContextId?: number;
+ window?: Window | null;
+}
+
interface PrivateAttributionConversionOptions {
ads?: string[];
histogramSize: number;
@@ -3051,20 +3109,15 @@ interface PrivateAttributionImpressionOptions {
type?: PrivateAttributionImpressionType;
}
-interface ProcessActorChildOptions extends ProcessActorSidedOptions {
+interface ProcessActorChildOptions extends JSActorSidedOptions {
observers?: string[];
}
-interface ProcessActorOptions {
+interface ProcessActorOptions extends JSActorOptions {
child?: ProcessActorChildOptions;
includeParent?: boolean;
loadInDevToolsLoader?: boolean;
- parent?: ProcessActorSidedOptions;
- remoteTypes?: string[];
-}
-
-interface ProcessActorSidedOptions {
- esModuleURI?: string;
+ parent?: JSActorSidedOptions;
}
interface ProfilerMarkerOptions {
@@ -3251,6 +3304,7 @@ interface RTCConfiguration {
iceServers?: RTCIceServer[];
iceTransportPolicy?: RTCIceTransportPolicy;
peerIdentity?: string | null;
+ rtcpMuxPolicy?: RTCRtcpMuxPolicy;
sdpSemantics?: string;
}
@@ -3296,25 +3350,29 @@ interface RTCDtlsFingerprint {
value?: string;
}
-interface RTCEncodedAudioFrameMetadata {
- contributingSources?: number[];
- payloadType?: number;
+interface RTCEncodedAudioFrameMetadata extends RTCEncodedFrameMetadata {
+ audioLevel?: number;
sequenceNumber?: number;
- synchronizationSource?: number;
}
interface RTCEncodedAudioFrameOptions {
metadata?: RTCEncodedAudioFrameMetadata;
}
-interface RTCEncodedVideoFrameMetadata {
+interface RTCEncodedFrameMetadata {
contributingSources?: number[];
+ mimeType?: string;
+ payloadType?: number;
+ receiveTime?: DOMHighResTimeStamp;
+ rtpTimestamp?: number;
+ synchronizationSource?: number;
+}
+
+interface RTCEncodedVideoFrameMetadata extends RTCEncodedFrameMetadata {
dependencies?: number[];
frameId?: number;
height?: number;
- payloadType?: number;
spatialIndex?: number;
- synchronizationSource?: number;
temporalIndex?: number;
timestamp?: number;
width?: number;
@@ -3359,19 +3417,22 @@ interface RTCIceCandidatePairStats extends RTCStats {
selected?: boolean;
state?: RTCStatsIceCandidatePairState;
totalRoundTripTime?: number;
- transportId?: string;
+ transportId: string;
writable?: boolean;
}
interface RTCIceCandidateStats extends RTCStats {
address?: string;
candidateType?: RTCIceCandidateType;
+ foundation?: string;
port?: number;
priority?: number;
protocol?: string;
proxied?: string;
relayProtocol?: string;
- transportId?: string;
+ tcpType?: RTCIceTcpCandidateType;
+ transportId: string;
+ usernameFragment?: string;
}
interface RTCIceServer {
@@ -3675,6 +3736,7 @@ interface RTCStatsCollection {
remoteInboundRtpStreamStats?: RTCRemoteInboundRtpStreamStats[];
remoteOutboundRtpStreamStats?: RTCRemoteOutboundRtpStreamStats[];
rtpContributingSourceStats?: RTCRTPContributingSourceStats[];
+ transportStats?: RTCTransportStats[];
trickledIceCandidateStats?: RTCIceCandidateStats[];
videoFrameHistories?: RTCVideoFrameHistoryInternal[];
videoSourceStats?: RTCVideoSourceStats[];
@@ -3701,6 +3763,18 @@ interface RTCTrackEventInit extends EventInit {
transceiver: RTCRtpTransceiver;
}
+interface RTCTransportStats extends RTCStats {
+ dtlsCipher?: string;
+ dtlsRole?: RTCDtlsRole;
+ dtlsState: RTCDtlsTransportState;
+ iceLocalUsernameFragment?: string;
+ iceRole?: RTCIceRole;
+ iceState?: RTCIceTransportState;
+ selectedCandidatePairId?: string;
+ srtpCipher?: string;
+ tlsVersion?: string;
+}
+
interface RTCVideoFrameHistoryEntryInternal {
consecutiveFrames: number;
firstFrameTimestamp: DOMHighResTimeStamp;
@@ -3855,8 +3929,10 @@ interface SanitizerConfig {
comments?: boolean;
dataAttributes?: boolean;
elements?: SanitizerElementWithAttributes[];
+ processingInstructions?: SanitizerPI[];
removeAttributes?: SanitizerAttribute[];
removeElements?: SanitizerElement[];
+ removeProcessingInstructions?: SanitizerPI[];
replaceWithChildrenElements?: SanitizerElement[];
}
@@ -3870,6 +3946,10 @@ interface SanitizerElementNamespaceWithAttributes extends SanitizerElementNamesp
removeAttributes?: SanitizerAttribute[];
}
+interface SanitizerProcessingInstruction {
+ target: string;
+}
+
interface SchedulerPostTaskOptions {
delay?: number;
priority?: TaskPriority;
@@ -3885,6 +3965,11 @@ interface ScrollOptions {
behavior?: ScrollBehavior;
}
+interface ScrollTimelineOptions {
+ axis?: ScrollAxis;
+ source?: Element | null;
+}
+
interface ScrollToOptions extends ScrollOptions {
left?: number;
top?: number;
@@ -3910,6 +3995,45 @@ interface SelectorWarning {
kind: SelectorWarningKind;
}
+interface SerialInputSignals {
+ clearToSend: boolean;
+ dataCarrierDetect: boolean;
+ dataSetReady: boolean;
+ ringIndicator: boolean;
+}
+
+interface SerialOptions {
+ baudRate: number;
+ bufferSize?: number;
+ dataBits?: number;
+ flowControl?: FlowControlType;
+ parity?: ParityType;
+ stopBits?: number;
+}
+
+interface SerialOutputSignals {
+ break?: boolean;
+ dataTerminalReady?: boolean;
+ requestToSend?: boolean;
+}
+
+interface SerialPortFilter {
+ bluetoothServiceClassId?: BluetoothServiceUUID;
+ usbProductId?: number;
+ usbVendorId?: number;
+}
+
+interface SerialPortInfo {
+ bluetoothServiceClassId?: BluetoothServiceUUID;
+ usbProductId?: number;
+ usbVendorId?: number;
+}
+
+interface SerialPortRequestOptions {
+ allowedBluetoothServiceClassIds?: BluetoothServiceUUID[];
+ filters?: SerialPortFilter[];
+}
+
interface ServerSocketOptions {
binaryType?: TCPSocketBinaryType;
}
@@ -3924,6 +4048,7 @@ interface SetHTMLUnsafeOptions {
interface ShadowRootInit {
clonable?: boolean;
+ customElementRegistry?: CustomElementRegistry | null;
delegatesFocus?: boolean;
mode: ShadowRootMode;
referenceTarget?: string | null;
@@ -4161,6 +4286,25 @@ interface TextEncoderEncodeIntoResult {
written?: number;
}
+interface TextFormatInit {
+ rangeEnd?: number;
+ rangeStart?: number;
+ underlineStyle?: UnderlineStyle;
+ underlineThickness?: UnderlineThickness;
+}
+
+interface TextFormatUpdateEventInit extends EventInit {
+ textFormats?: TextFormat[];
+}
+
+interface TextUpdateEventInit extends EventInit {
+ selectionEnd?: number;
+ selectionStart?: number;
+ text?: string;
+ updateRangeEnd?: number;
+ updateRangeStart?: number;
+}
+
interface ThreadInfoDictionary {
cpuCycleCount?: number;
cpuTime?: number;
@@ -4219,6 +4363,7 @@ interface TrackEventInit extends EventInit {
}
interface TransitionEventInit extends EventInit {
+ animation?: CSSTransition | null;
elapsedTime?: number;
propertyName?: string;
pseudoElement?: string;
@@ -4462,6 +4607,12 @@ interface VideoSinkDebugInfo {
videoSinkEndRequestExists?: boolean;
}
+interface ViewTimelineOptions {
+ axis?: ScrollAxis;
+ inset?: string | (CSSKeywordish | CSSNumericValue)[];
+ subject?: Element;
+}
+
interface WaveShaperOptions extends AudioNodeOptions {
curve?: number[] | Float32Array;
oversample?: OverSampleType;
@@ -4601,7 +4752,7 @@ interface WheelEventInit extends MouseEventInit {
deltaZ?: number;
}
-interface WindowActorChildOptions extends WindowActorSidedOptions {
+interface WindowActorChildOptions extends JSActorSidedOptions {
events?: Record;
observers?: string[];
}
@@ -4610,18 +4761,13 @@ interface WindowActorEventListenerOptions extends AddEventListenerOptions {
createActor?: boolean;
}
-interface WindowActorOptions {
+interface WindowActorOptions extends JSActorOptions {
allFrames?: boolean;
child?: WindowActorChildOptions;
includeChrome?: boolean;
matches?: string[];
messageManagerGroups?: string[];
- parent?: WindowActorSidedOptions;
- remoteTypes?: string[];
-}
-
-interface WindowActorSidedOptions {
- esModuleURI?: string;
+ parent?: JSActorSidedOptions;
}
interface WindowInfoDictionary {
@@ -5121,7 +5267,7 @@ interface AnimationEventMap {
}
interface Animation extends EventTarget {
- currentTime: number | null;
+ currentTime: CSSNumberish | null;
effect: AnimationEffect | null;
readonly finished: Promise;
id: string;
@@ -5135,7 +5281,7 @@ interface Animation extends EventTarget {
playbackRate: number;
readonly ready: Promise;
readonly replaceState: AnimationReplaceState;
- startTime: number | null;
+ startTime: CSSNumberish | null;
timeline: AnimationTimeline | null;
cancel(): void;
commitStyles(): void;
@@ -5189,6 +5335,7 @@ declare var AnimationEffect: {
};
interface AnimationEvent extends Event {
+ readonly animation: CSSAnimation | null;
readonly animationName: string;
readonly elapsedTime: number;
readonly pseudoElement: string;
@@ -5206,7 +5353,7 @@ interface AnimationFrameProvider {
}
interface AnimationPlaybackEvent extends Event {
- readonly currentTime: number | null;
+ readonly currentTime: CSSNumberish | null;
readonly timelineTime: number | null;
}
@@ -5220,7 +5367,8 @@ declare var AnimationPlaybackEvent: {
};
interface AnimationTimeline {
- readonly currentTime: number | null;
+ readonly currentTime: CSSNumberish | null;
+ readonly duration: CSSNumberish | null;
}
declare var AnimationTimeline: {
@@ -5630,6 +5778,42 @@ declare var AudioScheduledSourceNode: {
isInstance: IsInstance;
};
+interface AudioSessionEventMap {
+ statechange: Event;
+}
+
+interface AudioSession extends EventTarget {
+ onstatechange: ((this: AudioSession, ev: Event) => any) | null;
+ readonly state: AudioSessionState;
+ type: AudioSessionType;
+ addEventListener(
+ type: K,
+ listener: (this: AudioSession, ev: AudioSessionEventMap[K]) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (this: AudioSession, ev: AudioSessionEventMap[K]) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var AudioSession: {
+ prototype: AudioSession;
+ new (): AudioSession;
+ isInstance: IsInstance;
+};
+
interface AudioTrack {
enabled: boolean;
readonly id: string;
@@ -6049,6 +6233,7 @@ interface BrowsingContext extends LoadContextMixin {
readonly isDiscarded: boolean;
readonly isDocumentPiP: boolean;
readonly isInBFCache: boolean;
+ isZenBoostsInverted: boolean;
languageOverride: string;
mediumOverride: string;
readonly name: string;
@@ -6057,6 +6242,7 @@ interface BrowsingContext extends LoadContextMixin {
readonly parent: BrowsingContext | null;
readonly parentWindowContext: WindowContext | null;
prefersColorSchemeOverride: PrefersColorSchemeOverride;
+ prefersReducedMotionOverride: PrefersReducedMotionOverride;
sandboxFlags: number;
serviceWorkersTestingEnabled: boolean;
suspendMediaWhenInactive: boolean;
@@ -6069,6 +6255,8 @@ interface BrowsingContext extends LoadContextMixin {
useGlobalHistory: boolean;
watchedByDevTools: boolean;
readonly window: WindowProxy | null;
+ zenBoostsComplementaryRotation: number;
+ zenBoostsData: number;
getAllBrowsingContextsInSubtree(): BrowsingContext[];
resetNavigationRateLimit(): void;
resetOrientationOverride(): void;
@@ -6215,9 +6403,14 @@ declare var CSSConditionRule: {
};
interface CSSContainerRule extends CSSConditionRule {
+ readonly conditions: CSSContainerCondition[];
readonly containerName: string;
readonly containerQuery: string;
- queryContainerFor(element: Element): Element | null;
+ queryConditionMatchesElement(
+ element: Element,
+ conditionIndex: number
+ ): boolean;
+ queryContainerFor(element: Element, conditionIndex: number): Element | null;
}
declare var CSSContainerRule: {
@@ -7207,6 +7400,23 @@ interface CSSStyleProperties extends CSSStyleDeclaration {
containerType: string;
content: string;
contentVisibility: string;
+ cornerBlockEndShape: string;
+ cornerBlockStartShape: string;
+ cornerBottomLeftShape: string;
+ cornerBottomRightShape: string;
+ cornerBottomShape: string;
+ cornerEndEndShape: string;
+ cornerEndStartShape: string;
+ cornerInlineEndShape: string;
+ cornerInlineStartShape: string;
+ cornerLeftShape: string;
+ cornerRightShape: string;
+ cornerShape: string;
+ cornerStartEndShape: string;
+ cornerStartStartShape: string;
+ cornerTopLeftShape: string;
+ cornerTopRightShape: string;
+ cornerTopShape: string;
counterIncrement: string;
counterReset: string;
counterSet: string;
@@ -7304,6 +7514,7 @@ interface CSSStyleProperties extends CSSStyleDeclaration {
lightingColor: string;
lineBreak: string;
lineHeight: string;
+ linkParameters: string;
listStyle: string;
listStyleImage: string;
listStylePosition: string;
@@ -7802,6 +8013,17 @@ declare var CSSVariableReferenceValue: {
isInstance: IsInstance;
};
+interface CSSViewTransitionRule extends CSSRule {
+ readonly navigation: string;
+ readonly types: string[];
+}
+
+declare var CSSViewTransitionRule: {
+ prototype: CSSViewTransitionRule;
+ new (): CSSViewTransitionRule;
+ isInstance: IsInstance;
+};
+
interface Cache {
add(request: RequestInfo | URL): Promise;
addAll(requests: RequestInfo[]): Promise;
@@ -7864,6 +8086,7 @@ interface CanonicalBrowsingContext extends BrowsingContext {
readonly currentRemoteType: string | null;
readonly currentURI: URI | null;
readonly currentWindowGlobal: WindowGlobalParent | null;
+ downloadFolderOverride: string;
readonly embedderWindowGlobal: WindowGlobalParent | null;
forceAppWindowActive: boolean;
isActive: boolean;
@@ -8204,6 +8427,7 @@ interface CanvasTextDrawingStyles {
fontKerning: CanvasFontKerning;
fontStretch: CanvasFontStretch;
fontVariantCaps: CanvasFontVariantCaps;
+ lang: string;
letterSpacing: string;
textAlign: CanvasTextAlign;
textBaseline: CanvasTextBaseline;
@@ -8307,6 +8531,7 @@ interface ChannelWrapper extends EventTarget {
readonly canModify: boolean;
channel: MozChannel | null;
contentType: string;
+ readonly documentInnerWindowId: number;
readonly documentURI: URI | null;
readonly documentURL: string | null;
readonly errorString: string | null;
@@ -8323,6 +8548,7 @@ interface ChannelWrapper extends EventTarget {
onstop: ((this: ChannelWrapper, ev: Event) => any) | null;
readonly originURI: URI | null;
readonly originURL: string | null;
+ readonly parentDocumentInnerWindowId: number;
readonly parentFrameId: number;
readonly proxyInfo: MozProxyInfo | null;
readonly remoteAddress: string | null;
@@ -8339,11 +8565,6 @@ interface ChannelWrapper extends EventTarget {
getRequestHeader(header: string): string | null;
getRequestHeaders(): MozHTTPHeader[];
getResponseHeaders(): MozHTTPHeader[];
- matches(
- filter?: MozRequestFilter,
- extension?: WebExtensionPolicy | null,
- options?: MozRequestMatchOptions
- ): boolean;
redirectTo(url: URI): void;
registerTraceableChannel(
extension: WebExtensionPolicy,
@@ -8388,6 +8609,20 @@ declare var ChannelWrapper: {
): ChannelWrapper | null;
};
+interface CharacterBoundsUpdateEvent extends Event {
+ readonly rangeEnd: number;
+ readonly rangeStart: number;
+}
+
+declare var CharacterBoundsUpdateEvent: {
+ prototype: CharacterBoundsUpdateEvent;
+ new (
+ type: string,
+ options?: CharacterBoundsUpdateEventInit
+ ): CharacterBoundsUpdateEvent;
+ isInstance: IsInstance;
+};
+
interface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode {
data: string;
readonly length: number;
@@ -8947,6 +9182,7 @@ interface CustomElementRegistry {
): void;
get(name: string): CustomElementConstructor | undefined;
getName(constructor: CustomElementConstructor): string | null;
+ initialize(root: Node): void;
setElementCreationCallback(
name: string,
callback: CustomElementCreationCallback
@@ -9686,6 +9922,7 @@ interface Document
readonly fragmentDirective: FragmentDirective;
readonly fullscreen: boolean;
readonly fullscreenEnabled: boolean;
+ readonly fullscreenKeyboardLock: FullscreenKeyboardLock;
readonly hasBeenUserGestureActivated: boolean;
readonly hasPendingL10nMutations: boolean;
readonly hasValidTransientUserGestureActivation: boolean;
@@ -9719,6 +9956,7 @@ interface Document
readonly partitionedPrincipal: Principal;
pausedByDevTools: boolean;
readonly permDelegateHandler: nsIPermissionDelegateHandler;
+ readonly pictureInPictureEnabled: boolean;
readonly plugins: HTMLCollection;
readonly policyContainer: PolicyContainer | null;
readonly preferredStyleSheetSet: string | null;
@@ -9783,6 +10021,9 @@ interface Document
eventInterface: "CSSCustomPropertyRegisteredEvent"
): CSSCustomPropertyRegisteredEvent;
createEvent(eventInterface: "CaretStateChangedEvent"): CaretStateChangedEvent;
+ createEvent(
+ eventInterface: "CharacterBoundsUpdateEvent"
+ ): CharacterBoundsUpdateEvent;
createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent;
createEvent(eventInterface: "CloseEvent"): CloseEvent;
createEvent(eventInterface: "CommandEvent"): CommandEvent;
@@ -9853,6 +10094,7 @@ interface Document
eventInterface: "PaymentRequestUpdateEvent"
): PaymentRequestUpdateEvent;
createEvent(eventInterface: "PerformanceEntryEvent"): PerformanceEntryEvent;
+ createEvent(eventInterface: "PictureInPictureEvent"): PictureInPictureEvent;
createEvent(eventInterface: "PluginCrashedEvent"): PluginCrashedEvent;
createEvent(eventInterface: "PointerEvent"): PointerEvent;
createEvent(eventInterface: "PopStateEvent"): PopStateEvent;
@@ -9896,6 +10138,8 @@ interface Document
eventInterface: "TaskPriorityChangeEvent"
): TaskPriorityChangeEvent;
createEvent(eventInterface: "TextEvent"): TextEvent;
+ createEvent(eventInterface: "TextFormatUpdateEvent"): TextFormatUpdateEvent;
+ createEvent(eventInterface: "TextUpdateEvent"): TextUpdateEvent;
createEvent(eventInterface: "TimeEvent"): TimeEvent;
createEvent(eventInterface: "ToggleEvent"): ToggleEvent;
createEvent(eventInterface: "TouchEvent"): TouchEvent;
@@ -9961,6 +10205,7 @@ interface Document
value?: TrustedHTML | string
): boolean;
exitFullscreen(): Promise;
+ exitPictureInPicture(): Promise;
exitPointerLock(): void;
getConnectedShadowRoots(): ShadowRoot[];
getElementsByClassName(classNames: string): HTMLCollection;
@@ -10083,6 +10328,7 @@ interface DocumentOrShadowRoot {
readonly customElementRegistry: CustomElementRegistry | null;
readonly fullscreenElement: Element | null;
readonly mozFullScreenElement: Element | null;
+ readonly pictureInPictureElement: Element | null;
readonly pointerLockElement: Element | null;
readonly styleSheets: StyleSheetList;
elementFromPoint(x: number, y: number): Element | null;
@@ -10307,6 +10553,59 @@ interface EXT_texture_norm16 {
readonly RGBA16_SNORM_EXT: 0x8f9b;
}
+interface EditContextEventMap {
+ characterboundsupdate: Event;
+ compositionend: Event;
+ compositionstart: Event;
+ textformatupdate: Event;
+ textupdate: Event;
+}
+
+interface EditContext extends EventTarget {
+ readonly characterBoundsRangeStart: number;
+ oncharacterboundsupdate: ((this: EditContext, ev: Event) => any) | null;
+ oncompositionend: ((this: EditContext, ev: Event) => any) | null;
+ oncompositionstart: ((this: EditContext, ev: Event) => any) | null;
+ ontextformatupdate: ((this: EditContext, ev: Event) => any) | null;
+ ontextupdate: ((this: EditContext, ev: Event) => any) | null;
+ readonly selectionEnd: number;
+ readonly selectionStart: number;
+ readonly text: string;
+ attachedElements(): HTMLElement[];
+ characterBounds(): DOMRect[];
+ updateCharacterBounds(rangeStart: number, characterBounds: DOMRect[]): void;
+ updateControlBounds(controlBounds: DOMRect): void;
+ updateSelection(start: number, end: number): void;
+ updateSelectionBounds(selectionBounds: DOMRect): void;
+ updateText(rangeStart: number, rangeEnd: number, text: string): void;
+ addEventListener(
+ type: K,
+ listener: (this: EditContext, ev: EditContextEventMap[K]) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (this: EditContext, ev: EditContextEventMap[K]) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var EditContext: {
+ prototype: EditContext;
+ new (options?: EditContextInit): EditContext;
+ isInstance: IsInstance;
+};
+
interface ElementEventMap {
fullscreenchange: Event;
fullscreenerror: Event;
@@ -10411,17 +10710,26 @@ interface Element
insertAdjacentElement(where: string, element: Element): Element | null;
insertAdjacentHTML(position: string, text: TrustedHTML | string): void;
insertAdjacentText(where: string, data: string): void;
+ matches(
+ selector: K
+ ): this is HTMLElementTagNameMap[K];
+ matches(
+ selector: K
+ ): this is SVGElementTagNameMap[K];
+ matches(
+ selector: K
+ ): this is MathMLElementTagNameMap[K];
matches(selector: string): boolean;
mozMatchesSelector(selector: string): boolean;
- mozRequestFullScreen(): Promise;
+ mozRequestFullScreen(options?: FullscreenOptions): Promise;
mozScrollSnap(): void;
releaseCapture(): void;
releasePointerCapture(pointerId: number): void;
removeAttribute(name: string): void;
removeAttributeNS(namespace: string | null, localName: string): void;
removeAttributeNode(oldAttr: Attr): Attr | null;
- requestFullscreen(): Promise;
- requestPointerLock(): void;
+ requestFullscreen(options?: FullscreenOptions): Promise;
+ requestPointerLock(options?: PointerLockOptions): Promise;
scroll(x: number, y: number): void;
scroll(options?: ScrollToOptions): void;
scrollBy(x: number, y: number): void;
@@ -10704,7 +11012,6 @@ declare var EventSource: {
};
interface EventTarget {
- readonly ownerGlobal: WindowProxy | null;
addEventListener(
type: string,
listener: EventListener | null,
@@ -10743,6 +11050,19 @@ interface ExceptionMembers {
readonly stack: string;
}
+interface ExtensionGuardSet {
+ readonly deny: MatchPatternSet;
+ readonly except: MatchPatternSet | null;
+ readonly source: ExtensionGuardSource;
+ denies(uri: URI): boolean;
+}
+
+declare var ExtensionGuardSet: {
+ prototype: ExtensionGuardSet;
+ new (init: ExtensionGuardSetInit): ExtensionGuardSet;
+ isInstance: IsInstance;
+};
+
interface External {
AddSearchProvider(): void;
IsSearchProviderInstalled(): void;
@@ -11844,7 +12164,7 @@ interface GPURenderCommandsMixin {
setPipeline(pipeline: GPURenderPipeline): void;
setVertexBuffer(
slot: GPUIndex32,
- buffer: GPUBuffer,
+ buffer: GPUBuffer | null,
offset?: GPUSize64,
size?: GPUSize64
): void;
@@ -11952,7 +12272,11 @@ interface GPUSupportedLimits {
readonly maxSampledTexturesPerShaderStage: number;
readonly maxSamplersPerShaderStage: number;
readonly maxStorageBufferBindingSize: number;
+ readonly maxStorageBuffersInFragmentStage: number;
+ readonly maxStorageBuffersInVertexStage: number;
readonly maxStorageBuffersPerShaderStage: number;
+ readonly maxStorageTexturesInFragmentStage: number;
+ readonly maxStorageTexturesInVertexStage: number;
readonly maxStorageTexturesPerShaderStage: number;
readonly maxTextureArrayLayers: number;
readonly maxTextureDimension1D: number;
@@ -12937,11 +13261,11 @@ declare var HTMLAllCollection: {
isInstance: IsInstance;
};
-interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
+interface HTMLAnchorElement
+ extends HTMLElement, HTMLHyperlinkElementUtils, HyperlinkElementUtils {
charset: string;
coords: string;
download: string;
- hreflang: string;
name: string;
ping: string;
referrerPolicy: string;
@@ -12949,9 +13273,7 @@ interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils {
readonly relList: DOMTokenList;
rev: string;
shape: string;
- target: string;
text: string;
- type: string;
addEventListener(
type: K,
listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any,
@@ -12980,7 +13302,8 @@ declare var HTMLAnchorElement: {
isInstance: IsInstance;
};
-interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
+interface HTMLAreaElement
+ extends HTMLElement, HTMLHyperlinkElementUtils, HyperlinkElementUtils {
alt: string;
coords: string;
download: string;
@@ -12990,7 +13313,6 @@ interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils {
rel: string;
readonly relList: DOMTokenList;
shape: string;
- target: string;
addEventListener(
type: K,
listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any,
@@ -13511,7 +13833,7 @@ interface HTMLElement
ElementCSSInlineStyle,
ElementOffsetAttributes,
GlobalEventHandlers,
- HTMLOrForeignElement,
+ HTMLOrSVGOrMathMLElement,
OnErrorEventHandlerForNodes,
TouchEventHandlers {
accessKey: string;
@@ -13521,7 +13843,10 @@ interface HTMLElement
contentEditable: string;
dir: string;
draggable: boolean;
+ editContext: EditContext | null;
enterKeyHint: string;
+ headingOffset: number;
+ headingReset: boolean;
hidden: boolean | number | string | null;
inert: boolean;
innerText: string;
@@ -13942,18 +14267,9 @@ declare var HTMLHtmlElement: {
};
interface HTMLHyperlinkElementUtils {
- hash: string;
- host: string;
- hostname: string;
href: string;
toString(): string;
- readonly origin: string;
- password: string;
- pathname: string;
- port: string;
- protocol: string;
- search: string;
- username: string;
+ target: string;
}
interface HTMLIFrameElement extends HTMLElement, MozFrameLoaderOwner {
@@ -14440,10 +14756,8 @@ interface HTMLMediaElement extends HTMLElement {
readonly isVideoDecodingSuspended: boolean;
loop: boolean;
readonly mediaKeys: MediaKeys | null;
- mozAllowCasting: boolean;
readonly mozAudioCaptured: boolean;
readonly mozFragmentEnd: number;
- mozIsCasting: boolean;
readonly mozMediaSourceObject: MediaSource | null;
muted: boolean;
readonly mutedPlayTime: number;
@@ -14497,6 +14811,7 @@ interface HTMLMediaElement extends HTMLElement {
/** Available only in secure contexts. */
setSinkId(sinkId: string): Promise;
setVisible(aVisible: boolean): void;
+ updateCueDisplay(): void;
readonly NETWORK_EMPTY: 0;
readonly NETWORK_IDLE: 1;
readonly NETWORK_LOADING: 2;
@@ -14851,7 +15166,7 @@ declare var HTMLOptionsCollection: {
isInstance: IsInstance;
};
-interface HTMLOrForeignElement {
+interface HTMLOrSVGOrMathMLElement {
autofocus: boolean;
readonly dataset: DOMStringMap;
tabIndex: number;
@@ -15198,6 +15513,41 @@ declare var HTMLSelectElement: {
isInstance: IsInstance;
};
+interface HTMLSelectedContentElement extends HTMLElement {
+ addEventListener(
+ type: K,
+ listener: (
+ this: HTMLSelectedContentElement,
+ ev: HTMLElementEventMap[K]
+ ) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (
+ this: HTMLSelectedContentElement,
+ ev: HTMLElementEventMap[K]
+ ) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var HTMLSelectedContentElement: {
+ prototype: HTMLSelectedContentElement;
+ new (): HTMLSelectedContentElement;
+ isInstance: IsInstance;
+};
+
interface HTMLSlotElement extends HTMLElement {
name: string;
assign(...nodes: (Element | Text)[]): void;
@@ -15585,6 +15935,7 @@ interface HTMLTemplateElement extends HTMLElement {
shadowRootMode: string;
shadowRootReferenceTarget: string | null;
shadowRootSerializable: boolean;
+ shadowRootSlotAssignment: string;
addEventListener(
type: K,
listener: (this: HTMLTemplateElement, ev: HTMLElementEventMap[K]) => any,
@@ -15846,6 +16197,11 @@ declare var HTMLUnknownElement: {
isInstance: IsInstance;
};
+interface HTMLVideoElementEventMap extends HTMLMediaElementEventMap {
+ enterpictureinpicture: Event;
+ leavepictureinpicture: Event;
+}
+
interface HTMLVideoElement extends HTMLMediaElement {
disablePictureInPicture: boolean;
height: number;
@@ -15856,6 +16212,8 @@ interface HTMLVideoElement extends HTMLMediaElement {
readonly mozPaintedFrames: number;
readonly mozParsedFrames: number;
readonly mozPresentedFrames: number;
+ onenterpictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;
+ onleavepictureinpicture: ((this: HTMLVideoElement, ev: Event) => any) | null;
poster: string;
readonly videoHeight: number;
readonly videoWidth: number;
@@ -15863,11 +16221,12 @@ interface HTMLVideoElement extends HTMLMediaElement {
cancelVideoFrameCallback(handle: number): void;
cloneElementVisually(target: HTMLVideoElement): Promise;
getVideoPlaybackQuality(): VideoPlaybackQuality;
+ requestPictureInPicture(): Promise;
requestVideoFrameCallback(callback: VideoFrameRequestCallback): number;
stopCloningElementVisually(): void;
- addEventListener(
+ addEventListener(
type: K,
- listener: (this: HTMLVideoElement, ev: HTMLMediaElementEventMap[K]) => any,
+ listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any,
options?: boolean | AddEventListenerOptions
): void;
addEventListener(
@@ -15875,9 +16234,9 @@ interface HTMLVideoElement extends HTMLMediaElement {
listener: EventListenerOrEventListenerObject,
options?: boolean | AddEventListenerOptions
): void;
- removeEventListener(
+ removeEventListener(
type: K,
- listener: (this: HTMLVideoElement, ev: HTMLMediaElementEventMap[K]) => any,
+ listener: (this: HTMLVideoElement, ev: HTMLVideoElementEventMap[K]) => any,
options?: boolean | EventListenerOptions
): void;
removeEventListener(
@@ -16000,6 +16359,21 @@ declare var History: {
isInstance: IsInstance;
};
+interface HyperlinkElementUtils {
+ hash: string;
+ host: string;
+ hostname: string;
+ hreflang: string;
+ readonly origin: string;
+ password: string;
+ pathname: string;
+ port: string;
+ protocol: string;
+ search: string;
+ type: string;
+ username: string;
+}
+
interface IDBCursor {
readonly direction: IDBCursorDirection;
readonly key: any;
@@ -16121,8 +16495,9 @@ interface IDBIndex {
readonly unique: boolean;
count(query?: any): IDBRequest;
get(query: any): IDBRequest;
- getAll(query?: any, count?: number): IDBRequest;
- getAllKeys(query?: any, count?: number): IDBRequest;
+ getAll(queryOrOptions?: any, count?: number): IDBRequest;
+ getAllKeys(queryOrOptions?: any, count?: number): IDBRequest;
+ getAllRecords(options?: IDBGetAllOptions): IDBRequest;
getKey(query: any): IDBRequest;
openCursor(query?: any, direction?: IDBCursorDirection): IDBRequest;
openKeyCursor(query?: any, direction?: IDBCursorDirection): IDBRequest;
@@ -16174,8 +16549,9 @@ interface IDBObjectStore {
delete(key: any): IDBRequest;
deleteIndex(indexName: string): void;
get(key: any): IDBRequest;
- getAll(query?: any, count?: number): IDBRequest;
- getAllKeys(query?: any, count?: number): IDBRequest;
+ getAll(queryOrOptions?: any, count?: number): IDBRequest;
+ getAllKeys(queryOrOptions?: any, count?: number): IDBRequest;
+ getAllRecords(options?: IDBGetAllOptions): IDBRequest;
getKey(key: any): IDBRequest;
index(name: string): IDBIndex;
openCursor(range?: any, direction?: IDBCursorDirection): IDBRequest;
@@ -16225,6 +16601,18 @@ declare var IDBOpenDBRequest: {
isInstance: IsInstance;
};
+interface IDBRecord {
+ readonly key: any;
+ readonly primaryKey: any;
+ readonly value: any;
+}
+
+declare var IDBRecord: {
+ prototype: IDBRecord;
+ new (): IDBRecord;
+ isInstance: IsInstance;
+};
+
interface IDBRequestEventMap {
error: Event;
success: Event;
@@ -17878,6 +18266,15 @@ interface MOZ_debug {
interface MatchGlob {
readonly glob: string;
+ matches(
+ string: K
+ ): this is HTMLElementTagNameMap[K];
+ matches(
+ string: K
+ ): this is SVGElementTagNameMap[K];
+ matches(
+ string: K
+ ): this is MathMLElementTagNameMap[K];
matches(string: string): boolean;
}
@@ -17890,8 +18287,6 @@ declare var MatchGlob: {
interface MatchPattern {
readonly matchesAllWebUrls: boolean;
readonly pattern: string;
- matches(uri: URI, explicit?: boolean): boolean;
- matches(url: string, explicit?: boolean): boolean;
matchesCookie(cookie: Cookie): boolean;
overlaps(pattern: MatchPattern): boolean;
subsumes(pattern: MatchPattern): boolean;
@@ -17907,8 +18302,6 @@ declare var MatchPattern: {
interface MatchPatternSet {
readonly matchesAllWebUrls: boolean;
readonly patterns: MatchPattern[];
- matches(uri: URI, explicit?: boolean): boolean;
- matches(url: string, explicit?: boolean): boolean;
matchesCookie(cookie: Cookie): boolean;
overlaps(pattern: MatchPattern): boolean;
overlaps(patternSet: MatchPatternSet): boolean;
@@ -17938,9 +18331,10 @@ interface MathMLElement
Element,
ElementCSSInlineStyle,
GlobalEventHandlers,
- HTMLOrForeignElement,
+ HTMLOrSVGOrMathMLElement,
OnErrorEventHandlerForNodes,
TouchEventHandlers {
+ nonce: string;
addEventListener(
type: K,
listener: (this: MathMLElement, ev: MathMLElementEventMap[K]) => any,
@@ -17986,7 +18380,9 @@ declare var MediaCapabilities: {
interface MediaControllerEventMap {
activated: Event;
+ audiblechange: Event;
deactivated: Event;
+ effectiveaudiosessiontypechange: Event;
metadatachange: Event;
playbackstatechange: Event;
positionstatechange: Event;
@@ -17994,6 +18390,7 @@ interface MediaControllerEventMap {
}
interface MediaController extends EventTarget {
+ readonly effectiveAudioSessionType: AudioSessionType;
readonly id: number;
readonly isActive: boolean;
readonly isAnyMediaBeingControlled: boolean;
@@ -18001,7 +18398,10 @@ interface MediaController extends EventTarget {
readonly isBeingUsedInPIPModeOrFullscreen: boolean;
readonly isPlaying: boolean;
onactivated: ((this: MediaController, ev: Event) => any) | null;
+ onaudiblechange: ((this: MediaController, ev: Event) => any) | null;
ondeactivated: ((this: MediaController, ev: Event) => any) | null;
+ oneffectiveaudiosessiontypechange:
+ ((this: MediaController, ev: Event) => any) | null;
onmetadatachange: ((this: MediaController, ev: Event) => any) | null;
onplaybackstatechange: ((this: MediaController, ev: Event) => any) | null;
onpositionstatechange: ((this: MediaController, ev: Event) => any) | null;
@@ -19408,6 +19808,7 @@ interface Navigator
NavigatorStorage {
/** Available only in secure contexts. */
readonly activeVRDisplays: VRDisplay[];
+ readonly audioSession: AudioSession;
readonly buildID: string;
/** Available only in secure contexts. */
readonly clipboard: Clipboard;
@@ -19433,6 +19834,8 @@ interface Navigator
readonly plugins: PluginArray;
readonly privateAttribution: PrivateAttribution;
readonly productSub: string;
+ /** Available only in secure contexts. */
+ readonly serial: Serial;
readonly serviceWorker: ServiceWorkerContainer;
readonly testTrialGatedAttribute: boolean;
readonly userActivation: UserActivation;
@@ -19593,6 +19996,7 @@ interface Node extends EventTarget {
readonly baseURIObject: URI | null;
readonly childNodes: NodeList;
readonly containingShadowRoot: ShadowRoot | null;
+ readonly documentGlobal: WindowProxy | null;
readonly firstChild: Node | null;
readonly flattenedTreeParentNode: Node | null;
readonly isConnected: boolean;
@@ -20722,6 +21126,8 @@ interface PerformanceResourceTiming extends PerformanceEntry {
readonly domainLookupStart: DOMHighResTimeStamp;
readonly encodedBodySize: number;
readonly fetchStart: DOMHighResTimeStamp;
+ readonly finalResponseHeadersStart: DOMHighResTimeStamp;
+ readonly firstInterimResponseStart: DOMHighResTimeStamp;
readonly initiatorType: string;
readonly nextHopProtocol: string;
readonly redirectEnd: DOMHighResTimeStamp;
@@ -20849,6 +21255,62 @@ declare var Permissions: {
isInstance: IsInstance;
};
+interface PictureInPictureEvent extends Event {
+ readonly pictureInPictureWindow: PictureInPictureWindow;
+}
+
+declare var PictureInPictureEvent: {
+ prototype: PictureInPictureEvent;
+ new (
+ type: string,
+ eventInitDict: PictureInPictureEventInit
+ ): PictureInPictureEvent;
+ isInstance: IsInstance;
+};
+
+interface PictureInPictureWindowEventMap {
+ resize: Event;
+}
+
+interface PictureInPictureWindow extends EventTarget {
+ readonly height: number;
+ onresize: ((this: PictureInPictureWindow, ev: Event) => any) | null;
+ readonly width: number;
+ notifyDimensionsChanged(aWidth: number, aHeight: number): void;
+ addEventListener(
+ type: K,
+ listener: (
+ this: PictureInPictureWindow,
+ ev: PictureInPictureWindowEventMap[K]
+ ) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (
+ this: PictureInPictureWindow,
+ ev: PictureInPictureWindowEventMap[K]
+ ) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var PictureInPictureWindow: {
+ prototype: PictureInPictureWindow;
+ new (): PictureInPictureWindow;
+ isInstance: IsInstance;
+};
+
interface PlacesBookmark extends PlacesEvent {
readonly guid: string;
readonly id: number;
@@ -21529,6 +21991,7 @@ interface RTCDtlsTransport extends EventTarget {
readonly iceTransport: RTCIceTransport;
onstatechange: ((this: RTCDtlsTransport, ev: Event) => any) | null;
readonly state: RTCDtlsTransportState;
+ getRemoteCertificates(): ArrayBuffer[];
addEventListener(
type: K,
listener: (this: RTCDtlsTransport, ev: RTCDtlsTransportEventMap[K]) => any,
@@ -22593,8 +23056,8 @@ declare var SVGAnimatedPreserveAspectRatio: {
};
interface SVGAnimatedRect {
- readonly animVal: SVGRect | null;
- readonly baseVal: SVGRect | null;
+ readonly animVal: SVGRect;
+ readonly baseVal: SVGRect;
}
declare var SVGAnimatedRect: {
@@ -22865,7 +23328,7 @@ interface SVGElement
Element,
ElementCSSInlineStyle,
GlobalEventHandlers,
- HTMLOrForeignElement,
+ HTMLOrSVGOrMathMLElement,
OnErrorEventHandlerForNodes,
TouchEventHandlers {
readonly className: SVGAnimatedString;
@@ -25155,6 +25618,7 @@ declare var SVGTextElement: {
interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
readonly method: SVGAnimatedEnumeration;
+ readonly side: SVGAnimatedEnumeration;
readonly spacing: SVGAnimatedEnumeration;
readonly startOffset: SVGAnimatedLength;
readonly TEXTPATH_METHODTYPE_UNKNOWN: 0;
@@ -25163,6 +25627,9 @@ interface SVGTextPathElement extends SVGTextContentElement, SVGURIReference {
readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
+ readonly TEXTPATH_SIDETYPE_UNKNOWN: 0;
+ readonly TEXTPATH_SIDETYPE_LEFT: 1;
+ readonly TEXTPATH_SIDETYPE_RIGHT: 2;
addEventListener(
type: K,
listener: (this: SVGTextPathElement, ev: SVGElementEventMap[K]) => any,
@@ -25194,6 +25661,9 @@ declare var SVGTextPathElement: {
readonly TEXTPATH_SPACINGTYPE_UNKNOWN: 0;
readonly TEXTPATH_SPACINGTYPE_AUTO: 1;
readonly TEXTPATH_SPACINGTYPE_EXACT: 2;
+ readonly TEXTPATH_SIDETYPE_UNKNOWN: 0;
+ readonly TEXTPATH_SIDETYPE_LEFT: 1;
+ readonly TEXTPATH_SIDETYPE_RIGHT: 2;
isInstance: IsInstance;
};
@@ -25413,9 +25883,11 @@ interface SVGZoomAndPan {
interface Sanitizer {
allowAttribute(attribute: SanitizerAttribute): boolean;
allowElement(element: SanitizerElementWithAttributes): boolean;
+ allowProcessingInstruction(pi: SanitizerPI): boolean;
get(): SanitizerConfig;
removeAttribute(attribute: SanitizerAttribute): boolean;
removeElement(element: SanitizerElement): boolean;
+ removeProcessingInstruction(pi: SanitizerPI): boolean;
removeUnsafe(): boolean;
replaceElementWithChildren(element: SanitizerElement): boolean;
setComments(allow: boolean): boolean;
@@ -25616,6 +26088,17 @@ declare var ScrollAreaEvent: {
isInstance: IsInstance;
};
+interface ScrollTimeline extends AnimationTimeline {
+ readonly axis: ScrollAxis;
+ readonly source: Element | null;
+}
+
+declare var ScrollTimeline: {
+ prototype: ScrollTimeline;
+ new (options?: ScrollTimelineOptions): ScrollTimeline;
+ isInstance: IsInstance;
+};
+
interface SecurityPolicyViolationEvent extends Event {
readonly blockedURI: string;
readonly columnNumber: number;
@@ -25708,6 +26191,101 @@ declare var Selection: {
isInstance: IsInstance;
};
+interface SerialEventMap {
+ connect: Event;
+ disconnect: Event;
+}
+
+/** Available only in secure contexts. */
+interface Serial extends EventTarget {
+ autoselectPorts: boolean;
+ onconnect: ((this: Serial, ev: Event) => any) | null;
+ ondisconnect: ((this: Serial, ev: Event) => any) | null;
+ getPorts(): Promise;
+ removeAllMockDevices(): Promise;
+ requestPort(options?: SerialPortRequestOptions): Promise;
+ resetToDefaultMockDevices(): Promise;
+ simulateDeviceConnection(
+ deviceId: string,
+ devicePath: string,
+ vendorId?: number,
+ productId?: number
+ ): Promise;
+ simulateDeviceDisconnection(deviceId: string): Promise;
+ addEventListener(
+ type: K,
+ listener: (this: Serial, ev: SerialEventMap[K]) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (this: Serial, ev: SerialEventMap[K]) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var Serial: {
+ prototype: Serial;
+ new (): Serial;
+ isInstance: IsInstance;
+};
+
+interface SerialPortEventMap {
+ connect: Event;
+ disconnect: Event;
+}
+
+/** Available only in secure contexts. */
+interface SerialPort extends EventTarget {
+ readonly connected: boolean;
+ onconnect: ((this: SerialPort, ev: Event) => any) | null;
+ ondisconnect: ((this: SerialPort, ev: Event) => any) | null;
+ readonly readable: ReadableStream | null;
+ readonly writable: WritableStream | null;
+ close(): Promise;
+ forget(): Promise;
+ getInfo(): SerialPortInfo;
+ getSignals(): Promise;
+ open(options: SerialOptions): Promise;
+ setSignals(signals?: SerialOutputSignals): Promise;
+ addEventListener(
+ type: K,
+ listener: (this: SerialPort, ev: SerialPortEventMap[K]) => any,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ addEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | AddEventListenerOptions
+ ): void;
+ removeEventListener(
+ type: K,
+ listener: (this: SerialPort, ev: SerialPortEventMap[K]) => any,
+ options?: boolean | EventListenerOptions
+ ): void;
+ removeEventListener(
+ type: string,
+ listener: EventListenerOrEventListenerObject,
+ options?: boolean | EventListenerOptions
+ ): void;
+}
+
+declare var SerialPort: {
+ prototype: SerialPort;
+ new (): SerialPort;
+ isInstance: IsInstance;
+};
+
interface ServiceWorkerEventMap extends AbstractWorkerEventMap {
statechange: Event;
}
@@ -27488,6 +28066,32 @@ declare var TextEvent: {
isInstance: IsInstance;
};
+interface TextFormat {
+ readonly rangeEnd: number;
+ readonly rangeStart: number;
+ readonly underlineStyle: UnderlineStyle;
+ readonly underlineThickness: UnderlineThickness;
+}
+
+declare var TextFormat: {
+ prototype: TextFormat;
+ new (options?: TextFormatInit): TextFormat;
+ isInstance: IsInstance;
+};
+
+interface TextFormatUpdateEvent extends Event {
+ getTextFormats(): TextFormat[];
+}
+
+declare var TextFormatUpdateEvent: {
+ prototype: TextFormatUpdateEvent;
+ new (
+ type: string,
+ options?: TextFormatUpdateEventInit
+ ): TextFormatUpdateEvent;
+ isInstance: IsInstance;
+};
+
interface TextMetrics {
readonly actualBoundingBoxAscent: number;
readonly actualBoundingBoxDescent: number;
@@ -27649,6 +28253,20 @@ declare var TextTrackList: {
isInstance: IsInstance;
};
+interface TextUpdateEvent extends Event {
+ readonly selectionEnd: number;
+ readonly selectionStart: number;
+ readonly text: string;
+ readonly updateRangeEnd: number;
+ readonly updateRangeStart: number;
+}
+
+declare var TextUpdateEvent: {
+ prototype: TextUpdateEvent;
+ new (type: string, options?: TextUpdateEventInit): TextUpdateEvent;
+ isInstance: IsInstance;
+};
+
interface TimeEvent extends Event {
readonly detail: number;
readonly view: WindowProxy | null;
@@ -27827,6 +28445,7 @@ declare var TransformStreamDefaultController: {
};
interface TransitionEvent extends Event {
+ readonly animation: CSSTransition | null;
readonly elapsedTime: number;
readonly propertyName: string;
readonly pseudoElement: string;
@@ -28761,6 +29380,18 @@ declare var VideoTrackList: {
isInstance: IsInstance;
};
+interface ViewTimeline extends ScrollTimeline {
+ readonly endOffset: CSSNumericValue | null;
+ readonly startOffset: CSSNumericValue | null;
+ readonly subject: Element | null;
+}
+
+declare var ViewTimeline: {
+ prototype: ViewTimeline;
+ new (options?: ViewTimelineOptions): ViewTimeline;
+ isInstance: IsInstance;
+};
+
interface ViewTransition {
readonly finished: Promise;
readonly ready: Promise;
@@ -29092,6 +29723,8 @@ interface WebExtensionPolicy {
readonly browsingContextGroupId: number;
readonly contentScripts: WebExtensionContentScript[];
readonly extensionPageCSP: string;
+ readonly fileSchemeAllowed: boolean;
+ guardSets: ExtensionGuardSet[];
readonly hasRecommendedState: boolean;
readonly id: string;
ignoreQuarantine: boolean;
@@ -29112,6 +29745,7 @@ interface WebExtensionPolicy {
allowFilePermission?: boolean
): boolean;
canAccessWindow(window: WindowProxy): boolean;
+ checkGuarded(uri: URI): ExtensionGuardSource | null;
getURL(path?: string): string;
hasPermission(permission: string): boolean;
injectContentScripts(): void;
@@ -32814,11 +33448,13 @@ interface WindowGlobalParent extends WindowContext {
readonly contentBlockingLog: string;
readonly contentParentId: number;
readonly cookieJarSettings: nsICookieJarSettings | null;
+ readonly documentChannel: MozChannel | null;
readonly documentPrincipal: Principal;
readonly documentStoragePrincipal: Principal;
readonly documentTitle: string;
readonly documentURI: URI | null;
readonly domProcess: nsIDOMProcessParent | null;
+ readonly failedChannel: MozChannel | null;
fullscreen: boolean;
readonly isActiveInTab: boolean;
readonly isClosed: boolean;
@@ -32828,6 +33464,7 @@ interface WindowGlobalParent extends WindowContext {
readonly isUncommittedInitialDocument: boolean;
readonly osPid: number;
readonly outerWindowId: number;
+ readonly remoteType: string | null;
readonly rootFrameLoader: FrameLoader | null;
drawSnapshot(
rect: DOMRect | null,
@@ -32839,12 +33476,14 @@ interface WindowGlobalParent extends WindowContext {
getExistingActor(name: string): JSWindowActorParent | null;
hasActivePeerConnections(): boolean;
permitUnload(action?: PermitUnloadAction, timeout?: number): Promise;
+ updateFullscreenKeyboardLockStatus(status: FullscreenKeyboardLock): void;
}
declare var WindowGlobalParent: {
prototype: WindowGlobalParent;
new (): WindowGlobalParent;
isInstance: IsInstance;
+ flushAllContentBlockingLogs(): void;
getByInnerWindowId(innerWindowId: number): WindowGlobalParent | null;
};
@@ -32893,7 +33532,9 @@ interface WindowOrWorkerGlobalScope {
structuredClone(value: any, options?: StructuredSerializeOptions): any;
}
-interface WindowRoot extends EventTarget {}
+interface WindowRoot extends EventTarget {
+ readonly window: Window | null;
+}
declare var WindowRoot: {
prototype: WindowRoot;
@@ -33746,7 +34387,7 @@ interface XULElement
ElementCSSInlineStyle,
ElementOffsetAttributes,
GlobalEventHandlers,
- HTMLOrForeignElement,
+ HTMLOrSVGOrMathMLElement,
OnErrorEventHandlerForNodes,
TouchEventHandlers {
collapsed: boolean;
@@ -33859,6 +34500,7 @@ declare var XULMenuElement: {
interface XULPopupElement extends XULElement {
readonly anchorNode: Element | null;
+ readonly isNativeMenu: boolean;
readonly isWaylandDragSource: boolean;
readonly isWaylandPopup: boolean;
label: string;
@@ -34268,6 +34910,14 @@ declare namespace ChromeUtils {
function originAttributesToSuffix(
originAttrs?: OriginAttributesDictionary
): string;
+ function predictRemoteTypeForURI(
+ uri: URI | null,
+ options?: PredictRemoteTypeOptions
+ ): string | null;
+ function predictRemoteTypeForURI(
+ uriString: string,
+ options?: PredictRemoteTypeOptions
+ ): string | null;
function privateNoteIntentionalCrash(): void;
function readHeapSnapshot(filePath: string): HeapSnapshot;
function registerMarkerSchema(schema: any): void;
@@ -34457,6 +35107,12 @@ declare namespace InspectorUtils {
showingAnonymousContent: boolean,
includeAssignedNodes: boolean
): Node[];
+ function getComputationSteps(
+ expression: string,
+ element: Element,
+ pseudo?: string
+ ): string[];
+ function getComputationStepsSupportedCSSFunctions(): string[];
function getContentState(element: Element): number;
function getGridContainerType(aElement: Element): number;
function getMatchingCSSRules(
@@ -34501,6 +35157,7 @@ declare namespace InspectorUtils {
function isInheritedProperty(document: Document, property: string): boolean;
function isUsedColorSchemeDark(element: Element): boolean;
function isValidCSSColor(colorString: string): boolean;
+ function isValidCSSImage(imageString: string): boolean;
function parseStyleSheet(sheet: CSSStyleSheet, input: string): void;
function relativeLuminance(r: number, g: number, b: number): number;
function removeContentState(
@@ -34623,13 +35280,6 @@ declare namespace PromiseDebugging {
}
declare namespace SessionStoreUtils {
- function addDynamicFrameFilteredListener(
- target: EventTarget,
- type: string,
- listener: any,
- useCapture: boolean,
- mozSystemGroup?: boolean
- ): nsISupports | null;
function collectDocShellCapabilities(docShell: nsIDocShell): string;
function collectFormData(window: WindowProxy): CollectedData | null;
function collectScrollPosition(window: WindowProxy): CollectedData | null;
@@ -34642,13 +35292,6 @@ declare namespace SessionStoreUtils {
browsingContext: CanonicalBrowsingContext,
data: nsISessionStoreRestoreData | null
): Promise;
- function removeDynamicFrameFilteredListener(
- target: EventTarget,
- type: string,
- listener: nsISupports,
- useCapture: boolean,
- mozSystemGroup?: boolean
- ): void;
function restoreDocShellCapabilities(
docShell: nsIDocShell,
disallowCapabilities: string
@@ -35175,6 +35818,7 @@ interface HTMLElementTagNameMap {
search: HTMLElement;
section: HTMLElement;
select: HTMLSelectElement;
+ selectedcontent: HTMLSelectedContentElement;
slot: HTMLSlotElement;
small: HTMLElement;
source: HTMLSourceElement;
@@ -35449,7 +36093,6 @@ declare function synthesizeTouchEvent(
): boolean;
declare function updateCommands(action: string): void;
declare function toString(): string;
-declare var ownerGlobal: WindowProxy | null;
declare function dispatchEvent(event: Event): boolean;
declare function getEventHandler(type: string): EventHandler;
declare function setEventHandler(type: string, handler: EventHandler): void;
@@ -35656,6 +36299,7 @@ type AllowSharedBufferSource = ArrayBuffer | ArrayBufferView;
type Base64URLString = string;
type BinaryData = ArrayBuffer | ArrayBufferView;
type BlobPart = BufferSource | Blob | string;
+type BluetoothServiceUUID = string | number;
type BodyInit = XMLHttpRequestBodyInit;
type BufferSource = ArrayBufferView | ArrayBuffer;
type COSEAlgorithmIdentifier = number;
@@ -35797,6 +36441,7 @@ type SanitizerAttribute = string | SanitizerAttributeNamespace;
type SanitizerElement = string | SanitizerElementNamespace;
type SanitizerElementWithAttributes =
string | SanitizerElementNamespaceWithAttributes;
+type SanitizerPI = string | SanitizerProcessingInstruction;
type StackFrame = nsIStackFrame;
type StringOrOpenPopupOptions = string | OpenPopupOptions;
type StructuredClonable = any;
@@ -35836,6 +36481,14 @@ type AudioSampleFormat =
| "s32-planar"
| "u8"
| "u8-planar";
+type AudioSessionState = "active" | "inactive" | "interrupted";
+type AudioSessionType =
+ | "ambient"
+ | "auto"
+ | "play-and-record"
+ | "playback"
+ | "transient"
+ | "transient-solo";
type AutoKeyword = "auto";
type AutoplayPolicy = "allowed" | "allowed-muted" | "disallowed";
type AutoplayPolicyMediaType = "audiocontext" | "mediaelement";
@@ -35977,6 +36630,7 @@ type EncodedVideoChunkType = "delta" | "key";
type EndingType = "native" | "transparent";
type EventCallbackDebuggerNotificationType =
"closewatcher" | "global" | "node" | "websocket" | "worker" | "xhr";
+type ExtensionGuardSource = "enterprise-global" | "enterprise-per-extension";
type FetchState =
"aborted" | "complete" | "errored" | "requesting" | "responding";
type FileSystemHandleKind = "directory" | "file";
@@ -35986,10 +36640,12 @@ type FlexItemClampState = "clamped_to_max" | "clamped_to_min" | "unclamped";
type FlexLineGrowthState = "growing" | "shrinking";
type FlexPhysicalDirection =
"horizontal-lr" | "horizontal-rl" | "vertical-bt" | "vertical-tb";
+type FlowControlType = "hardware" | "none";
type FontFaceLoadStatus = "error" | "loaded" | "loading" | "unloaded";
type FontFaceSetLoadStatus = "loaded" | "loading";
type ForceMediaDocument = "image" | "none" | "video";
type ForcedColorsOverride = "active" | "none";
+type FullscreenKeyboardLock = "browser" | "none";
type GPUAddressMode = "clamp-to-edge" | "mirror-repeat" | "repeat";
type GPUAutoLayoutMode = "auto";
type GPUBlendFactor =
@@ -36313,9 +36969,9 @@ type MediaControlKey =
| "skipad"
| "stop"
| "unmute";
-type MediaDecodingType = "file" | "media-source";
+type MediaDecodingType = "file" | "media-source" | "webrtc";
type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";
-type MediaEncodingType = "record" | "transmission";
+type MediaEncodingType = "record" | "webrtc";
type MediaKeyMessageType =
| "individualization-request"
| "license-release"
@@ -36441,6 +37097,7 @@ type PCObserverStateType =
| "None"
| "SignalingState";
type PanningModelType = "HRTF" | "equalpower";
+type ParityType = "even" | "none" | "odd";
type PaymentComplete = "fail" | "success" | "unknown";
type PaymentShippingType = "delivery" | "pickup" | "shipping";
type PermissionName =
@@ -36486,6 +37143,7 @@ type PopupBlockerState =
type PositionAlignSetting = "auto" | "center" | "line-left" | "line-right";
type PredefinedColorSpace = "display-p3" | "srgb";
type PrefersColorSchemeOverride = "dark" | "light" | "none";
+type PrefersReducedMotionOverride = "no-preference" | "none" | "reduce";
type PremultiplyAlpha = "default" | "none" | "premultiply";
type PresentationStyle = "attachment" | "inline" | "unspecified";
type PrivateAttributionImpressionType = "click" | "view";
@@ -36497,6 +37155,7 @@ type RTCDataChannelState = "closed" | "closing" | "connecting" | "open";
type RTCDataChannelType = "arraybuffer" | "blob";
type RTCDegradationPreference =
"balanced" | "maintain-framerate" | "maintain-resolution";
+type RTCDtlsRole = "client" | "server" | "unknown";
type RTCDtlsTransportState =
"closed" | "connected" | "connecting" | "failed" | "new";
type RTCEncodedVideoFrameType = "delta" | "empty" | "key";
@@ -36541,6 +37200,7 @@ type RTCLifecycleEvent =
type RTCPeerConnectionState =
"closed" | "connected" | "connecting" | "disconnected" | "failed" | "new";
type RTCPriorityType = "high" | "low" | "medium" | "very-low";
+type RTCRtcpMuxPolicy = "negotiate" | "require";
type RTCRtpTransceiverDirection =
"inactive" | "recvonly" | "sendonly" | "sendrecv" | "stopped";
type RTCSctpTransportState = "closed" | "connected" | "connecting";
@@ -36609,6 +37269,7 @@ type RequestDestination =
| "script"
| "sharedworker"
| "style"
+ | "text"
| "track"
| "video"
| "worker"
@@ -36625,8 +37286,9 @@ type ResponseType =
"basic" | "cors" | "default" | "error" | "opaque" | "opaqueredirect";
type SanitizerPresets = "default";
type ScreenColorGamut = "p3" | "rec2020" | "srgb";
+type ScrollAxis = "block" | "inline" | "x" | "y";
type ScrollBehavior = "auto" | "instant" | "smooth";
-type ScrollLogicalPosition = "center" | "end" | "nearest" | "start";
+type ScrollLogicalPosition = "auto" | "center" | "end" | "nearest" | "start";
type ScrollRestoration = "auto" | "manual";
type ScrollSetting = "" | "up";
type SecurityPolicyViolationEventDisposition = "enforce" | "report";
@@ -36691,6 +37353,8 @@ type TextTrackKind =
type TextTrackMode = "disabled" | "hidden" | "showing";
type TouchEventsOverride = "disabled" | "enabled" | "none";
type TransferFunction = "hlg" | "pq" | "srgb";
+type UnderlineStyle = "dashed" | "dotted" | "none" | "solid" | "wavy";
+type UnderlineThickness = "none" | "thick" | "thin";
type UniFFIScaffoldingCallCode = "error" | "internal-error" | "success";
type VRDisplayEventReason =
"mounted" | "navigation" | "requested" | "unmounted";
@@ -36898,6 +37562,13 @@ interface Document {
createTouchList(touches: Iterable): TouchList;
}
+interface EditContext {
+ updateCharacterBounds(
+ rangeStart: number,
+ characterBounds: Iterable
+ ): void;
+}
+
interface EventCounts extends ReadonlyMap {}
interface FileList {
diff --git a/src/zen/@types/lib.gecko.glean.d.ts b/src/zen/@types/lib.gecko.glean.d.ts
index d5282ed4f..4305b0380 100644
--- a/src/zen/@types/lib.gecko.glean.d.ts
+++ b/src/zen/@types/lib.gecko.glean.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from glean .yaml files.
@@ -18,17 +15,24 @@ interface GleanImpl {
invertColors: GleanBoolean;
theme: Record<"always" | "default" | "never", GleanBoolean>;
treeUpdateTiming: GleanTimingDistribution;
- useSystemColors: GleanBoolean;
};
fullscreen: {
change: GleanTimingDistribution;
};
+ browserApplicationmenu: {
+ setAsDefault: GleanEventNoExtras;
+ };
+
browserEngagement: {
bookmarksToolbarBookmarkAdded: GleanCounter;
bookmarksToolbarBookmarkOpened: GleanCounter;
totalTopVisits: Record<"false" | "true", GleanCounter>;
+ windowsStartSearchActivationCount: Record<
+ "new_tab" | "startup",
+ GleanCounter
+ >;
sessionrestoreInterstitial: Record;
tabExplicitUnload: GleanEventWithExtras<{
all_tabs_unloaded?: string;
@@ -42,6 +46,15 @@ interface GleanImpl {
tabUnloadCount: GleanCounter;
tabUnloadToReload: GleanTimingDistribution;
activeTicks: GleanCounter;
+ activeTicksNonSynthesized: GleanCounter;
+ consecutiveActiveTicks: Record<
+ "active_ticks" | "active_ticks_non_synthesized",
+ GleanCustomDistribution
+ >;
+ inactivePeriodDuration: Record<
+ "active_ticks" | "active_ticks_non_synthesized",
+ GleanTimingDistribution
+ >;
loadedTabCount: GleanCustomDistribution;
maxConcurrentTabCount: GleanQuantity;
maxConcurrentTabPinnedCount: GleanQuantity;
@@ -277,6 +290,25 @@ interface GleanImpl {
| "streams_blocked_tx",
GleanCounter
>;
+ http3SearchEmptyBufferBdpEstimate: GleanMemoryDistribution;
+ http3SearchFirstRttVsMinRtt: GleanCustomDistribution;
+ http3SearchFirstRttVsSecondRtt: GleanCustomDistribution;
+ http3SearchFullBufferBdpEstimate: GleanMemoryDistribution;
+ http3SearchLookbackBins: GleanCustomDistribution;
+ http3SearchMaxNormDiff: Record<
+ "exited_ce" | "exited_search" | "not_exited",
+ GleanCustomDistribution
+ >;
+ http3SearchMaxPassedBins: GleanCustomDistribution;
+ http3SearchResetCount: Record<
+ "exited_ce" | "exited_search" | "not_exited",
+ GleanCustomDistribution
+ >;
+ http3SearchRttInflated: Record<"inflated" | "never_inflated", GleanCounter>;
+ http3SearchZeroBytesSent: Record<
+ "exited_ce" | "exited_search" | "not_exited",
+ GleanCustomDistribution
+ >;
http3SlowStartExitAccuracy: Record<
"ce_exit" | "heuristic_exit",
GleanCustomDistribution
@@ -446,6 +478,7 @@ interface GleanImpl {
prcloseUdpBlockingTimeNormal: GleanTimingDistribution;
prcloseUdpBlockingTimeOffline: GleanTimingDistribution;
prcloseUdpBlockingTimeShutdown: GleanTimingDistribution;
+ proxyFastPathUsed: GleanCounter;
proxyInfoType: Record<
| "direct"
| "http"
@@ -461,6 +494,7 @@ interface GleanImpl {
residualCacheFolderRemoval: Record<"failure" | "success", GleanCounter>;
sqliteCookiesBlockMainThread: GleanTimingDistribution;
sqliteCookiesTimeToBlockMainThread: GleanTimingDistribution;
+ transFoundInPendingQueue: GleanCounter;
trrCompleteLoad: Record<
| "dns.shaw.ca"
| "dns.shaw.ca_2"
@@ -776,6 +810,59 @@ interface GleanImpl {
tabs_preselected?: string;
tabs_selected?: string;
}>;
+ browserActionComplete: GleanEventWithExtras<{
+ action_type?: string;
+ chat_id?: string;
+ error?: string;
+ location?: string;
+ message_seq?: string;
+ model?: string;
+ prompt_version?: string;
+ result?: string;
+ tabs_affected?: string;
+ undo_available?: string;
+ }>;
+ browserActionPrompt: GleanEventWithExtras<{
+ action_type?: string;
+ candidates?: string;
+ chat_id?: string;
+ location?: string;
+ message_seq?: string;
+ preselected?: string;
+ prompt_type?: string;
+ reason?: string;
+ }>;
+ browserActionPromptResponse: GleanEventWithExtras<{
+ action_type?: string;
+ chat_id?: string;
+ location?: string;
+ message_seq?: string;
+ prompt_type?: string;
+ reason?: string;
+ response?: string;
+ selected?: string;
+ }>;
+ browserActionSubmit: GleanEventWithExtras<{
+ action_type?: string;
+ chat_id?: string;
+ location?: string;
+ mentions?: string;
+ message_seq?: string;
+ model?: string;
+ prompt_version?: string;
+ submit_type?: string;
+ tabs_open?: string;
+ }>;
+ browserActionUndo: GleanEventWithExtras<{
+ action_type?: string;
+ chat_id?: string;
+ error?: string;
+ location?: string;
+ message_seq?: string;
+ result?: string;
+ tabs_restored?: string;
+ time_delta?: string;
+ }>;
chatPreviousSession: GleanEventWithExtras<{ tabs?: string }>;
chatRetrieved: GleanEventWithExtras<{
chat_id?: string;
@@ -786,15 +873,24 @@ interface GleanImpl {
chatStorage: GleanQuantity;
chatSubmit: GleanEventWithExtras<{
chat_id?: string;
+ chat_version?: string;
detected_intent?: string;
+ length?: string;
location?: string;
- memories?: string;
mentions?: string;
message_seq?: string;
model?: string;
submit_type?: string;
tabs?: string;
- tokens?: string;
+ turn_number?: string;
+ }>;
+ classicSwitch: GleanEventWithExtras<{
+ duration_ms?: string;
+ opened_tabs?: string;
+ }>;
+ closeWindow: GleanEventWithExtras<{
+ duration_ms?: string;
+ opened_tabs?: string;
}>;
getPageContent: GleanEventWithExtras<{
chat_id?: string;
@@ -828,6 +924,22 @@ interface GleanImpl {
location?: string;
message_seq?: string;
}>;
+ llmajBasedTelemetry: GleanEventWithExtras<{
+ attribute_name?: string;
+ attribute_value?: string;
+ chat_id?: string;
+ chat_version?: string;
+ model?: string;
+ record_type?: string;
+ telemetry_name?: string;
+ telemetry_version?: string;
+ trigger_sampled?: string;
+ trigger_sampling_probability?: string;
+ triggers?: string;
+ turn_number?: string;
+ uniform_sampled?: string;
+ uniform_sampling_probability?: string;
+ }>;
memoriesCount: Record<"conversation" | "history", GleanQuantity>;
memoriesLastUpdated: GleanDatetime;
memoriesNuke: GleanEventNoExtras;
@@ -857,6 +969,7 @@ interface GleanImpl {
message_seq?: string;
}>;
memoryRemovedPanel: GleanEventWithExtras<{
+ in_use?: string;
memories?: string;
trigger?: string;
}>;
@@ -894,7 +1007,9 @@ interface GleanImpl {
chat_id?: string;
duration?: string;
error?: string;
+ http_status?: string;
intent?: string;
+ is_retry?: string;
latency?: string;
location?: string;
memories?: string;
@@ -906,18 +1021,29 @@ interface GleanImpl {
navigateSubmit: GleanEventWithExtras<{
chat_id?: string;
detected_intent?: string;
+ length?: string;
location?: string;
message_seq?: string;
model?: string;
submit_type?: string;
}>;
- onboardingComplete: GleanEventNoExtras;
+ onboardingBackNavigate: GleanEventWithExtras<{ message_id?: string }>;
+ onboardingComplete: GleanEventWithExtras<{
+ memory_source?: string;
+ model?: string;
+ setdefault_source?: string;
+ }>;
+ onboardingMemoriesNavigate: GleanEventWithExtras<{ source?: string }>;
+ onboardingMemoriesSettings: GleanEventWithExtras<{ source?: string }>;
onboardingModelNavigate: GleanEventWithExtras<{ model?: string }>;
onboardingModelSelected: GleanEventWithExtras<{ model?: string }>;
onboardingScreenImpression: GleanEventWithExtras<{ message_id?: string }>;
+ onboardingSetdefaultNavigate: GleanEventWithExtras<{ source?: string }>;
+ onboardingSetdefaultSettings: GleanEventWithExtras<{ source?: string }>;
openWindow: GleanEventWithExtras<{
fxa?: string;
onboarding?: string;
+ opened_tabs?: string;
trigger?: string;
}>;
quickPromptClicked: GleanEventWithExtras<{
@@ -958,7 +1084,9 @@ interface GleanImpl {
message_seq?: string;
model?: string;
provider?: string;
+ submit_type?: string;
}>;
+ setDefaultOptin: GleanBoolean;
settingsMemories: GleanEventWithExtras<{ enabled?: string; type?: string }>;
settingsModel: GleanEventWithExtras<{
new_model?: string;
@@ -973,6 +1101,12 @@ interface GleanImpl {
message_seq?: string;
}>;
tabsOpened: GleanCounter;
+ topsitesClick: GleanEventWithExtras<{
+ position?: string;
+ visible_topsites?: string;
+ }>;
+ topsitesEnabled: GleanBoolean;
+ topsitesImpression: GleanEventWithExtras<{ visible_topsites?: string }>;
uriLoad: GleanEventWithExtras<{ model?: string }>;
};
@@ -1020,6 +1154,7 @@ interface GleanImpl {
microsurvey: {
addonVersion: GleanString;
+ appBuildId: GleanString;
appChannel: GleanString;
appDisplayVersion: GleanString;
bucketId: GleanString;
@@ -1063,6 +1198,11 @@ interface GleanImpl {
variation: GleanString;
};
+ microsurveySmartWindow: {
+ chat: GleanObject;
+ userFeedbackData: GleanObject;
+ };
+
gleanAttribution: {
ext: GleanObject;
};
@@ -1074,6 +1214,13 @@ interface GleanImpl {
browserBackup: {
archiveDisabledReason: GleanString;
archiveEnabled: GleanBoolean;
+ backupDetectionComplete: GleanEventWithExtras<{
+ backup_timestamp?: string;
+ count?: string;
+ location?: string;
+ restore_id?: string;
+ source?: string;
+ }>;
backupStart: GleanEventWithExtras<{ reason?: string }>;
backupThrottled: GleanEventNoExtras;
browserExtensionDataSize: GleanQuantity;
@@ -1105,12 +1252,24 @@ interface GleanImpl {
preferencesSize: GleanQuantity;
profDDiskSpace: GleanQuantity;
pswdEncrypted: GleanBoolean;
- restoreComplete: GleanEventWithExtras<{ restore_id?: string }>;
+ restoreComplete: GleanEventWithExtras<{
+ backup_os_build_number?: string;
+ backup_os_name?: string;
+ backup_os_version?: string;
+ backup_version?: string;
+ restore_id?: string;
+ }>;
restoreDisabledReason: GleanString;
restoreEnabled: GleanBoolean;
restoreFailed: GleanEventWithExtras<{
+ backup_os_build_number?: string;
+ backup_os_name?: string;
+ backup_os_version?: string;
+ backup_version?: string;
+ error_detail?: string;
error_type?: string;
restore_id?: string;
+ restore_step?: string;
}>;
restoreFileChosen: GleanEventWithExtras<{
app_name?: string;
@@ -1118,6 +1277,7 @@ interface GleanImpl {
build_id?: string;
encryption?: string;
location?: string;
+ os_build_number?: string;
os_name?: string;
os_version?: string;
restore_id?: string;
@@ -1126,12 +1286,17 @@ interface GleanImpl {
version?: string;
}>;
restoreStarted: GleanEventWithExtras<{
+ backup_os_build_number?: string;
+ backup_os_name?: string;
+ backup_os_version?: string;
+ backup_version?: string;
replace?: string;
restore_id?: string;
}>;
restoredProfileData: GleanObject;
restoredProfileLaunched: GleanEventWithExtras<{ restore_id?: string }>;
schedulerEnabled: GleanBoolean;
+ schedulerToggleSource: GleanString;
securityDataSize: GleanQuantity;
sessionStoreBackupsDirectorySize: GleanQuantity;
sessionStoreSize: GleanQuantity;
@@ -1142,6 +1307,15 @@ interface GleanImpl {
totalBackupTime: GleanTimingDistribution;
};
+ collectionShare: {
+ ctaClicked: GleanEventWithExtras<{ button?: string; signed_in?: string }>;
+ dialogOpen: GleanEventWithExtras<{
+ share_type?: string;
+ signed_in?: string;
+ }>;
+ error: GleanEventWithExtras<{ error_type?: string; status_code?: string }>;
+ };
+
containers: {
containerCreated: GleanEventWithExtras<{ container_id?: string }>;
containerDeleted: GleanEventWithExtras<{ container_id?: string }>;
@@ -1156,6 +1330,12 @@ interface GleanImpl {
}>;
};
+ trustpanel: {
+ breachAlertDiscoveredMonitor: GleanEventNoExtras;
+ breachAlertDismissed: GleanEventWithExtras<{ breach_status?: string }>;
+ opened: GleanEventWithExtras<{ breach_status?: string }>;
+ };
+
browserCustomkeys: {
actions: Record<"change" | "clear" | "reset" | "reset_all", GleanCounter>;
opened: GleanCounter;
@@ -1262,7 +1442,6 @@ interface GleanImpl {
}>;
contextmenuRemove: GleanEventWithExtras<{ provider?: string }>;
enabled: GleanBoolean;
- experimentCheckboxClick: GleanEventWithExtras<{ enabled?: string }>;
keyboardShortcut: GleanEventWithExtras<{
enabled?: string;
sidebar?: string;
@@ -1306,6 +1485,7 @@ interface GleanImpl {
provider?: string;
reader_mode?: string;
selection?: string;
+ smart_window?: string;
source?: string;
}>;
provider: GleanString;
@@ -1315,7 +1495,6 @@ interface GleanImpl {
surface?: string;
}>;
shortcuts: GleanBoolean;
- shortcutsCheckboxClick: GleanEventWithExtras<{ enabled?: string }>;
shortcutsCustom: GleanBoolean;
shortcutsDisplayed: GleanEventWithExtras<{
delay?: string;
@@ -1409,7 +1588,12 @@ interface GleanImpl {
enrollment: GleanEventWithExtras<{ enrolled?: string }>;
exclusionToggled: GleanEventWithExtras<{ excluded?: string }>;
getStarted: GleanEventNoExtras;
+ locationChanged: GleanEventWithExtras<{ location?: string }>;
+ locationSelectorButtonClicked: GleanEventNoExtras;
+ locationUpgradePromoClicked: GleanEventNoExtras;
removedFromToolbar: GleanEventNoExtras;
+ breakageMessageDismissed: GleanEventNoExtras;
+ breakageMessageShown: GleanEventNoExtras;
error: GleanEventWithExtras<{ source?: string }>;
exclusionAdded: GleanCounter;
paused: GleanEventWithExtras<{ wasActive?: string }>;
@@ -1466,14 +1650,15 @@ interface GleanImpl {
setDefaultAlwaysCheck: Record<"false" | "true", GleanCounter>;
setDefaultDialogPromptRawcount: GleanCustomDistribution;
setDefaultError: Record<"false" | "true", GleanCounter>;
+ setDefaultPdfHandlerAttempt: GleanEventWithExtras<{
+ method?: string;
+ result_is_default?: string;
+ success?: string;
+ }>;
setDefaultPdfHandlerModernSettingsResult: Record<
"Failure" | "Success",
GleanCounter
>;
- setDefaultPdfHandlerOpenWithResult: Record<
- "Failure" | "Success",
- GleanCounter
- >;
setDefaultPdfHandlerUserChoiceResult: Record<
| "ErrBuild"
| "ErrExeHash"
@@ -1488,6 +1673,16 @@ interface GleanImpl {
| "Success",
GleanCounter
>;
+ setDefaultProtocolHandlerAttempt: GleanEventWithExtras<{
+ method?: string;
+ protocol?: string;
+ result_is_default?: string;
+ success?: string;
+ }>;
+ setDefaultProtocolHandlerModernSettingsResult: Record<
+ "Failure" | "Success",
+ GleanCounter
+ >;
setDefaultResult: GleanCustomDistribution;
setDefaultUserChoiceResult: Record<
| "ErrBuild"
@@ -1532,17 +1727,24 @@ interface GleanImpl {
sessionPermissionExceptions: GleanQuantity;
};
+ distribution: {
+ mozillaonlineIgnored: GleanBoolean;
+ };
+
launchOnLogin: {
lastProfileDisableStartup: GleanEventNoExtras;
+ userToggle: GleanEventWithExtras<{ enabled?: string }>;
};
osEnvironment: {
+ desktopEntryExists: GleanString;
invokedToHandle: Record;
isDefaultHandler: Record;
isKeptInDock: GleanBoolean;
isTaskbarPinned: GleanBoolean;
isTaskbarPinnedPrivate: GleanBoolean;
launchMethod: GleanString;
+ launchOnLoginState: GleanString;
launchedToHandle: Record;
allowedAppSources: GleanString;
isAdminWithoutUac: GleanBoolean;
@@ -1567,6 +1769,7 @@ interface GleanImpl {
}>;
shadowedHtmlDocumentPropertyAccess: GleanEventWithExtras<{ name?: string }>;
cspViolationInternalPage: GleanEventWithExtras<{
+ baseline?: string;
blockeduridetails?: string;
blockeduritype?: string;
columnnumber?: string;
@@ -1611,7 +1814,6 @@ interface GleanImpl {
>;
httpsOnlyModeUpgradeType: GleanDualLabeledCounter;
javascriptLoadParentProcess: GleanEventWithExtras<{
- blocked?: string;
fileinfo?: string;
value?: string;
}>;
@@ -1645,6 +1847,7 @@ interface GleanImpl {
profileCount: GleanQuantity;
profileDatabaseVersion: GleanString;
profileSelectionReason: GleanString;
+ profilesIniStatus: GleanString;
};
upgradeDialog: {
@@ -2186,6 +2389,7 @@ interface GleanImpl {
section?: string;
section_position?: string;
}>;
+ sectionsLearnMore: GleanEventWithExtras<{ newtab_visit_id?: string }>;
sectionsUnblockSection: GleanEventWithExtras<{
content_redacted?: string;
event_source?: string;
@@ -2259,6 +2463,7 @@ interface GleanImpl {
widget_size?: string;
widget_source?: string;
}>;
+ widgetsEnabledList: GleanStringList;
widgetsError: GleanEventWithExtras<{
error_type?: string;
newtab_visit_id?: string;
@@ -2479,7 +2684,6 @@ interface GleanImpl {
tile_id?: string;
}>;
enabled: GleanBoolean;
- fetchTimestamp: GleanDatetime;
impression: GleanEventWithExtras<{
content_redacted?: string;
corpus_item_id?: string;
@@ -2500,7 +2704,6 @@ interface GleanImpl {
topic?: string;
}>;
isSignedIn: GleanBoolean;
- newtabCreationTimestamp: GleanDatetime;
save: GleanEventWithExtras<{
corpus_item_id?: string;
format?: string;
@@ -2519,7 +2722,6 @@ interface GleanImpl {
tile_id?: string;
topic?: string;
}>;
- shim: GleanText;
spocPlaceholderDuration: GleanTimingDistribution;
sponsoredStoriesEnabled: GleanBoolean;
topicClick: GleanEventWithExtras<{
@@ -2528,16 +2730,6 @@ interface GleanImpl {
}>;
};
- topSites: {
- advertiser: GleanString;
- contextId: GleanUuid;
- pingType: GleanString;
- position: GleanQuantity;
- reportingUrl: GleanUrl;
- source: GleanString;
- tileId: GleanString;
- };
-
topsites: {
add: GleanEventWithExtras<{
advertiser_name?: string;
@@ -3092,6 +3284,7 @@ interface GleanImpl {
corruptFile: Record<"false" | "true", GleanCounter>;
fileSizeBytes: GleanMemoryDistribution;
manualRestoreDurationUntilEagerTabsRestored: GleanTimingDistribution;
+ newTabOnRestoreEnabled: GleanBoolean;
numberOfEagerTabsRestored: GleanCustomDistribution;
numberOfTabsRestored: GleanCustomDistribution;
numberOfWindowsRestored: GleanCustomDistribution;
@@ -3112,6 +3305,9 @@ interface GleanImpl {
shutdownType: Record<"async" | "sync", GleanCounter>;
startupInitSession: GleanTimingDistribution;
startupOnloadInitialWindow: GleanTimingDistribution;
+ startupSessionAutoRestored: GleanEventWithExtras<{
+ new_tab_action?: string;
+ }>;
startupTimeline: Record<
"sessionRestoreInitialized" | "sessionRestoreRestoring",
GleanQuantity
@@ -3123,6 +3319,104 @@ interface GleanImpl {
sidebarToggle: GleanEventWithExtras<{ opened?: string; version?: string }>;
};
+ browserUiInteraction: {
+ sidebarBookmarks: Record<
+ | "add_bookmark_cancelled"
+ | "add_bookmark_confirmed"
+ | "add_bookmark_folder_cancelled"
+ | "add_bookmark_folder_confirmed"
+ | "add_separator"
+ | "copy_bookmark_url"
+ | "cut_bookmark"
+ | "edit_bookmark_cancelled"
+ | "edit_bookmark_confirmed"
+ | "open_all_bookmarks"
+ | "open_in_new_container_tab"
+ | "open_in_new_tab"
+ | "open_in_new_window"
+ | "open_in_private_window"
+ | "rename_bookmark_folder_cancelled"
+ | "rename_bookmark_folder_confirmed"
+ | "search"
+ | "sort_bookmarks_by_name",
+ GleanCounter
+ >;
+ sidebarHistory: Record<
+ | "bookmark_tab_cancelled"
+ | "bookmark_tab_confirmed"
+ | "clear_all_website_data_cancelled"
+ | "clear_all_website_data_confirmed"
+ | "clear_history_cancelled"
+ | "clear_history_confirmed"
+ | "copy_link"
+ | "delete_from_history"
+ | "open_in_new_container_tab"
+ | "open_in_new_tab"
+ | "open_in_new_window"
+ | "open_in_private_window"
+ | "search",
+ GleanCounter
+ >;
+ sidebarSortHistory: GleanEventWithExtras<{ sort_type?: string }>;
+ sidebarSyncedTabs: Record<
+ | "bookmark_tab_cancelled"
+ | "bookmark_tab_confirmed"
+ | "close_tab_on_connected_device"
+ | "copy_link"
+ | "open_in_new_window"
+ | "open_in_private_window"
+ | "search",
+ GleanCounter
+ >;
+ allTabsPanelDragstartTabEventCount: GleanCounter;
+ allTabsPanelEntrypoint: Record;
+ listAllTabsAction: Record<
+ "close_all_duplicates" | "search_tabs" | "tabs_from_devices",
+ GleanCounter
+ >;
+ tabMovement: Record<
+ | "from_external_app_next_to_active_tab"
+ | "from_external_app_tab_strip_end"
+ | "not_from_external_app",
+ GleanCounter
+ >;
+ textrecognitionError: GleanCounter;
+ appMenu: Record;
+ bookmarksBar: Record;
+ contentContext: Record;
+ menuBar: Record;
+ navBar: Record;
+ overflowMenu: Record;
+ pageactionPanel: Record;
+ pageactionUrlbar: Record;
+ pinnedOverflowMenu: Record;
+ preferencesPaneAbout: Record;
+ preferencesPaneAccessibility: Record;
+ preferencesPaneAi: Record;
+ preferencesPaneAppearance: Record;
+ preferencesPaneContainers: Record;
+ preferencesPaneDownloads: Record;
+ preferencesPaneExperimental: Record;
+ preferencesPaneGeneral: Record;
+ preferencesPaneHome: Record;
+ preferencesPaneLanguages: Record;
+ preferencesPaneMoreFromMozilla: Record;
+ preferencesPanePasswordsAutofill: Record;
+ preferencesPanePermissionsData: Record;
+ preferencesPanePrivacy: Record;
+ preferencesPaneSearch: Record;
+ preferencesPaneSearchResults: Record;
+ preferencesPaneSync: Record;
+ preferencesPaneTabsBrowsing: Record;
+ preferencesPaneUnknown: Record;
+ tabsBar: Record;
+ tabsContext: Record;
+ tabsContextEntrypoint: Record;
+ unifiedExtensionsArea: Record;
+ verticalTabsContainer: Record;
+ keyboard: Record;
+ };
+
contextualManager: {
passwordsEnabled: GleanEventWithExtras<{ checked?: string }>;
sidebarToggle: GleanEventWithExtras<{ opened?: string; version?: string }>;
@@ -3242,48 +3536,6 @@ interface GleanImpl {
update: GleanTimingDistribution;
};
- browserUiInteraction: {
- allTabsPanelDragstartTabEventCount: GleanCounter;
- allTabsPanelEntrypoint: Record;
- listAllTabsAction: Record<
- "close_all_duplicates" | "search_tabs" | "tabs_from_devices",
- GleanCounter
- >;
- tabMovement: Record<
- | "from_external_app_next_to_active_tab"
- | "from_external_app_tab_strip_end"
- | "not_from_external_app",
- GleanCounter
- >;
- textrecognitionError: GleanCounter;
- appMenu: Record;
- bookmarksBar: Record;
- contentContext: Record;
- menuBar: Record;
- navBar: Record;
- overflowMenu: Record;
- pageactionPanel: Record;
- pageactionUrlbar: Record;
- pinnedOverflowMenu: Record;
- preferencesPaneAi: Record;
- preferencesPaneContainers: Record;
- preferencesPaneExperimental: Record;
- preferencesPaneGeneral: Record;
- preferencesPaneHome: Record;
- preferencesPaneMoreFromMozilla: Record;
- preferencesPanePrivacy: Record;
- preferencesPaneSearch: Record;
- preferencesPaneSearchResults: Record;
- preferencesPaneSync: Record;
- preferencesPaneUnknown: Record;
- tabsBar: Record;
- tabsContext: Record;
- tabsContextEntrypoint: Record;
- unifiedExtensionsArea: Record;
- verticalTabsContainer: Record;
- keyboard: Record;
- };
-
linkHandling: {
openFromExternalApp: GleanEventWithExtras<{ next_to_active_tab?: string }>;
openNextToActiveTabSettingsChange: GleanEventWithExtras<{
@@ -3292,6 +3544,12 @@ interface GleanImpl {
openNextToActiveTabSettingsEnabled: GleanBoolean;
};
+ performanceInteraction: {
+ tabSwitchComposite: GleanTimingDistribution;
+ keypressPresentLatency: GleanTimingDistribution;
+ mouseupClickPresentLatency: GleanTimingDistribution;
+ };
+
splitview: {
end: GleanEventWithExtras<{ tab_layout?: string; trigger?: string }>;
resize: GleanEventWithExtras<{ width?: string }>;
@@ -3322,6 +3580,7 @@ interface GleanImpl {
groupInteractions: Record<
| "change_color"
| "collapse"
+ | "copy_all_links"
| "delete"
| "expand"
| "hover_preview"
@@ -3490,6 +3749,7 @@ interface GleanImpl {
sap?: string;
search_engine_default_id?: string;
search_mode?: string;
+ window_mode?: string;
}>;
autocompleteFirstResultTime: GleanTimingDistribution;
autocompleteSixthResultTime: GleanTimingDistribution;
@@ -3513,6 +3773,7 @@ interface GleanImpl {
selected_result?: string;
threshold?: string;
view_time?: string;
+ window_mode?: string;
}>;
disable: GleanEventWithExtras<{
chat_id?: string;
@@ -3529,6 +3790,7 @@ interface GleanImpl {
search_engine_default_id?: string;
search_mode?: string;
selected_result?: string;
+ window_mode?: string;
}>;
engagement: GleanEventWithExtras<{
actions?: string;
@@ -3550,6 +3812,7 @@ interface GleanImpl {
search_mode?: string;
selected_position?: string;
selected_result?: string;
+ window_mode?: string;
}>;
exposure: GleanEventWithExtras<{
results?: string;
@@ -3571,6 +3834,14 @@ interface GleanImpl {
prefSuggestTopsites: GleanBoolean;
};
+ urlbarAutofill: {
+ reintegration: Record<"origin" | "url", GleanCounter>;
+ reintegrationAfterBackspace: Record<
+ "origin" | "url",
+ GleanTimingDistribution
+ >;
+ };
+
urlbarMerino: {
latencyByResponseStatus: Record;
};
@@ -3599,18 +3870,6 @@ interface GleanImpl {
exposure: GleanCounter;
};
- dataLeakBlocker: {
- reportV1: GleanEventWithExtras<{
- addon_id?: string;
- blocked?: string;
- content_policy_type?: string;
- is_addon_loading?: string;
- is_addon_triggering?: string;
- is_content_script?: string;
- method?: string;
- }>;
- };
-
addonsSearchDetection: {
etldChangeOther: GleanEventWithExtras<{
addonId?: string;
@@ -3742,10 +4001,10 @@ interface GleanImpl {
clickUrlbar: GleanEventWithExtras<{ value?: string }>;
};
- performanceInteraction: {
- tabSwitchComposite: GleanTimingDistribution;
- keypressPresentLatency: GleanTimingDistribution;
- mouseupClickPresentLatency: GleanTimingDistribution;
+ privacyReducedPageProtection: {
+ bannerShown: GleanCounter;
+ disableClicked: GleanCounter;
+ reloadClicked: GleanCounter;
};
timestamps: {
@@ -4600,11 +4859,18 @@ interface GleanImpl {
stack?: string;
}>;
toolboxServerError: GleanEventWithExtras<{
+ descriptor_type?: string;
error_name?: string;
+ host_type?: string;
+ is_destroying?: string;
+ is_local_tab?: string;
+ is_window_closed?: string;
packet_error?: string;
packet_target?: string;
packet_type?: string;
+ server_content_process_stack?: string;
server_stack?: string;
+ session_id?: string;
stack?: string;
}>;
unregisterWorkerApplication: GleanEventWithExtras<{
@@ -4809,6 +5075,23 @@ interface GleanImpl {
cssContainerType: GleanCounter;
cssContent: GleanCounter;
cssContentVisibility: GleanCounter;
+ cssCornerBlockEndShape: GleanCounter;
+ cssCornerBlockStartShape: GleanCounter;
+ cssCornerBottomLeftShape: GleanCounter;
+ cssCornerBottomRightShape: GleanCounter;
+ cssCornerBottomShape: GleanCounter;
+ cssCornerEndEndShape: GleanCounter;
+ cssCornerEndStartShape: GleanCounter;
+ cssCornerInlineEndShape: GleanCounter;
+ cssCornerInlineStartShape: GleanCounter;
+ cssCornerLeftShape: GleanCounter;
+ cssCornerRightShape: GleanCounter;
+ cssCornerShape: GleanCounter;
+ cssCornerStartEndShape: GleanCounter;
+ cssCornerStartStartShape: GleanCounter;
+ cssCornerTopLeftShape: GleanCounter;
+ cssCornerTopRightShape: GleanCounter;
+ cssCornerTopShape: GleanCounter;
cssCounterIncrement: GleanCounter;
cssCounterReset: GleanCounter;
cssCounterSet: GleanCounter;
@@ -4906,6 +5189,7 @@ interface GleanImpl {
cssLightingColor: GleanCounter;
cssLineBreak: GleanCounter;
cssLineHeight: GleanCounter;
+ cssLinkParameters: GleanCounter;
cssListStyle: GleanCounter;
cssListStyleImage: GleanCounter;
cssListStylePosition: GleanCounter;
@@ -5523,6 +5807,23 @@ interface GleanImpl {
cssContainerType: GleanCounter;
cssContent: GleanCounter;
cssContentVisibility: GleanCounter;
+ cssCornerBlockEndShape: GleanCounter;
+ cssCornerBlockStartShape: GleanCounter;
+ cssCornerBottomLeftShape: GleanCounter;
+ cssCornerBottomRightShape: GleanCounter;
+ cssCornerBottomShape: GleanCounter;
+ cssCornerEndEndShape: GleanCounter;
+ cssCornerEndStartShape: GleanCounter;
+ cssCornerInlineEndShape: GleanCounter;
+ cssCornerInlineStartShape: GleanCounter;
+ cssCornerLeftShape: GleanCounter;
+ cssCornerRightShape: GleanCounter;
+ cssCornerShape: GleanCounter;
+ cssCornerStartEndShape: GleanCounter;
+ cssCornerStartStartShape: GleanCounter;
+ cssCornerTopLeftShape: GleanCounter;
+ cssCornerTopRightShape: GleanCounter;
+ cssCornerTopShape: GleanCounter;
cssCounterIncrement: GleanCounter;
cssCounterReset: GleanCounter;
cssCounterSet: GleanCounter;
@@ -5620,6 +5921,7 @@ interface GleanImpl {
cssLightingColor: GleanCounter;
cssLineBreak: GleanCounter;
cssLineHeight: GleanCounter;
+ cssLinkParameters: GleanCounter;
cssListStyle: GleanCounter;
cssListStyleImage: GleanCounter;
cssListStylePosition: GleanCounter;
@@ -6093,15 +6395,14 @@ interface GleanImpl {
useCounterDeprecatedOpsDoc: {
ambientLightEvent: GleanCounter;
- appCache: GleanCounter;
ckeditor4CompatHack: GleanCounter;
components: GleanCounter;
createImageBitmapCanvasRenderingContext2D: GleanCounter;
+ csscontainerRuleSingleCondition: GleanCounter;
deprecatedTestingAttribute: GleanCounter;
deprecatedTestingInterface: GleanCounter;
deprecatedTestingMethod: GleanCounter;
documentReleaseCapture: GleanCounter;
- domquadBoundsAttr: GleanCounter;
drawWindowCanvasRenderingContext2D: GleanCounter;
elementReleaseCapture: GleanCounter;
elementSetCapture: GleanCounter;
@@ -6110,7 +6411,6 @@ interface GleanImpl {
fullscreenAttribute: GleanCounter;
gwtrichTextAreaCompatHack: GleanCounter;
idbobjectStoreCreateIndexLocale: GleanCounter;
- idbopenDboptionsStorageType: GleanCounter;
imageBitmapRenderingContextTransferImageBitmap: GleanCounter;
importXulintoContent: GleanCounter;
initMouseEvent: GleanCounter;
@@ -6118,6 +6418,7 @@ interface GleanImpl {
installTriggerDeprecated: GleanCounter;
lenientSetter: GleanCounter;
lenientThis: GleanCounter;
+ mathMlDeprecatedHrefLinkOnNonAnchorElement: GleanCounter;
mathMlDeprecatedMathSpaceValue2: GleanCounter;
mathMlDeprecatedMathVariant: GleanCounter;
mathMlDeprecatedMoExplicitAccent: GleanCounter;
@@ -6144,23 +6445,20 @@ interface GleanImpl {
syncXmlhttpRequestDeprecated: GleanCounter;
useOfCaptureEvents: GleanCounter;
useOfReleaseEvents: GleanCounter;
- webrtcDeprecatedPrefix: GleanCounter;
windowCcOntrollers: GleanCounter;
- windowContentUntrusted: GleanCounter;
xsltdeprecated: GleanCounter;
};
useCounterDeprecatedOpsPage: {
ambientLightEvent: GleanCounter;
- appCache: GleanCounter;
ckeditor4CompatHack: GleanCounter;
components: GleanCounter;
createImageBitmapCanvasRenderingContext2D: GleanCounter;
+ csscontainerRuleSingleCondition: GleanCounter;
deprecatedTestingAttribute: GleanCounter;
deprecatedTestingInterface: GleanCounter;
deprecatedTestingMethod: GleanCounter;
documentReleaseCapture: GleanCounter;
- domquadBoundsAttr: GleanCounter;
drawWindowCanvasRenderingContext2D: GleanCounter;
elementReleaseCapture: GleanCounter;
elementSetCapture: GleanCounter;
@@ -6169,7 +6467,6 @@ interface GleanImpl {
fullscreenAttribute: GleanCounter;
gwtrichTextAreaCompatHack: GleanCounter;
idbobjectStoreCreateIndexLocale: GleanCounter;
- idbopenDboptionsStorageType: GleanCounter;
imageBitmapRenderingContextTransferImageBitmap: GleanCounter;
importXulintoContent: GleanCounter;
initMouseEvent: GleanCounter;
@@ -6177,6 +6474,7 @@ interface GleanImpl {
installTriggerDeprecated: GleanCounter;
lenientSetter: GleanCounter;
lenientThis: GleanCounter;
+ mathMlDeprecatedHrefLinkOnNonAnchorElement: GleanCounter;
mathMlDeprecatedMathSpaceValue2: GleanCounter;
mathMlDeprecatedMathVariant: GleanCounter;
mathMlDeprecatedMoExplicitAccent: GleanCounter;
@@ -6203,9 +6501,7 @@ interface GleanImpl {
syncXmlhttpRequestDeprecated: GleanCounter;
useOfCaptureEvents: GleanCounter;
useOfReleaseEvents: GleanCounter;
- webrtcDeprecatedPrefix: GleanCounter;
windowCcOntrollers: GleanCounter;
- windowContentUntrusted: GleanCounter;
xsltdeprecated: GleanCounter;
};
@@ -6261,9 +6557,12 @@ interface GleanImpl {
documentQueryCommandSupportedOrEnabledContentReadOnly: GleanCounter;
documentQueryCommandSupportedOrEnabledInsertBrOnReturn: GleanCounter;
domparserParsefromstring: GleanCounter;
+ editcontextConstructor: GleanCounter;
elementAttachshadow: GleanCounter;
elementReleasecapture: GleanCounter;
elementReleasepointercapture: GleanCounter;
+ elementRequestfullscreen: GleanCounter;
+ elementRequestpointerlock: GleanCounter;
elementSetcapture: GleanCounter;
elementSethtml: GleanCounter;
elementSetpointercapture: GleanCounter;
@@ -6319,10 +6618,15 @@ interface GleanImpl {
htmldocumentXmlencoding: GleanCounter;
htmldocumentXmlstandalone: GleanCounter;
htmldocumentXmlversion: GleanCounter;
+ htmlvideoelementRequestpictureinpicture: GleanCounter;
invalidTextDirectives: GleanCounter;
jsAsmjs: GleanCounter;
+ jsAsyncGeneratorFunctionCreated: GleanCounter;
+ jsAsyncGeneratorFunctionIonEligible: GleanCounter;
jsDateparse: GleanCounter;
jsDateparseImplDef: GleanCounter;
+ jsGeneratorFunctionCreated: GleanCounter;
+ jsGeneratorFunctionIonEligible: GleanCounter;
jsIcStubOom: GleanCounter;
jsIcStubTooLarge: GleanCounter;
jsIsHtmlddaFuse: GleanCounter;
@@ -6343,6 +6647,7 @@ interface GleanImpl {
mediadevicesEnumeratedevices: GleanCounter;
mediadevicesGetdisplaymedia: GleanCounter;
mediadevicesGetusermedia: GleanCounter;
+ midiaccessGranted: GleanCounter;
mixedContentNotUpgradedAudioFailure: GleanCounter;
mixedContentNotUpgradedAudioSuccess: GleanCounter;
mixedContentNotUpgradedImageFailure: GleanCounter;
@@ -6436,9 +6741,14 @@ interface GleanImpl {
pushsubscriptionUnsubscribe: GleanCounter;
rangeCreatecontextualfragment: GleanCounter;
reportingobserverConstructor: GleanCounter;
+ requestedKeyboardLock: GleanCounter;
+ requestedPointerLockUnadjustedMovement: GleanCounter;
sanitizerConstructor: GleanCounter;
sanitizerSanitize: GleanCounter;
schedulerPosttask: GleanCounter;
+ serialGetports: GleanCounter;
+ serialRequestport: GleanCounter;
+ serialportOpen: GleanCounter;
svgsvgelementCurrentscaleGetter: GleanCounter;
svgsvgelementCurrentscaleSetter: GleanCounter;
svgsvgelementGetelementbyid: GleanCounter;
@@ -6653,9 +6963,12 @@ interface GleanImpl {
documentQueryCommandSupportedOrEnabledContentReadOnly: GleanCounter;
documentQueryCommandSupportedOrEnabledInsertBrOnReturn: GleanCounter;
domparserParsefromstring: GleanCounter;
+ editcontextConstructor: GleanCounter;
elementAttachshadow: GleanCounter;
elementReleasecapture: GleanCounter;
elementReleasepointercapture: GleanCounter;
+ elementRequestfullscreen: GleanCounter;
+ elementRequestpointerlock: GleanCounter;
elementSetcapture: GleanCounter;
elementSethtml: GleanCounter;
elementSetpointercapture: GleanCounter;
@@ -6711,10 +7024,15 @@ interface GleanImpl {
htmldocumentXmlencoding: GleanCounter;
htmldocumentXmlstandalone: GleanCounter;
htmldocumentXmlversion: GleanCounter;
+ htmlvideoelementRequestpictureinpicture: GleanCounter;
invalidTextDirectives: GleanCounter;
jsAsmjs: GleanCounter;
+ jsAsyncGeneratorFunctionCreated: GleanCounter;
+ jsAsyncGeneratorFunctionIonEligible: GleanCounter;
jsDateparse: GleanCounter;
jsDateparseImplDef: GleanCounter;
+ jsGeneratorFunctionCreated: GleanCounter;
+ jsGeneratorFunctionIonEligible: GleanCounter;
jsIcStubOom: GleanCounter;
jsIcStubTooLarge: GleanCounter;
jsIsHtmlddaFuse: GleanCounter;
@@ -6735,6 +7053,7 @@ interface GleanImpl {
mediadevicesEnumeratedevices: GleanCounter;
mediadevicesGetdisplaymedia: GleanCounter;
mediadevicesGetusermedia: GleanCounter;
+ midiaccessGranted: GleanCounter;
mixedContentNotUpgradedAudioFailure: GleanCounter;
mixedContentNotUpgradedAudioSuccess: GleanCounter;
mixedContentNotUpgradedImageFailure: GleanCounter;
@@ -6828,9 +7147,14 @@ interface GleanImpl {
pushsubscriptionUnsubscribe: GleanCounter;
rangeCreatecontextualfragment: GleanCounter;
reportingobserverConstructor: GleanCounter;
+ requestedKeyboardLock: GleanCounter;
+ requestedPointerLockUnadjustedMovement: GleanCounter;
sanitizerConstructor: GleanCounter;
sanitizerSanitize: GleanCounter;
schedulerPosttask: GleanCounter;
+ serialGetports: GleanCounter;
+ serialRequestport: GleanCounter;
+ serialportOpen: GleanCounter;
svgsvgelementCurrentscaleGetter: GleanCounter;
svgsvgelementCurrentscaleSetter: GleanCounter;
svgsvgelementGetelementbyid: GleanCounter;
@@ -7056,6 +7380,8 @@ interface GleanImpl {
pushsubscriptionUnsubscribe: GleanCounter;
reportingobserverConstructor: GleanCounter;
schedulerPosttask: GleanCounter;
+ serialGetports: GleanCounter;
+ serialportOpen: GleanCounter;
videodecoderConstructor: GleanCounter;
videoencoderConstructor: GleanCounter;
webgpuRequestAdapter: GleanCounter;
@@ -7124,6 +7450,8 @@ interface GleanImpl {
pushsubscriptionUnsubscribe: GleanCounter;
reportingobserverConstructor: GleanCounter;
schedulerPosttask: GleanCounter;
+ serialGetports: GleanCounter;
+ serialportOpen: GleanCounter;
videodecoderConstructor: GleanCounter;
videoencoderConstructor: GleanCounter;
webgpuRequestAdapter: GleanCounter;
@@ -7192,6 +7520,8 @@ interface GleanImpl {
pushsubscriptionUnsubscribe: GleanCounter;
reportingobserverConstructor: GleanCounter;
schedulerPosttask: GleanCounter;
+ serialGetports: GleanCounter;
+ serialportOpen: GleanCounter;
videodecoderConstructor: GleanCounter;
videoencoderConstructor: GleanCounter;
webgpuRequestAdapter: GleanCounter;
@@ -7206,16 +7536,6 @@ interface GleanImpl {
webglUsed: Record<"false" | "true", GleanCounter>;
};
- webcrypto: {
- alg: GleanCustomDistribution;
- extractableEnc: Record<"false" | "true", GleanCounter>;
- extractableGenerate: Record<"false" | "true", GleanCounter>;
- extractableImport: Record<"false" | "true", GleanCounter>;
- extractableSig: Record<"false" | "true", GleanCounter>;
- method: GleanCustomDistribution;
- resolved: Record<"false" | "true", GleanCounter>;
- };
-
geolocation: {
accuracy: GleanCustomDistribution;
fallback: Record<"none" | "on_error" | "on_timeout", GleanCounter>;
@@ -7234,6 +7554,7 @@ interface GleanImpl {
>;
linuxProvider: Record<"geoclue" | "none" | "portal", GleanBoolean>;
macosErrorCode: Record;
+ networkFailures: Record<"network_ip" | "network_wifi_and_ip", GleanCounter>;
requestResult: Record<
"permission_denied" | "position_unavailable" | "success" | "timeout",
GleanCounter
@@ -7486,6 +7807,10 @@ interface GleanImpl {
videoPreferredCodec: Record;
};
+ rtcpeerconnection: {
+ countRtcpMuxPolicyNegotiate: GleanCounter;
+ };
+
rtcrtpsender: {
count: GleanDenominator;
countSetparametersCompat: GleanDenominator;
@@ -7603,7 +7928,7 @@ interface GleanImpl {
forgetSkippableDuringIdle: GleanCustomDistribution;
forgetSkippableFrequency: GleanCustomDistribution;
fullscreenTransitionBlack: GleanTimingDistribution;
- gcInProgress: GleanTimingDistribution;
+ gcInProgress: Record;
gcSliceDuringIdle: GleanCustomDistribution;
scriptLoadingSource: Record<
"AltData" | "Inline" | "Source" | "SourceFallback",
@@ -7660,10 +7985,16 @@ interface GleanImpl {
fcp_time?: string;
has_ssd?: string;
http_ver?: string;
+ inp_longest?: string;
+ inp_p75?: string;
+ inp_p98?: string;
+ interaction_count?: string;
js_exec_time?: string;
+ keypress_max_duration?: string;
lcp_time?: string;
load_time?: string;
load_type?: string;
+ mouse_click?: string;
network_type?: string;
redirect_count?: string;
redirect_time?: string;
@@ -7683,6 +8014,7 @@ interface GleanImpl {
pageLoadDomain: GleanEventWithExtras<{
app_version_major?: string;
channel?: string;
+ country?: string;
document_features?: string;
domain?: string;
http_ver?: string;
@@ -7829,21 +8161,6 @@ interface GleanImpl {
events: GleanCustomDistribution;
};
- unexpectedScriptLoad: {
- dialogDismissed: GleanEventNoExtras;
- infobarDismissed: GleanEventNoExtras;
- infobarShown: GleanEventNoExtras;
- moreInfoOpened: GleanEventNoExtras;
- scriptAllowed: GleanEventNoExtras;
- scriptAllowedOpened: GleanEventNoExtras;
- scriptBlocked: GleanEventNoExtras;
- scriptBlockedOpened: GleanEventNoExtras;
- scriptReported: GleanEventWithExtras<{
- script_url?: string;
- user_email?: string;
- }>;
- };
-
serviceWorker: {
fetchEventChannelReset: Record;
fetchEventDispatch: Record;
@@ -8268,19 +8585,19 @@ interface GleanImpl {
};
javascriptGc: {
- animation: GleanTimingDistribution;
- budget: GleanTimingDistribution;
- budgetOverrun: GleanTimingDistribution;
+ animation: Record;
+ budget: Record;
+ budgetOverrun: Record;
budgetWasIncreased: Record<"false" | "true", GleanCounter>;
- compactTime: GleanTimingDistribution;
+ compactTime: Record;
effectiveness: GleanCustomDistribution;
isZoneGc: Record<"false" | "true", GleanCounter>;
- markGray: GleanTimingDistribution;
+ markGray: Record;
markRate: GleanCustomDistribution;
- markRootsTime: GleanTimingDistribution;
- markTime: GleanTimingDistribution;
- markWeak: GleanTimingDistribution;
- maxPause: GleanTimingDistribution;
+ markRootsTime: Record;
+ markTime: Record;
+ markWeak: Record;
+ maxPause: Record;
minorReason: Record<
| "ABORT_GC"
| "ALLOC_TRIGGER"
@@ -8403,7 +8720,7 @@ interface GleanImpl {
| "XPCONNECT_SHUTDOWN",
GleanCounter
>;
- minorTime: GleanTimingDistribution;
+ minorTime: Record;
mmu50: GleanCustomDistribution;
nonIncremental: Record<"false" | "true", GleanCounter>;
nonIncrementalReason: Record<
@@ -8421,13 +8738,13 @@ interface GleanImpl {
| "ZoneChange",
GleanCounter
>;
- nurseryBytes: GleanMemoryDistribution;
+ nurseryBytes: Record;
nurseryPromotionRate: GleanCustomDistribution;
parallelMarkInterruptions: GleanCustomDistribution;
parallelMarkSpeedup: GleanCustomDistribution;
parallelMarkUsed: Record<"false" | "true", GleanCounter>;
parallelMarkUtilization: GleanCustomDistribution;
- prepareTime: GleanTimingDistribution;
+ prepareTime: Record;
pretenureCount: GleanCustomDistribution;
reason: Record<
| "ABORT_GC"
@@ -8507,7 +8824,7 @@ interface GleanImpl {
GleanCounter
>;
sliceCount: GleanCustomDistribution;
- sliceTime: GleanTimingDistribution;
+ sliceTime: Record;
sliceWasLong: Record<"false" | "true", GleanCounter>;
slowPhase: Record<
| "COMPACT"
@@ -8639,13 +8956,13 @@ interface GleanImpl {
| "WEAK_ZONES_CALLBACK",
GleanCounter
>;
- sweepTime: GleanTimingDistribution;
- taskStartDelay: GleanTimingDistribution;
+ sweepTime: Record;
+ taskStartDelay: Record;
tenuredSurvivalRate: GleanCustomDistribution;
- timeBetween: GleanTimingDistribution;
- timeBetweenMinor: GleanTimingDistribution;
- timeBetweenSlices: GleanTimingDistribution;
- totalTime: GleanTimingDistribution;
+ timeBetween: Record;
+ timeBetweenMinor: Record;
+ timeBetweenSlices: Record;
+ totalTime: Record;
zoneCount: GleanCustomDistribution;
zonesCollected: GleanCustomDistribution;
};
@@ -8698,6 +9015,24 @@ interface GleanImpl {
perDocumentSiteOrigins: GleanCustomDistribution;
};
+ nimbusQaPrefs: {
+ boolDefault: GleanObject;
+ boolUser: GleanObject;
+ intDefault: GleanObject;
+ intUser: GleanObject;
+ prefTypeErrors: Record<
+ | "nimbus.qa.bool-default"
+ | "nimbus.qa.bool-user"
+ | "nimbus.qa.int-default"
+ | "nimbus.qa.int-user"
+ | "nimbus.qa.string-default"
+ | "nimbus.qa.string-user",
+ GleanCounter
+ >;
+ stringDefault: GleanObject;
+ stringUser: GleanObject;
+ };
+
zeroByteLoad: {
loadCss: GleanEventWithExtras<{
cancel_reason?: string;
@@ -8823,7 +9158,12 @@ interface GleanImpl {
httpCacheEntryAliveTime: GleanTimingDistribution;
httpCacheEntryReloadTime: GleanTimingDistribution;
httpCacheEntryReuseCount: GleanCustomDistribution;
+ appleFastDatapathUsed: GleanBoolean;
backgroundfilesaverThreadCount: GleanCustomDistribution;
+ contentDecodingErrorReport: GleanEventWithExtras<{
+ error_type?: string;
+ top_level_site?: string;
+ }>;
id: GleanCustomDistribution;
idOnline: Record<"absent" | "present", GleanCounter>;
ipv4AndIpv6AddressConnectivity: GleanCustomDistribution;
@@ -8840,8 +9180,12 @@ interface GleanImpl {
| "TYPE_STYLE_USED",
GleanCounter
>;
+ sslTokenCacheEarlyConnections: GleanCounter;
+ sslTokenCacheEvictions: GleanCounter;
sslTokenCacheExpired: GleanCounter;
sslTokenCacheHits: Record<"hit" | "miss", GleanCounter>;
+ sslTokenCacheLoadTime: GleanTimingDistribution;
+ sslTokenCachePersistenceRecordsLoaded: GleanCounter;
urlclassifierHarmfulAddonBlock: GleanEventWithExtras<{
addon_id?: string;
addon_version?: string;
@@ -8912,14 +9256,6 @@ interface GleanImpl {
openToFirstReceived: GleanTimingDistribution;
openToFirstSent: GleanTimingDistribution;
pageLoadSize: Record<"page" | "subresources", GleanMemoryDistribution>;
- raceCacheBandwidthRaceCacheWin: GleanMemoryDistribution;
- raceCacheBandwidthRaceNetworkWin: GleanMemoryDistribution;
- raceCacheValidation: Record<
- "CachedContentNotUsed" | "CachedContentUsed" | "NotSent",
- GleanCounter
- >;
- raceCacheWithNetworkOcecOnStartDiff: GleanTimingDistribution;
- raceCacheWithNetworkSavedTime: GleanTimingDistribution;
retriedSystemChannelAddonStatus: Record<
| "cancel"
| "connect_fail"
@@ -9222,8 +9558,8 @@ interface GleanImpl {
byTypeCleanupAge: GleanTimingDistribution;
byTypeFailedLookupTime: GleanTimingDistribution;
byTypePrematureEviction: GleanTimingDistribution;
- byTypeSucceededLookupTime: GleanTimingDistribution;
cleanupAge: GleanTimingDistribution;
+ httpsRrLookupTime: Record<"doh" | "native", GleanTimingDistribution>;
lookupAlgorithm: Record<
"nativeOnly" | "trrFirst" | "trrOnly" | "trrRace" | "trrShadow",
GleanCounter
@@ -9274,6 +9610,7 @@ interface GleanImpl {
};
networkCookies: {
+ openError: Record;
sqliteOpenReadahead: GleanTimingDistribution;
};
@@ -9386,12 +9723,36 @@ interface GleanImpl {
requestPerConn: GleanCustomDistribution;
savedDgrams: GleanCustomDistribution;
sendingBlockedByFlowControlPerTrans: GleanCustomDistribution;
+ staleDcbDczCacheEntriesPurged: GleanCounter;
timerDelayed: GleanTimingDistribution;
transBlockedByStreamLimitPerConn: GleanCustomDistribution;
transSendingBlockedByFlowControlPerConn: GleanCustomDistribution;
};
netwerk: {
+ happyEyeballsCancelledAttemptCount: GleanCustomDistribution;
+ happyEyeballsConnectionAttemptCount: Record<
+ "failed" | "succeeded",
+ GleanCustomDistribution
+ >;
+ happyEyeballsConnectionEstablishmentTime: Record<
+ "failed" | "succeeded",
+ GleanCustomDistribution
+ >;
+ happyEyeballsDnsResolutionTime: Record<
+ "a" | "aaaa" | "https",
+ GleanCustomDistribution
+ >;
+ happyEyeballsH3Discovery: Record<
+ "altsvc_only" | "both" | "https_rr_only" | "none",
+ GleanCounter
+ >;
+ happyEyeballsHttpsRrFeatures: Record<
+ "ech" | "h3_alpn" | "ipv4hint" | "ipv6hint" | "total",
+ GleanCounter
+ >;
+ happyEyeballsTimeToFirstAttempt: GleanCustomDistribution;
+ happyEyeballsWinningAttemptIndex: GleanCustomDistribution;
http30rttState: Record<
| "conn_closed_by_necko"
| "conn_error"
@@ -9440,6 +9801,7 @@ interface GleanImpl {
| "SCRIPT"
| "SPECULATIVE"
| "STYLESHEET"
+ | "TEXT"
| "UA_FONT"
| "WEB_MANIFEST"
| "WEB_TRANSPORT"
@@ -9653,26 +10015,6 @@ interface GleanImpl {
tls: {
certificateVerifications: GleanDenominator;
cipherSuite: GleanCustomDistribution;
- xyberIntoleranceReason: Record<
- | "PR_CONNECT_RESET_ERROR"
- | "PR_END_OF_FILE_ERROR"
- | "SSL_ERROR_BAD_HANDSHAKE_HASH_VALUE"
- | "SSL_ERROR_BAD_MAC_ALERT"
- | "SSL_ERROR_BAD_MAC_READ"
- | "SSL_ERROR_DECODE_ERROR_ALERT"
- | "SSL_ERROR_HANDSHAKE_FAILED"
- | "SSL_ERROR_HANDSHAKE_FAILURE_ALERT"
- | "SSL_ERROR_HANDSHAKE_UNEXPECTED_ALERT"
- | "SSL_ERROR_ILLEGAL_PARAMETER_ALERT"
- | "SSL_ERROR_INTERNAL_ERROR_ALERT"
- | "SSL_ERROR_KEY_EXCHANGE_FAILURE"
- | "SSL_ERROR_NO_CYPHER_OVERLAP"
- | "SSL_ERROR_PROTOCOL_VERSION_ALERT"
- | "SSL_ERROR_RX_MALFORMED_HYBRID_KEY_SHARE"
- | "SSL_ERROR_RX_UNEXPECTED_RECORD_TYPE"
- | "SSL_ERROR_UNSUPPORTED_VERSION",
- GleanCounter
- >;
};
verificationUsedCertFrom: {
@@ -9690,18 +10032,6 @@ interface GleanImpl {
rejectedSyscalls: Record;
};
- uptakeRemotecontentResult: {
- uptakeRemotesettings: GleanEventWithExtras<{
- age?: string;
- duration?: string;
- errorName?: string;
- source?: string;
- timestamp?: string;
- trigger?: string;
- value?: string;
- }>;
- };
-
clientAssociation: {
legacyClientId: GleanUuid;
uid: GleanString;
@@ -9756,6 +10086,18 @@ interface GleanImpl {
}>;
};
+ uptakeRemotecontentResult: {
+ uptakeRemotesettings: GleanEventWithExtras<{
+ age?: string;
+ duration?: string;
+ errorName?: string;
+ source?: string;
+ timestamp?: string;
+ trigger?: string;
+ value?: string;
+ }>;
+ };
+
fxaAppMenu: {
clickAccountSettings: GleanEventWithExtras<{
action?: string;
@@ -10026,6 +10368,14 @@ interface GleanImpl {
}>;
};
+ sendTabToolbar: {
+ clickSendTab: GleanEventWithExtras<{
+ action?: string;
+ device_count?: string;
+ }>;
+ sendTabOpened: GleanEventWithExtras<{ device_count?: string }>;
+ };
+
sync: {
deviceCountDesktop: GleanCustomDistribution;
deviceCountMobile: GleanCustomDistribution;
@@ -10089,7 +10439,6 @@ interface GleanImpl {
purgeAction: GleanEventWithExtras<{
bounce_time?: string;
is_dry_run?: string;
- require_stateful_bounces?: string;
site_host?: string;
success?: string;
}>;
@@ -10810,12 +11159,6 @@ interface GleanImpl {
initializations: GleanTimingDistribution;
initsDuringShutdown: GleanCounter;
maxPingsPerMinute: GleanQuantity;
- subdirEntryErr: Record<"db" | "events" | "pending_pings", GleanCounter>;
- subdirEntryMetadataErr: Record<
- "db" | "events" | "pending_pings",
- GleanCounter
- >;
- subdirErr: Record<"db" | "events" | "pending_pings", GleanBoolean>;
};
fogIpc: {
@@ -10951,121 +11294,166 @@ interface GleanImpl {
};
messagingExperiments: {
- reachCfr: GleanEventWithExtras<{ branches?: string; value?: string }>;
+ reachCfr: GleanEventWithExtras<{
+ branches?: string;
+ message_id?: string;
+ value?: string;
+ }>;
reachFeatureCallout: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsBmbButton: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
+ value?: string;
+ }>;
+ reachFxmsMessage: GleanEventWithExtras<{
+ branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage1: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage10: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage11: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage12: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage13: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage14: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage15: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage16: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage17: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage18: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage19: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage2: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage20: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage21: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage22: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage23: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage24: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage25: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage3: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage4: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage5: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage6: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage7: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage8: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
value?: string;
}>;
reachFxmsMessage9: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
+ value?: string;
+ }>;
+ reachInfobar: GleanEventWithExtras<{
+ branches?: string;
+ message_id?: string;
value?: string;
}>;
- reachInfobar: GleanEventWithExtras<{ branches?: string; value?: string }>;
reachMomentsPage: GleanEventWithExtras<{
branches?: string;
+ message_id?: string;
+ value?: string;
+ }>;
+ reachSpotlight: GleanEventWithExtras<{
+ branches?: string;
+ message_id?: string;
value?: string;
}>;
- reachSpotlight: GleanEventWithExtras<{ branches?: string; value?: string }>;
targetingAttributeError: GleanEventWithExtras<{
source?: string;
value?: string;
@@ -11089,6 +11477,7 @@ interface GleanImpl {
| "about-inference"
| "autofill-ml"
| "default-engine"
+ | "link-preview"
| "ml-suggest-intent"
| "ml-suggest-ner"
| "pdfjs"
@@ -11099,8 +11488,7 @@ interface GleanImpl {
| "smart-tab-embedding-engine"
| "smart-tab-topic-engine"
| "title-generation-engine"
- | "webextension"
- | "wllamapreview",
+ | "webextension",
GleanTimingDistribution
>;
engineCreationSuccessFlow: GleanEventWithExtras<{
@@ -11119,6 +11507,7 @@ interface GleanImpl {
flow_id?: string;
memory_bytes?: string;
model_id?: string;
+ system_memory_mb?: string;
token_count?: string;
wall_milliseconds?: string;
}>;
@@ -11150,6 +11539,7 @@ interface GleanImpl {
| "about-inference"
| "autofill-ml"
| "default-engine"
+ | "link-preview"
| "ml-suggest-intent"
| "ml-suggest-ner"
| "pdfjs"
@@ -11160,8 +11550,7 @@ interface GleanImpl {
| "smart-tab-embedding-engine"
| "smart-tab-topic-engine"
| "title-generation-engine"
- | "webextension"
- | "wllamapreview",
+ | "webextension",
GleanTimingDistribution
>;
runInferenceSuccessFlow: GleanEventWithExtras<{
@@ -11268,8 +11657,9 @@ interface GleanImpl {
}>;
isReady: GleanEventNoExtras;
migration: GleanEventWithExtras<{
- enrollments?: string;
+ duration?: string;
error_reason?: string;
+ is_first_startup?: string;
migration_id?: string;
success?: string;
}>;
@@ -11823,6 +12213,7 @@ interface GleanImpl {
had_errors?: string;
metric_version?: string;
number_of_logins_migrated?: string;
+ number_of_logins_quarantined?: string;
number_of_logins_to_migrate?: string;
run_id?: string;
}>;
@@ -11834,19 +12225,12 @@ interface GleanImpl {
}>;
rustWriteFailure: GleanEventWithExtras<{
error_message?: string;
- form_action_origin_error?: string;
- form_action_origin_fixable?: string;
- has_empty_password?: string;
- has_ftp_origin?: string;
- has_punycode_form_action_origin?: string;
- has_punycode_origin?: string;
- has_username_line_break?: string;
- has_username_nul?: string;
+ has_form_action_origin?: string;
+ has_http_realm?: string;
+ has_origin?: string;
is_deleted?: string;
metric_version?: string;
operation?: string;
- origin_error?: string;
- origin_fixable?: string;
poisoned?: string;
run_id?: string;
time_created?: string;
@@ -12028,7 +12412,14 @@ interface GleanImpl {
pdfjsOrganize: {
action: Record<
- "copy" | "cut" | "delete" | "export_selected" | "move" | "paste" | "save",
+ | "copy"
+ | "cut"
+ | "delete"
+ | "export_selected"
+ | "merge"
+ | "move"
+ | "paste"
+ | "save",
GleanCounter
>;
};
@@ -12055,6 +12446,7 @@ interface GleanImpl {
pictureinpicture: {
backgroundTabPlayingDuration: GleanTimingDistribution;
+ closedMethodApi: GleanEventNoExtras;
closedMethodBrowserCrash: GleanEventNoExtras;
closedMethodCloseButton: GleanEventNoExtras;
closedMethodClosePlayerShortcut: GleanEventNoExtras;
@@ -12081,6 +12473,11 @@ interface GleanImpl {
foregroundTabPlayingDuration: GleanTimingDistribution;
fullscreenPlayer: GleanEventWithExtras<{ enter?: string; value?: string }>;
mostConcurrentPlayers: GleanQuantity;
+ openedMethodApi: GleanEventWithExtras<{
+ callout?: string;
+ disableDialog?: string;
+ firstTimeToggle?: string;
+ }>;
openedMethodAutoPip: GleanEventWithExtras<{
callout?: string;
disableDialog?: string;
@@ -12139,6 +12536,8 @@ interface GleanImpl {
databaseFilesize: GleanMemoryDistribution;
databaseSemanticHistoryDefragmentTime: GleanTimingDistribution;
databaseSemanticHistoryFilesize: GleanMemoryDistribution;
+ databaseSemanticHistoryNumEntries: GleanQuantity;
+ databaseSemanticHistoryReindexTime: GleanTimingDistribution;
databaseSemanticHistoryWastedPercentage: GleanQuantity;
expirationStepsToClean: GleanCustomDistribution;
exportTohtml: GleanTimingDistribution;
@@ -12154,6 +12553,7 @@ interface GleanImpl {
previousdayVisits: GleanQuantity;
semanticHistoryChunkCalculateTime: GleanTimingDistribution;
semanticHistoryFindChunksTime: GleanTimingDistribution;
+ semanticHistoryIndexingStopped: Record<"failsafe" | "soft", GleanCounter>;
semanticHistoryMaxChunksCount: GleanQuantity;
sortedBookmarksPerc: GleanCustomDistribution;
sponsoredVisitNoTriggeringUrl: GleanCounter;
@@ -14238,6 +14638,19 @@ interface GleanImpl {
secureOpensearchUpdateCount: GleanQuantity;
};
+ searchCounts: {
+ hiddenEngines: Record<"disabled" | "oneOff", GleanQuantity>;
+ totals: Record<
+ | "addon"
+ | "appProvidedConfig"
+ | "openSearch"
+ | "policy"
+ | "user"
+ | "userInstalledConfig",
+ GleanQuantity
+ >;
+ };
+
searchEngineDefault: {
changed: GleanEventWithExtras<{
change_reason?: string;
@@ -14586,6 +14999,8 @@ interface GleanImpl {
urlclassifier: {
asyncClassifylocalTime: GleanTimingDistribution;
+ checkChannelHelperTime: GleanTimingDistribution;
+ checkChannelHelperWorkerTime: GleanTimingDistribution;
clCheckTime: GleanTimingDistribution;
clKeyedUpdateTime: Record;
completeRemoteStatus2: Record;
@@ -14841,8 +15256,11 @@ interface GleanImpl {
securityUiNeterror: {
loadAboutneterror: GleanEventWithExtras<{
+ captive_portal_state?: string;
channel_status?: string;
is_frame?: string;
+ no_connectivity?: string;
+ trr_only?: string;
value?: string;
}>;
};
@@ -14876,6 +15294,10 @@ interface GleanImpl {
deleteTasksTime: GleanQuantity;
elapsed: GleanQuantity;
newProfile: GleanBoolean;
+ nimbusInitTime: GleanQuantity;
+ nimbusLoaderInitTime: GleanQuantity;
+ nimbusManagerInitTime: GleanQuantity;
+ nimbusStoreInitTime: GleanQuantity;
normandyInitTime: GleanQuantity;
statusCode: GleanQuantity;
};
@@ -14931,6 +15353,11 @@ interface GleanImpl {
previousBrowser: GleanString;
};
+ systemPin: {
+ isTaskbarPinned: GleanString;
+ previousIsTaskbarPinned: GleanString;
+ };
+
addons: {
activeAddons: GleanObject;
activeGMPlugins: GleanObject;
@@ -14948,6 +15375,7 @@ interface GleanImpl {
install_id?: string;
install_origins?: string;
num_strings?: string;
+ site_permission?: string;
source?: string;
source_method?: string;
step?: string;
@@ -14972,7 +15400,10 @@ interface GleanImpl {
source?: string;
source_method?: string;
}>;
- reportSuspiciousSite: GleanEventWithExtras<{ suspicious_site?: string }>;
+ reportSuspiciousSite: GleanEventWithExtras<{
+ permission_type?: string;
+ suspicious_site?: string;
+ }>;
startupTimeline: Record<
| "AMI_startup_begin"
| "AMI_startup_end"
@@ -14991,6 +15422,7 @@ interface GleanImpl {
install_id?: string;
install_origins?: string;
num_strings?: string;
+ site_permission?: string;
source?: string;
source_method?: string;
step?: string;
@@ -15685,6 +16117,7 @@ interface GleanImpl {
firstUseDate: GleanQuantity;
recoveredFromBackup: GleanQuantity;
resetDate: GleanQuantity;
+ source: GleanString;
};
e10s: {
@@ -15709,6 +16142,7 @@ interface GleanImpl {
widget: {
imeNameOnMac: Record;
macApplicationMenuOpened: GleanCounter;
+ rosettaStatus: GleanBoolean;
desktopEnvironment: GleanString;
gtkVersion: GleanString;
imeNameOnLinux: Record;
@@ -15738,23 +16172,23 @@ interface GleanImpl {
};
cycleCollector: {
- asyncSnowWhiteFreeing: GleanTimingDistribution;
+ asyncSnowWhiteFreeing: Record;
collected: GleanCustomDistribution;
- deferredFinalizeAsync: GleanTimingDistribution;
+ deferredFinalizeAsync: Record;
finishIgc: Record<"false" | "true", GleanCounter>;
- forgetSkippableMax: GleanTimingDistribution;
- full: GleanTimingDistribution;
- maxPause: GleanTimingDistribution;
+ forgetSkippableMax: Record;
+ full: Record;
+ maxPause: Record;
needGc: Record<"false" | "true", GleanCounter>;
sliceDuringIdle: GleanCustomDistribution;
syncSkippable: Record<"false" | "true", GleanCounter>;
- time: GleanTimingDistribution;
- timeBetween: GleanTimingDistribution;
+ time: Record;
+ timeBetween: Record;
visitedGced: GleanCustomDistribution;
visitedRefCounted: GleanCustomDistribution;
workerCollected: GleanCustomDistribution;
workerNeedGc: Record<"false" | "true", GleanCounter>;
- workerTime: GleanTimingDistribution;
+ workerTime: Record;
workerVisitedGced: GleanCustomDistribution;
workerVisitedRefCounted: GleanCustomDistribution;
};
@@ -15863,8 +16297,6 @@ interface GleanPingsImpl {
profileRestore: GleanPingNoReason;
newtab: GleanPingWithReason<"component_init" | "newtab_session_end">;
newtabContent: GleanPingWithReason<"component_init" | "newtab_session_end">;
- spoc: GleanPingWithReason<"click" | "impression" | "save">;
- topSites: GleanPingNoReason;
profiles: GleanPingNoReason;
searchWith: GleanPingNoReason;
serpCategorization: GleanPingWithReason<
@@ -15873,13 +16305,12 @@ interface GleanPingsImpl {
quickSuggest: GleanPingNoReason;
quickSuggestDeletionRequest: GleanPingNoReason;
urlbarKeywordExposure: GleanPingNoReason;
- dataLeakBlocker: GleanPingNoReason;
contextIdDeletionRequest: GleanPingNoReason;
prototypeNoCodeEvents: GleanPingNoReason;
pageload: GleanPingWithReason<"startup" | "threshold">;
pageloadBaseDomain: GleanPingWithReason<"pageload">;
useCounters: GleanPingWithReason<"app_shutdown_confirmed" | "idle_startup">;
- unexpectedScriptLoad: GleanPingNoReason;
+ contentDecodingError: GleanPingWithReason<"error">;
localNetworkAccess: GleanPingNoReason;
urlClassifierHarmfulAddon: GleanPingNoReason;
fxAccounts: GleanPingWithReason<"active" | "dirty_startup" | "inactive">;
@@ -15909,6 +16340,7 @@ interface GleanPingsImpl {
addons: GleanPingWithReason<"daily" | "startup" | "updated">;
backgroundUpdate: GleanPingWithReason<"backgroundupdate_task">;
update: GleanPingWithReason<"ready" | "success">;
+ newProfile: GleanPingNoReason;
}
type GleanEventNoExtras = Omit & { record(_?: never) };
diff --git a/src/zen/@types/lib.gecko.linux.d.ts b/src/zen/@types/lib.gecko.linux.d.ts
index df409e2c4..133c12879 100644
--- a/src/zen/@types/lib.gecko.linux.d.ts
+++ b/src/zen/@types/lib.gecko.linux.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from source XPCOM .idl files.
@@ -8,7 +5,7 @@
*/
declare global {
- // https://searchfox.org/mozilla-central/source/browser/components/shell/nsIGNOMEShellService.idl
+ // https://searchfox.org/firefox-main/source/browser/components/shell/nsIGNOMEShellService.idl
interface nsIGNOMEShellService extends nsIShellService {
readonly canSetDesktopBackground: boolean;
@@ -17,14 +14,14 @@ declare global {
setGSettingsString(aScheme: string, aKey: string, aValue: string): void;
}
- // https://searchfox.org/mozilla-central/source/browser/components/shell/nsIOpenTabsProvider.idl
+ // https://searchfox.org/firefox-main/source/browser/components/shell/nsIOpenTabsProvider.idl
interface nsIOpenTabsProvider extends nsISupports {
getOpenTabs(): string[];
switchToOpenTab(url: string): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIApplicationChooser.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIApplicationChooser.idl
type nsIApplicationChooserFinishedCallback = Callable<{
done(handlerApp: nsIHandlerApp): void;
@@ -38,13 +35,13 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIGtkTaskbarProgress.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIGtkTaskbarProgress.idl
interface nsIGtkTaskbarProgress extends nsITaskbarProgress {
setPrimaryWindow(aWindow: mozIDOMWindowProxy): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarProgress.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarProgress.idl
interface nsITaskbarProgress extends nsISupports {
readonly STATE_NO_PROGRESS?: 0;
diff --git a/src/zen/@types/lib.gecko.modules.d.ts b/src/zen/@types/lib.gecko.modules.d.ts
index 45173445b..03a2108d5 100644
--- a/src/zen/@types/lib.gecko.modules.d.ts
+++ b/src/zen/@types/lib.gecko.modules.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated by running "mach ts paths".
@@ -8,6 +5,7 @@
export interface Modules {
"chrome://browser/content/aboutlogins/aboutLoginsUtils.mjs": typeof import("chrome://browser/content/aboutlogins/aboutLoginsUtils.mjs");
+ "chrome://browser/content/aiwindow/modules/ChatMarkdownParser.mjs": typeof import("chrome://browser/content/aiwindow/modules/ChatMarkdownParser.mjs");
"chrome://browser/content/aiwindow/modules/TokenStreamParser.mjs": typeof import("chrome://browser/content/aiwindow/modules/TokenStreamParser.mjs");
"chrome://browser/content/asrouter/components/menu-message.mjs": typeof import("chrome://browser/content/asrouter/components/menu-message.mjs");
"chrome://browser/content/backup/backup-constants.mjs": typeof import("chrome://browser/content/backup/backup-constants.mjs");
@@ -15,28 +13,48 @@ export interface Modules {
"chrome://browser/content/genai/content/link-preview-card.mjs": typeof import("chrome://browser/content/genai/content/link-preview-card.mjs");
"chrome://browser/content/genai/content/model-optin.mjs": typeof import("chrome://browser/content/genai/content/model-optin.mjs");
"chrome://browser/content/ipprotection/ipprotection-constants.mjs": typeof import("chrome://browser/content/ipprotection/ipprotection-constants.mjs");
+ "chrome://browser/content/ipprotection/ipprotection-utils.mjs": typeof import("chrome://browser/content/ipprotection/ipprotection-utils.mjs");
"chrome://browser/content/migration/migration-wizard-constants.mjs": typeof import("chrome://browser/content/migration/migration-wizard-constants.mjs");
+ "chrome://browser/content/multilineeditor/prosemirror.bundle.mjs": typeof import("chrome://browser/content/multilineeditor/prosemirror.bundle.mjs");
"chrome://browser/content/nsContextMenu.sys.mjs": typeof import("chrome://browser/content/nsContextMenu.sys.mjs");
+ "chrome://browser/content/preferences/config/LegacyPaneMappings.mjs": typeof import("chrome://browser/content/preferences/config/LegacyPaneMappings.mjs");
"chrome://browser/content/preferences/config/SettingGroupManager.mjs": typeof import("chrome://browser/content/preferences/config/SettingGroupManager.mjs");
"chrome://browser/content/preferences/config/SettingPaneManager.mjs": typeof import("chrome://browser/content/preferences/config/SettingPaneManager.mjs");
+ "chrome://browser/content/preferences/config/about-firefox.mjs": typeof import("chrome://browser/content/preferences/config/about-firefox.mjs");
+ "chrome://browser/content/preferences/config/accessibility.mjs": typeof import("chrome://browser/content/preferences/config/accessibility.mjs");
+ "chrome://browser/content/preferences/config/account-sync.mjs": typeof import("chrome://browser/content/preferences/config/account-sync.mjs");
+ "chrome://browser/content/preferences/config/appearance.mjs": typeof import("chrome://browser/content/preferences/config/appearance.mjs");
+ "chrome://browser/content/preferences/config/downloads.mjs": typeof import("chrome://browser/content/preferences/config/downloads.mjs");
"chrome://browser/content/preferences/config/home-startup.mjs": typeof import("chrome://browser/content/preferences/config/home-startup.mjs");
+ "chrome://browser/content/preferences/config/languages.mjs": typeof import("chrome://browser/content/preferences/config/languages.mjs");
+ "chrome://browser/content/preferences/config/passwords-autofill.mjs": typeof import("chrome://browser/content/preferences/config/passwords-autofill.mjs");
+ "chrome://browser/content/preferences/config/privacy.mjs": typeof import("chrome://browser/content/preferences/config/privacy.mjs");
+ "chrome://browser/content/preferences/config/search.mjs": typeof import("chrome://browser/content/preferences/config/search.mjs");
+ "chrome://browser/content/preferences/config/tabs-browsing.mjs": typeof import("chrome://browser/content/preferences/config/tabs-browsing.mjs");
"chrome://browser/content/screenshots/fileHelpers.mjs": typeof import("chrome://browser/content/screenshots/fileHelpers.mjs");
"chrome://browser/content/sidebar/sidebar-main.mjs": typeof import("chrome://browser/content/sidebar/sidebar-main.mjs");
"chrome://browser/content/sidebar/sidebar-panel-header.mjs": typeof import("chrome://browser/content/sidebar/sidebar-panel-header.mjs");
"chrome://browser/content/sidebar/sidebar-permissions-ui.mjs": typeof import("chrome://browser/content/sidebar/sidebar-permissions-ui.mjs");
"chrome://browser/content/sidebar/sidebar-permissions.mjs": typeof import("chrome://browser/content/sidebar/sidebar-permissions.mjs");
+ "chrome://browser/content/tabbrowser/tab-groups-list.mjs": typeof import("chrome://browser/content/tabbrowser/tab-groups-list.mjs");
"chrome://browser/content/tabbrowser/tab-hover-preview.mjs": typeof import("chrome://browser/content/tabbrowser/tab-hover-preview.mjs");
"chrome://browser/content/translations/TranslationsPanelShared.sys.mjs": typeof import("chrome://browser/content/translations/TranslationsPanelShared.sys.mjs");
"chrome://browser/content/urlbar/SmartbarInput.mjs": typeof import("chrome://browser/content/urlbar/SmartbarInput.mjs");
"chrome://browser/content/urlbar/SmartbarInputController.mjs": typeof import("chrome://browser/content/urlbar/SmartbarInputController.mjs");
+ "chrome://browser/content/urlbar/UrlbarEventBufferer.mjs": typeof import("chrome://browser/content/urlbar/UrlbarEventBufferer.mjs");
"chrome://browser/content/urlbar/UrlbarInput.mjs": typeof import("chrome://browser/content/urlbar/UrlbarInput.mjs");
+ "chrome://browser/content/urlbar/UrlbarResult.mjs": typeof import("chrome://browser/content/urlbar/UrlbarResult.mjs");
+ "chrome://browser/content/urlbar/UrlbarShared.mjs": typeof import("chrome://browser/content/urlbar/UrlbarShared.mjs");
"chrome://browser/content/webrtc/webrtc-preview.mjs": typeof import("chrome://browser/content/webrtc/webrtc-preview.mjs");
"chrome://devtools-startup/content/DevToolsShim.sys.mjs": typeof import("chrome://devtools-startup/content/DevToolsShim.sys.mjs");
"chrome://formautofill/content/manageDialog.mjs": typeof import("chrome://formautofill/content/manageDialog.mjs");
+ "chrome://global/content/ScrollOffsets.mjs": typeof import("chrome://global/content/ScrollOffsets.mjs");
"chrome://global/content/aboutLogging/profileStorage.mjs": typeof import("chrome://global/content/aboutLogging/profileStorage.mjs");
"chrome://global/content/bindings/colorpicker-common.mjs": typeof import("chrome://global/content/bindings/colorpicker-common.mjs");
"chrome://global/content/certviewer/certDecoder.mjs": typeof import("chrome://global/content/certviewer/certDecoder.mjs");
"chrome://global/content/elements/browser-custom-element.mjs": typeof import("chrome://global/content/elements/browser-custom-element.mjs");
+ "chrome://global/content/errors/error-lookup.mjs": typeof import("chrome://global/content/errors/error-lookup.mjs");
+ "chrome://global/content/errors/error-registry.mjs": typeof import("chrome://global/content/errors/error-registry.mjs");
"chrome://global/content/ml/BlockWords.sys.mjs": typeof import("chrome://global/content/ml/BlockWords.sys.mjs");
"chrome://global/content/ml/ClusterAlgos.sys.mjs": typeof import("chrome://global/content/ml/ClusterAlgos.sys.mjs");
"chrome://global/content/ml/EmbeddingsGenerator.sys.mjs": typeof import("chrome://global/content/ml/EmbeddingsGenerator.sys.mjs");
@@ -73,6 +91,7 @@ export interface Modules {
"chrome://mochikit/content/tests/SimpleTest/DragTargetParentContext.sys.mjs": typeof import("chrome://mochikit/content/tests/SimpleTest/DragTargetParentContext.sys.mjs");
"chrome://mochitests/content/browser/accessible/tests/browser/Common.sys.mjs": typeof import("chrome://mochitests/content/browser/accessible/tests/browser/Common.sys.mjs");
"chrome://mochitests/content/browser/accessible/tests/browser/Layout.sys.mjs": typeof import("chrome://mochitests/content/browser/accessible/tests/browser/Layout.sys.mjs");
+ "chrome://mochitests/content/browser/browser/components/aiwindow/models/tests/browser_eval/tests/basic_quality.sys.mjs": typeof import("chrome://mochitests/content/browser/browser/components/aiwindow/models/tests/browser_eval/tests/basic_quality.sys.mjs");
"chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/examples/worker-esm-dep.mjs": typeof import("chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/examples/worker-esm-dep.mjs");
"chrome://mochitests/content/browser/devtools/shared/test-helpers/trace-objects.sys.mjs": typeof import("chrome://mochitests/content/browser/devtools/shared/test-helpers/trace-objects.sys.mjs");
"chrome://mochitests/content/browser/js/xpconnect/tests/browser/worker_source.mjs": typeof import("chrome://mochitests/content/browser/js/xpconnect/tests/browser/worker_source.mjs");
@@ -113,6 +132,7 @@ export interface Modules {
"chrome://remote/content/shared/AsyncQueue.sys.mjs": typeof import("chrome://remote/content/shared/AsyncQueue.sys.mjs");
"chrome://remote/content/shared/BiMap.sys.mjs": typeof import("chrome://remote/content/shared/BiMap.sys.mjs");
"chrome://remote/content/shared/Browser.sys.mjs": typeof import("chrome://remote/content/shared/Browser.sys.mjs");
+ "chrome://remote/content/shared/BrowsingContextUtils.sys.mjs": typeof import("chrome://remote/content/shared/BrowsingContextUtils.sys.mjs");
"chrome://remote/content/shared/Capture.sys.mjs": typeof import("chrome://remote/content/shared/Capture.sys.mjs");
"chrome://remote/content/shared/ChallengeHeaderParser.sys.mjs": typeof import("chrome://remote/content/shared/ChallengeHeaderParser.sys.mjs");
"chrome://remote/content/shared/DOM.sys.mjs": typeof import("chrome://remote/content/shared/DOM.sys.mjs");
@@ -167,7 +187,6 @@ export interface Modules {
"chrome://remote/content/shared/messagehandler/WindowGlobalMessageHandler.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/WindowGlobalMessageHandler.sys.mjs");
"chrome://remote/content/shared/messagehandler/sessiondata/SessionData.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/sessiondata/SessionData.sys.mjs");
"chrome://remote/content/shared/messagehandler/sessiondata/SessionDataReader.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/sessiondata/SessionDataReader.sys.mjs");
- "chrome://remote/content/shared/messagehandler/transports/BrowsingContextUtils.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/transports/BrowsingContextUtils.sys.mjs");
"chrome://remote/content/shared/messagehandler/transports/RootTransport.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/transports/RootTransport.sys.mjs");
"chrome://remote/content/shared/messagehandler/transports/js-window-actors/MessageHandlerFrameActor.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/transports/js-window-actors/MessageHandlerFrameActor.sys.mjs");
"chrome://remote/content/shared/messagehandler/transports/js-window-actors/MessageHandlerFrameChild.sys.mjs": typeof import("chrome://remote/content/shared/messagehandler/transports/js-window-actors/MessageHandlerFrameChild.sys.mjs");
@@ -185,7 +204,9 @@ export interface Modules {
"chrome://remote/content/shared/webdriver/URLPattern.sys.mjs": typeof import("chrome://remote/content/shared/webdriver/URLPattern.sys.mjs");
"chrome://remote/content/shared/webdriver/UserPromptHandler.sys.mjs": typeof import("chrome://remote/content/shared/webdriver/UserPromptHandler.sys.mjs");
"chrome://remote/content/shared/webdriver/process-actors/WebDriverProcessDataParent.sys.mjs": typeof import("chrome://remote/content/shared/webdriver/process-actors/WebDriverProcessDataParent.sys.mjs");
+ "chrome://remote/content/webdriver-bidi/ConsoleMessageFormatter.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/ConsoleMessageFormatter.sys.mjs");
"chrome://remote/content/webdriver-bidi/DownloadBehaviorManager.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/DownloadBehaviorManager.sys.mjs");
+ "chrome://remote/content/webdriver-bidi/HelperAppDialogHandler.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/HelperAppDialogHandler.sys.mjs");
"chrome://remote/content/webdriver-bidi/NewSessionHandler.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/NewSessionHandler.sys.mjs");
"chrome://remote/content/webdriver-bidi/ProxyPerUserContextManager.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/ProxyPerUserContextManager.sys.mjs");
"chrome://remote/content/webdriver-bidi/RemoteValue.sys.mjs": typeof import("chrome://remote/content/webdriver-bidi/RemoteValue.sys.mjs");
@@ -224,11 +245,17 @@ export interface Modules {
"moz-src:///browser/components/StartupTelemetry.sys.mjs": typeof import("moz-src:///browser/components/StartupTelemetry.sys.mjs");
"moz-src:///browser/components/aiwindow/models/Chat.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/Chat.sys.mjs");
"moz-src:///browser/components/aiwindow/models/ChatUtils.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/ChatUtils.sys.mjs");
- "moz-src:///browser/components/aiwindow/models/CitationParser.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/CitationParser.sys.mjs");
"moz-src:///browser/components/aiwindow/models/ConversationSuggestions.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/ConversationSuggestions.sys.mjs");
"moz-src:///browser/components/aiwindow/models/IntentClassifier.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/IntentClassifier.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/PreferencesNavMap.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/PreferencesNavMap.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/PromptLoader.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/PromptLoader.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/PromptOptimizer.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/PromptOptimizer.sys.mjs");
"moz-src:///browser/components/aiwindow/models/SearchBrowsingHistory.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/SearchBrowsingHistory.sys.mjs");
"moz-src:///browser/components/aiwindow/models/SearchBrowsingHistoryDomainBoost.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/SearchBrowsingHistoryDomainBoost.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/SecurityProperties.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/SecurityProperties.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/SmartWindowNavigationInfo.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/SmartWindowNavigationInfo.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/TelemetryManager.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/TelemetryManager.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/TelemetryUtils.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/TelemetryUtils.sys.mjs");
"moz-src:///browser/components/aiwindow/models/TitleGeneration.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/TitleGeneration.sys.mjs");
"moz-src:///browser/components/aiwindow/models/Tools.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/Tools.sys.mjs");
"moz-src:///browser/components/aiwindow/models/Utils.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/Utils.sys.mjs");
@@ -241,19 +268,27 @@ export interface Modules {
"moz-src:///browser/components/aiwindow/models/memories/MemoriesHistorySource.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/memories/MemoriesHistorySource.sys.mjs");
"moz-src:///browser/components/aiwindow/models/memories/MemoriesManager.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/memories/MemoriesManager.sys.mjs");
"moz-src:///browser/components/aiwindow/models/memories/MemoriesSchedulers.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/memories/MemoriesSchedulers.sys.mjs");
+ "moz-src:///browser/components/aiwindow/models/memories/MemoriesSessions.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/memories/MemoriesSessions.sys.mjs");
"moz-src:///browser/components/aiwindow/models/memories/SensitiveInfoDetector.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/models/memories/SensitiveInfoDetector.sys.mjs");
"moz-src:///browser/components/aiwindow/services/MemoryStore.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/services/MemoryStore.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/actors/AIChatContentChild.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/actors/AIChatContentChild.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/AIWindow.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindow.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/AIWindowAccountAuth.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindowAccountAuth.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/AIWindowConstants.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindowConstants.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/AIWindowMenu.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindowMenu.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/AIWindowTabStatesManager.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindowTabStatesManager.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/AIWindowUI.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/AIWindowUI.sys.mjs");
- "moz-src:///browser/components/aiwindow/ui/modules/ChatConstants.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatConstants.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/ChatConversation.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatConversation.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/ChatEnums.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatEnums.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/ChatMessage.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatMessage.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/ChatStore.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatStore.sys.mjs");
"moz-src:///browser/components/aiwindow/ui/modules/ChatUtils.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ChatUtils.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/FeedbackModal.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/FeedbackModal.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/SmartWindowTelemetry.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/SmartWindowTelemetry.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/TabManagementService.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/TabManagementService.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/ToolActionLog.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ToolActionLog.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/ToolUI.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ToolUI.sys.mjs");
+ "moz-src:///browser/components/aiwindow/ui/modules/ToolUITelemetry.sys.mjs": typeof import("moz-src:///browser/components/aiwindow/ui/modules/ToolUITelemetry.sys.mjs");
"moz-src:///browser/components/attribution/AttributionCode.sys.mjs": typeof import("moz-src:///browser/components/attribution/AttributionCode.sys.mjs");
"moz-src:///browser/components/attribution/MacAttribution.sys.mjs": typeof import("moz-src:///browser/components/attribution/MacAttribution.sys.mjs");
"moz-src:///browser/components/contentanalysis/content/ContentAnalysis.sys.mjs": typeof import("moz-src:///browser/components/contentanalysis/content/ContentAnalysis.sys.mjs");
@@ -265,6 +300,7 @@ export interface Modules {
"moz-src:///browser/components/customizableui/SearchWidgetTracker.sys.mjs": typeof import("moz-src:///browser/components/customizableui/SearchWidgetTracker.sys.mjs");
"moz-src:///browser/components/customizableui/ToolbarContextMenu.sys.mjs": typeof import("moz-src:///browser/components/customizableui/ToolbarContextMenu.sys.mjs");
"moz-src:///browser/components/customizableui/ToolbarDropHandler.sys.mjs": typeof import("moz-src:///browser/components/customizableui/ToolbarDropHandler.sys.mjs");
+ "moz-src:///browser/components/customkeys/CustomKeys.sys.mjs": typeof import("moz-src:///browser/components/customkeys/CustomKeys.sys.mjs");
"moz-src:///browser/components/downloads/DownloadSpamProtection.sys.mjs": typeof import("moz-src:///browser/components/downloads/DownloadSpamProtection.sys.mjs");
"moz-src:///browser/components/downloads/DownloadsCommon.sys.mjs": typeof import("moz-src:///browser/components/downloads/DownloadsCommon.sys.mjs");
"moz-src:///browser/components/downloads/DownloadsMacFinderProgress.sys.mjs": typeof import("moz-src:///browser/components/downloads/DownloadsMacFinderProgress.sys.mjs");
@@ -274,25 +310,12 @@ export interface Modules {
"moz-src:///browser/components/genai/LinkPreview.sys.mjs": typeof import("moz-src:///browser/components/genai/LinkPreview.sys.mjs");
"moz-src:///browser/components/genai/LinkPreviewModel.sys.mjs": typeof import("moz-src:///browser/components/genai/LinkPreviewModel.sys.mjs");
"moz-src:///browser/components/genai/PageAssist.sys.mjs": typeof import("moz-src:///browser/components/genai/PageAssist.sys.mjs");
- "moz-src:///browser/components/ipprotection/GuardianClient.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/GuardianClient.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPAutoRestore.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPAutoRestore.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPChannelFilter.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPChannelFilter.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPEnrollAndEntitleManager.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPEnrollAndEntitleManager.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPExceptionsManager.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPExceptionsManager.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPNetworkErrorObserver.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPNetworkErrorObserver.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPNetworkUtils.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPNetworkUtils.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPNimbusHelper.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPNimbusHelper.sys.mjs");
"moz-src:///browser/components/ipprotection/IPPOnboardingMessageHelper.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPOnboardingMessageHelper.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPProxyManager.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPProxyManager.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPSignInWatcher.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPSignInWatcher.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPPStartupCache.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPStartupCache.sys.mjs");
+ "moz-src:///browser/components/ipprotection/IPPUsageHelper.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPPUsageHelper.sys.mjs");
"moz-src:///browser/components/ipprotection/IPProtection.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtection.sys.mjs");
"moz-src:///browser/components/ipprotection/IPProtectionAlertManager.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionAlertManager.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPProtectionHelpers.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionHelpers.sys.mjs");
"moz-src:///browser/components/ipprotection/IPProtectionInfobarManager.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionInfobarManager.sys.mjs");
"moz-src:///browser/components/ipprotection/IPProtectionPanel.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionPanel.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPProtectionServerlist.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionServerlist.sys.mjs");
- "moz-src:///browser/components/ipprotection/IPProtectionService.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionService.sys.mjs");
"moz-src:///browser/components/ipprotection/IPProtectionToolbarButton.sys.mjs": typeof import("moz-src:///browser/components/ipprotection/IPProtectionToolbarButton.sys.mjs");
"moz-src:///browser/components/mozcachedohttp/MozCachedOHTTPProtocolHandler.sys.mjs": typeof import("moz-src:///browser/components/mozcachedohttp/MozCachedOHTTPProtocolHandler.sys.mjs");
"moz-src:///browser/components/newtab/AboutNewTabComponents.sys.mjs": typeof import("moz-src:///browser/components/newtab/AboutNewTabComponents.sys.mjs");
@@ -308,9 +331,12 @@ export interface Modules {
"moz-src:///browser/components/places/PlacesUIUtils.sys.mjs": typeof import("moz-src:///browser/components/places/PlacesUIUtils.sys.mjs");
"moz-src:///browser/components/privatebrowsing/ResetPBMPanel.sys.mjs": typeof import("moz-src:///browser/components/privatebrowsing/ResetPBMPanel.sys.mjs");
"moz-src:///browser/components/protections/ContentBlockingPrefs.sys.mjs": typeof import("moz-src:///browser/components/protections/ContentBlockingPrefs.sys.mjs");
+ "moz-src:///browser/components/protections/PrivacyMetricsService.sys.mjs": typeof import("moz-src:///browser/components/protections/PrivacyMetricsService.sys.mjs");
"moz-src:///browser/components/qrcode/QRCodeGenerator.sys.mjs": typeof import("moz-src:///browser/components/qrcode/QRCodeGenerator.sys.mjs");
"moz-src:///browser/components/qrcode/QRCodeWorker.sys.mjs": typeof import("moz-src:///browser/components/qrcode/QRCodeWorker.sys.mjs");
"moz-src:///browser/components/reportbrokensite/ReportBrokenSite.sys.mjs": typeof import("moz-src:///browser/components/reportbrokensite/ReportBrokenSite.sys.mjs");
+ "moz-src:///browser/components/screenshots/ScreenshotsOverlayChild.sys.mjs": typeof import("moz-src:///browser/components/screenshots/ScreenshotsOverlayChild.sys.mjs");
+ "moz-src:///browser/components/screenshots/ScreenshotsUtils.sys.mjs": typeof import("moz-src:///browser/components/screenshots/ScreenshotsUtils.sys.mjs");
"moz-src:///browser/components/search/BrowserSearchTelemetry.sys.mjs": typeof import("moz-src:///browser/components/search/BrowserSearchTelemetry.sys.mjs");
"moz-src:///browser/components/search/OpenSearchManager.sys.mjs": typeof import("moz-src:///browser/components/search/OpenSearchManager.sys.mjs");
"moz-src:///browser/components/search/SERPCategorization.sys.mjs": typeof import("moz-src:///browser/components/search/SERPCategorization.sys.mjs");
@@ -340,11 +366,10 @@ export interface Modules {
"moz-src:///browser/components/urlbar/MerinoClient.sys.mjs": typeof import("moz-src:///browser/components/urlbar/MerinoClient.sys.mjs");
"moz-src:///browser/components/urlbar/QuickActionsLoaderDefault.sys.mjs": typeof import("moz-src:///browser/components/urlbar/QuickActionsLoaderDefault.sys.mjs");
"moz-src:///browser/components/urlbar/QuickSuggest.sys.mjs": typeof import("moz-src:///browser/components/urlbar/QuickSuggest.sys.mjs");
- "moz-src:///browser/components/urlbar/SearchModeSwitcher.sys.mjs": typeof import("moz-src:///browser/components/urlbar/SearchModeSwitcher.sys.mjs");
"moz-src:///browser/components/urlbar/SmartbarMentionsPanelSearch.sys.mjs": typeof import("moz-src:///browser/components/urlbar/SmartbarMentionsPanelSearch.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarController.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarController.sys.mjs");
- "moz-src:///browser/components/urlbar/UrlbarEventBufferer.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarEventBufferer.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarPrefs.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarPrefs.sys.mjs");
+ "moz-src:///browser/components/urlbar/UrlbarProviderActionsSearchMode.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderActionsSearchMode.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarProviderAiChat.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderAiChat.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarProviderAutofill.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderAutofill.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarProviderCalculator.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderCalculator.sys.mjs");
@@ -363,24 +388,19 @@ export interface Modules {
"moz-src:///browser/components/urlbar/UrlbarProviderTopSites.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderTopSites.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarProviderUnitConversion.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProviderUnitConversion.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarProvidersManager.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarProvidersManager.sys.mjs");
- "moz-src:///browser/components/urlbar/UrlbarResult.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarResult.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarSearchOneOffs.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarSearchOneOffs.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarSearchTermsPersistence.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarSearchTermsPersistence.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarSearchUtils.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarSearchUtils.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarTokenizer.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarTokenizer.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs");
"moz-src:///browser/components/urlbar/UrlbarValueFormatter.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarValueFormatter.sys.mjs");
- "moz-src:///browser/components/urlbar/UrlbarView.sys.mjs": typeof import("moz-src:///browser/components/urlbar/UrlbarView.sys.mjs");
"moz-src:///browser/components/urlbar/private/AmpSuggestions.sys.mjs": typeof import("moz-src:///browser/components/urlbar/private/AmpSuggestions.sys.mjs");
"moz-src:///browser/components/urlbar/private/GeolocationUtils.sys.mjs": typeof import("moz-src:///browser/components/urlbar/private/GeolocationUtils.sys.mjs");
"moz-src:///browser/components/urlbar/private/MLSuggest.sys.mjs": typeof import("moz-src:///browser/components/urlbar/private/MLSuggest.sys.mjs");
- "moz-src:///browser/components/urlbar/private/SportsSuggestions.sys.mjs": typeof import("moz-src:///browser/components/urlbar/private/SportsSuggestions.sys.mjs");
"moz-src:///browser/components/urlbar/private/SuggestBackendRust.sys.mjs": typeof import("moz-src:///browser/components/urlbar/private/SuggestBackendRust.sys.mjs");
"moz-src:///browser/modules/CanvasPermissionPromptHelper.sys.mjs": typeof import("moz-src:///browser/modules/CanvasPermissionPromptHelper.sys.mjs");
"moz-src:///browser/modules/ContextId.sys.mjs": typeof import("moz-src:///browser/modules/ContextId.sys.mjs");
"moz-src:///browser/modules/PrivateBrowsingUI.sys.mjs": typeof import("moz-src:///browser/modules/PrivateBrowsingUI.sys.mjs");
- "moz-src:///browser/modules/UnexpectedScriptObserver.sys.mjs": typeof import("moz-src:///browser/modules/UnexpectedScriptObserver.sys.mjs");
- "moz-src:///browser/modules/WebAuthnPromptHelper.sys.mjs": typeof import("moz-src:///browser/modules/WebAuthnPromptHelper.sys.mjs");
"moz-src:///browser/themes/ToolbarIconColor.sys.mjs": typeof import("moz-src:///browser/themes/ToolbarIconColor.sys.mjs");
"moz-src:///dom/notification/MemoryNotificationDB.sys.mjs": typeof import("moz-src:///dom/notification/MemoryNotificationDB.sys.mjs");
"moz-src:///dom/notification/NotificationDB.sys.mjs": typeof import("moz-src:///dom/notification/NotificationDB.sys.mjs");
@@ -392,6 +412,30 @@ export interface Modules {
"moz-src:///toolkit/components/doh/DoHController.sys.mjs": typeof import("moz-src:///toolkit/components/doh/DoHController.sys.mjs");
"moz-src:///toolkit/components/doh/DoHHeuristics.sys.mjs": typeof import("moz-src:///toolkit/components/doh/DoHHeuristics.sys.mjs");
"moz-src:///toolkit/components/doh/TRRPerformance.sys.mjs": typeof import("moz-src:///toolkit/components/doh/TRRPerformance.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/GuardianTypes.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/GuardianTypes.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPAuthProvider.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPAutoRestore.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPAutoRestore.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPAutoStart.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPAutoStart.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPChannelFilter.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPChannelFilter.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPEarlyStartupFilter.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPEarlyStartupFilter.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPExceptionsManager.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPExceptionsManager.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPNetworkErrorObserver.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPNetworkErrorObserver.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPNetworkUtils.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPNetworkUtils.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPNimbusHelper.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPNimbusHelper.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPProxyManager.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPProxyManager.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPSessionPrefManager.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPSessionPrefManager.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPPStartupCache.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPPStartupCache.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPProtectionActivator.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPProtectionActivator.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPProtectionServerlist.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPProtectionServerlist.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/IPProtectionService.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/IPProtectionService.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/enterprise/IPPAlwaysOn.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/enterprise/IPPAlwaysOn.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/enterprise/IPPEnterpriseAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/enterprise/IPPEnterpriseAuthProvider.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/fxa/GuardianClient.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/fxa/GuardianClient.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/fxa/IPPAndroidAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/fxa/IPPAndroidAuthProvider.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/fxa/IPPFxaActivateAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/fxa/IPPFxaActivateAuthProvider.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/fxa/IPPFxaAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/fxa/IPPFxaAuthProvider.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/fxa/IPPSignInWatcher.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/fxa/IPPSignInWatcher.sys.mjs");
+ "moz-src:///toolkit/components/ipprotection/gpi/IPPGpiAuthProvider.sys.mjs": typeof import("moz-src:///toolkit/components/ipprotection/gpi/IPPGpiAuthProvider.sys.mjs");
"moz-src:///toolkit/components/pageextractor/DOMExtractor.sys.mjs": typeof import("moz-src:///toolkit/components/pageextractor/DOMExtractor.sys.mjs");
"moz-src:///toolkit/components/qrcode/encoder.mjs": typeof import("moz-src:///toolkit/components/qrcode/encoder.mjs");
"moz-src:///toolkit/components/reader/AboutReader.sys.mjs": typeof import("moz-src:///toolkit/components/reader/AboutReader.sys.mjs");
@@ -401,6 +445,7 @@ export interface Modules {
"moz-src:///toolkit/components/search/ConfigSearchEngine.sys.mjs": typeof import("moz-src:///toolkit/components/search/ConfigSearchEngine.sys.mjs");
"moz-src:///toolkit/components/search/OpenSearchEngine.sys.mjs": typeof import("moz-src:///toolkit/components/search/OpenSearchEngine.sys.mjs");
"moz-src:///toolkit/components/search/OpenSearchLoader.sys.mjs": typeof import("moz-src:///toolkit/components/search/OpenSearchLoader.sys.mjs");
+ "moz-src:///toolkit/components/search/OpenSearchParser.sys.mjs": typeof import("moz-src:///toolkit/components/search/OpenSearchParser.sys.mjs");
"moz-src:///toolkit/components/search/PolicySearchEngine.sys.mjs": typeof import("moz-src:///toolkit/components/search/PolicySearchEngine.sys.mjs");
"moz-src:///toolkit/components/search/SearchEngine.sys.mjs": typeof import("moz-src:///toolkit/components/search/SearchEngine.sys.mjs");
"moz-src:///toolkit/components/search/SearchEngineSelector.sys.mjs": typeof import("moz-src:///toolkit/components/search/SearchEngineSelector.sys.mjs");
@@ -423,6 +468,7 @@ export interface Modules {
"moz-src:///toolkit/modules/DateTimePickerPanel.sys.mjs": typeof import("moz-src:///toolkit/modules/DateTimePickerPanel.sys.mjs");
"moz-src:///toolkit/modules/FaviconUtils.sys.mjs": typeof import("moz-src:///toolkit/modules/FaviconUtils.sys.mjs");
"moz-src:///toolkit/modules/PrefUtils.sys.mjs": typeof import("moz-src:///toolkit/modules/PrefUtils.sys.mjs");
+ "moz-src:///toolkit/modules/WebAuthnPromptHelper.sys.mjs": typeof import("moz-src:///toolkit/modules/WebAuthnPromptHelper.sys.mjs");
"moz-src:///toolkit/profile/ProfilesDatastoreService.sys.mjs": typeof import("moz-src:///toolkit/profile/ProfilesDatastoreService.sys.mjs");
"resource:///actors/AboutLoginsParent.sys.mjs": typeof import("resource:///actors/AboutLoginsParent.sys.mjs");
"resource:///actors/AboutNewTabParent.sys.mjs": typeof import("resource:///actors/AboutNewTabParent.sys.mjs");
@@ -458,8 +504,8 @@ export interface Modules {
"resource:///modules/ChromeProfileMigrator.sys.mjs": typeof import("resource:///modules/ChromeProfileMigrator.sys.mjs");
"resource:///modules/ChromeWindowsLoginCrypto.sys.mjs": typeof import("resource:///modules/ChromeWindowsLoginCrypto.sys.mjs");
"resource:///modules/ContentCrashHandlers.sys.mjs": typeof import("resource:///modules/ContentCrashHandlers.sys.mjs");
- "resource:///modules/CustomKeys.sys.mjs": typeof import("resource:///modules/CustomKeys.sys.mjs");
"resource:///modules/Dedupe.sys.mjs": typeof import("resource:///modules/Dedupe.sys.mjs");
+ "resource:///modules/DefaultWindowsLaunchOnLogin.sys.mjs": typeof import("resource:///modules/DefaultWindowsLaunchOnLogin.sys.mjs");
"resource:///modules/DevToolsStartup.sys.mjs": typeof import("resource:///modules/DevToolsStartup.sys.mjs");
"resource:///modules/Discovery.sys.mjs": typeof import("resource:///modules/Discovery.sys.mjs");
"resource:///modules/ESEDBReader.sys.mjs": typeof import("resource:///modules/ESEDBReader.sys.mjs");
@@ -491,13 +537,13 @@ export interface Modules {
"resource:///modules/OpenTabsController.sys.mjs": typeof import("resource:///modules/OpenTabsController.sys.mjs");
"resource:///modules/PageActions.sys.mjs": typeof import("resource:///modules/PageActions.sys.mjs");
"resource:///modules/PartnerLinkAttribution.sys.mjs": typeof import("resource:///modules/PartnerLinkAttribution.sys.mjs");
+ "resource:///modules/PermissionPromptTargeting.sys.mjs": typeof import("resource:///modules/PermissionPromptTargeting.sys.mjs");
"resource:///modules/PermissionUI.sys.mjs": typeof import("resource:///modules/PermissionUI.sys.mjs");
"resource:///modules/PopupAndRedirectBlockerObserver.sys.mjs": typeof import("resource:///modules/PopupAndRedirectBlockerObserver.sys.mjs");
"resource:///modules/ProcessHangMonitor.sys.mjs": typeof import("resource:///modules/ProcessHangMonitor.sys.mjs");
+ "resource:///modules/ReducedProtectionNotification.sys.mjs": typeof import("resource:///modules/ReducedProtectionNotification.sys.mjs");
"resource:///modules/SafariProfileMigrator.sys.mjs": typeof import("resource:///modules/SafariProfileMigrator.sys.mjs");
"resource:///modules/Sanitizer.sys.mjs": typeof import("resource:///modules/Sanitizer.sys.mjs");
- "resource:///modules/ScreenshotsOverlayChild.sys.mjs": typeof import("resource:///modules/ScreenshotsOverlayChild.sys.mjs");
- "resource:///modules/ScreenshotsUtils.sys.mjs": typeof import("resource:///modules/ScreenshotsUtils.sys.mjs");
"resource:///modules/SelectionChangedMenulist.sys.mjs": typeof import("resource:///modules/SelectionChangedMenulist.sys.mjs");
"resource:///modules/SharingUtils.sys.mjs": typeof import("resource:///modules/SharingUtils.sys.mjs");
"resource:///modules/SiteDataManager.sys.mjs": typeof import("resource:///modules/SiteDataManager.sys.mjs");
@@ -507,11 +553,11 @@ export interface Modules {
"resource:///modules/ThemeVariableMap.sys.mjs": typeof import("resource:///modules/ThemeVariableMap.sys.mjs");
"resource:///modules/TransientPrefs.sys.mjs": typeof import("resource:///modules/TransientPrefs.sys.mjs");
"resource:///modules/URILoadingHelper.sys.mjs": typeof import("resource:///modules/URILoadingHelper.sys.mjs");
+ "resource:///modules/UpdatePolicyEnforcer.sys.mjs": typeof import("resource:///modules/UpdatePolicyEnforcer.sys.mjs");
"resource:///modules/WebProtocolHandlerRegistrar.sys.mjs": typeof import("resource:///modules/WebProtocolHandlerRegistrar.sys.mjs");
"resource:///modules/WindowsJumpLists.sys.mjs": typeof import("resource:///modules/WindowsJumpLists.sys.mjs");
"resource:///modules/WindowsPreviewPerTab.sys.mjs": typeof import("resource:///modules/WindowsPreviewPerTab.sys.mjs");
"resource:///modules/ZoomUI.sys.mjs": typeof import("resource:///modules/ZoomUI.sys.mjs");
- "resource:///modules/aboutwelcome/AWScreenUtils.sys.mjs": typeof import("resource:///modules/aboutwelcome/AWScreenUtils.sys.mjs");
"resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs": typeof import("resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs");
"resource:///modules/aboutwelcome/AboutWelcomeDefaults.sys.mjs": typeof import("resource:///modules/aboutwelcome/AboutWelcomeDefaults.sys.mjs");
"resource:///modules/aboutwelcome/AboutWelcomeTelemetry.sys.mjs": typeof import("resource:///modules/aboutwelcome/AboutWelcomeTelemetry.sys.mjs");
@@ -520,6 +566,7 @@ export interface Modules {
"resource:///modules/asrouter/ASRouterDefaultConfig.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterDefaultConfig.sys.mjs");
"resource:///modules/asrouter/ASRouterNewTabHook.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterNewTabHook.sys.mjs");
"resource:///modules/asrouter/ASRouterPreferences.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterPreferences.sys.mjs");
+ "resource:///modules/asrouter/ASRouterScreenUtils.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterScreenUtils.sys.mjs");
"resource:///modules/asrouter/ASRouterStorage.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterStorage.sys.mjs");
"resource:///modules/asrouter/ASRouterTargeting.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterTargeting.sys.mjs");
"resource:///modules/asrouter/ASRouterTelemetry.sys.mjs": typeof import("resource:///modules/asrouter/ASRouterTelemetry.sys.mjs");
@@ -538,6 +585,7 @@ export interface Modules {
"resource:///modules/asrouter/PageEventManager.sys.mjs": typeof import("resource:///modules/asrouter/PageEventManager.sys.mjs");
"resource:///modules/asrouter/PanelTestProvider.sys.mjs": typeof import("resource:///modules/asrouter/PanelTestProvider.sys.mjs");
"resource:///modules/asrouter/RemoteL10n.sys.mjs": typeof import("resource:///modules/asrouter/RemoteL10n.sys.mjs");
+ "resource:///modules/asrouter/SmartWindowNewTabPromo.sys.mjs": typeof import("resource:///modules/asrouter/SmartWindowNewTabPromo.sys.mjs");
"resource:///modules/asrouter/Spotlight.sys.mjs": typeof import("resource:///modules/asrouter/Spotlight.sys.mjs");
"resource:///modules/asrouter/ToastNotification.sys.mjs": typeof import("resource:///modules/asrouter/ToastNotification.sys.mjs");
"resource:///modules/asrouter/ToolbarBadgeHub.sys.mjs": typeof import("resource:///modules/asrouter/ToolbarBadgeHub.sys.mjs");
@@ -559,6 +607,7 @@ export interface Modules {
"resource:///modules/backup/SelectableProfileBackupResource.sys.mjs": typeof import("resource:///modules/backup/SelectableProfileBackupResource.sys.mjs");
"resource:///modules/backup/SessionStoreBackupResource.sys.mjs": typeof import("resource:///modules/backup/SessionStoreBackupResource.sys.mjs");
"resource:///modules/backup/SiteSettingsBackupResource.sys.mjs": typeof import("resource:///modules/backup/SiteSettingsBackupResource.sys.mjs");
+ "resource:///modules/contentsharing/ContentSharingUtils.sys.mjs": typeof import("resource:///modules/contentsharing/ContentSharingUtils.sys.mjs");
"resource:///modules/distribution.sys.mjs": typeof import("resource:///modules/distribution.sys.mjs");
"resource:///modules/firefox-view-synced-tabs-error-handler.sys.mjs": typeof import("resource:///modules/firefox-view-synced-tabs-error-handler.sys.mjs");
"resource:///modules/firefox-view-tabs-setup-manager.sys.mjs": typeof import("resource:///modules/firefox-view-tabs-setup-manager.sys.mjs");
@@ -640,6 +689,11 @@ export interface Modules {
"resource://devtools/client/shared/components/tree/TreeRow.mjs": typeof import("resource://devtools/client/shared/components/tree/TreeRow.mjs");
"resource://devtools/client/shared/components/tree/TreeView.mjs": typeof import("resource://devtools/client/shared/components/tree/TreeView.mjs");
"resource://devtools/client/shared/focus.mjs": typeof import("resource://devtools/client/shared/focus.mjs");
+ "resource://devtools/client/shared/inplace-editor-utils/autocomplete-anchor-function.mjs": typeof import("resource://devtools/client/shared/inplace-editor-utils/autocomplete-anchor-function.mjs");
+ "resource://devtools/client/shared/inplace-editor-utils/autocomplete-anchor-size-function.mjs": typeof import("resource://devtools/client/shared/inplace-editor-utils/autocomplete-anchor-size-function.mjs");
+ "resource://devtools/client/shared/inplace-editor-utils/autocomplete-color-function.mjs": typeof import("resource://devtools/client/shared/inplace-editor-utils/autocomplete-color-function.mjs");
+ "resource://devtools/client/shared/inplace-editor-utils/autocomplete-linear-gradient-function.mjs": typeof import("resource://devtools/client/shared/inplace-editor-utils/autocomplete-linear-gradient-function.mjs");
+ "resource://devtools/client/shared/inplace-editor-utils/constants.mjs": typeof import("resource://devtools/client/shared/inplace-editor-utils/constants.mjs");
"resource://devtools/client/shared/scroll.mjs": typeof import("resource://devtools/client/shared/scroll.mjs");
"resource://devtools/client/shared/sourceeditor/codemirror6/codemirror6.bundle.mjs": typeof import("resource://devtools/client/shared/sourceeditor/codemirror6/codemirror6.bundle.mjs");
"resource://devtools/client/storage/VariablesView.sys.mjs": typeof import("resource://devtools/client/storage/VariablesView.sys.mjs");
@@ -685,6 +739,7 @@ export interface Modules {
"resource://devtools/shared/test-helpers/dump-scope.sys.mjs": typeof import("resource://devtools/shared/test-helpers/dump-scope.sys.mjs");
"resource://devtools/shared/test-helpers/tracked-objects.sys.mjs": typeof import("resource://devtools/shared/test-helpers/tracked-objects.sys.mjs");
"resource://devtools/shared/validate-breakpoint.sys.mjs": typeof import("resource://devtools/shared/validate-breakpoint.sys.mjs");
+ "resource://devtools/shared/webconsole/formatMessageParametersAndText.sys.mjs": typeof import("resource://devtools/shared/webconsole/formatMessageParametersAndText.sys.mjs");
"resource://devtools/shared/worker/worker.sys.mjs": typeof import("resource://devtools/shared/worker/worker.sys.mjs");
"resource://gre/actors/AutoCompleteParent.sys.mjs": typeof import("resource://gre/actors/AutoCompleteParent.sys.mjs");
"resource://gre/actors/FormHandlerChild.sys.mjs": typeof import("resource://gre/actors/FormHandlerChild.sys.mjs");
@@ -719,6 +774,7 @@ export interface Modules {
"resource://gre/modules/BookmarkJSONUtils.sys.mjs": typeof import("resource://gre/modules/BookmarkJSONUtils.sys.mjs");
"resource://gre/modules/BookmarkList.sys.mjs": typeof import("resource://gre/modules/BookmarkList.sys.mjs");
"resource://gre/modules/Bookmarks.sys.mjs": typeof import("resource://gre/modules/Bookmarks.sys.mjs");
+ "resource://gre/modules/BreachAlertStore.sys.mjs": typeof import("resource://gre/modules/BreachAlertStore.sys.mjs");
"resource://gre/modules/BrowserTelemetryUtils.sys.mjs": typeof import("resource://gre/modules/BrowserTelemetryUtils.sys.mjs");
"resource://gre/modules/BrowserUtils.sys.mjs": typeof import("resource://gre/modules/BrowserUtils.sys.mjs");
"resource://gre/modules/CSV.sys.mjs": typeof import("resource://gre/modules/CSV.sys.mjs");
@@ -845,14 +901,15 @@ export interface Modules {
"resource://gre/modules/GeckoViewActorManager.sys.mjs": typeof import("resource://gre/modules/GeckoViewActorManager.sys.mjs");
"resource://gre/modules/GeckoViewAutocomplete.sys.mjs": typeof import("resource://gre/modules/GeckoViewAutocomplete.sys.mjs");
"resource://gre/modules/GeckoViewAutofill.sys.mjs": typeof import("resource://gre/modules/GeckoViewAutofill.sys.mjs");
- "resource://gre/modules/GeckoViewChildModule.sys.mjs": typeof import("resource://gre/modules/GeckoViewChildModule.sys.mjs");
"resource://gre/modules/GeckoViewClipboardPermission.sys.mjs": typeof import("resource://gre/modules/GeckoViewClipboardPermission.sys.mjs");
"resource://gre/modules/GeckoViewIdentityCredential.sys.mjs": typeof import("resource://gre/modules/GeckoViewIdentityCredential.sys.mjs");
+ "resource://gre/modules/GeckoViewPreferences.sys.mjs": typeof import("resource://gre/modules/GeckoViewPreferences.sys.mjs");
"resource://gre/modules/GeckoViewPrompter.sys.mjs": typeof import("resource://gre/modules/GeckoViewPrompter.sys.mjs");
"resource://gre/modules/GeckoViewSettings.sys.mjs": typeof import("resource://gre/modules/GeckoViewSettings.sys.mjs");
"resource://gre/modules/GeckoViewTab.sys.mjs": typeof import("resource://gre/modules/GeckoViewTab.sys.mjs");
"resource://gre/modules/GeckoViewTelemetry.sys.mjs": typeof import("resource://gre/modules/GeckoViewTelemetry.sys.mjs");
"resource://gre/modules/GeckoViewTestUtils.sys.mjs": typeof import("resource://gre/modules/GeckoViewTestUtils.sys.mjs");
+ "resource://gre/modules/GeckoViewTrackingDB.sys.mjs": typeof import("resource://gre/modules/GeckoViewTrackingDB.sys.mjs");
"resource://gre/modules/GeckoViewUtils.sys.mjs": typeof import("resource://gre/modules/GeckoViewUtils.sys.mjs");
"resource://gre/modules/GeckoViewWebExtension.sys.mjs": typeof import("resource://gre/modules/GeckoViewWebExtension.sys.mjs");
"resource://gre/modules/Geometry.sys.mjs": typeof import("resource://gre/modules/Geometry.sys.mjs");
@@ -868,9 +925,9 @@ export interface Modules {
"resource://gre/modules/Integration.sys.mjs": typeof import("resource://gre/modules/Integration.sys.mjs");
"resource://gre/modules/JSONFile.sys.mjs": typeof import("resource://gre/modules/JSONFile.sys.mjs");
"resource://gre/modules/JsonSchema.sys.mjs": typeof import("resource://gre/modules/JsonSchema.sys.mjs");
+ "resource://gre/modules/KeyboardLockUtils.sys.mjs": typeof import("resource://gre/modules/KeyboardLockUtils.sys.mjs");
"resource://gre/modules/KeywordUtils.sys.mjs": typeof import("resource://gre/modules/KeywordUtils.sys.mjs");
"resource://gre/modules/LangPackMatcher.sys.mjs": typeof import("resource://gre/modules/LangPackMatcher.sys.mjs");
- "resource://gre/modules/LayoutUtils.sys.mjs": typeof import("resource://gre/modules/LayoutUtils.sys.mjs");
"resource://gre/modules/LightweightThemeConsumer.sys.mjs": typeof import("resource://gre/modules/LightweightThemeConsumer.sys.mjs");
"resource://gre/modules/LightweightThemeManager.sys.mjs": typeof import("resource://gre/modules/LightweightThemeManager.sys.mjs");
"resource://gre/modules/LoadURIDelegate.sys.mjs": typeof import("resource://gre/modules/LoadURIDelegate.sys.mjs");
@@ -904,6 +961,7 @@ export interface Modules {
"resource://gre/modules/NativeMessaging.sys.mjs": typeof import("resource://gre/modules/NativeMessaging.sys.mjs");
"resource://gre/modules/NetUtil.sys.mjs": typeof import("resource://gre/modules/NetUtil.sys.mjs");
"resource://gre/modules/NewTabUtils.sys.mjs": typeof import("resource://gre/modules/NewTabUtils.sys.mjs");
+ "resource://gre/modules/NimbusGeckoViewQATelemetry.sys.mjs": typeof import("resource://gre/modules/NimbusGeckoViewQATelemetry.sys.mjs");
"resource://gre/modules/OSCrypto_win.sys.mjs": typeof import("resource://gre/modules/OSCrypto_win.sys.mjs");
"resource://gre/modules/OSKeyStore.sys.mjs": typeof import("resource://gre/modules/OSKeyStore.sys.mjs");
"resource://gre/modules/ObjectUtils.sys.mjs": typeof import("resource://gre/modules/ObjectUtils.sys.mjs");
@@ -950,6 +1008,7 @@ export interface Modules {
"resource://gre/modules/RustSharedRemoteSettingsService.sys.mjs": typeof import("resource://gre/modules/RustSharedRemoteSettingsService.sys.mjs");
"resource://gre/modules/SafeBrowsing.sys.mjs": typeof import("resource://gre/modules/SafeBrowsing.sys.mjs");
"resource://gre/modules/SandboxUtils.sys.mjs": typeof import("resource://gre/modules/SandboxUtils.sys.mjs");
+ "resource://gre/modules/ScheduledTask.sys.mjs": typeof import("resource://gre/modules/ScheduledTask.sys.mjs");
"resource://gre/modules/Schemas.sys.mjs": typeof import("resource://gre/modules/Schemas.sys.mjs");
"resource://gre/modules/SecurityInfo.sys.mjs": typeof import("resource://gre/modules/SecurityInfo.sys.mjs");
"resource://gre/modules/SelectionUtils.sys.mjs": typeof import("resource://gre/modules/SelectionUtils.sys.mjs");
@@ -975,7 +1034,6 @@ export interface Modules {
"resource://gre/modules/TelemetrySession.sys.mjs": typeof import("resource://gre/modules/TelemetrySession.sys.mjs");
"resource://gre/modules/TelemetryStorage.sys.mjs": typeof import("resource://gre/modules/TelemetryStorage.sys.mjs");
"resource://gre/modules/TelemetryTimestamps.sys.mjs": typeof import("resource://gre/modules/TelemetryTimestamps.sys.mjs");
- "resource://gre/modules/TelemetryUtils.sys.mjs": typeof import("resource://gre/modules/TelemetryUtils.sys.mjs");
"resource://gre/modules/Timer.sys.mjs": typeof import("resource://gre/modules/Timer.sys.mjs");
"resource://gre/modules/Troubleshoot.sys.mjs": typeof import("resource://gre/modules/Troubleshoot.sys.mjs");
"resource://gre/modules/UninstallPing.sys.mjs": typeof import("resource://gre/modules/UninstallPing.sys.mjs");
@@ -1036,6 +1094,7 @@ export interface Modules {
"resource://gre/modules/narrate/NarrateControls.sys.mjs": typeof import("resource://gre/modules/narrate/NarrateControls.sys.mjs");
"resource://gre/modules/policies/WindowsGPOParser.sys.mjs": typeof import("resource://gre/modules/policies/WindowsGPOParser.sys.mjs");
"resource://gre/modules/policies/macOSPoliciesParser.sys.mjs": typeof import("resource://gre/modules/policies/macOSPoliciesParser.sys.mjs");
+ "resource://gre/modules/psm/DER.sys.mjs": typeof import("resource://gre/modules/psm/DER.sys.mjs");
"resource://gre/modules/psm/QWACs.sys.mjs": typeof import("resource://gre/modules/psm/QWACs.sys.mjs");
"resource://gre/modules/psm/RemoteSecuritySettings.sys.mjs": typeof import("resource://gre/modules/psm/RemoteSecuritySettings.sys.mjs");
"resource://gre/modules/psm/X509.sys.mjs": typeof import("resource://gre/modules/psm/X509.sys.mjs");
@@ -1059,6 +1118,7 @@ export interface Modules {
"resource://gre/modules/shared/FieldScanner.sys.mjs": typeof import("resource://gre/modules/shared/FieldScanner.sys.mjs");
"resource://gre/modules/shared/FormAutofillHandler.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillHandler.sys.mjs");
"resource://gre/modules/shared/FormAutofillHeuristics.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillHeuristics.sys.mjs");
+ "resource://gre/modules/shared/FormAutofillML.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillML.sys.mjs");
"resource://gre/modules/shared/FormAutofillNameUtils.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillNameUtils.sys.mjs");
"resource://gre/modules/shared/FormAutofillSection.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillSection.sys.mjs");
"resource://gre/modules/shared/FormAutofillUtils.sys.mjs": typeof import("resource://gre/modules/shared/FormAutofillUtils.sys.mjs");
@@ -1098,6 +1158,7 @@ export interface Modules {
"resource://newtab/lib/HighlightsFeed.sys.mjs": typeof import("resource://newtab/lib/HighlightsFeed.sys.mjs");
"resource://newtab/lib/InferredModel/FeatureModel.sys.mjs": typeof import("resource://newtab/lib/InferredModel/FeatureModel.sys.mjs");
"resource://newtab/lib/InferredModel/GreedyContentRanker.mjs": typeof import("resource://newtab/lib/InferredModel/GreedyContentRanker.mjs");
+ "resource://newtab/lib/InferredModel/InferredConstants.sys.mjs": typeof import("resource://newtab/lib/InferredModel/InferredConstants.sys.mjs");
"resource://newtab/lib/InferredPersonalizationFeed.sys.mjs": typeof import("resource://newtab/lib/InferredPersonalizationFeed.sys.mjs");
"resource://newtab/lib/NewTabActorRegistry.sys.mjs": typeof import("resource://newtab/lib/NewTabActorRegistry.sys.mjs");
"resource://newtab/lib/NewTabAttributionFeed.sys.mjs": typeof import("resource://newtab/lib/NewTabAttributionFeed.sys.mjs");
@@ -1109,6 +1170,7 @@ export interface Modules {
"resource://newtab/lib/PersistentCache.sys.mjs": typeof import("resource://newtab/lib/PersistentCache.sys.mjs");
"resource://newtab/lib/PlacesFeed.sys.mjs": typeof import("resource://newtab/lib/PlacesFeed.sys.mjs");
"resource://newtab/lib/PrefsFeed.sys.mjs": typeof import("resource://newtab/lib/PrefsFeed.sys.mjs");
+ "resource://newtab/lib/RemoteRenderer.sys.mjs": typeof import("resource://newtab/lib/RemoteRenderer.sys.mjs");
"resource://newtab/lib/Screenshots.sys.mjs": typeof import("resource://newtab/lib/Screenshots.sys.mjs");
"resource://newtab/lib/SectionsLayoutFeed.sys.mjs": typeof import("resource://newtab/lib/SectionsLayoutFeed.sys.mjs");
"resource://newtab/lib/SectionsManager.sys.mjs": typeof import("resource://newtab/lib/SectionsManager.sys.mjs");
@@ -1125,8 +1187,10 @@ export interface Modules {
"resource://newtab/lib/TopStoriesFeed.sys.mjs": typeof import("resource://newtab/lib/TopStoriesFeed.sys.mjs");
"resource://newtab/lib/UTEventReporting.sys.mjs": typeof import("resource://newtab/lib/UTEventReporting.sys.mjs");
"resource://newtab/lib/Wallpapers/WallpaperFeed.sys.mjs": typeof import("resource://newtab/lib/Wallpapers/WallpaperFeed.sys.mjs");
+ "resource://newtab/lib/Wallpapers/WallpaperThemeUtils.mjs": typeof import("resource://newtab/lib/Wallpapers/WallpaperThemeUtils.mjs");
"resource://newtab/lib/WeatherFeed.sys.mjs": typeof import("resource://newtab/lib/WeatherFeed.sys.mjs");
"resource://newtab/lib/Widgets/ListsFeed.sys.mjs": typeof import("resource://newtab/lib/Widgets/ListsFeed.sys.mjs");
+ "resource://newtab/lib/Widgets/SportsFeed.sys.mjs": typeof import("resource://newtab/lib/Widgets/SportsFeed.sys.mjs");
"resource://newtab/lib/Widgets/TimerFeed.sys.mjs": typeof import("resource://newtab/lib/Widgets/TimerFeed.sys.mjs");
"resource://newtab/lib/actors/NewTabAttributionParent.sys.mjs": typeof import("resource://newtab/lib/actors/NewTabAttributionParent.sys.mjs");
"resource://nimbus/ExperimentAPI.sys.mjs": typeof import("resource://nimbus/ExperimentAPI.sys.mjs");
@@ -1178,6 +1242,8 @@ export interface Modules {
"resource://pdf.js/PdfJsTelemetry.sys.mjs": typeof import("resource://pdf.js/PdfJsTelemetry.sys.mjs");
"resource://pdf.js/PdfSandbox.sys.mjs": typeof import("resource://pdf.js/PdfSandbox.sys.mjs");
"resource://pdf.js/PdfStreamConverter.sys.mjs": typeof import("resource://pdf.js/PdfStreamConverter.sys.mjs");
+ "resource://pdf.js/PdfjsParent.sys.mjs": typeof import("resource://pdf.js/PdfjsParent.sys.mjs");
+ "resource://pdf.js/build/pdf.mjs": typeof import("resource://pdf.js/build/pdf.mjs");
"resource://reftest/AsyncSpellCheckTestHelper.sys.mjs": typeof import("resource://reftest/AsyncSpellCheckTestHelper.sys.mjs");
"resource://reftest/PerTestCoverageUtils.sys.mjs": typeof import("resource://reftest/PerTestCoverageUtils.sys.mjs");
"resource://reftest/reftest.sys.mjs": typeof import("resource://reftest/reftest.sys.mjs");
@@ -1190,7 +1256,6 @@ export interface Modules {
"resource://services-common/observers.sys.mjs": typeof import("resource://services-common/observers.sys.mjs");
"resource://services-common/rest.sys.mjs": typeof import("resource://services-common/rest.sys.mjs");
"resource://services-common/tokenserverclient.sys.mjs": typeof import("resource://services-common/tokenserverclient.sys.mjs");
- "resource://services-common/uptake-telemetry.sys.mjs": typeof import("resource://services-common/uptake-telemetry.sys.mjs");
"resource://services-common/utils.sys.mjs": typeof import("resource://services-common/utils.sys.mjs");
"resource://services-settings/Attachments.sys.mjs": typeof import("resource://services-settings/Attachments.sys.mjs");
"resource://services-settings/Database.sys.mjs": typeof import("resource://services-settings/Database.sys.mjs");
@@ -1199,6 +1264,7 @@ export interface Modules {
"resource://services-settings/RemoteSettingsWorker.sys.mjs": typeof import("resource://services-settings/RemoteSettingsWorker.sys.mjs");
"resource://services-settings/SharedUtils.sys.mjs": typeof import("resource://services-settings/SharedUtils.sys.mjs");
"resource://services-settings/SyncHistory.sys.mjs": typeof import("resource://services-settings/SyncHistory.sys.mjs");
+ "resource://services-settings/UptakeTelemetry.sys.mjs": typeof import("resource://services-settings/UptakeTelemetry.sys.mjs");
"resource://services-settings/Utils.sys.mjs": typeof import("resource://services-settings/Utils.sys.mjs");
"resource://services-settings/remote-settings.sys.mjs": typeof import("resource://services-settings/remote-settings.sys.mjs");
"resource://services-sync/SyncDisconnect.sys.mjs": typeof import("resource://services-sync/SyncDisconnect.sys.mjs");
@@ -1263,6 +1329,9 @@ export interface Modules {
"resource://test/esmified-1.sys.mjs": typeof import("resource://test/esmified-1.sys.mjs");
"resource://test/esmified-3.sys.mjs": typeof import("resource://test/esmified-3.sys.mjs");
"resource://test/esmified-4.sys.mjs": typeof import("resource://test/esmified-4.sys.mjs");
+ "resource://test/import_attributes.mjs": typeof import("resource://test/import_attributes.mjs");
+ "resource://test/import_attributes_css.mjs": typeof import("resource://test/import_attributes_css.mjs");
+ "resource://test/import_attributes_text.mjs": typeof import("resource://test/import_attributes_text.mjs");
"resource://test/import_non_shared_1.mjs": typeof import("resource://test/import_non_shared_1.mjs");
"resource://test/non_shared_1.mjs": typeof import("resource://test/non_shared_1.mjs");
"resource://test/non_shared_nest_import_non_shared_1.mjs": typeof import("resource://test/non_shared_nest_import_non_shared_1.mjs");
@@ -1276,6 +1345,7 @@ export interface Modules {
"resource://test/non_shared_nest_import_shared_target_2.sys.mjs": typeof import("resource://test/non_shared_nest_import_shared_target_2.sys.mjs");
"resource://test/not_found.mjs": typeof import("resource://test/not_found.mjs");
"resource://testing-common/AIWindowTestUtils.sys.mjs": typeof import("resource://testing-common/AIWindowTestUtils.sys.mjs");
+ "resource://testing-common/AboutAddonsTestUtils.sys.mjs": typeof import("resource://testing-common/AboutAddonsTestUtils.sys.mjs");
"resource://testing-common/AddonTestUtils.sys.mjs": typeof import("resource://testing-common/AddonTestUtils.sys.mjs");
"resource://testing-common/AllJavascriptTypes.mjs": typeof import("resource://testing-common/AllJavascriptTypes.mjs");
"resource://testing-common/AppData.sys.mjs": typeof import("resource://testing-common/AppData.sys.mjs");
@@ -1285,6 +1355,7 @@ export interface Modules {
"resource://testing-common/AsyncSpellCheckTestHelper.sys.mjs": typeof import("resource://testing-common/AsyncSpellCheckTestHelper.sys.mjs");
"resource://testing-common/BackgroundTasksTestUtils.sys.mjs": typeof import("resource://testing-common/BackgroundTasksTestUtils.sys.mjs");
"resource://testing-common/BrowserTestUtils.sys.mjs": typeof import("resource://testing-common/BrowserTestUtils.sys.mjs");
+ "resource://testing-common/ContentSharingMockServer.sys.mjs": typeof import("resource://testing-common/ContentSharingMockServer.sys.mjs");
"resource://testing-common/ContentTask.sys.mjs": typeof import("resource://testing-common/ContentTask.sys.mjs");
"resource://testing-common/ContentTaskUtils.sys.mjs": typeof import("resource://testing-common/ContentTaskUtils.sys.mjs");
"resource://testing-common/CookieXPCShellUtils.sys.mjs": typeof import("resource://testing-common/CookieXPCShellUtils.sys.mjs");
@@ -1305,6 +1376,7 @@ export interface Modules {
"resource://testing-common/JSObjectsTestUtils.sys.mjs": typeof import("resource://testing-common/JSObjectsTestUtils.sys.mjs");
"resource://testing-common/LangPackMatcherTestUtils.sys.mjs": typeof import("resource://testing-common/LangPackMatcherTestUtils.sys.mjs");
"resource://testing-common/LoginTestUtils.sys.mjs": typeof import("resource://testing-common/LoginTestUtils.sys.mjs");
+ "resource://testing-common/MLTestUtils.sys.mjs": typeof import("resource://testing-common/MLTestUtils.sys.mjs");
"resource://testing-common/MerinoTestUtils.sys.mjs": typeof import("resource://testing-common/MerinoTestUtils.sys.mjs");
"resource://testing-common/MessageChannel.sys.mjs": typeof import("resource://testing-common/MessageChannel.sys.mjs");
"resource://testing-common/MockColorPicker.sys.mjs": typeof import("resource://testing-common/MockColorPicker.sys.mjs");
@@ -1333,6 +1405,7 @@ export interface Modules {
"resource://testing-common/SearchTestUtils.sys.mjs": typeof import("resource://testing-common/SearchTestUtils.sys.mjs");
"resource://testing-common/SearchUITestUtils.sys.mjs": typeof import("resource://testing-common/SearchUITestUtils.sys.mjs");
"resource://testing-common/SessionStoreTestUtils.sys.mjs": typeof import("resource://testing-common/SessionStoreTestUtils.sys.mjs");
+ "resource://testing-common/SidebarTestUtils.sys.mjs": typeof import("resource://testing-common/SidebarTestUtils.sys.mjs");
"resource://testing-common/Sinon.sys.mjs": typeof import("resource://testing-common/Sinon.sys.mjs");
"resource://testing-common/SiteDataTestUtils.sys.mjs": typeof import("resource://testing-common/SiteDataTestUtils.sys.mjs");
"resource://testing-common/SpecialPowersParent.sys.mjs": typeof import("resource://testing-common/SpecialPowersParent.sys.mjs");
@@ -1368,6 +1441,10 @@ export interface Modules {
"resource://testing-common/dom/simpledb/test/modules/SimpleDBUtils.sys.mjs": typeof import("resource://testing-common/dom/simpledb/test/modules/SimpleDBUtils.sys.mjs");
"resource://testing-common/early_hint_preload_test_helper.sys.mjs": typeof import("resource://testing-common/early_hint_preload_test_helper.sys.mjs");
"resource://testing-common/httpd.sys.mjs": typeof import("resource://testing-common/httpd.sys.mjs");
+ "resource://testing-common/ipprotection/IPPAlwaysOn.sys.mjs": typeof import("resource://testing-common/ipprotection/IPPAlwaysOn.sys.mjs");
+ "resource://testing-common/ipprotection/IPPDummyAuthProvider.sys.mjs": typeof import("resource://testing-common/ipprotection/IPPDummyAuthProvider.sys.mjs");
+ "resource://testing-common/ipprotection/IPPEnterpriseAuthProvider.sys.mjs": typeof import("resource://testing-common/ipprotection/IPPEnterpriseAuthProvider.sys.mjs");
+ "resource://testing-common/ipprotection/IPPGpiAuthProvider.sys.mjs": typeof import("resource://testing-common/ipprotection/IPPGpiAuthProvider.sys.mjs");
"resource://testing-common/services/common/logging.sys.mjs": typeof import("resource://testing-common/services/common/logging.sys.mjs");
"resource://testing-common/services/sync/fakeservices.sys.mjs": typeof import("resource://testing-common/services/sync/fakeservices.sys.mjs");
"resource://testing-common/services/sync/fxa_utils.sys.mjs": typeof import("resource://testing-common/services/sync/fxa_utils.sys.mjs");
diff --git a/src/zen/@types/lib.gecko.nsresult.d.ts b/src/zen/@types/lib.gecko.nsresult.d.ts
index 1d79a757b..777d32789 100644
--- a/src/zen/@types/lib.gecko.nsresult.d.ts
+++ b/src/zen/@types/lib.gecko.nsresult.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from xpc.msg and error_list.json.
@@ -674,6 +671,9 @@ interface nsIXPCComponents_Results {
/** The URI is not available for add-ons */
NS_ERROR_HARMFULADDON_URI: 0x805d002e;
+ /** Save Link As failed to see the headers early enough to choose a filename */
+ NS_ERROR_SAVE_LINK_AS_TIMEOUT: 0x805d0020;
+
// Profile manager error codes
/** Flushing the profiles to disk would have overwritten changes made elsewhere. */
@@ -703,6 +703,11 @@ interface nsIXPCComponents_Results {
/** Client initialization attempted before origin has been initialized. */
NS_ERROR_DOM_QM_CLIENT_INIT_ORIGIN_UNINITIALIZED: 0x80730001;
+
+ // Codes related to IndexedDB
+
+ /** A mutation operation was attempted on a database that did not allow mutations. */
+ NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR: 0x80660006;
}
type nsIXPCComponents_Values =
diff --git a/src/zen/@types/lib.gecko.services.d.ts b/src/zen/@types/lib.gecko.services.d.ts
index 6331be7d3..b79a03f1f 100644
--- a/src/zen/@types/lib.gecko.services.d.ts
+++ b/src/zen/@types/lib.gecko.services.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from services.json.
diff --git a/src/zen/@types/lib.gecko.tweaks.d.ts b/src/zen/@types/lib.gecko.tweaks.d.ts
index 7758bcc10..2c9570526 100644
--- a/src/zen/@types/lib.gecko.tweaks.d.ts
+++ b/src/zen/@types/lib.gecko.tweaks.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* Gecko generic/specialized adjustments for xpcom and webidl types.
*/
diff --git a/src/zen/@types/lib.gecko.win32.d.ts b/src/zen/@types/lib.gecko.win32.d.ts
index 586573ecb..1e81d7d86 100644
--- a/src/zen/@types/lib.gecko.win32.d.ts
+++ b/src/zen/@types/lib.gecko.win32.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from source XPCOM .idl files.
@@ -8,7 +5,7 @@
*/
declare global {
- // https://searchfox.org/mozilla-central/source/toolkit/components/aboutthirdparty/nsIAboutThirdParty.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/aboutthirdparty/nsIAboutThirdParty.idl
interface nsIInstalledApplication extends nsISupports {
readonly name: string;
@@ -31,7 +28,7 @@ declare global {
loadModuleForTesting(aModulePath: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/aboutwindowsmessages/nsIAboutWindowsMessages.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/aboutwindowsmessages/nsIAboutWindowsMessages.idl
interface nsIAboutWindowsMessages extends nsISupports {
getMessages(
@@ -41,7 +38,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIWindowsAlertsService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/alerts/nsIWindowsAlertsService.idl
} // global
declare enum nsIWindowsAlertNotification_ImagePlacement {
@@ -71,7 +68,7 @@ declare global {
removeAllNotificationsForInstall(): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIDefaultAgent.idl
+ // https://searchfox.org/firefox-main/source/toolkit/mozapps/defaultagent/nsIDefaultAgent.idl
interface nsIDefaultAgent extends nsISupports {
registerTask(aUniqueToken: string): void;
@@ -105,7 +102,7 @@ declare global {
agentDisabled(): boolean;
}
- // https://searchfox.org/mozilla-central/source/toolkit/mozapps/defaultagent/nsIWindowsMutex.idl
+ // https://searchfox.org/firefox-main/source/toolkit/mozapps/defaultagent/nsIWindowsMutex.idl
interface nsIWindowsMutex extends nsISupports {
tryLock(): void;
@@ -117,15 +114,15 @@ declare global {
createMutex(aName: string): nsIWindowsMutex;
}
- // https://searchfox.org/mozilla-central/source/dom/geolocation/nsIGeolocationUIUtilsWin.idl
+ // https://searchfox.org/firefox-main/source/dom/geolocation/nsIGeolocationUIUtilsWin.idl
interface nsIGeolocationUIUtilsWin extends nsISupports {
dismissPrompts(aBC: BrowsingContext): void;
}
- // https://searchfox.org/mozilla-central/source/netwerk/socket/nsINamedPipeService.idl
+ // https://searchfox.org/firefox-main/source/netwerk/socket/nsINamedPipeService.idl
- // https://searchfox.org/mozilla-central/source/browser/components/shell/nsIWindowsShellService.idl
+ // https://searchfox.org/firefox-main/source/browser/components/shell/nsIWindowsShellService.idl
} // global
declare enum nsIWindowsShellService_LaunchOnLoginEnabledEnumerator {
@@ -185,7 +182,7 @@ declare global {
queryCurrentDefaultHandlerFor(aFileExtensionOrProtocol: string): string;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/taskscheduler/nsIWinTaskSchedulerService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/taskscheduler/nsIWinTaskSchedulerService.idl
interface nsIWinTaskSchedulerService extends nsISupports {
registerTask(
@@ -203,7 +200,7 @@ declare global {
deleteFolder(aParentFolderName: string, aSubFolderName: string): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIJumpListBuilder.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIJumpListBuilder.idl
interface nsIJumpListBuilder extends nsISupports {
obtainAndCacheFavicon(faviconURL: nsIURI): string;
@@ -218,9 +215,9 @@ declare global {
clearJumpList(): Promise;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIPrintSettingsWin.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIPrintSettingsWin.idl
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarOverlayIconController.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarOverlayIconController.idl
interface nsITaskbarOverlayIconController extends nsISupports {
setOverlayIcon(
@@ -230,7 +227,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreview.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarPreview.idl
interface nsITaskbarPreview extends nsISupports {
controller: nsITaskbarPreviewController;
@@ -240,7 +237,7 @@ declare global {
invalidate(): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewButton.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarPreviewButton.idl
interface nsITaskbarPreviewButton extends nsISupports {
tooltip: string;
@@ -251,7 +248,7 @@ declare global {
visible: boolean;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarPreviewController.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarPreviewController.idl
type nsITaskbarPreviewCallback = Callable<{
done(aCanvas: nsISupports, aDrawBorder: boolean): void;
@@ -272,7 +269,7 @@ declare global {
onClick(button: nsITaskbarPreviewButton): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarProgress.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarProgress.idl
interface nsITaskbarProgress extends nsISupports {
readonly STATE_NO_PROGRESS?: 0;
@@ -288,7 +285,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarTabPreview.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarTabPreview.idl
interface nsITaskbarTabPreview extends nsITaskbarPreview {
title: string;
@@ -296,7 +293,7 @@ declare global {
move(aNext: nsITaskbarTabPreview): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsITaskbarWindowPreview.idl
+ // https://searchfox.org/firefox-main/source/widget/nsITaskbarWindowPreview.idl
interface nsITaskbarWindowPreview extends nsITaskbarPreview {
readonly NUM_TOOLBAR_BUTTONS?: 7;
@@ -305,7 +302,7 @@ declare global {
enableCustomDrawing: boolean;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIWinTaskbar.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIWinTaskbar.idl
interface nsIWinTaskbar extends nsISupports {
readonly available: boolean;
@@ -325,7 +322,7 @@ declare global {
setGroupIdForWindow(aParent: mozIDOMWindow, aIdentifier: string): void;
}
- // https://searchfox.org/mozilla-central/source/widget/nsIWindowsUIUtils.idl
+ // https://searchfox.org/firefox-main/source/widget/nsIWindowsUIUtils.idl
interface nsIWindowsUIUtils extends nsISupports {
readonly systemSmallIconSize: i32;
@@ -346,7 +343,7 @@ declare global {
shareUrl(urlToShare: string, shareTitle: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
+ // https://searchfox.org/firefox-main/source/toolkit/system/windowsPackageManager/nsIWindowsPackageManager.idl
interface nsIWindowsPackageManager extends nsISupports {
findUserInstalledPackages(prefix: string[]): string[];
@@ -354,7 +351,7 @@ declare global {
campaignId(): Promise;
}
- // https://searchfox.org/mozilla-central/source/xpcom/ds/nsIWindowsRegKey.idl
+ // https://searchfox.org/firefox-main/source/xpcom/ds/nsIWindowsRegKey.idl
interface nsIWindowsRegKey extends nsISupports {
readonly ROOT_KEY_CLASSES_ROOT?: 2147483648;
@@ -401,7 +398,7 @@ declare global {
writeBinaryValue(name: string, data: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/xre/nsIWinAppHelper.idl
+ // https://searchfox.org/firefox-main/source/toolkit/xre/nsIWinAppHelper.idl
interface nsIWinAppHelper extends nsISupports {
readonly userCanElevate: boolean;
diff --git a/src/zen/@types/lib.gecko.xpcom.d.ts b/src/zen/@types/lib.gecko.xpcom.d.ts
index 3c9c494a5..069180436 100644
--- a/src/zen/@types/lib.gecko.xpcom.d.ts
+++ b/src/zen/@types/lib.gecko.xpcom.d.ts
@@ -1,6 +1,3 @@
-// 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/.
/**
* NOTE: Do not modify this file by hand.
* Content was generated from source XPCOM .idl files.
@@ -8,7 +5,7 @@
*/
declare global {
- // https://searchfox.org/mozilla-central/source/toolkit/components/bitsdownload/nsIBits.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/bitsdownload/nsIBits.idl
interface nsIBits extends nsISupports {
readonly ERROR_TYPE_SUCCESS?: 0;
@@ -184,7 +181,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibilityService.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibilityService.idl
interface nsIAccessibilityService extends nsISupports {
getApplicationAccessible(): nsIAccessible;
@@ -206,7 +203,7 @@ declare global {
getConsumers(): string;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessible.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessible.idl
interface nsIAccessible extends nsISupports {
readonly parent: nsIAccessible;
@@ -270,7 +267,7 @@ declare global {
readonly computedARIARole: string;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleAnnouncementEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleAnnouncementEvent.idl
interface nsIAccessibleAnnouncementEvent extends nsIAccessibleEvent {
readonly POLITE?: 0;
@@ -280,7 +277,7 @@ declare global {
readonly priority: u16;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleApplication.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleApplication.idl
interface nsIAccessibleApplication extends nsISupports {
readonly appName: string;
@@ -289,7 +286,7 @@ declare global {
readonly platformVersion: string;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleCaretMoveEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleCaretMoveEvent.idl
interface nsIAccessibleCaretMoveEvent extends nsIAccessibleEvent {
readonly caretOffset: i32;
@@ -298,7 +295,7 @@ declare global {
readonly granularity: i32;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleDocument.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleDocument.idl
interface nsIAccessibleDocument extends nsISupports {
readonly URL: string;
@@ -313,7 +310,7 @@ declare global {
readonly browsingContext: BrowsingContext;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEditableText.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleEditableText.idl
interface nsIAccessibleEditableText extends nsISupports {
setTextContents(text: string): void;
@@ -324,7 +321,7 @@ declare global {
pasteText(position: i32): void;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleEvent.idl
interface nsIAccessibleEvent extends nsISupports {
readonly EVENT_SHOW?: 1;
@@ -378,7 +375,7 @@ declare global {
readonly isFromUserInput: boolean;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHideEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleHideEvent.idl
interface nsIAccessibleHideEvent extends nsIAccessibleEvent {
readonly targetParent: nsIAccessible;
@@ -386,7 +383,7 @@ declare global {
readonly targetPrevSibling: nsIAccessible;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperLink.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleHyperLink.idl
interface nsIAccessibleHyperLink extends nsISupports {
readonly startIndex: i32;
@@ -397,7 +394,7 @@ declare global {
getAnchor(index: i32): nsIAccessible;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleHyperText.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleHyperText.idl
interface nsIAccessibleHyperText extends nsISupports {
readonly linkCount: i32;
@@ -406,20 +403,20 @@ declare global {
getLinkIndexAtOffset(offset: i32): i32;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleImage.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleImage.idl
interface nsIAccessibleImage extends nsISupports {
getImagePosition(coordType: u32, x: OutParam, y: OutParam): void;
getImageSize(width: OutParam, height: OutParam): void;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleObjectAttributeChangedEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleObjectAttributeChangedEvent.idl
interface nsIAccessibleObjectAttributeChangedEvent extends nsIAccessibleEvent {
readonly changedAttribute: string;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessiblePivot.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessiblePivot.idl
interface nsIAccessiblePivot extends nsISupports {
next(
@@ -445,7 +442,7 @@ declare global {
match(aAccessible: nsIAccessible): u16;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRelation.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleRelation.idl
interface nsIAccessibleRelation extends nsISupports {
readonly RELATION_LABELLED_BY?: 0;
@@ -483,7 +480,7 @@ declare global {
getTargets(): nsIArray;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleRole.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleRole.idl
interface nsIAccessibleRole extends nsISupports {
readonly ROLE_NOTHING?: 0;
@@ -629,7 +626,7 @@ declare global {
readonly ROLE_SEARCHBOX?: 140;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleScrollingEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleScrollingEvent.idl
interface nsIAccessibleScrollingEvent extends nsIAccessibleEvent {
readonly scrollX: u32;
@@ -638,7 +635,7 @@ declare global {
readonly maxScrollY: u32;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleSelectable.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleSelectable.idl
interface nsIAccessibleSelectable extends nsISupports {
readonly selectedItems: nsIArray;
@@ -651,7 +648,7 @@ declare global {
unselectAll(): void;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStateChangeEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleStateChangeEvent.idl
interface nsIAccessibleStateChangeEvent extends nsIAccessibleEvent {
readonly state: u32;
@@ -659,7 +656,7 @@ declare global {
readonly isEnabled: boolean;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleStates.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleStates.idl
interface nsIAccessibleStates extends nsISupports {
readonly STATE_UNAVAILABLE?: 1;
@@ -717,7 +714,7 @@ declare global {
readonly EXT_STATE_CURRENT?: 131072;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTable.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTable.idl
interface nsIAccessibleTable extends nsISupports {
readonly caption: nsIAccessible;
@@ -761,14 +758,14 @@ declare global {
isSelected(): boolean;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTableChangeEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTableChangeEvent.idl
interface nsIAccessibleTableChangeEvent extends nsIAccessibleEvent {
readonly rowOrColIndex: i32;
readonly RowsOrColsCount: i32;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleText.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleText.idl
interface nsIAccessibleText extends nsISupports {
readonly TEXT_OFFSET_END_OF_TEXT?: -1;
@@ -860,7 +857,7 @@ declare global {
readonly selectionRanges: nsIArray;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextChangeEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTextChangeEvent.idl
interface nsIAccessibleTextChangeEvent extends nsIAccessibleEvent {
readonly start: i32;
@@ -869,7 +866,7 @@ declare global {
readonly modifiedText: string;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextLeafRange.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTextLeafRange.idl
interface nsIAccessibleTextLeafPoint extends nsISupports {
readonly DIRECTION_NEXT?: 0;
@@ -888,7 +885,7 @@ declare global {
): nsIAccessibleTextLeafPoint;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextRange.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTextRange.idl
interface nsIAccessibleTextRange extends nsISupports {
readonly EndPoint_Start?: 1;
@@ -910,13 +907,13 @@ declare global {
crop(aContainer: nsIAccessible): boolean;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTextSelectionChangeEvent.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTextSelectionChangeEvent.idl
interface nsIAccessibleTextSelectionChangeEvent extends nsIAccessibleEvent {
readonly selectionRanges: nsIArray;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleTypes.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleTypes.idl
interface nsIAccessibleScrollType extends nsISupports {
readonly SCROLL_TYPE_TOP_LEFT?: 0;
@@ -934,7 +931,7 @@ declare global {
readonly COORDTYPE_PARENT_RELATIVE?: 2;
}
- // https://searchfox.org/mozilla-central/source/accessible/interfaces/nsIAccessibleValue.idl
+ // https://searchfox.org/firefox-main/source/accessible/interfaces/nsIAccessibleValue.idl
interface nsIAccessibleValue extends nsISupports {
readonly maximumValue: double;
@@ -943,7 +940,7 @@ declare global {
readonly minimumIncrement: double;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/alerts/nsIAlertsService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/alerts/nsIAlertsService.idl
interface nsIAlertAction extends nsISupports {
readonly action: string;
@@ -1002,6 +999,7 @@ declare global {
getHistory(): string[];
teardown(): void;
pbmTeardown(): void;
+ isFullscreen(): boolean;
}
interface nsIAlertsDoNotDisturb extends nsISupports {
@@ -1009,7 +1007,7 @@ declare global {
suppressForScreenSharing: boolean;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppShellService.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIAppShellService.idl
interface nsIAppShellService extends nsISupports {
readonly SIZE_TO_CONTENT?: -1;
@@ -1032,7 +1030,7 @@ declare global {
readonly hasHiddenWindow: boolean;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIAppWindow.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIAppWindow.idl
interface nsIAppWindow extends nsISupports {
readonly docShell: nsIDocShell;
@@ -1060,7 +1058,7 @@ declare global {
showInitialViewer(): void;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediator.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIWindowMediator.idl
interface nsIWindowMediator extends nsISupports {
getEnumerator(aWindowType: string): nsISimpleEnumerator;
@@ -1079,14 +1077,14 @@ declare global {
removeListener(aListener: nsIWindowMediatorListener): void;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowMediatorListener.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIWindowMediatorListener.idl
interface nsIWindowMediatorListener extends nsISupports {
onOpenWindow(window: nsIAppWindow): void;
onCloseWindow(window: nsIAppWindow): void;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIWindowlessBrowser.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIWindowlessBrowser.idl
interface nsIWindowlessBrowser extends nsIWebNavigation {
close(): void;
@@ -1094,7 +1092,7 @@ declare global {
readonly browsingContext: BrowsingContext;
}
- // https://searchfox.org/mozilla-central/source/xpfe/appshell/nsIXULBrowserWindow.idl
+ // https://searchfox.org/firefox-main/source/xpfe/appshell/nsIXULBrowserWindow.idl
interface nsIXULBrowserWindow extends nsISupports {
setOverLink(link: string): void;
@@ -1108,7 +1106,7 @@ declare global {
hideTooltip(): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/startup/public/nsIAppStartup.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/startup/public/nsIAppStartup.idl
} // global
declare enum nsIAppStartup_IDLShutdownPhase {
@@ -1149,6 +1147,7 @@ declare global {
trackStartupCrashEnd(): void;
quit(aMode: u32, aExitCode?: i32): boolean;
advanceShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): void;
+ setImpendingShutdown(): void;
isInOrBeyondShutdownPhase(aPhase: nsIAppStartup.IDLShutdownPhase): boolean;
readonly shuttingDown: boolean;
readonly attemptingQuit: boolean;
@@ -1161,7 +1160,7 @@ declare global {
getStartupInfo(): any;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteController.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteController.idl
interface nsIAutoCompleteController extends nsISupports {
readonly STATUS_NONE?: 1;
@@ -1193,7 +1192,7 @@ declare global {
resetInternalState(): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteInput.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteInput.idl
interface nsIAutoCompleteInput extends nsISupports {
readonly popupElement: Element;
@@ -1226,7 +1225,7 @@ declare global {
readonly invalidatePreviousResult: boolean;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompletePopup.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompletePopup.idl
interface nsIAutoCompletePopup extends nsISupports {
readonly INVALIDATE_REASON_NEW_RESULT?: 0;
@@ -1250,7 +1249,7 @@ declare global {
selectEntry(): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteResult.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteResult.idl
interface nsIAutoCompleteResult extends nsISupports {
readonly RESULT_IGNORED?: 1;
@@ -1275,7 +1274,7 @@ declare global {
removeValueAt(rowIndex: i32): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSearch.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteSearch.idl
interface nsIAutoCompleteSearch extends nsISupports {
startSearch(
@@ -1294,7 +1293,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleResult.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleResult.idl
interface nsIAutoCompleteSimpleResult extends nsIAutoCompleteResult {
setSearchString(aSearchString: string): void;
@@ -1327,13 +1326,13 @@ declare global {
onValueRemoved(aResult: nsIAutoCompleteSimpleResult, aValue: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleSearch.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/autocomplete/nsIAutoCompleteSimpleSearch.idl
interface nsIAutoCompleteSimpleSearch extends nsIAutoCompleteSearch {
overrideNextResult(values: nsIAutoCompleteResult): void;
}
- // https://searchfox.org/mozilla-central/source/dom/media/autoplay/nsIAutoplay.idl
+ // https://searchfox.org/firefox-main/source/dom/media/autoplay/nsIAutoplay.idl
interface nsIAutoplay extends nsISupports {
readonly ALLOWED?: 0;
@@ -1341,7 +1340,7 @@ declare global {
readonly BLOCKED_ALL?: 5;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
interface nsIHangDetails extends nsISupports {
readonly wasPersisted: boolean;
@@ -1355,7 +1354,7 @@ declare global {
readonly annotations: any;
}
- // https://searchfox.org/mozilla-central/source/browser/components/nsIBrowserHandler.idl
+ // https://searchfox.org/firefox-main/source/browser/components/nsIBrowserHandler.idl
interface nsIBrowserHandler extends nsISupports {
startPage: string;
@@ -1367,7 +1366,7 @@ declare global {
getFeatures(aCmdLine: nsICommandLine): string;
}
- // https://searchfox.org/mozilla-central/source/caps/nsIAddonPolicyService.idl
+ // https://searchfox.org/firefox-main/source/caps/nsIAddonPolicyService.idl
interface nsIAddonPolicyService extends nsISupports {
readonly defaultCSP: string;
@@ -1400,7 +1399,7 @@ declare global {
validateAddonCSP(aPolicyString: string, aPermittedPolicy: u32): string;
}
- // https://searchfox.org/mozilla-central/source/caps/nsIDomainPolicy.idl
+ // https://searchfox.org/firefox-main/source/caps/nsIDomainPolicy.idl
interface nsIDomainPolicy extends nsISupports {
readonly blocklist: nsIDomainSet;
@@ -1418,7 +1417,7 @@ declare global {
containsSuperDomain(aDomain: nsIURI): boolean;
}
- // https://searchfox.org/mozilla-central/source/caps/nsIPrincipal.idl
+ // https://searchfox.org/firefox-main/source/caps/nsIPrincipal.idl
interface nsIPrincipal extends nsISupports {
equals(other: nsIPrincipal): boolean;
@@ -1489,7 +1488,7 @@ declare global {
readonly precursorPrincipal: nsIPrincipal;
}
- // https://searchfox.org/mozilla-central/source/caps/nsIScriptSecurityManager.idl
+ // https://searchfox.org/firefox-main/source/caps/nsIScriptSecurityManager.idl
interface nsIScriptSecurityManager extends nsISupports {
readonly STANDARD?: 0;
@@ -1560,10 +1559,9 @@ declare global {
activateDomainPolicy(): nsIDomainPolicy;
readonly domainPolicyActive: boolean;
policyAllowsScript(aDomain: nsIURI): boolean;
- readonly firstUnexpectedJavaScriptLoad: string;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/captivedetect/nsICaptivePortalDetector.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/captivedetect/nsICaptivePortalDetector.idl
interface nsICaptivePortalCallback extends nsISupports {
prepare(): void;
@@ -1580,14 +1578,14 @@ declare global {
finishPreparation(ifname: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/cascade_bloom_filter/nsICascadeFilter.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/cascade_bloom_filter/nsICascadeFilter.idl
interface nsICascadeFilter extends nsISupports {
setFilterData(data: u8[]): void;
has(key: string): boolean;
}
- // https://searchfox.org/mozilla-central/source/chrome/nsIChromeRegistry.idl
+ // https://searchfox.org/firefox-main/source/chrome/nsIChromeRegistry.idl
interface nsIChromeRegistry extends nsISupports {
readonly NONE?: 0;
@@ -1602,17 +1600,15 @@ declare global {
isLocaleRTL(package: string): boolean;
allowScriptsForPackage(url: nsIURI): boolean;
allowContentToAccess(url: nsIURI): boolean;
- canLoadURLRemotely(url: nsIURI): boolean;
- mustLoadURLRemotely(url: nsIURI): boolean;
}
- // https://searchfox.org/mozilla-central/source/chrome/nsIToolkitChromeRegistry.idl
+ // https://searchfox.org/firefox-main/source/chrome/nsIToolkitChromeRegistry.idl
interface nsIToolkitChromeRegistry extends nsIXULChromeRegistry {
getLocalesForPackage(aPackage: string): nsIUTF8StringEnumerator;
}
- // https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandManager.idl
+ // https://searchfox.org/firefox-main/source/dom/commandhandler/nsICommandManager.idl
interface nsICommandManager extends nsISupports {
addCommandObserver(
@@ -1643,7 +1639,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/dom/commandhandler/nsICommandParams.idl
+ // https://searchfox.org/firefox-main/source/dom/commandhandler/nsICommandParams.idl
interface nsICommandParams extends nsISupports {
readonly eNoType?: 0;
@@ -1670,7 +1666,7 @@ declare global {
removeValue(name: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLine.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/commandlines/nsICommandLine.idl
interface nsICommandLine extends nsISupports {
readonly STATE_INITIAL_LAUNCH?: 0;
@@ -1690,22 +1686,22 @@ declare global {
resolveURI(aArgument: string): nsIURI;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineHandler.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/commandlines/nsICommandLineHandler.idl
interface nsICommandLineHandler extends nsISupports {
handle(aCommandLine: nsICommandLine): void;
readonly helpInfo: string;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineRunner.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/commandlines/nsICommandLineRunner.idl
- // https://searchfox.org/mozilla-central/source/toolkit/components/commandlines/nsICommandLineValidator.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/commandlines/nsICommandLineValidator.idl
interface nsICommandLineValidator extends nsISupports {
validate(aCommandLine: nsICommandLine): void;
}
- // https://searchfox.org/mozilla-central/source/editor/composer/nsIEditingSession.idl
+ // https://searchfox.org/firefox-main/source/editor/composer/nsIEditingSession.idl
interface nsIEditingSession extends nsISupports {
readonly eEditorOK?: 0;
@@ -1727,7 +1723,22 @@ declare global {
getEditorForWindow(window: mozIDOMWindowProxy): nsIEditor;
}
- // https://searchfox.org/mozilla-central/source/dom/events/nsIEventListenerService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/content-classifier/nsIContentClassifierRemoteSettingsClient.idl
+
+ interface nsIContentClassifierRemoteSettingsClient extends nsISupports {
+ init(aService: nsIContentClassifierService): Promise;
+ shutdown(): void;
+ getListBytes(aName: string): Promise;
+ }
+
+ // https://searchfox.org/firefox-main/source/toolkit/components/content-classifier/nsIContentClassifierService.idl
+
+ interface nsIContentClassifierService extends nsISupports {
+ onListsChanged(aUpdated: string[], aRemoved: string[]): void;
+ getFeatureNames(): string[];
+ }
+
+ // https://searchfox.org/firefox-main/source/dom/events/nsIEventListenerService.idl
interface nsIEventListenerChange extends nsISupports {
readonly target: EventTarget;
@@ -1767,7 +1778,7 @@ declare global {
removeListenerChangeListener(aListener: nsIListenerChangeListener): void;
}
- // https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginChromeService.idl
+ // https://searchfox.org/firefox-main/source/dom/media/gmp/mozIGeckoMediaPluginChromeService.idl
interface mozIGeckoMediaPluginChromeService extends nsISupports {
addPluginDirectory(directory: string): void;
@@ -1779,14 +1790,14 @@ declare global {
getStorageDir(): nsIFile;
}
- // https://searchfox.org/mozilla-central/source/dom/media/gmp/mozIGeckoMediaPluginService.idl
+ // https://searchfox.org/firefox-main/source/dom/media/gmp/mozIGeckoMediaPluginService.idl
interface mozIGeckoMediaPluginService extends nsISupports {
readonly thread: nsIThread;
RunPluginCrashCallbacks(pluginId: u32, pluginName: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/dap/nsIDAPTelemetry.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/dap/nsIDAPTelemetry.idl
interface nsIDAPTelemetry extends nsISupports {
GetReportPrioSum(
@@ -1818,7 +1829,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShell.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocShell.idl
} // global
declare enum nsIDocShell_DocShellEnumeratorDirection {
@@ -1953,7 +1964,7 @@ declare global {
persistLayoutHistoryState(): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeItem.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocShellTreeItem.idl
interface nsIDocShellTreeItem extends nsISupports {
readonly typeChrome?: 0;
@@ -1976,7 +1987,7 @@ declare global {
readonly domWindow: mozIDOMWindowProxy;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocShellTreeOwner.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocShellTreeOwner.idl
interface nsIDocShellTreeOwner extends nsISupports {
contentShellAdded(
@@ -2007,7 +2018,7 @@ declare global {
readonly hasPrimaryContent: boolean;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentLoaderFactory.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocumentLoaderFactory.idl
interface nsIDocumentLoaderFactory extends nsISupports {
createInstance(
@@ -2026,7 +2037,7 @@ declare global {
): nsIDocumentViewer;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewer.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocumentViewer.idl
} // global
declare enum nsIDocumentViewer_PermitUnloadAction {
@@ -2089,7 +2100,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIDocumentViewerEdit.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIDocumentViewerEdit.idl
interface nsIDocumentViewerEdit extends nsISupports {
readonly COPY_IMAGE_TEXT?: 1;
@@ -2110,7 +2121,7 @@ declare global {
setCommandNode(aNode: Node): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsILoadContext.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsILoadContext.idl
interface nsILoadContext extends nsISupports {
readonly associatedWindow: mozIDOMWindowProxy;
@@ -2124,19 +2135,19 @@ declare global {
readonly originAttributes: any;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsILoadURIDelegate.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsILoadURIDelegate.idl
interface nsILoadURIDelegate extends nsISupports {
handleLoadError(aURI: nsIURI, aError: nsresult, aErrorModule: i16): nsIURI;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIPrivacyTransitionObserver.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIPrivacyTransitionObserver.idl
type nsIPrivacyTransitionObserver = Callable<{
privateModeChanged(enabled: boolean): void;
}>;
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIReflowObserver.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIReflowObserver.idl
interface nsIReflowObserver extends nsISupports {
reflow(start: DOMHighResTimeStamp, end: DOMHighResTimeStamp): void;
@@ -2146,7 +2157,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIRefreshURI.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIRefreshURI.idl
interface nsIRefreshURI extends nsISupports {
refreshURI(aURI: nsIURI, aPrincipal: nsIPrincipal, aMillis: u32): void;
@@ -2155,7 +2166,7 @@ declare global {
readonly refreshPending: boolean;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipListener.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsITooltipListener.idl
interface nsITooltipListener extends nsISupports {
onShowTooltip(
@@ -2167,7 +2178,7 @@ declare global {
onHideTooltip(): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsITooltipTextProvider.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsITooltipTextProvider.idl
interface nsITooltipTextProvider extends nsISupports {
getNodeText(
@@ -2177,13 +2188,13 @@ declare global {
): boolean;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIURIFixup.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIURIFixup.idl
interface nsIURIFixupInfo extends nsISupports {
consumer: BrowsingContext;
preferredURI: nsIURI;
fixedURI: nsIURI;
- keywordProviderName: string;
+ keywordProviderId: string;
keywordAsSent: string;
schemelessInput: nsILoadInfo.SchemelessInputType;
fixupChangedProtocol: boolean;
@@ -2214,7 +2225,7 @@ declare global {
isDomainKnown(aDomain: string): boolean;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigation.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIWebNavigation.idl
interface nsIWebNavigation extends nsISupports {
readonly LOAD_FLAGS_MASK?: 65535;
@@ -2265,30 +2276,29 @@ declare global {
resumeRedirectedLoad(aLoadIdentifier: u64): void;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIWebNavigationInfo.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIWebNavigationInfo.idl
interface nsIWebNavigationInfo extends nsISupports {
readonly UNSUPPORTED?: 0;
readonly IMAGE?: 1;
- readonly FALLBACK?: 2;
readonly OTHER?: 32768;
isTypeSupported(aType: string): u32;
}
- // https://searchfox.org/mozilla-central/source/docshell/base/nsIWebPageDescriptor.idl
+ // https://searchfox.org/firefox-main/source/docshell/base/nsIWebPageDescriptor.idl
interface nsIWebPageDescriptor extends nsISupports {
loadPageAsViewSource(otherDocShell: nsIDocShell, aURL: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/base/mozIDOMWindow.idl
+ // https://searchfox.org/firefox-main/source/dom/base/mozIDOMWindow.idl
interface mozIDOMWindow extends nsISupports {}
interface mozIDOMWindowProxy extends nsISupports {}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIContentPolicy.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIContentPolicy.idl
} // global
declare enum nsIContentPolicy_nsContentPolicyType {
@@ -2354,7 +2364,8 @@ declare enum nsIContentPolicy_nsContentPolicyType {
TYPE_JSON = 62,
TYPE_INTERNAL_JSON_PRELOAD = 63,
TYPE_INTERNAL_IMAGE_NOTIFICATION = 64,
- TYPE_END = 65,
+ TYPE_TEXT = 65,
+ TYPE_INTERNAL_TEXT_PRELOAD = 66,
}
declare global {
@@ -2375,7 +2386,7 @@ declare global {
shouldProcess(aContentLocation: nsIURI, aLoadInfo: nsILoadInfo): i16;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIDroppedLinkHandler.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIDroppedLinkHandler.idl
interface nsIDroppedLinkItem extends nsISupports {
readonly url: string;
@@ -2399,7 +2410,7 @@ declare global {
getPolicyContainer(aEvent: DragEvent): nsIPolicyContainer;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIEventSourceEventService.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIEventSourceEventService.idl
interface nsIEventSourceEventListener extends nsISupports {
eventSourceConnectionOpened(aHttpChannelId: u64): void;
@@ -2426,7 +2437,7 @@ declare global {
hasListenerFor(aInnerWindowID: u64): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIImageLoadingContent.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIImageLoadingContent.idl
interface nsIImageLoadingContent extends imgINotificationObserver {
readonly UNKNOWN_REQUEST?: -1;
@@ -2434,11 +2445,11 @@ declare global {
readonly PENDING_REQUEST?: 1;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIMessageManager.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIMessageManager.idl
interface nsIMessageSender extends nsISupports {}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIObjectLoadingContent.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIObjectLoadingContent.idl
interface nsIObjectLoadingContent extends nsISupports {
readonly TYPE_LOADING?: 0;
@@ -2450,9 +2461,9 @@ declare global {
readonly srcURI: nsIURI;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsIScriptChannel.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIScriptChannel.idl
- // https://searchfox.org/mozilla-central/source/dom/base/nsIScriptableContentIterator.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsIScriptableContentIterator.idl
} // global
declare enum nsIScriptableContentIterator_IteratorType {
@@ -2499,7 +2510,7 @@ declare global {
positionAt(aNode: Node): void;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsISelectionController.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsISelectionController.idl
} // global
declare enum nsISelectionController_ControllerScrollFlags {
@@ -2568,6 +2579,7 @@ declare global {
wordMove(forward: boolean, extend: boolean): void;
lineMove(forward: boolean, extend: boolean): void;
intraLineMove(forward: boolean, extend: boolean): void;
+ paragraphMove(forward: boolean, extend: boolean): void;
pageMove(forward: boolean, extend: boolean): void;
completeScroll(forward: boolean): void;
completeMove(forward: boolean, extend: boolean): void;
@@ -2576,7 +2588,7 @@ declare global {
scrollCharacter(right: boolean): void;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsISelectionDisplay.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsISelectionDisplay.idl
interface nsISelectionDisplay extends nsISupports {
readonly DISPLAY_TEXT?: 1;
@@ -2588,7 +2600,7 @@ declare global {
getSelectionFlags(): i16;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsISelectionListener.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsISelectionListener.idl
interface nsISelectionListener extends nsISupports {
readonly NO_REASON?: 0;
@@ -2619,7 +2631,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/dom/base/nsISlowScriptDebug.idl
+ // https://searchfox.org/firefox-main/source/dom/base/nsISlowScriptDebug.idl
type nsISlowScriptDebugCallback = Callable<{
handleSlowScriptDebug(aWindow: nsIDOMWindow): void;
@@ -2641,7 +2653,7 @@ declare global {
remoteActivationHandler: nsISlowScriptDebugRemoteCallback;
}
- // https://searchfox.org/mozilla-central/source/dom/console/nsIConsoleAPIStorage.idl
+ // https://searchfox.org/firefox-main/source/dom/console/nsIConsoleAPIStorage.idl
interface nsIConsoleAPIStorage extends nsISupports {
getEvents(aId?: string): any;
@@ -2651,11 +2663,11 @@ declare global {
clearEvents(aId?: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/file/ipc/mozIRemoteLazyInputStream.idl
+ // https://searchfox.org/firefox-main/source/dom/file/ipc/mozIRemoteLazyInputStream.idl
interface mozIRemoteLazyInputStream extends nsISupports {}
- // https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessChild.idl
+ // https://searchfox.org/firefox-main/source/dom/ipc/nsIDOMProcessChild.idl
interface nsIDOMProcessChild extends nsISupports {
readonly childID: u64;
@@ -2664,7 +2676,7 @@ declare global {
readonly canSend: boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/ipc/nsIDOMProcessParent.idl
+ // https://searchfox.org/firefox-main/source/dom/ipc/nsIDOMProcessParent.idl
interface nsIDOMProcessParent extends nsISupports {
readonly childID: u64;
@@ -2680,7 +2692,7 @@ declare global {
invalidateKeepAlive(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/ipc/nsIHangReport.idl
+ // https://searchfox.org/firefox-main/source/dom/ipc/nsIHangReport.idl
interface nsIHangReport extends nsISupports {
readonly scriptBrowser: Element;
@@ -2695,23 +2707,23 @@ declare global {
isReportForBrowserOrChildren(aFrameLoader: FrameLoader): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/ipc/nsILoginDetectionService.idl
+ // https://searchfox.org/firefox-main/source/dom/ipc/nsILoginDetectionService.idl
interface nsILoginDetectionService extends nsISupports {
init(): void;
isLoginsLoaded(): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/audiochannel/nsIAudioChannelAgent.idl
+ // https://searchfox.org/firefox-main/source/dom/audiochannel/nsIAudioChannelAgent.idl
interface nsISuspendedTypes extends nsISupports {
readonly NONE_SUSPENDED?: 0;
readonly SUSPENDED_BLOCK?: 1;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/domstubs.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/domstubs.idl
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowser.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIBrowser.idl
interface nsIBrowser extends nsISupports {
dropLinks(links: string[], triggeringPrincipal: nsIPrincipal): void;
@@ -2755,7 +2767,7 @@ declare global {
finishChangeRemoteness(aPendingSwitchId: u64): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserChild.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIBrowserChild.idl
interface nsIBrowserChild extends nsISupports {
readonly messageManager: ContentFrameMessageManager;
@@ -2766,7 +2778,7 @@ declare global {
readonly chromeOuterWindowID: u64;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserDOMWindow.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIBrowserDOMWindow.idl
interface nsIOpenURIInFrameParams extends nsISupports {
readonly openWindowInfo: nsIOpenWindowInfo;
@@ -2826,13 +2838,13 @@ declare global {
readonly tabCount: u32;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIBrowserUsage.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIBrowserUsage.idl
interface nsIBrowserUsage extends nsISupports {
getUniqueDomainsVisitedInPast24Hours(): u32;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPermissionPrompt.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIContentPermissionPrompt.idl
interface nsIContentPermissionType extends nsISupports {
readonly type: string;
@@ -2847,6 +2859,7 @@ declare global {
readonly element: Element;
readonly hasValidTransientUserGestureActivation: boolean;
readonly isRequestDelegatedToUnsafeThirdParty: boolean;
+ readonly ignoreAllowSitePermission: boolean;
getDelegatePrincipal(aType: string): nsIPrincipal;
notifyShown(): void;
cancel(): void;
@@ -2857,7 +2870,7 @@ declare global {
prompt(request: nsIContentPermissionRequest): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIContentPrefService2.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIContentPrefService2.idl
interface nsIContentPrefObserver extends nsISupports {
onContentPrefSet(
@@ -2987,17 +3000,17 @@ declare global {
readonly value: nsIVariant;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMGlobalPropertyInitializer.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIDOMGlobalPropertyInitializer.idl
interface nsIDOMGlobalPropertyInitializer extends nsISupports {
init(window: mozIDOMWindow): any;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindow.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIDOMWindow.idl
interface nsIDOMWindow extends nsISupports {}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIDOMWindowUtils.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIDOMWindowUtils.idl
type nsISynthesizedEventCallback = Callable<{
onCompleteDispatch(): void;
@@ -3080,8 +3093,6 @@ declare global {
readonly INPUT_CONTEXT_ORIGIN_MAIN?: 0;
readonly INPUT_CONTEXT_ORIGIN_CONTENT?: 1;
readonly CONTENT_COMMAND_FLAG_PREVENT_SET_SELECTION?: 2;
- readonly QUERY_CONTENT_FLAG_USE_NATIVE_LINE_BREAK?: 0;
- readonly QUERY_CONTENT_FLAG_USE_XP_LINE_BREAK?: 1;
readonly QUERY_CONTENT_FLAG_SELECTION_SPELLCHECK?: 2;
readonly QUERY_CONTENT_FLAG_SELECTION_IME_RAWINPUT?: 4;
readonly QUERY_CONTENT_FLAG_SELECTION_IME_SELECTEDRAWTEXT?: 8;
@@ -3380,6 +3391,7 @@ declare global {
aWidth: float,
aHeight: float
): DOMRect;
+ getElementBoundingScreenRect(aElement: Element): DOMRect;
toScreenRectInCSSUnits(
aX: float,
aY: float,
@@ -3430,7 +3442,10 @@ declare global {
aY: i32,
aAdditionalFlags?: u32
): nsIQueryContentEventResult;
- remoteFrameFullscreenChanged(aFrameElement: Element): void;
+ remoteFrameFullscreenChanged(
+ aFrameElement: Element,
+ aFullscreenKeyboardLockEnabled?: boolean
+ ): void;
remoteFrameFullscreenReverted(): void;
handleFullscreenRequests(): boolean;
exitFullscreen(aDontRestoreViewSize?: boolean): void;
@@ -3586,7 +3601,7 @@ declare global {
destruct(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIFocusManager.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIFocusManager.idl
interface nsIFocusManager extends nsISupports {
readonly FLAG_RAISE?: 1;
@@ -3639,19 +3654,19 @@ declare global {
elementIsFocusable(aElement: Element, aFlags: u32): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIGeckoViewServiceWorker.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIGeckoViewServiceWorker.idl
interface nsIGeckoViewServiceWorker extends nsISupports {
openWindow(uri: nsIURI, aOpenWindowInfo: nsIOpenWindowInfo): Promise;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIPermissionDelegateHandler.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIPermissionDelegateHandler.idl
interface nsIPermissionDelegateHandler extends nsISupports {
maybeUnsafePermissionDelegate(aTypes: string[]): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIQueryContentEventResult.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIQueryContentEventResult.idl
interface nsIQueryContentEventResult extends nsISupports {
readonly offset: u32;
@@ -3674,7 +3689,7 @@ declare global {
readonly tentativeCaretOffsetNotFound: boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIRemoteTab.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIRemoteTab.idl
} // global
declare enum nsIRemoteTab_NavigationType {
@@ -3712,7 +3727,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIServiceWorkerManager.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIServiceWorkerManager.idl
interface nsIServiceWorkerUnregisterCallback extends nsISupports {
unregisterSucceeded(aState: boolean): void;
@@ -3828,7 +3843,7 @@ declare global {
removeListener(aListener: nsIServiceWorkerManagerListener): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsIStructuredCloneContainer.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsIStructuredCloneContainer.idl
interface nsIStructuredCloneContainer extends nsISupports {
initFromBase64(aData: string, aFormatVersion: u32): void;
@@ -3838,7 +3853,7 @@ declare global {
readonly formatVersion: u32;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessor.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsITextInputProcessor.idl
interface nsITextInputProcessor extends nsISupports {
readonly ATTR_RAW_CLAUSE?: 2;
@@ -3901,7 +3916,7 @@ declare global {
): u32;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/base/nsITextInputProcessorCallback.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/base/nsITextInputProcessorCallback.idl
interface nsITextInputProcessorNotification extends nsISupports {
readonly type: string;
@@ -3929,7 +3944,7 @@ declare global {
): boolean;
}>;
- // https://searchfox.org/mozilla-central/source/dom/bindings/nsIScriptError.idl
+ // https://searchfox.org/firefox-main/source/dom/bindings/nsIScriptError.idl
interface nsIScriptErrorNote extends nsISupports {
readonly errorMessage: string;
@@ -4006,22 +4021,28 @@ declare global {
initSourceId(sourceId: u32): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/events/nsIDOMEventListener.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/events/nsIDOMEventListener.idl
- // https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPosition.idl
+ // https://searchfox.org/firefox-main/source/dom/geolocation/nsIGeolocationUIUtils.idl
+
+ interface nsIGeolocationUIUtils extends nsISupports {
+ dismissPrompts(aBC: BrowsingContext): void;
+ }
+
+ // https://searchfox.org/firefox-main/source/dom/interfaces/geolocation/nsIDOMGeoPosition.idl
interface nsIDOMGeoPosition extends nsISupports {
readonly timestamp: EpochTimeStamp;
readonly coords: nsIDOMGeoPositionCoords;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCallback.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/geolocation/nsIDOMGeoPositionCallback.idl
type nsIDOMGeoPositionCallback = Callable<{
handleEvent(position: nsIDOMGeoPosition): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionCoords.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/geolocation/nsIDOMGeoPositionCoords.idl
interface nsIDOMGeoPositionCoords extends nsISupports {
readonly latitude: double;
@@ -4033,13 +4054,13 @@ declare global {
readonly speed: double;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/geolocation/nsIDOMGeoPositionErrorCallback.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/geolocation/nsIDOMGeoPositionErrorCallback.idl
type nsIDOMGeoPositionErrorCallback = Callable<{
handleEvent(positionError: GeolocationPositionError): void;
}>;
- // https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsICredentialChooserService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/credentialmanagement/nsICredentialChooserService.idl
interface nsICredentialChooserService extends nsISupports {
fetchImageToDataURI(window: mozIDOMWindow, uri: nsIURI): Promise;
@@ -4061,13 +4082,13 @@ declare global {
): Promise;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsICredentialChosenCallback.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/credentialmanagement/nsICredentialChosenCallback.idl
type nsICredentialChosenCallback = Callable<{
notify(aChosenID: string): void;
}>;
- // https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialPromptService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/credentialmanagement/nsIIdentityCredentialPromptService.idl
interface nsIIdentityCredentialPromptService extends nsISupports {
showProviderPrompt(
@@ -4084,7 +4105,7 @@ declare global {
close(browsingContext: BrowsingContext): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/credentialmanagement/nsIIdentityCredentialStorageService.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/credentialmanagement/nsIIdentityCredentialStorageService.idl
interface nsIIdentityCredentialStorageService extends nsISupports {
setState(
@@ -4119,20 +4140,20 @@ declare global {
deleteFromOriginAttributesPattern(aPattern: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/indexedDB/nsIIDBPermissionsRequest.idl
+ // https://searchfox.org/firefox-main/source/dom/indexedDB/nsIIDBPermissionsRequest.idl
interface nsIIDBPermissionsRequest extends nsISupports {
readonly browserElement: Element;
readonly responseObserver: nsIObserver;
}
- // https://searchfox.org/mozilla-central/source/dom/indexedDB/nsIIndexedDatabaseManager.idl
+ // https://searchfox.org/firefox-main/source/dom/indexedDB/nsIIndexedDatabaseManager.idl
interface nsIIndexedDatabaseManager extends nsISupports {
doMaintenance(): Promise;
}
- // https://searchfox.org/mozilla-central/source/dom/localstorage/nsILocalStorageManager.idl
+ // https://searchfox.org/firefox-main/source/dom/localstorage/nsILocalStorageManager.idl
interface nsILocalStorageManager extends nsISupports {
readonly nextGenLocalStorageEnabled: boolean;
@@ -4141,7 +4162,7 @@ declare global {
getState(aPrincipal: nsIPrincipal): Promise;
}
- // https://searchfox.org/mozilla-central/source/dom/media/nsIAudioDeviceInfo.idl
+ // https://searchfox.org/firefox-main/source/dom/media/nsIAudioDeviceInfo.idl
interface nsIAudioDeviceInfo extends nsISupports {
readonly TYPE_UNKNOWN?: 0;
@@ -4176,7 +4197,7 @@ declare global {
readonly minLatency: u32;
}
- // https://searchfox.org/mozilla-central/source/dom/media/nsIMediaDevice.idl
+ // https://searchfox.org/firefox-main/source/dom/media/nsIMediaDevice.idl
interface nsIMediaDevice extends nsISupports {
readonly type: string;
@@ -4188,7 +4209,7 @@ declare global {
readonly rawName: string;
}
- // https://searchfox.org/mozilla-central/source/dom/media/nsIMediaManager.idl
+ // https://searchfox.org/firefox-main/source/dom/media/nsIMediaManager.idl
interface nsIMediaManagerService extends nsISupports {
readonly STATE_NOCAPTURE?: 0;
@@ -4208,14 +4229,24 @@ declare global {
sanitizeDeviceIds(sinceWhen: i64): void;
}
- // https://searchfox.org/mozilla-central/source/dom/modelcontext/nsIModelContextService.idl
+ // https://searchfox.org/firefox-main/source/dom/media/nsIMediaPictureInPictureProvider.idl
+
+ interface nsIMediaPictureInPictureProvider extends nsISupports {
+ openMediaPictureInPictureWindow(
+ videoElement: Element,
+ pictureInPictureWindow: PictureInPictureWindow
+ ): Promise;
+ closeMediaPictureInPictureWindow(videoElement: Element): Promise;
+ }
+
+ // https://searchfox.org/firefox-main/source/dom/modelcontext/nsIModelContextService.idl
interface nsIModelContextService extends nsISupports {
getToolsForWindow(innerWindowId: u64): Promise;
invokeTool(innerWindowId: u64, toolName: string, input?: any): Promise;
}
- // https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsITCPSocketCallback.idl
+ // https://searchfox.org/firefox-main/source/dom/network/interfaces/nsITCPSocketCallback.idl
interface nsITCPSocketCallback extends nsISupports {
readonly BUFFER_SIZE?: 65536;
@@ -4228,7 +4259,7 @@ declare global {
updateBufferedAmount(bufferedAmount: u32, trackingNumber: u32): void;
}
- // https://searchfox.org/mozilla-central/source/dom/network/interfaces/nsIUDPSocketChild.idl
+ // https://searchfox.org/firefox-main/source/dom/network/interfaces/nsIUDPSocketChild.idl
interface nsIUDPSocketInternal extends nsISupports {
callListenerOpened(): void;
@@ -4238,7 +4269,7 @@ declare global {
callListenerError(message: string, filename: string, lineNumber: u32): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/notification/nsINotificationStorage.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/notification/nsINotificationStorage.idl
interface nsINotificationActionStorageEntry extends nsISupports {
readonly name: string;
@@ -4281,7 +4312,7 @@ declare global {
deleteAllExcept(ids: string[]): void;
}
- // https://searchfox.org/mozilla-central/source/dom/notification/nsINotificationHandler.idl
+ // https://searchfox.org/firefox-main/source/dom/notification/nsINotificationHandler.idl
interface nsINotificationHandler extends nsISupports {
respondOnClick(
@@ -4292,7 +4323,7 @@ declare global {
): Promise;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentActionResponse.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/payments/nsIPaymentActionResponse.idl
interface nsIPaymentResponseData extends nsISupports {
readonly GENERAL_RESPONSE?: 0;
@@ -4395,7 +4426,7 @@ declare global {
initData(billingAddress: nsIPaymentAddress): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentAddress.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/payments/nsIPaymentAddress.idl
interface nsIPaymentAddress extends nsISupports {
readonly country: string;
@@ -4424,7 +4455,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequest.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/payments/nsIPaymentRequest.idl
interface nsIPaymentMethodData extends nsISupports {
readonly supportedMethods: string;
@@ -4488,7 +4519,7 @@ declare global {
readonly shippingOption: string;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentRequestService.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/payments/nsIPaymentRequestService.idl
interface nsIPaymentRequestService extends nsISupports {
getPaymentRequestById(aRequestId: string): nsIPaymentRequest;
@@ -4511,7 +4542,7 @@ declare global {
setTestingUIService(aUIService: nsIPaymentUIService): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/payments/nsIPaymentUIService.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/payments/nsIPaymentUIService.idl
interface nsIPaymentUIService extends nsISupports {
showPayment(requestId: string): void;
@@ -4521,13 +4552,19 @@ declare global {
closePayment(requestId: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/power/nsIDOMWakeLockListener.idl
+ // https://searchfox.org/firefox-main/source/dom/permission/nsIPermissionMonitor.idl
+
+ interface nsIPermissionMonitor extends nsISupports {
+ startMonitoring(aCapabilityName: string): void;
+ }
+
+ // https://searchfox.org/firefox-main/source/dom/power/nsIDOMWakeLockListener.idl
type nsIDOMMozWakeLockListener = Callable<{
callback(aTopic: string, aState: string): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/power/nsIPowerManagerService.idl
+ // https://searchfox.org/firefox-main/source/dom/power/nsIPowerManagerService.idl
interface nsIPowerManagerService extends nsISupports {
addWakeLockListener(aListener: nsIDOMMozWakeLockListener): void;
@@ -4536,13 +4573,13 @@ declare global {
newWakeLock(aTopic: string, aWindow?: mozIDOMWindow): nsIWakeLock;
}
- // https://searchfox.org/mozilla-central/source/dom/power/nsIWakeLock.idl
+ // https://searchfox.org/firefox-main/source/dom/power/nsIWakeLock.idl
interface nsIWakeLock extends nsISupports {
unlock(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushErrorReporter.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/push/nsIPushErrorReporter.idl
interface nsIPushErrorReporter extends nsISupports {
readonly ACK_DELIVERED?: 0;
@@ -4558,7 +4595,7 @@ declare global {
reportDeliveryError(messageId: string, reason?: u16): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushNotifier.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/push/nsIPushNotifier.idl
interface nsIPushNotifier extends nsISupports {
notifyPush(scope: string, principal: nsIPrincipal, messageId: string): void;
@@ -4593,7 +4630,7 @@ declare global {
readonly data: nsIPushData;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/push/nsIPushService.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/push/nsIPushService.idl
interface nsIPushSubscription extends nsISupports {
readonly endpoint: string;
@@ -4663,7 +4700,7 @@ declare global {
notificationForOriginClosed(origin: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaArtificialFailure.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaArtificialFailure.idl
} // global
declare enum nsIQuotaArtificialFailure_Category {
@@ -4681,7 +4718,7 @@ declare global {
interface nsIQuotaArtificialFailure
extends nsISupports, Enums {}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaCallbacks.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaCallbacks.idl
type nsIQuotaUsageCallback = Callable<{
onUsageResult(aRequest: nsIQuotaUsageRequest): void;
@@ -4691,7 +4728,7 @@ declare global {
onComplete(aRequest: nsIQuotaRequest): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaManagerService.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaManagerService.idl
interface nsIQuotaManagerService extends nsISupports {
storageName(): nsIQuotaRequest;
@@ -4771,13 +4808,13 @@ declare global {
estimate(aPrincipal: nsIPrincipal): nsIQuotaRequest;
}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaManagerServiceInternal.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaManagerServiceInternal.idl
interface nsIQuotaManagerServiceInternal extends nsISupports {
setThumbnailPrivateIdentityId(aThumbnailPrivateIdentityId: u32): void;
}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaRequests.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaRequests.idl
interface nsIQuotaRequestBase extends nsISupports {
readonly principal: nsIPrincipal;
@@ -4796,7 +4833,7 @@ declare global {
callback: nsIQuotaCallback;
}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaResults.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaResults.idl
interface nsIQuotaFullOriginMetadataResult extends nsISupports {
readonly suffix: string;
@@ -4835,13 +4872,13 @@ declare global {
readonly limit: u64;
}
- // https://searchfox.org/mozilla-central/source/dom/quota/nsIQuotaUtilsService.idl
+ // https://searchfox.org/firefox-main/source/dom/quota/nsIQuotaUtilsService.idl
interface nsIQuotaUtilsService extends nsISupports {
getPrivateIdentityId(aName: string): u32;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityManager.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/security/nsIContentSecurityManager.idl
interface nsIContentSecurityManager extends nsISupports {
performSecurityCheck(
@@ -4850,7 +4887,7 @@ declare global {
): nsIStreamListener;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIContentSecurityPolicy.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/security/nsIContentSecurityPolicy.idl
} // global
declare enum nsIContentSecurityPolicy_CSPDirective {
@@ -4974,18 +5011,18 @@ declare global {
onCSPViolationEvent(aJSON: string, aReportGroupName: string): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIIntegrityPolicy.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/security/nsIIntegrityPolicy.idl
interface nsIIntegrityPolicy extends nsISerializable {}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIPolicyContainer.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/security/nsIPolicyContainer.idl
interface nsIPolicyContainer extends nsISerializable {
readonly csp: nsIContentSecurityPolicy;
initFromCSP(aCSP: nsIContentSecurityPolicy): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/security/nsIReferrerInfo.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/security/nsIReferrerInfo.idl
} // global
declare enum nsIReferrerInfo_ReferrerPolicyIDL {
@@ -5022,7 +5059,7 @@ declare global {
initWithElement(aNode: Element): void;
}
- // https://searchfox.org/mozilla-central/source/dom/security/nsIHttpsOnlyModePermission.idl
+ // https://searchfox.org/firefox-main/source/dom/security/nsIHttpsOnlyModePermission.idl
interface nsIHttpsOnlyModePermission extends nsISupports {
readonly LOAD_INSECURE_DEFAULT?: 0;
@@ -5032,7 +5069,7 @@ declare global {
readonly HTTPSFIRST_LOAD_INSECURE_ALLOW?: 10;
}
- // https://searchfox.org/mozilla-central/source/dom/serializers/nsIDocumentEncoder.idl
+ // https://searchfox.org/firefox-main/source/dom/serializers/nsIDocumentEncoder.idl
interface nsIDocumentEncoderNodeFixup extends nsISupports {
fixupNode(aNode: Node, aSerializeCloneKids: OutParam): Node;
@@ -5084,7 +5121,7 @@ declare global {
setNodeFixup(aFixup: nsIDocumentEncoderNodeFixup): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/sidebar/nsIWebProtocolHandlerRegistrar.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/sidebar/nsIWebProtocolHandlerRegistrar.idl
interface nsIWebProtocolHandlerRegistrar extends nsISupports {
registerProtocolHandler(
@@ -5097,7 +5134,7 @@ declare global {
removeProtocolHandler(protocol: string, uri: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBCallbacks.idl
+ // https://searchfox.org/firefox-main/source/dom/simpledb/nsISDBCallbacks.idl
type nsISDBCallback = Callable<{
onComplete(aRequest: nsISDBRequest): void;
@@ -5107,7 +5144,7 @@ declare global {
onClose(aConnection: nsISDBConnection): void;
}>;
- // https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBConnection.idl
+ // https://searchfox.org/firefox-main/source/dom/simpledb/nsISDBConnection.idl
interface nsISDBConnection extends nsISupports {
init(aPrincipal: nsIPrincipal, aPersistenceType?: string): void;
@@ -5119,7 +5156,7 @@ declare global {
closeCallback: nsISDBCloseCallback;
}
- // https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBRequest.idl
+ // https://searchfox.org/firefox-main/source/dom/simpledb/nsISDBRequest.idl
interface nsISDBRequest extends nsISupports {
readonly result: nsIVariant;
@@ -5128,14 +5165,14 @@ declare global {
callback: nsISDBCallback;
}
- // https://searchfox.org/mozilla-central/source/dom/simpledb/nsISDBResults.idl
+ // https://searchfox.org/firefox-main/source/dom/simpledb/nsISDBResults.idl
interface nsISDBResult extends nsISupports {
getAsArray(): u8[];
getAsArrayBuffer(): any;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIDOMStorageManager.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/storage/nsIDOMStorageManager.idl
interface nsIDOMStorageManager extends nsISupports {
precacheStorage(
@@ -5159,7 +5196,7 @@ declare global {
checkStorage(aPrincipal: nsIPrincipal, aStorage: Storage): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/storage/nsIStorageActivityService.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/storage/nsIStorageActivityService.idl
interface nsIStorageActivityService extends nsISupports {
getActiveOrigins(from: PRTime, to: PRTime): nsIArray;
@@ -5167,13 +5204,13 @@ declare global {
testOnlyReset(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/storage/nsISessionStorageService.idl
+ // https://searchfox.org/firefox-main/source/dom/storage/nsISessionStorageService.idl
interface nsISessionStorageService extends nsISupports {
clearStoragesForOrigin(aPrincipal: nsIPrincipal): void;
}
- // https://searchfox.org/mozilla-central/source/dom/system/nsIOSPermissionRequest.idl
+ // https://searchfox.org/firefox-main/source/dom/system/nsIOSPermissionRequest.idl
interface nsIOSPermissionRequest extends nsISupports {
readonly PERMISSION_STATE_NOTDETERMINED?: 0;
@@ -5193,15 +5230,43 @@ declare global {
maybeRequestScreenCapturePermission(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnArgs.idl
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnArgs.idl
- // https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnAttObj.idl
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnAttObj.idl
- // https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnPromise.idl
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnPromise.idl
- // https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnResult.idl
+ interface nsIWebAuthnAutoFillEntriesCallback extends nsISupports {
+ resolve(entries: nsIWebAuthnAutoFillEntry[]): void;
+ reject(error: nsresult): void;
+ }
- // https://searchfox.org/mozilla-central/source/dom/webauthn/nsIWebAuthnService.idl
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnRelatedOriginFetcher.idl
+
+ interface nsIWebAuthnRelatedOriginCheckCallback extends nsISupports {
+ resolved(): void;
+ rejected(): void;
+ userCancel(): void;
+ }
+
+ interface nsIWebAuthnRelatedOriginFetcher extends nsISupports {
+ readonly MODE_DISABLED?: 0;
+ readonly MODE_NO_PROMPT?: 1;
+ readonly MODE_PROMPT?: 2;
+
+ checkRelatedOriginRequest(
+ aManager: WindowGlobalParent,
+ aRpId: string,
+ aIsCreate: boolean,
+ aShowPrompt: boolean,
+ aCallback: nsIWebAuthnRelatedOriginCheckCallback
+ ): void;
+ cancel(): void;
+ }
+
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnResult.idl
+
+ // https://searchfox.org/firefox-main/source/dom/webauthn/nsIWebAuthnService.idl
interface nsICredentialParameters extends nsISupports {
readonly credentialId: string;
@@ -5229,7 +5294,10 @@ declare global {
readonly isUVPAA: boolean;
cancel(aTransactionId: u64): void;
hasPendingConditionalGet(aBrowsingContextId: u64, aOrigin: string): u64;
- getAutoFillEntries(aTransactionId: u64): nsIWebAuthnAutoFillEntry[];
+ getAutoFillEntries(
+ aTransactionId: u64,
+ aCallback: nsIWebAuthnAutoFillEntriesCallback
+ ): void;
selectAutoFillEntry(aTransactionId: u64, aCredentialId: u8[]): void;
resumeConditionalGet(aTransactionId: u64): void;
pinCallback(aTransactionId: u64, aPin: string): void;
@@ -5261,9 +5329,9 @@ declare global {
runCommand(aCommand: string): void;
}
- // https://searchfox.org/mozilla-central/source/dom/media/webspeech/recognition/nsISpeechRecognitionService.idl
+ // https://searchfox.org/firefox-main/source/dom/media/webspeech/recognition/nsISpeechRecognitionService.idl
- // https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISpeechService.idl
+ // https://searchfox.org/firefox-main/source/dom/media/webspeech/synth/nsISpeechService.idl
interface nsISpeechTaskCallback extends nsISupports {
onPause(): void;
@@ -5299,7 +5367,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/dom/media/webspeech/synth/nsISynthVoiceRegistry.idl
+ // https://searchfox.org/firefox-main/source/dom/media/webspeech/synth/nsISynthVoiceRegistry.idl
interface nsISynthVoiceRegistry extends nsISupports {
addVoice(
@@ -5322,7 +5390,7 @@ declare global {
getVoiceName(aUri: string): string;
}
- // https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerChannelInfo.idl
+ // https://searchfox.org/firefox-main/source/dom/workers/nsIWorkerChannelInfo.idl
interface nsIWorkerChannelLoadInfo extends nsISupports {
workerAssociatedBrowsingContextID: u64;
@@ -5334,7 +5402,7 @@ declare global {
readonly channelId: u64;
}
- // https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebugger.idl
+ // https://searchfox.org/firefox-main/source/dom/workers/nsIWorkerDebugger.idl
interface nsIWorkerDebuggerListener extends nsISupports {
onClose(): void;
@@ -5367,7 +5435,7 @@ declare global {
setDebuggerReady(ready: boolean): void;
}
- // https://searchfox.org/mozilla-central/source/dom/workers/nsIWorkerDebuggerManager.idl
+ // https://searchfox.org/firefox-main/source/dom/workers/nsIWorkerDebuggerManager.idl
interface nsIWorkerDebuggerManagerListener extends nsISupports {
onRegister(aDebugger: nsIWorkerDebugger): void;
@@ -5380,7 +5448,7 @@ declare global {
removeListener(listener: nsIWorkerDebuggerManagerListener): void;
}
- // https://searchfox.org/mozilla-central/source/dom/xslt/xslt/txIEXSLTFunctions.idl
+ // https://searchfox.org/firefox-main/source/dom/xslt/xslt/txIEXSLTFunctions.idl
interface txIEXSLTFunctions extends nsISupports {
match(
@@ -5393,7 +5461,7 @@ declare global {
test(str: string, regex: string, flags: string): boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULButtonElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULButtonElement.idl
interface nsIDOMXULButtonElement extends nsIDOMXULControlElement {
type: string;
@@ -5402,7 +5470,7 @@ declare global {
group: string;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULCommandDispatcher.idl
interface nsIDOMXULCommandDispatcher extends nsISupports {
focusedElement: Element;
@@ -5419,7 +5487,7 @@ declare global {
unlock(): void;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULContainerElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULContainerElement.idl
interface nsIDOMXULContainerItemElement extends nsISupports {
readonly parentContainer: Element;
@@ -5427,13 +5495,13 @@ declare global {
interface nsIDOMXULContainerElement extends nsIDOMXULContainerItemElement {}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULControlElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULControlElement.idl
interface nsIDOMXULControlElement extends nsISupports {
disabled: boolean;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULMenuListElement.idl
interface nsIDOMXULMenuListElement extends nsIDOMXULSelectControlElement {
editable: boolean;
@@ -5442,7 +5510,7 @@ declare global {
image: string;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULMultSelectCntrlEl.idl
interface nsIDOMXULMultiSelectControlElement extends nsIDOMXULSelectControlElement {
selType: string;
@@ -5463,19 +5531,19 @@ declare global {
getSelectedItem(index: i32): Element;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRadioGroupElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULRadioGroupElement.idl
interface nsIDOMXULRadioGroupElement extends nsISupports {
focusedItem: Element;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULRelatedElement.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULRelatedElement.idl
interface nsIDOMXULRelatedElement extends nsISupports {
getRelatedElement(aElement: Node): Element;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULSelectCntrlEl.idl
interface nsIDOMXULSelectControlElement extends nsIDOMXULControlElement {
selectedItem: Element;
@@ -5486,7 +5554,7 @@ declare global {
getItemAtIndex(index: i32): Element;
}
- // https://searchfox.org/mozilla-central/source/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
+ // https://searchfox.org/firefox-main/source/dom/interfaces/xul/nsIDOMXULSelectCntrlItemEl.idl
interface nsIDOMXULSelectControlItemElement extends nsISupports {
disabled: boolean;
@@ -5499,7 +5567,7 @@ declare global {
readonly control: Element;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/downloads/mozIDownloadPlatform.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/downloads/mozIDownloadPlatform.idl
interface mozIDownloadPlatform extends nsISupports {
readonly ZONE_MY_COMPUTER?: 0;
@@ -5518,14 +5586,14 @@ declare global {
mapUrlToZone(aURL: string): u32;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIDocumentStateListener.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIDocumentStateListener.idl
interface nsIDocumentStateListener extends nsISupports {
NotifyDocumentWillBeDestroyed(): void;
NotifyDocumentStateChanged(aNowDirty: boolean): void;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIEditActionListener.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIEditActionListener.idl
interface nsIEditActionListener extends nsISupports {
DidDeleteNode(aChild: Node, aResult: nsresult): void;
@@ -5539,7 +5607,7 @@ declare global {
WillDeleteRanges(aRangesToDelete: Range[]): void;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIEditor.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIEditor.idl
interface nsIEditor extends nsISupports {
readonly eNone?: 0;
@@ -5649,7 +5717,7 @@ declare global {
insertLineBreak(): void;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIEditorMailSupport.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIEditorMailSupport.idl
interface nsIEditorMailSupport extends nsISupports {
insertAsCitedQuotation(
@@ -5662,7 +5730,7 @@ declare global {
wrapWidth: i32;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIEditorSpellCheck.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIEditorSpellCheck.idl
interface nsIEditorSpellCheck extends nsISupports {
readonly FILTERTYPE_NORMAL?: 1;
@@ -5698,7 +5766,7 @@ declare global {
editorSpellCheckDone(): void;
}>;
- // https://searchfox.org/mozilla-central/source/editor/nsIHTMLAbsPosEditor.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIHTMLAbsPosEditor.idl
interface nsIHTMLAbsPosEditor extends nsISupports {
absolutePositioningEnabled: boolean;
@@ -5707,7 +5775,7 @@ declare global {
gridSize: u32;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIHTMLEditor.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIHTMLEditor.idl
interface nsIHTMLEditor extends nsISupports {
readonly eLeft?: 0;
@@ -5770,14 +5838,14 @@ declare global {
returnInParagraphCreatesNewParagraph: boolean;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIHTMLInlineTableEditor.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIHTMLInlineTableEditor.idl
interface nsIHTMLInlineTableEditor extends nsISupports {
inlineTableEditingEnabled: boolean;
readonly isInlineTableEditingActive: boolean;
}
- // https://searchfox.org/mozilla-central/source/editor/nsIHTMLObjectResizer.idl
+ // https://searchfox.org/firefox-main/source/editor/nsIHTMLObjectResizer.idl
interface nsIHTMLObjectResizer extends nsISupports {
readonly eTopLeft?: 0;
@@ -5794,7 +5862,7 @@ declare global {
hideResizers(): void;
}
- // https://searchfox.org/mozilla-central/source/editor/nsITableEditor.idl
+ // https://searchfox.org/firefox-main/source/editor/nsITableEditor.idl
interface nsITableEditor extends nsISupports {
readonly eNoSearch?: 0;
@@ -5868,7 +5936,7 @@ declare global {
getSelectedCells(): Element[];
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/enterprisepolicies/nsIEnterprisePolicies.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/enterprisepolicies/nsIEnterprisePolicies.idl
interface nsIEnterprisePolicies extends nsISupports {
readonly UNINITIALIZED?: -1;
@@ -5885,11 +5953,12 @@ declare global {
getExtensionPolicy(extensionID: string): any;
getExtensionSettings(extensionID: string): any;
mayInstallAddon(addon: any): boolean;
+ isAddonRequiredByPolicy(addonID: string): boolean;
allowedInstallSource(uri: nsIURI): boolean;
isExemptExecutableExtension(url: string, extension: string): boolean;
}
- // https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIAddonManagerStartup.idl
+ // https://searchfox.org/firefox-main/source/toolkit/mozapps/extensions/amIAddonManagerStartup.idl
interface amIAddonManagerStartup extends nsISupports {
readStartupData(): any;
@@ -5901,15 +5970,15 @@ declare global {
initializeURLPreloader(): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/mozapps/extensions/amIWebInstallPrompt.idl
+ // https://searchfox.org/firefox-main/source/toolkit/mozapps/extensions/amIWebInstallPrompt.idl
interface amIWebInstallPrompt extends nsISupports {
confirm(aBrowser: Element, aUri: nsIURI, aInstalls: nsIVariant[]): void;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsCExternalHandlerService.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsCExternalHandlerService.idl
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIContentDispatchChooser.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsIContentDispatchChooser.idl
interface nsIContentDispatchChooser extends nsISupports {
handleURI(
@@ -5921,7 +5990,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalHelperAppService.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsIExternalHelperAppService.idl
interface nsIExternalHelperAppService extends nsISupports {
doContent(
@@ -5967,7 +6036,7 @@ declare global {
readonly browsingContextId: u64;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIExternalProtocolService.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsIExternalProtocolService.idl
interface nsIExternalProtocolService extends nsISupports {
externalProtocolHandlerExists(aProtocolScheme: string): boolean;
@@ -5994,7 +6063,7 @@ declare global {
isCurrentAppOSDefaultForProtocol(aScheme: string): boolean;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHandlerService.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsIHandlerService.idl
interface nsIHandlerService extends nsISupports {
asyncInit(): void;
@@ -6009,17 +6078,26 @@ declare global {
getApplicationDescription(aProtocolScheme: string): string;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsIHelperAppLauncherDialog.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsIHelperAppLauncherDialog.idl
+} // global
- interface nsIHelperAppLauncherDialog extends nsISupports {
- readonly REASON_CANTHANDLE?: 0;
- readonly REASON_SERVERREQUEST?: 1;
- readonly REASON_TYPESNIFFED?: 2;
+declare enum nsIHelperAppLauncherDialog_reason {
+ REASON_CANTHANDLE = 0,
+ REASON_SERVERREQUEST = 1,
+ REASON_TYPESNIFFED = 2,
+}
+declare global {
+ namespace nsIHelperAppLauncherDialog {
+ type reason = nsIHelperAppLauncherDialog_reason;
+ }
+
+ interface nsIHelperAppLauncherDialog
+ extends nsISupports, Enums {
show(
aLauncher: nsIHelperAppLauncher,
aWindowContext: nsIInterfaceRequestor,
- aReason: u32
+ aReason: nsIHelperAppLauncherDialog.reason
): void;
promptForSaveToFileAsync(
aLauncher: nsIHelperAppLauncher,
@@ -6030,13 +6108,13 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/uriloader/exthandler/nsISharingHandlerApp.idl
+ // https://searchfox.org/firefox-main/source/uriloader/exthandler/nsISharingHandlerApp.idl
interface nsISharingHandlerApp extends nsIHandlerApp {
share(data: string, title?: string): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/typeaheadfind/nsITypeAheadFind.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/typeaheadfind/nsITypeAheadFind.idl
interface nsITypeAheadFind extends nsISupports {
readonly FIND_INITIAL?: 0;
@@ -6071,7 +6149,7 @@ declare global {
readonly currentWindow: mozIDOMWindow;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIFOG.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/glean/xpcom/nsIFOG.idl
interface nsIFOG extends nsISupports {
initializeFOG(
@@ -6148,7 +6226,7 @@ declare global {
): void;
}
- // https://searchfox.org/mozilla-central/source/toolkit/components/glean/xpcom/nsIGleanPing.idl
+ // https://searchfox.org/firefox-main/source/toolkit/components/glean/xpcom/nsIGleanPing.idl
type nsIGleanPingTestCallback = Callable<{
call(aReason: string): void;
@@ -6169,7 +6247,7 @@ declare global {
): Promise