Compare commits

..

50 Commits

Author SHA1 Message Date
Mr. M
c6cd912262 feat: Start making use of IDs instead of sync identifiers, b=no-bug, c=folders 2025-11-21 14:29:58 +01:00
Mr. M
a765d3642f Merge branch 'window-sync' of https://github.com/zen-browser/desktop into window-sync 2025-11-21 13:19:30 +01:00
Mr. M
40bc51f904 feat: Run session saver before opening a new window, b=no-bug, c=no-component 2025-11-21 13:16:57 +01:00
Mr. M
8a963a9257 feat: Move window sync to its own JS module, b=no-bug, c=workspaces 2025-11-21 13:16:43 +01:00
Mr. M
9c5bf19ae3 feat: Clone the previous state, b=no-bug, c=no-component 2025-11-21 13:12:22 +01:00
Mr. M
6fbba04dab feat: Run session saver before opening a new winodw, b=no-bug, c=tabs 2025-11-21 13:12:22 +01:00
mr. m
c5df63711b Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs 2025-11-21 13:11:56 +01:00
mr. m
a61846bf9a Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch 2025-11-21 13:11:56 +01:00
mr. m
c2a5066181 Discard changes to src/browser/components/tabbrowser/content/tab-js.patch 2025-11-21 13:11:47 +01:00
mr. m
00417582fb Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch 2025-11-21 13:11:47 +01:00
Mr. M
32d603ced9 chore: Update patches to ff 145, b=no-bug, c=no-component 2025-11-21 13:11:46 +01:00
Mr. M
2706e8761d feat: Dont restore windows that are already initialized, b=no-bug, c=no-component 2025-11-21 13:11:39 +01:00
Mr. M
61659c63d9 feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces 2025-11-21 13:11:39 +01:00
Mr. M
34c725aad0 feat: Start doing out own session restore, b=no-bug, c=folders, tabs 2025-11-21 13:08:38 +01:00
mr. m
435762c682 Discard changes to prefs/browser.yaml 2025-11-21 13:06:46 +01:00
Mr. M
c60990c283 feat: Properly handle tab moves, b=no-bug, c=workspaces 2025-11-21 13:06:46 +01:00
Mr. M
1d26040fc6 feat: Start on new session restore, b=no-bug, c=no-component 2025-11-21 13:06:46 +01:00
Mr. M
acb3708936 feat: Dont session duplicate the tabs, b=no-bug, c=workspaces 2025-11-21 13:06:46 +01:00
mr. m
c3b9c3c526 feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces 2025-11-21 13:06:45 +01:00
Mr. M
0adf260ddc feat: Full cross-window workspace syncing, b=no-bug, c=workspaces 2025-11-21 13:03:46 +01:00
mr. m
0e8b8da845 chore: Convert the codebase into modules, p=#11364
* chore: Convert the codebase into modules, b=no-bug, c=common, compact-mode, folders, fonts, glance, images, kbs, media, mods, split-view, tabs, tests, vendor, welcome, workspaces

* feat: Added update popup, b=no-bug, c=media, common
2025-11-20 18:14:46 +01:00
mr. m
3eb3875de9 Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-11-19 19:14:50 +01:00
mr. m
4c5a3aeabb feat: Always show the separator if there are visible tabs, b=closes #11349, c=tabs, workspaces 2025-11-19 19:14:45 +01:00
Mr. M
ce986beb2f feat: Run session saver before opening a new window, b=no-bug, c=no-component 2025-11-17 18:51:14 +01:00
Mr. M
c86875b7b0 feat: Move window sync to its own JS module, b=no-bug, c=workspaces 2025-11-17 13:36:57 +01:00
Mr. M
eefc8cb20c feat: Clone the previous state, b=no-bug, c=no-component 2025-11-13 17:03:27 +01:00
Mr. M
12c921fd87 feat: Run session saver before opening a new winodw, b=no-bug, c=tabs 2025-11-13 14:40:52 +01:00
mr. m
e419c4dc9f Merge branch 'dev' into window-sync
Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-11-13 13:58:38 +01:00
mr. m
68b37ac736 Discard changes to src/zen/tabs/ZenPinnedTabsStorage.mjs 2025-11-13 13:58:18 +01:00
mr. m
7f225ac3ee Discard changes to src/browser/components/tabbrowser/content/tabbrowser-js.patch 2025-11-13 13:57:55 +01:00
mr. m
3e39ef2538 Discard changes to src/browser/components/tabbrowser/content/tab-js.patch 2025-11-13 13:57:42 +01:00
mr. m
e5517eb164 Discard changes to src/browser/components/sessionstore/SessionStore-sys-mjs.patch 2025-11-13 13:57:32 +01:00
Mr. M
c4dd470864 chore: Update patches to ff 145, b=no-bug, c=no-component 2025-11-13 13:56:31 +01:00
Mr. M
bf1b0dcd48 feat: Dont restore windows that are already initialized, b=no-bug, c=no-component 2025-11-01 13:40:14 +01:00
Mr. M
76acc8b0e4 feat: Stop using pinned manager and use zen session sidebar, b=no-bug, c=common, folders, tabs, workspaces 2025-10-31 23:07:38 +01:00
mr. m
1b83b77cad Merge branch 'dev' into window-sync
Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-10-31 21:56:19 +01:00
Mr. M
79ff574978 feat: Start doing out own session restore, b=no-bug, c=folders, tabs 2025-10-29 23:57:20 +01:00
mr. m
af20a65fa1 Merge branch 'dev' into window-sync 2025-10-19 23:11:11 +02:00
mr. m
4a7f8fc9c0 Merge branch 'dev' into window-sync 2025-10-19 12:53:06 +02:00
mr. m
a738a829de Merge branch 'dev' into window-sync 2025-10-18 19:53:04 +02:00
mr. m
240a031e38 Discard changes to prefs/browser.yaml 2025-10-18 19:52:53 +02:00
Mr. M
9bc7b9ce4e Merge branch 'window-sync' of https://github.com/zen-browser/desktop into window-sync 2025-09-28 23:45:17 +02:00
Mr. M
86006c8891 feat: Start on new session restore, b=no-bug, c=no-component 2025-09-28 23:45:13 +02:00
Mr. M
a55b1c7495 feat: Properly handle tab moves, b=no-bug, c=workspaces 2025-09-27 17:54:28 +02:00
mr. m
6e6337a95b Merge branch 'dev' into window-sync 2025-09-27 16:58:29 +02:00
mr. m
6b12153c8a Merge branch 'dev' into window-sync 2025-09-27 09:35:44 +02:00
mr. m
f6922ef2ba Merge branch 'dev' into window-sync 2025-09-03 13:06:44 +02:00
Mr. M
91f5d58fbc feat: Dont session duplicate the tabs, b=no-bug, c=workspaces 2025-09-02 16:21:04 +02:00
mr. m
7a4cdaa45c feat: Also change icons and labels if the tab is pending, b=no-bug, c=tabs, workspaces 2025-09-01 16:09:59 +02:00
Mr. M
81e854a89f feat: Full cross-window workspace syncing, b=no-bug, c=workspaces 2025-08-27 23:25:07 +02:00
150 changed files with 10414 additions and 10898 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -98,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Cliquez sur l'icône pour gérer
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Ouvrir le lien dans Glance .label = Ouvrir le lien dans Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Cliceáil an deilbhín chun socru
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Oscail an Nasc i Glance .label = Oscail an Nasc i Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = ניתן ללחוץ על הסמל
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Kattints az ikonra a webhely beá
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Link megnyitása a bepillantóban .label = Link megnyitása a bepillantóban
.accesskey = G .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 .accesskey = S
zen-split-link = zen-split-link =
.label = Hivatkozás felosztása új lapban .label = Link felosztása új lapban
.accesskey = S .accesskey = S
zen-split-view-modifier-header = Osztott nézet zen-split-view-modifier-header = Osztott nézet
zen-split-view-modifier-activate-reallocation = zen-split-view-modifier-activate-reallocation =

View File

@@ -98,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Klik ikon untuk mengelola pengatu
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Buka Tautan di Glance .label = Buka Tautan di Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +96,3 @@ zen-site-data-panel-feature-callout-subtitle = Clicca l'icona per gestire le imp
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Apri collegamento in Sguardo .label = Apri collegamento in Sguardo
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = 아이콘을 클릭해 사이트
zen-open-link-in-glance = zen-open-link-in-glance =
.label = 글랜스로 링크 열기 .label = 글랜스로 링크 열기
.accesskey = G .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ę .label = Atkurti prisegtą kortelę
.accesskey = R .accesskey = R
tab-context-zen-add-essential = tab-context-zen-add-essential =
.label = Įtraukti į būtiniausius .label = Add to Essentials
.accesskey = E .accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } užpildytų vietų tab-context-zen-add-essential-badge = { $num } / { $max } slots filled
tab-context-zen-remove-essential = tab-context-zen-remove-essential =
.label = Šalinti iš būtiniausių .label = Šalinti iš būtiniausių
.accesskey = R .accesskey = R
@@ -98,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Spustelėkite piktogramą, kad tv
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Atverti nuorodą spartiuojame pažiūrėjime .label = Atverti nuorodą spartiuojame pažiūrėjime
.accesskey = G .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 = Restart in Safe Mode

View File

@@ -98,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Klik op het icoon om de site-inst
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Kliknij ikonę, aby zarządzać u
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +96,3 @@ zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerenciar c
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerir defin
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Нажмите на значок
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Открыть ссылку в предпросмотре .label = Открыть ссылку в предпросмотре
.accesskey = П .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Натисніть значок,
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Відкрити посилання в передперегляді .label = Відкрити посилання в передперегляді
.accesskey = G .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,12 +98,3 @@ zen-site-data-panel-feature-callout-subtitle = Bấm vào biểu tượng để
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +96,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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,12 +96,3 @@ zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site set
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Open Link in Glance .label = Open Link in Glance
.accesskey = G .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

