mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-06 19:38:24 +00:00
Compare commits
32 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b94c6c616a | ||
![]() |
9950ebd99e | ||
![]() |
1c4108d961 | ||
![]() |
1be4bbf08b | ||
![]() |
5ba50f2988 | ||
![]() |
e2618e5681 | ||
![]() |
3304259383 | ||
![]() |
d83df429bc | ||
![]() |
191ffd6efe | ||
![]() |
7e0e3f4145 | ||
![]() |
8b56897a11 | ||
![]() |
6a55fecca6 | ||
![]() |
f80a454261 | ||
![]() |
0f97a1cb4d | ||
![]() |
58e049a76f | ||
![]() |
dfa5013a79 | ||
![]() |
22dfa8daec | ||
![]() |
5c5608938d | ||
![]() |
cfd1ef11aa | ||
![]() |
b82530c890 | ||
![]() |
69e5bb552f | ||
![]() |
915350db3c | ||
![]() |
0dfb198609 | ||
![]() |
f1039324cf | ||
![]() |
3ce4bb8ecf | ||
![]() |
005398a20d | ||
![]() |
f45b1ec317 | ||
![]() |
4714cfcc84 | ||
![]() |
c221c8e242 | ||
![]() |
5464da21c4 | ||
![]() |
f2a783fbce | ||
![]() |
bb3ee371a1 |
93
.github/workflows/alpha.yml
vendored
93
.github/workflows/alpha.yml
vendored
@@ -13,6 +13,11 @@ on:
|
|||||||
required: false
|
required: false
|
||||||
default: true
|
default: true
|
||||||
type: 'boolean'
|
type: 'boolean'
|
||||||
|
create_flatpak:
|
||||||
|
description: 'Create a flatpak release (It defaults to creating a release)'
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
type: 'boolean'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
@@ -198,7 +203,7 @@ jobs:
|
|||||||
# needs: [windows-step-1, build-data]
|
# needs: [windows-step-1, build-data]
|
||||||
# with:
|
# with:
|
||||||
# build-version: ${{ needs.build-data.outputs.version }}
|
# build-version: ${{ needs.build-data.outputs.version }}
|
||||||
# profile-data-path-archive: zen-windows-x86_64-profile-data-and-jarlog.zip
|
# profile-data-path-archive: zen.win64-pgo-stage-1.zip
|
||||||
|
|
||||||
windows-step-3:
|
windows-step-3:
|
||||||
name: Windows build step 3 (build with profile data)
|
name: Windows build step 3 (build with profile data)
|
||||||
@@ -228,16 +233,62 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
build-version: ${{ needs.build-data.outputs.version }}
|
build-version: ${{ needs.build-data.outputs.version }}
|
||||||
|
|
||||||
|
distro-flatpak:
|
||||||
|
name: Build flatpak repos
|
||||||
|
needs: [linux]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
container:
|
||||||
|
image: bilelmoussaoui/flatpak-github-actions:gnome-44
|
||||||
|
options: --privileged
|
||||||
|
if: ${{ github.event.inputs.create_release == 'true' || github.event.inputs.create_flatpak == 'true' }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: zen-browser/flatpak
|
||||||
|
token: ${{ secrets.DEPLOY_KEY }}
|
||||||
|
submodules: recursive
|
||||||
|
|
||||||
|
- name: Download artifacts
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: zen.linux.tar.bz2
|
||||||
|
|
||||||
|
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
||||||
|
with:
|
||||||
|
bundle: com.zen.browser.flatpak
|
||||||
|
manifest-path: com.zen.browser.flatpak.yml
|
||||||
|
cache-key: flatpak-builder-${{ github.sha }}
|
||||||
|
verbose: true
|
||||||
|
|
||||||
|
- name: Find flatpak bundle
|
||||||
|
run: find .
|
||||||
|
|
||||||
|
- name: Upload flatpak bundle
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: com.zen.browser.flatpak
|
||||||
|
path: com.zen.browser.flatpak
|
||||||
|
|
||||||
|
# - name: Publish to Flathub (beta)
|
||||||
|
# uses: flatpak/flatpak-github-actions/flat-manager@v6.1
|
||||||
|
# with:
|
||||||
|
# flat-manager-url: https://hub.flathub.org/
|
||||||
|
# repository: beta
|
||||||
|
# token: ${{ secrets.FLATHUB_TOKEN }}
|
||||||
|
|
||||||
release:
|
release:
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
if: ${{ github.event.inputs.create_release == 'true' }}
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
name: Release
|
name: Release
|
||||||
needs: [build-data, linux, source, windows-step-3, check-release, mac]
|
needs: [build-data, linux, source, windows-step-3, check-release, mac, distro-flatpak]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Update repo
|
- name: Update repo
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Git Pull
|
- name: Git Pull
|
||||||
run: git pull
|
run: git pull
|
||||||
@@ -285,38 +336,4 @@ jobs:
|
|||||||
zen.installer.exe
|
zen.installer.exe
|
||||||
zen.installer.pretty.exe
|
zen.installer.pretty.exe
|
||||||
zen.macos.dmg
|
zen.macos.dmg
|
||||||
|
com.zen.browser.flatpak
|
||||||
distro-flatpak:
|
|
||||||
name: Build flatpak repos
|
|
||||||
needs: [linux, release]
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
container:
|
|
||||||
image: bilelmoussaoui/flatpak-github-actions:gnome-44
|
|
||||||
options: --privileged
|
|
||||||
if: ${{ github.event.inputs.create_release == 'true' }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: zen-browser/flatpak
|
|
||||||
token: ${{ secrets.DEPLOY_KEY }}
|
|
||||||
submodules: recursive
|
|
||||||
|
|
||||||
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
|
|
||||||
with:
|
|
||||||
bundle: org.zen.browser.flatpak
|
|
||||||
manifest-path: org.zen.browser.flatpak.yml
|
|
||||||
cache-key: flatpak-builder-${{ github.sha }}
|
|
||||||
verbose: true
|
|
||||||
|
|
||||||
- name: Find flatpak bundle
|
|
||||||
run: find .
|
|
||||||
|
|
||||||
- name: Upload flatpak bundle
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: zen.flatpak
|
|
||||||
path: ./org.zen.browser.flatpak
|
|
||||||
|
|
||||||
|
6
.github/workflows/macos-alpha-build.yml
vendored
6
.github/workflows/macos-alpha-build.yml
vendored
@@ -68,7 +68,11 @@ jobs:
|
|||||||
./mach --no-interactive bootstrap --application-choice browser
|
./mach --no-interactive bootstrap --application-choice browser
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
- name: surfer build
|
- name: build Zen
|
||||||
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
|
- name: Rebuild Zen if failed
|
||||||
|
if: failure()
|
||||||
run: sh .github/workflows/src/alpha-build.sh
|
run: sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
|
3
.github/workflows/src/alpha-build.sh
vendored
3
.github/workflows/src/alpha-build.sh
vendored
@@ -9,8 +9,7 @@ fi
|
|||||||
ulimit -n 4096
|
ulimit -n 4096
|
||||||
|
|
||||||
# Check if xfvb is installed
|
# Check if xfvb is installed
|
||||||
if ! command -v Xvfb &> /dev/null
|
if ! command -v Xvfb &> /dev/null; then
|
||||||
then
|
|
||||||
if ! test "$ZEN_CROSS_COMPILING"
|
if ! test "$ZEN_CROSS_COMPILING"
|
||||||
then
|
then
|
||||||
Xvfb :2 -screen 0 1024x768x24 &
|
Xvfb :2 -screen 0 1024x768x24 &
|
||||||
|
19
.github/workflows/src/windows_mozconfig
vendored
19
.github/workflows/src/windows_mozconfig
vendored
@@ -27,15 +27,14 @@ export WINE="$TOOLS/wine/bin/wine64"
|
|||||||
ac_add_options --disable-maintenance-service
|
ac_add_options --disable-maintenance-service
|
||||||
ac_add_options --disable-bits-download
|
ac_add_options --disable-bits-download
|
||||||
|
|
||||||
# if test "$ZEN_GA_GENERATE_PROFILE"; then
|
#if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||||
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
# mk_add_options "export MOZ_AUTOMATION_PACKAGE_GENERATED_SOURCES=0"
|
||||||
# ac_add_options --enable-profile-generate=cross
|
# ac_add_options --enable-profile-generate=cross
|
||||||
# ac_add_options --without-wasm-sandboxed-libraries
|
#else
|
||||||
# else
|
# ac_add_options --disable-profiling
|
||||||
ac_add_options --disable-profiling
|
# ac_add_options --enable-profile-use=cross
|
||||||
# ac_add_options --enable-profile-use=cross
|
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
||||||
# ac_add_options --with-pgo-profile-path=$(echo ~)/artifact/merged.profdata
|
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
||||||
# ac_add_options --with-pgo-jarlog=$(echo ~)/artifact/en-US.log
|
#fi
|
||||||
# fi
|
|
||||||
|
|
||||||
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
# ALWAYS MANTAIN ONE LINE BREAK AT THE END OF THIS FILE
|
9
.github/workflows/windows-alpha-build.yml
vendored
9
.github/workflows/windows-alpha-build.yml
vendored
@@ -133,12 +133,11 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: |
|
run: |
|
||||||
set -x
|
set -x
|
||||||
unset SURFER_PLATFORM
|
export SURFER_PLATFORM="win32"
|
||||||
export ZEN_CROSS_COMPILING=1
|
export ZEN_CROSS_COMPILING=1
|
||||||
if test ${{ inputs.generate-gpo }}; then
|
# if test ${{ inputs.generate-gpo }}; then
|
||||||
#export ZEN_GA_GENERATE_PROFILE=1
|
# export ZEN_GA_GENERATE_PROFILE=1
|
||||||
echo "note: PGO build is disabled"
|
# fi
|
||||||
fi
|
|
||||||
sh .github/workflows/src/alpha-build.sh
|
sh .github/workflows/src/alpha-build.sh
|
||||||
|
|
||||||
- name: Package
|
- name: Package
|
||||||
|
1
.github/workflows/windows-profile-build.yml
vendored
1
.github/workflows/windows-profile-build.yml
vendored
@@ -40,6 +40,7 @@ jobs:
|
|||||||
name: Download artifact
|
name: Download artifact
|
||||||
with:
|
with:
|
||||||
path: C:\artifact
|
path: C:\artifact
|
||||||
|
name: zen-windows-x86_64-profile-data-and-jarlog.zip
|
||||||
|
|
||||||
- name: Unpack artifact
|
- name: Unpack artifact
|
||||||
run: |
|
run: |
|
||||||
|
@@ -5,7 +5,7 @@ Experience tranquillity while browsing the web without people tracking you!
|
|||||||
|
|
||||||
# Compatibility
|
# Compatibility
|
||||||
|
|
||||||
Zen is currently built using firefox version `128.0.2`!
|
Zen is currently built using firefox version `128.0.3`!
|
||||||
|
|
||||||
* Checkout the latest [releases notes](https://get-zen.vercel.app/release-notes)!
|
* Checkout the latest [releases notes](https://get-zen.vercel.app/release-notes)!
|
||||||
|
|
||||||
|
@@ -12,9 +12,7 @@ export MOZ_APP_PROFILE=${binName}
|
|||||||
export MOZ_APP_DISPLAYNAME="${name}"
|
export MOZ_APP_DISPLAYNAME="${name}"
|
||||||
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
export MOZ_BRANDING_DIRECTORY=${brandingDir}
|
||||||
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
export MOZ_OFFICIAL_BRANDING_DIRECTORY=${brandingDir}
|
||||||
export MOZ_MACBUNDLE_ID=${appId}
|
|
||||||
export MOZ_DISTRIBUTION_ID=${appId}
|
export MOZ_DISTRIBUTION_ID=${appId}
|
||||||
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
|
||||||
|
|
||||||
# Uncomment if builds are too resource hungry
|
# Uncomment if builds are too resource hungry
|
||||||
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
# mk_add_options MOZ_MAKE_FLAGS="-j4"
|
||||||
@@ -38,6 +36,7 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --disable-tests
|
ac_add_options --disable-tests
|
||||||
ac_add_options --enable-strip
|
ac_add_options --enable-strip
|
||||||
ac_add_options --enable-install-strip
|
ac_add_options --enable-install-strip
|
||||||
|
ac_add_options --disable-accessibility
|
||||||
|
|
||||||
ac_add_options --enable-rust-simd
|
ac_add_options --enable-rust-simd
|
||||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||||
@@ -50,20 +49,16 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --enable-hardening
|
ac_add_options --enable-hardening
|
||||||
|
|
||||||
ac_add_options --disable-crashreporter
|
ac_add_options --disable-crashreporter
|
||||||
ac_add_options --disable-dmd
|
|
||||||
ac_add_options --disable-geckodriver
|
ac_add_options --disable-geckodriver
|
||||||
ac_add_options --disable-rust-tests
|
ac_add_options --disable-rust-tests
|
||||||
ac_add_options --disable-default-browser-agent
|
ac_add_options --disable-default-browser-agent
|
||||||
|
|
||||||
export MOZ_LTO=thin
|
export MOZ_LTO=1
|
||||||
ac_add_options MOZ_LTO=thin
|
ac_add_options MOZ_LTO=1
|
||||||
ac_add_options --enable-lto=thin
|
ac_add_options --enable-lto
|
||||||
|
|
||||||
if test "$ZEN_CROSS_COMPILING"; then
|
ac_add_options --enable-jemalloc
|
||||||
ac_add_options --disable-jemalloc
|
ac_add_options --disable-jprof
|
||||||
else
|
|
||||||
ac_add_options --enable-jemalloc
|
|
||||||
fi
|
|
||||||
|
|
||||||
mk_add_options MOZILLA_OFFICIAL=1
|
mk_add_options MOZILLA_OFFICIAL=1
|
||||||
MOZILLA_OFFICIAL=1
|
MOZILLA_OFFICIAL=1
|
||||||
@@ -80,6 +75,12 @@ if test "$ZEN_RELEASE"; then
|
|||||||
|
|
||||||
mk_add_options AUTOCLOBBER=1
|
mk_add_options AUTOCLOBBER=1
|
||||||
export AUTOCLOBBER=1
|
export AUTOCLOBBER=1
|
||||||
|
|
||||||
|
if ! test "$ZEN_CROSS_COMPILING"; then
|
||||||
|
|
||||||
|
# It causes link errors on windows
|
||||||
|
ac_add_options --disable-dmd
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ac_add_options --enable-unverified-updates
|
ac_add_options --enable-unverified-updates
|
||||||
@@ -91,6 +92,7 @@ ac_add_options --enable-jxl
|
|||||||
ac_add_options --enable-av1
|
ac_add_options --enable-av1
|
||||||
ac_add_options --enable-eme=widevine
|
ac_add_options --enable-eme=widevine
|
||||||
|
|
||||||
|
ac_add_options --allow-addon-sideload
|
||||||
ac_add_options --with-unsigned-addon-scopes=app,system
|
ac_add_options --with-unsigned-addon-scopes=app,system
|
||||||
|
|
||||||
export MOZ_REQUIRE_SIGNING=
|
export MOZ_REQUIRE_SIGNING=
|
||||||
|
@@ -1,9 +1,12 @@
|
|||||||
POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
POLLY="-mllvm -polly -mllvm -polly-2nd-level-tiling -mllvm -polly-loopfusion-greedy -mllvm -polly-pattern-matching-based-opts -mllvm -polly-position=before-vectorizer -mllvm -polly-vectorizer=stripmine"
|
||||||
|
|
||||||
# if test "$ZEN_RELEASE"; then
|
unset MOZ_STDCXX_COMPAT
|
||||||
# ac_add_options --enable-optimize="-mcpu=apple-m1 -O3 -w"
|
if test "$ZEN_RELEASE"; then
|
||||||
# export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=apple-m1"
|
export RUSTFLAGS="$RUSTFLAGS -Ctarget-cpu=apple-m1"
|
||||||
# fi
|
fi
|
||||||
|
|
||||||
ac_add_options --enable-install-strip
|
ac_add_options --enable-install-strip
|
||||||
ac_add_options --target=aarch64-apple-darwin
|
ac_add_options --target=aarch64-apple-darwin
|
||||||
|
|
||||||
|
export MOZ_MACBUNDLE_ID=${appId}
|
||||||
|
export MOZ_MACBUNDLE_NAME="Zen Browser.app"
|
||||||
|
@@ -9,4 +9,5 @@
|
|||||||
* Welcome Page
|
* Welcome Page
|
||||||
* Overall performance
|
* Overall performance
|
||||||
* Overall stability
|
* Overall stability
|
||||||
|
* Pinning tabs (Grid layout)
|
||||||
* Overall UX
|
* Overall UX
|
||||||
|
@@ -27,6 +27,6 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/zen-browser/core#readme",
|
"homepage": "https://github.com/zen-browser/core#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@zen-browser/surfer": "^1.1.4"
|
"@zen-browser/surfer": "^1.1.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
pnpm-lock.yaml
generated
10
pnpm-lock.yaml
generated
@@ -9,8 +9,8 @@ importers:
|
|||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@zen-browser/surfer':
|
'@zen-browser/surfer':
|
||||||
specifier: ^1.1.4
|
specifier: ^1.1.5
|
||||||
version: 1.1.4
|
version: 1.1.5
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -109,8 +109,8 @@ packages:
|
|||||||
'@types/node@17.0.45':
|
'@types/node@17.0.45':
|
||||||
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.1.4':
|
'@zen-browser/surfer@1.1.5':
|
||||||
resolution: {integrity: sha512-fNG/zZfqlEIUVyxLzC07mn+TBVhRwlZJTPMiyckJPo2jqrehGnaOimw23RA6ZgeXCEvu645u9XxWQ7dhkkwnIw==}
|
resolution: {integrity: sha512-8ogIJT3Lw0vyG4gC4g03xrt/nQbFxiPzI1o/3/6FanTzx97C+TdgsWohoKKGvoHj+gqxAwPDfXtqwgCPIYCqrA==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
ansi-regex@5.0.1:
|
ansi-regex@5.0.1:
|
||||||
@@ -786,7 +786,7 @@ snapshots:
|
|||||||
|
|
||||||
'@types/node@17.0.45': {}
|
'@types/node@17.0.45': {}
|
||||||
|
|
||||||
'@zen-browser/surfer@1.1.4':
|
'@zen-browser/surfer@1.1.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@resvg/resvg-js': 1.4.0
|
'@resvg/resvg-js': 1.4.0
|
||||||
async-icns: 1.0.2
|
async-icns: 1.0.2
|
||||||
|
@@ -125,7 +125,6 @@ pref('browser.urlbar.update2.engineAliasRefresh', true);
|
|||||||
pref('browser.search.suggest.enabled', false);
|
pref('browser.search.suggest.enabled', false);
|
||||||
pref('browser.urlbar.suggest.quicksuggest.sponsored', false);
|
pref('browser.urlbar.suggest.quicksuggest.sponsored', false);
|
||||||
pref('browser.urlbar.suggest.quicksuggest.nonsponsored', false);
|
pref('browser.urlbar.suggest.quicksuggest.nonsponsored', false);
|
||||||
pref('browser.formfill.enable', false);
|
|
||||||
pref('security.insecure_connection_text.enabled', true);
|
pref('security.insecure_connection_text.enabled', true);
|
||||||
pref('security.insecure_connection_text.pbmode.enabled', true);
|
pref('security.insecure_connection_text.pbmode.enabled', true);
|
||||||
pref('network.IDN_show_punycode', true);
|
pref('network.IDN_show_punycode', true);
|
||||||
@@ -135,14 +134,12 @@ pref('dom.security.https_first', true);
|
|||||||
pref('dom.security.https_first_schemeless', true);
|
pref('dom.security.https_first_schemeless', true);
|
||||||
|
|
||||||
/** PASSWORDS ***/
|
/** PASSWORDS ***/
|
||||||
pref('signon.rememberSignons', false);
|
|
||||||
pref('signon.formlessCapture.enabled', false);
|
pref('signon.formlessCapture.enabled', false);
|
||||||
pref('signon.privateBrowsingCapture.enabled', false);
|
pref('signon.privateBrowsingCapture.enabled', false);
|
||||||
pref('network.auth.subresource-http-auth-allow', 1);
|
pref('network.auth.subresource-http-auth-allow', 1);
|
||||||
pref('editor.truncate_user_pastes', false);
|
pref('editor.truncate_user_pastes', false);
|
||||||
|
|
||||||
/** ADDRESS + CREDIT CARD MANAGER ***/
|
/** ADDRESS + CREDIT CARD MANAGER ***/
|
||||||
pref('extensions.formautofill.addresses.enabled', false);
|
|
||||||
pref('extensions.formautofill.creditCards.enabled', false);
|
pref('extensions.formautofill.creditCards.enabled', false);
|
||||||
|
|
||||||
/** MIXED CONTENT + CROSS-SITE ***/
|
/** MIXED CONTENT + CROSS-SITE ***/
|
||||||
@@ -217,15 +214,12 @@ pref('browser.privatebrowsing.vpnpromourl', '');
|
|||||||
pref('extensions.getAddons.showPane', false);
|
pref('extensions.getAddons.showPane', false);
|
||||||
pref('extensions.htmlaboutaddons.recommendations.enabled', false);
|
pref('extensions.htmlaboutaddons.recommendations.enabled', false);
|
||||||
pref('browser.discovery.enabled', false);
|
pref('browser.discovery.enabled', false);
|
||||||
pref('browser.shell.checkDefaultBrowser', false);
|
|
||||||
pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons', false);
|
pref('browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons', false);
|
||||||
pref(
|
pref(
|
||||||
'browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features',
|
'browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features',
|
||||||
false
|
false
|
||||||
);
|
);
|
||||||
pref('browser.preferences.moreFromMozilla', false);
|
pref('browser.preferences.moreFromMozilla', false);
|
||||||
pref('browser.tabs.tabmanager.enabled', false);
|
|
||||||
pref('browser.aboutConfig.showWarning', false);
|
|
||||||
pref('browser.aboutwelcome.enabled', false);
|
pref('browser.aboutwelcome.enabled', false);
|
||||||
|
|
||||||
/** THEME ADJUSTMENTS ***/
|
/** THEME ADJUSTMENTS ***/
|
||||||
@@ -238,12 +232,6 @@ pref('browser.privateWindowSeparation.enabled', false); // WINDOWS
|
|||||||
pref('cookiebanners.service.mode', 1);
|
pref('cookiebanners.service.mode', 1);
|
||||||
pref('cookiebanners.service.mode.privateBrowsing', 1);
|
pref('cookiebanners.service.mode.privateBrowsing', 1);
|
||||||
|
|
||||||
/** FULLSCREEN NOTICE ***/
|
|
||||||
pref('full-screen-api.transition-duration.enter', '0 0');
|
|
||||||
pref('full-screen-api.transition-duration.leave', '0 0');
|
|
||||||
pref('full-screen-api.warning.delay', -1);
|
|
||||||
pref('full-screen-api.warning.timeout', 0);
|
|
||||||
|
|
||||||
/** URL BAR ***/
|
/** URL BAR ***/
|
||||||
pref('browser.urlbar.suggest.calculator', true);
|
pref('browser.urlbar.suggest.calculator', true);
|
||||||
pref('browser.urlbar.unitConversion.enabled', true);
|
pref('browser.urlbar.unitConversion.enabled', true);
|
||||||
|
@@ -18,6 +18,7 @@ pref('browser.display.focus_ring_style', 0);
|
|||||||
pref('browser.display.focus_ring_width', 0);
|
pref('browser.display.focus_ring_width', 0);
|
||||||
|
|
||||||
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
pref('browser.newtabpage.activity-stream.newtabWallpapers.enabled', true);
|
||||||
|
pref('browser.newtabpage.activity-stream.newtabWallpapers.v2.enabled', true);
|
||||||
pref('browser.translations.newSettingsUI.enable', true);
|
pref('browser.translations.newSettingsUI.enable', true);
|
||||||
|
|
||||||
pref("browser.urlbar.trimHttps", true);
|
pref("browser.urlbar.trimHttps", true);
|
||||||
@@ -33,18 +34,13 @@ pref('browser.urlbar.clipboard.featureGate', true);
|
|||||||
// new tab page
|
// new tab page
|
||||||
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
pref('browser.newtabpage.activity-stream.feeds.topsites', false);
|
||||||
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
pref('browser.newtabpage.activity-stream.feeds.section.topstories', false);
|
||||||
pref("browser.topsites.contile.enabled", false);
|
pref("browser.topsites.contile.enabled", true);
|
||||||
|
|
||||||
// Pdf
|
// Pdf
|
||||||
pref('browser.download.open_pdf_attachments_inline', true);
|
pref('browser.download.open_pdf_attachments_inline', true);
|
||||||
pref('pdfjs.enableHighlightEditor', true);
|
pref('pdfjs.enableHighlightEditor', true);
|
||||||
pref('pdfjs.enableHighlightFloatingButton', true);
|
pref('pdfjs.enableHighlightFloatingButton', true);
|
||||||
|
|
||||||
// UA
|
|
||||||
pref('general.useragent.compatMode.firefox', true);
|
|
||||||
|
|
||||||
pref('layout.css.backdrop-filter.enabled', true);
|
|
||||||
|
|
||||||
pref("alerts.showFavicons", true);
|
pref("alerts.showFavicons", true);
|
||||||
pref('browser.toolbars.bookmarks.visibility', 'never');
|
pref('browser.toolbars.bookmarks.visibility', 'never');
|
||||||
|
|
||||||
|
@@ -8,6 +8,7 @@ var gZenBrowserManagerSidebar = {
|
|||||||
_hasChangedConfig: true,
|
_hasChangedConfig: true,
|
||||||
_splitterElement: null,
|
_splitterElement: null,
|
||||||
_hSplitterElement: null,
|
_hSplitterElement: null,
|
||||||
|
_hasRegisteredPinnedClickOutside: false,
|
||||||
_isDragging: false,
|
_isDragging: false,
|
||||||
contextTab: null,
|
contextTab: null,
|
||||||
|
|
||||||
@@ -106,6 +107,16 @@ var gZenBrowserManagerSidebar = {
|
|||||||
this.update();
|
this.update();
|
||||||
this._hasChangedConfig = false;
|
this._hasChangedConfig = false;
|
||||||
|
|
||||||
|
// https://stackoverflow.com/questions/11565471/removing-event-listener-which-was-added-with-bind
|
||||||
|
var clickOutsideHandler = this._handleClickOutside.bind(this);
|
||||||
|
if (Services.prefs.getBoolPref("zen.sidebar.floating") && !this._hasRegisteredPinnedClickOutside) {
|
||||||
|
document.addEventListener("mouseup", clickOutsideHandler);
|
||||||
|
this._hasRegisteredPinnedClickOutside = true;
|
||||||
|
} else if (!Services.prefs.getBoolPref("zen.sidebar.floating") && this._hasRegisteredPinnedClickOutside) {
|
||||||
|
document.removeEventListener("mouseup", clickOutsideHandler);
|
||||||
|
this._hasRegisteredPinnedClickOutside = false;
|
||||||
|
}
|
||||||
|
|
||||||
const button = document.getElementById("zen-sidepanel-button");
|
const button = document.getElementById("zen-sidepanel-button");
|
||||||
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
if (Services.prefs.getBoolPref("zen.sidebar.enabled")) {
|
||||||
button.removeAttribute("hidden");
|
button.removeAttribute("hidden");
|
||||||
@@ -116,6 +127,25 @@ var gZenBrowserManagerSidebar = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_handleClickOutside(event) {
|
||||||
|
let sidebar = document.getElementById("zen-sidebar-web-panel");
|
||||||
|
if (!sidebar.hasAttribute("pinned") || !this._currentPanel || this._isDragging) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let target = event.target;
|
||||||
|
const closestSelector = [
|
||||||
|
"#zen-sidebar-web-panel",
|
||||||
|
"#zen-sidebar-panels-wrapper",
|
||||||
|
"#zenWebPanelContextMenu",
|
||||||
|
"#zen-sidebar-web-panel-splitter",
|
||||||
|
"#contentAreaContextMenu"
|
||||||
|
].join(", ");
|
||||||
|
if (target.closest(closestSelector)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.close();
|
||||||
|
},
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
if (!this._currentPanel) {
|
if (!this._currentPanel) {
|
||||||
this._currentPanel = this._lastOpenedPanel;
|
this._currentPanel = this._lastOpenedPanel;
|
||||||
|
@@ -29,9 +29,6 @@ var gZenVerticalTabsManager = {
|
|||||||
//Services.prefs.addObserver('zen.view.sidebar-expanded', this._updateEvent.bind(this));
|
//Services.prefs.addObserver('zen.view.sidebar-expanded', this._updateEvent.bind(this));
|
||||||
},
|
},
|
||||||
|
|
||||||
//_updateEvent() {
|
|
||||||
// this._updateExpandButton();
|
|
||||||
//},
|
|
||||||
|
|
||||||
get expanded() {
|
get expanded() {
|
||||||
return Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
return Services.prefs.getBoolPref('zen.view.sidebar-expanded');
|
||||||
|
@@ -5,12 +5,12 @@ var ZenWorkspaces = {
|
|||||||
if (docElement.getAttribute("chromehidden").includes("toolbar")
|
if (docElement.getAttribute("chromehidden").includes("toolbar")
|
||||||
|| docElement.getAttribute("chromehidden").includes("menubar")
|
|| docElement.getAttribute("chromehidden").includes("menubar")
|
||||||
|| docElement.hasAttribute("privatebrowsingmode")) {
|
|| docElement.hasAttribute("privatebrowsingmode")) {
|
||||||
console.log("!!! ZenWorkspaces is disabled in hidden windows !!!");
|
console.warn("ZenWorkspaces: !!! ZenWorkspaces is disabled in hidden windows !!!");
|
||||||
return; // We are in a hidden window, don't initialize ZenWorkspaces
|
return; // We are in a hidden window, don't initialize ZenWorkspaces
|
||||||
}
|
}
|
||||||
console.log("Initializing ZenWorkspaces...");
|
console.log("ZenWorkspaces: Initializing ZenWorkspaces...");
|
||||||
await this.initializeWorkspaces();
|
await this.initializeWorkspaces();
|
||||||
console.log("ZenWorkspaces initialized");
|
console.log("ZenWorkspaces: ZenWorkspaces initialized");
|
||||||
},
|
},
|
||||||
|
|
||||||
get workspaceEnabled() {
|
get workspaceEnabled() {
|
||||||
@@ -57,7 +57,6 @@ var ZenWorkspaces = {
|
|||||||
}
|
}
|
||||||
if (this.workspaceEnabled) {
|
if (this.workspaceEnabled) {
|
||||||
let workspaces = await this._workspaces();
|
let workspaces = await this._workspaces();
|
||||||
console.log("Workspaces loaded", workspaces);
|
|
||||||
if (workspaces.workspaces.length === 0) {
|
if (workspaces.workspaces.length === 0) {
|
||||||
await this.createAndSaveWorkspace("Default Workspace", true);
|
await this.createAndSaveWorkspace("Default Workspace", true);
|
||||||
} else {
|
} else {
|
||||||
@@ -101,13 +100,14 @@ var ZenWorkspaces = {
|
|||||||
json.workspaces = [];
|
json.workspaces = [];
|
||||||
}
|
}
|
||||||
json.workspaces.push(workspaceData);
|
json.workspaces.push(workspaceData);
|
||||||
console.log("Saving workspace", workspaceData);
|
console.log("ZenWorkspaces: Saving workspace", workspaceData);
|
||||||
await IOUtils.writeJSON(this._storeFile, json);
|
await IOUtils.writeJSON(this._storeFile, json);
|
||||||
this._workspaceCache = null;
|
this._workspaceCache = null;
|
||||||
},
|
},
|
||||||
|
|
||||||
async removeWorkspace(windowID) {
|
async removeWorkspace(windowID) {
|
||||||
let json = await this._workspaces();
|
let json = await this._workspaces();
|
||||||
|
console.log("ZenWorkspaces: Removing workspace", windowID);
|
||||||
await this.changeWorkspace(json.workspaces.find(workspace => workspace.uuid !== windowID));
|
await this.changeWorkspace(json.workspaces.find(workspace => workspace.uuid !== windowID));
|
||||||
this._deleteAllTabsInWorkspace(windowID);
|
this._deleteAllTabsInWorkspace(windowID);
|
||||||
json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID);
|
json.workspaces = json.workspaces.filter(workspace => workspace.uuid !== windowID);
|
||||||
@@ -137,8 +137,12 @@ var ZenWorkspaces = {
|
|||||||
parentPanel.goBack();
|
parentPanel.goBack();
|
||||||
},
|
},
|
||||||
|
|
||||||
|
workspaceHasIcon(workspace) {
|
||||||
|
return typeof workspace.icon !== "undefined" && workspace.icon !== "";
|
||||||
|
},
|
||||||
|
|
||||||
getWorkspaceIcon(workspace) {
|
getWorkspaceIcon(workspace) {
|
||||||
if (typeof workspace.icon !== "undefined") {
|
if (this.workspaceHasIcon(workspace)) {
|
||||||
return workspace.icon;
|
return workspace.icon;
|
||||||
}
|
}
|
||||||
return workspace.name[0].toUpperCase();
|
return workspace.name[0].toUpperCase();
|
||||||
@@ -152,7 +156,7 @@ var ZenWorkspaces = {
|
|||||||
element.className = "subviewbutton";
|
element.className = "subviewbutton";
|
||||||
element.setAttribute("tooltiptext", workspace.name);
|
element.setAttribute("tooltiptext", workspace.name);
|
||||||
element.setAttribute("zen-workspace-id", workspace.uuid);
|
element.setAttribute("zen-workspace-id", workspace.uuid);
|
||||||
element.setAttribute("context", "zenWorkspaceActionsMenu");
|
//element.setAttribute("context", "zenWorkspaceActionsMenu");
|
||||||
let childs = window.MozXULElement.parseXULToFragment(`
|
let childs = window.MozXULElement.parseXULToFragment(`
|
||||||
<div class="zen-workspace-icon">
|
<div class="zen-workspace-icon">
|
||||||
${this.getWorkspaceIcon(workspace)}
|
${this.getWorkspaceIcon(workspace)}
|
||||||
@@ -164,13 +168,14 @@ var ZenWorkspaces = {
|
|||||||
<image class="toolbarbutton-icon" id="zen-workspace-actions-menu-icon"></image>
|
<image class="toolbarbutton-icon" id="zen-workspace-actions-menu-icon"></image>
|
||||||
</toolbarbutton>
|
</toolbarbutton>
|
||||||
`);
|
`);
|
||||||
childs.querySelector(".zen-workspace-actions").addEventListener("command", (event) => {
|
childs.querySelector(".zen-workspace-actions").addEventListener("command", ((event) => {
|
||||||
let button = event.target;
|
let button = event.target;
|
||||||
|
this._contextMenuId = button.closest("toolbarbutton[zen-workspace-id]").getAttribute("zen-workspace-id");
|
||||||
const popup = button.ownerDocument.getElementById(
|
const popup = button.ownerDocument.getElementById(
|
||||||
"zenWorkspaceActionsMenu"
|
"zenWorkspaceActionsMenu"
|
||||||
);
|
);
|
||||||
popup.openPopup(button, "after_end");
|
popup.openPopup(button, "after_end");
|
||||||
});
|
}).bind(this));
|
||||||
element.appendChild(childs);
|
element.appendChild(childs);
|
||||||
element.onclick = (async () => {
|
element.onclick = (async () => {
|
||||||
if (event.target.closest(".zen-workspace-actions")) {
|
if (event.target.closest(".zen-workspace-actions")) {
|
||||||
@@ -252,7 +257,7 @@ var ZenWorkspaces = {
|
|||||||
${activeWorkspace.name}
|
${activeWorkspace.name}
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
if (typeof activeWorkspace.icon === "undefined") {
|
if (!this.workspaceHasIcon(activeWorkspace)) {
|
||||||
button.querySelector(".zen-workspace-sidebar-icon").setAttribute("no-icon", "true");
|
button.querySelector(".zen-workspace-sidebar-icon").setAttribute("no-icon", "true");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -323,22 +328,14 @@ var ZenWorkspaces = {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let firstTab = undefined;
|
let firstTab = undefined;
|
||||||
// Get the number of tabs that are hidden before we start hiding them
|
|
||||||
let numShownTabs = gBrowser.tabs.reduce((acc, tab) => {
|
|
||||||
return (tab.getAttribute("zen-workspace-id") === window.uuid) ? acc + 1 : acc;
|
|
||||||
}, 0);
|
|
||||||
let workspaces = await this._workspaces();
|
let workspaces = await this._workspaces();
|
||||||
for (let workspace of workspaces.workspaces) {
|
for (let workspace of workspaces.workspaces) {
|
||||||
workspace.used = workspace.uuid === window.uuid;
|
workspace.used = workspace.uuid === window.uuid;
|
||||||
}
|
}
|
||||||
this.unsafeSaveWorkspaces(workspaces);
|
this.unsafeSaveWorkspaces(workspaces);
|
||||||
if (numShownTabs === gBrowser.tabs.length-1) {
|
console.log("ZenWorkspaces: Changing workspace to", window.uuid);
|
||||||
// If all tabs are hidden, we need to create a new tab
|
|
||||||
// to show the workspace
|
|
||||||
this._createNewTabForWorkspace(window);
|
|
||||||
}
|
|
||||||
for (let tab of gBrowser.tabs) {
|
for (let tab of gBrowser.tabs) {
|
||||||
if (tab.getAttribute("zen-workspace-id") === window.uuid) {
|
if (tab.getAttribute("zen-workspace-id") === window.uuid && !tab.pinned) {
|
||||||
if (!firstTab) {
|
if (!firstTab) {
|
||||||
firstTab = tab;
|
firstTab = tab;
|
||||||
gBrowser.selectedTab = firstTab;
|
gBrowser.selectedTab = firstTab;
|
||||||
@@ -346,6 +343,9 @@ var ZenWorkspaces = {
|
|||||||
gBrowser.showTab(tab);
|
gBrowser.showTab(tab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (typeof firstTab === "undefined") {
|
||||||
|
this._createNewTabForWorkspace(window);
|
||||||
|
}
|
||||||
for (let tab of gBrowser.tabs) {
|
for (let tab of gBrowser.tabs) {
|
||||||
if (tab.getAttribute("zen-workspace-id") !== window.uuid) {
|
if (tab.getAttribute("zen-workspace-id") !== window.uuid) {
|
||||||
gBrowser.hideTab(tab);
|
gBrowser.hideTab(tab);
|
||||||
@@ -394,14 +394,9 @@ var ZenWorkspaces = {
|
|||||||
// Context menu management
|
// Context menu management
|
||||||
|
|
||||||
_contextMenuId: null,
|
_contextMenuId: null,
|
||||||
async updateContextMenu(event) {
|
async updateContextMenu(_) {
|
||||||
let target = event.target;
|
console.assert(this._contextMenuId, "No context menu ID set");
|
||||||
let workspace = target.closest("[zen-workspace-id]");
|
document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`).setAttribute("active", "true");
|
||||||
if (!workspace) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_contextMenuId = workspace.getAttribute("zen-workspace-id");
|
|
||||||
document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${_contextMenuId}"] .zen-workspace-actions`).setAttribute("active", "true");
|
|
||||||
const workspaces = await this._workspaces();
|
const workspaces = await this._workspaces();
|
||||||
let deleteMenuItem = document.getElementById("context_zenDeleteWorkspace");
|
let deleteMenuItem = document.getElementById("context_zenDeleteWorkspace");
|
||||||
if (workspaces.workspaces.length <= 1) {
|
if (workspaces.workspaces.length <= 1) {
|
||||||
@@ -412,7 +407,7 @@ var ZenWorkspaces = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
onContextMenuClose() {
|
onContextMenuClose() {
|
||||||
let target = document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${_contextMenuId}"] .zen-workspace-actions`);
|
let target = document.querySelector(`#PanelUI-zen-workspaces [zen-workspace-id="${this._contextMenuId}"] .zen-workspace-actions`);
|
||||||
if (target) {
|
if (target) {
|
||||||
target.removeAttribute("active");
|
target.removeAttribute("active");
|
||||||
}
|
}
|
||||||
@@ -420,7 +415,7 @@ var ZenWorkspaces = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
async contextDelete() {
|
async contextDelete() {
|
||||||
await this.removeWorkspace(_contextMenuId);
|
await this.removeWorkspace(this._contextMenuId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -127,7 +127,7 @@
|
|||||||
</panel>
|
</panel>
|
||||||
|
|
||||||
<menupopup id="zenWorkspaceActionsMenu"
|
<menupopup id="zenWorkspaceActionsMenu"
|
||||||
onpopupshowing="ZenWorkspaces.updateContextMenu(event);"
|
onpopupshowing="ZenWorkspaces.updateContextMenu(this);"
|
||||||
onpopuphidden="ZenWorkspaces.onContextMenuClose();">
|
onpopuphidden="ZenWorkspaces.onContextMenuClose();">
|
||||||
<menuitem id="context_zenDeleteWorkspace" oncommand="ZenWorkspaces.contextDelete();" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
<menuitem id="context_zenDeleteWorkspace" oncommand="ZenWorkspaces.contextDelete();" data-l10n-id="zen-workspaces-panel-context-delete"/>
|
||||||
</menupopup>
|
</menupopup>
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf457da3500c 100644
|
index 3b97732d8035f07a2308f76f235702c70a5fa388..edbc1ad66a84fd17b1674ff7852cdf01bef0c21b 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabs.js
|
--- a/browser/components/tabbrowser/content/tabs.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||||
@@ -552,19 +552,36 @@
|
@@ -552,19 +552,36 @@
|
||||||
@@ -130,7 +130,23 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
for (let tab of movingTabs) {
|
for (let tab of movingTabs) {
|
||||||
tab.toggleAttribute("tabdrop-samewindow", true);
|
tab.toggleAttribute("tabdrop-samewindow", true);
|
||||||
tab.style.transform = "translateX(" + newTranslateX + "px)";
|
tab.style.transform = "translateX(" + newTranslateX + "px)";
|
||||||
@@ -1144,10 +1179,13 @@
|
@@ -1081,6 +1116,15 @@
|
||||||
|
return this._allTabs;
|
||||||
|
}
|
||||||
|
let children = Array.from(this.arrowScrollbox.children);
|
||||||
|
+ // Zen: We also need to exclude subgroups
|
||||||
|
+ // Zen: For example: tab-group(tab1, tab2), tab3, tab-group(tab4)
|
||||||
|
+ // Zen: In this case, we need to get [tab1, tab2, tab3, tab4]
|
||||||
|
+ // Zen: NOTE: There should be no tab-group inside of a tab-group
|
||||||
|
+ for (let i = 0; i < children.length; i++) {
|
||||||
|
+ if (children[i].classList.contains("zen-tab-group")) {
|
||||||
|
+ children.splice(i, 1, ...children[i].children);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
children.pop();
|
||||||
|
this._allTabs = children;
|
||||||
|
return children;
|
||||||
|
@@ -1144,10 +1188,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_initializeArrowScrollbox() {
|
_initializeArrowScrollbox() {
|
||||||
@@ -144,7 +160,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
// Ignore underflow events:
|
// Ignore underflow events:
|
||||||
// - from nested scrollable elements
|
// - from nested scrollable elements
|
||||||
// - for vertical orientation
|
// - for vertical orientation
|
||||||
@@ -1471,11 +1509,11 @@
|
@@ -1471,11 +1518,11 @@
|
||||||
for (let i = numPinned - 1; i >= 0; i--) {
|
for (let i = numPinned - 1; i >= 0; i--) {
|
||||||
let tab = tabs[i];
|
let tab = tabs[i];
|
||||||
width += layoutData.pinnedTabWidth;
|
width += layoutData.pinnedTabWidth;
|
||||||
@@ -161,7 +177,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
tab._pinnedUnscrollable = true;
|
tab._pinnedUnscrollable = true;
|
||||||
}
|
}
|
||||||
this.style.setProperty(
|
this.style.setProperty(
|
||||||
@@ -1510,19 +1548,30 @@
|
@@ -1510,19 +1557,30 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,7 +217,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
|
|
||||||
let pinned = draggedTab.pinned;
|
let pinned = draggedTab.pinned;
|
||||||
let numPinned = gBrowser._numPinnedTabs;
|
let numPinned = gBrowser._numPinnedTabs;
|
||||||
@@ -1531,36 +1580,39 @@
|
@@ -1531,36 +1589,39 @@
|
||||||
pinned ? numPinned : undefined
|
pinned ? numPinned : undefined
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -252,7 +268,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
}
|
}
|
||||||
|
|
||||||
draggedTab._dragData.translateX = translateX;
|
draggedTab._dragData.translateX = translateX;
|
||||||
@@ -1593,11 +1645,11 @@
|
@@ -1593,11 +1654,11 @@
|
||||||
if (tabs[mid] == draggedTab && ++mid > high) {
|
if (tabs[mid] == draggedTab && ++mid > high) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -266,7 +282,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
tabCenter
|
tabCenter
|
||||||
) {
|
) {
|
||||||
low = mid + 1;
|
low = mid + 1;
|
||||||
@@ -1620,16 +1672,16 @@
|
@@ -1620,16 +1681,16 @@
|
||||||
for (let tab of tabs) {
|
for (let tab of tabs) {
|
||||||
if (tab != draggedTab) {
|
if (tab != draggedTab) {
|
||||||
let shift = getTabShift(tab, newIndex);
|
let shift = getTabShift(tab, newIndex);
|
||||||
@@ -286,7 +302,7 @@ index 3b97732d8035f07a2308f76f235702c70a5fa388..bed86f3014a239b4e7d50504d4b0bf45
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1701,9 +1753,9 @@
|
@@ -1701,9 +1762,9 @@
|
||||||
|
|
||||||
// Slide the relevant tabs to their new position.
|
// Slide the relevant tabs to their new position.
|
||||||
for (let t of this._getVisibleTabs()) {
|
for (let t of this._getVisibleTabs()) {
|
||||||
|
@@ -349,7 +349,9 @@ class Pages {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_openWelcomePage() {
|
_openWelcomePage() {
|
||||||
gZenUIManager.openAndChangeToTab(kWelcomeURL);
|
gZenUIManager.openAndChangeToTab(kWelcomeURL, {
|
||||||
|
inBackground: true,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
_displayCurrentPage() {
|
_displayCurrentPage() {
|
||||||
|
@@ -340,7 +340,7 @@ toolbarbutton#scrollbutton-up {
|
|||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabbrowser-tab::after {
|
.tabbrowser-tab::after {/* Containers */
|
||||||
background: var(--identity-tab-color, transparent);
|
background: var(--identity-tab-color, transparent);
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
height: 80%;
|
height: 80%;
|
||||||
@@ -362,15 +362,15 @@ toolbarbutton#scrollbutton-up {
|
|||||||
position: relative !important;
|
position: relative !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabbrowser-tab:nth-last-child(1 of [pinned]) {
|
#tabbrowser-tabs:has(.tabbrowser-tab[pinned]) .tabbrowser-tab:nth-child(1 of :not([pinned])) {
|
||||||
margin-bottom: 15px !important;
|
margin-top: 15px !important;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
|
|
||||||
& .tab-stack::after {
|
& .tab-stack::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
bottom: -11px;
|
top: -11px;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 1.5px;
|
height: 1.5px;
|
||||||
@@ -521,12 +521,6 @@ panelmultiview {
|
|||||||
#zen-appcontent-navbar-container #nav-bar {
|
#zen-appcontent-navbar-container #nav-bar {
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
transition: .2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#navigator-toolbox {
|
|
||||||
max-width: 1px;
|
|
||||||
min-width: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-appcontent-navbar-container #nav-bar {
|
#zen-appcontent-navbar-container #nav-bar {
|
||||||
@@ -541,7 +535,18 @@ panelmultiview {
|
|||||||
width: -moz-available;
|
width: -moz-available;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:has(
|
#navigator-toolbox {
|
||||||
|
position: absolute;
|
||||||
|
background: var(--zen-main-browser-background) !important;
|
||||||
|
height: 100%;
|
||||||
|
right: calc(100% - 5px);
|
||||||
|
}
|
||||||
|
|
||||||
|
#zen-sidebar-splitter {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
:root:not([inDOMFullscreen="true"]):has(
|
||||||
:is(
|
:is(
|
||||||
#navigator-toolbox:hover,
|
#navigator-toolbox:hover,
|
||||||
#navigator-toolbox *[open="true"]:not(tab),
|
#navigator-toolbox *[open="true"]:not(tab),
|
||||||
@@ -555,20 +560,21 @@ panelmultiview {
|
|||||||
max-height: unset;
|
max-height: unset;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
opacity: 1;
|
opacity: 1;
|
||||||
background: transparent !important;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
& #navigator-toolbox {
|
& #navigator-toolbox {
|
||||||
border-right: var(--zen-appcontent-border) !important;
|
border-right: var(--zen-appcontent-border) !important;
|
||||||
width: fit-content !important;
|
width: fit-content !important;
|
||||||
padding: 5px;
|
padding: 10px;
|
||||||
|
position: unset;
|
||||||
|
right: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
& #zen-appcontent-navbar-container #nav-bar {
|
& #zen-appcontent-navbar-container #nav-bar {
|
||||||
border-bottom: var(--zen-appcontent-border) !important;
|
border-bottom: var(--zen-appcontent-border) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not([inDOMFullscreen="true"]) & #tabbrowser-tabbox #tabbrowser-tabpanels .browserSidebarContainer {
|
& #tabbrowser-tabbox #tabbrowser-tabpanels .browserSidebarContainer {
|
||||||
margin-top: 10px !important;
|
margin-top: 10px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -588,6 +594,10 @@ panelmultiview {
|
|||||||
margin: 0 !important;
|
margin: 0 !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& #zen-sidebar-splitter {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Screenshots */
|
/* Screenshots */
|
||||||
@@ -714,40 +724,69 @@ panelmultiview {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tabbrowser-tab {
|
.tabbrowser-tab {
|
||||||
width: 100%;
|
&:not([pinned]) {
|
||||||
|
|
||||||
&:hover .tab-close-button {
|
|
||||||
display: block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
& .tab-content {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
&:hover .tab-close-button {
|
||||||
|
display: block !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .tab-content {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .tab-stack {
|
||||||
|
justify-content: start;
|
||||||
|
padding: 10px;
|
||||||
|
width: 100% !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .tab-label-container {
|
||||||
|
|
||||||
|
#tabbrowser-tabs:not([secondarytext-unsupported]) & {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
& .tab-stack {
|
&:active,
|
||||||
justify-content: start;
|
.zen-sidebar-panel-button:active {
|
||||||
padding: 10px;
|
transform: scale(0.96) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&[pinned] {
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#tabbrowser-arrowscrollbox::part(scrollbox) {
|
||||||
|
/* We have the pinned tabs on the top, next to each other,
|
||||||
|
* and the rest of the tabs are below them. */
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(30px, 1fr));
|
||||||
|
padding: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabbrowser-tab:not([pinned]) {
|
||||||
|
grid-column: 1 / -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabbrowser-tab[pinned] {
|
||||||
|
grid-column: span 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-workspaces-button {
|
#zen-workspaces-button {
|
||||||
width: -moz-available !important;
|
width: -moz-available !important;
|
||||||
}
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
.tab-label-container {
|
|
||||||
|
|
||||||
#tabbrowser-tabs:not([secondarytext-unsupported]) & {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
padding-left: 10px;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-sidebar-icons-wrapper {
|
#zen-sidebar-icons-wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 1fr 1fr 1fr;
|
grid-template-columns: repeat(auto-fill, minmax(38px, 1fr));
|
||||||
transition: .1s;
|
transition: .1s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -356,11 +356,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#PlacesChevron,
|
#PlacesChevron,
|
||||||
#urlbar-go-button,
|
#urlbar-go-button {
|
||||||
#zen-expand-sidebar-button {
|
|
||||||
list-style-image: url("arrow-right.svg") !important;
|
list-style-image: url("arrow-right.svg") !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#zen-expand-sidebar-button {
|
||||||
|
list-style-image: url("move-tab.svg") !important;
|
||||||
|
}
|
||||||
|
|
||||||
.panel-header > .subviewbutton-back {
|
.panel-header > .subviewbutton-back {
|
||||||
list-style-image: url("arrow-left.svg") !important;
|
list-style-image: url("arrow-left.svg") !important;
|
||||||
}
|
}
|
||||||
|
@@ -246,7 +246,6 @@
|
|||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
display: flex;
|
display: flex;
|
||||||
font-weight: 600;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#PanelUI-zen-workspaces {
|
#PanelUI-zen-workspaces {
|
||||||
|
@@ -53,10 +53,13 @@
|
|||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
|
transition: width 0.3s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[hidden="true"]) {
|
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[hidden="true"]) {
|
||||||
display: none;
|
max-width: 0;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned="true"]) {
|
#zen-sidebar-web-panel-wrapper:has(#zen-sidebar-web-panel[pinned="true"]) {
|
||||||
@@ -144,6 +147,12 @@
|
|||||||
animation: zen-sidebar-panel-animation-2 0.2s ease-in-out forwards;
|
animation: zen-sidebar-panel-animation-2 0.2s ease-in-out forwards;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#zen-sidebar-web-panel[hidden="true"][pinned="true"] {
|
||||||
|
display: flex;
|
||||||
|
pointer-events: none;
|
||||||
|
animation: zen-sidebar-panel-animation-reverse 0.2s ease-in-out forwards;
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes zen-sidebar-panel-animation {
|
@keyframes zen-sidebar-panel-animation {
|
||||||
0% {
|
0% {
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
@@ -168,6 +177,22 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@keyframes zen-sidebar-panel-animation-reverse {
|
||||||
|
0% {
|
||||||
|
opacity: 1;
|
||||||
|
transform: translateX(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
99% {
|
||||||
|
opacity: 0;
|
||||||
|
transform: translateX(-50px);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#zen-sidebar-web-header,
|
#zen-sidebar-web-header,
|
||||||
#zen-sidebar-panels-wrapper {
|
#zen-sidebar-panels-wrapper {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@@ -193,12 +193,6 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (-moz-bool-pref: "zen.view.sidebar-expanded") {
|
|
||||||
#zen-expand-sidebar-button {
|
|
||||||
display: block; /* TODO? */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media not (-moz-bool-pref: "zen.view.sidebar-expanded") {
|
@media not (-moz-bool-pref: "zen.view.sidebar-expanded") {
|
||||||
#navigator-toolbox {
|
#navigator-toolbox {
|
||||||
width: 0 !important;
|
width: 0 !important;
|
||||||
|
@@ -0,0 +1,16 @@
|
|||||||
|
diff --git a/toolkit/mozapps/update/updater/updater-common.build b/toolkit/mozapps/update/updater/updater-common.build
|
||||||
|
index 6c6d0adf6f56b66c06494b95982b4afae52de536..67e381659dba0c6938a12d16fe12bc2f3e2039ae 100644
|
||||||
|
--- a/toolkit/mozapps/update/updater/updater-common.build
|
||||||
|
+++ b/toolkit/mozapps/update/updater/updater-common.build
|
||||||
|
@@ -78,6 +78,11 @@ if link_with_nss:
|
||||||
|
"nss",
|
||||||
|
"signmar",
|
||||||
|
]
|
||||||
|
+ if CONFIG["OS_ARCH"] == "Linux":
|
||||||
|
+ # Zen: --enable-unverified-updates is enabled, the RPATH is not added
|
||||||
|
+ OS_LIBS += [
|
||||||
|
+ "-Wl,-rpath=\\$$ORIGIN",
|
||||||
|
+ ]
|
||||||
|
|
||||||
|
if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
|
||||||
|
have_progressui = 1
|
@@ -5,7 +5,7 @@
|
|||||||
"binaryName": "zen",
|
"binaryName": "zen",
|
||||||
"version": {
|
"version": {
|
||||||
"product": "firefox",
|
"product": "firefox",
|
||||||
"version": "128.0.2"
|
"version": "128.0.3"
|
||||||
},
|
},
|
||||||
"buildOptions": {
|
"buildOptions": {
|
||||||
"generateBranding": true
|
"generateBranding": true
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"brandShortName": "Zen Browser",
|
"brandShortName": "Zen Browser",
|
||||||
"brandFullName": "Zen Browser",
|
"brandFullName": "Zen Browser",
|
||||||
"release": {
|
"release": {
|
||||||
"displayVersion": "1.0.0-a.6",
|
"displayVersion": "1.0.0-a.7",
|
||||||
"github": {
|
"github": {
|
||||||
"repo": "zen-browser/desktop"
|
"repo": "zen-browser/desktop"
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user