Compare commits

..

13 Commits

78 changed files with 696 additions and 792 deletions

View File

@@ -1 +0,0 @@
https://zen-browser.app/funding.json

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Següent
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Permès zen-site-data-setting-allow = Permès
zen-site-data-setting-block = Bloquejat zen-site-data-setting-block = Bloquejat
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Galetes entre llocs zen-site-data-setting-cross-site = Galetes entre llocs
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extensió .label = Extensió
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Afegeix extensions .label = Afegeix extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Totes les configuracions del lloc .label = Totes les configuracions del lloc
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Comparteix aquesta pàgina
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copia l'URL .tooltiptext = Copia l'URL
zen-site-data-setting-site-protection = Protecció contra el seguiment zen-site-data-setting-site-protection = Protecció contra el seguiment

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Povoleno zen-site-data-setting-allow = Povoleno
zen-site-data-setting-block = Blokováno zen-site-data-setting-block = Blokováno
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Rozšíření .label = Rozšíření
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Přidat rozšíření .label = Přidat rozšíření
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Nastavení všech stránek .label = Nastavení všech stránek
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Næste
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Tilladt zen-site-data-setting-allow = Tilladt
zen-site-data-setting-block = Blokeret zen-site-data-setting-block = Blokeret
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Udvidelse .label = Udvidelse
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Tilføj udvidelser .label = Tilføj udvidelser
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Del denne side
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Kopiér URL .tooltiptext = Kopiér URL
zen-site-data-setting-site-protection = Sporingsbeskyttelse zen-site-data-setting-site-protection = Sporingsbeskyttelse

View File

@@ -38,7 +38,7 @@ zen-library-sidebar-workspaces =
zen-library-sidebar-mods = zen-library-sidebar-mods =
.label = Mods .label = Mods
zen-toggle-compact-mode-button = zen-toggle-compact-mode-button =
.label = Kompakter Modus .label = Compact Mode
.tooltiptext = Compact Mode umschalten .tooltiptext = Compact Mode umschalten
# note: Do not translate the "<br/>" tags in the following string # note: Do not translate the "<br/>" tags in the following string
@@ -59,8 +59,6 @@ zen-generic-next = Weiter
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Erlaubt zen-site-data-setting-allow = Erlaubt
zen-site-data-setting-block = Blockiert zen-site-data-setting-block = Blockiert
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site-Cookie zen-site-data-setting-cross-site = Cross-Site-Cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Erweiterung .label = Erweiterung
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Erweiterungen hinzufügen .label = Erweiterungen hinzufügen
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Alle Website-Einstellungen .label = Alle Website-Einstellungen
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Diese Seite teilen
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = URL kopieren .tooltiptext = URL kopieren
zen-site-data-setting-site-protection = Tracking-Schutz zen-site-data-setting-site-protection = Tracking-Schutz

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -57,8 +57,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -72,14 +70,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -77,8 +77,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -93,16 +91,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-share =
.label = Share This Page
zen-site-data-header-share =
.tooltiptext = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL

View File

@@ -59,8 +59,6 @@ zen-generic-next = Siguiente
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Permitido zen-site-data-setting-allow = Permitido
zen-site-data-setting-block = Bloqueado zen-site-data-setting-block = Bloqueado
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cookie de terceros zen-site-data-setting-cross-site = Cookie de terceros
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extensión .label = Extensión
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Añadir extensión .label = Añadir extensión
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Todas las configuraciones del sitio .label = Todas las configuraciones del sitio
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Compartir esta página
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copiar URL .tooltiptext = Copiar URL
zen-site-data-setting-site-protection = Protección contra el rastreo zen-site-data-setting-site-protection = Protección contra el rastreo

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Lubatud zen-site-data-setting-allow = Lubatud
zen-site-data-setting-block = Keelatud zen-site-data-setting-block = Keelatud
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Laiendus .label = Laiendus
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Lisa laiendusi .label = Lisa laiendusi
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Kõik saidi sätted .label = Kõik saidi sätted
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Suivant
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Autorisé zen-site-data-setting-allow = Autorisé
zen-site-data-setting-block = Bloqué zen-site-data-setting-block = Bloqué
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cookie intersite zen-site-data-setting-cross-site = Cookie intersite
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Ajouter des extensions .label = Ajouter des extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Tous les paramètres du site .label = Tous les paramètres du site
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Partager cette page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copier l'URL .tooltiptext = Copier l'URL
zen-site-data-setting-site-protection = Protection contre le pistage zen-site-data-setting-site-protection = Protection contre le pistage

View File

@@ -59,8 +59,6 @@ zen-generic-next = Ar Aghaidh
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Ceadaithe zen-site-data-setting-allow = Ceadaithe
zen-site-data-setting-block = Blocáilte zen-site-data-setting-block = Blocáilte
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Fianán Tras-Láithreáin zen-site-data-setting-cross-site = Fianán Tras-Láithreáin
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Síneadh .label = Síneadh
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Cuir Síneadh leis .label = Cuir Síneadh leis
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Gach Socrú Suímh .label = Gach Socrú Suímh
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Comhroinn an Leathanach seo
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Cóipeáil URL .tooltiptext = Cóipeáil URL
zen-site-data-setting-site-protection = Cosaint Rianaithe zen-site-data-setting-site-protection = Cosaint Rianaithe

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = אושר zen-site-data-setting-allow = אושר
zen-site-data-setting-block = חסום zen-site-data-setting-block = חסום
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = תוספים .label = תוספים
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = הוספת תוספים .label = הוספת תוספים
zen-site-data-site-settings = zen-site-data-site-settings =
.label = כל הגדרות אתר .label = כל הגדרות אתר
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Következő
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Engedélyezve zen-site-data-setting-allow = Engedélyezve
zen-site-data-setting-block = Letiltva zen-site-data-setting-block = Letiltva
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Webhelyek közötti sütik zen-site-data-setting-cross-site = Webhelyek közötti sütik
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Kiegészítő .label = Kiegészítő
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Kiegészítő hozzáadása .label = Kiegészítő hozzáadása
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Minden webhelybeállítás .label = Minden webhelybeállítás
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Oldal megosztása
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = URL másolása .tooltiptext = URL másolása
zen-site-data-setting-site-protection = Nyomkövetés védelem zen-site-data-setting-site-protection = Nyomkövetés védelem

View File

@@ -59,8 +59,6 @@ zen-generic-next = Lanjut
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Diizinkan zen-site-data-setting-allow = Diizinkan
zen-site-data-setting-block = Diblokir zen-site-data-setting-block = Diblokir
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Kuki Lintas Situs zen-site-data-setting-cross-site = Kuki Lintas Situs
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Ekstensi .label = Ekstensi
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Tambahkan Ekstensi .label = Tambahkan Ekstensi
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Semua Pengaturan Situs .label = Semua Pengaturan Situs
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Bagikan Halaman Ini
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Salin URL .tooltiptext = Salin URL
zen-site-data-setting-site-protection = Perlindungan Pelacakan zen-site-data-setting-site-protection = Perlindungan Pelacakan

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -57,8 +57,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Consentito zen-site-data-setting-allow = Consentito
zen-site-data-setting-block = Bloccato zen-site-data-setting-block = Bloccato
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Estensione .label = Estensione
@@ -72,14 +70,8 @@ zen-site-data-get-addons =
.label = Aggiungi estensioni .label = Aggiungi estensioni
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Tutte le impostazioni del sito .label = Tutte le impostazioni del sito
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Condividi questa pagina
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copia URL .tooltiptext = Copia URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = 다음
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = 허용됨 zen-site-data-setting-allow = 허용됨
zen-site-data-setting-block = 금지됨 zen-site-data-setting-block = 금지됨
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = 사이트 간 공유 쿠키 zen-site-data-setting-cross-site = 사이트 간 공유 쿠키
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = 확장 .label = 확장
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = 확장 프로그램 추가 .label = 확장 프로그램 추가
zen-site-data-site-settings = zen-site-data-site-settings =
.label = 모든 사이트 설정 .label = 모든 사이트 설정
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = 이 페이지 공유
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = URL 복사 .tooltiptext = URL 복사
zen-site-data-setting-site-protection = 추적 보호 zen-site-data-setting-site-protection = 추적 보호

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Leidžiama zen-site-data-setting-allow = Leidžiama
zen-site-data-setting-block = Užblokuota zen-site-data-setting-block = Užblokuota
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Plėtinys .label = Plėtinys
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Įtraukti plėtinius .label = Įtraukti plėtinius
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Visi svetainės nustatymai .label = Visi svetainės nustatymai
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -57,8 +57,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Permitido zen-site-data-setting-allow = Permitido
zen-site-data-setting-block = Bloqueado zen-site-data-setting-block = Bloqueado
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extensão .label = Extensão
@@ -72,14 +70,8 @@ zen-site-data-get-addons =
.label = Adicionar Extensões .label = Adicionar Extensões
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Todas as Configurações do Site .label = Todas as Configurações do Site
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Seguinte
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Permitido zen-site-data-setting-allow = Permitido
zen-site-data-setting-block = Bloqueado zen-site-data-setting-block = Bloqueado
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cookies entre sites zen-site-data-setting-cross-site = Cookies entre sites
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extensão .label = Extensão
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Adicionar Extensões .label = Adicionar Extensões
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Todas as Definições do Site .label = Todas as Definições do Site
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Partilhar Esta Página
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copiar URL .tooltiptext = Copiar URL
zen-site-data-setting-site-protection = Proteção contra rastreio zen-site-data-setting-site-protection = Proteção contra rastreio

View File

@@ -59,8 +59,6 @@ zen-generic-next = Далее
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Разрешено zen-site-data-setting-allow = Разрешено
zen-site-data-setting-block = Запрещено zen-site-data-setting-block = Запрещено
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Расширение .label = Расширение
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Добавить расширения .label = Добавить расширения
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Все настройки сайта .label = Все настройки сайта
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Поделиться этой страницей
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Скопировать URL .tooltiptext = Скопировать URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -59,9 +59,7 @@ zen-generic-next = Далі
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Дозволено zen-site-data-setting-allow = Дозволено
zen-site-data-setting-block = Заблоковано zen-site-data-setting-block = Заблоковано
zen-site-data-protections-enabled = Enabled zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Міжсайтові cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Розширення .label = Розширення
zen-site-data-security-info-secure = zen-site-data-security-info-secure =
@@ -74,17 +72,11 @@ zen-site-data-get-addons =
.label = Додати розширення .label = Додати розширення
zen-site-data-site-settings = zen-site-data-site-settings =
.label = Усі налаштування сайту .label = Усі налаштування сайту
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Поділитися цією сторінкою
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Копіювати URL-адресу .tooltiptext = Копіювати URL-адресу
zen-site-data-setting-site-protection = Захист від відстеження zen-site-data-setting-site-protection = Tracking Protection
# Section: Feature callouts # Section: Feature callouts

View File