158
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "1.0.0", "version": "1.0.0",
"license": "MPL-2.0", "license": "MPL-2.0",
"dependencies": { "dependencies": {
"@zen-browser/surfer": "^1.11.22" "@zen-browser/surfer": "^1.11.23"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-typescript": "^7.27.0", "@babel/preset-typescript": "^7.27.0",
@@ -35,7 +35,6 @@
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24" "@jridgewell/trace-mapping": "^0.3.24"
@@ -65,7 +64,6 @@
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@@ -108,7 +106,6 @@
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
@@ -149,7 +146,6 @@
"integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.26.8", "@babel/compat-data": "^7.26.8",
"@babel/helper-validator-option": "^7.25.9", "@babel/helper-validator-option": "^7.25.9",
@@ -167,7 +163,6 @@
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
@@ -341,7 +336,6 @@
"integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/template": "^7.27.0", "@babel/template": "^7.27.0",
"@babel/types": "^7.27.0" "@babel/types": "^7.27.0"
@@ -617,13 +611,6 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/@eslint/eslintrc/node_modules/argparse": {
"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/@eslint/eslintrc/node_modules/globals": { "node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "14.0.0", "version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
@@ -637,19 +624,6 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/@eslint/eslintrc/node_modules/js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dev": true,
"license": "MIT",
"dependencies": {
"argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
"node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": {
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
@@ -838,51 +812,51 @@
} }
}, },
"node_modules/@oozcitak/dom": { "node_modules/@oozcitak/dom": {
"version": "1.15.10", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-2.0.1.tgz",
"integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", "integrity": "sha512-Un5k8MKqGak1LQM/behcHylmGdRopBXZax19weVedEAIrOCRZooY+MvX4Ehcz0ftOEPgYZ7vjIm/+MokVBFO3w==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oozcitak/infra": "1.0.8", "@oozcitak/infra": "^2.0.1",
"@oozcitak/url": "1.0.4", "@oozcitak/url": "^2.0.1",
"@oozcitak/util": "8.3.8" "@oozcitak/util": "^9.0.2"
}, },
"engines": { "engines": {
"node": ">=8.0" "node": ">=20.0"
} }
}, },
"node_modules/@oozcitak/infra": { "node_modules/@oozcitak/infra": {
"version": "1.0.8", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-2.0.1.tgz",
"integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", "integrity": "sha512-TtjI+kducm0ExL3OTKglPLkAIQ3alq0Otbokml62haZESfQaL3ojLJxl7+UTBhWCkBBuCshzGEEYmX5MXo8WOg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oozcitak/util": "8.3.8" "@oozcitak/util": "~9.0.2"
}, },
"engines": { "engines": {
"node": ">=6.0" "node": ">=20.0"
} }
}, },
"node_modules/@oozcitak/url": { "node_modules/@oozcitak/url": {
"version": "1.0.4", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-2.0.1.tgz",
"integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", "integrity": "sha512-lLHUQUyYy86q+qbALr0TMVh+VQAYwNGbsxBx4LhfjvkNYG0hgAwWtq7ePebGs2nEhZmmIFl24ikuCpH2r5d3+A==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oozcitak/infra": "1.0.8", "@oozcitak/infra": "^2.0.1",
"@oozcitak/util": "8.3.8" "@oozcitak/util": "^9.0.2"
}, },
"engines": { "engines": {
"node": ">=8.0" "node": ">=20.0"
} }
}, },
"node_modules/@oozcitak/util": { "node_modules/@oozcitak/util": {
"version": "8.3.8", "version": "9.0.4",
"resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-9.0.4.tgz",
"integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", "integrity": "sha512-kmx1hRJlsvxiTCpK97off59LqSEOtkWOPe4rdfFL8TjZtihYSTVNObIfc86jtLngfnuIuuTRt+TUCgRS220RSQ==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">=8.0" "node": ">=20.0"
} }
}, },
"node_modules/@resvg/resvg-js": { "node_modules/@resvg/resvg-js": {
@@ -1135,9 +1109,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@zen-browser/surfer": { "node_modules/@zen-browser/surfer": {
"version": "1.11.22", "version": "1.11.23",
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.22.tgz", "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.23.tgz",
"integrity": "sha512-fvV+8stPXJDyX/6lv4bvgkxq1hNGyJJyOU1ysjJSrElxo9CerB35XU8LMjAs6SjuV1olLMILg2DwCIP2gVn0+Q==", "integrity": "sha512-nPJ8oH1r4yncPCymuVxFRJMKbj9elpLIuSMW7botJT1UpyTKeGPrpFukpc+fq4U8TXa1tNddpoUvI8ZRfk0sxA==",
"license": "MPL-2.0", "license": "MPL-2.0",
"dependencies": { "dependencies": {
"@resvg/resvg-js": "^1.4.0", "@resvg/resvg-js": "^1.4.0",
@@ -1161,7 +1135,7 @@
"semver": "^7.3.7", "semver": "^7.3.7",
"sharp": "^0.32.6", "sharp": "^0.32.6",
"tiny-glob": "^0.2.9", "tiny-glob": "^0.2.9",
"xmlbuilder2": "^3.0.2" "xmlbuilder2": "^4.0.0"
}, },
"bin": { "bin": {
"surfer": "dist/index.js" "surfer": "dist/index.js"
@@ -1173,6 +1147,7 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -1252,13 +1227,10 @@
} }
}, },
"node_modules/argparse": { "node_modules/argparse": {
"version": "1.0.10", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
"license": "MIT", "license": "Python-2.0"
"dependencies": {
"sprintf-js": "~1.0.2"
}
}, },
"node_modules/array-buffer-byte-length": { "node_modules/array-buffer-byte-length": {
"version": "1.0.2", "version": "1.0.2",
@@ -1846,8 +1818,7 @@
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"license": "CC-BY-4.0", "license": "CC-BY-4.0"
"peer": true
}, },
"node_modules/chalk": { "node_modules/chalk": {
"version": "4.1.2", "version": "4.1.2",
@@ -2034,8 +2005,7 @@
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/core-js-pure": { "node_modules/core-js-pure": {
"version": "3.41.0", "version": "3.41.0",
@@ -2355,8 +2325,7 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz",
"integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==", "integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC"
"peer": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
@@ -2592,7 +2561,6 @@
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@@ -2616,6 +2584,7 @@
"integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1", "@eslint-community/regexpp": "^4.12.1",
@@ -3056,19 +3025,6 @@
"url": "https://opencollective.com/eslint" "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": { "node_modules/esquery": {
"version": "1.6.0", "version": "1.6.0",
"resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
@@ -3463,7 +3419,6 @@
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@@ -4409,13 +4364,12 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/js-yaml": { "node_modules/js-yaml": {
"version": "3.14.1", "version": "4.1.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz",
"integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"argparse": "^1.0.7", "argparse": "^2.0.1"
"esprima": "^4.0.0"
}, },
"bin": { "bin": {
"js-yaml": "bin/js-yaml.js" "js-yaml": "bin/js-yaml.js"
@@ -4461,7 +4415,6 @@
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"json5": "lib/cli.js" "json5": "lib/cli.js"
}, },
@@ -4896,7 +4849,6 @@
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"dependencies": { "dependencies": {
"yallist": "^3.0.2" "yallist": "^3.0.2"
} }
@@ -5111,8 +5063,7 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT"
"peer": true
}, },
"node_modules/normalize-path": { "node_modules/normalize-path": {
"version": "3.0.0", "version": "3.0.0",
@@ -5568,6 +5519,7 @@
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
}, },
@@ -6342,12 +6294,6 @@
"integrity": "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==", "integrity": "sha512-lgxErLl/7A5+vgIIXsh9MbeukOaCb2axgQ+bKCdIE+ibNT4XNYGNCR1qFEGq6F+YDASXK3Fh/c5FgtZchFolxw==",
"license": "MIT" "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": { "node_modules/stack-base-iterator": {
"version": "1.1.20", "version": "1.1.20",
"resolved": "https://registry.npmjs.org/stack-base-iterator/-/stack-base-iterator-1.1.20.tgz", "resolved": "https://registry.npmjs.org/stack-base-iterator/-/stack-base-iterator-1.1.20.tgz",
@@ -6982,7 +6928,6 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"escalade": "^3.2.0", "escalade": "^3.2.0",
"picocolors": "^1.1.1" "picocolors": "^1.1.1"
@@ -7236,18 +7181,18 @@
"license": "ISC" "license": "ISC"
}, },
"node_modules/xmlbuilder2": { "node_modules/xmlbuilder2": {
"version": "3.1.1", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-4.0.0.tgz",
"integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", "integrity": "sha512-zIoY033NGmbzHX1cYOGKNfeWpZyiGLzXGHNoxQ6tR/R+WqT7mqz+EDtFdPwqnhIms6vHz9BNtMS47DiGPyGfwg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oozcitak/dom": "1.15.10", "@oozcitak/dom": "^2.0.1",
"@oozcitak/infra": "1.0.8", "@oozcitak/infra": "^2.0.1",
"@oozcitak/util": "8.3.8", "@oozcitak/util": "^9.0.4",
"js-yaml": "3.14.1" "js-yaml": "^4.1.0"
}, },
"engines": { "engines": {
"node": ">=12.0" "node": ">=20.0"
} }
}, },
"node_modules/xtend": { "node_modules/xtend": {
@@ -7264,8 +7209,7 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC"
"peer": true
}, },
"node_modules/yaml": { "node_modules/yaml": {
"version": "2.7.0", "version": "2.7.0",

View File

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

6
prefs/zen/updates.yaml Normal file
View File

@@ -0,0 +1,6 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
- name: zen.updates.show-update-notification
value: true

View File

@@ -43,18 +43,19 @@
<script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script> <script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script>
# Scripts used all over the browser # Scripts used all over the browser
<script type="text/javascript" src="chrome://browser/content/ZenUIManager.mjs"></script> <script type="module" src="chrome://browser/content/ZenUIManager.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenFolder.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenFolder.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenFolders.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenMods.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenMediaController.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenGradientGenerator.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspaceCreation.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenGlanceManager.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenGlanceManager.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenPinnedTabManager.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenMediaController.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenViewSplitter.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenFolders.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaceCreation.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenMods.mjs"></script>

View File

@@ -2,104 +2,18 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js) #include ../../../zen/common/jar.inc.mn
content/browser/ZenStartup.mjs (../../zen/common/ZenStartup.mjs) #include ../../../zen/compact-mode/jar.inc.mn
content/browser/ZenPreloadedScripts.js (../../zen/common/ZenPreloadedScripts.js) #include ../../../zen/split-view/jar.inc.mn
content/browser/zen-sets.js (../../zen/common/zen-sets.js) #include ../../../zen/mods/jar.inc.mn
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs) #include ../../../zen/workspaces/jar.inc.mn
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs) #include ../../../zen/tabs/jar.inc.mn
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs) #include ../../../zen/kbs/jar.inc.mn
content/browser/zen-components/ZenEmojisData.min.mjs (../../zen/common/emojis/ZenEmojisData.min.mjs) #include ../../../zen/glance/jar.inc.mn
content/browser/zen-components/ZenEmojiPicker.mjs (../../zen/common/emojis/ZenEmojiPicker.mjs) #include ../../../zen/folders/jar.inc.mn
content/browser/zen-components/ZenHasPolyfill.mjs (../../zen/common/ZenHasPolyfill.mjs) #include ../../../zen/welcome/jar.inc.mn
#include ../../../zen/media/jar.inc.mn
* content/browser/zen-styles/zen-theme.css (../../zen/common/styles/zen-theme.css) #include ../../../zen/downloads/jar.inc.mn
content/browser/zen-styles/zen-buttons.css (../../zen/common/styles/zen-buttons.css) #include ../../../zen/images/jar.inc.mn
content/browser/zen-styles/zen-browser-ui.css (../../zen/common/styles/zen-browser-ui.css) #include ../../../zen/vendor/jar.inc.mn
content/browser/zen-styles/zen-animations.css (../../zen/common/styles/zen-animations.css) #include ../../../zen/fonts/jar.inc.mn
content/browser/zen-styles/zen-panel-ui.css (../../zen/common/styles/zen-panel-ui.css)
content/browser/zen-styles/zen-single-components.css (../../zen/common/styles/zen-single-components.css)
content/browser/zen-styles/zen-sidebar.css (../../zen/common/styles/zen-sidebar.css)
content/browser/zen-styles/zen-toolbar.css (../../zen/common/styles/zen-toolbar.css)
content/browser/zen-styles/zen-browser-container.css (../../zen/common/styles/zen-browser-container.css)
content/browser/zen-styles/zen-omnibox.css (../../zen/common/styles/zen-omnibox.css)
content/browser/zen-styles/zen-popup.css (../../zen/common/styles/zen-popup.css)
content/browser/zen-styles/zen-branding.css (../../zen/common/styles/zen-branding.css)
content/browser/zen-styles/zen-panels/bookmarks.css (../../zen/common/styles/zen-panels/bookmarks.css)
content/browser/zen-styles/zen-panels/print.css (../../zen/common/styles/zen-panels/print.css)
content/browser/zen-styles/zen-panels/dialog.css (../../zen/common/styles/zen-panels/dialog.css)
content/browser/zen-components/ZenCompactMode.mjs (../../zen/compact-mode/ZenCompactMode.mjs)
* content/browser/zen-styles/zen-compact-mode.css (../../zen/compact-mode/zen-compact-mode.css)
content/browser/zen-components/ZenViewSplitter.mjs (../../zen/split-view/ZenViewSplitter.mjs)
* content/browser/zen-styles/zen-decks.css (../../zen/split-view/zen-decks.css)
content/browser/zen-components/ZenMods.mjs (../../zen/mods/ZenMods.mjs)
content/browser/zen-components/ZenWorkspaceIcons.mjs (../../zen/workspaces/ZenWorkspaceIcons.mjs)
content/browser/zen-components/ZenWorkspace.mjs (../../zen/workspaces/ZenWorkspace.mjs)
content/browser/zen-components/ZenWorkspaces.mjs (../../zen/workspaces/ZenWorkspaces.mjs)
content/browser/zen-components/ZenWorkspaceCreation.mjs (../../zen/workspaces/ZenWorkspaceCreation.mjs)
content/browser/zen-components/ZenWorkspacesStorage.mjs (../../zen/workspaces/ZenWorkspacesStorage.mjs)
content/browser/zen-components/ZenWorkspacesSync.mjs (../../zen/workspaces/ZenWorkspacesSync.mjs)
content/browser/zen-components/ZenGradientGenerator.mjs (../../zen/workspaces/ZenGradientGenerator.mjs)
* content/browser/zen-styles/zen-workspaces.css (../../zen/workspaces/zen-workspaces.css)
content/browser/zen-styles/zen-gradient-generator.css (../../zen/workspaces/zen-gradient-generator.css)
content/browser/zen-components/ZenKeyboardShortcuts.mjs (../../zen/kbs/ZenKeyboardShortcuts.mjs)
content/browser/zen-components/ZenPinnedTabsStorage.mjs (../../zen/tabs/ZenPinnedTabsStorage.mjs)
content/browser/zen-components/ZenPinnedTabManager.mjs (../../zen/tabs/ZenPinnedTabManager.mjs)
* content/browser/zen-styles/zen-tabs.css (../../zen/tabs/zen-tabs.css)
content/browser/zen-styles/zen-tabs/vertical-tabs.css (../../zen/tabs/zen-tabs/vertical-tabs.css)
content/browser/zen-components/ZenGlanceManager.mjs (../../zen/glance/ZenGlanceManager.mjs)
content/browser/zen-styles/zen-glance.css (../../zen/glance/zen-glance.css)
content/browser/zen-components/ZenFolder.mjs (../../zen/folders/ZenFolder.mjs)
content/browser/zen-components/ZenFolders.mjs (../../zen/folders/ZenFolders.mjs)
content/browser/zen-styles/zen-folders.css (../../zen/folders/zen-folders.css)
content/browser/zen-components/ZenWelcome.mjs (../../zen/welcome/ZenWelcome.mjs)
content/browser/zen-styles/zen-welcome.css (../../zen/welcome/zen-welcome.css)
content/browser/zen-components/ZenMediaController.mjs (../../zen/media/ZenMediaController.mjs)
content/browser/zen-styles/zen-media-controls.css (../../zen/media/zen-media-controls.css)
content/browser/zen-components/ZenDownloadAnimation.mjs (../../zen/downloads/ZenDownloadAnimation.mjs)
content/browser/zen-styles/zen-download-arc-animation.css (../../zen/downloads/zen-download-arc-animation.css)
content/browser/zen-styles/zen-download-box-animation.css (../../zen/downloads/zen-download-box-animation.css)
# Images
content/browser/zen-images/brand-header.svg (../../zen/images/brand-header.svg)
content/browser/zen-images/layouts/collapsed.png (../../zen/images/layouts/collapsed.png)
content/browser/zen-images/layouts/multiple-toolbar.png (../../zen/images/layouts/multiple-toolbar.png)
content/browser/zen-images/layouts/single-toolbar.png (../../zen/images/layouts/single-toolbar.png)
content/browser/zen-images/grain-bg.png (../../zen/images/grain-bg.png)
content/browser/zen-images/note-indicator.svg (../../zen/images/note-indicator.svg)
content/browser/zen-images/downloads/download.svg (../../zen/images/downloads/download.svg)
content/browser/zen-images/downloads/archive.svg (../../zen/images/downloads/archive.svg)
# Fonts
content/browser/zen-fonts/JunicodeVF-Italic.woff2 (../../zen/fonts/JunicodeVF-Italic.woff2)
content/browser/zen-fonts/JunicodeVF-Roman.woff2 (../../zen/fonts/JunicodeVF-Roman.woff2)
# JS Vendor
content/browser/zen-vendor/tsparticles.confetti.bundle.min.js (../../zen/vendor/tsparticles.confetti.bundle.min.js)
content/browser/zen-vendor/motion.min.mjs (../../zen/vendor/motion.min.mjs)
# FavIcons for startup
content/browser/zen-images/favicons/calendar.svg (../../zen/images/favicons/calendar.svg)
content/browser/zen-images/favicons/discord.svg (../../zen/images/favicons/discord.svg)
content/browser/zen-images/favicons/figma.svg (../../zen/images/favicons/figma.svg)
content/browser/zen-images/favicons/github.svg (../../zen/images/favicons/github.svg)
content/browser/zen-images/favicons/notion.svg (../../zen/images/favicons/notion.svg)
content/browser/zen-images/favicons/obsidian.svg (../../zen/images/favicons/obsidian.svg)
content/browser/zen-images/favicons/slack.svg (../../zen/images/favicons/slack.svg)
content/browser/zen-images/favicons/reddit.svg (../../zen/images/favicons/reddit.svg)
content/browser/zen-images/favicons/x.svg (../../zen/images/favicons/x.svg)
content/browser/zen-images/favicons/trello.svg (../../zen/images/favicons/trello.svg)

View File

@@ -6,11 +6,11 @@
# the window is fully loaded. # the window is fully loaded.
# Make sure they are loaded before the global-scripts.inc file. # Make sure they are loaded before the global-scripts.inc file.
<script type="text/javascript" src="chrome://browser/content/zen-sets.js"></script> <script type="text/javascript" src="chrome://browser/content/zen-sets.js"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenHasPolyfill.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenCommonUtils.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaceIcons.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script> <script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenHasPolyfill.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaceIcons.mjs"></script>

View File

