Compare commits

..

22 Commits

Author SHA1 Message Date
mr. m
600d1c209b feat: Let styled status panel ride the trains on macos, b=no-bug, c=no-component 2025-11-29 00:56:44 +01:00
mr. m
d4f1916382 fix: Fixed pinned tabs wrongly restoring on macos, making it crash, b=closes #11416, c=no-component 2025-11-29 00:37:43 +01:00
mr. m
706505cc50 chore: Fix patch corruption for FF 147 Windows border fix, b=no-bug, c=no-component 2025-11-28 12:36:40 +01:00
mr. m
445baecb56 chore: Apply patches to fix double click on the sidebar, p=#11456 2025-11-27 18:59:08 +01:00
mr. m
5dd5414bf1 chore: New Crowdin updates, p=#11438
* New translations zen-preferences.ftl (Polish)

* New translations zen-general.ftl (Czech)
2025-11-27 16:44:58 +01:00
mr. m
833caf2f81 fix: Fixed crash on macos when quiting and glance opening a new window, b=bug #11416 and bug https://github.com/zen-browser/desktop/issues/11409, c=common, compact-mode, glance, tabs, workspaces 2025-11-27 16:44:02 +01:00
mr. m
1d36f05abc chore: Sync upstream Firefox to version 145.0.2, p=#11425
* chore: Sync upstream to `Firefox 145.0.2`

* Update Twilight version to RC 145.0.2 in README

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

* Update candidate version to 145.0.2

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-11-25 18:03:52 +01:00
mr. m
8d12ade0bf fix: prevent new window when shift-clicking links in split view glance, b=closes https://github.com/zen-browser/desktop/issues/11409, p=#11424
Co-authored-by: Nihal <121309701+nihalxkumar@users.noreply.github.com>
2025-11-25 17:55:05 +01:00
mr. m
58c4533939 chore: New Crowdin updates, p=#11418 2025-11-25 17:54:23 +01:00
mr. m
d110dcaa35 feat: Remove legacy pref checking for gradient themes, b=bug #11375, c=common, workspaces 2025-11-24 22:49:50 +01:00
mr. m
e500e04418 fix: Fixed keyboard shortcuts not saving correctly, b=no-bug, c=kbs 2025-11-24 13:05:23 +01:00
mr. m
886b559b50 fix: Don't add folder indents to glance tabs, b=no-bug, c=tabs 2025-11-23 23:00:24 +01:00
mr. m
b2ea2d4420 fix: Fixed using the wrong window for glance dragging detection, b=no-bug, c=glance 2025-11-23 21:59:41 +01:00
mr. m
9e1f272e29 chore: Bump surfer version, p=#11401
* chore: Bump surfer version, b=no-bug, c=no-component

* chore: Bump surfer version, b=no-bug, c=no-component

* chore: Bump surfer version, b=no-bug, c=no-component
2025-11-23 13:37:27 +01:00
Lukas Spiss
8612e0d1e9 fix: allow selection within link, b=closes https://github.com/zen-browser/desktop/issues/8391, p=#11394
* fix: allow selection within link

fixes: #8391

The glance feature was clashing with the possibility to select text within a link.
To avoid the conflict, glance will only open upon mouseup and only if the mouse hasn't moved since the mouse was pressed.

* remove redundant condition

* register listeners in correct place

* feat: Listen to mouse move only once, b=no-bug, c=common, glance

---------

Co-authored-by: mr. m <mr.m@tuta.com>
2025-11-23 12:58:07 +01:00
mr. m
894fce098f chore: New Crowdin updates, p=#11397
* Update source file zen-general.ftl

* Update source file zen-general.ftl

* New translations zen-general.ftl (French)

* New translations zen-general.ftl (Spanish)

* New translations zen-general.ftl (Arabic)

* New translations zen-general.ftl (Chinese Simplified)

* New translations zen-general.ftl (Chinese Traditional)

* New translations zen-general.ftl (Catalan)

* New translations zen-general.ftl (Czech)

* New translations zen-general.ftl (Danish)

* New translations zen-general.ftl (German)

* New translations zen-general.ftl (Greek)

* New translations zen-general.ftl (Finnish)

* New translations zen-general.ftl (Irish)

* New translations zen-general.ftl (Hebrew)

* New translations zen-general.ftl (Hungarian)

* New translations zen-general.ftl (Italian)

* New translations zen-general.ftl (Japanese)

* New translations zen-general.ftl (Korean)

* New translations zen-general.ftl (Lithuanian)

* New translations zen-general.ftl (Dutch)

* New translations zen-general.ftl (Polish)

* New translations zen-general.ftl (Portuguese)

* New translations zen-general.ftl (Russian)

* New translations zen-general.ftl (Swedish)

* New translations zen-general.ftl (Turkish)

* New translations zen-general.ftl (Ukrainian)

* New translations zen-general.ftl (Vietnamese)

* New translations zen-general.ftl (Icelandic)

* New translations zen-general.ftl (Portuguese, Brazilian)

* New translations zen-general.ftl (Indonesian)

* New translations zen-general.ftl (Persian)

* New translations zen-general.ftl (Thai)

* New translations zen-general.ftl (Norwegian Nynorsk)

* New translations zen-general.ftl (Estonian)

* New translations zen-general.ftl (English, United Kingdom)

* New translations zen-general.ftl (Welsh)
2025-11-23 12:53:04 +01:00
mr. m
b4daad5c8d Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-11-23 12:19:14 +01:00
mr. m
6dc1698817 fix: Fixed translations strings having a syntax error, b=no-bug, c=no-component 2025-11-23 12:19:09 +01:00
mr. m
56e91af8ab chore: New Crowdin updates, p=#11362
* New translations zen-general.ftl (Hungarian)

* New translations zen-split-view.ftl (Hungarian)

* New translations zen-preferences.ftl (Finnish)

* New translations zen-general.ftl (Finnish)

* New translations zen-vertical-tabs.ftl (Finnish)

* New translations zen-welcome.ftl (Finnish)

* New translations zen-workspaces.ftl (Finnish)

* New translations zen-folders.ftl (Finnish)

* Update source file zen-general.ftl

* New translations zen-general.ftl (French)

* New translations zen-general.ftl (Chinese Simplified)

* New translations zen-general.ftl (Chinese Traditional)

* New translations zen-general.ftl (Spanish)

* New translations zen-general.ftl (Arabic)

* New translations zen-general.ftl (Catalan)

* New translations zen-general.ftl (Czech)

* New translations zen-general.ftl (Danish)

* New translations zen-general.ftl (German)

* New translations zen-general.ftl (Greek)

* New translations zen-general.ftl (Finnish)

* New translations zen-general.ftl (Irish)

* New translations zen-general.ftl (Hebrew)

* New translations zen-general.ftl (Hungarian)

* New translations zen-general.ftl (Italian)

* New translations zen-general.ftl (Japanese)

* New translations zen-general.ftl (Korean)

* New translations zen-general.ftl (Lithuanian)

* New translations zen-general.ftl (Dutch)

* New translations zen-general.ftl (Polish)

* New translations zen-general.ftl (Portuguese)

* New translations zen-general.ftl (Russian)

* New translations zen-general.ftl (Swedish)

* New translations zen-general.ftl (Turkish)

* New translations zen-general.ftl (Ukrainian)

* New translations zen-general.ftl (Vietnamese)

* New translations zen-general.ftl (Icelandic)

* New translations zen-general.ftl (Portuguese, Brazilian)

* New translations zen-general.ftl (Indonesian)

* New translations zen-general.ftl (Persian)

* New translations zen-general.ftl (Thai)

* New translations zen-general.ftl (Norwegian Nynorsk)

* New translations zen-general.ftl (Estonian)

* New translations zen-general.ftl (English, United Kingdom)

* New translations zen-general.ftl (Welsh)

* New translations zen-general.ftl (Ukrainian)
2025-11-23 02:17:11 +01:00
mr. m
7ab405a2c2 feat: Finish update sidebar notification, b=no-bug, c=common 2025-11-23 02:12:43 +01:00
mr. m
59641cb952 fix: Fixed KBS settings page, b=no-bug, c=kbs 2025-11-23 02:03:03 +01:00
mr. m
3761110604 fix: Fixed pinned tabs not updating sometimes, b=no-bug, c=tabs 2025-11-23 01:44:40 +01:00
73 changed files with 934 additions and 331 deletions

View File

@@ -34,8 +34,8 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
### Firefox Versions
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `145.0.1`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0.1`!
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `145.0.2`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0.2`!
### Contributing

View File

