Compare commits

..

11 Commits

Author SHA1 Message Date
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
26 changed files with 796 additions and 134 deletions

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|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 =
.label = Otevřít odkaz v Glance
.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
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 =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
.title = Zobrazit změny
zen-sidebar-notification-restart-safe-mode-label = Něco se rozbilo?
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
category-zen-looks =
.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-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-multiple-toolbar = Mehrere Symbolleisten
zen-layout-collapsed-toolbar = Eingeklappte Symbolleiste
@@ -18,7 +18,7 @@ sync-engine-workspaces =
.accesskey = W
zen-glance-title = 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-enabled =
.label = Schnellansicht aktivieren
@@ -31,7 +31,7 @@ zen-glance-trigger-shift-click =
zen-glance-trigger-meta-click =
.label = Meta (Befehlstaste) + Klick
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 =
.label = { -brand-short-name } Kompaktmodus aktivieren
zen-look-and-feel-compact-view-top-toolbar =
@@ -45,16 +45,16 @@ pane-settings-workspaces-title = Arbeitsbereiche
zen-tabs-unloader-enabled =
.label = Tab-Entlader aktivieren
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 =
.label = Strg+Tab wechselt nur zwischen Essential- oder Arbeitsbereich-Tabs
zen-tabs-cycle-ignore-pending-tabs =
.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-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 =
.label = Dort fortfahren, wo Sie aufgehört haben
.label = Dort fortfahren, wo du aufgehört hast
pane-zen-pinned-tab-manager-title = 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
@@ -82,7 +82,7 @@ zen-settings-workspaces-enabled =
.label = Arbeitsbereiche aktivieren (Experimentell)
zen-settings-workspaces-hide-default-container-indicator =
.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 }
pane-zen-theme-title = Design-Einstellungen
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
zen-theme-marketplace-link = Store besuchen
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-default = Standard dunkles Design
zen-dark-theme-styles-colorful = Farbenfrohes dunkles Design
zen-compact-mode-styles-left = Tab-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-header = Allgemeine Einstellungen für die Adressleiste
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-key-inspector-mac = Inspektor umschalten (Mac)
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-picture-in-picture-toggle-shortcut = Bild-im-Bild umschalten
zen-nav-reload-shortcut-2 = Seite neu laden

View File