@@ -1,8 +1,13 @@
/* eslint-disable no-undef */ /* eslint-disable no-undef, no-unused-vars */
// This Source Code Form is subject to the terms of the Mozilla Public // This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this // 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/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
const { nsZenMultiWindowFeature } = ChromeUtils.importESModule(
'chrome://browser/content/zen-components/ZenCommonUtils.mjs',
{ global: 'current' }
);
var gZenMarketplaceManager = { var gZenMarketplaceManager = {
async init() { async init() {
const checkForUpdates = document.getElementById('zenThemeMarketplaceCheckForUpdates'); const checkForUpdates = document.getElementById('zenThemeMarketplaceCheckForUpdates');
@@ -634,7 +639,6 @@ var gZenMarketplaceManager = {
const kZenExtendedSidebar = 'zen.view.sidebar-expanded'; const kZenExtendedSidebar = 'zen.view.sidebar-expanded';
const kZenSingleToolbar = 'zen.view.use-single-toolbar'; const kZenSingleToolbar = 'zen.view.use-single-toolbar';
/* eslint-disable no-unused-vars */
var gZenLooksAndFeel = { var gZenLooksAndFeel = {
init() { init() {
if (this.__hasInitialized) return; if (this.__hasInitialized) return;
@@ -696,7 +700,6 @@ var gZenLooksAndFeel = {
}, },
}; };
/* eslint-disable no-unused-vars */
var gZenWorkspacesSettings = { var gZenWorkspacesSettings = {
init() { init() {
var tabsUnloaderPrefListener = { var tabsUnloaderPrefListener = {
@@ -751,7 +754,7 @@ const ZEN_CKS_WRAPPER_ID = `${ZEN_CKS_CLASS_BASE}-wrapper`;
const ZEN_CKS_GROUP_PREFIX = `${ZEN_CKS_CLASS_BASE}-group`; const ZEN_CKS_GROUP_PREFIX = `${ZEN_CKS_CLASS_BASE}-group`;
const KEYBIND_ATTRIBUTE_KEY = 'key'; const KEYBIND_ATTRIBUTE_KEY = 'key';
var zenMissingKeyboardShortcutL10n = { const zenMissingKeyboardShortcutL10n = {
key_quickRestart: 'zen-key-quick-restart', key_quickRestart: 'zen-key-quick-restart',
key_delete: 'zen-key-delete', key_delete: 'zen-key-delete',
goBackKb: 'zen-key-go-back', goBackKb: 'zen-key-go-back',
@@ -805,7 +808,6 @@ var zenIgnoreKeyboardShortcutL10n = [
'zen-full-zoom-reduce-shortcut-alt-a', 'zen-full-zoom-reduce-shortcut-alt-a',
]; ];
/* eslint-disable no-unused-vars */
var gZenCKSSettings = { var gZenCKSSettings = {
async init() { async init() {
await this._initializeCKS(); await this._initializeCKS();

View File

@@ -2,7 +2,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<script src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"/> <script type="module" src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"/>
<html:template id="template-paneZenCKS"> <html:template id="template-paneZenCKS">
<hbox id="ZenCKSCategory" <hbox id="ZenCKSCategory"
class="subcategory" class="subcategory"

View File

@@ -2,7 +2,7 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<script src="chrome://browser/content/preferences/zen-settings.js"/> <script type="text/javascript" src="chrome://browser/content/preferences/zen-settings.js"/>
<html:template id="template-paneZenLooks"> <html:template id="template-paneZenLooks">
<hbox id="zenVerticalTabsCategory" <hbox id="zenVerticalTabsCategory"

View File

@@ -2,7 +2,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<script src="chrome://browser/content/zen-components/ZenCommonUtils.mjs" defer=""/>
<html:template id="template-paneZenMarketplace"> <html:template id="template-paneZenMarketplace">
<hbox id="ZenMarketplaceCategory" <hbox id="ZenMarketplaceCategory"
class="subcategory" class="subcategory"

View File

@@ -0,0 +1,21 @@
diff --git a/browser/components/sessionstore/SessionFile.sys.mjs b/browser/components/sessionstore/SessionFile.sys.mjs
index 31140cb8be3b529a0952ca8dc55165690b0e2120..605c9e0aa84da0a2d3171a0573e8cd95e27bd0c4 100644
--- a/browser/components/sessionstore/SessionFile.sys.mjs
+++ b/browser/components/sessionstore/SessionFile.sys.mjs
@@ -22,6 +22,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
RunState: "resource:///modules/sessionstore/RunState.sys.mjs",
SessionStore: "resource:///modules/sessionstore/SessionStore.sys.mjs",
SessionWriter: "resource:///modules/sessionstore/SessionWriter.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
const PREF_UPGRADE_BACKUP = "browser.sessionstore.upgradeBackup.latestBuildID";
@@ -380,7 +381,7 @@ var SessionFileInternal = {
this._readOrigin = result.origin;
result.noFilesFound = noFilesFound;
-
+ await lazy.ZenSessionStore.readFile();
return result;
},

View File

@@ -0,0 +1,21 @@
diff --git a/browser/components/sessionstore/SessionStartup.sys.mjs b/browser/components/sessionstore/SessionStartup.sys.mjs
index be23213ae9ec7e59358a17276c6c3764d38d9996..ca5a8ccc916ceeab5140f1278d15233cefbe5815 100644
--- a/browser/components/sessionstore/SessionStartup.sys.mjs
+++ b/browser/components/sessionstore/SessionStartup.sys.mjs
@@ -40,6 +40,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
StartupPerformance:
"resource:///modules/sessionstore/StartupPerformance.sys.mjs",
sessionStoreLogger: "resource:///modules/sessionstore/SessionLogger.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
const STATE_RUNNING_STR = "running";
@@ -179,6 +180,8 @@ export var SessionStartup = {
this._initialState = parsed;
}
+ lazy.ZenSessionStore.onFileRead(this._initialState);
+
if (this._initialState == null) {
// No valid session found.
this._sessionType = this.NO_SESSION;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0eeba2381c 100644 index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..9ef1996a0e8a3ebe55dc25921b8fc8cc0ac8a303 100644
--- a/browser/components/sessionstore/SessionStore.sys.mjs --- a/browser/components/sessionstore/SessionStore.sys.mjs
+++ b/browser/components/sessionstore/SessionStore.sys.mjs +++ b/browser/components/sessionstore/SessionStore.sys.mjs
@@ -127,6 +127,8 @@ const TAB_EVENTS = [ @@ -127,6 +127,8 @@ const TAB_EVENTS = [
@@ -11,7 +11,15 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
]; ];
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
@@ -1911,6 +1913,8 @@ var SessionStoreInternal = { @@ -196,6 +198,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
TabStateCache: "resource:///modules/sessionstore/TabStateCache.sys.mjs",
TabStateFlusher: "resource:///modules/sessionstore/TabStateFlusher.sys.mjs",
setTimeout: "resource://gre/modules/Timer.sys.mjs",
+ ZenSessionStore: "resource:///modules/zen/ZenSessionManager.sys.mjs",
});
ChromeUtils.defineLazyGetter(lazy, "blankURI", () => {
@@ -1911,6 +1914,8 @@ var SessionStoreInternal = {
case "TabPinned": case "TabPinned":
case "TabUnpinned": case "TabUnpinned":
case "SwapDocShells": case "SwapDocShells":
@@ -20,7 +28,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
this.saveStateDelayed(win); this.saveStateDelayed(win);
break; break;
case "TabGroupCreate": case "TabGroupCreate":
@@ -2151,7 +2155,6 @@ var SessionStoreInternal = { @@ -2151,7 +2156,6 @@ var SessionStoreInternal = {
if (closedWindowState) { if (closedWindowState) {
let newWindowState; let newWindowState;
if ( if (
@@ -28,7 +36,17 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
!lazy.SessionStartup.willRestore() !lazy.SessionStartup.willRestore()
) { ) {
// We want to split the window up into pinned tabs and unpinned tabs. // We want to split the window up into pinned tabs and unpinned tabs.
@@ -2384,11 +2387,9 @@ var SessionStoreInternal = { @@ -2215,6 +2219,9 @@ var SessionStoreInternal = {
});
this._shouldRestoreLastSession = false;
}
+ else if (!aInitialState && isRegularWindow) {
+ lazy.ZenSessionStore.restoreNewWindow(aWindow, this);
+ }
if (this._restoreLastWindow && aWindow.toolbar.visible) {
// always reset (if not a popup window)
@@ -2384,11 +2391,9 @@ var SessionStoreInternal = {
tabbrowser.selectedTab.label; tabbrowser.selectedTab.label;
} }
@@ -40,7 +58,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// Store the window's close date to figure out when each individual tab // 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 // was closed. This timestamp should allow re-arranging data based on how
@@ -3373,7 +3374,7 @@ var SessionStoreInternal = { @@ -3373,7 +3378,7 @@ var SessionStoreInternal = {
if (!isPrivateWindow && tabState.isPrivate) { if (!isPrivateWindow && tabState.isPrivate) {
return; return;
} }
@@ -49,7 +67,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
return; return;
} }
@@ -4089,6 +4090,12 @@ var SessionStoreInternal = { @@ -4089,6 +4094,12 @@ var SessionStoreInternal = {
Math.min(tabState.index, tabState.entries.length) Math.min(tabState.index, tabState.entries.length)
); );
tabState.pinned = false; tabState.pinned = false;
@@ -62,7 +80,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
if (inBackground === false) { if (inBackground === false) {
aWindow.gBrowser.selectedTab = newTab; aWindow.gBrowser.selectedTab = newTab;
@@ -4525,6 +4532,7 @@ var SessionStoreInternal = { @@ -4525,6 +4536,7 @@ var SessionStoreInternal = {
// Append the tab if we're opening into a different window, // Append the tab if we're opening into a different window,
tabIndex: aSource == aTargetWindow ? pos : Infinity, tabIndex: aSource == aTargetWindow ? pos : Infinity,
pinned: state.pinned, pinned: state.pinned,
@@ -70,7 +88,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
userContextId: state.userContextId, userContextId: state.userContextId,
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
@@ -5374,7 +5382,7 @@ var SessionStoreInternal = { @@ -5374,7 +5386,7 @@ var SessionStoreInternal = {
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) { for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
let tab = tabbrowser.tabs[i]; let tab = tabbrowser.tabs[i];
@@ -79,7 +97,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
removableTabs.push(tab); removableTabs.push(tab);
} }
} }
@@ -5434,7 +5442,7 @@ var SessionStoreInternal = { @@ -5434,7 +5446,7 @@ var SessionStoreInternal = {
} }
let workspaceID = aWindow.getWorkspaceID(); let workspaceID = aWindow.getWorkspaceID();
@@ -88,7 +106,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
winData.workspaceID = workspaceID; winData.workspaceID = workspaceID;
} }
}, },
@@ -5625,11 +5633,12 @@ var SessionStoreInternal = { @@ -5625,11 +5637,12 @@ var SessionStoreInternal = {
} }
let tabbrowser = aWindow.gBrowser; let tabbrowser = aWindow.gBrowser;
@@ -102,7 +120,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// update the internal state data for this window // update the internal state data for this window
for (let tab of tabs) { for (let tab of tabs) {
if (tab == aWindow.FirefoxViewHandler.tab) { if (tab == aWindow.FirefoxViewHandler.tab) {
@@ -5640,6 +5649,7 @@ var SessionStoreInternal = { @@ -5640,6 +5653,7 @@ var SessionStoreInternal = {
tabsData.push(tabData); tabsData.push(tabData);
} }
@@ -110,7 +128,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
// update tab group state for this window // update tab group state for this window
winData.groups = []; winData.groups = [];
for (let tabGroup of aWindow.gBrowser.tabGroups) { for (let tabGroup of aWindow.gBrowser.tabGroups) {
@@ -5652,7 +5662,7 @@ var SessionStoreInternal = { @@ -5652,7 +5666,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, // 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). // since it's only inserted into the tab strip after it's selected).
if (aWindow.FirefoxViewHandler.tab?.selected) { if (aWindow.FirefoxViewHandler.tab?.selected) {
@@ -119,7 +137,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
winData.title = tabbrowser.tabs[0].label; winData.title = tabbrowser.tabs[0].label;
} }
winData.selected = selectedIndex; winData.selected = selectedIndex;
@@ -5764,8 +5774,8 @@ var SessionStoreInternal = { @@ -5764,8 +5778,8 @@ var SessionStoreInternal = {
// selectTab represents. // selectTab represents.
let selectTab = 0; let selectTab = 0;
if (overwriteTabs) { if (overwriteTabs) {
@@ -130,7 +148,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
selectTab = Math.min(selectTab, winData.tabs.length); selectTab = Math.min(selectTab, winData.tabs.length);
} }
@@ -5808,6 +5818,8 @@ var SessionStoreInternal = { @@ -5808,6 +5822,8 @@ var SessionStoreInternal = {
winData.tabs, winData.tabs,
winData.groups ?? [] winData.groups ?? []
); );
@@ -139,7 +157,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
this._log.debug( this._log.debug(
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs` `restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
); );
@@ -6371,6 +6383,25 @@ var SessionStoreInternal = { @@ -6371,6 +6387,25 @@ var SessionStoreInternal = {
// Most of tabData has been restored, now continue with restoring // Most of tabData has been restored, now continue with restoring
// attributes that may trigger external events. // attributes that may trigger external events.
@@ -153,8 +171,8 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
+ if (tabData.zenHasStaticLabel) { + if (tabData.zenHasStaticLabel) {
+ tab.setAttribute("zen-has-static-label", "true"); + tab.setAttribute("zen-has-static-label", "true");
+ } + }
+ if (tabData.zenPinnedId) { + if (tabData.zenSyncId) {
+ tab.setAttribute("zen-pin-id", tabData.zenPinnedId); + tab.setAttribute("id", tabData.zenPinnedId);
+ } + }
+ if (tabData.zenDefaultUserContextId) { + if (tabData.zenDefaultUserContextId) {
+ tab.setAttribute("zenDefaultUserContextId", true); + tab.setAttribute("zenDefaultUserContextId", true);
@@ -165,7 +183,7 @@ index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..4eac2fed26d779908107ef60f1c2bd0e
if (tabData.pinned) { if (tabData.pinned) {
tabbrowser.pinTab(tab); tabbrowser.pinTab(tab);
@@ -7289,7 +7320,7 @@ var SessionStoreInternal = { @@ -7289,7 +7324,7 @@ var SessionStoreInternal = {
let groupsToSave = new Map(); let groupsToSave = new Map();
for (let tIndex = 0; tIndex < window.tabs.length; ) { for (let tIndex = 0; tIndex < window.tabs.length; ) {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs diff --git a/browser/components/sessionstore/TabState.sys.mjs b/browser/components/sessionstore/TabState.sys.mjs
index 82721356d191055bec0d4b0ca49e481221988801..1ea5c394c704da295149443d7794961a12f2060b 100644 index 82721356d191055bec0d4b0ca49e481221988801..2d05ba4812e9a73bd896c1aeb007180bbc531a3c 100644
--- a/browser/components/sessionstore/TabState.sys.mjs --- a/browser/components/sessionstore/TabState.sys.mjs
+++ b/browser/components/sessionstore/TabState.sys.mjs +++ b/browser/components/sessionstore/TabState.sys.mjs
@@ -85,7 +85,22 @@ class _TabState { @@ -85,7 +85,22 @@ class _TabState {
@@ -7,7 +7,7 @@ index 82721356d191055bec0d4b0ca49e481221988801..1ea5c394c704da295149443d7794961a
} }
+ tabData.zenWorkspace = tab.getAttribute("zen-workspace-id"); + tabData.zenWorkspace = tab.getAttribute("zen-workspace-id");
+ tabData.zenPinnedId = tab.getAttribute("zen-pin-id"); + tabData.zenSyncId = tab.getAttribute("id");
+ tabData.zenEssential = tab.getAttribute("zen-essential"); + tabData.zenEssential = tab.getAttribute("zen-essential");
+ tabData.pinned = tabData.pinned || tabData.zenEssential; + tabData.pinned = tabData.pinned || tabData.zenEssential;
+ tabData.zenDefaultUserContextId = tab.getAttribute("zenDefaultUserContextId"); + tabData.zenDefaultUserContextId = tab.getAttribute("zenDefaultUserContextId");

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 100644 index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..ce54ed0c8a93d5521a436c55c9432c090b0420ac 100644
--- a/browser/components/tabbrowser/content/tab.js --- a/browser/components/tabbrowser/content/tab.js
+++ b/browser/components/tabbrowser/content/tab.js +++ b/browser/components/tabbrowser/content/tab.js
@@ -21,6 +21,7 @@ @@ -21,6 +21,7 @@
@@ -42,7 +42,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
".tab-label-container": ".tab-label-container":
"pinned,selected=visuallyselected,labeldirection", "pinned,selected=visuallyselected,labeldirection",
".tab-label": ".tab-label":
@@ -186,7 +189,7 @@ @@ -184,7 +187,7 @@
} }
set _visuallySelected(val) { set _visuallySelected(val) {
@@ -51,7 +51,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
return; return;
} }
@@ -222,11 +225,21 @@ @@ -220,11 +223,21 @@
} }
get visible() { get visible() {
@@ -78,7 +78,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
get hidden() { get hidden() {
@@ -297,7 +310,7 @@ @@ -295,7 +308,7 @@
return false; return false;
} }
@@ -87,7 +87,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
get lastAccessed() { get lastAccessed() {
@@ -374,8 +387,11 @@ @@ -372,8 +385,11 @@
} }
get group() { get group() {
@@ -101,7 +101,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
return null; return null;
} }
@@ -470,6 +486,8 @@ @@ -468,6 +484,8 @@
this.style.MozUserFocus = "ignore"; this.style.MozUserFocus = "ignore";
} else if ( } else if (
event.target.classList.contains("tab-close-button") || event.target.classList.contains("tab-close-button") ||
@@ -110,7 +110,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
event.target.classList.contains("tab-icon-overlay") || event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button") event.target.classList.contains("tab-audio-button")
) { ) {
@@ -524,6 +542,10 @@ @@ -522,6 +540,10 @@
this.style.MozUserFocus = ""; this.style.MozUserFocus = "";
} }
@@ -121,15 +121,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
on_click(event) { on_click(event) {
if (event.button != 0) { if (event.button != 0) {
return; return;
@@ -572,6 +594,7 @@ @@ -584,6 +606,14 @@
)
);
} else {
+ gZenPinnedTabManager._removePinnedAttributes(this, true);
gBrowser.removeTab(this, {
animate: true,
triggeringEvent: event,
@@ -584,6 +607,14 @@
// (see tabbrowser-tabs 'click' handler). // (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true; gBrowser.tabContainer._blockDblClick = true;
} }
@@ -144,7 +136,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
on_dblclick(event) { on_dblclick(event) {
@@ -607,6 +638,8 @@ @@ -607,6 +637,8 @@
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
}); });

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e6923fe5f 100644 index c0eafd4faf8d57b8486c5bf8917375850ec8147e..d1c089ba66defc74dbf06b283bc6ddca08b55b76 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js --- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -386,6 +386,7 @@ @@ -386,6 +386,7 @@
@@ -428,10 +428,10 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
+ gZenWorkspaces._initialTab._shouldRemove = true; + gZenWorkspaces._initialTab._shouldRemove = true;
+ } + }
+ } + }
+ } }
+ else { + else {
+ gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab; + gZenWorkspaces._tabToRemoveForEmpty = this.selectedTab;
} + }
+ this._hasAlreadyInitializedZenSessionStore = true; + this._hasAlreadyInitializedZenSessionStore = true;
if (tabs.length > 1 || !tabs[0].selected) { if (tabs.length > 1 || !tabs[0].selected) {
@@ -518,17 +518,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -4635,6 +4768,9 @@ @@ -4896,6 +5029,7 @@
return;
}
+ for (let tab of selectedTabs) {
+ gZenPinnedTabManager._removePinnedAttributes(tab, true);
+ }
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
}
@@ -4896,6 +5032,7 @@
telemetrySource, telemetrySource,
} = {} } = {}
) { ) {
@@ -536,7 +526,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs // When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window. // can be considered equivalent to closing the window.
if ( if (
@@ -4985,6 +5122,7 @@ @@ -4985,6 +5119,7 @@
if (lastToClose) { if (lastToClose) {
this.removeTab(lastToClose, aParams); this.removeTab(lastToClose, aParams);
} }
@@ -544,7 +534,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
@@ -5023,6 +5161,12 @@ @@ -5023,6 +5158,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
} }
@@ -557,7 +547,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Handle requests for synchronously removing an already // Handle requests for synchronously removing an already
// asynchronously closing tab. // asynchronously closing tab.
if (!animate && aTab.closing) { if (!animate && aTab.closing) {
@@ -5037,6 +5181,9 @@ @@ -5037,6 +5178,9 @@
// state). // state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab); let isLastTab = this.#isLastTabInWindow(aTab);
@@ -567,7 +557,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if ( if (
!this._beginRemoveTab(aTab, { !this._beginRemoveTab(aTab, {
closeWindowFastpath: true, closeWindowFastpath: true,
@@ -5085,7 +5232,13 @@ @@ -5085,7 +5229,13 @@
// We're not animating, so we can cancel the animation stopwatch. // We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null; aTab._closeTimeAnimTimerId = null;
@@ -582,7 +572,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
return; return;
} }
@@ -5219,7 +5372,7 @@ @@ -5219,7 +5369,7 @@
closeWindowWithLastTab != null closeWindowWithLastTab != null
? closeWindowWithLastTab ? closeWindowWithLastTab
: !window.toolbar.visible || : !window.toolbar.visible ||
@@ -591,7 +581,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (closeWindow) { if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here, // We've already called beforeunload on all the relevant tabs if we get here,
@@ -5243,6 +5396,7 @@ @@ -5243,6 +5393,7 @@
newTab = true; newTab = true;
} }
@@ -599,7 +589,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
aTab._endRemoveArgs = [closeWindow, newTab]; aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation. // swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -5283,13 +5437,7 @@ @@ -5283,13 +5434,7 @@
aTab._mouseleave(); aTab._mouseleave();
if (newTab) { if (newTab) {
@@ -614,7 +604,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else { } else {
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -5422,6 +5570,7 @@ @@ -5422,6 +5567,7 @@
this.tabs[i]._tPos = i; this.tabs[i]._tPos = i;
} }
@@ -622,7 +612,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (!this._windowIsClosing) { if (!this._windowIsClosing) {
// update tab close buttons state // update tab close buttons state
this.tabContainer._updateCloseButtons(); this.tabContainer._updateCloseButtons();
@@ -5643,6 +5792,7 @@ @@ -5643,6 +5789,7 @@
} }
let excludeTabs = new Set(aExcludeTabs); let excludeTabs = new Set(aExcludeTabs);
@@ -630,7 +620,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// If this tab has a successor, it should be selectable, since // If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor. // hiding or closing a tab removes that tab as a successor.
@@ -5655,13 +5805,13 @@ @@ -5655,13 +5802,13 @@
!excludeTabs.has(aTab.owner) && !excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) { ) {
@@ -646,7 +636,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
); );
let tab = this.tabContainer.findNextTab(aTab, { let tab = this.tabContainer.findNextTab(aTab, {
@@ -5677,7 +5827,7 @@ @@ -5677,7 +5824,7 @@
} }
if (tab) { if (tab) {
@@ -655,7 +645,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
// If no qualifying visible tab was found, see if there is a tab in // If no qualifying visible tab was found, see if there is a tab in
@@ -5698,7 +5848,7 @@ @@ -5698,7 +5845,7 @@
}); });
} }
@@ -664,7 +654,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
_blurTab(aTab) { _blurTab(aTab) {
@@ -6104,10 +6254,10 @@ @@ -6104,10 +6251,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
} }
@@ -677,7 +667,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
aTab.selected || aTab.selected ||
aTab.closing || aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden. // Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -6166,6 +6316,7 @@ @@ -6166,6 +6313,7 @@
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab * @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
*/ */
replaceTabWithWindow(aTab, aOptions) { replaceTabWithWindow(aTab, aOptions) {
@@ -685,7 +675,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (this.tabs.length == 1) { if (this.tabs.length == 1) {
return null; return null;
} }
@@ -6299,7 +6450,7 @@ @@ -6299,7 +6447,7 @@
* `true` if element is a `<tab-group>` * `true` if element is a `<tab-group>`
*/ */
isTabGroup(element) { isTabGroup(element) {
@@ -694,7 +684,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
/** /**
@@ -6375,8 +6526,8 @@ @@ -6375,8 +6523,8 @@
} }
// Don't allow mixing pinned and unpinned tabs. // Don't allow mixing pinned and unpinned tabs.
@@ -705,7 +695,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else { } else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount); tabIndex = Math.max(tabIndex, this.pinnedTabCount);
} }
@@ -6402,10 +6553,16 @@ @@ -6402,10 +6550,16 @@
this.#handleTabMove( this.#handleTabMove(
element, element,
() => { () => {
@@ -724,7 +714,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (neighbor && this.isTab(element) && tabIndex > element._tPos) { if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
neighbor.after(element); neighbor.after(element);
} else { } else {
@@ -6463,23 +6620,28 @@ @@ -6463,23 +6617,28 @@
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) { #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
if (this.isTabGroupLabel(targetElement)) { if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group; targetElement = targetElement.group;
@@ -759,7 +749,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else if (!element.pinned && targetElement && targetElement.pinned) { } else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned // If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element // tab, move the unpinned element to be the first unpinned element
@@ -6492,14 +6654,34 @@ @@ -6492,14 +6651,34 @@
// move the tab group right before the first unpinned tab. // move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped: // 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group. // move the tab group right before the first unpinned tab's tab group.
@@ -795,7 +785,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
element.pinned element.pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -6508,7 +6690,7 @@ @@ -6508,7 +6687,7 @@
element, element,
() => { () => {
if (moveBefore) { if (moveBefore) {
@@ -804,7 +794,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else if (targetElement) { } else if (targetElement) {
targetElement.after(element); targetElement.after(element);
} else { } else {
@@ -6580,10 +6762,10 @@ @@ -6580,10 +6759,10 @@
* @param {TabMetricsContext} [metricsContext] * @param {TabMetricsContext} [metricsContext]
*/ */
moveTabToGroup(aTab, aGroup, metricsContext) { moveTabToGroup(aTab, aGroup, metricsContext) {
@@ -817,7 +807,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
return; return;
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
@@ -6613,6 +6795,7 @@ @@ -6613,6 +6792,7 @@
let state = { let state = {
tabIndex: tab._tPos, tabIndex: tab._tPos,
@@ -825,7 +815,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
}; };
if (tab.visible) { if (tab.visible) {
state.elementIndex = tab.elementIndex; state.elementIndex = tab.elementIndex;
@@ -6639,7 +6822,7 @@ @@ -6639,7 +6819,7 @@
let changedTabGroup = let changedTabGroup =
previousTabState.tabGroupId != currentTabState.tabGroupId; previousTabState.tabGroupId != currentTabState.tabGroupId;
@@ -834,7 +824,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
tab.dispatchEvent( tab.dispatchEvent(
new CustomEvent("TabMove", { new CustomEvent("TabMove", {
bubbles: true, bubbles: true,
@@ -6676,6 +6859,10 @@ @@ -6676,6 +6856,10 @@
moveActionCallback(); moveActionCallback();
@@ -845,7 +835,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Clear tabs cache after moving nodes because the order of tabs may have // Clear tabs cache after moving nodes because the order of tabs may have
// changed. // changed.
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -7576,7 +7763,7 @@ @@ -7576,7 +7760,7 @@
// preventDefault(). It will still raise the window if appropriate. // preventDefault(). It will still raise the window if appropriate.
break; break;
} }
@@ -854,7 +844,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
window.focus(); window.focus();
aEvent.preventDefault(); aEvent.preventDefault();
break; break;
@@ -7593,7 +7780,6 @@ @@ -7593,7 +7777,6 @@
} }
case "TabGroupCollapse": case "TabGroupCollapse":
aEvent.target.tabs.forEach(tab => { aEvent.target.tabs.forEach(tab => {
@@ -862,7 +852,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
}); });
break; break;
case "TabGroupCreateByUser": case "TabGroupCreateByUser":
@@ -8542,6 +8728,7 @@ @@ -8542,6 +8725,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this.mTab.setAttribute("busy", "true"); this.mTab.setAttribute("busy", "true");
@@ -870,7 +860,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
gBrowser._tabAttrModified(this.mTab, ["busy"]); gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected; this.mTab._notselectedsinceload = !this.mTab.selected;
} }
@@ -9543,7 +9730,7 @@ var TabContextMenu = { @@ -9543,7 +9727,7 @@ var TabContextMenu = {
); );
contextUnpinSelectedTabs.hidden = contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected; !this.contextTab.pinned || !this.multiselected;
@@ -879,11 +869,3 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Build Ask Chat items // Build Ask Chat items
TabContextMenu.GenAI.buildTabMenu( TabContextMenu.GenAI.buildTabMenu(
document.getElementById("context_askChat"), document.getElementById("context_askChat"),
@@ -9863,6 +10050,7 @@ var TabContextMenu = {
)
);
} else {
+ gZenPinnedTabManager._removePinnedAttributes(this.contextTab, true);
gBrowser.removeTab(this.contextTab, {
animate: true,
...gBrowser.TabMetrics.userTriggeredContext(

View File

@@ -0,0 +1,73 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
# Note: You'll need to be on the root directory of the repo to run this script:
# python3 src/browser/themes/shared/zen-icons/check_unused_icons.py
import os
import sys
import argparse
IGNORE_DIRS = ['node_modules', 'engine']
def get_all_icon_files(icon_dir):
icon_files = []
for root, _, files in os.walk(icon_dir):
for file in files:
if file.endswith('.svg'):
icon_files.append(file)
return icon_files
def find_icon_usage(icon_files):
used_icons = set()
for root, _, files in os.walk('src'):
if any(ignored in root for ignored in IGNORE_DIRS):
continue
for file in files:
# ignore jar files
if file.endswith(('.mn')):
continue
try:
with open(os.path.join(root, file), 'r', encoding='utf-8') as f:
content = f.read()
for icon in icon_files:
if icon in content:
used_icons.add(icon)
except BaseException:
continue
return used_icons
def main(args):
parser = argparse.ArgumentParser(description='Check for unused zen icons.')
parser.add_argument('--remove', action='store_true', help='Remove unused icons')
parsed_args = parser.parse_args(args)
icon_dir = 'src/browser/themes/shared/zen-icons/lin'
icon_files = get_all_icon_files(icon_dir)
used_icons = find_icon_usage(icon_files)
unused_icons = set(icon_files) - used_icons
if unused_icons:
print("Unused icons:")
for icon in sorted(unused_icons):
if parsed_args.remove:
os.remove(os.path.join(icon_dir, icon))
print(f"Removed {icon}")
else:
print(icon)
else:
print("No unused icons found.")
if parsed_args.remove:
print("Unused icons removed.")
os.chdir('src/browser/themes/shared/zen-icons')
os.system("sh ./update-resources.sh")
if __name__ == "__main__":
main(sys.argv[1:])

View File

@@ -3,13 +3,10 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
#ifdef XP_WIN #ifdef XP_WIN
* skin/classic/browser/zen-icons/accessibility.svg (../shared/zen-icons/lin/accessibility.svg)
* skin/classic/browser/zen-icons/add-to-dictionary.svg (../shared/zen-icons/lin/add-to-dictionary.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)
* skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg) * skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg)
* skin/classic/browser/zen-icons/audio-save.svg (../shared/zen-icons/lin/audio-save.svg)
* skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg) * skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg)
* skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg) * skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg)
* skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg) * skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg)
@@ -22,9 +19,7 @@
* skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg) * skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg)
* skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg) * skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg)
* skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg) * skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg)
* skin/classic/browser/zen-icons/checkmark.svg (../shared/zen-icons/lin/checkmark.svg)
* skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg) * skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg)
* skin/classic/browser/zen-icons/close-all.svg (../shared/zen-icons/lin/close-all.svg)
* skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg) * skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg)
* skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg) * skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg)
* skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg) * skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg)
@@ -41,20 +36,14 @@
* skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg) * skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg)
* skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg) * skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg)
* skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg) * skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
* skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
* skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
* skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg) * skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
* skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
* skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
* skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg) * skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
* skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg) * skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
* skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg) * skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
* skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
* skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg) * skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
* skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg) * skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg)
* skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg) * skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
* skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg) * skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
* skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
* skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg) * skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
* skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg) * skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
* skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg) * skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg)
@@ -63,28 +52,21 @@
* skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg) * skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg)
* skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg) * skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg)
* skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg) * skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg)
* skin/classic/browser/zen-icons/heart-circle-fill.svg (../shared/zen-icons/lin/heart-circle-fill.svg)
* skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg) * skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg)
* skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg) * skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg)
* skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg) * skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg)
* skin/classic/browser/zen-icons/image-copy.svg (../shared/zen-icons/lin/image-copy.svg)
* skin/classic/browser/zen-icons/image-open.svg (../shared/zen-icons/lin/image-open.svg)
* skin/classic/browser/zen-icons/image-save.svg (../shared/zen-icons/lin/image-save.svg)
* skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg) * skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg)
* skin/classic/browser/zen-icons/inspect.svg (../shared/zen-icons/lin/inspect.svg)
* skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg) * skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg)
* skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg) * skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg)
* skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg) * skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg)
* skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg) * skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg)
* skin/classic/browser/zen-icons/media-loop.svg (../shared/zen-icons/lin/media-loop.svg)
* skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg) * skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg)
* skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg) * skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg)
* skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg) * skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg)
* skin/classic/browser/zen-icons/media-pip.svg (../shared/zen-icons/lin/media-pip.svg)
* skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg) * skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg)
* skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg) * skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg)
* skin/classic/browser/zen-icons/media-speed.svg (../shared/zen-icons/lin/media-speed.svg)
* skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg) * skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg)
* skin/classic/browser/zen-icons/menu-bar.svg (../shared/zen-icons/lin/menu-bar.svg)
* skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg) * skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg)
* skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg) * skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg)
* skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg) * skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg)
@@ -92,13 +74,11 @@
* skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg) * skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
* skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg) * skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
* skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg) * skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
* skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
* skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg) * skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
* skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg) * skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
* skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg) * skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg)
* skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg) * skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg)
* skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg) * skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg)
* skin/classic/browser/zen-icons/paste-and-go.svg (../shared/zen-icons/lin/paste-and-go.svg)
* skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg) * skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg)
* skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg) * skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg)
* skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg) * skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg)
@@ -113,7 +93,6 @@
* skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg) * skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
* skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg) * skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
* skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg) * skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
* skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
* skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg) * skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
* skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg) * skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
* skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg) * skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
@@ -130,7 +109,6 @@
* skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg) * skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg)
* skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg) * skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
* skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg) * skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
* skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
* skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg) * skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
* skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg) * skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
* skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg) * skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
@@ -146,23 +124,17 @@
* skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg) * skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
* skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg) * skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
* skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg) * skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
* skin/classic/browser/zen-icons/video-open.svg (../shared/zen-icons/lin/video-open.svg)
* skin/classic/browser/zen-icons/video-save.svg (../shared/zen-icons/lin/video-save.svg)
* skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg) * skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg)
* skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg) * skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg)
* skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg) * skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg)
* skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg) * skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg)
* skin/classic/browser/zen-icons/zoom-control.svg (../shared/zen-icons/lin/zoom-control.svg)
* skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg) * skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg)
#endif #endif
#ifdef XP_MACOSX #ifdef XP_MACOSX
* skin/classic/browser/zen-icons/accessibility.svg (../shared/zen-icons/lin/accessibility.svg)
* skin/classic/browser/zen-icons/add-to-dictionary.svg (../shared/zen-icons/lin/add-to-dictionary.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)
* skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg) * skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg)
* skin/classic/browser/zen-icons/audio-save.svg (../shared/zen-icons/lin/audio-save.svg)
* skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg) * skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg)
* skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg) * skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg)
* skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg) * skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg)
@@ -175,9 +147,7 @@
* skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg) * skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg)
* skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg) * skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg)
* skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg) * skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg)
* skin/classic/browser/zen-icons/checkmark.svg (../shared/zen-icons/lin/checkmark.svg)
* skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg) * skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg)
* skin/classic/browser/zen-icons/close-all.svg (../shared/zen-icons/lin/close-all.svg)
* skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg) * skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg)
* skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg) * skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg)
* skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg) * skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg)
@@ -194,20 +164,14 @@
* skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg) * skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg)
* skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg) * skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg)
* skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg) * skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
* skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
* skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
* skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg) * skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
* skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
* skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
* skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg) * skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
* skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg) * skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
* skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg) * skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
* skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
* skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg) * skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
* skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg) * skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg)
* skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg) * skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
* skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg) * skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
* skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
* skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg) * skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
* skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg) * skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
* skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg) * skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg)
@@ -216,28 +180,21 @@
* skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg) * skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg)
* skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg) * skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg)
* skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg) * skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg)
* skin/classic/browser/zen-icons/heart-circle-fill.svg (../shared/zen-icons/lin/heart-circle-fill.svg)
* skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg) * skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg)
* skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg) * skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg)
* skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg) * skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg)
* skin/classic/browser/zen-icons/image-copy.svg (../shared/zen-icons/lin/image-copy.svg)
* skin/classic/browser/zen-icons/image-open.svg (../shared/zen-icons/lin/image-open.svg)
* skin/classic/browser/zen-icons/image-save.svg (../shared/zen-icons/lin/image-save.svg)
* skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg) * skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg)
* skin/classic/browser/zen-icons/inspect.svg (../shared/zen-icons/lin/inspect.svg)
* skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg) * skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg)
* skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg) * skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg)
* skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg) * skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg)
* skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg) * skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg)
* skin/classic/browser/zen-icons/media-loop.svg (../shared/zen-icons/lin/media-loop.svg)
* skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg) * skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg)
* skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg) * skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg)
* skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg) * skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg)
* skin/classic/browser/zen-icons/media-pip.svg (../shared/zen-icons/lin/media-pip.svg)
* skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg) * skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg)
* skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg) * skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg)
* skin/classic/browser/zen-icons/media-speed.svg (../shared/zen-icons/lin/media-speed.svg)
* skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg) * skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg)
* skin/classic/browser/zen-icons/menu-bar.svg (../shared/zen-icons/lin/menu-bar.svg)
* skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg) * skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg)
* skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg) * skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg)
* skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg) * skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg)
@@ -245,13 +202,11 @@
* skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg) * skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
* skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg) * skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
* skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg) * skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
* skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
* skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg) * skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
* skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg) * skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
* skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg) * skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg)
* skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg) * skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg)
* skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg) * skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg)
* skin/classic/browser/zen-icons/paste-and-go.svg (../shared/zen-icons/lin/paste-and-go.svg)
* skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg) * skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg)
* skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg) * skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg)
* skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg) * skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg)
@@ -266,7 +221,6 @@
* skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg) * skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
* skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg) * skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
* skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg) * skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
* skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
* skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg) * skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
* skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg) * skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
* skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg) * skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
@@ -283,7 +237,6 @@
* skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg) * skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg)
* skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg) * skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
* skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg) * skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
* skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
* skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg) * skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
* skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg) * skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
* skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg) * skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
@@ -299,23 +252,17 @@
* skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg) * skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
* skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg) * skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
* skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg) * skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
* skin/classic/browser/zen-icons/video-open.svg (../shared/zen-icons/lin/video-open.svg)
* skin/classic/browser/zen-icons/video-save.svg (../shared/zen-icons/lin/video-save.svg)
* skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg) * skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg)
* skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg) * skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg)
* skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg) * skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg)
* skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg) * skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg)
* skin/classic/browser/zen-icons/zoom-control.svg (../shared/zen-icons/lin/zoom-control.svg)
* skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg) * skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg)
#endif #endif
#ifdef XP_LINUX #ifdef XP_LINUX
* skin/classic/browser/zen-icons/accessibility.svg (../shared/zen-icons/lin/accessibility.svg)
* skin/classic/browser/zen-icons/add-to-dictionary.svg (../shared/zen-icons/lin/add-to-dictionary.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)
* skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg) * skin/classic/browser/zen-icons/arrow-up.svg (../shared/zen-icons/lin/arrow-up.svg)
* skin/classic/browser/zen-icons/audio-save.svg (../shared/zen-icons/lin/audio-save.svg)
* skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg) * skin/classic/browser/zen-icons/autoplay-media-blocked.svg (../shared/zen-icons/lin/autoplay-media-blocked.svg)
* skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg) * skin/classic/browser/zen-icons/autoplay-media-fill.svg (../shared/zen-icons/lin/autoplay-media-fill.svg)
* skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg) * skin/classic/browser/zen-icons/autoplay-media.svg (../shared/zen-icons/lin/autoplay-media.svg)
@@ -328,9 +275,7 @@
* skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg) * skin/classic/browser/zen-icons/camera.svg (../shared/zen-icons/lin/camera.svg)
* skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg) * skin/classic/browser/zen-icons/canvas-blocked.svg (../shared/zen-icons/lin/canvas-blocked.svg)
* skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg) * skin/classic/browser/zen-icons/canvas.svg (../shared/zen-icons/lin/canvas.svg)
* skin/classic/browser/zen-icons/checkmark.svg (../shared/zen-icons/lin/checkmark.svg)
* skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg) * skin/classic/browser/zen-icons/chevron.svg (../shared/zen-icons/lin/chevron.svg)
* skin/classic/browser/zen-icons/close-all.svg (../shared/zen-icons/lin/close-all.svg)
* skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg) * skin/classic/browser/zen-icons/close.svg (../shared/zen-icons/lin/close.svg)
* skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg) * skin/classic/browser/zen-icons/container-tab.svg (../shared/zen-icons/lin/container-tab.svg)
* skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg) * skin/classic/browser/zen-icons/cookies-fill.svg (../shared/zen-icons/lin/cookies-fill.svg)
@@ -347,20 +292,14 @@
* skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg) * skin/classic/browser/zen-icons/edit-cut.svg (../shared/zen-icons/lin/edit-cut.svg)
* skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg) * skin/classic/browser/zen-icons/edit-delete.svg (../shared/zen-icons/lin/edit-delete.svg)
* skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg) * skin/classic/browser/zen-icons/edit-paste.svg (../shared/zen-icons/lin/edit-paste.svg)
* skin/classic/browser/zen-icons/edit-redo.svg (../shared/zen-icons/lin/edit-redo.svg)
* skin/classic/browser/zen-icons/edit-select-all.svg (../shared/zen-icons/lin/edit-select-all.svg)
* skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg) * skin/classic/browser/zen-icons/edit-theme.svg (../shared/zen-icons/lin/edit-theme.svg)
* skin/classic/browser/zen-icons/edit-undo.svg (../shared/zen-icons/lin/edit-undo.svg)
* skin/classic/browser/zen-icons/edit.svg (../shared/zen-icons/lin/edit.svg)
* skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg) * skin/classic/browser/zen-icons/essential-add.svg (../shared/zen-icons/lin/essential-add.svg)
* skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg) * skin/classic/browser/zen-icons/essential-remove.svg (../shared/zen-icons/lin/essential-remove.svg)
* skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg) * skin/classic/browser/zen-icons/expand-sidebar.svg (../shared/zen-icons/lin/expand-sidebar.svg)
* skin/classic/browser/zen-icons/ext-link.svg (../shared/zen-icons/lin/ext-link.svg)
* skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg) * skin/classic/browser/zen-icons/extension-blocked.svg (../shared/zen-icons/lin/extension-blocked.svg)
* skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg) * skin/classic/browser/zen-icons/extension-fill.svg (../shared/zen-icons/lin/extension-fill.svg)
* skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg) * skin/classic/browser/zen-icons/extension.svg (../shared/zen-icons/lin/extension.svg)
* skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg) * skin/classic/browser/zen-icons/face-sun.svg (../shared/zen-icons/lin/face-sun.svg)
* skin/classic/browser/zen-icons/firefox.svg (../shared/zen-icons/lin/firefox.svg)
* skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg) * skin/classic/browser/zen-icons/folder.svg (../shared/zen-icons/lin/folder.svg)
* skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg) * skin/classic/browser/zen-icons/forget.svg (../shared/zen-icons/lin/forget.svg)
* skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg) * skin/classic/browser/zen-icons/forward.svg (../shared/zen-icons/lin/forward.svg)
@@ -369,28 +308,21 @@
* skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg) * skin/classic/browser/zen-icons/geo-blocked.svg (../shared/zen-icons/lin/geo-blocked.svg)
* skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg) * skin/classic/browser/zen-icons/geo-fill.svg (../shared/zen-icons/lin/geo-fill.svg)
* skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg) * skin/classic/browser/zen-icons/geo.svg (../shared/zen-icons/lin/geo.svg)
* skin/classic/browser/zen-icons/heart-circle-fill.svg (../shared/zen-icons/lin/heart-circle-fill.svg)
* skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg) * skin/classic/browser/zen-icons/help.svg (../shared/zen-icons/lin/help.svg)
* skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg) * skin/classic/browser/zen-icons/history.svg (../shared/zen-icons/lin/history.svg)
* skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg) * skin/classic/browser/zen-icons/home.svg (../shared/zen-icons/lin/home.svg)
* skin/classic/browser/zen-icons/image-copy.svg (../shared/zen-icons/lin/image-copy.svg)
* skin/classic/browser/zen-icons/image-open.svg (../shared/zen-icons/lin/image-open.svg)
* skin/classic/browser/zen-icons/image-save.svg (../shared/zen-icons/lin/image-save.svg)
* skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg) * skin/classic/browser/zen-icons/info.svg (../shared/zen-icons/lin/info.svg)
* skin/classic/browser/zen-icons/inspect.svg (../shared/zen-icons/lin/inspect.svg)
* skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg) * skin/classic/browser/zen-icons/library.svg (../shared/zen-icons/lin/library.svg)
* skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg) * skin/classic/browser/zen-icons/link.svg (../shared/zen-icons/lin/link.svg)
* skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg) * skin/classic/browser/zen-icons/mail.svg (../shared/zen-icons/lin/mail.svg)
* skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg) * skin/classic/browser/zen-icons/manage.svg (../shared/zen-icons/lin/manage.svg)
* skin/classic/browser/zen-icons/media-loop.svg (../shared/zen-icons/lin/media-loop.svg)
* skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg) * skin/classic/browser/zen-icons/media-mute.svg (../shared/zen-icons/lin/media-mute.svg)
* skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg) * skin/classic/browser/zen-icons/media-next.svg (../shared/zen-icons/lin/media-next.svg)
* skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg) * skin/classic/browser/zen-icons/media-pause.svg (../shared/zen-icons/lin/media-pause.svg)
* skin/classic/browser/zen-icons/media-pip.svg (../shared/zen-icons/lin/media-pip.svg)
* skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg) * skin/classic/browser/zen-icons/media-play.svg (../shared/zen-icons/lin/media-play.svg)
* skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg) * skin/classic/browser/zen-icons/media-previous.svg (../shared/zen-icons/lin/media-previous.svg)
* skin/classic/browser/zen-icons/media-speed.svg (../shared/zen-icons/lin/media-speed.svg)
* skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg) * skin/classic/browser/zen-icons/media-unmute.svg (../shared/zen-icons/lin/media-unmute.svg)
* skin/classic/browser/zen-icons/menu-bar.svg (../shared/zen-icons/lin/menu-bar.svg)
* skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg) * skin/classic/browser/zen-icons/menu.svg (../shared/zen-icons/lin/menu.svg)
* skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg) * skin/classic/browser/zen-icons/microphone-blocked-fill.svg (../shared/zen-icons/lin/microphone-blocked-fill.svg)
* skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg) * skin/classic/browser/zen-icons/microphone-blocked.svg (../shared/zen-icons/lin/microphone-blocked.svg)
@@ -398,13 +330,11 @@
* skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg) * skin/classic/browser/zen-icons/microphone.svg (../shared/zen-icons/lin/microphone.svg)
* skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg) * skin/classic/browser/zen-icons/midi.svg (../shared/zen-icons/lin/midi.svg)
* skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg) * skin/classic/browser/zen-icons/moon-stars.svg (../shared/zen-icons/lin/moon-stars.svg)
* skin/classic/browser/zen-icons/move-tab.svg (../shared/zen-icons/lin/move-tab.svg)
* skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg) * skin/classic/browser/zen-icons/new-tab-image.svg (../shared/zen-icons/lin/new-tab-image.svg)
* skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg) * skin/classic/browser/zen-icons/open.svg (../shared/zen-icons/lin/open.svg)
* skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg) * skin/classic/browser/zen-icons/page-portrait.svg (../shared/zen-icons/lin/page-portrait.svg)
* skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg) * skin/classic/browser/zen-icons/palette.svg (../shared/zen-icons/lin/palette.svg)
* skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg) * skin/classic/browser/zen-icons/passwords.svg (../shared/zen-icons/lin/passwords.svg)
* skin/classic/browser/zen-icons/paste-and-go.svg (../shared/zen-icons/lin/paste-and-go.svg)
* skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg) * skin/classic/browser/zen-icons/permissions-fill.svg (../shared/zen-icons/lin/permissions-fill.svg)
* skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg) * skin/classic/browser/zen-icons/permissions.svg (../shared/zen-icons/lin/permissions.svg)
* skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg) * skin/classic/browser/zen-icons/persistent-storage-blocked.svg (../shared/zen-icons/lin/persistent-storage-blocked.svg)
@@ -419,7 +349,6 @@
* skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg) * skin/classic/browser/zen-icons/privateBrowsing.svg (../shared/zen-icons/lin/privateBrowsing.svg)
* skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg) * skin/classic/browser/zen-icons/reader-mode.svg (../shared/zen-icons/lin/reader-mode.svg)
* skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg) * skin/classic/browser/zen-icons/reload.svg (../shared/zen-icons/lin/reload.svg)
* skin/classic/browser/zen-icons/report.svg (../shared/zen-icons/lin/report.svg)
* skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg) * skin/classic/browser/zen-icons/save.svg (../shared/zen-icons/lin/save.svg)
* skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg) * skin/classic/browser/zen-icons/screen-blocked.svg (../shared/zen-icons/lin/screen-blocked.svg)
* skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg) * skin/classic/browser/zen-icons/screen.svg (../shared/zen-icons/lin/screen.svg)
@@ -436,7 +365,6 @@
* skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg) * skin/classic/browser/zen-icons/sidebar-right.svg (../shared/zen-icons/lin/sidebar-right.svg)
* skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg) * skin/classic/browser/zen-icons/sidebar.svg (../shared/zen-icons/lin/sidebar.svg)
* skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg) * skin/classic/browser/zen-icons/sidebars-right.svg (../shared/zen-icons/lin/sidebars-right.svg)
* skin/classic/browser/zen-icons/source-code.svg (../shared/zen-icons/lin/source-code.svg)
* skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg) * skin/classic/browser/zen-icons/sparkles.svg (../shared/zen-icons/lin/sparkles.svg)
* skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg) * skin/classic/browser/zen-icons/spell-check.svg (../shared/zen-icons/lin/spell-check.svg)
* skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg) * skin/classic/browser/zen-icons/split.svg (../shared/zen-icons/lin/split.svg)
@@ -452,13 +380,10 @@
* skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg) * skin/classic/browser/zen-icons/unpin.svg (../shared/zen-icons/lin/unpin.svg)
* skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg) * skin/classic/browser/zen-icons/video-blocked-fill.svg (../shared/zen-icons/lin/video-blocked-fill.svg)
* skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg) * skin/classic/browser/zen-icons/video-fill.svg (../shared/zen-icons/lin/video-fill.svg)
* skin/classic/browser/zen-icons/video-open.svg (../shared/zen-icons/lin/video-open.svg)
* skin/classic/browser/zen-icons/video-save.svg (../shared/zen-icons/lin/video-save.svg)
* skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg) * skin/classic/browser/zen-icons/window.svg (../shared/zen-icons/lin/window.svg)
* skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg) * skin/classic/browser/zen-icons/xr-blocked.svg (../shared/zen-icons/lin/xr-blocked.svg)
* skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg) * skin/classic/browser/zen-icons/xr-fill.svg (../shared/zen-icons/lin/xr-fill.svg)
* skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg) * skin/classic/browser/zen-icons/xr.svg (../shared/zen-icons/lin/xr.svg)
* skin/classic/browser/zen-icons/zoom-control.svg (../shared/zen-icons/lin/zoom-control.svg)
* skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg) * skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg)
#endif #endif
* skin/classic/browser/zen-icons/urlbar-arrow.svg (../shared/zen-icons/common/urlbar-arrow.svg) * skin/classic/browser/zen-icons/urlbar-arrow.svg (../shared/zen-icons/common/urlbar-arrow.svg)

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><circle cx="9" cy="2.25" r="1.5" data-color="color-2"></circle><line x1="7.25" y1="16.5" x2="7.25" y2="6.24"></line><line x1="10.75" y1="6.24" x2="10.75" y2="16.5"></line><path d="M2.75,5.75c1.751,.3,3.86,.531,6.25,.531,1.777,0,3.894-.128,6.25-.531"></path><line x1="7.25" y1="11.25" x2="10.75" y2="11.25"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M14.181,3.257c-.221-.865-.998-1.507-1.931-1.507H5.75c-1.105,0-2,.896-2,2v12.5l5.25-3.5,5.25,3.5v-3"></path><line x1="14.25" y1="5.75" x2="14.25" y2="10.75" data-color="color-2"></line><line x1="16.75" y1="8.25" x2="11.75" y2="8.25" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><line x1="5.75" y1="7.25" x2="5.75" y2="13.75"></line><line x1="14.75" y1="5.75" x2="14.75" y2="12.25"></line><path d="m8.6399,3.0186l4.9461-.8246c.61-.102,1.164.368,1.164.986v2.57l-9,1.5"></path><circle cx="3.75" cy="13.75" r="2"></circle><circle cx="12.75" cy="12.25" r="2"></circle><line x1="3.75" y1="1.25" x2="3.75" y2="6.25" data-color="color-2"></line><line x1="6.25" y1="3.75" x2="1.25" y2="3.75" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><polyline points="2.75 9.5 6.5 13.25 15.25 4.5"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M1.75,16.25v-.5c0-1.105,.895-2,2-2H14.25c1.105,0,2,.895,2,2v.5"></path><path d="M3.75,11.25c0-.828,.672-1.5,1.5-1.5h7.5c.828,0,1.5,.672,1.5,1.5"></path><polyline points="11.5 4.75 9 7.25 6.5 4.75" data-color="color-2"></polyline><line x1="9" y1="7" x2="9" y2="1.75" data-color="color-2"></line></g></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><line x1="14" y1="4" x2="4" y2="14" data-color="color-2"></line><line x1="4" y1="4" x2="14" y2="14"></line></g></svg> <svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="2" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><line x1="14" y1="4" x2="4" y2="14" data-color="color-2"></line><line x1="4" y1="4" x2="14" y2="14"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M15,10c-.528-.461-2.7-2.251-6-2.251s-5.472,1.79-6,2.251" data-color="color-2"></path><polyline points="13.375 5.598 15 10 10.47 11.222"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><line x1="14.75" y1=".75" x2="14.75" y2="5.75" data-color="color-2"></line><line x1="17.25" y1="3.25" x2="12.25" y2="3.25" data-color="color-2"></line><path d="M2.25,5.25c0-1.105,.895-2,2-2"></path><path d="M14.75,13.75c0,1.105-.895,2-2,2"></path><path d="M4.25,15.75c-1.105,0-2-.895-2-2"></path><line x1="7.25" y1="3.25" x2="9.25" y2="3.25"></line><line x1="7.25" y1="15.75" x2="9.75" y2="15.75"></line><line x1="14.75" y1="8.75" x2="14.75" y2="10.75"></line><line x1="2.25" y1="8.25" x2="2.25" y2="10.75"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M3,10c.528-.461,2.7-2.251,6-2.251s5.472,1.79,6,2.251" data-color="color-2"></path><polyline points="4.625 5.598 3 10 7.53 11.222"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M2.75,15.25s3.599-.568,4.546-1.515c.947-.947,7.327-7.327,7.327-7.327,.837-.837,.837-2.194,0-3.03-.837-.837-2.194-.837-3.03,0,0,0-6.38,6.38-7.327,7.327s-1.515,4.546-1.515,4.546h0Z"></path></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M4.25,9.25V3.75c0-1.105,.895-2,2-2h6c1.105,0,2,.895,2,2V13.25c0,1.105-.895,2-2,2H7.25"></path><polyline points="7.24 6.75 11.25 6.75 11.25 10.76" data-color="color-2"></polyline><line x1="11.25" y1="6.75" x2="1.75" y2="16.25" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg id="a" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" fill-opacity="context-fill-opacity"><path d="M14.7498,13.0913c-.0154.9253-.7896,1.6587-1.715,1.6587h-6.956c-.2705,0-.4541-.275-.3505-.5248l.0024-.0057c.4574-1.1044,1.1996-2.0362,2.1473-2.7161.1179-.0846.2601-.1284.4052-.1284h4.7793c.9416,0,1.703.7711,1.6873,1.7163Z"/><path d="M9.9212,1.25c.2705,0,.4541.275.3505.5248l-.0024.0057c-.4574,1.1044-1.1996,2.0362-2.1473,2.7161-.1179.0846-.2601.1284-.4052.1284H2.9653c-.9254,0-1.6996-.7334-1.715-1.6587-.0158-.9452.7457-1.7163,1.6873-1.7163h6.9837Z"/><path d="M2.9372,14.75c-.2152,0-.4339-.0414-.6451-.1289-.861-.3566-1.2699-1.3437-.9132-2.2047.5485-1.3241,1.3346-2.5112,2.3367-3.5283,1.0381-1.0537,2.2623-1.877,3.6387-2.4471,1.8919-.7837,3.3654-2.2571,4.149-4.149.3566-.861,1.3437-1.2698,2.2047-.9132.861.3566,1.2699,1.3437.9132,2.2047-.5485,1.3241-1.3346,2.5112-2.3367,3.5283-1.0381,1.0537-2.2623,1.877-3.6387,2.4471-1.8919.7837-3.3654,2.2571-4.149,4.149-.2691.6498-.8975,1.0421-1.5596,1.0421Z"/></svg>