@@ -1 +1 @@
99a389c2413be0374ee04b10021ed269c0387b45
37df51b9bc9a584158ac1b42dc2da8c5e49fac83

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Feu clic a la icona per gestionar
zen-open-link-in-glance =
.label = Obre l'enllaç en un cop d'ull
.accesskey = G
zen-sidebar-notification-updated-heading = Actualització completada!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Novetats a { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Mostra les notes de la versió
zen-sidebar-notification-restart-safe-mode-label = Alguna cosa no funciona?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reinici en mode segur

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Klikněte na ikonu pro správu na
zen-open-link-in-glance =
.label = Otevřít odkaz v Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Aktualizace byla dokončena!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Co je nového v prohlížeči { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Zobrazit změny
zen-sidebar-notification-restart-safe-mode-label = Něco se rozbilo?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restartovat v Nouzovém Režimu

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Klicke auf das Symbol, um Website
zen-open-link-in-glance =
.label = Link in Glance öffnen
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -45,7 +45,7 @@ pane-settings-workspaces-title = Χώροι Εργασίας
zen-tabs-unloader-enabled =
.label = Ενεργοποίηση Εκφορτωτή Καρτέλας
zen-tabs-close-on-back-with-no-history =
.label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
.label = Κλείσιμο καρτέλας και αλλαγή στην καρτέλα ιδιοκτήτη (ή στην πιο πρόσφατα χρησιμοποιούμενη καρτέλα) όταν επιστρέφεις χωρίς ιστορικό
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab cycles within Essential or Workspace tabs only
zen-tabs-cycle-ignore-pending-tabs =

View File

@@ -8,9 +8,9 @@ tab-context-zen-reset-pinned-tab =
.label = Επαναφορά Καρφιτσωμένης Καρτέλας
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials
.label = Προσθήκη στα Απαραίτητα
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-add-essential-badge = { $num } / { $max } γεμισμένες θέσεις
tab-context-zen-remove-essential =
.label = Αφαίρεση από Απαραίτητα
.accesskey = R
@@ -29,7 +29,7 @@ pictureinpicture-minimize-btn =
.tooltip = Ελαχιστοποίηση
zen-panel-ui-gradient-generator-custom-color = Προσαρμοσμένο Χρώμα
zen-panel-ui-gradient-generator-saved-message = Επιτυχής αποθήκευση της διαβάθμισης!
zen-copy-current-url-confirmation = Copied current URL!
zen-copy-current-url-confirmation = Αντιγράφηκε το τρέχον URL!
zen-general-cancel-label =
.label = Ακύρωση
zen-general-confirm =
@@ -43,7 +43,7 @@ zen-library-sidebar-workspaces =
zen-library-sidebar-mods =
.label = Mods
zen-toggle-compact-mode-button =
.label = Compact Mode
.label = Συμπαγής Λειτουργία
.tooltiptext = Toggle Compact Mode
# note: Do not translate the "<br/>" tags in the following string
@@ -55,41 +55,41 @@ zen-singletoolbar-urlbar-placeholder-with-name =
zen-icons-picker-emoji =
.label = Emojis
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
zen-generic-more = More
zen-generic-next = Next
.label = Εικονίδια
urlbar-search-mode-zen_actions = Ενέργειες
zen-site-data-settings = Ρυθμίσεις
zen-generic-manage = Διαχείριση
zen-generic-more = Περισσότερα
zen-generic-next = Επόμενο
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-allow = Επιτρέπεται
zen-site-data-setting-block = Αποκλείστηκε
zen-site-data-protections-enabled = Ενεργό
zen-site-data-protections-disabled = Ανενεργό
zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-security-info-extension =
.label = Extension
.label = Επέκταση
zen-site-data-security-info-secure =
.label = Secure
.label = Ασφαλές
zen-site-data-security-info-not-secure =
.label = Not Secure
.label = Μη Ασφαλές
zen-site-data-manage-addons =
.label = Manage Extensions
.label = Διαχείριση Επεκτάσεων
zen-site-data-get-addons =
.label = Add Extensions
.label = Προσθήκη Επεκτάσεων
zen-site-data-site-settings =
.label = All Site Settings
.label = Όλες Οι Ρυθμίσεις Ιστοσελίδας
zen-site-data-header-share =
.tooltiptext = Share This Page
.tooltiptext = Κοινοποίηση Αυτή Της Σελίδας
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
.tooltiptext = Είσοδος Σε Λειτουργία Ανάγνωσης
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
.tooltiptext = Λήψη στιγμιότυπου οθόνης
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
.tooltiptext = Σελιδοδείκτης στη Σελίδα
zen-urlbar-copy-url-button =
.tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection
.tooltiptext = Αντιγραφή URL
zen-site-data-setting-site-protection = Προστασία Ανίχνευσης
# Section: Feature callouts
@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Η Ενημέρωση Ολοκληρώθηκε!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Τι νέο υπάρχει στο { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Προβολή Σημειώσεων Έκδοσης
zen-sidebar-notification-restart-safe-mode-label = Χάλασε κάτι;
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Επανεκκίνηση σε Ασφαλή Λειτουργία

View File

@@ -96,3 +96,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -124,7 +124,7 @@ zen-open-link-in-glance =
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Haga clic en el icono para admini
zen-open-link-in-glance =
.label = Abrir enlace en Glance
.accesskey = G
zen-sidebar-notification-updated-heading = ¡Actualización completada!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Novedades en { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Ver notas de la versión
zen-sidebar-notification-restart-safe-mode-label = ¿Algo dejó de funcionar?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Reiniciar en modo seguro

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -6,8 +6,8 @@ pane-zen-looks-title = Katso ja tunne
category-zen-looks =
.tooltiptext = { pane-zen-looks-title }
zen-warning-language = Muuttaminen oletuskieli voisi helpottaa Websites seurata sinua.
zen-vertical-tabs-layout-header = Browser Layout
zen-vertical-tabs-layout-description = Choose the layout that suits you best
zen-vertical-tabs-layout-header = Selaimen asettelu
zen-vertical-tabs-layout-description = Valitse asettelu, joka sopii sinulle parhaiten
zen-layout-single-toolbar = Single toolbar
zen-layout-multiple-toolbar = Multiple toolbars
zen-layout-collapsed-toolbar = Collapsed toolbar
@@ -45,16 +45,16 @@ pane-settings-workspaces-title = Työtilat
zen-tabs-unloader-enabled =
.label = Ota Käyttöön välilehden purkaminen
zen-tabs-close-on-back-with-no-history =
.label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
.label = Sulje välilehti ja vaihda sen omistajavälilehteen (tai viimeksi käytettyyn välilehteen) kun palataan ilman historiaa
zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab cycles within Essential or Workspace tabs only
.label = Ctrl+Tab kiertää vain keskeisissä tai Työtilojen välilehdissä
zen-tabs-cycle-ignore-pending-tabs =
.label = Ignore Pending tabs when cycling with Ctrl+Tab
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab will cycle by recently used order, as it is enabled
.label = Ohita odottavat välilehdet Ctrl+Tab kanssa
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab selaa välilehtiä käyttöjärjestyksessä alkaen viimeisimmästä
zen-look-and-feel-compact-toolbar-themed =
.label = Use themed background for compact toolbar
.label = Käytä teemoitettua taustaa kompaktissa työkalupalkissa
zen-workspace-continue-where-left-off =
.label = Continue where you left off
.label = Jatka siitä, mihin jäit
pane-zen-pinned-tab-manager-title = Kiinnitetyt Välilehdet
zen-pinned-tab-manager-header = Yleiset asetukset kiinnitettäville välilehteille
zen-pinned-tab-manager-description = Hallitse lisäkäyttäytymistä kiinnitettyjen välilehtien osalta
@@ -72,7 +72,7 @@ zen-pinned-tab-manager-reset-switch-close-shortcut-option =
zen-pinned-tab-manager-switch-close-shortcut-option =
.label = Siirry seuraavaan välilehteen
zen-pinned-tab-manager-reset-close-shortcut-option =
.label = Reset URL
.label = Resetoi URL
zen-pinned-tab-manager-close-close-shortcut-option =
.label = Sulje välilehti
pane-zen-workspaces-header = Työtilat
@@ -83,7 +83,7 @@ zen-settings-workspaces-enabled =
zen-settings-workspaces-hide-default-container-indicator =
.label = Piilota säiliön oletusmerkkivalo välilehdessä - palkki
zen-key-unsaved = Tallentamaton pikakuvake! Ole hyvä ja turvaa se painamalla "Escape" -näppäintä kirjoittamisen jälkeen.
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
zen-key-conflict = Ristiriidat { $group } -> { $shortcut }
pane-zen-theme-title = Teeman Asetukset
zen-vertical-tabs-title = Sivupalkin ja välilehtien asettelu
zen-vertical-tabs-header = Pystysuorat Välilehdet
@@ -99,7 +99,7 @@ zen-vertical-tabs-dont-expand-tabs-by-default = Älä laajenna välilehtiä olet
zen-vertical-tabs-expand-tabs-on-hover = Laajenna välilehdet leijailemalla (Ei toimi kompaktitilassa)
zen-vertical-tabs-expand-tabs-header = Kuinka laajentaa välilehdet
zen-vertical-tabs-expand-tabs-description = Valitse, miten voit laajentaa välilehtiä sivupalkissa
zen-theme-marketplace-header = Zen Mods
zen-theme-marketplace-header = Zen modit
zen-theme-disable-all-enabled =
.title = Poista kaikki teemat käytöstä
zen-theme-disable-all-disabled =
@@ -110,15 +110,15 @@ zen-theme-marketplace-remove-button =
zen-theme-marketplace-check-for-updates-button =
.label = Tarkista päivitykset
zen-theme-marketplace-import-button =
.label = Import mods
.label = Tuo modeja
zen-theme-marketplace-export-button =
.label = Export Mods
zen-theme-marketplace-import-success = Mods imported successfully
zen-theme-marketplace-import-failure = There was an error importing the mods
zen-theme-marketplace-export-success = Mods exported successfully
zen-theme-marketplace-export-failure = There was an error exporting the mods
.label = Vie Modit
zen-theme-marketplace-import-success = Modit tuotu onnistuneesti
zen-theme-marketplace-import-failure = Modeja tuodessa tapahtui virhe
zen-theme-marketplace-export-success = Modit viety onnistuneesti
zen-theme-marketplace-export-failure = Modien viennissä tapahtui virhe
zen-theme-marketplace-updates-success = Teema päivitetty onnistuneesti
zen-theme-marketplace-updates-failure = Couldn't find any updates!
zen-theme-marketplace-updates-failure = Päivityksiä ei löytynt!
zen-theme-marketplace-toggle-enabled-button =
.title = Poista Teema Käytöstä
zen-theme-marketplace-toggle-disabled-button =
@@ -131,9 +131,9 @@ zen-theme-marketplace-dropdown-default-label =
.label = Ei Mitään
zen-theme-marketplace-input-default-placeholder =
.placeholder = Kirjoita jotain...
pane-zen-marketplace-title = Zen Mods
pane-zen-marketplace-title = Zen modit
zen-themes-auto-update =
.label = Automatically update installed mods on startup
.label = Päivitä asennetut modit automaattisesti käynnistyksessä
zen-settings-workspaces-force-container-tabs-to-workspace =
.label = Vaihda työtilaan, jossa säiliö on asetettu oletusarvoiseksi avattaessa säiliön välilehtiä
zen-theme-marketplace-link = Vieraile Kaupassa
@@ -145,16 +145,16 @@ zen-dark-theme-styles-colorful = Värikäs Tumma Teema
zen-compact-mode-styles-left = Piilota välilehti
zen-compact-mode-styles-top = Piilota yläpalkki
zen-compact-mode-styles-both = Piilota Molemmat
zen-urlbar-title = Zen URL Bar
zen-urlbar-header = General settings for the URL bar
zen-urlbar-description = Customize the URL bar to your liking
zen-urlbar-behavior-label = Behavior
zen-urlbar-title = Zen URL-palkki
zen-urlbar-header = URL palkin yleiset asetukset
zen-urlbar-description = Muokkaa URL-palkkia sinun mielesi mukaan
zen-urlbar-behavior-label = Toiminnot
zen-urlbar-behavior-normal =
.label = Normal
.label = Normaali
zen-urlbar-behavior-floating-on-type =
.label = Floating only when typing
.label = Kelluva vain kirjoittaessasi
zen-urlbar-behavior-float =
.label = Always floating
.label = Aina kelluva
pane-zen-CKS-title = Näppäimistön Pikanäppäimet
category-zen-CKS =
.tooltiptext = { pane-zen-CKS-title }
@@ -164,7 +164,7 @@ zen-settings-CKS-description = Muuta oletus näppäimistön pikakuvakkeet mielty
zen-settings-CKS-disable-firefox =
.label = Poista { -brand-short-name }oletusnäppäimistön pikakuvakkeet käytöstä
zen-settings-CKS-duplicate-shortcut =
.label = Duplicate Shortcut
.label = Monista pikakuvake
zen-settings-CKS-reset-shortcuts =
.label = Palauta oletukset
zenCKSOption-group-other = Muu
@@ -178,10 +178,10 @@ zenCKSOption-group-zen-compact-mode = Kompakti Tila
zenCKSOption-group-zen-workspace = Työtilat
zenCKSOption-group-zen-other = Muut Zen-ominaisuudet
zenCKSOption-group-zen-split-view = Jaettu Näkymä
zenCKSOption-group-devTools = Developer Tools
zenCKSOption-group-devTools = Kehitystyökalut
zen-key-quick-restart = Nopea Uudelleenkäynnistys
zen-window-new-shortcut = Uusi Ikkuna
zen-tab-new-shortcut = New Tab
zen-tab-new-shortcut = Uusi välilehti
zen-key-redo = Toista
zen-restore-last-closed-tab-shortcut = Palauta Viimeksi Suljettu Välilehti
zen-location-open-shortcut = Avaa Sijainti
@@ -191,8 +191,8 @@ zen-text-action-undo-shortcut = Kumoa
zen-text-action-redo-shortcut = Toista
zen-text-action-cut-shortcut = Leikkaa
zen-text-action-copy-shortcut = Kopioi
zen-text-action-copy-url-shortcut = Copy current URL
zen-text-action-copy-url-markdown-shortcut = Copy current URL as Markdown
zen-text-action-copy-url-shortcut = Kopioi nykyinen URL-osoite
zen-text-action-copy-url-markdown-shortcut = Kopioi nykyinen URL-osoite Markdownina
zen-text-action-paste-shortcut = Liitä
zen-text-action-select-all-shortcut = Valitse Kaikki
zen-text-action-delete-shortcut = Poista
@@ -204,7 +204,7 @@ zen-picture-in-picture-toggle-shortcut-mac = Ota käyttöön kuva-kuvassa (Mac)
zen-picture-in-picture-toggle-shortcut-mac-alt = Ota käyttöön kuva-kuvassa (Mac Alt)
zen-page-source-shortcut-safari = Näytä Sivulähde (Safari)
zen-nav-stop-shortcut = Lopeta Lataaminen
zen-history-sidebar-shortcut = Show History Sidebar
zen-history-sidebar-shortcut = Näytä historia sivupalkissa
zen-window-minimize-shortcut = Pienennä Ikkuna
zen-help-shortcut = Avaa Ohje
zen-preferences-shortcut = Avoimet Asetukset
@@ -216,7 +216,7 @@ zen-downloads-shortcut = Avaa Lataukset
zen-addons-shortcut = Avaa Lisäosat
zen-file-open-shortcut = Avaa Tiedosto
zen-save-page-shortcut = Tallenna Sivu
zen-print-shortcut = Print Page
zen-print-shortcut = Tulosta sivu
zen-close-shortcut-2 = Sulje Välilehti
zen-mute-toggle-shortcut = Vaihda Mykistystä
zen-key-delete = Poista Avain
@@ -227,10 +227,10 @@ zen-nav-fwd-shortcut-alt = Siirry Eteenpäin (Alt)
zen-history-show-all-shortcut = Näytä Kaikki Historia
zen-key-enter-full-screen = Anna Koko Näyttö
zen-key-exit-full-screen = Poistu Koko Näyttötilasta
zen-ai-chatbot-sidebar-shortcut = Toggle AI Chatbot Sidebar
zen-key-inspector-mac = Toggle Inspector (Mac)
zen-toggle-sidebar-shortcut = Toggle Firefox Sidebar
zen-toggle-pin-tab-shortcut = Toggle Pin Tab
zen-ai-chatbot-sidebar-shortcut = Ota käyttöön AI chatbot sivupalkkiin
zen-key-inspector-mac = Vaihda Tarkastaja (Mac)
zen-toggle-sidebar-shortcut = Vaihda Firefoxin Sivupalkkia
zen-toggle-pin-tab-shortcut = Kiinnitä välilehti
zen-reader-mode-toggle-shortcut-other = Vaihda Lukijan Tila
zen-picture-in-picture-toggle-shortcut = Vaihda Kuva Kuvaksi
zen-nav-reload-shortcut-2 = Lataa Sivu Uudelleen
@@ -247,9 +247,9 @@ zen-key-stop = Lopeta Lataaminen
zen-full-zoom-reduce-shortcut = Zoomaa Ulos
zen-full-zoom-enlarge-shortcut = Zoomaa Sisään
zen-full-zoom-reset-shortcut = Resetoi Zoomaus
zen-full-zoom-reset-shortcut-alt = Reset Zoom (Alt)
zen-full-zoom-enlarge-shortcut-alt = Zoom In (Alt)
zen-full-zoom-enlarge-shortcut-alt2 = Zoom In (Alt 2)
zen-full-zoom-reset-shortcut-alt = Nollaa Zoomaus (Alt)
zen-full-zoom-enlarge-shortcut-alt = Suurenna (Alt)
zen-full-zoom-enlarge-shortcut-alt2 = Suurenna (Alt 2)
zen-bidi-switch-direction-shortcut = Vaihda Tekstin Suuntaa
zen-private-browsing-shortcut = Yksityinen Selaus
zen-screenshot-shortcut = Ota Kuvakaappaus
@@ -264,7 +264,7 @@ zen-close-tab-shortcut = Sulje Välilehti
zen-compact-mode-shortcut-show-sidebar = Ota käyttöön Kelluva Sivupalkki
zen-compact-mode-shortcut-show-toolbar = Ota käyttöön Kelluva Työkalurivi
zen-compact-mode-shortcut-toggle = Ota käyttöön Kompaktitila
zen-glance-expand = Expand Glance
zen-glance-expand = Laajenna Vilkaisu
zen-workspace-shortcut-switch-1 = Vaihda työtilaan 1
zen-workspace-shortcut-switch-2 = Vaihda työtilaan 2
zen-workspace-shortcut-switch-3 = Vaihda työtilaan 3
@@ -283,7 +283,7 @@ zen-split-view-shortcut-grid = Vaihda Jaettu Näkymä ruudukkoon
zen-split-view-shortcut-vertical = Vaihda Jaettu Näkymä Pystysuunnassa
zen-split-view-shortcut-horizontal = Vaihda Jaettu Näkymä Vaakasuoraan
zen-split-view-shortcut-unsplit = Sulje Jaettu Näkymä
zen-new-empty-split-view-shortcut = New Empty Split View
zen-new-empty-split-view-shortcut = Uusi Tyhjä Jaettu Näkymä
zen-key-select-tab-1 = Valitse välilehti #1
zen-key-select-tab-2 = Valitse välilehti #2
zen-key-select-tab-3 = Valitse välilehti #3
@@ -298,17 +298,17 @@ zen-key-goto-history = Siirry historiaan
zen-key-go-home = Siirry Kotiin
zen-bookmark-show-sidebar-shortcut = Näytä Kirjanmerkkien Sivupalkki
zen-bookmark-show-toolbar-shortcut = Näytä Kirjanmerkkipalkki
zen-devtools-toggle-shortcut = Toggle DevTools
zen-devtools-toggle-browser-toolbox-shortcut = Toggle Browser Toolbox
zen-devtools-toggle-browser-console-shortcut = Toggle Browser Console
zen-devtools-toggle-responsive-design-mode-shortcut = Toggle Responsive Design Mode
zen-devtools-toggle-inspector-shortcut = Toggle Inspector
zen-devtools-toggle-web-console-shortcut = Toggle Web Console
zen-devtools-toggle-js-debugger-shortcut = Toggle JavaScript Debugger
zen-devtools-toggle-net-monitor-shortcut = Toggle Network Monitor
zen-devtools-toggle-style-editor-shortcut = Toggle Style Editor
zen-devtools-toggle-performance-shortcut = Toggle Performance
zen-devtools-toggle-storage-shortcut = Toggle Storage
zen-devtools-toggle-dom-shortcut = Toggle DOM
zen-devtools-toggle-accessibility-shortcut = Toggle Accessibility
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
zen-devtools-toggle-shortcut = Vaihda DevTools
zen-devtools-toggle-browser-toolbox-shortcut = Vaihda Selaimen Työkalupakkia
zen-devtools-toggle-browser-console-shortcut = Vaihda Selaimen Konsoli
zen-devtools-toggle-responsive-design-mode-shortcut = Vaihda Reagoiva Suunnittelu -tila
zen-devtools-toggle-inspector-shortcut = Vaihda Tarkastajaa
zen-devtools-toggle-web-console-shortcut = Vaihda Selaimen Konsoli
zen-devtools-toggle-js-debugger-shortcut = Vaihda Javascript- Debuggeria
zen-devtools-toggle-net-monitor-shortcut = Vaihda Verkon Valvontaa
zen-devtools-toggle-style-editor-shortcut = Vaihda Tyylin Muokkausohjelmaa
zen-devtools-toggle-performance-shortcut = Vaihda Suorituskykyä
zen-devtools-toggle-storage-shortcut = Vaihda Tallennustilaa
zen-devtools-toggle-dom-shortcut = Vaihda DOM:ia
zen-devtools-toggle-accessibility-shortcut = Vaihda Esteettömyystilaan
zen-close-all-unpinned-tabs-shortcut = Sulje kaikki kiinnittämättömät välilehdet

View File

@@ -3,23 +3,23 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-folders-search-placeholder =
.placeholder = Search { $folder-name }...
.placeholder = Etsi { $folder-name }...
zen-folders-panel-rename-folder =
.label = Rename Folder
.label = Nimeä kansio uudelleen
zen-folders-panel-unpack-folder =
.label = Unpack Folder
.label = Pura Kansio
zen-folders-new-subfolder =
.label = New Subfolder
.label = Uusi Alikansio
zen-folders-panel-delete-folder =
.label = Delete Folder
.label = Poista kansio
zen-folders-panel-convert-folder-to-space =
.label = Convert folder to Space
.label = Muunna kansio työtilaksi
zen-folders-panel-change-folder-space =
.label = Change Space...
.label = Muuta Työtilaa...
zen-folders-panel-change-icon-folder =
.label = Change Icon
.label = Vaihda kuvake
zen-folders-unload-all-tooltip =
.tooltiptext = Unload active in this folder
.tooltiptext = Poista käytöstä aktiivinen kansio
zen-folders-unload-folder =
.label = Unload All Tabs
zen-folders-search-no-results = No tabs matching that search 🤔
.label = Tyhjennä Kaikki Välilehdet
zen-folders-search-no-results = Ei hakua vastaavia välilehtiä 🤔

View File

@@ -8,9 +8,9 @@ tab-context-zen-reset-pinned-tab =
.label = Nollaa Kiinnitetty Välilehti
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials
.label = Lisää olennaisiin
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-add-essential-badge = { $num } / { $max } täytetty paikka
tab-context-zen-remove-essential =
.label = Poista olennaisista
.accesskey = R
@@ -18,83 +18,93 @@ tab-context-zen-replace-pinned-url-with-current =
.label = Korvaa kiinnitetty URL-osoite nykyisellä
.accesskey = C
zen-themes-corrupted = { -brand-short-name } modejasi tiedosto on vioittunut. Ne on palautettu oletusteemaan.
zen-shortcuts-corrupted = Your { -brand-short-name } shortcuts file is corrupted. They have been reset to the default shortcuts.
zen-shortcuts-corrupted = { -brand-short-name } Oikotietä sisältävä tiedosto on korruptoitunut. Ne on palautettu oletus oikoteihin.
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification =
The new URL bar has been enabled, removing the need for new tab pages.<br/><br/>
Try opening a new tab to see the new URL bar in action!
zen-disable = Disable
Uusi URL-palkki on otettu käyttöön, uusia välilehtisivuja ei enää tarvita.<br/><br/>
Kokeile avata uusi välilehti nähdäksesi uuden URL-palkin toiminnassa!
zen-disable = Poista käytöstä
pictureinpicture-minimize-btn =
.aria-label = Minimize
.tooltip = Minimize
.aria-label = Minimoi
.tooltip = Minimoi
zen-panel-ui-gradient-generator-custom-color = Muokattu Väri
zen-panel-ui-gradient-generator-saved-message = Kaltevuus tallennettu onnistuneesti!
zen-copy-current-url-confirmation = Copied current URL!
zen-copy-current-url-confirmation = Nykyinen URL-osoite kopioitu!
zen-general-cancel-label =
.label = Cancel
.label = Peruuta
zen-general-confirm =
.label = Confirm
.label = Vahvista
zen-pinned-tab-replaced = Pinned tab URL has been replaced with the current URL.
zen-tabs-renamed = Tab has been successfully renamed!
zen-background-tab-opened-toast = New background tab opened!
zen-workspace-renamed-toast = Workspace has been successfully renamed!
zen-tabs-renamed = Välilehti on nimetty uudelleen!
zen-background-tab-opened-toast = Uusi taustavälilehti avattu!
zen-workspace-renamed-toast = Työtila on nimetty uudelleen!
zen-library-sidebar-workspaces =
.label = Spaces
.label = Työtilat
zen-library-sidebar-mods =
.label = Mods
.label = Modit
zen-toggle-compact-mode-button =
.label = Compact Mode
.tooltiptext = Toggle Compact Mode
.label = Kompakti Tila
.tooltiptext = Ota käyttöön Kompakti tila
# note: Do not translate the "<br/>" tags in the following string
zen-learn-more-text = Learn More
zen-close-label = Close
zen-learn-more-text = Lue Lisää
zen-close-label = Sulje
zen-singletoolbar-urlbar-placeholder-with-name =
.placeholder = Search...
.placeholder = Hae...
zen-icons-picker-emoji =
.label = Emojis
.label = Emojit
zen-icons-picker-svg =
.label = Icons
urlbar-search-mode-zen_actions = Actions
zen-site-data-settings = Settings
zen-generic-manage = Manage
zen-generic-more = More
zen-generic-next = Next
.label = Kuvakkeet
urlbar-search-mode-zen_actions = Toiminnot
zen-site-data-settings = Asetukset
zen-generic-manage = Hallitse
zen-generic-more = Lisää
zen-generic-next = Seuraava
# These labels will be used for the site data panel settings
zen-site-data-setting-allow = Allowed
zen-site-data-setting-block = Blocked
zen-site-data-protections-enabled = Enabled
zen-site-data-protections-disabled = Disabled
zen-site-data-setting-cross-site = Cross-Site cookie
zen-site-data-setting-allow = Sallittu
zen-site-data-setting-block = Estetty
zen-site-data-protections-enabled = Käytössä
zen-site-data-protections-disabled = Pois käytöstä
zen-site-data-setting-cross-site = Sivuston välinen eväste
zen-site-data-security-info-extension =
.label = Extension
.label = Laajennus
zen-site-data-security-info-secure =
.label = Secure
.label = Turvallinen
zen-site-data-security-info-not-secure =
.label = Not Secure
.label = Ei turvallinen
zen-site-data-manage-addons =
.label = Manage Extensions
.label = Hallita Laajennuksia
zen-site-data-get-addons =
.label = Add Extensions
.label = Lisää Laajennuksia
zen-site-data-site-settings =
.label = All Site Settings
.label = Kaikki Sivuston Asetukset
zen-site-data-header-share =
.tooltiptext = Share This Page
.tooltiptext = Jaa Tämä Sivu
zen-site-data-header-reader-mode =
.tooltiptext = Enter Reader Mode
.tooltiptext = Siirry lukutilaan
zen-site-data-header-screenshot =
.tooltiptext = Take a Screenshot
.tooltiptext = Ota kuvakaappaus
zen-site-data-header-bookmark =
.tooltiptext = Bookmark This Page
.tooltiptext = Lisää Tämä Sivu Kirjanmerkkeihin
zen-urlbar-copy-url-button =
.tooltiptext = Copy URL
zen-site-data-setting-site-protection = Tracking Protection
.tooltiptext = Kopioi URL
zen-site-data-setting-site-protection = Seuranta Suojaus
# Section: Feature callouts
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
zen-site-data-panel-feature-callout-title = Uusi koti lisäosille, käyttöoikeuksille ja paljon muuta
zen-site-data-panel-feature-callout-subtitle = Klikkaa kuvaketta hallitaksesi sivuston asetuksia, tarkastella tietoturvatietoja, käyttää laajennuksia ja suorittaa yhteisiä toimintoja.
zen-open-link-in-glance =
.label = Open Link in Glance
.label = Avaa linkki vilkaisussa
.accesskey = G
zen-sidebar-notification-updated-heading = Päivitys valmis!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Mitä uutta { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Katso Julkaisutiedot
zen-sidebar-notification-restart-safe-mode-label = Jotain rikki?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Käynnistä uudelleen vianmääritystilassa

View File

@@ -11,29 +11,29 @@ zen-toolbar-context-compact-mode-enable =
.label = Ota kompakti tila käyttöön
.accesskey = D
zen-toolbar-context-compact-mode-just-tabs =
.label = Hide sidebar
.label = Piilota sivupalkki
zen-toolbar-context-compact-mode-just-toolbar =
.label = Piilota työkalupalkki
zen-toolbar-context-compact-mode-hide-both =
.label = Piilota molemmat
.accesskey = H
zen-toolbar-context-new-folder =
.label = New Folder
.label = Uusi kansio
.accesskey = N
sidebar-zen-expand =
.label = Expand Sidebar
.label = Laajenna sivupalkkia
sidebar-zen-create-new =
.label = Create New...
.label = Luo uusi...
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
[one] Unload and switch to tab
*[other] Unload { $tabCount } tabs and switch to the first
[one] Pura ja vaihda välilehteen
*[other] Pura { $tabCount } välilehdet ja vaihda ensimmäiseen
}
tabbrowser-reset-pin-button =
.tooltiptext =
{ $tabCount ->
[one] Reset and pin tab
*[other] Reset and pin { $tabCount } tabs
[one] Nollaa ja kiinnitä välilehti
*[other] Nollaa ja kiinnitä { $tabCount } välilehdet
}
tab-reset-pin-label = Back to pinned url
tab-reset-pin-label = Takaisin kiinnitettyyn URL-osoitteeseen

View File

@@ -2,25 +2,25 @@
# 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/.
zen-welcome-title-line1 = Welcome to
zen-welcome-title-line2 = a calmer internet
zen-welcome-import-title = A Fresh Start, Same Bookmarks
zen-welcome-import-description-1 = Your bookmarks, history, and passwords are like a trail of breadcrumbs through the internet—dont leave them behind!
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off..
zen-welcome-import-button = Import now
zen-welcome-set-default-browser = Set { -brand-short-name } as your default browser
zen-welcome-dont-set-default-browser = DONT set { -brand-short-name } as your default browser
zen-welcome-initial-essentials-title = Your Key Tabs, Always Within Reach
zen-welcome-initial-essentials-description-1 = Keep your most important tabs easily accessible and always at hand, no matter how many you open.
zen-welcome-initial-essentials-description-2 = Essential tabs are always visible, no matter what workspace you are in.
zen-welcome-workspace-colors-title = Your Workspaces, Your Colors
zen-welcome-workspace-colors-description = Personalize your browser by giving each workspace its own unique color identity.
zen-welcome-title-line1 = Tervetuloa
zen-welcome-title-line2 = rauhellisempaan internettiin
zen-welcome-import-title = Tuore Aloitus, Samat Kirjanmerkit
zen-welcome-import-description-1 = Kirjanmerkit, historia ja salasanat ovat kuin polku leivänmurteita Internetin kautta - älä jätä niitä taakse!
zen-welcome-import-description-2 = Tuo ne helposti toisesta selaimesta ja jatka eteenpäin siitä, mihin jäit.
zen-welcome-import-button = Tuo nyt
zen-welcome-set-default-browser = Aseta { -brand-short-name } oletusselaimeksi
zen-welcome-dont-set-default-browser = ÄLÄ asettanut { -brand-short-name } oletusselaimeksi
zen-welcome-initial-essentials-title = Tärkeimmät Välilehtesi, Aina Saavutuksen Sisällä
zen-welcome-initial-essentials-description-1 = Pidä tärkeimmät välilehdet helposti saatavilla riippumatta siitä, kuinka monta olet avannut.
zen-welcome-initial-essentials-description-2 = Olennaiset välilehdet ovat aina näkyvissä, riippumatta siitä, missä työtilassa olet.
zen-welcome-workspace-colors-title = Sinun Työtilasi, Sinun Värisi
zen-welcome-workspace-colors-description = Mukauta selainta antamalla jokaiselle työtilalle oma väri-identiteetti.
zen-welcome-start-browsing-title =
All set?<br/>
Lets get rolling!
zen-welcome-start-browsing-description-1 = Youre all set up and ready to go. Click the button below to start browsing with { -brand-short-name }.
zen-welcome-start-browsing = Dive in!
zen-welcome-default-search-title = Your Default Search Engine
zen-welcome-default-search-description = Choose your default search engine. You can always change it later!
zen-welcome-skip-button = Skip
zen-welcome-finished = Your Zen has been set up correctly!
Kaikki asetettu?<br/>
Aletaan toimiin!
zen-welcome-start-browsing-description-1 = Kaikki on asetettu ja olet valmis menemään. Napsauta alla olevaa painiketta aloittaaksesi selailun { -brand-short-name } -sovelluksella.
zen-welcome-start-browsing = Sukella sisään!
zen-welcome-default-search-title = Sinun Oletushakukone
zen-welcome-default-search-description = Valitse oletushakukone. Voit aina muuttaa sitä myöhemmin!
zen-welcome-skip-button = Ohita
zen-welcome-finished = Zen on määritetty oikein!

View File

@@ -4,26 +4,26 @@
zen-panel-ui-workspaces-text = Työtilat
zen-panel-ui-workspaces-create =
.label = Create Space
.label = Luo työtila
zen-panel-ui-folder-create =
.label = Create Folder
.label = Luo kansio
zen-panel-ui-new-empty-split =
.label = New Split
.label = Uusi Jako
zen-workspaces-panel-context-delete =
.label = Poista Työtila
.accesskey = D
zen-workspaces-panel-change-name =
.label = Change Name
.label = Vaihda nimi
zen-workspaces-panel-change-icon =
.label = Change Icon
.label = Vaihda kuvake
zen-workspaces-panel-context-default-profile =
.label = Set Profile
.label = Aseta Profiili
zen-workspaces-panel-unload =
.label = Unload Space
zen-workspaces-how-to-reorder-title = How to reorder spaces
zen-workspaces-how-to-reorder-desc = Drag the space icons at the bottom of the sidebar to reorder them
.label = Poista Työtila
zen-workspaces-how-to-reorder-title = Kuinka järjestää työtiloja
zen-workspaces-how-to-reorder-desc = Vedä työtilan kuvakkeet sivupalkin alareunaan järjestääksesi ne uudelleen
zen-workspaces-change-theme =
.label = Edit Theme
.label = Muokkaa teemaa
zen-workspaces-panel-context-open =
.label = Avaa Työtila
.accesskey = O
@@ -37,29 +37,29 @@ zen-bookmark-edit-panel-workspace-selector =
.value = Työtilat
.accesskey = W
zen-panel-ui-gradient-generator-algo-complementary =
.label = Complementary
.label = Täydentävä
zen-panel-ui-gradient-generator-algo-splitComplementary =
.label = Split
.label = Jaa osiin
zen-panel-ui-gradient-generator-algo-analogous =
.label = Analogous
.label = Analoginen
zen-panel-ui-gradient-generator-algo-triadic =
.label = Triadic
.label = Triadiikki
zen-panel-ui-gradient-generator-algo-floating =
.label = Floating
zen-panel-ui-gradient-click-to-add = Click to add a color
.label = Kelluva
zen-panel-ui-gradient-click-to-add = Klikkaa lisätäksesi väri
zen-workspace-creation-name =
.placeholder = Space Name
.placeholder = Työtilan nimi
zen-workspaces-panel-context-reorder =
.label = Reorder Spaces
zen-workspace-creation-profile = Profile
.tooltiptext = Profiles are used to separate cookies and site data between spaces.
zen-workspace-creation-header = Create a Space
zen-workspace-creation-label = Spaces are used to organize your tabs and sessions.
zen-workspaces-delete-workspace-title = Delete Workspace?
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
.label = Järjestä Työtilat Uudelleen
zen-workspace-creation-profile = Profiili
.tooltiptext = Profiileja käytetään erottamaan evästeet ja sivustontiedot tiloihin.
zen-workspace-creation-header = Luo työtila
zen-workspace-creation-label = Työtiloja käytetään järjestämään sinun välilehtiä ja istuntoja.
zen-workspaces-delete-workspace-title = Poista Työtila?
zen-workspaces-delete-workspace-body = Oletko varma, että haluat poistaa { $name }? Tätä toimintoa ei voi peruuttaa.
# Note that the html tag MUST not be changed or removed, as it is used to better
# display the shortcut in the toast notification.
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
zen-workspaces-close-all-unpinned-tabs-toast = Välilehdet suljettu! Peruuta toiminto käyttämällä <span>{ $shortcut }</span>.
zen-workspaces-close-all-unpinned-tabs-title =
.label = Clear
.tooltiptext = Close all unpinned tabs
.label = Tyhjennä
.tooltiptext = Sulje kaikki kiinnittämättömät välilehdet

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Cliquez sur l'icône pour gérer
zen-open-link-in-glance =
.label = Ouvrir le lien dans Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Mise à jour terminée !
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Quoi de neuf dans { -brand-short-name } ?
zen-sidebar-notification-updated-tooltip =
.title = Voir les notes de version
zen-sidebar-notification-restart-safe-mode-label = Un problème est survenu ?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Redémarrer en mode de dépannage

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Cliceáil an deilbhín chun socru
zen-open-link-in-glance =
.label = Oscail an Nasc i Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Nuashonrú críochnaithe!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Cad atá nua i { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Féach ar Nótaí Eisiúna
zen-sidebar-notification-restart-safe-mode-label = Bhris rud éigin?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Atosaigh i Mód Sábháilte

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = ניתן ללחוץ על הסמל
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Kattints az ikonra a webhely beá
zen-open-link-in-glance =
.label = Link megnyitása a bepillantóban
.accesskey = G
zen-sidebar-notification-updated-heading = Frissítés befejezve!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = { -brand-short-name } újdonságai
zen-sidebar-notification-updated-tooltip =
.title = Változások listájának megtekintése
zen-sidebar-notification-restart-safe-mode-label = Valami elromlott?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Újraindítás biztonságos módban

View File

@@ -10,7 +10,7 @@ tab-zen-split-tabs =
}
.accesskey = S
zen-split-link =
.label = Link felosztása új lapban
.label = Hivatkozás felosztása új lapban
.accesskey = S
zen-split-view-modifier-header = Osztott nézet
zen-split-view-modifier-activate-reallocation =

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Klik ikon untuk mengelola pengatu
zen-open-link-in-glance =
.label = Buka Tautan di Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -96,3 +96,13 @@ zen-site-data-panel-feature-callout-subtitle = Clicca l'icona per gestire le imp
zen-open-link-in-glance =
.label = Apri collegamento in Sguardo
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = 아이콘을 클릭해 사이트
zen-open-link-in-glance =
.label = 글랜스로 링크 열기
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -8,9 +8,9 @@ tab-context-zen-reset-pinned-tab =
.label = Atkurti prisegtą kortelę
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials
.label = Įtraukti į būtiniausius
.accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-add-essential-badge = { $num } / { $max } užpildytų vietų
tab-context-zen-remove-essential =
.label = Šalinti iš būtiniausių
.accesskey = R
@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Spustelėkite piktogramą, kad tv
zen-open-link-in-glance =
.label = Atverti nuorodą spartiuojame pažiūrėjime
.accesskey = G
zen-sidebar-notification-updated-heading = Naujinimas baigtas.
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Kas naujo naršyklėje „{ -brand-short-name }“
zen-sidebar-notification-updated-tooltip =
.title = Peržiūrėti leidimo pastabas
zen-sidebar-notification-restart-safe-mode-label = Kažkas sugedo?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Paleisti iš naujo saugioje režime

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Klik op het icoon om de site-inst
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -50,7 +50,7 @@ zen-tabs-cycle-by-attribute =
.label = Ctrl+Tab cycles within Essential or Workspace tabs only
zen-tabs-cycle-ignore-pending-tabs =
.label = Ignore Pending tabs when cycling with Ctrl+Tab
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab will cycle by recently used order, as it is enabled
zen-tabs-cycle-by-attribute-warning = Ctrl+Tab będzie przełączał karty według ostatnio używanej kolejności, ponieważ jest włączona
zen-look-and-feel-compact-toolbar-themed =
.label = Użyj tła motywu dla kompaktowego paska narzędzi
zen-workspace-continue-where-left-off =

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Kliknij ikonę, aby zarządzać u
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -96,3 +96,13 @@ zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerenciar c
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerir defin
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Нажмите на значок
zen-open-link-in-glance =
.label = Открыть ссылку в предпросмотре
.accesskey = П
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Натисніть значок,
zen-open-link-in-glance =
.label = Відкрити посилання в передперегляді
.accesskey = G
zen-sidebar-notification-updated-heading = Оновлення завершено!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = Що нового в { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = Переглянути примітки до випуску
zen-sidebar-notification-restart-safe-mode-label = Щось зламалося?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Перезапустити в безпечному режимі

View File

@@ -98,3 +98,13 @@ zen-site-data-panel-feature-callout-subtitle = Bấm vào biểu tượng để
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -96,3 +96,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

View File

@@ -96,3 +96,13 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance =
.label = Open Link in Glance
.accesskey = G
zen-sidebar-notification-updated-heading = Update Complete!
# See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name }
zen-sidebar-notification-updated-tooltip =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode

113
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "1.0.0",
"license": "MPL-2.0",
"dependencies": {
"@zen-browser/surfer": "^1.11.23"
"@zen-browser/surfer": "^1.11.26"
},
"devDependencies": {
"@babel/preset-typescript": "^7.27.0",
@@ -812,51 +812,51 @@
}
},
"node_modules/@oozcitak/dom": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-2.0.1.tgz",
"integrity": "sha512-Un5k8MKqGak1LQM/behcHylmGdRopBXZax19weVedEAIrOCRZooY+MvX4Ehcz0ftOEPgYZ7vjIm/+MokVBFO3w==",
"version": "1.15.10",
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz",
"integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==",
"license": "MIT",
"dependencies": {
"@oozcitak/infra": "^2.0.1",
"@oozcitak/url": "^2.0.1",
"@oozcitak/util": "^9.0.2"
"@oozcitak/infra": "1.0.8",
"@oozcitak/url": "1.0.4",
"@oozcitak/util": "8.3.8"
},
"engines": {
"node": ">=20.0"
"node": ">=8.0"
}
},
"node_modules/@oozcitak/infra": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-2.0.1.tgz",
"integrity": "sha512-TtjI+kducm0ExL3OTKglPLkAIQ3alq0Otbokml62haZESfQaL3ojLJxl7+UTBhWCkBBuCshzGEEYmX5MXo8WOg==",
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz",
"integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==",
"license": "MIT",
"dependencies": {
"@oozcitak/util": "~9.0.2"
"@oozcitak/util": "8.3.8"
},
"engines": {
"node": ">=20.0"
"node": ">=6.0"
}
},
"node_modules/@oozcitak/url": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-2.0.1.tgz",
"integrity": "sha512-lLHUQUyYy86q+qbALr0TMVh+VQAYwNGbsxBx4LhfjvkNYG0hgAwWtq7ePebGs2nEhZmmIFl24ikuCpH2r5d3+A==",
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz",
"integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==",
"license": "MIT",
"dependencies": {
"@oozcitak/infra": "^2.0.1",
"@oozcitak/util": "^9.0.2"
"@oozcitak/infra": "1.0.8",
"@oozcitak/util": "8.3.8"
},
"engines": {
"node": ">=20.0"
"node": ">=8.0"
}
},
"node_modules/@oozcitak/util": {
"version": "9.0.4",
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-9.0.4.tgz",
"integrity": "sha512-kmx1hRJlsvxiTCpK97off59LqSEOtkWOPe4rdfFL8TjZtihYSTVNObIfc86jtLngfnuIuuTRt+TUCgRS220RSQ==",
"version": "8.3.8",
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz",
"integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==",
"license": "MIT",
"engines": {
"node": ">=20.0"
"node": ">=8.0"
}
},
"node_modules/@resvg/resvg-js": {
@@ -1109,9 +1109,9 @@
"license": "MIT"
},
"node_modules/@zen-browser/surfer": {
"version": "1.11.23",
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.23.tgz",
"integrity": "sha512-nPJ8oH1r4yncPCymuVxFRJMKbj9elpLIuSMW7botJT1UpyTKeGPrpFukpc+fq4U8TXa1tNddpoUvI8ZRfk0sxA==",
"version": "1.11.26",
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.26.tgz",
"integrity": "sha512-NZcFZ4a/HWvEJlEr5IlQto/xHLOr6tZjkZALue2qHg+rjRKR5v2BEV4hV5mfAo85gKhyM2Ism0sD+0+/VQIESg==",
"license": "MPL-2.0",
"dependencies": {
"@resvg/resvg-js": "^1.4.0",
@@ -1135,7 +1135,7 @@
"semver": "^7.3.7",
"sharp": "^0.32.6",
"tiny-glob": "^0.2.9",
"xmlbuilder2": "^4.0.0"
"xmlbuilder2": "^3.0.2"
},
"bin": {
"surfer": "dist/index.js"
@@ -1230,6 +1230,7 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"dev": true,
"license": "Python-2.0"
},
"node_modules/array-buffer-byte-length": {
@@ -3025,6 +3026,19 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
},
"engines": {
"node": ">=4"
}
},
"node_modules/esquery": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
@@ -4367,6 +4381,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"dev": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
@@ -6294,6 +6309,12 @@
"integrity": "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==",
"license": "MIT"
},
"node_modules/sprintf-js": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"license": "BSD-3-Clause"
},
"node_modules/stack-base-iterator": {
"version": "1.1.20",
"resolved": "https://registry.npmjs.org/stack-base-iterator/-/stack-base-iterator-1.1.20.tgz",
@@ -7181,18 +7202,40 @@
"license": "ISC"
},
"node_modules/xmlbuilder2": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-4.0.0.tgz",
"integrity": "sha512-zIoY033NGmbzHX1cYOGKNfeWpZyiGLzXGHNoxQ6tR/R+WqT7mqz+EDtFdPwqnhIms6vHz9BNtMS47DiGPyGfwg==",
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz",
"integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==",
"license": "MIT",
"dependencies": {
"@oozcitak/dom": "^2.0.1",
"@oozcitak/infra": "^2.0.1",
"@oozcitak/util": "^9.0.4",
"js-yaml": "^4.1.0"
"@oozcitak/dom": "1.15.10",
"@oozcitak/infra": "1.0.8",
"@oozcitak/util": "8.3.8",
"js-yaml": "3.14.1"
},
"engines": {
"node": ">=20.0"
"node": ">=12.0"
}
},
"node_modules/xmlbuilder2/node_modules/argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/xmlbuilder2/node_modules/js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/xtend": {

View File

@@ -49,7 +49,7 @@
},
"homepage": "https://github.com/zen-browser/desktop#readme",
"dependencies": {
"@zen-browser/surfer": "^1.11.23"
"@zen-browser/surfer": "^1.11.26"
},
"devDependencies": {
"@babel/preset-typescript": "^7.27.0",

View File

@@ -11,9 +11,6 @@
- name: zen.theme.dark-mode-bias
value: 0.3
- name: zen.theme.gradient
value: true
- name: zen.theme.gradient.show-custom-colors
value: false
@@ -35,6 +32,10 @@
- name: zen.theme.styled-status-panel
value: '@IS_TWILIGHT@'
- name: zen.theme.styled-status-panel
value: true
condition: 'defined(XP_MACOSX)'
- name: zen.theme.hide-unified-extensions-button
value: true

View File

@@ -8,6 +8,13 @@ const { nsZenMultiWindowFeature } = ChromeUtils.importESModule(
{ global: 'current' }
);
const { nsKeyShortcutModifiers } = ChromeUtils.importESModule(
'chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs',
{
global: 'current',
}
);
var gZenMarketplaceManager = {
async init() {
const checkForUpdates = document.getElementById('zenThemeMarketplaceCheckForUpdates');

View File

@@ -2,7 +2,6 @@
# 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/.
<script type="module" src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"/>
<html:template id="template-paneZenCKS">
<hbox id="ZenCKSCategory"
class="subcategory"

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0eeba2381c 100644
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..7a46b3b9819d2abe5801a99984788a3ccf6f32bb 100644
--- a/browser/components/sessionstore/SessionStore.sys.mjs
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
@@ -127,6 +127,8 @@ const TAB_EVENTS = [
@@ -20,15 +20,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
this.saveStateDelayed(win);
break;
case "TabGroupCreate":
@@ -2151,7 +2155,6 @@ var SessionStoreInternal = {
if (closedWindowState) {
let newWindowState;
if (
- AppConstants.platform == "macosx" ||
!lazy.SessionStartup.willRestore()
) {
// We want to split the window up into pinned tabs and unpinned tabs.
@@ -2384,11 +2387,9 @@ var SessionStoreInternal = {
@@ -2384,11 +2388,9 @@ var SessionStoreInternal = {
tabbrowser.selectedTab.label;
}
@@ -40,7 +32,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// Store the window's close date to figure out when each individual tab
// was closed. This timestamp should allow re-arranging data based on how
@@ -3373,7 +3374,7 @@ var SessionStoreInternal = {
@@ -3373,7 +3375,7 @@ var SessionStoreInternal = {
if (!isPrivateWindow && tabState.isPrivate) {
return;
}
@@ -49,7 +41,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
return;
}
@@ -4089,6 +4090,12 @@ var SessionStoreInternal = {
@@ -4089,6 +4091,12 @@ var SessionStoreInternal = {
Math.min(tabState.index, tabState.entries.length)
);
tabState.pinned = false;
@@ -62,7 +54,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
if (inBackground === false) {
aWindow.gBrowser.selectedTab = newTab;
@@ -4525,6 +4532,7 @@ var SessionStoreInternal = {
@@ -4525,6 +4533,7 @@ var SessionStoreInternal = {
// Append the tab if we're opening into a different window,
tabIndex: aSource == aTargetWindow ? pos : Infinity,
pinned: state.pinned,
@@ -70,7 +62,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
userContextId: state.userContextId,
skipLoad: true,
preferredRemoteType,
@@ -5374,7 +5382,7 @@ var SessionStoreInternal = {
@@ -5374,7 +5383,7 @@ var SessionStoreInternal = {
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
let tab = tabbrowser.tabs[i];
@@ -79,7 +71,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
removableTabs.push(tab);
}
}
@@ -5434,7 +5442,7 @@ var SessionStoreInternal = {
@@ -5434,7 +5443,7 @@ var SessionStoreInternal = {
}
let workspaceID = aWindow.getWorkspaceID();
@@ -88,7 +80,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
winData.workspaceID = workspaceID;
}
},
@@ -5625,11 +5633,12 @@ var SessionStoreInternal = {
@@ -5625,11 +5634,12 @@ var SessionStoreInternal = {
}
let tabbrowser = aWindow.gBrowser;
@@ -102,7 +94,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// update the internal state data for this window
for (let tab of tabs) {
if (tab == aWindow.FirefoxViewHandler.tab) {
@@ -5640,6 +5649,7 @@ var SessionStoreInternal = {
@@ -5640,6 +5650,7 @@ var SessionStoreInternal = {
tabsData.push(tabData);
}
@@ -110,7 +102,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// update tab group state for this window
winData.groups = [];
for (let tabGroup of aWindow.gBrowser.tabGroups) {
@@ -5652,7 +5662,7 @@ var SessionStoreInternal = {
@@ -5652,7 +5663,7 @@ var SessionStoreInternal = {
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
// since it's only inserted into the tab strip after it's selected).
if (aWindow.FirefoxViewHandler.tab?.selected) {
@@ -119,7 +111,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
winData.title = tabbrowser.tabs[0].label;
}
winData.selected = selectedIndex;
@@ -5764,8 +5774,8 @@ var SessionStoreInternal = {
@@ -5764,8 +5775,8 @@ var SessionStoreInternal = {
// selectTab represents.
let selectTab = 0;
if (overwriteTabs) {
@@ -130,7 +122,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
selectTab = Math.min(selectTab, winData.tabs.length);
}
@@ -5808,6 +5818,8 @@ var SessionStoreInternal = {
@@ -5808,6 +5819,8 @@ var SessionStoreInternal = {
winData.tabs,
winData.groups ?? []
);
@@ -139,7 +131,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
this._log.debug(
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
);
@@ -6371,6 +6383,25 @@ var SessionStoreInternal = {
@@ -6371,6 +6384,25 @@ var SessionStoreInternal = {
// Most of tabData has been restored, now continue with restoring
// attributes that may trigger external events.
@@ -165,7 +157,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
if (tabData.pinned) {
tabbrowser.pinTab(tab);
@@ -7289,7 +7320,7 @@ var SessionStoreInternal = {
@@ -7289,7 +7321,7 @@ var SessionStoreInternal = {
let groupsToSave = new Map();
for (let tIndex = 0; tIndex < window.tabs.length; ) {
@@ -174,3 +166,12 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// Adjust window.selected
if (tIndex + 1 < window.selected) {
window.selected -= 1;
@@ -7304,7 +7336,7 @@ var SessionStoreInternal = {
);
// We don't want to increment tIndex here.
continue;
- } else if (window.tabs[tIndex].groupId) {
+ } else if (window.tabs[tIndex].groupId && false) {
// Convert any open groups into saved groups.
let groupStateToSave = window.groups.find(
groupState => groupState.id == window.tabs[tIndex].groupId

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 100644
index 4b7232f3261f8589b734c2238170e6968d7ea0bf..6c68a2e93b7287f92ff394789c50d1c10e8a36f2 100644
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
@@ -189,11 +189,13 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
if (
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
event.keyCode == KeyEvent.DOM_VK_ALT ||
@@ -3248,7 +3335,7 @@ export class UrlbarInput {
@@ -3247,8 +3334,8 @@ export class UrlbarInput {
if (!this.isAddressbar) {
return val;
}
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
- let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
- ? lazy.BrowserUIUtils.trimURL(val)
+ let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") && this._zenTrimURL
+ ? this._zenTrimURL(val)
: val;
// Only trim value if the directionality doesn't change to RTL and we're not

View File

@@ -559,6 +559,7 @@ groupbox h2 {
#helpButton,
#support-firefox,
#tabGroupSuggestions,
#web-appearance-manage-themes-link,
.mission-message {
display: none !important;
}

View File

@@ -0,0 +1,19 @@
diff --git a/netwerk/protocol/http/nsHttpTransaction.cpp b/netwerk/protocol/http/nsHttpTransaction.cpp
index daf10b9adb4b6a3c376edc5b0d8586e97483626a..415f64dbb2da5ea6da42f1ce29d6dc09cf86f713 100644
--- a/netwerk/protocol/http/nsHttpTransaction.cpp
+++ b/netwerk/protocol/http/nsHttpTransaction.cpp
@@ -1332,6 +1332,14 @@ void nsHttpTransaction::Close(nsresult reason) {
mDNSRequest = nullptr;
}
+ // If an HTTP/3 backup timer is active and this transaction ends in error,
+ // treat it as NS_ERROR_NET_RESET so the transaction will retry once.
+ // NOTE: This is a temporary workaround; the proper fix belongs in
+ // the Happy Eyeballs project.
+ if (NS_FAILED(reason) && mHttp3BackupTimerCreated && mHttp3BackupTimer) {
+ reason = NS_ERROR_NET_RESET;
+ }
+
MaybeCancelFallbackTimer();
MOZ_ASSERT(OnSocketThread(), "not on socket thread");

View File

@@ -0,0 +1,90 @@
From 433cc8224790300fdabe76bd225b644c1812da34 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Thu, 27 Nov 2025 15:28:12 +0000
Subject: [PATCH] Bug 1993474 - Ensure our WNDPROC has precedence over
WinAppSDK's. r=gstoll,win-reviewers
See the comment for reasoning. WM_NCCALCSIZE wasn't getting called, and
we rely on that to get the right client area on things like maximized
windows.
Differential Revision: https://phabricator.services.mozilla.com/D274281
---
widget/windows/nsWindow.cpp | 32 ++++++++++++++++++++++----------
widget/windows/nsWindow.h | 2 ++
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
index 0b98d157097da..b357df236cfcd 100644
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -1520,12 +1520,31 @@ DWORD nsWindow::WindowExStyle() {
*
**************************************************************/
+bool nsWindow::ShouldAssociateWithWinAppSDK() const {
+ // We currently don't need any SDK functionality for for PiP windows,
+ // and using the SDK on these windows causes them to go under the
+ // taskbar (bug 1995838).
+ //
+ // TODO(emilio): That might not be true anymore after bug 1993474,
+ // consider re-testing and removing that special-case.
+ return IsTopLevelWidget() && !mIsPIPWindow;
+}
+
bool nsWindow::AssociateWithNativeWindow() {
if (!mWnd || !IsWindow(mWnd)) {
NS_ERROR("Invalid window handle");
return false;
}
+ if (ShouldAssociateWithWinAppSDK()) {
+ // Make sure to call this here to associate our window with the
+ // Windows App SDK _before_ setting our WNDPROC, if needed.
+ // This is important because the SDKs WNDPROC might handle messages like
+ // WM_NCCALCSIZE without calling into us, and that can cause sizing issues,
+ // see bug 1993474.
+ WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient);
+ }
+
// Connect the this pointer to the native window handle.
// This should be done before SetWindowLongPtrW, because nsWindow::WindowProc
// uses WinUtils::GetNSWindowPtr internally.
@@ -1552,12 +1571,7 @@ void nsWindow::DissociateFromNativeWindow() {
DebugOnly<WNDPROC> wndProcBeforeDissociate =
reinterpret_cast<WNDPROC>(::SetWindowLongPtrW(
mWnd, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(*mPrevWndProc)));
- // If we've used the Windows App SDK to remove the minimize/maximize/close
- // entries from the titlebar, then the Windows App SDK sets its own WNDPROC
- // own the window, so this assertion would fail. But we only do this if
- // Mica is available.
- NS_ASSERTION(WinUtils::MicaAvailable() ||
- wndProcBeforeDissociate == nsWindow::WindowProc,
+ NS_ASSERTION(wndProcBeforeDissociate == nsWindow::WindowProc,
"Unstacked an unexpected native window procedure");
WinUtils::SetNSWindowPtr(mWnd, nullptr);
@@ -2835,9 +2849,7 @@ void nsWindow::SetCustomTitlebar(bool aCustomTitlebar) {
mCustomNonClientMetrics = {};
ResetLayout();
}
- // Not needed for PiP windows, and using the Windows App SDK on
- // these windows causes them to go under the taskbar (bug 1995838)
- if (!mPIPWindow) {
+ if (ShouldAssociateWithWinAppSDK()) {
WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient);
}
}
diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h
index 20f016757dfee..2756b248368a3 100644
--- a/widget/windows/nsWindow.h
+++ b/widget/windows/nsWindow.h
@@ -335,6 +335,8 @@ class nsWindow final : public nsIWidget {
bool IsRTL() const { return mIsRTL; }
+ bool ShouldAssociateWithWinAppSDK() const;
+
/**
* AssociateDefaultIMC() associates or disassociates the default IMC for
* the window.

View File

@@ -0,0 +1,57 @@
From 418e274c76f9e6b2d1149048cb399f1f6d709553 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Thu, 27 Nov 2025 15:31:40 +0000
Subject: [PATCH] Bug 1993474 - Remove redundant nsWindow::mPIPWindow.
r=win-reviewers,gstoll
nsIWidget already has a member for this.
Differential Revision: https://phabricator.services.mozilla.com/D274282
---
widget/windows/nsWindow.cpp | 4 +---
widget/windows/nsWindow.h | 3 ---
2 files changed, 1 insertion(+), 6 deletions(-)
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
index b357df236cfc..19f5980a106f 100644
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -817,7 +817,6 @@ static bool IsCloaked(HWND hwnd) {
nsWindow::nsWindow()
: nsBaseWidget(BorderStyle::Default),
mFrameState(std::in_place, this),
- mPIPWindow(false),
mMicaBackdrop(false),
mLastPaintEndTime(TimeStamp::Now()),
mCachedHitTestTime(TimeStamp::Now()),
@@ -1028,7 +1027,6 @@ nsresult nsWindow::Create(nsIWidget* aParent, const LayoutDeviceIntRect& aRect,
aParent ? (HWND)aParent->GetNativeData(NS_NATIVE_WINDOW) : nullptr;
mIsRTL = aInitData->mRTL;
- mPIPWindow = aInitData->mPIPWindow;
mOpeningAnimationSuppressed = aInitData->mIsAnimationSuppressed;
mAlwaysOnTop = aInitData->mAlwaysOnTop;
mIsAlert = aInitData->mIsAlert;
@@ -2807,7 +2805,7 @@ bool nsWindow::UpdateNonClientMargins(bool aReflowWindow) {
// frame sizes for left, right and bottom since Windows will automagically
// position the edges "offscreen" for maximized windows.
metrics.mOffset.top = metrics.mCaptionHeight;
- } else if (mPIPWindow &&
+ } else if (mIsPIPWindow &&
!StaticPrefs::widget_windows_pip_decorations_enabled()) {
metrics.mOffset = metrics.DefaultMargins();
} else {
diff --git a/widget/windows/nsWindow.h b/widget/windows/nsWindow.h
index 2756b248368a..9e6b4d41d721 100644
--- a/widget/windows/nsWindow.h
+++ b/widget/windows/nsWindow.h
@@ -852,9 +852,6 @@ class nsWindow final : public nsIWidget {
// Whether we're in the process of sending a WM_SETTEXT ourselves
bool mSendingSetText = false;
- // Whether we're a PIP window.
- bool mPIPWindow : 1;
-
// Whether we are asked to render a mica backdrop.
bool mMicaBackdrop : 1;

View File

@@ -97,7 +97,6 @@ class ZenStartup {
// Just in case we didn't get the right size.
gZenUIManager.updateTabsToolbar();
this.closeWatermark();
checkForZenUpdates();
this.isReady = true;
});
}
@@ -163,6 +162,7 @@ class ZenStartup {
if (!Services.prefs.getBoolPref('zen.welcome-screen.seen', false)) {
Services.prefs.setBoolPref('zen.welcome-screen.seen', true);
Services.prefs.setStringPref('zen.updates.last-build-id', Services.appinfo.appBuildID);
Services.prefs.setStringPref('zen.updates.last-version', Services.appinfo.version);
Services.scriptloader.loadSubScript(
'chrome://browser/content/zen-components/ZenWelcome.mjs',
window
@@ -173,6 +173,7 @@ class ZenStartup {
}
async #createUpdateAnimation() {
checkForZenUpdates();
return await createWindowUpdateAnimation();
}
}

View File

@@ -10,8 +10,8 @@ const ZEN_UPDATE_SHOW = 'zen.updates.show-update-notification';
export default function checkForZenUpdates() {
const version = Services.appinfo.version;
const lastVersion = Services.prefs.getStringPref(ZEN_UPDATE_PREF, version);
const lastVersion = Services.prefs.getStringPref(ZEN_UPDATE_PREF, '');
Services.prefs.setStringPref(ZEN_UPDATE_PREF, version);
if (
version !== lastVersion &&
!gZenUIManager.testingEnabled &&

View File

@@ -54,29 +54,27 @@
pointer-events: none;
}
@media -moz-pref('zen.theme.gradient') {
&::after {
background: var(--zen-main-browser-background);
opacity: var(--zen-background-opacity);
transition: 0s;
}
&:is(.zen-toolbar-background) {
&::after {
background: var(--zen-main-browser-background);
opacity: var(--zen-background-opacity);
transition: 0s;
background: var(--zen-main-browser-background-toolbar);
}
}
&:is(.zen-toolbar-background) {
&::after {
background: var(--zen-main-browser-background-toolbar);
}
}
&::before {
background: var(--zen-main-browser-background-old);
opacity: calc(1 - var(--zen-background-opacity));
transition: 0s;
}
&:is(.zen-toolbar-background) {
&::before {
background: var(--zen-main-browser-background-old);
opacity: calc(1 - var(--zen-background-opacity));
transition: 0s;
}
&:is(.zen-toolbar-background) {
&::before {
background: var(--zen-main-browser-background-toolbar-old);
}
background: var(--zen-main-browser-background-toolbar-old);
}
}

View File

@@ -20,7 +20,7 @@
min-width: 0;
border-radius: var(--border-radius-medium);
box-shadow: var(--zen-sidebar-notification-shadow);
font-size: var(--font-size-medium);
font-size: 12px;
}
.zen-sidebar-notification-header {

View File

@@ -622,3 +622,8 @@ body > #confetti {
display: none;
}
}
/* Sidebar notification */
:root:not([zen-sidebar-expanded='true']) zen-sidebar-notification {
display: none;
}

View File

@@ -48,6 +48,9 @@ let JSWINDOWACTORS = {
keydown: {
capture: true,
},
click: {
capture: true,
},
},
},
allFrames: true,

View File

@@ -52,9 +52,13 @@ window.gZenCompactModeManager = {
this._canDebugLog = Services.prefs.getBoolPref('zen.view.compact.debug', false);
this.addContextMenu();
this._resolvePreInit();
},
init() {
async init() {
await this._preInitPromise;
delete this._resolvePreInit;
delete this._preInitPromise;
this.addMouseActions();
const tabIsRightObserver = this._updateSidebarIsOnRight.bind(this);
@@ -227,6 +231,9 @@ window.gZenCompactModeManager = {
const isIllegalState = this.checkIfIllegalState();
const menuitem = document.getElementById('zen-context-menu-compact-mode-toggle');
const menu = document.getElementById('zen-context-menu-compact-mode');
if (!menu) {
return;
}
if (isSingleToolbar) {
menu.setAttribute('hidden', 'true');
menu.before(menuitem);
@@ -528,9 +535,11 @@ window.gZenCompactModeManager = {
},
updateContextMenu() {
document
.getElementById('zen-context-menu-compact-mode-toggle')
.setAttribute('checked', this.preference);
const toggle = document.getElementById('zen-context-menu-compact-mode-toggle');
if (!toggle) {
return;
}
toggle.setAttribute('checked', this.preference);
const hideTabBar = this.canHideSidebar;
const hideToolbar = this.canHideToolbar;
@@ -855,10 +864,13 @@ window.gZenCompactModeManager = {
},
};
document.addEventListener(
'MozBeforeInitialXULLayout',
() => {
gZenCompactModeManager.preInit();
},
{ once: true }
);
(gZenCompactModeManager._preInitPromise = new Promise((resolve) => {
gZenCompactModeManager._resolvePreInit = resolve;
})),
document.addEventListener(
'MozBeforeInitialXULLayout',
() => {
gZenCompactModeManager.preInit();
},
{ once: true }
);

View File

@@ -2,7 +2,6 @@
// 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 { Downloads } from 'resource://gre/modules/Downloads.sys.mjs';
import {
nsZenDOMOperatedFeature,
nsZenMultiWindowFeature,
@@ -24,6 +23,7 @@ class nsZenDownloadAnimation extends nsZenDOMOperatedFeature {
async #setupDownloadListeners() {
try {
const Downloads = window.Downloads;
const list = await Downloads.getList(Downloads.ALL);
list.addView({
onDownloadAdded: this.#handleNewDownload.bind(this),

View File

@@ -57,16 +57,32 @@ export class ZenGlanceChild extends JSWindowActorChild {
});
}
on_mousedown(event) {
/**
* Returns the closest A element from the event target
* and the element to record (originalTarget or target)
*/
#getTargetFromEvent(event) {
// get closest A element
const target = event.target.closest('A');
const elementToRecord = event.originalTarget || event.target;
return {
target,
elementToRecord,
};
}
on_mousedown(event) {
const { target, elementToRecord } = this.#getTargetFromEvent(event);
// 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);
}
on_click(event) {
const { target } = this.#getTargetFromEvent(event);
if (event.button !== 0 || event.defaultPrevented || this.#ensureOnlyKeyModifiers(event)) {
return;
}
@@ -80,12 +96,9 @@ export class ZenGlanceChild extends JSWindowActorChild {
} else if (activationMethod === 'meta' && !event.metaKey) {
return;
}
if (target) {
event.preventDefault();
event.stopPropagation();
this.#openGlance(target);
}
event.preventDefault();
event.stopPropagation();
this.#openGlance(target);
}
on_keydown(event) {

View File

@@ -132,7 +132,7 @@ const ZEN_WORKSPACE_SHORTCUTS_GROUP = 'zen-workspace';
const ZEN_OTHER_SHORTCUTS_GROUP = 'zen-other';
const ZEN_SPLIT_VIEW_SHORTCUTS_GROUP = 'zen-split-view';
const FIREFOX_SHORTCUTS_GROUP = 'zen-kbs-invalid';
const VALID_SHORTCUT_GROUPS = [
window.VALID_SHORTCUT_GROUPS = [
ZEN_COMPACT_MODE_SHORTCUTS_GROUP,
ZEN_WORKSPACE_SHORTCUTS_GROUP,
ZEN_SPLIT_VIEW_SHORTCUTS_GROUP,
@@ -141,7 +141,7 @@ const VALID_SHORTCUT_GROUPS = [
'other',
];
class nsKeyShortcutModifiers {
export class nsKeyShortcutModifiers {
#control = false;
#alt = false;
#shift = false;
@@ -322,7 +322,7 @@ class KeyShortcut {
this.#key = key?.toLowerCase();
this.#keycode = keycode;
if (!VALID_SHORTCUT_GROUPS.includes(group)) {
if (!window.VALID_SHORTCUT_GROUPS.includes(group)) {
throw new Error('Illegal group value: ' + group);
}

View File

@@ -164,7 +164,7 @@ class nsZenPinnedTabManager extends nsZenDOMOperatedFeature {
if (init) {
this._hasFinishedLoading = true;
}
}, 10);
}, 100);
}
async #initializePinsCache() {

View File

@@ -79,6 +79,7 @@ window.ZenPinnedTabsStorage = {
async savePin(pin, notifyObservers = true) {
// If we find the exact same pin in the cache, skip saving
const existingIndex = this._saveCache.findIndex((cachedPin) => cachedPin.uuid === pin.uuid);
const copy = { ...pin };
if (existingIndex !== -1) {
const existingPin = this._saveCache[existingIndex];
const isSame = Object.keys(pin).every((key) => pin[key] === existingPin[key]);
@@ -86,11 +87,11 @@ window.ZenPinnedTabsStorage = {
return; // No changes, skip saving
} else {
// Update the cached pin
this._saveCache[existingIndex] = pin;
this._saveCache[existingIndex] = { ...copy };
}
} else {
// Add to cache
this._saveCache.push(pin);
this._saveCache.push(copy);
}
const changedUUIDs = new Set();

View File

@@ -313,7 +313,7 @@
var(--zen-tabbox-element-indent-transition);
}
:root[zen-sidebar-expanded='true'] & {
:root[zen-sidebar-expanded='true'] &:not([zen-glance-tab]) {
margin-inline-start: var(--zen-folder-indent) !important;
}

View File

@@ -66,11 +66,7 @@ export class nsZenThemePicker extends nsZenMultiWindowFeature {
constructor() {
super();
if (
!Services.prefs.getBoolPref('zen.theme.gradient', true) ||
!gZenWorkspaces.shouldHaveWorkspaces ||
gZenWorkspaces.privateWindowOrDisabled
) {
if (!gZenWorkspaces.shouldHaveWorkspaces || gZenWorkspaces.privateWindowOrDisabled) {
return;
}
this.promiseInitialized = new Promise((resolve) => {

View File

@@ -51,7 +51,11 @@ class nsZenWorkspaces extends nsZenMultiWindowFeature {
if (this.privateWindowOrDisabled) {
return;
}
await Promise.all([this.promiseDBInitialized, this.promisePinnedInitialized]);
await Promise.all([
this.promiseDBInitialized,
this.promisePinnedInitialized,
SessionStore.promiseAllWindowsRestored,
]);
}
async init() {

View File

@@ -5,8 +5,8 @@
"binaryName": "zen",
"version": {
"product": "firefox",
"version": "145.0.1",
"candidate": "145.0.1"
"version": "145.0.2",
"candidate": "145.0.2"
},
"buildOptions": {
"generateBranding": true
@@ -19,7 +19,7 @@
"brandShortName": "Zen",
"brandFullName": "Zen Browser",
"release": {
"displayVersion": "1.17.8b",
"displayVersion": "1.17.11b",
"github": {
"repo": "zen-browser/desktop"
},
@@ -53,4 +53,4 @@
"licenseType": "MPL-2.0"
},
"updateHostname": "updates.zen-browser.app"
}
}