Compare commits

..

27 Commits

Author SHA1 Message Date
Mr. M
0d3be81421 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-10-08 18:44:40 +02:00
Mr. M
1b8e492f63 feat: Added protection toggle for the site data panel, b=no-bug, c=common 2025-10-08 18:44:37 +02:00
Aryan Rawlani
4bfb815297 feat: settings -> shortcuts: show conflicting shortcut label, p=#10735 2025-10-08 17:41:25 +02:00
Mr. M
cc502f6c95 fix: Fixed compact mode animation not resolving on double toolbar, b=no-bug, c=compact-mode 2025-10-08 14:50:26 +02:00
Mr. M
faa820e992 fix: Fixed copact mode not hiding sometimes, b=closes #10414, c=compact-mode 2025-10-08 14:02:41 +02:00
Mr. M
3b58806c8a fix: Fixed freezing when opening external links, b=bug #10666, c=workspaces 2025-10-08 13:38:16 +02:00
Mr. M
ab6a8ee717 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-10-08 12:50:33 +02:00
Mr. M
9479062358 feat: Reset hover ignore when not animating compact mode, b=no-bug, c=tabs, compact-mode 2025-10-08 12:50:30 +02:00
Blake Gearin
ba1a59622a feat: Add config to support more than 12 essential tabs, p=#10731 2025-10-08 12:49:40 +02:00
Mr. M
0c5a2aa96d perf: Fixed performance for media controls label, b=no-bug, c=media 2025-10-08 12:49:18 +02:00
Mr. M
00a70c11a7 fix: Fixed fullscren urlbar not focusing, b=closes #5229, c=common 2025-10-07 23:12:10 +02:00
mr. m
2dc98fa7f7 chore: Updated to Firefox 144.0, p=#10725, c=l10n, tabs, media, common, tests, workspaces 2025-10-07 23:06:47 +02:00
reizumi
289058c25d style: update sidebar icon (#10718) 2025-10-07 17:59:11 +02:00
Mr. M
c2951d0a0f fix: Add debug info when an invalid folder is trying to restore, b=no-bug, c=common, folders 2025-10-07 01:21:52 +02:00
Mr. M
9f42abf789 feat: Restore top toolbar compact mode, b=no-bug, c=tabs, compact-mode, common 2025-10-07 01:06:16 +02:00
Mr. M
d0fb8aea03 feat: Increase the size of toolbar buttons, b=no-bug, c=common, workspaces 2025-10-06 01:05:48 +02:00
Mr. M
856d6f523a fix: Fixed collapsed sidebar in compact mode not showing tabs, b=no-bug, c=glance, tabs, workspaces 2025-10-06 00:46:34 +02:00
Mr. M
47d1f973e4 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-10-06 00:22:59 +02:00
Mr. M
0a8fe6d7ba feat: Move the site data button to the end, b=no-bug, c=common 2025-10-06 00:22:53 +02:00
atharva kamble
d6ac283388 feat: Unload a workspace context menu, p=#10688
Co-authored-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-10-05 23:55:29 +02:00
Mr. M
9bf8bd97b2 feat: Always show new site data popup, b=no-bug, c=glance 2025-10-05 23:45:32 +02:00
Mr. M
43c634f477 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-10-05 19:14:20 +02:00
Mr. M
0feb6ac3f9 fix: Fixed omnibox not appearing on fullscreen, b=closes #5229, c=common 2025-10-05 19:14:15 +02:00
alightsoulmate
2dd185288d Fix: Unexpected Spelling in Theme Configuration Page, p=#10696
Co-authored-by: Mr. M <mr.m@tuta.com>
2025-10-05 19:00:19 +02:00
mr. m
f273cd8fd1 chore: Refactor glance animtions, p=#10690 2025-10-05 18:57:35 +02:00
mr. m
3ac31a96a6 feat: New site data popup, p=#10651 2025-10-05 18:56:41 +02:00
Mr. M
e340923623 feat: Increased the width and height of toolbar buttons, b=no-bug, c=common, workspaces 2025-10-05 00:28:32 +02:00
187 changed files with 4041 additions and 2598 deletions

View File

@@ -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

View File

@@ -1 +1 @@
5cbf54e3cfaf4cfb375088d7e11702e8974b238f
dd57c783345c5401fcdcc48e83b1fa9ce511d1cf

View File

@@ -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

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = الملف الشخصي الحالي
unified-extensions-description = تستخدم الإضافات لجلب المزيد من الوظائف الإضافية إلى { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = إعادة تعيين علامة التبويب المثبتة
.accesskey = ر
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / 12 slots filled)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = استبدال الرابط المثبت بالرابط الحالي
.accesskey = C
zen-themes-corrupted = ملف التعديل { -brand-short-name } الخاص بك تالف. تم إعادة تعيينه إلى السمة الافتراضية.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = لون مخصص
zen-panel-ui-gradient-generator-saved-message = حفظ معامل التدرج بنجاح!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = إلى المزيد تعرف
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = perfil actual
unified-extensions-description = Les extensions aporten funcionalitats addicionals a { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Afegeix als essentials ({ $num } / { $max } espais ocupats)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Elimina dels essencials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Substitueix l'URL fixat per l'actual
.accesskey = C
zen-themes-corrupted = El vostre fitxer de modificacions { -brand-short-name } està malmès. S'ha restablert al tema per defecte.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
La nova barra d'URL s'ha activat, eliminant la necessitat de noves pàgines de pestanya.<br/><br/>
Proveu d'obrir una pestanya nova per veure la nova barra d'URL en acció!
zen-disable = Deshabilita
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimitza
.tooltip = Minimitza
zen-panel-ui-gradient-generator-custom-color = Color personalitzat
zen-panel-ui-gradient-generator-saved-message = El degradat s'ha desat correctament!
zen-copy-current-url-confirmation = L'URL s'ha copiat al porta-retalls.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel·la
zen-general-confirm =
zen-general-confirm =
.label = Confirma
zen-pinned-tab-replaced = L'URL de la pestanya fixada s'ha substituït per l'URL actual.
zen-tabs-renamed = S'ha canviat el nom de la pestanya correctament!
zen-background-tab-opened-toast = S'ha obert una nova pestanya de fons!
zen-workspace-renamed-toast = S'ha canviat el nom de l'espai de treball correctament!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Espais
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modificacions
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Més informació
zen-close-label = Tanca
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Cerca...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icones
urlbar-search-mode-zen_actions = Accions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = aktuální profil
unified-extensions-description = Rozšíření slouží k přidání dalších funkcí do prohlížeče { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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ů)
tab-context-zen-add-essential =
.label = Přidat do Essentials ({ $num } / { $max } zaplněných slotů)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Odstranit z Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Nahradit připnutou URL adresu aktuální adresou
.accesskey = C
zen-themes-corrupted = Váš { -brand-short-name } mods soubor je poškozen. Byl obnoven na výchozí motiv.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Nový adresní řádek je nyní zapnutý, takže už není potřeba otevírat nové karty.<br/><br/>
Zkuste otevřít novou kartu a podívejte se, jak funguje!
zen-disable = Zavřít
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimalizovat
.tooltip = Minimalizovat
zen-panel-ui-gradient-generator-custom-color = Vlastní barva
zen-panel-ui-gradient-generator-saved-message = Gradient byl úspěšně uložen!
zen-copy-current-url-confirmation = URL adresa byla zkopírována do schránky.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Zrušit
zen-general-confirm =
zen-general-confirm =
.label = Potvrdit
zen-pinned-tab-replaced = Připnutá URL adresa panelu byla nahrazena aktuální URL adresou.
zen-tabs-renamed = Panel byl úspěšně přejmenován!
zen-background-tab-opened-toast = Nová karta na pozadí byla otevřena!
zen-workspace-renamed-toast = Pracovní prostor byl úspěšně přejmenován!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Prostory
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Módy
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Zjistit více
zen-close-label = Zavřít
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Hledat...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emodži
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikony
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = proffil gweithredol
unified-extensions-description = Mae ehangiadau'n cael ei defnyddio er mwyn ychwanegu fwy o weithrediadau i mewn i { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Diddymu o Hanfodion
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Ailosod URL wedi'i Binio gyda'r Gyfredol
.accesskey = C
zen-themes-corrupted = Mae eich ffeil am y mod { -brand-short-name } wedi'i llygru. Maent wedi cael eu hailosod i'r thema rhagosodedig.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Mae'r bar URL newydd wedi'i alluogi, sydd yn dileu'r angen am dudalennau tab newydd.<br/><br/>
Ceisiwch agor tab newydd i weld y bar URL newydd ar waith!
zen-disable = Analluogi
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Addasu Lliw
zen-panel-ui-gradient-generator-saved-message = Llwyddiant arbedi'r graddiant!
zen-copy-current-url-confirmation = Mae'r URL wedi'i gopïo i'r clipfwrdd.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Mae URL y tab wedi'i binio wedi'i newid i'r URL gyfredol.
zen-tabs-renamed = Llwyddiant ailenwi'r tab!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Cau
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = nuværende profil
unified-extensions-description = Udvidelser bruges til at bringe ekstra funktionalitet ind i { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Føj til Essentielle ({ $num } / { $max } pladser fyldt)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Fjern fra Essentielle
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Erstat fastgjort URL med nuværende
.accesskey = C
zen-themes-corrupted = Din { -brand-short-name } mods-fil er beskadiget. De er blevet nulstillet til standardtemaet.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Den nye URL-linje er aktiveret og fjerner dermed behovet for nye fanesider.<br/><br/>
Prøv at åbne en ny fane for at se den i aktion!
zen-disable = Deaktiver
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimer
.tooltip = Minimer
zen-panel-ui-gradient-generator-custom-color = Brugerdefineret Farve
zen-panel-ui-gradient-generator-saved-message = Gradienten blev gemt!
zen-copy-current-url-confirmation = URL'en blev kopieret til udklipsholderen.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Annuller
zen-general-confirm =
zen-general-confirm =
.label = Bekræft
zen-pinned-tab-replaced = Den fastgjorte fane-URL blev erstattet med den aktuelle.
zen-tabs-renamed = Fanen blev omdøbt!
zen-background-tab-opened-toast = Ny baggrundsfane åbnet!
zen-workspace-renamed-toast = Arbejdsområde blev omdøbt!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Rum
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Lær mere
zen-close-label = Luk
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Søg...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikoner
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = Aktuelles Profil
unified-extensions-description = Erweiterungen werden verwendet, um { -brand-short-name } zusätzliche Funktionen hinzuzufügen.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Zu Essentials hinzufügen ({ $num } / { $max } Plätze belegt)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Aus Essentials entfernen
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Angepinnte URL durch aktuelle ersetzen
.accesskey = C
zen-themes-corrupted = Ihre { -brand-short-name } Mods-Datei ist beschädigt. Sie wurde auf das Standard-Design zurückgesetzt.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Die neue Adressleiste wurde aktiviert und macht neue Tab-Seiten überflüssig.<br/><br/>
Öffnen Sie einen neuen Tab, um die neue Adressleiste in Aktion zu sehen!
zen-disable = Deaktivieren
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimieren
.tooltip = Minimieren
zen-panel-ui-gradient-generator-custom-color = Benutzerdefinierte Farbe
zen-panel-ui-gradient-generator-saved-message = Farbverlauf erfolgreich gespeichert!
zen-copy-current-url-confirmation = Die URL wurde in die Zwischenablage kopiert.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Abbrechen
zen-general-confirm =
zen-general-confirm =
.label = Bestätigen
zen-pinned-tab-replaced = Die URL des angepinnten Tabs wurde durch die aktuelle URL ersetzt!
zen-tabs-renamed = Tab wurde erfolgreich umbenannt!
zen-background-tab-opened-toast = Neuer Hintergrund-Tab geöffnet!
zen-workspace-renamed-toast = Arbeitsbereich wurde erfolgreich umbenannt!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Arbeitsbereiche
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Mehr erfahren
zen-close-label = Schließen
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Suchen...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Symbole
urlbar-search-mode-zen_actions = Aktionen

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = τρέχον προφίλ
unified-extensions-description = Οι επεκτάσεις χρησιμοποιούνται για να φέρουν περισσότερη επιπλέον λειτουργικότητα στο { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = Επαναφορά Καρφιτσωμένης Καρτέλας
.accesskey = R
tab-context-zen-add-essential =
.label = Προσθήκη στα Απαραίτητα ({ $num } / 12 θέσεις γεμάτες)
tab-context-zen-add-essential =
.label = Προσθήκη στα Απαραίτητα ({ $num } / { $max } θέσεις γεμάτες)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Αφαίρεση από Απαραίτητα
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Αντικατάσταση καρφιτσωμένου URL με το τρέχον
.accesskey = C
zen-themes-corrupted = Το αρχείο { -brand-short-name } mods είναι κατεστραμμένο. Έχει γίνει επαναφορά στο προεπιλεγμένο θέμα.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Η νέα γραμμή URL έχει ενεργοποιηθεί, αφαιρώντας την ανάγκη για σελίδες νέας καρτέλας.<br/><br/>
Δοκιμάστε να ανοίξετε μια νέα καρτέλα για να δείτε τη νέα γραμμή URL εν δράσει!
zen-disable = Απενεργοποίηση
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Ελαχιστοποίηση
.tooltip = Ελαχιστοποίηση
zen-panel-ui-gradient-generator-custom-color = Προσαρμοσμένο Χρώμα
zen-panel-ui-gradient-generator-saved-message = Επιτυχής αποθήκευση της διαβάθμισης!
zen-copy-current-url-confirmation = Το URL έχει αντιγραφεί στο πρόχειρο.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Ακύρωση
zen-general-confirm =
zen-general-confirm =
.label = Επιβεβαίωση
zen-pinned-tab-replaced = Το URL της καρφιτσωμένης καρτέλας έχει αντικατασταθεί από το τρέχον URL.
zen-tabs-renamed = Η καρτέλα μετονομάστηκε επιτυχώς!
zen-background-tab-opened-toast = Άνοιξε νέα καρτέλα στο παρασκήνιο!
zen-workspace-renamed-toast = Ο χώρος εργασίας μετονομάστηκε επιτυχώς!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Χώροι
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Μάθετε Περισσότερα
zen-close-label = Κλείσιμο
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Αναζήτηση...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = Current profile
unified-extensions-description = Extensions are used to bring more extra functionality into { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Replace Pinned URL with Current
.accesskey = C
zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
@@ -17,33 +17,33 @@ zen-shortcuts-corrupted = Your { -brand-short-name } shortcuts file is corrupted
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = The new URL bar has been enabled, removing the need for new tab pages. Try opening a new tab to see the new URL bar in action!<br/><br/>
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Custom colour
zen-panel-ui-gradient-generator-saved-message = Successfully saved the gradient!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -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

View File

@@ -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.

View File

@@ -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

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = perfil actual
unified-extensions-description = Las extensiones se utilizan para agregar más funcionalidades a { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Añadir a esenciales ({ $num } / { $max } huecos llenos)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Quitar de esenciales
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Reemplazar la URL fijada con la actual
.accesskey = C
zen-themes-corrupted = Su archivo de mods de { -brand-short-name } está dañado. Se ha restablecido el tema por defecto.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Se ha habilitado la nueva barra de direcciones, eliminando la necesidad de la página de nueva pestaña.<br/><br/>
¡Pruebe a abrir una nueva pestaña para ver la nueva barra de direcciones en acción!
zen-disable = Deshabilitar
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimizar
.tooltip = Minimizar
zen-panel-ui-gradient-generator-custom-color = Color personalizado
zen-panel-ui-gradient-generator-saved-message = ¡Gradiente guardado con éxito!
zen-copy-current-url-confirmation = La URL se ha copiado al portapapeles.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancelar
zen-general-confirm =
zen-general-confirm =
.label = Confirmar
zen-pinned-tab-replaced = La URL de la pestaña fijada se ha reemplazado por la URL actual.
zen-tabs-renamed = ¡La pestaña se ha renombrado con éxito!
zen-background-tab-opened-toast = ¡Nueva pestaña abierta en segundo plano!
zen-workspace-renamed-toast = ¡El espacio de trabajo ha sido renombrado con éxito!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Espacios
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Más información
zen-close-label = Cerrar
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Buscar...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Iconos
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = praegune profiil
unified-extensions-description = Laiendusi kasutatakse täiendava funktsionaalsuse lisamiseks { -brand-short-name }i.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Märgi oluliseks ({ $num } / { $max } täidetud)
.accesskey = o
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Eemalda olulistest
.accesskey = o
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Asenda püsikaardi URL praegusega
.accesskey = p
zen-themes-corrupted = Sinu { -brand-short-name } mods-ide fail on vigane. See on nüüd lähtestatud vaikimisi teemaks.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Uus asukohariba on sisse lülitatud, mistõttu pole enam uue kaardi lehte tarvis.<br/><br/>
Proovi avada uut kaarti, et näha uut asukohariba!
zen-disable = Lülita välja
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimeeri
.tooltip = Minimeeri
zen-panel-ui-gradient-generator-custom-color = Kohandatud värv
zen-panel-ui-gradient-generator-saved-message = Värviüleminek on edukalt salvestatud!
zen-copy-current-url-confirmation = URL kopeeriti lõikelauale.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Tühista
zen-general-confirm =
zen-general-confirm =
.label = Kinnita
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Kaart on edukalt ümber nimetatud!
zen-background-tab-opened-toast = Taustal avati uus kaart!
zen-workspace-renamed-toast = Tööruum on edukalt ümber nimetatud!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Tööruumid
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods-id
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Rohkem teavet
zen-close-label = Sulge
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Otsi...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojid
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikoonid
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = نمایهٔ کنونی
unified-extensions-description = افزونه‌های در حال استفاده عملکردهای بیشتری به { -brand-short-name } می‌دهند.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Replace Pinned URL with Current
.accesskey = C
zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Custom Color
zen-panel-ui-gradient-generator-saved-message = Successfully saved the gradient!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = nykyinen profiili
unified-extensions-description = Laajennuksia käytetään tuomaan enemmän ylimääräisiä toimintoja { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Poista olennaisista
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Korvaa kiinnitetty URL-osoite nykyisellä
.accesskey = C
zen-themes-corrupted = { -brand-short-name } modejasi tiedosto on vioittunut. Ne on palautettu oletusteemaan.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Muokattu Väri
zen-panel-ui-gradient-generator-saved-message = Kaltevuus tallennettu onnistuneesti!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = profil actuel
unified-extensions-description = Les extensions sont utilisées pour ajouter plus de fonctionnalités à { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = Réinitialiser longlet épinglé
.accesskey = R
tab-context-zen-add-essential =
.label = Ajouter aux Essentials ({ $num }/12 emplacements occupés)
tab-context-zen-add-essential =
.label = Ajouter aux Essentials ({ $num } / { $max } emplacements occupés)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Retirer des Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Remplacer lURL épinglée par lactuelle
.accesskey = C
zen-themes-corrupted = Votre fichier de thèmes { -brand-short-name } est corrompu. Il a été réinitialisé au thème par défaut.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
La nouvelle barre dadresse a été activée, supprimant la nécessité de nouvelles pages donglets.<br/><br/>
Essayez douvrir un nouvel onglet pour voir la nouvelle barre dadresse en action!
zen-disable = Désactiver
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimiser
.tooltip = Minimiser
zen-panel-ui-gradient-generator-custom-color = Couleur personnalisée
zen-panel-ui-gradient-generator-saved-message = Le dégradé a été enregistré avec succès!
zen-copy-current-url-confirmation = Ladresse a été copiée dans le presse-papier.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Annuler
zen-general-confirm =
zen-general-confirm =
.label = Confirmer
zen-pinned-tab-replaced = Ladresse de l'onglet épinglé a été remplacée par ladresse actuelle.
zen-tabs-renamed = Longlet a été renommé avec succès!
zen-background-tab-opened-toast = Nouvel onglet ouvert en arrière-plan!
zen-workspace-renamed-toast = L'espace de travail a été renommé avec succès !
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Espaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = En savoir plus
zen-close-label = Fermer
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Rechercher...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Émojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icônes
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = próifíl reatha
unified-extensions-description = Úsáidtear síntí chun níos mó feidhmiúlachta breise a thabhairt isteach i { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Cuir le Bunriachtanais ({ $num } / { $max } sliotán líonta)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Bain de na Bunriachtanais
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Cuir URL Prionáilte in ionad an URL Reatha
.accesskey = C
zen-themes-corrupted = Tá do chomhad mods { -brand-short-name } truaillithe. Tá siad athshocraithe chuig an téama réamhshocraithe.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Tá an barra URL nua cumasaithe, rud a fhágann nach bhfuil gá le leathanaigh cluaisín nua.<br/><br/>
Bain triail as cluaisín nua a oscailt chun an barra URL nua i mbun oibre a fheiceáil!
zen-disable = Díchumasaigh
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Íoslaghdaigh
.tooltip = Íoslaghdaigh
zen-panel-ui-gradient-generator-custom-color = Dath Saincheaptha
zen-panel-ui-gradient-generator-saved-message = Sábháladh an grádán go rathúil!
zen-copy-current-url-confirmation = Tá an URL cóipeáilte chuig an ghearrthaisce.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cealaigh
zen-general-confirm =
zen-general-confirm =
.label = Deimhnigh
zen-pinned-tab-replaced = Tá URL an chluaisín phinnáilte curtha in ionad an URL reatha!
zen-tabs-renamed = Athainmníodh an cluaisín go rathúil!
zen-background-tab-opened-toast = Tá cluaisín cúlra nua oscailte!
zen-workspace-renamed-toast = Athainmníodh an spás oibre go rathúil!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spásanna
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modanna
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Foghlaim Tuilleadh
zen-close-label = Dún
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Cuardaigh...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Deilbhíní
urlbar-search-mode-zen_actions = Gníomhartha

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = פרופיל נוכחי
unified-extensions-description = הרחבות מוסיפות פונקציונליות נוספת ל{ -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = אפס כרטיסייה מוצמדת
.accesskey = ר
tab-context-zen-add-essential =
.label = הוסף לנחוצים ({ $num } / 12 מקומות מלאים)
tab-context-zen-add-essential =
.label = הוסף לנחוצים ({ $num } / { $max } מקומות מלאים)
.accesskey = ק
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = הסר מנחוצים
.accesskey = ר
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = החלף קישור מוצמד עם הנוכחי
.accesskey = ב
zen-themes-corrupted = קובץ המודים { -brand-short-name } שלך פגום. הם אופסו לנושא ברירת המחדל.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
סרגל הכתובת החדש הופעל, ומסיר את הצורך בעמודי כרטיסייה חדשה.<br/><br/>
נסה לפתוח כרטיסייה חדשה כדי לראות את סרגל הכתובת החדש בפעולה!
zen-disable = כבה
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = מזער
.tooltip = מזער
zen-panel-ui-gradient-generator-custom-color = צבע מותאם אישית
zen-panel-ui-gradient-generator-saved-message = מיזוג הצבעים נשמר בהצלחה!
zen-copy-current-url-confirmation = הקישור הועתק ללוח.
zen-general-cancel-label =
zen-general-cancel-label =
.label = ביטול
zen-general-confirm =
zen-general-confirm =
.label = אישור
zen-pinned-tab-replaced = קישור כרטיסייה מוצמדת הוחלפה עם הקישור הנוכחי.
zen-tabs-renamed = שם הכרטיסייה שונתה בהצלחה!
zen-background-tab-opened-toast = לשונית נפתחה ברקע!
zen-workspace-renamed-toast = שם הסביבת עבודה שונתה בהצלחה!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = סביבות
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = מודים
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = מידע נוסף
zen-close-label = סגור
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = חיפוש...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = אימוג'ים
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = סמלים
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = jelenlegi profil
unified-extensions-description = A bővítmények a { -brand-short-name }-t új funkciókkal látják el.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Felvétel az alapvetőkbe ({ $num } / { $max } hely foglalt)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Eltávolítás az alapvetőkből
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Kitűzött lap cseréje a jelenlegi URL-el
.accesskey = C
zen-themes-corrupted = A te { -brand-short-name } mod fájljaid károsodtak. Vissza lettek állítva az eredeti témára.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Az új URL sáv engedélyezve lett, így nincs szükség új lapokra.<br/><br/>
Próbáljon ki egy új lapot nyitni, hogy láthassa az új URL-sávot működés közben!
zen-disable = Kikapcsolás
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimalizálás
.tooltip = Minimalizálás
zen-panel-ui-gradient-generator-custom-color = Egyedi szín
zen-panel-ui-gradient-generator-saved-message = Színátmenet sikeresen mentve!
zen-copy-current-url-confirmation = Az URL-cím a vágólapra lett másolva.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Mégsem
zen-general-confirm =
zen-general-confirm =
.label = Megerősítés
zen-pinned-tab-replaced = A rögzített lap URL címe helyébe az aktuális URL cím lépett!
zen-tabs-renamed = A lap sikeresen át lett nevezve!
zen-background-tab-opened-toast = Új lap megnyitva!
zen-workspace-renamed-toast = A munkakörnyezet sikeresen át lett nevezve!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Környezetek
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modok
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Tudjon meg többet
zen-close-label = Bezárás
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Keresés...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojik
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikonok
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = profil saat ini
unified-extensions-description = Ekstensi digunakan untuk menambahkan lebih banyak fungsi ekstra ke { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Tambahkan ke Essentials ({ $num } / { $max } slot terisi)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Hapus dari Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Ganti URL Sematan ke URL saat ini
.accesskey = C
zen-themes-corrupted = Tidak dapat memuat file tema { -brand-short-name } Anda karena rusak. File tersebut telah diatur ulang ke tema default.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Bilah URL baru telah diaktifkan, menghapus kebutuhan untuk halaman tab baru.<br/><br/>
Coba buka tab baru untuk melihat bilah URL baru beraksi!
zen-disable = Nonaktifkan
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimalkan
.tooltip = Minimalkan
zen-panel-ui-gradient-generator-custom-color = Warna Kustom
zen-panel-ui-gradient-generator-saved-message = Berhasil menyimpan gradien!
zen-copy-current-url-confirmation = URL telah disalin ke clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Batalkan
zen-general-confirm =
zen-general-confirm =
.label = Konfirmasi
zen-pinned-tab-replaced = URL awal dari tab yang disematkan telah diganti dengan URL saat ini.
zen-tabs-renamed = Tab telah berhasil diubah namanya!
zen-background-tab-opened-toast = Tab baru telah terbuka di latar belakang!
zen-workspace-renamed-toast = Ruang Kerja telah berhasil diubah namanya!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Ruang
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Pelajari Lebih Lanjut
zen-close-label = Tutup
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Cari...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emoji
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikon
urlbar-search-mode-zen_actions = Aksi

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = núverandi prófíl
unified-extensions-description = Viðbætur eru notaðar til að koma með meiri auka virkni inn í { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Fjarlægja frá Höfuðatriði
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Setja aftur Fest-URL með Núverandi
.accesskey = C
zen-themes-corrupted = { -brand-short-name } mods skráin þín er skemmd. Þeir hafa verið endurstilltir á sjálfgefið þema.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Nýja vefslóðastikan hefur verið virkjuð og fjarlægir þörfina á nýjum flipasíðum.<br/><br/>
Prófaðu að opna nýjan flipa til að sjá nýju vefslóðastikuna í notkun!
zen-disable = Óvirkja
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Sérsniðinn litur
zen-panel-ui-gradient-generator-saved-message = Vistað hallann!
zen-copy-current-url-confirmation = Slóðin hefur verið afrituð á klippiborðið.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Læra Meira
zen-close-label = Loka
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = profilo in uso
unified-extensions-description = Le estensioni sono usate per portare più funzionalità in { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Aggiungi a Essentials ({ $num } / { $max } slot riempiti)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Rimuovi dagli Essenziali
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Sostituisci URL fissato con quello corrente
.accesskey = C
zen-themes-corrupted = Il tuo file { -brand-short-name } mods è danneggiato. Sono stati reimpostati al tema predefinito.
@@ -17,33 +17,33 @@ zen-shortcuts-corrupted = Il file delle scorciatoie per { -brand-short-name } è
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = La nuova barra degli indirizzi è stata abilitata, eliminando la necessità della pagina di una nuova scheda.<br/><br/>Prova ad aprire una nuova scheda per vedere la nuova barra degli indirizzi in azione!
zen-disable = Disabilita
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimizza
.tooltip = Minimizza
zen-panel-ui-gradient-generator-custom-color = Colore Personalizzato
zen-panel-ui-gradient-generator-saved-message = Gradiente salvato con successo!
zen-copy-current-url-confirmation = L'URL è stato copiato negli appunti.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Annulla
zen-general-confirm =
zen-general-confirm =
.label = Conferma
zen-pinned-tab-replaced = L'URL della scheda bloccata è stato sostituito con l'URL attuale.
zen-tabs-renamed = La scheda è stata rinominata con successo!
zen-background-tab-opened-toast = Nuova scheda aperta in background!
zen-workspace-renamed-toast = Il Workspace è stato rinominato con successo!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spazi
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mod
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Scopri di più
zen-close-label = Chiudi
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Cerca...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emoji
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icone
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = 使用中のプロファイル
unified-extensions-description = 拡張機能は、 { -brand-short-name } に多くの追加機能をもたらすために使用されます。
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = ピン留めされたタブをリセット
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / 12 slots filled)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Essentialsから削除
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = ピン留めされた URL を現在のものに置き換え
.accesskey = C
zen-themes-corrupted = { -brand-short-name } Modファイルが破損しています。既定のテーマにリセットされました。
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = 無効
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = カスタムカラー
zen-panel-ui-gradient-generator-saved-message = グラデーションを正常に保存しました!
zen-copy-current-url-confirmation = URLをクリップボードにコピーしました
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = 閉じる
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = 현재 프로필
unified-extensions-description = 확장 프로그램은 { -brand-short-name }에 더 많은 추가 기능을 제공하는 데 사용됩니다.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = 고정된 탭 초기화
.accesskey = R
tab-context-zen-add-essential =
.label = 에센셜에 추가 ({ $num } / 12 개 추가됨)
tab-context-zen-add-essential =
.label = 에센셜에 추가 ({ $num } / { $max } 개 추가됨)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = 에센셜에서 제거하기
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = 고정된 URL을 현재 URL로 변경
.accesskey = C
zen-themes-corrupted = { -brand-short-name } 모드 파일이 손상되었습니다. 기본 테마로 재설정되었습니다.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
새 탭 페이지가 필요 없는 새로운 주소 표시줄이 활성화 되었습니다.<br/><br/>
새 탭을 열어서 새로운 URL 바를 만나보세요!
zen-disable = 비활성화
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = 최소화
.tooltip = 최소화
zen-panel-ui-gradient-generator-custom-color = 커스텀 색상
zen-panel-ui-gradient-generator-saved-message = 성공적으로 그라데이션을 저장했습니다!
zen-copy-current-url-confirmation = URL이 복사되었습니다.
zen-general-cancel-label =
zen-general-cancel-label =
.label = 취소
zen-general-confirm =
zen-general-confirm =
.label = 확인
zen-pinned-tab-replaced = 고정 URL이 현재 URL로 변경되었습니다!
zen-tabs-renamed = 탭의 이름이 성공적으로 변경되었습니다!
zen-background-tab-opened-toast = 새 백그라운드 탭이 열렸습니다!
zen-workspace-renamed-toast = 워크스페이스 이름이 변경되었습니다!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = 스페이스
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = 모드
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = 더 알아보기
zen-close-label = 닫기
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = 검색...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = 이모티콘
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = 아이콘
urlbar-search-mode-zen_actions = 액션

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = dabartinis profilis
unified-extensions-description = Plėtiniai naudojami norint į „{ -brand-short-name }“ įtraukti daugiau papildomų funkcijų.
tab-context-zen-reset-pinned-tab =
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ų)
tab-context-zen-add-essential =
.label = Įtraukti į būtiniausius ({ $num } / { $max } užpildytų vietų)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Šalinti iš būtiniausių
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Pakeisti prisegtą URL adresą dabartiniu
.accesskey = C
zen-themes-corrupted = Jūsų „{ -brand-short-name }“ modifikacijos failas sugadintas. Jie buvo atkurti į numatytąją temą.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Įjungta nauja URL juosta, todėl nebereikia naujų kortelių puslapių.<br/><br/>
Pabandykite atverti naują kortelę, kad pamatytumėte naująją URL juostą!
zen-disable = Išjungti
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Sumažinti
.tooltip = Sumažinti
zen-panel-ui-gradient-generator-custom-color = Pasirinktinė spalva
zen-panel-ui-gradient-generator-saved-message = Gradientas sėkmingai įrašytas.
zen-copy-current-url-confirmation = URL buvo nukopijuotas į iškarpinę.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Atšaukti
zen-general-confirm =
zen-general-confirm =
.label = Patvirtinti
zen-pinned-tab-replaced = Prisegtos kortelės URL pakeistas dabartiniu URL.
zen-tabs-renamed = Kortelė sėkmingai pervadinta.
zen-background-tab-opened-toast = Nauja fonos kortelė atverta.
zen-workspace-renamed-toast = Darbo sritis sėkmingai pervadintas.
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Erdvės
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modifikacijos
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Sužinoti daugiau
zen-close-label = Užverti
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Ieškokite...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Jaustukai
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Piktogramos
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = huidig profiel
unified-extensions-description = Extensies worden gebruikt om extra functionaliteit toe te voegen aan { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Toevoegen aan Essentials ({ $num } / { $max } plekken gevuld)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Verwijderen uit Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Vastgezette URL vervangen met huidige
.accesskey = C
zen-themes-corrupted = Je { -brand-short-name } mods bestand is beschadigd. Ze zijn gereset naar het standaard thema.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
De nieuwe URL-balk is ingeschakeld, waardoor nieuwe tabbladen niet meer nodig zijn.<br/><br/>
Probeer een nieuw tabblad te openen om de nieuwe URL-balk in actie te zien!
zen-disable = Uitschakelen
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimaliseren
.tooltip = Minimaliseren
zen-panel-ui-gradient-generator-custom-color = Aangepaste kleur
zen-panel-ui-gradient-generator-saved-message = Verloop is succesvol opgeslagen!
zen-copy-current-url-confirmation = De URL is gekopieerd naar het klembord.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Annuleren
zen-general-confirm =
zen-general-confirm =
.label = Bevestigen
zen-pinned-tab-replaced = Vastgemaakte tabblad URL is vervangen met de huidige URL!
zen-tabs-renamed = Tabblad is succesvol hernoemd!
zen-background-tab-opened-toast = Nieuw achtergrondtabblad geopend!
zen-workspace-renamed-toast = Werkruimte succesvol is hernoemd!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Ruimtes
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Meer leren
zen-close-label = Sluiten
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Zoeken…
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = current profile
unified-extensions-description = Extensions are used to bring more extra functionality into { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Replace Pinned URL with Current
.accesskey = C
zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Custom Color
zen-panel-ui-gradient-generator-saved-message = Successfully saved the gradient!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = Aktualny profil
unified-extensions-description = Rozszerzenia są używane do zapewnienia większej liczby dodatkowych funkcji w { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Dodaj do Niezbędnych ({ $num } / { $max } miejsc wypełnione)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Usuń z Niezbędnych
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Zastąp przypięty adres URL aktualnym
.accesskey = C
zen-themes-corrupted = Twój plik modów { -brand-short-name } jest uszkodzony. Zostały one zresetowane do domyślnego stanu.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Nowy pasek adresu został aktywowany, a tym samym strona nowej karty nie jest już potrzebna.<br/><br/>
Spróbuj otworzyć nową kartę i wypróbuj nowy pasek adresu w akcji!
zen-disable = Deaktywuj
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Zminimalizuj
.tooltip = Zminimalizuj
zen-panel-ui-gradient-generator-custom-color = Niestandardowy kolor
zen-panel-ui-gradient-generator-saved-message = Pomyślnie zapisano gradient!
zen-copy-current-url-confirmation = Adres URL został skopiowany do schowka.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Anuluj
zen-general-confirm =
zen-general-confirm =
.label = Potwierdź
zen-pinned-tab-replaced = URL przypiętej karty został zastąpiony bieżącym adresem.
zen-tabs-renamed = Nazwa karty została z powodzeniem zmieniona!
zen-background-tab-opened-toast = Nowa karta została otworzona w tle!
zen-workspace-renamed-toast = Zmieniono nazwę Przestrzeni roboczej!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Przestrzenie
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modyfikacje
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Dowiedz się więcej
zen-close-label = Zamknij
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Szukaj...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = perfil atual
unified-extensions-description = As extensões são usadas para trazer mais recursos adicionais para o { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Adicionar aos Essenciais ({ $num } / { $max } espaços preenchidos)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remover dos Essenciais
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Substituir URL da Guia Fixada pela Atual
.accesskey = C
zen-themes-corrupted = Seu arquivo de modificações { -brand-short-name } está corrompido. Eles foram redefinidos para o tema padrão.
@@ -17,33 +17,33 @@ zen-shortcuts-corrupted = Seu arquivo de atalhos { -brand-short-name } está cor
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = A nova barra de URL foi ativada, removendo a necessidade de novas páginas de guia.<br/><br/>Tente abrir uma nova guia para ver a nova barra de URL em ação!
zen-disable = Desativar
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimizar
.tooltip = Minimizar
zen-panel-ui-gradient-generator-custom-color = Cor Personalizada
zen-panel-ui-gradient-generator-saved-message = O gradiente foi salvo com sucesso!
zen-copy-current-url-confirmation = A URL foi copiada para a área de transferência.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancelar
zen-general-confirm =
zen-general-confirm =
.label = Confirmar
zen-pinned-tab-replaced = A URL da guia fixada foi substituída pela URL atual!
zen-tabs-renamed = A guia foi renomeada com sucesso!
zen-background-tab-opened-toast = Nova guia em segundo plano aberta!
zen-workspace-renamed-toast = A área de trabalho foi renomeada com sucesso!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Espaços
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Saiba Mais
zen-close-label = Fechar
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Pesquisar...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ícones
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = perfil atual
unified-extensions-description = As extensões são usadas para trazer funcionalidades adicionais para o { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Adicionar aos Essenciais ({ $num } / { $max } espaços preenchidos)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remover dos Essenciais
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Substituir o URL Fixado pelo URL Atual
.accesskey = C
zen-themes-corrupted = O seu ficheiro de modificações do { -brand-short-name } está corrompido. Elas foram redefinidas como iguais às do tema padrão.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
A nova barra de URL foi ativada, removendo a necessidade de páginas de novo separador.<br/><br/>
Experimente abrir um novo separador para ver a nova barra de URL em ação!
zen-disable = Desativar
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimizar
.tooltip = Minimizar
zen-panel-ui-gradient-generator-custom-color = Cor personalizada
zen-panel-ui-gradient-generator-saved-message = Gradiente guardado com sucesso!
zen-copy-current-url-confirmation = O URL foi copiado para a área de transferência.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancelar
zen-general-confirm =
zen-general-confirm =
.label = Confirmar
zen-pinned-tab-replaced = O URL do separador fixado foi substituído pelo URL atual.
zen-tabs-renamed = Nome do separador alterado com sucesso!
zen-background-tab-opened-toast = Novo separador aberto em segundo plano!
zen-workspace-renamed-toast = Nome do espaço de trabalho alterado com sucesso!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Espaços
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Modificações
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Saber Mais
zen-close-label = Fechar
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Pesquisar...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ícones
urlbar-search-mode-zen_actions = Ações

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = текущий профиль
unified-extensions-description = Расширения дополняют функционал { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = Сбросить закреплённую вкладку
.accesskey = R
tab-context-zen-add-essential =
.label = Добавить в важное ({ $num } из 12 слотов заполнено)
tab-context-zen-add-essential =
.label = Добавить в важное ({ $num } из { $num } слотов заполнено)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Удалить из важного
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Заменить закреплённый адрес на текущий
.accesskey = C
zen-themes-corrupted = Файл дополнения { -brand-short-name } повреждён. Возвращена тема по умолчанию.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Новая адресная строка активирована, теперь нет необходимости использовать отдельные страницы для новых вкладок.<br/><br/>
Попробуйте открыть новую вкладку, чтобы увидеть новую адресную строку в действии!
zen-disable = Выключить
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Свернуть
.tooltip = Свернуть
zen-panel-ui-gradient-generator-custom-color = Пользовательский цвет
zen-panel-ui-gradient-generator-saved-message = Градиент успешно сохранён!
zen-copy-current-url-confirmation = Ссылка скопирована в буфер обмена.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Отменить
zen-general-confirm =
zen-general-confirm =
.label = Подтвердить
zen-pinned-tab-replaced = Адрес закреплённой вкладки заменён на текущий адрес!
zen-tabs-renamed = Вкладка успешно переименована!
zen-background-tab-opened-toast = Открыта новая фоновая вкладка!
zen-workspace-renamed-toast = Пространство успешно переименовано!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Пространства
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Моды
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Узнать больше
zen-close-label = Закрыть
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Найти...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Эмодзи
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Иконки
urlbar-search-mode-zen_actions = Действия

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = nuvarande profil
unified-extensions-description = Tillägg används för att få fler extra funktioner i { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Lägg till Essentials ({ $num } / { $max } platser fyllda)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Ta bort från Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Ersätt fäst fliks URL med nuvarande
.accesskey = C
zen-themes-corrupted = Din { -brand-short-name } modds-fil är skadad. De har återställts till standardtemat.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Inaktivera
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimera
.tooltip = Minimera
zen-panel-ui-gradient-generator-custom-color = Anpassad färg
zen-panel-ui-gradient-generator-saved-message = Lyckades spara gradienten!
zen-copy-current-url-confirmation = Länken har kopierats till urklipp.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Avbryt
zen-general-confirm =
zen-general-confirm =
.label = Bekräfta
zen-pinned-tab-replaced = Den fästa flikens URL har ersatts med den aktuella URL!
zen-tabs-renamed = Fliken har fått nytt namn!
zen-background-tab-opened-toast = Ny bakgrundsflik öppnad!
zen-workspace-renamed-toast = Arbetsytan har fått ett nytt namn!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Arbetsytor
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Läs mer
zen-close-label = Stäng
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Sök...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Ikoner
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = current profile
unified-extensions-description = Extensions are used to bring more extra functionality into { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Remove from Essentials
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Replace Pinned URL with Current
.accesskey = C
zen-themes-corrupted = Your { -brand-short-name } mods file is corrupted. They have been reset to the default theme.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
zen-panel-ui-gradient-generator-custom-color = Custom Color
zen-panel-ui-gradient-generator-saved-message = Successfully saved the gradient!
zen-copy-current-url-confirmation = The URL has been copied to the clipboard.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Confirm
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = mevcut profil
unified-extensions-description = Uzantılar { -brand-short-name } daha fazla işlevsellik kazandırmak için kullanılır.
tab-context-zen-reset-pinned-tab =
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)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Temel Ögelerden Kaldır
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Sabitlenen URL'yi Mevcut ile Değiştir
.accesskey = C
zen-themes-corrupted = { -brand-short-name } adlı modun dosyaları hatalı. Varsayılan temaya sıfırlandılar.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Yeni sekme sayfalarına ihtiyacı kaldıran yeni URL Bar aktifleşti.<br/><br/>
Yeni URL bar'ı görmek için yeni bir sekme açın!
zen-disable = Devre dışı bırak
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Küçült
.tooltip = Küçült
zen-panel-ui-gradient-generator-custom-color = Özel Renk
zen-panel-ui-gradient-generator-saved-message = Renkler başarıyla kaydedildi!
zen-copy-current-url-confirmation = URL panoya kopyalandı.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Cancel
zen-general-confirm =
zen-general-confirm =
.label = Onayla
zen-pinned-tab-replaced = Başa tutturulmuş sekme URL'si, şimdiki URL ile değiştirildi.
zen-tabs-renamed = Sekme başarıyla yeniden adlandırıldı!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Spaces
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Daha Fazla Bilgi
zen-close-label = Kapat
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = поточний профіль
unified-extensions-description = Розширення використовуються, щоб додати більше функціональних можливостей до { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = Скинути прикріплену вкладку
.accesskey = Р
tab-context-zen-add-essential =
.label = Додати до Основного ({ $num } / 12 комірок заповнено)
tab-context-zen-add-essential =
.label = Додати до Основного ({ $num } / { $max } комірок заповнено)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Вилучити з основних елементів
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Замінити закріплений URL на поточний
.accesskey = C
zen-themes-corrupted = Ваш файл модифікацій { -brand-short-name } пошкоджено. Вони були скинуті до типової теми.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Увімкнено новий рядок URL-адрес, що усуває потребу в нових сторінках вкладок.<br/><br/>
Спробуйте відкрити нову вкладку, щоб побачити новий рядок URL-адреси в дії!
zen-disable = Вимкнути
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Згорнути
.tooltip = Згорнути
zen-panel-ui-gradient-generator-custom-color = Власний колір
zen-panel-ui-gradient-generator-saved-message = Градієнт успішно збережено!
zen-copy-current-url-confirmation = URL-адресу було скопійовано до буфера обміну.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Скасувати
zen-general-confirm =
zen-general-confirm =
.label = Підтвердити
zen-pinned-tab-replaced = URL-адресу закріпленої вкладки замінено на поточну URL-адресу.
zen-tabs-renamed = Вкладку успішно перейменовано!
zen-background-tab-opened-toast = Відкрито нову фонову вкладку!
zen-workspace-renamed-toast = Робочий простір успішно перейменовано!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Простори
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Модифікації
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Дізнатися більше
zen-close-label = Закрити
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Пошук...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Емоджі
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Значки
urlbar-search-mode-zen_actions = Дії

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = hồ sơ hiện tại
unified-extensions-description = Các tiện ích mở rộng được sử dụng để mang thêm tính năng vào { -brand-short-name }.
tab-context-zen-reset-pinned-tab =
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 )
tab-context-zen-add-essential =
.label = Thêm thẻ vào thường trú (đã thêm { $num } / { $max } )
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = Loại ra khỏi thẻ thường trú
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = Thay thế đường dường dẫn đã gim với hiện tại
.accesskey = C
zen-themes-corrupted = Thư mục chủ đề { -brand-short-name } của bạn đã bị hư, chúng đã được trả về thiết kế gốc.
@@ -19,33 +19,33 @@ zen-new-urlbar-notification =
Thanh đường dẫn mới đã được kích hoạt, loại bỏ chức năng của trang "thẻ mới". <br/><br/>
Hãy thử tạo một thể để xem cái "mới" của thành đường dẫn!
zen-disable = Vô hiệu hóa
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = Thu nhỏ
.tooltip = Thu nhỏ
zen-panel-ui-gradient-generator-custom-color = Tùy chỉnh màu sắc
zen-panel-ui-gradient-generator-saved-message = Lưu tùy chỉnh đổ màu thành công!
zen-copy-current-url-confirmation = Đường dẫn đã được chép vào bộ nhớ.
zen-general-cancel-label =
zen-general-cancel-label =
.label = Hủy
zen-general-confirm =
zen-general-confirm =
.label = Xác nhận
zen-pinned-tab-replaced = Đường dẫn trên thẻ gim đã được thay thể bởi đường dẫn hiện tại!
zen-tabs-renamed = Thẻ đã được đổi tên!
zen-background-tab-opened-toast = Một thẻ mới đã được mở dưới nền!
zen-workspace-renamed-toast = Không gian làm việc đã được đổi tên!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = Không gian làm việc
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = Mods
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Tìm hiểu thêm
zen-close-label = Đóng
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Tìm kiếm...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = Biểu cảm
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = Biểu tượng
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = 当前配置
unified-extensions-description = 扩展用于为 { -brand-short-name } 带来更多额外功能。
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = 重置固定标签页
.accesskey = R
tab-context-zen-add-essential =
.label = 添加到常驻标签页(已使用 { $num } / 12
tab-context-zen-add-essential =
.label = 添加到常驻标签页(已使用 { $num } / { $max }
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = 从常驻标签页中移除
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = 将固定标签页的 URL 替换为当前页面 URL
.accesskey = C
zen-themes-corrupted = 您的 { -brand-short-name } 模组文件已损坏。它们已重置为默认主题。
@@ -17,33 +17,33 @@ zen-shortcuts-corrupted = 您的 { -brand-short-name } 快捷键文件已损坏
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = 新的 URL 栏已启用,不再需要新标签页。<br/><br/>打开一个新标签页来试试看新 URL 栏!
zen-disable = 禁用
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = 最小化
.tooltip = 最小化
zen-panel-ui-gradient-generator-custom-color = 自定义颜色
zen-panel-ui-gradient-generator-saved-message = 渐变保存成功!
zen-copy-current-url-confirmation = 网址已复制到剪贴板。
zen-general-cancel-label =
zen-general-cancel-label =
.label = 取消
zen-general-confirm =
zen-general-confirm =
.label = 确认
zen-pinned-tab-replaced = 固定标签页的网址已更新为当前页面网址。
zen-tabs-renamed = 标签页重命名成功!
zen-background-tab-opened-toast = 新的后台标签页已打开
zen-workspace-renamed-toast = 工作区重命名成功!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = 工作区
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = 模组
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = 了解更多
zen-close-label = 关闭
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = 搜索…
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = 表情符号
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = 图标集
urlbar-search-mode-zen_actions = Actions

View File

@@ -1,15 +1,15 @@
zen-panel-ui-current-profile-text = 當前設定檔
unified-extensions-description = 擴充功能可為 { -brand-short-name } 帶來更多額外功能。
tab-context-zen-reset-pinned-tab =
tab-context-zen-reset-pinned-tab =
.label = 重置釘選的分頁
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / 12 slots filled)
tab-context-zen-add-essential =
.label = Add to Essentials ({ $num } / { $max } slots filled)
.accesskey = E
tab-context-zen-remove-essential =
tab-context-zen-remove-essential =
.label = 從 Essentials 中移除
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
tab-context-zen-replace-pinned-url-with-current =
.label = 將釘選的網址換成目前的網址
.accesskey = C
zen-themes-corrupted = 你的 { -brand-short-name } 模組文件已損壞,它們已重設為預設主題。
@@ -17,33 +17,33 @@ zen-shortcuts-corrupted = 你的 { -brand-short-name } 快捷文件已損壞。
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = 新的 URL 欄已啟用,你不再需要新增新分頁。<br/><br/>馬上打開新分頁來看看新的 URL 欄!
zen-disable = 停用
pictureinpicture-minimize-btn =
pictureinpicture-minimize-btn =
.aria-label = 最小化
.tooltip = 最小化
zen-panel-ui-gradient-generator-custom-color = 自訂顏色
zen-panel-ui-gradient-generator-saved-message = 已成功儲存漸層!
zen-copy-current-url-confirmation = 網址已複製到剪貼簿。
zen-general-cancel-label =
zen-general-cancel-label =
.label = 取消
zen-general-confirm =
zen-general-confirm =
.label = 確認
zen-pinned-tab-replaced = 釘選分頁網址已替換為當前當前網址。
zen-tabs-renamed = 已成功重新命名分頁!
zen-background-tab-opened-toast = 已在背景開啟新分頁!
zen-workspace-renamed-toast = 已成功重新命名工作區!
zen-library-sidebar-workspaces =
zen-library-sidebar-workspaces =
.label = 工作區
zen-library-sidebar-mods =
zen-library-sidebar-mods =
.label = 模組
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = 瞭解更多
zen-close-label = 關閉
zen-singletoolbar-urlbar-placeholder-with-name =
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = 搜尋...
zen-icons-picker-emoji =
zen-icons-picker-emoji =
.label = 表情符號
zen-icons-picker-svg =
zen-icons-picker-svg =
.label = 圖示
urlbar-search-mode-zen_actions = 操作

View File

@@ -78,6 +78,7 @@
value: false
- name: browser.tabs.groups.hoverPreview.enabled
locked: true
value: false
- name: browser.tabs.closeWindowWithLastTab

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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"

View File

@@ -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" }

View File

@@ -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 {

View File

@@ -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);
}

View File

@@ -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 = {

View File

@@ -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 = {

View File

@@ -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");

View File

@@ -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);

View 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) {

View File

@@ -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 = {

View File

@@ -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 = {
}
}

View File

@@ -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>

View File

@@ -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

View File

@@ -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 @@

View File

@@ -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;

View File

@@ -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()
);

View File

@@ -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" />

View File

@@ -50,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>

View 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>

View File

@@ -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

View File

@@ -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"]

View File

@@ -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",

View File

@@ -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);
}

View File

@@ -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 @@

View File

@@ -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": {

View File

@@ -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) {

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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>

View File

@@ -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(

View File

@@ -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 () {

View File

@@ -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

View File

@@ -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',

View File

@@ -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>

View File

@@ -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 {

View File

@@ -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,
},
});

View File

@@ -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; ) {

View File

@@ -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 = {

View File

@@ -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 {

View File

@@ -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,
});

View File

@@ -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 {

View File

@@ -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 @@
}
}

View File

@@ -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;
}
}

View File

@@ -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();

View File

@@ -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 =

View File

@@ -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++;
}

View File

@@ -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: [

View File

@@ -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");

View File

@@ -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 &&

View File

@@ -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":

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
index dfa91b76ad3890ceadb1b1b5d7a63b7074fbb776..6369fa1cdb242de32338bbce6debcdab2a04ca02 100644
index 50961e4beb75012ef0ed6f261a95854712cc69d7..93bcfca9270ff34dbe6386789fdae6066457438d 100644
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
index fdbab8806fd320f4aacec46a42c8ef953580d00c..031a615ad09274c578184b129434bbd93b49353d 100644
index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b50b9fa2e8 100644
--- a/browser/components/urlbar/UrlbarView.sys.mjs
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
@@ -613,7 +613,7 @@ export class UrlbarView {
@@ -620,7 +620,7 @@ export class UrlbarView {
!this.input.value ||
this.input.getAttribute("pageproxystate") == "valid"
) {
@@ -11,7 +11,7 @@ index fdbab8806fd320f4aacec46a42c8ef953580d00c..031a615ad09274c578184b129434bbd9
// Try to reuse the cached top-sites context. If it's not cached, then
// there will be a gap of time between when the input is focused and
// when the view opens that can be perceived as flicker.
@@ -2706,6 +2706,8 @@ export class UrlbarView {
@@ -2734,6 +2734,8 @@ export class UrlbarView {
if (row?.hasAttribute("row-selectable")) {
row?.toggleAttribute("selected", true);
}
@@ -20,12 +20,12 @@ index fdbab8806fd320f4aacec46a42c8ef953580d00c..031a615ad09274c578184b129434bbd9
if (element != row) {
row?.toggleAttribute("descendant-selected", true);
}
@@ -3189,7 +3191,7 @@ export class UrlbarView {
@@ -3215,7 +3217,7 @@ export class UrlbarView {
}
#enableOrDisableRowWrap() {
- let wrap = getBoundsWithoutFlushing(this.input.textbox).width < 650;
+ let wrap = false;
this.#rows.toggleAttribute("wrap", wrap);
this.oneOffSearchButtons.container.toggleAttribute("wrap", wrap);
this.oneOffSearchButtons?.container.toggleAttribute("wrap", wrap);
}

View File

@@ -1,8 +1,8 @@
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
index 1a482b6de24468ccfec069586f374937d8ef68dd..8614beda3fdfc038092f31f11b2604d5cfb843a1 100644
index 6207e6c8aa1e303ec151bc1e5c51c277ef776ee6..d3783a3c459c94880be1c95dc265a7d4887f67a1 100644
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
@@ -248,7 +248,7 @@ export const PREFS_CONFIG = new Map([
@@ -223,7 +223,7 @@ export const PREFS_CONFIG = new Map([
"showSponsoredTopSites",
{
title: "Show sponsored top sites",

Some files were not shown because too many files have changed in this diff Show More