mirror of
https://github.com/zen-browser/desktop.git
synced 2025-10-09 11:26:44 +00:00
Compare commits
27 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
0d3be81421 | ||
![]() |
1b8e492f63 | ||
![]() |
4bfb815297 | ||
![]() |
cc502f6c95 | ||
![]() |
faa820e992 | ||
![]() |
3b58806c8a | ||
![]() |
ab6a8ee717 | ||
![]() |
9479062358 | ||
![]() |
ba1a59622a | ||
![]() |
0c5a2aa96d | ||
![]() |
00a70c11a7 | ||
![]() |
2dc98fa7f7 | ||
![]() |
289058c25d | ||
![]() |
c2951d0a0f | ||
![]() |
9f42abf789 | ||
![]() |
d0fb8aea03 | ||
![]() |
856d6f523a | ||
![]() |
47d1f973e4 | ||
![]() |
0a8fe6d7ba | ||
![]() |
d6ac283388 | ||
![]() |
9bf8bd97b2 | ||
![]() |
43c634f477 | ||
![]() |
0feb6ac3f9 | ||
![]() |
2dd185288d | ||
![]() |
f273cd8fd1 | ||
![]() |
3ac31a96a6 | ||
![]() |
e340923623 |
@@ -35,7 +35,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
||||
### Firefox Versions
|
||||
|
||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `143.0.4`! 🚀
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 143.0.4`!
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 144.0`!
|
||||
|
||||
### Contributing
|
||||
|
||||
|
@@ -1 +1 @@
|
||||
5cbf54e3cfaf4cfb375088d7e11702e8974b238f
|
||||
dd57c783345c5401fcdcc48e83b1fa9ce511d1cf
|
@@ -7,7 +7,7 @@ base-version: '24.08'
|
||||
add-extensions:
|
||||
org.freedesktop.Platform.ffmpeg-full:
|
||||
directory: lib/ffmpeg
|
||||
version: '24.08'
|
||||
version: '24.08.26'
|
||||
add-ld-path: .
|
||||
app.zen_browser.zen.systemconfig:
|
||||
directory: etc/zen
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = إعادة تعيين علامة التبويب المثبتة
|
||||
.accesskey = ر
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Restableix la pestanya fixada
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Afegeix als essentials ({ $num }/12 espais ocupats)
|
||||
.label = Afegeix als essentials ({ $num } / { $max } espais ocupats)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Elimina dels essencials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Resetovat připnuté karty
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Přidat do Essentials ({ $num } / 12 zaplněných slotů)
|
||||
.label = Přidat do Essentials ({ $num } / { $max } zaplněných slotů)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Odstranit z Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Ailosod Tab wedi'i Binio
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Diddymu o Hanfodion
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Nulstil fastgjort fane
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Føj til Essentielle ({ $num } / 12 pladser fyldt)
|
||||
.label = Føj til Essentielle ({ $num } / { $max } pladser fyldt)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Fjern fra Essentielle
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Angepinnten Tab zurücksetzen
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Zu Essentials hinzufügen ({ $num } / 12 Plätze belegt)
|
||||
.label = Zu Essentials hinzufügen ({ $num } / { $max } Plätze belegt)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Aus Essentials entfernen
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Επαναφορά Καρφιτσωμένης Καρτέλας
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Προσθήκη στα Απαραίτητα ({ $num } / 12 θέσεις γεμάτες)
|
||||
.label = Προσθήκη στα Απαραίτητα ({ $num } / { $max } θέσεις γεμάτες)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Αφαίρεση από Απαραίτητα
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reset Pinned Tab
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
|
@@ -8,9 +8,9 @@ zen-warning-language = Changing the default language could make it easier for We
|
||||
zen-vertical-tabs-layout-header = Browser Layout
|
||||
zen-vertical-tabs-layout-description = Choose the layout that suits you best
|
||||
|
||||
zen-layout-single-toolbar = Single toolbar
|
||||
zen-layout-multiple-toolbar = Multiple toolbars
|
||||
zen-layout-collapsed-toolbar = Collapsed toolbar
|
||||
zen-layout-single-toolbar = Only Sidebar
|
||||
zen-layout-multiple-toolbar = Sidebar and Top Toolbar
|
||||
zen-layout-collapsed-toolbar = Collapsed Sidebar
|
||||
|
||||
sync-currently-syncing-workspaces = Workspaces
|
||||
sync-engine-workspaces =
|
||||
@@ -33,8 +33,6 @@ zen-glance-trigger-shift-click =
|
||||
.label = Shift + Click
|
||||
zen-glance-trigger-meta-click =
|
||||
.label = Meta (Command) + Click
|
||||
zen-glance-trigger-mantain-click =
|
||||
.label = Hold Click (Coming Soon!)
|
||||
|
||||
zen-look-and-feel-compact-view-header = Show in compact view
|
||||
zen-look-and-feel-compact-view-description = Only show the toolbars you use!
|
||||
@@ -91,7 +89,7 @@ zen-settings-workspaces-hide-default-container-indicator =
|
||||
.label = Hide the default container indicator in the tab bar
|
||||
|
||||
zen-key-unsaved = Unsaved shortcut! Please save it by clicking the "Escape" key after retyping it.
|
||||
zen-key-conflict = Conflict with another shortcut
|
||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
||||
|
||||
pane-zen-theme-title = Theme Settings
|
||||
|
||||
|
@@ -6,7 +6,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reset Pinned Tab
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
@@ -49,6 +49,10 @@ zen-library-sidebar-workspaces =
|
||||
zen-library-sidebar-mods =
|
||||
.label = Mods
|
||||
|
||||
zen-toggle-compact-mode-button =
|
||||
.label = Compact Mode
|
||||
.tooltiptext = Toggle Compact Mode
|
||||
|
||||
# note: Do not translate the "<br/>" tags in the following string
|
||||
|
||||
zen-learn-more-text = Learn More
|
||||
@@ -64,3 +68,29 @@ zen-icons-picker-svg =
|
||||
.label = Icons
|
||||
|
||||
urlbar-search-mode-zen_actions = Actions
|
||||
zen-site-data-settings = Settings
|
||||
|
||||
zen-generic-manage = Manage
|
||||
zen-generic-more = More
|
||||
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Allowed
|
||||
zen-site-data-setting-block = Blocked
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Extension
|
||||
zen-site-data-security-info-secure =
|
||||
.label = Secure
|
||||
zen-site-data-security-info-not-secure =
|
||||
.label = Not Secure
|
||||
|
||||
zen-site-data-manage-addons =
|
||||
.label = Manage Extensions
|
||||
zen-site-data-get-addons =
|
||||
.label = Add Extensions
|
||||
zen-site-data-site-settings =
|
||||
.label = All Site Settings
|
||||
|
||||
zen-site-data-setting-site-protection = Site Protection
|
||||
|
||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
||||
|
@@ -4,9 +4,7 @@ zen-toolbar-context-tabs-right =
|
||||
.accesskey = R
|
||||
|
||||
zen-toolbar-context-compact-mode =
|
||||
.label = Compact mode
|
||||
.accesskey = C
|
||||
|
||||
.label = Compact Mode
|
||||
zen-toolbar-context-compact-mode-enable =
|
||||
.label = Enable compact mode
|
||||
.accesskey = D
|
||||
@@ -17,6 +15,7 @@ zen-toolbar-context-compact-mode-just-toolbar =
|
||||
zen-toolbar-context-compact-mode-hide-both =
|
||||
.label = Hide both
|
||||
.accesskey = H
|
||||
|
||||
zen-toolbar-context-new-folder =
|
||||
.label = New Folder
|
||||
.accesskey = N
|
||||
|
@@ -23,6 +23,9 @@ zen-workspaces-panel-change-icon =
|
||||
zen-workspaces-panel-context-default-profile =
|
||||
.label = Set Profile
|
||||
|
||||
zen-workspaces-panel-unload =
|
||||
.label = Unload Space
|
||||
|
||||
zen-workspaces-how-to-reorder-title = How to reorder spaces
|
||||
zen-workspaces-how-to-reorder-desc = Drag the space icons at the bottom of the sidebar to reorder them
|
||||
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Restablecer pestaña fijada
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Añadir a esenciales ({ $num } / 12 huecos llenos)
|
||||
.label = Añadir a esenciales ({ $num } / { $max } huecos llenos)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Quitar de esenciales
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Lähtesta püsikaart
|
||||
.accesskey = p
|
||||
tab-context-zen-add-essential =
|
||||
.label = Märgi oluliseks ({ $num } / 12 täidetud)
|
||||
.label = Märgi oluliseks ({ $num } / { $max } täidetud)
|
||||
.accesskey = o
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Eemalda olulistest
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reset Pinned Tab
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Nollaa Kiinnitetty Välilehti
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Poista olennaisista
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Réinitialiser l’onglet épinglé
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Ajouter aux Essentials ({ $num }/12 emplacements occupés)
|
||||
.label = Ajouter aux Essentials ({ $num } / { $max } emplacements occupés)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Retirer des Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Athshocraigh an Cluaisín Prionáilte
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Cuir le Bunriachtanais ({ $num } / 12 sliotán líonta)
|
||||
.label = Cuir le Bunriachtanais ({ $num } / { $max } sliotán líonta)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Bain de na Bunriachtanais
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = אפס כרטיסייה מוצמדת
|
||||
.accesskey = ר
|
||||
tab-context-zen-add-essential =
|
||||
.label = הוסף לנחוצים ({ $num } / 12 מקומות מלאים)
|
||||
.label = הוסף לנחוצים ({ $num } / { $max } מקומות מלאים)
|
||||
.accesskey = ק
|
||||
tab-context-zen-remove-essential =
|
||||
.label = הסר מנחוצים
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Kitűzött lap visszaállítása
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Felvétel az alapvetőkbe ({ $num } / 12 hely foglalt)
|
||||
.label = Felvétel az alapvetőkbe ({ $num } / { $max } hely foglalt)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Eltávolítás az alapvetőkből
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Kembalikan ke URL Awal
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Tambahkan ke Essentials ({ $num } / 12 slot terisi)
|
||||
.label = Tambahkan ke Essentials ({ $num } / { $max } slot terisi)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Hapus dari Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Endursetja Festan Flipa
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Fjarlægja frá Höfuðatriði
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reimposta Scheda Bloccata
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Aggiungi a Essentials ({ $num } / 12 slot riempiti)
|
||||
.label = Aggiungi a Essentials ({ $num } / { $max } slot riempiti)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Rimuovi dagli Essenziali
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = ピン留めされたタブをリセット
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Essentialsから削除
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = 고정된 탭 초기화
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = 에센셜에 추가 ({ $num } / 12 개 추가됨)
|
||||
.label = 에센셜에 추가 ({ $num } / { $max } 개 추가됨)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = 에센셜에서 제거하기
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Atkurti prisegtą kortelę
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Įtraukti į būtiniausius ({ $num } / 12 užpildytų vietų)
|
||||
.label = Įtraukti į būtiniausius ({ $num } / { $max } užpildytų vietų)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Šalinti iš būtiniausių
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Vastgezette tabblad resetten
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Toevoegen aan Essentials ({ $num } / 12 plekken gevuld)
|
||||
.label = Toevoegen aan Essentials ({ $num } / { $max } plekken gevuld)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Verwijderen uit Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reset Pinned Tab
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Resetuj przypiętą kartę
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Dodaj do Niezbędnych ({ $num } / 12 miejsc wypełnione)
|
||||
.label = Dodaj do Niezbędnych ({ $num } / { $max } miejsc wypełnione)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Usuń z Niezbędnych
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Redefinir Guia Fixada
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Adicionar aos Essenciais ({ $num } / 12 espaços preenchidos)
|
||||
.label = Adicionar aos Essenciais ({ $num } / { $max } espaços preenchidos)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remover dos Essenciais
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Repor o Separador Fixado
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Adicionar aos Essenciais ({ $num }/12 espaços preenchidos)
|
||||
.label = Adicionar aos Essenciais ({ $num } / { $max } espaços preenchidos)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remover dos Essenciais
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Сбросить закреплённую вкладку
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Добавить в важное ({ $num } из 12 слотов заполнено)
|
||||
.label = Добавить в важное ({ $num } из { $num } слотов заполнено)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Удалить из важного
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Återställ Fäst flik
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Lägg till Essentials ({ $num } / 12 platser fyllda)
|
||||
.label = Lägg till Essentials ({ $num } / { $max } platser fyllda)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Ta bort från Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Reset Pinned Tab
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Remove from Essentials
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Sabitlenen Sekmeyi Sıfırla
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Temel Ögelerden Kaldır
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Скинути прикріплену вкладку
|
||||
.accesskey = Р
|
||||
tab-context-zen-add-essential =
|
||||
.label = Додати до Основного ({ $num } / 12 комірок заповнено)
|
||||
.label = Додати до Основного ({ $num } / { $max } комірок заповнено)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Вилучити з основних елементів
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = Đặt lại thẻ đã ghim
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Thêm thẻ vào thường trú (đã thêm { $num } / 12 )
|
||||
.label = Thêm thẻ vào thường trú (đã thêm { $num } / { $max } )
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = Loại ra khỏi thẻ thường trú
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = 重置固定标签页
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = 添加到常驻标签页(已使用 { $num } / 12)
|
||||
.label = 添加到常驻标签页(已使用 { $num } / { $max })
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = 从常驻标签页中移除
|
||||
|
@@ -4,7 +4,7 @@ tab-context-zen-reset-pinned-tab =
|
||||
.label = 重置釘選的分頁
|
||||
.accesskey = R
|
||||
tab-context-zen-add-essential =
|
||||
.label = Add to Essentials ({ $num } / 12 slots filled)
|
||||
.label = Add to Essentials ({ $num } / { $max } slots filled)
|
||||
.accesskey = E
|
||||
tab-context-zen-remove-essential =
|
||||
.label = 從 Essentials 中移除
|
||||
|
@@ -78,6 +78,7 @@
|
||||
value: false
|
||||
|
||||
- name: browser.tabs.groups.hoverPreview.enabled
|
||||
locked: true
|
||||
value: false
|
||||
|
||||
- name: browser.tabs.closeWindowWithLastTab
|
||||
|
@@ -6,7 +6,7 @@
|
||||
value: true
|
||||
|
||||
- name: zen.folders.search.hover-delay
|
||||
value: 1000 # ms
|
||||
value: 900 # ms
|
||||
|
||||
- name: zen.folders.max-subfolders
|
||||
value: 5
|
||||
|
@@ -8,9 +8,6 @@
|
||||
- name: zen.glance.enable-contextmenu-search
|
||||
value: true
|
||||
|
||||
- name: zen.glance.hold-duration
|
||||
value: 300 # in ms
|
||||
|
||||
- name: zen.glance.open-essential-external-links
|
||||
value: true
|
||||
|
||||
|
@@ -26,7 +26,7 @@
|
||||
- name: zen.theme.disable-lightweight
|
||||
value: true
|
||||
|
||||
- name: zen.theme.use-sysyem-colors
|
||||
- name: zen.theme.use-system-colors
|
||||
value: false
|
||||
|
||||
- name: zen.theme.hide-tab-throbber
|
||||
|
@@ -51,3 +51,6 @@
|
||||
|
||||
- name: zen.view.context-menu.refresh
|
||||
value: false
|
||||
|
||||
- name: zen.view.borderless-fullscreen
|
||||
value: true
|
||||
|
@@ -8,6 +8,9 @@
|
||||
- name: zen.urlbar.show-protections-icon
|
||||
value: false
|
||||
|
||||
- name: zen.urlbar.show-contextual-id
|
||||
value: false
|
||||
|
||||
- name: zen.urlbar.behavior
|
||||
value: floating-on-type
|
||||
|
||||
|
@@ -11,6 +11,9 @@
|
||||
- name: zen.tabs.rename-tabs
|
||||
value: true
|
||||
|
||||
- name: zen.tabs.essentials.max
|
||||
value: 12
|
||||
|
||||
- name: zen.tabs.show-newtab-vertical
|
||||
value: true
|
||||
|
||||
|
@@ -6,6 +6,7 @@ import os
|
||||
import sys
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
IGNORE_PREFS_FILE_IN = os.path.join(
|
||||
'src', 'zen', 'tests', 'ignorePrefs.json'
|
||||
@@ -15,6 +16,15 @@ IGNORE_PREFS_FILE_OUT = os.path.join(
|
||||
)
|
||||
|
||||
|
||||
class JSONWithCommentsDecoder(json.JSONDecoder):
|
||||
def __init__(self, **kw):
|
||||
super().__init__(**kw)
|
||||
|
||||
def decode(self, s: str) -> Any:
|
||||
s = '\n'.join(l for l in s.split('\n') if not l.lstrip(' ').startswith('//'))
|
||||
return super().decode(s)
|
||||
|
||||
|
||||
def copy_ignore_prefs():
|
||||
print("Copying ignorePrefs.json from src/zen/tests to engine/testing/mochitest...")
|
||||
# if there are prefs that dont exist on output file, copy them from input file
|
||||
@@ -22,7 +32,7 @@ def copy_ignore_prefs():
|
||||
with open(IGNORE_PREFS_FILE_OUT, 'r') as f:
|
||||
all_prefs = json.load(f)
|
||||
with open(IGNORE_PREFS_FILE_IN, 'r') as f_in:
|
||||
new_prefs = json.load(f_in)
|
||||
new_prefs = json.load(f_in, cls=JSONWithCommentsDecoder)
|
||||
all_prefs.extend(p for p in new_prefs if p not in all_prefs)
|
||||
with open(IGNORE_PREFS_FILE_OUT, 'w') as f_out:
|
||||
json.dump(all_prefs, f_out, indent=2)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index 2ac65181b1a9561ee4760e0569dfdd621c684142..b159fd8a351ba7c6541e8994a815de8150db619f 100644
|
||||
index c079ef11880c5338c4498a0e5b3eb4cf4bfb6e02..ecd06b05381be740197c07c8cf0743dc882727f5 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -4029,8 +4029,6 @@ dependencies = [
|
||||
@@ -4069,8 +4069,6 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mime_guess"
|
||||
version = "2.0.4"
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 0fdad8b956be8119f5a914b9cee01bb6520cd13d..f1414b5afd5c66c61d1585184de6b32f9918670d 100644
|
||||
index 2331ff5733d39e26c0a16301cb83d46ca970f632..777dbd5fb8546466e4a349772ccba254c7ffd691 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -218,6 +218,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||
@@ -224,6 +224,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
||||
rure = { path = "third_party/rust/rure" }
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||
index f327e1684d0966a0dcfdcdbf8cc70259b27a4504..c8f722bda4cf297f5d0a6aa22dafbe27c4218123 100644
|
||||
index 80fd2177c7112c958ff51bbf7a18ebea39e50fbf..24f62810901dc558e25ee874bd49736bd64fd358 100644
|
||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
||||
index d7542a38a0242dd9c9c6390171d59992d75a0c19..d20e5a9fa42c88c7ba28fac1ef13dd693f1f1135 100644
|
||||
index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..29864ab59819271b7319b273c08bdc2736d40c93 100644
|
||||
--- a/browser/base/content/browser-addons.js
|
||||
+++ b/browser/base/content/browser-addons.js
|
||||
@@ -1064,7 +1064,7 @@ var gXPInstallObserver = {
|
||||
@@ -1071,7 +1071,7 @@ var gXPInstallObserver = {
|
||||
persistent: true,
|
||||
hideClose: true,
|
||||
popupOptions: {
|
||||
@@ -11,7 +11,7 @@ index d7542a38a0242dd9c9c6390171d59992d75a0c19..d20e5a9fa42c88c7ba28fac1ef13dd69
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1273,7 +1273,7 @@ var gXPInstallObserver = {
|
||||
@@ -1280,7 +1280,7 @@ var gXPInstallObserver = {
|
||||
hideClose: true,
|
||||
timeout: Date.now() + 30000,
|
||||
popupOptions: {
|
||||
@@ -20,7 +20,47 @@ index d7542a38a0242dd9c9c6390171d59992d75a0c19..d20e5a9fa42c88c7ba28fac1ef13dd69
|
||||
},
|
||||
};
|
||||
|
||||
@@ -2608,7 +2608,7 @@ var gUnifiedExtensions = {
|
||||
@@ -2212,7 +2212,7 @@ var gUnifiedExtensions = {
|
||||
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
||||
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
||||
getPopupAnchorID(aBrowser, aWindow) {
|
||||
- const anchorID = "unified-extensions-button";
|
||||
+ const anchorID = "zen-site-data-icon-button";
|
||||
const attr = anchorID + "popupnotificationanchor";
|
||||
|
||||
if (!aBrowser[attr]) {
|
||||
@@ -2223,7 +2223,7 @@ var gUnifiedExtensions = {
|
||||
anchorID
|
||||
// Anchor on the toolbar icon to position the popup right below the
|
||||
// button.
|
||||
- ).firstElementChild;
|
||||
+ );
|
||||
}
|
||||
|
||||
return anchorID;
|
||||
@@ -2516,11 +2516,7 @@ var gUnifiedExtensions = {
|
||||
// Lazy load the unified-extensions-panel panel the first time we need to
|
||||
// display it.
|
||||
if (!this._panel) {
|
||||
- let template = document.getElementById(
|
||||
- "unified-extensions-panel-template"
|
||||
- );
|
||||
- template.replaceWith(template.content);
|
||||
- this._panel = document.getElementById("unified-extensions-panel");
|
||||
+ this._panel = document.getElementById("zen-unified-site-data-panel");
|
||||
let customizationArea = this._panel.querySelector(
|
||||
"#unified-extensions-area"
|
||||
);
|
||||
@@ -2570,7 +2566,7 @@ var gUnifiedExtensions = {
|
||||
|
||||
// The button should directly open `about:addons` when the user does not
|
||||
// have any active extensions listed in the unified extensions panel.
|
||||
- if (!this.hasExtensionsInPanel()) {
|
||||
+ if (!this.hasExtensionsInPanel() && false) {
|
||||
let viewID;
|
||||
if (
|
||||
Services.prefs.getBoolPref("extensions.getAddons.showPane", true) &&
|
||||
@@ -2615,7 +2611,7 @@ var gUnifiedExtensions = {
|
||||
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
||||
this.ensureButtonShownBeforeAttachingPanel(panel);
|
||||
PanelMultiView.openPopup(panel, this._button, {
|
||||
@@ -29,7 +69,7 @@ index d7542a38a0242dd9c9c6390171d59992d75a0c19..d20e5a9fa42c88c7ba28fac1ef13dd69
|
||||
triggerEvent: aEvent,
|
||||
});
|
||||
}
|
||||
@@ -2795,18 +2795,20 @@ var gUnifiedExtensions = {
|
||||
@@ -2802,18 +2798,20 @@ var gUnifiedExtensions = {
|
||||
this._maybeMoveWidgetNodeBack(widgetId);
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
|
||||
index 637e9dda83df5b490d6340367dd63077904ea056..6ffb1dc6ed1d6e58b4e8de1faca887f6b38115cb 100644
|
||||
index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4954b8b94 100644
|
||||
--- a/browser/base/content/browser-commands.js
|
||||
+++ b/browser/base/content/browser-commands.js
|
||||
@@ -317,6 +317,10 @@ var BrowserCommands = {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
index d477ac782e0cb921203f8cd38da70a003ac41b39..648d0b4066b630a9b31da0bb8490f29da701dd3d 100644
|
||||
index b41449d4c4bc373a4c9cf449c0bb370bfdbc20d6..f1166929397dd39b7f44bd9cb0d62a45d67f0e1d 100644
|
||||
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
@@ -427,10 +427,10 @@ var FullScreen = {
|
||||
|
@@ -1,20 +1,12 @@
|
||||
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
|
||||
index e4a94863c0f0810d1894475b020814b2ad32ffb3..515f61d2df5d4a593fc32d3f32e8fdec2b8f5983 100644
|
||||
index 8e63654b343e8518aa0e366a3fd3bf7e0856eafb..fe402e526ab33cdcc4baabf8685dfb03efac6003 100644
|
||||
--- a/browser/base/content/browser-init.js
|
||||
+++ b/browser/base/content/browser-init.js
|
||||
@@ -191,6 +191,7 @@ var gBrowserInit = {
|
||||
@@ -198,6 +198,7 @@ var gBrowserInit = {
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
+ Services.scriptloader.loadSubScript("chrome://browser/content/zenThemeModifier.js", window);
|
||||
gBrowser.addEventListener("DOMUpdateBlockedPopups", e =>
|
||||
PopupBlockerObserver.handleEvent(e)
|
||||
PopupAndRedirectBlockerObserver.handleEvent(e)
|
||||
);
|
||||
@@ -359,6 +360,7 @@ var gBrowserInit = {
|
||||
|
||||
this._handleURIToLoad();
|
||||
|
||||
+ gZenWorkspaces.selectStartPage();
|
||||
Services.obs.addObserver(gIdentityHandler, "perm-changed");
|
||||
Services.obs.addObserver(gRemoteControl, "devtools-socket");
|
||||
Services.obs.addObserver(gRemoteControl, "marionette-listening");
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||
index c5b7ef2616c1dab9f42970605897e862d57ab7d0..77f0731db6c4a8d835cf8733115d27ae7782a987 100644
|
||||
index 32b67f846b9942ad3da4276bb8748fee915eb485..f77d5df7c8ef49c0366ada8b3153c5a6c676239b 100644
|
||||
--- a/browser/base/content/browser.js
|
||||
+++ b/browser/base/content/browser.js
|
||||
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||
@@ -10,7 +10,7 @@ index c5b7ef2616c1dab9f42970605897e862d57ab7d0..77f0731db6c4a8d835cf8733115d27ae
|
||||
DevToolsSocketStatus:
|
||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||
@@ -2291,6 +2292,8 @@ var XULBrowserWindow = {
|
||||
@@ -2293,6 +2294,8 @@ var XULBrowserWindow = {
|
||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||
|
||||
@@ -19,7 +19,7 @@ index c5b7ef2616c1dab9f42970605897e862d57ab7d0..77f0731db6c4a8d835cf8733115d27ae
|
||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||
|
||||
if (!gMultiProcessBrowser) {
|
||||
@@ -5232,6 +5235,9 @@ var ConfirmationHint = {
|
||||
@@ -4782,6 +4785,9 @@ var ConfirmationHint = {
|
||||
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
|
||||
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
|
||||
document.l10n.setAttributes(this._message, messageId, options.l10nArgs);
|
||||
|
12
src/browser/base/content/browser-pageActions-js.patch
Normal file
12
src/browser/base/content/browser-pageActions-js.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/browser/base/content/browser-pageActions.js b/browser/base/content/browser-pageActions.js
|
||||
index 00da33bc11189db17b6a2e656acb3a778531197c..9571155baccad9a886cbe9c7bf0bd76a135331c4 100644
|
||||
--- a/browser/base/content/browser-pageActions.js
|
||||
+++ b/browser/base/content/browser-pageActions.js
|
||||
@@ -451,6 +451,7 @@ var BrowserPageActions = {
|
||||
),
|
||||
document.getElementById(this.mainButtonNode.id),
|
||||
document.getElementById("identity-icon"),
|
||||
+ document.getElementById("zen-site-data-icon-button"),
|
||||
];
|
||||
for (let node of potentialAnchorNodes) {
|
||||
if (node && !node.hidden) {
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
|
||||
index 5ba2b6a58776e2b1d70b80e8cb1533cb20caafc6..65736705968732a185e81561b2866bfbe6f3233a 100644
|
||||
index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..1f3f4991b3ba7c00516e9708e89e8f95db25a36a 100644
|
||||
--- a/browser/base/content/browser-places.js
|
||||
+++ b/browser/base/content/browser-places.js
|
||||
@@ -252,6 +252,8 @@ var StarUI = {
|
||||
|
@@ -1,8 +1,20 @@
|
||||
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
|
||||
index 65354e0ad3097e10de72f36e257c94472524baf7..bc9527ec9ddfab11c0839398d3f3953872ad9632 100644
|
||||
index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af5fbb5fb2 100644
|
||||
--- a/browser/base/content/browser-siteIdentity.js
|
||||
+++ b/browser/base/content/browser-siteIdentity.js
|
||||
@@ -834,7 +834,7 @@ var gIdentityHandler = {
|
||||
@@ -453,11 +453,6 @@ var gIdentityHandler = {
|
||||
// avoid a pretty ugly transition. Also hide it even
|
||||
// if the update resulted in no site data, to keep the
|
||||
// illusion that clicking the button had an effect.
|
||||
- let hidden = new Promise(c => {
|
||||
- this._identityPopup.addEventListener("popuphidden", c, { once: true });
|
||||
- });
|
||||
- PanelMultiView.hidePopup(this._identityPopup);
|
||||
- await hidden;
|
||||
|
||||
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
||||
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
||||
@@ -834,7 +829,7 @@ var gIdentityHandler = {
|
||||
// This is a secure internal Firefox page.
|
||||
this._identityBox.className = "chromeUI";
|
||||
let brandBundle = document.getElementById("bundle_brand");
|
||||
@@ -11,7 +23,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..bc9527ec9ddfab11c0839398d3f39538
|
||||
} else if (this._pageExtensionPolicy) {
|
||||
// This is a WebExtension page.
|
||||
this._identityBox.className = "extensionPage";
|
||||
@@ -1163,6 +1163,12 @@ var gIdentityHandler = {
|
||||
@@ -1163,6 +1158,12 @@ var gIdentityHandler = {
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||
index 7c4c05b72845dfb37c11317d011b8e7c6ba07934..856c368e4d6fe7c7d7ab468423348c844cbf1cdf 100644
|
||||
index ffddea280e2edffa2531b4b129489c2be0e2c3d2..f03db9e2db0dec06f997740337f28e76a08a3bdb 100644
|
||||
--- a/browser/base/content/browser.xhtml
|
||||
+++ b/browser/base/content/browser.xhtml
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -19,6 +19,7 @@
|
||||
sizemode="normal"
|
||||
retargetdocumentfocus="urlbar-input"
|
||||
scrolling="false"
|
||||
@@ -10,7 +10,7 @@ index 7c4c05b72845dfb37c11317d011b8e7c6ba07934..856c368e4d6fe7c7d7ab468423348c84
|
||||
persist="screenX screenY width height sizemode"
|
||||
data-l10n-sync="true">
|
||||
<head>
|
||||
@@ -105,8 +106,10 @@
|
||||
@@ -98,8 +99,10 @@
|
||||
|
||||
<title data-l10n-id="browser-main-window-default-title"></title>
|
||||
|
||||
@@ -21,7 +21,7 @@ index 7c4c05b72845dfb37c11317d011b8e7c6ba07934..856c368e4d6fe7c7d7ab468423348c84
|
||||
</head>
|
||||
<html:body xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
# All sets except for popupsets (commands, keys, and stringbundles)
|
||||
@@ -128,9 +131,11 @@
|
||||
@@ -132,9 +135,11 @@
|
||||
</vbox>
|
||||
</html:template>
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
||||
index fc219ea3dc901fe2ed351161240700113efb8799..f25bdbf886733e2081a4dff55614809056e9885e 100644
|
||||
index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadcb66d1e16 100644
|
||||
--- a/browser/base/content/main-popupset.inc.xhtml
|
||||
+++ b/browser/base/content/main-popupset.inc.xhtml
|
||||
@@ -208,6 +208,10 @@
|
||||
@@ -21,7 +21,7 @@ index fc219ea3dc901fe2ed351161240700113efb8799..f25bdbf886733e2081a4dff556148090
|
||||
</panel>
|
||||
</html:template>
|
||||
|
||||
@@ -613,6 +618,8 @@
|
||||
@@ -615,6 +620,8 @@
|
||||
|
||||
#include popup-notifications.inc.xhtml
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
index 8e56b24b39e9c1607e3ff208d284a9b555a91ebb..2402848ae564234ec22d5a317c43864ea1b36f29 100644
|
||||
index 328a9b052e2f758f48df1caa8165347ed0301b33..1c111abe148f2e16afa6b5f33eb118b7c02dfd69 100644
|
||||
--- a/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
+++ b/browser/base/content/navigator-toolbox.inc.xhtml
|
||||
@@ -2,7 +2,7 @@
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
|
||||
index 413bad2a62058a1c434d6a44e927e44eb397289d..b621c586e679bb8686fe9a5e6743512e71604425 100644
|
||||
index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a71105167cbe75ec 100644
|
||||
--- a/browser/base/content/navigator-toolbox.js
|
||||
+++ b/browser/base/content/navigator-toolbox.js
|
||||
@@ -8,7 +8,7 @@
|
||||
@@ -11,6 +11,24 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..b621c586e679bb8686fe9a5e6743512e
|
||||
const widgetOverflow = document.getElementById("widget-overflow");
|
||||
|
||||
function onPopupShowing(event) {
|
||||
@@ -110,7 +110,7 @@ document.addEventListener(
|
||||
#pageActionButton,
|
||||
#downloads-button,
|
||||
#fxa-toolbar-menu-button,
|
||||
- #unified-extensions-button,
|
||||
+ #zen-site-data-icon-button,
|
||||
#library-button
|
||||
`);
|
||||
if (!element) {
|
||||
@@ -138,7 +138,7 @@ document.addEventListener(
|
||||
gSync.toggleAccountPanel(element, event);
|
||||
break;
|
||||
|
||||
- case "unified-extensions-button":
|
||||
+ case "zen-site-data-icon-button":
|
||||
gUnifiedExtensions.togglePanel(event);
|
||||
break;
|
||||
|
||||
@@ -187,6 +187,7 @@ document.addEventListener(
|
||||
#reload-button ,
|
||||
#urlbar-go-button,
|
||||
@@ -27,3 +45,21 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..b621c586e679bb8686fe9a5e6743512e
|
||||
gBrowser.handleNewTabMiddleClick(element, event);
|
||||
break;
|
||||
|
||||
@@ -317,7 +319,7 @@ document.addEventListener(
|
||||
#pageActionButton,
|
||||
#downloads-button,
|
||||
#fxa-toolbar-menu-button,
|
||||
- #unified-extensions-button,
|
||||
+ #zen-site-data-icon-button,
|
||||
#library-button
|
||||
`);
|
||||
if (!element) {
|
||||
@@ -396,7 +398,7 @@ document.addEventListener(
|
||||
gSync.toggleAccountPanel(element, event);
|
||||
break;
|
||||
|
||||
- case "unified-extensions-button":
|
||||
+ case "zen-site-data-icon-button":
|
||||
gUnifiedExtensions.togglePanel(event);
|
||||
break;
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||
index bc71ba720ef3603e8b90d295fb16d8415ba114c4..99677f70e22258f61cc9bda31e4d8745d7ca9395 100644
|
||||
index b4fe996f9685a085c14324a35a1d51e2fed569b7..c83d5e9bf92f8f2e3d96b121ba3b758dd124393b 100644
|
||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||
@@ -1095,6 +1095,8 @@ export class nsContextMenu {
|
||||
@@ -1105,6 +1105,8 @@ export class nsContextMenu {
|
||||
!this.isSecureAboutPage()
|
||||
);
|
||||
|
||||
|
@@ -5,10 +5,7 @@
|
||||
<commandset id="zenCommandSet">
|
||||
<command id="cmd_zenCompactModeToggle" />
|
||||
<command id="cmd_zenCompactModeShowSidebar" />
|
||||
<command id="cmd_zenCompactModeShowToolbar" />
|
||||
<command id="cmd_zenCompactModeHideSidebar" />
|
||||
<command id="cmd_zenCompactModeHideToolbar" />
|
||||
<command id="cmd_zenCompactModeHideBoth" />
|
||||
<command id="cmd_toggleCompactModeIgnoreHover" />
|
||||
|
||||
<command id="cmd_zenWorkspaceForward" />
|
||||
<command id="cmd_zenWorkspaceBackward" />
|
||||
@@ -42,6 +39,7 @@
|
||||
<command id="cmd_contextZenRemoveFromEssentials" />
|
||||
|
||||
<command id="cmd_zenCtxDeleteWorkspace" />
|
||||
<command id="cmd_zenUnloadWorkspace" />
|
||||
<command id="cmd_zenChangeWorkspaceName" />
|
||||
<command id="cmd_zenChangeWorkspaceIcon" />
|
||||
<command id="cmd_zenReorderWorkspaces" />
|
||||
|
@@ -25,6 +25,7 @@
|
||||
hide-if-usercontext-disabled="true">
|
||||
<menupopup />
|
||||
</menu>
|
||||
<menuitem id="context_zenUnloadWorkspace" data-l10n-id="zen-workspaces-panel-unload" command="cmd_zenUnloadWorkspace"/>
|
||||
<menuseparator id="context_zenWorkspacesSeparator"/>
|
||||
<menuseparator/>
|
||||
<menuitem id="context_zenReorderWorkspaces" data-l10n-id="zen-workspaces-panel-context-reorder" command="cmd_zenReorderWorkspaces"/>
|
||||
@@ -49,3 +50,12 @@
|
||||
<menuitem id="context_zenFolderUnpack" data-l10n-id="zen-folders-panel-unpack-folder"/>
|
||||
<menuitem id="context_zenFolderDelete" data-l10n-id="zen-folders-panel-delete-folder"/>
|
||||
</menupopup>
|
||||
|
||||
<menupopup id="zenSiteDataActions">
|
||||
<menuitem id="context_zenClearSiteData" data-l10n-id="identity-clear-site-data"/>
|
||||
<menuseparator />
|
||||
<menuitem command="Tools:Addons" data-l10n-id="zen-site-data-manage-addons"/>
|
||||
<menuitem id="context_zenOpenGetAddons" data-l10n-id="zen-site-data-get-addons"/>
|
||||
<menuseparator />
|
||||
<menuitem id="context_zenOpenSiteSettings" data-l10n-id="zen-site-data-site-settings"/>
|
||||
</menupopup>
|
||||
|
87
src/browser/base/content/zen-panels/site-data.inc
Normal file
87
src/browser/base/content/zen-panels/site-data.inc
Normal file
@@ -0,0 +1,87 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
<panel id="zen-unified-site-data-panel"
|
||||
role="group"
|
||||
type="arrow"
|
||||
noautofocus="true"
|
||||
position="bottomright topright">
|
||||
<panelmultiview mainViewId="unified-extensions-view">
|
||||
# We'll keep the view with this name/id in order to prevent
|
||||
# any sort of future issues we may have if firefox decides
|
||||
# to change the functionality of this view
|
||||
<panelview id="unified-extensions-view"
|
||||
class="cui-widget-panelview"
|
||||
mainview-with-header="true">
|
||||
<hbox id="zen-site-data-header">
|
||||
<toolbarbutton id="zen-site-data-header-share"
|
||||
data-l10n-id="zen-site-data-share"
|
||||
flex="1"
|
||||
closemenu="none" />
|
||||
<toolbarbutton id="zen-site-data-header-reader-mode"
|
||||
command="View:ReaderView"
|
||||
flex="1" />
|
||||
<toolbarbutton id="zen-site-data-header-screenshot"
|
||||
command="Browser:Screenshot"
|
||||
flex="1" />
|
||||
<toolbarbutton id="zen-site-data-header-bookmark"
|
||||
command="Browser:AddBookmarkAs"
|
||||
flex="1" />
|
||||
</hbox>
|
||||
<vbox class="zen-site-data-section">
|
||||
<hbox class="zen-site-data-section-header">
|
||||
<label data-l10n-id="unified-extensions-header-title" flex="1" />
|
||||
<label data-l10n-id="zen-generic-manage" id="zen-site-data-manage-addons" />
|
||||
</hbox>
|
||||
<hbox class="panel-subview-body" context="unified-extensions-context-menu" id="zen-site-data-addons">
|
||||
<html:div id="unified-extensions-messages-container">
|
||||
<!-- messages will be inserted here -->
|
||||
</html:div>
|
||||
|
||||
<vbox id="overflowed-extensions-list">
|
||||
<!-- overflowed extension buttons from the nav-bar will go here -->
|
||||
</vbox>
|
||||
|
||||
<vbox id="unified-extensions-area">
|
||||
<!-- default area for extension browser action buttons -->
|
||||
</vbox>
|
||||
|
||||
<vbox class="unified-extensions-list">
|
||||
<!-- active visible extensions go here -->
|
||||
</vbox>
|
||||
|
||||
<vbox id="zen-site-data-new-addon-button-container">
|
||||
<toolbarbutton id="zen-site-data-new-addon-button"
|
||||
class="subviewbutton toolbarbutton-1" />
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
# Keep this button on the DOM even though we hide it for ever,
|
||||
# again, to keep firefox happy if they decide to change functionality
|
||||
# for this specific button / id
|
||||
<toolbarbutton id="unified-extensions-manage-extensions"
|
||||
class="subviewbutton panel-subview-footer-button unified-extensions-manage-extensions"
|
||||
data-l10n-id="unified-extensions-manage-extensions"
|
||||
hidden="true" />
|
||||
</vbox>
|
||||
<vbox class="zen-site-data-section">
|
||||
<hbox class="zen-site-data-section-header">
|
||||
<label data-l10n-id="zen-site-data-settings" flex="1" />
|
||||
<label data-l10n-id="zen-generic-more" id="zen-site-data-settings-more" />
|
||||
</hbox>
|
||||
<vbox id="zen-site-data-settings-list">
|
||||
<!-- settings will be inserted here -->
|
||||
</vbox>
|
||||
</vbox>
|
||||
<hbox id="zen-site-data-footer">
|
||||
<toolbarbutton id="zen-site-data-security-info"
|
||||
class="subviewbutton zen-interactive-button" />
|
||||
<toolbarbutton id="zen-site-data-actions"
|
||||
class="subviewbutton zen-interactive-button"
|
||||
closemenu="none"
|
||||
context="zenSiteDataActions" />
|
||||
</hbox>
|
||||
</panelview>
|
||||
</panelmultiview>
|
||||
</panel>
|
@@ -5,5 +5,6 @@
|
||||
#include zen-panels/gradient-generator.inc
|
||||
#include zen-panels/emojis-picker.inc
|
||||
#include zen-panels/folders-search.inc
|
||||
#include zen-panels/site-data.inc
|
||||
|
||||
#include zen-panels/popups.inc
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/moz.build b/browser/base/moz.build
|
||||
index 2f2807a246c262298d0802a6a80abe211c99732c..089a86c9e7f69b994657f20fb2392f3dcc8646bf 100644
|
||||
index 086b462e706bb46727d0fed85b4c98debaeaf721..44a4fcb9b8181678667ee11b0443eed681dd2a43 100644
|
||||
--- a/browser/base/moz.build
|
||||
+++ b/browser/base/moz.build
|
||||
@@ -81,3 +81,5 @@ DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"]
|
||||
@@ -82,3 +82,5 @@ DEFINES["MOZ_APP_VERSION_DISPLAY"] = CONFIG["MOZ_APP_VERSION_DISPLAY"]
|
||||
DEFINES["APP_LICENSE_BLOCK"] = "%s/content/overrides/app-license.html" % SRCDIR
|
||||
|
||||
JAR_MANIFESTS += ["jar.mn"]
|
||||
|
@@ -1,12 +0,0 @@
|
||||
diff --git a/browser/components/BrowserContentHandler.sys.mjs b/browser/components/BrowserContentHandler.sys.mjs
|
||||
index 8630614d23147365628e0cb7e9625b8f2a160588..0750869f16336452a458f27627e6fe0492aae462 100644
|
||||
--- a/browser/components/BrowserContentHandler.sys.mjs
|
||||
+++ b/browser/components/BrowserContentHandler.sys.mjs
|
||||
@@ -1276,6 +1276,7 @@ function maybeRecordToHandleTelemetry(uri, isLaunch) {
|
||||
".avif",
|
||||
".htm",
|
||||
".html",
|
||||
+ ".jxl",
|
||||
".pdf",
|
||||
".shtml",
|
||||
".xht",
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||
index eae3ed9518ad9ce2103bb912963465c1b10ac050..ccbb04cd36fd8fd63fd8c9ebd0b51f0a5966829c 100644
|
||||
index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b097351d60 100644
|
||||
--- a/browser/components/BrowserGlue.sys.mjs
|
||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
@@ -10,7 +10,7 @@ index eae3ed9518ad9ce2103bb912963465c1b10ac050..ccbb04cd36fd8fd63fd8c9ebd0b51f0a
|
||||
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
|
||||
@@ -1448,7 +1449,7 @@ BrowserGlue.prototype = {
|
||||
@@ -1458,7 +1459,7 @@ BrowserGlue.prototype = {
|
||||
windowcount++;
|
||||
let tabbrowser = win.gBrowser;
|
||||
if (tabbrowser) {
|
||||
@@ -19,7 +19,7 @@ index eae3ed9518ad9ce2103bb912963465c1b10ac050..ccbb04cd36fd8fd63fd8c9ebd0b51f0a
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1611,6 +1612,8 @@ BrowserGlue.prototype = {
|
||||
@@ -1623,6 +1624,8 @@ BrowserGlue.prototype = {
|
||||
} else if (profileDataVersion < APP_DATA_VERSION) {
|
||||
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/controlcenter/content/identityPanel.inc.xhtml b/browser/components/controlcenter/content/identityPanel.inc.xhtml
|
||||
index 225340c698f775a321bf5f82c0156bb0e3e2aa96..59e6613638efadfd2961999bd77b388c4529314b 100644
|
||||
index 8e23aad8ca0bb686a669b11e1d78b7906f5f38d0..cf4873cc6165b5f77091c056d7e275e0f3d36769 100644
|
||||
--- a/browser/components/controlcenter/content/identityPanel.inc.xhtml
|
||||
+++ b/browser/components/controlcenter/content/identityPanel.inc.xhtml
|
||||
@@ -28,7 +28,7 @@
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0ade05e3b 100644
|
||||
index d9a059f608779fea7cd8c595a432f6fe95183e0c..a3c18551e3b24ee86a4373cbbc4f2cdb074aa94d 100644
|
||||
--- a/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs
|
||||
@@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
|
||||
@@ -10,7 +10,16 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
HomePage: "resource:///modules/HomePage.sys.mjs",
|
||||
PanelMultiView:
|
||||
"moz-src:///browser/components/customizableui/PanelMultiView.sys.mjs",
|
||||
@@ -333,19 +334,14 @@ var CustomizableUIInternal = {
|
||||
@@ -326,7 +327,7 @@ var CustomizableUIInternal = {
|
||||
{
|
||||
type: CustomizableUI.TYPE_PANEL,
|
||||
defaultPlacements: [],
|
||||
- anchor: "unified-extensions-button",
|
||||
+ anchor: "zen-site-data-icon-button",
|
||||
},
|
||||
false
|
||||
);
|
||||
@@ -336,19 +337,14 @@ var CustomizableUIInternal = {
|
||||
"back-button",
|
||||
"forward-button",
|
||||
"stop-reload-button",
|
||||
@@ -31,7 +40,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
this.registerArea(
|
||||
CustomizableUI.AREA_NAVBAR,
|
||||
{
|
||||
@@ -353,8 +349,6 @@ var CustomizableUIInternal = {
|
||||
@@ -356,8 +352,6 @@ var CustomizableUIInternal = {
|
||||
overflowable: true,
|
||||
defaultPlacements: navbarPlacements,
|
||||
verticalTabsDefaultPlacements: [
|
||||
@@ -40,7 +49,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
],
|
||||
defaultCollapsed: false,
|
||||
},
|
||||
@@ -378,10 +372,7 @@ var CustomizableUIInternal = {
|
||||
@@ -381,10 +375,7 @@ var CustomizableUIInternal = {
|
||||
{
|
||||
type: CustomizableUI.TYPE_TOOLBAR,
|
||||
defaultPlacements: [
|
||||
@@ -51,7 +60,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
],
|
||||
verticalTabsDefaultPlacements: [],
|
||||
defaultCollapsed: null,
|
||||
@@ -463,6 +454,7 @@ var CustomizableUIInternal = {
|
||||
@@ -466,6 +457,7 @@ var CustomizableUIInternal = {
|
||||
CustomizableUI.AREA_NAVBAR,
|
||||
CustomizableUI.AREA_BOOKMARKS,
|
||||
CustomizableUI.AREA_TABSTRIP,
|
||||
@@ -59,7 +68,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
]);
|
||||
if (AppConstants.platform != "macosx") {
|
||||
toolbars.add(CustomizableUI.AREA_MENUBAR);
|
||||
@@ -1247,6 +1239,9 @@ var CustomizableUIInternal = {
|
||||
@@ -1250,6 +1242,9 @@ var CustomizableUIInternal = {
|
||||
placements = gPlacements.get(area);
|
||||
}
|
||||
|
||||
@@ -69,7 +78,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
// For toolbars that need it, mark as dirty.
|
||||
let defaultPlacements = areaProperties.get("defaultPlacements");
|
||||
if (
|
||||
@@ -1754,7 +1749,7 @@ var CustomizableUIInternal = {
|
||||
@@ -1757,7 +1752,7 @@ var CustomizableUIInternal = {
|
||||
lazy.log.info(
|
||||
"Widget " + aWidgetId + " not found, unable to remove from " + aArea
|
||||
);
|
||||
@@ -78,7 +87,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
}
|
||||
|
||||
this.notifyDOMChange(widgetNode, null, container, true, () => {
|
||||
@@ -1764,7 +1759,7 @@ var CustomizableUIInternal = {
|
||||
@@ -1767,7 +1762,7 @@ var CustomizableUIInternal = {
|
||||
// We also need to remove the panel context menu if it's there:
|
||||
this.ensureButtonContextMenu(widgetNode);
|
||||
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
|
||||
@@ -87,7 +96,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
} else {
|
||||
window.gNavToolbox.palette.appendChild(widgetNode);
|
||||
}
|
||||
@@ -1932,16 +1927,16 @@ var CustomizableUIInternal = {
|
||||
@@ -1935,16 +1930,16 @@ var CustomizableUIInternal = {
|
||||
elem.setAttribute("skipintoolbarset", "true");
|
||||
}
|
||||
}
|
||||
@@ -107,7 +116,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
// Handle initial state of vertical tabs.
|
||||
if (isVerticalTabs) {
|
||||
// Show the vertical tabs toolbar
|
||||
@@ -2183,6 +2178,10 @@ var CustomizableUIInternal = {
|
||||
@@ -2186,6 +2181,10 @@ var CustomizableUIInternal = {
|
||||
* The identifier string of the area that aNode is being inserted into.
|
||||
*/
|
||||
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
|
||||
@@ -118,7 +127,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
|
||||
this.setLocationAttributes(aNode, aAreaId);
|
||||
aContainer.insertBefore(aNode, aNextNode);
|
||||
@@ -3303,7 +3302,6 @@ var CustomizableUIInternal = {
|
||||
@@ -3306,7 +3305,6 @@ var CustomizableUIInternal = {
|
||||
if (!this.isWidgetRemovable(aWidgetId)) {
|
||||
return;
|
||||
}
|
||||
@@ -126,7 +135,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
let placements = gPlacements.get(oldPlacement.area);
|
||||
let position = placements.indexOf(aWidgetId);
|
||||
if (position != -1) {
|
||||
@@ -4538,7 +4536,7 @@ var CustomizableUIInternal = {
|
||||
@@ -4541,7 +4539,7 @@ var CustomizableUIInternal = {
|
||||
* For all registered areas, builds those areas to reflect the current
|
||||
* placement state of all widgets.
|
||||
*/
|
||||
@@ -135,7 +144,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
for (let [areaId, areaNodes] of gBuildAreas) {
|
||||
let placements = gPlacements.get(areaId);
|
||||
let isFirstChangedToolbar = true;
|
||||
@@ -4549,7 +4547,7 @@ var CustomizableUIInternal = {
|
||||
@@ -4552,7 +4550,7 @@ var CustomizableUIInternal = {
|
||||
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
|
||||
let defaultCollapsed = area.get("defaultCollapsed");
|
||||
let win = areaNode.ownerGlobal;
|
||||
@@ -144,7 +153,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
win.setToolbarVisibility(
|
||||
areaNode,
|
||||
typeof defaultCollapsed == "string"
|
||||
@@ -5840,6 +5838,7 @@ export var CustomizableUI = {
|
||||
@@ -5843,6 +5841,7 @@ export var CustomizableUI = {
|
||||
unregisterArea(aName, aDestroyPlacements) {
|
||||
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
|
||||
},
|
||||
@@ -152,7 +161,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
/**
|
||||
* Add a widget to an area.
|
||||
* If the area to which you try to add is not known to CustomizableUI,
|
||||
@@ -7887,11 +7886,11 @@ class OverflowableToolbar {
|
||||
@@ -7890,11 +7889,11 @@ class OverflowableToolbar {
|
||||
parseFloat(style.paddingLeft) -
|
||||
parseFloat(style.paddingRight) -
|
||||
toolbarChildrenWidth;
|
||||
@@ -166,17 +175,17 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
});
|
||||
|
||||
lazy.log.debug(
|
||||
@@ -7901,7 +7900,8 @@ class OverflowableToolbar {
|
||||
// If the target has min-width: 0, their children might actually overflow
|
||||
// it, so check for both cases explicitly.
|
||||
let targetContentWidth = Math.max(targetWidth, targetChildrenWidth);
|
||||
- let isOverflowing = Math.floor(targetContentWidth) > totalAvailWidth;
|
||||
@@ -7909,7 +7908,8 @@ class OverflowableToolbar {
|
||||
Math.max(targetWidth, targetChildrenWidth)
|
||||
);
|
||||
totalAvailWidth = Math.ceil(totalAvailWidth);
|
||||
- let isOverflowing = targetContentWidth > totalAvailWidth;
|
||||
+ if (win.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') return { isOverflowing: false, targetContentWidth, totalAvailWidth };
|
||||
+ let isOverflowing = Math.floor(targetContentWidth) + (win.gZenVerticalTabsManager._hasSetSingleToolbar ? 0.1 : 0) > totalAvailWidth;
|
||||
+ let isOverflowing = targetContentWidth + (win.gZenVerticalTabsManager._hasSetSingleToolbar ? 0.1 : 0) > totalAvailWidth;
|
||||
return { isOverflowing, targetContentWidth, totalAvailWidth };
|
||||
}
|
||||
|
||||
@@ -7995,7 +7995,7 @@ class OverflowableToolbar {
|
||||
@@ -8003,7 +8003,7 @@ class OverflowableToolbar {
|
||||
}
|
||||
}
|
||||
if (!inserted) {
|
||||
@@ -185,7 +194,7 @@ index 4f62449d670701c77c681ae36e00bae8bf2f636c..132c77e396cb259181ed13ca8ff784e0
|
||||
}
|
||||
child.removeAttribute("cui-anchorid");
|
||||
child.removeAttribute("overflowedItem");
|
||||
@@ -8340,7 +8340,7 @@ class OverflowableToolbar {
|
||||
@@ -8348,7 +8348,7 @@ class OverflowableToolbar {
|
||||
break;
|
||||
}
|
||||
case "mousedown": {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
|
||||
index 0baa038232d7e0fd9942f392c48acf7ea5ba50ed..093e1c29c3538d18eb2162b4e4b23ba40c695739 100644
|
||||
index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce3dbfa7a3 100644
|
||||
--- a/browser/components/extensions/parent/ext-browser.js
|
||||
+++ b/browser/components/extensions/parent/ext-browser.js
|
||||
@@ -351,6 +351,7 @@ class TabTracker extends TabTrackerBase {
|
||||
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
||||
}
|
||||
|
||||
getId(nativeTab) {
|
||||
@@ -10,7 +10,7 @@ index 0baa038232d7e0fd9942f392c48acf7ea5ba50ed..093e1c29c3538d18eb2162b4e4b23ba4
|
||||
let id = this._tabs.get(nativeTab);
|
||||
if (id) {
|
||||
return id;
|
||||
@@ -385,6 +386,7 @@ class TabTracker extends TabTrackerBase {
|
||||
@@ -388,6 +389,7 @@ class TabTracker extends TabTrackerBase {
|
||||
if (nativeTab.ownerGlobal.closed) {
|
||||
throw new Error("Cannot attach ID to a tab in a closed window.");
|
||||
}
|
||||
@@ -18,7 +18,7 @@ index 0baa038232d7e0fd9942f392c48acf7ea5ba50ed..093e1c29c3538d18eb2162b4e4b23ba4
|
||||
|
||||
this._tabs.set(nativeTab, id);
|
||||
if (nativeTab.linkedBrowser) {
|
||||
@@ -1268,6 +1270,10 @@ class TabManager extends TabManagerBase {
|
||||
@@ -1271,6 +1273,10 @@ class TabManager extends TabManagerBase {
|
||||
}
|
||||
|
||||
canAccessTab(nativeTab) {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
|
||||
index 29fb3308dcc98d785a3345dee78050d633927db2..0ae28fa0618def4a146723b19a22280956a25371 100644
|
||||
index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3ed3a3058e 100644
|
||||
--- a/browser/components/places/content/browserPlacesViews.js
|
||||
+++ b/browser/components/places/content/browserPlacesViews.js
|
||||
@@ -330,12 +330,23 @@ class PlacesViewBase {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
||||
index eac1fc65c01107cc7f1a3f3aeb1e8caac3c4a3f5..c3bd265acc924bcf26816e9e78f314c31af41f6d 100644
|
||||
index a786155d80a9f1f09d209f2da11437ee2d662739..2e422b48b452698275118d336d1b16af6a221577 100644
|
||||
--- a/browser/components/preferences/jar.mn
|
||||
+++ b/browser/components/preferences/jar.mn
|
||||
@@ -27,3 +27,5 @@ browser.jar:
|
||||
@@ -30,3 +30,5 @@ browser.jar:
|
||||
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
||||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
||||
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||
index 66ce978d9b022285dea67fdb75b3c005adb05d9b..db61587570ca18403a82ea6796a756d403cc207e 100644
|
||||
index 891cf7108cf4606c99a902afa420e744b9690b87..72034b4a28e68016c04d06a2991ccebff30dd341 100644
|
||||
--- a/browser/components/preferences/main.inc.xhtml
|
||||
+++ b/browser/components/preferences/main.inc.xhtml
|
||||
@@ -29,6 +29,9 @@
|
||||
@@ -12,7 +12,7 @@ index 66ce978d9b022285dea67fdb75b3c005adb05d9b..db61587570ca18403a82ea6796a756d4
|
||||
#ifdef XP_WIN
|
||||
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
||||
<checkbox id="windowsLaunchOnLogin"
|
||||
@@ -188,7 +191,8 @@
|
||||
@@ -189,7 +192,8 @@
|
||||
<!-- Browser layout -->
|
||||
<groupbox data-category="paneGeneral"
|
||||
data-subcategory="layout"
|
||||
@@ -22,7 +22,7 @@ index 66ce978d9b022285dea67fdb75b3c005adb05d9b..db61587570ca18403a82ea6796a756d4
|
||||
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
||||
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
||||
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
||||
@@ -419,6 +423,7 @@
|
||||
@@ -420,6 +424,7 @@
|
||||
languages-customize-add.label,
|
||||
" />
|
||||
</hbox>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
index 3f578f3888684a1830d456f2a4896e8a5f6630fd..7de18a724d3953a5616577f65a8cf9a18f71893c 100644
|
||||
index 259bc260328af1b1f2b95866e7cf92dec341a4b0..3cebff51774b2542a8d4d888aa99dc10929c80be 100644
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -424,7 +424,7 @@ function getBundleForLocales(newLocales) {
|
||||
@@ -443,7 +443,7 @@ function getBundleForLocales(newLocales) {
|
||||
])
|
||||
);
|
||||
return new Localization(
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||
index b5af9af69fd715012af5c0613e0627dd9cf9c3b7..7f86bac8cce278c5b7b7e1230230b3a27b7cf49a 100644
|
||||
index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778abd312dfd8 100644
|
||||
--- a/browser/components/preferences/preferences.js
|
||||
+++ b/browser/components/preferences/preferences.js
|
||||
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||
|
@@ -1,17 +1,17 @@
|
||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||
index 21d951a19df06da67a28f717b9f80f8f4ebf77d2..b1f998f2b3ed99b19666e81e61428587541b0da5 100644
|
||||
index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222bb88a64b 100644
|
||||
--- a/browser/components/preferences/preferences.xhtml
|
||||
+++ b/browser/components/preferences/preferences.xhtml
|
||||
@@ -44,6 +44,8 @@
|
||||
<link rel="stylesheet" href="chrome://browser/skin/preferences/privacy.css" />
|
||||
@@ -45,6 +45,8 @@
|
||||
<link rel="stylesheet" href="chrome://browser/content/preferences/widgets/setting-group.css" />
|
||||
<link rel="stylesheet" href="chrome://browser/content/preferences/widgets/setting-control.css" />
|
||||
|
||||
+#include zen-preferences-links.xhtml
|
||||
+
|
||||
<link rel="localization" href="branding/brand.ftl"/>
|
||||
<link rel="localization" href="browser/browser.ftl"/>
|
||||
<!-- Used by fontbuilder.js -->
|
||||
@@ -104,6 +106,11 @@
|
||||
@@ -106,6 +108,11 @@
|
||||
<hbox flex="1">
|
||||
|
||||
<vbox class="navigation">
|
||||
@@ -23,7 +23,7 @@ index 21d951a19df06da67a28f717b9f80f8f4ebf77d2..b1f998f2b3ed99b19666e81e61428587
|
||||
<!-- category list -->
|
||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||
<richlistitem id="category-general"
|
||||
@@ -116,6 +123,50 @@
|
||||
@@ -118,6 +125,50 @@
|
||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||
</richlistitem>
|
||||
|
||||
@@ -74,7 +74,7 @@ index 21d951a19df06da67a28f717b9f80f8f4ebf77d2..b1f998f2b3ed99b19666e81e61428587
|
||||
<richlistitem id="category-home"
|
||||
class="category"
|
||||
value="paneHome"
|
||||
@@ -227,11 +278,6 @@
|
||||
@@ -229,11 +280,6 @@
|
||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
@@ -86,7 +86,7 @@ index 21d951a19df06da67a28f717b9f80f8f4ebf77d2..b1f998f2b3ed99b19666e81e61428587
|
||||
</hbox>
|
||||
</hbox>
|
||||
<vbox id="mainPrefPane">
|
||||
@@ -245,6 +291,10 @@
|
||||
@@ -247,6 +293,10 @@
|
||||
#include sync.inc.xhtml
|
||||
#include experimental.inc.xhtml
|
||||
#include moreFromMozilla.inc.xhtml
|
||||
|
@@ -648,8 +648,6 @@ var gZenLooksAndFeel = {
|
||||
Services.prefs.removeObserver(pref, this);
|
||||
}
|
||||
});
|
||||
this.setCompactModeStyle();
|
||||
|
||||
this.applySidebarLayout();
|
||||
},
|
||||
|
||||
@@ -696,41 +694,6 @@ var gZenLooksAndFeel = {
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
setCompactModeStyle() {
|
||||
const chooser = document.getElementById('zen-compact-mode-styles-form');
|
||||
const radios = [...chooser.querySelectorAll('input')];
|
||||
|
||||
let value = '';
|
||||
if (
|
||||
Services.prefs.getBoolPref('zen.view.compact.hide-tabbar', false) &&
|
||||
Services.prefs.getBoolPref('zen.view.compact.hide-toolbar', false)
|
||||
) {
|
||||
value = 'both';
|
||||
} else {
|
||||
value = Services.prefs.getBoolPref('zen.view.compact.hide-tabbar') ? 'left' : 'top';
|
||||
}
|
||||
chooser.querySelector(`[value='${value}']`).checked = true;
|
||||
for (let radio of radios) {
|
||||
radio.addEventListener('change', (e) => {
|
||||
let value = e.target.value;
|
||||
switch (value) {
|
||||
case 'left':
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-tabbar', true);
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-toolbar', false);
|
||||
break;
|
||||
case 'top':
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-tabbar', false);
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-toolbar', true);
|
||||
break;
|
||||
default:
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-tabbar', true);
|
||||
Services.prefs.setBoolPref('zen.view.compact.hide-toolbar', true);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
/* eslint-disable no-unused-vars */
|
||||
@@ -1010,7 +973,7 @@ var gZenCKSSettings = {
|
||||
this._latestValidKey = null;
|
||||
return;
|
||||
} else if (shortcut == 'Escape' && !modifiersActive) {
|
||||
const hasConflicts = gZenKeyboardShortcutsManager.checkForConflicts(
|
||||
const { hasConflicts, conflictShortcut } = gZenKeyboardShortcutsManager.checkForConflicts(
|
||||
this._latestValidKey ? this._latestValidKey : shortcut,
|
||||
this._latestModifier ? this._latestModifier : modifiers,
|
||||
this._currentActionID
|
||||
@@ -1023,12 +986,29 @@ var gZenCKSSettings = {
|
||||
input.classList.add(`${ZEN_CKS_INPUT_FIELD_CLASS}-invalid`);
|
||||
}
|
||||
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-unsafed`);
|
||||
if (hasConflicts && !input.nextElementSibling) {
|
||||
input.after(
|
||||
window.MozXULElement.parseXULToFragment(`
|
||||
<label class="${ZEN_CKS_CLASS_BASE}-conflict" data-l10n-id="zen-key-conflict"></label>
|
||||
`)
|
||||
);
|
||||
|
||||
if (hasConflicts) {
|
||||
const shortcutL10nKey =
|
||||
zenMissingKeyboardShortcutL10n[conflictShortcut.getID()] ??
|
||||
conflictShortcut.getL10NID();
|
||||
|
||||
const [group, shortcut] = await document.l10n.formatValues([
|
||||
{ id: `${ZEN_CKS_GROUP_PREFIX}-${conflictShortcut.getGroup()}` },
|
||||
{ id: shortcutL10nKey },
|
||||
]);
|
||||
|
||||
if (!input.nextElementSibling) {
|
||||
input.after(
|
||||
window.MozXULElement.parseXULToFragment(`
|
||||
<label class="${ZEN_CKS_CLASS_BASE}-conflict" data-l10n-id="zen-key-conflict"></label>
|
||||
`)
|
||||
);
|
||||
}
|
||||
|
||||
document.l10n.setAttributes(input.nextElementSibling, 'zen-key-conflict', {
|
||||
group: group ?? '',
|
||||
shortcut: shortcut ?? '',
|
||||
});
|
||||
}
|
||||
} else {
|
||||
input.classList.remove(`${ZEN_CKS_INPUT_FIELD_CLASS}-editing`);
|
||||
@@ -1075,11 +1055,6 @@ var gZenCKSSettings = {
|
||||
};
|
||||
|
||||
Preferences.addAll([
|
||||
{
|
||||
id: 'zen.view.compact.hide-toolbar',
|
||||
type: 'bool',
|
||||
default: false,
|
||||
},
|
||||
{
|
||||
id: 'zen.view.compact.toolbar-flash-popup',
|
||||
type: 'bool',
|
||||
|
@@ -56,43 +56,6 @@
|
||||
<label><html:h2 data-l10n-id="zen-look-and-feel-compact-view-header"/></label>
|
||||
<description class="description-deemphasized" data-l10n-id="zen-look-and-feel-compact-view-description" />
|
||||
|
||||
<html:div id="ZenCompactModeStyle">
|
||||
<form xmlns="http://www.w3.org/1999/xhtml" autocomplete="off" id="zen-compact-mode-styles-form">
|
||||
<label class="web-appearance-choice">
|
||||
<div class="web-appearance-choice-image-container">
|
||||
<div class="zen-compact-mode-styles-browser-wrapper" left="">
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="web-appearance-choice-footer">
|
||||
<input type="radio" name="web-appearance" value="left" data-l10n-id="preferences-web-appearance-choice-input-auto"
|
||||
/><span data-l10n-id="zen-compact-mode-styles-left" />
|
||||
</div>
|
||||
</label>
|
||||
<label class="web-appearance-choice">
|
||||
<div class="web-appearance-choice-image-container">
|
||||
<div class="zen-compact-mode-styles-browser-wrapper" top="">
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="web-appearance-choice-footer">
|
||||
<input type="radio" name="web-appearance" value="top" data-l10n-id="preferences-web-appearance-choice-input-light"
|
||||
/><span data-l10n-id="zen-compact-mode-styles-top" />
|
||||
</div>
|
||||
</label>
|
||||
<label class="web-appearance-choice">
|
||||
<div class="web-appearance-choice-image-container">
|
||||
<div class="zen-compact-mode-styles-browser-wrapper" both="">
|
||||
<div></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="web-appearance-choice-footer">
|
||||
<input type="radio" name="web-appearance" value="both" data-l10n-id="preferences-web-appearance-choice-input-dark"
|
||||
/><span data-l10n-id="zen-compact-mode-styles-both" />
|
||||
</div>
|
||||
</label>
|
||||
</form>
|
||||
</html:div>
|
||||
<vbox class="indent">
|
||||
<checkbox id="zenLooksAndFeelEnableToolbarFlashPopup"
|
||||
data-l10n-id="zen-look-and-feel-compact-toolbar-flash-popup"
|
||||
@@ -124,7 +87,6 @@
|
||||
#ifdef XP_MACOSX
|
||||
<menuitem data-l10n-id="zen-glance-trigger-meta-click" value="meta"/>
|
||||
#endif
|
||||
<menuitem data-l10n-id="zen-glance-trigger-mantain-click" value="mantain" disabled="true"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
</hbox>
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/screenshots/overlay/overlay.css b/browser/components/screenshots/overlay/overlay.css
|
||||
index 037b060327d896e1ec0d087ade80df7548c8c1f7..7a158291c56df0e3b01bf7a37d04de71940d395f 100644
|
||||
index ee2740fc48e9b70fe17b0f27b60053209516dbbf..cc0270e0eb28c3e60216460b02d62111abb970de 100644
|
||||
--- a/browser/components/screenshots/overlay/overlay.css
|
||||
+++ b/browser/components/screenshots/overlay/overlay.css
|
||||
@@ -225,6 +225,9 @@
|
||||
@@ -196,6 +196,9 @@
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
z-index: var(--screenshots-high-layer);
|
||||
@@ -12,7 +12,7 @@ index 037b060327d896e1ec0d087ade80df7548c8c1f7..7a158291c56df0e3b01bf7a37d04de71
|
||||
}
|
||||
|
||||
#top-background {
|
||||
@@ -243,7 +246,7 @@
|
||||
@@ -214,7 +217,7 @@
|
||||
}
|
||||
|
||||
.bghighlight {
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs
|
||||
index 6ef224ce377cf3ff511e435f3c7a5dc1de819c60..5b4c395c222c6317fd88499a1aa5307032ea13f8 100644
|
||||
index 55f90f4e802480728bbd5ef962b507183e017997..2a83f861fe6edee2b127c8d7946abcdcdbf677f5 100644
|
||||
--- a/browser/components/search/SearchUIUtils.sys.mjs
|
||||
+++ b/browser/components/search/SearchUIUtils.sys.mjs
|
||||
@@ -426,7 +426,7 @@ export var SearchUIUtils = {
|
||||
@@ -430,7 +430,7 @@ export var SearchUIUtils = {
|
||||
triggeringSearchEngine: engine.name,
|
||||
},
|
||||
});
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb1077ea5c 100644
|
||||
index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d89fb95494 100644
|
||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
@@ -126,6 +126,8 @@ const TAB_EVENTS = [
|
||||
@@ -11,7 +11,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
];
|
||||
|
||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
@@ -1898,6 +1900,8 @@ var SessionStoreInternal = {
|
||||
@@ -1904,6 +1906,8 @@ var SessionStoreInternal = {
|
||||
case "TabPinned":
|
||||
case "TabUnpinned":
|
||||
case "SwapDocShells":
|
||||
@@ -20,7 +20,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
this.saveStateDelayed(win);
|
||||
break;
|
||||
case "TabGroupCreate":
|
||||
@@ -2133,7 +2137,6 @@ var SessionStoreInternal = {
|
||||
@@ -2139,7 +2143,6 @@ var SessionStoreInternal = {
|
||||
if (closedWindowState) {
|
||||
let newWindowState;
|
||||
if (
|
||||
@@ -28,7 +28,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
!lazy.SessionStartup.willRestore()
|
||||
) {
|
||||
// We want to split the window up into pinned tabs and unpinned tabs.
|
||||
@@ -2366,11 +2369,9 @@ var SessionStoreInternal = {
|
||||
@@ -2372,11 +2375,9 @@ var SessionStoreInternal = {
|
||||
tabbrowser.selectedTab.label;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
|
||||
// Store the window's close date to figure out when each individual tab
|
||||
// was closed. This timestamp should allow re-arranging data based on how
|
||||
@@ -3355,7 +3356,7 @@ var SessionStoreInternal = {
|
||||
@@ -3361,7 +3362,7 @@ var SessionStoreInternal = {
|
||||
if (!isPrivateWindow && tabState.isPrivate) {
|
||||
return;
|
||||
}
|
||||
@@ -49,7 +49,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4067,6 +4068,11 @@ var SessionStoreInternal = {
|
||||
@@ -4073,6 +4074,11 @@ var SessionStoreInternal = {
|
||||
Math.min(tabState.index, tabState.entries.length)
|
||||
);
|
||||
tabState.pinned = false;
|
||||
@@ -61,7 +61,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
|
||||
if (inBackground === false) {
|
||||
aWindow.gBrowser.selectedTab = newTab;
|
||||
@@ -4503,6 +4509,7 @@ var SessionStoreInternal = {
|
||||
@@ -4509,6 +4515,7 @@ var SessionStoreInternal = {
|
||||
// Append the tab if we're opening into a different window,
|
||||
tabIndex: aSource == aTargetWindow ? pos : Infinity,
|
||||
pinned: state.pinned,
|
||||
@@ -138,7 +138,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
this._log.debug(
|
||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||
);
|
||||
@@ -6349,6 +6360,25 @@ var SessionStoreInternal = {
|
||||
@@ -6348,6 +6359,25 @@ var SessionStoreInternal = {
|
||||
|
||||
// Most of tabData has been restored, now continue with restoring
|
||||
// attributes that may trigger external events.
|
||||
@@ -164,7 +164,7 @@ index e8192ea9d8d35165fbfbb8c4fc4a96641a80cc86..cf13724d147c8b8fc35c76d7f77601eb
|
||||
|
||||
if (tabData.pinned) {
|
||||
tabbrowser.pinTab(tab);
|
||||
@@ -7264,7 +7294,7 @@ var SessionStoreInternal = {
|
||||
@@ -7263,7 +7293,7 @@ var SessionStoreInternal = {
|
||||
|
||||
let groupsToSave = new Map();
|
||||
for (let tIndex = 0; tIndex < window.tabs.length; ) {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
||||
index f62decaa3f7400787b245b3e765197f4e70dffbb..329240cf434fdbefcf145a733179bd565a814280 100644
|
||||
index c4edb5442e5243b7d9fe35e1774b2fc651903601..d58076fedafe07d3401ab1723eaa837fabbae09f 100644
|
||||
--- a/browser/components/sidebar/browser-sidebar.js
|
||||
+++ b/browser/components/sidebar/browser-sidebar.js
|
||||
@@ -779,7 +779,7 @@ var SidebarController = {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
index 97990af166b63cae4b0343c77da5084850890504..b58d20eb3db82867030292625d45277afce1bbea 100644
|
||||
index 20a543dede6bf4428c8af19c5d0589788ddd8eaa..27a378e70f5b280b720c95ba8dac2cc4e88985be 100644
|
||||
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
@@ -87,7 +87,7 @@ class TabsListBase {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
||||
index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6e64a457d 100644
|
||||
index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..5b0f46642e36fd3e15d13a8dbc633c7a9751f8aa 100644
|
||||
--- a/browser/components/tabbrowser/content/tab.js
|
||||
+++ b/browser/components/tabbrowser/content/tab.js
|
||||
@@ -21,6 +21,7 @@
|
||||
@@ -31,7 +31,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
"fadein,pinned,busy,progress,selected=visuallyselected",
|
||||
".tab-icon-pending":
|
||||
@@ -93,9 +96,9 @@
|
||||
"src=image,triggeringprincipal=iconloadingprincipal,requestcontextid,fadein,pinned,selected=visuallyselected,busy,crashed,sharing,pictureinpicture,pending,discarded",
|
||||
"src=image,requestcontextid,fadein,pinned,selected=visuallyselected,busy,crashed,sharing,pictureinpicture,pending,discarded",
|
||||
".tab-sharing-icon-overlay": "sharing,selected=visuallyselected,pinned",
|
||||
".tab-icon-overlay":
|
||||
- "sharing,pictureinpicture,crashed,busy,soundplaying,soundplaying-scheduledremoval,pinned,muted,blocked,selected=visuallyselected,activemedia-blocked",
|
||||
@@ -101,7 +101,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -459,6 +475,8 @@
|
||||
@@ -468,6 +484,8 @@
|
||||
this.style.MozUserFocus = "ignore";
|
||||
} else if (
|
||||
event.target.classList.contains("tab-close-button") ||
|
||||
@@ -110,7 +110,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
event.target.classList.contains("tab-icon-overlay") ||
|
||||
event.target.classList.contains("tab-audio-button")
|
||||
) {
|
||||
@@ -513,6 +531,10 @@
|
||||
@@ -522,6 +540,10 @@
|
||||
this.style.MozUserFocus = "";
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
on_click(event) {
|
||||
if (event.button != 0) {
|
||||
return;
|
||||
@@ -561,6 +583,7 @@
|
||||
@@ -570,6 +592,7 @@
|
||||
)
|
||||
);
|
||||
} else {
|
||||
@@ -129,7 +129,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
gBrowser.removeTab(this, {
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
@@ -573,6 +596,14 @@
|
||||
@@ -582,6 +605,14 @@
|
||||
// (see tabbrowser-tabs 'click' handler).
|
||||
gBrowser.tabContainer._blockDblClick = true;
|
||||
}
|
||||
@@ -144,7 +144,7 @@ index fd2465046407261e8c29b4cd3d56122d232e701c..108bc7eae78898bf8a84ddadbacca2d6
|
||||
}
|
||||
|
||||
on_dblclick(event) {
|
||||
@@ -596,6 +627,8 @@
|
||||
@@ -605,6 +636,8 @@
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
});
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80ed9d2317a 100644
|
||||
index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394b7dbc6a7 100644
|
||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
@@ -427,15 +427,64 @@
|
||||
@@ -432,15 +432,64 @@
|
||||
return this.tabContainer.visibleTabs;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
set selectedTab(val) {
|
||||
if (
|
||||
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
||||
@@ -583,6 +632,7 @@
|
||||
@@ -588,6 +637,7 @@
|
||||
this.tabpanels.appendChild(panel);
|
||||
|
||||
let tab = this.tabs[0];
|
||||
@@ -77,22 +77,26 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
tab.linkedPanel = uniqueId;
|
||||
this._selectedTab = tab;
|
||||
this._selectedBrowser = browser;
|
||||
@@ -868,9 +918,13 @@
|
||||
@@ -873,13 +923,17 @@
|
||||
}
|
||||
|
||||
this.showTab(aTab);
|
||||
+ const handled = gZenFolders.handleTabPin(aTab);
|
||||
+ if (!handled) {
|
||||
+ this.ungroupTab(aTab);
|
||||
this.#handleTabMove(aTab, () =>
|
||||
- this.pinnedTabsContainer.appendChild(aTab)
|
||||
this.#handleTabMove(aTab, () => {
|
||||
let periphery = document.getElementById(
|
||||
"pinned-tabs-container-periphery"
|
||||
);
|
||||
// If periphery is null, append to end
|
||||
- this.pinnedTabsContainer.insertBefore(aTab, periphery);
|
||||
+ aTab.hasAttribute("zen-essential") ? gZenWorkspaces.getEssentialsSection(aTab).appendChild(aTab) : this.pinnedTabsContainer.insertBefore(aTab, this.pinnedTabsContainer.lastChild)
|
||||
);
|
||||
});
|
||||
+ }
|
||||
|
||||
aTab.setAttribute("pinned", "true");
|
||||
this._updateTabBarForPinnedTabs();
|
||||
@@ -883,11 +937,15 @@
|
||||
@@ -892,11 +946,15 @@
|
||||
}
|
||||
|
||||
this.#handleTabMove(aTab, () => {
|
||||
@@ -109,7 +113,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
});
|
||||
|
||||
aTab.style.marginInlineStart = "";
|
||||
@@ -1065,6 +1123,8 @@
|
||||
@@ -1073,6 +1131,8 @@
|
||||
|
||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||
|
||||
@@ -117,8 +121,8 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
+ gZenPinnedTabManager.onTabIconChanged(aTab, aIconURL);
|
||||
if (
|
||||
aIconURL &&
|
||||
!aLoadingPrincipal &&
|
||||
@@ -1075,6 +1135,9 @@
|
||||
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
||||
@@ -1082,6 +1142,9 @@
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -128,7 +132,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
let browser = this.getBrowserForTab(aTab);
|
||||
browser.mIconURL = aIconURL;
|
||||
@@ -1333,6 +1396,7 @@
|
||||
@@ -1445,6 +1508,7 @@
|
||||
if (!this._previewMode) {
|
||||
newTab.recordTimeFromUnloadToReload();
|
||||
newTab.updateLastAccessed();
|
||||
@@ -136,7 +140,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
oldTab.updateLastAccessed();
|
||||
// if this is the foreground window, update the last-seen timestamps.
|
||||
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
||||
@@ -1485,6 +1549,9 @@
|
||||
@@ -1597,6 +1661,9 @@
|
||||
}
|
||||
|
||||
let activeEl = document.activeElement;
|
||||
@@ -146,7 +150,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// If focus is on the old tab, move it to the new tab.
|
||||
if (activeEl == oldTab) {
|
||||
newTab.focus();
|
||||
@@ -1808,7 +1875,8 @@
|
||||
@@ -1920,7 +1987,8 @@
|
||||
}
|
||||
|
||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||
@@ -156,7 +160,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1916,7 +1984,7 @@
|
||||
@@ -2028,7 +2096,7 @@
|
||||
newIndex = this.selectedTab._tPos + 1;
|
||||
}
|
||||
|
||||
@@ -165,7 +169,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (this.isTabGroupLabel(targetTab)) {
|
||||
throw new Error(
|
||||
"Replacing a tab group label with a tab is not supported"
|
||||
@@ -2191,6 +2259,7 @@
|
||||
@@ -2303,6 +2371,7 @@
|
||||
uriIsAboutBlank,
|
||||
userContextId,
|
||||
skipLoad,
|
||||
@@ -173,7 +177,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} = {}) {
|
||||
let b = document.createXULElement("browser");
|
||||
// Use the JSM global to create the permanentKey, so that if the
|
||||
@@ -2264,8 +2333,7 @@
|
||||
@@ -2376,8 +2445,7 @@
|
||||
// we use a different attribute name for this?
|
||||
b.setAttribute("name", name);
|
||||
}
|
||||
@@ -183,7 +187,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
b.setAttribute("transparent", "true");
|
||||
}
|
||||
|
||||
@@ -2430,7 +2498,7 @@
|
||||
@@ -2542,7 +2610,7 @@
|
||||
|
||||
let panel = this.getPanel(browser);
|
||||
let uniqueId = this._generateUniquePanelID();
|
||||
@@ -192,7 +196,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
aTab.linkedPanel = uniqueId;
|
||||
|
||||
// Inject the <browser> into the DOM if necessary.
|
||||
@@ -2489,8 +2557,8 @@
|
||||
@@ -2601,8 +2669,8 @@
|
||||
// If we transitioned from one browser to two browsers, we need to set
|
||||
// hasSiblings=false on both the existing browser and the new browser.
|
||||
if (this.tabs.length == 2) {
|
||||
@@ -203,7 +207,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else {
|
||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||
}
|
||||
@@ -2654,7 +2722,6 @@
|
||||
@@ -2779,7 +2847,6 @@
|
||||
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
|
||||
tabIndex: tab._tPos + 1,
|
||||
userContextId: tab.userContextId,
|
||||
@@ -211,7 +215,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
focusUrlBar: true,
|
||||
});
|
||||
resolve(this.selectedBrowser);
|
||||
@@ -2734,6 +2801,8 @@
|
||||
@@ -2859,6 +2926,8 @@
|
||||
schemelessInput,
|
||||
hasValidUserGestureActivation = false,
|
||||
textDirectiveUserActivation = false,
|
||||
@@ -220,7 +224,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} = {}
|
||||
) {
|
||||
// all callers of addTab that pass a params object need to pass
|
||||
@@ -2744,6 +2813,12 @@
|
||||
@@ -2869,6 +2938,12 @@
|
||||
);
|
||||
}
|
||||
|
||||
@@ -233,7 +237,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||
}
|
||||
@@ -2807,6 +2882,19 @@
|
||||
@@ -2932,6 +3007,19 @@
|
||||
noInitialLabel,
|
||||
skipBackgroundNotify,
|
||||
});
|
||||
@@ -253,7 +257,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (insertTab) {
|
||||
// Insert the tab into the tab container in the correct position.
|
||||
this.#insertTabAtIndex(t, {
|
||||
@@ -2815,6 +2903,7 @@
|
||||
@@ -2940,6 +3028,7 @@
|
||||
ownerTab,
|
||||
openerTab,
|
||||
pinned,
|
||||
@@ -261,7 +265,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
bulkOrderedOpen,
|
||||
tabGroup: tabGroup ?? openerTab?.group,
|
||||
});
|
||||
@@ -2833,6 +2922,7 @@
|
||||
@@ -2958,6 +3047,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
@@ -269,7 +273,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}));
|
||||
|
||||
if (focusUrlBar) {
|
||||
@@ -2953,6 +3043,12 @@
|
||||
@@ -3078,6 +3168,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -282,7 +286,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// Additionally send pinned tab events
|
||||
if (pinned) {
|
||||
this.#notifyPinnedStatus(t);
|
||||
@@ -3041,10 +3137,10 @@
|
||||
@@ -3248,10 +3344,10 @@
|
||||
isAdoptingGroup = false,
|
||||
isUserTriggered = false,
|
||||
telemetryUserCreateSource = "unknown",
|
||||
@@ -294,7 +298,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}
|
||||
|
||||
if (!color) {
|
||||
@@ -3065,9 +3161,14 @@
|
||||
@@ -3272,9 +3368,14 @@
|
||||
label,
|
||||
isAdoptingGroup
|
||||
);
|
||||
@@ -311,7 +315,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
);
|
||||
group.addTabs(tabs);
|
||||
|
||||
@@ -3188,7 +3289,7 @@
|
||||
@@ -3395,7 +3496,7 @@
|
||||
}
|
||||
|
||||
this.#handleTabMove(tab, () =>
|
||||
@@ -320,7 +324,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3390,6 +3491,7 @@
|
||||
@@ -3597,6 +3698,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
@@ -328,7 +332,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}
|
||||
) {
|
||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||
@@ -3459,6 +3561,7 @@
|
||||
@@ -3666,6 +3768,7 @@
|
||||
openWindowInfo,
|
||||
name,
|
||||
skipLoad,
|
||||
@@ -336,7 +340,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3646,7 +3749,7 @@
|
||||
@@ -3853,7 +3956,7 @@
|
||||
// Add a new tab if needed.
|
||||
if (!tab) {
|
||||
let createLazyBrowser =
|
||||
@@ -345,7 +349,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
let url = "about:blank";
|
||||
if (tabData.entries?.length) {
|
||||
@@ -3683,8 +3786,10 @@
|
||||
@@ -3890,8 +3993,10 @@
|
||||
insertTab: false,
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
@@ -357,7 +361,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (select) {
|
||||
tabToSelect = tab;
|
||||
}
|
||||
@@ -3696,7 +3801,8 @@
|
||||
@@ -3903,7 +4008,8 @@
|
||||
this.pinTab(tab);
|
||||
// Then ensure all the tab open/pinning information is sent.
|
||||
this._fireTabOpen(tab, {});
|
||||
@@ -367,7 +371,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
let { groupId } = tabData;
|
||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||
// if a tab refers to a tab group we don't know, skip any group
|
||||
@@ -3710,7 +3816,10 @@
|
||||
@@ -3917,7 +4023,10 @@
|
||||
tabGroup.stateData.id,
|
||||
tabGroup.stateData.color,
|
||||
tabGroup.stateData.collapsed,
|
||||
@@ -379,7 +383,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
);
|
||||
tabsFragment.appendChild(tabGroup.node);
|
||||
}
|
||||
@@ -3755,9 +3864,23 @@
|
||||
@@ -3962,9 +4071,23 @@
|
||||
// to remove the old selected tab.
|
||||
if (tabToSelect) {
|
||||
let leftoverTab = this.selectedTab;
|
||||
@@ -403,7 +407,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
if (tabs.length > 1 || !tabs[0].selected) {
|
||||
this._updateTabsAfterInsert();
|
||||
@@ -3948,11 +4071,14 @@
|
||||
@@ -4155,11 +4278,14 @@
|
||||
if (ownerTab) {
|
||||
tab.owner = ownerTab;
|
||||
}
|
||||
@@ -419,7 +423,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (
|
||||
!bulkOrderedOpen &&
|
||||
((openerTab &&
|
||||
@@ -3964,7 +4090,7 @@
|
||||
@@ -4171,7 +4297,7 @@
|
||||
let lastRelatedTab =
|
||||
openerTab && this._lastRelatedTabMap.get(openerTab);
|
||||
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
|
||||
@@ -428,7 +432,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
tabGroup = previousTab.group;
|
||||
}
|
||||
if (
|
||||
@@ -3975,7 +4101,7 @@
|
||||
@@ -4182,7 +4308,7 @@
|
||||
) {
|
||||
elementIndex = Infinity;
|
||||
} else if (previousTab.visible) {
|
||||
@@ -437,7 +441,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||
elementIndex = 0;
|
||||
}
|
||||
@@ -4003,14 +4129,14 @@
|
||||
@@ -4210,14 +4336,14 @@
|
||||
}
|
||||
// Ensure index is within bounds.
|
||||
if (tab.pinned) {
|
||||
@@ -456,7 +460,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
if (pinned && !itemAfter?.pinned) {
|
||||
itemAfter = null;
|
||||
@@ -4021,7 +4147,7 @@
|
||||
@@ -4228,7 +4354,7 @@
|
||||
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
|
||||
@@ -465,7 +469,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||
// Place at the front of, or between tabs in, the same tab group
|
||||
this.tabContainer.insertBefore(tab, itemAfter);
|
||||
@@ -4057,6 +4183,7 @@
|
||||
@@ -4264,6 +4390,7 @@
|
||||
if (pinned) {
|
||||
this._updateTabBarForPinnedTabs();
|
||||
}
|
||||
@@ -473,7 +477,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -4346,6 +4473,9 @@
|
||||
@@ -4553,6 +4680,9 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -483,7 +487,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
||||
}
|
||||
|
||||
@@ -4607,6 +4737,7 @@
|
||||
@@ -4814,6 +4944,7 @@
|
||||
telemetrySource,
|
||||
} = {}
|
||||
) {
|
||||
@@ -491,7 +495,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||
// can be considered equivalent to closing the window.
|
||||
if (
|
||||
@@ -4696,6 +4827,7 @@
|
||||
@@ -4903,6 +5034,7 @@
|
||||
if (lastToClose) {
|
||||
this.removeTab(lastToClose, aParams);
|
||||
}
|
||||
@@ -499,7 +503,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
@@ -4734,6 +4866,12 @@
|
||||
@@ -4941,6 +5073,12 @@
|
||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||
}
|
||||
|
||||
@@ -512,7 +516,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// Handle requests for synchronously removing an already
|
||||
// asynchronously closing tab.
|
||||
if (!animate && aTab.closing) {
|
||||
@@ -4748,6 +4886,9 @@
|
||||
@@ -4955,6 +5093,9 @@
|
||||
// state).
|
||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||
let isLastTab = this.#isLastTabInWindow(aTab);
|
||||
@@ -522,7 +526,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (
|
||||
!this._beginRemoveTab(aTab, {
|
||||
closeWindowFastpath: true,
|
||||
@@ -4796,7 +4937,13 @@
|
||||
@@ -5003,7 +5144,13 @@
|
||||
// We're not animating, so we can cancel the animation stopwatch.
|
||||
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
|
||||
aTab._closeTimeAnimTimerId = null;
|
||||
@@ -537,7 +541,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4930,7 +5077,7 @@
|
||||
@@ -5137,7 +5284,7 @@
|
||||
closeWindowWithLastTab != null
|
||||
? closeWindowWithLastTab
|
||||
: !window.toolbar.visible ||
|
||||
@@ -546,7 +550,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
if (closeWindow) {
|
||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||
@@ -4954,6 +5101,7 @@
|
||||
@@ -5161,6 +5308,7 @@
|
||||
|
||||
newTab = true;
|
||||
}
|
||||
@@ -554,7 +558,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||
|
||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||
@@ -4994,13 +5142,7 @@
|
||||
@@ -5201,13 +5349,7 @@
|
||||
aTab._mouseleave();
|
||||
|
||||
if (newTab) {
|
||||
@@ -569,7 +573,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else {
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -5133,6 +5275,7 @@
|
||||
@@ -5340,6 +5482,7 @@
|
||||
this.tabs[i]._tPos = i;
|
||||
}
|
||||
|
||||
@@ -577,7 +581,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (!this._windowIsClosing) {
|
||||
// update tab close buttons state
|
||||
this.tabContainer._updateCloseButtons();
|
||||
@@ -5345,6 +5488,7 @@
|
||||
@@ -5552,6 +5695,7 @@
|
||||
}
|
||||
|
||||
let excludeTabs = new Set(aExcludeTabs);
|
||||
@@ -585,7 +589,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
|
||||
// If this tab has a successor, it should be selectable, since
|
||||
// hiding or closing a tab removes that tab as a successor.
|
||||
@@ -5357,13 +5501,13 @@
|
||||
@@ -5564,13 +5708,13 @@
|
||||
!excludeTabs.has(aTab.owner) &&
|
||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||
) {
|
||||
@@ -601,7 +605,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
);
|
||||
|
||||
let tab = this.tabContainer.findNextTab(aTab, {
|
||||
@@ -5379,7 +5523,7 @@
|
||||
@@ -5586,7 +5730,7 @@
|
||||
}
|
||||
|
||||
if (tab) {
|
||||
@@ -610,7 +614,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}
|
||||
|
||||
// If no qualifying visible tab was found, see if there is a tab in
|
||||
@@ -5400,7 +5544,7 @@
|
||||
@@ -5607,7 +5751,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
@@ -619,7 +623,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}
|
||||
|
||||
_blurTab(aTab) {
|
||||
@@ -5802,10 +5946,10 @@
|
||||
@@ -6013,10 +6157,10 @@
|
||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||
}
|
||||
|
||||
@@ -632,7 +636,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
aTab.selected ||
|
||||
aTab.closing ||
|
||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||
@@ -5864,6 +6008,7 @@
|
||||
@@ -6075,6 +6219,7 @@
|
||||
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
||||
*/
|
||||
replaceTabWithWindow(aTab, aOptions) {
|
||||
@@ -640,7 +644,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (this.tabs.length == 1) {
|
||||
return null;
|
||||
}
|
||||
@@ -5997,7 +6142,7 @@
|
||||
@@ -6208,7 +6353,7 @@
|
||||
* `true` if element is a `<tab-group>`
|
||||
*/
|
||||
isTabGroup(element) {
|
||||
@@ -649,7 +653,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -6073,8 +6218,8 @@
|
||||
@@ -6284,8 +6429,8 @@
|
||||
}
|
||||
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
@@ -660,7 +664,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else {
|
||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||
}
|
||||
@@ -6100,10 +6245,16 @@
|
||||
@@ -6311,10 +6456,16 @@
|
||||
this.#handleTabMove(
|
||||
element,
|
||||
() => {
|
||||
@@ -679,7 +683,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||
neighbor.after(element);
|
||||
} else {
|
||||
@@ -6161,23 +6312,28 @@
|
||||
@@ -6372,23 +6523,28 @@
|
||||
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
|
||||
if (this.isTabGroupLabel(targetElement)) {
|
||||
targetElement = targetElement.group;
|
||||
@@ -714,7 +718,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else if (!element.pinned && targetElement && targetElement.pinned) {
|
||||
// If the caller asks to move an unpinned element next to a pinned
|
||||
// tab, move the unpinned element to be the first unpinned element
|
||||
@@ -6190,14 +6346,34 @@
|
||||
@@ -6401,14 +6557,34 @@
|
||||
// move the tab group right before the first unpinned tab.
|
||||
// 4. Moving a tab group and the first unpinned tab is grouped:
|
||||
// move the tab group right before the first unpinned tab's tab group.
|
||||
@@ -750,7 +754,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
element.pinned
|
||||
? this.tabContainer.pinnedTabsContainer
|
||||
: this.tabContainer;
|
||||
@@ -6206,7 +6382,7 @@
|
||||
@@ -6417,7 +6593,7 @@
|
||||
element,
|
||||
() => {
|
||||
if (moveBefore) {
|
||||
@@ -759,7 +763,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
} else if (targetElement) {
|
||||
targetElement.after(element);
|
||||
} else {
|
||||
@@ -6252,10 +6428,10 @@
|
||||
@@ -6489,10 +6665,10 @@
|
||||
* @param {TabMetricsContext} [metricsContext]
|
||||
*/
|
||||
moveTabToGroup(aTab, aGroup, metricsContext) {
|
||||
@@ -772,7 +776,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
return;
|
||||
}
|
||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||
@@ -6285,6 +6461,7 @@
|
||||
@@ -6522,6 +6698,7 @@
|
||||
|
||||
let state = {
|
||||
tabIndex: tab._tPos,
|
||||
@@ -780,7 +784,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
};
|
||||
if (tab.visible) {
|
||||
state.elementIndex = tab.elementIndex;
|
||||
@@ -6311,7 +6488,7 @@
|
||||
@@ -6548,7 +6725,7 @@
|
||||
let changedTabGroup =
|
||||
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
||||
|
||||
@@ -789,7 +793,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
tab.dispatchEvent(
|
||||
new CustomEvent("TabMove", {
|
||||
bubbles: true,
|
||||
@@ -6348,6 +6525,10 @@
|
||||
@@ -6585,6 +6762,10 @@
|
||||
|
||||
moveActionCallback();
|
||||
|
||||
@@ -800,7 +804,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||
// changed.
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
@@ -7249,7 +7430,7 @@
|
||||
@@ -7486,7 +7667,7 @@
|
||||
// preventDefault(). It will still raise the window if appropriate.
|
||||
break;
|
||||
}
|
||||
@@ -809,7 +813,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
window.focus();
|
||||
aEvent.preventDefault();
|
||||
break;
|
||||
@@ -7264,7 +7445,6 @@
|
||||
@@ -7501,7 +7682,6 @@
|
||||
}
|
||||
case "TabGroupCollapse":
|
||||
aEvent.target.tabs.forEach(tab => {
|
||||
@@ -817,7 +821,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
});
|
||||
break;
|
||||
case "TabGroupCreateByUser":
|
||||
@@ -8199,6 +8379,7 @@
|
||||
@@ -8442,6 +8622,7 @@
|
||||
aWebProgress.isTopLevel
|
||||
) {
|
||||
this.mTab.setAttribute("busy", "true");
|
||||
@@ -825,7 +829,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||
}
|
||||
@@ -9200,7 +9381,7 @@ var TabContextMenu = {
|
||||
@@ -9443,7 +9624,7 @@ var TabContextMenu = {
|
||||
);
|
||||
contextUnpinSelectedTabs.hidden =
|
||||
!this.contextTab.pinned || !this.multiselected;
|
||||
@@ -834,7 +838,7 @@ index 3204f253c23551650991d3385dd256d55892a012..7c30015ac4591fdb97426521ae87b80e
|
||||
// Build Ask Chat items
|
||||
TabContextMenu.GenAI.buildTabMenu(
|
||||
document.getElementById("context_askChat"),
|
||||
@@ -9520,6 +9701,7 @@ var TabContextMenu = {
|
||||
@@ -9763,6 +9944,7 @@ var TabContextMenu = {
|
||||
)
|
||||
);
|
||||
} else {
|
||||
|
@@ -1,24 +1,23 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
||||
index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e8532174e2a7cf 100644
|
||||
index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b424098ba3e7b 100644
|
||||
--- a/browser/components/tabbrowser/content/tabgroup.js
|
||||
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
||||
@@ -13,10 +13,12 @@
|
||||
|
||||
@@ -14,11 +14,11 @@
|
||||
class MozTabbrowserTabGroup extends MozXULElement {
|
||||
static markup = `
|
||||
- <vbox class="tab-group-label-container" pack="center">
|
||||
+ <hbox class="tab-group-label-container" pack="center">
|
||||
<label class="tab-group-label" role="button"/>
|
||||
- </vbox>
|
||||
<vbox class="tab-group-label-container" pack="center">
|
||||
- <vbox class="tab-group-label-hover-highlight" pack="center">
|
||||
<label class="tab-group-label" role="button" />
|
||||
- </vbox>
|
||||
</vbox>
|
||||
- <html:slot/>
|
||||
+ </hbox>
|
||||
+ <html:div class="tab-group-container">
|
||||
+ <html:div class="zen-tab-group-start"/>
|
||||
+ </html:div>
|
||||
<vbox class="tab-group-overflow-count-container" pack="center">
|
||||
<label class="tab-group-overflow-count" role="button" />
|
||||
</vbox>
|
||||
@@ -57,20 +59,36 @@
|
||||
@@ -69,20 +69,36 @@
|
||||
}
|
||||
|
||||
connectedCallback() {
|
||||
@@ -59,10 +58,10 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
|
||||
this._initialized = true;
|
||||
this.saveOnWindowClose = true;
|
||||
@@ -99,11 +117,14 @@
|
||||
@@ -114,11 +130,14 @@
|
||||
|
||||
this.#labelElement.addEventListener("mouseover", this);
|
||||
this.#labelElement.addEventListener("mouseout", this);
|
||||
this.#labelContainerElement.addEventListener("mouseover", this);
|
||||
this.#labelContainerElement.addEventListener("mouseout", this);
|
||||
- this.#labelElement.addEventListener("contextmenu", e => {
|
||||
- e.preventDefault();
|
||||
- gBrowser.tabGroupMenu.openEditModal(this);
|
||||
@@ -79,7 +78,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
|
||||
this.#updateLabelAriaAttributes();
|
||||
this.#updateCollapsedAriaAttributes();
|
||||
@@ -129,6 +150,8 @@
|
||||
@@ -144,6 +163,8 @@
|
||||
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
||||
this.#wasCreatedByAdoption = false;
|
||||
}
|
||||
@@ -88,7 +87,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
|
||||
resetDefaultGroupName = () => {
|
||||
this.#defaultGroupName = "";
|
||||
@@ -213,7 +236,10 @@
|
||||
@@ -228,7 +249,10 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -100,7 +99,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
}
|
||||
|
||||
get color() {
|
||||
@@ -307,6 +333,9 @@
|
||||
@@ -322,6 +346,9 @@
|
||||
}
|
||||
|
||||
set collapsed(val) {
|
||||
@@ -110,7 +109,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
if (!!val == this.collapsed) {
|
||||
return;
|
||||
}
|
||||
@@ -364,7 +393,6 @@
|
||||
@@ -399,7 +426,6 @@
|
||||
tabGroupName,
|
||||
})
|
||||
.then(result => {
|
||||
@@ -118,7 +117,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
});
|
||||
}
|
||||
|
||||
@@ -383,7 +411,57 @@
|
||||
@@ -418,7 +444,57 @@
|
||||
* @returns {MozTabbrowserTab[]}
|
||||
*/
|
||||
get tabs() {
|
||||
@@ -177,7 +176,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -442,7 +520,6 @@
|
||||
@@ -498,7 +574,6 @@
|
||||
addTabs(tabs, metricsContext) {
|
||||
for (let tab of tabs) {
|
||||
if (tab.pinned) {
|
||||
@@ -185,7 +184,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
}
|
||||
let tabToMove =
|
||||
this.ownerGlobal === tab.ownerGlobal
|
||||
@@ -505,7 +582,7 @@
|
||||
@@ -561,7 +636,7 @@
|
||||
*/
|
||||
on_click(event) {
|
||||
let isToggleElement =
|
||||
@@ -194,7 +193,7 @@ index c0cb11590d6dfbcf6fa49ef5e10c6d3877191d1f..cd98bd2401e4618b003c184108e85321
|
||||
event.target === this.#overflowCountLabel;
|
||||
if (isToggleElement && event.button === 0) {
|
||||
event.preventDefault();
|
||||
@@ -570,5 +647,6 @@
|
||||
@@ -630,5 +705,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||
index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221fb51207c6 100644
|
||||
index 1425607ef87d6c28fb676e722617edfb51ba12a1..62431aa1c78c8327edf2c8c93472cb8b19b606e9 100644
|
||||
--- a/browser/components/tabbrowser/content/tabs.js
|
||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||
@@ -44,6 +44,9 @@
|
||||
@@ -12,7 +12,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
if (isTab(element)) {
|
||||
return element;
|
||||
}
|
||||
@@ -411,7 +414,7 @@
|
||||
@@ -423,7 +426,7 @@
|
||||
// and we're not hitting the scroll buttons.
|
||||
if (
|
||||
event.button != 0 ||
|
||||
@@ -21,7 +21,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
event.composedTarget.localName == "toolbarbutton"
|
||||
) {
|
||||
return;
|
||||
@@ -492,7 +495,6 @@
|
||||
@@ -504,7 +507,6 @@
|
||||
});
|
||||
}
|
||||
} else if (isTabGroupLabel(event.target)) {
|
||||
@@ -29,7 +29,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
} else if (
|
||||
event.originalTarget.closest("scrollbox") &&
|
||||
!Services.prefs.getBoolPref(
|
||||
@@ -528,6 +530,9 @@
|
||||
@@ -540,6 +542,9 @@
|
||||
}
|
||||
|
||||
on_keydown(event) {
|
||||
@@ -39,7 +39,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let { altKey, shiftKey } = event;
|
||||
let [accel, nonAccel] =
|
||||
AppConstants.platform == "macosx"
|
||||
@@ -765,7 +770,7 @@
|
||||
@@ -777,7 +782,7 @@
|
||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||
// Set this before adjusting dragged tab's position
|
||||
@@ -48,7 +48,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let tabsPerRow = 0;
|
||||
let position = RTL_UI
|
||||
? window.windowUtils.getBoundsWithoutFlushing(
|
||||
@@ -930,7 +935,7 @@
|
||||
@@ -942,7 +947,7 @@
|
||||
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||
let collapseTabGroupDuringDrag =
|
||||
@@ -57,7 +57,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
tab._dragData = {
|
||||
offsetX: this.verticalMode
|
||||
@@ -940,7 +945,7 @@
|
||||
@@ -952,7 +957,7 @@
|
||||
? event.screenY - window.screenY - tabOffset
|
||||
: event.screenY - window.screenY,
|
||||
scrollPos:
|
||||
@@ -66,7 +66,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
? this.pinnedTabsContainer.scrollPosition
|
||||
: this.arrowScrollbox.scrollPosition,
|
||||
screenX: event.screenX,
|
||||
@@ -969,6 +974,7 @@
|
||||
@@ -981,6 +986,7 @@
|
||||
|
||||
if (collapseTabGroupDuringDrag) {
|
||||
tab.group.collapsed = true;
|
||||
@@ -74,7 +74,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1015,6 +1021,10 @@
|
||||
@@ -1027,6 +1033,10 @@
|
||||
}
|
||||
|
||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||
@@ -85,7 +85,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
if (
|
||||
(dropEffect == "move" || dropEffect == "copy") &&
|
||||
document == draggedTab.ownerDocument &&
|
||||
@@ -1196,6 +1206,18 @@
|
||||
@@ -1208,6 +1218,18 @@
|
||||
|
||||
this._tabDropIndicator.hidden = true;
|
||||
event.stopPropagation();
|
||||
@@ -104,7 +104,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
if (draggedTab && dropEffect == "copy") {
|
||||
let duplicatedDraggedTab;
|
||||
let duplicatedTabs = [];
|
||||
@@ -1220,8 +1242,9 @@
|
||||
@@ -1232,8 +1254,9 @@
|
||||
let translateOffsetY = oldTranslateY % tabHeight;
|
||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||
@@ -116,7 +116,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||
// Update both translate axis for pinned vertical expanded tabs
|
||||
@@ -1237,8 +1260,8 @@
|
||||
@@ -1249,8 +1272,8 @@
|
||||
}
|
||||
} else {
|
||||
let tabs = this.ariaFocusableItems.slice(
|
||||
@@ -127,7 +127,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
);
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
@@ -1287,11 +1310,13 @@
|
||||
@@ -1299,11 +1322,13 @@
|
||||
this.dragToPinPromoCard,
|
||||
];
|
||||
let shouldPin =
|
||||
@@ -141,7 +141,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
isTab(draggedTab) &&
|
||||
draggedTab.pinned &&
|
||||
this.arrowScrollbox.contains(event.target);
|
||||
@@ -1309,6 +1334,7 @@
|
||||
@@ -1321,6 +1346,7 @@
|
||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||
} else if (this.verticalMode) {
|
||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||
@@ -149,7 +149,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
} else {
|
||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||
}
|
||||
@@ -1503,6 +1529,7 @@
|
||||
@@ -1515,6 +1541,7 @@
|
||||
|
||||
let nextItem = this.ariaFocusableItems[newIndex];
|
||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||
@@ -157,7 +157,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
gBrowser.loadTabs(urls, {
|
||||
inBackground,
|
||||
replace,
|
||||
@@ -1541,6 +1568,17 @@
|
||||
@@ -1553,6 +1580,17 @@
|
||||
}
|
||||
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||
|
||||
@@ -175,7 +175,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
if (
|
||||
dt.mozUserCancelled ||
|
||||
dt.dropEffect != "none" ||
|
||||
@@ -1707,7 +1745,6 @@
|
||||
@@ -1719,7 +1757,6 @@
|
||||
|
||||
this.toggleAttribute("overflow", true);
|
||||
this._updateCloseButtons();
|
||||
@@ -183,7 +183,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
document
|
||||
.getElementById("tab-preview-panel")
|
||||
@@ -1765,7 +1802,7 @@
|
||||
@@ -1777,7 +1814,7 @@
|
||||
}
|
||||
|
||||
get newTabButton() {
|
||||
@@ -192,7 +192,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
|
||||
get verticalMode() {
|
||||
@@ -1781,6 +1818,7 @@
|
||||
@@ -1793,6 +1830,7 @@
|
||||
}
|
||||
|
||||
get overflowing() {
|
||||
@@ -200,28 +200,25 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
return this.hasAttribute("overflow");
|
||||
}
|
||||
|
||||
@@ -1789,31 +1827,51 @@
|
||||
if (this.#allTabs) {
|
||||
return this.#allTabs;
|
||||
@@ -1806,29 +1844,54 @@
|
||||
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
||||
pinnedChildren.pop();
|
||||
}
|
||||
- // Remove temporary periphery element added at drag start.
|
||||
- let pinnedChildren = Array.from(this.pinnedTabsContainer.children);
|
||||
- if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
||||
- pinnedChildren.pop();
|
||||
- }
|
||||
- let unpinnedChildren = Array.from(this.arrowScrollbox.children);
|
||||
- // remove arrowScrollbox periphery element.
|
||||
- unpinnedChildren.pop();
|
||||
-
|
||||
+ let children = gZenWorkspaces.tabboxChildren;
|
||||
+ children.pop();
|
||||
// explode tab groups
|
||||
+ let unpinnedChildren = gZenWorkspaces.tabboxChildren;
|
||||
// remove arrowScrollbox periphery element.
|
||||
unpinnedChildren.pop();
|
||||
|
||||
// explode tab groups and split view wrappers
|
||||
// Iterate backwards over the array to preserve indices while we modify
|
||||
// things in place
|
||||
- for (let i = unpinnedChildren.length - 1; i >= 0; i--) {
|
||||
- if (unpinnedChildren[i].tagName == "tab-group") {
|
||||
- if (
|
||||
- unpinnedChildren[i].tagName == "tab-group" ||
|
||||
- unpinnedChildren[i].tagName == "tab-split-view-wrapper"
|
||||
- ) {
|
||||
- unpinnedChildren.splice(i, 1, ...unpinnedChildren[i].tabs);
|
||||
+ const pinnedTabs = [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...this.pinnedTabsContainer.children];
|
||||
+ const pinnedTabs = [...gZenWorkspaces.getCurrentEssentialsContainer().children, ...pinnedChildren];
|
||||
+ const expandTabs = (tabs) => {
|
||||
+ for (let i = tabs.length - 1; i >= 0; i--) {
|
||||
+ const tab = tabs[i];
|
||||
@@ -231,15 +228,13 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
+ // add the tabs in the group to the list
|
||||
+ tabs.splice(i, 0, ...tab.tabs);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
-
|
||||
- this.#allTabs = [...pinnedChildren, ...unpinnedChildren];
|
||||
+ }
|
||||
+ };
|
||||
+ expandTabs(pinnedTabs);
|
||||
+ expandTabs(children);
|
||||
+ expandTabs(unpinnedChildren);
|
||||
+ const allTabs = [
|
||||
+ ...pinnedTabs,
|
||||
+ ...children,
|
||||
+ ...unpinnedChildren,
|
||||
+ ];
|
||||
+ const lastPinnedTabIdx = pinnedTabs.length - 1;
|
||||
+ let i = 0;
|
||||
@@ -254,21 +249,23 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
+ // remove the separator from the list
|
||||
+ allTabs.splice(i, 1);
|
||||
+ i--;
|
||||
+ }
|
||||
}
|
||||
+ i++;
|
||||
+ }
|
||||
}
|
||||
-
|
||||
- this.#allTabs = [...pinnedChildren, ...unpinnedChildren];
|
||||
+ this.#allTabs = allTabs;
|
||||
return this.#allTabs;
|
||||
}
|
||||
|
||||
get allGroups() {
|
||||
- let children = Array.from(this.arrowScrollbox.children);
|
||||
let children = Array.from(this.arrowScrollbox.children);
|
||||
- return children.filter(node => node.tagName == "tab-group");
|
||||
+ return gZenWorkspaces.allTabGroups;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1880,29 +1938,23 @@
|
||||
@@ -1895,29 +1958,23 @@
|
||||
|
||||
let elementIndex = 0;
|
||||
|
||||
@@ -307,7 +304,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1914,6 +1966,7 @@
|
||||
@@ -1929,6 +1986,7 @@
|
||||
_invalidateCachedTabs() {
|
||||
this.#allTabs = null;
|
||||
this._invalidateCachedVisibleTabs();
|
||||
@@ -315,7 +312,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
|
||||
_invalidateCachedVisibleTabs() {
|
||||
@@ -1929,8 +1982,8 @@
|
||||
@@ -1944,8 +2002,8 @@
|
||||
#isContainerVerticalPinnedGrid(tab) {
|
||||
return (
|
||||
this.verticalMode &&
|
||||
@@ -326,7 +323,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
!this.expandOnHover
|
||||
);
|
||||
}
|
||||
@@ -1946,7 +1999,7 @@
|
||||
@@ -1961,7 +2019,7 @@
|
||||
|
||||
if (node == null) {
|
||||
// We have a container for non-tab elements at the end of the scrollbox.
|
||||
@@ -335,7 +332,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
|
||||
node.before(tab);
|
||||
@@ -2041,7 +2094,7 @@
|
||||
@@ -2056,7 +2114,7 @@
|
||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||
// Attach the long click popup to all of them.
|
||||
@@ -344,7 +341,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
const newTab2 = this.newTabButton;
|
||||
const newTabVertical = document.getElementById(
|
||||
"vertical-tabs-newtab-button"
|
||||
@@ -2139,8 +2192,10 @@
|
||||
@@ -2156,8 +2214,10 @@
|
||||
*/
|
||||
_handleTabSelect(aInstant) {
|
||||
let selectedTab = this.selectedItem;
|
||||
@@ -355,7 +352,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
selectedTab._notselectedsinceload = false;
|
||||
}
|
||||
|
||||
@@ -2149,7 +2204,7 @@
|
||||
@@ -2166,7 +2226,7 @@
|
||||
* @param {boolean} [shouldScrollInstantly=false]
|
||||
*/
|
||||
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
||||
@@ -364,7 +361,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
if (arrowScrollbox?.overflowing) {
|
||||
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
||||
}
|
||||
@@ -2288,6 +2343,16 @@
|
||||
@@ -2305,6 +2365,16 @@
|
||||
when the tab is first selected to be dragged.
|
||||
*/
|
||||
#updateTabStylesOnDrag(tab) {
|
||||
@@ -381,7 +378,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let isPinned = tab.pinned;
|
||||
let numPinned = gBrowser.pinnedTabCount;
|
||||
let allTabs = this.ariaFocusableItems;
|
||||
@@ -2540,7 +2605,7 @@
|
||||
@@ -2578,7 +2648,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -390,7 +387,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
let directionX = screenX > dragData.animLastScreenX;
|
||||
let directionY = screenY > dragData.animLastScreenY;
|
||||
@@ -2549,6 +2614,8 @@
|
||||
@@ -2587,6 +2657,8 @@
|
||||
|
||||
let { width: tabWidth, height: tabHeight } =
|
||||
draggedTab.getBoundingClientRect();
|
||||
@@ -399,7 +396,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let shiftSizeX = tabWidth * movingTabs.length;
|
||||
let shiftSizeY = tabHeight;
|
||||
dragData.tabWidth = tabWidth;
|
||||
@@ -2585,8 +2652,8 @@
|
||||
@@ -2623,8 +2695,8 @@
|
||||
let lastBoundX =
|
||||
lastTabInRow.screenX +
|
||||
lastTabInRow.getBoundingClientRect().width -
|
||||
@@ -410,7 +407,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||
|
||||
@@ -2744,13 +2811,18 @@
|
||||
@@ -2782,13 +2854,18 @@
|
||||
this.#clearDragOverGroupingTimer();
|
||||
this.#clearPinnedDropIndicatorTimer();
|
||||
|
||||
@@ -433,7 +430,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
if (this.#rtlMode) {
|
||||
tabs.reverse();
|
||||
@@ -2761,7 +2833,7 @@
|
||||
@@ -2799,7 +2876,7 @@
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||
@@ -442,7 +439,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let tabSize = this.verticalMode ? tabHeight : tabWidth;
|
||||
let translateX = event.screenX - dragData.screenX;
|
||||
let translateY = event.screenY - dragData.screenY;
|
||||
@@ -2777,6 +2849,12 @@
|
||||
@@ -2815,6 +2892,12 @@
|
||||
);
|
||||
let lastMovingTab = movingTabs.at(-1);
|
||||
let firstMovingTab = movingTabs[0];
|
||||
@@ -455,7 +452,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||
@@ -2791,6 +2869,11 @@
|
||||
@@ -2829,6 +2912,11 @@
|
||||
let endBound = this.#rtlMode
|
||||
? endEdge(this) - lastMovingTabScreen
|
||||
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
||||
@@ -467,7 +464,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
translate = Math.min(Math.max(translate, startBound), endBound);
|
||||
|
||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
||||
@@ -2980,6 +3063,8 @@
|
||||
@@ -3018,6 +3106,8 @@
|
||||
};
|
||||
|
||||
let dropElement = getOverlappedElement();
|
||||
@@ -476,7 +473,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
let newDropElementIndex;
|
||||
if (dropElement) {
|
||||
@@ -3061,7 +3146,7 @@
|
||||
@@ -3099,7 +3189,7 @@
|
||||
? Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||
) / 100
|
||||
@@ -485,7 +482,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||
if (logicalForward && shouldMoveOver) {
|
||||
@@ -3094,6 +3179,7 @@
|
||||
@@ -3132,6 +3222,7 @@
|
||||
// If dragging a group over another group, don't make it look like it is
|
||||
// possible to drop the dragged group inside the other group.
|
||||
if (
|
||||
@@ -493,7 +490,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
isTabGroupLabel(draggedTab) &&
|
||||
dropElement?.group &&
|
||||
(!dropElement.group.collapsed ||
|
||||
@@ -3120,20 +3206,13 @@
|
||||
@@ -3158,20 +3249,13 @@
|
||||
let isOutOfBounds = isPinned
|
||||
? dropElement.elementIndex >= numPinned
|
||||
: dropElement.elementIndex < numPinned;
|
||||
@@ -518,7 +515,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
let groupingDelay = Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.createGroup.delayMS"
|
||||
);
|
||||
@@ -3141,6 +3220,7 @@
|
||||
@@ -3179,6 +3263,7 @@
|
||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||
// that dropping the tab(s) will create a new tab group.
|
||||
let shouldCreateGroupOnDrop =
|
||||
@@ -526,7 +523,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
!movingTabsSet.has(dropElement) &&
|
||||
isTab(dropElement) &&
|
||||
!dropElement?.group &&
|
||||
@@ -3149,6 +3229,7 @@
|
||||
@@ -3187,6 +3272,7 @@
|
||||
// When dragging tab(s) over a collapsed tab group label, signal to the
|
||||
// user that dropping the tab(s) will add them to the group.
|
||||
let shouldDropIntoCollapsedTabGroup =
|
||||
@@ -534,7 +531,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
isTabGroupLabel(dropElement) &&
|
||||
dropElement.group.collapsed &&
|
||||
overlapPercent > dragOverGroupingThreshold;
|
||||
@@ -3193,19 +3274,14 @@
|
||||
@@ -3231,19 +3317,14 @@
|
||||
dropElement = dropElementGroup;
|
||||
colorCode = undefined;
|
||||
} else if (isTabGroupLabel(dropElement)) {
|
||||
@@ -562,7 +559,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
this.#setDragOverGroupColor(colorCode);
|
||||
this.toggleAttribute("movingtab-addToGroup", colorCode);
|
||||
@@ -3224,11 +3300,11 @@
|
||||
@@ -3262,11 +3343,11 @@
|
||||
dragData.dropElement = dropElement;
|
||||
dragData.dropBefore = dropBefore;
|
||||
dragData.animDropElementIndex = newDropElementIndex;
|
||||
@@ -576,7 +573,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -3350,12 +3426,14 @@
|
||||
@@ -3388,12 +3469,14 @@
|
||||
element?.removeAttribute("dragover-groupTarget");
|
||||
}
|
||||
|
||||
@@ -593,7 +590,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
|
||||
for (let item of this.ariaFocusableItems) {
|
||||
this.#resetGroupTarget(item);
|
||||
@@ -3402,16 +3480,15 @@
|
||||
@@ -3440,7 +3523,7 @@
|
||||
tab.style.left = "";
|
||||
tab.style.top = "";
|
||||
tab.style.maxWidth = "";
|
||||
@@ -602,17 +599,16 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
}
|
||||
for (let label of draggedTabDocument.getElementsByClassName(
|
||||
"tab-group-label-container"
|
||||
)) {
|
||||
label.style.width = "";
|
||||
- label.style.height = "";
|
||||
@@ -3450,7 +3533,7 @@
|
||||
label.style.left = "";
|
||||
label.style.top = "";
|
||||
label.style.maxWidth = "";
|
||||
- label.removeAttribute("dragtarget");
|
||||
+ label.removeAttribute("zen-dragtarget");
|
||||
}
|
||||
let periphery = draggedTabDocument.getElementById(
|
||||
"tabbrowser-arrowscrollbox-periphery"
|
||||
@@ -3483,7 +3560,7 @@
|
||||
@@ -3522,7 +3605,7 @@
|
||||
let postTransitionCleanup = () => {
|
||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||
};
|
||||
@@ -621,7 +617,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -3647,7 +3724,7 @@
|
||||
@@ -3686,7 +3769,7 @@
|
||||
}
|
||||
|
||||
_notifyBackgroundTab(aTab) {
|
||||
@@ -630,7 +626,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3756,7 +3833,10 @@
|
||||
@@ -3795,7 +3878,10 @@
|
||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||
let { target } = event;
|
||||
while (target) {
|
||||
@@ -642,7 +638,7 @@ index b2d54218ca51f86d4591730054d0e7e1138adb94..d2c1f7f5b68ecc531c4e9e597457221f
|
||||
break;
|
||||
}
|
||||
target = target.parentNode;
|
||||
@@ -3773,6 +3853,9 @@
|
||||
@@ -3812,6 +3898,9 @@
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
index 36e3ab4a5a153230bb488b66dda7e3e7c763ca23..cc4ea61914a316451fa54b01a5c8c6a305e4038a 100644
|
||||
index a1faf7e4278c66865f267283515f22052769928d..d76d19da5a3d4b9739faf3a673bb3ad693765ada 100644
|
||||
--- a/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
@@ -434,6 +434,8 @@ export class UrlbarController {
|
||||
@@ -441,6 +441,8 @@ export class UrlbarController {
|
||||
});
|
||||
}
|
||||
event.preventDefault();
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079774eed27 100644
|
||||
index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..3aafb612152af88d570c7d7046ca3bd0ce222c46 100644
|
||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
@@ -74,6 +74,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||
@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||
|
||||
const UNLIMITED_MAX_RESULTS = 99;
|
||||
@@ -355,7 +362,16 @@ export class UrlbarInput {
|
||||
@@ -437,7 +444,16 @@ export class UrlbarInput {
|
||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
||||
// event but does not set the primary selection.
|
||||
this._suppressPrimaryAdjustment = true;
|
||||
@@ -33,7 +33,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
this._suppressPrimaryAdjustment = false;
|
||||
}
|
||||
|
||||
@@ -431,6 +447,10 @@ export class UrlbarInput {
|
||||
@@ -513,6 +529,10 @@ export class UrlbarInput {
|
||||
hideSearchTerms = false,
|
||||
isSameDocument = false
|
||||
) {
|
||||
@@ -41,10 +41,10 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
// We only need to update the searchModeUI on tab switch conditionally
|
||||
// as we only persist searchMode with ScotchBonnet enabled.
|
||||
if (
|
||||
@@ -703,8 +723,16 @@ export class UrlbarInput {
|
||||
if (!this.isAddressbar) {
|
||||
throw new Error(
|
||||
"Cannot set URI for UrlbarInput that is not an address bar"
|
||||
@@ -790,8 +810,16 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1116,7 +1144,11 @@ export class UrlbarInput {
|
||||
@@ -1207,7 +1235,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
if (!this.#providesSearchMode(result)) {
|
||||
@@ -75,11 +75,25 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
}
|
||||
|
||||
if (isCanonized) {
|
||||
@@ -2205,6 +2237,12 @@ export class UrlbarInput {
|
||||
@@ -2298,6 +2330,13 @@ export class UrlbarInput {
|
||||
await this.#updateLayoutBreakoutDimensions();
|
||||
}
|
||||
|
||||
+ get zenUrlbarBehavior() {
|
||||
+ if (this.document.documentElement.hasAttribute("inDOMFullscreen")) {
|
||||
+ return "float";
|
||||
+ }
|
||||
+ return lazy.ZEN_URLBAR_BEHAVIOR;
|
||||
+ }
|
||||
+
|
||||
startLayoutExtend() {
|
||||
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
||||
// Do not expand if the Urlbar does not support being expanded or it is
|
||||
@@ -2312,6 +2351,12 @@ export class UrlbarInput {
|
||||
|
||||
this.setAttribute("breakout-extend", "true");
|
||||
|
||||
+ if (lazy.ZEN_URLBAR_BEHAVIOR == 'float' || (lazy.ZEN_URLBAR_BEHAVIOR == 'floating-on-type' && !this.focusedViaMousedown)) {
|
||||
+ if (this.zenUrlbarBehavior == 'float' || (this.zenUrlbarBehavior == 'floating-on-type' && !this.focusedViaMousedown)) {
|
||||
+ this.setAttribute("zen-floating-urlbar", "true");
|
||||
+ this.window.gZenUIManager.onFloatingURLBarOpen();
|
||||
+ } else {
|
||||
@@ -88,7 +102,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
// Enable the animation only after the first extend call to ensure it
|
||||
// doesn't run when opening a new window.
|
||||
if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
@@ -2224,6 +2262,24 @@ export class UrlbarInput {
|
||||
@@ -2331,6 +2376,24 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -113,7 +127,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
this.removeAttribute("breakout-extend");
|
||||
this.#updateTextboxPosition();
|
||||
}
|
||||
@@ -2553,7 +2609,7 @@ export class UrlbarInput {
|
||||
@@ -2660,7 +2723,7 @@ export class UrlbarInput {
|
||||
|
||||
this.textbox.parentNode.style.setProperty(
|
||||
"--urlbar-container-height",
|
||||
@@ -122,7 +136,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
);
|
||||
this.textbox.style.setProperty(
|
||||
"--urlbar-height",
|
||||
@@ -2986,6 +3042,7 @@ export class UrlbarInput {
|
||||
@@ -3093,6 +3156,7 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_toggleActionOverride(event) {
|
||||
@@ -130,24 +144,24 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
if (
|
||||
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
|
||||
event.keyCode == KeyEvent.DOM_VK_ALT ||
|
||||
@@ -3087,7 +3144,7 @@ export class UrlbarInput {
|
||||
*/
|
||||
_trimValue(val) {
|
||||
@@ -3197,7 +3261,7 @@ export class UrlbarInput {
|
||||
return val;
|
||||
}
|
||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||
- ? lazy.BrowserUIUtils.trimURL(val)
|
||||
+ ? this._zenTrimURL(val)
|
||||
: val;
|
||||
// Only trim value if the directionality doesn't change to RTL and we're not
|
||||
// showing a strikeout https protocol.
|
||||
@@ -3303,6 +3360,7 @@ export class UrlbarInput {
|
||||
resultDetails = null,
|
||||
browser = this.window.gBrowser.selectedBrowser
|
||||
) {
|
||||
@@ -3407,6 +3471,7 @@ export class UrlbarInput {
|
||||
);
|
||||
}
|
||||
|
||||
+ openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere);
|
||||
// No point in setting these because we'll handleRevert() a few rows below.
|
||||
if (openUILinkWhere == "current") {
|
||||
// Make sure URL is formatted properly (don't show punycode).
|
||||
@@ -3455,6 +3513,10 @@ export class UrlbarInput {
|
||||
@@ -3608,6 +3673,10 @@ export class UrlbarInput {
|
||||
}
|
||||
reuseEmpty = true;
|
||||
}
|
||||
@@ -158,7 +172,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
if (
|
||||
where == "tab" &&
|
||||
reuseEmpty &&
|
||||
@@ -3462,6 +3524,9 @@ export class UrlbarInput {
|
||||
@@ -3615,6 +3684,9 @@ export class UrlbarInput {
|
||||
) {
|
||||
where = "current";
|
||||
}
|
||||
@@ -168,7 +182,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
return where;
|
||||
}
|
||||
|
||||
@@ -3719,6 +3784,7 @@ export class UrlbarInput {
|
||||
@@ -3872,6 +3944,7 @@ export class UrlbarInput {
|
||||
this.setResultForCurrentValue(null);
|
||||
this.handleCommand();
|
||||
this.controller.clearLastQueryContextCache();
|
||||
@@ -176,7 +190,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
|
||||
this._suppressStartQuery = false;
|
||||
});
|
||||
@@ -3726,7 +3792,6 @@ export class UrlbarInput {
|
||||
@@ -3879,7 +3952,6 @@ export class UrlbarInput {
|
||||
contextMenu.addEventListener("popupshowing", () => {
|
||||
// Close the results pane when the input field contextual menu is open,
|
||||
// because paste and go doesn't want a result selection.
|
||||
@@ -184,7 +198,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
|
||||
let controller =
|
||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||
@@ -3836,7 +3901,11 @@ export class UrlbarInput {
|
||||
@@ -3991,7 +4063,11 @@ export class UrlbarInput {
|
||||
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
||||
return;
|
||||
}
|
||||
@@ -194,10 +208,10 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
+ detail: { searchMode },
|
||||
+ })
|
||||
+ );
|
||||
this._searchModeIndicatorTitle.textContent = "";
|
||||
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
||||
|
||||
@@ -4130,6 +4199,7 @@ export class UrlbarInput {
|
||||
if (this._searchModeIndicatorTitle) {
|
||||
this._searchModeIndicatorTitle.textContent = "";
|
||||
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
||||
@@ -4302,6 +4378,7 @@ export class UrlbarInput {
|
||||
|
||||
this.document.l10n.setAttributes(
|
||||
this.inputField,
|
||||
@@ -205,7 +219,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
l10nId,
|
||||
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
||||
);
|
||||
@@ -4241,6 +4311,11 @@ export class UrlbarInput {
|
||||
@@ -4413,6 +4490,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_click(event) {
|
||||
@@ -217,7 +231,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
if (
|
||||
event.target == this.inputField ||
|
||||
event.target == this._inputContainer
|
||||
@@ -4311,7 +4386,7 @@ export class UrlbarInput {
|
||||
@@ -4485,7 +4567,7 @@ export class UrlbarInput {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -226,7 +240,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
this.view.autoOpen({ event });
|
||||
} else {
|
||||
if (this._untrimOnFocusAfterKeydown) {
|
||||
@@ -4351,9 +4426,16 @@ export class UrlbarInput {
|
||||
@@ -4525,9 +4607,16 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_mousedown(event) {
|
||||
@@ -235,16 +249,16 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
case this.textbox: {
|
||||
this._mousedownOnUrlbarDescendant = true;
|
||||
+ const isProbablyFloating =
|
||||
+ (lazy.ZEN_URLBAR_BEHAVIOR == "floating-on-type" &&
|
||||
+ (this.zenUrlbarBehavior == "floating-on-type" &&
|
||||
+ this.hasAttribute("breakout-extend") && !this.focusedViaMousedown) ||
|
||||
+ (lazy.ZEN_URLBAR_BEHAVIOR == "float") || this.window.gZenVerticalTabsManager._hasSetSingleToolbar;
|
||||
+ (this.zenUrlbarBehavior == "float") || this.window.gZenVerticalTabsManager._hasSetSingleToolbar;
|
||||
+ if (event.type != "click" && isProbablyFloating || event.type == "click" && !isProbablyFloating) {
|
||||
+ return true;
|
||||
+ }
|
||||
|
||||
if (
|
||||
event.target != this.inputField &&
|
||||
@@ -4364,6 +4446,10 @@ export class UrlbarInput {
|
||||
@@ -4538,6 +4627,10 @@ export class UrlbarInput {
|
||||
|
||||
this.focusedViaMousedown = !this.focused;
|
||||
this._preventClickSelectsAll = this.focused;
|
||||
@@ -255,7 +269,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
|
||||
// Keep the focus status, since the attribute may be changed
|
||||
// upon calling this.focus().
|
||||
@@ -4399,7 +4485,7 @@ export class UrlbarInput {
|
||||
@@ -4573,7 +4666,7 @@ export class UrlbarInput {
|
||||
}
|
||||
// Don't close the view when clicking on a tab; we may want to keep the
|
||||
// view open on tab switch, and the TabSelect event arrived earlier.
|
||||
@@ -264,7 +278,7 @@ index 1c447bd31de854d1522dbcfb5d7ad557c84f1388..1dc520f63b240cccda7be074346d2079
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4716,7 +4802,7 @@ export class UrlbarInput {
|
||||
@@ -4890,7 +4983,7 @@ export class UrlbarInput {
|
||||
// When we are in actions search mode we can show more results so
|
||||
// increase the limit.
|
||||
let maxResults =
|
||||
|
@@ -1,16 +1,16 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
index cdc476a3eb2ee2cb6193d215513b65ed375f6153..bc66d9651e521bda75a3bb9e7f1e4b3bb325be90 100644
|
||||
index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126c1d32b04 100644
|
||||
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
@@ -855,6 +855,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
@@ -852,6 +852,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
}
|
||||
|
||||
if (result.providerName == lazy.UrlbarProviderTabToSearch.name) {
|
||||
if (result.providerName == "UrlbarProviderTabToSearch") {
|
||||
+ return false;
|
||||
// Discard the result if a tab-to-search result was added already.
|
||||
if (!state.canAddTabToSearch) {
|
||||
return false;
|
||||
@@ -1501,7 +1502,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
@@ -1498,7 +1499,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
usedLimits.maxResultCount++;
|
||||
}
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
index 3c179db3b310c43f8c6c06b1ecbcf5ed59feefe6..d9d2ce116ebcee8d403e165066c3a569bb952cd2 100644
|
||||
index 46ad55519aecd6c14034a9faa91c7ad8e5c1c422..e8d9c06499a2b273483edd21faf902c936462b59 100644
|
||||
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
@@ -719,6 +719,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||
*/
|
||||
let rootGroup = {
|
||||
children: [
|
||||
|
@@ -1,13 +1,13 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
index ad971f090bdaba2865cf1fac2840b1f553d2630c..a9e676e43d35b617eebd5a67c8653397b7c0c6bf 100644
|
||||
index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e16ea53ed 100644
|
||||
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
@@ -40,11 +40,13 @@ function defaultQuery(conditions = "") {
|
||||
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
||||
let query = `
|
||||
SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count,
|
||||
${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId,
|
||||
- h.last_visit_date, t.groupId
|
||||
+ h.last_visit_date, t.groupId, zp.url AS pinned_url, zp.title AS pinned_title
|
||||
- h.last_visit_date, NULLIF(t.groupId, '') groupId
|
||||
+ h.last_visit_date, NULLIF(t.groupId, '') groupId, zp.url AS pinned_url, zp.title AS pinned_title
|
||||
FROM moz_places h
|
||||
LEFT JOIN moz_openpages_temp t
|
||||
ON t.url = h.url
|
||||
@@ -17,7 +17,7 @@ index ad971f090bdaba2865cf1fac2840b1f553d2630c..a9e676e43d35b617eebd5a67c8653397
|
||||
WHERE (
|
||||
(:switchTabsEnabled AND t.open_count > 0) OR
|
||||
${lazy.PAGES_FRECENCY_FIELD} <> 0
|
||||
@@ -58,7 +60,7 @@ function defaultQuery(conditions = "") {
|
||||
@@ -62,7 +64,7 @@ function defaultQuery(conditions = "") {
|
||||
:matchBehavior, :searchBehavior, NULL)
|
||||
ELSE
|
||||
AUTOCOMPLETE_MATCH(:searchString, h.url,
|
||||
@@ -26,7 +26,7 @@ index ad971f090bdaba2865cf1fac2840b1f553d2630c..a9e676e43d35b617eebd5a67c8653397
|
||||
h.visit_count, h.typed,
|
||||
0, t.open_count,
|
||||
:matchBehavior, :searchBehavior, NULL)
|
||||
@@ -1116,11 +1118,13 @@ Search.prototype = {
|
||||
@@ -1120,11 +1122,13 @@ Search.prototype = {
|
||||
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
||||
: undefined;
|
||||
let tabGroup = row.getResultByName("groupId");
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
index 555273f6ea1efd77aa3062b9910bbfe28568775d..5c4a46c926913ab592f5e12908b8817410abe6b6 100644
|
||||
index ece407214669009e263b507b5236ab28da33efe9..8f22426295e2b001438918f44d2c22ed7a697c2f 100644
|
||||
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
@@ -716,6 +716,7 @@ export class Query {
|
||||
@@ -845,6 +845,7 @@ export class Query {
|
||||
if (
|
||||
result.heuristic &&
|
||||
this.context.searchMode &&
|
||||
|
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
index 0bc15c02f56dd8f46a21fed02b4e21a741f27f41..40da868f68f21d8411107fb8a95e2d0b74337b51 100644
|
||||
index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13dc8e61fbc 100644
|
||||
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
@@ -75,6 +75,7 @@ export var UrlbarUtils = {
|
||||
@@ -74,6 +74,7 @@ export var UrlbarUtils = {
|
||||
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
||||
SUGGESTED_INDEX: "suggestedIndex",
|
||||
TAIL_SUGGESTION: "tailSuggestion",
|
||||
@@ -10,7 +10,7 @@ index 0bc15c02f56dd8f46a21fed02b4e21a741f27f41..40da868f68f21d8411107fb8a95e2d0b
|
||||
}),
|
||||
|
||||
// Defines provider types.
|
||||
@@ -134,6 +135,7 @@ export var UrlbarUtils = {
|
||||
@@ -133,6 +134,7 @@ export var UrlbarUtils = {
|
||||
OTHER_NETWORK: 6,
|
||||
ADDON: 7,
|
||||
ACTIONS: 8,
|
||||
@@ -18,12 +18,12 @@ index 0bc15c02f56dd8f46a21fed02b4e21a741f27f41..40da868f68f21d8411107fb8a95e2d0b
|
||||
}),
|
||||
|
||||
// Per-result exposure telemetry.
|
||||
@@ -553,6 +555,8 @@ export var UrlbarUtils = {
|
||||
return this.RESULT_GROUP.HEURISTIC_SEARCH_TIP;
|
||||
case "HistoryUrlHeuristic":
|
||||
@@ -544,6 +546,8 @@ export var UrlbarUtils = {
|
||||
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
||||
case "UrlbarProviderHistoryUrlHeuristic":
|
||||
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
||||
+ case "ZenUrlbarProviderGlobalActions":
|
||||
+ return this.RESULT_GROUP.ZEN_ACTION;
|
||||
default:
|
||||
if (result.providerName.startsWith("TestProvider")) {
|
||||
return this.RESULT_GROUP.HEURISTIC_TEST;
|
||||
case "UrlbarProviderOmnibox":
|
||||
return this.RESULT_GROUP.HEURISTIC_OMNIBOX;
|
||||
case "UrlbarProviderRestrictKeywordsAutofill":
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user