@@ -59,8 +59,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -74,14 +72,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -57,8 +57,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -72,14 +70,8 @@ zen-site-data-get-addons =
.label = 添加扩展 .label = 添加扩展
zen-site-data-site-settings = zen-site-data-site-settings =
.label = 所有站点设置 .label = 所有站点设置
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -57,8 +57,6 @@ zen-generic-next = Next
# These labels will be used for the site data panel settings # These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension = zen-site-data-security-info-extension =
.label = Extension .label = Extension
@@ -72,14 +70,8 @@ zen-site-data-get-addons =
.label = Add Extensions .label = Add Extensions
zen-site-data-site-settings = zen-site-data-site-settings =
.label = All Site Settings .label = All Site Settings
zen-site-data-header-share = zen-site-data-share =
.tooltiptext = Share This Page .label = Share This Page
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
zen-urlbar-copy-url-button = zen-urlbar-copy-url-button =
.tooltiptext = Copy URL .tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection zen-site-data-setting-site-protection = Tracking Protection

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64225e42b0 100644 index 32b67f846b9942ad3da4276bb8748fee915eb485..f77d5df7c8ef49c0366ada8b3153c5a6c676239b 100644
--- a/browser/base/content/browser.js --- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js +++ b/browser/base/content/browser.js
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, { @@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
@@ -19,33 +19,6 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) { if (!gMultiProcessBrowser) {
@@ -3795,7 +3798,7 @@ function warnAboutClosingWindow() {
if (!isPBWindow && !toolbar.visible) {
return gBrowser.warnAboutClosingTabs(
- gBrowser.openTabs.length,
+ gBrowser.visibleTabs.filter(t => t.getAttribute("pending")!=="true").length,
gBrowser.closingTabsEnum.ALL
);
}
@@ -3835,7 +3838,7 @@ function warnAboutClosingWindow() {
return (
isPBWindow ||
gBrowser.warnAboutClosingTabs(
- gBrowser.openTabs.length,
+ gBrowser.visibleTabs.filter(t => t.getAttribute("pending")!=="true").length,
gBrowser.closingTabsEnum.ALL
)
);
@@ -3860,7 +3863,7 @@ function warnAboutClosingWindow() {
AppConstants.platform != "macosx" ||
isPBWindow ||
gBrowser.warnAboutClosingTabs(
- gBrowser.openTabs.length,
+ gBrowser.visibleTabs.filter(t => t.getAttribute("pending")!=="true").length,
gBrowser.closingTabsEnum.ALL
)
);
@@ -4782,6 +4785,9 @@ var ConfirmationHint = { @@ -4782,6 +4785,9 @@ var ConfirmationHint = {
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl"); MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl"); MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");

View File

@@ -1,13 +1,12 @@
diff --git a/browser/base/content/browser-pageActions.js b/browser/base/content/browser-pageActions.js diff --git a/browser/base/content/browser-pageActions.js b/browser/base/content/browser-pageActions.js
index 00da33bc11189db17b6a2e656acb3a778531197c..bdca62e9ed5513e1e1922f1f9498755f5459e0c2 100644 index 00da33bc11189db17b6a2e656acb3a778531197c..9571155baccad9a886cbe9c7bf0bd76a135331c4 100644
--- a/browser/base/content/browser-pageActions.js --- a/browser/base/content/browser-pageActions.js
+++ b/browser/base/content/browser-pageActions.js +++ b/browser/base/content/browser-pageActions.js
@@ -449,7 +449,7 @@ var BrowserPageActions = { @@ -451,6 +451,7 @@ var BrowserPageActions = {
document.getElementById(
action && this.urlbarButtonNodeIDForActionID(action.id)
), ),
- document.getElementById(this.mainButtonNode.id), document.getElementById(this.mainButtonNode.id),
+ document.getElementById("zen-site-data-icon-button"),
document.getElementById("identity-icon"), document.getElementById("identity-icon"),
+ document.getElementById("zen-site-data-icon-button"),
]; ];
for (let node of potentialAnchorNodes) { for (let node of potentialAnchorNodes) {
if (node && !node.hidden) {

View File

@@ -58,3 +58,4 @@
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script> <script type="text/javascript" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script> <script type="text/javascript" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaceCreation.mjs"></script> <script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaceCreation.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWindowSyncing.mjs"></script>

View File

@@ -42,6 +42,7 @@
content/browser/zen-components/ZenWorkspaceIcons.mjs (../../zen/workspaces/ZenWorkspaceIcons.mjs) content/browser/zen-components/ZenWorkspaceIcons.mjs (../../zen/workspaces/ZenWorkspaceIcons.mjs)
content/browser/zen-components/ZenWorkspace.mjs (../../zen/workspaces/ZenWorkspace.mjs) content/browser/zen-components/ZenWorkspace.mjs (../../zen/workspaces/ZenWorkspace.mjs)
content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs) content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs)
content/browser/zen-components/ZenWindowSyncing.mjs (../../zen/workspaces/ZenWindowSyncing.mjs)
content/browser/zen-components/ZenWorkspaceCreation.mjs (../../zen/workspaces/ZenWorkspaceCreation.mjs) content/browser/zen-components/ZenWorkspaceCreation.mjs (../../zen/workspaces/ZenWorkspaceCreation.mjs)
content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.mjs) content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.mjs)
content/browser/zen-components/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs) content/browser/zen-components/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs)

View File

@@ -16,20 +16,16 @@
mainview-with-header="true"> mainview-with-header="true">
<hbox id="zen-site-data-header"> <hbox id="zen-site-data-header">
<toolbarbutton id="zen-site-data-header-share" <toolbarbutton id="zen-site-data-header-share"
data-l10n-id="zen-site-data-header-share" data-l10n-id="zen-site-data-share"
flex="1" flex="1"
closemenu="none" /> closemenu="none" />
<toolbarbutton id="zen-site-data-header-reader-mode" <toolbarbutton id="zen-site-data-header-reader-mode"
data-l10n-id="zen-site-data-header-reader-mode"
command="View:ReaderView" command="View:ReaderView"
tooltip="dynamic-shortcut-tooltip"
flex="1" /> flex="1" />
<toolbarbutton id="zen-site-data-header-screenshot" <toolbarbutton id="zen-site-data-header-screenshot"
data-l10n-id="zen-site-data-header-screenshot"
command="Browser:Screenshot" command="Browser:Screenshot"
flex="1" /> flex="1" />
<toolbarbutton id="zen-site-data-header-bookmark" <toolbarbutton id="zen-site-data-header-bookmark"
data-l10n-id="zen-site-data-header-bookmark"
command="Browser:AddBookmarkAs" command="Browser:AddBookmarkAs"
flex="1" /> flex="1" />
</hbox> </hbox>
@@ -39,6 +35,10 @@
<label data-l10n-id="zen-generic-manage" id="zen-site-data-manage-addons" /> <label data-l10n-id="zen-generic-manage" id="zen-site-data-manage-addons" />
</hbox> </hbox>
<hbox class="panel-subview-body" context="unified-extensions-context-menu" id="zen-site-data-addons"> <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"> <vbox id="overflowed-extensions-list">
<!-- overflowed extension buttons from the nav-bar will go here --> <!-- overflowed extension buttons from the nav-bar will go here -->
</vbox> </vbox>
@@ -82,9 +82,6 @@
closemenu="none" closemenu="none"
context="zenSiteDataActions" /> context="zenSiteDataActions" />
</hbox> </hbox>
# Messages will be inserted here.
# Dont write anything directly here, even comments, as this may break the layout
<html:div id="unified-extensions-messages-container"></html:div>
</panelview> </panelview>
</panelmultiview> </panelmultiview>
</panel> </panel>

View File

@@ -1,12 +0,0 @@
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
index 2a2c5a6fe903694abbac0be86c7b3c8adc1d0275..5571b827198474a2635a9bd968adbc8c96dbc353 100644
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
@@ -776,6 +776,7 @@ export class FeatureCallout {
) {
return false;
}
+ if (el?.id === "zen-site-data-icon-button") return true;
const style = this.win.getComputedStyle(el);
return style?.visibility === "visible" && style?.display !== "none";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aab438565f 100644 index d9a059f608779fea7cd8c595a432f6fe95183e0c..09a7c4045afd0b96027d0bbbad22e02e52fd7b22 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs --- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -158,7 +158,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
continue; continue;
} }
- sum += parseFloat(style.marginLeft) + parseFloat(style.marginRight); - sum += parseFloat(style.marginLeft) + parseFloat(style.marginRight);
+ sum += parseFloat(style.marginLeft) + (win.gZenVerticalTabsManager._hasSetSingleToolbar ? Math.max(0, parseFloat(style.marginRight)) : parseFloat(style.marginRight)); + sum += parseFloat(style.marginLeft) + Math.max(0, parseFloat(style.marginRight));
if (child != aExceptChild) { if (child != aExceptChild) {
sum += getInlineSize(child); sum += getInlineSize(child);
} }
@@ -176,23 +176,17 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
}); });
lazy.log.debug( lazy.log.debug(
@@ -7909,7 +7909,14 @@ class OverflowableToolbar { @@ -7909,7 +7909,8 @@ class OverflowableToolbar {
Math.max(targetWidth, targetChildrenWidth) Math.max(targetWidth, targetChildrenWidth)
); );
totalAvailWidth = Math.ceil(totalAvailWidth); totalAvailWidth = Math.ceil(totalAvailWidth);
- let isOverflowing = targetContentWidth > totalAvailWidth; - let isOverflowing = targetContentWidth > totalAvailWidth;
+ if (win.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') return { isOverflowing: false, targetContentWidth, totalAvailWidth }; + if (win.gZenVerticalTabsManager._hasSetSingleToolbar && this.#toolbar.id == 'nav-bar') return { isOverflowing: false, targetContentWidth, totalAvailWidth };
+ let isOverflowing = targetContentWidth + (win.gZenVerticalTabsManager._hasSetSingleToolbar ? 0.1 : 0) > totalAvailWidth; + let isOverflowing = targetContentWidth + (win.gZenVerticalTabsManager._hasSetSingleToolbar ? 0.1 : 0) > totalAvailWidth;
+ if (win.gZenVerticalTabsManager._hasSetSingleToolbar &&
+ this.#target.id == 'zen-sidebar-top-buttons-customization-target' &&
+ Array.from(this.#target.children).filter(child => child.getAttribute("overflows") != "false").length == 1 &&
+ this.#overflowedInfo.size == 0) {
+ isOverflowing = false;
+ }
return { isOverflowing, targetContentWidth, totalAvailWidth }; return { isOverflowing, targetContentWidth, totalAvailWidth };
} }
@@ -7970,7 +7977,11 @@ class OverflowableToolbar { @@ -7970,7 +7971,11 @@ class OverflowableToolbar {
return; return;
} }
} }
@@ -205,7 +199,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
lazy.log.debug( lazy.log.debug(
`Need ${minSize} but width is ${totalAvailWidth} so bailing` `Need ${minSize} but width is ${totalAvailWidth} so bailing`
); );
@@ -8003,7 +8014,7 @@ class OverflowableToolbar { @@ -8003,7 +8008,7 @@ class OverflowableToolbar {
} }
} }
if (!inserted) { if (!inserted) {
@@ -214,7 +208,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
} }
child.removeAttribute("cui-anchorid"); child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem"); child.removeAttribute("overflowedItem");
@@ -8348,7 +8359,7 @@ class OverflowableToolbar { @@ -8348,7 +8353,7 @@ class OverflowableToolbar {
break; break;
} }
case "mousedown": { case "mousedown": {

View File

@@ -1,12 +0,0 @@
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
index 773f595e89e268578ba153907babec95b58a155a..abe86fc3d243a85c4a8dbee854a2d0130f7270fd 100644
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
@@ -937,6 +937,7 @@ export class AsyncTabSwitcher {
return !(
this.tabbrowser._printPreviewBrowsers.has(browser) ||
lazy.PictureInPicture.isOriginatingBrowser(browser)
+ || browser?.hasAttribute('zen-glance-background')
);
}

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d355858bcf37b 100644 index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..b286fc5b40a6e32a3af0bb0f209e58c64ab7bed9 100644
--- a/browser/components/urlbar/UrlbarInput.sys.mjs --- a/browser/components/urlbar/UrlbarInput.sys.mjs
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () => @@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
@@ -122,13 +122,14 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
// Enable the animation only after the first extend call to ensure it // Enable the animation only after the first extend call to ensure it
// doesn't run when opening a new window. // doesn't run when opening a new window.
if (!this.hasAttribute("breakout-extend-animate")) { if (!this.hasAttribute("breakout-extend-animate")) {
@@ -2331,6 +2396,24 @@ export class UrlbarInput { @@ -2331,6 +2396,25 @@ export class UrlbarInput {
return; return;
} }
+ if (this._zenHandleUrlbarClose) { + if (this._zenHandleUrlbarClose) {
+ this._zenHandleUrlbarClose(); + this._zenHandleUrlbarClose();
+ } + }
+ this.window.gZenUIManager.onUrlbarClose();
+ +
+ // Arc like URLbar: Blur the input on exit + // Arc like URLbar: Blur the input on exit
+ const zenToolbox = this.document.getElementById("navigator-toolbox"); + const zenToolbox = this.document.getElementById("navigator-toolbox");
@@ -141,22 +142,13 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
+ this.document.ownerGlobal.setTimeout(() => { + this.document.ownerGlobal.setTimeout(() => {
+ this.window.document.documentElement.removeAttribute("supress-primary-adjustment"); + this.window.document.documentElement.removeAttribute("supress-primary-adjustment");
+ }, 100); + }, 100);
+ this.window.gZenUIManager.onUrlbarClose(); +
+ this.removeAttribute("zen-floating-urlbar"); + this.removeAttribute("zen-floating-urlbar");
+ +
this.removeAttribute("breakout-extend"); this.removeAttribute("breakout-extend");
this.#updateTextboxPosition(); this.#updateTextboxPosition();
} }
@@ -2361,7 +2444,7 @@ export class UrlbarInput { @@ -2595,10 +2679,12 @@ export class UrlbarInput {
forceUnifiedSearchButtonAvailable = false
) {
let prevState = this.getAttribute("pageproxystate");
-
+ this.removeAttribute("had-proxystate");
this.setAttribute("pageproxystate", state);
this._inputContainer.setAttribute("pageproxystate", state);
this._identityBox?.setAttribute("pageproxystate", state);
@@ -2595,10 +2678,12 @@ export class UrlbarInput {
return; return;
} }
this.textbox.style.top = px( this.textbox.style.top = px(
@@ -169,7 +161,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
); );
} }
@@ -2658,9 +2743,10 @@ export class UrlbarInput { @@ -2658,9 +2744,10 @@ export class UrlbarInput {
return; return;
} }
@@ -181,7 +173,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
); );
this.textbox.style.setProperty( this.textbox.style.setProperty(
"--urlbar-height", "--urlbar-height",
@@ -3093,6 +3179,7 @@ export class UrlbarInput { @@ -3093,6 +3180,7 @@ export class UrlbarInput {
} }
_toggleActionOverride(event) { _toggleActionOverride(event) {
@@ -189,7 +181,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if ( if (
event.keyCode == KeyEvent.DOM_VK_SHIFT || event.keyCode == KeyEvent.DOM_VK_SHIFT ||
event.keyCode == KeyEvent.DOM_VK_ALT || event.keyCode == KeyEvent.DOM_VK_ALT ||
@@ -3197,7 +3284,7 @@ export class UrlbarInput { @@ -3197,7 +3285,7 @@ export class UrlbarInput {
return val; return val;
} }
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
@@ -198,7 +190,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
: val; : val;
// Only trim value if the directionality doesn't change to RTL and we're not // Only trim value if the directionality doesn't change to RTL and we're not
// showing a strikeout https protocol. // showing a strikeout https protocol.
@@ -3501,6 +3588,7 @@ export class UrlbarInput { @@ -3501,6 +3589,7 @@ export class UrlbarInput {
resultDetails = null, resultDetails = null,
browser = this.window.gBrowser.selectedBrowser browser = this.window.gBrowser.selectedBrowser
) { ) {
@@ -206,7 +198,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if (this.isAddressbar) { if (this.isAddressbar) {
this.#prepareAddressbarLoad( this.#prepareAddressbarLoad(
url, url,
@@ -3608,6 +3696,10 @@ export class UrlbarInput { @@ -3608,6 +3697,10 @@ export class UrlbarInput {
} }
reuseEmpty = true; reuseEmpty = true;
} }
@@ -217,7 +209,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if ( if (
where == "tab" && where == "tab" &&
reuseEmpty && reuseEmpty &&
@@ -3615,6 +3707,9 @@ export class UrlbarInput { @@ -3615,6 +3708,9 @@ export class UrlbarInput {
) { ) {
where = "current"; where = "current";
} }
@@ -227,7 +219,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
return where; return where;
} }
@@ -3872,6 +3967,7 @@ export class UrlbarInput { @@ -3872,6 +3968,7 @@ export class UrlbarInput {
this.setResultForCurrentValue(null); this.setResultForCurrentValue(null);
this.handleCommand(); this.handleCommand();
this.controller.clearLastQueryContextCache(); this.controller.clearLastQueryContextCache();
@@ -235,7 +227,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
this._suppressStartQuery = false; this._suppressStartQuery = false;
}); });
@@ -3879,7 +3975,6 @@ export class UrlbarInput { @@ -3879,7 +3976,6 @@ export class UrlbarInput {
contextMenu.addEventListener("popupshowing", () => { contextMenu.addEventListener("popupshowing", () => {
// Close the results pane when the input field contextual menu is open, // Close the results pane when the input field contextual menu is open,
// because paste and go doesn't want a result selection. // because paste and go doesn't want a result selection.
@@ -243,7 +235,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
let controller = let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste"); this.document.commandDispatcher.getControllerForCommand("cmd_paste");
@@ -3991,7 +4086,11 @@ export class UrlbarInput { @@ -3991,7 +4087,11 @@ export class UrlbarInput {
if (!engineName && !source && !this.hasAttribute("searchmode")) { if (!engineName && !source && !this.hasAttribute("searchmode")) {
return; return;
} }
@@ -256,7 +248,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if (this._searchModeIndicatorTitle) { if (this._searchModeIndicatorTitle) {
this._searchModeIndicatorTitle.textContent = ""; this._searchModeIndicatorTitle.textContent = "";
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id"); this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
@@ -4302,6 +4401,7 @@ export class UrlbarInput { @@ -4302,6 +4402,7 @@ export class UrlbarInput {
this.document.l10n.setAttributes( this.document.l10n.setAttributes(
this.inputField, this.inputField,
@@ -264,7 +256,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
l10nId, l10nId,
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
); );
@@ -4413,6 +4513,11 @@ export class UrlbarInput { @@ -4413,6 +4514,11 @@ export class UrlbarInput {
} }
_on_click(event) { _on_click(event) {
@@ -276,7 +268,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if ( if (
event.target == this.inputField || event.target == this.inputField ||
event.target == this._inputContainer event.target == this._inputContainer
@@ -4485,7 +4590,7 @@ export class UrlbarInput { @@ -4485,7 +4591,7 @@ export class UrlbarInput {
} }
} }
@@ -285,7 +277,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
this.view.autoOpen({ event }); this.view.autoOpen({ event });
} else { } else {
if (this._untrimOnFocusAfterKeydown) { if (this._untrimOnFocusAfterKeydown) {
@@ -4525,9 +4630,16 @@ export class UrlbarInput { @@ -4525,9 +4631,16 @@ export class UrlbarInput {
} }
_on_mousedown(event) { _on_mousedown(event) {
@@ -303,7 +295,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
if ( if (
event.target != this.inputField && event.target != this.inputField &&
@@ -4538,6 +4650,10 @@ export class UrlbarInput { @@ -4538,6 +4651,10 @@ export class UrlbarInput {
this.focusedViaMousedown = !this.focused; this.focusedViaMousedown = !this.focused;
this._preventClickSelectsAll = this.focused; this._preventClickSelectsAll = this.focused;
@@ -314,7 +306,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
// Keep the focus status, since the attribute may be changed // Keep the focus status, since the attribute may be changed
// upon calling this.focus(). // upon calling this.focus().
@@ -4573,7 +4689,7 @@ export class UrlbarInput { @@ -4573,7 +4690,7 @@ export class UrlbarInput {
} }
// Don't close the view when clicking on a tab; we may want to keep the // 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. // view open on tab switch, and the TabSelect event arrived earlier.
@@ -323,7 +315,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
break; break;
} }
@@ -4890,7 +5006,7 @@ export class UrlbarInput { @@ -4890,7 +5007,7 @@ export class UrlbarInput {
// When we are in actions search mode we can show more results so // When we are in actions search mode we can show more results so
// increase the limit. // increase the limit.
let maxResults = let maxResults =

View File

@@ -544,12 +544,6 @@ groupbox h2 {
} }
} }
@media (max-width: 1320px) {
#zenLayoutList {
flex-wrap: wrap;
}
}
/* Disable mozilla's settings */ /* Disable mozilla's settings */
#dataCollectionCategory, #dataCollectionCategory,

View File

@@ -1,16 +1,8 @@
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf5ecbd642 100644 index e06addf1602dc26ff4e75a8db6251231690f3f80..86e2cd0194bb37fa140a2f93eccfdd61419a9aec 100644
--- a/browser/themes/shared/tabbrowser/content-area.css --- a/browser/themes/shared/tabbrowser/content-area.css
+++ b/browser/themes/shared/tabbrowser/content-area.css +++ b/browser/themes/shared/tabbrowser/content-area.css
@@ -134,7 +134,6 @@ @@ -276,7 +276,7 @@
}
browser:is([blank], [pendingpaint]) {
- opacity: 0;
}
browser[type="content"] {
@@ -276,7 +275,7 @@
.dialogStack { .dialogStack {
z-index: var(--browser-stack-z-index-dialog-stack); z-index: var(--browser-stack-z-index-dialog-stack);

View File

@@ -1,24 +0,0 @@
diff --git a/toolkit/content/widgets/panel.js b/toolkit/content/widgets/panel.js
index 1dd4fc2a839fc6fde1ce2fc6437625e8d22bbb90..04fcb049225148f1b1f9c4b16cf2d2537887fbec 100644
--- a/toolkit/content/widgets/panel.js
+++ b/toolkit/content/widgets/panel.js
@@ -138,6 +138,9 @@
this.anchorNode.closest("toolbarbutton, .anchor-root") ||
this.anchorNode;
anchorRoot.setAttribute("open", "true");
+ if (anchorRoot.closest("#urlbar") && window.gURLBar) {
+ gURLBar.setAttribute("has-popup-open", "true");
+ }
}
if (this.getAttribute("animate") != "false") {
@@ -208,6 +211,9 @@
this.anchorNode.closest("toolbarbutton, .anchor-root") ||
this.anchorNode;
anchorRoot.removeAttribute("open");
+ if (anchorRoot.closest("#urlbar") && window.gURLBar) {
+ gURLBar.removeAttribute("has-popup-open");
+ }
}
}

View File

@@ -69,12 +69,12 @@ export var ZenCustomizableUI = new (class {
addon-webext-overflowtarget="overflowed-extensions-list" addon-webext-overflowtarget="overflowed-extensions-list"
mode="icons"> mode="icons">
<hbox id="zen-sidebar-top-buttons-customization-target" class="customization-target" flex="1"> <hbox id="zen-sidebar-top-buttons-customization-target" class="customization-target" flex="1">
<toolbaritem id="zen-toggle-compact-mode" removable="true" data-l10n-id="zen-toggle-compact-mode-button"> <toolbaritem id="zen-toggle-compact-mode" removable="true">
<toolbarbutton <toolbarbutton
class="toolbarbutton-1" class="toolbarbutton-1"
command="cmd_toggleCompactModeIgnoreHover" command="cmd_toggleCompactModeIgnoreHover"
data-l10n-id="zen-toggle-compact-mode-button" flex="1"
flex="1" /> data-l10n-id="zen-toggle-compact-mode-button" />
</toolbaritem> </toolbaritem>
<html:div id="zen-sidebar-top-buttons-separator" skipintoolbarset="true" overflows="false"></html:div> <html:div id="zen-sidebar-top-buttons-separator" skipintoolbarset="true" overflows="false"></html:div>
</hbox> </hbox>

View File

@@ -24,11 +24,11 @@
const { exists: shouldExist = true } = descendantSelectors; const { exists: shouldExist = true } = descendantSelectors;
if (exists === shouldExist) { if (exists === shouldExist) {
if (!element.hasAttribute(stateAttribute)) { if (!element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, true, stateAttribute); element.setAttribute(stateAttribute, 'true');
} }
} else { } else {
if (element.hasAttribute(stateAttribute)) { if (element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, false, stateAttribute); element.removeAttribute(stateAttribute);
} }
} }
}; };

View File

@@ -275,18 +275,15 @@ var gZenUIManager = {
// Section: URL bar // Section: URL bar
onUrlbarOpen() { onUrlbarOpen() {
setTimeout(() => { gURLBar.setAttribute('had-proxystate', gURLBar.getAttribute('pageproxystate'));
const hadValid = gURLBar.getAttribute('pageproxystate') === 'valid'; gURLBar.setPageProxyState('invalid', false);
gURLBar.setPageProxyState('invalid', false);
gURLBar.setAttribute('had-proxystate', hadValid);
}, 0);
}, },
onUrlbarClose() { onUrlbarClose() {
if (gURLBar.getAttribute('had-proxystate') == 'true') { if (gURLBar.hasAttribute('had-proxystate')) {
gURLBar.setPageProxyState('valid', false); gURLBar.setURI();
gURLBar.removeAttribute('had-proxystate');
} }
gURLBar.removeAttribute('had-proxystate');
}, },
onUrlbarSearchModeChanged(event) { onUrlbarSearchModeChanged(event) {

View File

@@ -133,16 +133,12 @@
} }
:root:not([zen-single-toolbar='true']) #zen-appcontent-wrapper { :root:not([zen-single-toolbar='true']) #zen-appcontent-wrapper {
z-index: 3; z-index: 2;
} }
#nav-bar { :root[zen-single-toolbar='true'] #nav-bar {
border-top-color: transparent !important; border-top: none !important;
--zen-toolbar-height: 37px;
:root[zen-single-toolbar='true'] & {
border-top: none !important;
--zen-toolbar-height: 37px;
}
} }
#zen-main-app-wrapper { #zen-main-app-wrapper {
@@ -247,7 +243,6 @@
@media (-moz-platform: macos) { @media (-moz-platform: macos) {
:root[zen-window-buttons-reversed='true'][zen-right-side='true'] .titlebar-buttonbox-container { :root[zen-window-buttons-reversed='true'][zen-right-side='true'] .titlebar-buttonbox-container {
margin-inline-start: max(calc(var(--zen-element-separation) - 3px), 4px); margin-inline-start: max(calc(var(--zen-element-separation) - 3px), 4px);
margin-block: auto;
} }
} }

View File

@@ -136,20 +136,16 @@
} }
.identity-box-button, .identity-box-button,
.urlbar-page-action { #zen-copy-url-button {
opacity: 0; opacity: 0;
height: 100%; /* To still be able to open popups */ transition:
opacity 0.15s,
visibility 0.15s;
visibility: collapse; visibility: collapse;
height: 100%; /* To still be able to open popups */
:root:not([supress-primary-adjustment='true']) & {
transition:
opacity 0.15s,
visibility 0.15s;
}
#navigator-toolbox:hover &, #navigator-toolbox:hover &,
&[open], &[open],
#urlbar[has-popup-open='true'] &,
#identity-box[pageproxystate='invalid'] & { #identity-box[pageproxystate='invalid'] & {
opacity: 1; opacity: 1;
visibility: visible; visibility: visible;
@@ -300,6 +296,13 @@
:root[zen-single-toolbar='true'] { :root[zen-single-toolbar='true'] {
--urlbar-icon-border-radius: 8px !important; --urlbar-icon-border-radius: 8px !important;
.urlbar-page-action:not([open]):not([showing]):not(
:is(#zen-copy-url-button, #identity-permission-box)
),
#tracking-protection-icon-container {
display: none;
}
#identity-permission-box > *:not(#zen-site-data-icon-button) { #identity-permission-box > *:not(#zen-site-data-icon-button) {
visibility: collapse; visibility: collapse;
} }
@@ -310,7 +313,7 @@
#urlbar:not([breakout-extend='true']) { #urlbar:not([breakout-extend='true']) {
#identity-box:not([pageproxystate='invalid']) { #identity-box:not([pageproxystate='invalid']) {
order: 2; order: 9;
} }
} }
@@ -739,9 +742,7 @@
* them into a single, unified button */ * them into a single, unified button */
#reader-mode-button, #reader-mode-button,
#urlbar-go-button, #urlbar-go-button,
#star-button-box, #star-button-box {
#picture-in-picture-button,
#pageActionButton:not([open]) {
display: none !important; display: none !important;
} }

View File

@@ -33,12 +33,6 @@
display: none !important; display: none !important;
} }
/* hide Mozilla services from the app menu */
#PanelUI-fxa-menu-services,
#PanelUI-fxa-cta-menu {
display: none !important;
}
body > #confetti { body > #confetti {
z-index: 1; z-index: 1;
} }
@@ -296,23 +290,16 @@ body > #confetti {
--arrowpanel-menuitem-border-radius: 10px; --arrowpanel-menuitem-border-radius: 10px;
} }
#unified-extensions-messages-container {
display: none;
}
#zen-site-data-addons { #zen-site-data-addons {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
gap: 8px; gap: 8px;
overflow: visible; overflow: visible;
unified-extensions-item-messagebar-wrapper,
.unified-extensions-item-contents {
display: none !important;
}
&[overflowing='true'] {
overflow-x: auto;
max-height: 420px;
mask-image: linear-gradient(to top, transparent, black 5%);
}
.unified-extensions-item-name, .unified-extensions-item-name,
.unified-extensions-item-message, .unified-extensions-item-message,
.unified-extensions-item-message-hover, .unified-extensions-item-message-hover,
@@ -339,11 +326,6 @@ body > #confetti {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
border-radius: 6px; border-radius: 6px;
@media not (-moz-platform: macos) {
border-radius: 4px;
}
transition: transition:
background-color 0.1s ease-in-out, background-color 0.1s ease-in-out,
transform 0.12s ease-in-out; transform 0.12s ease-in-out;
@@ -503,10 +485,6 @@ body > #confetti {
padding: 8px; padding: 8px;
padding-bottom: 0; padding-bottom: 0;
:root[zen-single-toolbar='true']:not([zen-right-side='true']) & {
flex-direction: row-reverse;
}
& toolbarbutton { & toolbarbutton {
margin: 0; margin: 0;
appearance: none; appearance: none;
@@ -537,27 +515,18 @@ body > #confetti {
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
@media (-moz-platform: macos) { background: linear-gradient(
background: linear-gradient( to bottom,
to bottom, light-dark(rgb(255, 255, 255), rgb(34, 34, 34)),
light-dark(rgb(255, 255, 255), rgb(34, 34, 34)), light-dark(rgb(246, 246, 246), rgb(21, 21, 21))
light-dark(rgb(246, 246, 246), rgb(21, 21, 21)) );
);
box-shadow:
0px 2px 4px rgba(0, 0, 0, 0.075),
inset 0px 1px 0px light-dark(transparent, rgba(255, 255, 255, 0.15));
border-radius: 6px;
--base-border-color: light-dark(rgba(0, 0, 0, 0.175), rgba(255, 255, 255, 0.1));
border: 1px solid light-dark(var(--base-border-color), rgb(21, 21, 21));
}
@media not (-moz-platform: macos) {
border-radius: 4px;
background-color: color-mix(in srgb, currentcolor 6%, transparent);
}
transition: transform 0.12s ease-in-out; transition: transform 0.12s ease-in-out;
box-shadow:
0px 2px 4px rgba(0, 0, 0, 0.075),
inset 0px 1px 0px light-dark(transparent, rgba(255, 255, 255, 0.15));
border-radius: 6px;
--base-border-color: light-dark(rgba(0, 0, 0, 0.175), rgba(255, 255, 255, 0.1));
border: 1px solid light-dark(var(--base-border-color), rgb(21, 21, 21));
box-sizing: border-box; box-sizing: border-box;
will-change: transform; will-change: transform;
} }
@@ -584,10 +553,6 @@ body > #confetti {
margin: 6px 0; margin: 6px 0;
} }
#unified-extensions-messages-container:empty {
display: none;
}
/* Overflow panel */ /* Overflow panel */
#widget-overflow-mainView { #widget-overflow-mainView {
--menu-panel-width-wide: 200px; --menu-panel-width-wide: 200px;

View File

@@ -195,8 +195,7 @@
/* Transitions */ /* Transitions */
--zen-tabbox-element-indent-transition: margin-inline-start 0.1s ease-in-out; --zen-tabbox-element-indent-transition: margin-inline-start 0.1s ease-in-out;
--zen-hidden-toolbar-transition-duration: 0.15s; --zen-hidden-toolbar-transition: 0.15s ease-in-out;
--zen-hidden-toolbar-transition: var(--zen-hidden-toolbar-transition-duration) ease-in-out;
/* XUL */ /* XUL */
--zen-main-browser-background: light-dark(rgb(235, 235, 235), #1b1b1b); --zen-main-browser-background: light-dark(rgb(235, 235, 235), #1b1b1b);

View File

@@ -143,7 +143,6 @@ var gZenCompactModeManager = {
}, },
addHasPolyfillObserver() { addHasPolyfillObserver() {
const attributes = ['panelopen', 'open', 'breakout-extend', 'zen-floating-urlbar'];
this.sidebarObserverId = ZenHasPolyfill.observeSelectorExistence( this.sidebarObserverId = ZenHasPolyfill.observeSelectorExistence(
this.sidebar, this.sidebar,
[ [
@@ -153,21 +152,8 @@ var gZenCompactModeManager = {
}, },
], ],
'zen-compact-mode-active', 'zen-compact-mode-active',
attributes ['panelopen', 'open', 'breakout-extend', 'zen-floating-urlbar']
); );
this.toolbarObserverId = ZenHasPolyfill.observeSelectorExistence(
document.getElementById('zen-appcontent-navbar-wrapper'),
[
{
selector:
":is([panelopen='true'], [open='true'], #urlbar:focus-within, [breakout-extend='true']):not(.zen-compact-mode-ignore)",
},
],
'zen-compact-mode-active',
attributes
);
// Always connect this observer, we need it even if compact mode is disabled
ZenHasPolyfill.connectObserver(this.toolbarObserverId);
}, },
flashSidebarIfNecessary(aInstant = false) { flashSidebarIfNecessary(aInstant = false) {
@@ -216,7 +202,7 @@ var gZenCompactModeManager = {
}, },
updateCompactModeContext(isSingleToolbar) { updateCompactModeContext(isSingleToolbar) {
const isIllegalState = this.checkIfIllegalState(); isSingleToolbar ||= this.checkIfIllegalState();
const menuitem = document.getElementById('zen-context-menu-compact-mode-toggle'); const menuitem = document.getElementById('zen-context-menu-compact-mode-toggle');
const menu = document.getElementById('zen-context-menu-compact-mode'); const menu = document.getElementById('zen-context-menu-compact-mode');
if (isSingleToolbar) { if (isSingleToolbar) {
@@ -226,14 +212,6 @@ var gZenCompactModeManager = {
menu.removeAttribute('hidden'); menu.removeAttribute('hidden');
menu.querySelector('menupopup').prepend(menuitem); menu.querySelector('menupopup').prepend(menuitem);
} }
const hideToolbarMenuItem = document.getElementById(
'zen-context-menu-compact-mode-hide-toolbar'
);
if (isIllegalState) {
hideToolbarMenuItem.setAttribute('disabled', 'true');
} else {
hideToolbarMenuItem.removeAttribute('disabled');
}
}, },
hideSidebar() { hideSidebar() {
@@ -623,7 +601,7 @@ var gZenCompactModeManager = {
}, },
_setElementExpandAttribute(element, value, attr = 'zen-has-hover') { _setElementExpandAttribute(element, value, attr = 'zen-has-hover') {
const kVerifiedAttributes = ['zen-has-hover', 'has-popup-menu', 'zen-compact-mode-active']; const kVerifiedAttributes = ['zen-has-hover', 'has-popup-menu'];
const isToolbar = element.id === 'zen-appcontent-navbar-wrapper'; const isToolbar = element.id === 'zen-appcontent-navbar-wrapper';
if (value) { if (value) {
element.setAttribute(attr, 'true'); element.setAttribute(attr, 'true');
@@ -634,7 +612,8 @@ var gZenCompactModeManager = {
document.documentElement.hasAttribute('zen-has-bookmarks'))) || document.documentElement.hasAttribute('zen-has-bookmarks'))) ||
(this.preference && (this.preference &&
Services.prefs.getBoolPref('zen.view.compact.hide-toolbar') && Services.prefs.getBoolPref('zen.view.compact.hide-toolbar') &&
!gZenVerticalTabsManager._hasSetSingleToolbar)) !gZenVerticalTabsManager._hasSetSingleToolbar &&
!gURLBar.hasAttribute('breakout-extend')))
) { ) {
gBrowser.tabpanels.setAttribute('has-toolbar-hovered', 'true'); gBrowser.tabpanels.setAttribute('has-toolbar-hovered', 'true');
} }