View File

@@ -0,0 +1,5 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g fill="context-fill" fill-opacity="context-fill-opacity" class="nc-icon-wrapper"><path d="M9 1C13.4183 1 17 4.58172 17 9C17 13.4183 13.4183 17 9 17C4.58172 17 1 13.4183 1 9C1 4.58172 4.58172 1 9 1ZM10.7285 5.55176C10.0566 5.5598 9.42663 5.86058 9 6.36914C8.57267 5.86121 7.94219 5.56042 7.26758 5.55176C6.01248 5.55999 4.99539 6.58541 5 7.83789C5 10.5743 7.79989 12.25 8.6582 12.6982C8.76478 12.7542 8.88246 12.7812 8.99902 12.7812C9.11561 12.7812 9.2339 12.7535 9.33984 12.6982C10.1978 12.2503 12.9989 10.5754 12.999 7.83887C13.0037 6.58553 11.9872 5.55909 10.7285 5.55176Z"/></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M6.587,12.243l5.206-5.2c.391-.391,1.024-.391,1.414,0l3.043,3.043" data-color="color-2"></path><path d="M1.75,6.75v6.5c0,1.105,.895,2,2,2H12.25" data-color="color-2"></path><rect x="4.75" y="2.75" width="11.5" height="9.5" rx="2" ry="2" transform="translate(21 15) rotate(180)"></rect><path d="M8,7c-.551,0-1-.449-1-1s.449-1,1-1,1,.449,1,1-.449,1-1,1Z" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></path></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M4,15.25l5.836-5.836c.781-.781,2.047-.781,2.828,0l3.086,3.086" data-color="color-2"></path><rect x="2.25" y="4.75" width="13.5" height="10.5" rx="2" ry="2"></rect><line x1="4.75" y1="1.75" x2="13.25" y2="1.75" data-color="color-2"></line><circle cx="5.75" cy="8.25" r="1.25" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></circle></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="m3.762,14.989l6.074-6.075c.781-.781,2.047-.781,2.828,0l2.586,2.586"></path><circle cx="6.25" cy="7.25" r="1.25" stroke-width="0" fill="currentColor"></circle><line x1="14.25" y1="1.25" x2="14.25" y2="6.25" data-color="color-2"></line><path d="m9.461,2.75h-4.711c-1.1046,0-2,.8955-2,2v8.5c0,1.1045.8954,2,2,2h8.5c1.1046,0,2-.8955,2-2v-4.7109"></path><line x1="16.75" y1="3.75" x2="11.75" y2="3.75" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><polyline points="14 6.25 16.25 4 14 1.75" data-color="color-2"></polyline><path d="M6.596,2.75h-1.846c-1.105,0-2,.896-2,2V13.25c0,1.104,.895,2,2,2H13.25c1.105,0,2-.896,2-2v-4.846"></path><polyline points="11 6.25 8.75 4 11 1.75" data-color="color-2"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M5,13.75h-.75c-1.105,0-2-.895-2-2V6.25c0-1.105,.895-2,2-2H13.75c1.105,0,2,.895,2,2v5.5c0,1.105-.895,2-2,2h-5.742" data-color="color-2"></path><polyline points="10.5 11.25 8.008 13.742 10.5 16.235"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M5.75,12.25h-2c-1.105,0-2-.895-2-2V5.75c0-1.105,.895-2,2-2H12.25c1.105,0,2,.895,2,2v2"></path><rect x="8.75" y="10.75" width="7.5" height="4.5" rx="1.5" ry="1.5"></rect><polyline points="7.25 6.25 7.25 9.25 4.25 9.25" data-color="color-2"></polyline><line x1="7.25" y1="9.25" x2="4.25" y2="6.25" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><circle cx="9" cy="12" r="1" fill="currentColor" data-color="color-2"></circle><path d="M12.75,12.25h3.487c.003-.083,.013-.166,.013-.25,0-4.004-3.246-7.25-7.25-7.25S1.75,7.996,1.75,12c0,.084,.01,.167,.013,.25h3.487"></path><line x1="8.495" y1="11.137" x2="6.557" y2="7.827" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><circle cx="9" cy="9" r=".5" fill="currentColor" data-color="color-2"></circle><circle cx="9" cy="3.25" r=".5" fill="currentColor"></circle><circle cx="9" cy="14.75" r=".5" fill="currentColor"></circle></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><rect x="11.25" y="10.75" width="5" height="5" rx="1.5" ry="1.5" data-color="color-2"></rect><rect x="11.25" y="2.25" width="5" height="5" rx="1.5" ry="1.5"></rect><polyline points="6.75 11.5 9 13.75 6.75 16"></polyline><path d="M9,13.75h-2.5c-2.623,0-4.75-2.127-4.75-4.75h0c0-2.623,2.127-4.75,4.75-4.75h1.75"></path></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M6.25,2.75h-1c-1.105,0-2,.895-2,2V14.25c0,1.105,.895,2,2,2h7.5c1.105,0,2-.895,2-2V4.75c0-1.105-.895-2-2-2h-1"></path><rect x="6.25" y="1.25" width="5.5" height="3" rx="1" ry="1" data-color="color-2"></rect><polyline points="6.25 10.25 8 12.25 11.75 7.25" data-color="color-2"></polyline></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M7.638,3.495L2.213,12.891c-.605,1.048,.151,2.359,1.362,2.359H14.425c1.211,0,1.967-1.31,1.362-2.359L10.362,3.495c-.605-1.048-2.119-1.048-2.724,0Z"></path><line x1="9" y1="6.5" x2="9" y2="10" data-color="color-2"></line><path d="M9,13.569c-.552,0-1-.449-1-1s.448-1,1-1,1,.449,1,1-.448,1-1,1Z" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></path></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><polyline points="5.25 13.25 1.75 9 5.25 4.75"></polyline><polyline points="12.75 13.25 16.25 9 12.75 4.75"></polyline><line x1="7.75" y1="13.25" x2="10.25" y2="4.75" data-color="color-2"></line></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M12.211,6.984l-2.296-1.385c-.402-.243-.915,.047-.915,.516v2.771c0,.47,.513,.759,.915,.516l2.296-1.385c.389-.235,.389-.798,0-1.033Z" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></path><path d="M1.75,6.75v6.5c0,1.105,.895,2,2,2H12.25" data-color="color-2"></path><rect x="4.75" y="2.75" width="11.5" height="9.5" rx="2" ry="2" transform="translate(21 15) rotate(180)"></rect></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M2.25,8.75V4.75c0-1.105,.895-2,2-2h1.951c.607,0,1.18,.275,1.56,.748l.603,.752h5.386c1.105,0,2,.895,2,2v2.844"></path><path d="M15.75,10.313v-1.563c0-1.104-.895-2-2-2H4.25c-1.105,0-2,.896-2,2v4.5c0,1.104,.895,2,2,2h5"></path><path d="M12.539,11.323l4.204,2.477c.343,.202,.343,.697,0,.899l-4.204,2.477c-.349,.206-.789-.045-.789-.449v-4.955c0-.404,.441-.655,.789-.449Z" data-color="color-2"></path></g></svg>