@@ -13,13 +13,13 @@ zen-folders-new-subfolder =
zen-folders-panel-delete-folder =
.label = Ordner löschen
zen-folders-panel-convert-folder-to-space =
.label = Ordner in Arbeitsbereich umwandeln
.label = In Arbeitsbereich umwandeln
zen-folders-panel-change-folder-space =
.label = Arbeitsbereich wechseln...
zen-folders-panel-change-icon-folder =
.label = Symbol ändern
.label = Icon ändern
zen-folders-unload-all-tooltip =
.tooltiptext = Aktive Tabs in diesem Ordner entladen
.tooltiptext = Alle aktiven Tabs in diesem Ordner entladen
zen-folders-unload-folder =
.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
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-panel-ui-current-profile-text = Aktuelles Profil
unified-extensions-description = Erweiterungen werden verwendet, um { -brand-short-name } zusätzliche Funktionen hinzuzufügen.
zen-panel-ui-current-profile-text = Dein aktuelles Profil
unified-extensions-description = Mit Erweiterungen kannst du { -brand-short-name } um zusätzliche Funktionen erweitern.
tab-context-zen-reset-pinned-tab =
.label = Angehefteten Tab zurücksetzen
.accesskey = R
tab-context-zen-add-essential =
.label = Add to Essentials
.label = Zu Essentials hinzufügen
.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 =
.label = Aus Essentials entfernen
.accesskey = R
tab-context-zen-replace-pinned-url-with-current =
.label = Angeheftete URL durch aktuelle ersetzen
.accesskey = C
zen-themes-corrupted = Deine { -brand-short-name } Mods-Datei ist beschädigt. Sie wurde 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-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. Wir haben sie auf die Standard-Tastenkürzel zurückgesetzt.
# note: Do not translate the "<br/>" tags in the following string
zen-new-urlbar-notification =
Die neue Adressleiste wurde aktiviert und macht neue Tab-Seiten überflüssig.<br/><br/>
Öffne einen neuen Tab, um die neue Adressleiste in Aktion zu sehen!
Die neue Adressleiste ist jetzt aktiv! Dadurch brauchst du keine neuen Tab-Seiten mehr.<br/><br/>
Öffne einfach einen neuen Tab, um die neue Adressleiste auszuprobieren!
zen-disable = Deaktivieren
pictureinpicture-minimize-btn =
.aria-label = Minimieren
.tooltip = Minimieren
zen-panel-ui-gradient-generator-custom-color = Benutzerdefinierte Farbe
zen-panel-ui-gradient-generator-saved-message = Farbverlauf erfolgreich gespeichert!
zen-copy-current-url-confirmation = Aktuelle URL kopiert!
zen-panel-ui-gradient-generator-custom-color = Eigene Farbe
zen-panel-ui-gradient-generator-saved-message = Farbverlauf gespeichert!
zen-copy-current-url-confirmation = URL kopiert!
zen-general-cancel-label =
.label = Abbrechen
zen-general-confirm =
.label = Bestätigen
zen-pinned-tab-replaced = Die URL des angehefteten Tabs wurde durch die aktuelle URL ersetzt!
zen-tabs-renamed = Tab wurde erfolgreich umbenannt!
zen-background-tab-opened-toast = Neuer Hintergrund-Tab geöffnet!
zen-workspace-renamed-toast = Arbeitsbereich wurde erfolgreich umbenannt!
zen-pinned-tab-replaced = Die URL des angehefteten Tabs wurde aktualisiert!
zen-tabs-renamed = Tab umbenannt!
zen-background-tab-opened-toast = Neuer Tab im Hintergrund geöffnet!
zen-workspace-renamed-toast = Arbeitsbereich umbenannt!
zen-library-sidebar-workspaces =
.label = Arbeitsbereiche
zen-library-sidebar-mods =
@@ -86,25 +86,25 @@ zen-site-data-header-reader-mode =
zen-site-data-header-screenshot =
.tooltiptext = Screenshot erstellen
zen-site-data-header-bookmark =
.tooltiptext = Diese Seite als Lesezeichen hinzufügen
.tooltiptext = Diese Seite als Lesezeichen speichern
zen-urlbar-copy-url-button =
.tooltiptext = URL kopieren
zen-site-data-setting-site-protection = Tracking-Schutz
# 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-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-title = Hier findest du Add-ons, Berechtigungen und mehr
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 =
.label = Link in Glance öffnen
.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
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 =
.title = View Release Notes
zen-sidebar-notification-restart-safe-mode-label = Something broke?
.title = Versionshinweise anzeigen
zen-sidebar-notification-restart-safe-mode-label = Funktioniert etwas nicht?
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 =
.label =
{ $tabCount ->
[1] Tab aufteilen (mehrere ausgewählte Tabs erforderlich)
[1] Tab aufteilen (wähle mehrere Tabs aus)
*[other] { $tabCount } Tabs aufteilen
}
.accesskey = S
zen-split-link =
.label = Link in neuem Tab aufteilen
.label = Link in geteiltem Tab öffnen
.accesskey = S
zen-split-view-modifier-header = Geteilte Ansicht
zen-split-view-modifier-activate-reallocation =
.label = Neuanordnung aktivieren
zen-split-view-modifier-enabled-toast = Neuanordnung der geteilten Ansicht ist EIN.
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-disabled-toast = Neuanordnung der geteilten Ansicht ist AUS.
.label = Anordnung ändern
zen-split-view-modifier-enabled-toast = Anordnung der geteilten Ansicht aktiv.
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 = Anordnung der geteilten Ansicht deaktiviert.

View File