View File

@@ -35,8 +35,7 @@
overflow: clip; overflow: clip;
& #urlbar:not([breakout-extend='true']) { & #urlbar:not([breakout-extend='true']) {
/* Sometimes, "opacity: 1" is forced elsewhere */ opacity: 0;
opacity: 0 !important;
pointer-events: none; pointer-events: none;
transition: opacity var(--zen-hidden-toolbar-transition); transition: opacity var(--zen-hidden-toolbar-transition);
} }
@@ -49,18 +48,20 @@
} }
} }
& #zen-appcontent-navbar-wrapper:is( & #zen-appcontent-navbar-wrapper[zen-has-hover],
[zen-has-hover], & #zen-appcontent-navbar-wrapper[has-popup-menu],
[has-popup-menu], &
[zen-compact-mode-active] #zen-appcontent-navbar-wrapper:has(
) { *:is([panelopen='true'], [open='true'], #urlbar:focus-within, [breakout-extend='true']):not(.zen-compact-mode-ignore)
) {
height: var(--zen-toolbar-height-with-bookmarks); height: var(--zen-toolbar-height-with-bookmarks);
overflow: inherit; overflow: inherit;
%include windows-captions-fix-active.inc.css %include windows-captions-fix-active.inc.css
& #urlbar { & #urlbar {
opacity: 1 !important; opacity: 1;
pointer-events: auto; pointer-events: auto;
} }

