mirror of
https://github.com/zen-browser/desktop.git
synced 2025-11-10 04:25:12 +00:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57e63a4456 | ||
|
|
bc09603add | ||
|
|
5ecfc745da | ||
|
|
421adade52 | ||
|
|
c382001253 | ||
|
|
8b5325ba1c | ||
|
|
eeb8a78741 | ||
|
|
c5bc5c7f09 | ||
|
|
879865e625 | ||
|
|
2ec4510850 | ||
|
|
96c6ec658c |
@@ -35,7 +35,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
|||||||
### Firefox Versions
|
### Firefox Versions
|
||||||
|
|
||||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `144.0.2`! 🚀
|
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `144.0.2`! 🚀
|
||||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 144.0.2`!
|
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0`!
|
||||||
|
|
||||||
### Contributing
|
### Contributing
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
860c37a26622f61c74c7cbb93f7e0ae759fcbfe1
|
7bc0bd3b3f84dddd16bc84ddb01bc55782177f5e
|
||||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Performance umschalten
|
|||||||
zen-devtools-toggle-storage-shortcut = Speicher umschalten
|
zen-devtools-toggle-storage-shortcut = Speicher umschalten
|
||||||
zen-devtools-toggle-dom-shortcut = DOM umschalten
|
zen-devtools-toggle-dom-shortcut = DOM umschalten
|
||||||
zen-devtools-toggle-accessibility-shortcut = Barrierefreiheit umschalten
|
zen-devtools-toggle-accessibility-shortcut = Barrierefreiheit umschalten
|
||||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
zen-close-all-unpinned-tabs-shortcut = Alle nicht angehefteten Tabs schließen
|
||||||
|
|||||||
@@ -63,8 +63,8 @@ zen-generic-next = Weiter
|
|||||||
# These labels will be used for the site data panel settings
|
# These labels will be used for the site data panel settings
|
||||||
zen-site-data-setting-allow = Erlaubt
|
zen-site-data-setting-allow = Erlaubt
|
||||||
zen-site-data-setting-block = Blockiert
|
zen-site-data-setting-block = Blockiert
|
||||||
zen-site-data-protections-enabled = Enabled
|
zen-site-data-protections-enabled = Aktiviert
|
||||||
zen-site-data-protections-disabled = Disabled
|
zen-site-data-protections-disabled = Deaktiviert
|
||||||
zen-site-data-setting-cross-site = Cross-Site-Cookie
|
zen-site-data-setting-cross-site = Cross-Site-Cookie
|
||||||
zen-site-data-security-info-extension =
|
zen-site-data-security-info-extension =
|
||||||
.label = Erweiterung
|
.label = Erweiterung
|
||||||
@@ -79,13 +79,13 @@ zen-site-data-get-addons =
|
|||||||
zen-site-data-site-settings =
|
zen-site-data-site-settings =
|
||||||
.label = Alle Website-Einstellungen
|
.label = Alle Website-Einstellungen
|
||||||
zen-site-data-header-share =
|
zen-site-data-header-share =
|
||||||
.tooltiptext = Share This Page
|
.tooltiptext = Diese Seite teilen
|
||||||
zen-site-data-header-reader-mode =
|
zen-site-data-header-reader-mode =
|
||||||
.tooltiptext = Enter Reader Mode
|
.tooltiptext = Lesemodus aktivieren
|
||||||
zen-site-data-header-screenshot =
|
zen-site-data-header-screenshot =
|
||||||
.tooltiptext = Take a Screenshot
|
.tooltiptext = Screenshot erstellen
|
||||||
zen-site-data-header-bookmark =
|
zen-site-data-header-bookmark =
|
||||||
.tooltiptext = Bookmark This Page
|
.tooltiptext = Diese Seite als Lesezeichen hinzufügen
|
||||||
zen-urlbar-copy-url-button =
|
zen-urlbar-copy-url-button =
|
||||||
.tooltiptext = URL kopieren
|
.tooltiptext = URL kopieren
|
||||||
zen-site-data-setting-site-protection = Tracking-Schutz
|
zen-site-data-setting-site-protection = Tracking-Schutz
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Arbeitsbereich löschen?
|
|||||||
zen-workspaces-delete-workspace-body = Sind Sie sicher, dass Sie { $name } löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.
|
zen-workspaces-delete-workspace-body = Sind Sie sicher, dass Sie { $name } löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Tabs geschlossen! Nutze <span>{ $shortcut }</span> , um rückgängig zu machen.
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Löschen
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Alle nicht angehefteten Tabs schließen
|
||||||
|
|||||||
@@ -56,6 +56,9 @@ pane-settings-workspaces-title = Workspaces
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Enable Tab Unloader
|
.label = Enable Tab Unloader
|
||||||
|
|
||||||
|
zen-tabs-close-on-back-with-no-history =
|
||||||
|
.label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
|
||||||
|
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Use themed background for compact toolbar
|
||||||
|
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ zen-glance-trigger-shift-click =
|
|||||||
.label = Shift + klik
|
.label = Shift + klik
|
||||||
zen-glance-trigger-meta-click =
|
zen-glance-trigger-meta-click =
|
||||||
.label = Windows (Command) + klik
|
.label = Windows (Command) + klik
|
||||||
zen-look-and-feel-compact-view-header = Toon in compacte weergave
|
zen-look-and-feel-compact-view-header = Weergeven in compacte weergave
|
||||||
zen-look-and-feel-compact-view-description = Toon alleen de werkbalken die je gebruikt!
|
zen-look-and-feel-compact-view-description = Alleen de werkbalken weergeven die je gebruikt!
|
||||||
zen-look-and-feel-compact-view-enabled =
|
zen-look-and-feel-compact-view-enabled =
|
||||||
.label = { -brand-short-name }'s compacte modus inschakelen
|
.label = { -brand-short-name }'s compacte modus inschakelen
|
||||||
zen-look-and-feel-compact-view-top-toolbar =
|
zen-look-and-feel-compact-view-top-toolbar =
|
||||||
@@ -45,7 +45,7 @@ pane-settings-workspaces-title = Werkruimtes
|
|||||||
zen-tabs-unloader-enabled =
|
zen-tabs-unloader-enabled =
|
||||||
.label = Tabblad ontlader inschakelen
|
.label = Tabblad ontlader inschakelen
|
||||||
zen-look-and-feel-compact-toolbar-themed =
|
zen-look-and-feel-compact-toolbar-themed =
|
||||||
.label = Use themed background for compact toolbar
|
.label = Gebruik thema achtergrond voor compacte werkbalk
|
||||||
zen-workspace-continue-where-left-off =
|
zen-workspace-continue-where-left-off =
|
||||||
.label = Verdergaan waar je was gebleven
|
.label = Verdergaan waar je was gebleven
|
||||||
pane-zen-pinned-tab-manager-title = Vastgezette tabbladen
|
pane-zen-pinned-tab-manager-title = Vastgezette tabbladen
|
||||||
@@ -76,7 +76,7 @@ zen-settings-workspaces-enabled =
|
|||||||
zen-settings-workspaces-hide-default-container-indicator =
|
zen-settings-workspaces-hide-default-container-indicator =
|
||||||
.label = Verberg de standaard container indicator in de tabbladbalk
|
.label = Verberg de standaard container indicator in de tabbladbalk
|
||||||
zen-key-unsaved = Snelkoppeling is niet opgeslagen! Bewaar deze door op de "Escape" knop te drukken na het opnieuw typen.
|
zen-key-unsaved = Snelkoppeling is niet opgeslagen! Bewaar deze door op de "Escape" knop te drukken na het opnieuw typen.
|
||||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
zen-key-conflict = Conflicten met { $group } -> { $shortcut }
|
||||||
pane-zen-theme-title = Thema instellingen
|
pane-zen-theme-title = Thema instellingen
|
||||||
zen-vertical-tabs-title = Zijbalk en tabbladen lay-out
|
zen-vertical-tabs-title = Zijbalk en tabbladen lay-out
|
||||||
zen-vertical-tabs-header = Verticale tabbladen
|
zen-vertical-tabs-header = Verticale tabbladen
|
||||||
@@ -86,7 +86,7 @@ zen-vertical-tabs-show-expand-button =
|
|||||||
zen-vertical-tabs-newtab-on-tab-list =
|
zen-vertical-tabs-newtab-on-tab-list =
|
||||||
.label = Laat nieuwe tabblad knop zien op de tabbladlijst
|
.label = Laat nieuwe tabblad knop zien op de tabbladlijst
|
||||||
zen-vertical-tabs-newtab-top-button-up =
|
zen-vertical-tabs-newtab-top-button-up =
|
||||||
.label = Verplaats de nieuwe tab knop naar boven
|
.label = Verplaats de nieuwe tabblad knop naar boven
|
||||||
zen-vertical-tabs-expand-tabs-by-default = Tabbladen standaard uitbreiden
|
zen-vertical-tabs-expand-tabs-by-default = Tabbladen standaard uitbreiden
|
||||||
zen-vertical-tabs-dont-expand-tabs-by-default = Tabbladen niet standaard uitbreiden
|
zen-vertical-tabs-dont-expand-tabs-by-default = Tabbladen niet standaard uitbreiden
|
||||||
zen-vertical-tabs-expand-tabs-on-hover = Tabbladen uitbreiden bij hoveren (werkt niet in compacte modus)
|
zen-vertical-tabs-expand-tabs-on-hover = Tabbladen uitbreiden bij hoveren (werkt niet in compacte modus)
|
||||||
@@ -130,7 +130,7 @@ zen-themes-auto-update =
|
|||||||
zen-settings-workspaces-force-container-tabs-to-workspace =
|
zen-settings-workspaces-force-container-tabs-to-workspace =
|
||||||
.label = Schakel over naar de werkruimte waar container als standaard is ingesteld bij het openen van container tabbladen
|
.label = Schakel over naar de werkruimte waar container als standaard is ingesteld bij het openen van container tabbladen
|
||||||
zen-theme-marketplace-link = Winkel bezoeken
|
zen-theme-marketplace-link = Winkel bezoeken
|
||||||
zen-dark-theme-styles-header = Donkere thema stijlen
|
zen-dark-theme-styles-header = Donker thema stijlen
|
||||||
zen-dark-theme-styles-description = Pas het donker thema aan naar jouw voorkeur
|
zen-dark-theme-styles-description = Pas het donker thema aan naar jouw voorkeur
|
||||||
zen-dark-theme-styles-amoled = Nacht thema
|
zen-dark-theme-styles-amoled = Nacht thema
|
||||||
zen-dark-theme-styles-default = Standaard donker thema
|
zen-dark-theme-styles-default = Standaard donker thema
|
||||||
@@ -223,7 +223,7 @@ zen-key-exit-full-screen = Volledig scherm afsluiten
|
|||||||
zen-ai-chatbot-sidebar-shortcut = AI-chatbot zijbalk togglen
|
zen-ai-chatbot-sidebar-shortcut = AI-chatbot zijbalk togglen
|
||||||
zen-key-inspector-mac = Inspector (Mac) togglen
|
zen-key-inspector-mac = Inspector (Mac) togglen
|
||||||
zen-toggle-sidebar-shortcut = Firefox zijbalk togglen
|
zen-toggle-sidebar-shortcut = Firefox zijbalk togglen
|
||||||
zen-toggle-pin-tab-shortcut = Toggle Pin Tab
|
zen-toggle-pin-tab-shortcut = Tabblad vastzetten togglen
|
||||||
zen-reader-mode-toggle-shortcut-other = Leesmodus togglen
|
zen-reader-mode-toggle-shortcut-other = Leesmodus togglen
|
||||||
zen-picture-in-picture-toggle-shortcut = Beeld-in-beeld togglen
|
zen-picture-in-picture-toggle-shortcut = Beeld-in-beeld togglen
|
||||||
zen-nav-reload-shortcut-2 = Pagina opnieuw laden
|
zen-nav-reload-shortcut-2 = Pagina opnieuw laden
|
||||||
@@ -234,7 +234,7 @@ zen-find-shortcut = Vinden op pagina
|
|||||||
zen-search-find-again-shortcut = Opnieuw zoeken
|
zen-search-find-again-shortcut = Opnieuw zoeken
|
||||||
zen-search-find-again-shortcut-prev = Vorige vinden
|
zen-search-find-again-shortcut-prev = Vorige vinden
|
||||||
zen-search-find-again-shortcut-2 = Opnieuw zoeken (alternatief)
|
zen-search-find-again-shortcut-2 = Opnieuw zoeken (alternatief)
|
||||||
zen-bookmark-this-page-shortcut = Bladwijzer deze pagina
|
zen-bookmark-this-page-shortcut = Bladwijzer toevoegen voor deze pagina
|
||||||
zen-bookmark-show-library-shortcut = Bladwijzerbibliotheek weergeven
|
zen-bookmark-show-library-shortcut = Bladwijzerbibliotheek weergeven
|
||||||
zen-key-stop = Laden stoppen
|
zen-key-stop = Laden stoppen
|
||||||
zen-full-zoom-reduce-shortcut = Uitzoomen
|
zen-full-zoom-reduce-shortcut = Uitzoomen
|
||||||
@@ -248,8 +248,8 @@ zen-private-browsing-shortcut = Privé browsen
|
|||||||
zen-screenshot-shortcut = Schermafbeelding maken
|
zen-screenshot-shortcut = Schermafbeelding maken
|
||||||
zen-key-sanitize = Browsergegevens wissen
|
zen-key-sanitize = Browsergegevens wissen
|
||||||
zen-quit-app-shortcut = Applicatie afsluiten
|
zen-quit-app-shortcut = Applicatie afsluiten
|
||||||
zen-key-wr-capture-cmd = WR opname opdracht
|
zen-key-wr-capture-cmd = WR-opname opdracht
|
||||||
zen-key-wr-toggle-capture-sequence-cmd = WR opnamereeks togglen
|
zen-key-wr-toggle-capture-sequence-cmd = WR-opnamereeks togglen
|
||||||
zen-nav-reload-shortcut = Pagina opnieuw laden
|
zen-nav-reload-shortcut = Pagina opnieuw laden
|
||||||
zen-nav-reload-shortcut-skip-cache = Pagina opnieuw laden (Cache overslaan)
|
zen-nav-reload-shortcut-skip-cache = Pagina opnieuw laden (Cache overslaan)
|
||||||
zen-close-shortcut = Venster sluiten
|
zen-close-shortcut = Venster sluiten
|
||||||
@@ -257,7 +257,7 @@ zen-close-tab-shortcut = Tabblad sluiten
|
|||||||
zen-compact-mode-shortcut-show-sidebar = Zwevende zijbalk togglen
|
zen-compact-mode-shortcut-show-sidebar = Zwevende zijbalk togglen
|
||||||
zen-compact-mode-shortcut-show-toolbar = Zwevende werkbalk togglen
|
zen-compact-mode-shortcut-show-toolbar = Zwevende werkbalk togglen
|
||||||
zen-compact-mode-shortcut-toggle = Compacte modus togglen
|
zen-compact-mode-shortcut-toggle = Compacte modus togglen
|
||||||
zen-glance-expand = Expand Glance
|
zen-glance-expand = Snel bekijken uitbreiden
|
||||||
zen-workspace-shortcut-switch-1 = Schakelen naar werkruimte 1
|
zen-workspace-shortcut-switch-1 = Schakelen naar werkruimte 1
|
||||||
zen-workspace-shortcut-switch-2 = Schakelen naar werkruimte 2
|
zen-workspace-shortcut-switch-2 = Schakelen naar werkruimte 2
|
||||||
zen-workspace-shortcut-switch-3 = Schakelen naar werkruimte 3
|
zen-workspace-shortcut-switch-3 = Schakelen naar werkruimte 3
|
||||||
@@ -276,7 +276,7 @@ zen-split-view-shortcut-grid = Gesplitste weergave raster togglen
|
|||||||
zen-split-view-shortcut-vertical = Gesplitste weergave verticaal togglen
|
zen-split-view-shortcut-vertical = Gesplitste weergave verticaal togglen
|
||||||
zen-split-view-shortcut-horizontal = Gesplitste weergave horizontaal togglen
|
zen-split-view-shortcut-horizontal = Gesplitste weergave horizontaal togglen
|
||||||
zen-split-view-shortcut-unsplit = Gesplitste weergave sluiten
|
zen-split-view-shortcut-unsplit = Gesplitste weergave sluiten
|
||||||
zen-new-empty-split-view-shortcut = New Empty Split View
|
zen-new-empty-split-view-shortcut = Nieuwe lege gesplitste weergave
|
||||||
zen-key-select-tab-1 = Selecteer tabblad #1
|
zen-key-select-tab-1 = Selecteer tabblad #1
|
||||||
zen-key-select-tab-2 = Selecteer tabblad #2
|
zen-key-select-tab-2 = Selecteer tabblad #2
|
||||||
zen-key-select-tab-3 = Selecteer tabblad #3
|
zen-key-select-tab-3 = Selecteer tabblad #3
|
||||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Prestaties togglen
|
|||||||
zen-devtools-toggle-storage-shortcut = Opslag togglen
|
zen-devtools-toggle-storage-shortcut = Opslag togglen
|
||||||
zen-devtools-toggle-dom-shortcut = DOM togglen
|
zen-devtools-toggle-dom-shortcut = DOM togglen
|
||||||
zen-devtools-toggle-accessibility-shortcut = Toegankelijkheid togglen
|
zen-devtools-toggle-accessibility-shortcut = Toegankelijkheid togglen
|
||||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
zen-close-all-unpinned-tabs-shortcut = Alle niet-vastgezette tabbladen sluiten
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# 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 = Zoek { $folder-name }...
|
.placeholder = { $folder-name } zoeken...
|
||||||
zen-folders-panel-rename-folder =
|
zen-folders-panel-rename-folder =
|
||||||
.label = Map hernoemen
|
.label = Map hernoemen
|
||||||
zen-folders-panel-unpack-folder =
|
zen-folders-panel-unpack-folder =
|
||||||
@@ -19,7 +19,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Wijzig pictogram
|
.label = Wijzig pictogram
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload active in this folder
|
.tooltiptext = Actieven ontladen in deze map
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Unload All Tabs
|
.label = Alle tabbladen ontladen
|
||||||
zen-folders-search-no-results = No tabs matching that search 🤔
|
zen-folders-search-no-results = Geen tabbladen die overeenkomen met die zoekopdracht 🤔
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ pictureinpicture-minimize-btn =
|
|||||||
.tooltip = Minimaliseren
|
.tooltip = Minimaliseren
|
||||||
zen-panel-ui-gradient-generator-custom-color = Aangepaste kleur
|
zen-panel-ui-gradient-generator-custom-color = Aangepaste kleur
|
||||||
zen-panel-ui-gradient-generator-saved-message = Verloop is succesvol opgeslagen!
|
zen-panel-ui-gradient-generator-saved-message = Verloop is succesvol opgeslagen!
|
||||||
zen-copy-current-url-confirmation = Copied current URL!
|
zen-copy-current-url-confirmation = Huidige URL gekopieerd!
|
||||||
zen-general-cancel-label =
|
zen-general-cancel-label =
|
||||||
.label = Annuleren
|
.label = Annuleren
|
||||||
zen-general-confirm =
|
zen-general-confirm =
|
||||||
@@ -42,8 +42,8 @@ zen-library-sidebar-workspaces =
|
|||||||
zen-library-sidebar-mods =
|
zen-library-sidebar-mods =
|
||||||
.label = Mods
|
.label = Mods
|
||||||
zen-toggle-compact-mode-button =
|
zen-toggle-compact-mode-button =
|
||||||
.label = Compact Mode
|
.label = Compacte modus
|
||||||
.tooltiptext = Toggle Compact Mode
|
.tooltiptext = Compacte modus togglen
|
||||||
|
|
||||||
# note: Do not translate the "<br/>" tags in the following string
|
# note: Do not translate the "<br/>" tags in the following string
|
||||||
|
|
||||||
@@ -52,45 +52,45 @@ zen-close-label = Sluiten
|
|||||||
zen-singletoolbar-urlbar-placeholder-with-name =
|
zen-singletoolbar-urlbar-placeholder-with-name =
|
||||||
.placeholder = Zoeken…
|
.placeholder = Zoeken…
|
||||||
zen-icons-picker-emoji =
|
zen-icons-picker-emoji =
|
||||||
.label = Emojis
|
.label = Emoji's
|
||||||
zen-icons-picker-svg =
|
zen-icons-picker-svg =
|
||||||
.label = Icons
|
.label = Iconen
|
||||||
urlbar-search-mode-zen_actions = Actions
|
urlbar-search-mode-zen_actions = Acties
|
||||||
zen-site-data-settings = Settings
|
zen-site-data-settings = Instellingen
|
||||||
zen-generic-manage = Manage
|
zen-generic-manage = Beheren
|
||||||
zen-generic-more = More
|
zen-generic-more = Meer
|
||||||
zen-generic-next = Next
|
zen-generic-next = Volgende
|
||||||
# These labels will be used for the site data panel settings
|
# These labels will be used for the site data panel settings
|
||||||
zen-site-data-setting-allow = Allowed
|
zen-site-data-setting-allow = Toegestaan
|
||||||
zen-site-data-setting-block = Blocked
|
zen-site-data-setting-block = Geblokkeerd
|
||||||
zen-site-data-protections-enabled = Enabled
|
zen-site-data-protections-enabled = Ingeschakeld
|
||||||
zen-site-data-protections-disabled = Disabled
|
zen-site-data-protections-disabled = Uitgeschakeld
|
||||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
zen-site-data-setting-cross-site = Cross-site cookie
|
||||||
zen-site-data-security-info-extension =
|
zen-site-data-security-info-extension =
|
||||||
.label = Extension
|
.label = Extensie
|
||||||
zen-site-data-security-info-secure =
|
zen-site-data-security-info-secure =
|
||||||
.label = Secure
|
.label = Beveiligd
|
||||||
zen-site-data-security-info-not-secure =
|
zen-site-data-security-info-not-secure =
|
||||||
.label = Not Secure
|
.label = Niet beveiligd
|
||||||
zen-site-data-manage-addons =
|
zen-site-data-manage-addons =
|
||||||
.label = Manage Extensions
|
.label = Extensies beheren
|
||||||
zen-site-data-get-addons =
|
zen-site-data-get-addons =
|
||||||
.label = Add Extensions
|
.label = Extensies toevoegen
|
||||||
zen-site-data-site-settings =
|
zen-site-data-site-settings =
|
||||||
.label = All Site Settings
|
.label = Alle site-instellingen
|
||||||
zen-site-data-header-share =
|
zen-site-data-header-share =
|
||||||
.tooltiptext = Share This Page
|
.tooltiptext = Deze pagina delen
|
||||||
zen-site-data-header-reader-mode =
|
zen-site-data-header-reader-mode =
|
||||||
.tooltiptext = Enter Reader Mode
|
.tooltiptext = Leesmodus openen
|
||||||
zen-site-data-header-screenshot =
|
zen-site-data-header-screenshot =
|
||||||
.tooltiptext = Take a Screenshot
|
.tooltiptext = Maak een schermafbeelding
|
||||||
zen-site-data-header-bookmark =
|
zen-site-data-header-bookmark =
|
||||||
.tooltiptext = Bookmark This Page
|
.tooltiptext = Bladwijzer toevoegen voor deze pagina
|
||||||
zen-urlbar-copy-url-button =
|
zen-urlbar-copy-url-button =
|
||||||
.tooltiptext = Copy URL
|
.tooltiptext = URL kopiëren
|
||||||
zen-site-data-setting-site-protection = Tracking Protection
|
zen-site-data-setting-site-protection = Tracking bescherming
|
||||||
|
|
||||||
# Section: Feature callouts
|
# Section: Feature callouts
|
||||||
|
|
||||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
zen-site-data-panel-feature-callout-title = Een nieuw thuis voor add-ons, machtigingen en meer
|
||||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
zen-site-data-panel-feature-callout-subtitle = Klik op het icoon om de site-instellingen te beheren, beveiligingsinfo te bekijken, extensies te openen en gemeenschappelijke acties uit te voeren.
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ zen-split-link =
|
|||||||
zen-split-view-modifier-header = Gesplitste weergave
|
zen-split-view-modifier-header = Gesplitste weergave
|
||||||
zen-split-view-modifier-activate-reallocation =
|
zen-split-view-modifier-activate-reallocation =
|
||||||
.label = Herverdeling activeren
|
.label = Herverdeling activeren
|
||||||
zen-split-view-modifier-enabled-toast = Geplitste weergave herschikken staat AAN.
|
zen-split-view-modifier-enabled-toast = Gesplitste weergave herschikken staat AAN.
|
||||||
zen-split-view-modifier-enabled-toast-description = Sleep de tabbladen om de weergave te herschikken. Druk op Esc om af te sluiten.
|
zen-split-view-modifier-enabled-toast-description = Sleep de tabbladen om de weergave te herschikken. Druk op Esc om af te sluiten.
|
||||||
zen-split-view-modifier-disabled-toast = Geplitste weergave herschikken staat UIT.
|
zen-split-view-modifier-disabled-toast = Geplitste weergave herschikken staat UIT.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Beide verbergen
|
.label = Beide verbergen
|
||||||
.accesskey = U
|
.accesskey = U
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New Folder
|
.label = Nieuwe map
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Zijbalk uitklappen
|
.label = Zijbalk uitklappen
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ zen-welcome-title-line1 = Welkom bij
|
|||||||
zen-welcome-title-line2 = een rustiger internet
|
zen-welcome-title-line2 = een rustiger internet
|
||||||
zen-welcome-import-title = Een frisse start, dezelfde bladwijzers
|
zen-welcome-import-title = Een frisse start, dezelfde bladwijzers
|
||||||
zen-welcome-import-description-1 = Je bladwijzers, geschiedenis en wachtwoorden zijn als een spoor van broodkruimels door het internet - laat ze niet achter!
|
zen-welcome-import-description-1 = Je bladwijzers, geschiedenis en wachtwoorden zijn als een spoor van broodkruimels door het internet - laat ze niet achter!
|
||||||
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off..
|
zen-welcome-import-description-2 = Breng ze eenvoudig over vanuit een andere browser en ga verder waar je was gebleven.
|
||||||
zen-welcome-import-button = Nu importeren
|
zen-welcome-import-button = Nu importeren
|
||||||
zen-welcome-set-default-browser = { -brand-short-name } instellen als standaardbrowser
|
zen-welcome-set-default-browser = { -brand-short-name } instellen als standaardbrowser
|
||||||
zen-welcome-dont-set-default-browser = { -brand-short-name } NIET instellen als standaardbrowser
|
zen-welcome-dont-set-default-browser = { -brand-short-name } NIET instellen als standaardbrowser
|
||||||
|
|||||||
@@ -6,20 +6,20 @@ zen-panel-ui-workspaces-text = Ruimtes
|
|||||||
zen-panel-ui-workspaces-create =
|
zen-panel-ui-workspaces-create =
|
||||||
.label = Ruimte aanmaken
|
.label = Ruimte aanmaken
|
||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Create Folder
|
.label = Map aanmaken
|
||||||
zen-panel-ui-new-empty-split =
|
zen-panel-ui-new-empty-split =
|
||||||
.label = New Split
|
.label = Nieuwe splitsing
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = Ruimte verwijderen
|
.label = Ruimte verwijderen
|
||||||
.accesskey = D
|
.accesskey = D
|
||||||
zen-workspaces-panel-change-name =
|
zen-workspaces-panel-change-name =
|
||||||
.label = Naam wijzigen
|
.label = Naam wijzigen
|
||||||
zen-workspaces-panel-change-icon =
|
zen-workspaces-panel-change-icon =
|
||||||
.label = Icon wijzigen
|
.label = Icoon wijzigen
|
||||||
zen-workspaces-panel-context-default-profile =
|
zen-workspaces-panel-context-default-profile =
|
||||||
.label = Profiel instellen
|
.label = Profiel instellen
|
||||||
zen-workspaces-panel-unload =
|
zen-workspaces-panel-unload =
|
||||||
.label = Unload Space
|
.label = Ruimte ontladen
|
||||||
zen-workspaces-how-to-reorder-title = Hoe ruimtes te herschikken
|
zen-workspaces-how-to-reorder-title = Hoe ruimtes te herschikken
|
||||||
zen-workspaces-how-to-reorder-desc = Sleep het ruimte icoon onderaan de zijbalk om ze te herschikken
|
zen-workspaces-how-to-reorder-desc = Sleep het ruimte icoon onderaan de zijbalk om ze te herschikken
|
||||||
zen-workspaces-change-theme =
|
zen-workspaces-change-theme =
|
||||||
@@ -56,10 +56,10 @@ zen-workspace-creation-profile = Profiel
|
|||||||
zen-workspace-creation-header = Maak een ruimte
|
zen-workspace-creation-header = Maak een ruimte
|
||||||
zen-workspace-creation-label = Ruimtes worden gebruikt om je tabbladen en sessies te organiseren.
|
zen-workspace-creation-label = Ruimtes worden gebruikt om je tabbladen en sessies te organiseren.
|
||||||
zen-workspaces-delete-workspace-title = Ruimte verwijderen?
|
zen-workspaces-delete-workspace-title = Ruimte verwijderen?
|
||||||
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
|
zen-workspaces-delete-workspace-body = Weet je zeker dat je { $name } wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Tabbladen gesloten! Gebruik <span>{ $shortcut }</span> om ongedaan te maken.
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Wissen
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Alle niet-vastgezette tabbladen sluiten
|
||||||
|
|||||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Włącz Wydajność
|
|||||||
zen-devtools-toggle-storage-shortcut = Włącz Pamięć
|
zen-devtools-toggle-storage-shortcut = Włącz Pamięć
|
||||||
zen-devtools-toggle-dom-shortcut = Włącz DOM
|
zen-devtools-toggle-dom-shortcut = Włącz DOM
|
||||||
zen-devtools-toggle-accessibility-shortcut = Włącz Dostępność
|
zen-devtools-toggle-accessibility-shortcut = Włącz Dostępność
|
||||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
zen-close-all-unpinned-tabs-shortcut = Zamknij wszystkie nieprzypięte karty
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Usunąć Przestrzeń roboczą?
|
|||||||
zen-workspaces-delete-workspace-body = Czy na pewno chcesz usunąć { $name }? Tej czynności nie można cofnąć.
|
zen-workspaces-delete-workspace-body = Czy na pewno chcesz usunąć { $name }? Tej czynności nie można cofnąć.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Zamknięto karty! Użyj <span>{ $shortcut }</span> aby przywrócić.
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Wyczyść
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Zamknij wszystkie nieprzypięte karty
|
||||||
|
|||||||
@@ -76,7 +76,7 @@ zen-settings-workspaces-enabled =
|
|||||||
zen-settings-workspaces-hide-default-container-indicator =
|
zen-settings-workspaces-hide-default-container-indicator =
|
||||||
.label = Ocultar o indicador padrão do contêiner na barra de guias
|
.label = Ocultar o indicador padrão do contêiner na barra de guias
|
||||||
zen-key-unsaved = Atalho não salvo! Proteja-o clicando na tecla "Escape" após digitá-lo novamente.
|
zen-key-unsaved = Atalho não salvo! Proteja-o clicando na tecla "Escape" após digitá-lo novamente.
|
||||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
zen-key-conflict = Conflitos com { $group } -> { $shortcut }
|
||||||
pane-zen-theme-title = Opções de tema
|
pane-zen-theme-title = Opções de tema
|
||||||
zen-vertical-tabs-title = Layout de barra lateral e abas
|
zen-vertical-tabs-title = Layout de barra lateral e abas
|
||||||
zen-vertical-tabs-header = Abas verticais
|
zen-vertical-tabs-header = Abas verticais
|
||||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Ativar/Desativar Desempenho
|
|||||||
zen-devtools-toggle-storage-shortcut = Ativar/Desativar Armazenamento
|
zen-devtools-toggle-storage-shortcut = Ativar/Desativar Armazenamento
|
||||||
zen-devtools-toggle-dom-shortcut = Ativar/Desativar DOM
|
zen-devtools-toggle-dom-shortcut = Ativar/Desativar DOM
|
||||||
zen-devtools-toggle-accessibility-shortcut = Ativar/Desativar Acessibilidade
|
zen-devtools-toggle-accessibility-shortcut = Ativar/Desativar Acessibilidade
|
||||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
zen-close-all-unpinned-tabs-shortcut = Fechar Todas as Abas Não Fixadas
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ pictureinpicture-minimize-btn =
|
|||||||
.tooltip = Minimizar
|
.tooltip = Minimizar
|
||||||
zen-panel-ui-gradient-generator-custom-color = Cor Personalizada
|
zen-panel-ui-gradient-generator-custom-color = Cor Personalizada
|
||||||
zen-panel-ui-gradient-generator-saved-message = O gradiente foi salvo com sucesso!
|
zen-panel-ui-gradient-generator-saved-message = O gradiente foi salvo com sucesso!
|
||||||
zen-copy-current-url-confirmation = Copied current URL!
|
zen-copy-current-url-confirmation = URL atual copiada!
|
||||||
zen-general-cancel-label =
|
zen-general-cancel-label =
|
||||||
.label = Cancelar
|
.label = Cancelar
|
||||||
zen-general-confirm =
|
zen-general-confirm =
|
||||||
@@ -57,13 +57,13 @@ urlbar-search-mode-zen_actions = Ações
|
|||||||
zen-site-data-settings = Configurações
|
zen-site-data-settings = Configurações
|
||||||
zen-generic-manage = Gerenciar
|
zen-generic-manage = Gerenciar
|
||||||
zen-generic-more = Mais
|
zen-generic-more = Mais
|
||||||
zen-generic-next = Next
|
zen-generic-next = Próximo
|
||||||
# These labels will be used for the site data panel settings
|
# These labels will be used for the site data panel settings
|
||||||
zen-site-data-setting-allow = Permitido
|
zen-site-data-setting-allow = Permitido
|
||||||
zen-site-data-setting-block = Bloqueado
|
zen-site-data-setting-block = Bloqueado
|
||||||
zen-site-data-protections-enabled = Enabled
|
zen-site-data-protections-enabled = Habilitado
|
||||||
zen-site-data-protections-disabled = Disabled
|
zen-site-data-protections-disabled = Desabilitado
|
||||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
zen-site-data-setting-cross-site = Cookie entre Sites
|
||||||
zen-site-data-security-info-extension =
|
zen-site-data-security-info-extension =
|
||||||
.label = Extensão
|
.label = Extensão
|
||||||
zen-site-data-security-info-secure =
|
zen-site-data-security-info-secure =
|
||||||
@@ -77,18 +77,18 @@ zen-site-data-get-addons =
|
|||||||
zen-site-data-site-settings =
|
zen-site-data-site-settings =
|
||||||
.label = Todas as Configurações do Site
|
.label = Todas as Configurações do Site
|
||||||
zen-site-data-header-share =
|
zen-site-data-header-share =
|
||||||
.tooltiptext = Share This Page
|
.tooltiptext = Compartilhar Esta Página
|
||||||
zen-site-data-header-reader-mode =
|
zen-site-data-header-reader-mode =
|
||||||
.tooltiptext = Enter Reader Mode
|
.tooltiptext = Entrar no Modo Leitura
|
||||||
zen-site-data-header-screenshot =
|
zen-site-data-header-screenshot =
|
||||||
.tooltiptext = Take a Screenshot
|
.tooltiptext = Tirar Captura de Tela
|
||||||
zen-site-data-header-bookmark =
|
zen-site-data-header-bookmark =
|
||||||
.tooltiptext = Bookmark This Page
|
.tooltiptext = Marcar Esta Página
|
||||||
zen-urlbar-copy-url-button =
|
zen-urlbar-copy-url-button =
|
||||||
.tooltiptext = Copy URL
|
.tooltiptext = Copiar URL
|
||||||
zen-site-data-setting-site-protection = Tracking Protection
|
zen-site-data-setting-site-protection = Proteção contra Rastreamento
|
||||||
|
|
||||||
# Section: Feature callouts
|
# Section: Feature callouts
|
||||||
|
|
||||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
zen-site-data-panel-feature-callout-title = Um novo lar para extensões, permissões e mais
|
||||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerenciar configurações do site, visualizar informações de segurança, acessar extensões e realizar ações comuns.
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Excluir Espaço?
|
|||||||
zen-workspaces-delete-workspace-body = Tem certeza que deseja excluir { $name }? Esta ação não pode ser desfeita.
|
zen-workspaces-delete-workspace-body = Tem certeza que deseja excluir { $name }? Esta ação não pode ser desfeita.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Abas Fechadas! Use <span>{ $shortcut }</span> para desfazer.
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Limpar
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Fechar todas as abas não fixadas
|
||||||
|
|||||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Alternar Desempenho
|
|||||||
zen-devtools-toggle-storage-shortcut = Alternar Armazenamento
|
zen-devtools-toggle-storage-shortcut = Alternar Armazenamento
|
||||||
zen-devtools-toggle-dom-shortcut = Alternar DOM
|
zen-devtools-toggle-dom-shortcut = Alternar DOM
|
||||||
zen-devtools-toggle-accessibility-shortcut = Alternar Acessibilidade
|
zen-devtools-toggle-accessibility-shortcut = Alternar Acessibilidade
|
||||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
zen-close-all-unpinned-tabs-shortcut = Fechar Todos os Separadores Não Fixados
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Eliminar Espaço de Trabalho?
|
|||||||
zen-workspaces-delete-workspace-body = Tem certeza que deseja eliminar { $name }? Esta ação não pode ser desfeita.
|
zen-workspaces-delete-workspace-body = Tem certeza que deseja eliminar { $name }? Esta ação não pode ser desfeita.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Separadores Fechados! Use <span>{ $shortcut }</span> para voltar atrás.
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Limpar
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Fechar todos os separadores não fixados
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ zen-settings-workspaces-description = Với các không gian làm việc, bạn
|
|||||||
zen-settings-workspaces-enabled =
|
zen-settings-workspaces-enabled =
|
||||||
.label = Bật không gian làm việc
|
.label = Bật không gian làm việc
|
||||||
zen-settings-workspaces-hide-default-container-indicator =
|
zen-settings-workspaces-hide-default-container-indicator =
|
||||||
.label = Ẩn chỉ báo vùng chứa mặc định trên thanh thẻ
|
.label = Ẩn container mặc định trên thanh công cụ
|
||||||
zen-key-unsaved = Lối tắt không an toàn! Xin hãy làm an toàn nó bằng cách ấn nút "Escape/Esc" sau khi nhập lại nó.
|
zen-key-unsaved = Lối tắt không an toàn! Xin hãy làm an toàn nó bằng cách ấn nút "Escape/Esc" sau khi nhập lại nó.
|
||||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
||||||
pane-zen-theme-title = Cài đặt chủ đề
|
pane-zen-theme-title = Cài đặt chủ đề
|
||||||
@@ -145,7 +145,7 @@ zen-urlbar-behavior-label = Hành vi thanh đường dẫn
|
|||||||
zen-urlbar-behavior-normal =
|
zen-urlbar-behavior-normal =
|
||||||
.label = Bình thường
|
.label = Bình thường
|
||||||
zen-urlbar-behavior-floating-on-type =
|
zen-urlbar-behavior-floating-on-type =
|
||||||
.label = Tách ra khi nhập
|
.label = Tách ra khi nhập chữ
|
||||||
zen-urlbar-behavior-float =
|
zen-urlbar-behavior-float =
|
||||||
.label = Luôn luôn tách
|
.label = Luôn luôn tách
|
||||||
pane-zen-CKS-title = Phím tắt
|
pane-zen-CKS-title = Phím tắt
|
||||||
@@ -174,7 +174,7 @@ zenCKSOption-group-zen-split-view = Chế độ xem chia đôi
|
|||||||
zenCKSOption-group-devTools = Công cụ nhà phát triển
|
zenCKSOption-group-devTools = Công cụ nhà phát triển
|
||||||
zen-key-quick-restart = Khởi động lại nhanh
|
zen-key-quick-restart = Khởi động lại nhanh
|
||||||
zen-window-new-shortcut = Cửa sổ mới
|
zen-window-new-shortcut = Cửa sổ mới
|
||||||
zen-tab-new-shortcut = Tab mới
|
zen-tab-new-shortcut = Thẻ mới
|
||||||
zen-key-redo = Hoàn tác
|
zen-key-redo = Hoàn tác
|
||||||
zen-restore-last-closed-tab-shortcut = Khôi phục lại thẻ gần nhất đã đóng
|
zen-restore-last-closed-tab-shortcut = Khôi phục lại thẻ gần nhất đã đóng
|
||||||
zen-location-open-shortcut = Mở đường dẫn
|
zen-location-open-shortcut = Mở đường dẫn
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ zen-folders-panel-change-folder-space =
|
|||||||
zen-folders-panel-change-icon-folder =
|
zen-folders-panel-change-icon-folder =
|
||||||
.label = Đổi biểu tượng thư mục thẻ
|
.label = Đổi biểu tượng thư mục thẻ
|
||||||
zen-folders-unload-all-tooltip =
|
zen-folders-unload-all-tooltip =
|
||||||
.tooltiptext = Unload active in this folder
|
.tooltiptext = Tắt các thẻ trong thư mục
|
||||||
zen-folders-unload-folder =
|
zen-folders-unload-folder =
|
||||||
.label = Tải lại tất cả các thẻ
|
.label = Tải lại tất cả các thẻ
|
||||||
zen-folders-search-no-results = Không có thẻ nào trùng với tìm kiếm 🤔
|
zen-folders-search-no-results = Không có thẻ nào trùng với tìm kiếm 🤔
|
||||||
|
|||||||
@@ -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/.
|
||||||
|
|
||||||
zen-panel-ui-current-profile-text = hồ sơ hiện tại
|
zen-panel-ui-current-profile-text = Hồ sơ hiện tại
|
||||||
unified-extensions-description = Các tiện ích mở rộng được sử dụng để mang thêm tính năng vào { -brand-short-name }.
|
unified-extensions-description = Các tiện ích mở rộng được sử dụng để mang thêm tính năng vào { -brand-short-name }.
|
||||||
tab-context-zen-reset-pinned-tab =
|
tab-context-zen-reset-pinned-tab =
|
||||||
.label = Đặt lại thẻ đã ghim
|
.label = Đặt lại thẻ đã ghim
|
||||||
@@ -14,7 +14,7 @@ tab-context-zen-remove-essential =
|
|||||||
.label = Loại ra khỏi thẻ thường trú
|
.label = Loại ra khỏi thẻ thường trú
|
||||||
.accesskey = R
|
.accesskey = R
|
||||||
tab-context-zen-replace-pinned-url-with-current =
|
tab-context-zen-replace-pinned-url-with-current =
|
||||||
.label = Thay thế đường dường dẫn đã gim với hiện tại
|
.label = Thay thế đường dường dẫn đã ghim với hiện tại
|
||||||
.accesskey = C
|
.accesskey = C
|
||||||
zen-themes-corrupted = Thư mục chủ đề { -brand-short-name } của bạn đã bị hư, chúng đã được trả về thiết kế gốc.
|
zen-themes-corrupted = Thư mục chủ đề { -brand-short-name } của bạn đã bị hư, chúng đã được trả về thiết kế gốc.
|
||||||
zen-shortcuts-corrupted = Tệp phím tắt { -brand-short-name } của bạn đã bị hư. Chúng đã được trẻ về phím tắt gốc.
|
zen-shortcuts-corrupted = Tệp phím tắt { -brand-short-name } của bạn đã bị hư. Chúng đã được trẻ về phím tắt gốc.
|
||||||
@@ -42,8 +42,8 @@ zen-library-sidebar-workspaces =
|
|||||||
zen-library-sidebar-mods =
|
zen-library-sidebar-mods =
|
||||||
.label = Mods
|
.label = Mods
|
||||||
zen-toggle-compact-mode-button =
|
zen-toggle-compact-mode-button =
|
||||||
.label = Compact Mode
|
.label = Chế độ tối giản
|
||||||
.tooltiptext = Toggle Compact Mode
|
.tooltiptext = Bật chế độ tối giản
|
||||||
|
|
||||||
# note: Do not translate the "<br/>" tags in the following string
|
# note: Do not translate the "<br/>" tags in the following string
|
||||||
|
|
||||||
@@ -55,42 +55,42 @@ zen-icons-picker-emoji =
|
|||||||
.label = Biểu cảm
|
.label = Biểu cảm
|
||||||
zen-icons-picker-svg =
|
zen-icons-picker-svg =
|
||||||
.label = Biểu tượng
|
.label = Biểu tượng
|
||||||
urlbar-search-mode-zen_actions = Actions
|
urlbar-search-mode-zen_actions = Hành động
|
||||||
zen-site-data-settings = Settings
|
zen-site-data-settings = Thiết lập
|
||||||
zen-generic-manage = Manage
|
zen-generic-manage = Quản lý
|
||||||
zen-generic-more = More
|
zen-generic-more = Thêm
|
||||||
zen-generic-next = Next
|
zen-generic-next = Tiếp
|
||||||
# These labels will be used for the site data panel settings
|
# These labels will be used for the site data panel settings
|
||||||
zen-site-data-setting-allow = Allowed
|
zen-site-data-setting-allow = Đã cho phép
|
||||||
zen-site-data-setting-block = Blocked
|
zen-site-data-setting-block = Đã chặn
|
||||||
zen-site-data-protections-enabled = Enabled
|
zen-site-data-protections-enabled = Đã tắt
|
||||||
zen-site-data-protections-disabled = Disabled
|
zen-site-data-protections-disabled = Đã bật
|
||||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
zen-site-data-setting-cross-site = Cookie liên trang web
|
||||||
zen-site-data-security-info-extension =
|
zen-site-data-security-info-extension =
|
||||||
.label = Extension
|
.label = Tiện ích mở rộng (Extensions)
|
||||||
zen-site-data-security-info-secure =
|
zen-site-data-security-info-secure =
|
||||||
.label = Secure
|
.label = Đã bảo mật
|
||||||
zen-site-data-security-info-not-secure =
|
zen-site-data-security-info-not-secure =
|
||||||
.label = Not Secure
|
.label = Chưa bảo mật
|
||||||
zen-site-data-manage-addons =
|
zen-site-data-manage-addons =
|
||||||
.label = Manage Extensions
|
.label = Quản lý tiện ích mở rộng (Extensions)
|
||||||
zen-site-data-get-addons =
|
zen-site-data-get-addons =
|
||||||
.label = Add Extensions
|
.label = Thêm tiện ích mở rộng (Extensions)
|
||||||
zen-site-data-site-settings =
|
zen-site-data-site-settings =
|
||||||
.label = All Site Settings
|
.label = Cài đặt tổng quan của trang web
|
||||||
zen-site-data-header-share =
|
zen-site-data-header-share =
|
||||||
.tooltiptext = Share This Page
|
.tooltiptext = Chia sẻ trang
|
||||||
zen-site-data-header-reader-mode =
|
zen-site-data-header-reader-mode =
|
||||||
.tooltiptext = Enter Reader Mode
|
.tooltiptext = Bật chế độ đọc
|
||||||
zen-site-data-header-screenshot =
|
zen-site-data-header-screenshot =
|
||||||
.tooltiptext = Take a Screenshot
|
.tooltiptext = Chụp màn hình
|
||||||
zen-site-data-header-bookmark =
|
zen-site-data-header-bookmark =
|
||||||
.tooltiptext = Bookmark This Page
|
.tooltiptext = Lưu (bookmark) trang này
|
||||||
zen-urlbar-copy-url-button =
|
zen-urlbar-copy-url-button =
|
||||||
.tooltiptext = Copy URL
|
.tooltiptext = Sao chép đường dẫn (URL)
|
||||||
zen-site-data-setting-site-protection = Tracking Protection
|
zen-site-data-setting-site-protection = Phòng chống theo dõi
|
||||||
|
|
||||||
# Section: Feature callouts
|
# Section: Feature callouts
|
||||||
|
|
||||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
zen-site-data-panel-feature-callout-title = Diện mạo mới cho add-ons, quyền truy cập và nhiều hơn nữa
|
||||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
zen-site-data-panel-feature-callout-subtitle = Bấm vào biểu tượng để quản lý các thiết lập của trang web, kiểm tra thông tin bảo mật, quyền truy cập của các tiện ích và thực thiện các tác vụ cơ bản.
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
|||||||
.label = Ẩn cả hai
|
.label = Ẩn cả hai
|
||||||
.accesskey = H
|
.accesskey = H
|
||||||
zen-toolbar-context-new-folder =
|
zen-toolbar-context-new-folder =
|
||||||
.label = New Folder
|
.label = Thư mục mới
|
||||||
.accesskey = N
|
.accesskey = N
|
||||||
sidebar-zen-expand =
|
sidebar-zen-expand =
|
||||||
.label = Mở rộng thanh bên
|
.label = Mở rộng thanh bên
|
||||||
@@ -33,7 +33,7 @@ tabbrowser-unload-tab-button =
|
|||||||
tabbrowser-reset-pin-button =
|
tabbrowser-reset-pin-button =
|
||||||
.tooltiptext =
|
.tooltiptext =
|
||||||
{ $tabCount ->
|
{ $tabCount ->
|
||||||
[one] Tải lại và gim thẻ
|
[one] Tải lại và ghim thẻ
|
||||||
*[other] Tải lại và gim { $tabCount } thẻ
|
*[other] Tải lại và ghim { $tabCount } thẻ
|
||||||
}
|
}
|
||||||
tab-reset-pin-label = Quay trở lại đường dẫn đã ghim
|
tab-reset-pin-label = Quay trở lại đường dẫn đã ghim
|
||||||
|
|||||||
@@ -14,13 +14,13 @@ zen-welcome-initial-essentials-title = Những thẻ quan trọng của bạn, l
|
|||||||
zen-welcome-initial-essentials-description-1 = Cho dù bạn có mở bao nhiêu, những thẻ quan trọng nhất của bạn luôn dễ dàng truy cập, luôn luôn trong tầm tay.
|
zen-welcome-initial-essentials-description-1 = Cho dù bạn có mở bao nhiêu, những thẻ quan trọng nhất của bạn luôn dễ dàng truy cập, luôn luôn trong tầm tay.
|
||||||
zen-welcome-initial-essentials-description-2 = Thẻ thường trú sẽ luôn luôn ở đó, trên tất cả không gian làm việc của bạn.
|
zen-welcome-initial-essentials-description-2 = Thẻ thường trú sẽ luôn luôn ở đó, trên tất cả không gian làm việc của bạn.
|
||||||
zen-welcome-workspace-colors-title = Không gian làm việc của bạn, màu sắc của bạn
|
zen-welcome-workspace-colors-title = Không gian làm việc của bạn, màu sắc của bạn
|
||||||
zen-welcome-workspace-colors-description = Cá nhân của trình duyệt của bạn, cho mỗi không gian làm việc một màu sắc đặc.
|
zen-welcome-workspace-colors-description = Cá nhân hóa trình duyệt của bạn, cho mỗi không gian làm việc một màu sắc đặc trưng.
|
||||||
zen-welcome-start-browsing-title =
|
zen-welcome-start-browsing-title =
|
||||||
Sẵn sàng chưa?<br/>
|
Sẵn sàng chưa?<br/>
|
||||||
Bắt đầu thôi nào!
|
Bắt đầu thôi nào!
|
||||||
zen-welcome-start-browsing-description-1 = Mọi thứ đã sẵn sàng. Nhấn nút bên dưới để bắt đầu lướt web với { -brand-short-name }.
|
zen-welcome-start-browsing-description-1 = Mọi thứ đã sẵn sàng. Nhấn nút bên dưới để bắt đầu lướt web với { -brand-short-name }.
|
||||||
zen-welcome-start-browsing = Bắt đầu nào!
|
zen-welcome-start-browsing = Bắt đầu nào!
|
||||||
zen-welcome-default-search-title = Your Default Search Engine
|
zen-welcome-default-search-title = Công cụ tìm kiếm mặc định của bạn là?
|
||||||
zen-welcome-default-search-description = Hãy chọn công cụ tìm kiếm mặc đinh. Bạn luôn có thể đổi nó sau này!
|
zen-welcome-default-search-description = Hãy chọn công cụ tìm kiếm mặc đinh. Bạn luôn có thể đổi nó sau này!
|
||||||
zen-welcome-skip-button = Bỏ qua
|
zen-welcome-skip-button = Bỏ qua
|
||||||
zen-welcome-finished = Trình duyệt của bạn đã được thiết lập thành công!
|
zen-welcome-finished = Trình duyệt của bạn đã được thiết lập thành công!
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ zen-panel-ui-workspaces-create =
|
|||||||
zen-panel-ui-folder-create =
|
zen-panel-ui-folder-create =
|
||||||
.label = Tạo thư mục thẻ
|
.label = Tạo thư mục thẻ
|
||||||
zen-panel-ui-new-empty-split =
|
zen-panel-ui-new-empty-split =
|
||||||
.label = New Split
|
.label = Chia không gian
|
||||||
zen-workspaces-panel-context-delete =
|
zen-workspaces-panel-context-delete =
|
||||||
.label = Xóa không gian làm việc
|
.label = Xóa không gian làm việc
|
||||||
.accesskey = D
|
.accesskey = D
|
||||||
@@ -19,7 +19,7 @@ zen-workspaces-panel-change-icon =
|
|||||||
zen-workspaces-panel-context-default-profile =
|
zen-workspaces-panel-context-default-profile =
|
||||||
.label = Cài đặt hồ sơ
|
.label = Cài đặt hồ sơ
|
||||||
zen-workspaces-panel-unload =
|
zen-workspaces-panel-unload =
|
||||||
.label = Unload Space
|
.label = Tắt tất cả các trang web trong không gian làm việc
|
||||||
zen-workspaces-how-to-reorder-title = Cách sắp xếp thứ tự của các không gian làm việc
|
zen-workspaces-how-to-reorder-title = Cách sắp xếp thứ tự của các không gian làm việc
|
||||||
zen-workspaces-how-to-reorder-desc = Kéo và thả các biểu tượng của không gian làm việc ở dưới thanh bên để sắp xếp thứ tự của chúng
|
zen-workspaces-how-to-reorder-desc = Kéo và thả các biểu tượng của không gian làm việc ở dưới thanh bên để sắp xếp thứ tự của chúng
|
||||||
zen-workspaces-change-theme =
|
zen-workspaces-change-theme =
|
||||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Delete Workspace?
|
|||||||
zen-workspaces-delete-workspace-body = Bạn có chắc là bạn muốn xóa { $name }? Thao tác này sẽ không được hoàn lại.
|
zen-workspaces-delete-workspace-body = Bạn có chắc là bạn muốn xóa { $name }? Thao tác này sẽ không được hoàn lại.
|
||||||
# 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 = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
zen-workspaces-close-all-unpinned-tabs-toast = Thẻ đã đóng! Bấm <span>{ $shortcut }</span> để hoàn .
|
||||||
zen-workspaces-close-all-unpinned-tabs-title =
|
zen-workspaces-close-all-unpinned-tabs-title =
|
||||||
.label = Clear
|
.label = Dọn sạch
|
||||||
.tooltiptext = Close all unpinned tabs
|
.tooltiptext = Tắt tất cả các thẻ không ghim
|
||||||
|
|||||||
@@ -34,3 +34,6 @@
|
|||||||
|
|
||||||
- name: zen.tabs.open-pinned-in-new-tab
|
- name: zen.tabs.open-pinned-in-new-tab
|
||||||
value: true
|
value: true
|
||||||
|
|
||||||
|
- name: zen.tabs.close-on-back-with-no-history
|
||||||
|
value: true
|
||||||
|
|||||||
3
src/.hgignore
Normal file
3
src/.hgignore
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# 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/.
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/Cargo.lock b/Cargo.lock
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
index c079ef11880c5338c4498a0e5b3eb4cf4bfb6e02..ecd06b05381be740197c07c8cf0743dc882727f5 100644
|
index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644
|
||||||
--- a/Cargo.lock
|
--- a/Cargo.lock
|
||||||
+++ b/Cargo.lock
|
+++ b/Cargo.lock
|
||||||
@@ -4069,8 +4069,6 @@ dependencies = [
|
@@ -4167,8 +4167,6 @@ dependencies = [
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mime_guess"
|
name = "mime_guess"
|
||||||
version = "2.0.4"
|
version = "2.0.4"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/Cargo.toml b/Cargo.toml
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
index 2331ff5733d39e26c0a16301cb83d46ca970f632..777dbd5fb8546466e4a349772ccba254c7ffd691 100644
|
index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644
|
||||||
--- a/Cargo.toml
|
--- a/Cargo.toml
|
||||||
+++ b/Cargo.toml
|
+++ b/Cargo.toml
|
||||||
@@ -224,6 +224,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||||
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
||||||
rure = { path = "third_party/rust/rure" }
|
rure = { path = "third_party/rust/rure" }
|
||||||
|
|
||||||
|
|||||||
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
diff --git a/browser/actors/EncryptedMediaParent.sys.mjs b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
index 9d3d3db9761cf5b2fde1f70992e82b1733241863..3dc64dc395d5237bf2c290cb8588cf467fb8729a 100644
|
||||||
|
--- a/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
+++ b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||||
|
@@ -200,6 +200,7 @@ export class EncryptedMediaParent extends JSWindowActorParent {
|
||||||
|
"drmContentPlaying",
|
||||||
|
aBrowser
|
||||||
|
)
|
||||||
|
+ || true // zen: We have some issues with this currently, so never show it
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||||
index 80fd2177c7112c958ff51bbf7a18ebea39e50fbf..24f62810901dc558e25ee874bd49736bd64fd358 100644
|
index 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 100644
|
||||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
||||||
index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc31266b08 100644
|
index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2bd5a757d 100644
|
||||||
--- a/browser/base/content/browser-addons.js
|
--- a/browser/base/content/browser-addons.js
|
||||||
+++ b/browser/base/content/browser-addons.js
|
+++ b/browser/base/content/browser-addons.js
|
||||||
@@ -1071,7 +1071,7 @@ var gXPInstallObserver = {
|
@@ -1069,7 +1069,7 @@ var gXPInstallObserver = {
|
||||||
persistent: true,
|
persistent: true,
|
||||||
hideClose: true,
|
hideClose: true,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
@@ -11,7 +11,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1280,7 +1280,7 @@ var gXPInstallObserver = {
|
@@ -1279,7 +1279,7 @@ var gXPInstallObserver = {
|
||||||
hideClose: true,
|
hideClose: true,
|
||||||
timeout: Date.now() + 30000,
|
timeout: Date.now() + 30000,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
@@ -20,7 +20,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2212,7 +2212,7 @@ var gUnifiedExtensions = {
|
@@ -2211,7 +2211,7 @@ var gUnifiedExtensions = {
|
||||||
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
||||||
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
||||||
getPopupAnchorID(aBrowser, aWindow) {
|
getPopupAnchorID(aBrowser, aWindow) {
|
||||||
@@ -29,7 +29,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
const attr = anchorID + "popupnotificationanchor";
|
const attr = anchorID + "popupnotificationanchor";
|
||||||
|
|
||||||
if (!aBrowser[attr]) {
|
if (!aBrowser[attr]) {
|
||||||
@@ -2223,7 +2223,7 @@ var gUnifiedExtensions = {
|
@@ -2222,7 +2222,7 @@ var gUnifiedExtensions = {
|
||||||
anchorID
|
anchorID
|
||||||
// Anchor on the toolbar icon to position the popup right below the
|
// Anchor on the toolbar icon to position the popup right below the
|
||||||
// button.
|
// button.
|
||||||
@@ -38,7 +38,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
}
|
}
|
||||||
|
|
||||||
return anchorID;
|
return anchorID;
|
||||||
@@ -2516,11 +2516,7 @@ var gUnifiedExtensions = {
|
@@ -2646,11 +2646,7 @@ var gUnifiedExtensions = {
|
||||||
// Lazy load the unified-extensions-panel panel the first time we need to
|
// Lazy load the unified-extensions-panel panel the first time we need to
|
||||||
// display it.
|
// display it.
|
||||||
if (!this._panel) {
|
if (!this._panel) {
|
||||||
@@ -51,16 +51,15 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
let customizationArea = this._panel.querySelector(
|
let customizationArea = this._panel.querySelector(
|
||||||
"#unified-extensions-area"
|
"#unified-extensions-area"
|
||||||
);
|
);
|
||||||
@@ -2570,7 +2566,7 @@ var gUnifiedExtensions = {
|
@@ -2703,6 +2699,7 @@ var gUnifiedExtensions = {
|
||||||
|
// and no alternative content is available for display in the panel.
|
||||||
// The button should directly open `about:addons` when the user does not
|
const policies = this.getActivePolicies();
|
||||||
// have any active extensions listed in the unified extensions panel.
|
|
||||||
- if (!this.hasExtensionsInPanel()) {
|
|
||||||
+ if (!this.hasExtensionsInPanel() && false) {
|
|
||||||
let viewID;
|
|
||||||
if (
|
if (
|
||||||
Services.prefs.getBoolPref("extensions.getAddons.showPane", true) &&
|
+ false &&
|
||||||
@@ -2615,7 +2611,7 @@ var gUnifiedExtensions = {
|
policies.length &&
|
||||||
|
!this.hasExtensionsInPanel(policies) &&
|
||||||
|
!this.isPrivateWindowMissingExtensionsWithoutPBMAccess() &&
|
||||||
|
@@ -2743,7 +2740,7 @@ var gUnifiedExtensions = {
|
||||||
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
||||||
this.ensureButtonShownBeforeAttachingPanel(panel);
|
this.ensureButtonShownBeforeAttachingPanel(panel);
|
||||||
PanelMultiView.openPopup(panel, this._button, {
|
PanelMultiView.openPopup(panel, this._button, {
|
||||||
@@ -69,7 +68,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..ed3062bab0b80db3b456cdad03e7efcc
|
|||||||
triggerEvent: aEvent,
|
triggerEvent: aEvent,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -2802,18 +2798,20 @@ var gUnifiedExtensions = {
|
@@ -2930,18 +2927,20 @@ var gUnifiedExtensions = {
|
||||||
this._maybeMoveWidgetNodeBack(widgetId);
|
this._maybeMoveWidgetNodeBack(widgetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,19 @@
|
|||||||
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
|
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
|
||||||
index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4954b8b94 100644
|
index 939ca497b882b3f4200141ba1b6764fb5c846f45..779cba5ff3df856a246321a36caa3725c054a314 100644
|
||||||
--- a/browser/base/content/browser-commands.js
|
--- a/browser/base/content/browser-commands.js
|
||||||
+++ b/browser/base/content/browser-commands.js
|
+++ b/browser/base/content/browser-commands.js
|
||||||
@@ -317,6 +317,10 @@ var BrowserCommands = {
|
@@ -14,6 +14,10 @@ var BrowserCommands = {
|
||||||
|
const where = BrowserUtils.whereToOpenLink(aEvent, false, true);
|
||||||
|
|
||||||
|
if (where == "current") {
|
||||||
|
+ if (!gBrowser.webNavigation.canGoBack && gZenCommonActions.shouldCloseTabOnBack()) {
|
||||||
|
+ gBrowser.removeTab(gBrowser.selectedTab);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
try {
|
||||||
|
gBrowser.goBack();
|
||||||
|
} catch (ex) {}
|
||||||
|
@@ -315,6 +319,10 @@ var BrowserCommands = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -13,7 +24,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
|||||||
// A notification intended to be useful for modular peformance tracking
|
// A notification intended to be useful for modular peformance tracking
|
||||||
// starting as close as is reasonably possible to the time when the user
|
// starting as close as is reasonably possible to the time when the user
|
||||||
// expressed the intent to open a new tab. Since there are a lot of
|
// expressed the intent to open a new tab. Since there are a lot of
|
||||||
@@ -401,6 +405,11 @@ var BrowserCommands = {
|
@@ -399,6 +407,11 @@ var BrowserCommands = {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -25,7 +36,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
|||||||
// Keyboard shortcuts that would close a tab that is pinned select the first
|
// Keyboard shortcuts that would close a tab that is pinned select the first
|
||||||
// unpinned tab instead.
|
// unpinned tab instead.
|
||||||
if (
|
if (
|
||||||
@@ -408,8 +417,8 @@ var BrowserCommands = {
|
@@ -406,8 +419,8 @@ var BrowserCommands = {
|
||||||
(event.ctrlKey || event.metaKey || event.altKey) &&
|
(event.ctrlKey || event.metaKey || event.altKey) &&
|
||||||
gBrowser.selectedTab.pinned
|
gBrowser.selectedTab.pinned
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
|
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||||
index b41449d4c4bc373a4c9cf449c0bb370bfdbc20d6..f1166929397dd39b7f44bd9cb0d62a45d67f0e1d 100644
|
index bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 100644
|
||||||
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
|
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||||
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
|
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||||
@@ -427,10 +427,10 @@ var FullScreen = {
|
@@ -424,10 +424,10 @@ var FullScreen = {
|
||||||
gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0);
|
gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0);
|
||||||
|
|
||||||
let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : "";
|
let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : "";
|
||||||
|
|||||||
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/browser/base/content/browser-gestureSupport.js b/browser/base/content/browser-gestureSupport.js
|
||||||
|
index a28d54bf72c0e6495b9586f220d1859aac794936..66154668b9f85ffbaacea1e8351370659260227b 100644
|
||||||
|
--- a/browser/base/content/browser-gestureSupport.js
|
||||||
|
+++ b/browser/base/content/browser-gestureSupport.js
|
||||||
|
@@ -832,7 +832,7 @@ var gHistorySwipeAnimation = {
|
||||||
|
* @return true if there is a previous page in history, false otherwise.
|
||||||
|
*/
|
||||||
|
canGoBack: function HSA_canGoBack() {
|
||||||
|
- return gBrowser.webNavigation.canGoBack;
|
||||||
|
+ return gBrowser.webNavigation.canGoBack || gZenCommonActions.shouldCloseTabOnBack();
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||||
index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64225e42b0 100644
|
index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd61ee1828 100644
|
||||||
--- a/browser/base/content/browser.js
|
--- a/browser/base/content/browser.js
|
||||||
+++ b/browser/base/content/browser.js
|
+++ b/browser/base/content/browser.js
|
||||||
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||||
@@ -10,7 +10,21 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
DevToolsSocketStatus:
|
DevToolsSocketStatus:
|
||||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||||
@@ -2293,6 +2294,8 @@ var XULBrowserWindow = {
|
@@ -822,7 +823,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
|
||||||
|
|
||||||
|
var backDisabled = backCommand.hasAttribute("disabled");
|
||||||
|
var forwardDisabled = forwardCommand.hasAttribute("disabled");
|
||||||
|
- if (backDisabled == aWebNavigation.canGoBack) {
|
||||||
|
+ var canGoBack = aWebNavigation.canGoBack;
|
||||||
|
+ if (!canGoBack) {
|
||||||
|
+ canGoBack = gZenCommonActions.shouldCloseTabOnBack();
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (backDisabled == canGoBack) {
|
||||||
|
if (backDisabled) {
|
||||||
|
backCommand.removeAttribute("disabled");
|
||||||
|
} else {
|
||||||
|
@@ -2298,6 +2304,8 @@ var XULBrowserWindow = {
|
||||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
@@ -19,7 +33,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||||
|
|
||||||
if (!gMultiProcessBrowser) {
|
if (!gMultiProcessBrowser) {
|
||||||
@@ -3795,7 +3798,7 @@ function warnAboutClosingWindow() {
|
@@ -3809,7 +3817,7 @@ function warnAboutClosingWindow() {
|
||||||
|
|
||||||
if (!isPBWindow && !toolbar.visible) {
|
if (!isPBWindow && !toolbar.visible) {
|
||||||
return gBrowser.warnAboutClosingTabs(
|
return gBrowser.warnAboutClosingTabs(
|
||||||
@@ -28,7 +42,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -3835,7 +3838,7 @@ function warnAboutClosingWindow() {
|
@@ -3849,7 +3857,7 @@ function warnAboutClosingWindow() {
|
||||||
return (
|
return (
|
||||||
isPBWindow ||
|
isPBWindow ||
|
||||||
gBrowser.warnAboutClosingTabs(
|
gBrowser.warnAboutClosingTabs(
|
||||||
@@ -37,7 +51,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -3860,7 +3863,7 @@ function warnAboutClosingWindow() {
|
@@ -3874,7 +3882,7 @@ function warnAboutClosingWindow() {
|
||||||
AppConstants.platform != "macosx" ||
|
AppConstants.platform != "macosx" ||
|
||||||
isPBWindow ||
|
isPBWindow ||
|
||||||
gBrowser.warnAboutClosingTabs(
|
gBrowser.warnAboutClosingTabs(
|
||||||
@@ -46,7 +60,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
|||||||
gBrowser.closingTabsEnum.ALL
|
gBrowser.closingTabsEnum.ALL
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
@@ -4782,6 +4785,9 @@ var ConfirmationHint = {
|
@@ -4796,6 +4804,9 @@ var ConfirmationHint = {
|
||||||
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
|
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
|
||||||
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
|
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
|
||||||
document.l10n.setAttributes(this._message, messageId, options.l10nArgs);
|
document.l10n.setAttributes(this._message, messageId, options.l10nArgs);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
|
diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
|
||||||
index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93fa2a4d56 100644
|
index 3bd7b8f6025a7df4ce5cfb66916125bce9ef3991..c408ef829b7540aec72b2307e5d4bfa34109d6cd 100644
|
||||||
--- a/browser/base/content/browser-places.js
|
--- a/browser/base/content/browser-places.js
|
||||||
+++ b/browser/base/content/browser-places.js
|
+++ b/browser/base/content/browser-places.js
|
||||||
@@ -252,6 +252,8 @@ var StarUI = {
|
@@ -249,6 +249,8 @@ var StarUI = {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93
|
|||||||
let onPanelReady = fn => {
|
let onPanelReady = fn => {
|
||||||
let target = this.panel;
|
let target = this.panel;
|
||||||
if (target.parentNode) {
|
if (target.parentNode) {
|
||||||
@@ -303,6 +305,21 @@ var StarUI = {
|
@@ -300,6 +302,21 @@ var StarUI = {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..4db983dad9bea10c17b5ac166ba58b93
|
|||||||
removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() {
|
removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() {
|
||||||
this._removeBookmarksOnPopupHidden = true;
|
this._removeBookmarksOnPopupHidden = true;
|
||||||
this.panel.hidePopup();
|
this.panel.hidePopup();
|
||||||
@@ -1800,6 +1817,7 @@ var BookmarkingUI = {
|
@@ -1797,6 +1814,7 @@ var BookmarkingUI = {
|
||||||
document.getElementById("context-bookmarkpage"),
|
document.getElementById("context-bookmarkpage"),
|
||||||
PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"),
|
PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"),
|
||||||
document.getElementById("pageAction-panel-bookmark"),
|
document.getElementById("pageAction-panel-bookmark"),
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
|
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
|
||||||
index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af5fbb5fb2 100644
|
index 8369e546866aa313e62f808acb8d51afa8da4f9b..7a4b20dd5922425cebfac542893a52cd68a26449 100644
|
||||||
--- a/browser/base/content/browser-siteIdentity.js
|
--- a/browser/base/content/browser-siteIdentity.js
|
||||||
+++ b/browser/base/content/browser-siteIdentity.js
|
+++ b/browser/base/content/browser-siteIdentity.js
|
||||||
@@ -453,11 +453,6 @@ var gIdentityHandler = {
|
@@ -451,11 +451,6 @@ var gIdentityHandler = {
|
||||||
// avoid a pretty ugly transition. Also hide it even
|
// avoid a pretty ugly transition. Also hide it even
|
||||||
// if the update resulted in no site data, to keep the
|
// if the update resulted in no site data, to keep the
|
||||||
// illusion that clicking the button had an effect.
|
// illusion that clicking the button had an effect.
|
||||||
@@ -14,7 +14,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
|||||||
|
|
||||||
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
||||||
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
||||||
@@ -834,7 +829,7 @@ var gIdentityHandler = {
|
@@ -832,7 +827,7 @@ var gIdentityHandler = {
|
||||||
// This is a secure internal Firefox page.
|
// This is a secure internal Firefox page.
|
||||||
this._identityBox.className = "chromeUI";
|
this._identityBox.className = "chromeUI";
|
||||||
let brandBundle = document.getElementById("bundle_brand");
|
let brandBundle = document.getElementById("bundle_brand");
|
||||||
@@ -23,7 +23,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
|||||||
} else if (this._pageExtensionPolicy) {
|
} else if (this._pageExtensionPolicy) {
|
||||||
// This is a WebExtension page.
|
// This is a WebExtension page.
|
||||||
this._identityBox.className = "extensionPage";
|
this._identityBox.className = "extensionPage";
|
||||||
@@ -1163,6 +1158,12 @@ var gIdentityHandler = {
|
@@ -1161,6 +1156,12 @@ var gIdentityHandler = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||||
index ffddea280e2edffa2531b4b129489c2be0e2c3d2..f03db9e2db0dec06f997740337f28e76a08a3bdb 100644
|
index 246d23a77960d25f78b163429a3ed28c7180ccd7..1c26485d8464413689767c8a38aadbcadcecae4d 100644
|
||||||
--- a/browser/base/content/browser.xhtml
|
--- a/browser/base/content/browser.xhtml
|
||||||
+++ b/browser/base/content/browser.xhtml
|
+++ b/browser/base/content/browser.xhtml
|
||||||
@@ -19,6 +19,7 @@
|
@@ -19,6 +19,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
||||||
index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadcb66d1e16 100644
|
index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 100644
|
||||||
--- a/browser/base/content/main-popupset.inc.xhtml
|
--- a/browser/base/content/main-popupset.inc.xhtml
|
||||||
+++ b/browser/base/content/main-popupset.inc.xhtml
|
+++ b/browser/base/content/main-popupset.inc.xhtml
|
||||||
@@ -208,6 +208,10 @@
|
@@ -208,6 +208,10 @@
|
||||||
@@ -21,7 +21,7 @@ index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadc
|
|||||||
</panel>
|
</panel>
|
||||||
</html:template>
|
</html:template>
|
||||||
|
|
||||||
@@ -615,6 +620,8 @@
|
@@ -628,6 +633,8 @@
|
||||||
|
|
||||||
#include popup-notifications.inc.xhtml
|
#include popup-notifications.inc.xhtml
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
|
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
|
||||||
index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e455356b4a 100644
|
index 7b776b15d52367a008ce6bf53dcfcbbe007b7453..d9a3404905b73db7c8f202ab166d5f3c625351f6 100644
|
||||||
--- a/browser/base/content/navigator-toolbox.js
|
--- a/browser/base/content/navigator-toolbox.js
|
||||||
+++ b/browser/base/content/navigator-toolbox.js
|
+++ b/browser/base/content/navigator-toolbox.js
|
||||||
@@ -8,7 +8,7 @@
|
@@ -6,7 +6,7 @@
|
||||||
document.addEventListener(
|
document.addEventListener(
|
||||||
"DOMContentLoaded",
|
"DOMContentLoaded",
|
||||||
() => {
|
() => {
|
||||||
@@ -11,7 +11,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
const widgetOverflow = document.getElementById("widget-overflow");
|
const widgetOverflow = document.getElementById("widget-overflow");
|
||||||
|
|
||||||
function onPopupShowing(event) {
|
function onPopupShowing(event) {
|
||||||
@@ -187,6 +187,7 @@ document.addEventListener(
|
@@ -185,6 +185,7 @@ document.addEventListener(
|
||||||
#reload-button ,
|
#reload-button ,
|
||||||
#urlbar-go-button,
|
#urlbar-go-button,
|
||||||
#reader-mode-button,
|
#reader-mode-button,
|
||||||
@@ -19,7 +19,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
#picture-in-picture-button,
|
#picture-in-picture-button,
|
||||||
#urlbar-zoom-button,
|
#urlbar-zoom-button,
|
||||||
#star-button-box,
|
#star-button-box,
|
||||||
@@ -208,6 +209,7 @@ document.addEventListener(
|
@@ -206,6 +207,7 @@ document.addEventListener(
|
||||||
case "vertical-tabs-newtab-button":
|
case "vertical-tabs-newtab-button":
|
||||||
case "tabs-newtab-button":
|
case "tabs-newtab-button":
|
||||||
case "new-tab-button":
|
case "new-tab-button":
|
||||||
@@ -27,7 +27,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
gBrowser.handleNewTabMiddleClick(element, event);
|
gBrowser.handleNewTabMiddleClick(element, event);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -317,7 +319,7 @@ document.addEventListener(
|
@@ -315,7 +317,7 @@ document.addEventListener(
|
||||||
#pageActionButton,
|
#pageActionButton,
|
||||||
#downloads-button,
|
#downloads-button,
|
||||||
#fxa-toolbar-menu-button,
|
#fxa-toolbar-menu-button,
|
||||||
@@ -36,7 +36,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..d28116ffacb0ddb6fdb421db5d6498e4
|
|||||||
#library-button
|
#library-button
|
||||||
`);
|
`);
|
||||||
if (!element) {
|
if (!element) {
|
||||||
@@ -396,7 +398,7 @@ document.addEventListener(
|
@@ -394,7 +396,7 @@ document.addEventListener(
|
||||||
gSync.toggleAccountPanel(element, event);
|
gSync.toggleAccountPanel(element, event);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||||
index b4fe996f9685a085c14324a35a1d51e2fed569b7..c83d5e9bf92f8f2e3d96b121ba3b758dd124393b 100644
|
index 259b440375c7e84d373a134fea20cdbc1c1bae4b..a9ce22a2391b4ec0bf82ceedd35f4c9d9626bb28 100644
|
||||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||||
@@ -1105,6 +1105,8 @@ export class nsContextMenu {
|
@@ -1104,6 +1104,8 @@ export class nsContextMenu {
|
||||||
!this.isSecureAboutPage()
|
!this.isSecureAboutPage()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,7 @@
|
|||||||
<panel id="zen-unified-site-data-panel"
|
<panel id="zen-unified-site-data-panel"
|
||||||
role="group"
|
role="group"
|
||||||
type="arrow"
|
type="arrow"
|
||||||
noautofocus="true"
|
noautofocus="true">
|
||||||
position="bottomright topright">
|
|
||||||
<panelmultiview mainViewId="unified-extensions-view">
|
<panelmultiview mainViewId="unified-extensions-view">
|
||||||
# We'll keep the view with this name/id in order to prevent
|
# We'll keep the view with this name/id in order to prevent
|
||||||
# any sort of future issues we may have if firefox decides
|
# any sort of future issues we may have if firefox decides
|
||||||
@@ -55,6 +54,17 @@
|
|||||||
<toolbarbutton id="zen-site-data-new-addon-button"
|
<toolbarbutton id="zen-site-data-new-addon-button"
|
||||||
class="subviewbutton toolbarbutton-1" />
|
class="subviewbutton toolbarbutton-1" />
|
||||||
</vbox>
|
</vbox>
|
||||||
|
|
||||||
|
# We don't really use this, but again, to keep firefox happy
|
||||||
|
# in case they decide to change something for this specific
|
||||||
|
# empty state, we keep it on the DOM
|
||||||
|
# https://searchfox.org/firefox-main/rev/e613f4df351a21871cfeadf7d5b4043ffad157b1/browser/components/customizableui/content/panelUI.inc.xhtml#101-106
|
||||||
|
<vbox id="unified-extensions-empty-state" context="">
|
||||||
|
<!-- Shown when no extensions are listed. -->
|
||||||
|
<html:img src="chrome://browser/skin/addons/extensions-panel-empty-illustration.svg" loading="lazy" />
|
||||||
|
<html:h2 class="subview-subheader" />
|
||||||
|
<description />
|
||||||
|
</vbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
|
||||||
# Keep this button on the DOM even though we hide it for ever,
|
# Keep this button on the DOM even though we hide it for ever,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||||
index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b097351d60 100644
|
index f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 100644
|
||||||
--- a/browser/components/BrowserGlue.sys.mjs
|
--- a/browser/components/BrowserGlue.sys.mjs
|
||||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||||
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||||
@@ -10,7 +10,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
|||||||
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||||
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||||
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
|
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
|
||||||
@@ -1458,7 +1459,7 @@ BrowserGlue.prototype = {
|
@@ -1452,7 +1453,7 @@ BrowserGlue.prototype = {
|
||||||
windowcount++;
|
windowcount++;
|
||||||
let tabbrowser = win.gBrowser;
|
let tabbrowser = win.gBrowser;
|
||||||
if (tabbrowser) {
|
if (tabbrowser) {
|
||||||
@@ -19,7 +19,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1623,6 +1624,8 @@ BrowserGlue.prototype = {
|
@@ -1617,6 +1618,8 @@ BrowserGlue.prototype = {
|
||||||
} else if (profileDataVersion < APP_DATA_VERSION) {
|
} else if (profileDataVersion < APP_DATA_VERSION) {
|
||||||
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
index 2a2c5a6fe903694abbac0be86c7b3c8adc1d0275..5571b827198474a2635a9bd968adbc8c96dbc353 100644
|
index 4ea9c9e88a1831dad7e42ebd8d0dd507102e8280..316aa626e525f05caac7f315e0ea7ae9d822b6af 100644
|
||||||
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||||
@@ -776,6 +776,7 @@ export class FeatureCallout {
|
@@ -777,6 +777,7 @@ export class FeatureCallout {
|
||||||
) {
|
) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,13 @@
|
|||||||
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
index 852cf2eee9113753fa0797be6dec80dcb9207703..93bb093e679320033a37b2af14e8e0e3c7621f94 100644
|
index 95621ae202378fb1ebceca5623a98b790b9eb5ff..fe6901f53f863bca20a514df0490499402d669ae 100644
|
||||||
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||||
@@ -242,8 +242,8 @@ export var ToolbarContextMenu = {
|
@@ -244,7 +244,7 @@ export var ToolbarContextMenu = {
|
||||||
// Show/hide sidebar and vertical tabs menu items
|
|
||||||
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
|
|
||||||
let showSidebarActions =
|
let showSidebarActions =
|
||||||
- ["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||||
- toolbarItem?.localName == "toolbarspring";
|
toolbarItem?.localName == "toolbarspring" ||
|
||||||
+ (["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
- isTitlebarSpacer;
|
||||||
+ toolbarItem?.localName == "toolbarspring") && false;
|
+ isTitlebarSpacer && false;
|
||||||
|
|
||||||
let toggleVerticalTabsItem = document.getElementById(
|
let toggleVerticalTabsItem = document.getElementById(
|
||||||
"toolbar-context-toggle-vertical-tabs"
|
"toolbar-context-toggle-vertical-tabs"
|
||||||
);
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
|
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||||
index 85acb96a3deefed708ea768b2f163e7fd6480b97..bb3aed53758da7dafcfed4492acb0cbf2b80cd2f 100644
|
index 6cb22be6526b17d952a90fd414c49a31e9afde7a..84f8156e88027a79a40f14c77c83d6a2d19c8a72 100644
|
||||||
--- a/browser/components/customizableui/content/panelUI.inc.xhtml
|
--- a/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||||
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml
|
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||||
@@ -132,7 +132,7 @@
|
@@ -139,7 +139,7 @@
|
||||||
<panel id="appMenu-notification-popup"
|
<panel id="appMenu-notification-popup"
|
||||||
class="popup-notification-panel panel-no-padding"
|
class="popup-notification-panel panel-no-padding"
|
||||||
type="arrow"
|
type="arrow"
|
||||||
|
|||||||
@@ -1,18 +1,8 @@
|
|||||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||||
index 7156397d597579f745ea20ae2b9327433a31c8ec..23c15c60acd77150ea89bd6f2fa1685a0cfc37fd 100644
|
index d6393080aa8aff6c0f7b2043fd408b6f6249d0c4..bf37b46c4743b7619393c730720204380635666a 100644
|
||||||
--- a/browser/components/customizableui/content/panelUI.js
|
--- a/browser/components/customizableui/content/panelUI.js
|
||||||
+++ b/browser/components/customizableui/content/panelUI.js
|
+++ b/browser/components/customizableui/content/panelUI.js
|
||||||
@@ -518,8 +518,7 @@ const PanelUI = {
|
@@ -608,10 +608,12 @@ const PanelUI = {
|
||||||
tempPanel.setAttribute("animate", "false");
|
|
||||||
}
|
|
||||||
tempPanel.setAttribute("context", "");
|
|
||||||
- document
|
|
||||||
- .getElementById(CustomizableUI.AREA_NAVBAR)
|
|
||||||
+ aAnchor.closest("toolbar")
|
|
||||||
.appendChild(tempPanel);
|
|
||||||
|
|
||||||
let multiView = document.createXULElement("panelmultiview");
|
|
||||||
@@ -610,10 +609,12 @@ const PanelUI = {
|
|
||||||
if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) {
|
if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) {
|
||||||
this.navbar.setAttribute("nonemptyoverflow", "true");
|
this.navbar.setAttribute("nonemptyoverflow", "true");
|
||||||
this.overflowPanel.setAttribute("hasfixeditems", "true");
|
this.overflowPanel.setAttribute("hasfixeditems", "true");
|
||||||
@@ -25,7 +15,7 @@ index 7156397d597579f745ea20ae2b9327433a31c8ec..23c15c60acd77150ea89bd6f2fa1685a
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -961,7 +962,7 @@ const PanelUI = {
|
@@ -959,7 +961,7 @@ const PanelUI = {
|
||||||
el.removeAttribute("data-lazy-l10n-id");
|
el.removeAttribute("data-lazy-l10n-id");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
|
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
|
||||||
index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce3dbfa7a3 100644
|
index 2488267f4be5142bcacf984635d9e9ecdb5f02e9..03127808b3cae28850cc276fac0f1acbca85d326 100644
|
||||||
--- a/browser/components/extensions/parent/ext-browser.js
|
--- a/browser/components/extensions/parent/ext-browser.js
|
||||||
+++ b/browser/components/extensions/parent/ext-browser.js
|
+++ b/browser/components/extensions/parent/ext-browser.js
|
||||||
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
||||||
@@ -18,7 +18,7 @@ index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce
|
|||||||
|
|
||||||
this._tabs.set(nativeTab, id);
|
this._tabs.set(nativeTab, id);
|
||||||
if (nativeTab.linkedBrowser) {
|
if (nativeTab.linkedBrowser) {
|
||||||
@@ -1271,6 +1273,10 @@ class TabManager extends TabManagerBase {
|
@@ -1273,6 +1275,10 @@ class TabManager extends TabManagerBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
canAccessTab(nativeTab) {
|
canAccessTab(nativeTab) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
|
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
|
||||||
index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3ed3a3058e 100644
|
index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8401e4226 100644
|
||||||
--- a/browser/components/places/content/browserPlacesViews.js
|
--- a/browser/components/places/content/browserPlacesViews.js
|
||||||
+++ b/browser/components/places/content/browserPlacesViews.js
|
+++ b/browser/components/places/content/browserPlacesViews.js
|
||||||
@@ -330,12 +330,23 @@ class PlacesViewBase {
|
@@ -328,12 +328,23 @@ class PlacesViewBase {
|
||||||
|
|
||||||
this._cleanPopup(aPopup);
|
this._cleanPopup(aPopup);
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
this._insertNewItemToPopup(child, fragment);
|
this._insertNewItemToPopup(child, fragment);
|
||||||
}
|
}
|
||||||
aPopup.insertBefore(fragment, aPopup._endMarker);
|
aPopup.insertBefore(fragment, aPopup._endMarker);
|
||||||
@@ -393,6 +404,7 @@ class PlacesViewBase {
|
@@ -391,6 +402,7 @@ class PlacesViewBase {
|
||||||
"scheme",
|
"scheme",
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(aPlacesNode.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(aPlacesNode.uri)
|
||||||
);
|
);
|
||||||
@@ -37,7 +37,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
} else if (PlacesUtils.containerTypes.includes(type)) {
|
} else if (PlacesUtils.containerTypes.includes(type)) {
|
||||||
element = document.createXULElement("menu");
|
element = document.createXULElement("menu");
|
||||||
element.setAttribute("container", "true");
|
element.setAttribute("container", "true");
|
||||||
@@ -980,25 +992,33 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1014,25 +1026,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
this._rootElt.firstChild.remove();
|
this._rootElt.firstChild.remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
);
|
);
|
||||||
++startIndex;
|
++startIndex;
|
||||||
if (elt.localName != "toolbarseparator") {
|
if (elt.localName != "toolbarseparator") {
|
||||||
@@ -1006,15 +1026,12 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1040,15 +1060,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!elt) {
|
if (!elt) {
|
||||||
@@ -101,7 +101,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1024,7 +1041,7 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1058,7 +1075,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
|
|
||||||
let fragment = document.createDocumentFragment();
|
let fragment = document.createDocumentFragment();
|
||||||
for (let i = startIndex; i < limit; ++i) {
|
for (let i = startIndex; i < limit; ++i) {
|
||||||
@@ -110,7 +110,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
}
|
}
|
||||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||||
if (!this._isAlive) {
|
if (!this._isAlive) {
|
||||||
@@ -1086,6 +1103,8 @@ class PlacesToolbar extends PlacesViewBase {
|
@@ -1120,6 +1137,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||||
"scheme",
|
"scheme",
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
||||||
);
|
);
|
||||||
@@ -119,7 +119,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2234,7 +2253,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
@@ -2268,7 +2287,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||||
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
||||||
);
|
);
|
||||||
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
||||||
index a786155d80a9f1f09d209f2da11437ee2d662739..2e422b48b452698275118d336d1b16af6a221577 100644
|
index 65efb0666785cc79e58015e19ec55216bf4ec9c4..95941c52ffd4c9ee36f584413fb96d59721113db 100644
|
||||||
--- a/browser/components/preferences/jar.mn
|
--- a/browser/components/preferences/jar.mn
|
||||||
+++ b/browser/components/preferences/jar.mn
|
+++ b/browser/components/preferences/jar.mn
|
||||||
@@ -30,3 +30,5 @@ browser.jar:
|
@@ -33,3 +33,5 @@ browser.jar:
|
||||||
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
content/browser/preferences/widgets/setting-pane.mjs (widgets/setting-pane/setting-pane.mjs)
|
||||||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
content/browser/preferences/widgets/security-privacy-card.mjs (widgets/security-privacy/security-privacy-card/security-privacy-card.mjs)
|
||||||
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
content/browser/preferences/widgets/security-privacy-card.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css)
|
||||||
+
|
+
|
||||||
+ content/browser/preferences/zen-settings.js
|
+ content/browser/preferences/zen-settings.js
|
||||||
|
\ No newline at end of file
|
||||||
|
|||||||
@@ -1,20 +1,8 @@
|
|||||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||||
index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615fad5e0760 100644
|
index ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644
|
||||||
--- a/browser/components/preferences/main.inc.xhtml
|
--- a/browser/components/preferences/main.inc.xhtml
|
||||||
+++ b/browser/components/preferences/main.inc.xhtml
|
+++ b/browser/components/preferences/main.inc.xhtml
|
||||||
@@ -29,6 +29,11 @@
|
@@ -141,7 +141,8 @@
|
||||||
<vbox id="startupPageBox">
|
|
||||||
<checkbox id="browserRestoreSession"
|
|
||||||
data-l10n-id="startup-restore-windows-and-tabs"/>
|
|
||||||
+ <vbox class="indent">
|
|
||||||
+ <checkbox id="zenWorkspaceContinueWhereLeftOff"
|
|
||||||
+ data-l10n-id="zen-workspace-continue-where-left-off"
|
|
||||||
+ preference="zen.workspaces.continue-where-left-off"/>
|
|
||||||
+ </vbox>
|
|
||||||
#ifdef XP_WIN
|
|
||||||
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
|
||||||
<checkbox id="windowsLaunchOnLogin"
|
|
||||||
@@ -189,7 +194,8 @@
|
|
||||||
<!-- Browser layout -->
|
<!-- Browser layout -->
|
||||||
<groupbox data-category="paneGeneral"
|
<groupbox data-category="paneGeneral"
|
||||||
data-subcategory="layout"
|
data-subcategory="layout"
|
||||||
@@ -24,7 +12,7 @@ index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615f
|
|||||||
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
||||||
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
||||||
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
||||||
@@ -420,6 +426,7 @@
|
@@ -346,6 +347,7 @@
|
||||||
languages-customize-add.label,
|
languages-customize-add.label,
|
||||||
" />
|
" />
|
||||||
</hbox>
|
</hbox>
|
||||||
|
|||||||
@@ -1,8 +1,20 @@
|
|||||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||||
index 259bc260328af1b1f2b95866e7cf92dec341a4b0..3cebff51774b2542a8d4d888aa99dc10929c80be 100644
|
index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca323682e89e76 100644
|
||||||
--- a/browser/components/preferences/main.js
|
--- a/browser/components/preferences/main.js
|
||||||
+++ b/browser/components/preferences/main.js
|
+++ b/browser/components/preferences/main.js
|
||||||
@@ -443,7 +443,7 @@ function getBundleForLocales(newLocales) {
|
@@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = {
|
||||||
|
id: "browserRestoreSession",
|
||||||
|
l10nId: "startup-restore-windows-and-tabs",
|
||||||
|
},
|
||||||
|
+ {
|
||||||
|
+ id: "zenWorkspaceContinueWhereLeftOff",
|
||||||
|
+ l10nId: "zen-workspace-continue-where-left-off",
|
||||||
|
+ control: "moz-checkbox",
|
||||||
|
+ },
|
||||||
|
{
|
||||||
|
id: "windowsLaunchOnLogin",
|
||||||
|
l10nId: "windows-launch-on-login",
|
||||||
|
@@ -1611,7 +1616,7 @@ function getBundleForLocales(newLocales) {
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
return new Localization(
|
return new Localization(
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||||
index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778abd312dfd8 100644
|
index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846ba3cffa9 100644
|
||||||
--- a/browser/components/preferences/preferences.js
|
--- a/browser/components/preferences/preferences.js
|
||||||
+++ b/browser/components/preferences/preferences.js
|
+++ b/browser/components/preferences/preferences.js
|
||||||
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||||
@@ -10,7 +10,7 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
|||||||
],
|
],
|
||||||
resizeCallback: async ({ title, frame }) => {
|
resizeCallback: async ({ title, frame }) => {
|
||||||
// Search within main document and highlight matched keyword.
|
// Search within main document and highlight matched keyword.
|
||||||
@@ -196,6 +197,10 @@ function init_all() {
|
@@ -224,6 +225,10 @@ function init_all() {
|
||||||
register_module("paneSearch", gSearchPane);
|
register_module("paneSearch", gSearchPane);
|
||||||
register_module("panePrivacy", gPrivacyPane);
|
register_module("panePrivacy", gPrivacyPane);
|
||||||
register_module("paneContainers", gContainersPane);
|
register_module("paneContainers", gContainersPane);
|
||||||
@@ -19,5 +19,5 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
|||||||
+ register_module("paneZenCKS", gZenCKSSettings);
|
+ register_module("paneZenCKS", gZenCKSSettings);
|
||||||
+ register_module("paneZenMarketplace", gZenMarketplaceManager);
|
+ register_module("paneZenMarketplace", gZenMarketplaceManager);
|
||||||
|
|
||||||
if (Services.prefs.getBoolPref("browser.translations.newSettingsUI.enable")) {
|
for (let [subPane, config] of Object.entries(CONFIG_PANES)) {
|
||||||
register_module("paneTranslations", gTranslationsPane);
|
subPane = friendlyPrefCategoryNameToInternalName(subPane);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||||
index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222bb88a64b 100644
|
index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 100644
|
||||||
--- a/browser/components/preferences/preferences.xhtml
|
--- a/browser/components/preferences/preferences.xhtml
|
||||||
+++ b/browser/components/preferences/preferences.xhtml
|
+++ b/browser/components/preferences/preferences.xhtml
|
||||||
@@ -45,6 +45,8 @@
|
@@ -45,6 +45,8 @@
|
||||||
@@ -11,7 +11,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<link rel="localization" href="branding/brand.ftl"/>
|
<link rel="localization" href="branding/brand.ftl"/>
|
||||||
<link rel="localization" href="browser/browser.ftl"/>
|
<link rel="localization" href="browser/browser.ftl"/>
|
||||||
<!-- Used by fontbuilder.js -->
|
<!-- Used by fontbuilder.js -->
|
||||||
@@ -106,6 +108,11 @@
|
@@ -109,6 +111,11 @@
|
||||||
<hbox flex="1">
|
<hbox flex="1">
|
||||||
|
|
||||||
<vbox class="navigation">
|
<vbox class="navigation">
|
||||||
@@ -23,7 +23,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<!-- category list -->
|
<!-- category list -->
|
||||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||||
<richlistitem id="category-general"
|
<richlistitem id="category-general"
|
||||||
@@ -118,6 +125,50 @@
|
@@ -121,6 +128,50 @@
|
||||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||||
</richlistitem>
|
</richlistitem>
|
||||||
|
|
||||||
@@ -74,7 +74,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
<richlistitem id="category-home"
|
<richlistitem id="category-home"
|
||||||
class="category"
|
class="category"
|
||||||
value="paneHome"
|
value="paneHome"
|
||||||
@@ -229,11 +280,6 @@
|
@@ -232,11 +283,6 @@
|
||||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
@@ -86,7 +86,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
|||||||
</hbox>
|
</hbox>
|
||||||
</hbox>
|
</hbox>
|
||||||
<vbox id="mainPrefPane">
|
<vbox id="mainPrefPane">
|
||||||
@@ -247,6 +293,10 @@
|
@@ -250,6 +296,10 @@
|
||||||
#include sync.inc.xhtml
|
#include sync.inc.xhtml
|
||||||
#include experimental.inc.xhtml
|
#include experimental.inc.xhtml
|
||||||
#include moreFromMozilla.inc.xhtml
|
#include moreFromMozilla.inc.xhtml
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
|
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
|
||||||
index e59c536fc2fa06b11be9378a28285ac16fd16958..cf17ee3b6347b950fcf5bf260cd0631c77ffd1d3 100644
|
index 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 100644
|
||||||
--- a/browser/components/preferences/sync.inc.xhtml
|
--- a/browser/components/preferences/sync.inc.xhtml
|
||||||
+++ b/browser/components/preferences/sync.inc.xhtml
|
+++ b/browser/components/preferences/sync.inc.xhtml
|
||||||
@@ -223,6 +223,10 @@
|
@@ -223,6 +223,10 @@
|
||||||
|
|||||||
@@ -1136,3 +1136,8 @@ Preferences.addAll([
|
|||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
Preferences.addSetting({
|
||||||
|
id: 'zenWorkspaceContinueWhereLeftOff',
|
||||||
|
pref: 'zen.workspaces.continue-where-left-off',
|
||||||
|
});
|
||||||
|
|||||||
@@ -26,6 +26,9 @@
|
|||||||
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
||||||
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
||||||
preference="zen.workspaces.force-container-workspace"/>
|
preference="zen.workspaces.force-container-workspace"/>
|
||||||
|
<checkbox id="zenTabsCloseOnBackWithNoHistory"
|
||||||
|
data-l10n-id="zen-tabs-close-on-back-with-no-history"
|
||||||
|
preference="zen.tabs.close-on-back-with-no-history"/>
|
||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<hbox id="zenTabsUnloadCategory"
|
<hbox id="zenTabsUnloadCategory"
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs
|
diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs
|
||||||
index 55f90f4e802480728bbd5ef962b507183e017997..2a83f861fe6edee2b127c8d7946abcdcdbf677f5 100644
|
index 15fdb0cd7664c2b49977902d7f4c7a117d82cf15..6aedbc18de6604b63b2586e7d9745a4c4e7e38ae 100644
|
||||||
--- a/browser/components/search/SearchUIUtils.sys.mjs
|
--- a/browser/components/search/SearchUIUtils.sys.mjs
|
||||||
+++ b/browser/components/search/SearchUIUtils.sys.mjs
|
+++ b/browser/components/search/SearchUIUtils.sys.mjs
|
||||||
@@ -430,7 +430,7 @@ export var SearchUIUtils = {
|
@@ -434,7 +434,7 @@ export var SearchUIUtils = {
|
||||||
triggeringSearchEngine: engine.name,
|
triggeringSearchEngine: engine.name,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
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 eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d89fb95494 100644
|
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..f13ed1412bb7ae6623aa2605d7691d10540eb659 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
|
||||||
@@ -126,6 +126,8 @@ const TAB_EVENTS = [
|
@@ -127,6 +127,8 @@ const TAB_EVENTS = [
|
||||||
"TabUngrouped",
|
|
||||||
"TabGroupCollapse",
|
"TabGroupCollapse",
|
||||||
"TabGroupExpand",
|
"TabGroupExpand",
|
||||||
|
"TabSplitViewActivate",
|
||||||
+ "TabAddedToEssentials",
|
+ "TabAddedToEssentials",
|
||||||
+ "TabRemovedFromEssentials",
|
+ "TabRemovedFromEssentials",
|
||||||
];
|
];
|
||||||
|
|
||||||
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";
|
||||||
@@ -1904,6 +1906,8 @@ var SessionStoreInternal = {
|
@@ -1911,6 +1913,8 @@ var SessionStoreInternal = {
|
||||||
case "TabPinned":
|
case "TabPinned":
|
||||||
case "TabUnpinned":
|
case "TabUnpinned":
|
||||||
case "SwapDocShells":
|
case "SwapDocShells":
|
||||||
@@ -20,7 +20,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
this.saveStateDelayed(win);
|
this.saveStateDelayed(win);
|
||||||
break;
|
break;
|
||||||
case "TabGroupCreate":
|
case "TabGroupCreate":
|
||||||
@@ -2139,7 +2143,6 @@ var SessionStoreInternal = {
|
@@ -2151,7 +2155,6 @@ var SessionStoreInternal = {
|
||||||
if (closedWindowState) {
|
if (closedWindowState) {
|
||||||
let newWindowState;
|
let newWindowState;
|
||||||
if (
|
if (
|
||||||
@@ -28,7 +28,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
!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.
|
||||||
@@ -2372,11 +2375,9 @@ var SessionStoreInternal = {
|
@@ -2384,11 +2387,9 @@ var SessionStoreInternal = {
|
||||||
tabbrowser.selectedTab.label;
|
tabbrowser.selectedTab.label;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
// 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
|
||||||
@@ -3361,7 +3362,7 @@ var SessionStoreInternal = {
|
@@ -3373,7 +3374,7 @@ var SessionStoreInternal = {
|
||||||
if (!isPrivateWindow && tabState.isPrivate) {
|
if (!isPrivateWindow && tabState.isPrivate) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4073,6 +4074,11 @@ var SessionStoreInternal = {
|
@@ -4089,6 +4090,11 @@ var SessionStoreInternal = {
|
||||||
Math.min(tabState.index, tabState.entries.length)
|
Math.min(tabState.index, tabState.entries.length)
|
||||||
);
|
);
|
||||||
tabState.pinned = false;
|
tabState.pinned = false;
|
||||||
@@ -61,7 +61,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
if (inBackground === false) {
|
if (inBackground === false) {
|
||||||
aWindow.gBrowser.selectedTab = newTab;
|
aWindow.gBrowser.selectedTab = newTab;
|
||||||
@@ -4509,6 +4515,7 @@ var SessionStoreInternal = {
|
@@ -4525,6 +4531,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,
|
||||||
@@ -69,7 +69,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
userContextId: state.userContextId,
|
userContextId: state.userContextId,
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
@@ -5358,7 +5365,7 @@ var SessionStoreInternal = {
|
@@ -5374,7 +5381,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];
|
||||||
@@ -78,7 +78,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
removableTabs.push(tab);
|
removableTabs.push(tab);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5418,7 +5425,7 @@ var SessionStoreInternal = {
|
@@ -5434,7 +5441,7 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let workspaceID = aWindow.getWorkspaceID();
|
let workspaceID = aWindow.getWorkspaceID();
|
||||||
@@ -87,7 +87,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
winData.workspaceID = workspaceID;
|
winData.workspaceID = workspaceID;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -5609,11 +5616,12 @@ var SessionStoreInternal = {
|
@@ -5625,11 +5632,12 @@ var SessionStoreInternal = {
|
||||||
}
|
}
|
||||||
|
|
||||||
let tabbrowser = aWindow.gBrowser;
|
let tabbrowser = aWindow.gBrowser;
|
||||||
@@ -101,7 +101,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
// 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) {
|
||||||
@@ -5624,6 +5632,7 @@ var SessionStoreInternal = {
|
@@ -5640,6 +5648,7 @@ var SessionStoreInternal = {
|
||||||
tabsData.push(tabData);
|
tabsData.push(tabData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -109,7 +109,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
// 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) {
|
||||||
@@ -5636,7 +5645,7 @@ var SessionStoreInternal = {
|
@@ -5652,7 +5661,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) {
|
||||||
@@ -118,7 +118,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
winData.title = tabbrowser.tabs[0].label;
|
winData.title = tabbrowser.tabs[0].label;
|
||||||
}
|
}
|
||||||
winData.selected = selectedIndex;
|
winData.selected = selectedIndex;
|
||||||
@@ -5748,8 +5757,8 @@ var SessionStoreInternal = {
|
@@ -5764,8 +5773,8 @@ var SessionStoreInternal = {
|
||||||
// selectTab represents.
|
// selectTab represents.
|
||||||
let selectTab = 0;
|
let selectTab = 0;
|
||||||
if (overwriteTabs) {
|
if (overwriteTabs) {
|
||||||
@@ -129,7 +129,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
selectTab = Math.min(selectTab, winData.tabs.length);
|
selectTab = Math.min(selectTab, winData.tabs.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5792,6 +5801,8 @@ var SessionStoreInternal = {
|
@@ -5808,6 +5817,8 @@ var SessionStoreInternal = {
|
||||||
winData.tabs,
|
winData.tabs,
|
||||||
winData.groups ?? []
|
winData.groups ?? []
|
||||||
);
|
);
|
||||||
@@ -138,7 +138,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
this._log.debug(
|
this._log.debug(
|
||||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||||
);
|
);
|
||||||
@@ -6348,6 +6359,25 @@ var SessionStoreInternal = {
|
@@ -6371,6 +6382,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.
|
||||||
@@ -164,7 +164,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
|||||||
|
|
||||||
if (tabData.pinned) {
|
if (tabData.pinned) {
|
||||||
tabbrowser.pinTab(tab);
|
tabbrowser.pinTab(tab);
|
||||||
@@ -7263,7 +7293,7 @@ var SessionStoreInternal = {
|
@@ -7289,7 +7319,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; ) {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
||||||
index c4edb5442e5243b7d9fe35e1774b2fc651903601..d58076fedafe07d3401ab1723eaa837fabbae09f 100644
|
index 220c3c83fa09daaec433803a4655a20114a137a6..1ef8adc3ecfa61839bb993f7fc090133bffe77db 100644
|
||||||
--- a/browser/components/sidebar/browser-sidebar.js
|
--- a/browser/components/sidebar/browser-sidebar.js
|
||||||
+++ b/browser/components/sidebar/browser-sidebar.js
|
+++ b/browser/components/sidebar/browser-sidebar.js
|
||||||
@@ -779,7 +779,7 @@ var SidebarController = {
|
@@ -793,7 +793,7 @@ var SidebarController = {
|
||||||
setPosition() {
|
setPosition() {
|
||||||
// First reset all ordinals to match DOM ordering.
|
// First reset all ordinals to match DOM ordering.
|
||||||
let contentArea = document.getElementById("tabbrowser-tabbox");
|
let contentArea = document.getElementById("tabbrowser-tabbox");
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
index 773f595e89e268578ba153907babec95b58a155a..7cb99cde00c19f50fd9aa48ab1efcfaeaef89771 100644
|
index bcd7689e9d68ef8b171c327188174334c4271e21..f69180acb87644f109aa91b871e347f1b1835f53 100644
|
||||||
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||||
@@ -937,6 +937,7 @@ export class AsyncTabSwitcher {
|
@@ -938,6 +938,7 @@ export class AsyncTabSwitcher {
|
||||||
return !(
|
|
||||||
this.tabbrowser._printPreviewBrowsers.has(browser) ||
|
this.tabbrowser._printPreviewBrowsers.has(browser) ||
|
||||||
|
this.tabbrowser.splitViewBrowsers.includes(browser) ||
|
||||||
lazy.PictureInPicture.isOriginatingBrowser(browser)
|
lazy.PictureInPicture.isOriginatingBrowser(browser)
|
||||||
+ || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background")
|
+ || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background")
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
index 20a543dede6bf4428c8af19c5d0589788ddd8eaa..27a378e70f5b280b720c95ba8dac2cc4e88985be 100644
|
index b394a980869d5e5df01b6afdd81e0f41c090e6ec..236c99db0dfa5ebcba50d55c1e4eb6ab7b8110b2 100644
|
||||||
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||||
@@ -87,7 +87,7 @@ class TabsListBase {
|
@@ -87,7 +87,7 @@ class TabsListBase {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3e8781666 100644
|
index 958728cde19dd7cc24692baa89e11fcab816ab82..32e2b6af2536133f170bd5e14c47392ded8440eb 100644
|
||||||
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||||
@@ -252,7 +252,8 @@ var ctrlTab = {
|
@@ -249,7 +249,8 @@ var ctrlTab = {
|
||||||
},
|
},
|
||||||
|
|
||||||
get tabList() {
|
get tabList() {
|
||||||
@@ -12,7 +12,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
},
|
},
|
||||||
|
|
||||||
init: function ctrlTab_init() {
|
init: function ctrlTab_init() {
|
||||||
@@ -463,7 +464,7 @@ var ctrlTab = {
|
@@ -460,7 +461,7 @@ var ctrlTab = {
|
||||||
// If the tab is hidden, don't add it to the list unless it's selected
|
// If the tab is hidden, don't add it to the list unless it's selected
|
||||||
// (Normally hidden tabs would be unhidden when selected, but that doesn't
|
// (Normally hidden tabs would be unhidden when selected, but that doesn't
|
||||||
// happen for Firefox View).
|
// happen for Firefox View).
|
||||||
@@ -21,7 +21,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +488,7 @@ var ctrlTab = {
|
@@ -484,7 +485,7 @@ var ctrlTab = {
|
||||||
},
|
},
|
||||||
|
|
||||||
open: function ctrlTab_open() {
|
open: function ctrlTab_open() {
|
||||||
@@ -30,7 +30,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -765,7 +766,7 @@ var ctrlTab = {
|
@@ -763,7 +764,7 @@ var ctrlTab = {
|
||||||
_initRecentlyUsedTabs() {
|
_initRecentlyUsedTabs() {
|
||||||
this._recentlyUsedTabs = Array.prototype.filter.call(
|
this._recentlyUsedTabs = Array.prototype.filter.call(
|
||||||
gBrowser.tabs,
|
gBrowser.tabs,
|
||||||
|
|||||||
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
@@ -0,0 +1,439 @@
|
|||||||
|
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
index c97c661656868bc7faaf7c66c9702eea056aafe1..aa9f0ed071e4898cac2b98a4d81e95df6a41b8dd 100644
|
||||||
|
--- a/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
+++ b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||||
|
@@ -32,6 +32,9 @@
|
||||||
|
* @returns {MozTabbrowserTab|vbox}
|
||||||
|
*/
|
||||||
|
const elementToMove = element => {
|
||||||
|
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ return element.group;
|
||||||
|
+ }
|
||||||
|
if (isTab(element)) {
|
||||||
|
return element;
|
||||||
|
}
|
||||||
|
@@ -118,6 +121,10 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||||
|
+ if (draggedTab && dropEffect === "move") {
|
||||||
|
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
||||||
|
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
||||||
|
+ }
|
||||||
|
if (
|
||||||
|
(dropEffect == "move" || dropEffect == "copy") &&
|
||||||
|
document == draggedTab.ownerDocument &&
|
||||||
|
@@ -272,6 +279,18 @@
|
||||||
|
|
||||||
|
this.#tabDropIndicator.hidden = true;
|
||||||
|
event.stopPropagation();
|
||||||
|
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
||||||
|
+ draggedTab.removeAttribute("zen-has-splitted");
|
||||||
|
+ draggedTab._visuallySelected = false;
|
||||||
|
+ }
|
||||||
|
+ if (draggedTab && dropEffect == "move") {
|
||||||
|
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||||
|
+
|
||||||
|
+ if (moved) {
|
||||||
|
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
if (draggedTab && dropEffect == "copy") {
|
||||||
|
let duplicatedDraggedTab;
|
||||||
|
let duplicatedTabs = [];
|
||||||
|
@@ -297,8 +316,9 @@
|
||||||
|
let translateOffsetY = oldTranslateY % tabHeight;
|
||||||
|
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||||
|
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||||
|
- let isPinned = draggedTab.pinned;
|
||||||
|
- let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||||
|
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||||
|
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||||
|
|
||||||
|
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||||
|
// Update both translate axis for pinned vertical expanded tabs
|
||||||
|
@@ -314,8 +334,8 @@
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(
|
||||||
|
- isPinned ? 0 : numPinned,
|
||||||
|
- isPinned ? numPinned : undefined
|
||||||
|
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
||||||
|
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
||||||
|
);
|
||||||
|
let size = this.#tabbrowserTabs.verticalMode ? "height" : "width";
|
||||||
|
let screenAxis = this.#tabbrowserTabs.verticalMode
|
||||||
|
@@ -368,11 +388,13 @@
|
||||||
|
this.#dragToPinPromoCard,
|
||||||
|
];
|
||||||
|
let shouldPin =
|
||||||
|
+ false &&
|
||||||
|
isTab(draggedTab) &&
|
||||||
|
!draggedTab.pinned &&
|
||||||
|
(overPinnedDropIndicator ||
|
||||||
|
dragToPinTargets.some(el => el.contains(event.target)));
|
||||||
|
let shouldUnpin =
|
||||||
|
+ false &&
|
||||||
|
isTab(draggedTab) &&
|
||||||
|
draggedTab.pinned &&
|
||||||
|
this.#tabbrowserTabs.arrowScrollbox.contains(event.target);
|
||||||
|
@@ -390,6 +412,7 @@
|
||||||
|
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||||
|
} else if (this.#tabbrowserTabs.verticalMode) {
|
||||||
|
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||||
|
+ shouldTranslate = false;
|
||||||
|
} else {
|
||||||
|
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||||
|
}
|
||||||
|
@@ -446,7 +469,7 @@
|
||||||
|
item.removeAttribute("tabdrop-samewindow");
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
- if (gReduceMotion) {
|
||||||
|
+ if (true || gReduceMotion) {
|
||||||
|
postTransitionCleanup();
|
||||||
|
} else {
|
||||||
|
let onTransitionEnd = transitionendEvent => {
|
||||||
|
@@ -586,6 +609,7 @@
|
||||||
|
|
||||||
|
let nextItem = this.#tabbrowserTabs.ariaFocusableItems[newIndex];
|
||||||
|
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||||
|
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||||
|
gBrowser.loadTabs(urls, {
|
||||||
|
inBackground,
|
||||||
|
replace,
|
||||||
|
@@ -623,7 +647,16 @@
|
||||||
|
this.#expandGroupOnDrop(draggedTab);
|
||||||
|
}
|
||||||
|
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||||
|
-
|
||||||
|
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||||
|
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||||
|
+ if (moved) {
|
||||||
|
+ delete draggedTab._dragData;
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+ } else if (dt.mozUserCancelled) {
|
||||||
|
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
||||||
|
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||||
|
+ }
|
||||||
|
if (
|
||||||
|
dt.mozUserCancelled ||
|
||||||
|
dt.dropEffect != "none" ||
|
||||||
|
@@ -827,7 +860,10 @@
|
||||||
|
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||||
|
let { target } = event;
|
||||||
|
while (target) {
|
||||||
|
- if (isTab(target) || isTabGroupLabel(target)) {
|
||||||
|
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
||||||
|
+ if (target.classList?.contains("tab-group-label-container")) {
|
||||||
|
+ target = target.querySelector(".tab-group-label");
|
||||||
|
+ }
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
target = target.parentNode;
|
||||||
|
@@ -844,14 +880,17 @@
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ target = target.group.labelElement;
|
||||||
|
+ }
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
#isContainerVerticalPinnedGrid(tab) {
|
||||||
|
return (
|
||||||
|
this.#tabbrowserTabs.verticalMode &&
|
||||||
|
- tab.pinned &&
|
||||||
|
- this.#tabbrowserTabs.hasAttribute("expanded") &&
|
||||||
|
+ (tab.hasAttribute("zen-essential")) &&
|
||||||
|
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||||
|
!this.#tabbrowserTabs.expandOnHover
|
||||||
|
);
|
||||||
|
}
|
||||||
|
@@ -882,7 +921,8 @@
|
||||||
|
isTabGroupLabel(draggedTab) &&
|
||||||
|
draggedTab._dragData?.expandGroupOnDrop
|
||||||
|
) {
|
||||||
|
- draggedTab.group.collapsed = false;
|
||||||
|
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
||||||
|
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -947,10 +987,7 @@
|
||||||
|
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||||
|
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||||
|
// Set this before adjusting dragged tab's position
|
||||||
|
- let pinnedTabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||||
|
- 0,
|
||||||
|
- gBrowser.pinnedTabCount
|
||||||
|
- );
|
||||||
|
+ let pinnedTabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||||
|
let tabsPerRow = 0;
|
||||||
|
let position = RTL_UI
|
||||||
|
? window.windowUtils.getBoundsWithoutFlushing(
|
||||||
|
@@ -1117,7 +1154,7 @@
|
||||||
|
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||||
|
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||||
|
let collapseTabGroupDuringDrag =
|
||||||
|
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
||||||
|
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
||||||
|
|
||||||
|
tab._dragData = {
|
||||||
|
offsetX: this.#tabbrowserTabs.verticalMode
|
||||||
|
@@ -1127,7 +1164,7 @@
|
||||||
|
? event.screenY - window.screenY - tabOffset
|
||||||
|
: event.screenY - window.screenY,
|
||||||
|
scrollPos:
|
||||||
|
- this.#tabbrowserTabs.verticalMode && tab.pinned
|
||||||
|
+ this.#tabbrowserTabs.verticalMode && tab.pinned && false
|
||||||
|
? this.#tabbrowserTabs.pinnedTabsContainer.scrollPosition
|
||||||
|
: this.#tabbrowserTabs.arrowScrollbox.scrollPosition,
|
||||||
|
screenX: event.screenX,
|
||||||
|
@@ -1156,6 +1193,7 @@
|
||||||
|
|
||||||
|
if (collapseTabGroupDuringDrag) {
|
||||||
|
tab.group.collapsed = true;
|
||||||
|
+ gZenFolders.animateGroupMove(tab.group);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -1174,6 +1212,16 @@
|
||||||
|
when the tab is first selected to be dragged.
|
||||||
|
*/
|
||||||
|
#updateTabStylesOnDrag(tab) {
|
||||||
|
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
||||||
|
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
||||||
|
+ if (isTabGroupLabel(tab)) {
|
||||||
|
+ movingTab = movingTab.parentElement;
|
||||||
|
+ }
|
||||||
|
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
||||||
|
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
||||||
|
+ movingTab.setAttribute("zen-dragtarget", "");
|
||||||
|
+ }
|
||||||
|
+ return;
|
||||||
|
let isPinned = tab.pinned;
|
||||||
|
let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||||
|
@@ -1624,10 +1672,7 @@
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
- let tabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||||
|
- 0,
|
||||||
|
- gBrowser.pinnedTabCount
|
||||||
|
- );
|
||||||
|
+ let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||||
|
|
||||||
|
let directionX = screenX > dragData.animLastScreenX;
|
||||||
|
let directionY = screenY > dragData.animLastScreenY;
|
||||||
|
@@ -1636,6 +1681,8 @@
|
||||||
|
|
||||||
|
let { width: tabWidth, height: tabHeight } =
|
||||||
|
draggedTab.getBoundingClientRect();
|
||||||
|
+ tabWidth += 4; // Add 4px to account for the gap
|
||||||
|
+ tabHeight += 4;
|
||||||
|
let shiftSizeX = tabWidth * movingTabs.length;
|
||||||
|
let shiftSizeY = tabHeight;
|
||||||
|
dragData.tabWidth = tabWidth;
|
||||||
|
@@ -1672,8 +1719,8 @@
|
||||||
|
let lastBoundX =
|
||||||
|
lastTabInRow.screenX +
|
||||||
|
lastTabInRow.getBoundingClientRect().width -
|
||||||
|
- (lastMovingTabScreenX + tabWidth);
|
||||||
|
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
||||||
|
+ (lastMovingTabScreenX + tabWidth) + 4;
|
||||||
|
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
||||||
|
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||||
|
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||||
|
|
||||||
|
@@ -1833,13 +1880,18 @@
|
||||||
|
this.#clearDragOverGroupingTimer();
|
||||||
|
this.#clearPinnedDropIndicatorTimer();
|
||||||
|
|
||||||
|
- let isPinned = draggedTab.pinned;
|
||||||
|
- let numPinned = gBrowser.pinnedTabCount;
|
||||||
|
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||||
|
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||||
|
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||||
|
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
||||||
|
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||||
|
let tabs = allTabs.slice(
|
||||||
|
- isPinned ? 0 : numPinned,
|
||||||
|
- isPinned ? numPinned : undefined
|
||||||
|
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
||||||
|
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
||||||
|
);
|
||||||
|
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ draggedTab = draggedTab.group.labelElement;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
if (this.#rtlMode) {
|
||||||
|
tabs.reverse();
|
||||||
|
@@ -1854,7 +1906,7 @@
|
||||||
|
let translateAxis = this.#tabbrowserTabs.verticalMode
|
||||||
|
? "translateY"
|
||||||
|
: "translateX";
|
||||||
|
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
||||||
|
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
||||||
|
let tabSize = this.#tabbrowserTabs.verticalMode ? tabHeight : tabWidth;
|
||||||
|
let translateX = event.screenX - dragData.screenX;
|
||||||
|
let translateY = event.screenY - dragData.screenY;
|
||||||
|
@@ -1870,6 +1922,12 @@
|
||||||
|
);
|
||||||
|
let lastMovingTab = movingTabs.at(-1);
|
||||||
|
let firstMovingTab = movingTabs[0];
|
||||||
|
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ lastMovingTab = lastMovingTab.group;
|
||||||
|
+ }
|
||||||
|
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
||||||
|
+ firstMovingTab = firstMovingTab.group;
|
||||||
|
+ }
|
||||||
|
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||||
|
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||||
|
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||||
|
@@ -1884,6 +1942,13 @@
|
||||||
|
let endBound = this.#rtlMode
|
||||||
|
? endEdge(this.#tabbrowserTabs) - lastMovingTabScreen
|
||||||
|
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
||||||
|
+ {
|
||||||
|
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
||||||
|
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
||||||
|
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
|
||||||
|
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
|
||||||
|
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
|
||||||
|
+ }
|
||||||
|
translate = Math.min(Math.max(translate, startBound), endBound);
|
||||||
|
|
||||||
|
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
||||||
|
@@ -2075,6 +2140,8 @@
|
||||||
|
};
|
||||||
|
|
||||||
|
let dropElement = getOverlappedElement();
|
||||||
|
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
||||||
|
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
||||||
|
|
||||||
|
let newDropElementIndex;
|
||||||
|
if (dropElement) {
|
||||||
|
@@ -2157,7 +2224,7 @@
|
||||||
|
? Services.prefs.getIntPref(
|
||||||
|
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||||
|
) / 100
|
||||||
|
- : 0.5;
|
||||||
|
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
||||||
|
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||||
|
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||||
|
if (logicalForward && shouldMoveOver) {
|
||||||
|
@@ -2190,6 +2257,7 @@
|
||||||
|
// If dragging a group over another group, don't make it look like it is
|
||||||
|
// possible to drop the dragged group inside the other group.
|
||||||
|
if (
|
||||||
|
+ false &&
|
||||||
|
isTabGroupLabel(draggedTab) &&
|
||||||
|
dropElement?.group &&
|
||||||
|
(!dropElement.group.collapsed ||
|
||||||
|
@@ -2216,20 +2284,13 @@
|
||||||
|
let isOutOfBounds = isPinned
|
||||||
|
? dropElement.elementIndex >= numPinned
|
||||||
|
: dropElement.elementIndex < numPinned;
|
||||||
|
- if (isOutOfBounds) {
|
||||||
|
- // Drop after last pinned tab
|
||||||
|
- dropElement = this.#tabbrowserTabs.ariaFocusableItems[numPinned - 1];
|
||||||
|
- dropBefore = false;
|
||||||
|
- }
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (
|
||||||
|
- gBrowser._tabGroupsEnabled &&
|
||||||
|
- isTab(draggedTab) &&
|
||||||
|
- !isPinned &&
|
||||||
|
- (!numPinned || newDropElementIndex > numPinned)
|
||||||
|
- ) {
|
||||||
|
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
||||||
|
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||||
|
+ if (draggedTab && !dropElement?.group) {
|
||||||
|
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||||
|
+ }
|
||||||
|
let groupingDelay = Services.prefs.getIntPref(
|
||||||
|
"browser.tabs.dragDrop.createGroup.delayMS"
|
||||||
|
);
|
||||||
|
@@ -2237,6 +2298,7 @@
|
||||||
|
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||||
|
// that dropping the tab(s) will create a new tab group.
|
||||||
|
let shouldCreateGroupOnDrop =
|
||||||
|
+ false &&
|
||||||
|
!movingTabsSet.has(dropElement) &&
|
||||||
|
isTab(dropElement) &&
|
||||||
|
!dropElement?.group &&
|
||||||
|
@@ -2245,6 +2307,7 @@
|
||||||
|
// When dragging tab(s) over a collapsed tab group label, signal to the
|
||||||
|
// user that dropping the tab(s) will add them to the group.
|
||||||
|
let shouldDropIntoCollapsedTabGroup =
|
||||||
|
+ false &&
|
||||||
|
isTabGroupLabel(dropElement) &&
|
||||||
|
dropElement.group.collapsed &&
|
||||||
|
overlapPercent > dragOverGroupingThreshold;
|
||||||
|
@@ -2302,6 +2365,14 @@
|
||||||
|
dropElement = dropElementGroup.tabs[0];
|
||||||
|
dropBefore = true;
|
||||||
|
}
|
||||||
|
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
||||||
|
+ dropElement,
|
||||||
|
+ draggedTab,
|
||||||
|
+ overlapPercent,
|
||||||
|
+ movingTabs,
|
||||||
|
+ dropBefore,
|
||||||
|
+ colorCode
|
||||||
|
+ ));
|
||||||
|
}
|
||||||
|
this.#setDragOverGroupColor(colorCode);
|
||||||
|
this.#tabbrowserTabs.toggleAttribute(
|
||||||
|
@@ -2324,10 +2395,11 @@
|
||||||
|
dragData.dropBefore = dropBefore;
|
||||||
|
dragData.animDropElementIndex = newDropElementIndex;
|
||||||
|
|
||||||
|
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
||||||
|
// Shift background tabs to leave a gap where the dragged tab
|
||||||
|
// would currently be dropped.
|
||||||
|
for (let item of tabs) {
|
||||||
|
- if (item == draggedTab) {
|
||||||
|
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2417,11 +2489,13 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
finishAnimateTabMove() {
|
||||||
|
+ gZenPinnedTabManager.onDragFinish();
|
||||||
|
if (!this.#isMovingTab()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.#setMovingTabMode(false);
|
||||||
|
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||||
|
|
||||||
|
for (let item of this.#tabbrowserTabs.ariaFocusableItems) {
|
||||||
|
this.#resetGroupTarget(item);
|
||||||
|
@@ -2457,7 +2531,7 @@
|
||||||
|
tab.style.left = "";
|
||||||
|
tab.style.top = "";
|
||||||
|
tab.style.maxWidth = "";
|
||||||
|
- tab.removeAttribute("dragtarget");
|
||||||
|
+ tab.removeAttribute("zen-dragtarget");
|
||||||
|
}
|
||||||
|
for (let label of draggedTabDocument.getElementsByClassName(
|
||||||
|
"tab-group-label-container"
|
||||||
|
@@ -2467,7 +2541,7 @@
|
||||||
|
label.style.left = "";
|
||||||
|
label.style.top = "";
|
||||||
|
label.style.maxWidth = "";
|
||||||
|
- label.removeAttribute("dragtarget");
|
||||||
|
+ label.removeAttribute("zen-dragtarget");
|
||||||
|
}
|
||||||
|
let periphery = draggedTabDocument.getElementById(
|
||||||
|
"tabbrowser-arrowscrollbox-periphery"
|
||||||
@@ -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 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362efc001afdd 100644
|
index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 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 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
".tab-label-container":
|
".tab-label-container":
|
||||||
"pinned,selected=visuallyselected,labeldirection",
|
"pinned,selected=visuallyselected,labeldirection",
|
||||||
".tab-label":
|
".tab-label":
|
||||||
@@ -184,7 +187,7 @@
|
@@ -186,7 +189,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
set _visuallySelected(val) {
|
set _visuallySelected(val) {
|
||||||
@@ -51,7 +51,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -220,11 +223,21 @@
|
@@ -222,11 +225,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get visible() {
|
get visible() {
|
||||||
@@ -78,7 +78,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
get hidden() {
|
get hidden() {
|
||||||
@@ -295,7 +308,7 @@
|
@@ -297,7 +310,7 @@
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +87,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
get lastAccessed() {
|
get lastAccessed() {
|
||||||
@@ -372,8 +385,11 @@
|
@@ -374,8 +387,11 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get group() {
|
get group() {
|
||||||
@@ -101,7 +101,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -468,6 +484,8 @@
|
@@ -470,6 +486,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 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
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")
|
||||||
) {
|
) {
|
||||||
@@ -522,6 +540,10 @@
|
@@ -524,6 +542,10 @@
|
||||||
this.style.MozUserFocus = "";
|
this.style.MozUserFocus = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -121,7 +121,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
on_click(event) {
|
on_click(event) {
|
||||||
if (event.button != 0) {
|
if (event.button != 0) {
|
||||||
return;
|
return;
|
||||||
@@ -570,6 +592,7 @@
|
@@ -572,6 +594,7 @@
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
@@ -129,7 +129,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
gBrowser.removeTab(this, {
|
gBrowser.removeTab(this, {
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
@@ -582,6 +605,14 @@
|
@@ -584,6 +607,14 @@
|
||||||
// (see tabbrowser-tabs 'click' handler).
|
// (see tabbrowser-tabs 'click' handler).
|
||||||
gBrowser.tabContainer._blockDblClick = true;
|
gBrowser.tabContainer._blockDblClick = true;
|
||||||
}
|
}
|
||||||
@@ -144,7 +144,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
|||||||
}
|
}
|
||||||
|
|
||||||
on_dblclick(event) {
|
on_dblclick(event) {
|
||||||
@@ -605,6 +636,8 @@
|
@@ -607,6 +638,8 @@
|
||||||
animate: true,
|
animate: true,
|
||||||
triggeringEvent: event,
|
triggeringEvent: event,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
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 c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394b7dbc6a7 100644
|
index c0eafd4faf8d57b8486c5bf8917375850ec8147e..326bf96d9346aba7096d518fbf63cc349868d0d0 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
|
||||||
@@ -432,15 +432,64 @@
|
@@ -450,15 +450,64 @@
|
||||||
return this.tabContainer.visibleTabs;
|
return this.tabContainer.visibleTabs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,7 +69,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
set selectedTab(val) {
|
set selectedTab(val) {
|
||||||
if (
|
if (
|
||||||
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
||||||
@@ -588,6 +637,7 @@
|
@@ -613,6 +662,7 @@
|
||||||
this.tabpanels.appendChild(panel);
|
this.tabpanels.appendChild(panel);
|
||||||
|
|
||||||
let tab = this.tabs[0];
|
let tab = this.tabs[0];
|
||||||
@@ -77,7 +77,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tab.linkedPanel = uniqueId;
|
tab.linkedPanel = uniqueId;
|
||||||
this._selectedTab = tab;
|
this._selectedTab = tab;
|
||||||
this._selectedBrowser = browser;
|
this._selectedBrowser = browser;
|
||||||
@@ -873,13 +923,17 @@
|
@@ -898,13 +948,17 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.showTab(aTab);
|
this.showTab(aTab);
|
||||||
@@ -96,7 +96,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
aTab.setAttribute("pinned", "true");
|
aTab.setAttribute("pinned", "true");
|
||||||
this._updateTabBarForPinnedTabs();
|
this._updateTabBarForPinnedTabs();
|
||||||
@@ -892,11 +946,15 @@
|
@@ -917,11 +971,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#handleTabMove(aTab, () => {
|
this.#handleTabMove(aTab, () => {
|
||||||
@@ -113,7 +113,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
|
|
||||||
aTab.style.marginInlineStart = "";
|
aTab.style.marginInlineStart = "";
|
||||||
@@ -1073,6 +1131,8 @@
|
@@ -1098,6 +1156,8 @@
|
||||||
|
|
||||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
aIconURL &&
|
aIconURL &&
|
||||||
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
||||||
@@ -1082,6 +1142,9 @@
|
@@ -1107,6 +1167,9 @@
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -132,7 +132,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
let browser = this.getBrowserForTab(aTab);
|
let browser = this.getBrowserForTab(aTab);
|
||||||
browser.mIconURL = aIconURL;
|
browser.mIconURL = aIconURL;
|
||||||
@@ -1445,6 +1508,7 @@
|
@@ -1470,6 +1533,7 @@
|
||||||
if (!this._previewMode) {
|
if (!this._previewMode) {
|
||||||
newTab.recordTimeFromUnloadToReload();
|
newTab.recordTimeFromUnloadToReload();
|
||||||
newTab.updateLastAccessed();
|
newTab.updateLastAccessed();
|
||||||
@@ -140,7 +140,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
oldTab.updateLastAccessed();
|
oldTab.updateLastAccessed();
|
||||||
// if this is the foreground window, update the last-seen timestamps.
|
// if this is the foreground window, update the last-seen timestamps.
|
||||||
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
||||||
@@ -1597,6 +1661,9 @@
|
@@ -1622,6 +1686,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let activeEl = document.activeElement;
|
let activeEl = document.activeElement;
|
||||||
@@ -150,7 +150,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// If focus is on the old tab, move it to the new tab.
|
// If focus is on the old tab, move it to the new tab.
|
||||||
if (activeEl == oldTab) {
|
if (activeEl == oldTab) {
|
||||||
newTab.focus();
|
newTab.focus();
|
||||||
@@ -1920,7 +1987,8 @@
|
@@ -1945,7 +2012,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||||
@@ -160,7 +160,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2028,7 +2096,7 @@
|
@@ -2053,7 +2121,7 @@
|
||||||
newIndex = this.selectedTab._tPos + 1;
|
newIndex = this.selectedTab._tPos + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,7 +169,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (this.isTabGroupLabel(targetTab)) {
|
if (this.isTabGroupLabel(targetTab)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Replacing a tab group label with a tab is not supported"
|
"Replacing a tab group label with a tab is not supported"
|
||||||
@@ -2303,6 +2371,7 @@
|
@@ -2328,6 +2396,7 @@
|
||||||
uriIsAboutBlank,
|
uriIsAboutBlank,
|
||||||
userContextId,
|
userContextId,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -177,7 +177,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} = {}) {
|
} = {}) {
|
||||||
let b = document.createXULElement("browser");
|
let b = document.createXULElement("browser");
|
||||||
// Use the JSM global to create the permanentKey, so that if the
|
// Use the JSM global to create the permanentKey, so that if the
|
||||||
@@ -2376,8 +2445,7 @@
|
@@ -2401,8 +2470,7 @@
|
||||||
// we use a different attribute name for this?
|
// we use a different attribute name for this?
|
||||||
b.setAttribute("name", name);
|
b.setAttribute("name", name);
|
||||||
}
|
}
|
||||||
@@ -187,7 +187,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
b.setAttribute("transparent", "true");
|
b.setAttribute("transparent", "true");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2542,7 +2610,7 @@
|
@@ -2567,7 +2635,7 @@
|
||||||
|
|
||||||
let panel = this.getPanel(browser);
|
let panel = this.getPanel(browser);
|
||||||
let uniqueId = this._generateUniquePanelID();
|
let uniqueId = this._generateUniquePanelID();
|
||||||
@@ -196,7 +196,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
aTab.linkedPanel = uniqueId;
|
aTab.linkedPanel = uniqueId;
|
||||||
|
|
||||||
// Inject the <browser> into the DOM if necessary.
|
// Inject the <browser> into the DOM if necessary.
|
||||||
@@ -2601,8 +2669,8 @@
|
@@ -2626,8 +2694,8 @@
|
||||||
// If we transitioned from one browser to two browsers, we need to set
|
// If we transitioned from one browser to two browsers, we need to set
|
||||||
// hasSiblings=false on both the existing browser and the new browser.
|
// hasSiblings=false on both the existing browser and the new browser.
|
||||||
if (this.tabs.length == 2) {
|
if (this.tabs.length == 2) {
|
||||||
@@ -207,7 +207,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||||
}
|
}
|
||||||
@@ -2779,7 +2847,6 @@
|
@@ -2814,7 +2882,6 @@
|
||||||
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
|
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
|
||||||
tabIndex: tab._tPos + 1,
|
tabIndex: tab._tPos + 1,
|
||||||
userContextId: tab.userContextId,
|
userContextId: tab.userContextId,
|
||||||
@@ -215,7 +215,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
focusUrlBar: true,
|
focusUrlBar: true,
|
||||||
});
|
});
|
||||||
resolve(this.selectedBrowser);
|
resolve(this.selectedBrowser);
|
||||||
@@ -2859,6 +2926,8 @@
|
@@ -2923,6 +2990,8 @@
|
||||||
schemelessInput,
|
schemelessInput,
|
||||||
hasValidUserGestureActivation = false,
|
hasValidUserGestureActivation = false,
|
||||||
textDirectiveUserActivation = false,
|
textDirectiveUserActivation = false,
|
||||||
@@ -224,7 +224,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
// all callers of addTab that pass a params object need to pass
|
// all callers of addTab that pass a params object need to pass
|
||||||
@@ -2869,6 +2938,12 @@
|
@@ -2933,6 +3002,12 @@
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,7 +237,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||||
}
|
}
|
||||||
@@ -2932,6 +3007,19 @@
|
@@ -2996,6 +3071,19 @@
|
||||||
noInitialLabel,
|
noInitialLabel,
|
||||||
skipBackgroundNotify,
|
skipBackgroundNotify,
|
||||||
});
|
});
|
||||||
@@ -257,7 +257,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (insertTab) {
|
if (insertTab) {
|
||||||
// Insert the tab into the tab container in the correct position.
|
// Insert the tab into the tab container in the correct position.
|
||||||
this.#insertTabAtIndex(t, {
|
this.#insertTabAtIndex(t, {
|
||||||
@@ -2940,6 +3028,7 @@
|
@@ -3004,6 +3092,7 @@
|
||||||
ownerTab,
|
ownerTab,
|
||||||
openerTab,
|
openerTab,
|
||||||
pinned,
|
pinned,
|
||||||
@@ -265,7 +265,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
bulkOrderedOpen,
|
bulkOrderedOpen,
|
||||||
tabGroup: tabGroup ?? openerTab?.group,
|
tabGroup: tabGroup ?? openerTab?.group,
|
||||||
});
|
});
|
||||||
@@ -2958,6 +3047,7 @@
|
@@ -3022,6 +3111,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -273,7 +273,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
if (focusUrlBar) {
|
if (focusUrlBar) {
|
||||||
@@ -3078,6 +3168,12 @@
|
@@ -3146,6 +3236,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,7 +286,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// Additionally send pinned tab events
|
// Additionally send pinned tab events
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this.#notifyPinnedStatus(t);
|
this.#notifyPinnedStatus(t);
|
||||||
@@ -3248,10 +3344,10 @@
|
@@ -3330,10 +3426,10 @@
|
||||||
isAdoptingGroup = false,
|
isAdoptingGroup = false,
|
||||||
isUserTriggered = false,
|
isUserTriggered = false,
|
||||||
telemetryUserCreateSource = "unknown",
|
telemetryUserCreateSource = "unknown",
|
||||||
@@ -298,7 +298,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!color) {
|
if (!color) {
|
||||||
@@ -3272,9 +3368,14 @@
|
@@ -3354,9 +3450,14 @@
|
||||||
label,
|
label,
|
||||||
isAdoptingGroup
|
isAdoptingGroup
|
||||||
);
|
);
|
||||||
@@ -315,7 +315,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
group.addTabs(tabs);
|
group.addTabs(tabs);
|
||||||
|
|
||||||
@@ -3395,7 +3496,7 @@
|
@@ -3477,7 +3578,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
this.#handleTabMove(tab, () =>
|
this.#handleTabMove(tab, () =>
|
||||||
@@ -324,7 +324,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3597,6 +3698,7 @@
|
@@ -3679,6 +3780,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
triggeringRemoteType,
|
triggeringRemoteType,
|
||||||
@@ -332,7 +332,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||||
@@ -3666,6 +3768,7 @@
|
@@ -3748,6 +3850,7 @@
|
||||||
openWindowInfo,
|
openWindowInfo,
|
||||||
name,
|
name,
|
||||||
skipLoad,
|
skipLoad,
|
||||||
@@ -340,7 +340,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3853,7 +3956,7 @@
|
@@ -3935,7 +4038,7 @@
|
||||||
// Add a new tab if needed.
|
// Add a new tab if needed.
|
||||||
if (!tab) {
|
if (!tab) {
|
||||||
let createLazyBrowser =
|
let createLazyBrowser =
|
||||||
@@ -349,7 +349,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
let url = "about:blank";
|
let url = "about:blank";
|
||||||
if (tabData.entries?.length) {
|
if (tabData.entries?.length) {
|
||||||
@@ -3890,8 +3993,10 @@
|
@@ -3972,8 +4075,10 @@
|
||||||
insertTab: false,
|
insertTab: false,
|
||||||
skipLoad: true,
|
skipLoad: true,
|
||||||
preferredRemoteType,
|
preferredRemoteType,
|
||||||
@@ -361,7 +361,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (select) {
|
if (select) {
|
||||||
tabToSelect = tab;
|
tabToSelect = tab;
|
||||||
}
|
}
|
||||||
@@ -3903,7 +4008,8 @@
|
@@ -3985,7 +4090,8 @@
|
||||||
this.pinTab(tab);
|
this.pinTab(tab);
|
||||||
// Then ensure all the tab open/pinning information is sent.
|
// Then ensure all the tab open/pinning information is sent.
|
||||||
this._fireTabOpen(tab, {});
|
this._fireTabOpen(tab, {});
|
||||||
@@ -371,7 +371,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
let { groupId } = tabData;
|
let { groupId } = tabData;
|
||||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||||
// if a tab refers to a tab group we don't know, skip any group
|
// if a tab refers to a tab group we don't know, skip any group
|
||||||
@@ -3917,7 +4023,10 @@
|
@@ -3999,7 +4105,10 @@
|
||||||
tabGroup.stateData.id,
|
tabGroup.stateData.id,
|
||||||
tabGroup.stateData.color,
|
tabGroup.stateData.color,
|
||||||
tabGroup.stateData.collapsed,
|
tabGroup.stateData.collapsed,
|
||||||
@@ -383,7 +383,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
tabsFragment.appendChild(tabGroup.node);
|
tabsFragment.appendChild(tabGroup.node);
|
||||||
}
|
}
|
||||||
@@ -3962,9 +4071,23 @@
|
@@ -4044,9 +4153,23 @@
|
||||||
// to remove the old selected tab.
|
// to remove the old selected tab.
|
||||||
if (tabToSelect) {
|
if (tabToSelect) {
|
||||||
let leftoverTab = this.selectedTab;
|
let leftoverTab = this.selectedTab;
|
||||||
@@ -407,7 +407,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
if (tabs.length > 1 || !tabs[0].selected) {
|
if (tabs.length > 1 || !tabs[0].selected) {
|
||||||
this._updateTabsAfterInsert();
|
this._updateTabsAfterInsert();
|
||||||
@@ -4155,11 +4278,14 @@
|
@@ -4237,11 +4360,14 @@
|
||||||
if (ownerTab) {
|
if (ownerTab) {
|
||||||
tab.owner = ownerTab;
|
tab.owner = ownerTab;
|
||||||
}
|
}
|
||||||
@@ -423,7 +423,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
!bulkOrderedOpen &&
|
!bulkOrderedOpen &&
|
||||||
((openerTab &&
|
((openerTab &&
|
||||||
@@ -4171,7 +4297,7 @@
|
@@ -4253,7 +4379,7 @@
|
||||||
let lastRelatedTab =
|
let lastRelatedTab =
|
||||||
openerTab && this._lastRelatedTabMap.get(openerTab);
|
openerTab && this._lastRelatedTabMap.get(openerTab);
|
||||||
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
|
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
|
||||||
@@ -432,7 +432,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tabGroup = previousTab.group;
|
tabGroup = previousTab.group;
|
||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
@@ -4182,7 +4308,7 @@
|
@@ -4264,7 +4390,7 @@
|
||||||
) {
|
) {
|
||||||
elementIndex = Infinity;
|
elementIndex = Infinity;
|
||||||
} else if (previousTab.visible) {
|
} else if (previousTab.visible) {
|
||||||
@@ -441,7 +441,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else if (previousTab == FirefoxViewHandler.tab) {
|
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||||
elementIndex = 0;
|
elementIndex = 0;
|
||||||
}
|
}
|
||||||
@@ -4210,14 +4336,14 @@
|
@@ -4292,14 +4418,14 @@
|
||||||
}
|
}
|
||||||
// Ensure index is within bounds.
|
// Ensure index is within bounds.
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -460,7 +460,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
if (pinned && !itemAfter?.pinned) {
|
if (pinned && !itemAfter?.pinned) {
|
||||||
itemAfter = null;
|
itemAfter = null;
|
||||||
@@ -4228,7 +4354,7 @@
|
@@ -4310,7 +4436,7 @@
|
||||||
|
|
||||||
this.tabContainer._invalidateCachedTabs();
|
this.tabContainer._invalidateCachedTabs();
|
||||||
|
|
||||||
@@ -469,7 +469,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||||
// Place at the front of, or between tabs in, the same tab group
|
// Place at the front of, or between tabs in, the same tab group
|
||||||
this.tabContainer.insertBefore(tab, itemAfter);
|
this.tabContainer.insertBefore(tab, itemAfter);
|
||||||
@@ -4264,6 +4390,7 @@
|
@@ -4346,6 +4472,7 @@
|
||||||
if (pinned) {
|
if (pinned) {
|
||||||
this._updateTabBarForPinnedTabs();
|
this._updateTabBarForPinnedTabs();
|
||||||
}
|
}
|
||||||
@@ -477,7 +477,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -4553,6 +4680,9 @@
|
@@ -4635,6 +4762,9 @@
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -487,7 +487,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4814,6 +4944,7 @@
|
@@ -4896,6 +5026,7 @@
|
||||||
telemetrySource,
|
telemetrySource,
|
||||||
} = {}
|
} = {}
|
||||||
) {
|
) {
|
||||||
@@ -495,7 +495,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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 (
|
||||||
@@ -4903,6 +5034,7 @@
|
@@ -4985,6 +5116,7 @@
|
||||||
if (lastToClose) {
|
if (lastToClose) {
|
||||||
this.removeTab(lastToClose, aParams);
|
this.removeTab(lastToClose, aParams);
|
||||||
}
|
}
|
||||||
@@ -503,7 +503,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
@@ -4941,6 +5073,12 @@
|
@@ -5023,6 +5155,12 @@
|
||||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -516,7 +516,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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) {
|
||||||
@@ -4955,6 +5093,9 @@
|
@@ -5037,6 +5175,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);
|
||||||
@@ -526,7 +526,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (
|
if (
|
||||||
!this._beginRemoveTab(aTab, {
|
!this._beginRemoveTab(aTab, {
|
||||||
closeWindowFastpath: true,
|
closeWindowFastpath: true,
|
||||||
@@ -5003,7 +5144,13 @@
|
@@ -5085,7 +5226,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;
|
||||||
@@ -541,7 +541,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5137,7 +5284,7 @@
|
@@ -5219,7 +5366,7 @@
|
||||||
closeWindowWithLastTab != null
|
closeWindowWithLastTab != null
|
||||||
? closeWindowWithLastTab
|
? closeWindowWithLastTab
|
||||||
: !window.toolbar.visible ||
|
: !window.toolbar.visible ||
|
||||||
@@ -550,7 +550,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
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,
|
||||||
@@ -5161,6 +5308,7 @@
|
@@ -5243,6 +5390,7 @@
|
||||||
|
|
||||||
newTab = true;
|
newTab = true;
|
||||||
}
|
}
|
||||||
@@ -558,7 +558,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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.
|
||||||
@@ -5201,13 +5349,7 @@
|
@@ -5283,13 +5431,7 @@
|
||||||
aTab._mouseleave();
|
aTab._mouseleave();
|
||||||
|
|
||||||
if (newTab) {
|
if (newTab) {
|
||||||
@@ -573,7 +573,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
TabBarVisibility.update();
|
TabBarVisibility.update();
|
||||||
}
|
}
|
||||||
@@ -5340,6 +5482,7 @@
|
@@ -5422,6 +5564,7 @@
|
||||||
this.tabs[i]._tPos = i;
|
this.tabs[i]._tPos = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -581,7 +581,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (!this._windowIsClosing) {
|
if (!this._windowIsClosing) {
|
||||||
// update tab close buttons state
|
// update tab close buttons state
|
||||||
this.tabContainer._updateCloseButtons();
|
this.tabContainer._updateCloseButtons();
|
||||||
@@ -5552,6 +5695,7 @@
|
@@ -5643,6 +5786,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let excludeTabs = new Set(aExcludeTabs);
|
let excludeTabs = new Set(aExcludeTabs);
|
||||||
@@ -589,7 +589,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
|
|
||||||
// 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.
|
||||||
@@ -5564,13 +5708,13 @@
|
@@ -5655,13 +5799,13 @@
|
||||||
!excludeTabs.has(aTab.owner) &&
|
!excludeTabs.has(aTab.owner) &&
|
||||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||||
) {
|
) {
|
||||||
@@ -605,7 +605,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
);
|
);
|
||||||
|
|
||||||
let tab = this.tabContainer.findNextTab(aTab, {
|
let tab = this.tabContainer.findNextTab(aTab, {
|
||||||
@@ -5586,7 +5730,7 @@
|
@@ -5677,7 +5821,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tab) {
|
if (tab) {
|
||||||
@@ -614,7 +614,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 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
|
||||||
@@ -5607,7 +5751,7 @@
|
@@ -5698,7 +5842,7 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -623,7 +623,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
_blurTab(aTab) {
|
_blurTab(aTab) {
|
||||||
@@ -6013,10 +6157,10 @@
|
@@ -6104,10 +6248,10 @@
|
||||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -636,7 +636,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
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.
|
||||||
@@ -6075,6 +6219,7 @@
|
@@ -6166,6 +6310,7 @@
|
||||||
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
||||||
*/
|
*/
|
||||||
replaceTabWithWindow(aTab, aOptions) {
|
replaceTabWithWindow(aTab, aOptions) {
|
||||||
@@ -644,7 +644,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (this.tabs.length == 1) {
|
if (this.tabs.length == 1) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -6208,7 +6353,7 @@
|
@@ -6299,7 +6444,7 @@
|
||||||
* `true` if element is a `<tab-group>`
|
* `true` if element is a `<tab-group>`
|
||||||
*/
|
*/
|
||||||
isTabGroup(element) {
|
isTabGroup(element) {
|
||||||
@@ -653,7 +653,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -6284,8 +6429,8 @@
|
@@ -6375,8 +6520,8 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't allow mixing pinned and unpinned tabs.
|
// Don't allow mixing pinned and unpinned tabs.
|
||||||
@@ -664,7 +664,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else {
|
} else {
|
||||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||||
}
|
}
|
||||||
@@ -6311,10 +6456,16 @@
|
@@ -6402,10 +6547,16 @@
|
||||||
this.#handleTabMove(
|
this.#handleTabMove(
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
@@ -683,7 +683,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||||
neighbor.after(element);
|
neighbor.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6372,23 +6523,28 @@
|
@@ -6463,23 +6614,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;
|
||||||
@@ -718,7 +718,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} 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
|
||||||
@@ -6401,14 +6557,34 @@
|
@@ -6492,14 +6648,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.
|
||||||
@@ -754,7 +754,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
element.pinned
|
element.pinned
|
||||||
? this.tabContainer.pinnedTabsContainer
|
? this.tabContainer.pinnedTabsContainer
|
||||||
: this.tabContainer;
|
: this.tabContainer;
|
||||||
@@ -6417,7 +6593,7 @@
|
@@ -6508,7 +6684,7 @@
|
||||||
element,
|
element,
|
||||||
() => {
|
() => {
|
||||||
if (moveBefore) {
|
if (moveBefore) {
|
||||||
@@ -763,7 +763,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
} else if (targetElement) {
|
} else if (targetElement) {
|
||||||
targetElement.after(element);
|
targetElement.after(element);
|
||||||
} else {
|
} else {
|
||||||
@@ -6489,10 +6665,10 @@
|
@@ -6580,10 +6756,10 @@
|
||||||
* @param {TabMetricsContext} [metricsContext]
|
* @param {TabMetricsContext} [metricsContext]
|
||||||
*/
|
*/
|
||||||
moveTabToGroup(aTab, aGroup, metricsContext) {
|
moveTabToGroup(aTab, aGroup, metricsContext) {
|
||||||
@@ -776,7 +776,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||||
@@ -6522,6 +6698,7 @@
|
@@ -6613,6 +6789,7 @@
|
||||||
|
|
||||||
let state = {
|
let state = {
|
||||||
tabIndex: tab._tPos,
|
tabIndex: tab._tPos,
|
||||||
@@ -784,7 +784,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
};
|
};
|
||||||
if (tab.visible) {
|
if (tab.visible) {
|
||||||
state.elementIndex = tab.elementIndex;
|
state.elementIndex = tab.elementIndex;
|
||||||
@@ -6548,7 +6725,7 @@
|
@@ -6639,7 +6816,7 @@
|
||||||
let changedTabGroup =
|
let changedTabGroup =
|
||||||
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
||||||
|
|
||||||
@@ -793,7 +793,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
tab.dispatchEvent(
|
tab.dispatchEvent(
|
||||||
new CustomEvent("TabMove", {
|
new CustomEvent("TabMove", {
|
||||||
bubbles: true,
|
bubbles: true,
|
||||||
@@ -6585,6 +6762,10 @@
|
@@ -6676,6 +6853,10 @@
|
||||||
|
|
||||||
moveActionCallback();
|
moveActionCallback();
|
||||||
|
|
||||||
@@ -804,7 +804,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// 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();
|
||||||
@@ -7486,7 +7667,7 @@
|
@@ -7576,7 +7757,7 @@
|
||||||
// preventDefault(). It will still raise the window if appropriate.
|
// preventDefault(). It will still raise the window if appropriate.
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -813,7 +813,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
window.focus();
|
window.focus();
|
||||||
aEvent.preventDefault();
|
aEvent.preventDefault();
|
||||||
break;
|
break;
|
||||||
@@ -7501,7 +7682,6 @@
|
@@ -7593,7 +7774,6 @@
|
||||||
}
|
}
|
||||||
case "TabGroupCollapse":
|
case "TabGroupCollapse":
|
||||||
aEvent.target.tabs.forEach(tab => {
|
aEvent.target.tabs.forEach(tab => {
|
||||||
@@ -821,7 +821,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "TabGroupCreateByUser":
|
case "TabGroupCreateByUser":
|
||||||
@@ -8442,6 +8622,7 @@
|
@@ -8542,6 +8722,7 @@
|
||||||
aWebProgress.isTopLevel
|
aWebProgress.isTopLevel
|
||||||
) {
|
) {
|
||||||
this.mTab.setAttribute("busy", "true");
|
this.mTab.setAttribute("busy", "true");
|
||||||
@@ -829,7 +829,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||||
}
|
}
|
||||||
@@ -9443,7 +9624,7 @@ var TabContextMenu = {
|
@@ -9543,7 +9724,7 @@ var TabContextMenu = {
|
||||||
);
|
);
|
||||||
contextUnpinSelectedTabs.hidden =
|
contextUnpinSelectedTabs.hidden =
|
||||||
!this.contextTab.pinned || !this.multiselected;
|
!this.contextTab.pinned || !this.multiselected;
|
||||||
@@ -838,7 +838,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
|||||||
// Build Ask Chat items
|
// Build Ask Chat items
|
||||||
TabContextMenu.GenAI.buildTabMenu(
|
TabContextMenu.GenAI.buildTabMenu(
|
||||||
document.getElementById("context_askChat"),
|
document.getElementById("context_askChat"),
|
||||||
@@ -9763,6 +9944,7 @@ var TabContextMenu = {
|
@@ -9863,6 +10044,7 @@ var TabContextMenu = {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
||||||
index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b424098ba3e7b 100644
|
index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabgroup.js
|
--- a/browser/components/tabbrowser/content/tabgroup.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
||||||
@@ -14,11 +14,11 @@
|
@@ -14,11 +14,11 @@
|
||||||
@@ -77,8 +77,8 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
+ };
|
+ };
|
||||||
|
|
||||||
this.#updateLabelAriaAttributes();
|
this.#updateLabelAriaAttributes();
|
||||||
this.#updateCollapsedAriaAttributes();
|
|
||||||
@@ -144,6 +163,8 @@
|
@@ -143,6 +162,8 @@
|
||||||
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
||||||
this.#wasCreatedByAdoption = false;
|
this.#wasCreatedByAdoption = false;
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
|
|
||||||
resetDefaultGroupName = () => {
|
resetDefaultGroupName = () => {
|
||||||
this.#defaultGroupName = "";
|
this.#defaultGroupName = "";
|
||||||
@@ -228,7 +249,10 @@
|
@@ -227,7 +248,10 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -99,7 +99,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
|
|
||||||
get color() {
|
get color() {
|
||||||
@@ -322,6 +346,9 @@
|
@@ -321,6 +345,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
set collapsed(val) {
|
set collapsed(val) {
|
||||||
@@ -109,7 +109,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
if (!!val == this.collapsed) {
|
if (!!val == this.collapsed) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -399,7 +426,6 @@
|
@@ -406,7 +433,6 @@
|
||||||
tabGroupName,
|
tabGroupName,
|
||||||
})
|
})
|
||||||
.then(result => {
|
.then(result => {
|
||||||
@@ -117,7 +117,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -418,7 +444,57 @@
|
@@ -425,7 +451,57 @@
|
||||||
* @returns {MozTabbrowserTab[]}
|
* @returns {MozTabbrowserTab[]}
|
||||||
*/
|
*/
|
||||||
get tabs() {
|
get tabs() {
|
||||||
@@ -176,7 +176,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -498,7 +574,6 @@
|
@@ -506,7 +582,6 @@
|
||||||
addTabs(tabs, metricsContext) {
|
addTabs(tabs, metricsContext) {
|
||||||
for (let tab of tabs) {
|
for (let tab of tabs) {
|
||||||
if (tab.pinned) {
|
if (tab.pinned) {
|
||||||
@@ -184,7 +184,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
}
|
}
|
||||||
let tabToMove =
|
let tabToMove =
|
||||||
this.ownerGlobal === tab.ownerGlobal
|
this.ownerGlobal === tab.ownerGlobal
|
||||||
@@ -561,7 +636,7 @@
|
@@ -569,7 +644,7 @@
|
||||||
*/
|
*/
|
||||||
on_click(event) {
|
on_click(event) {
|
||||||
let isToggleElement =
|
let isToggleElement =
|
||||||
@@ -193,7 +193,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
|||||||
event.target === this.#overflowCountLabel;
|
event.target === this.#overflowCountLabel;
|
||||||
if (isToggleElement && event.button === 0) {
|
if (isToggleElement && event.button === 0) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@@ -630,5 +705,6 @@
|
@@ -638,5 +713,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,8 @@
|
|||||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||||
index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78bec02d253a 100644
|
index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2a736d9f8 100644
|
||||||
--- a/browser/components/tabbrowser/content/tabs.js
|
--- a/browser/components/tabbrowser/content/tabs.js
|
||||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||||
@@ -44,6 +44,9 @@
|
@@ -411,7 +411,7 @@
|
||||||
* @returns {MozTabbrowserTab|vbox}
|
|
||||||
*/
|
|
||||||
const elementToMove = element => {
|
|
||||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ return element.group;
|
|
||||||
+ }
|
|
||||||
if (isTab(element)) {
|
|
||||||
return element;
|
|
||||||
}
|
|
||||||
@@ -423,7 +426,7 @@
|
|
||||||
// and we're not hitting the scroll buttons.
|
// and we're not hitting the scroll buttons.
|
||||||
if (
|
if (
|
||||||
event.button != 0 ||
|
event.button != 0 ||
|
||||||
@@ -21,7 +11,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
event.composedTarget.localName == "toolbarbutton"
|
event.composedTarget.localName == "toolbarbutton"
|
||||||
) {
|
) {
|
||||||
return;
|
return;
|
||||||
@@ -504,7 +507,6 @@
|
@@ -492,7 +492,6 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if (isTabGroupLabel(event.target)) {
|
} else if (isTabGroupLabel(event.target)) {
|
||||||
@@ -29,7 +19,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
} else if (
|
} else if (
|
||||||
event.originalTarget.closest("scrollbox") &&
|
event.originalTarget.closest("scrollbox") &&
|
||||||
!Services.prefs.getBoolPref(
|
!Services.prefs.getBoolPref(
|
||||||
@@ -540,6 +542,9 @@
|
@@ -528,6 +527,9 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
on_keydown(event) {
|
on_keydown(event) {
|
||||||
@@ -39,153 +29,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
let { altKey, shiftKey } = event;
|
let { altKey, shiftKey } = event;
|
||||||
let [accel, nonAccel] =
|
let [accel, nonAccel] =
|
||||||
AppConstants.platform == "macosx"
|
AppConstants.platform == "macosx"
|
||||||
@@ -777,7 +782,7 @@
|
@@ -720,7 +722,6 @@
|
||||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
|
||||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
|
||||||
// Set this before adjusting dragged tab's position
|
|
||||||
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
|
||||||
+ let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
|
||||||
let tabsPerRow = 0;
|
|
||||||
let position = RTL_UI
|
|
||||||
? window.windowUtils.getBoundsWithoutFlushing(
|
|
||||||
@@ -942,7 +947,7 @@
|
|
||||||
let dropEffect = this.getDropEffectForTabDrag(event);
|
|
||||||
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
|
||||||
let collapseTabGroupDuringDrag =
|
|
||||||
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
|
||||||
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
|
||||||
|
|
||||||
tab._dragData = {
|
|
||||||
offsetX: this.verticalMode
|
|
||||||
@@ -952,7 +957,7 @@
|
|
||||||
? event.screenY - window.screenY - tabOffset
|
|
||||||
: event.screenY - window.screenY,
|
|
||||||
scrollPos:
|
|
||||||
- this.verticalMode && tab.pinned
|
|
||||||
+ this.verticalMode && tab.pinned && false
|
|
||||||
? this.pinnedTabsContainer.scrollPosition
|
|
||||||
: this.arrowScrollbox.scrollPosition,
|
|
||||||
screenX: event.screenX,
|
|
||||||
@@ -981,6 +986,7 @@
|
|
||||||
|
|
||||||
if (collapseTabGroupDuringDrag) {
|
|
||||||
tab.group.collapsed = true;
|
|
||||||
+ gZenFolders.animateGroupMove(tab.group);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1027,6 +1033,10 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
|
||||||
+ if (draggedTab && dropEffect === "move") {
|
|
||||||
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
|
||||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
|
||||||
+ }
|
|
||||||
if (
|
|
||||||
(dropEffect == "move" || dropEffect == "copy") &&
|
|
||||||
document == draggedTab.ownerDocument &&
|
|
||||||
@@ -1154,7 +1164,8 @@
|
|
||||||
isTabGroupLabel(draggedTab) &&
|
|
||||||
draggedTab._dragData?.expandGroupOnDrop
|
|
||||||
) {
|
|
||||||
- draggedTab.group.collapsed = false;
|
|
||||||
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
|
||||||
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1208,6 +1219,18 @@
|
|
||||||
|
|
||||||
this._tabDropIndicator.hidden = true;
|
|
||||||
event.stopPropagation();
|
|
||||||
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
|
||||||
+ draggedTab.removeAttribute("zen-has-splitted");
|
|
||||||
+ draggedTab._visuallySelected = false;
|
|
||||||
+ }
|
|
||||||
+ if (draggedTab && dropEffect == "move") {
|
|
||||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
|
||||||
+
|
|
||||||
+ if (moved) {
|
|
||||||
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
if (draggedTab && dropEffect == "copy") {
|
|
||||||
let duplicatedDraggedTab;
|
|
||||||
let duplicatedTabs = [];
|
|
||||||
@@ -1232,8 +1255,9 @@
|
|
||||||
let translateOffsetY = oldTranslateY % tabHeight;
|
|
||||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
|
||||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
|
||||||
- let isPinned = draggedTab.pinned;
|
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
|
||||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
|
||||||
|
|
||||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
|
||||||
// Update both translate axis for pinned vertical expanded tabs
|
|
||||||
@@ -1249,8 +1273,8 @@
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let tabs = this.ariaFocusableItems.slice(
|
|
||||||
- isPinned ? 0 : numPinned,
|
|
||||||
- isPinned ? numPinned : undefined
|
|
||||||
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
|
||||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
|
||||||
);
|
|
||||||
let size = this.verticalMode ? "height" : "width";
|
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
|
||||||
@@ -1299,11 +1323,13 @@
|
|
||||||
this.dragToPinPromoCard,
|
|
||||||
];
|
|
||||||
let shouldPin =
|
|
||||||
+ false &&
|
|
||||||
isTab(draggedTab) &&
|
|
||||||
!draggedTab.pinned &&
|
|
||||||
(overPinnedDropIndicator ||
|
|
||||||
dragToPinTargets.some(el => el.contains(event.target)));
|
|
||||||
let shouldUnpin =
|
|
||||||
+ false &&
|
|
||||||
isTab(draggedTab) &&
|
|
||||||
draggedTab.pinned &&
|
|
||||||
this.arrowScrollbox.contains(event.target);
|
|
||||||
@@ -1321,6 +1347,7 @@
|
|
||||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
|
||||||
} else if (this.verticalMode) {
|
|
||||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
|
||||||
+ shouldTranslate = false;
|
|
||||||
} else {
|
|
||||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
|
||||||
}
|
|
||||||
@@ -1515,6 +1542,7 @@
|
|
||||||
|
|
||||||
let nextItem = this.ariaFocusableItems[newIndex];
|
|
||||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
|
||||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
|
||||||
gBrowser.loadTabs(urls, {
|
|
||||||
inBackground,
|
|
||||||
replace,
|
|
||||||
@@ -1553,6 +1581,17 @@
|
|
||||||
}
|
|
||||||
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
|
||||||
|
|
||||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
|
||||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
|
||||||
+ if (moved) {
|
|
||||||
+ delete draggedTab._dragData;
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+ } else if (dt.mozUserCancelled) {
|
|
||||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
|
||||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (
|
|
||||||
dt.mozUserCancelled ||
|
|
||||||
dt.dropEffect != "none" ||
|
|
||||||
@@ -1719,7 +1758,6 @@
|
|
||||||
|
|
||||||
this.toggleAttribute("overflow", true);
|
this.toggleAttribute("overflow", true);
|
||||||
this._updateCloseButtons();
|
this._updateCloseButtons();
|
||||||
@@ -193,7 +37,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
|
|
||||||
document
|
document
|
||||||
.getElementById("tab-preview-panel")
|
.getElementById("tab-preview-panel")
|
||||||
@@ -1777,7 +1815,7 @@
|
@@ -780,7 +781,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get newTabButton() {
|
get newTabButton() {
|
||||||
@@ -202,7 +46,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
get verticalMode() {
|
get verticalMode() {
|
||||||
@@ -1793,6 +1831,7 @@
|
@@ -796,6 +797,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
get overflowing() {
|
get overflowing() {
|
||||||
@@ -210,7 +54,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
return this.hasAttribute("overflow");
|
return this.hasAttribute("overflow");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1806,29 +1845,54 @@
|
@@ -809,29 +811,54 @@
|
||||||
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
||||||
pinnedChildren.pop();
|
pinnedChildren.pop();
|
||||||
}
|
}
|
||||||
@@ -275,7 +119,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1895,29 +1959,23 @@
|
@@ -898,17 +925,10 @@
|
||||||
|
|
||||||
let elementIndex = 0;
|
let elementIndex = 0;
|
||||||
|
|
||||||
@@ -295,26 +139,22 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
if (isTab(child) && child.visible) {
|
if (isTab(child) && child.visible) {
|
||||||
child.elementIndex = elementIndex++;
|
child.elementIndex = elementIndex++;
|
||||||
focusableItems.push(child);
|
focusableItems.push(child);
|
||||||
} else if (isTabGroup(child)) {
|
@@ -916,11 +936,13 @@
|
||||||
child.labelElement.elementIndex = elementIndex++;
|
child.labelElement.elementIndex = elementIndex++;
|
||||||
focusableItems.push(child.labelElement);
|
focusableItems.push(child.labelElement);
|
||||||
-
|
|
||||||
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||||
- visibleTabsInGroup.forEach(tab => {
|
|
||||||
- tab.elementIndex = elementIndex++;
|
|
||||||
- });
|
|
||||||
- focusableItems.push(...visibleTabsInGroup);
|
|
||||||
+ if (!child.hasAttribute("split-view-group")) {
|
+ if (!child.hasAttribute("split-view-group")) {
|
||||||
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
||||||
+ visibleTabsInGroup.forEach(tab => {
|
visibleTabsInGroup.forEach(tab => {
|
||||||
+ tab.elementIndex = elementIndex++;
|
tab.elementIndex = elementIndex++;
|
||||||
+ });
|
});
|
||||||
+ focusableItems.push(...visibleTabsInGroup);
|
focusableItems.push(...visibleTabsInGroup);
|
||||||
+ }
|
+ }
|
||||||
}
|
} else if (child.tagName == "tab-split-view-wrapper") {
|
||||||
}
|
let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible);
|
||||||
|
visibleTabsInSplitView.forEach(tab => {
|
||||||
@@ -1929,6 +1987,7 @@
|
@@ -964,6 +986,7 @@
|
||||||
_invalidateCachedTabs() {
|
_invalidateCachedTabs() {
|
||||||
this.#allTabs = null;
|
this.#allTabs = null;
|
||||||
this._invalidateCachedVisibleTabs();
|
this._invalidateCachedVisibleTabs();
|
||||||
@@ -322,18 +162,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
_invalidateCachedVisibleTabs() {
|
_invalidateCachedVisibleTabs() {
|
||||||
@@ -1944,8 +2003,8 @@
|
@@ -1067,7 +1090,7 @@
|
||||||
#isContainerVerticalPinnedGrid(tab) {
|
|
||||||
return (
|
|
||||||
this.verticalMode &&
|
|
||||||
- tab.pinned &&
|
|
||||||
- this.hasAttribute("expanded") &&
|
|
||||||
+ (tab.hasAttribute("zen-essential")) &&
|
|
||||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
|
||||||
!this.expandOnHover
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -1961,7 +2020,7 @@
|
|
||||||
|
|
||||||
if (node == null) {
|
if (node == null) {
|
||||||
// We have a container for non-tab elements at the end of the scrollbox.
|
// We have a container for non-tab elements at the end of the scrollbox.
|
||||||
@@ -342,7 +171,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
}
|
}
|
||||||
|
|
||||||
node.before(tab);
|
node.before(tab);
|
||||||
@@ -2056,7 +2115,7 @@
|
@@ -1162,7 +1185,7 @@
|
||||||
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
// There are separate "new tab" buttons for horizontal tabs toolbar, vertical tabs and
|
||||||
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
// for when the tab strip is overflowed (which is shared by vertical and horizontal tabs);
|
||||||
// Attach the long click popup to all of them.
|
// Attach the long click popup to all of them.
|
||||||
@@ -351,7 +180,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
const newTab2 = this.newTabButton;
|
const newTab2 = this.newTabButton;
|
||||||
const newTabVertical = document.getElementById(
|
const newTabVertical = document.getElementById(
|
||||||
"vertical-tabs-newtab-button"
|
"vertical-tabs-newtab-button"
|
||||||
@@ -2156,8 +2215,10 @@
|
@@ -1263,8 +1286,10 @@
|
||||||
*/
|
*/
|
||||||
_handleTabSelect(aInstant) {
|
_handleTabSelect(aInstant) {
|
||||||
let selectedTab = this.selectedItem;
|
let selectedTab = this.selectedItem;
|
||||||
@@ -362,7 +191,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
selectedTab._notselectedsinceload = false;
|
selectedTab._notselectedsinceload = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2166,7 +2227,7 @@
|
@@ -1273,7 +1298,7 @@
|
||||||
* @param {boolean} [shouldScrollInstantly=false]
|
* @param {boolean} [shouldScrollInstantly=false]
|
||||||
*/
|
*/
|
||||||
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
||||||
@@ -371,265 +200,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
if (arrowScrollbox?.overflowing) {
|
if (arrowScrollbox?.overflowing) {
|
||||||
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
||||||
}
|
}
|
||||||
@@ -2305,6 +2366,16 @@
|
@@ -1406,7 +1431,7 @@
|
||||||
when the tab is first selected to be dragged.
|
|
||||||
*/
|
|
||||||
#updateTabStylesOnDrag(tab) {
|
|
||||||
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
|
||||||
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
|
||||||
+ if (isTabGroupLabel(tab)) {
|
|
||||||
+ movingTab = movingTab.parentElement;
|
|
||||||
+ }
|
|
||||||
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
|
||||||
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
|
||||||
+ movingTab.setAttribute("zen-dragtarget", "");
|
|
||||||
+ }
|
|
||||||
+ return;
|
|
||||||
let isPinned = tab.pinned;
|
|
||||||
let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
let allTabs = this.ariaFocusableItems;
|
|
||||||
@@ -2578,7 +2649,7 @@
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
- let tabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
|
||||||
+ let tabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
|
||||||
|
|
||||||
let directionX = screenX > dragData.animLastScreenX;
|
|
||||||
let directionY = screenY > dragData.animLastScreenY;
|
|
||||||
@@ -2587,6 +2658,8 @@
|
|
||||||
|
|
||||||
let { width: tabWidth, height: tabHeight } =
|
|
||||||
draggedTab.getBoundingClientRect();
|
|
||||||
+ tabWidth += 4; // Add 4px to account for the gap
|
|
||||||
+ tabHeight += 4;
|
|
||||||
let shiftSizeX = tabWidth * movingTabs.length;
|
|
||||||
let shiftSizeY = tabHeight;
|
|
||||||
dragData.tabWidth = tabWidth;
|
|
||||||
@@ -2623,8 +2696,8 @@
|
|
||||||
let lastBoundX =
|
|
||||||
lastTabInRow.screenX +
|
|
||||||
lastTabInRow.getBoundingClientRect().width -
|
|
||||||
- (lastMovingTabScreenX + tabWidth);
|
|
||||||
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
|
||||||
+ (lastMovingTabScreenX + tabWidth) + 4;
|
|
||||||
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
|
||||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
|
||||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
|
||||||
|
|
||||||
@@ -2782,13 +2855,18 @@
|
|
||||||
this.#clearDragOverGroupingTimer();
|
|
||||||
this.#clearPinnedDropIndicatorTimer();
|
|
||||||
|
|
||||||
- let isPinned = draggedTab.pinned;
|
|
||||||
- let numPinned = gBrowser.pinnedTabCount;
|
|
||||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
|
||||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
|
||||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
|
||||||
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
|
||||||
let allTabs = this.ariaFocusableItems;
|
|
||||||
let tabs = allTabs.slice(
|
|
||||||
- isPinned ? 0 : numPinned,
|
|
||||||
- isPinned ? numPinned : undefined
|
|
||||||
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
|
||||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
|
||||||
);
|
|
||||||
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ draggedTab = draggedTab.group.labelElement;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (this.#rtlMode) {
|
|
||||||
tabs.reverse();
|
|
||||||
@@ -2799,7 +2877,7 @@
|
|
||||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
|
||||||
let size = this.verticalMode ? "height" : "width";
|
|
||||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
|
||||||
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
|
||||||
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
|
||||||
let tabSize = this.verticalMode ? tabHeight : tabWidth;
|
|
||||||
let translateX = event.screenX - dragData.screenX;
|
|
||||||
let translateY = event.screenY - dragData.screenY;
|
|
||||||
@@ -2815,6 +2893,12 @@
|
|
||||||
);
|
|
||||||
let lastMovingTab = movingTabs.at(-1);
|
|
||||||
let firstMovingTab = movingTabs[0];
|
|
||||||
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ lastMovingTab = lastMovingTab.group;
|
|
||||||
+ }
|
|
||||||
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ firstMovingTab = firstMovingTab.group;
|
|
||||||
+ }
|
|
||||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
|
||||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
|
||||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
|
||||||
@@ -2829,6 +2913,11 @@
|
|
||||||
let endBound = this.#rtlMode
|
|
||||||
? endEdge(this) - lastMovingTabScreen
|
|
||||||
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
|
||||||
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
|
||||||
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
|
||||||
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
|
|
||||||
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
|
|
||||||
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
|
|
||||||
translate = Math.min(Math.max(translate, startBound), endBound);
|
|
||||||
|
|
||||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
|
||||||
@@ -3018,6 +3107,8 @@
|
|
||||||
};
|
|
||||||
|
|
||||||
let dropElement = getOverlappedElement();
|
|
||||||
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
|
||||||
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
|
||||||
|
|
||||||
let newDropElementIndex;
|
|
||||||
if (dropElement) {
|
|
||||||
@@ -3099,7 +3190,7 @@
|
|
||||||
? Services.prefs.getIntPref(
|
|
||||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
|
||||||
) / 100
|
|
||||||
- : 0.5;
|
|
||||||
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
|
||||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
|
||||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
|
||||||
if (logicalForward && shouldMoveOver) {
|
|
||||||
@@ -3132,6 +3223,7 @@
|
|
||||||
// If dragging a group over another group, don't make it look like it is
|
|
||||||
// possible to drop the dragged group inside the other group.
|
|
||||||
if (
|
|
||||||
+ false &&
|
|
||||||
isTabGroupLabel(draggedTab) &&
|
|
||||||
dropElement?.group &&
|
|
||||||
(!dropElement.group.collapsed ||
|
|
||||||
@@ -3158,20 +3250,13 @@
|
|
||||||
let isOutOfBounds = isPinned
|
|
||||||
? dropElement.elementIndex >= numPinned
|
|
||||||
: dropElement.elementIndex < numPinned;
|
|
||||||
- if (isOutOfBounds) {
|
|
||||||
- // Drop after last pinned tab
|
|
||||||
- dropElement = this.ariaFocusableItems[numPinned - 1];
|
|
||||||
- dropBefore = false;
|
|
||||||
- }
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (
|
|
||||||
- gBrowser._tabGroupsEnabled &&
|
|
||||||
- isTab(draggedTab) &&
|
|
||||||
- !isPinned &&
|
|
||||||
- (!numPinned || newDropElementIndex > numPinned)
|
|
||||||
- ) {
|
|
||||||
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
|
||||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
|
||||||
+ if (draggedTab && !dropElement?.group) {
|
|
||||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
|
||||||
+ }
|
|
||||||
let groupingDelay = Services.prefs.getIntPref(
|
|
||||||
"browser.tabs.dragDrop.createGroup.delayMS"
|
|
||||||
);
|
|
||||||
@@ -3179,6 +3264,7 @@
|
|
||||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
|
||||||
// that dropping the tab(s) will create a new tab group.
|
|
||||||
let shouldCreateGroupOnDrop =
|
|
||||||
+ false &&
|
|
||||||
!movingTabsSet.has(dropElement) &&
|
|
||||||
isTab(dropElement) &&
|
|
||||||
!dropElement?.group &&
|
|
||||||
@@ -3187,6 +3273,7 @@
|
|
||||||
// When dragging tab(s) over a collapsed tab group label, signal to the
|
|
||||||
// user that dropping the tab(s) will add them to the group.
|
|
||||||
let shouldDropIntoCollapsedTabGroup =
|
|
||||||
+ false &&
|
|
||||||
isTabGroupLabel(dropElement) &&
|
|
||||||
dropElement.group.collapsed &&
|
|
||||||
overlapPercent > dragOverGroupingThreshold;
|
|
||||||
@@ -3231,19 +3318,14 @@
|
|
||||||
dropElement = dropElementGroup;
|
|
||||||
colorCode = undefined;
|
|
||||||
} else if (isTabGroupLabel(dropElement)) {
|
|
||||||
- if (dropBefore) {
|
|
||||||
- // Dropping right before the tab group.
|
|
||||||
- dropElement = dropElementGroup;
|
|
||||||
- colorCode = undefined;
|
|
||||||
- } else if (dropElementGroup.collapsed) {
|
|
||||||
- // Dropping right after the collapsed tab group.
|
|
||||||
- dropElement = dropElementGroup;
|
|
||||||
- colorCode = undefined;
|
|
||||||
- } else {
|
|
||||||
- // Dropping right before the first tab in the tab group.
|
|
||||||
- dropElement = dropElementGroup.tabs[0];
|
|
||||||
- dropBefore = true;
|
|
||||||
- }
|
|
||||||
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
|
||||||
+ dropElement,
|
|
||||||
+ draggedTab,
|
|
||||||
+ overlapPercent,
|
|
||||||
+ movingTabs,
|
|
||||||
+ dropBefore,
|
|
||||||
+ colorCode
|
|
||||||
+ ));
|
|
||||||
}
|
|
||||||
this.#setDragOverGroupColor(colorCode);
|
|
||||||
this.toggleAttribute("movingtab-addToGroup", colorCode);
|
|
||||||
@@ -3262,11 +3344,11 @@
|
|
||||||
dragData.dropElement = dropElement;
|
|
||||||
dragData.dropBefore = dropBefore;
|
|
||||||
dragData.animDropElementIndex = newDropElementIndex;
|
|
||||||
-
|
|
||||||
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
|
||||||
// Shift background tabs to leave a gap where the dragged tab
|
|
||||||
// would currently be dropped.
|
|
||||||
for (let item of tabs) {
|
|
||||||
- if (item == draggedTab) {
|
|
||||||
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -3388,12 +3470,14 @@
|
|
||||||
element?.removeAttribute("dragover-groupTarget");
|
|
||||||
}
|
|
||||||
|
|
||||||
- finishAnimateTabMove() {
|
|
||||||
- if (!this.#isMovingTab()) {
|
|
||||||
+ finishAnimateTabMove(always = false) {
|
|
||||||
+ gZenPinnedTabManager.onDragFinish();
|
|
||||||
+ if (!this.#isMovingTab() && !always) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.#setMovingTabMode(false);
|
|
||||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
|
||||||
|
|
||||||
for (let item of this.ariaFocusableItems) {
|
|
||||||
this.#resetGroupTarget(item);
|
|
||||||
@@ -3440,17 +3524,16 @@
|
|
||||||
tab.style.left = "";
|
|
||||||
tab.style.top = "";
|
|
||||||
tab.style.maxWidth = "";
|
|
||||||
- tab.removeAttribute("dragtarget");
|
|
||||||
+ tab.removeAttribute("zen-dragtarget");
|
|
||||||
}
|
|
||||||
for (let label of draggedTabDocument.getElementsByClassName(
|
|
||||||
"tab-group-label-container"
|
|
||||||
)) {
|
|
||||||
label.style.width = "";
|
|
||||||
- label.style.height = "";
|
|
||||||
label.style.left = "";
|
|
||||||
label.style.top = "";
|
|
||||||
label.style.maxWidth = "";
|
|
||||||
- label.removeAttribute("dragtarget");
|
|
||||||
+ label.removeAttribute("zen-dragtarget");
|
|
||||||
}
|
|
||||||
let periphery = draggedTabDocument.getElementById(
|
|
||||||
"tabbrowser-arrowscrollbox-periphery"
|
|
||||||
@@ -3522,7 +3605,7 @@
|
|
||||||
let postTransitionCleanup = () => {
|
|
||||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
|
||||||
};
|
|
||||||
- if (gReduceMotion) {
|
|
||||||
+ if (true || gReduceMotion) {
|
|
||||||
postTransitionCleanup();
|
|
||||||
} else {
|
|
||||||
let onTransitionEnd = transitionendEvent => {
|
|
||||||
@@ -3686,7 +3769,7 @@
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_notifyBackgroundTab(aTab) {
|
_notifyBackgroundTab(aTab) {
|
||||||
@@ -638,25 +209,3 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3795,7 +3878,10 @@
|
|
||||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
|
||||||
let { target } = event;
|
|
||||||
while (target) {
|
|
||||||
- if (isTab(target) || isTabGroupLabel(target)) {
|
|
||||||
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
|
||||||
+ if (target.classList?.contains("tab-group-label-container")) {
|
|
||||||
+ target = target.querySelector(".tab-group-label");
|
|
||||||
+ }
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
target = target.parentNode;
|
|
||||||
@@ -3812,6 +3898,9 @@
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ if (target?.group?.hasAttribute("split-view-group")) {
|
|
||||||
+ target = target.group.labelElement;
|
|
||||||
+ }
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||||
index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c6da90098 100644
|
index 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 100644
|
||||||
--- a/browser/components/urlbar/UrlbarController.sys.mjs
|
--- a/browser/components/urlbar/UrlbarController.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarController.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||||
@@ -297,7 +297,6 @@ export class UrlbarController {
|
@@ -299,7 +299,6 @@ export class UrlbarController {
|
||||||
const isMac = AppConstants.platform == "macosx";
|
const isMac = AppConstants.platform == "macosx";
|
||||||
// Handle readline/emacs-style navigation bindings on Mac.
|
// Handle readline/emacs-style navigation bindings on Mac.
|
||||||
if (
|
if (
|
||||||
@@ -10,7 +10,7 @@ index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c
|
|||||||
this.view.isOpen &&
|
this.view.isOpen &&
|
||||||
event.ctrlKey &&
|
event.ctrlKey &&
|
||||||
(event.key == "n" || event.key == "p")
|
(event.key == "n" || event.key == "p")
|
||||||
@@ -441,6 +440,8 @@ export class UrlbarController {
|
@@ -443,6 +442,8 @@ export class UrlbarController {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d355858bcf37b 100644
|
index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 100644
|
||||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||||
@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||||
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||||
|
|
||||||
const UNLIMITED_MAX_RESULTS = 99;
|
const UNLIMITED_MAX_RESULTS = 99;
|
||||||
@@ -437,7 +444,16 @@ export class UrlbarInput {
|
@@ -454,7 +461,16 @@ export class UrlbarInput {
|
||||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
||||||
// event but does not set the primary selection.
|
// event but does not set the primary selection.
|
||||||
this._suppressPrimaryAdjustment = true;
|
this._suppressPrimaryAdjustment = true;
|
||||||
@@ -33,7 +33,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this._suppressPrimaryAdjustment = false;
|
this._suppressPrimaryAdjustment = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,6 +529,10 @@ export class UrlbarInput {
|
@@ -530,6 +546,10 @@ export class UrlbarInput {
|
||||||
hideSearchTerms = false,
|
hideSearchTerms = false,
|
||||||
isSameDocument = false
|
isSameDocument = false
|
||||||
) {
|
) {
|
||||||
@@ -44,7 +44,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (!this.isAddressbar) {
|
if (!this.isAddressbar) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Cannot set URI for UrlbarInput that is not an address bar"
|
"Cannot set URI for UrlbarInput that is not an address bar"
|
||||||
@@ -790,8 +810,16 @@ export class UrlbarInput {
|
@@ -807,8 +827,16 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1207,7 +1235,11 @@ export class UrlbarInput {
|
@@ -1224,7 +1252,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.#providesSearchMode(result)) {
|
if (!this.#providesSearchMode(result)) {
|
||||||
@@ -75,7 +75,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isCanonized) {
|
if (isCanonized) {
|
||||||
@@ -2298,6 +2330,32 @@ export class UrlbarInput {
|
@@ -2347,6 +2379,32 @@ export class UrlbarInput {
|
||||||
await this.#updateLayoutBreakoutDimensions();
|
await this.#updateLayoutBreakoutDimensions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,7 +108,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
startLayoutExtend() {
|
startLayoutExtend() {
|
||||||
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
||||||
// Do not expand if the Urlbar does not support being expanded or it is
|
// Do not expand if the Urlbar does not support being expanded or it is
|
||||||
@@ -2312,6 +2370,13 @@ export class UrlbarInput {
|
@@ -2361,6 +2419,13 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.setAttribute("breakout-extend", "true");
|
this.setAttribute("breakout-extend", "true");
|
||||||
|
|
||||||
@@ -122,7 +122,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
// Enable the animation only after the first extend call to ensure it
|
// Enable the animation only after the first extend call to ensure it
|
||||||
// doesn't run when opening a new window.
|
// doesn't run when opening a new window.
|
||||||
if (!this.hasAttribute("breakout-extend-animate")) {
|
if (!this.hasAttribute("breakout-extend-animate")) {
|
||||||
@@ -2331,6 +2396,24 @@ export class UrlbarInput {
|
@@ -2380,6 +2445,24 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.removeAttribute("breakout-extend");
|
this.removeAttribute("breakout-extend");
|
||||||
this.#updateTextboxPosition();
|
this.#updateTextboxPosition();
|
||||||
}
|
}
|
||||||
@@ -2361,7 +2444,7 @@ export class UrlbarInput {
|
@@ -2410,7 +2493,7 @@ export class UrlbarInput {
|
||||||
forceUnifiedSearchButtonAvailable = false
|
forceUnifiedSearchButtonAvailable = false
|
||||||
) {
|
) {
|
||||||
let prevState = this.getAttribute("pageproxystate");
|
let prevState = this.getAttribute("pageproxystate");
|
||||||
@@ -156,7 +156,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.setAttribute("pageproxystate", state);
|
this.setAttribute("pageproxystate", state);
|
||||||
this._inputContainer.setAttribute("pageproxystate", state);
|
this._inputContainer.setAttribute("pageproxystate", state);
|
||||||
this._identityBox?.setAttribute("pageproxystate", state);
|
this._identityBox?.setAttribute("pageproxystate", state);
|
||||||
@@ -2595,10 +2678,12 @@ export class UrlbarInput {
|
@@ -2646,10 +2729,12 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.textbox.style.top = px(
|
this.textbox.style.top = px(
|
||||||
@@ -169,7 +169,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2658,9 +2743,10 @@ export class UrlbarInput {
|
@@ -2709,9 +2794,10 @@ export class UrlbarInput {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,7 +181,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
);
|
);
|
||||||
this.textbox.style.setProperty(
|
this.textbox.style.setProperty(
|
||||||
"--urlbar-height",
|
"--urlbar-height",
|
||||||
@@ -3093,6 +3179,7 @@ export class UrlbarInput {
|
@@ -3144,6 +3230,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_toggleActionOverride(event) {
|
_toggleActionOverride(event) {
|
||||||
@@ -189,7 +189,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (
|
if (
|
||||||
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
|
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
|
||||||
event.keyCode == KeyEvent.DOM_VK_ALT ||
|
event.keyCode == KeyEvent.DOM_VK_ALT ||
|
||||||
@@ -3197,7 +3284,7 @@ export class UrlbarInput {
|
@@ -3248,7 +3335,7 @@ export class UrlbarInput {
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||||
@@ -198,7 +198,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
: val;
|
: val;
|
||||||
// Only trim value if the directionality doesn't change to RTL and we're not
|
// Only trim value if the directionality doesn't change to RTL and we're not
|
||||||
// showing a strikeout https protocol.
|
// showing a strikeout https protocol.
|
||||||
@@ -3501,6 +3588,7 @@ export class UrlbarInput {
|
@@ -3552,6 +3639,7 @@ export class UrlbarInput {
|
||||||
resultDetails = null,
|
resultDetails = null,
|
||||||
browser = this.window.gBrowser.selectedBrowser
|
browser = this.window.gBrowser.selectedBrowser
|
||||||
) {
|
) {
|
||||||
@@ -206,7 +206,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (this.isAddressbar) {
|
if (this.isAddressbar) {
|
||||||
this.#prepareAddressbarLoad(
|
this.#prepareAddressbarLoad(
|
||||||
url,
|
url,
|
||||||
@@ -3608,6 +3696,10 @@ export class UrlbarInput {
|
@@ -3659,6 +3747,10 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
reuseEmpty = true;
|
reuseEmpty = true;
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (
|
if (
|
||||||
where == "tab" &&
|
where == "tab" &&
|
||||||
reuseEmpty &&
|
reuseEmpty &&
|
||||||
@@ -3615,6 +3707,9 @@ export class UrlbarInput {
|
@@ -3666,6 +3758,9 @@ export class UrlbarInput {
|
||||||
) {
|
) {
|
||||||
where = "current";
|
where = "current";
|
||||||
}
|
}
|
||||||
@@ -227,7 +227,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
return where;
|
return where;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3872,6 +3967,7 @@ export class UrlbarInput {
|
@@ -3923,6 +4018,7 @@ export class UrlbarInput {
|
||||||
this.setResultForCurrentValue(null);
|
this.setResultForCurrentValue(null);
|
||||||
this.handleCommand();
|
this.handleCommand();
|
||||||
this.controller.clearLastQueryContextCache();
|
this.controller.clearLastQueryContextCache();
|
||||||
@@ -235,7 +235,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
this._suppressStartQuery = false;
|
this._suppressStartQuery = false;
|
||||||
});
|
});
|
||||||
@@ -3879,7 +3975,6 @@ export class UrlbarInput {
|
@@ -3930,7 +4026,6 @@ export class UrlbarInput {
|
||||||
contextMenu.addEventListener("popupshowing", () => {
|
contextMenu.addEventListener("popupshowing", () => {
|
||||||
// Close the results pane when the input field contextual menu is open,
|
// Close the results pane when the input field contextual menu is open,
|
||||||
// because paste and go doesn't want a result selection.
|
// because paste and go doesn't want a result selection.
|
||||||
@@ -243,7 +243,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
let controller =
|
let controller =
|
||||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||||
@@ -3991,7 +4086,11 @@ export class UrlbarInput {
|
@@ -4040,7 +4135,11 @@ export class UrlbarInput {
|
||||||
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -256,7 +256,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (this._searchModeIndicatorTitle) {
|
if (this._searchModeIndicatorTitle) {
|
||||||
this._searchModeIndicatorTitle.textContent = "";
|
this._searchModeIndicatorTitle.textContent = "";
|
||||||
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
||||||
@@ -4302,6 +4401,7 @@ export class UrlbarInput {
|
@@ -4351,6 +4450,7 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.document.l10n.setAttributes(
|
this.document.l10n.setAttributes(
|
||||||
this.inputField,
|
this.inputField,
|
||||||
@@ -264,7 +264,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
l10nId,
|
l10nId,
|
||||||
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
||||||
);
|
);
|
||||||
@@ -4413,6 +4513,11 @@ export class UrlbarInput {
|
@@ -4462,6 +4562,11 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_click(event) {
|
_on_click(event) {
|
||||||
@@ -276,7 +276,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
if (
|
if (
|
||||||
event.target == this.inputField ||
|
event.target == this.inputField ||
|
||||||
event.target == this._inputContainer
|
event.target == this._inputContainer
|
||||||
@@ -4485,7 +4590,7 @@ export class UrlbarInput {
|
@@ -4534,7 +4639,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -285,7 +285,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
this.view.autoOpen({ event });
|
this.view.autoOpen({ event });
|
||||||
} else {
|
} else {
|
||||||
if (this._untrimOnFocusAfterKeydown) {
|
if (this._untrimOnFocusAfterKeydown) {
|
||||||
@@ -4525,9 +4630,16 @@ export class UrlbarInput {
|
@@ -4574,9 +4679,16 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
|
|
||||||
_on_mousedown(event) {
|
_on_mousedown(event) {
|
||||||
@@ -303,7 +303,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
if (
|
if (
|
||||||
event.target != this.inputField &&
|
event.target != this.inputField &&
|
||||||
@@ -4538,6 +4650,10 @@ export class UrlbarInput {
|
@@ -4587,6 +4699,10 @@ export class UrlbarInput {
|
||||||
|
|
||||||
this.focusedViaMousedown = !this.focused;
|
this.focusedViaMousedown = !this.focused;
|
||||||
this._preventClickSelectsAll = this.focused;
|
this._preventClickSelectsAll = this.focused;
|
||||||
@@ -314,7 +314,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
|
|
||||||
// Keep the focus status, since the attribute may be changed
|
// Keep the focus status, since the attribute may be changed
|
||||||
// upon calling this.focus().
|
// upon calling this.focus().
|
||||||
@@ -4573,7 +4689,7 @@ export class UrlbarInput {
|
@@ -4622,7 +4738,7 @@ export class UrlbarInput {
|
||||||
}
|
}
|
||||||
// Don't close the view when clicking on a tab; we may want to keep the
|
// Don't close the view when clicking on a tab; we may want to keep the
|
||||||
// view open on tab switch, and the TabSelect event arrived earlier.
|
// view open on tab switch, and the TabSelect event arrived earlier.
|
||||||
@@ -323,7 +323,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4890,7 +5006,7 @@ export class UrlbarInput {
|
@@ -4939,7 +5055,7 @@ export class UrlbarInput {
|
||||||
// When we are in actions search mode we can show more results so
|
// When we are in actions search mode we can show more results so
|
||||||
// increase the limit.
|
// increase the limit.
|
||||||
let maxResults =
|
let maxResults =
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||||
index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126c1d32b04 100644
|
index c12d875172650dddfe7de623a776149517c83302..66e923ed2c84e350dd7ba7a20e362666cec8f307 100644
|
||||||
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||||
@@ -852,6 +852,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
@@ -854,6 +854,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (result.providerName == "UrlbarProviderTabToSearch") {
|
if (result.providerName == "UrlbarProviderTabToSearch") {
|
||||||
@@ -10,7 +10,7 @@ index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126
|
|||||||
// Discard the result if a tab-to-search result was added already.
|
// Discard the result if a tab-to-search result was added already.
|
||||||
if (!state.canAddTabToSearch) {
|
if (!state.canAddTabToSearch) {
|
||||||
return false;
|
return false;
|
||||||
@@ -1498,7 +1499,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
@@ -1500,7 +1501,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||||
usedLimits.maxResultCount++;
|
usedLimits.maxResultCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
index 46ad55519aecd6c14034a9faa91c7ad8e5c1c422..e8d9c06499a2b273483edd21faf902c936462b59 100644
|
index 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644
|
||||||
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||||
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e16ea53ed 100644
|
index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644
|
||||||
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||||
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
||||||
@@ -26,7 +26,7 @@ index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e
|
|||||||
h.visit_count, h.typed,
|
h.visit_count, h.typed,
|
||||||
0, t.open_count,
|
0, t.open_count,
|
||||||
:matchBehavior, :searchBehavior, NULL)
|
:matchBehavior, :searchBehavior, NULL)
|
||||||
@@ -1120,11 +1122,13 @@ Search.prototype = {
|
@@ -1126,11 +1128,13 @@ Search.prototype = {
|
||||||
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
||||||
: undefined;
|
: undefined;
|
||||||
let tabGroup = row.getResultByName("groupId");
|
let tabGroup = row.getResultByName("groupId");
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
index ece407214669009e263b507b5236ab28da33efe9..8f22426295e2b001438918f44d2c22ed7a697c2f 100644
|
index b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644
|
||||||
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||||
@@ -845,6 +845,7 @@ export class Query {
|
@@ -873,6 +873,7 @@ export class Query {
|
||||||
if (
|
if (
|
||||||
result.heuristic &&
|
result.heuristic &&
|
||||||
this.context.searchMode &&
|
this.context.searchMode &&
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13dc8e61fbc 100644
|
index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644
|
||||||
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||||
@@ -74,6 +74,7 @@ export var UrlbarUtils = {
|
@@ -77,6 +77,7 @@ export var UrlbarUtils = {
|
||||||
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
||||||
SUGGESTED_INDEX: "suggestedIndex",
|
SUGGESTED_INDEX: "suggestedIndex",
|
||||||
TAIL_SUGGESTION: "tailSuggestion",
|
TAIL_SUGGESTION: "tailSuggestion",
|
||||||
@@ -10,7 +10,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
// Defines provider types.
|
// Defines provider types.
|
||||||
@@ -133,6 +134,7 @@ export var UrlbarUtils = {
|
@@ -136,6 +137,7 @@ export var UrlbarUtils = {
|
||||||
OTHER_NETWORK: 6,
|
OTHER_NETWORK: 6,
|
||||||
ADDON: 7,
|
ADDON: 7,
|
||||||
ACTIONS: 8,
|
ACTIONS: 8,
|
||||||
@@ -18,7 +18,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
|||||||
}),
|
}),
|
||||||
|
|
||||||
// Per-result exposure telemetry.
|
// Per-result exposure telemetry.
|
||||||
@@ -544,6 +546,8 @@ export var UrlbarUtils = {
|
@@ -547,6 +549,8 @@ export var UrlbarUtils = {
|
||||||
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
||||||
case "UrlbarProviderHistoryUrlHeuristic":
|
case "UrlbarProviderHistoryUrlHeuristic":
|
||||||
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
index 50961e4beb75012ef0ed6f261a95854712cc69d7..93bcfca9270ff34dbe6386789fdae6066457438d 100644
|
index beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644
|
||||||
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||||
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {
|
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b50b9fa2e8 100644
|
index 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 100644
|
||||||
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||||
@@ -620,7 +620,7 @@ export class UrlbarView {
|
@@ -620,7 +620,7 @@ export class UrlbarView {
|
||||||
@@ -11,7 +11,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
|||||||
// Try to reuse the cached top-sites context. If it's not cached, then
|
// Try to reuse the cached top-sites context. If it's not cached, then
|
||||||
// there will be a gap of time between when the input is focused and
|
// there will be a gap of time between when the input is focused and
|
||||||
// when the view opens that can be perceived as flicker.
|
// when the view opens that can be perceived as flicker.
|
||||||
@@ -2734,6 +2734,8 @@ export class UrlbarView {
|
@@ -2751,6 +2751,8 @@ export class UrlbarView {
|
||||||
if (row?.hasAttribute("row-selectable")) {
|
if (row?.hasAttribute("row-selectable")) {
|
||||||
row?.toggleAttribute("selected", true);
|
row?.toggleAttribute("selected", true);
|
||||||
}
|
}
|
||||||
@@ -20,7 +20,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
|||||||
if (element != row) {
|
if (element != row) {
|
||||||
row?.toggleAttribute("descendant-selected", true);
|
row?.toggleAttribute("descendant-selected", true);
|
||||||
}
|
}
|
||||||
@@ -3215,7 +3217,7 @@ export class UrlbarView {
|
@@ -3232,7 +3234,7 @@ export class UrlbarView {
|
||||||
}
|
}
|
||||||
|
|
||||||
#enableOrDisableRowWrap() {
|
#enableOrDisableRowWrap() {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
index 6207e6c8aa1e303ec151bc1e5c51c277ef776ee6..d3783a3c459c94880be1c95dc265a7d4887f67a1 100644
|
index 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 100644
|
||||||
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||||
@@ -223,7 +223,7 @@ export const PREFS_CONFIG = new Map([
|
@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([
|
||||||
"showSponsoredTopSites",
|
"showSponsoredTopSites",
|
||||||
{
|
{
|
||||||
title: "Show sponsored top sites",
|
title: "Show sponsored top sites",
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||||
index b884f0167e5de87a45cf523436ceaceb710d35ae..eedc80278a5c93f81ce90c0d6198924549c07fc3 100644
|
index bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 100644
|
||||||
--- a/browser/installer/package-manifest.in
|
--- a/browser/installer/package-manifest.in
|
||||||
+++ b/browser/installer/package-manifest.in
|
+++ b/browser/installer/package-manifest.in
|
||||||
@@ -362,17 +362,17 @@ bin/libfreebl_64int_3.so
|
@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so
|
||||||
; [MaintenanceService]
|
; [MaintenanceService]
|
||||||
;
|
;
|
||||||
#ifdef MOZ_MAINTENANCE_SERVICE
|
#ifdef MOZ_MAINTENANCE_SERVICE
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
|
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
|
||||||
index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1135fe766 100644
|
index 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 100644
|
||||||
--- a/browser/installer/windows/nsis/defines.nsi.in
|
--- a/browser/installer/windows/nsis/defines.nsi.in
|
||||||
+++ b/browser/installer/windows/nsis/defines.nsi.in
|
+++ b/browser/installer/windows/nsis/defines.nsi.in
|
||||||
@@ -90,7 +90,7 @@
|
@@ -90,7 +90,7 @@
|
||||||
@@ -11,7 +11,7 @@ index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1
|
|||||||
|
|
||||||
# ARCH is used when it is necessary to differentiate the x64 registry keys from
|
# ARCH is used when it is necessary to differentiate the x64 registry keys from
|
||||||
# the x86 registry keys (e.g. the uninstall registry key).
|
# the x86 registry keys (e.g. the uninstall registry key).
|
||||||
@@ -154,7 +154,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
@@ -153,7 +153,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
||||||
!define APPROXIMATE_REQUIRED_SPACE_MB "145"
|
!define APPROXIMATE_REQUIRED_SPACE_MB "145"
|
||||||
|
|
||||||
# Constants for parts of the telemetry submission URL
|
# Constants for parts of the telemetry submission URL
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
|
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
|
||||||
index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0197351d1 100755
|
index 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 100755
|
||||||
--- a/browser/installer/windows/nsis/installer.nsi
|
--- a/browser/installer/windows/nsis/installer.nsi
|
||||||
+++ b/browser/installer/windows/nsis/installer.nsi
|
+++ b/browser/installer/windows/nsis/installer.nsi
|
||||||
@@ -841,7 +841,7 @@ Section "-InstallEndCleanup"
|
@@ -842,7 +842,7 @@ Section "-InstallEndCleanup"
|
||||||
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
|
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
|
||||||
; invoked when we're running silently.
|
; invoked when we're running silently.
|
||||||
${If} ${Silent}
|
${If} ${Silent}
|
||||||
@@ -11,7 +11,7 @@ index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0
|
|||||||
${EndIf}
|
${EndIf}
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@@ -1969,5 +1969,5 @@ FunctionEnd
|
@@ -1970,5 +1970,5 @@ FunctionEnd
|
||||||
|
|
||||||
Function .onGUIEnd
|
Function .onGUIEnd
|
||||||
${OnEndCommon}
|
${OnEndCommon}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi
|
diff --git a/browser/installer/windows/nsis/uninstaller.nsi b/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
old mode 100755
|
old mode 100755
|
||||||
new mode 100644
|
new mode 100644
|
||||||
index 559c8b46ee06bc42c91da49b5d9e397fe8ff6126..62094a5d98712a41a607ba01ca2adfa1e4f51ccd
|
index fd104f8ab0bd51d6a99c121b60e2695a54b0dfd0..9b117e5a1f5e8adac7d22cd65154529418fd2e5b
|
||||||
--- a/browser/installer/windows/nsis/uninstaller.nsi
|
--- a/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
+++ b/browser/installer/windows/nsis/uninstaller.nsi
|
+++ b/browser/installer/windows/nsis/uninstaller.nsi
|
||||||
@@ -507,6 +507,7 @@ Section "Uninstall"
|
@@ -519,6 +519,7 @@ Section "Uninstall"
|
||||||
${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".svg" "FirefoxHTML-$AppUserModelID"
|
||||||
${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".webp" "FirefoxHTML-$AppUserModelID"
|
||||||
${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID"
|
${un.RegCleanFileHandler} ".avif" "FirefoxHTML-$AppUserModelID"
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
diff --git a/browser/modules/BrowserDOMWindow.sys.mjs b/browser/modules/BrowserDOMWindow.sys.mjs
|
diff --git a/browser/modules/BrowserDOMWindow.sys.mjs b/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635f2bd70e4 100644
|
index e951af5edb966718ee20422c8e46d868c177cd1c..cd41305a4da8e675417eca7df5cd4a1ecee90c3d 100644
|
||||||
--- a/browser/modules/BrowserDOMWindow.sys.mjs
|
--- a/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
+++ b/browser/modules/BrowserDOMWindow.sys.mjs
|
+++ b/browser/modules/BrowserDOMWindow.sys.mjs
|
||||||
@@ -374,7 +374,7 @@ export class BrowserDOMWindow {
|
@@ -437,7 +437,7 @@ export class BrowserDOMWindow {
|
||||||
// Passing a null-URI to only create the content window,
|
// Passing a null-URI to only create the content window,
|
||||||
// and pass true for aSkipLoad to prevent loading of
|
// and pass true for aSkipLoad to prevent loading of
|
||||||
// about:blank
|
// about:blank
|
||||||
- return this.getContentWindowOrOpenURIInFrame(
|
- return this.#getContentWindowOrOpenURIInFrame(
|
||||||
+ let res = this.getContentWindowOrOpenURIInFrame(
|
+ let res = this.#getContentWindowOrOpenURIInFrame(
|
||||||
null,
|
null,
|
||||||
aParams,
|
aParams,
|
||||||
aWhere,
|
aWhere,
|
||||||
@@ -382,6 +382,10 @@ export class BrowserDOMWindow {
|
@@ -445,6 +445,10 @@ export class BrowserDOMWindow {
|
||||||
aName,
|
aName,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@@ -21,4 +21,4 @@ index 534d23b3e66176ea77f3ef577bf9630626948b9d..752e229bbe725ae394b7648adb949635
|
|||||||
+ return res;
|
+ return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
openURIInFrame(aURI, aParams, aWhere, aFlags, aName) {
|
/**
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs
|
diff --git a/browser/modules/ExtensionsUI.sys.mjs b/browser/modules/ExtensionsUI.sys.mjs
|
||||||
index 17cad7b3fbdd6dff862483892f37f72c00792c88..90ea4d95738eb50d1a4a67ee7df087e7c2a68b3d 100644
|
index 31229b3bc1b93565a57c2c0b0307ceeb594c3936..30456ef5d3c58e96717cd292f861a04a790d0ee1 100644
|
||||||
--- a/browser/modules/ExtensionsUI.sys.mjs
|
--- a/browser/modules/ExtensionsUI.sys.mjs
|
||||||
+++ b/browser/modules/ExtensionsUI.sys.mjs
|
+++ b/browser/modules/ExtensionsUI.sys.mjs
|
||||||
@@ -478,7 +478,7 @@ export var ExtensionsUI = {
|
@@ -480,7 +480,7 @@ export var ExtensionsUI = {
|
||||||
eventCallback,
|
eventCallback,
|
||||||
removeOnDismissal: true,
|
removeOnDismissal: true,
|
||||||
popupOptions: {
|
popupOptions: {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
|
diff --git a/browser/modules/URILoadingHelper.sys.mjs b/browser/modules/URILoadingHelper.sys.mjs
|
||||||
index f7a3e8272f1f22286a26bf50d78b23aa82b49df8..a690732012331dfc40cc08fef4453c28c6587a24 100644
|
index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410d016a5a3 100644
|
||||||
--- a/browser/modules/URILoadingHelper.sys.mjs
|
--- a/browser/modules/URILoadingHelper.sys.mjs
|
||||||
+++ b/browser/modules/URILoadingHelper.sys.mjs
|
+++ b/browser/modules/URILoadingHelper.sys.mjs
|
||||||
@@ -541,7 +541,7 @@ export const URILoadingHelper = {
|
@@ -541,7 +541,7 @@ export const URILoadingHelper = {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css
|
diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css
|
||||||
index b1062108c6f6174a680e9b235ee9cb2037f94924..31aac7bdee4ebb07e9de58e7c3e5e6833c94e968 100644
|
index 0a15e3d60d408f119bd03007567d5dd1fa178c36..443901657296d0d15a95e1d39e826b1c008aac4d 100644
|
||||||
--- a/browser/themes/osx/browser.css
|
--- a/browser/themes/osx/browser.css
|
||||||
+++ b/browser/themes/osx/browser.css
|
+++ b/browser/themes/osx/browser.css
|
||||||
@@ -38,7 +38,7 @@
|
@@ -38,7 +38,7 @@
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css
|
diff --git a/browser/themes/shared/browser-shared.css b/browser/themes/shared/browser-shared.css
|
||||||
index c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c9363365387f 100644
|
index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca26a4a5b8c 100644
|
||||||
--- a/browser/themes/shared/browser-shared.css
|
--- a/browser/themes/shared/browser-shared.css
|
||||||
+++ b/browser/themes/shared/browser-shared.css
|
+++ b/browser/themes/shared/browser-shared.css
|
||||||
@@ -102,7 +102,7 @@ body {
|
@@ -102,7 +102,7 @@ body {
|
||||||
--toolbarbutton-border-radius: 4px;
|
--toolbarbutton-border-radius: var(--button-border-radius);
|
||||||
--identity-box-margin-inline: 4px;
|
--identity-box-margin-inline: 4px;
|
||||||
--urlbar-min-height: max(32px, 1.4em);
|
--urlbar-min-height: max(32px, 1.4em);
|
||||||
- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
|
- --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 2px /* padding */ - 16px /* icon */) / 2);
|
||||||
+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
|
+ --urlbar-icon-padding: calc((var(--urlbar-min-height) - 2px /* border */ - 14px /* icon */) / 2);
|
||||||
|
|
||||||
/* This should be used for icons and chiclets inside the input field. It makes
|
/* This should be used for icons and chiclets inside the input field, as well
|
||||||
the gap around them more uniform when they are close to the field edges */
|
as result rows. It makes the gap around them more uniform when they are
|
||||||
@@ -170,8 +170,6 @@ body {
|
@@ -171,8 +171,6 @@ body {
|
||||||
*/
|
*/
|
||||||
&.fullscreen-with-menubar {
|
&.fullscreen-with-menubar {
|
||||||
z-index: var(--browser-area-z-index-toolbox-while-animating);
|
z-index: var(--browser-area-z-index-toolbox-while-animating);
|
||||||
@@ -20,7 +20,7 @@ index c77a0e6388c4061d9e6ee5f396a3e3af8867e4fe..3da164d2414e8726675ac0184310c936
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Themes define a set of toolbox foreground and background colors which we
|
/* Themes define a set of toolbox foreground and background colors which we
|
||||||
@@ -281,13 +279,13 @@ body {
|
@@ -282,13 +280,13 @@ body {
|
||||||
|
|
||||||
@media (-moz-platform: macos) and (not (-moz-mac-rtl)) {
|
@media (-moz-platform: macos) and (not (-moz-mac-rtl)) {
|
||||||
&:-moz-locale-dir(ltr) {
|
&:-moz-locale-dir(ltr) {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css
|
diff --git a/browser/themes/shared/identity-block/identity-block.css b/browser/themes/shared/identity-block/identity-block.css
|
||||||
index 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737c00ae49c 100644
|
index d542e962d42b17140888e299ed43a838047ee48c..5e0b72f147687924c48dfed0318f53b765a4d497 100644
|
||||||
--- a/browser/themes/shared/identity-block/identity-block.css
|
--- a/browser/themes/shared/identity-block/identity-block.css
|
||||||
+++ b/browser/themes/shared/identity-block/identity-block.css
|
+++ b/browser/themes/shared/identity-block/identity-block.css
|
||||||
@@ -81,13 +81,6 @@
|
@@ -81,13 +81,6 @@
|
||||||
@@ -11,7 +11,7 @@ index 8edca63dc52ec207475ed9965559d28c06e27971..a5a949be1868af5d0bb04747a9f5b737
|
|||||||
- background-color: var(--urlbar-box-bgcolor);
|
- background-color: var(--urlbar-box-bgcolor);
|
||||||
- color: var(--urlbar-box-text-color);
|
- color: var(--urlbar-box-text-color);
|
||||||
- padding-inline: 8px;
|
- padding-inline: 8px;
|
||||||
- border-radius: var(--urlbar-icon-border-radius);
|
- border-radius: var(--urlbar-inner-border-radius);
|
||||||
-}
|
-}
|
||||||
|
|
||||||
#urlbar[focused] {
|
#urlbar[focused] {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
|
diff --git a/browser/themes/shared/jar.inc.mn b/browser/themes/shared/jar.inc.mn
|
||||||
index 94036d036a64c8845c02d4ffbcf3f99b5d88576e..2ab3f060c9952f1b0c7bee3d5c3a1d7035e6736a 100644
|
index 6085ce0614c9ea7d650c9526b295953f46b30cb6..06b4af758d9ae033dd0b7436f08e6748047c8bbe 100644
|
||||||
--- a/browser/themes/shared/jar.inc.mn
|
--- a/browser/themes/shared/jar.inc.mn
|
||||||
+++ b/browser/themes/shared/jar.inc.mn
|
+++ b/browser/themes/shared/jar.inc.mn
|
||||||
@@ -316,3 +316,5 @@
|
@@ -317,3 +317,5 @@
|
||||||
|
|
||||||
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
|
skin/classic/browser/illustrations/market-opt-in.svg (../shared/illustrations/market-opt-in.svg)
|
||||||
skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg)
|
skin/classic/browser/illustrations/yelpRealtime-opt-in.svg (../shared/illustrations/yelpRealtime-opt-in.svg)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
|
diff --git a/browser/themes/shared/tabbrowser/content-area.css b/browser/themes/shared/tabbrowser/content-area.css
|
||||||
index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf5ecbd642 100644
|
index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f23063dbd 100644
|
||||||
--- a/browser/themes/shared/tabbrowser/content-area.css
|
--- a/browser/themes/shared/tabbrowser/content-area.css
|
||||||
+++ b/browser/themes/shared/tabbrowser/content-area.css
|
+++ b/browser/themes/shared/tabbrowser/content-area.css
|
||||||
@@ -134,7 +134,6 @@
|
@@ -140,7 +140,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
browser:is([blank], [pendingpaint]) {
|
browser:is([blank], [pendingpaint]) {
|
||||||
@@ -10,7 +10,7 @@ index e06addf1602dc26ff4e75a8db6251231690f3f80..ffac005d5040852eda8f574f65f2eadf
|
|||||||
}
|
}
|
||||||
|
|
||||||
browser[type="content"] {
|
browser[type="content"] {
|
||||||
@@ -276,7 +275,7 @@
|
@@ -323,7 +322,7 @@
|
||||||
|
|
||||||
.dialogStack {
|
.dialogStack {
|
||||||
z-index: var(--browser-stack-z-index-dialog-stack);
|
z-index: var(--browser-stack-z-index-dialog-stack);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css
|
diff --git a/browser/themes/shared/tabbrowser/ctrlTab.css b/browser/themes/shared/tabbrowser/ctrlTab.css
|
||||||
index aaeae8fd0e999aecda02bf287b39c4d96ad73f3c..d8196d9b1b5491d73b18a7c7d7fef55bc11fe31b 100644
|
index 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7b8c4d3da 100644
|
||||||
--- a/browser/themes/shared/tabbrowser/ctrlTab.css
|
--- a/browser/themes/shared/tabbrowser/ctrlTab.css
|
||||||
+++ b/browser/themes/shared/tabbrowser/ctrlTab.css
|
+++ b/browser/themes/shared/tabbrowser/ctrlTab.css
|
||||||
@@ -11,6 +11,7 @@
|
@@ -11,6 +11,7 @@
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
diff --git a/browser/themes/shared/tabbrowser/tabs.css b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d85fc4c91a 100644
|
index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2bff889716 100644
|
||||||
--- a/browser/themes/shared/tabbrowser/tabs.css
|
--- a/browser/themes/shared/tabbrowser/tabs.css
|
||||||
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
+++ b/browser/themes/shared/tabbrowser/tabs.css
|
||||||
@@ -21,7 +21,7 @@
|
@@ -21,7 +21,7 @@
|
||||||
@@ -23,7 +23,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
--tab-selected-bgcolor: var(--toolbar-bgcolor);
|
||||||
--tab-selected-color-scheme: var(--toolbar-color-scheme);
|
--tab-selected-color-scheme: var(--toolbar-color-scheme);
|
||||||
&[lwt-tab-selected="light"] {
|
&[lwt-tab-selected="light"] {
|
||||||
@@ -259,7 +259,6 @@
|
@@ -267,7 +267,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
|
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
|
||||||
@@ -31,7 +31,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:is([selected], [multiselected]) {
|
&:is([selected], [multiselected]) {
|
||||||
@@ -273,6 +272,7 @@
|
@@ -281,6 +280,7 @@
|
||||||
border-radius: inherit;
|
border-radius: inherit;
|
||||||
position: relative;
|
position: relative;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -39,7 +39,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
|
|
||||||
&::before {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
@@ -472,14 +472,11 @@
|
@@ -480,14 +480,11 @@
|
||||||
.tab-icon-image {
|
.tab-icon-image {
|
||||||
-moz-context-properties: fill, stroke;
|
-moz-context-properties: fill, stroke;
|
||||||
fill: currentColor;
|
fill: currentColor;
|
||||||
@@ -55,7 +55,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
/* Fade the favicon out */
|
/* Fade the favicon out */
|
||||||
transition-property: filter, opacity;
|
transition-property: filter, opacity;
|
||||||
@@ -496,10 +493,6 @@
|
@@ -504,10 +501,6 @@
|
||||||
/* stylelint-disable-next-line media-query-no-invalid */
|
/* stylelint-disable-next-line media-query-no-invalid */
|
||||||
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
|
@media -moz-pref("browser.tabs.fadeOutExplicitlyUnloadedTabs") {
|
||||||
&[pending][discarded] {
|
&[pending][discarded] {
|
||||||
@@ -66,7 +66,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
opacity: 0.5;
|
opacity: 0.5;
|
||||||
/* Fade the favicon out */
|
/* Fade the favicon out */
|
||||||
transition-property: filter, opacity;
|
transition-property: filter, opacity;
|
||||||
@@ -572,7 +565,7 @@
|
@@ -575,7 +568,7 @@
|
||||||
z-index: 1; /* Overlay tab title */
|
z-index: 1; /* Overlay tab title */
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"] & {
|
#tabbrowser-tabs[orient="vertical"] & {
|
||||||
@@ -75,7 +75,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&[crashed] {
|
&[crashed] {
|
||||||
@@ -580,7 +573,7 @@
|
@@ -583,7 +576,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
|
||||||
@@ -84,7 +84,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[soundplaying] {
|
&[soundplaying] {
|
||||||
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
list-style-image: url("chrome://browser/skin/tabbrowser/tab-audio-playing-small.svg");
|
||||||
}
|
}
|
||||||
@@ -637,7 +630,7 @@
|
@@ -640,7 +633,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,7 +93,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[crashed] {
|
&[crashed] {
|
||||||
display: revert;
|
display: revert;
|
||||||
}
|
}
|
||||||
@@ -738,7 +731,7 @@
|
@@ -741,7 +734,7 @@
|
||||||
has not been added to root. There are certain scenarios when that attribute is temporarily
|
has not been added to root. There are certain scenarios when that attribute is temporarily
|
||||||
removed from root such as when toggling the sidebar to expand with the toolbar button. */
|
removed from root such as when toggling the sidebar to expand with the toolbar button. */
|
||||||
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
|
#tabbrowser-tabs[orient="horizontal"] &:not([pinned]):not([crashed]),
|
||||||
@@ -102,7 +102,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
&:is([soundplaying], [muted], [activemedia-blocked]) {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@@ -1226,7 +1219,7 @@ tab-group {
|
@@ -1245,7 +1238,7 @@ tab-group {
|
||||||
}
|
}
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"][expanded] {
|
#tabbrowser-tabs[orient="vertical"][expanded] {
|
||||||
@@ -111,7 +111,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
|
&[movingtab][movingtab-addToGroup]:not([movingtab-group], [movingtab-ungroup]) .tabbrowser-tab:is(:active, [multiselected]) {
|
||||||
margin-inline-start: var(--space-medium);
|
margin-inline-start: var(--space-medium);
|
||||||
}
|
}
|
||||||
@@ -1685,7 +1678,7 @@ tab-group {
|
@@ -1692,7 +1685,7 @@ tab-group {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
#vertical-tabs-newtab-button {
|
#vertical-tabs-newtab-button {
|
||||||
appearance: none;
|
appearance: none;
|
||||||
min-height: var(--tab-min-height);
|
min-height: var(--tab-min-height);
|
||||||
@@ -1696,7 +1689,7 @@ tab-group {
|
@@ -1703,7 +1696,7 @@ tab-group {
|
||||||
margin-inline: var(--tab-inner-inline-margin);
|
margin-inline: var(--tab-inner-inline-margin);
|
||||||
|
|
||||||
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
#tabbrowser-tabs[orient="vertical"]:not([expanded]) & > .toolbarbutton-text {
|
||||||
@@ -129,7 +129,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@@ -1720,7 +1713,7 @@ tab-group {
|
@@ -1727,7 +1720,7 @@ tab-group {
|
||||||
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
* flex container. #tabs-newtab-button is a child of the arrowscrollbox where
|
||||||
* we don't want a gap (between tabs), so we have to add some margin.
|
* we don't want a gap (between tabs), so we have to add some margin.
|
||||||
*/
|
*/
|
||||||
@@ -138,7 +138,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
margin-block: var(--tab-block-margin);
|
margin-block: var(--tab-block-margin);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1913,7 +1906,6 @@ tab-group {
|
@@ -1915,7 +1908,6 @@ tab-group {
|
||||||
|
|
||||||
&:not([expanded]) {
|
&:not([expanded]) {
|
||||||
.tabbrowser-tab[pinned] {
|
.tabbrowser-tab[pinned] {
|
||||||
@@ -146,7 +146,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
}
|
}
|
||||||
|
|
||||||
.tab-background {
|
.tab-background {
|
||||||
@@ -1953,8 +1945,8 @@ tab-group {
|
@@ -1955,8 +1947,8 @@ tab-group {
|
||||||
display: block;
|
display: block;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: auto;
|
inset: auto;
|
||||||
@@ -157,7 +157,7 @@ index 8a7499426a718a56c74daea562a50de20db706e7..7ee8d7e0bd98733341e1da0d2ff965d8
|
|||||||
|
|
||||||
&:-moz-window-inactive {
|
&:-moz-window-inactive {
|
||||||
background-image:
|
background-image:
|
||||||
@@ -2073,7 +2065,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
@@ -2075,7 +2067,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button {
|
||||||
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
list-style-image: url(chrome://global/skin/icons/plus.svg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
|
diff --git a/browser/themes/shared/urlbar-searchbar.css b/browser/themes/shared/urlbar-searchbar.css
|
||||||
index 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cbe6a531c8 100644
|
index 15dcfbc95afab9f28bd58379da0ef3e24d1b4595..73827cc5cffe47099feea36cbeffb547e955b37e 100644
|
||||||
--- a/browser/themes/shared/urlbar-searchbar.css
|
--- a/browser/themes/shared/urlbar-searchbar.css
|
||||||
+++ b/browser/themes/shared/urlbar-searchbar.css
|
+++ b/browser/themes/shared/urlbar-searchbar.css
|
||||||
@@ -6,7 +6,7 @@
|
@@ -6,7 +6,7 @@
|
||||||
@@ -20,7 +20,7 @@ index 1744e627bbcfc69ccccb207ad1cbf0c262afb9be..50cc9da2076d946771fb5aca1402f1cb
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* When rich suggestions are enabled the urlbar identity icon is given extra padding to
|
/* When rich suggestions are enabled the urlbar identity icon is given extra padding to
|
||||||
@@ -321,10 +321,14 @@
|
@@ -320,10 +320,14 @@
|
||||||
|
|
||||||
.urlbar[breakout][breakout-extend] {
|
.urlbar[breakout][breakout-extend] {
|
||||||
height: auto;
|
height: auto;
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css
|
diff --git a/browser/themes/shared/urlbarView.css b/browser/themes/shared/urlbarView.css
|
||||||
index ec849fc792572e75d12b9e7cd7e6b7f32c799fa9..17c7d442854b774817ef5b3b96e732c19bebef9d 100644
|
index e0a05846eb0a329fc58b660f806912a1afe7c6c9..0d02e227a84ff4229104dd9cf9cd20f50a8d136c 100644
|
||||||
--- a/browser/themes/shared/urlbarView.css
|
--- a/browser/themes/shared/urlbarView.css
|
||||||
+++ b/browser/themes/shared/urlbarView.css
|
+++ b/browser/themes/shared/urlbarView.css
|
||||||
@@ -20,7 +20,7 @@
|
@@ -20,7 +20,7 @@
|
||||||
|
|
||||||
--urlbarView-small-font-size: 0.85em;
|
--urlbarView-small-font-size: 0.85em;
|
||||||
|
|
||||||
- --urlbarView-results-padding: 4px;
|
- --urlbarView-results-padding: 7px;
|
||||||
+ --urlbarView-results-padding: 8px;
|
+ --urlbarView-results-padding: 8px;
|
||||||
--urlbarView-row-gutter: 2px;
|
--urlbarView-row-gutter: 2px;
|
||||||
--urlbarView-item-inline-padding: var(--urlbar-icon-padding);
|
--urlbarView-item-inline-padding: var(--urlbar-icon-padding);
|
||||||
--urlbarView-item-block-padding: 6px;
|
--urlbarView-item-block-padding: 6px;
|
||||||
@@ -173,7 +173,6 @@
|
@@ -171,7 +171,6 @@
|
||||||
min-height: 32px;
|
min-height: 32px;
|
||||||
}
|
}
|
||||||
:root[uidensity="touch"] & {
|
:root[uidensity="touch"] & {
|
||||||
|
|||||||
18
src/devtools/client/locales/en-US/toolbox-properties.patch
Normal file
18
src/devtools/client/locales/en-US/toolbox-properties.patch
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/devtools/client/locales/en-US/toolbox.properties b/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
index d4f986b024d3505b8c151f8e0166a20ff1862c5d..b2fb69e8897abdacb090d5a6faca203656e7cd44 100644
|
||||||
|
--- a/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
+++ b/devtools/client/locales/en-US/toolbox.properties
|
||||||
|
@@ -66,11 +66,11 @@ toolbox.androidElementPicker.mac.tooltip=Pick an element from the Android phone
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.elementPicker.key)
|
||||||
|
# Key shortcut used to toggle the element picker.
|
||||||
|
-toolbox.elementPicker.key=CmdOrCtrl+Shift+C
|
||||||
|
+toolbox.elementPicker.key=CmdOrCtrl+Shift+L
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.elementPicker.mac.key)
|
||||||
|
# Key shortcut used to toggle the element picker for macOS.
|
||||||
|
-toolbox.elementPicker.mac.key=Cmd+Opt+C
|
||||||
|
+toolbox.elementPicker.mac.key=Cmd+Opt+L
|
||||||
|
|
||||||
|
# LOCALIZATION NOTE (toolbox.viewCssSourceInStyleEditor.label)
|
||||||
|
# Used as a message in either tooltips or contextual menu items to open the
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js
|
diff --git a/devtools/server/actors/animation-type-longhand.js b/devtools/server/actors/animation-type-longhand.js
|
||||||
index ea27f1209ddb9b33ae044186c2b795685a0bde67..6d808a760885f0e26ff307a39d6977228359fe71 100644
|
index a0026f953e8383741221d60ed5c02d0c12740f09..fd5c49d0b8997f29d3dee8dc23e2c373341eb972 100644
|
||||||
--- a/devtools/server/actors/animation-type-longhand.js
|
--- a/devtools/server/actors/animation-type-longhand.js
|
||||||
+++ b/devtools/server/actors/animation-type-longhand.js
|
+++ b/devtools/server/actors/animation-type-longhand.js
|
||||||
@@ -344,6 +344,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
|
@@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [
|
||||||
"transform-origin",
|
"transform-origin",
|
||||||
"translate",
|
"translate",
|
||||||
"-moz-window-transform",
|
"-moz-window-transform",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
|
diff --git a/devtools/startup/DevToolsStartup.sys.mjs b/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
index 95de0614e392e00036500a5b3ef9976041f37ec6..2c842055ce1d7ffd94c8f21a82305a3a13d493e0 100644
|
index 7d26af162be5620649ff36d7cf7d3835a8ac7a20..c0fbd46c22f1eacc82058919714174d15e8106f1 100644
|
||||||
--- a/devtools/startup/DevToolsStartup.sys.mjs
|
--- a/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
+++ b/devtools/startup/DevToolsStartup.sys.mjs
|
+++ b/devtools/startup/DevToolsStartup.sys.mjs
|
||||||
@@ -816,6 +816,7 @@ DevToolsStartup.prototype = {
|
@@ -816,6 +816,7 @@ DevToolsStartup.prototype = {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
|
diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
|
||||||
index 83d84537f94863d47a30887362fa1ce5a9809427..104d170d5e5114f965b7698fc59d2bad12265261 100644
|
index 625640eef45baba74255c00c603f0834e1f0aa2c..8b7893cf3848edf9121f7cbefcc3a1c76894fa37 100644
|
||||||
--- a/docshell/base/nsAboutRedirector.cpp
|
--- a/docshell/base/nsAboutRedirector.cpp
|
||||||
+++ b/docshell/base/nsAboutRedirector.cpp
|
+++ b/docshell/base/nsAboutRedirector.cpp
|
||||||
@@ -108,7 +108,7 @@ static const RedirEntry kRedirMap[] = {
|
@@ -118,7 +118,7 @@ static const RedirEntry kRedirMap[] = {
|
||||||
{"crashes", "chrome://global/content/crashes.html",
|
{"crashes", "chrome://global/content/crashes.html",
|
||||||
nsIAboutModule::IS_SECURE_CHROME_UI},
|
nsIAboutModule::IS_SECURE_CHROME_UI},
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user