Compare commits

...

31 Commits
1.17.9b ... dev

Author SHA1 Message Date
mr. m
6a218d109a feat: Use github runners instead of blacksmith for less intensive tasks, b=no-bug, c=workflows 2025-12-11 13:35:17 +01:00
mr. m
a6dd6ab984 fix: Move 'Any' import to the JSON with comments module, b=no-bug, c=scripts, tests 2025-12-11 13:31:44 +01:00
mr. m
0c0c982bc2 chore: Implement settings dump schema to update firefox remote servic…, p=#11579
* chore: Implement settings dump schema to update firefox remote services data, b=no-bug, c=configs, scripts

* feat: Also update with timestamps, b=no-bug, c=configs, scripts

* chore: Move JSON with comments to a new module, b=no-bug, c=scripts, tests

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-12-11 13:26:28 +01:00
mr. m
bcf4c4d1a3 feat: Revert not modifying the opacity for windows and linux, b=no-bug, c=workspaces 2025-12-10 18:12:17 +01:00
mr. m
e4c36574b9 feat: Fixed coloring issue for urlbar and use lazy getters for gradient generator, b=no-bug, c=common, workspaces 2025-12-10 00:47:01 +01:00
mr. m
0be950c42a Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-12-09 20:23:03 +01:00
mr. m
ad7c9688b9 chore: Bump version, b=no-bug, c=no-component 2025-12-09 20:22:53 +01:00
mr. m
ef257649a8 chore: Sync upstream to Firefox 146.0, p=#11566 2025-12-09 16:49:43 +01:00
mr. m
cd4d2e4f53 fix: Fixed regression on tab label aligment, b=no-bug, c=tabs 2025-12-09 14:25:24 +01:00
mr. m
9caf32de38 feat: Lower the size for essential tabs, b=no-bug, c=tabs 2025-12-09 01:12:11 +01:00
mr. m
43de5c69e9 fix: Fixed minor aligment and coloring issues, b=no-bug, c=tabs, workspaces 2025-12-08 18:06:58 +01:00
mr. m
85d52d15c2 fix: Fixed incorrect dot possition and scaling, b=no-bug, c=common, workspaces 2025-12-08 01:40:53 +01:00
mr. m
832b0c4fe3 feat: Increase the space of grid for devices that dont support sub-pixel rendering, b=no-bug, c=workspaces 2025-12-07 19:02:14 +01:00
mr. m
57ee00bf3e feat: Add black / white color shades options for gradients, b=no-bug, c=common, workspaces 2025-12-07 18:05:30 +01:00
Mr. M
53181ea34c chore: Import windows titlebar calculation for RC build 2, b=no-bug, c=no-component 2025-12-07 00:25:24 +01:00
mr. m
fa6bb8d27f chore: Sync upstream Firefox to version 146.0, p=#11519 2025-12-03 16:26:18 +01:00
mr-cheffy
1cbed758a9 docs: Update monthly issue metrics, b=(no bug), c={docs} 2025-12-01 02:56:27 +00:00
Mr. M
a1774ee426 feat: Preload compact mode and other UI components, b=no-bug, c=common 2025-11-30 21:28:14 +01:00
Mr. M
9df1fc731d Merge branch 'dev' of https://github.com/zen-browser/desktop into dev 2025-11-30 14:37:05 +01:00
Mr. M
2b0d509230 fix: Fixed windows titlebar not initializing correctly, b=closes #11479, closes #11475, closes #11470 and closes #11471, c=compact-mode 2025-11-30 14:36:22 +01:00
mr. m
8e7a3a9157 chore: New Crowdin updates, p=#11462 2025-11-30 14:36:06 +01:00
mr. m
600d1c209b feat: Let styled status panel ride the trains on macos, b=no-bug, c=no-component 2025-11-29 00:56:44 +01:00
mr. m
d4f1916382 fix: Fixed pinned tabs wrongly restoring on macos, making it crash, b=closes #11416, c=no-component 2025-11-29 00:37:43 +01:00
mr. m
706505cc50 chore: Fix patch corruption for FF 147 Windows border fix, b=no-bug, c=no-component 2025-11-28 12:36:40 +01:00
mr. m
445baecb56 chore: Apply patches to fix double click on the sidebar, p=#11456 2025-11-27 18:59:08 +01:00
mr. m
5dd5414bf1 chore: New Crowdin updates, p=#11438
* New translations zen-preferences.ftl (Polish)

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

* Update Twilight version to RC 145.0.2 in README

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

* Update candidate version to 145.0.2

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

---------

Signed-off-by: mr. m <91018726+mr-cheffy@users.noreply.github.com>
2025-11-25 18:03:52 +01:00
mr. m
8d12ade0bf fix: prevent new window when shift-clicking links in split view glance, b=closes https://github.com/zen-browser/desktop/issues/11409, p=#11424
Co-authored-by: Nihal <121309701+nihalxkumar@users.noreply.github.com>
2025-11-25 17:55:05 +01:00
mr. m
58c4533939 chore: New Crowdin updates, p=#11418 2025-11-25 17:54:23 +01:00
mr. m
d110dcaa35 feat: Remove legacy pref checking for gradient themes, b=bug #11375, c=common, workspaces 2025-11-24 22:49:50 +01:00
160 changed files with 2826 additions and 1010 deletions

View File

@@ -190,7 +190,7 @@ jobs:
name: Lint name: Lint
check-release: check-release:
runs-on: blacksmith-2vcpu-ubuntu-2404 runs-on: ubuntu-latest
needs: [build-data, lint] needs: [build-data, lint]
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -231,7 +231,7 @@ jobs:
source: source:
permissions: permissions:
contents: write contents: write
runs-on: blacksmith-2vcpu-ubuntu-2404 runs-on: ubuntu-latest
needs: [build-data, check-release] needs: [build-data, check-release]
steps: steps:

View File