View File

@@ -5,6 +5,6 @@
*/ */
& .titlebar-buttonbox-container { & .titlebar-buttonbox-container {
max-height: 100%; visibility: visible;
transition: none; transition: none;
} }

View File

@@ -5,15 +5,9 @@
*/ */
& .titlebar-buttonbox-container { & .titlebar-buttonbox-container {
max-height: 0px; display: collapse;
/* We need to hide them since on Windows the native /* We need to hide them since on Windows the native
* panels when hovering over them can interfere with the * panels when hovering over them can interfere with the
* web content */ * web content */
transition: max-height 0s; transition: visibility var(--zen-hidden-toolbar-transition);
transition-delay: calc(var(--zen-hidden-toolbar-transition-duration) + 0.2s);
& .titlebar-button {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
} }

View File

@@ -24,9 +24,6 @@
#duringOpening = false; #duringOpening = false;
#ignoreClose = false; #ignoreClose = false;
// Click handling
#lastLinkClickData = { clientX: 0, clientY: 0, height: 0, width: 0 };
// Arc animation configuration // Arc animation configuration
#ARC_CONFIG = Object.freeze({ #ARC_CONFIG = Object.freeze({
ARC_STEPS: 70, // Increased for smoother bounce ARC_STEPS: 70, // Increased for smoother bounce
@@ -247,7 +244,7 @@
{ {
duration: 0.3, duration: 0.3,
type: 'spring', type: 'spring',
delay: 0.2, delay: 0.15,
bounce: 0, bounce: 0,
} }
); );
@@ -271,31 +268,10 @@
data.height data.height
); );
return await this.#imageBitmapToBase64( return await this.#imageBitmapToBase64(
await window.browsingContext.currentWindowGlobal.drawSnapshot( await window.browsingContext.currentWindowGlobal.drawSnapshot(rect, 1, 'transparent', true)
rect,
1,
'transparent',
undefined
)
); );
} }
/**
* Set the last link click data
* @param {Object} data - The link click data
*/
set lastLinkClickData(data) {
this.#lastLinkClickData = data;
}
/**
* Get the last link click data
* @returns {Object} The last link click data
*/
get lastLinkClickData() {
return this.#lastLinkClickData;
}
/** /**
* Open a glance overlay with the specified data * Open a glance overlay with the specified data
* @param {Object} data - Glance data including URL, position, and dimensions * @param {Object} data - Glance data including URL, position, and dimensions
@@ -313,13 +289,6 @@
return; return;
} }
if (!data.height || !data.width) {
data = {
...data,
...this.lastLinkClickData,
};
}
this.#setAnimationState(true); this.#setAnimationState(true);
const currentTab = ownerTab ?? gBrowser.selectedTab; const currentTab = ownerTab ?? gBrowser.selectedTab;
const browserElement = this.#createBrowserElement(data.url, currentTab, existingTab); const browserElement = this.#createBrowserElement(data.url, currentTab, existingTab);
@@ -356,13 +325,12 @@
gZenViewSplitter.onLocationChange(browserElement); gZenViewSplitter.onLocationChange(browserElement);
this.#prepareGlanceAnimation(data, browserElement); this.#prepareGlanceAnimation(data, browserElement);
if (data.width && data.height) { if (data.width && data.height) {
// It is guaranteed that we will animate this opacity later on
// when we start animating the glance.
this.contentWrapper.style.opacity = 0;
data.elementData = await this.#getElementPreviewData(data); data.elementData = await this.#getElementPreviewData(data);
} }
this.#glances.get(this.#currentGlanceID).elementData = data.elementData; this.#glances.get(this.#currentGlanceID).elementData = data.elementData;
this.#executeGlanceAnimation(data, browserElement, resolve); window.requestAnimationFrame(() => {
this.#executeGlanceAnimation(data, browserElement, resolve);
});
}); });
} }
@@ -376,6 +344,7 @@
const newButtons = this.#createNewOverlayButtons(); const newButtons = this.#createNewOverlayButtons();
this.browserWrapper.appendChild(newButtons); this.browserWrapper.appendChild(newButtons);
this.#animateParentBackground();
this.#setupGlancePositioning(data); this.#setupGlancePositioning(data);
this.#configureBrowserElement(browserElement); this.#configureBrowserElement(browserElement);
} }
@@ -434,16 +403,6 @@
}; };
} }
#createGlancePreviewElement(src) {
const imageDataElement = document.createXULElement('image');
imageDataElement.setAttribute('src', src);
const parent = document.createElement('div');
parent.classList.add('zen-glance-element-preview');
parent.appendChild(imageDataElement);
return parent;
}
/** /**
* Handle element preview if provided * Handle element preview if provided
* @param {Object} data - Glance data * @param {Object} data - Glance data
@@ -454,7 +413,13 @@
return null; return null;
} }
const imageDataElement = this.#createGlancePreviewElement(data.elementData); const imageDataElement = document.createXULElement('image');
imageDataElement.setAttribute('src', data.elementData);
imageDataElement.classList.add('zen-glance-element-preview');
// set an aspect ratio to prevent stretching during animation
imageDataElement.style.aspectRatio = `${data.width} / ${data.height}`;
this.browserWrapper.prepend(imageDataElement); this.browserWrapper.prepend(imageDataElement);
this.#glances.get(this.#currentGlanceID).elementImageData = data.elementData; this.#glances.get(this.#currentGlanceID).elementImageData = data.elementData;
@@ -464,7 +429,7 @@
opacity: [1, 0], opacity: [1, 0],
}, },
{ {
duration: 0.25, duration: 0.3,
easing: 'easeInOut', easing: 'easeInOut',
} }
); );
@@ -523,6 +488,7 @@
// nice fade-in effect to the content. But if it doesn't exist, // nice fade-in effect to the content. But if it doesn't exist,
// we just fall back to always showing the browser directly. // we just fall back to always showing the browser directly.
if (data.elementData) { if (data.elementData) {
this.contentWrapper.style.opacity = 0;
gZenUIManager.motion gZenUIManager.motion
.animate( .animate(
this.contentWrapper, this.contentWrapper,
@@ -537,7 +503,6 @@
}); });
} }
this.#animateParentBackground();
gZenUIManager.motion gZenUIManager.motion
.animate(this.browserWrapper, arcSequence, { .animate(this.browserWrapper, arcSequence, {
duration: gZenUIManager.testingEnabled ? 0 : 0.4, duration: gZenUIManager.testingEnabled ? 0 : 0.4,
@@ -952,7 +917,7 @@
const originalPosition = this.#glances.get(this.#currentGlanceID).originalPosition; const originalPosition = this.#glances.get(this.#currentGlanceID).originalPosition;
const elementImageData = this.#glances.get(this.#currentGlanceID).elementImageData; const elementImageData = this.#glances.get(this.#currentGlanceID).elementImageData;
this.#addElementPreview(elementImageData); this.#addElementPreview(elementImageData, originalPosition);
// Create curved closing animation sequence // Create curved closing animation sequence
const closingData = this.#createClosingDataFromOriginalPosition(originalPosition); const closingData = this.#createClosingDataFromOriginalPosition(originalPosition);
@@ -994,10 +959,17 @@
/** /**
* Add element preview if available, used for the closing animation * Add element preview if available, used for the closing animation
* @param {string} elementImageData - The element image data * @param {string} elementImageData - The element image data
* @param {Object} rect - The rectangle data
*/ */
#addElementPreview(elementImageData) { #addElementPreview(elementImageData, rect) {
if (elementImageData) { if (elementImageData) {
const imageDataElement = this.#createGlancePreviewElement(elementImageData); const imageDataElement = document.createXULElement('image');
imageDataElement.setAttribute('src', elementImageData);
imageDataElement.classList.add('zen-glance-element-preview');
// set an aspect ratio to prevent stretching during animation
imageDataElement.style.aspectRatio = `${parseFloat(rect.width)} / ${parseFloat(rect.height)}`;
this.browserWrapper.prepend(imageDataElement); this.browserWrapper.prepend(imageDataElement);
} }
} }
@@ -1018,7 +990,7 @@
if (!onTabClose) { if (!onTabClose) {
this.quickCloseGlance({ clearID: false }); this.quickCloseGlance({ clearID: false });
} }
this.overlay.style.display = 'none'; this.browserWrapper.style.display = 'none';
this.overlay.removeAttribute('fade-out'); this.overlay.removeAttribute('fade-out');
this.browserWrapper.removeAttribute('animate'); this.browserWrapper.removeAttribute('animate');
@@ -1385,9 +1357,18 @@
* @param {Tab} tab - The tab to open glance for * @param {Tab} tab - The tab to open glance for
*/ */
#openGlanceForTab(tab) { #openGlanceForTab(tab) {
const browserRect = window.windowUtils.getBoundsWithoutFlushing(gBrowser.tabbox);
const clickPosition = gZenUIManager._lastClickPosition || {
clientX: browserRect.width / 2,
clientY: browserRect.height / 2,
};
this.openGlance( this.openGlance(
{ {
url: undefined, url: undefined,
...clickPosition,
width: 0,
height: 0,
}, },
tab, tab,
tab.owner tab.owner

View File

@@ -35,30 +35,22 @@ export class ZenGlanceChild extends JSWindowActorChild {
return !(event.ctrlKey ^ event.altKey ^ event.shiftKey ^ event.metaKey); return !(event.ctrlKey ^ event.altKey ^ event.shiftKey ^ event.metaKey);
} }
#openGlance(target) { openGlance(target, originalTarget) {
let url = target.href; let url = target.href;
// Add domain to relative URLs // Add domain to relative URLs
if (!url.match(/^(?:[a-z]+:)?\/\//i)) { if (!url.match(/^(?:[a-z]+:)?\/\//i)) {
url = this.contentWindow.location.origin + url; url = this.contentWindow.location.origin + url;
} }
this.sendAsyncMessage('ZenGlance:OpenGlance', {
url,
});
}
#sendClickDataToParent(target, element) {
if (!element || !target) {
return;
}
// Get the largest element we can get. If the `A` element // Get the largest element we can get. If the `A` element
// is a parent of the original target, use the anchor element, // is a parent of the original target, use the anchor element,
// otherwise use the original target. // otherwise use the original target.
let rect = element.getBoundingClientRect(); let rect = originalTarget.getBoundingClientRect();
const anchorRect = target.getBoundingClientRect(); const anchorRect = target.getBoundingClientRect();
if (anchorRect.width * anchorRect.height > rect.width * rect.height) { if (anchorRect.width * anchorRect.height > rect.width * rect.height) {
rect = anchorRect; rect = anchorRect;
} }
this.sendAsyncMessage('ZenGlance:RecordLinkClickData', { this.sendAsyncMessage('ZenGlance:OpenGlance', {
url,
clientX: rect.left, clientX: rect.left,
clientY: rect.top, clientY: rect.top,
width: rect.width, width: rect.width,
@@ -67,19 +59,7 @@ export class ZenGlanceChild extends JSWindowActorChild {
} }
handleClick(event) { handleClick(event) {
if (event.button !== 0 || event.defaultPrevented) { if (this.ensureOnlyKeyModifiers(event) || event.button !== 0 || event.defaultPrevented) {
return;
}
// get closest A element
const target = event.target.closest('A');
const elementToRecord = event.originalTarget || event.target;
// We record the link data anyway, even if the glance may be invoked
// or not. We have some cases where glance would open, for example,
// when clicking on a link with a different domain where glance would open.
// The problem is that at that stage we don't know the rect or even what
// element has been clicked, so we send the data here.
this.#sendClickDataToParent(target, elementToRecord);
if (this.ensureOnlyKeyModifiers(event)) {
return; return;
} }
const activationMethod = this.#activationMethod; const activationMethod = this.#activationMethod;
@@ -92,11 +72,13 @@ export class ZenGlanceChild extends JSWindowActorChild {
} else if (activationMethod === 'meta' && !event.metaKey) { } else if (activationMethod === 'meta' && !event.metaKey) {
return; return;
} }
// get closest A element
const target = event.target.closest('A');
if (target) { if (target) {
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
this.#openGlance(target); this.openGlance(target, event.originalTarget || event.target);
} }
} }

View File

@@ -23,10 +23,6 @@ export class ZenGlanceParent extends JSWindowActorParent {
this.browsingContext.topChromeWindow.gZenGlanceManager.closeGlance(params); this.browsingContext.topChromeWindow.gZenGlanceManager.closeGlance(params);
break; break;
} }
case 'ZenGlance:RecordLinkClickData': {
this.browsingContext.topChromeWindow.gZenGlanceManager.lastLinkClickData = message.data;
break;
}
default: default:
console.warn(`[glance]: Unknown message: ${message.name}`); console.warn(`[glance]: Unknown message: ${message.name}`);
} }