View File

@@ -1,5 +0,0 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" height="18" width="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><circle cx="7.75" cy="7.75" r="5"></circle><line x1="15.25" y1="15.25" x2="11.285" y2="11.285"></line><circle cx="5.5" cy="7.25" r=".75" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></circle><circle cx="10" cy="7.25" r=".75" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></circle><path d="M6.75,8.5h2c.276,0,.5,.224,.5,.5h0c0,.828-.672,1.5-1.5,1.5h0c-.828,0-1.5-.672-1.5-1.5h0c0-.276,.224-.5,.5-.5Z" fill="currentColor" data-color="color-2" data-stroke="none" stroke="none"></path></g></svg>

View File

@@ -13,3 +13,4 @@
category app-startup nsBrowserGlue @mozilla.org/browser/browserglue;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384} category app-startup nsBrowserGlue @mozilla.org/browser/browserglue;1 application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
#include common/Components.manifest #include common/Components.manifest
#include sessionstore/SessionComponents.manifest

View File

@@ -1,77 +0,0 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
{
class nsHasPolyfill {
constructor() {
this.observers = [];
this.idStore = 0;
}
/**
* @param {{selector: string, exists: boolean}} descendantSelectors
*/
observeSelectorExistence(element, descendantSelectors, stateAttribute, attributeFilter = []) {
const updateState = () => {
const exists = descendantSelectors.some(({ selector }) => {
let selected = element.querySelector(selector);
if (selected?.tagName?.toLowerCase() === 'menu') {
return null;
}
return selected;
});
const { exists: shouldExist = true } = descendantSelectors;
if (exists === shouldExist) {
if (!element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, true, stateAttribute);
}
} else {
if (element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, false, stateAttribute);
}
}
};
const observer = new MutationObserver(updateState);
updateState();
const observerId = this.idStore++;
this.observers.push({
id: observerId,
observer,
element,
attributeFilter,
});
return observerId;
}
disconnectObserver(observerId) {
const index = this.observers.findIndex((o) => o.id === observerId);
if (index !== -1) {
this.observers[index].observer.disconnect();
}
}
connectObserver(observerId) {
const observer = this.observers.find((o) => o.id === observerId);
if (observer) {
observer.observer.observe(observer.element, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: observer.attributeFilter.length ? observer.attributeFilter : undefined,
});
}
}
destroy() {
this.observers.forEach((observer) => observer.observer.disconnect());
this.observers = [];
}
}
const hasPolyfillInstance = new nsHasPolyfill();
window.addEventListener('unload', () => hasPolyfillInstance.destroy(), { once: true });
window.ZenHasPolyfill = hasPolyfillInstance;
}