@@ -3,31 +3,31 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
zen-toolbar-context-tabs-right =
.label = Tabs rechts
.label = Tabs rechts anzeigen
.accesskey = R
zen-toolbar-context-compact-mode =
.label = Kompaktmodus
zen-toolbar-context-compact-mode-enable =
.label = Kompaktmodus aktivieren
.label = Kompaktmodus einschalten
.accesskey = D
zen-toolbar-context-compact-mode-just-tabs =
.label = Seitenleiste ausblenden
.label = Nur Seitenleiste ausblenden
zen-toolbar-context-compact-mode-just-toolbar =
.label = Symbolleiste ausblenden
.label = Nur Symbolleiste ausblenden
zen-toolbar-context-compact-mode-hide-both =
.label = Beide ausblenden
.label = Beides ausblenden
.accesskey = H
zen-toolbar-context-new-folder =
.label = Neuer Ordner
.accesskey = N
sidebar-zen-expand =
.label = Seitenleiste erweitern
.label = Seitenleiste ausklappen
sidebar-zen-create-new =
.label = Neu erstellen...
tabbrowser-unload-tab-button =
.tooltiptext =
{ $tabCount ->
[one] Tab entladen und dorthin wechseln
[one] Tab entladen und öffnen
*[other] { $tabCount } Tabs entladen und zum ersten wechseln
}
tabbrowser-reset-pin-button =
@@ -36,4 +36,4 @@ tabbrowser-reset-pin-button =
[one] Tab 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-line2 = einem ruhigeren Internet
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-2 = Übertrage sie ganz einfach aus einem anderen Browser und mache genau dort weiter, wo du aufgehört hast.
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 mach genau dort weiter, wo du aufgehört hast..
zen-welcome-import-button = Jetzt importieren
zen-welcome-set-default-browser = { -brand-short-name } 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 =
.label = Arbeitsbereich entladen
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 =
.label = Design bearbeiten
.label = Design anpassen
zen-workspaces-panel-context-open =
.label = Arbeitsbereich öffnen
.accesskey = O
@@ -31,7 +31,7 @@ zen-workspaces-panel-context-edit =
.label = Arbeitsbereich bearbeiten
.accesskey = E
context-zen-change-workspace-tab =
.label = Tab(s) zu Arbeitsbereich verschieben
.label = Tabs zu Arbeitsbereich verschieben
.accesskey = C
zen-bookmark-edit-panel-workspace-selector =
.value = Arbeitsbereiche
@@ -46,20 +46,20 @@ zen-panel-ui-gradient-generator-algo-triadic =
.label = Triadisch
zen-panel-ui-gradient-generator-algo-floating =
.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 =
.placeholder = Name des Arbeitsbereichs
zen-workspaces-panel-context-reorder =
.label = Arbeitsbereiche neu anordnen
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-label = Arbeitsbereiche helfen dir, deine Tabs und Sitzungen zu organisieren.
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
# 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 =
.label = Aufräumen
.tooltiptext = Alle nicht angehefteten Tabs schließen

View File

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

View File

@@ -32,6 +32,10 @@
- name: zen.theme.styled-status-panel
value: '@IS_TWILIGHT@'
- name: zen.theme.styled-status-panel
value: true
condition: 'defined(XP_MACOSX)'
- name: zen.theme.hide-unified-extensions-button
value: true

View File

@@ -43,9 +43,7 @@
<script type="text/javascript" src="chrome://browser/content/ZenPreloadedScripts.js"></script>
# 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/ZenCompactMode.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>
@@ -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/ZenDownloadAnimation.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