View File

@@ -174,14 +174,7 @@
height: 100%; height: 100%;
z-index: 0; z-index: 0;
border-radius: var(--zen-native-inner-radius); border-radius: var(--zen-native-inner-radius);
top: 0%; inset: 50%;
left: 50%; translate: -50% -50%;
translate: -50% 0%;
will-change: transform, opacity; will-change: transform, opacity;
background: rgba(255, 255, 255, 0.1);
& image {
width: 100%;
max-width: 100%;
}
} }

View File

@@ -294,7 +294,7 @@
} }
/* Hide #zen-media-focus-button if it doesn't fit in the toolbar */ /* Hide #zen-media-focus-button if it doesn't fit in the toolbar */
@container media-controls (max-width: 165px) { @container media-controls (max-width: 150px) {
#zen-media-focus-button { #zen-media-focus-button {
display: none; display: none;
} }

View File

@@ -0,0 +1,27 @@
// 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/.
const FILE_NAME = 'zen-sessions.jsonlz4';
export class nsZenSessionFile {
#path;
#windows;
constructor() {
this.#path = PathUtils.join(profileDir, FILE_NAME);
}
async read() {
try {
return await IOUtils.readJSON(this.#path, { compress: true });
} catch (e) {
return {};
}
}
async write(data) {
await IOUtils.writeJSON(this.#path, data, { compress: true });
}
}

View File

@@ -0,0 +1,50 @@
// 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/.
import {
cancelIdleCallback,
clearTimeout,
requestIdleCallback,
setTimeout,
} from 'resource://gre/modules/Timer.sys.mjs';
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
ZenSessionFile: 'resource://gre/modules/ZenSessionFile.sys.mjs',
PrivateBrowsingUtils: 'resource://gre/modules/PrivateBrowsingUtils.sys.mjs',
RunState: 'resource:///modules/sessionstore/RunState.sys.mjs',
});
class nsZenSessionManager {
#file;
constructor() {
this.#file = null;
}
get file() {
if (!this.#file) {
this.#file = lazy.ZenSessionFile;
}
return this.#file;
}
/**
* Saves the current session state. Collects data and writes to disk.
*
* @param forceUpdateAllWindows (optional)
* Forces us to recollect data for all windows and will bypass and
* update the corresponding caches.
*/
saveState(forceUpdateAllWindows = false) {
if (lazy.PrivateBrowsingUtils.permanentPrivateBrowsing) {
// Don't save (or even collect) anything in permanent private
// browsing mode
return Promise.resolve();
}
}
}
export const ZenSessionStore = new nsZenSessionManager();