View File

@@ -5,5 +5,5 @@
// prettier-ignore // prettier-ignore
{ {
Services.scriptloader.loadSubScript("chrome://browser/content/ZenStartup.mjs", this); ChromeUtils.importESModule("chrome://browser/content/ZenStartup.mjs", { global: "current" });
} }

View File

@@ -1,46 +0,0 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
{
class ZenSessionStore extends nsZenPreloadedFeature {
init() {
this.#waitAndCleanup();
}
promiseInitialized = new Promise((resolve) => {
this._resolveInitialized = resolve;
});
restoreInitialTabData(tab, tabData) {
if (tabData.zenWorkspace) {
tab.setAttribute('zen-workspace-id', tabData.zenWorkspace);
}
if (tabData.zenPinnedId) {
tab.setAttribute('zen-pin-id', tabData.zenPinnedId);
}
if (tabData.zenHasStaticLabel) {
tab.setAttribute('zen-has-static-label', 'true');
}
if (tabData.zenEssential) {
tab.setAttribute('zen-essential', 'true');
}
if (tabData.zenDefaultUserContextId) {
tab.setAttribute('zenDefaultUserContextId', 'true');
}
if (tabData.zenPinnedEntry) {
tab.setAttribute('zen-pinned-entry', tabData.zenPinnedEntry);
}
}
async #waitAndCleanup() {
await SessionStore.promiseInitialized;
this.#cleanup();
}
#cleanup() {
this._resolveInitialized();
}
}
window.gZenSessionStore = new ZenSessionStore();
}