@@ -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-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/ZenSessionStore.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script>
<script type="module" src="chrome://browser/content/zen-components/ZenWorkspaceIcons.mjs"></script>

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,33 @@
From dd4460727998a53e9fa7372afba2a93a9546cec3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Fri, 28 Nov 2025 15:06:26 +0000
Subject: [PATCH] Bug 2002986 - Use IAppWindowTitlebar::ResetToDefault() for
non-collapsed titlebar. r=win-reviewers,gstoll
This seems to actually go to the default DWM stuff and is the documented
way of doing so:
https://learn.microsoft.com/en-us/windows/apps/develop/title-bar#reset-the-title-bar
Differential Revision: https://phabricator.services.mozilla.com/D274413
---
widget/windows/WindowsUIUtils.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/widget/windows/WindowsUIUtils.cpp b/widget/windows/WindowsUIUtils.cpp
index a5a6c893e7056..abaabfba69dfa 100644
--- a/widget/windows/WindowsUIUtils.cpp
+++ b/widget/windows/WindowsUIUtils.cpp
@@ -1394,7 +1394,11 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
MOZ_ASSERT_UNREACHABLE("IAppWindowTitleBar could not be acquired");
return;
}
- hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed);
+ if (aIsCollapsed) {
+ hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed);
+ } else {
+ hr = titleBar->ResetToDefault();
+ }
if (FAILED(hr)) {
MOZ_LOG(gWindowsLog, LogLevel::Error,
("Skipping SetIsTitlebarCollapsed() because "

View File

@@ -0,0 +1,221 @@
From bb40796bb2ff8be97e2adcdad78d9b9ea1d3ea18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emilio=20Cobos=20=C3=81lvarez?= <emilio@crisal.io>
Date: Fri, 28 Nov 2025 15:27:41 +0000
Subject: [PATCH] Bug 2002990 - Save some work on startup to associate a native
window with the app sdk. r=gstoll,win-reviewers
We only need to grab its AppWindow for that to happen. Save some useless
QI while at it.
I'm pretty sure bug 2002986 would also help here but this seems worth
doing regardless.
Differential Revision: https://phabricator.services.mozilla.com/D274419
---
widget/windows/WindowsUIUtils.cpp | 126 ++++++++++++++----------------
widget/windows/WindowsUIUtils.h | 1 +
widget/windows/nsWindow.cpp | 2 +-
3 files changed, 62 insertions(+), 67 deletions(-)
diff --git a/widget/windows/WindowsUIUtils.cpp b/widget/windows/WindowsUIUtils.cpp
index abaabfba69dfa..1ad39b98c20e0 100644
--- a/widget/windows/WindowsUIUtils.cpp
+++ b/widget/windows/WindowsUIUtils.cpp
@@ -1211,7 +1211,35 @@ using GetWindowIdFromWindowType = HRESULT(STDAPICALLTYPE*)(
static GetWindowIdFromWindowType sGetWindowIdFromWindowProc = nullptr;
// Returns whether initialization succeeded
-bool InitializeWindowsAppSDKStatics() {
+[[nodiscard]] static bool InitializeWindowsAppSDKStatics() {
+ MOZ_ASSERT(NS_IsMainThread());
+ // This function is needed to avoid drawing the titlebar buttons
+ // when the Windows mica backdrop is enabled. (bug 1934040)
+ // If it isn't possible for mica to be enabled, we don't need to do anything.
+ // The Windows App SDK that we use here doesn't support older versions of
+ // Windows 10 that Firefox does.
+ if (!widget::WinUtils::MicaAvailable()) {
+ MOZ_LOG(
+ gWindowsLog, LogLevel::Info,
+ ("Skipping SetIsTitlebarCollapsed() because mica is not available"));
+ return false;
+ }
+ // This pref is only false on certain test runs (most notably
+ // opt-talos-xperf), the Windows App SDK fails calling
+ // DCompositionCreateDevice3() with ERROR_ACCESS_DENIED, and the code assumes
+ // it is going to succeed so it proceeds to crash deferencing null.
+ //
+ // We're not exactly sure why this is happening right now, but I'm pretty sure
+ // it's specific to how we're running Firefox on those test runs, and
+ // I don't think any users will run into this. So those tests pass the
+ // --disable-windowsappsdk command line argument to avoid using
+ // the Windows App SDK.
+ if (!StaticPrefs::widget_windows_windowsappsdk_enabled()) {
+ MOZ_LOG(gWindowsLog, LogLevel::Info,
+ ("Skipping SetIsTitlebarCollapsed() because "
+ "widget.windows.windowsappsdk.enabled is false"));
+ return false;
+ }
if (!sGetWindowIdFromWindowProc) {
HMODULE frameworkUdkModule =
::LoadLibraryW(L"Microsoft.Internal.FrameworkUdk.dll");
@@ -1303,51 +1331,14 @@ bool InitializeWindowsAppSDKStatics() {
}
return true;
}
-#endif
-void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
-#ifndef __MINGW32__
- // Used to avoid synchronization for loading libraries below
- MOZ_ASSERT(NS_IsMainThread());
- // This function is needed to avoid drawing the titlebar buttons
- // when the Windows mica backdrop is enabled. (bug 1934040)
- // If it isn't possible for mica to be enabled, we don't need to do anything.
- // This also helps prevent problems because the Windows App SDK that we use
- // here doesn't support older versions of Windows 10 that Firefox does.
- if (!widget::WinUtils::MicaAvailable()) {
- MOZ_LOG(
- gWindowsLog, LogLevel::Info,
- ("Skipping SetIsTitlebarCollapsed() because mica is not available"));
- return;
- }
- // This pref is only false on certain test runs (most notably
- // opt-talos-xperf), the Windows App SDK fails calling
- // DCompositionCreateDevice3() with ERROR_ACCESS_DENIED, and the code assumes
- // it is going to succeed so it proceeds to crash deferencing null.
- //
- // We're not exactly sure why this is happening right now, but I'm pretty sure
- // it's specific to how we're running Firefox on those test runs, and
- // I don't think any users will run into this. So those tests pass the
- // --disable-windowsappsdk command line argument to avoid using
- // the Windows App SDK.
- if (!StaticPrefs::widget_windows_windowsappsdk_enabled()) {
- MOZ_LOG(gWindowsLog, LogLevel::Info,
- ("Skipping SetIsTitlebarCollapsed() because "
- "widget.windows.windowsappsdk.enabled is false"));
- return;
- }
+static RefPtr<winrt::Microsoft::UI::Windowing::IAppWindow>
+GetAppWindowForWindow(HWND aWnd) {
if (!InitializeWindowsAppSDKStatics()) {
- return;
+ return nullptr;
}
-
- // The Microsoft documentation says that we should be checking
- // AppWindowTitleBar::IsCustomizationSupported() before calling methods
- // on the title bar. However, it also says that customization is fully
- // supported since Windows App SDK v1.2 on Windows 11, and Mica is only
- // available on Windows 11, so it should be safe to skip this check.
-
// Retrieve the WindowId that corresponds to hWnd.
- struct winrt::Microsoft::UI::WindowId windowId;
+ struct winrt::Microsoft::UI::WindowId windowId{0};
HRESULT hr = sGetWindowIdFromWindowProc(aWnd, &windowId);
if (FAILED(hr) || windowId.value == 0) {
MOZ_LOG(gWindowsLog, LogLevel::Error,
@@ -1355,25 +1346,40 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
"GetWindowIdFromWindow failed, hr=0x%" PRIX32,
static_cast<uint32_t>(hr)));
MOZ_ASSERT_UNREACHABLE("GetWindowIdFromWindow failed");
- return;
+ return nullptr;
}
RefPtr<winrt::Microsoft::UI::Windowing::IAppWindow> appWindow;
- hr = (HRESULT)sAppWindowStatics->GetFromWindowId(windowId,
- getter_AddRefs(appWindow));
- if (FAILED(hr) || !appWindow) {
- // Hedge our bets here and don't assert because it's possible this
- // is a weird sort of window or something.
+ sAppWindowStatics->GetFromWindowId(windowId, getter_AddRefs(appWindow));
+ return appWindow;
+}
+#endif
+
+void WindowsUIUtils::AssociateWithWinAppSDK(HWND aWnd) {
+#ifndef __MINGW32__
+ RefPtr win = GetAppWindowForWindow(aWnd);
+ (void)win;
+#endif
+}
+
+void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
+#ifndef __MINGW32__
+ // The Microsoft documentation says that we should be checking
+ // AppWindowTitleBar::IsCustomizationSupported() before calling methods
+ // on the title bar. However, it also says that customization is fully
+ // supported since Windows App SDK v1.2 on Windows 11, and Mica is only
+ // available on Windows 11, so it should be safe to skip this check.
+ RefPtr appWindow = GetAppWindowForWindow(aWnd);
+ if (!appWindow) {
MOZ_LOG(gWindowsLog, LogLevel::Warning,
("Skipping SetIsTitlebarCollapsed() because "
- "IAppWindow could not be acquired from window id, hr=%" PRIX32,
- static_cast<uint32_t>(hr)));
+ "IAppWindow could not be acquired from window id"));
return;
}
- RefPtr<IInspectable> inspectableTitleBar;
- hr = appWindow->get_TitleBar(getter_AddRefs(inspectableTitleBar));
- if (FAILED(hr) || !inspectableTitleBar) {
+ RefPtr<winrt::Microsoft::UI::Windowing::IAppWindowTitleBar> titleBar;
+ HRESULT hr = appWindow->get_TitleBar(getter_AddRefs(titleBar));
+ if (FAILED(hr) || !titleBar) {
// Hedge our bets here and don't assert because it's possible this
// is a weird sort of window or something.
MOZ_LOG(gWindowsLog, LogLevel::Warning,
@@ -1382,18 +1388,6 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
static_cast<uint32_t>(hr)));
return;
}
- RefPtr<winrt::Microsoft::UI::Windowing::IAppWindowTitleBar> titleBar;
- hr = inspectableTitleBar->QueryInterface(
- __uuidof(winrt::Microsoft::UI::Windowing::IAppWindowTitleBar),
- (void**)getter_AddRefs(titleBar));
- if (FAILED(hr) || !titleBar) {
- MOZ_LOG(gWindowsLog, LogLevel::Error,
- ("Skipping SetIsTitlebarCollapsed() because "
- "IAppWindowTitleBar could not be acquired, hr=%" PRIX32,
- static_cast<uint32_t>(hr)));
- MOZ_ASSERT_UNREACHABLE("IAppWindowTitleBar could not be acquired");
- return;
- }
if (aIsCollapsed) {
hr = titleBar->put_ExtendsContentIntoTitleBar(aIsCollapsed);
} else {
@@ -1410,7 +1404,7 @@ void WindowsUIUtils::SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed) {
if (aIsCollapsed) {
// PreferredHeightOption is only valid if ExtendsContentIntoTitleBar is true
RefPtr<winrt::Microsoft::UI::Windowing::IAppWindowTitleBar2> titleBar2;
- hr = inspectableTitleBar->QueryInterface(
+ hr = titleBar->QueryInterface(
__uuidof(winrt::Microsoft::UI::Windowing::IAppWindowTitleBar2),
(void**)getter_AddRefs(titleBar2));
if (FAILED(hr) || !titleBar2) {
diff --git a/widget/windows/WindowsUIUtils.h b/widget/windows/WindowsUIUtils.h
index 17a5aac583758..0abd4dfe9875a 100644
--- a/widget/windows/WindowsUIUtils.h
+++ b/widget/windows/WindowsUIUtils.h
@@ -59,6 +59,7 @@ class WindowsUIUtils final : public nsIWindowsUIUtils {
static bool ComputeOverlayScrollbars();
static double ComputeTextScaleFactor();
static bool ComputeTransparencyEffects();
+ static void AssociateWithWinAppSDK(HWND aWnd);
static void SetIsTitlebarCollapsed(HWND aWnd, bool aIsCollapsed);
protected:
diff --git a/widget/windows/nsWindow.cpp b/widget/windows/nsWindow.cpp
index 19f5980a106fb..a2a288e793046 100644
--- a/widget/windows/nsWindow.cpp
+++ b/widget/windows/nsWindow.cpp
@@ -1540,7 +1540,7 @@ bool nsWindow::AssociateWithNativeWindow() {
// This is important because the SDKs WNDPROC might handle messages like
// WM_NCCALCSIZE without calling into us, and that can cause sizing issues,
// see bug 1993474.
- WindowsUIUtils::SetIsTitlebarCollapsed(mWnd, mCustomNonClient);
+ WindowsUIUtils::AssociateWithWinAppSDK(mWnd);
}
// Connect the this pointer to the native window handle.

View File

@@ -6,4 +6,9 @@
{
ChromeUtils.importESModule("chrome://browser/content/ZenStartup.mjs", { global: "current" });
ChromeUtils.importESModule("chrome://browser/content/zen-components/ZenCompactMode.mjs", { global: "current" });
ChromeUtils.importESModule("chrome://browser/content/ZenUIManager.mjs", { global: "current" });
ChromeUtils.importESModule("chrome://browser/content/zen-components/ZenMods.mjs", { global: "current" });
ChromeUtils.importESModule("chrome://browser/content/zen-components/ZenKeyboardShortcuts.mjs", { global: "current" });
ChromeUtils.importESModule("chrome://browser/content/zen-components/ZenSessionStore.mjs", { global: "current" });
}

View File

@@ -45,9 +45,6 @@ let JSWINDOWACTORS = {
mousedown: {
capture: true,
},
mouseup: {
capture: true,
},
keydown: {
capture: true,
},

View File

@@ -227,6 +227,9 @@ window.gZenCompactModeManager = {
const isIllegalState = this.checkIfIllegalState();
const menuitem = document.getElementById('zen-context-menu-compact-mode-toggle');
const menu = document.getElementById('zen-context-menu-compact-mode');
if (!menu) {
return;
}
if (isSingleToolbar) {
menu.setAttribute('hidden', 'true');
menu.before(menuitem);
@@ -528,9 +531,11 @@ window.gZenCompactModeManager = {
},
updateContextMenu() {
document
.getElementById('zen-context-menu-compact-mode-toggle')
.setAttribute('checked', this.preference);
const toggle = document.getElementById('zen-context-menu-compact-mode-toggle');
if (!toggle) {
return;
}
toggle.setAttribute('checked', this.preference);
const hideTabBar = this.canHideSidebar;
const hideToolbar = this.canHideToolbar;

View File

@@ -3,11 +3,9 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
export class ZenGlanceChild extends JSWindowActorChild {
#activationMethod;
#glanceTarget = null;
constructor() {
super();
this.mousemoveCallback = this.mousemoveCallback.bind(this);
}
async handleEvent(event) {
@@ -59,16 +57,32 @@ export class ZenGlanceChild extends JSWindowActorChild {
});
}
on_mousedown(event) {
/**
* Returns the closest A element from the event target
* and the element to record (originalTarget or target)
*/
#getTargetFromEvent(event) {
// get closest A element
const target = event.target.closest('A');
const elementToRecord = event.originalTarget || event.target;
return {
target,
elementToRecord,
};
}
on_mousedown(event) {
const { target, elementToRecord } = this.#getTargetFromEvent(event);
// We record the link data anyway, even if the glance may be invoked
// or not. We have some cases where glance would open, for example,
// when clicking on a link with a different domain where glance would open.
// The problem is that at that stage we don't know the rect or even what
// element has been clicked, so we send the data here.
this.#sendClickDataToParent(target, elementToRecord);
}
on_click(event) {
const { target } = this.#getTargetFromEvent(event);
if (event.button !== 0 || event.defaultPrevented || this.#ensureOnlyKeyModifiers(event)) {
return;
}
@@ -82,31 +96,9 @@ export class ZenGlanceChild extends JSWindowActorChild {
} else if (activationMethod === 'meta' && !event.metaKey) {
return;
}
this.#glanceTarget = target;
this.contentWindow.addEventListener('mousemove', this.mousemoveCallback, { once: true });
}
on_mouseup() {
if (this.#glanceTarget) {
// Don't clear the glance target here, we need it in the click handler
// See issue https://github.com/zen-browser/desktop/issues/11409
this.#openGlance(this.#glanceTarget);
}
this.contentWindow.removeEventListener('mousemove', this.mousemoveCallback);
}
on_click(event) {
if (this.#glanceTarget) {
event.preventDefault();
event.stopPropagation();
this.#glanceTarget = null;
}
}
mousemoveCallback() {
if (this.#glanceTarget) {
this.#glanceTarget = null;
}
event.preventDefault();
event.stopPropagation();
this.#openGlance(target);
}
on_keydown(event) {

View File

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

View File

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

View File

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