View File

@@ -0,0 +1,35 @@
// 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/.
export class ZenSessionWindow {
#id;
#selectedWorkspace;
#selectedTab;
constructor(id) {
this.#id = id;
this.#selectedWorkspace = null;
this.#selectedTab = null;
}
get id() {
return this.#id;
}
get selectedWorkspace() {
return this.#selectedWorkspace;
}
set selectedWorkspace(workspace) {
this.#selectedWorkspace = workspace;
}
get selectedTab() {
return this.#selectedTab;
}
set selectedTab(tab) {
this.#selectedTab = tab;
}
}

View File

@@ -133,11 +133,8 @@ tab-group[split-view-group] {
} }
@container browser-tab (min-width: 70px) { @container browser-tab (min-width: 70px) {
:root[zen-sidebar-expanded='true'] &:hover > .tabbrowser-tab:not([pinned]:not([pending])) .tab-close-button { :root[zen-sidebar-expanded='true'] &:hover > .tabbrowser-tab:not([pinned]) .tab-close-button {
display: block !important; display: block !important;
/* This is from Firefox itself, but we need to always override it */
margin-inline-end: 0 !important;
} }
} }

View File

@@ -101,6 +101,7 @@
} }
onTabIconChanged(tab, url = null) { onTabIconChanged(tab, url = null) {
tab.dispatchEvent(new CustomEvent('ZenTabIconChanged', { bubbles: true, detail: { tab } }));
const iconUrl = url ?? tab.iconImage.src; const iconUrl = url ?? tab.iconImage.src;
if (!iconUrl && tab.hasAttribute('zen-pin-id')) { if (!iconUrl && tab.hasAttribute('zen-pin-id')) {
try { try {
@@ -883,7 +884,7 @@
); );
for (const tab of pinnedTabs) { for (const tab of pinnedTabs) {
if (allAreUnloaded && closeIfPending) { if (allAreUnloaded && closeIfPending) {
return await this.onCloseTabShortcut(event, tab, { behavior: 'close' }); return await this._onCloseTabShortcut(event, tab, { behavior: 'close' });
} }
} }
await gBrowser.explicitUnloadTabs(pinnedTabs); await gBrowser.explicitUnloadTabs(pinnedTabs);
@@ -1098,7 +1099,7 @@
const element = window.MozXULElement.parseXULToFragment(` const element = window.MozXULElement.parseXULToFragment(`
<menuitem id="context_zen-add-essential" <menuitem id="context_zen-add-essential"
data-l10n-id="tab-context-zen-add-essential" data-l10n-id="tab-context-zen-add-essential"
data-l10n-args='{"num": "0", "max": "${this.maxEssentialTabs}"}' data-l10n-args='{"num": "0", "max": "12"}'
hidden="true" hidden="true"
disabled="true" disabled="true"
command="cmd_contextZenAddToEssentials"/> command="cmd_contextZenAddToEssentials"/>
@@ -1555,6 +1556,7 @@
} }
async onTabLabelChanged(tab) { async onTabLabelChanged(tab) {
tab.dispatchEvent(new CustomEvent('ZenTabLabelChanged', { detail: { tab } }));
if (!this._pinsCache) { if (!this._pinsCache) {
return; return;
} }

View File

@@ -112,17 +112,5 @@
& #titlebar { & #titlebar {
padding-top: var(--zen-toolbar-height); padding-top: var(--zen-toolbar-height);
} }
& #nav-bar {
width: calc(100% + var(--zen-toolbox-max-width) - var(--zen-element-separation));
/**
* We only want it when the window buttons are on the left side, in other
* words, the first of the two selectors above.
*/
:root:not([zen-window-buttons-reversed='true']) & {
margin-left: calc(-1 * var(--zen-toolbox-max-width) + var(--zen-element-separation) + 4px);
}
}
} }
} }