View File

@@ -1,227 +0,0 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
{
var gZenStartup = new (class {
#watermarkIgnoreElements = ['zen-toast-container'];
#hasInitializedLayout = false;
isReady = false;
async init() {
// important: We do this to ensure that some firefox components
// are initialized before we start our own initialization.
// please, do not remove this line and if you do, make sure to
// test the startup process.
await new Promise((resolve) => setTimeout(resolve, 0));
this.openWatermark();
this.#initBrowserBackground();
this.#changeSidebarLocation();
this.#zenInitBrowserLayout();
}
#initBrowserBackground() {
const background = document.createXULElement('box');
background.id = 'zen-browser-background';
background.classList.add('zen-browser-generic-background');
const grain = document.createXULElement('box');
grain.classList.add('zen-browser-grain');
background.appendChild(grain);
document.getElementById('browser').prepend(background);
const toolbarBackground = background.cloneNode(true);
toolbarBackground.removeAttribute('id');
toolbarBackground.classList.add('zen-toolbar-background');
document.getElementById('titlebar').prepend(toolbarBackground);
}
#zenInitBrowserLayout() {
if (this.#hasInitializedLayout) return;
this.#hasInitializedLayout = true;
try {
const kNavbarItems = ['nav-bar', 'PersonalToolbar'];
const kNewContainerId = 'zen-appcontent-navbar-container';
let newContainer = document.getElementById(kNewContainerId);
for (let id of kNavbarItems) {
const node = document.getElementById(id);
console.assert(node, 'Could not find node with id: ' + id);
if (!node) continue;
newContainer.appendChild(node);
}
// Fix notification deck
const deckTemplate = document.getElementById('tab-notification-deck-template');
if (deckTemplate) {
document.getElementById('zen-appcontent-wrapper').prepend(deckTemplate);
}
gZenWorkspaces.init();
setTimeout(() => {
gZenUIManager.init();
this.#checkForWelcomePage();
}, 0);
} catch (e) {
console.error('ZenThemeModifier: Error initializing browser layout', e);
}
if (gBrowserInit.delayedStartupFinished) {
this.delayedStartupFinished();
} else {
Services.obs.addObserver(this, 'browser-delayed-startup-finished');
}
}
observe(aSubject, aTopic) {
// This nsIObserver method allows us to defer initialization until after
// this window has finished painting and starting up.
if (aTopic == 'browser-delayed-startup-finished' && aSubject == window) {
Services.obs.removeObserver(this, 'browser-delayed-startup-finished');
this.delayedStartupFinished();
}
}
delayedStartupFinished() {
gZenWorkspaces.promiseInitialized.then(async () => {
await delayedStartupPromise;
await SessionStore.promiseAllWindowsRestored;
delete gZenUIManager.promiseInitialized;
this.#initSearchBar();
gZenCompactModeManager.init();
// Fix for https://github.com/zen-browser/desktop/issues/7605, specially in compact mode
if (gURLBar.hasAttribute('breakout-extend')) {
gURLBar.focus();
}
// A bit of a hack to make sure the tabs toolbar is updated.
// Just in case we didn't get the right size.
gZenUIManager.updateTabsToolbar();
this.closeWatermark();
this.isReady = true;
});
}
openWatermark() {
if (!Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
document.documentElement.removeAttribute('zen-before-loaded');
return;
}
for (let elem of document.querySelectorAll('#browser > *, #urlbar')) {
elem.style.opacity = 0;
}
}
closeWatermark() {
document.documentElement.removeAttribute('zen-before-loaded');
if (Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
let elementsToIgnore = this.#watermarkIgnoreElements.map((id) => '#' + id).join(', ');
gZenUIManager.motion
.animate(
'#browser > *:not(' + elementsToIgnore + '), #urlbar, #tabbrowser-tabbox > *',
{
opacity: [0, 1],
},
{
duration: 0.1,
}
)
.then(() => {
for (let elem of document.querySelectorAll(
'#browser > *, #urlbar, #tabbrowser-tabbox > *'
)) {
elem.style.removeProperty('opacity');
}
});
}
window.requestAnimationFrame(() => {
window.dispatchEvent(new window.Event('resize')); // To recalculate the layout
});
}
#changeSidebarLocation() {
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
const browser = document.getElementById('browser');
browser.prepend(gNavToolbox);
const sidebarPanelWrapper = document.getElementById('tabbrowser-tabbox');
for (let id of kElementsToAppend) {
const elem = document.getElementById(id);
if (elem) {
sidebarPanelWrapper.prepend(elem);
}
}
}
#initSearchBar() {
// Only focus the url bar
gURLBar.focus();
}
#checkForWelcomePage() {
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.scriptloader.loadSubScript(
'chrome://browser/content/zen-components/ZenWelcome.mjs',
window
);
} else {
this.#createUpdateAnimation();
}
}
async #createUpdateAnimation() {
const appID = Services.appinfo.appBuildID;
if (
Services.prefs.getStringPref('zen.updates.last-build-id', '') === appID ||
gZenUIManager.testingEnabled
) {
return;
}
Services.prefs.setStringPref('zen.updates.last-build-id', appID);
await gZenWorkspaces.promiseInitialized;
const appWrapper = document.getElementById('zen-main-app-wrapper');
const element = document.createElement('div');
element.id = 'zen-update-animation';
const elementBorder = document.createElement('div');
elementBorder.id = 'zen-update-animation-border';
requestIdleCallback(() => {
if (gReduceMotion) {
return;
}
appWrapper.appendChild(element);
appWrapper.appendChild(elementBorder);
Promise.all([
gZenUIManager.motion.animate(
'#zen-update-animation',
{
top: ['100%', '-50%'],
opacity: [0.5, 1],
},
{
duration: 0.35,
}
),
gZenUIManager.motion.animate(
'#zen-update-animation-border',
{
'--background-top': ['150%', '-50%'],
},
{
duration: 0.35,
delay: 0.08,
}
),
]).then(() => {
element.remove();
elementBorder.remove();
});
});
}
})();
window.addEventListener(
'MozBeforeInitialXULLayout',
() => {
gZenStartup.init();
},
{ once: true }
);
}

View File

