mirror of
https://github.com/zen-browser/desktop.git
synced 2025-09-25 12:38:37 +00:00
Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a18dc63437 | ||
![]() |
a4a9a51bea | ||
![]() |
62aa34d905 | ||
![]() |
5ec8badab4 | ||
![]() |
0cc305bfc9 | ||
![]() |
b368fd967b | ||
![]() |
92779e0549 | ||
![]() |
fbf30a3423 | ||
![]() |
9046e083ee | ||
![]() |
f77db8cb20 | ||
![]() |
11e385e1c4 | ||
![]() |
db2ba602a8 | ||
![]() |
2324ef9f15 | ||
![]() |
3152dcbe68 | ||
![]() |
037bc0c3cf | ||
![]() |
ed492568e6 |
@@ -1,14 +1,17 @@
|
|||||||
app-id: app.zen_browser.zen
|
app-id: app.zen_browser.zen
|
||||||
runtime: org.freedesktop.Platform
|
runtime: org.freedesktop.Platform
|
||||||
runtime-version: '24.08'
|
runtime-version: '25.08'
|
||||||
sdk: org.freedesktop.Sdk
|
sdk: org.freedesktop.Sdk
|
||||||
base: org.mozilla.firefox.BaseApp
|
base: org.mozilla.firefox.BaseApp
|
||||||
base-version: '24.08'
|
base-version: '25.08'
|
||||||
add-extensions:
|
add-extensions:
|
||||||
org.freedesktop.Platform.ffmpeg-full:
|
org.freedesktop.Platform.ffmpeg-full:
|
||||||
directory: lib/ffmpeg
|
directory: lib/ffmpeg
|
||||||
version: '24.08'
|
version: '25.08'
|
||||||
add-ld-path: .
|
add-ld-path: .
|
||||||
|
app.zen_browser.zen.systemconfig:
|
||||||
|
directory: etc/zen
|
||||||
|
no-autodownload: true
|
||||||
command: launch-script.sh
|
command: launch-script.sh
|
||||||
finish-args:
|
finish-args:
|
||||||
- --allow=devel
|
- --allow=devel
|
||||||
@@ -29,7 +32,6 @@ finish-args:
|
|||||||
- --system-talk-name=org.freedesktop.NetworkManager
|
- --system-talk-name=org.freedesktop.NetworkManager
|
||||||
- --talk-name=org.a11y.Bus
|
- --talk-name=org.a11y.Bus
|
||||||
- --talk-name=org.gtk.vfs.*
|
- --talk-name=org.gtk.vfs.*
|
||||||
- --talk-name=org.freedesktop.Notifications
|
|
||||||
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
- --own-name=org.mpris.MediaPlayer2.firefox.*
|
||||||
- --own-name=org.mozilla.zen.*
|
- --own-name=org.mozilla.zen.*
|
||||||
cleanup:
|
cleanup:
|
||||||
@@ -50,6 +52,7 @@ modules:
|
|||||||
build-commands:
|
build-commands:
|
||||||
- mv zen /app/
|
- mv zen /app/
|
||||||
- mkdir -p /app/lib/ffmpeg
|
- mkdir -p /app/lib/ffmpeg
|
||||||
|
- mkdir -p /app/etc/zen
|
||||||
|
|
||||||
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
- install -Dm0755 metadata/launch-script.sh ${{FLATPAK_DEST}}/bin/launch-script.sh
|
||||||
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
- install -Dm0644 metadata/policies.json ${{FLATPAK_DEST}}/bin/distribution/policies.json
|
||||||
|
@@ -52,24 +52,15 @@ if test "$ZEN_RELEASE"; then
|
|||||||
ac_add_options --disable-debug-symbols
|
ac_add_options --disable-debug-symbols
|
||||||
ac_add_options --disable-debug-js-modules
|
ac_add_options --disable-debug-js-modules
|
||||||
ac_add_options --disable-tests
|
ac_add_options --disable-tests
|
||||||
ac_add_options --disable-js-shell
|
|
||||||
|
|
||||||
ac_add_options --disable-vtune
|
|
||||||
|
|
||||||
ac_add_options --enable-rust-simd
|
ac_add_options --enable-rust-simd
|
||||||
ac_add_options --enable-wasm-simd
|
ac_add_options --enable-wasm-simd
|
||||||
|
|
||||||
mk_add_options MOZ_PARALLEL_COMPILE=1
|
mk_add_options MOZ_PARALLEL_COMPILE=1
|
||||||
|
|
||||||
ac_add_options --enable-proxy-bypass-protection
|
|
||||||
ac_add_options --enable-hardening
|
|
||||||
ac_add_options --disable-profiling
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
if ! test "$ZEN_DISABLE_LTO"; then
|
if ! test "$ZEN_DISABLE_LTO"; then
|
||||||
# only enable full LTO when ZEN_RELEASE_BRANCH is 'release'
|
# only enable full LTO when ZEN_RELEASE_BRANCH is 'release'
|
||||||
if test "$ZEN_RELEASE_BRANCH" = "release"; then
|
if test "$ZEN_RELEASE_BRANCH" = "release"; then
|
||||||
@@ -99,6 +90,7 @@ if test "$ZEN_RELEASE"; then
|
|||||||
|
|
||||||
ac_add_options --enable-updater
|
ac_add_options --enable-updater
|
||||||
|
|
||||||
|
ac_add_options --enable-js-shell
|
||||||
export MOZ_PACKAGE_JSSHELL=1
|
export MOZ_PACKAGE_JSSHELL=1
|
||||||
else
|
else
|
||||||
ac_add_options --disable-crashreporter
|
ac_add_options --disable-crashreporter
|
||||||
|
@@ -22,8 +22,6 @@ if test "$ZEN_CROSS_COMPILING"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#? https://bugzilla.mozilla.org/show_bug.cgi?id=1617793
|
|
||||||
#? https://phabricator.services.mozilla.com/D170170
|
|
||||||
ac_add_options --disable-maintenance-service
|
ac_add_options --disable-maintenance-service
|
||||||
ac_add_options --disable-bits-download
|
ac_add_options --disable-bits-download
|
||||||
|
|
||||||
@@ -32,8 +30,6 @@ if test "$SURFER_COMPAT" = "x86_64"; then
|
|||||||
ac_add_options --target=x86_64-pc-windows-msvc
|
ac_add_options --target=x86_64-pc-windows-msvc
|
||||||
ac_add_options --enable-eme=widevine,wmfcdm
|
ac_add_options --enable-eme=widevine,wmfcdm
|
||||||
|
|
||||||
# ac_add_options --disable-jemalloc
|
|
||||||
|
|
||||||
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
ac_add_options --enable-optimize="-O3 -w -ftree-vectorize -mfpmath=sse -mprfchw -msse3 -mcx16 -msahf"
|
||||||
|
|
||||||
export LDFLAGS="-Wl,-O3"
|
export LDFLAGS="-Wl,-O3"
|
||||||
@@ -55,8 +51,6 @@ elif test "$SURFER_COMPAT" = "aarch64"; then
|
|||||||
export RUSTFLAGS="-C target-feature=+v8.2a -Ctarget-cpu=cortex-a55"
|
export RUSTFLAGS="-C target-feature=+v8.2a -Ctarget-cpu=cortex-a55"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#export 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_CROSS_COMPILING"; then
|
if test "$ZEN_CROSS_COMPILING"; then
|
||||||
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
if test "$ZEN_GA_GENERATE_PROFILE"; then
|
||||||
export CXXFLAGS="$CXXFLAGS -fprofile-generate -mllvm -enable-name-compression=false -mllvm -pgo-temporal-instrumentation -fprofile-update=atomic"
|
export CXXFLAGS="$CXXFLAGS -fprofile-generate -mllvm -enable-name-compression=false -mllvm -pgo-temporal-instrumentation -fprofile-update=atomic"
|
||||||
|
@@ -43,7 +43,7 @@ pane-settings-workspaces-title = Arbeitsbereiche
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Tab-Entlader aktivieren
|
.label = Tab-Entlader aktivieren
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Theme Hintergrund für kompakte Symbolleiste verwenden
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Dort fortfahren, wo Sie aufgehört haben
|
.label = Dort fortfahren, wo Sie aufgehört haben
|
||||||
pane-zen-pinned-tab-manager-title = Angepinnte Tabs
|
pane-zen-pinned-tab-manager-title = Angepinnte Tabs
|
||||||
@@ -274,7 +274,7 @@ zen-split-view-shortcut-grid = Geteilte Ansicht Raster umschalten
|
|||||||
zen-split-view-shortcut-vertical = Geteilte Ansicht vertikal umschalten
|
zen-split-view-shortcut-vertical = Geteilte Ansicht vertikal umschalten
|
||||||
zen-split-view-shortcut-horizontal = Geteilte Ansicht horizontal umschalten
|
zen-split-view-shortcut-horizontal = Geteilte Ansicht horizontal umschalten
|
||||||
zen-split-view-shortcut-unsplit = Geteilte Ansicht schließen
|
zen-split-view-shortcut-unsplit = Geteilte Ansicht schließen
|
||||||
zen-new-empty-split-view-shortcut = New Empty Split View
|
zen-new-empty-split-view-shortcut = Neuer leerer Split View
|
||||||
zen-key-select-tab-1 = Tab #1 auswählen
|
zen-key-select-tab-1 = Tab #1 auswählen
|
||||||
zen-key-select-tab-2 = Tab #2 auswählen
|
zen-key-select-tab-2 = Tab #2 auswählen
|
||||||
zen-key-select-tab-3 = Tab #3 auswählen
|
zen-key-select-tab-3 = Tab #3 auswählen
|
||||||
|
@@ -4,7 +4,7 @@ zen-panel-ui-workspaces-create =
|
|||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Ordner erstellen
|
.label = Ordner erstellen
|
||||||
zen-panel-ui-new-empty-split =
|
zen-panel-ui-new-empty-split =
|
||||||
.label = New Split
|
.label = Split View erstellen
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = Arbeitsbereich löschen
|
.label = Arbeitsbereich löschen
|
||||||
.accesskey = D
|
.accesskey = D
|
||||||
|
@@ -43,7 +43,7 @@ pane-settings-workspaces-title = Ruang Kerja
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Aktifkan Pelepas Tab
|
.label = Aktifkan Pelepas Tab
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Gunakan latar belakang bertema untuk bilah atas dalam mode ringkas
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Lanjutkan dari halaman terakhir yang dibuka
|
.label = Lanjutkan dari halaman terakhir yang dibuka
|
||||||
pane-zen-pinned-tab-manager-title = Tab yang Disematkan
|
pane-zen-pinned-tab-manager-title = Tab yang Disematkan
|
||||||
|
@@ -43,7 +43,7 @@ pane-settings-workspaces-title = Áreas de Trabalho
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Ativar Descarregador de Guias
|
.label = Ativar Descarregador de Guias
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Usar fundo temático na barra de ferramentas compacta
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Continue de onde você parou
|
.label = Continue de onde você parou
|
||||||
pane-zen-pinned-tab-manager-title = Guias Fixadas
|
pane-zen-pinned-tab-manager-title = Guias Fixadas
|
||||||
@@ -221,7 +221,7 @@ zen-key-exit-full-screen = Sair de Tela Cheia
|
|||||||
zen-ai-chatbot-sidebar-shortcut = Alternar barra lateral de AI Chatbot
|
zen-ai-chatbot-sidebar-shortcut = Alternar barra lateral de AI Chatbot
|
||||||
zen-key-inspector-mac = Ativar/Desativar Inspetor
|
zen-key-inspector-mac = Ativar/Desativar Inspetor
|
||||||
zen-toggle-sidebar-shortcut = Alternar barra lateral Firefox
|
zen-toggle-sidebar-shortcut = Alternar barra lateral Firefox
|
||||||
zen-toggle-pin-tab-shortcut = Toggle Pin Tab
|
zen-toggle-pin-tab-shortcut = Alternar fixação da aba
|
||||||
zen-reader-mode-toggle-shortcut-other = Ativar/desativar modo leitor
|
zen-reader-mode-toggle-shortcut-other = Ativar/desativar modo leitor
|
||||||
zen-picture-in-picture-toggle-shortcut = Alternar Picture-in-Picture
|
zen-picture-in-picture-toggle-shortcut = Alternar Picture-in-Picture
|
||||||
zen-nav-reload-shortcut-2 = Recarregar Página
|
zen-nav-reload-shortcut-2 = Recarregar Página
|
||||||
@@ -255,7 +255,7 @@ zen-close-tab-shortcut = Fechar Aba
|
|||||||
zen-compact-mode-shortcut-show-sidebar = Alternar barra lateral flutuante
|
zen-compact-mode-shortcut-show-sidebar = Alternar barra lateral flutuante
|
||||||
zen-compact-mode-shortcut-show-toolbar = Alternar barra flutuante
|
zen-compact-mode-shortcut-show-toolbar = Alternar barra flutuante
|
||||||
zen-compact-mode-shortcut-toggle = Ativar/Desativar Modo Compacto
|
zen-compact-mode-shortcut-toggle = Ativar/Desativar Modo Compacto
|
||||||
zen-glance-expand = Expand Glance
|
zen-glance-expand = Expandir Visualização Rápida
|
||||||
zen-workspace-shortcut-switch-1 = Mudar para Área de Trabalho 1
|
zen-workspace-shortcut-switch-1 = Mudar para Área de Trabalho 1
|
||||||
zen-workspace-shortcut-switch-2 = Mudar para Área de Trabalho 2
|
zen-workspace-shortcut-switch-2 = Mudar para Área de Trabalho 2
|
||||||
zen-workspace-shortcut-switch-3 = Mudar para Área de Trabalho 3
|
zen-workspace-shortcut-switch-3 = Mudar para Área de Trabalho 3
|
||||||
@@ -274,7 +274,7 @@ zen-split-view-shortcut-grid = Alternar grade de visualização dividida
|
|||||||
zen-split-view-shortcut-vertical = Alternar visualização de divisão vertical
|
zen-split-view-shortcut-vertical = Alternar visualização de divisão vertical
|
||||||
zen-split-view-shortcut-horizontal = Alternar visualização horizontal de divisão
|
zen-split-view-shortcut-horizontal = Alternar visualização horizontal de divisão
|
||||||
zen-split-view-shortcut-unsplit = Fechar visualização dividida
|
zen-split-view-shortcut-unsplit = Fechar visualização dividida
|
||||||
zen-new-empty-split-view-shortcut = New Empty Split View
|
zen-new-empty-split-view-shortcut = Nova Divisão de Tela Vazia
|
||||||
zen-key-select-tab-1 = Selecionar guia #1
|
zen-key-select-tab-1 = Selecionar guia #1
|
||||||
zen-key-select-tab-2 = Selecionar guia #2
|
zen-key-select-tab-2 = Selecionar guia #2
|
||||||
zen-key-select-tab-3 = Selecionar guia #3
|
zen-key-select-tab-3 = Selecionar guia #3
|
||||||
|
@@ -4,7 +4,7 @@ zen-panel-ui-workspaces-create =
|
|||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Nova Pasta
|
.label = Nova Pasta
|
||||||
zen-panel-ui-new-empty-split =
|
zen-panel-ui-new-empty-split =
|
||||||
.label = New Split
|
.label = Nova Divisão
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = Excluir Espaço
|
.label = Excluir Espaço
|
||||||
.accesskey = D
|
.accesskey = D
|
||||||
|
@@ -43,7 +43,7 @@ pane-settings-workspaces-title = Espaços de Trabalho
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Habilitar a Hibernação de Separadores
|
.label = Habilitar a Hibernação de Separadores
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Usar fundo temático para a barra de ferramentas compacta
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Continuar a partir do ponto onde parou
|
.label = Continuar a partir do ponto onde parou
|
||||||
pane-zen-pinned-tab-manager-title = Separadores Fixados
|
pane-zen-pinned-tab-manager-title = Separadores Fixados
|
||||||
|
@@ -43,7 +43,7 @@ pane-settings-workspaces-title = Робочі області
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Увімкнути вивантаження вкладок
|
.label = Увімкнути вивантаження вкладок
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Використовувати тематичний фон для компактної панелі інструментів
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Продовжити з місця зупинки
|
.label = Продовжити з місця зупинки
|
||||||
pane-zen-pinned-tab-manager-title = Прикріплені вкладки
|
pane-zen-pinned-tab-manager-title = Прикріплені вкладки
|
||||||
@@ -221,7 +221,7 @@ zen-key-exit-full-screen = Вийти з повноекранного режим
|
|||||||
zen-ai-chatbot-sidebar-shortcut = Перемкнути бічну панель ШІ чат-бота
|
zen-ai-chatbot-sidebar-shortcut = Перемкнути бічну панель ШІ чат-бота
|
||||||
zen-key-inspector-mac = Перемкнути інспектор (Mac)
|
zen-key-inspector-mac = Перемкнути інспектор (Mac)
|
||||||
zen-toggle-sidebar-shortcut = Перемкнути бічну панель Firefox
|
zen-toggle-sidebar-shortcut = Перемкнути бічну панель Firefox
|
||||||
zen-toggle-pin-tab-shortcut = Toggle Pin Tab
|
zen-toggle-pin-tab-shortcut = Закріпити / відкріпити вкладку
|
||||||
zen-reader-mode-toggle-shortcut-other = Перемкнути режим читання
|
zen-reader-mode-toggle-shortcut-other = Перемкнути режим читання
|
||||||
zen-picture-in-picture-toggle-shortcut = Показати/приховати зображення
|
zen-picture-in-picture-toggle-shortcut = Показати/приховати зображення
|
||||||
zen-nav-reload-shortcut-2 = Перезавантажити сторінку
|
zen-nav-reload-shortcut-2 = Перезавантажити сторінку
|
||||||
@@ -255,7 +255,7 @@ 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-show-toolbar = Перемкнути спливну панель інструментів
|
||||||
zen-compact-mode-shortcut-toggle = Компактний режим
|
zen-compact-mode-shortcut-toggle = Компактний режим
|
||||||
zen-glance-expand = Expand Glance
|
zen-glance-expand = Розгорнути огляд
|
||||||
zen-workspace-shortcut-switch-1 = Перейти на робочу область 1
|
zen-workspace-shortcut-switch-1 = Перейти на робочу область 1
|
||||||
zen-workspace-shortcut-switch-2 = Перейти на робочу область 2
|
zen-workspace-shortcut-switch-2 = Перейти на робочу область 2
|
||||||
zen-workspace-shortcut-switch-3 = Перейти на робочу область 3
|
zen-workspace-shortcut-switch-3 = Перейти на робочу область 3
|
||||||
@@ -274,7 +274,7 @@ zen-split-view-shortcut-grid = Перемкнути розділену сітк
|
|||||||
zen-split-view-shortcut-vertical = Перемкнути розділений Перегляд вертикально
|
zen-split-view-shortcut-vertical = Перемкнути розділений Перегляд вертикально
|
||||||
zen-split-view-shortcut-horizontal = Перемкнути розділений Перегляд горизонтально
|
zen-split-view-shortcut-horizontal = Перемкнути розділений Перегляд горизонтально
|
||||||
zen-split-view-shortcut-unsplit = Закрити розділений вигляд
|
zen-split-view-shortcut-unsplit = Закрити розділений вигляд
|
||||||
zen-new-empty-split-view-shortcut = New Empty Split View
|
zen-new-empty-split-view-shortcut = Новий пустий розділений перегляд
|
||||||
zen-key-select-tab-1 = Вибрати вкладку #1
|
zen-key-select-tab-1 = Вибрати вкладку #1
|
||||||
zen-key-select-tab-2 = Вибрати вкладку #2
|
zen-key-select-tab-2 = Вибрати вкладку #2
|
||||||
zen-key-select-tab-3 = Вибрати вкладку #3
|
zen-key-select-tab-3 = Вибрати вкладку #3
|
||||||
|
@@ -4,7 +4,7 @@ zen-panel-ui-workspaces-create =
|
|||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Створити теку
|
.label = Створити теку
|
||||||
zen-panel-ui-new-empty-split =
|
zen-panel-ui-new-empty-split =
|
||||||
.label = New Split
|
.label = Нове розділення
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = Видалити простір
|
.label = Видалити простір
|
||||||
.accesskey = D
|
.accesskey = D
|
||||||
|
@@ -19,9 +19,9 @@
|
|||||||
"update-ff:raw": "surfer update",
|
"update-ff:raw": "surfer update",
|
||||||
"update-ff:rc": "python3 scripts/update_ff.py --rc",
|
"update-ff:rc": "python3 scripts/update_ff.py --rc",
|
||||||
"update-ff:l10n": "python3 scripts/update_ff.py --just-l10n",
|
"update-ff:l10n": "python3 scripts/update_ff.py --just-l10n",
|
||||||
"pretty": "prettier . --write && autopep8 -r --in-place scripts/ src/",
|
"pretty": "prettier . --write --cache && autopep8 -r --in-place scripts/ src/",
|
||||||
"lint": "npx eslint src/ && prettier . --check && autopep8 --diff scripts/ src/",
|
"lint": "npx eslint src/ && prettier . --check && autopep8 --diff scripts/ src/",
|
||||||
"lint:fix": "npx eslint src/ --fix && npm run pretty",
|
"lint:fix": "npm run pretty && npx eslint src/ --fix",
|
||||||
"prepare": "husky",
|
"prepare": "husky",
|
||||||
"reset-ff": "surfer reset",
|
"reset-ff": "surfer reset",
|
||||||
"surfer": "surfer",
|
"surfer": "surfer",
|
||||||
|
@@ -14,6 +14,9 @@
|
|||||||
- name: zen.tabs.show-newtab-vertical
|
- name: zen.tabs.show-newtab-vertical
|
||||||
value: true
|
value: true
|
||||||
|
|
||||||
|
- name: zen.tabs.close-window-with-empty
|
||||||
|
value: true
|
||||||
|
|
||||||
- name: zen.ctrlTab.show-pending-tabs
|
- name: zen.ctrlTab.show-pending-tabs
|
||||||
value: false
|
value: false
|
||||||
|
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
index 3204f253c23551650991d3385dd256d55892a012..29e0471616f979bfe40bb4d34148bf35a63f59ee 100644
|
index 3204f253c23551650991d3385dd256d55892a012..792e54079e9f82013617306243fe313c1ee4358d 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||||
@@ -427,15 +427,64 @@
|
@@ -427,15 +427,64 @@
|
||||||
@@ -481,7 +481,7 @@ index 3204f253c23551650991d3385dd256d55892a012..29e0471616f979bfe40bb4d34148bf35
|
|||||||
+ index = Math.min(index, tab.hasAttribute("zen-essential") ? this._numZenEssentials : this._numVisiblePinTabsWithoutCollapsed);
|
+ index = Math.min(index, tab.hasAttribute("zen-essential") ? this._numZenEssentials : this._numVisiblePinTabsWithoutCollapsed);
|
||||||
} else {
|
} else {
|
||||||
- index = Math.max(index, this.pinnedTabCount);
|
- index = Math.max(index, this.pinnedTabCount);
|
||||||
+ index = Math.max(index, this._numVisiblePinTabsWithoutCollapsed);
|
+ index = Math.max(index, typeof elementIndex == "number" ? this._numVisiblePinTabsWithoutCollapsed : this.pinnedTabCount);
|
||||||
index = Math.min(index, allItems.length);
|
index = Math.min(index, allItems.length);
|
||||||
}
|
}
|
||||||
/** @type {MozTabbrowserTab|undefined} */
|
/** @type {MozTabbrowserTab|undefined} */
|
||||||
|
12
src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch
Normal file
12
src/browser/components/urlbar/UrlbarPrefs-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
|
index 3c179db3b310c43f8c6c06b1ecbcf5ed59feefe6..693bef15401cd4428c8a0222de57b83b78564194 100644
|
||||||
|
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
|
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
|
@@ -719,6 +719,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||||
|
*/
|
||||||
|
let rootGroup = {
|
||||||
|
children: [
|
||||||
|
+ { group: lazy.UrlbarUtils.RESULT_GROUP.ZEN_ACTION },
|
||||||
|
// heuristic
|
||||||
|
{
|
||||||
|
maxResultCount: 1,
|
21
src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch
Normal file
21
src/browser/components/urlbar/UrlbarUtils-sys-mjs.patch
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
|
index 0bc15c02f56dd8f46a21fed02b4e21a741f27f41..b69a4d34f700637bd352620c520b989cf00fa39f 100644
|
||||||
|
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
|
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
|
@@ -75,6 +75,7 @@ export var UrlbarUtils = {
|
||||||
|
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
||||||
|
SUGGESTED_INDEX: "suggestedIndex",
|
||||||
|
TAIL_SUGGESTION: "tailSuggestion",
|
||||||
|
+ ZEN_ACTION: "zenAction",
|
||||||
|
}),
|
||||||
|
|
||||||
|
// Defines provider types.
|
||||||
|
@@ -576,6 +577,8 @@ export var UrlbarUtils = {
|
||||||
|
return this.RESULT_GROUP.INPUT_HISTORY;
|
||||||
|
case "UrlbarProviderQuickSuggest":
|
||||||
|
return this.RESULT_GROUP.GENERAL_PARENT;
|
||||||
|
+ case "ZenUrlbarProviderGlobalActions":
|
||||||
|
+ return this.RESULT_GROUP.ZEN_ACTION;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
@@ -12,7 +12,7 @@
|
|||||||
/**
|
/**
|
||||||
* @param {{selector: string, exists: boolean}} descendantSelectors
|
* @param {{selector: string, exists: boolean}} descendantSelectors
|
||||||
*/
|
*/
|
||||||
observeSelectorExistence(element, descendantSelectors, stateAttribute) {
|
observeSelectorExistence(element, descendantSelectors, stateAttribute, attributeFilter = []) {
|
||||||
const updateState = () => {
|
const updateState = () => {
|
||||||
const exists = descendantSelectors.some(({ selector }) => {
|
const exists = descendantSelectors.some(({ selector }) => {
|
||||||
return element.querySelector(selector);
|
return element.querySelector(selector);
|
||||||
@@ -36,6 +36,7 @@
|
|||||||
id: observerId,
|
id: observerId,
|
||||||
observer,
|
observer,
|
||||||
element,
|
element,
|
||||||
|
attributeFilter,
|
||||||
});
|
});
|
||||||
return observerId;
|
return observerId;
|
||||||
}
|
}
|
||||||
@@ -54,6 +55,7 @@
|
|||||||
childList: true,
|
childList: true,
|
||||||
subtree: true,
|
subtree: true,
|
||||||
attributes: true,
|
attributes: true,
|
||||||
|
attributeFilter: observer.attributeFilter.length ? observer.attributeFilter : undefined,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -14,12 +14,6 @@ var gZenUIManager = {
|
|||||||
init() {
|
init() {
|
||||||
document.addEventListener('popupshowing', this.onPopupShowing.bind(this));
|
document.addEventListener('popupshowing', this.onPopupShowing.bind(this));
|
||||||
document.addEventListener('popuphidden', this.onPopupHidden.bind(this));
|
document.addEventListener('popuphidden', this.onPopupHidden.bind(this));
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(
|
|
||||||
this,
|
|
||||||
'sidebarHeightThrottle',
|
|
||||||
'zen.view.sidebar-height-throttle',
|
|
||||||
500
|
|
||||||
);
|
|
||||||
XPCOMUtils.defineLazyPreferenceGetter(
|
XPCOMUtils.defineLazyPreferenceGetter(
|
||||||
this,
|
this,
|
||||||
'contentElementSeparation',
|
'contentElementSeparation',
|
||||||
@@ -52,14 +46,10 @@ var gZenUIManager = {
|
|||||||
|
|
||||||
gURLBar._zenTrimURL = this.urlbarTrim.bind(this);
|
gURLBar._zenTrimURL = this.urlbarTrim.bind(this);
|
||||||
|
|
||||||
new ResizeObserver(this.updateTabsToolbar.bind(this)).observe(
|
|
||||||
document.getElementById('TabsToolbar')
|
|
||||||
);
|
|
||||||
|
|
||||||
new ResizeObserver(
|
new ResizeObserver(
|
||||||
gZenCommonActions.throttle(
|
gZenCommonActions.throttle(
|
||||||
gZenCompactModeManager.getAndApplySidebarWidth.bind(gZenCompactModeManager),
|
gZenCompactModeManager.getAndApplySidebarWidth.bind(gZenCompactModeManager),
|
||||||
this.sidebarHeightThrottle
|
Services.prefs.getIntPref('zen.view.sidebar-height-throttle', 500)
|
||||||
)
|
)
|
||||||
).observe(gNavToolbox);
|
).observe(gNavToolbox);
|
||||||
|
|
||||||
@@ -643,7 +633,8 @@ var gZenVerticalTabsManager = {
|
|||||||
!aItem.isConnected ||
|
!aItem.isConnected ||
|
||||||
gZenUIManager.testingEnabled ||
|
gZenUIManager.testingEnabled ||
|
||||||
!gZenStartup.isReady ||
|
!gZenStartup.isReady ||
|
||||||
!gZenPinnedTabManager.hasInitializedPins
|
!gZenPinnedTabManager.hasInitializedPins ||
|
||||||
|
aItem.group?.hasAttribute('split-view-group')
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -163,7 +163,7 @@
|
|||||||
z-index: 2;
|
z-index: 2;
|
||||||
|
|
||||||
& .urlbar-input-container {
|
& .urlbar-input-container {
|
||||||
font-weight: 500;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
& #identity-box {
|
& #identity-box {
|
||||||
@@ -584,7 +584,11 @@
|
|||||||
|
|
||||||
#urlbar-label-box,
|
#urlbar-label-box,
|
||||||
#urlbar-search-mode-indicator {
|
#urlbar-search-mode-indicator {
|
||||||
background-color: color-mix(in srgb, var(--zen-primary-color), transparent 30%) !important;
|
background-color: color-mix(
|
||||||
|
in srgb,
|
||||||
|
var(--zen-primary-color) 50%,
|
||||||
|
light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.2)) 50%
|
||||||
|
) !important;
|
||||||
color: white;
|
color: white;
|
||||||
padding: 4px 8px;
|
padding: 4px 8px;
|
||||||
border-radius: 50px;
|
border-radius: 50px;
|
||||||
@@ -611,7 +615,7 @@
|
|||||||
--zen-selected-bg: color-mix(
|
--zen-selected-bg: color-mix(
|
||||||
in srgb,
|
in srgb,
|
||||||
var(--zen-primary-color) 50%,
|
var(--zen-primary-color) 50%,
|
||||||
light-dark(rgba(0, 0, 0, 0.3), rgba(255, 255, 255, 0.2)) 50%
|
light-dark(rgba(0, 0, 0, 0.5), rgba(255, 255, 255, 0.2)) 50%
|
||||||
);
|
);
|
||||||
--zen-selected-color: color-mix(in srgb, var(--zen-selected-bg), light-dark(white, black) 40%);
|
--zen-selected-color: color-mix(in srgb, var(--zen-selected-bg), light-dark(white, black) 40%);
|
||||||
background-color: var(--zen-selected-bg) !important;
|
background-color: var(--zen-selected-bg) !important;
|
||||||
|
@@ -150,7 +150,8 @@ var gZenCompactModeManager = {
|
|||||||
":is([panelopen='true'], [open='true'], [breakout-extend='true']):not(#urlbar[zen-floating-urlbar='true']):not(tab):not(.zen-compact-mode-ignore)",
|
":is([panelopen='true'], [open='true'], [breakout-extend='true']):not(#urlbar[zen-floating-urlbar='true']):not(tab):not(.zen-compact-mode-ignore)",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'zen-compact-mode-active'
|
'zen-compact-mode-active',
|
||||||
|
['panelopen', 'open', 'breakout-extend', 'zen-floating-urlbar']
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -229,11 +230,6 @@ var gZenCompactModeManager = {
|
|||||||
// IF we are animating IN, call the callbacks first so we can calculate the width
|
// IF we are animating IN, call the callbacks first so we can calculate the width
|
||||||
// once the window buttons are shown
|
// once the window buttons are shown
|
||||||
this.updateContextMenu();
|
this.updateContextMenu();
|
||||||
if (this.preference) {
|
|
||||||
ZenHasPolyfill.connectObserver(this.sidebarObserverId);
|
|
||||||
} else {
|
|
||||||
ZenHasPolyfill.disconnectObserver(this.sidebarObserverId);
|
|
||||||
}
|
|
||||||
if (!this.preference) {
|
if (!this.preference) {
|
||||||
this._evenListeners.forEach((callback) => callback());
|
this._evenListeners.forEach((callback) => callback());
|
||||||
await this.animateCompactMode();
|
await this.animateCompactMode();
|
||||||
@@ -245,6 +241,11 @@ var gZenCompactModeManager = {
|
|||||||
if (isUrlbarFocused) {
|
if (isUrlbarFocused) {
|
||||||
gURLBar.focus();
|
gURLBar.focus();
|
||||||
}
|
}
|
||||||
|
if (this.preference) {
|
||||||
|
ZenHasPolyfill.connectObserver(this.sidebarObserverId);
|
||||||
|
} else {
|
||||||
|
ZenHasPolyfill.disconnectObserver(this.sidebarObserverId);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
// NOTE: Dont actually use event, it's just so we make sure
|
// NOTE: Dont actually use event, it's just so we make sure
|
||||||
|
@@ -33,41 +33,21 @@
|
|||||||
</linearGradient>
|
</linearGradient>
|
||||||
</defs>
|
</defs>
|
||||||
<!--Back Folder (path)-->
|
<!--Back Folder (path)-->
|
||||||
<path d="M8 5.625H11.9473C12.4866 5.625 13.0105 5.80861 13.4316 6.14551L14.2881 6.83105C14.9308 7.34508 15.7298 7.625 16.5527 7.625H20C21.3117 7.625 22.375 8.68832 22.375 10V20C22.375 21.3117 21.3117 22.375 20 22.375H8C6.68832 22.375 5.625 21.3117 5.625 20V8C5.625 6.68832 6.68832 5.625 8 5.625Z" style="fill: var(--zen-folder-behind-bgcolor);">
|
<path class="back" d="M8 5.625H11.9473C12.4866 5.625 13.0105 5.80861 13.4316 6.14551L14.2881 6.83105C14.9308 7.34508 15.7298 7.625 16.5527 7.625H20C21.3117 7.625 22.375 8.68832 22.375 10V20C22.375 21.3117 21.3117 22.375 20 22.375H8C6.68832 22.375 5.625 21.3117 5.625 20V8C5.625 6.68832 6.68832 5.625 8 5.625Z" style="fill: var(--zen-folder-behind-bgcolor);">
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;-2 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
</path>
|
</path>
|
||||||
<path d="M8 5.625H11.9473C12.4866 5.625 13.0105 5.80861 13.4316 6.14551L14.2881 6.83105C14.9308 7.34508 15.7298 7.625 16.5527 7.625H20C21.3117 7.625 22.375 8.68832 22.375 10V20C22.375 21.3117 21.3117 22.375 20 22.375H8C6.68832 22.375 5.625 21.3117 5.625 20V8C5.625 6.68832 6.68832 5.625 8 5.625Z" style="stroke-width: 1.5px; stroke: var(--zen-folder-stroke); fill: url(#gradient-0); fill-opacity: 0.1;">
|
<path class="back" d="M8 5.625H11.9473C12.4866 5.625 13.0105 5.80861 13.4316 6.14551L14.2881 6.83105C14.9308 7.34508 15.7298 7.625 16.5527 7.625H20C21.3117 7.625 22.375 8.68832 22.375 10V20C22.375 21.3117 21.3117 22.375 20 22.375H8C6.68832 22.375 5.625 21.3117 5.625 20V8C5.625 6.68832 6.68832 5.625 8 5.625Z" style="stroke-width: 1.5px; stroke: var(--zen-folder-stroke); fill: url(#gradient-0); fill-opacity: 0.1;">
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;-2 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
</path>
|
</path>
|
||||||
<!--Front Folder (rect)-->
|
<!--Front Folder (rect)-->
|
||||||
<rect x="5.625" y="9.625" width="16.75" height="12.75" rx="2.375" style="fill: var(--zen-folder-front-bgcolor);">
|
<rect class="front" x="5.625" y="9.625" width="16.75" height="12.75" rx="2.375" style="fill: var(--zen-folder-front-bgcolor);">
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;-16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;11.1 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
</rect>
|
</rect>
|
||||||
<rect x="5.625" y="9.625" width="16.75" height="12.75" rx="2.375" style="stroke-width: 1.5px; stroke: var(--zen-folder-stroke); fill: url(#gradient-1); fill-opacity: 0.1;">
|
<rect class="front" x="5.625" y="9.625" width="16.75" height="12.75" rx="2.375" style="stroke-width: 1.5px; stroke: var(--zen-folder-stroke); fill: url(#gradient-1); fill-opacity: 0.1;">
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;-16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;11.1 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
</rect>
|
</rect>
|
||||||
<!--Icon (g)-->
|
<!--Icon (g)-->
|
||||||
<g id="folder-icon" style="fill: var(--zen-folder-stroke);">
|
<g class="icon" style="fill: var(--zen-folder-stroke);">
|
||||||
<image href="" height="19" width="20"/>
|
<image href="" height="19" width="20"/>
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;-16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;11.1 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animate attributeName="opacity" values="0;0" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
</g>
|
</g>
|
||||||
<!--End Icon (g)-->
|
<!--End Icon (g)-->
|
||||||
<g id="folder-dots" style="fill: var(--zen-folder-stroke);">
|
<g class="dots" style="fill: var(--zen-folder-stroke);">
|
||||||
<animateTransform type="skewX" additive="sum" attributeName="transform" values="0;-16" begin="0s" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="translate" additive="sum" attributeName="transform" values="0 0;11.1 3.4" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animateTransform type="scale" additive="sum" attributeName="transform" values="1 1;0.85 0.85" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<animate attributeName="opacity" values="0;0" dur="0.3s" fill="freeze" keyTimes="0; 1" calcMode="spline" keySplines="0.42 0 0 1"/>
|
|
||||||
<ellipse cx="10" cy="16" rx="1.25" ry="1.25"/>
|
<ellipse cx="10" cy="16" rx="1.25" ry="1.25"/>
|
||||||
<ellipse cx="14" cy="16" rx="1.25" ry="1.25"/>
|
<ellipse cx="14" cy="16" rx="1.25" ry="1.25"/>
|
||||||
<ellipse cx="18" cy="16" rx="1.25" ry="1.25"/>
|
<ellipse cx="18" cy="16" rx="1.25" ry="1.25"/>
|
||||||
@@ -89,13 +69,6 @@
|
|||||||
this.#initialized = true;
|
this.#initialized = true;
|
||||||
this._activeTabs = [];
|
this._activeTabs = [];
|
||||||
this.icon.appendChild(ZenFolder.rawIcon.cloneNode(true));
|
this.icon.appendChild(ZenFolder.rawIcon.cloneNode(true));
|
||||||
// Save original values for animations
|
|
||||||
this.icon.querySelectorAll('animate, animateTransform, animateMotion').forEach((anim) => {
|
|
||||||
const vals = anim.getAttribute('values');
|
|
||||||
if (vals) {
|
|
||||||
anim.dataset.origValues = vals;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
this.labelElement.parentElement.setAttribute('context', 'zenFolderActions');
|
this.labelElement.parentElement.setAttribute('context', 'zenFolderActions');
|
||||||
|
|
||||||
|
@@ -40,7 +40,6 @@
|
|||||||
#lastFolderContextMenu = null;
|
#lastFolderContextMenu = null;
|
||||||
|
|
||||||
#foldersEnabled = false;
|
#foldersEnabled = false;
|
||||||
#folderAnimCache = new Map();
|
|
||||||
|
|
||||||
#animationCount = 0;
|
#animationCount = 0;
|
||||||
|
|
||||||
@@ -304,7 +303,7 @@
|
|||||||
folder.removeAttribute('has-active');
|
folder.removeAttribute('has-active');
|
||||||
}
|
}
|
||||||
this.collapseVisibleTab(folder, true);
|
this.collapseVisibleTab(folder, true);
|
||||||
this.updateFolderIcon(folder, 'close', false);
|
this.updateFolderIcon(folder, 'close');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -721,7 +720,7 @@
|
|||||||
async #convertFolderToSpace(folder) {
|
async #convertFolderToSpace(folder) {
|
||||||
const currentWorkspace = gZenWorkspaces.getActiveWorkspaceFromCache();
|
const currentWorkspace = gZenWorkspaces.getActiveWorkspaceFromCache();
|
||||||
let selectedTab = folder.tabs.find((tab) => tab.selected);
|
let selectedTab = folder.tabs.find((tab) => tab.selected);
|
||||||
const icon = folder.icon?.querySelector('svg #folder-icon image');
|
const icon = folder.icon?.querySelector('svg .icon image');
|
||||||
|
|
||||||
const newSpace = await gZenWorkspaces.createAndSaveWorkspace(
|
const newSpace = await gZenWorkspaces.createAndSaveWorkspace(
|
||||||
folder.label,
|
folder.label,
|
||||||
@@ -855,7 +854,7 @@
|
|||||||
gBrowser.TabStateFlusher.flush(tab.linkedBrowser);
|
gBrowser.TabStateFlusher.flush(tab.linkedBrowser);
|
||||||
});
|
});
|
||||||
|
|
||||||
this.updateFolderIcon(folder, 'auto', false);
|
this.updateFolderIcon(folder, 'auto');
|
||||||
|
|
||||||
if (options.renameFolder) {
|
if (options.renameFolder) {
|
||||||
folder.rename();
|
folder.rename();
|
||||||
@@ -1116,71 +1115,14 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
updateFolderIcon(group, state = 'auto', play = true) {
|
updateFolderIcon(group, state = 'auto') {
|
||||||
const svg = group.querySelector('svg');
|
const svg = group.querySelector('svg');
|
||||||
if (!svg) return [];
|
if (!svg) return [];
|
||||||
let animations = this.#folderAnimCache.get(group);
|
|
||||||
if (!animations) {
|
|
||||||
animations = svg.querySelectorAll('animate, animateTransform, animateMotion');
|
|
||||||
this.#folderAnimCache.set(group, animations);
|
|
||||||
}
|
|
||||||
|
|
||||||
const isCollapsed = group.collapsed;
|
const isCollapsed = group.collapsed;
|
||||||
svg.setAttribute('state', state === 'auto' ? (isCollapsed ? 'close' : 'open') : state);
|
svg.setAttribute('state', state === 'auto' ? (isCollapsed ? 'close' : 'open') : state);
|
||||||
const hasActive = group.hasAttribute('has-active');
|
const hasActive = group.hasAttribute('has-active');
|
||||||
|
svg.setAttribute('active', hasActive && isCollapsed ? 'true' : 'false');
|
||||||
const OPACITY = {
|
|
||||||
'folder-dots': { active: '0;1', baseOrig: '0;0' },
|
|
||||||
'folder-icon': { active: '1;0', baseOrig: '1;1' },
|
|
||||||
};
|
|
||||||
|
|
||||||
animations.forEach((animation) => {
|
|
||||||
const parentId = animation.parentElement.id;
|
|
||||||
const isOpacity = animation.getAttribute('attributeName') === 'opacity';
|
|
||||||
|
|
||||||
if (!animation.dataset.origValues) {
|
|
||||||
animation.dataset.origValues = animation.getAttribute('values');
|
|
||||||
}
|
|
||||||
|
|
||||||
const origValues = animation.dataset.origValues;
|
|
||||||
const [fromValue, toValue] = origValues.split(';');
|
|
||||||
|
|
||||||
const isActiveState = isCollapsed && hasActive && isOpacity;
|
|
||||||
|
|
||||||
if (!play && !isActiveState) {
|
|
||||||
if (isOpacity && OPACITY[parentId]) {
|
|
||||||
const staticValue = OPACITY[parentId].baseOrig;
|
|
||||||
animation.dataset.origValues = staticValue;
|
|
||||||
animation.setAttribute('values', staticValue);
|
|
||||||
animation.beginElement();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isOpacity && OPACITY[parentId]) {
|
|
||||||
animation.dataset.origValues = OPACITY[parentId].baseOrig;
|
|
||||||
}
|
|
||||||
|
|
||||||
let newValues;
|
|
||||||
|
|
||||||
if (isActiveState && OPACITY[parentId]) {
|
|
||||||
newValues = OPACITY[parentId].active;
|
|
||||||
const [activeFrom, activeTo] = newValues.split(';');
|
|
||||||
animation.dataset.origValues = `${activeTo};${activeFrom}`;
|
|
||||||
} else {
|
|
||||||
const stateValues = {
|
|
||||||
open: `${fromValue};${toValue}`,
|
|
||||||
close: `${toValue};${fromValue}`,
|
|
||||||
auto: isCollapsed ? `${toValue};${fromValue}` : `${fromValue};${toValue}`,
|
|
||||||
};
|
|
||||||
newValues = stateValues[state] || stateValues.auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (animation.getAttribute('values') !== newValues) {
|
|
||||||
animation.setAttribute('values', newValues);
|
|
||||||
animation.beginElement();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -1256,7 +1198,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
setFolderUserIcon(group, icon) {
|
setFolderUserIcon(group, icon) {
|
||||||
const svgIcon = group.icon.querySelector('svg #folder-icon image');
|
const svgIcon = group.icon.querySelector('svg .icon image');
|
||||||
if (!svgIcon) return;
|
if (!svgIcon) return;
|
||||||
svgIcon.setAttribute('href', icon ?? '');
|
svgIcon.setAttribute('href', icon ?? '');
|
||||||
if (svgIcon.getAttribute('href') !== icon) {
|
if (svgIcon.getAttribute('href') !== icon) {
|
||||||
@@ -1305,7 +1247,7 @@
|
|||||||
|
|
||||||
if (group.activeTabs.length === 0) {
|
if (group.activeTabs.length === 0) {
|
||||||
group.removeAttribute('has-active');
|
group.removeAttribute('has-active');
|
||||||
this.updateFolderIcon(group, 'close', false);
|
this.updateFolderIcon(group, 'close');
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.on_TabGroupCollapse({
|
return this.on_TabGroupCollapse({
|
||||||
@@ -1332,7 +1274,7 @@
|
|||||||
|
|
||||||
if (group.activeTabs.length === 0) {
|
if (group.activeTabs.length === 0) {
|
||||||
group.removeAttribute('has-active');
|
group.removeAttribute('has-active');
|
||||||
this.updateFolderIcon(group, 'close', false);
|
this.updateFolderIcon(group, 'close');
|
||||||
}
|
}
|
||||||
|
|
||||||
this.on_TabGroupExpand({ target: group, forExpandVisible: true });
|
this.on_TabGroupExpand({ target: group, forExpandVisible: true });
|
||||||
@@ -1408,7 +1350,7 @@
|
|||||||
|
|
||||||
if (tabsContainer.hasAttribute('hidden')) tabsContainer.removeAttribute('hidden');
|
if (tabsContainer.hasAttribute('hidden')) tabsContainer.removeAttribute('hidden');
|
||||||
|
|
||||||
animations.push(...this.updateFolderIcon(current, 'close', false));
|
animations.push(...this.updateFolderIcon(current, 'close'));
|
||||||
animations.push(
|
animations.push(
|
||||||
gZenUIManager.motion.animate(
|
gZenUIManager.motion.animate(
|
||||||
groupStart,
|
groupStart,
|
||||||
@@ -1518,7 +1460,7 @@
|
|||||||
|
|
||||||
#groupInit(group, stateData) {
|
#groupInit(group, stateData) {
|
||||||
// Setup zen-folder icon to the correct position
|
// Setup zen-folder icon to the correct position
|
||||||
this.updateFolderIcon(group, 'auto', false);
|
this.updateFolderIcon(group, 'auto');
|
||||||
if (stateData?.userIcon) {
|
if (stateData?.userIcon) {
|
||||||
this.setFolderUserIcon(group, stateData.userIcon);
|
this.setFolderUserIcon(group, stateData.userIcon);
|
||||||
}
|
}
|
||||||
@@ -1575,7 +1517,7 @@
|
|||||||
|
|
||||||
let prevSiblingInfo = null;
|
let prevSiblingInfo = null;
|
||||||
const prevSibling = folder.previousElementSibling;
|
const prevSibling = folder.previousElementSibling;
|
||||||
const userIcon = folder?.icon?.querySelector('svg #folder-icon image');
|
const userIcon = folder?.icon?.querySelector('svg .icon image');
|
||||||
|
|
||||||
if (prevSibling) {
|
if (prevSibling) {
|
||||||
if (gBrowser.isTabGroup(prevSibling)) {
|
if (gBrowser.isTabGroup(prevSibling)) {
|
||||||
|
@@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
tab-group[split-view-group] {
|
tab-group[split-view-group] {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
||||||
@media (prefers-reduced-motion: no-preference) {
|
@media (prefers-reduced-motion: no-preference) {
|
||||||
transition: var(--zen-tabbox-element-indent-transition);
|
transition: var(--zen-tabbox-element-indent-transition);
|
||||||
|
|
||||||
@@ -149,6 +150,10 @@ tab-group[split-view-group] {
|
|||||||
tab-group .tab-group-container {
|
tab-group .tab-group-container {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tab-group[split-view-group] {
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tab-group[split-view-group] .tabbrowser-tab {
|
tab-group[split-view-group] .tabbrowser-tab {
|
||||||
@@ -293,6 +298,38 @@ zen-folder {
|
|||||||
fill: var(--zen-folder-stroke);
|
fill: var(--zen-folder-stroke);
|
||||||
transform: translate(4px, 6.5px);
|
transform: translate(4px, 6.5px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& g,
|
||||||
|
& rect,
|
||||||
|
& path {
|
||||||
|
transition:
|
||||||
|
transform 0.3s cubic-bezier(0.42, 0, 0, 1),
|
||||||
|
opacity 0.3s cubic-bezier(0.42, 0, 0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
&[state='open'] .back {
|
||||||
|
transform: skewX(16deg) translate(-2px, 3.4px) scale(0.85);
|
||||||
|
}
|
||||||
|
|
||||||
|
&[state='open'] :is(.front, .dots, .icon) {
|
||||||
|
transform: skewX(-16deg) translate(11.1px, 3.4px) scale(0.85);
|
||||||
|
}
|
||||||
|
|
||||||
|
& .icon {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
& .dots {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[active='true'] .icon {
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&[active='true'] .dots {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -955,10 +955,10 @@ class nsZenKeyboardShortcutsVersioner {
|
|||||||
data.push(
|
data.push(
|
||||||
new KeyShortcut(
|
new KeyShortcut(
|
||||||
'zen-toggle-sidebar',
|
'zen-toggle-sidebar',
|
||||||
'B',
|
'',
|
||||||
'',
|
'',
|
||||||
ZEN_OTHER_SHORTCUTS_GROUP,
|
ZEN_OTHER_SHORTCUTS_GROUP,
|
||||||
nsKeyShortcutModifiers.fromObject({ alt: true }),
|
nsKeyShortcutModifiers.fromObject({}),
|
||||||
'cmd_zenToggleSidebar',
|
'cmd_zenToggleSidebar',
|
||||||
'zen-sidebar-shortcut-toggle'
|
'zen-sidebar-shortcut-toggle'
|
||||||
)
|
)
|
||||||
|
@@ -889,7 +889,9 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature {
|
|||||||
removeGroup(groupIndex) {
|
removeGroup(groupIndex) {
|
||||||
const group = this._data[groupIndex];
|
const group = this._data[groupIndex];
|
||||||
for (const tab of group.tabs.reverse()) {
|
for (const tab of group.tabs.reverse()) {
|
||||||
gBrowser.ungroupTab(tab);
|
if (tab.group?.hasAttribute('split-view-group')) {
|
||||||
|
gBrowser.ungroupTab(tab);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.currentView === groupIndex) {
|
if (this.currentView === groupIndex) {
|
||||||
this.deactivateCurrentSplitView();
|
this.deactivateCurrentSplitView();
|
||||||
@@ -1951,7 +1953,7 @@ class nsZenViewSplitter extends nsZenDOMOperatedFeature {
|
|||||||
const groupIndex = this._data.findIndex((group) => group.tabs.includes(emptyTab));
|
const groupIndex = this._data.findIndex((group) => group.tabs.includes(emptyTab));
|
||||||
const newSelectedTab = gBrowser.selectedTab;
|
const newSelectedTab = gBrowser.selectedTab;
|
||||||
const cleanup = () => {
|
const cleanup = () => {
|
||||||
this.removeTabFromGroup(emptyTab, groupIndex, { changeTab: !onSwitch });
|
this.removeTabFromGroup(emptyTab, groupIndex, { changeTab: !onSwitch, forUnsplit: true });
|
||||||
const command = document.getElementById('cmd_zenNewEmptySplit');
|
const command = document.getElementById('cmd_zenNewEmptySplit');
|
||||||
command.removeAttribute('disabled');
|
command.removeAttribute('disabled');
|
||||||
};
|
};
|
||||||
|
@@ -1246,6 +1246,7 @@
|
|||||||
for (const item of this.dragShiftableItems) {
|
for (const item of this.dragShiftableItems) {
|
||||||
item.style.transform = '';
|
item.style.transform = '';
|
||||||
}
|
}
|
||||||
|
delete this._topToNormalTabs;
|
||||||
for (const item of gBrowser.tabContainer.ariaFocusableItems) {
|
for (const item of gBrowser.tabContainer.ariaFocusableItems) {
|
||||||
if (gBrowser.isTab(item)) {
|
if (gBrowser.isTab(item)) {
|
||||||
let isVisible = true;
|
let isVisible = true;
|
||||||
@@ -1280,7 +1281,7 @@
|
|||||||
: [separator];
|
: [separator];
|
||||||
}
|
}
|
||||||
|
|
||||||
animateSeparatorMove(movingTabs, dropElement, isPinned, event) {
|
animateSeparatorMove(movingTabs, dropElement, isPinned) {
|
||||||
let draggedTab = movingTabs[0];
|
let draggedTab = movingTabs[0];
|
||||||
if (gBrowser.isTabGroupLabel(draggedTab) && draggedTab.group.isZenFolder) {
|
if (gBrowser.isTabGroupLabel(draggedTab) && draggedTab.group.isZenFolder) {
|
||||||
this._isGoingToPinnedTabs = true;
|
this._isGoingToPinnedTabs = true;
|
||||||
@@ -1290,14 +1291,19 @@
|
|||||||
draggedTab = draggedTab.group;
|
draggedTab = draggedTab.group;
|
||||||
}
|
}
|
||||||
const itemsToCheck = this.dragShiftableItems;
|
const itemsToCheck = this.dragShiftableItems;
|
||||||
const translate = event.screenY;
|
let translate = movingTabs[isPinned ? movingTabs.length - 1 : 0].getBoundingClientRect().top;
|
||||||
|
if (isPinned) {
|
||||||
|
const rect = draggedTab.getBoundingClientRect();
|
||||||
|
translate += rect.height;
|
||||||
|
}
|
||||||
const draggingTabHeight = movingTabs.reduce((acc, item) => {
|
const draggingTabHeight = movingTabs.reduce((acc, item) => {
|
||||||
return acc + window.windowUtils.getBoundsWithoutFlushing(item).height;
|
return acc + window.windowUtils.getBoundsWithoutFlushing(item).height;
|
||||||
}, 0);
|
}, 0);
|
||||||
let topToNormalTabs = itemsToCheck[0].screenY;
|
if (typeof this._topToNormalTabs === 'undefined') {
|
||||||
if (!isPinned) {
|
const rects = itemsToCheck.map((item) => window.windowUtils.getBoundsWithoutFlushing(item));
|
||||||
topToNormalTabs += draggedTab.getBoundingClientRect().height;
|
this._topToNormalTabs = rects[0].top + rects.at(-1).height / (isPinned ? 2 : 4);
|
||||||
}
|
}
|
||||||
|
let topToNormalTabs = this._topToNormalTabs;
|
||||||
const isGoingToPinnedTabs =
|
const isGoingToPinnedTabs =
|
||||||
translate < topToNormalTabs && gBrowser.pinnedTabCount - gBrowser._numZenEssentials > 0;
|
translate < topToNormalTabs && gBrowser.pinnedTabCount - gBrowser._numZenEssentials > 0;
|
||||||
const multiplier = isGoingToPinnedTabs !== isPinned ? (isGoingToPinnedTabs ? 1 : -1) : 0;
|
const multiplier = isGoingToPinnedTabs !== isPinned ? (isGoingToPinnedTabs ? 1 : -1) : 0;
|
||||||
|
@@ -20,6 +20,11 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pinned-drop-indicator {
|
||||||
|
/* We dont use this firefox feature */
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
/* ==========================================================================
|
/* ==========================================================================
|
||||||
Single Toolbar Mode Specific Styles (`zen-single-toolbar='true'`)
|
Single Toolbar Mode Specific Styles (`zen-single-toolbar='true'`)
|
||||||
========================================================================== */
|
========================================================================== */
|
||||||
|
@@ -2258,7 +2258,6 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
|
|
||||||
// Update workspace UI
|
// Update workspace UI
|
||||||
await this._updateWorkspacesChangeContextMenu();
|
await this._updateWorkspacesChangeContextMenu();
|
||||||
// gZenUIManager.updateTabsToolbar();
|
|
||||||
await this._propagateWorkspaceData({ clearCache: false, onInit });
|
await this._propagateWorkspaceData({ clearCache: false, onInit });
|
||||||
|
|
||||||
gZenThemePicker.onWorkspaceChange(workspace);
|
gZenThemePicker.onWorkspaceChange(workspace);
|
||||||
@@ -3082,7 +3081,7 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handleTabCloseWindow() {
|
handleTabCloseWindow() {
|
||||||
if (this.shouldCloseWindow()) {
|
if (Services.prefs.getBoolPref('zen.tabs.close-window-with-empty')) {
|
||||||
document.getElementById('cmd_closeWindow').doCommand();
|
document.getElementById('cmd_closeWindow').doCommand();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,7 @@
|
|||||||
"brandShortName": "Zen",
|
"brandShortName": "Zen",
|
||||||
"brandFullName": "Zen Browser",
|
"brandFullName": "Zen Browser",
|
||||||
"release": {
|
"release": {
|
||||||
"displayVersion": "1.16b",
|
"displayVersion": "1.16.1b",
|
||||||
"github": {
|
"github": {
|
||||||
"repo": "zen-browser/desktop"
|
"repo": "zen-browser/desktop"
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user