View File

@@ -22,7 +22,9 @@ z-index: 1;
%include ../../compact-mode/windows-captions-fix-active.inc.css %include ../../compact-mode/windows-captions-fix-active.inc.css
&:not([zen-has-hover='true']):not([has-popup-menu]):not([zen-compact-mode-active]) { &:not([zen-has-hover='true']):not([has-popup-menu]):not(:focus-within):not(
:has(*:is([panelopen='true'], [open='true']))
) {
height: var(--zen-element-separation); height: var(--zen-element-separation);
opacity: 0; opacity: 0;
& #zen-appcontent-navbar-container { & #zen-appcontent-navbar-container {
@@ -30,6 +32,11 @@ z-index: 1;
} }
%include ../../compact-mode/windows-captions-fix-default.inc.css %include ../../compact-mode/windows-captions-fix-default.inc.css
& .titlebar-button {
padding-top: 0 !important;
padding-bottom: 0 !important;
}
} }
@media -moz-pref('zen.view.experimental-no-window-controls') { @media -moz-pref('zen.view.experimental-no-window-controls') {

View File

@@ -618,6 +618,12 @@
--tab-min-width: 48px !important; --tab-min-width: 48px !important;
--zen-toolbox-padding: 6px !important; --zen-toolbox-padding: 6px !important;
--zen-toolbox-max-width: calc(var(--tab-min-width) + var(--zen-toolbox-padding) * 2); --zen-toolbox-max-width: calc(var(--tab-min-width) + var(--zen-toolbox-padding) * 2);
/* We can't show the rename input properly in collapsed state,
so hide the workspace edit input */
#context_zenEditWorkspace {
display: none;
}
} }
#navigator-toolbox:not([zen-sidebar-expanded='true']) { #navigator-toolbox:not([zen-sidebar-expanded='true']) {
@@ -700,6 +706,7 @@
& #titlebar { & #titlebar {
display: grid; display: grid;
overflow: clip;
} }
& #zen-sidebar-top-buttons-customization-target { & #zen-sidebar-top-buttons-customization-target {
@@ -956,7 +963,7 @@
:root[zen-single-toolbar='true'] & { :root[zen-single-toolbar='true'] & {
--zen-toolbar-height: 36px; --zen-toolbar-height: 36px;
@media (-moz-platform: macos) { @media (-moz-platform: macos) {
--zen-toolbar-height: 38px; --zen-toolbar-height: 42px;
} }
& #PanelUI-button { & #PanelUI-button {

View File

@@ -127,16 +127,6 @@ export class nsZenSiteDataPanel {
this.#setSitePermissions(); this.#setSitePermissions();
this.#setSiteSecurityInfo(); this.#setSiteSecurityInfo();
this.#setSiteHeader(); this.#setSiteHeader();
this.#setAddonsOverflow();
}
#setAddonsOverflow() {
const addons = this.document.getElementById('zen-site-data-addons');
if (addons.getBoundingClientRect().height > 420) {
addons.setAttribute('overflowing', 'true');
} else {
addons.removeAttribute('overflowing');
}
} }
#setSiteHeader() { #setSiteHeader() {
@@ -363,15 +353,9 @@ export class nsZenSiteDataPanel {
switch (permission.state) { switch (permission.state) {
// There should only be these types being displayed in the panel. // There should only be these types being displayed in the panel.
case SitePermissions.ALLOW: case SitePermissions.ALLOW:
if (permission.id === 'site-protection') {
return 'zen-site-data-protections-enabled';
}
return 'zen-site-data-setting-allow'; return 'zen-site-data-setting-allow';
case SitePermissions.BLOCK: case SitePermissions.BLOCK:
case SitePermissions.AUTOPLAY_BLOCKED_ALL: case SitePermissions.AUTOPLAY_BLOCKED_ALL:
if (permission.id === 'site-protection') {
return 'zen-site-data-protections-disabled';
}
return 'zen-site-data-setting-block'; return 'zen-site-data-setting-block';
default: default:
return null; return null;
@@ -527,12 +511,12 @@ export class nsZenSiteDataPanel {
const isCrossSiteCookie = permission.id.startsWith('3rdPartyStorage'); const isCrossSiteCookie = permission.id.startsWith('3rdPartyStorage');
label.parentNode.setAttribute('state', newState == SitePermissions.ALLOW ? 'allow' : 'block'); label.parentNode.setAttribute('state', newState == SitePermissions.ALLOW ? 'allow' : 'block');
label._permission.state = newState;
if (!isCrossSiteCookie) { if (!isCrossSiteCookie) {
label label
.querySelector('.zen-permission-popup-permission-state-label') .querySelector('.zen-permission-popup-permission-state-label')
.setAttribute('data-l10n-id', this.#getPermissionStateLabelId(label._permission)); .setAttribute('data-l10n-id', this.#getPermissionStateLabelId({ state: newState }));
} }
label._permission.state = newState;
} }
#onClickEvent(event) { #onClickEvent(event) {
@@ -596,6 +580,7 @@ export class nsZenSiteDataPanel {
}; };
checkEmptyTab(); checkEmptyTab();
}); });
this.anchor.setAttribute('open', 'true');
const callout = new FeatureCallout({ const callout = new FeatureCallout({
win: this.window, win: this.window,
location: 'chrome', location: 'chrome',
@@ -624,6 +609,13 @@ export class nsZenSiteDataPanel {
callout_attachment: 'topleft', callout_attachment: 'topleft',
}, },
}, },
{
selector: '#identity-icon-box',
panel_position: {
anchor_attachment: 'bottomcenter',
callout_attachment: 'topleft',
},
},
], ],
content: { content: {
position: 'callout', position: 'callout',

View File

@@ -1305,13 +1305,12 @@
// Do not rebuild if the workspace is not the same as the current one // Do not rebuild if the workspace is not the same as the current one
const windowWorkspace = await browser.gZenWorkspaces.getActiveWorkspace(); const windowWorkspace = await browser.gZenWorkspaces.getActiveWorkspace();
if (windowWorkspace.uuid !== uuid) { if (windowWorkspace.uuid !== uuid && theme !== null) {
return; return;
} }
// get the theme from the window // get the theme from the window
workspaceTheme = this.fixTheme(theme || windowWorkspace.theme); workspaceTheme = this.fixTheme(theme || windowWorkspace.theme);
const docElement = browser.document.documentElement;
if (!skipUpdate) { if (!skipUpdate) {
for (const dot of browser.gZenThemePicker.panel.querySelectorAll( for (const dot of browser.gZenThemePicker.panel.querySelectorAll(
@@ -1329,15 +1328,17 @@
} }
if (!skipUpdate) { if (!skipUpdate) {
docElement.style.setProperty( browser.document.documentElement.style.setProperty(
'--zen-main-browser-background-old', '--zen-main-browser-background-old',
docElement.style.getPropertyValue('--zen-main-browser-background') browser.document.documentElement.style.getPropertyValue('--zen-main-browser-background')
); );
docElement.style.setProperty( browser.document.documentElement.style.setProperty(
'--zen-main-browser-background-toolbar-old', '--zen-main-browser-background-toolbar-old',
docElement.style.getPropertyValue('--zen-main-browser-background-toolbar') browser.document.documentElement.style.getPropertyValue(
'--zen-main-browser-background-toolbar'
)
); );
docElement.style.setProperty( browser.document.documentElement.style.setProperty(
'--zen-background-opacity', '--zen-background-opacity',
browser.gZenThemePicker.previousBackgroundOpacity ?? 1 browser.gZenThemePicker.previousBackgroundOpacity ?? 1
); );
@@ -1460,9 +1461,16 @@
} }
} }
docElement.style.setProperty('--zen-main-browser-background-toolbar', gradientToolbar); browser.document.documentElement.style.setProperty(
docElement.style.setProperty('--zen-main-browser-background', gradient); '--zen-main-browser-background-toolbar',
gradientToolbar
);
browser.document.documentElement.style.setProperty(
'--zen-main-browser-background',
gradient
);
const isDarkModeWindow = browser.gZenThemePicker.isDarkMode; const isDarkModeWindow = browser.gZenThemePicker.isDarkMode;
const docElement = browser.document.documentElement;
if (isDefaultTheme) { if (isDefaultTheme) {
docElement.setAttribute('zen-default-theme', 'true'); docElement.setAttribute('zen-default-theme', 'true');
} else { } else {
@@ -1491,7 +1499,7 @@
} }
// Set `--toolbox-textcolor` to have a contrast with the primary color // Set `--toolbox-textcolor` to have a contrast with the primary color
const textColor = this.getToolbarColor(isDarkMode); const textColor = this.getToolbarColor(isDarkMode);
docElement.style.setProperty( document.documentElement.style.setProperty(
'--toolbox-textcolor', '--toolbox-textcolor',
`rgba(${textColor[0]}, ${textColor[1]}, ${textColor[2]}, ${textColor[3]})` `rgba(${textColor[0]}, ${textColor[1]}, ${textColor[2]}, ${textColor[3]})`
); );

View File

@@ -0,0 +1,308 @@
// 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/.
{
class nsZenWorkspaceWindowSync extends nsZenMultiWindowFeature {
#ignoreNextEvents = false;
#waitForPromise = null;
constructor() {
super();
if (!window.closed) {
this.init();
}
}
async init() {
await gZenWorkspaces.promiseInitialized;
this.#makeSureAllTabsHaveIds();
this.#setUpEventListeners();
}
#makeSureAllTabsHaveIds() {
const allTabs = gZenWorkspaces.allStoredTabs;
for (const tab of allTabs) {
if (!tab.hasAttribute('zen-sync-id') && !tab.hasAttribute('zen-empty-tab')) {
const tabId = gZenUIManager.generateUuidv4();
tab.setAttribute('zen-sync-id', tabId);
}
}
}
#setUpEventListeners() {
const kEvents = [
'TabClose',
'TabOpen',
'TabMove',
'TabPinned',
'TabUnpinned',
'TabAddedToEssentials',
'TabRemovedFromEssentials',
'TabHide',
'TabShow',
'ZenTabIconChanged',
'ZenTabLabelChanged',
'TabGroupCreate',
'TabGroupRemoved',
'TabGrouped',
'TabUngrouped',
'TabGroupMoved',
];
const eventListener = this.#handleEvent.bind(this);
for (const event of kEvents) {
window.addEventListener(event, eventListener);
}
window.addEventListener('unload', () => {
for (const event of kEvents) {
window.removeEventListener(event, eventListener);
}
});
}
#handleEvent(event) {
this.#propagateToOtherWindows(event);
}
async #propagateToOtherWindows(event) {
if (this.#ignoreNextEvents) {
return;
}
if (this.#waitForPromise) {
await this.#waitForPromise;
}
this.#waitForPromise = new Promise((resolve) => {
this.foreachWindowAsActive(async (browser) => {
if (browser.gZenWorkspaceWindowSync && !this.windowIsActive(browser)) {
await browser.gZenWorkspaceWindowSync.onExternalTabEvent(event);
}
}).then(() => {
resolve();
});
});
}
async onExternalTabEvent(event) {
this.#ignoreNextEvents = true;
switch (event.type) {
case 'TabClose':
this.#onTabClose(event);
break;
case 'TabOpen':
await this.#onTabOpen(event);
break;
case 'TabPinned':
this.#onTabPinned(event);
break;
case 'TabUnpinned':
this.#onTabUnpinned(event);
break;
case 'TabAddedToEssentials':
this.#onTabAddedToEssentials(event);
break;
case 'TabRemovedFromEssentials':
this.#onTabRemovedFromEssentials(event);
break;
case 'TabHide':
this.#onTabHide(event);
break;
case 'TabShow':
this.#onTabShow(event);
break;
case 'TabMove':
case 'TabGroupMoved':
this.#onTabMove(event);
break;
case 'ZenTabIconChanged':
this.#onTabIconChanged(event);
break;
case 'ZenTabLabelChanged':
this.#onTabLabelChanged(event);
break;
case 'TabGroupCreate':
this.#onTabGroupCreate(event);
break;
case 'TabGroupRemoved':
case 'TabGrouped':
case 'TabUngrouped':
// Tab grouping changes are automatically synced by Firefox
break;
default:
console.warn(`Unhandled event type: ${event.type}`);
break;
}
this.#ignoreNextEvents = false;
}
#getTabId(tab) {
return tab.getAttribute('zen-sync-id');
}
#getTabWithId(tabId) {
for (const tab of gZenWorkspaces.allStoredTabs) {
if (this.#getTabId(tab) === tabId) {
return tab;
}
}
return null;
}
#onTabClose(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToClose = this.#getTabWithId(tabId);
if (tabToClose) {
gBrowser.removeTab(tabToClose);
}
}
#onTabPinned(event) {
const targetTab = event.target;
if (targetTab.hasAttribute('zen-essential')) {
return this.#onTabAddedToEssentials(event);
}
const tabId = this.#getTabId(targetTab);
const elementIndex = targetTab.elementIndex;
const tabToPin = this.#getTabWithId(tabId);
if (tabToPin) {
gBrowser.pinTab(tabToPin);
gBrowser.moveTabTo(tabToPin, { elementIndex, forceUngrouped: !!targetTab.group });
}
}
#onTabUnpinned(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToUnpin = this.#getTabWithId(tabId);
if (tabToUnpin) {
gBrowser.unpinTab(tabToUnpin);
}
}
#onTabIconChanged(event) {
this.#updateTabIconAndLabel(event);
}
#onTabLabelChanged(event) {
this.#updateTabIconAndLabel(event);
}
#updateTabIconAndLabel(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToChange = this.#getTabWithId(tabId);
if (tabToChange && tabToChange.hasAttribute('pending')) {
gBrowser.setIcon(tabToChange, gBrowser.getIcon(targetTab));
gBrowser._setTabLabel(tabToChange, targetTab.label);
}
}
#onTabAddedToEssentials(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToAdd = this.#getTabWithId(tabId);
if (tabToAdd) {
gZenPinnedTabManager.addToEssentials(tabToAdd);
}
}
#onTabRemovedFromEssentials(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToRemove = this.#getTabWithId(tabId);
if (tabToRemove) {
gZenPinnedTabManager.removeFromEssentials(tabToRemove);
}
}
#onTabHide(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToHide = this.#getTabWithId(tabId);
if (tabToHide) {
gBrowser.hideTab(tabToHide);
}
}
#onTabShow(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToShow = this.#getTabWithId(tabId);
if (tabToShow) {
gBrowser.showTab(tabToShow);
}
}
#onTabMove(event) {
const targetTab = event.target;
const tabId = this.#getTabId(targetTab);
const tabToMove = this.#getTabWithId(tabId);
const workspaceId = targetTab.getAttribute('zen-workspace-id');
const isEssential = targetTab.hasAttribute('zen-essential');
if (tabToMove) {
let tabSibling = targetTab.previousElementSibling;
let isFirst = false;
if (!tabSibling?.hasAttribute('zen-sync-id')) {
isFirst = true;
}
gBrowser.zenHandleTabMove(tabToMove, () => {
if (isFirst) {
let container;
if (isEssential) {
container = gZenWorkspaces.getEssentialsSection(tabToMove);
} else {
const workspaceElement = gZenWorkspaces.workspaceElement(workspaceId);
container = tabToMove.pinned
? workspaceElement.pinnedTabsContainer
: workspaceElement.tabsContainer;
}
container.insertBefore(tabToMove, container.firstChild);
} else {
let relativeTab = gZenWorkspaces.allStoredTabs.find((tab) => {
return this.#getTabId(tab) === this.#getTabId(tabSibling);
});
if (relativeTab) {
relativeTab.after(tabToMove);
}
}
});
}
}
async #onTabOpen(event) {
const targetTab = event.target;
const isPinned = targetTab.pinned;
const isEssential = isPinned && targetTab.hasAttribute('zen-essential');
if (!this.#getTabId(targetTab) && !targetTab.hasAttribute('zen-empty-tab')) {
const tabId = gZenUIManager.generateUuidv4();
targetTab.setAttribute('zen-sync-id', tabId);
}
const duplicatedTab = gBrowser.addTrustedTab(targetTab.linkedBrowser.currentURI.spec, {
createLazyBrowser: true,
essential: isEssential,
pinned: isPinned,
});
if (!isEssential) {
gZenWorkspaces.moveTabToWorkspace(
duplicatedTab,
targetTab.getAttribute('zen-workspace-id')
);
}
duplicatedTab.setAttribute('zen-pin-id', targetTab.getAttribute('zen-pin-id'));
duplicatedTab.setAttribute('zen-sync-id', targetTab.getAttribute('zen-sync-id'));
}
#onTabGroupCreate(event) {
const targetGroup = event.target;
const isSplitView = targetGroup.classList.contains('zen-split-view');
const isFolder = targetGroup.isZenFolder;
}
}
window.gZenWorkspaceWindowSync = new nsZenWorkspaceWindowSync();
}