@@ -1,7 +1,9 @@
// This Source Code Form is subject to the terms of the Mozilla Public // This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this // 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/. // file, You can obtain one at http://mozilla.org/MPL/2.0/.
{
import { nsZenDOMOperatedFeature } from 'chrome://browser/content/zen-components/ZenCommonUtils.mjs';
// prettier-ignore // prettier-ignore
const SVG_ICONS = [ const SVG_ICONS = [
"airplane.svg", "american-football.svg", "baseball.svg", "basket.svg", "airplane.svg", "american-football.svg", "baseball.svg", "basket.svg",
@@ -96,9 +98,7 @@
#changePage(toSvg = false) { #changePage(toSvg = false) {
const itemToScroll = toSvg const itemToScroll = toSvg
? this.svgList ? this.svgList
: document : document.getElementById('PanelUI-zen-emojis-picker-pages').querySelector('[emojis="true"]');
.getElementById('PanelUI-zen-emojis-picker-pages')
.querySelector('[emojis="true"]');
itemToScroll.scrollIntoView({ itemToScroll.scrollIntoView({
behavior: 'smooth', behavior: 'smooth',
block: 'nearest', block: 'nearest',
@@ -228,4 +228,3 @@
} }
window.gZenEmojiPicker = new nsZenEmojiPicker(); window.gZenEmojiPicker = new nsZenEmojiPicker();
}

View File

@@ -1,4 +1,3 @@
#
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # 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/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.

36
src/zen/common/jar.inc.mn Normal file
View File

@@ -0,0 +1,36 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
content/browser/zenThemeModifier.js (../../zen/common/zenThemeModifier.js)
content/browser/ZenPreloadedScripts.js (../../zen/common/ZenPreloadedScripts.js)
content/browser/zen-sets.js (../../zen/common/zen-sets.js)
content/browser/ZenStartup.mjs (../../zen/common/modules/ZenStartup.mjs)
content/browser/ZenUpdates.mjs (../../zen/common/modules/ZenUpdates.mjs)
content/browser/ZenUIManager.mjs (../../zen/common/modules/ZenUIManager.mjs)
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/modules/ZenCommonUtils.mjs)
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/modules/ZenSessionStore.mjs)
content/browser/zen-components/ZenHasPolyfill.mjs (../../zen/common/modules/ZenHasPolyfill.mjs)
content/browser/zen-components/ZenSidebarNotification.mjs (../../zen/common/modules/ZenSidebarNotification.mjs)
content/browser/zen-components/ZenEmojisData.min.mjs (../../zen/common/emojis/ZenEmojisData.min.mjs)
content/browser/zen-components/ZenEmojiPicker.mjs (../../zen/common/emojis/ZenEmojiPicker.mjs)
* content/browser/zen-styles/zen-theme.css (../../zen/common/styles/zen-theme.css)
content/browser/zen-styles/zen-buttons.css (../../zen/common/styles/zen-buttons.css)
content/browser/zen-styles/zen-browser-ui.css (../../zen/common/styles/zen-browser-ui.css)
content/browser/zen-styles/zen-animations.css (../../zen/common/styles/zen-animations.css)
content/browser/zen-styles/zen-panel-ui.css (../../zen/common/styles/zen-panel-ui.css)
content/browser/zen-styles/zen-single-components.css (../../zen/common/styles/zen-single-components.css)
content/browser/zen-styles/zen-sidebar.css (../../zen/common/styles/zen-sidebar.css)
content/browser/zen-styles/zen-toolbar.css (../../zen/common/styles/zen-toolbar.css)
content/browser/zen-styles/zen-browser-container.css (../../zen/common/styles/zen-browser-container.css)
content/browser/zen-styles/zen-omnibox.css (../../zen/common/styles/zen-omnibox.css)
content/browser/zen-styles/zen-popup.css (../../zen/common/styles/zen-popup.css)
content/browser/zen-styles/zen-branding.css (../../zen/common/styles/zen-branding.css)
content/browser/zen-styles/zen-sidebar-notification.css (../../zen/common/styles/zen-sidebar-notification.css)
content/browser/zen-styles/zen-panels/bookmarks.css (../../zen/common/styles/zen-panels/bookmarks.css)
content/browser/zen-styles/zen-panels/print.css (../../zen/common/styles/zen-panels/print.css)
content/browser/zen-styles/zen-panels/dialog.css (../../zen/common/styles/zen-panels/dialog.css)

View File

@@ -15,8 +15,7 @@ window.gZenOperatingSystemCommonUtils = {
}, },
}; };
/* eslint-disable no-unused-vars */ export class nsZenMultiWindowFeature {
class nsZenMultiWindowFeature {
constructor() {} constructor() {}
static get browsers() { static get browsers() {
@@ -50,23 +49,21 @@ class nsZenMultiWindowFeature {
} }
} }
/* eslint-disable no-unused-vars */ export class nsZenDOMOperatedFeature {
class nsZenDOMOperatedFeature {
constructor() { constructor() {
var initBound = this.init.bind(this); var initBound = this.init.bind(this);
document.addEventListener('DOMContentLoaded', initBound, { once: true }); document.addEventListener('DOMContentLoaded', initBound, { once: true });
} }
} }
/* eslint-disable no-unused-vars */ export class nsZenPreloadedFeature {
class nsZenPreloadedFeature {
constructor() { constructor() {
var initBound = this.init.bind(this); var initBound = this.init.bind(this);
document.addEventListener('MozBeforeInitialXULLayout', initBound, { once: true }); document.addEventListener('MozBeforeInitialXULLayout', initBound, { once: true });
} }
} }
var gZenCommonActions = { window.gZenCommonActions = {
copyCurrentURLToClipboard() { copyCurrentURLToClipboard() {
const [currentUrl, ClipboardHelper] = gURLBar.zenStrippedURI; const [currentUrl, ClipboardHelper] = gURLBar.zenStrippedURI;
const displaySpec = currentUrl.displaySpec; const displaySpec = currentUrl.displaySpec;

View File

@@ -0,0 +1,75 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
class nsHasPolyfill {
constructor() {
this.observers = [];
this.idStore = 0;
}
/**
* @param {{selector: string, exists: boolean}} descendantSelectors
*/
observeSelectorExistence(element, descendantSelectors, stateAttribute, attributeFilter = []) {
const updateState = () => {
const exists = descendantSelectors.some(({ selector }) => {
let selected = element.querySelector(selector);
if (selected?.tagName?.toLowerCase() === 'menu') {
return null;
}
return selected;
});
const { exists: shouldExist = true } = descendantSelectors;
if (exists === shouldExist) {
if (!element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, true, stateAttribute);
}
} else {
if (element.hasAttribute(stateAttribute)) {
gZenCompactModeManager._setElementExpandAttribute(element, false, stateAttribute);
}
}
};
const observer = new MutationObserver(updateState);
updateState();
const observerId = this.idStore++;
this.observers.push({
id: observerId,
observer,
element,
attributeFilter,
});
return observerId;
}
disconnectObserver(observerId) {
const index = this.observers.findIndex((o) => o.id === observerId);
if (index !== -1) {
this.observers[index].observer.disconnect();
}
}
connectObserver(observerId) {
const observer = this.observers.find((o) => o.id === observerId);
if (observer) {
observer.observer.observe(observer.element, {
childList: true,
subtree: true,
attributes: true,
attributeFilter: observer.attributeFilter.length ? observer.attributeFilter : undefined,
});
}
}
destroy() {
this.observers.forEach((observer) => observer.observer.disconnect());
this.observers = [];
}
}
const hasPolyfillInstance = new nsHasPolyfill();
window.addEventListener('unload', () => hasPolyfillInstance.destroy(), { once: true });
window.ZenHasPolyfill = hasPolyfillInstance;

View File

@@ -0,0 +1,47 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
import { nsZenPreloadedFeature } from 'chrome://browser/content/zen-components/ZenCommonUtils.mjs';
class ZenSessionStore extends nsZenPreloadedFeature {
init() {
this.#waitAndCleanup();
}
promiseInitialized = new Promise((resolve) => {
this._resolveInitialized = resolve;
});
restoreInitialTabData(tab, tabData) {
if (tabData.zenWorkspace) {
tab.setAttribute('zen-workspace-id', tabData.zenWorkspace);
}
if (tabData.zenPinnedId) {
tab.setAttribute('zen-pin-id', tabData.zenPinnedId);
}
if (tabData.zenHasStaticLabel) {
tab.setAttribute('zen-has-static-label', 'true');
}
if (tabData.zenEssential) {
tab.setAttribute('zen-essential', 'true');
}
if (tabData.zenDefaultUserContextId) {
tab.setAttribute('zenDefaultUserContextId', 'true');
}
if (tabData.zenPinnedEntry) {
tab.setAttribute('zen-pinned-entry', tabData.zenPinnedEntry);
}
}
async #waitAndCleanup() {
await SessionStore.promiseInitialized;
this.#cleanup();
}
#cleanup() {
this._resolveInitialized();
}
}
window.gZenSessionStore = new ZenSessionStore();

View File

@@ -0,0 +1,128 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
import { html } from 'chrome://global/content/vendor/lit.all.mjs';
import { MozLitElement } from 'chrome://global/content/lit-utils.mjs';
const lazy = {};
ChromeUtils.defineLazyGetter(lazy, 'siblingElement', () => {
// All our notifications should be attached after the media controls toolbar
return document.getElementById('zen-media-controls-toolbar');
});
/**
* Zen Sidebar Notification Component
*
* Displays and takes care of animations for notifications that
* appear in the sidebar.
*
* @properties {headingL10nId} - The L10n ID for the heading text.
*/
class ZenSidebarNotification extends MozLitElement {
static properties = {
headingL10nId: { type: String, fluent: true },
links: { type: Array },
};
constructor({ headingL10nId = '', links = [] } = {}) {
super();
this.headingL10nId = headingL10nId;
this.links = links;
}
connectedCallback() {
super.connectedCallback();
if (this.parentElement) {
this.#animateIn();
}
}
remove() {
this.#animateOut().then(() => {
super.remove();
});
}
render() {
return html`
<link
rel="stylesheet"
href="chrome://browser/content/zen-styles/zen-sidebar-notification.css" />
<div class="zen-sidebar-notification-header">
<label
class="zen-sidebar-notification-heading"
flex="1"
data-l10n-id="${this.headingL10nId}"></label>
<div class="zen-sidebar-notification-close-button" @click=${() => this.remove()}>
<img src="chrome://browser/skin/zen-icons/close.svg" />
</div>
</div>
<div class="zen-sidebar-notification-body">
${this.links.map(
(link) => html`
<div
class="zen-sidebar-notification-link-container"
data-l10n-id="${link.l10nId}-tooltip"
?special=${link.special}
@click=${() => {
if (link.action) {
link.action();
return;
}
window.openLinkIn(link.url, 'tab', {
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
forceForeground: true,
});
this.remove();
}}>
<img class="zen-sidebar-notification-link-icon" src="${link.icon}" />
<label
class="zen-sidebar-notification-link-text"
data-l10n-id="${link.l10nId}-label"></label>
</div>
`
)}
</div>
`;
}
#animateIn() {
this.style.opacity = '0';
return gZenUIManager.motion.animate(
this,
{
opacity: [0, 1],
y: [50, 0],
},
{
delay: 1,
}
);
}
#animateOut() {
return gZenUIManager.motion.animate(
this,
{
opacity: [1, 0],
y: [0, 10],
},
{}
);
}
}
export default function createSidebarNotification(args) {
if (!gZenVerticalTabsManager._prefsSidebarExpanded) {
return null;
}
const notification = new ZenSidebarNotification(args);
lazy.siblingElement.insertAdjacentElement('afterend', notification);
return notification;
}
customElements.define('zen-sidebar-notification', ZenSidebarNotification);

View File

@@ -0,0 +1,188 @@
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
import checkForZenUpdates, {
createWindowUpdateAnimation,
} from 'chrome://browser/content/ZenUpdates.mjs';
class ZenStartup {
#watermarkIgnoreElements = ['zen-toast-container'];
#hasInitializedLayout = false;
isReady = false;
async init() {
// important: We do this to ensure that some firefox components
// are initialized before we start our own initialization.
// please, do not remove this line and if you do, make sure to
// test the startup process.
await new Promise((resolve) => setTimeout(resolve, 0));
this.openWatermark();
this.#initBrowserBackground();
this.#changeSidebarLocation();
this.#zenInitBrowserLayout();
}
#initBrowserBackground() {
const background = document.createXULElement('box');
background.id = 'zen-browser-background';
background.classList.add('zen-browser-generic-background');
const grain = document.createXULElement('box');
grain.classList.add('zen-browser-grain');
background.appendChild(grain);
document.getElementById('browser').prepend(background);
const toolbarBackground = background.cloneNode(true);
toolbarBackground.removeAttribute('id');
toolbarBackground.classList.add('zen-toolbar-background');
document.getElementById('titlebar').prepend(toolbarBackground);
}
#zenInitBrowserLayout() {
if (this.#hasInitializedLayout) return;
this.#hasInitializedLayout = true;
try {
const kNavbarItems = ['nav-bar', 'PersonalToolbar'];
const kNewContainerId = 'zen-appcontent-navbar-container';
let newContainer = document.getElementById(kNewContainerId);
for (let id of kNavbarItems) {
const node = document.getElementById(id);
console.assert(node, 'Could not find node with id: ' + id);
if (!node) continue;
newContainer.appendChild(node);
}
// Fix notification deck
const deckTemplate = document.getElementById('tab-notification-deck-template');
if (deckTemplate) {
document.getElementById('zen-appcontent-wrapper').prepend(deckTemplate);
}
gZenWorkspaces.init();
setTimeout(() => {
gZenUIManager.init();
this.#checkForWelcomePage();
}, 0);
} catch (e) {
console.error('ZenThemeModifier: Error initializing browser layout', e);
}
if (gBrowserInit.delayedStartupFinished) {
this.delayedStartupFinished();
} else {
Services.obs.addObserver(this, 'browser-delayed-startup-finished');
}
}
observe(aSubject, aTopic) {
// This nsIObserver method allows us to defer initialization until after
// this window has finished painting and starting up.
if (aTopic == 'browser-delayed-startup-finished' && aSubject == window) {
Services.obs.removeObserver(this, 'browser-delayed-startup-finished');
this.delayedStartupFinished();
}
}
delayedStartupFinished() {
gZenWorkspaces.promiseInitialized.then(async () => {
await delayedStartupPromise;
await SessionStore.promiseAllWindowsRestored;
delete gZenUIManager.promiseInitialized;
this.#initSearchBar();
gZenCompactModeManager.init();
// Fix for https://github.com/zen-browser/desktop/issues/7605, specially in compact mode
if (gURLBar.hasAttribute('breakout-extend')) {
gURLBar.focus();
}
// A bit of a hack to make sure the tabs toolbar is updated.
// Just in case we didn't get the right size.
gZenUIManager.updateTabsToolbar();
this.closeWatermark();
checkForZenUpdates();
this.isReady = true;
});
}
openWatermark() {
if (!Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
document.documentElement.removeAttribute('zen-before-loaded');
return;
}
for (let elem of document.querySelectorAll('#browser > *, #urlbar')) {
elem.style.opacity = 0;
}
}
closeWatermark() {
document.documentElement.removeAttribute('zen-before-loaded');
if (Services.prefs.getBoolPref('zen.watermark.enabled', false)) {
let elementsToIgnore = this.#watermarkIgnoreElements.map((id) => '#' + id).join(', ');
gZenUIManager.motion
.animate(
'#browser > *:not(' + elementsToIgnore + '), #urlbar, #tabbrowser-tabbox > *',
{
opacity: [0, 1],
},
{
duration: 0.1,
}
)
.then(() => {
for (let elem of document.querySelectorAll(
'#browser > *, #urlbar, #tabbrowser-tabbox > *'
)) {
elem.style.removeProperty('opacity');
}
});
}
window.requestAnimationFrame(() => {
window.dispatchEvent(new window.Event('resize')); // To recalculate the layout
});
}
#changeSidebarLocation() {
const kElementsToAppend = ['sidebar-splitter', 'sidebar-box'];
const browser = document.getElementById('browser');
browser.prepend(gNavToolbox);
const sidebarPanelWrapper = document.getElementById('tabbrowser-tabbox');
for (let id of kElementsToAppend) {
const elem = document.getElementById(id);
if (elem) {
sidebarPanelWrapper.prepend(elem);
}
}
}
#initSearchBar() {
// Only focus the url bar
gURLBar.focus();
}
#checkForWelcomePage() {
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.scriptloader.loadSubScript(
'chrome://browser/content/zen-components/ZenWelcome.mjs',
window
);
} else {
this.#createUpdateAnimation();
}
}
async #createUpdateAnimation() {
return await createWindowUpdateAnimation();
}
}
window.gZenStartup = new ZenStartup();
window.addEventListener(
'MozBeforeInitialXULLayout',
() => {
gZenStartup.init();
},
{ once: true }
);

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