@@ -34,8 +34,8 @@ 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 `145.0.1`! 🚀 - [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `146.0`! 🚀
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0.1`! - [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 146.0`!
### Contributing ### Contributing

View File

@@ -1 +1 @@
99a389c2413be0374ee04b10021ed269c0387b45 8908c8eb566c64521e2a777ad8a80b62bd6aa193

View File

@@ -0,0 +1,20 @@
// 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/.
{
"remove": {
"identifiers": [
// Firefox adds Perplexity by default, we don't want it as
// its not very privacy focused.
"perplexity",
// These are not search engines, Firefox adds them by default
// but we don't want them.
"wikipedia",
"wikipedia-*",
"ebay",
"ebay-*"
]
},
"timestamp": 1765455207275
}

View File

@@ -0,0 +1,256 @@
# Issue Metrics
| Metric | Average | Median | 90th percentile |
| --- | --- | --- | ---: |
| Time to first response | 16:46:00 | 5:17:03 | 1 day, 12:16:08 |
| Time to close | 1 day, 16:51:17 | 10:24:05 | 6 days, 16:29:29 |
| Metric | Count |
| --- | ---: |
| Number of items that remain open | 117 |
| Number of items closed | 121 |
| Total number of items created | 238 |
| Title | URL | Time to first response | Time to close |
| --- | --- | --- | --- |
| Middle Mouse Click to close a tab with tab peek not working | https://github.com/zen-browser/desktop/issues/11492 | None | None |
| Accessing bookmarks in full screen mode on MacOS is awkward | https://github.com/zen-browser/desktop/issues/11491 | None | None |
| Youtube player going off screen at the bottom on MacOS, making the media controls harder to access | https://github.com/zen-browser/desktop/issues/11489 | None | 1:12:11 |
| browser.tabs.closeWindowWithLastTab closes the window even if you have tabs open in other workspaces | https://github.com/zen-browser/desktop/issues/11487 | None | None |
| Deleting a workspace in one window leaves the others in a strange state | https://github.com/zen-browser/desktop/issues/11486 | None | None |
| Creating a new workspace in one window breaks other windows | https://github.com/zen-browser/desktop/issues/11485 | None | None |
| Compact mode unusable on non-primary windows | https://github.com/zen-browser/desktop/issues/11484 | 0:14:09 | None |
| 1password keyboard shortcut (Cmd+.) no longer works when sidebar is collapsed | https://github.com/zen-browser/desktop/issues/11483 | None | None |
| sidebar does not popup in compact mode once the window is snapped | https://github.com/zen-browser/desktop/issues/11482 | None | None |
| Alt + number keys unexpectedly trigger Split View | https://github.com/zen-browser/desktop/issues/11481 | None | None |
| UI bug: bookmark icons invisible/missing | https://github.com/zen-browser/desktop/issues/11480 | None | 0:11:24 |
| Title Bar has a broken appearence and the Window Control buttons are in positions like on MacOS despite being on Windows | https://github.com/zen-browser/desktop/issues/11479 | 0:45:21 | 10:17:29 |
| Theme does not update when switching spaces in an inactive window | https://github.com/zen-browser/desktop/issues/11477 | 0:22:04 | None |
| Compact mode deactivate in Private Mode and can't be reactivate | https://github.com/zen-browser/desktop/issues/11475 | None | 22:01:31 |
| Flawed Search Bar & Undifferentiated Essentials for Each Workspaces | https://github.com/zen-browser/desktop/issues/11474 | 20:29:53 | 20:29:53 |
| Can't run Netflix ( Error code UI3012 ) | https://github.com/zen-browser/desktop/issues/11473 | 5:30:12 | 7:42:29 |
| I lost connectivity at all after updating to version v1.17.11b | https://github.com/zen-browser/desktop/issues/11471 | 6:39:25 | 1 day, 0:59:28 |
| Opening a private window occasionally breaks UI | https://github.com/zen-browser/desktop/issues/11470 | None | 1 day, 1:10:14 |
| Cannot switch space with trackpad swipe gestures on macOS | https://github.com/zen-browser/desktop/issues/11469 | 3:51:59 | 1 day, 4:15:09 |
| I cannot access Google's AI mode on Zen browser | https://github.com/zen-browser/desktop/issues/11468 | 2:05:10 | None |
| ico loading problem for essentials when 'Open Previous WIndows and Tabs' is disabled | https://github.com/zen-browser/desktop/issues/11466 | None | 0:05:48 |
| Session restoration mixing workspaces | https://github.com/zen-browser/desktop/issues/11465 | None | None |
| Title: URL bar loses focus when switching keyboard layout on GNOME (Linux, Arch/Manjaro) | https://github.com/zen-browser/desktop/issues/11464 | None | 0:29:03 |
| The splitscreen break the ui and ux of the browser | https://github.com/zen-browser/desktop/issues/11461 | 3:30:24 | None |
| Sound not playing on any website execpt youtube | https://github.com/zen-browser/desktop/issues/11459 | 2:18:55 | None |
| Using glance on essential tab creates duplicate of essential tab | https://github.com/zen-browser/desktop/issues/11457 | 4:22:37 | 4:22:36 |
| Sidebar getting corrupted and crashing browser | https://github.com/zen-browser/desktop/issues/11455 | 18:13:54 | 1 day, 2:55:36 |
| Double clicking the tabs list not opening a new tab on Windows (It does on Linux) | https://github.com/zen-browser/desktop/issues/11453 | 0:05:41 | 0:05:01 |
| Compact Mode resets toolbar and sidebar visibility settings after restart | https://github.com/zen-browser/desktop/issues/11452 | 1:55:49 | None |
| Bookmarks/History hidden behind side pane on new tab when compact mode used. | https://github.com/zen-browser/desktop/issues/11450 | 4:29:59 | None |
| Pinned extensions keep disappearing from sidebar after closing and opening Zen | https://github.com/zen-browser/desktop/issues/11449 | 0:38:40 | None |
| MacOS SidePanel Spaces Converge When Offline | https://github.com/zen-browser/desktop/issues/11448 | None | None |
| Cursor and address bar disappear when switching keyboard layout on GNOME (Wayland) | https://github.com/zen-browser/desktop/issues/11445 | 1 day, 8:37:33 | None |
| Telegram link | https://github.com/zen-browser/desktop/issues/11444 | 11:39:00 | 11:39:00 |
| Unable to open extensions | https://github.com/zen-browser/desktop/issues/11443 | 3:25:58 | 13:29:15 |
| Tab must be Unloaded before it can be Closed, via Cmd+W | https://github.com/zen-browser/desktop/issues/11442 | 2:10:53 | 2:10:53 |
| Update to Firefox 145.0.2 has made Zen Browser unusable | https://github.com/zen-browser/desktop/issues/11441 | 2:21:19 | 18:05:42 |
| MacOS Crash - enclosing crash log | https://github.com/zen-browser/desktop/issues/11439 | 23:30:54 | 1 day, 0:09:38 |
| Using Ctrl for Glance create extra tabs | https://github.com/zen-browser/desktop/issues/11437 | None | 0:28:39 |
| how to remove the white line? | https://github.com/zen-browser/desktop/issues/11436 | 2:58:39 | 10:37:48 |
| New tab opens in essentials area | https://github.com/zen-browser/desktop/issues/11435 | 0:43:56 | 3:46:27 |
| Bookmarks got multiplied in toolbar when opening a new window | https://github.com/zen-browser/desktop/issues/11434 | None | 10:05:27 |
| moving profile directory makes it non-functional (has fix!) | https://github.com/zen-browser/desktop/issues/11432 | None | None |
| Network login button renders beind viewport | https://github.com/zen-browser/desktop/issues/11430 | 2:18:48 | None |
| tabs not going into respective workspaces after closing zen browser window | https://github.com/zen-browser/desktop/issues/11429 | 8:31:21 | None |
| Download Animation Gone Since Upgrading To 1.17.9b | https://github.com/zen-browser/desktop/issues/11428 | 2:07:15 | 15:04:59 |
| Startup option "Continue where you left off" and "Open previous windows and tabs" synchronization issues with windows, tabs and Spaces | https://github.com/zen-browser/desktop/issues/11427 | 15:38:00 | 16:06:49 |
| Buggy CMD+Q behavior with tab glance | https://github.com/zen-browser/desktop/issues/11426 | None | None |
| Extensions button doesnt exist | https://github.com/zen-browser/desktop/issues/11423 | 0:00:56 | 0:00:56 |
| Usage Issues [Stuck Content, Ineffective Themes, and Glances] | https://github.com/zen-browser/desktop/issues/11421 | 1:36:19 | 1:37:09 |
| Zen opens two windows on startup (second window shows only the home page with no restored tabs) | https://github.com/zen-browser/desktop/issues/11420 | 2:31:45 | None |
| Pinned tabs revert to normal tabs after window restore, causing browser freeze on close | https://github.com/zen-browser/desktop/issues/11416 | 5:04:47 | 5 days, 4:53:53 |
| Address bar gets cut off in a pop out window | https://github.com/zen-browser/desktop/issues/11415 | 11:53:51 | None |
| Opening a tab in glance also opens a new window with the selected link. | https://github.com/zen-browser/desktop/issues/11414 | 9:45:31 | 13:23:52 |
| glance creating new windows | https://github.com/zen-browser/desktop/issues/11413 | None | 1:41:08 |
| Restoration of previous session is not working automatically but after Ctrl+Shift+t in windows | https://github.com/zen-browser/desktop/issues/11412 | None | None |
| duplicate tab shortcut missing | https://github.com/zen-browser/desktop/issues/11411 | 1 day, 0:23:07 | None |
| Zen 1.17.8b is really laggy in windowed mode (Arch Linux) (not just the websites but buttons in the browser ui too) | https://github.com/zen-browser/desktop/issues/11410 | 0:52:24 | 10:41:30 |
| Opening a glance in split view also opens the link in a new window when using "Shift" as modifier | https://github.com/zen-browser/desktop/issues/11409 | 12:21:00 | 1 day, 6:44:30 |
| Browser broken after an update (pages are opened in a little stripe) | https://github.com/zen-browser/desktop/issues/11408 | 18:47:35 | 23:43:06 |
| Workspaces are not synced across different devices on a single firefox account | https://github.com/zen-browser/desktop/issues/11407 | 4:33:42 | 3 days, 10:56:38 |
| Youtube not loading ever | https://github.com/zen-browser/desktop/issues/11406 | 19:47:23 | None |
| After collapsing sidebar, layout shifts from "Only Sidebar" to "Sidebar and Top Toolbar" | https://github.com/zen-browser/desktop/issues/11405 | 1 day, 13:18:36 | 1 day, 20:49:48 |
| Open new window when already a window is open. | https://github.com/zen-browser/desktop/issues/11402 | None | None |
| Tab unpinning causes Tab Stash to crash | https://github.com/zen-browser/desktop/issues/11398 | None | None |
| Strange Pink Rendering Glitch | https://github.com/zen-browser/desktop/issues/11393 | None | None |
| Gradient line below the toolbar | https://github.com/zen-browser/desktop/issues/11391 | 8:24:14 | 8:24:14 |
| After 1.17.7b, zen browser is extremely slow | https://github.com/zen-browser/desktop/issues/11390 | 5:27:46 | None |
| Zen forgets all tabs when the main browser is closed while a private browsing window is open | https://github.com/zen-browser/desktop/issues/11389 | 2:56:12 | 3:40:47 |
| UI Issue | https://github.com/zen-browser/desktop/issues/11388 | 2:25:00 | 2:25:00 |
| Glance Stutter on Windows 10 Specifically | https://github.com/zen-browser/desktop/issues/11387 | 2:31:16 | None |
| прошу помочь решить данную проблему | https://github.com/zen-browser/desktop/issues/11386 | 6:34:42 | 6:34:42 |
| The "Slow page warning" toast is just shown in compact mode | https://github.com/zen-browser/desktop/issues/11385 | None | None |
| Zen browser opens a new instance for each tab or opens a tab inside of a tab | https://github.com/zen-browser/desktop/issues/11384 | 4:05:56 | 4:06:03 |
| Issue with extensions HUD | https://github.com/zen-browser/desktop/issues/11383 | 0:49:47 | 3:01:53 |
| about:support does not show version, build ID etc. | https://github.com/zen-browser/desktop/issues/11382 | 2:39:09 | 4:08:48 |
| Sharing screen in google meet on macOS Sequoia 15.7.2 breaks browser | https://github.com/zen-browser/desktop/issues/11380 | None | None |
| No deletion option for the folders | https://github.com/zen-browser/desktop/issues/11379 | 0:13:25 | None |
| When debugging in the console, the SSE request does not return a value. | https://github.com/zen-browser/desktop/issues/11378 | None | None |
| Bitwarden extension autofill login shortcut not auto-focusing input field when locked | https://github.com/zen-browser/desktop/issues/11377 | 1 day, 7:53:09 | None |
| In Niri in Nixos, the theme changes to light | https://github.com/zen-browser/desktop/issues/11375 | 2 days, 17:42:19 | 4 days, 14:40:38 |
| Cannot provide optional extension permissions | https://github.com/zen-browser/desktop/issues/11374 | 14:12:47 | None |
| Double click on sidebar doesn't open a new tab | https://github.com/zen-browser/desktop/issues/11373 | None | 1:36:14 |
| Zen fullscreen does not trigger KDE Plasma fullscreen state (bottom panel stays visible) | https://github.com/zen-browser/desktop/issues/11372 | None | None |
| Gap above window when maximized on monitor | https://github.com/zen-browser/desktop/issues/11369 | 4:03:49 | 9:53:29 |
| Rapid janky movement of sidebar when its width is set to certain sizes | https://github.com/zen-browser/desktop/issues/11368 | None | None |
| Media control latency and timestamp inconsistencies on YT Music | https://github.com/zen-browser/desktop/issues/11367 | None | None |
| extension toolbar gone / cant pin extensions to toolbar | https://github.com/zen-browser/desktop/issues/11366 | 3:05:26 | 3:05:26 |
| Links using text fragments (#:~:text=..." do not work | https://github.com/zen-browser/desktop/issues/11365 | 16:32:29 | 1 day, 4:18:54 |
| Passbolt Password Manager doesn't work properly | https://github.com/zen-browser/desktop/issues/11360 | None | None |
| opening a new window doesn't bring in pinned tabs on first open, and then on second open not all of the pinned tabs are in their folders | https://github.com/zen-browser/desktop/issues/11359 | 8:59:41 | None |
| Extensions box closed abruptely | https://github.com/zen-browser/desktop/issues/11358 | 2:10:35 | None |
| No return sound from discord audio input check | https://github.com/zen-browser/desktop/issues/11356 | None | None |
| Janky movement for favorites group when transitioning between first and last workspaces | https://github.com/zen-browser/desktop/issues/11355 | 10:30:48 | None |
| Viewport is slimmed down far too much | https://github.com/zen-browser/desktop/issues/11352 | 7:07:05 | 21:48:04 |
| Zen doesnt remember tabs when starting | https://github.com/zen-browser/desktop/issues/11350 | 5:29:24 | None |
| Clear tabs sidebar button is not visible if there are no pinned tabs | https://github.com/zen-browser/desktop/issues/11349 | 0:42:08 | 23:37:58 |
| ctrl+tab tab switcher (mission control tab view) not showing when holding down ctrl + tab when only essentials are open | https://github.com/zen-browser/desktop/issues/11348 | None | None |
| Modules missing top-level preference defaults can break features for new users | https://github.com/zen-browser/desktop/issues/11346 | 1:16:02 | 1:16:02 |
| 1.17.7b no longer allows hiding only the toolbar in Compact Mode | https://github.com/zen-browser/desktop/issues/11344 | 1:58:40 | 6:04:31 |
| Browser extension icons not visible | https://github.com/zen-browser/desktop/issues/11341 | 3:00:42 | 9:19:38 |
| Corner bleed bug | https://github.com/zen-browser/desktop/issues/11340 | 5:32:29 | 10 days, 4:54:09 |
| Double click the side bar now can't open "new tab" | https://github.com/zen-browser/desktop/issues/11339 | None | 0:11:54 |
| Sidebar blur (backdrop-filter) not applying in Compact Mode except in Settings Page | https://github.com/zen-browser/desktop/issues/11337 | 2:12:20 | 2:12:20 |
| Extended URL bar in the sidebar only mode. | https://github.com/zen-browser/desktop/issues/11334 | 4:41:50 | None |
| All Unloaded Tabs Closed after Every Update | https://github.com/zen-browser/desktop/issues/11330 | None | None |
| Zen Browser: blank page when accessing app.datadoghq.eu | https://github.com/zen-browser/desktop/issues/11328 | 0:05:29 | 0:56:10 |
| Double-clicking on sidebar no longer opens a new tab - 1.17.7b | https://github.com/zen-browser/desktop/issues/11327 | None | 0:37:46 |
| Unintuitive drag-and-drop behavior when moving tabs into folders | https://github.com/zen-browser/desktop/issues/11326 | 0:37:20 | 1 day, 3:01:46 |
| Moving the last tab from a window doesn't close it, even with `browser.tabs.closeWindowWithLastTab = true` | https://github.com/zen-browser/desktop/issues/11323 | 0:20:33 | None |
| Error 2069 while watching DRM protected content | https://github.com/zen-browser/desktop/issues/11322 | 3:43:18 | None |
| moving tabs among themselves breaks as the number u move them by increases | https://github.com/zen-browser/desktop/issues/11320 | 3 days, 0:34:57 | None |
| draging the window by using the sidebar | https://github.com/zen-browser/desktop/issues/11319 | 1:05:02 | 1:05:02 |
| Double-clicking on the sidebar no longer opens a new tab. | https://github.com/zen-browser/desktop/issues/11317 | 2:09:26 | 2:09:26 |
| Pinned and essentials tabs automatically unloaded on startup after updating to 1.17.7b | https://github.com/zen-browser/desktop/issues/11315 | 4 days, 4:53:59 | 12 days, 9:07:43 |
| Zen Browser opens two windows on startup after update to 1.17.7b | https://github.com/zen-browser/desktop/issues/11314 | 3 days, 5:12:02 | 8 days, 7:16:06 |
| Extensions that add themselves into the URL bar are not hidden in single mode, resulting in too little space to reliably click on the URL. | https://github.com/zen-browser/desktop/issues/11313 | None | None |
| container name is no longer visible in URL bar | https://github.com/zen-browser/desktop/issues/11312 | 3 days, 14:24:15 | None |
| Compact Toolbar: | https://github.com/zen-browser/desktop/issues/11307 | 2 days, 9:21:05 | 2 days, 23:15:20 |
| Cant install on linux (AUR) | https://github.com/zen-browser/desktop/issues/11306 | 2:13:01 | 5:09:46 |
| Maximized Window Disregards System Work Area | https://github.com/zen-browser/desktop/issues/11304 | 5:14:50 | 13:10:35 |
| CMD+TABbing away while picture-in-picture is open means PiP takes focus (does not happen in raw Firefox) | https://github.com/zen-browser/desktop/issues/11303 | None | None |
| Split View Closing Shortcut Doesn't Work And Opens Weird CSS File | https://github.com/zen-browser/desktop/issues/11301 | 5 days, 21:24:35 | None |
| Compact Mode: Top Toolbar not closing automatically after clicking away from Extensions | https://github.com/zen-browser/desktop/issues/11300 | None | None |
| Window hidden while adjusting slider on theme | https://github.com/zen-browser/desktop/issues/11299 | None | None |
| I found a very unfriendly experience | https://github.com/zen-browser/desktop/issues/11298 | 18:02:40 | 7 days, 19:19:59 |
| Simple HTML dialog closes when I click the first text box within it | https://github.com/zen-browser/desktop/issues/11297 | None | None |
| Paste and Go or Paste + Enter Key Overwriting tabs | https://github.com/zen-browser/desktop/issues/11294 | None | None |
| Collapsed Toolbar: Ctrl+T Temporarily Expands Top Toolbar in Compact Mode | https://github.com/zen-browser/desktop/issues/11291 | None | None |
| Extensions Window not opening after startup | https://github.com/zen-browser/desktop/issues/11290 | None | 1 day, 9:57:38 |
| Opening new tab with middle click leaks data via unexpected search | https://github.com/zen-browser/desktop/issues/11289 | 1 day, 10:13:56 | 1 day, 10:13:56 |
| When submitting bug reports, remove the requirement for confirming the issue can't be reproduced on Firefox. | https://github.com/zen-browser/desktop/issues/11287 | 3:58:51 | 17:59:36 |
| Application Menu overflows out of screen | https://github.com/zen-browser/desktop/issues/11284 | None | 9 days, 17:48:08 |
| Copy current URL with a keyboard shortcut missing in shortcut settings | https://github.com/zen-browser/desktop/issues/11281 | 0:04:41 | 6 days, 23:58:41 |
| tel: links : incomplete functionality - do not copy the number to default tel link handling application | https://github.com/zen-browser/desktop/issues/11280 | None | None |
| CORS Request Fails - Power Automate in Zen | https://github.com/zen-browser/desktop/issues/11279 | 6:14:35 | None |
| Tabs and essentials easy to accidentally drag off | https://github.com/zen-browser/desktop/issues/11278 | 5:34:54 | None |
| (Fixed - Client side) Minor visual clipping when scrolling with a hidden taskbar | https://github.com/zen-browser/desktop/issues/11276 | None | 0:01:03 |
| Firefox's select link feature conflicted with Zen Glance | https://github.com/zen-browser/desktop/issues/11273 | None | 13 days, 12:00:56 |
| Split screen gaps disappearing while in compact mode | https://github.com/zen-browser/desktop/issues/11269 | 3:31:14 | 6 days, 16:29:29 |
| Change Tab(s) to Workspace does not respect profile/container. | https://github.com/zen-browser/desktop/issues/11268 | 1:59:44 | None |
| Youtube Fullscreen Problem | https://github.com/zen-browser/desktop/issues/11265 | None | 5:09:01 |
| Certificate error @ learn.microsoft.com (SEC_ERROR_INVALID_TIME) | https://github.com/zen-browser/desktop/issues/11260 | 2:18:34 | 1 day, 17:17:46 |
| Extentions pin toolbar bug | https://github.com/zen-browser/desktop/issues/11257 | 1 day, 8:06:21 | None |
| Links only open in the browser if the browser is already opening, otherwise links will just launch the browser | https://github.com/zen-browser/desktop/issues/11256 | 1 day, 22:41:45 | None |
| Share menu opens again rather than closing when share button is pressed while share menu is open. | https://github.com/zen-browser/desktop/issues/11248 | None | None |
| Browser layout setting selection has low contrast in dark mode | https://github.com/zen-browser/desktop/issues/11246 | None | None |
| "Change Tab to Workspace" does not respect "Move the new tab button to the top" setting | https://github.com/zen-browser/desktop/issues/11245 | None | None |
| Cmd+Shift+B on sidebar-only mode flashes bookmarks bar | https://github.com/zen-browser/desktop/issues/11244 | None | None |
| Multiple windows reopen on launch despite disabling "Open previous windows and tabs" | https://github.com/zen-browser/desktop/issues/11243 | None | None |
| Crunchyroll doesn't work on Zen Windows on latest version 1.7.6b (Error : SHAK-6007) | https://github.com/zen-browser/desktop/issues/11237 | 0:14:37 | 10:24:05 |
| White space & transparency issues in spaces. | https://github.com/zen-browser/desktop/issues/11236 | None | None |
| Folders briefly auto-open then close on launch | https://github.com/zen-browser/desktop/issues/11235 | None | None |
| Phantom tabs present in detached Zen Window | https://github.com/zen-browser/desktop/issues/11234 | None | None |
| Trying to open a tab to amazon.de will open to amazon.com | https://github.com/zen-browser/desktop/issues/11233 | 1:53:48 | None |
| Glance icons grayed out | https://github.com/zen-browser/desktop/issues/11232 | None | None |
| Most websites dont load past initial state | https://github.com/zen-browser/desktop/issues/11231 | None | 0:10:07 |
| Keep crashing on Windows 11, it starts with the version 1.17.3b | https://github.com/zen-browser/desktop/issues/11230 | 5:57:35 | 2 days, 8:53:01 |
| Zen Browser suggests to update despite having the latest version installed | https://github.com/zen-browser/desktop/issues/11228 | 0:20:38 | 2:38:54 |
| Extensions menu not appearing in the upper right corner | https://github.com/zen-browser/desktop/issues/11227 | 23:02:30 | 0:54:37 |
| Toolbar still visible after toggling Sidebar's width | https://github.com/zen-browser/desktop/issues/11225 | 8 days, 18:39:49 | 8 days, 19:59:54 |
| Cannot install addons in compact mode | https://github.com/zen-browser/desktop/issues/11223 | None | 0:02:33 |
| Slow performance when refreshing | https://github.com/zen-browser/desktop/issues/11222 | 13:44:26 | 13:44:26 |
| When switching search engines in the address bar, the control center buttons will disappear. | https://github.com/zen-browser/desktop/issues/11221 | 7 days, 17:29:07 | 7 days, 17:29:07 |
| Browser switches to another workspace upon clicking a pinned tab | https://github.com/zen-browser/desktop/issues/11220 | 5 days, 14:59:49 | 5 days, 19:54:54 |
| DRM ISSUE (Crunchyroll, Netflix, Prime, and etc.) | https://github.com/zen-browser/desktop/issues/11218 | 6:12:26 | 6:51:11 |
| "Replace pinned URL with current" stopped working | https://github.com/zen-browser/desktop/issues/11217 | None | 3:23:47 |
| Zen high memory usage | https://github.com/zen-browser/desktop/issues/11216 | 4:09:50 | 4:09:50 |
| Visual glitches, ghosting, and screen tearing on Linux for Zen browser versions above 1.15.5b-1 | https://github.com/zen-browser/desktop/issues/11214 | None | None |
| Broken [browser&#124;chrome].tabs.query({}) making Tab Session Manager unusable | https://github.com/zen-browser/desktop/issues/11210 | None | None |
| Click interactions not working on some sites | https://github.com/zen-browser/desktop/issues/11208 | None | 0:11:33 |
| Tabs not closing properly while they are inside a folder. | https://github.com/zen-browser/desktop/issues/11207 | None | 3:59:22 |
| Management of synced tabs is split between two "sidebars" | https://github.com/zen-browser/desktop/issues/11206 | None | None |
| Tab saving broken | https://github.com/zen-browser/desktop/issues/11205 | None | None |
| URL bar focused when starting zen browser with --new-window 'url' flag | https://github.com/zen-browser/desktop/issues/11204 | None | None |
| Unable to connect to local network as of 1.17.5b | https://github.com/zen-browser/desktop/issues/11201 | 0:44:35 | None |
| After wakeup Zen queries DNS for all tabs, even unloaded ones and stalls meanwhile | https://github.com/zen-browser/desktop/issues/11200 | None | None |
| Dublicate entry in Default Apps in KDE Plasma Setting | https://github.com/zen-browser/desktop/issues/11198 | None | None |
| Extension Menu's not working in the home page. | https://github.com/zen-browser/desktop/issues/11193 | 3:04:23 | None |
| space is changed automatically when whatsapp & any other tab is in split view. | https://github.com/zen-browser/desktop/issues/11189 | None | None |
| Opening links from external apps does not work as excepted if Zen is not already running | https://github.com/zen-browser/desktop/issues/11188 | 7:34:42 | 7:57:27 |
| Top suggestion in location bar is unremovable search engine | https://github.com/zen-browser/desktop/issues/11187 | 8:08:43 | 5 days, 21:13:30 |
| Extension installation prompt rendered outside of browser frame | https://github.com/zen-browser/desktop/issues/11186 | 9:29:30 | 23:50:25 |
| Launching Zen with Reopen Previous Windows and Tabs opens outdated tab list | https://github.com/zen-browser/desktop/issues/11185 | None | None |
| Websites just outright broken | https://github.com/zen-browser/desktop/issues/11183 | 6:08:20 | 17:11:50 |
| New extensions button does not appear on blank tab | https://github.com/zen-browser/desktop/issues/11182 | 2 days, 8:40:31 | 10 days, 2:29:48 |
| Prompted to install extension, install erroneously canceled | https://github.com/zen-browser/desktop/issues/11181 | None | None |
| URL Bar history search only matches URL beginning | https://github.com/zen-browser/desktop/issues/11179 | 20:55:48 | 21:09:44 |
| Missing Visual Indicators In "Privacy & Security" Settings | https://github.com/zen-browser/desktop/issues/11178 | 22:31:51 | 9 days, 11:01:53 |
| Extension Install Menu Appears Off Screen | https://github.com/zen-browser/desktop/issues/11177 | None | 5:50:00 |
| Split view bug if switching vertical to horizontal or otherwise | https://github.com/zen-browser/desktop/issues/11176 | None | None |
| Bookmark sidebar does'nt close | https://github.com/zen-browser/desktop/issues/11174 | 0:03:15 | 0:28:44 |
| Jupyterhub terminal didn't show correctly | https://github.com/zen-browser/desktop/issues/11173 | 1 day, 12:00:31 | None |
| Split view container tabs have their highlight in the centre of the tab in compact mode. | https://github.com/zen-browser/desktop/issues/11172 | None | None |
| no extension menu/button in the url bar | https://github.com/zen-browser/desktop/issues/11171 | 11:09:25 | 17:18:29 |
| Double click to open new tab doesnt work | https://github.com/zen-browser/desktop/issues/11170 | 1 day, 9:51:08 | 3 days, 6:19:08 |
| Sidebar not closing in compact mode frequently | https://github.com/zen-browser/desktop/issues/11168 | 17:06:30 | None |
| HiDpi screen issue with Zen Browser | https://github.com/zen-browser/desktop/issues/11165 | None | None |
| With compact mode enabled, this problem occurs when trying to move a tab from one window to another. | https://github.com/zen-browser/desktop/issues/11164 | None | None |
| Microsoft Company Portal flags Zen as Firefox hence preventing it from installing on company managed devices | https://github.com/zen-browser/desktop/issues/11163 | 0:21:58 | None |
| Brew Install Hash Mismatch on MacOS Silicon | https://github.com/zen-browser/desktop/issues/11162 | 3 days, 5:01:22 | 4 days, 5:17:58 |
| Extensions that take over/replace passkeys does not work | https://github.com/zen-browser/desktop/issues/11161 | 20:42:26 | None |
| [CRASH] Segmentation fault error on macOS M4 Pro | https://github.com/zen-browser/desktop/issues/11159 | None | None |
| Upon browser close or restart, all pinned tabs and tabs from "essentials" are removed and closed. | https://github.com/zen-browser/desktop/issues/11157 | 6:21:54 | None |
| Video Lag when Laptop Charger Connected or Disconnected | https://github.com/zen-browser/desktop/issues/11156 | 1:39:07 | None |
| Multiple inconsistancies with private window theme | https://github.com/zen-browser/desktop/issues/11155 | None | None |
| Website immediately switches to blank page | https://github.com/zen-browser/desktop/issues/11152 | 7:52:22 | None |
| URL bar doesn't move back to the sidebar | https://github.com/zen-browser/desktop/issues/11150 | 0:01:40 | 0:04:56 |
| New unified panel icon not showing in sidebar only mode | https://github.com/zen-browser/desktop/issues/11149 | 0:19:16 | 1 day, 3:04:30 |
| Glance animation starts from wrong origin when triggered via right-click search | https://github.com/zen-browser/desktop/issues/11148 | 1:03:12 | 12 days, 22:48:29 |
| Zen no longer shows the Profile icon associated with the current Workspace | https://github.com/zen-browser/desktop/issues/11146 | 0:10:36 | None |
| Double-clicking on the toolbar should fill the screen. | https://github.com/zen-browser/desktop/issues/11145 | 1:08:26 | None |
| Cannot move or drag browser window when tabs are on right | https://github.com/zen-browser/desktop/issues/11142 | None | None |
| MediaSource.addSourceBuffer: Type not supported in MediaSource when playing MP3 (works in Chrome) | https://github.com/zen-browser/desktop/issues/11141 | 1:09:43 | 1:13:18 |
| Cannot access https://zen-browser.app with Zen Browser but can with Firefox, Safari and Comet on macOS Tahoe | https://github.com/zen-browser/desktop/issues/11140 | 0:34:57 | None |
| Extensions don't show up | https://github.com/zen-browser/desktop/issues/11137 | None | 0:01:49 |
| Problem with the whole browser | https://github.com/zen-browser/desktop/issues/11136 | 6:34:23 | 9:22:27 |
| Essential and Pinned dont load after quitting with multiple windows (Ctrl+Shift+Q) on Windows | https://github.com/zen-browser/desktop/issues/11135 | None | None |
| Firefox's grouped tabs do not collapse on toggle | https://github.com/zen-browser/desktop/issues/11134 | 7:02:37 | 7:02:37 |
| Spotify is not working properly | https://github.com/zen-browser/desktop/issues/11133 | 9:28:56 | 11:23:38 |
| Picture-in-Picture (PiP) Feature Does Not Appear | https://github.com/zen-browser/desktop/issues/11132 | 5:41:39 | 11:58:40 |
| Video controls cut off in fullscreen mode, only when Zen itself is also fullscreen. | https://github.com/zen-browser/desktop/issues/11131 | None | 6:38:36 |
| Glance closing animation replays when escape is spammed during closing | https://github.com/zen-browser/desktop/issues/11130 | 19:25:23 | 22:20:06 |
| Little bit of url sticks out of top right or left side when using only sidebar style | https://github.com/zen-browser/desktop/issues/11126 | 1 day, 3:59:29 | None |
| Empty space in the tabs if close a tab in unexpected way | https://github.com/zen-browser/desktop/issues/11125 | None | None |
| Extensions icon dissapeared | https://github.com/zen-browser/desktop/issues/11121 | -1 day, 23:11:28 | 4:25:16 |
| Unable to close hisory/ download/ bookmarks/ tags window without closing the whole application. [Linux] | https://github.com/zen-browser/desktop/issues/11119 | None | None |
| Suddenly lost all of my essential tabs; Can't add container'd tabs as Essential tabs | https://github.com/zen-browser/desktop/issues/11118 | 3:07:03 | 3:07:03 |
| Onboarding unskippable with a large number of search shortcuts | https://github.com/zen-browser/desktop/issues/11117 | 14:58:00 | None |
| Newly created Workspaces are shown behind the active Workspace in existing windows | https://github.com/zen-browser/desktop/issues/11116 | None | None |
| Apple websites' font spacing broken | https://github.com/zen-browser/desktop/issues/11115 | 6 days, 15:27:12 | None |
| Allow pinned tabs to update their titles dynamically with the page, as normal | https://github.com/zen-browser/desktop/issues/11114 | 6:52:55 | None |
| Copy Me That extension stopped working with latest update | https://github.com/zen-browser/desktop/issues/11111 | 0:12:46 | 4:14:11 |
| Browser layout does not reset to previous state | https://github.com/zen-browser/desktop/issues/11109 | 5:17:03 | 5:17:03 |
| On mac bookmarks menu is not appaering then hover coursor on the top edge like it works on windows. | https://github.com/zen-browser/desktop/issues/11108 | 6:13:53 | 6:14:03 |
| Loading icon visible behind all favicons | https://github.com/zen-browser/desktop/issues/11107 | 3:39:00 | None |
| Extensions that already exist cannot be pinned to the Toolbar | https://github.com/zen-browser/desktop/issues/11106 | 7:55:13 | 11:51:53 |
| Sidebar URL is almost entirely overtaken by icons, seriously needs options to hide icons | https://github.com/zen-browser/desktop/issues/11105 | 12:24:07 | 23:18:25 |
_This report was generated with the [Issue Metrics Action](https://github.com/github/issue-metrics)_
Search query used to find these items: `repo:zen-browser/desktop is:issue created:2025-11-01..2025-11-30`

View File

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

View File

@@ -5,9 +5,9 @@
pane-zen-looks-title = Aussehen pane-zen-looks-title = Aussehen
category-zen-looks = category-zen-looks =
.tooltiptext = { pane-zen-looks-title } .tooltiptext = { pane-zen-looks-title }
zen-warning-language = Das Ändern der Standardsprache könnte es Websites einfacher machen, Sie zu verfolgen. zen-warning-language = Das Ändern der Standardsprache könnte es Websites erleichtern, dich zu verfolgen.
zen-vertical-tabs-layout-header = Browser-Layout zen-vertical-tabs-layout-header = Browser-Layout
zen-vertical-tabs-layout-description = Wählen Sie das Layout, das am besten zu Ihnen passt zen-vertical-tabs-layout-description = Wähle das Layout, das am besten zu dir passt
zen-layout-single-toolbar = Einzelne Symbolleiste zen-layout-single-toolbar = Einzelne Symbolleiste
zen-layout-multiple-toolbar = Mehrere Symbolleisten zen-layout-multiple-toolbar = Mehrere Symbolleisten
zen-layout-collapsed-toolbar = Eingeklappte Symbolleiste zen-layout-collapsed-toolbar = Eingeklappte Symbolleiste
@@ -18,7 +18,7 @@ sync-engine-workspaces =
.accesskey = W .accesskey = W
zen-glance-title = Schnellansicht zen-glance-title = Schnellansicht
zen-glance-header = Allgemeine Einstellungen für die Schnellansicht zen-glance-header = Allgemeine Einstellungen für die Schnellansicht
zen-glance-description = Erhalten Sie einen schnellen Überblick über Ihre Links, ohne sie in einem neuen Tab zu öffnen zen-glance-description = Verschaffe dir einen schnellen Überblick über deine Links, ohne sie in einem neuen Tab zu öffnen
zen-glance-trigger-label = Auslösemethode zen-glance-trigger-label = Auslösemethode
zen-glance-enabled = zen-glance-enabled =
.label = Schnellansicht aktivieren .label = Schnellansicht aktivieren
@@ -31,7 +31,7 @@ zen-glance-trigger-shift-click =
zen-glance-trigger-meta-click = zen-glance-trigger-meta-click =
.label = Meta (Befehlstaste) + Klick .label = Meta (Befehlstaste) + Klick
zen-look-and-feel-compact-view-header = In der Kompaktansicht anzeigen zen-look-and-feel-compact-view-header = In der Kompaktansicht anzeigen
zen-look-and-feel-compact-view-description = Zeigen Sie nur die Symbolleisten an, die Sie verwenden! zen-look-and-feel-compact-view-description = Zeige nur die Symbolleisten an, die du verwendest!
zen-look-and-feel-compact-view-enabled = zen-look-and-feel-compact-view-enabled =
.label = { -brand-short-name } Kompaktmodus aktivieren .label = { -brand-short-name } Kompaktmodus aktivieren
zen-look-and-feel-compact-view-top-toolbar = zen-look-and-feel-compact-view-top-toolbar =
@@ -45,16 +45,16 @@ pane-settings-workspaces-title = Arbeitsbereiche
zen-tabs-unloader-enabled = zen-tabs-unloader-enabled =
.label = Tab-Entlader aktivieren .label = Tab-Entlader aktivieren
zen-tabs-close-on-back-with-no-history = zen-tabs-close-on-back-with-no-history =
.label = Tab schließen und zum Besitzer-Tab (oder den zuletzt benutzten Tab) wechseln, wenn kein Tab-Verlauf vorhanden ist .label = Tab schließen und zum Besitzer-Tab (oder dem zuletzt benutzten Tab) wechseln, wenn kein Tab-Verlauf vorhanden ist
zen-tabs-cycle-by-attribute = zen-tabs-cycle-by-attribute =
.label = Strg+Tab wechselt nur zwischen Essential- oder Arbeitsbereich-Tabs .label = Strg+Tab wechselt nur zwischen Essential- oder Arbeitsbereich-Tabs
zen-tabs-cycle-ignore-pending-tabs = zen-tabs-cycle-ignore-pending-tabs =
.label = Ausstehende Tabs beim Wechseln mit Strg+Tab ignorieren .label = Ausstehende Tabs beim Wechseln mit Strg+Tab ignorieren
zen-tabs-cycle-by-attribute-warning = Strg+Tab wechselt in der zuletzt verwendeten Reihenfolge, da diese Option aktiviert ist zen-tabs-cycle-by-attribute-warning = Strg+Tab wechselt in der zuletzt verwendeten Reihenfolge, da diese Option aktiviert ist
zen-look-and-feel-compact-toolbar-themed = zen-look-and-feel-compact-toolbar-themed =
.label = Theme Hintergrund für kompakte Symbolleiste verwenden .label = Theme-Hintergrund für kompakte Symbolleiste verwenden
zen-workspace-continue-where-left-off = zen-workspace-continue-where-left-off =
.label = Dort fortfahren, wo Sie aufgehört haben .label = Dort fortfahren, wo du aufgehört hast
pane-zen-pinned-tab-manager-title = Angepinnte Tabs pane-zen-pinned-tab-manager-title = Angepinnte Tabs
zen-pinned-tab-manager-header = Allgemeine Einstellungen für angepinnte Tabs zen-pinned-tab-manager-header = Allgemeine Einstellungen für angepinnte Tabs
zen-pinned-tab-manager-description = Zusätzliches Verhalten von angepinnten Tabs verwalten zen-pinned-tab-manager-description = Zusätzliches Verhalten von angepinnten Tabs verwalten
@@ -82,7 +82,7 @@ zen-settings-workspaces-enabled =
.label = Arbeitsbereiche aktivieren (Experimentell) .label = Arbeitsbereiche aktivieren (Experimentell)
zen-settings-workspaces-hide-default-container-indicator = zen-settings-workspaces-hide-default-container-indicator =
.label = Container-Indikator in der Tab-Leiste ausblenden .label = Container-Indikator in der Tab-Leiste ausblenden
zen-key-unsaved = Nicht gespeichertes Tastenkürzel! Bitte speichern Sie es, indem Sie nach der Neueingabe die "Escape"-Taste drücken. zen-key-unsaved = Nicht gespeichertes Tastenkürzel! Bitte speichere es, indem du nach der Eingabe die "Escape"-Taste drückst.
zen-key-conflict = Konflikt mit { $group } -> { $shortcut } zen-key-conflict = Konflikt mit { $group } -> { $shortcut }
pane-zen-theme-title = Design-Einstellungen pane-zen-theme-title = Design-Einstellungen
zen-vertical-tabs-title = Seitenleiste und Tab-Layout zen-vertical-tabs-title = Seitenleiste und Tab-Layout
@@ -138,13 +138,13 @@ zen-settings-workspaces-force-container-tabs-to-workspace =
.label = Zum Arbeitsbereich wechseln, in dem Container als Standard gesetzt ist, wenn Container-Tabs geöffnet werden .label = Zum Arbeitsbereich wechseln, in dem Container als Standard gesetzt ist, wenn Container-Tabs geöffnet werden
zen-theme-marketplace-link = Store besuchen zen-theme-marketplace-link = Store besuchen
zen-dark-theme-styles-header = Dunkles Design - Stile zen-dark-theme-styles-header = Dunkles Design - Stile
zen-dark-theme-styles-description = Passen Sie das dunkle Design nach Ihren Wünschen an zen-dark-theme-styles-description = Passe das dunkle Design nach deinen Wünschen an
zen-dark-theme-styles-amoled = Nacht-Design zen-dark-theme-styles-amoled = Nacht-Design
zen-dark-theme-styles-default = Standard dunkles Design zen-dark-theme-styles-default = Standard dunkles Design
zen-dark-theme-styles-colorful = Farbenfrohes dunkles Design zen-dark-theme-styles-colorful = Farbenfrohes dunkles Design
zen-compact-mode-styles-left = Tab-Leiste ausblenden zen-compact-mode-styles-left = Tab-Leiste ausblenden
zen-compact-mode-styles-top = Obere Leiste ausblenden zen-compact-mode-styles-top = Obere Leiste ausblenden
zen-compact-mode-styles-both = Beide ausblenden zen-compact-mode-styles-both = Beides ausblenden
zen-urlbar-title = Zen Adressleiste zen-urlbar-title = Zen Adressleiste
zen-urlbar-header = Allgemeine Einstellungen für die Adressleiste zen-urlbar-header = Allgemeine Einstellungen für die Adressleiste
zen-urlbar-description = Passen Sie die Adressleiste nach Ihren Wünschen an zen-urlbar-description = Passen Sie die Adressleiste nach Ihren Wünschen an
@@ -230,7 +230,7 @@ zen-key-exit-full-screen = Vollbild verlassen
zen-ai-chatbot-sidebar-shortcut = KI-Chatbot-Seitenleiste umschalten zen-ai-chatbot-sidebar-shortcut = KI-Chatbot-Seitenleiste umschalten
zen-key-inspector-mac = Inspektor umschalten (Mac) zen-key-inspector-mac = Inspektor umschalten (Mac)
zen-toggle-sidebar-shortcut = Firefox-Seitenleiste umschalten zen-toggle-sidebar-shortcut = Firefox-Seitenleiste umschalten
zen-toggle-pin-tab-shortcut = Angepinnter Tab umschalten zen-toggle-pin-tab-shortcut = Tab anheften/lösen
zen-reader-mode-toggle-shortcut-other = Lesemodus umschalten zen-reader-mode-toggle-shortcut-other = Lesemodus umschalten
zen-picture-in-picture-toggle-shortcut = Bild-im-Bild umschalten zen-picture-in-picture-toggle-shortcut = Bild-im-Bild umschalten
zen-nav-reload-shortcut-2 = Seite neu laden zen-nav-reload-shortcut-2 = Seite neu laden

View File

@@ -13,13 +13,13 @@ zen-folders-new-subfolder =
zen-folders-panel-delete-folder = zen-folders-panel-delete-folder =
.label = Ordner löschen .label = Ordner löschen
zen-folders-panel-convert-folder-to-space = zen-folders-panel-convert-folder-to-space =
.label = Ordner in Arbeitsbereich umwandeln .label = In Arbeitsbereich umwandeln
zen-folders-panel-change-folder-space = zen-folders-panel-change-folder-space =
.label = Arbeitsbereich wechseln... .label = Arbeitsbereich wechseln...
zen-folders-panel-change-icon-folder = zen-folders-panel-change-icon-folder =
.label = Symbol ändern .label = Icon ändern
zen-folders-unload-all-tooltip = zen-folders-unload-all-tooltip =
.tooltiptext = Aktive Tabs in diesem Ordner entladen .tooltiptext = Alle aktiven Tabs in diesem Ordner entladen
zen-folders-unload-folder = zen-folders-unload-folder =
.label = Alle Tabs entladen .label = Alle Tabs entladen
zen-folders-search-no-results = Keine passenden Tabs gefunden zen-folders-search-no-results = Keine Tabs gefunden

View File

@@ -2,42 +2,42 @@
# 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 = Aktuelles Profil zen-panel-ui-current-profile-text = Dein aktuelles Profil
unified-extensions-description = Erweiterungen werden verwendet, um { -brand-short-name } zusätzliche Funktionen hinzuzufügen. unified-extensions-description = Mit Erweiterungen kannst du { -brand-short-name } um zusätzliche Funktionen erweitern.
tab-context-zen-reset-pinned-tab = tab-context-zen-reset-pinned-tab =
.label = Angehefteten Tab zurücksetzen .label = Angehefteten Tab zurücksetzen
.accesskey = R .accesskey = R
tab-context-zen-add-essential = tab-context-zen-add-essential =
.label = Add to Essentials .label = Zu Essentials hinzufügen
.accesskey = E .accesskey = E
tab-context-zen-add-essential-badge = { $num } / { $max } slots filled tab-context-zen-add-essential-badge = { $num } von { $max } Plätzen belegt
tab-context-zen-remove-essential = tab-context-zen-remove-essential =
.label = Aus Essentials entfernen .label = Aus Essentials entfernen
.accesskey = R .accesskey = R
tab-context-zen-replace-pinned-url-with-current = tab-context-zen-replace-pinned-url-with-current =
.label = Angeheftete URL durch aktuelle ersetzen .label = Angeheftete URL durch aktuelle ersetzen
.accesskey = C .accesskey = C
zen-themes-corrupted = Deine { -brand-short-name } Mods-Datei ist beschädigt. Sie wurde auf das Standard-Design zurückgesetzt. zen-themes-corrupted = Deine { -brand-short-name } Mods-Datei ist beschädigt. Wir haben sie auf das Standard-Design zurückgesetzt.
zen-shortcuts-corrupted = Deine { -brand-short-name } Tastenkürzel-Datei ist beschädigt. Sie wurde auf die Standard-Tastenkürzel zurückgesetzt. zen-shortcuts-corrupted = Deine { -brand-short-name } Tastenkürzel-Datei ist beschädigt. Wir haben sie auf die Standard-Tastenkürzel zurückgesetzt.
# note: Do not translate the "<br/>" tags in the following string # note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification = zen-new-urlbar-notification =
Die neue Adressleiste wurde aktiviert und macht neue Tab-Seiten überflüssig.<br/><br/> Die neue Adressleiste ist jetzt aktiv! Dadurch brauchst du keine neuen Tab-Seiten mehr.<br/><br/>
Öffne einen neuen Tab, um die neue Adressleiste in Aktion zu sehen! Öffne einfach einen neuen Tab, um die neue Adressleiste auszuprobieren!
zen-disable = Deaktivieren zen-disable = Deaktivieren
pictureinpicture-minimize-btn = pictureinpicture-minimize-btn =
.aria-label = Minimieren .aria-label = Minimieren
.tooltip = Minimieren .tooltip = Minimieren
zen-panel-ui-gradient-generator-custom-color = Benutzerdefinierte Farbe zen-panel-ui-gradient-generator-custom-color = Eigene Farbe
zen-panel-ui-gradient-generator-saved-message = Farbverlauf erfolgreich gespeichert! zen-panel-ui-gradient-generator-saved-message = Farbverlauf gespeichert!
zen-copy-current-url-confirmation = Aktuelle URL kopiert! zen-copy-current-url-confirmation = URL kopiert!
zen-general-cancel-label = zen-general-cancel-label =
.label = Abbrechen .label = Abbrechen
zen-general-confirm = zen-general-confirm =
.label = Bestätigen .label = Bestätigen
zen-pinned-tab-replaced = Die URL des angehefteten Tabs wurde durch die aktuelle URL ersetzt! zen-pinned-tab-replaced = Die URL des angehefteten Tabs wurde aktualisiert!
zen-tabs-renamed = Tab wurde erfolgreich umbenannt! zen-tabs-renamed = Tab umbenannt!
zen-background-tab-opened-toast = Neuer Hintergrund-Tab geöffnet! zen-background-tab-opened-toast = Neuer Tab im Hintergrund geöffnet!
zen-workspace-renamed-toast = Arbeitsbereich wurde erfolgreich umbenannt! zen-workspace-renamed-toast = Arbeitsbereich umbenannt!
zen-library-sidebar-workspaces = zen-library-sidebar-workspaces =
.label = Arbeitsbereiche .label = Arbeitsbereiche
zen-library-sidebar-mods = zen-library-sidebar-mods =
@@ -86,25 +86,25 @@ zen-site-data-header-reader-mode =
zen-site-data-header-screenshot = zen-site-data-header-screenshot =
.tooltiptext = Screenshot erstellen .tooltiptext = Screenshot erstellen
zen-site-data-header-bookmark = zen-site-data-header-bookmark =
.tooltiptext = Diese Seite als Lesezeichen hinzufügen .tooltiptext = Diese Seite als Lesezeichen speichern
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
# Section: Feature callouts # Section: Feature callouts
zen-site-data-panel-feature-callout-title = Ein neuer Ort für Add-ons, Berechtigungen und mehr zen-site-data-panel-feature-callout-title = Hier findest du Add-ons, Berechtigungen und mehr
zen-site-data-panel-feature-callout-subtitle = Klicke auf das Symbol, um Website-Einstellungen zu verwalten, Sicherheitsinformationen anzuzeigen, auf Erweiterungen zuzugreifen und häufige Aktionen auszuführen. zen-site-data-panel-feature-callout-subtitle = Klicke auf das Symbol, um Website-Einstellungen anzupassen, Sicherheitsinfos anzuzeigen, auf Erweiterungen zuzugreifen und häufige Aktionen auszuführen.
zen-open-link-in-glance = zen-open-link-in-glance =
.label = Link in Glance öffnen .label = Link in Glance öffnen
.accesskey = G .accesskey = G
zen-sidebar-notification-updated-heading = Update Complete! zen-sidebar-notification-updated-heading = Update abgeschlossen!
# See ZenSidebarNotification.mjs to see how these would be used # See ZenSidebarNotification.mjs to see how these would be used
zen-sidebar-notification-updated-label = What's new in { -brand-short-name } zen-sidebar-notification-updated-label = Was in { -brand-short-name } neu ist
zen-sidebar-notification-updated-tooltip = zen-sidebar-notification-updated-tooltip =
.title = View Release Notes .title = Versionshinweise anzeigen
zen-sidebar-notification-restart-safe-mode-label = Something broke? zen-sidebar-notification-restart-safe-mode-label = Funktioniert etwas nicht?
zen-sidebar-notification-restart-safe-mode-tooltip = zen-sidebar-notification-restart-safe-mode-tooltip =
.title = Restart in Safe Mode .title = Im abgesicherten Modus neu starten

View File

@@ -5,16 +5,16 @@
tab-zen-split-tabs = tab-zen-split-tabs =
.label = .label =
{ $tabCount -> { $tabCount ->
[1] Tab aufteilen (mehrere ausgewählte Tabs erforderlich) [1] Tab aufteilen (wähle mehrere Tabs aus)
*[other] { $tabCount } Tabs aufteilen *[other] { $tabCount } Tabs aufteilen
} }
.accesskey = S .accesskey = S
zen-split-link = zen-split-link =
.label = Link in neuem Tab aufteilen .label = Link in geteiltem Tab öffnen
.accesskey = S .accesskey = S
zen-split-view-modifier-header = Geteilte Ansicht zen-split-view-modifier-header = Geteilte Ansicht
zen-split-view-modifier-activate-reallocation = zen-split-view-modifier-activate-reallocation =
.label = Neuanordnung aktivieren .label = Anordnung ändern
zen-split-view-modifier-enabled-toast = Neuanordnung der geteilten Ansicht ist EIN. zen-split-view-modifier-enabled-toast = Anordnung der geteilten Ansicht aktiv.
zen-split-view-modifier-enabled-toast-description = Ziehen Sie die Ansicht per Drag & Drop, um sie neu anzuordnen. Drücken Sie Esc zum Beenden. zen-split-view-modifier-enabled-toast-description = Ziehe die Ansicht per Drag & Drop, um sie neu anzuordnen. Drücke Esc zum Beenden.
zen-split-view-modifier-disabled-toast = Neuanordnung der geteilten Ansicht ist AUS. zen-split-view-modifier-disabled-toast = Anordnung der geteilten Ansicht deaktiviert.

View File

@@ -3,31 +3,31 @@
# 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-toolbar-context-tabs-right = zen-toolbar-context-tabs-right =
.label = Tabs rechts .label = Tabs rechts anzeigen
.accesskey = R .accesskey = R
zen-toolbar-context-compact-mode = zen-toolbar-context-compact-mode =
.label = Kompaktmodus .label = Kompaktmodus
zen-toolbar-context-compact-mode-enable = zen-toolbar-context-compact-mode-enable =
.label = Kompaktmodus aktivieren .label = Kompaktmodus einschalten
.accesskey = D .accesskey = D
zen-toolbar-context-compact-mode-just-tabs = zen-toolbar-context-compact-mode-just-tabs =
.label = Seitenleiste ausblenden .label = Nur Seitenleiste ausblenden
zen-toolbar-context-compact-mode-just-toolbar = zen-toolbar-context-compact-mode-just-toolbar =
.label = Symbolleiste ausblenden .label = Nur Symbolleiste ausblenden
zen-toolbar-context-compact-mode-hide-both = zen-toolbar-context-compact-mode-hide-both =
.label = Beide ausblenden .label = Beides ausblenden
.accesskey = H .accesskey = H
zen-toolbar-context-new-folder = zen-toolbar-context-new-folder =
.label = Neuer Ordner .label = Neuer Ordner
.accesskey = N .accesskey = N
sidebar-zen-expand = sidebar-zen-expand =
.label = Seitenleiste erweitern .label = Seitenleiste ausklappen
sidebar-zen-create-new = sidebar-zen-create-new =
.label = Neu erstellen... .label = Neu erstellen...
tabbrowser-unload-tab-button = tabbrowser-unload-tab-button =
.tooltiptext = .tooltiptext =
{ $tabCount -> { $tabCount ->
[one] Tab entladen und dorthin wechseln [one] Tab entladen und öffnen
*[other] { $tabCount } Tabs entladen und zum ersten wechseln *[other] { $tabCount } Tabs entladen und zum ersten wechseln
} }
tabbrowser-reset-pin-button = tabbrowser-reset-pin-button =
@@ -36,4 +36,4 @@ tabbrowser-reset-pin-button =
[one] Tab zurücksetzen und anheften [one] Tab zurücksetzen und anheften
*[other] { $tabCount } Tabs zurücksetzen und anheften *[other] { $tabCount } Tabs zurücksetzen und anheften
} }
tab-reset-pin-label = Zurück zur angehefteten URL tab-reset-pin-label = Zur ursprünglichen URL zurückkehren

View File

@@ -5,8 +5,8 @@
zen-welcome-title-line1 = Willkommen zu zen-welcome-title-line1 = Willkommen zu
zen-welcome-title-line2 = einem ruhigeren Internet zen-welcome-title-line2 = einem ruhigeren Internet
zen-welcome-import-title = Ein neuer Anfang, dieselben Lesezeichen zen-welcome-import-title = Ein neuer Anfang, dieselben Lesezeichen
zen-welcome-import-description-1 = Ihre Lesezeichen, Ihr Verlauf und Ihre Passwörter sind wie eine Spur durch das Internet lassen Sie sie nicht zurück! zen-welcome-import-description-1 = Deine Lesezeichen, dein Verlauf und deine Passwörter sind wie eine Spur durch das Internet lass sie nicht zurück!
zen-welcome-import-description-2 = Übertrage sie ganz einfach aus einem anderen Browser und mache genau dort weiter, wo du aufgehört hast. zen-welcome-import-description-2 = Übertrage sie ganz einfach aus einem anderen Browser und mach genau dort weiter, wo du aufgehört hast..
zen-welcome-import-button = Jetzt importieren zen-welcome-import-button = Jetzt importieren
zen-welcome-set-default-browser = { -brand-short-name } als Standardbrowser festlegen zen-welcome-set-default-browser = { -brand-short-name } als Standardbrowser festlegen
zen-welcome-dont-set-default-browser = { -brand-short-name } NICHT als Standardbrowser festlegen zen-welcome-dont-set-default-browser = { -brand-short-name } NICHT als Standardbrowser festlegen

View File

@@ -21,9 +21,9 @@ zen-workspaces-panel-context-default-profile =
zen-workspaces-panel-unload = zen-workspaces-panel-unload =
.label = Arbeitsbereich entladen .label = Arbeitsbereich entladen
zen-workspaces-how-to-reorder-title = So ordnest du Arbeitsbereiche neu an zen-workspaces-how-to-reorder-title = So ordnest du Arbeitsbereiche neu an
zen-workspaces-how-to-reorder-desc = Ziehe die Arbeitsbereich-Symbole am unteren Rand der Seitenleiste, um sie neu anzuordnen zen-workspaces-how-to-reorder-desc = Zieh die Arbeitsbereich-Symbole am unteren Rand der Seitenleiste, um sie neu anzuordnen
zen-workspaces-change-theme = zen-workspaces-change-theme =
.label = Design bearbeiten .label = Design anpassen
zen-workspaces-panel-context-open = zen-workspaces-panel-context-open =
.label = Arbeitsbereich öffnen .label = Arbeitsbereich öffnen
.accesskey = O .accesskey = O
@@ -31,7 +31,7 @@ zen-workspaces-panel-context-edit =
.label = Arbeitsbereich bearbeiten .label = Arbeitsbereich bearbeiten
.accesskey = E .accesskey = E
context-zen-change-workspace-tab = context-zen-change-workspace-tab =
.label = Tab(s) zu Arbeitsbereich verschieben .label = Tabs zu Arbeitsbereich verschieben
.accesskey = C .accesskey = C
zen-bookmark-edit-panel-workspace-selector = zen-bookmark-edit-panel-workspace-selector =
.value = Arbeitsbereiche .value = Arbeitsbereiche
@@ -46,20 +46,20 @@ zen-panel-ui-gradient-generator-algo-triadic =
.label = Triadisch .label = Triadisch
zen-panel-ui-gradient-generator-algo-floating = zen-panel-ui-gradient-generator-algo-floating =
.label = Fließend .label = Fließend
zen-panel-ui-gradient-click-to-add = Klicken Sie, um eine Farbe hinzuzufügen zen-panel-ui-gradient-click-to-add = Klick hier, um eine Farbe hinzuzufügen
zen-workspace-creation-name = zen-workspace-creation-name =
.placeholder = Name des Arbeitsbereichs .placeholder = Name des Arbeitsbereichs
zen-workspaces-panel-context-reorder = zen-workspaces-panel-context-reorder =
.label = Arbeitsbereiche neu anordnen .label = Arbeitsbereiche neu anordnen
zen-workspace-creation-profile = Profil zen-workspace-creation-profile = Profil
.tooltiptext = Profile werden verwendet, um Cookies und Website-Daten zwischen Arbeitsbereichen zu trennen. .tooltiptext = Profile trennen Cookies und Website-Daten zwischen verschiedenen Arbeitsbereichen.
zen-workspace-creation-header = Arbeitsbereich erstellen zen-workspace-creation-header = Arbeitsbereich erstellen
zen-workspace-creation-label = Arbeitsbereiche helfen dir, deine Tabs und Sitzungen zu organisieren. zen-workspace-creation-label = Arbeitsbereiche helfen dir, deine Tabs und Sitzungen zu organisieren.
zen-workspaces-delete-workspace-title = Arbeitsbereich löschen? zen-workspaces-delete-workspace-title = Arbeitsbereich löschen?
zen-workspaces-delete-workspace-body = Möchtest du { $name } wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden. zen-workspaces-delete-workspace-body = Möchtest du { $name } wirklich löschen? Das lässt sich nicht rückgängig machen.
# 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 geschlossen! Nutze <span>{ $shortcut }</span>, um rückgängig zu machen. zen-workspaces-close-all-unpinned-tabs-toast = Tabs geschlossen! Nutze <span>{ $shortcut }</span>, um das rückgängig zu machen.
zen-workspaces-close-all-unpinned-tabs-title = zen-workspaces-close-all-unpinned-tabs-title =
.label = Aufräumen .label = Aufräumen
.tooltiptext = Alle nicht angehefteten Tabs schließen .tooltiptext = Alle nicht angehefteten Tabs schließen

View File

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

View File

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

View File

@@ -164,7 +164,7 @@ zen-settings-CKS-description = Muuta oletus näppäimistön pikakuvakkeet mielty
zen-settings-CKS-disable-firefox = zen-settings-CKS-disable-firefox =
.label = Poista { -brand-short-name }oletusnäppäimistön pikakuvakkeet käytöstä .label = Poista { -brand-short-name }oletusnäppäimistön pikakuvakkeet käytöstä
zen-settings-CKS-duplicate-shortcut = zen-settings-CKS-duplicate-shortcut =
.label = Monista pikanäppäin .label = Monista pikakuvake
zen-settings-CKS-reset-shortcuts = zen-settings-CKS-reset-shortcuts =
.label = Palauta oletukset .label = Palauta oletukset
zenCKSOption-group-other = Muu zenCKSOption-group-other = Muu
@@ -306,9 +306,9 @@ zen-devtools-toggle-inspector-shortcut = Vaihda Tarkastajaa
zen-devtools-toggle-web-console-shortcut = Vaihda Selaimen Konsoli zen-devtools-toggle-web-console-shortcut = Vaihda Selaimen Konsoli
zen-devtools-toggle-js-debugger-shortcut = Vaihda Javascript- Debuggeria zen-devtools-toggle-js-debugger-shortcut = Vaihda Javascript- Debuggeria
zen-devtools-toggle-net-monitor-shortcut = Vaihda Verkon Valvontaa zen-devtools-toggle-net-monitor-shortcut = Vaihda Verkon Valvontaa
zen-devtools-toggle-style-editor-shortcut = Vaihda Tyylin Muokkainta zen-devtools-toggle-style-editor-shortcut = Vaihda Tyylin Muokkausohjelmaa
zen-devtools-toggle-performance-shortcut = Vaihda Suorituskykyä zen-devtools-toggle-performance-shortcut = Vaihda Suorituskykyä
zen-devtools-toggle-storage-shortcut = Vaihda Tallennustilaa zen-devtools-toggle-storage-shortcut = Vaihda Tallennustilaa
zen-devtools-toggle-dom-shortcut = Vaihda DOM:ia zen-devtools-toggle-dom-shortcut = Vaihda DOM:ia
zen-devtools-toggle-accessibility-shortcut = Vaihda Esteettömyystilaa zen-devtools-toggle-accessibility-shortcut = Vaihda Esteettömyystilaan
zen-close-all-unpinned-tabs-shortcut = Sulje kaikki kiinnittämättömät välilehdet zen-close-all-unpinned-tabs-shortcut = Sulje kaikki kiinnittämättömät välilehdet

View File

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

37
package-lock.json generated
View File

@@ -9,7 +9,7 @@
"version": "1.0.0", "version": "1.0.0",
"license": "MPL-2.0", "license": "MPL-2.0",
"dependencies": { "dependencies": {
"@zen-browser/surfer": "^1.11.26" "@zen-browser/surfer": "^1.12.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-typescript": "^7.27.0", "@babel/preset-typescript": "^7.27.0",
@@ -35,6 +35,7 @@
"integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"peer": true,
"dependencies": { "dependencies": {
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.24" "@jridgewell/trace-mapping": "^0.3.24"
@@ -64,6 +65,7 @@
"integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==", "integrity": "sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@@ -106,6 +108,7 @@
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
@@ -146,6 +149,7 @@
"integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==", "integrity": "sha512-LVk7fbXml0H2xH34dFzKQ7TDZ2G4/rVTOrq9V+icbbadjbVxxeFeDsNHv2SrZeWoA+6ZiTyWYWtScEIW07EAcA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.26.8", "@babel/compat-data": "^7.26.8",
"@babel/helper-validator-option": "^7.25.9", "@babel/helper-validator-option": "^7.25.9",
@@ -163,6 +167,7 @@
"integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"bin": { "bin": {
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
@@ -336,6 +341,7 @@
"integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==", "integrity": "sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@babel/template": "^7.27.0", "@babel/template": "^7.27.0",
"@babel/types": "^7.27.0" "@babel/types": "^7.27.0"
@@ -1109,9 +1115,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@zen-browser/surfer": { "node_modules/@zen-browser/surfer": {
"version": "1.11.26", "version": "1.12.0",
"resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.11.26.tgz", "resolved": "https://registry.npmjs.org/@zen-browser/surfer/-/surfer-1.12.0.tgz",
"integrity": "sha512-NZcFZ4a/HWvEJlEr5IlQto/xHLOr6tZjkZALue2qHg+rjRKR5v2BEV4hV5mfAo85gKhyM2Ism0sD+0+/VQIESg==", "integrity": "sha512-I5nxDgGpFGtdOAC9DZkoQp9GJ4cAqCW+0p0DoQRjW/jdnQJUH20ygvPyPr+sgjXISPFclYX+KrVoT2kJqTdlTw==",
"license": "MPL-2.0", "license": "MPL-2.0",
"dependencies": { "dependencies": {
"@resvg/resvg-js": "^1.4.0", "@resvg/resvg-js": "^1.4.0",
@@ -1147,7 +1153,6 @@
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@@ -1819,7 +1824,8 @@
"url": "https://github.com/sponsors/ai" "url": "https://github.com/sponsors/ai"
} }
], ],
"license": "CC-BY-4.0" "license": "CC-BY-4.0",
"peer": true
}, },
"node_modules/chalk": { "node_modules/chalk": {
"version": "4.1.2", "version": "4.1.2",
@@ -2006,7 +2012,8 @@
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT",
"peer": true
}, },
"node_modules/core-js-pure": { "node_modules/core-js-pure": {
"version": "3.41.0", "version": "3.41.0",
@@ -2326,7 +2333,8 @@
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.139.tgz",
"integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==", "integrity": "sha512-GGnRYOTdN5LYpwbIr0rwP/ZHOQSvAF6TG0LSzp28uCBb9JiXHJGmaaKw29qjNJc5bGnnp6kXJqRnGMQoELwi5w==",
"dev": true, "dev": true,
"license": "ISC" "license": "ISC",
"peer": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
"version": "8.0.0", "version": "8.0.0",
@@ -2562,6 +2570,7 @@
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@@ -2585,7 +2594,6 @@
"integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==", "integrity": "sha512-LSehfdpgMeWcTZkWZVIJl+tkZ2nuSkyyB9C27MZqFWXuph7DvaowgcTvKqxvpLW1JZIk8PN7hFY3Rj9LQ7m7lg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1", "@eslint-community/regexpp": "^4.12.1",
@@ -3433,6 +3441,7 @@
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"
} }
@@ -4430,6 +4439,7 @@
"integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"json5": "lib/cli.js" "json5": "lib/cli.js"
}, },
@@ -4864,6 +4874,7 @@
"integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"peer": true,
"dependencies": { "dependencies": {
"yallist": "^3.0.2" "yallist": "^3.0.2"
} }
@@ -5078,7 +5089,8 @@
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT",
"peer": true
}, },
"node_modules/normalize-path": { "node_modules/normalize-path": {
"version": "3.0.0", "version": "3.0.0",
@@ -5534,7 +5546,6 @@
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==", "integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"peer": true,
"bin": { "bin": {
"prettier": "bin/prettier.cjs" "prettier": "bin/prettier.cjs"
}, },
@@ -6949,6 +6960,7 @@
} }
], ],
"license": "MIT", "license": "MIT",
"peer": true,
"dependencies": { "dependencies": {
"escalade": "^3.2.0", "escalade": "^3.2.0",
"picocolors": "^1.1.1" "picocolors": "^1.1.1"
@@ -7252,7 +7264,8 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
"dev": true, "dev": true,
"license": "ISC" "license": "ISC",
"peer": true
}, },
"node_modules/yaml": { "node_modules/yaml": {
"version": "2.7.0", "version": "2.7.0",

View File

@@ -10,7 +10,8 @@
"build": "surfer build", "build": "surfer build",
"build:ui": "surfer build --ui", "build:ui": "surfer build --ui",
"start": "cd engine && python3 ./mach run --noprofile", "start": "cd engine && python3 ./mach run --noprofile",
"import": "npm run ffprefs && surfer import", "import": "npm run ffprefs && npm run import:dumps && surfer import",
"import:dumps": "python3 scripts/update_service_dumps.py",
"export": "surfer export", "export": "surfer export",
"init": "npm run download && npm run import && npm run bootstrap", "init": "npm run download && npm run import && npm run bootstrap",
"download": "surfer download", "download": "surfer download",
@@ -49,7 +50,7 @@
}, },
"homepage": "https://github.com/zen-browser/desktop#readme", "homepage": "https://github.com/zen-browser/desktop#readme",
"dependencies": { "dependencies": {
"@zen-browser/surfer": "^1.11.26" "@zen-browser/surfer": "^1.12.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/preset-typescript": "^7.27.0", "@babel/preset-typescript": "^7.27.0",

View File

@@ -20,3 +20,6 @@
- name: browser.ml.chat.menu - name: browser.ml.chat.menu
value: false value: false
- name: browser.ml.linkPreview.enabled
value: false

View File

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

View File

@@ -0,0 +1,14 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import json
from typing import Any
class JSONWithCommentsDecoder(json.JSONDecoder):
def __init__(self, **kw):
super().__init__(**kw)
def decode(self, s: str) -> Any:
s = '\n'.join(l for l in s.split('\n') if not l.lstrip(' ').startswith('//'))
return super().decode(s)

View File

@@ -3,6 +3,11 @@
# 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/.
set -e
# FIrst check if importing the patches succeeds
npm run import
IGNORE_FILES=( IGNORE_FILES=(
"shared.nsh" "shared.nsh"
"ignorePrefs.json" "ignorePrefs.json"

View File

@@ -6,7 +6,7 @@ import os
import sys import sys
import json import json
from pathlib import Path from pathlib import Path
from typing import Any from json_with_comments import JSONWithCommentsDecoder
IGNORE_PREFS_FILE_IN = os.path.join( IGNORE_PREFS_FILE_IN = os.path.join(
'src', 'zen', 'tests', 'ignorePrefs.json' 'src', 'zen', 'tests', 'ignorePrefs.json'
@@ -16,15 +16,6 @@ IGNORE_PREFS_FILE_OUT = os.path.join(
) )
class JSONWithCommentsDecoder(json.JSONDecoder):
def __init__(self, **kw):
super().__init__(**kw)
def decode(self, s: str) -> Any:
s = '\n'.join(l for l in s.split('\n') if not l.lstrip(' ').startswith('//'))
return super().decode(s)
def copy_ignore_prefs(): def copy_ignore_prefs():
print("Copying ignorePrefs.json from src/zen/tests to engine/testing/mochitest...") print("Copying ignorePrefs.json from src/zen/tests to engine/testing/mochitest...")
# if there are prefs that dont exist on output file, copy them from input file # if there are prefs that dont exist on output file, copy them from input file

View File

@@ -0,0 +1,63 @@
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import os
import json
from json_with_comments import JSONWithCommentsDecoder
DUMPS_FOLDER = os.path.join(
'configs', 'dumps'
)
ENGINE_DUMPS_FOLDER = os.path.join(
'engine', 'services', 'settings', 'dumps', 'main'
)
def merge_dumps(original, updates):
"""Filters entries from the original dump, removing those whose identifiers are specified in the updates removal list."""
remove_ids = updates.get('remove', {"identifiers": []}).get('identifiers', [])
# Filter out entries in original that are in remove_ids.
#  We may find example-* patterns, so we need to handle that as well.
merged_data = [
entry for entry in original.get('data', [])
if not any(
entry.get('identifier', '') == rid or
(rid.endswith('*') and entry.get('identifier', '').startswith(rid[:-1]))
for rid in remove_ids
)
]
return {
'data': merged_data,
**{k: v for k, v in original.items() if k != 'data'},
'timestamp': updates.get('timestamp', original.get('timestamp'))
}
def main():
for filename in os.listdir(DUMPS_FOLDER):
if filename.endswith('.json'):
#  parse json with comments
with open(os.path.join(DUMPS_FOLDER, filename), 'r') as f:
data = json.load(f, cls=JSONWithCommentsDecoder)
original_path = os.path.join(ENGINE_DUMPS_FOLDER, filename)
if os.path.exists(original_path):
with open(original_path, 'r', encoding='utf-8') as f:
original_content = f.read()
original_content = '\n'.join(
line for line in original_content.split('\n') if not line.lstrip(' ').startswith('//')
)
original_data = json.loads(original_content)
merged_data = merge_dumps(original_data, data)
with open(original_path, 'w', encoding='utf-8') as f:
json.dump(merged_data, f, indent=2, ensure_ascii=False)
print(f"Updated dump: {filename}")
else:
print(f"Original dump file not found: {original_path}")
exit(1)
if __name__ == "__main__":
main()

View File

@@ -1,8 +1,8 @@
diff --git a/Cargo.lock b/Cargo.lock diff --git a/Cargo.lock b/Cargo.lock
index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644 index 6f6632e9747e281aac3ea177225c03b73f25456e..06756e08041835c203490057855d537118647cd0 100644
--- a/Cargo.lock --- a/Cargo.lock
+++ b/Cargo.lock +++ b/Cargo.lock
@@ -4167,8 +4167,6 @@ dependencies = [ @@ -4171,8 +4171,6 @@ dependencies = [
[[package]] [[package]]
name = "mime_guess" name = "mime_guess"
version = "2.0.4" version = "2.0.4"

View File

@@ -1,8 +1,8 @@
diff --git a/Cargo.toml b/Cargo.toml diff --git a/Cargo.toml b/Cargo.toml
index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644 index e2846a08008684f18799d75e5c28fd244c10361a..ba72071baef49ed494f78d1cc6752b53d1841f46 100644
--- a/Cargo.toml --- a/Cargo.toml
+++ b/Cargo.toml +++ b/Cargo.toml
@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" } @@ -232,6 +232,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" }

View File

@@ -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 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 100644 index a9612920f86ef5f37328497bf62255497e96b02d..a5643cd7e9c7a71da391408c14e00185b7db3f24 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 {

View File

@@ -1,13 +1,13 @@
diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in diff --git a/browser/app/macbuild/Contents/Info.plist.in b/browser/app/macbuild/Contents/Info.plist.in
index ea28831b90662b12bdcb137c35b6bb83626c77e7..d28f4eca976ad9de12b03d995d2363e643224421 100644 index 0c4fb837a24490c66b284abf2bd9299c2e021de0..ea28831b90662b12bdcb137c35b6bb83626c77e7 100644
--- a/browser/app/macbuild/Contents/Info.plist.in --- a/browser/app/macbuild/Contents/Info.plist.in
+++ b/browser/app/macbuild/Contents/Info.plist.in +++ b/browser/app/macbuild/Contents/Info.plist.in
@@ -191,7 +191,7 @@ @@ -190,8 +190,6 @@
<string>@MAC_APP_NAME@ @APP_VERSION@</string>
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>firefox.icns</string> <string>firefox.icns</string>
- <key>CFBundleIconName</key>
- <string>AppIcon</string>
<key>CFBundleIdentifier</key> <key>CFBundleIdentifier</key>
- <string>@MOZ_MACBUNDLE_ID@</string> <string>@MOZ_MACBUNDLE_ID@</string>
+ <string>app.zen-browser.zen</string>
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>

View File

@@ -1,5 +1,5 @@
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 f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2bd5a757d 100644 index fadcbfca95ee28140579430c0371baad0e2f216a..7454b801b4ad892d6ad122277eb7c7736e976f9f 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
@@ -1069,7 +1069,7 @@ var gXPInstallObserver = { @@ -1069,7 +1069,7 @@ var gXPInstallObserver = {
@@ -38,7 +38,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2
} }
return anchorID; return anchorID;
@@ -2646,11 +2646,7 @@ var gUnifiedExtensions = { @@ -2657,11 +2657,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,7 +51,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2
let customizationArea = this._panel.querySelector( let customizationArea = this._panel.querySelector(
"#unified-extensions-area" "#unified-extensions-area"
); );
@@ -2703,6 +2699,7 @@ var gUnifiedExtensions = { @@ -2714,6 +2710,7 @@ var gUnifiedExtensions = {
// and no alternative content is available for display in the panel. // and no alternative content is available for display in the panel.
const policies = this.getActivePolicies(); const policies = this.getActivePolicies();
if ( if (
@@ -59,7 +59,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2
policies.length && policies.length &&
!this.hasExtensionsInPanel(policies) && !this.hasExtensionsInPanel(policies) &&
!this.isPrivateWindowMissingExtensionsWithoutPBMAccess() && !this.isPrivateWindowMissingExtensionsWithoutPBMAccess() &&
@@ -2743,7 +2740,7 @@ var gUnifiedExtensions = { @@ -2754,7 +2751,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, {
@@ -68,7 +68,7 @@ index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2
triggerEvent: aEvent, triggerEvent: aEvent,
}); });
} }
@@ -2930,18 +2927,20 @@ var gUnifiedExtensions = { @@ -2941,18 +2938,20 @@ var gUnifiedExtensions = {
this._maybeMoveWidgetNodeBack(widgetId); this._maybeMoveWidgetNodeBack(widgetId);
} }

View File

@@ -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 bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 100644 index f459f3ca4048c29a32832b46ba87de8552a0ab8a..d317676e6d12d756ddf5dfbffe73050de07c2375 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
@@ -424,10 +424,10 @@ var FullScreen = { @@ -423,10 +423,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)` : "";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js diff --git a/browser/base/content/browser-init.js b/browser/base/content/browser-init.js
index 8e63654b343e8518aa0e366a3fd3bf7e0856eafb..3cebc9bb057f51cea639130fecd7576e1c9db79c 100644 index 02f601d859ea32557af572d2499ad8be75b684b5..b1a6f66a74f75150d7e2fbc50528965bb16cb4d9 100644
--- a/browser/base/content/browser-init.js --- a/browser/base/content/browser-init.js
+++ b/browser/base/content/browser-init.js +++ b/browser/base/content/browser-init.js
@@ -198,6 +198,7 @@ var gBrowserInit = { @@ -198,6 +198,7 @@ var gBrowserInit = {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd61ee1828 100644 index 15ef352c147eff781d34a3e5fa02fa791bdd6188..b0784e817ad25c7a4983e9f1cb08b293de15a99d 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,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
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",
@@ -822,7 +823,12 @@ function UpdateBackForwardCommands(aWebNavigation) { @@ -821,7 +822,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
var backDisabled = backCommand.hasAttribute("disabled"); var backDisabled = backCommand.hasAttribute("disabled");
var forwardDisabled = forwardCommand.hasAttribute("disabled"); var forwardDisabled = forwardCommand.hasAttribute("disabled");
@@ -24,7 +24,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
if (backDisabled) { if (backDisabled) {
backCommand.removeAttribute("disabled"); backCommand.removeAttribute("disabled");
} else { } else {
@@ -2298,6 +2304,8 @@ var XULBrowserWindow = { @@ -2297,6 +2303,8 @@ var XULBrowserWindow = {
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser); AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
TranslationsParent.onLocationChange(gBrowser.selectedBrowser); TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
@@ -33,7 +33,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser); PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
if (!gMultiProcessBrowser) { if (!gMultiProcessBrowser) {
@@ -3809,7 +3817,7 @@ function warnAboutClosingWindow() { @@ -3808,7 +3816,7 @@ function warnAboutClosingWindow() {
if (!isPBWindow && !toolbar.visible) { if (!isPBWindow && !toolbar.visible) {
return gBrowser.warnAboutClosingTabs( return gBrowser.warnAboutClosingTabs(
@@ -42,7 +42,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
gBrowser.closingTabsEnum.ALL gBrowser.closingTabsEnum.ALL
); );
} }
@@ -3849,7 +3857,7 @@ function warnAboutClosingWindow() { @@ -3848,7 +3856,7 @@ function warnAboutClosingWindow() {
return ( return (
isPBWindow || isPBWindow ||
gBrowser.warnAboutClosingTabs( gBrowser.warnAboutClosingTabs(
@@ -51,7 +51,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
gBrowser.closingTabsEnum.ALL gBrowser.closingTabsEnum.ALL
) )
); );
@@ -3874,7 +3882,7 @@ function warnAboutClosingWindow() { @@ -3873,7 +3881,7 @@ function warnAboutClosingWindow() {
AppConstants.platform != "macosx" || AppConstants.platform != "macosx" ||
isPBWindow || isPBWindow ||
gBrowser.warnAboutClosingTabs( gBrowser.warnAboutClosingTabs(
@@ -60,7 +60,7 @@ index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd
gBrowser.closingTabsEnum.ALL gBrowser.closingTabsEnum.ALL
) )
); );
@@ -4796,6 +4804,9 @@ var ConfirmationHint = { @@ -4795,6 +4803,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);

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc diff --git a/browser/base/content/browser-sets.inc b/browser/base/content/browser-sets.inc
index 2e7654036647796715aec392f9e714e7256c9864..0b3b76ab479bb6ae5439dd424b69f641d3b86c28 100644 index 8d97b6e669954a09afe6a46d1c79652264494e92..86877b983207c5f9852c9192ee0257a909c5ea7a 100644
--- a/browser/base/content/browser-sets.inc --- a/browser/base/content/browser-sets.inc
+++ b/browser/base/content/browser-sets.inc +++ b/browser/base/content/browser-sets.inc
@@ -405,3 +405,4 @@ @@ -406,3 +406,4 @@
internal="true"/> internal="true"/>
#endif #endif
</keyset> </keyset>

View File

@@ -1,8 +1,8 @@
diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js diff --git a/browser/base/content/browser-sets.js b/browser/base/content/browser-sets.js
index 9cff49a7b86f7697f70c4ef61d3c3561f058dc45..15ac9a8a79e8642b3add2f6df63ed32eb0c8bcb9 100644 index 0bb581aa34ddeef1e3eb85b0fadd41a539b4b9d6..cbe2df8b1775cb8194007ee995fd91769618b48d 100644
--- a/browser/base/content/browser-sets.js --- a/browser/base/content/browser-sets.js
+++ b/browser/base/content/browser-sets.js +++ b/browser/base/content/browser-sets.js
@@ -253,7 +253,7 @@ document.addEventListener( @@ -254,7 +254,7 @@ document.addEventListener(
} }
}); });

View File

@@ -1,8 +1,8 @@
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 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 100644 index e688ba37c40ea602a32a84af6c1497d884ddc27b..ad8515eae1d4e697b9329d9d5babfd59679c9288 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 @@ @@ -216,6 +216,10 @@
hidden="true" hidden="true"
tabspecific="true" tabspecific="true"
aria-labelledby="editBookmarkPanelTitle"> aria-labelledby="editBookmarkPanelTitle">
@@ -13,7 +13,7 @@ index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18
<box class="panel-header"> <box class="panel-header">
<html:h1> <html:h1>
<html:span id="editBookmarkPanelTitle"/> <html:span id="editBookmarkPanelTitle"/>
@@ -233,6 +237,7 @@ @@ -241,6 +245,7 @@
class="footer-button"/> class="footer-button"/>
</html:moz-button-group> </html:moz-button-group>
</vbox> </vbox>
@@ -21,7 +21,7 @@ index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18
</panel> </panel>
</html:template> </html:template>
@@ -628,6 +633,8 @@ @@ -636,6 +641,8 @@
#include popup-notifications.inc.xhtml #include popup-notifications.inc.xhtml

View File

@@ -1,5 +1,5 @@
diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml diff --git a/browser/base/content/navigator-toolbox.inc.xhtml b/browser/base/content/navigator-toolbox.inc.xhtml
index 328a9b052e2f758f48df1caa8165347ed0301b33..1c111abe148f2e16afa6b5f33eb118b7c02dfd69 100644 index 40dddda5a6191c2ac012767ca55ed5fa35c03a6b..2e96a7ca233529ee2b570f94154008be5b0088e3 100644
--- a/browser/base/content/navigator-toolbox.inc.xhtml --- a/browser/base/content/navigator-toolbox.inc.xhtml
+++ b/browser/base/content/navigator-toolbox.inc.xhtml +++ b/browser/base/content/navigator-toolbox.inc.xhtml
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@

View File

@@ -1,13 +1,14 @@
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 259b440375c7e84d373a134fea20cdbc1c1bae4b..c4a251f0169d22186c2766992ab40366d53582f1 100644 index b77c12da637ba31aca6e8100187d0ac14db33298..4fbec0dda932bcaa77ce714826ac8ab20b9e8e63 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
@@ -1103,6 +1103,8 @@ export class nsContextMenu { @@ -376,6 +376,9 @@ export class nsContextMenu {
!this.onMozExtLink && this.initPDFItems();
!this.isSecureAboutPage() this.initTextFragmentItems();
);
+ this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink); + this.showItem("context-zenSplitLink", this.onLink && !this.onMailtoLink && !this.onTelLink);
+ this.showItem("context-zenOpenLinkInGlance", this.onLink && !this.onMailtoLink && !this.onTelLink); + this.showItem("context-zenOpenLinkInGlance", this.onLink && !this.onMailtoLink && !this.onTelLink);
+
let canNotStrip = this.showHideSeparators(aXulMenu);
lazy.STRIP_ON_SHARE_CAN_DISABLE && !this.#canStripParams(); if (!aXulMenu.showHideSeparators) {
// Set the showHideSeparators function on the menu itself so that

View File

@@ -43,9 +43,7 @@
<script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script> <script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script>
# Scripts used all over the browser # Scripts used all over the browser
<script type="module" src="chrome://browser/content/ZenUIManager.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenFolder.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenFolder.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenCompactMode.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenPinnedTabsStorage.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspacesStorage.mjs"></script>
@@ -58,4 +56,3 @@
<script type="module" src="chrome://browser/content/zen-components/ZenFolders.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenFolders.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenDownloadAnimation.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenEmojiPicker.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenMods.mjs"></script>

View File

@@ -12,10 +12,9 @@
<button id="PanelUI-zen-gradient-generator-scheme-dark" class="subviewbutton"/> <button id="PanelUI-zen-gradient-generator-scheme-dark" class="subviewbutton"/>
</hbox> </hbox>
<hbox id="PanelUI-zen-gradient-generator-color-actions"> <hbox id="PanelUI-zen-gradient-generator-color-actions">
<button id="PanelUI-zen-gradient-generator-color-add" class="subviewbutton"> <button id="PanelUI-zen-gradient-generator-color-add" class="subviewbutton" />
</button> <button id="PanelUI-zen-gradient-generator-color-remove" class="subviewbutton" />
<button id="PanelUI-zen-gradient-generator-color-remove" class="subviewbutton"> <button id="PanelUI-zen-gradient-generator-color-toggle-algo" class="subviewbutton" />
</button>
</hbox> </hbox>
<label data-l10n-id="zen-panel-ui-gradient-click-to-add" id="PanelUI-zen-gradient-generator-color-click-to-add"></label> <label data-l10n-id="zen-panel-ui-gradient-click-to-add" id="PanelUI-zen-gradient-generator-color-click-to-add"></label>
</hbox> </hbox>
@@ -78,6 +77,29 @@
<box data-lightness="20" data-algo="analogous" data-num-dots="3" data-position="118,215" <box data-lightness="20" data-algo="analogous" data-num-dots="3" data-position="118,215"
style="--c1: rgb(22, 80, 61); --c2: rgb(26, 60, 76); --c3: rgb(27, 87, 15);" /> style="--c1: rgb(22, 80, 61); --c2: rgb(26, 60, 76); --c3: rgb(27, 87, 15);" />
</hbox> </hbox>
<hbox>
# Start from black to white in a span on 8 steps and.
# They must all go from the middle to the right side. They must always stay verically centered.
# And reach to 180 on the right side, meaning we must divide the width in 16 segments.
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="337.5,180" style="background: rgb(224, 224, 224);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="337.5,180" style="background: rgb(224, 224, 224);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="315,180" style="background: rgb(192, 192, 192);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="292.5,180" style="background: rgb(160, 160, 160);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="270,180" style="background: rgb(128, 128, 128);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="247.5,180" style="background: rgb(96, 96, 96);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="225,180" style="background: rgb(64, 64, 64);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="202.5,180" style="background: rgb(32, 32, 32);"></box>
<box data-type="explicit-black-white" data-algo="float" data-num-dots="1"
data-position="180,180" style="background: rgb(0, 0, 0);"></box>
</hbox>
</hbox> </hbox>
<toolbarbutton id="PanelUI-zen-gradient-generator-color-page-right" class="toolbarbutton-1" /> <toolbarbutton id="PanelUI-zen-gradient-generator-color-page-right" class="toolbarbutton-1" />
</hbox> </hbox>
@@ -100,10 +122,12 @@
</defs> </defs>
</svg> </svg>
</box> </box>
<html:input type="range" max="0.9" value="0.4" step="0.001" id="PanelUI-zen-gradient-generator-opacity" <html:input type="range" value="0.4" step="0.001" id="PanelUI-zen-gradient-generator-opacity"
#ifdef XP_MACOSX #ifdef XP_MACOSX
min="0.25" max="0.75"
min="0.35"
#else #else
max="0.9"
min="0.35" min="0.35"
#endif #endif
/> />

View File

@@ -8,9 +8,7 @@
<script type="text/javascript" src="chrome://browser/content/zen-sets.js"></script> <script type="text/javascript" src="chrome://browser/content/zen-sets.js"></script>
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script> <script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenHasPolyfill.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenHasPolyfill.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaceIcons.mjs"></script> <script type="module" src="chrome://browser/content/zen-components/ZenWorkspaceIcons.mjs"></script>

View File

@@ -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 f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 100644 index 5dcbb1705625746afd7c57b7a6044c4fa2f00afd..c0872057ec65fe8ebdb2f81e47198dec5d6f0faf 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";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/aboutlogins/content/aboutLogins.html b/browser/components/aboutlogins/content/aboutLogins.html diff --git a/browser/components/aboutlogins/content/aboutLogins.html b/browser/components/aboutlogins/content/aboutLogins.html
index a2b9a3c3bd60b7c679fc4babf2cc085f79ba84f5..3acd8da43d31cf8e9eb25d74421f522fdbd41094 100644 index ca69defe40c57704ab6ec331ce11c95a98b03e8f..bc5be4555adbe3389bceee0f01730ee57f1e69ef 100644
--- a/browser/components/aboutlogins/content/aboutLogins.html --- a/browser/components/aboutlogins/content/aboutLogins.html
+++ b/browser/components/aboutlogins/content/aboutLogins.html +++ b/browser/components/aboutlogins/content/aboutLogins.html
@@ -6,7 +6,7 @@ @@ -6,7 +6,7 @@

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/aboutlogins/content/components/login-list.css b/browser/components/aboutlogins/content/components/login-list.css diff --git a/browser/components/aboutlogins/content/components/login-list.css b/browser/components/aboutlogins/content/components/login-list.css
index 3c766eaa80c00ef145168f7a2ceced95ce94295e..db7a7da03c8346f97b472b8e561fec79c1036337 100644 index e8d2077ca425d9a2b924aa6ac6ba8ada36b76615..95a8ab3dcff832f16068b6739526e8e29f0b4e26 100644
--- a/browser/components/aboutlogins/content/components/login-list.css --- a/browser/components/aboutlogins/content/components/login-list.css
+++ b/browser/components/aboutlogins/content/components/login-list.css +++ b/browser/components/aboutlogins/content/components/login-list.css
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs diff --git a/browser/components/customizableui/CustomizableUI.sys.mjs b/browser/components/customizableui/CustomizableUI.sys.mjs
index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aab438565f 100644 index 9a98f56d83ee38e0f1aa41467b4ddf215c3d90f7..39e947ce083ce3b293337f5dbb40cd0b46db12e2 100644
--- a/browser/components/customizableui/CustomizableUI.sys.mjs --- a/browser/components/customizableui/CustomizableUI.sys.mjs
+++ b/browser/components/customizableui/CustomizableUI.sys.mjs +++ b/browser/components/customizableui/CustomizableUI.sys.mjs
@@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, { @@ -14,6 +14,7 @@ ChromeUtils.defineESModuleGetters(lazy, {
@@ -68,7 +68,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
]); ]);
if (AppConstants.platform != "macosx") { if (AppConstants.platform != "macosx") {
toolbars.add(CustomizableUI.AREA_MENUBAR); toolbars.add(CustomizableUI.AREA_MENUBAR);
@@ -1250,6 +1242,9 @@ var CustomizableUIInternal = { @@ -1242,6 +1234,9 @@ var CustomizableUIInternal = {
placements = gPlacements.get(area); placements = gPlacements.get(area);
} }
@@ -78,7 +78,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
// For toolbars that need it, mark as dirty. // For toolbars that need it, mark as dirty.
let defaultPlacements = areaProperties.get("defaultPlacements"); let defaultPlacements = areaProperties.get("defaultPlacements");
if ( if (
@@ -1757,7 +1752,7 @@ var CustomizableUIInternal = { @@ -1749,7 +1744,7 @@ var CustomizableUIInternal = {
lazy.log.info( lazy.log.info(
"Widget " + aWidgetId + " not found, unable to remove from " + aArea "Widget " + aWidgetId + " not found, unable to remove from " + aArea
); );
@@ -87,7 +87,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
} }
this.notifyDOMChange(widgetNode, null, container, true, () => { this.notifyDOMChange(widgetNode, null, container, true, () => {
@@ -1767,7 +1762,7 @@ var CustomizableUIInternal = { @@ -1759,7 +1754,7 @@ var CustomizableUIInternal = {
// We also need to remove the panel context menu if it's there: // We also need to remove the panel context menu if it's there:
this.ensureButtonContextMenu(widgetNode); this.ensureButtonContextMenu(widgetNode);
if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) { if (gPalette.has(aWidgetId) || this.isSpecialWidget(aWidgetId)) {
@@ -96,7 +96,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
} else { } else {
window.gNavToolbox.palette.appendChild(widgetNode); window.gNavToolbox.palette.appendChild(widgetNode);
} }
@@ -1935,16 +1930,16 @@ var CustomizableUIInternal = { @@ -1927,16 +1922,16 @@ var CustomizableUIInternal = {
elem.setAttribute("skipintoolbarset", "true"); elem.setAttribute("skipintoolbarset", "true");
} }
} }
@@ -116,7 +116,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
// Handle initial state of vertical tabs. // Handle initial state of vertical tabs.
if (isVerticalTabs) { if (isVerticalTabs) {
// Show the vertical tabs toolbar // Show the vertical tabs toolbar
@@ -2186,6 +2181,10 @@ var CustomizableUIInternal = { @@ -2178,6 +2173,10 @@ var CustomizableUIInternal = {
* The identifier string of the area that aNode is being inserted into. * The identifier string of the area that aNode is being inserted into.
*/ */
insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) { insertWidgetBefore(aNode, aNextNode, aContainer, aAreaId) {
@@ -127,7 +127,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => { this.notifyDOMChange(aNode, aNextNode, aContainer, false, () => {
this.setLocationAttributes(aNode, aAreaId); this.setLocationAttributes(aNode, aAreaId);
aContainer.insertBefore(aNode, aNextNode); aContainer.insertBefore(aNode, aNextNode);
@@ -4541,7 +4540,7 @@ var CustomizableUIInternal = { @@ -4533,7 +4532,7 @@ var CustomizableUIInternal = {
* For all registered areas, builds those areas to reflect the current * For all registered areas, builds those areas to reflect the current
* placement state of all widgets. * placement state of all widgets.
*/ */
@@ -136,7 +136,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
for (let [areaId, areaNodes] of gBuildAreas) { for (let [areaId, areaNodes] of gBuildAreas) {
let placements = gPlacements.get(areaId); let placements = gPlacements.get(areaId);
let isFirstChangedToolbar = true; let isFirstChangedToolbar = true;
@@ -4552,7 +4551,7 @@ var CustomizableUIInternal = { @@ -4544,7 +4543,7 @@ var CustomizableUIInternal = {
if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) { if (area.get("type") == CustomizableUI.TYPE_TOOLBAR) {
let defaultCollapsed = area.get("defaultCollapsed"); let defaultCollapsed = area.get("defaultCollapsed");
let win = areaNode.ownerGlobal; let win = areaNode.ownerGlobal;
@@ -145,7 +145,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
win.setToolbarVisibility( win.setToolbarVisibility(
areaNode, areaNode,
typeof defaultCollapsed == "string" typeof defaultCollapsed == "string"
@@ -5843,6 +5842,7 @@ export var CustomizableUI = { @@ -5835,6 +5834,7 @@ export var CustomizableUI = {
unregisterArea(aName, aDestroyPlacements) { unregisterArea(aName, aDestroyPlacements) {
CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements); CustomizableUIInternal.unregisterArea(aName, aDestroyPlacements);
}, },
@@ -153,7 +153,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
/** /**
* Add a widget to an area. * Add a widget to an area.
* If the area to which you try to add is not known to CustomizableUI, * If the area to which you try to add is not known to CustomizableUI,
@@ -7866,7 +7866,7 @@ class OverflowableToolbar { @@ -7858,7 +7858,7 @@ class OverflowableToolbar {
) { ) {
continue; continue;
} }
@@ -162,7 +162,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
if (child != aExceptChild) { if (child != aExceptChild) {
sum += getInlineSize(child); sum += getInlineSize(child);
} }
@@ -7890,11 +7890,11 @@ class OverflowableToolbar { @@ -7882,11 +7882,11 @@ class OverflowableToolbar {
parseFloat(style.paddingLeft) - parseFloat(style.paddingLeft) -
parseFloat(style.paddingRight) - parseFloat(style.paddingRight) -
toolbarChildrenWidth; toolbarChildrenWidth;
@@ -176,7 +176,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
}); });
lazy.log.debug( lazy.log.debug(
@@ -7909,7 +7909,14 @@ class OverflowableToolbar { @@ -7901,7 +7901,14 @@ class OverflowableToolbar {
Math.max(targetWidth, targetChildrenWidth) Math.max(targetWidth, targetChildrenWidth)
); );
totalAvailWidth = Math.ceil(totalAvailWidth); totalAvailWidth = Math.ceil(totalAvailWidth);
@@ -192,7 +192,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
return { isOverflowing, targetContentWidth, totalAvailWidth }; return { isOverflowing, targetContentWidth, totalAvailWidth };
} }
@@ -7970,7 +7977,11 @@ class OverflowableToolbar { @@ -7962,7 +7969,11 @@ class OverflowableToolbar {
return; return;
} }
} }
@@ -205,7 +205,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
lazy.log.debug( lazy.log.debug(
`Need ${minSize} but width is ${totalAvailWidth} so bailing` `Need ${minSize} but width is ${totalAvailWidth} so bailing`
); );
@@ -8003,7 +8014,7 @@ class OverflowableToolbar { @@ -7995,7 +8006,7 @@ class OverflowableToolbar {
} }
} }
if (!inserted) { if (!inserted) {
@@ -214,7 +214,7 @@ index d9a059f608779fea7cd8c595a432f6fe95183e0c..c359e5115b315dbb4b14e07ab34526aa
} }
child.removeAttribute("cui-anchorid"); child.removeAttribute("cui-anchorid");
child.removeAttribute("overflowedItem"); child.removeAttribute("overflowedItem");
@@ -8348,7 +8359,7 @@ class OverflowableToolbar { @@ -8340,7 +8351,7 @@ class OverflowableToolbar {
break; break;
} }
case "mousedown": { case "mousedown": {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs diff --git a/browser/components/customizableui/CustomizeMode.sys.mjs b/browser/components/customizableui/CustomizeMode.sys.mjs
index fd3c54a1d80f5800ffd2dcaaf594eed4bd2d300c..3178bd28affd8bd2e18c347fde6c3ec00068710c 100644 index 52e93e9d9d77f6e410d72bee707fccf26f728004..1142f096e1221213195453d60507ba1bd2f7aed9 100644
--- a/browser/components/customizableui/CustomizeMode.sys.mjs --- a/browser/components/customizableui/CustomizeMode.sys.mjs
+++ b/browser/components/customizableui/CustomizeMode.sys.mjs +++ b/browser/components/customizableui/CustomizeMode.sys.mjs
@@ -503,7 +503,7 @@ export class CustomizeMode { @@ -503,7 +503,7 @@ export class CustomizeMode {

View File

@@ -1,14 +1,15 @@
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 95621ae202378fb1ebceca5623a98b790b9eb5ff..835b831fb4f005ae4be72ce0953ac9254e6b4891 100644 index 5be4e8ea7867e93bda2cd3eb49d966ebd73dc786..650d0008e755583392e07f35bd8e541dff7c43c4 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,9 +242,7 @@ export var ToolbarContextMenu = { @@ -246,10 +246,7 @@ export var ToolbarContextMenu = {
// Show/hide sidebar and vertical tabs menu items // Show/hide sidebar and vertical tabs menu items
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp"); 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" ||
- isTitlebarSpacer; - isTitlebarSpacer ||
- isMenuBarSpacer;
+ false; + false;
let toggleVerticalTabsItem = document.getElementById( let toggleVerticalTabsItem = document.getElementById(

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs diff --git a/browser/components/places/PlacesUIUtils.sys.mjs b/browser/components/places/PlacesUIUtils.sys.mjs
index 86cc499f9b959ef87ab57fc4195e0c65f25e8c7c..a928ea83b9f4d0133238e744d2fb91318d36d4de 100644 index 615efa4238a3c0084354383a128e0dd8712c720e..29e9dbe7039ba3dc1413da45908ca8418103f6e6 100644
--- a/browser/components/places/PlacesUIUtils.sys.mjs --- a/browser/components/places/PlacesUIUtils.sys.mjs
+++ b/browser/components/places/PlacesUIUtils.sys.mjs +++ b/browser/components/places/PlacesUIUtils.sys.mjs
@@ -60,6 +60,7 @@ class BookmarkState { @@ -60,6 +60,7 @@ class BookmarkState {

View File

@@ -1,11 +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 65efb0666785cc79e58015e19ec55216bf4ec9c4..95941c52ffd4c9ee36f584413fb96d59721113db 100644 index 7c5f6e9053f119a790f83a68c75ee11a6c172d98..cb0e1386318e8a8df24dfbbf8430d0a09fe07d16 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
@@ -33,3 +33,5 @@ browser.jar: @@ -37,3 +37,5 @@ browser.jar:
content/browser/preferences/widgets/setting-pane.mjs (widgets/setting-pane/setting-pane.mjs)
content/browser/preferences/widgets/security-privacy-card.mjs (widgets/security-privacy/security-privacy-card/security-privacy-card.mjs) content/browser/preferences/widgets/security-privacy-card.mjs (widgets/security-privacy/security-privacy-card/security-privacy-card.mjs)
content/browser/preferences/widgets/security-privacy-card.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css) content/browser/preferences/widgets/security-privacy-card.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css)
content/browser/preferences/widgets/sync-device-name.mjs (widgets/sync-device-name/sync-device-name.mjs)
+ +
+ content/browser/preferences/zen-settings.js + content/browser/preferences/zen-settings.js
\ No newline at end of file \ No newline at end of file

View File

@@ -1,5 +1,5 @@
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 ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644 index bfddd91e6b524f2ebced985f5d12a4963e5c6075..7e80c0a293aae6356e53d9c9760017290e97ffa0 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
@@ -141,7 +141,8 @@ @@ -141,7 +141,8 @@

View File

@@ -1,5 +1,5 @@
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 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca323682e89e76 100644 index a184086f10d6a919c8125ab5d7728319256b3b73..7c826000ccdc8a55a12a08bdc2c547d886e5610c 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
@@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = { @@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = {
@@ -14,7 +14,7 @@ index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca3236
{ {
id: "windowsLaunchOnLogin", id: "windowsLaunchOnLogin",
l10nId: "windows-launch-on-login", l10nId: "windows-launch-on-login",
@@ -1611,7 +1616,7 @@ function getBundleForLocales(newLocales) { @@ -1700,7 +1705,7 @@ function getBundleForLocales(newLocales) {
]) ])
); );
return new Localization( return new Localization(

View File

@@ -1,8 +1,8 @@
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 c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846ba3cffa9 100644 index a0e16b375f0ad7ef58bf68d7574453ef37d4557f..2d5b5a0715b5ed8ebe592eebea0219a6cde17b52 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 () { @@ -118,6 +118,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
styleSheets: [ styleSheets: [
"chrome://browser/skin/preferences/dialog.css", "chrome://browser/skin/preferences/dialog.css",
"chrome://browser/skin/preferences/preferences.css", "chrome://browser/skin/preferences/preferences.css",
@@ -10,7 +10,7 @@ index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846
], ],
resizeCallback: async ({ title, frame }) => { resizeCallback: async ({ title, frame }) => {
// Search within main document and highlight matched keyword. // Search within main document and highlight matched keyword.
@@ -224,6 +225,10 @@ function init_all() { @@ -225,6 +226,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);

View File

@@ -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 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 100644 index 993554d64efa6ce39fbcc01d4676a69199e158ff..e69aec388162997ef7cb93481cfedb9d102b4fe0 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 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d
<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 -->
@@ -109,6 +111,11 @@ @@ -113,6 +115,11 @@
<hbox flex="1"> <hbox flex="1">
<vbox class="navigation"> <vbox class="navigation">
@@ -23,7 +23,7 @@ index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d
<!-- 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"
@@ -121,6 +128,50 @@ @@ -125,6 +132,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 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d
<richlistitem id="category-home" <richlistitem id="category-home"
class="category" class="category"
value="paneHome" value="paneHome"
@@ -232,11 +283,6 @@ @@ -236,11 +287,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 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d
</hbox> </hbox>
</hbox> </hbox>
<vbox id="mainPrefPane"> <vbox id="mainPrefPane">
@@ -250,6 +296,10 @@ @@ -254,6 +300,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

View File

@@ -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 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 100644 index 4ecdbdb129577165ed0df619577327f7610e138f..761a4d4f26a21ba555b7af180e8a6030615db500 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 @@

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs diff --git a/browser/components/search/SearchOneOffs.sys.mjs b/browser/components/search/SearchOneOffs.sys.mjs
index 3930862215a667e223f1bf6959dcf1c08421b37d..68d767b6d8490a374973eb86a032a6386879fd93 100644 index 3e5b29bc0a740df503e69f811ef01de1d6f0340a..b1bcdfc8c1bba506370f1a05fb31630c64bbd6d3 100644
--- a/browser/components/search/SearchOneOffs.sys.mjs --- a/browser/components/search/SearchOneOffs.sys.mjs
+++ b/browser/components/search/SearchOneOffs.sys.mjs +++ b/browser/components/search/SearchOneOffs.sys.mjs
@@ -466,7 +466,7 @@ export class SearchOneOffs { @@ -473,7 +473,7 @@ export class SearchOneOffs {
// For the search-bar, always show the one-off buttons where there is an // For the search-bar, always show the one-off buttons where there is an
// option to add an engine. // option to add an engine.
let addEngineNeeded = isSearchBar && addEngines.length; let addEngineNeeded = isSearchBar && addEngines.length;

View File

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

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs diff --git a/browser/components/tabbrowser/TabUnloader.sys.mjs b/browser/components/tabbrowser/TabUnloader.sys.mjs
index 0c62cdf29a72a7518cc54c014b5042f9695311eb..d5ac63d5005065863391e415f7072145d3247cad 100644 index 2a3fcbe9dfb6328cabba891697990e2467973f6e..22fdaaefa71b3c37cbccbd7ae4db044b1057f1f2 100644
--- a/browser/components/tabbrowser/TabUnloader.sys.mjs --- a/browser/components/tabbrowser/TabUnloader.sys.mjs
+++ b/browser/components/tabbrowser/TabUnloader.sys.mjs +++ b/browser/components/tabbrowser/TabUnloader.sys.mjs
@@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1; @@ -52,7 +52,7 @@ let CRITERIA_WEIGHT = 1;

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812307b9a04 100644 index 97b931c3c7385a52d20204369fcf6d6999053687..bc49f4f5a90638d725eca016d00f30d9548dce83 100644
--- a/browser/components/tabbrowser/content/drag-and-drop.js --- a/browser/components/tabbrowser/content/drag-and-drop.js
+++ b/browser/components/tabbrowser/content/drag-and-drop.js +++ b/browser/components/tabbrowser/content/drag-and-drop.js
@@ -32,6 +32,9 @@ @@ -32,6 +32,9 @@
@@ -12,7 +12,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
if (isTab(element)) { if (isTab(element)) {
return element; return element;
} }
@@ -118,6 +121,10 @@ @@ -112,6 +115,10 @@
} }
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0); let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
@@ -23,9 +23,9 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
if ( if (
(dropEffect == "move" || dropEffect == "copy") && (dropEffect == "move" || dropEffect == "copy") &&
document == draggedTab.ownerDocument && document == draggedTab.ownerDocument &&
@@ -272,6 +279,18 @@ @@ -266,6 +273,18 @@
this.#tabDropIndicator.hidden = true; this._tabDropIndicator.hidden = true;
event.stopPropagation(); event.stopPropagation();
+ if (draggedTab?.hasAttribute("zen-has-splitted")) { + if (draggedTab?.hasAttribute("zen-has-splitted")) {
+ draggedTab.removeAttribute("zen-has-splitted"); + draggedTab.removeAttribute("zen-has-splitted");
@@ -42,7 +42,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
if (draggedTab && dropEffect == "copy") { if (draggedTab && dropEffect == "copy") {
let duplicatedDraggedTab; let duplicatedDraggedTab;
let duplicatedTabs = []; let duplicatedTabs = [];
@@ -297,8 +316,9 @@ @@ -291,8 +310,9 @@
let translateOffsetY = oldTranslateY % tabHeight; let translateOffsetY = oldTranslateY % tabHeight;
let newTranslateX = oldTranslateX - translateOffsetX; let newTranslateX = oldTranslateX - translateOffsetX;
let newTranslateY = oldTranslateY - translateOffsetY; let newTranslateY = oldTranslateY - translateOffsetY;
@@ -52,21 +52,21 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; + let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
+ let essential = draggedTab.hasAttribute("zen-essential"); + let essential = draggedTab.hasAttribute("zen-essential");
if (this.#isContainerVerticalPinnedGrid(draggedTab)) { if (this._isContainerVerticalPinnedGrid(draggedTab)) {
// Update both translate axis for pinned vertical expanded tabs // Update both translate axis for pinned vertical expanded tabs
@@ -314,8 +334,8 @@ @@ -308,8 +328,8 @@
} }
} else { } else {
let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice( let tabs = this._tabbrowserTabs.ariaFocusableItems.slice(
- isPinned ? 0 : numPinned, - isPinned ? 0 : numPinned,
- isPinned ? numPinned : undefined - isPinned ? numPinned : undefined
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned, + isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined + isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
); );
let size = this.#tabbrowserTabs.verticalMode ? "height" : "width"; let size = this._tabbrowserTabs.verticalMode ? "height" : "width";
let screenAxis = this.#tabbrowserTabs.verticalMode let screenAxis = this._tabbrowserTabs.verticalMode
@@ -368,11 +388,13 @@ @@ -362,11 +382,13 @@
this.#dragToPinPromoCard, this._dragToPinPromoCard,
]; ];
let shouldPin = let shouldPin =
+ false && + false &&
@@ -78,16 +78,16 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ false && + false &&
isTab(draggedTab) && isTab(draggedTab) &&
draggedTab.pinned && draggedTab.pinned &&
this.#tabbrowserTabs.arrowScrollbox.contains(event.target); this._tabbrowserTabs.arrowScrollbox.contains(event.target);
@@ -390,6 +412,7 @@ @@ -384,6 +406,7 @@
(oldTranslateY && oldTranslateY != newTranslateY); (oldTranslateY && oldTranslateY != newTranslateY);
} else if (this.#tabbrowserTabs.verticalMode) { } else if (this._tabbrowserTabs.verticalMode) {
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY; shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
+ shouldTranslate = false; + shouldTranslate = false;
} else { } else {
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX; shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
} }
@@ -446,7 +469,7 @@ @@ -440,7 +463,7 @@
item.removeAttribute("tabdrop-samewindow"); item.removeAttribute("tabdrop-samewindow");
resolve(); resolve();
}; };
@@ -96,18 +96,18 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
postTransitionCleanup(); postTransitionCleanup();
} else { } else {
let onTransitionEnd = transitionendEvent => { let onTransitionEnd = transitionendEvent => {
@@ -586,6 +609,7 @@ @@ -581,6 +604,7 @@
let nextItem = this.#tabbrowserTabs.ariaFocusableItems[newIndex]; let nextItem = this._tabbrowserTabs.ariaFocusableItems[newIndex];
let tabGroup = isTab(nextItem) && nextItem.group; let tabGroup = isTab(nextItem) && nextItem.group;
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return; + if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
gBrowser.loadTabs(urls, { gBrowser.loadTabs(urls, {
inBackground, inBackground,
replace, replace,
@@ -623,7 +647,16 @@ @@ -618,7 +642,16 @@
this.#expandGroupOnDrop(draggedTab); this._expandGroupOnDrop(draggedTab);
} }
this.#resetTabsAfterDrop(draggedTab.ownerDocument); this._resetTabsAfterDrop(draggedTab.ownerDocument);
- -
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) { + if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab); + const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
@@ -122,8 +122,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
if ( if (
dt.mozUserCancelled || dt.mozUserCancelled ||
dt.dropEffect != "none" || dt.dropEffect != "none" ||
@@ -827,7 +860,10 @@ @@ -822,7 +855,10 @@
#getDragTarget(event, { ignoreSides = false } = {}) { _getDragTarget(event, { ignoreSides = false } = {}) {
let { target } = event; let { target } = event;
while (target) { while (target) {
- if (isTab(target) || isTabGroupLabel(target)) { - if (isTab(target) || isTabGroupLabel(target)) {
@@ -134,7 +134,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
break; break;
} }
target = target.parentNode; target = target.parentNode;
@@ -844,14 +880,17 @@ @@ -839,14 +875,17 @@
return null; return null;
} }
} }
@@ -144,17 +144,17 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
return target; return target;
} }
#isContainerVerticalPinnedGrid(tab) { _isContainerVerticalPinnedGrid(tab) {
return ( return (
this.#tabbrowserTabs.verticalMode && this._tabbrowserTabs.verticalMode &&
- tab.pinned && - tab.pinned &&
- this.#tabbrowserTabs.hasAttribute("expanded") && - this._tabbrowserTabs.hasAttribute("expanded") &&
+ tab.hasAttribute("zen-essential") && + tab.hasAttribute("zen-essential") &&
+ (this.#tabbrowserTabs.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) && + (this._tabbrowserTabs.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
!this.#tabbrowserTabs.expandOnHover !this._tabbrowserTabs.expandOnHover
); );
} }
@@ -882,7 +921,8 @@ @@ -877,7 +916,8 @@
isTabGroupLabel(draggedTab) && isTabGroupLabel(draggedTab) &&
draggedTab._dragData?.expandGroupOnDrop draggedTab._dragData?.expandGroupOnDrop
) { ) {
@@ -164,19 +164,19 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
} }
} }
@@ -947,10 +987,7 @@ @@ -942,10 +982,7 @@
if (this.#isContainerVerticalPinnedGrid(tab)) { if (this._isContainerVerticalPinnedGrid(tab)) {
// In expanded vertical mode, the max number of pinned tabs per row is dynamic // In expanded vertical mode, the max number of pinned tabs per row is dynamic
// Set this before adjusting dragged tab's position // Set this before adjusting dragged tab's position
- let pinnedTabs = this.#tabbrowserTabs.visibleTabs.slice( - let pinnedTabs = this._tabbrowserTabs.visibleTabs.slice(
- 0, - 0,
- gBrowser.pinnedTabCount - gBrowser.pinnedTabCount
- ); - );
+ let pinnedTabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); + let pinnedTabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
let tabsPerRow = 0; let tabsPerRow = 0;
let position = RTL_UI let position = RTL_UI
? window.windowUtils.getBoundsWithoutFlushing( ? window.windowUtils.getBoundsWithoutFlushing(
@@ -1117,7 +1154,7 @@ @@ -1112,7 +1149,7 @@
let dropEffect = this.getDropEffectForTabDrag(event); let dropEffect = this.getDropEffectForTabDrag(event);
let isMovingInTabStrip = !fromTabList && dropEffect == "move"; let isMovingInTabStrip = !fromTabList && dropEffect == "move";
let collapseTabGroupDuringDrag = let collapseTabGroupDuringDrag =
@@ -184,17 +184,17 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active")); + isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
tab._dragData = { tab._dragData = {
offsetX: this.#tabbrowserTabs.verticalMode offsetX: this._tabbrowserTabs.verticalMode
@@ -1127,7 +1164,7 @@ @@ -1122,7 +1159,7 @@
? event.screenY - window.screenY - tabOffset ? event.screenY - window.screenY - tabOffset
: event.screenY - window.screenY, : event.screenY - window.screenY,
scrollPos: scrollPos:
- this.#tabbrowserTabs.verticalMode && tab.pinned - this._tabbrowserTabs.verticalMode && tab.pinned
+ this.#tabbrowserTabs.verticalMode && tab.pinned && false + this._tabbrowserTabs.verticalMode && tab.pinned && false
? this.#tabbrowserTabs.pinnedTabsContainer.scrollPosition ? this._tabbrowserTabs.pinnedTabsContainer.scrollPosition
: this.#tabbrowserTabs.arrowScrollbox.scrollPosition, : this._tabbrowserTabs.arrowScrollbox.scrollPosition,
screenX: event.screenX, screenX: event.screenX,
@@ -1156,6 +1193,7 @@ @@ -1149,6 +1186,7 @@
if (collapseTabGroupDuringDrag) { if (collapseTabGroupDuringDrag) {
tab.group.collapsed = true; tab.group.collapsed = true;
@@ -202,10 +202,10 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
} }
} }
} }
@@ -1174,6 +1212,16 @@ @@ -1173,6 +1211,16 @@
when the tab is first selected to be dragged. if (tabStripItemElement.hasAttribute("dragtarget")) {
*/ return;
#updateTabStylesOnDrag(tab) { }
+ let { movingTabs: zenMovingTabs } = tab._dragData; + let { movingTabs: zenMovingTabs } = tab._dragData;
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) { + for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
+ if (isTabGroupLabel(tab)) { + if (isTabGroupLabel(tab)) {
@@ -218,16 +218,16 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ return; + return;
let isPinned = tab.pinned; let isPinned = tab.pinned;
let numPinned = gBrowser.pinnedTabCount; let numPinned = gBrowser.pinnedTabCount;
let allTabs = this.#tabbrowserTabs.ariaFocusableItems; let allTabs = this._tabbrowserTabs.ariaFocusableItems;
@@ -1624,10 +1672,7 @@ @@ -1624,10 +1672,7 @@
return; return;
} }
- let tabs = this.#tabbrowserTabs.visibleTabs.slice( - let tabs = this._tabbrowserTabs.visibleTabs.slice(
- 0, - 0,
- gBrowser.pinnedTabCount - gBrowser.pinnedTabCount
- ); - );
+ let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials); + let tabs = this._tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
let directionX = screenX > dragData.animLastScreenX; let directionX = screenX > dragData.animLastScreenX;
let directionY = screenY > dragData.animLastScreenY; let directionY = screenY > dragData.animLastScreenY;
@@ -252,7 +252,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY); translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
@@ -1833,13 +1880,18 @@ @@ -1833,13 +1880,18 @@
this.#clearDragOverGroupingTimer(); this._clearDragOverGroupingTimer();
this.#clearPinnedDropIndicatorTimer(); this.#clearPinnedDropIndicatorTimer();
- let isPinned = draggedTab.pinned; - let isPinned = draggedTab.pinned;
@@ -261,7 +261,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed; + let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
+ let essential = draggedTab.hasAttribute("zen-essential"); + let essential = draggedTab.hasAttribute("zen-essential");
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder; + const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
let allTabs = this.#tabbrowserTabs.ariaFocusableItems; let allTabs = this._tabbrowserTabs.ariaFocusableItems;
let tabs = allTabs.slice( let tabs = allTabs.slice(
- isPinned ? 0 : numPinned, - isPinned ? 0 : numPinned,
- isPinned ? numPinned : undefined - isPinned ? numPinned : undefined
@@ -272,15 +272,15 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ draggedTab = draggedTab.group.labelElement; + draggedTab = draggedTab.group.labelElement;
+ } + }
if (this.#rtlMode) { if (this._rtlMode) {
tabs.reverse(); tabs.reverse();
@@ -1854,7 +1906,7 @@ @@ -1854,7 +1906,7 @@
let translateAxis = this.#tabbrowserTabs.verticalMode let translateAxis = this._tabbrowserTabs.verticalMode
? "translateY" ? "translateY"
: "translateX"; : "translateX";
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab); - let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab); + let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
let tabSize = this.#tabbrowserTabs.verticalMode ? tabHeight : tabWidth; let tabSize = this._tabbrowserTabs.verticalMode ? tabHeight : tabWidth;
let translateX = event.screenX - dragData.screenX; let translateX = event.screenX - dragData.screenX;
let translateY = event.screenY - dragData.screenY; let translateY = event.screenY - dragData.screenY;
@@ -1870,6 +1922,12 @@ @@ -1870,6 +1922,12 @@
@@ -297,12 +297,12 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
let lastMovingTabScreen = endEdge(lastMovingTab); let lastMovingTabScreen = endEdge(lastMovingTab);
let firstMovingTabScreen = firstMovingTab[screenAxis]; let firstMovingTabScreen = firstMovingTab[screenAxis];
@@ -1884,6 +1942,13 @@ @@ -1884,6 +1942,13 @@
let endBound = this.#rtlMode let endBound = this._rtlMode
? endEdge(this.#tabbrowserTabs) - lastMovingTabScreen ? endEdge(this._tabbrowserTabs) - lastMovingTabScreen
: periphery[screenAxis] - 1 - lastMovingTabScreen; : periphery[screenAxis] - 1 - lastMovingTabScreen;
+ { + {
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0); + let firstTab = tabs.at(this._rtlMode ? -1 : 0);
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1); + let lastTab = tabs.at(this._rtlMode ? 0 : -1);
+ startBound = firstTab[screenAxis] - firstMovingTabScreen; + startBound = firstTab[screenAxis] - firstMovingTabScreen;
+ endBound = endEdge(lastTab) - lastMovingTabScreen; + endBound = endEdge(lastTab) - lastMovingTabScreen;
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder); + endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
@@ -342,7 +342,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
: dropElement.elementIndex < numPinned; : dropElement.elementIndex < numPinned;
- if (isOutOfBounds) { - if (isOutOfBounds) {
- // Drop after last pinned tab - // Drop after last pinned tab
- dropElement = this.#tabbrowserTabs.ariaFocusableItems[numPinned - 1]; - dropElement = this._tabbrowserTabs.ariaFocusableItems[numPinned - 1];
- dropBefore = false; - dropBefore = false;
- } - }
} }
@@ -351,7 +351,7 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
- gBrowser._tabGroupsEnabled && - gBrowser._tabGroupsEnabled &&
- isTab(draggedTab) && - isTab(draggedTab) &&
- !isPinned && - !isPinned &&
- (!numPinned || newDropElementIndex > numPinned) - (!numPinned || newDropElementIndex >= numPinned)
- ) { - ) {
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) { + if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
let dragOverGroupingThreshold = 1 - moveOverThreshold; let dragOverGroupingThreshold = 1 - moveOverThreshold;
@@ -390,8 +390,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
+ colorCode + colorCode
+ )); + ));
} }
this.#setDragOverGroupColor(colorCode); this._setDragOverGroupColor(colorCode);
this.#tabbrowserTabs.toggleAttribute( this._tabbrowserTabs.toggleAttribute(
@@ -2324,10 +2395,11 @@ @@ -2324,10 +2395,11 @@
dragData.dropBefore = dropBefore; dragData.dropBefore = dropBefore;
dragData.animDropElementIndex = newDropElementIndex; dragData.animDropElementIndex = newDropElementIndex;
@@ -417,8 +417,8 @@ index c97c661656868bc7faaf7c66c9702eea056aafe1..3a2b4bd1a017697539a3b81432199812
this.#setMovingTabMode(false); this.#setMovingTabMode(false);
+ gZenFolders.highlightGroupOnDragOver(null); + gZenFolders.highlightGroupOnDragOver(null);
for (let item of this.#tabbrowserTabs.ariaFocusableItems) { for (let item of this._tabbrowserTabs.ariaFocusableItems) {
this.#resetGroupTarget(item); this._resetGroupTarget(item);
@@ -2457,7 +2531,7 @@ @@ -2457,7 +2531,7 @@
tab.style.left = ""; tab.style.left = "";
tab.style.top = ""; tab.style.top = "";

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 100644 index 2dacb325190b6ae42ebeb3e9f0e862dc690ecdca..02d70e9b0261f92917d274759838cfbfd6214f77 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 @@
@@ -78,7 +78,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
get hidden() { get hidden() {
@@ -297,7 +310,7 @@ @@ -305,7 +318,7 @@
return false; return false;
} }
@@ -87,21 +87,21 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
get lastAccessed() { get lastAccessed() {
@@ -374,8 +387,11 @@ @@ -382,7 +395,12 @@
} }
get group() { get group() {
- if (this.parentElement?.tagName == "tab-group") { - return this.closest("tab-group");
- return this.parentElement;
+ if (typeof gBrowser === "undefined") { + if (typeof gBrowser === "undefined") {
+ return null; + return null;
+ } + }
+ if (gBrowser.isTabGroup(this.parentElement?.parentElement)) { + if (gBrowser.isTabGroup(this.parentElement?.parentElement)) {
+ return this.parentElement.parentElement; + return this.parentElement.parentElement;
} + }
return null;
} }
@@ -470,6 +486,8 @@
get splitview() {
@@ -473,6 +491,8 @@
this.style.MozUserFocus = "ignore"; this.style.MozUserFocus = "ignore";
} else if ( } else if (
event.target.classList.contains("tab-close-button") || event.target.classList.contains("tab-close-button") ||
@@ -110,7 +110,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
event.target.classList.contains("tab-icon-overlay") || event.target.classList.contains("tab-icon-overlay") ||
event.target.classList.contains("tab-audio-button") event.target.classList.contains("tab-audio-button")
) { ) {
@@ -524,6 +542,10 @@ @@ -527,6 +547,10 @@
this.style.MozUserFocus = ""; this.style.MozUserFocus = "";
} }
@@ -121,7 +121,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
on_click(event) { on_click(event) {
if (event.button != 0) { if (event.button != 0) {
return; return;
@@ -572,6 +594,7 @@ @@ -575,6 +599,7 @@
) )
); );
} else { } else {
@@ -129,7 +129,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
gBrowser.removeTab(this, { gBrowser.removeTab(this, {
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
@@ -584,6 +607,14 @@ @@ -587,6 +612,14 @@
// (see tabbrowser-tabs 'click' handler). // (see tabbrowser-tabs 'click' handler).
gBrowser.tabContainer._blockDblClick = true; gBrowser.tabContainer._blockDblClick = true;
} }
@@ -144,7 +144,7 @@ index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577
} }
on_dblclick(event) { on_dblclick(event) {
@@ -607,6 +638,8 @@ @@ -610,6 +643,8 @@
animate: true, animate: true,
triggeringEvent: event, triggeringEvent: event,
}); });

View File

@@ -1,5 +1,5 @@
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e6923fe5f 100644 index 42027bfa55eab8ea9298a7d425f2ded45188f7f3..6aa725c0e5a6a29dc33fcb162f83522f53bc059b 100644
--- a/browser/components/tabbrowser/content/tabbrowser.js --- a/browser/components/tabbrowser/content/tabbrowser.js
+++ b/browser/components/tabbrowser/content/tabbrowser.js +++ b/browser/components/tabbrowser/content/tabbrowser.js
@@ -386,6 +386,7 @@ @@ -386,6 +386,7 @@
@@ -315,7 +315,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Additionally send pinned tab events // Additionally send pinned tab events
if (pinned) { if (pinned) {
this.#notifyPinnedStatus(t); this.#notifyPinnedStatus(t);
@@ -3330,10 +3428,10 @@ @@ -3349,10 +3447,10 @@
isAdoptingGroup = false, isAdoptingGroup = false,
isUserTriggered = false, isUserTriggered = false,
telemetryUserCreateSource = "unknown", telemetryUserCreateSource = "unknown",
@@ -327,7 +327,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
if (!color) { if (!color) {
@@ -3354,9 +3452,14 @@ @@ -3373,9 +3471,14 @@
label, label,
isAdoptingGroup isAdoptingGroup
); );
@@ -344,7 +344,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
); );
group.addTabs(tabs); group.addTabs(tabs);
@@ -3477,7 +3580,7 @@ @@ -3496,7 +3599,7 @@
} }
this.#handleTabMove(tab, () => this.#handleTabMove(tab, () =>
@@ -353,7 +353,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
); );
} }
@@ -3679,6 +3782,7 @@ @@ -3698,6 +3801,7 @@
openWindowInfo, openWindowInfo,
skipLoad, skipLoad,
triggeringRemoteType, triggeringRemoteType,
@@ -361,7 +361,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
) { ) {
// 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
@@ -3748,6 +3852,7 @@ @@ -3767,6 +3871,7 @@
openWindowInfo, openWindowInfo,
name, name,
skipLoad, skipLoad,
@@ -369,7 +369,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
}); });
} }
@@ -3935,7 +4040,7 @@ @@ -3955,7 +4060,7 @@
// Add a new tab if needed. // Add a new tab if needed.
if (!tab) { if (!tab) {
let createLazyBrowser = let createLazyBrowser =
@@ -378,7 +378,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
let url = "about:blank"; let url = "about:blank";
if (tabData.entries?.length) { if (tabData.entries?.length) {
@@ -3972,8 +4077,10 @@ @@ -3992,8 +4097,10 @@
insertTab: false, insertTab: false,
skipLoad: true, skipLoad: true,
preferredRemoteType, preferredRemoteType,
@@ -390,7 +390,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (select) { if (select) {
tabToSelect = tab; tabToSelect = tab;
} }
@@ -3985,7 +4092,8 @@ @@ -4005,7 +4112,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, {});
@@ -400,7 +400,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
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
@@ -3999,7 +4107,10 @@ @@ -4019,7 +4127,10 @@
tabGroup.stateData.id, tabGroup.stateData.id,
tabGroup.stateData.color, tabGroup.stateData.color,
tabGroup.stateData.collapsed, tabGroup.stateData.collapsed,
@@ -412,7 +412,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
); );
tabsFragment.appendChild(tabGroup.node); tabsFragment.appendChild(tabGroup.node);
} }
@@ -4044,9 +4155,23 @@ @@ -4064,9 +4175,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;
@@ -436,7 +436,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (tabs.length > 1 || !tabs[0].selected) { if (tabs.length > 1 || !tabs[0].selected) {
this._updateTabsAfterInsert(); this._updateTabsAfterInsert();
@@ -4237,11 +4362,14 @@ @@ -4257,11 +4382,14 @@
if (ownerTab) { if (ownerTab) {
tab.owner = ownerTab; tab.owner = ownerTab;
} }
@@ -452,7 +452,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if ( if (
!bulkOrderedOpen && !bulkOrderedOpen &&
((openerTab && ((openerTab &&
@@ -4253,7 +4381,7 @@ @@ -4273,7 +4401,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;
@@ -461,7 +461,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
tabGroup = previousTab.group; tabGroup = previousTab.group;
} }
if ( if (
@@ -4264,7 +4392,7 @@ @@ -4284,7 +4412,7 @@
) { ) {
elementIndex = Infinity; elementIndex = Infinity;
} else if (previousTab.visible) { } else if (previousTab.visible) {
@@ -470,7 +470,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else if (previousTab == FirefoxViewHandler.tab) { } else if (previousTab == FirefoxViewHandler.tab) {
elementIndex = 0; elementIndex = 0;
} }
@@ -4292,14 +4420,14 @@ @@ -4312,14 +4440,14 @@
} }
// Ensure index is within bounds. // Ensure index is within bounds.
if (tab.pinned) { if (tab.pinned) {
@@ -489,7 +489,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (pinned && !itemAfter?.pinned) { if (pinned && !itemAfter?.pinned) {
itemAfter = null; itemAfter = null;
@@ -4310,7 +4438,7 @@ @@ -4330,7 +4458,7 @@
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -498,7 +498,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
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);
@@ -4338,7 +4466,11 @@ @@ -4358,7 +4486,11 @@
const tabContainer = pinned const tabContainer = pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -510,7 +510,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
this._updateTabsAfterInsert(); this._updateTabsAfterInsert();
@@ -4346,6 +4478,7 @@ @@ -4366,6 +4498,7 @@
if (pinned) { if (pinned) {
this._updateTabBarForPinnedTabs(); this._updateTabBarForPinnedTabs();
} }
@@ -518,7 +518,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -4635,6 +4768,9 @@ @@ -4655,6 +4788,9 @@
return; return;
} }
@@ -528,7 +528,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource }); this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
} }
@@ -4896,6 +5032,7 @@ @@ -4916,6 +5052,7 @@
telemetrySource, telemetrySource,
} = {} } = {}
) { ) {
@@ -536,7 +536,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs // When 'closeWindowWithLastTab' pref is enabled, closing all tabs
// can be considered equivalent to closing the window. // can be considered equivalent to closing the window.
if ( if (
@@ -4985,6 +5122,7 @@ @@ -5005,6 +5142,7 @@
if (lastToClose) { if (lastToClose) {
this.removeTab(lastToClose, aParams); this.removeTab(lastToClose, aParams);
} }
@@ -544,7 +544,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} catch (e) { } catch (e) {
console.error(e); console.error(e);
} }
@@ -5023,6 +5161,12 @@ @@ -5043,6 +5181,12 @@
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start(); aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
} }
@@ -557,7 +557,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Handle requests for synchronously removing an already // Handle requests for synchronously removing an already
// asynchronously closing tab. // asynchronously closing tab.
if (!animate && aTab.closing) { if (!animate && aTab.closing) {
@@ -5037,6 +5181,9 @@ @@ -5057,6 +5201,9 @@
// state). // state).
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width; let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
let isLastTab = this.#isLastTabInWindow(aTab); let isLastTab = this.#isLastTabInWindow(aTab);
@@ -567,7 +567,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if ( if (
!this._beginRemoveTab(aTab, { !this._beginRemoveTab(aTab, {
closeWindowFastpath: true, closeWindowFastpath: true,
@@ -5085,7 +5232,13 @@ @@ -5105,7 +5252,13 @@
// We're not animating, so we can cancel the animation stopwatch. // We're not animating, so we can cancel the animation stopwatch.
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId); Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
aTab._closeTimeAnimTimerId = null; aTab._closeTimeAnimTimerId = null;
@@ -582,7 +582,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
return; return;
} }
@@ -5219,7 +5372,7 @@ @@ -5239,7 +5392,7 @@
closeWindowWithLastTab != null closeWindowWithLastTab != null
? closeWindowWithLastTab ? closeWindowWithLastTab
: !window.toolbar.visible || : !window.toolbar.visible ||
@@ -591,7 +591,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (closeWindow) { if (closeWindow) {
// We've already called beforeunload on all the relevant tabs if we get here, // We've already called beforeunload on all the relevant tabs if we get here,
@@ -5243,6 +5396,7 @@ @@ -5263,6 +5416,7 @@
newTab = true; newTab = true;
} }
@@ -599,7 +599,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
aTab._endRemoveArgs = [closeWindow, newTab]; aTab._endRemoveArgs = [closeWindow, newTab];
// swapBrowsersAndCloseOther will take care of closing the window without animation. // swapBrowsersAndCloseOther will take care of closing the window without animation.
@@ -5283,13 +5437,7 @@ @@ -5303,13 +5457,7 @@
aTab._mouseleave(); aTab._mouseleave();
if (newTab) { if (newTab) {
@@ -614,7 +614,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else { } else {
TabBarVisibility.update(); TabBarVisibility.update();
} }
@@ -5422,6 +5570,7 @@ @@ -5442,6 +5590,7 @@
this.tabs[i]._tPos = i; this.tabs[i]._tPos = i;
} }
@@ -622,7 +622,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (!this._windowIsClosing) { if (!this._windowIsClosing) {
// update tab close buttons state // update tab close buttons state
this.tabContainer._updateCloseButtons(); this.tabContainer._updateCloseButtons();
@@ -5643,6 +5792,7 @@ @@ -5663,6 +5812,7 @@
} }
let excludeTabs = new Set(aExcludeTabs); let excludeTabs = new Set(aExcludeTabs);
@@ -630,7 +630,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// If this tab has a successor, it should be selectable, since // If this tab has a successor, it should be selectable, since
// hiding or closing a tab removes that tab as a successor. // hiding or closing a tab removes that tab as a successor.
@@ -5655,13 +5805,13 @@ @@ -5675,13 +5825,13 @@
!excludeTabs.has(aTab.owner) && !excludeTabs.has(aTab.owner) &&
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose") Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
) { ) {
@@ -646,7 +646,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
); );
let tab = this.tabContainer.findNextTab(aTab, { let tab = this.tabContainer.findNextTab(aTab, {
@@ -5677,7 +5827,7 @@ @@ -5697,7 +5847,7 @@
} }
if (tab) { if (tab) {
@@ -655,7 +655,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
// If no qualifying visible tab was found, see if there is a tab in // If no qualifying visible tab was found, see if there is a tab in
@@ -5698,7 +5848,7 @@ @@ -5718,7 +5868,7 @@
}); });
} }
@@ -664,7 +664,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
_blurTab(aTab) { _blurTab(aTab) {
@@ -6104,10 +6254,10 @@ @@ -6124,10 +6274,10 @@
SessionStore.deleteCustomTabValue(aTab, "hiddenBy"); SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
} }
@@ -677,7 +677,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
aTab.selected || aTab.selected ||
aTab.closing || aTab.closing ||
// Tabs that are sharing the screen, microphone or camera cannot be hidden. // Tabs that are sharing the screen, microphone or camera cannot be hidden.
@@ -6166,6 +6316,7 @@ @@ -6186,6 +6336,7 @@
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab * @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
*/ */
replaceTabWithWindow(aTab, aOptions) { replaceTabWithWindow(aTab, aOptions) {
@@ -685,7 +685,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (this.tabs.length == 1) { if (this.tabs.length == 1) {
return null; return null;
} }
@@ -6299,7 +6450,7 @@ @@ -6319,7 +6470,7 @@
* `true` if element is a `<tab-group>` * `true` if element is a `<tab-group>`
*/ */
isTabGroup(element) { isTabGroup(element) {
@@ -694,7 +694,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} }
/** /**
@@ -6375,8 +6526,8 @@ @@ -6404,8 +6555,8 @@
} }
// Don't allow mixing pinned and unpinned tabs. // Don't allow mixing pinned and unpinned tabs.
@@ -705,7 +705,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else { } else {
tabIndex = Math.max(tabIndex, this.pinnedTabCount); tabIndex = Math.max(tabIndex, this.pinnedTabCount);
} }
@@ -6402,10 +6553,16 @@ @@ -6431,10 +6582,16 @@
this.#handleTabMove( this.#handleTabMove(
element, element,
() => { () => {
@@ -724,7 +724,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
if (neighbor && this.isTab(element) && tabIndex > element._tPos) { if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
neighbor.after(element); neighbor.after(element);
} else { } else {
@@ -6463,23 +6620,28 @@ @@ -6492,23 +6649,28 @@
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) { #moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
if (this.isTabGroupLabel(targetElement)) { if (this.isTabGroupLabel(targetElement)) {
targetElement = targetElement.group; targetElement = targetElement.group;
@@ -759,7 +759,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else if (!element.pinned && targetElement && targetElement.pinned) { } else if (!element.pinned && targetElement && targetElement.pinned) {
// If the caller asks to move an unpinned element next to a pinned // If the caller asks to move an unpinned element next to a pinned
// tab, move the unpinned element to be the first unpinned element // tab, move the unpinned element to be the first unpinned element
@@ -6492,14 +6654,34 @@ @@ -6521,14 +6683,34 @@
// move the tab group right before the first unpinned tab. // move the tab group right before the first unpinned tab.
// 4. Moving a tab group and the first unpinned tab is grouped: // 4. Moving a tab group and the first unpinned tab is grouped:
// move the tab group right before the first unpinned tab's tab group. // move the tab group right before the first unpinned tab's tab group.
@@ -795,7 +795,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
element.pinned element.pinned
? this.tabContainer.pinnedTabsContainer ? this.tabContainer.pinnedTabsContainer
: this.tabContainer; : this.tabContainer;
@@ -6508,7 +6690,7 @@ @@ -6537,7 +6719,7 @@
element, element,
() => { () => {
if (moveBefore) { if (moveBefore) {
@@ -804,7 +804,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
} else if (targetElement) { } else if (targetElement) {
targetElement.after(element); targetElement.after(element);
} else { } else {
@@ -6580,10 +6762,10 @@ @@ -6607,10 +6789,10 @@
* @param {TabMetricsContext} [metricsContext] * @param {TabMetricsContext} [metricsContext]
*/ */
moveTabToGroup(aTab, aGroup, metricsContext) { moveTabToGroup(aTab, aGroup, metricsContext) {
@@ -817,7 +817,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
return; return;
} }
if (aTab.group && aTab.group.id === aGroup.id) { if (aTab.group && aTab.group.id === aGroup.id) {
@@ -6613,6 +6795,7 @@ @@ -6656,6 +6838,7 @@
let state = { let state = {
tabIndex: tab._tPos, tabIndex: tab._tPos,
@@ -825,7 +825,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
}; };
if (tab.visible) { if (tab.visible) {
state.elementIndex = tab.elementIndex; state.elementIndex = tab.elementIndex;
@@ -6639,7 +6822,7 @@ @@ -6682,7 +6865,7 @@
let changedTabGroup = let changedTabGroup =
previousTabState.tabGroupId != currentTabState.tabGroupId; previousTabState.tabGroupId != currentTabState.tabGroupId;
@@ -834,7 +834,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
tab.dispatchEvent( tab.dispatchEvent(
new CustomEvent("TabMove", { new CustomEvent("TabMove", {
bubbles: true, bubbles: true,
@@ -6676,6 +6859,10 @@ @@ -6723,6 +6906,10 @@
moveActionCallback(); moveActionCallback();
@@ -845,7 +845,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Clear tabs cache after moving nodes because the order of tabs may have // Clear tabs cache after moving nodes because the order of tabs may have
// changed. // changed.
this.tabContainer._invalidateCachedTabs(); this.tabContainer._invalidateCachedTabs();
@@ -7576,7 +7763,7 @@ @@ -7623,7 +7810,7 @@
// preventDefault(). It will still raise the window if appropriate. // preventDefault(). It will still raise the window if appropriate.
break; break;
} }
@@ -854,7 +854,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
window.focus(); window.focus();
aEvent.preventDefault(); aEvent.preventDefault();
break; break;
@@ -7593,7 +7780,6 @@ @@ -7640,7 +7827,6 @@
} }
case "TabGroupCollapse": case "TabGroupCollapse":
aEvent.target.tabs.forEach(tab => { aEvent.target.tabs.forEach(tab => {
@@ -862,7 +862,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
}); });
break; break;
case "TabGroupCreateByUser": case "TabGroupCreateByUser":
@@ -8542,6 +8728,7 @@ @@ -8589,6 +8775,7 @@
aWebProgress.isTopLevel aWebProgress.isTopLevel
) { ) {
this.mTab.setAttribute("busy", "true"); this.mTab.setAttribute("busy", "true");
@@ -870,7 +870,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
gBrowser._tabAttrModified(this.mTab, ["busy"]); gBrowser._tabAttrModified(this.mTab, ["busy"]);
this.mTab._notselectedsinceload = !this.mTab.selected; this.mTab._notselectedsinceload = !this.mTab.selected;
} }
@@ -9543,7 +9730,7 @@ var TabContextMenu = { @@ -9623,7 +9810,7 @@ var TabContextMenu = {
); );
contextUnpinSelectedTabs.hidden = contextUnpinSelectedTabs.hidden =
!this.contextTab.pinned || !this.multiselected; !this.contextTab.pinned || !this.multiselected;
@@ -879,7 +879,7 @@ index c0eafd4faf8d57b8486c5bf8917375850ec8147e..cead9e6e52f7354e20b8b64ad06a075e
// Build Ask Chat items // Build Ask Chat items
TabContextMenu.GenAI.buildTabMenu( TabContextMenu.GenAI.buildTabMenu(
document.getElementById("context_askChat"), document.getElementById("context_askChat"),
@@ -9863,6 +10050,7 @@ var TabContextMenu = { @@ -9943,6 +10130,7 @@ var TabContextMenu = {
) )
); );
} else { } else {

View File

@@ -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 aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 100644 index 394b2af2e187b82bb3e98ebcdc6e66b63036e20d..4757555c7654a14578a5d057323057ebc71c2f5f 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 @@
@@ -87,7 +87,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
resetDefaultGroupName = () => { resetDefaultGroupName = () => {
this.#defaultGroupName = ""; this.#defaultGroupName = "";
@@ -227,7 +248,10 @@ @@ -211,7 +232,10 @@
} }
}); });
} }
@@ -99,7 +99,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
} }
get color() { get color() {
@@ -321,6 +345,9 @@ @@ -305,6 +329,9 @@
} }
set collapsed(val) { set collapsed(val) {
@@ -109,7 +109,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
if (!!val == this.collapsed) { if (!!val == this.collapsed) {
return; return;
} }
@@ -406,7 +433,6 @@ @@ -391,7 +418,6 @@
tabGroupName, tabGroupName,
}) })
.then(result => { .then(result => {
@@ -117,11 +117,14 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
}); });
} }
@@ -425,7 +451,57 @@ @@ -466,13 +492,57 @@
* @returns {MozTabbrowserTab[]} * @returns {MozTabbrowserTab[]}
*/ */
get tabs() { get tabs() {
- return Array.from(this.children).filter(node => node.matches("tab")); - let childrenArray = Array.from(this.children);
- for (let i = childrenArray.length - 1; i >= 0; i--) {
- if (childrenArray[i].tagName == "tab-split-view-wrapper") {
- childrenArray.splice(i, 1, ...childrenArray[i].tabs);
+ // add other group tabs if they are under this group + // add other group tabs if they are under this group
+ let childs = Array.from(this.querySelector(".tab-group-container")?.children ?? []); + let childs = Array.from(this.querySelector(".tab-group-container")?.children ?? []);
+ const tabsCollect = []; + const tabsCollect = [];
@@ -166,8 +169,9 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
+ currentGroup = currentGroup?.group; + currentGroup = currentGroup?.group;
+ if (currentGroup.collapsed) { + if (currentGroup.collapsed) {
+ return false; + return false;
+ } }
+ } }
- return childrenArray.filter(node => node.matches("tab"));
+ return true; + return true;
+ } + }
+ +
@@ -176,7 +180,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
} }
/** /**
@@ -506,7 +582,6 @@ @@ -553,7 +623,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 +188,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
} }
let tabToMove = let tabToMove =
this.ownerGlobal === tab.ownerGlobal this.ownerGlobal === tab.ownerGlobal
@@ -569,7 +644,7 @@ @@ -616,7 +685,7 @@
*/ */
on_click(event) { on_click(event) {
let isToggleElement = let isToggleElement =
@@ -193,7 +197,7 @@ index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41f
event.target === this.#overflowCountLabel; event.target === this.#overflowCountLabel;
if (isToggleElement && event.button === 0) { if (isToggleElement && event.button === 0) {
event.preventDefault(); event.preventDefault();
@@ -638,5 +713,6 @@ @@ -687,5 +756,6 @@
} }
} }

View File

@@ -1,8 +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 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2a736d9f8 100644 index 6b6c04599fe80983d13d2069ca62b99d8ad70271..a765f2decc3a565226ac8793422474052f476573 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
@@ -411,7 +411,7 @@ @@ -436,7 +436,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 ||
@@ -11,7 +11,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
event.composedTarget.localName == "toolbarbutton" event.composedTarget.localName == "toolbarbutton"
) { ) {
return; return;
@@ -492,7 +492,6 @@ @@ -517,7 +517,6 @@
}); });
} }
} else if (isTabGroupLabel(event.target)) { } else if (isTabGroupLabel(event.target)) {
@@ -19,7 +19,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} else if ( } else if (
event.originalTarget.closest("scrollbox") && event.originalTarget.closest("scrollbox") &&
!Services.prefs.getBoolPref( !Services.prefs.getBoolPref(
@@ -528,6 +527,9 @@ @@ -553,6 +552,9 @@
} }
on_keydown(event) { on_keydown(event) {
@@ -29,15 +29,15 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
let { altKey, shiftKey } = event; let { altKey, shiftKey } = event;
let [accel, nonAccel] = let [accel, nonAccel] =
AppConstants.platform == "macosx" AppConstants.platform == "macosx"
@@ -720,7 +722,6 @@ @@ -747,7 +749,6 @@
this.toggleAttribute("overflow", true);
this._updateCloseButtons(); this._updateCloseButtons();
- this._handleTabSelect(true);
if (!this.#animatingGroups.size) {
- this._handleTabSelect(true);
}
document document
.getElementById("tab-preview-panel") @@ -808,7 +809,7 @@
@@ -780,7 +781,7 @@
} }
get newTabButton() { get newTabButton() {
@@ -46,7 +46,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} }
get verticalMode() { get verticalMode() {
@@ -796,6 +797,7 @@ @@ -824,6 +825,7 @@
} }
get overflowing() { get overflowing() {
@@ -54,7 +54,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
return this.hasAttribute("overflow"); return this.hasAttribute("overflow");
} }
@@ -809,29 +811,54 @@ @@ -837,29 +839,54 @@
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") { if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
pinnedChildren.pop(); pinnedChildren.pop();
} }
@@ -119,7 +119,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} }
/** /**
@@ -898,17 +925,10 @@ @@ -926,17 +953,10 @@
let elementIndex = 0; let elementIndex = 0;
@@ -139,7 +139,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
if (isTab(child) && child.visible) { if (isTab(child) && child.visible) {
child.elementIndex = elementIndex++; child.elementIndex = elementIndex++;
focusableItems.push(child); focusableItems.push(child);
@@ -916,11 +936,13 @@ @@ -944,11 +964,13 @@
child.labelElement.elementIndex = elementIndex++; child.labelElement.elementIndex = elementIndex++;
focusableItems.push(child.labelElement); focusableItems.push(child.labelElement);
@@ -154,7 +154,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} else if (child.tagName == "tab-split-view-wrapper") { } else if (child.tagName == "tab-split-view-wrapper") {
let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible); let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible);
visibleTabsInSplitView.forEach(tab => { visibleTabsInSplitView.forEach(tab => {
@@ -964,6 +986,7 @@ @@ -992,6 +1014,7 @@
_invalidateCachedTabs() { _invalidateCachedTabs() {
this.#allTabs = null; this.#allTabs = null;
this._invalidateCachedVisibleTabs(); this._invalidateCachedVisibleTabs();
@@ -162,7 +162,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} }
_invalidateCachedVisibleTabs() { _invalidateCachedVisibleTabs() {
@@ -1067,7 +1090,7 @@ @@ -1095,7 +1118,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.
@@ -171,7 +171,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
} }
node.before(tab); node.before(tab);
@@ -1162,7 +1185,7 @@ @@ -1193,7 +1216,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.
@@ -180,7 +180,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
const newTab2 = this.newTabButton; const newTab2 = this.newTabButton;
const newTabVertical = document.getElementById( const newTabVertical = document.getElementById(
"vertical-tabs-newtab-button" "vertical-tabs-newtab-button"
@@ -1263,8 +1286,10 @@ @@ -1294,8 +1317,10 @@
*/ */
_handleTabSelect(aInstant) { _handleTabSelect(aInstant) {
let selectedTab = this.selectedItem; let selectedTab = this.selectedItem;
@@ -191,7 +191,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
selectedTab._notselectedsinceload = false; selectedTab._notselectedsinceload = false;
} }
@@ -1273,7 +1298,7 @@ @@ -1304,7 +1329,7 @@
* @param {boolean} [shouldScrollInstantly=false] * @param {boolean} [shouldScrollInstantly=false]
*/ */
#ensureTabIsVisible(tab, shouldScrollInstantly = false) { #ensureTabIsVisible(tab, shouldScrollInstantly = false) {
@@ -200,7 +200,7 @@ index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2
if (arrowScrollbox?.overflowing) { if (arrowScrollbox?.overflowing) {
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly); arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
} }
@@ -1406,7 +1431,7 @@ @@ -1437,7 +1462,7 @@
} }
_notifyBackgroundTab(aTab) { _notifyBackgroundTab(aTab) {

View File

@@ -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 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 100644 index 09c1a7d4e156fe5e606f097277420333efe88976..f31e183e7b92c616d81dae509ef0448c4d507cc7 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
@@ -299,7 +299,6 @@ export class UrlbarController { @@ -296,7 +296,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 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bf
this.view.isOpen && this.view.isOpen &&
event.ctrlKey && event.ctrlKey &&
(event.key == "n" || event.key == "p") (event.key == "n" || event.key == "p")
@@ -443,6 +442,8 @@ export class UrlbarController { @@ -445,6 +444,8 @@ export class UrlbarController {
}); });
} }
event.preventDefault(); event.preventDefault();

View File

@@ -1,10 +1,10 @@
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 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 100644 index 6ad064710da20f7a13fda3517780c2f38b3d2865..58a01eef024d8b9992068a6a5b7be68f5f45accf 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
@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () => @@ -68,6 +68,13 @@ const lazy = XPCOMUtils.declareLazy({
lazy.UrlbarUtils.getLogger({ prefix: "Input" }) logger: () => lazy.UrlbarUtils.getLogger({ prefix: "Input" }),
); });
+XPCOMUtils.defineLazyPreferenceGetter( +XPCOMUtils.defineLazyPreferenceGetter(
+ lazy, + lazy,
@@ -16,7 +16,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history"; const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
const UNLIMITED_MAX_RESULTS = 99; const UNLIMITED_MAX_RESULTS = 99;
@@ -454,7 +461,16 @@ export class UrlbarInput { @@ -445,7 +452,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 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
this._suppressPrimaryAdjustment = false; this._suppressPrimaryAdjustment = false;
} }
@@ -530,6 +546,10 @@ export class UrlbarInput { @@ -521,6 +537,10 @@ export class UrlbarInput {
hideSearchTerms = false, hideSearchTerms = false,
isSameDocument = false isSameDocument = false
) { ) {
@@ -41,10 +41,10 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
+ return; + return;
+ } + }
+ +
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"
@@ -807,8 +827,16 @@ export class UrlbarInput { @@ -798,8 +818,16 @@ export class UrlbarInput {
return; return;
} }
} }
@@ -62,7 +62,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
} }
/** /**
@@ -1224,7 +1252,11 @@ export class UrlbarInput { @@ -1215,7 +1243,11 @@ export class UrlbarInput {
} }
if (!this.#providesSearchMode(result)) { if (!this.#providesSearchMode(result)) {
@@ -75,7 +75,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
} }
if (isCanonized) { if (isCanonized) {
@@ -2347,6 +2379,32 @@ export class UrlbarInput { @@ -2335,6 +2367,32 @@ export class UrlbarInput {
await this.#updateLayoutBreakoutDimensions(); await this.#updateLayoutBreakoutDimensions();
} }
@@ -108,7 +108,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
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
@@ -2361,6 +2419,13 @@ export class UrlbarInput { @@ -2349,6 +2407,13 @@ export class UrlbarInput {
this.setAttribute("breakout-extend", "true"); this.setAttribute("breakout-extend", "true");
@@ -122,7 +122,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
// 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")) {
@@ -2380,6 +2445,24 @@ export class UrlbarInput { @@ -2368,6 +2433,24 @@ export class UrlbarInput {
return; return;
} }
@@ -147,7 +147,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
this.removeAttribute("breakout-extend"); this.removeAttribute("breakout-extend");
this.#updateTextboxPosition(); this.#updateTextboxPosition();
} }
@@ -2410,7 +2493,7 @@ export class UrlbarInput { @@ -2398,7 +2481,7 @@ export class UrlbarInput {
forceUnifiedSearchButtonAvailable = false forceUnifiedSearchButtonAvailable = false
) { ) {
let prevState = this.getAttribute("pageproxystate"); let prevState = this.getAttribute("pageproxystate");
@@ -156,7 +156,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
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);
@@ -2646,10 +2729,12 @@ export class UrlbarInput { @@ -2635,10 +2718,12 @@ export class UrlbarInput {
return; return;
} }
this.textbox.style.top = px( this.textbox.style.top = px(
@@ -169,7 +169,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
); );
} }
@@ -2709,9 +2794,10 @@ export class UrlbarInput { @@ -2698,9 +2783,10 @@ export class UrlbarInput {
return; return;
} }
@@ -181,7 +181,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
); );
this.textbox.style.setProperty( this.textbox.style.setProperty(
"--urlbar-height", "--urlbar-height",
@@ -3144,6 +3230,7 @@ export class UrlbarInput { @@ -3134,6 +3220,7 @@ export class UrlbarInput {
} }
_toggleActionOverride(event) { _toggleActionOverride(event) {
@@ -189,24 +189,26 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
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 ||
@@ -3248,7 +3335,7 @@ export class UrlbarInput { @@ -3237,8 +3324,8 @@ export class UrlbarInput {
if (!this.#isAddressbar) {
return val; return val;
} }
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") - let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
- ? lazy.BrowserUIUtils.trimURL(val) - ? lazy.BrowserUIUtils.trimURL(val)
+ let trimmedValue = lazy.UrlbarPrefs.get("trimURLs") && this._zenTrimURL
+ ? this._zenTrimURL(val) + ? this._zenTrimURL(val)
: 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.
@@ -3552,6 +3639,7 @@ export class UrlbarInput { @@ -3544,6 +3631,7 @@ export class UrlbarInput {
resultDetails = null, resultDetails = null,
browser = this.window.gBrowser.selectedBrowser browser = this.window.gBrowser.selectedBrowser
) { ) {
+ openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere); + openUILinkWhere = this.window.gZenUIManager.getOpenUILinkWhere(url, browser, openUILinkWhere);
if (this.isAddressbar) { if (this.#isAddressbar) {
this.#prepareAddressbarLoad( this.#prepareAddressbarLoad(
url, url,
@@ -3659,6 +3747,10 @@ export class UrlbarInput { @@ -3651,6 +3739,10 @@ export class UrlbarInput {
} }
reuseEmpty = true; reuseEmpty = true;
} }
@@ -217,7 +219,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
if ( if (
where == "tab" && where == "tab" &&
reuseEmpty && reuseEmpty &&
@@ -3666,6 +3758,9 @@ export class UrlbarInput { @@ -3658,6 +3750,9 @@ export class UrlbarInput {
) { ) {
where = "current"; where = "current";
} }
@@ -227,7 +229,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
return where; return where;
} }
@@ -3923,6 +4018,7 @@ export class UrlbarInput { @@ -3909,6 +4004,7 @@ export class UrlbarInput {
this.setResultForCurrentValue(null); this.setResultForCurrentValue(null);
this.handleCommand(); this.handleCommand();
this.controller.clearLastQueryContextCache(); this.controller.clearLastQueryContextCache();
@@ -235,7 +237,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
this._suppressStartQuery = false; this._suppressStartQuery = false;
}); });
@@ -3930,7 +4026,6 @@ export class UrlbarInput { @@ -3916,7 +4012,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 +245,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
let controller = let controller =
this.document.commandDispatcher.getControllerForCommand("cmd_paste"); this.document.commandDispatcher.getControllerForCommand("cmd_paste");
@@ -4040,7 +4135,11 @@ export class UrlbarInput { @@ -4026,7 +4121,11 @@ export class UrlbarInput {
if (!engineName && !source && !this.hasAttribute("searchmode")) { if (!engineName && !source && !this.hasAttribute("searchmode")) {
return; return;
} }
@@ -256,7 +258,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
if (this._searchModeIndicatorTitle) { if (this._searchModeIndicatorTitle) {
this._searchModeIndicatorTitle.textContent = ""; this._searchModeIndicatorTitle.textContent = "";
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id"); this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
@@ -4351,6 +4450,7 @@ export class UrlbarInput { @@ -4338,6 +4437,7 @@ export class UrlbarInput {
this.document.l10n.setAttributes( this.document.l10n.setAttributes(
this.inputField, this.inputField,
@@ -264,7 +266,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
l10nId, l10nId,
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
); );
@@ -4462,6 +4562,11 @@ export class UrlbarInput { @@ -4449,6 +4549,11 @@ export class UrlbarInput {
} }
_on_click(event) { _on_click(event) {
@@ -276,7 +278,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
if ( if (
event.target == this.inputField || event.target == this.inputField ||
event.target == this._inputContainer event.target == this._inputContainer
@@ -4534,7 +4639,7 @@ export class UrlbarInput { @@ -4521,7 +4626,7 @@ export class UrlbarInput {
} }
} }
@@ -285,7 +287,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
this.view.autoOpen({ event }); this.view.autoOpen({ event });
} else { } else {
if (this._untrimOnFocusAfterKeydown) { if (this._untrimOnFocusAfterKeydown) {
@@ -4574,9 +4679,16 @@ export class UrlbarInput { @@ -4561,9 +4666,16 @@ export class UrlbarInput {
} }
_on_mousedown(event) { _on_mousedown(event) {
@@ -303,7 +305,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
if ( if (
event.target != this.inputField && event.target != this.inputField &&
@@ -4587,6 +4699,10 @@ export class UrlbarInput { @@ -4574,6 +4686,10 @@ export class UrlbarInput {
this.focusedViaMousedown = !this.focused; this.focusedViaMousedown = !this.focused;
this._preventClickSelectsAll = this.focused; this._preventClickSelectsAll = this.focused;
@@ -314,7 +316,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
// 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().
@@ -4622,7 +4738,7 @@ export class UrlbarInput { @@ -4609,7 +4725,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 +325,7 @@ index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d214203575
break; break;
} }
@@ -4939,7 +5055,7 @@ export class UrlbarInput { @@ -4930,7 +5046,7 @@ export class UrlbarInput {
// When we are in actions search mode we can show more results so // When we are in actions search mode we can show more results so
// increase the limit. // increase the limit.
let maxResults = let maxResults =

View File

@@ -1,8 +1,8 @@
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 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644 index 0cc0db4889d66872bce2aa775a79a4c68e8cec51..604106e328843b3a6eb0922cc8663474ddb008f4 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 }) { @@ -763,6 +763,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
*/ */
let rootGroup = { let rootGroup = {
children: [ children: [

View File

@@ -1,8 +1,8 @@
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 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644 index 4db61038e5e476bad3a61dbdb707e5222c1f08f8..9eca13d9cfac3b762917aaaa942267effb743cf7 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 = "") { @@ -45,11 +45,13 @@ function defaultQuery(conditions = "") {
let query = ` let query = `
SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count, SELECT h.url, h.title, ${SQL_BOOKMARK_TAGS_FRAGMENT}, h.id, t.open_count,
${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId, ${lazy.PAGES_FRECENCY_FIELD} AS frecency, t.userContextId,
@@ -17,7 +17,7 @@ index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58b
WHERE ( WHERE (
(:switchTabsEnabled AND t.open_count > 0) OR (:switchTabsEnabled AND t.open_count > 0) OR
${lazy.PAGES_FRECENCY_FIELD} <> 0 ${lazy.PAGES_FRECENCY_FIELD} <> 0
@@ -62,7 +64,7 @@ function defaultQuery(conditions = "") { @@ -63,7 +65,7 @@ function defaultQuery(conditions = "") {
:matchBehavior, :searchBehavior, NULL) :matchBehavior, :searchBehavior, NULL)
ELSE ELSE
AUTOCOMPLETE_MATCH(:searchString, h.url, AUTOCOMPLETE_MATCH(:searchString, h.url,
@@ -26,7 +26,7 @@ index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58b
h.visit_count, h.typed, h.visit_count, h.typed,
0, t.open_count, 0, t.open_count,
:matchBehavior, :searchBehavior, NULL) :matchBehavior, :searchBehavior, NULL)
@@ -1126,11 +1128,13 @@ Search.prototype = { @@ -1176,11 +1178,13 @@ class Search {
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime() ? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
: undefined; : undefined;
let tabGroup = row.getResultByName("groupId"); let tabGroup = row.getResultByName("groupId");

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
index b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644 index 15dd29152cf349b5ed23f1bae0a74a8d7dbe4c3d..f44f5dd87f778f432b0028969ca5732305c98915 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
@@ -873,6 +873,7 @@ export class Query { @@ -883,6 +883,7 @@ export class Query {
if ( if (
result.heuristic && result.heuristic &&
this.context.searchMode && this.context.searchMode &&

View File

@@ -1,8 +1,8 @@
diff --git a/browser/components/urlbar/UrlbarResult.sys.mjs b/browser/components/urlbar/UrlbarResult.sys.mjs diff --git a/browser/components/urlbar/UrlbarResult.sys.mjs b/browser/components/urlbar/UrlbarResult.sys.mjs
index 0882c0a01d17184cadb56aa1236ca97adf7f866b..4a5842eda6280205b96f9aee9b6f3b49fac7077c 100644 index 99f331b2c6e4f8eda1bda02cbc6bc6d3f9f4a572..d504632a3f689aefb7d22b863649cb1a8bb3c6a4 100644
--- a/browser/components/urlbar/UrlbarResult.sys.mjs --- a/browser/components/urlbar/UrlbarResult.sys.mjs
+++ b/browser/components/urlbar/UrlbarResult.sys.mjs +++ b/browser/components/urlbar/UrlbarResult.sys.mjs
@@ -172,6 +172,10 @@ export class UrlbarResult { @@ -179,6 +179,10 @@ export class UrlbarResult {
return this.#heuristic; return this.#heuristic;
} }

View File

@@ -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 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644 index 7e9ede3dae5c2099c45e0221ad1cb8ebd622fc39..f82db27dbd07961ad6af7dbe2cb5d79e5f7a9828 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
@@ -77,6 +77,7 @@ export var UrlbarUtils = { @@ -79,6 +79,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 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b03
}), }),
// Defines provider types. // Defines provider types.
@@ -136,6 +137,7 @@ export var UrlbarUtils = { @@ -138,6 +139,7 @@ export var UrlbarUtils = {
OTHER_NETWORK: 6, OTHER_NETWORK: 6,
ADDON: 7, ADDON: 7,
ACTIONS: 8, ACTIONS: 8,
@@ -18,7 +18,7 @@ index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b03
}), }),
// Per-result exposure telemetry. // Per-result exposure telemetry.
@@ -547,6 +549,8 @@ export var UrlbarUtils = { @@ -549,6 +551,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;

View File

@@ -1,10 +1,28 @@
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 beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644 index 307b3cac259c05e616cf7d5eb1ce50a146550cd9..72252a6363154b6c5f926bf2acf3282e8396d2ad 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 { @@ -76,7 +76,7 @@ export class UrlbarValueFormatter {
this.window.requestAnimationFrame(() => { if (this.#updateInstance != instance) {
if (instance == this._resizeInstance) { return;
}
- this.#formattingApplied = this.#formatURL() || this.#formatSearchAlias();
+ this.#formattingApplied = this._formatURL() || this.#formatSearchAlias();
});
}
@@ -370,7 +370,7 @@ export class UrlbarValueFormatter {
* @returns {boolean}
* True if formatting was applied and false if not.
*/
- #formatURL() {
+ _formatURL() {
let urlMetaData = this.#getUrlMetaData();
if (!urlMetaData) {
return false;
@@ -639,6 +639,7 @@ export class UrlbarValueFormatter {
this.#window.requestAnimationFrame(() => {
if (instance == this.#resizeInstance) {
this.#ensureFormattedHostVisible(); this.#ensureFormattedHostVisible();
+ this._formatURL(); + this._formatURL();
} }

View File

@@ -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 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 100644 index c58bc4871fbfb5ca924df822a09d783f21db616a..68fd73055d30ec4f4128fb8639369f07b167955a 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 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2e
// 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.
@@ -2751,6 +2751,8 @@ export class UrlbarView { @@ -2855,6 +2855,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 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2e
if (element != row) { if (element != row) {
row?.toggleAttribute("descendant-selected", true); row?.toggleAttribute("descendant-selected", true);
} }
@@ -3232,7 +3234,7 @@ export class UrlbarView { @@ -3336,7 +3338,7 @@ export class UrlbarView {
} }
#enableOrDisableRowWrap() { #enableOrDisableRowWrap() {

View File

@@ -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 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 100644 index bd453da1b0eca276f319aadf451258e7db021365..da64e88eb58ba1b15c31034684f9d259339f4438 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
@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([ @@ -251,7 +251,7 @@ export const PREFS_CONFIG = new Map([
"showSponsoredTopSites", "showSponsoredTopSites",
{ {
title: "Show sponsored top sites", title: "Show sponsored top sites",

View File

@@ -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 bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 100644 index 6bb2e64906d6fe173c9129dd9c9c80b5323416b1..9f1fb4764c8c13a02cf0d384cfa71cc16e3c8701 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
@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so @@ -373,17 +373,17 @@ bin/libfreebl_64int_3.so
; [MaintenanceService] ; [MaintenanceService]
; ;
#ifdef MOZ_MAINTENANCE_SERVICE #ifdef MOZ_MAINTENANCE_SERVICE

View File

@@ -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 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 100644 index c6bb41695d70d17e5691e0d1856b79f7111d5026..8a9393a79a60aca23f80fc989fe2ae333ba54e39 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 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad
# 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).
@@ -153,7 +153,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}" @@ -152,7 +152,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

View File

@@ -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 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 100755 index e877b4b8a8cc6fc233025d0b58de50a68ecb9fd9..9d7d9064d0b4c62a3de3b81e852b2b49170bf8a3 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
@@ -842,7 +842,7 @@ Section "-InstallEndCleanup" @@ -836,7 +836,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 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8
${EndIf} ${EndIf}
SectionEnd SectionEnd
@@ -1970,5 +1970,5 @@ FunctionEnd @@ -1964,5 +1964,5 @@ FunctionEnd
Function .onGUIEnd Function .onGUIEnd
${OnEndCommon} ${OnEndCommon}

View File

@@ -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 fd104f8ab0bd51d6a99c121b60e2695a54b0dfd0..9b117e5a1f5e8adac7d22cd65154529418fd2e5b index 4eecccea6e053073fafad35cc97b326f7d0f5162..e4d077415294d456539637868144331ea9a46753
--- 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
@@ -519,6 +519,7 @@ Section "Uninstall" @@ -514,6 +514,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"

View File

@@ -1,8 +1,8 @@
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 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410d016a5a3 100644 index a3a84f96e54e5b74ad15f3825b380c30c117695f..ca702841c1df404a6f270ac08f962c8a225549d8 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 = { @@ -542,7 +542,7 @@ export const URILoadingHelper = {
// page. If a load request bounces off for the currently selected tab, // page. If a load request bounces off for the currently selected tab,
// we'll open a new tab instead. // we'll open a new tab instead.
let tab = w.gBrowser.getTabForBrowser(targetBrowser); let tab = w.gBrowser.getTabForBrowser(targetBrowser);
@@ -11,7 +11,7 @@ index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410
where = "tab"; where = "tab";
targetBrowser = null; targetBrowser = null;
} else if ( } else if (
@@ -971,7 +971,7 @@ export const URILoadingHelper = { @@ -972,7 +972,7 @@ export const URILoadingHelper = {
ignoreQueryString || replaceQueryString, ignoreQueryString || replaceQueryString,
ignoreFragmentWhenComparing ignoreFragmentWhenComparing
); );
@@ -20,7 +20,7 @@ index 04d0b47099648cfd00e72ef260d44628718809ee..49cd0215778a33a80d1f45b8e2701410
for (let i = 0; i < browsers.length; i++) { for (let i = 0; i < browsers.length; i++) {
let browser = browsers[i]; let browser = browsers[i];
let browserCompare = cleanURL( let browserCompare = cleanURL(
@@ -1017,7 +1017,7 @@ export const URILoadingHelper = { @@ -1018,7 +1018,7 @@ export const URILoadingHelper = {
} }
if (!doAdopt) { if (!doAdopt) {

View File

@@ -1,5 +1,5 @@
diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css
index b0ec88f361399cea255ef8fb6c7f2b87779a8e04..5b0d0bd663c309be3ddd0e946e1681b66938ee4d 100644 index 646cf238ebfbd5ac1826cf47f578f66aa020199f..ba5a1950f683c4d8cb836ee9cd466c0b446f2241 100644
--- a/browser/themes/linux/browser.css --- a/browser/themes/linux/browser.css
+++ b/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css
@@ -14,7 +14,6 @@ @@ -14,7 +14,6 @@

View File

@@ -1,8 +1,8 @@
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 0a15e3d60d408f119bd03007567d5dd1fa178c36..443901657296d0d15a95e1d39e826b1c008aac4d 100644 index 79f62b14809196e6ac073b8e560331e96be5d990..dcec04606e78c66673fb602b6a986321d20e1d4c 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 @@ @@ -37,7 +37,7 @@
.titlebar-buttonbox { .titlebar-buttonbox {
&:-moz-locale-dir(ltr) { &:-moz-locale-dir(ltr) {

View File

@@ -1,5 +1,5 @@
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 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca26a4a5b8c 100644 index 3cecc295f3ac764ed07094021372d35107df78ed..760f8bdcff87a6b803b115b249269438a27f8d80 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 {
@@ -20,7 +20,7 @@ index 2b013ee77bb50db11e73152bd0265dd86e40b726..dc0ba2c8651470bcd81439953adbaca2
} }
/* Themes define a set of toolbox foreground and background colors which we /* Themes define a set of toolbox foreground and background colors which we
@@ -282,13 +280,13 @@ body { @@ -281,13 +279,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) {

View File

@@ -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 d542e962d42b17140888e299ed43a838047ee48c..806bc4f9d7b7557abf316a84858046e04c4f7ff5 100644 index 34e9206ff45592db2b1b24568f1f6f1bf16b4c3a..6fa3f13dd18f90bcc0c715c4896617fdfce4887e 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
@@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@

View File

@@ -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 6085ce0614c9ea7d650c9526b295953f46b30cb6..06b4af758d9ae033dd0b7436f08e6748047c8bbe 100644 index ff198352720d7935b497e43f3e6b8ca04905e885..63e09db981a7ae35b1bb2c610133f624e8f61b74 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
@@ -317,3 +317,5 @@ @@ -323,3 +323,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)

View File

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

View File

@@ -1,5 +1,5 @@
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 db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f23063dbd 100644 index 55f33b3f630ca0eea7e4bde19f9875802c8aec78..f11fdaab05baf85fe2b56fa07442ded3c9641abc 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
@@ -140,7 +140,6 @@ @@ -140,7 +140,6 @@
@@ -10,7 +10,7 @@ index db68a04d85c12a383ed33b459b9c8d942fe916f7..2941cf4010e24b31a3d9b2194fe9536f
} }
browser[type="content"] { browser[type="content"] {
@@ -323,7 +322,7 @@ @@ -377,7 +376,7 @@ split-view-footer {
.dialogStack { .dialogStack {
z-index: var(--browser-stack-z-index-dialog-stack); z-index: var(--browser-stack-z-index-dialog-stack);

View File

@@ -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 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7b8c4d3da 100644 index ffda4922c675f6159c825334cba9d49658d316ba..7b3d4d2b5c6d732a1d0074e05cc48131fe57c630 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 @@
@@ -8,5 +8,5 @@ index 259e11f3c9a761e158dc32a3ecb9ee90c11d27c6..c5e30314090fe8f33b37c809bcf871c7
-moz-window-shadow: none; -moz-window-shadow: none;
+ --panel-shadow-margin: 0; + --panel-shadow-margin: 0;
@media not (-moz-platform: macos) { @media not (-moz-platform: macos) {
font-weight: bold; font-weight: var(--font-weight-bold);
} }

View File

@@ -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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2bff889716 100644 index 8a4d3860b344e2dc2128cfc2b1673de582e19c7c..f8e108d2c1c71070375fdae12df432311b0081e1 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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
--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"] {
@@ -267,7 +267,6 @@ @@ -285,7 +285,6 @@
} }
:root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] { :root:not([uidensity="compact"], [sidebar-expand-on-hover]) &[pinned] {
@@ -31,7 +31,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
} }
&:is([selected], [multiselected]) { &:is([selected], [multiselected]) {
@@ -281,6 +280,7 @@ @@ -299,6 +298,7 @@
border-radius: inherit; border-radius: inherit;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
@@ -39,7 +39,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&::before { &::before {
position: absolute; position: absolute;
@@ -480,14 +480,11 @@ @@ -498,14 +498,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -504,10 +501,6 @@ @@ -522,10 +519,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
opacity: 0.5; opacity: 0.5;
/* Fade the favicon out */ /* Fade the favicon out */
transition-property: filter, opacity; transition-property: filter, opacity;
@@ -575,7 +568,7 @@ @@ -593,7 +586,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
} }
&[crashed] { &[crashed] {
@@ -583,7 +576,7 @@ @@ -601,7 +594,7 @@
} }
#tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]), #tabbrowser-tabs[orient="vertical"]:not([expanded]) &:not([crashed]),
@@ -84,7 +84,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&[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");
} }
@@ -640,7 +633,7 @@ @@ -658,7 +651,7 @@
} }
} }
@@ -93,7 +93,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&[crashed] { &[crashed] {
display: revert; display: revert;
} }
@@ -741,7 +734,7 @@ @@ -759,7 +752,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&:is([soundplaying], [muted], [activemedia-blocked]) { &:is([soundplaying], [muted], [activemedia-blocked]) {
display: flex; display: flex;
} }
@@ -1245,7 +1238,7 @@ tab-group { @@ -1446,7 +1439,7 @@ tab-group {
} }
#tabbrowser-tabs[orient="vertical"][expanded] { #tabbrowser-tabs[orient="vertical"][expanded] {
@@ -111,7 +111,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&[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);
} }
@@ -1692,7 +1685,7 @@ tab-group { @@ -1893,7 +1886,7 @@ tab-group {
} }
} }
@@ -120,7 +120,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
#vertical-tabs-newtab-button { #vertical-tabs-newtab-button {
appearance: none; appearance: none;
min-height: var(--tab-min-height); min-height: var(--tab-min-height);
@@ -1703,7 +1696,7 @@ tab-group { @@ -1904,7 +1897,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
} }
&:hover { &:hover {
@@ -1727,7 +1720,7 @@ tab-group { @@ -1928,7 +1921,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 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
margin-block: var(--tab-block-margin); margin-block: var(--tab-block-margin);
} }
@@ -1915,7 +1908,6 @@ tab-group { @@ -2116,7 +2109,6 @@ tab-group {
&:not([expanded]) { &:not([expanded]) {
.tabbrowser-tab[pinned] { .tabbrowser-tab[pinned] {
@@ -146,7 +146,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
} }
.tab-background { .tab-background {
@@ -1955,8 +1947,8 @@ tab-group { @@ -2156,8 +2148,8 @@ tab-group {
display: block; display: block;
position: absolute; position: absolute;
inset: auto; inset: auto;
@@ -157,7 +157,7 @@ index 13edfa4a6975828ab8dbdce15215f2e4ee548249..9fc2cd93235eb14d8d8d5a7611ec8f2b
&:-moz-window-inactive { &:-moz-window-inactive {
background-image: background-image:
@@ -2075,7 +2067,6 @@ toolbar:not(#TabsToolbar) #firefox-view-button { @@ -2276,7 +2268,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);
} }

View File

@@ -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 15dcfbc95afab9f28bd58379da0ef3e24d1b4595..73827cc5cffe47099feea36cbeffb547e955b37e 100644 index 45a87b96db14f64e0d8a3a3aae07f76c8f7e765f..d75f61cb2d27205aa2c47cf902d38e26098fbf2c 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 @@

View File

@@ -1,5 +1,5 @@
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 e0a05846eb0a329fc58b660f806912a1afe7c6c9..0d02e227a84ff4229104dd9cf9cd20f50a8d136c 100644 index d59a4e8514c3e8f16c2512abacf8e95d7e7255c5..5c226bed71203dc39723f07107b3de89e0d1776f 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 @@

View File

@@ -692,6 +692,10 @@
list-style-image: url('container-tab.svg') !important; list-style-image: url('container-tab.svg') !important;
} }
#PanelUI-zen-gradient-generator-color-toggle-algo {
list-style-image: url('algorithm.svg');
}
#appMenuClearRecentHistory { #appMenuClearRecentHistory {
list-style-image: url('edit-delete.svg') !important; list-style-image: url('edit-delete.svg') !important;
} }

View File

@@ -3,6 +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/.
#ifdef XP_WIN #ifdef XP_WIN
* skin/classic/browser/zen-icons/algorithm.svg (../shared/zen-icons/lin/algorithm.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)
@@ -131,6 +132,7 @@
* skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg) * skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg)
#endif #endif
#ifdef XP_MACOSX #ifdef XP_MACOSX
* skin/classic/browser/zen-icons/algorithm.svg (../shared/zen-icons/lin/algorithm.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)
@@ -259,6 +261,7 @@
* skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg) * skin/classic/browser/zen-icons/zoom-out.svg (../shared/zen-icons/lin/zoom-out.svg)
#endif #endif
#ifdef XP_LINUX #ifdef XP_LINUX
* skin/classic/browser/zen-icons/algorithm.svg (../shared/zen-icons/lin/algorithm.svg)
* skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg) * skin/classic/browser/zen-icons/arrow-down.svg (../shared/zen-icons/lin/arrow-down.svg)
* skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg) * skin/classic/browser/zen-icons/arrow-left.svg (../shared/zen-icons/lin/arrow-left.svg)
* skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg) * skin/classic/browser/zen-icons/arrow-right.svg (../shared/zen-icons/lin/arrow-right.svg)

View File

@@ -0,0 +1,5 @@
#filter dumbComments emptyLines substitution
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><g stroke-linecap="round" stroke-width="1.5" fill="none" stroke="context-fill" stroke-opacity="context-fill-opacity" stroke-linejoin="round" class="nc-icon-wrapper"><path d="M4.75 15.25C5.99264 15.25 7 14.2426 7 13C7 11.7574 5.99264 10.75 4.75 10.75C3.50736 10.75 2.5 11.7574 2.5 13C2.5 14.2426 3.50736 15.25 4.75 15.25Z"/><path d="M13.25 15.25C14.4926 15.25 15.5 14.2426 15.5 13C15.5 11.7574 14.4926 10.75 13.25 10.75C12.0074 10.75 11 11.7574 11 13C11 14.2426 12.0074 15.25 13.25 15.25Z"/><path d="M9 7.25C10.2426 7.25 11.25 6.24264 11.25 5C11.25 3.75736 10.2426 2.75 9 2.75C7.75736 2.75 6.75 3.75736 6.75 5C6.75 6.24264 7.75736 7.25 9 7.25Z"/></g></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M17.25,8.25h-1.292c-.146-1.369-.69-2.619-1.512-3.637l1.583-1.583c.293-.293,.293-.768,0-1.061s-.767-.294-1.061,0l-1.583,1.583c-1.018-.821-2.268-1.365-3.636-1.511V.75c0-.414-.336-.75-.75-.75s-.75,.336-.75,.75v1.292c-1.368,.146-2.618,.69-3.636,1.511l-1.583-1.583c-.293-.293-.768-.293-1.061,0s-.293,.768,0,1.061l1.583,1.583c-.821,1.018-1.365,2.268-1.511,3.637H.75c-.414,0-.75,.336-.75,.75s.336,.75,.75,.75h1.292c.146,1.369,.69,2.619,1.511,3.637l-1.583,1.583c-.293,.293-.293,.768,0,1.061,.146,.146,.338,.22,.53,.22,.191,0,.384-.073,.53-.22l1.583-1.583c1.018,.821,2.268,1.365,3.636,1.511v1.292c0,.414,.336,.75,.75,.75s.75-.336,.75-.75v-1.292c1.368-.146,2.618-.69,3.636-1.511l1.583,1.583c.146,.146,.338,.22,.53,.22s.384-.073,.53-.22c.293-.293,.293-.768,0-1.061l-1.583-1.583c.821-1.018,1.365-2.268,1.512-3.637h1.292c.414,0,.75-.336,.75-.75s-.336-.75-.75-.75Zm-11.25,1.75c-.552,0-1-.448-1-1s.448-1,1-1,1,.448,1,1-.448,1-1,1Zm3,2c-.828,0-1.5-.672-1.5-1.5,0-.276,.224-.5,.5-.5h2c.276,0,.5,.224,.5,.5,0,.828-.672,1.5-1.5,1.5Zm2-3c0-.552,.448-1,1-1s1,.448,1,1-.448,1-1,1-1-.448-1-1Z" fill="currentColor"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M17.25,8.25h-1.292c-.146-1.369-.69-2.619-1.512-3.637l1.583-1.583c.293-.293,.293-.768,0-1.061s-.767-.294-1.061,0l-1.583,1.583c-1.018-.821-2.268-1.365-3.636-1.511V.75c0-.414-.336-.75-.75-.75s-.75,.336-.75,.75v1.292c-1.368,.146-2.618,.69-3.636,1.511l-1.583-1.583c-.293-.293-.768-.293-1.061,0s-.293,.768,0,1.061l1.583,1.583c-.821,1.018-1.365,2.268-1.511,3.637H.75c-.414,0-.75,.336-.75,.75s.336,.75,.75,.75h1.292c.146,1.369,.69,2.619,1.511,3.637l-1.583,1.583c-.293,.293-.293,.768,0,1.061,.146,.146,.338,.22,.53,.22,.191,0,.384-.073,.53-.22l1.583-1.583c1.018,.821,2.268,1.365,3.636,1.511v1.292c0,.414,.336,.75,.75,.75s.75-.336,.75-.75v-1.292c1.368-.146,2.618-.69,3.636-1.511l1.583,1.583c.146,.146,.338,.22,.53,.22s.384-.073,.53-.22c.293-.293,.293-.768,0-1.061l-1.583-1.583c.821-1.018,1.365-2.268,1.512-3.637h1.292c.414,0,.75-.336,.75-.75s-.336-.75-.75-.75Zm-11.25,1.75c-.552,0-1-.448-1-1s.448-1,1-1,1,.448,1,1-.448,1-1,1Zm3,2c-.828,0-1.5-.672-1.5-1.5,0-.276,.224-.5,.5-.5h2c.276,0,.5,.224,.5,.5,0,.828-.672,1.5-1.5,1.5Zm2-3c0-.552,.448-1,1-1s1,.448,1,1-.448,1-1,1-1-.448-1-1Z" fill="context-fill"></path></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M16.705,10.223c-.246-.183-.578-.197-.838-.037-.868,.532-1.859,.813-2.867,.813-3.033,0-5.5-2.467-5.5-5.5,0-1.146,.354-2.247,1.023-3.186,.177-.249,.186-.581,.021-.839-.164-.258-.467-.386-.77-.334C3.994,1.847,1.25,5.152,1.25,9c0,4.411,3.589,8,8,8,3.638,0,6.819-2.461,7.735-5.986,.077-.296-.034-.609-.28-.791Z" fill="currentColor"></path><path d="M12.743,4.492l-.946-.315-.316-.947c-.102-.306-.609-.306-.711,0l-.316,.947-.946,.315c-.153,.051-.257,.194-.257,.356s.104,.305,.257,.356l.946,.315,.316,.947c.051,.153,.194,.256,.355,.256s.305-.104,.355-.256l.316-.947,.946-.315c.153-.051,.257-.194,.257-.356s-.104-.305-.257-.356Z" fill="currentColor" data-color="color-2"></path><circle cx="14.25" cy="7.75" r=".75" fill="currentColor" data-color="color-2"></circle></svg> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M16.705,10.223c-.246-.183-.578-.197-.838-.037-.868,.532-1.859,.813-2.867,.813-3.033,0-5.5-2.467-5.5-5.5,0-1.146,.354-2.247,1.023-3.186,.177-.249,.186-.581,.021-.839-.164-.258-.467-.386-.77-.334C3.994,1.847,1.25,5.152,1.25,9c0,4.411,3.589,8,8,8,3.638,0,6.819-2.461,7.735-5.986,.077-.296-.034-.609-.28-.791Z" fill="context-fill"></path><path d="M12.743,4.492l-.946-.315-.316-.947c-.102-.306-.609-.306-.711,0l-.316,.947-.946,.315c-.153,.051-.257,.194-.257,.356s.104,.305,.257,.356l.946,.315,.316,.947c.051,.153,.194,.256,.355,.256s.305-.104,.355-.256l.316-.947,.946-.315c.153-.051,.257-.194,.257-.356s-.104-.305-.257-.356Z" fill="currentColor" data-color="color-2"></path><circle cx="14.25" cy="7.75" r=".75" fill="currentColor" data-color="color-2"></circle></svg>

View File

@@ -2,4 +2,4 @@
# This Source Code Form is subject to the terms of the Mozilla Public # This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this # License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/. # file, You can obtain one at http://mozilla.org/MPL/2.0/.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M3.025,5.623c.068,.204,.26,.342,.475,.342s.406-.138,.475-.342l.421-1.263,1.263-.421c.204-.068,.342-.259,.342-.474s-.138-.406-.342-.474l-1.263-.421-.421-1.263c-.137-.408-.812-.408-.949,0l-.421,1.263-1.263,.421c-.204,.068-.342,.259-.342,.474s.138,.406,.342,.474l1.263,.421,.421,1.263Z" fill="currentColor" data-color="color-2"></path><path d="M16.525,8.803l-4.535-1.793-1.793-4.535c-.227-.572-1.168-.572-1.395,0l-1.793,4.535-4.535,1.793c-.286,.113-.475,.39-.475,.697s.188,.584,.475,.697l4.535,1.793,1.793,4.535c.113,.286,.39,.474,.697,.474s.584-.188,.697-.474l1.793-4.535,4.535-1.793c.286-.113,.475-.39,.475-.697s-.188-.584-.475-.697Z" fill="currentColor"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="18px" height="18px" viewBox="0 0 18 18"><path d="M3.025,5.623c.068,.204,.26,.342,.475,.342s.406-.138,.475-.342l.421-1.263,1.263-.421c.204-.068,.342-.259,.342-.474s-.138-.406-.342-.474l-1.263-.421-.421-1.263c-.137-.408-.812-.408-.949,0l-.421,1.263-1.263,.421c-.204,.068-.342,.259-.342,.474s.138,.406,.342,.474l1.263,.421,.421,1.263Z" fill="context-fill" data-color="color-2"></path><path d="M16.525,8.803l-4.535-1.793-1.793-4.535c-.227-.572-1.168-.572-1.395,0l-1.793,4.535-4.535,1.793c-.286,.113-.475,.39-.475,.697s.188,.584,.475,.697l4.535,1.793,1.793,4.535c.113,.286,.39,.474,.697,.474s.584-.188,.697-.474l1.793-4.535,4.535-1.793c.286-.113,.475-.39,.475-.697s-.188-.584-.475-.697Z" fill="currentColor"></path></svg>

View File

@@ -1,8 +1,8 @@
diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css
index e1a79cd22180738d2ca16e9a6c5591499d337325..d36996359bfa4dd7d98c4f5aeb192c7b144339bb 100644 index b114781254018a27cd559c28d5d469fbab8673b5..79e6e21dd6e0a63237850bd315558540f050793c 100644
--- a/browser/themes/windows/browser.css --- a/browser/themes/windows/browser.css
+++ b/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css
@@ -31,7 +31,6 @@ @@ -39,7 +39,6 @@
/* stylelint-disable-next-line media-query-no-invalid */ /* stylelint-disable-next-line media-query-no-invalid */
@media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) { @media -moz-pref("widget.windows.mica.toplevel-backdrop", 2) {
/* For acrylic, do the same we do for popups to guarantee some contrast */ /* For acrylic, do the same we do for popups to guarantee some contrast */
@@ -10,7 +10,7 @@ index e1a79cd22180738d2ca16e9a6c5591499d337325..d36996359bfa4dd7d98c4f5aeb192c7b
} }
/* Using a semitransparent background preserves the tinting from the backdrop. /* Using a semitransparent background preserves the tinting from the backdrop.
@@ -60,14 +59,13 @@ @@ -68,14 +67,13 @@
} }
/* This is needed for Windows 10, see bug 1961257 */ /* This is needed for Windows 10, see bug 1961257 */

View File

@@ -1,5 +1,5 @@
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 a0026f953e8383741221d60ed5c02d0c12740f09..fd5c49d0b8997f29d3dee8dc23e2c373341eb972 100644 index 76c58a23422b923e191870f27090c7fc6d63884e..b19f47d31195774cec2c7e67903c892aa1329f3d 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
@@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [ @@ -342,6 +342,7 @@ exports.ANIMATION_TYPE_FOR_LONGHANDS = [

View File

@@ -1,8 +1,8 @@
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 7d26af162be5620649ff36d7cf7d3835a8ac7a20..c0fbd46c22f1eacc82058919714174d15e8106f1 100644 index 50fd07c1365ad25dc31c806f11751368f0d27a46..e26e90ece2d5dc42312f95661b5a38eec3556986 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 = { @@ -829,6 +829,7 @@ DevToolsStartup.prototype = {
// account (see bug 832984). // account (see bug 832984).
const mainKeyset = doc.getElementById("mainKeyset"); const mainKeyset = doc.getElementById("mainKeyset");
mainKeyset.parentNode.insertBefore(keyset, mainKeyset); mainKeyset.parentNode.insertBefore(keyset, mainKeyset);

View File

@@ -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 625640eef45baba74255c00c603f0834e1f0aa2c..8b7893cf3848edf9121f7cbefcc3a1c76894fa37 100644 index 49779b7cc79a602e764c8346e17a02310808aab8..1b1000cf7177bd83ca6d6c484a1c3b48c7216fc9 100644
--- a/docshell/base/nsAboutRedirector.cpp --- a/docshell/base/nsAboutRedirector.cpp
+++ b/docshell/base/nsAboutRedirector.cpp +++ b/docshell/base/nsAboutRedirector.cpp
@@ -118,7 +118,7 @@ static const RedirEntry kRedirMap[] = { @@ -117,7 +117,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

View File

@@ -1,8 +1,8 @@
diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp diff --git a/dom/base/Document.cpp b/dom/base/Document.cpp
index 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a58ba2cb5 100644 index 5a890d76ef8398c1a8dc6d84a6c43ec7e2b7c39e..aa25c68e36010004b95c14b8a8a88ca7e85de84d 100644
--- a/dom/base/Document.cpp --- a/dom/base/Document.cpp
+++ b/dom/base/Document.cpp +++ b/dom/base/Document.cpp
@@ -465,6 +465,7 @@ @@ -461,6 +461,7 @@
#include "prtime.h" #include "prtime.h"
#include "prtypes.h" #include "prtypes.h"
#include "xpcpublic.h" #include "xpcpublic.h"
@@ -10,7 +10,7 @@ index 55d24fe16311a286813f7668a227d2ef0cc7e5d7..1a7c2352daf1e04e38a8fb81f80a1f9a
// clang-format off // clang-format off
#include "mozilla/Encoding.h" #include "mozilla/Encoding.h"
@@ -3442,6 +3443,10 @@ void Document::FillStyleSetUserAndUASheets() { @@ -3446,6 +3447,10 @@ void Document::FillStyleSetUserAndUASheets() {
for (StyleSheet* sheet : *sheetService->UserStyleSheets()) { for (StyleSheet* sheet : *sheetService->UserStyleSheets()) {
styleSet.AppendStyleSheet(*sheet); styleSet.AppendStyleSheet(*sheet);
} }

View File

@@ -1,8 +1,8 @@
diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml diff --git a/dom/base/use_counter_metrics.yaml b/dom/base/use_counter_metrics.yaml
index 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc6c4f2b64 100644 index 0635fe4dc5bf231300c1b53b093e2200c4fde134..c1d868cb7ebcf322885d562217ff9c03b16f7119 100644
--- a/dom/base/use_counter_metrics.yaml --- a/dom/base/use_counter_metrics.yaml
+++ b/dom/base/use_counter_metrics.yaml +++ b/dom/base/use_counter_metrics.yaml
@@ -21086,6 +21086,22 @@ use.counter.css.page: @@ -21154,6 +21154,22 @@ use.counter.css.page:
send_in_pings: send_in_pings:
- use-counters - use-counters
@@ -25,7 +25,7 @@ index 81d73c33af8c95e6f687c05354fb8a0e894dcd44..775742e1e4f84618dce45cbcb14229dc
css_transform_origin: css_transform_origin:
type: counter type: counter
description: > description: >
@@ -33056,6 +33072,22 @@ use.counter.css.doc: @@ -33124,6 +33140,22 @@ use.counter.css.doc:
send_in_pings: send_in_pings:
- use-counters - use-counters

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