View File

@@ -1225,13 +1225,9 @@ var gZenWorkspaces = new (class extends nsZenMultiWindowFeature {
}; };
const workspaceName = document.getElementById('context_zenEditWorkspace'); const workspaceName = document.getElementById('context_zenEditWorkspace');
const themePicker = document.getElementById('context_zenChangeWorkspaceTheme'); const themePicker = document.getElementById('context_zenChangeWorkspaceTheme');
/* We can't show the rename input properly in collapsed state,
so hide the workspace edit input */
const isCollapsed = !Services.prefs.getBoolPref('zen.view.sidebar-expanded');
workspaceName.hidden = workspaceName.hidden =
isCollapsed || this.#contextMenuData.workspaceId &&
(this.#contextMenuData.workspaceId && this.#contextMenuData.workspaceId !== this.activeWorkspace;
this.#contextMenuData.workspaceId !== this.activeWorkspace);
themePicker.hidden = themePicker.hidden =
this.#contextMenuData.workspaceId && this.#contextMenuData.workspaceId &&
this.#contextMenuData.workspaceId !== this.activeWorkspace; this.#contextMenuData.workspaceId !== this.activeWorkspace;

View File

@@ -19,7 +19,7 @@
"brandShortName": "Zen", "brandShortName": "Zen",
"brandFullName": "Zen Browser", "brandFullName": "Zen Browser",
"release": { "release": {
"displayVersion": "1.17.3b", "displayVersion": "1.17b",
"github": { "github": {
"repo": "zen-browser/desktop" "repo": "zen-browser/desktop"
}, },