mirror of
https://github.com/zen-browser/desktop.git
synced 2025-11-10 04:25:12 +00:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57e63a4456 | ||
|
|
bc09603add | ||
|
|
5ecfc745da | ||
|
|
421adade52 | ||
|
|
c382001253 | ||
|
|
8b5325ba1c | ||
|
|
eeb8a78741 | ||
|
|
c5bc5c7f09 | ||
|
|
879865e625 | ||
|
|
2ec4510850 | ||
|
|
96c6ec658c | ||
|
|
a0f282a759 | ||
|
|
1cf50e863d | ||
|
|
11e3397421 | ||
|
|
5ca4553e70 | ||
|
|
3a9e205730 | ||
|
|
37eb6f85eb | ||
|
|
87e249f2a4 | ||
|
|
40af25998f | ||
|
|
0d80532bf1 | ||
|
|
424de1bf91 | ||
|
|
42752f8145 | ||
|
|
82a7061849 | ||
|
|
be561ec8dc | ||
|
|
8097b402aa | ||
|
|
b0f165a744 | ||
|
|
d005b97042 |
@@ -35,7 +35,7 @@ Zen is a firefox-based browser with the aim of pushing your productivity to a ne
|
||||
### Firefox Versions
|
||||
|
||||
- [`Release`](https://zen-browser.app/download) - Is currently built using Firefox version `144.0.2`! 🚀
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 144.0.2`!
|
||||
- [`Twilight`](https://zen-browser.app/download?twilight) - Is currently built using Firefox version `RC 145.0`!
|
||||
|
||||
### Contributing
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
860c37a26622f61c74c7cbb93f7e0ae759fcbfe1
|
||||
7bc0bd3b3f84dddd16bc84ddb01bc55782177f5e
|
||||
@@ -6,7 +6,7 @@ if test "$ZEN_CROSS_COMPILING"; then
|
||||
|
||||
export WINSYSROOT="$(echo ~)/win-cross/vs2022"
|
||||
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine64"
|
||||
export WINE="$(echo ~)/win-cross/wine/bin/wine"
|
||||
export WINEDEBUG=-all
|
||||
|
||||
export MOZ_STUB_INSTALLER=1
|
||||
|
||||
276
docs/issue-metrics/2025_2025-10-01..2025-10-31.md
Normal file
276
docs/issue-metrics/2025_2025-10-01..2025-10-31.md
Normal file
@@ -0,0 +1,276 @@
|
||||
# Issue Metrics
|
||||
|
||||
| Metric | Average | Median | 90th percentile |
|
||||
| --- | --- | --- | ---: |
|
||||
| Time to first response | 15:19:48 | 2:42:07 | 1 day, 0:05:54 |
|
||||
| Time to close | 22:10:13 | 4:42:08 | 2 days, 0:56:21 |
|
||||
|
||||
| Metric | Count |
|
||||
| --- | ---: |
|
||||
| Number of items that remain open | 108 |
|
||||
| Number of items closed | 150 |
|
||||
| Total number of items created | 258 |
|
||||
|
||||
| Title | URL | Time to first response | Time to close |
|
||||
| --- | --- | --- | --- |
|
||||
| The right click menu goes beyond the app border sometimes on arch hyprland | https://github.com/zen-browser/desktop/issues/11103 | None | None |
|
||||
| Zen glance doesn't respect --margin-top-fix | https://github.com/zen-browser/desktop/issues/11098 | None | None |
|
||||
| Security info button missing in url bar | https://github.com/zen-browser/desktop/issues/11093 | None | None |
|
||||
| OS dark mode not detected by browser | https://github.com/zen-browser/desktop/issues/11092 | None | None |
|
||||
| Zen menu is somehow showing on the "wrong" side of the app | https://github.com/zen-browser/desktop/issues/11091 | None | None |
|
||||
| Volume is very low in YouTube videos. | https://github.com/zen-browser/desktop/issues/11089 | None | None |
|
||||
| Opening Sidebar by Dragging URL in Compact Mode May Prevent Sidebar from Hiding | https://github.com/zen-browser/desktop/issues/11088 | None | None |
|
||||
| Collapsed sidebar tab icons are misaligned when tabs are overflown | https://github.com/zen-browser/desktop/issues/11087 | 2:13:10 | None |
|
||||
| Screensharing Teams over Zen instantly caused the system to hard crash | https://github.com/zen-browser/desktop/issues/11086 | None | None |
|
||||
| Can't use KeePassXC-Browser in Zen (Flatpak) with KeePassXC (not FlatPak) | https://github.com/zen-browser/desktop/issues/11084 | None | None |
|
||||
| PiP video reproduction makes the tab crash after a while | https://github.com/zen-browser/desktop/issues/11083 | None | None |
|
||||
| Elements above the essentials tabs are in the toolbar instead of the sidebar in compact mode | https://github.com/zen-browser/desktop/issues/11082 | 1:11:28 | None |
|
||||
| Select Tag missing background makes content not visible | https://github.com/zen-browser/desktop/issues/11081 | 15:01:49 | 19:55:32 |
|
||||
| Hovering bookmarks toolbar causes vertical wiggle of website | https://github.com/zen-browser/desktop/issues/11080 | 0:32:11 | None |
|
||||
| Custom Wallpaper on new tab does not loads in any Container | https://github.com/zen-browser/desktop/issues/11079 | 4:25:50 | 4:25:50 |
|
||||
| Unable to activate the option to clear the history without the Zen interface being down. | https://github.com/zen-browser/desktop/issues/11078 | None | None |
|
||||
| Zen sometimes hangs when a context menu or overlay is triggered | https://github.com/zen-browser/desktop/issues/11077 | None | None |
|
||||
| Theme Editor fails to render the colour picker | https://github.com/zen-browser/desktop/issues/11076 | 1:55:40 | 19:38:53 |
|
||||
| Tabs lost when closing main window before Library window | https://github.com/zen-browser/desktop/issues/11073 | None | None |
|
||||
| The topbar doesn't hide in compact when the browser is closed and opening a link from outside | https://github.com/zen-browser/desktop/issues/11070 | None | None |
|
||||
| Essentials tabs are no longer colored to icon accent (zen.theme.essentials-favicon-bg) | https://github.com/zen-browser/desktop/issues/11069 | None | None |
|
||||
| Browser Gets Stuck in workspace. and upon restart deletes all current tabs & history. | https://github.com/zen-browser/desktop/issues/11068 | None | None |
|
||||
| Unloaded tabs logos aren't dimmed | https://github.com/zen-browser/desktop/issues/11065 | None | None |
|
||||
| url bar disappearing and stuttering after last update | https://github.com/zen-browser/desktop/issues/11063 | 1:01:34 | 5:21:04 |
|
||||
| Unable to install any mods from the store / mods do not work anymore | https://github.com/zen-browser/desktop/issues/11062 | None | None |
|
||||
| Page missing space without compact mode | https://github.com/zen-browser/desktop/issues/11060 | None | None |
|
||||
| Unable to drop new tabs when using auto-hide menu | https://github.com/zen-browser/desktop/issues/11059 | None | 0:23:34 |
|
||||
| Window top bar overlaps contents when expanded on hover | https://github.com/zen-browser/desktop/issues/11056 | 2:37:18 | 4:47:35 |
|
||||
| SAVED WEBSITES NOT SHOWING FAVICONS ON STARTUP | https://github.com/zen-browser/desktop/issues/11050 | 5:08:35 | 6:19:52 |
|
||||
| On single toolbar mode shortcut "toggle sidebar's width" doesnt change zen.view.use-single-toolbar, causing you to never be able to not hide sidebar in compact mode | https://github.com/zen-browser/desktop/issues/11049 | None | 2:09:48 |
|
||||
| After every Zen Browser update, the browser automatically redirects all HTTP requests to HTTPS | https://github.com/zen-browser/desktop/issues/11048 | 1 day, 3:16:04 | None |
|
||||
| Sidebar keeps moving when dragging a link to the sidebar in compact mode | https://github.com/zen-browser/desktop/issues/11045 | 1:26:22 | 1:26:22 |
|
||||
| Browser auto force quits when sharing screen on Google meet | https://github.com/zen-browser/desktop/issues/11044 | 1 day, 0:37:45 | None |
|
||||
| bookmark icon missing from address bar. Extenision cannot be pinned to toolbar | https://github.com/zen-browser/desktop/issues/11043 | 0:08:08 | 18:47:26 |
|
||||
| Folder bug because of browser.tabs.groups.enabled was set to true when the first update about folders came out. | https://github.com/zen-browser/desktop/issues/11042 | 6:09:21 | 6:09:21 |
|
||||
| Very confusing behaviour: Zen changes some keyboards keys | https://github.com/zen-browser/desktop/issues/11039 | None | None |
|
||||
| Floating URL bar is off-center in Compact Mode | https://github.com/zen-browser/desktop/issues/11036 | 5:43:02 | 9:06:12 |
|
||||
| severe lag when Compact Tabs mode is enabled | https://github.com/zen-browser/desktop/issues/11035 | None | None |
|
||||
| Pinned/Essentials tabs are not individual for each window on restart | https://github.com/zen-browser/desktop/issues/11034 | 20:23:59 | None |
|
||||
| Issue with toolbar after the update | https://github.com/zen-browser/desktop/issues/11033 | 0:30:05 | 0:30:05 |
|
||||
| Url bar sometimes overlaps page | https://github.com/zen-browser/desktop/issues/11032 | 0:40:02 | None |
|
||||
| Sluggish Scrolling With Winodws 11 Dynamic Refresh Rate | https://github.com/zen-browser/desktop/issues/11030 | 0:36:58 | 2:14:02 |
|
||||
| [Bug] Picture-in-Picture (PiP) icon disappears from the URL bar | https://github.com/zen-browser/desktop/issues/11029 | 2:02:15 | 2 days, 1:05:37 |
|
||||
| Splitter barely visible when Split View + Compact Mode are active | https://github.com/zen-browser/desktop/issues/11027 | 0:11:40 | None |
|
||||
| The new unified panel has significantly affected the dragging link behavior (For example, drag and drop to save bookmarks). | https://github.com/zen-browser/desktop/issues/11026 | None | None |
|
||||
| Nextcloud passwords plugin fails to keep connection to nextcloud | https://github.com/zen-browser/desktop/issues/11025 | None | None |
|
||||
| Extension symbol in toolbar | https://github.com/zen-browser/desktop/issues/11024 | 1:04:53 | None |
|
||||
| bookmark is bugged | https://github.com/zen-browser/desktop/issues/11023 | None | 2:09:24 |
|
||||
| Essential tab background color not adapting to icon color | https://github.com/zen-browser/desktop/issues/11022 | None | None |
|
||||
| Extensions button is missing if Removed from toolbar | https://github.com/zen-browser/desktop/issues/11021 | 0:12:48 | 0:12:48 |
|
||||
| Zen icon not appearing in sidebar in "only sidebar" mode in macOS | https://github.com/zen-browser/desktop/issues/11020 | 1:19:03 | None |
|
||||
| White background websites render as transparent | https://github.com/zen-browser/desktop/issues/11019 | 2:00:20 | 5 days, 10:00:50 |
|
||||
| Extensions menu (and its "jigsaw" button) need to be an option | https://github.com/zen-browser/desktop/issues/11013 | 1:10:36 | 1:10:36 |
|
||||
| sign in with google failing | https://github.com/zen-browser/desktop/issues/11010 | 0:15:42 | None |
|
||||
| Stuttering when playing 4K videos on Bilibili | https://github.com/zen-browser/desktop/issues/11007 | 0:27:17 | 1 day, 17:54:57 |
|
||||
| Cannot access extension icons on sites that have DRM content in version 1.17.2b | https://github.com/zen-browser/desktop/issues/11004 | 1:05:25 | None |
|
||||
| URL bar in a wrong place | https://github.com/zen-browser/desktop/issues/11002 | 1:34:49 | 1:34:49 |
|
||||
| Zen slow on Linux after v1.17b | https://github.com/zen-browser/desktop/issues/11001 | None | 20:41:15 |
|
||||
| Extension flagged by Mozilla as risky display broken | https://github.com/zen-browser/desktop/issues/11000 | 1:46:25 | 1:46:25 |
|
||||
| Title bar of zen browser | https://github.com/zen-browser/desktop/issues/10998 | 0:46:49 | 0:47:07 |
|
||||
| Glance buttons not appearing on the left side | https://github.com/zen-browser/desktop/issues/10997 | 1:06:43 | 1:06:43 |
|
||||
| Compact Mode Sidebar Obfuscats Favorites (Top) in New Window | https://github.com/zen-browser/desktop/issues/10994 | None | 0:10:54 |
|
||||
| Video issues (constant stuttering) On Flatpack version of Zen browser | https://github.com/zen-browser/desktop/issues/10993 | 0:10:08 | 2 days, 8:24:55 |
|
||||
| Update to 1.17.2b wiped the session data | https://github.com/zen-browser/desktop/issues/10992 | 2:11:53 | None |
|
||||
| Zen freezes when an image is copied on Linux | https://github.com/zen-browser/desktop/issues/10991 | 4:55:17 | None |
|
||||
| Toolbar items becomes overflow menu | https://github.com/zen-browser/desktop/issues/10990 | 6:38:06 | 8:17:57 |
|
||||
| Compact mode double toolbar slide over webview not appearing correctly | https://github.com/zen-browser/desktop/issues/10987 | 0:23:29 | 10:55:15 |
|
||||
| Middle clicking on a pinned tab no longer removes it | https://github.com/zen-browser/desktop/issues/10984 | 2:11:56 | 2:11:56 |
|
||||
| Page Reload icon | https://github.com/zen-browser/desktop/issues/10983 | 2:35:26 | 2:35:26 |
|
||||
| v1.17 broke CamelCamelCamel extension | https://github.com/zen-browser/desktop/issues/10982 | 2:42:07 | 2:42:07 |
|
||||
| Closing last tab individually prevents restoring window/session | https://github.com/zen-browser/desktop/issues/10981 | None | None |
|
||||
| Cannot drag image to the left panel when in compact mode | https://github.com/zen-browser/desktop/issues/10979 | 0:30:59 | 6:10:19 |
|
||||
| Suddenly my tabs deleted | https://github.com/zen-browser/desktop/issues/10978 | None | None |
|
||||
| Release Notes tab always opens at the top of the tabs' list | https://github.com/zen-browser/desktop/issues/10976 | 0:01:36 | None |
|
||||
| I cannot use the "hide toolbar" option on compact mode | https://github.com/zen-browser/desktop/issues/10975 | None | 0:12:57 |
|
||||
| Mouse events not firing correctly for items under control buttons when the bar is hidden | https://github.com/zen-browser/desktop/issues/10973 | 0:36:05 | 1 day, 9:12:42 |
|
||||
| Container tab name removed from URL bar | https://github.com/zen-browser/desktop/issues/10972 | 0:16:56 | 1:13:15 |
|
||||
| Extensions (Puzzle Piece) Icon Missing After Update | https://github.com/zen-browser/desktop/issues/10971 | 0:12:24 | 0:28:02 |
|
||||
| Top toolbar in multi-toolbar mode is shown when it shouldn’t | https://github.com/zen-browser/desktop/issues/10970 | None | 2:08:34 |
|
||||
| Middle clicking on pending tab no longer closes it | https://github.com/zen-browser/desktop/issues/10969 | None | 0:01:44 |
|
||||
| Reload button is hidden under menu when it is the only item in the menu | https://github.com/zen-browser/desktop/issues/10968 | None | 0:44:47 |
|
||||
| Compact Mode sidebar is on the bottom of the screen rather than being in the middle. | https://github.com/zen-browser/desktop/issues/10965 | None | 0:08:13 |
|
||||
| Youtube video player cropped in fullscreen | https://github.com/zen-browser/desktop/issues/10964 | None | 0:02:31 |
|
||||
| New Site Control Center renders add-on warnings vertically on top of the rest of the UI | https://github.com/zen-browser/desktop/issues/10963 | None | 0:02:07 |
|
||||
| Media keys (Previous, Pause, Next) don't work | https://github.com/zen-browser/desktop/issues/10962 | 0:01:20 | 6:30:56 |
|
||||
| [UI] Container IDs removed from URL bar | https://github.com/zen-browser/desktop/issues/10961 | 0:09:33 | 0:12:33 |
|
||||
| History | https://github.com/zen-browser/desktop/issues/10960 | 0:22:22 | 0:58:14 |
|
||||
| The toolbar remains visible after following specific steps in compact mode | https://github.com/zen-browser/desktop/issues/10959 | 2:31:24 | None |
|
||||
| New extensions' interface in address bar still broken for some extensions | https://github.com/zen-browser/desktop/issues/10958 | None | 8:26:44 |
|
||||
| Copy current URL pop up doesn't disappear | https://github.com/zen-browser/desktop/issues/10956 | 8:56:54 | 10:51:44 |
|
||||
| The icon for "Enable compact mode" is a duplicate in the sidebar. | https://github.com/zen-browser/desktop/issues/10955 | 10:48:59 | None |
|
||||
| Wrong style on 4 buttons | https://github.com/zen-browser/desktop/issues/10954 | 0:27:06 | 0:27:06 |
|
||||
| Poor formatting in extensions control panel | https://github.com/zen-browser/desktop/issues/10953 | 0:32:14 | 0:32:14 |
|
||||
| New top border line at top of browser application window | https://github.com/zen-browser/desktop/issues/10952 | None | 0:58:56 |
|
||||
| "Hide Top bar" compact mode is greyed out / impossible to select | https://github.com/zen-browser/desktop/issues/10951 | 0:07:47 | 14:26:57 |
|
||||
| Cannot hide "forward" button from toolbar | https://github.com/zen-browser/desktop/issues/10949 | 0:28:05 | 0:28:05 |
|
||||
| Top toolbar now covers up top of webpages | https://github.com/zen-browser/desktop/issues/10948 | 0:34:17 | 14:55:39 |
|
||||
| Missing the Extensions "Jigsaw" icon next to the URL bar. | https://github.com/zen-browser/desktop/issues/10947 | 0:45:52 | 4:36:42 |
|
||||
| Can't place Home button to left upper corner | https://github.com/zen-browser/desktop/issues/10946 | None | None |
|
||||
| All tabs close and disappear when you open a private window | https://github.com/zen-browser/desktop/issues/10945 | None | 1:03:19 |
|
||||
| Youtube Controls Only Partially Visible in Fullscreen Mode | https://github.com/zen-browser/desktop/issues/10944 | 1:21:37 | 1:21:37 |
|
||||
| Sidebar Flickers/Flaps Rapidly When Dragging Text/URL to Window Edge in Compact Mode | https://github.com/zen-browser/desktop/issues/10942 | 2:43:13 | 6 days, 19:36:33 |
|
||||
| Dragging tab out of window opens a new blank window instead of a new tabbed window | https://github.com/zen-browser/desktop/issues/10941 | 0:15:32 | 0:15:32 |
|
||||
| Compact Mode "Hide toolbar" only works with tabs on right | https://github.com/zen-browser/desktop/issues/10940 | 0:25:59 | 0:25:58 |
|
||||
| Floating URL bar not appearing on focus in compact mode | https://github.com/zen-browser/desktop/issues/10938 | 1:53:52 | None |
|
||||
| Extension area layout breaks after switching between toolbar layouts | https://github.com/zen-browser/desktop/issues/10936 | 3:14:21 | 10:14:36 |
|
||||
| No option to revert "new" extensions + site settings menu | https://github.com/zen-browser/desktop/issues/10935 | 3:14:19 | 3:14:19 |
|
||||
| Search bar bug while compact mode on macos | https://github.com/zen-browser/desktop/issues/10934 | 1:01:13 | 1:17:41 |
|
||||
| Tooltips missing for unified panel quick actions | https://github.com/zen-browser/desktop/issues/10933 | None | 4:13:23 |
|
||||
| In collapsed sidebar mode you are no longer able to hide toolbar | https://github.com/zen-browser/desktop/issues/10932 | 1:51:58 | 3:53:59 |
|
||||
| playerctl metadata shows firefox instead of zen browser | https://github.com/zen-browser/desktop/issues/10931 | 8:32:21 | None |
|
||||
| Zen doesn't retrieve correct accent color from OS | https://github.com/zen-browser/desktop/issues/10930 | 4:19:46 | None |
|
||||
| Compact Mode Issue on Windows | https://github.com/zen-browser/desktop/issues/10929 | 3:39:31 | 4:10:59 |
|
||||
| Layout inconsistency between Look and Feel preview and the actual collapsed toolbar | https://github.com/zen-browser/desktop/issues/10928 | 0:30:59 | 5:17:10 |
|
||||
| about:logo has wrong logo | https://github.com/zen-browser/desktop/issues/10926 | None | None |
|
||||
| pinned split view tabs don't have "X" near them on hover | https://github.com/zen-browser/desktop/issues/10924 | None | 5:40:27 |
|
||||
| New extention tab doesnt render right if one of the extentions violate mozilla policy | https://github.com/zen-browser/desktop/issues/10922 | None | 5:16:46 |
|
||||
| Line above URL bar but not sidebar | https://github.com/zen-browser/desktop/issues/10921 | 5:57:13 | 5:57:13 |
|
||||
| New menu for extensions, etc. overflows the window. | https://github.com/zen-browser/desktop/issues/10918 | 0:37:05 | 0:53:30 |
|
||||
| [UI Bug?] Horizontal scrollbar appears in "Looks and Feel" settings on smaller window widths (e.g. 1280px) | https://github.com/zen-browser/desktop/issues/10915 | 3:43:21 | 1 day, 13:46:48 |
|
||||
| 'New tab' button no longer at the top of unpinned tabs | https://github.com/zen-browser/desktop/issues/10914 | 3:19:00 | 11:13:57 |
|
||||
| Top toolbar adopts Transparent Zen mod format in Compact Mode Double Toolbar | https://github.com/zen-browser/desktop/issues/10913 | 3:34:48 | 3:34:48 |
|
||||
| Compact Mode formatting bugs when switching between Toolbar settings | https://github.com/zen-browser/desktop/issues/10912 | 3:58:57 | None |
|
||||
| Compact Mode Collapsed Sidebar on hover endlessly expands | https://github.com/zen-browser/desktop/issues/10911 | None | 4:09:14 |
|
||||
| Compact Mode Sidebar Only won't hide. | https://github.com/zen-browser/desktop/issues/10910 | 3:45:10 | None |
|
||||
| Compact Mode Double Toolbar, Top Toolbar doesn't hide. | https://github.com/zen-browser/desktop/issues/10909 | None | 0:29:10 |
|
||||
| Compact mode hide toolbar option Broken if 'Tabs on Right' | https://github.com/zen-browser/desktop/issues/10908 | 5:35:04 | 5:35:04 |
|
||||
| New extensions' interface in address bar broken for some extensions | https://github.com/zen-browser/desktop/issues/10907 | 0:12:05 | 3 days, 15:02:25 |
|
||||
| Missing tabs when closing and reopening Zen browser with multiple windows | https://github.com/zen-browser/desktop/issues/10906 | 0:09:30 | 0:09:30 |
|
||||
| missing theme/accent settings (linux, flathub) (?) | https://github.com/zen-browser/desktop/issues/10905 | 1:06:10 | 1:06:10 |
|
||||
| Battery consumption | https://github.com/zen-browser/desktop/issues/10903 | 0:29:10 | 0:29:10 |
|
||||
| browser-init-js.patch error while building from zero on arch linux | https://github.com/zen-browser/desktop/issues/10902 | 3:53:18 | None |
|
||||
| Addon popup window broken when no tabs opened | https://github.com/zen-browser/desktop/issues/10900 | None | 1:43:44 |
|
||||
| Udemy Crash | https://github.com/zen-browser/desktop/issues/10898 | None | 0:04:29 |
|
||||
| Text in sidebar becomes unreadable after switching system theme | https://github.com/zen-browser/desktop/issues/10893 | 12:10:14 | 12:11:00 |
|
||||
| Extensions popup failing to render when zen is recently launched | https://github.com/zen-browser/desktop/issues/10892 | 0:06:10 | 0:33:28 |
|
||||
| New tab URL popup doesn’t appear when opening a new tab using Ctrl+T while watching videos in fullscreen | https://github.com/zen-browser/desktop/issues/10891 | 9:44:27 | 15:42:30 |
|
||||
| Zen Browser’s RAM usage on Arch Linux suddenly completely blew up after waking up from sleep (64GB of RAM + 32GB of Zram) | https://github.com/zen-browser/desktop/issues/10889 | 11:05:26 | 4 days, 0:26:42 |
|
||||
| Holy GPU Usage (I have a 6750xt for reference {12GB VRAM} ) | https://github.com/zen-browser/desktop/issues/10888 | 13:36:41 | 5 days, 21:19:18 |
|
||||
| Dragging tabs across multi-screens | https://github.com/zen-browser/desktop/issues/10875 | None | None |
|
||||
| Sidbery Conflict in Zen Browser only | https://github.com/zen-browser/desktop/issues/10871 | None | 2 days, 5:59:58 |
|
||||
| Bookmarks Bar Folders is incorrectly redundantly displayed | https://github.com/zen-browser/desktop/issues/10866 | 2 days, 17:12:01 | None |
|
||||
| Source tarball should include zen locales | https://github.com/zen-browser/desktop/issues/10865 | None | 15:18:10 |
|
||||
| Simplify extension login breaking | https://github.com/zen-browser/desktop/issues/10864 | 0:12:31 | 1:06:05 |
|
||||
| Open site in container sites cannot be added to essentials | https://github.com/zen-browser/desktop/issues/10862 | 1:07:05 | None |
|
||||
| 1password addon integration fails to show unlock window | https://github.com/zen-browser/desktop/issues/10859 | 0:39:20 | None |
|
||||
| duplicated letters or conflict with Vietnamese keyboards | https://github.com/zen-browser/desktop/issues/10858 | 1:29:34 | 1:35:14 |
|
||||
| Creating a space with multiple windows open freezes other windows | https://github.com/zen-browser/desktop/issues/10857 | 8:08:55 | None |
|
||||
| Mozilla services miscredited in user menu | https://github.com/zen-browser/desktop/issues/10854 | None | 4 days, 2:52:29 |
|
||||
| Website's icons not showing if not loaded | https://github.com/zen-browser/desktop/issues/10853 | 0:06:20 | 0:06:20 |
|
||||
| Bookmarks Toolbar is completely blank (flatpak install) | https://github.com/zen-browser/desktop/issues/10852 | 0:58:24 | 2:24:04 |
|
||||
| Closing a tab switches to a particular previously visited tab instead of the immediately previous | https://github.com/zen-browser/desktop/issues/10848 | None | None |
|
||||
| A resize cursor appears. | https://github.com/zen-browser/desktop/issues/10846 | 10:28:06 | None |
|
||||
| Bookmarks Toolbar can not "only show on new tab" | https://github.com/zen-browser/desktop/issues/10845 | 9:18:48 | None |
|
||||
| Sound not working on browser | https://github.com/zen-browser/desktop/issues/10844 | 9:25:58 | None |
|
||||
| Theme issue on the UI | https://github.com/zen-browser/desktop/issues/10835 | None | None |
|
||||
| Zombie processes | https://github.com/zen-browser/desktop/issues/10834 | 0:22:17 | None |
|
||||
| The URL bar flashes too often | https://github.com/zen-browser/desktop/issues/10832 | None | 0:04:01 |
|
||||
| Fixed or anchored website in browser can't be removed | https://github.com/zen-browser/desktop/issues/10828 | 0:15:40 | 6:35:29 |
|
||||
| The media controls at the bottom overlap important elements. | https://github.com/zen-browser/desktop/issues/10824 | 9:33:17 | 17:48:58 |
|
||||
| [Twilight] Compact mode button causing top toolbar to not hide/to not appear when hovering | https://github.com/zen-browser/desktop/issues/10821 | None | 17:59:30 |
|
||||
| the top bar is not functional as expexted. | https://github.com/zen-browser/desktop/issues/10820 | 0:22:50 | 14:40:32 |
|
||||
| Browser Screen Goes Blank (Them color ) Randomly –No UI Visible, Audio Still play . | https://github.com/zen-browser/desktop/issues/10817 | None | None |
|
||||
| Sidebar Gets Stuck After Interacting With an Exntension in Compact Mode | https://github.com/zen-browser/desktop/issues/10812 | 2:15:35 | 10:54:25 |
|
||||
| website setting lost | https://github.com/zen-browser/desktop/issues/10811 | None | None |
|
||||
| Scrolling cause GPU spikes | https://github.com/zen-browser/desktop/issues/10810 | 0:02:36 | 3:39:42 |
|
||||
| No such native application org.gnome.chrome_gnome_shell | https://github.com/zen-browser/desktop/issues/10806 | 2:20:05 | None |
|
||||
| keep crashing | https://github.com/zen-browser/desktop/issues/10804 | 1 day, 0:05:54 | None |
|
||||
| Workspace-aware restore closed tab behavior for reopening tabs | https://github.com/zen-browser/desktop/issues/10803 | 1 day, 20:48:51 | 1 day, 20:48:51 |
|
||||
| After activation "Zen will never remember history" all toolbars are black and the font color is also black | https://github.com/zen-browser/desktop/issues/10802 | 9:08:32 | None |
|
||||
| Fullscreen mode doesn't hide toolbar and sidebar | https://github.com/zen-browser/desktop/issues/10800 | 7:38:33 | 7:38:33 |
|
||||
| DOH: Zen loose connectivity when network changes | https://github.com/zen-browser/desktop/issues/10799 | None | None |
|
||||
| Large Memory Leak Issue (zen.exe not properly exiting) | https://github.com/zen-browser/desktop/issues/10797 | 10:46:25 | 10:46:25 |
|
||||
| Absolutely broken compact mode 1.17t | https://github.com/zen-browser/desktop/issues/10796 | 10:56:37 | 1 day, 11:24:34 |
|
||||
| I am being randomly logged out of websites | https://github.com/zen-browser/desktop/issues/10792 | None | None |
|
||||
| 1Password desktop app integration not working in Zen Browser | https://github.com/zen-browser/desktop/issues/10788 | 0:44:13 | 0:44:13 |
|
||||
| [Bug] WebRender content becomes blurry at 5120x1440 with NVIDIA eGPU on Linux (X11) - Upstream Firefox has this issue too but not as badly | https://github.com/zen-browser/desktop/issues/10787 | None | None |
|
||||
| Tab Icons not rendering for certain tabs | https://github.com/zen-browser/desktop/issues/10782 | 0:09:03 | 0:09:03 |
|
||||
| Dragging sidebar moves the window | https://github.com/zen-browser/desktop/issues/10781 | 1:56:10 | 1:56:10 |
|
||||
| blinking caret bug | https://github.com/zen-browser/desktop/issues/10780 | 3:09:48 | 3:09:48 |
|
||||
| Freezing youtube videos when i change screens | https://github.com/zen-browser/desktop/issues/10779 | None | None |
|
||||
| Browser Icons Not Showing on Toolbar or Favorites in KDE Plasma on Fedora Linux | https://github.com/zen-browser/desktop/issues/10778 | None | None |
|
||||
| AUR version of Zen Browser glitches/pauses continuously | https://github.com/zen-browser/desktop/issues/10777 | 12:31:55 | None |
|
||||
| When tab changes while sub-folder is closing, does not fold the tab opened | https://github.com/zen-browser/desktop/issues/10772 | 9:29:58 | 9:29:58 |
|
||||
| Green artifacts appear on the scrollbar while scrolling some webpages | https://github.com/zen-browser/desktop/issues/10766 | 6:41:23 | None |
|
||||
| no newtab wallpaper apart from Default Workspace with no set profile container. | https://github.com/zen-browser/desktop/issues/10764 | 1:01:42 | 5:12:31 |
|
||||
| Zen is slow to update and restart on macOS | https://github.com/zen-browser/desktop/issues/10763 | None | None |
|
||||
| Layout issue: Preventing window from closing, minimizing, or resizing | https://github.com/zen-browser/desktop/issues/10762 | None | 18 days, 0:27:20 |
|
||||
| Url bar overflow when click fullscreen | https://github.com/zen-browser/desktop/issues/10760 | None | None |
|
||||
| Updates Failing | https://github.com/zen-browser/desktop/issues/10759 | 1 day, 9:15:55 | 1 day, 10:06:37 |
|
||||
| Youtube video playback noticeably dropping frames | https://github.com/zen-browser/desktop/issues/10756 | 7:33:59 | None |
|
||||
| Some websites' background is missing, uses Zen's theme color instead | https://github.com/zen-browser/desktop/issues/10755 | None | 0:02:35 |
|
||||
| Toolbar History icon nonfunctional | https://github.com/zen-browser/desktop/issues/10752 | 20:34:15 | None |
|
||||
| Video and audio playback error after recent pacman update | https://github.com/zen-browser/desktop/issues/10751 | None | 3:41:57 |
|
||||
| Twitch.tv Login Issue on Zen Browser | https://github.com/zen-browser/desktop/issues/10750 | 5:49:14 | 1 day, 1:42:41 |
|
||||
| Missing translations | https://github.com/zen-browser/desktop/issues/10749 | 3:28:20 | None |
|
||||
| Passbolt Password Manager doesn't work properly | https://github.com/zen-browser/desktop/issues/10748 | 12:48:48 | 12:48:48 |
|
||||
| Update are broken on macos since 1.16.4b | https://github.com/zen-browser/desktop/issues/10746 | 2 days, 16:23:56 | None |
|
||||
| Blank Context Menu | https://github.com/zen-browser/desktop/issues/10745 | 10:19:37 | 11:46:43 |
|
||||
| Cant load beehiv login page | https://github.com/zen-browser/desktop/issues/10744 | 14:48:10 | 14:48:10 |
|
||||
| Ctrl+Shift+T after deleting a folder breaks Zen | https://github.com/zen-browser/desktop/issues/10743 | None | None |
|
||||
| Settings: Search -> Address bar with browsing history negates open tabs selection | https://github.com/zen-browser/desktop/issues/10741 | None | None |
|
||||
| NGINX 404 of some sites | https://github.com/zen-browser/desktop/issues/10740 | 3:51:13 | 18:34:43 |
|
||||
| no pop up edit bookmark pages after triggered with 1) shortcut and 2) star icon after right click. setting "Sidebar only" of the 3 sidebar modes | https://github.com/zen-browser/desktop/issues/10738 | 4 days, 5:09:44 | 16 days, 22:20:24 |
|
||||
| Sidebar resize issue when dragging the cursor beyond smallest size | https://github.com/zen-browser/desktop/issues/10737 | 1:03:24 | None |
|
||||
| Can't access extensions menu from New Tab | https://github.com/zen-browser/desktop/issues/10733 | 1:46:53 | 2 days, 1:20:18 |
|
||||
| Regular window tabs lost on closing if Incognito window is open | https://github.com/zen-browser/desktop/issues/10732 | 1:48:17 | 2:00:03 |
|
||||
| Nested folders go back to root of workspace when opening Zen. | https://github.com/zen-browser/desktop/issues/10730 | 3:57:00 | None |
|
||||
| Youtube videoplay laggy | https://github.com/zen-browser/desktop/issues/10729 | 6:03:54 | 2 days, 2:00:09 |
|
||||
| Stay on page doesn't work in pinned/essential tabs | https://github.com/zen-browser/desktop/issues/10728 | None | None |
|
||||
| Touch Keyboard Does Not Show | https://github.com/zen-browser/desktop/issues/10727 | 18 days, 12:51:30 | None |
|
||||
| No page info in compact mode if clicked on URL | https://github.com/zen-browser/desktop/issues/10724 | None | 1:10:01 |
|
||||
| Search Bar Problem | https://github.com/zen-browser/desktop/issues/10723 | 3:29:09 | 19:52:36 |
|
||||
| Can't disable Hide Tab bar | https://github.com/zen-browser/desktop/issues/10722 | 0:12:09 | 2:23:39 |
|
||||
| Compact Mode - Customize Toolbar - Sidebar cannot have Items | https://github.com/zen-browser/desktop/issues/10721 | 4:31:48 | 4:31:48 |
|
||||
| [macOS] File upload dialog freezes Zen Browser for several seconds | https://github.com/zen-browser/desktop/issues/10719 | None | 1:29:55 |
|
||||
| Mouse hover breaks Ctrl + Tab (tab switching) | https://github.com/zen-browser/desktop/issues/10715 | 4 days, 19:04:17 | 5 days, 4:09:28 |
|
||||
| Spotify not working after updating to 1.16.3b | https://github.com/zen-browser/desktop/issues/10714 | 0:12:47 | 2:11:45 |
|
||||
| Cursor dissapears in most online text editors | https://github.com/zen-browser/desktop/issues/10713 | 5:37:12 | None |
|
||||
| Tabs dont close | https://github.com/zen-browser/desktop/issues/10710 | None | None |
|
||||
| Address Bar opens on keypress right after starting zen | https://github.com/zen-browser/desktop/issues/10709 | None | None |
|
||||
| Search bar wont fully disappear when trying to close it | https://github.com/zen-browser/desktop/issues/10708 | 9:51:49 | 9:51:49 |
|
||||
| [Twilight] Tabs' area is reduced when enabling compact mode in collapsed toolbars layout | https://github.com/zen-browser/desktop/issues/10706 | 15:58:04 | 15:58:04 |
|
||||
| Is not possible expand de tabs side bar | https://github.com/zen-browser/desktop/issues/10705 | 0:19:09 | 12:56:28 |
|
||||
| Missing tab navigation keyboard shortcut | https://github.com/zen-browser/desktop/issues/10704 | 2:47:17 | 1 day, 1:48:51 |
|
||||
| Switching workspace hotkey slow to repeat. | https://github.com/zen-browser/desktop/issues/10703 | 4:59:37 | None |
|
||||
| DevTools warning: connected browser newer than Zen (unsupported setup message) | https://github.com/zen-browser/desktop/issues/10702 | None | 0:07:32 |
|
||||
| - [Bug] High Memory & Disk Consumption on Snapdragon X Plus Device | https://github.com/zen-browser/desktop/issues/10701 | None | None |
|
||||
| Youtube Live Streams Are Not Working After The Update | https://github.com/zen-browser/desktop/issues/10698 | 3:17:57 | 1 day, 3:35:02 |
|
||||
| Very low performance | https://github.com/zen-browser/desktop/issues/10695 | 1:40:48 | 1:40:48 |
|
||||
| Can you fucing fix the ctrashing???? | https://github.com/zen-browser/desktop/issues/10693 | 0:42:11 | 3:45:23 |
|
||||
| Strange Behaviour with Context Menu Clicks | https://github.com/zen-browser/desktop/issues/10691 | 6:58:32 | None |
|
||||
| Can't play DRM content on the latest release 1.16.3b | https://github.com/zen-browser/desktop/issues/10689 | 15:28:49 | None |
|
||||
| On macOS, workspace swipe actions require "Swipe between pages" to be enabled in system settings | https://github.com/zen-browser/desktop/issues/10687 | None | None |
|
||||
| macOS Altcodes / Modifier Keys Cause Keyboard Shortcut Issues | https://github.com/zen-browser/desktop/issues/10686 | 11 days, 13:05:50 | None |
|
||||
| Mute button simply stopped functioning. | https://github.com/zen-browser/desktop/issues/10685 | None | None |
|
||||
| Linux: 1Password desktop integration fails for Flatpak and Tarball installs | https://github.com/zen-browser/desktop/issues/10684 | None | None |
|
||||
| Entire Program Constantly Crashes With No Discernible Reproduction Method, Making it Unusable | https://github.com/zen-browser/desktop/issues/10683 | 4:17:45 | 1 day, 10:38:49 |
|
||||
| URL Bar appears cut off and onto the side (Floating URL Bar Issue) | https://github.com/zen-browser/desktop/issues/10682 | 1:31:06 | 0:02:30 |
|
||||
| All tabs keep crashing on Windows | https://github.com/zen-browser/desktop/issues/10681 | 1 day, 7:25:22 | None |
|
||||
| Failure to Update Zen Browser from Version 1.16.1b-1 to 1.16.2b-1 | https://github.com/zen-browser/desktop/issues/10678 | 2:02:51 | 5:04:58 |
|
||||
| Cannot set hotkey for "Stop Loading" (Browser:Stop). | https://github.com/zen-browser/desktop/issues/10677 | 2 days, 0:55:20 | 2 days, 0:55:19 |
|
||||
| Zen has suddenly overriden default Bitwarden keyboard shortcut and even when unbound it cannot be used for bitwarden | https://github.com/zen-browser/desktop/issues/10676 | None | None |
|
||||
| Zen Browser blocks Macbook from sleep | https://github.com/zen-browser/desktop/issues/10673 | None | None |
|
||||
| Cannot select text in URL bar by dragging mouse | https://github.com/zen-browser/desktop/issues/10671 | None | 1 day, 20:37:27 |
|
||||
| Bookmarks bar partially obscured by sidebar | https://github.com/zen-browser/desktop/issues/10667 | 19 days, 23:45:50 | None |
|
||||
| Browser freezes when tab is opened by external app with workspace switching enabled | https://github.com/zen-browser/desktop/issues/10666 | 1 day, 1:33:52 | None |
|
||||
| The bookmarks bar disappears in full screen mode | https://github.com/zen-browser/desktop/issues/10665 | 18:54:47 | 20:41:21 |
|
||||
| Websites rendering broken for me in 1.16 (fixed but reporting for clarity) | https://github.com/zen-browser/desktop/issues/10664 | None | None |
|
||||
| cmd + option + M interferes with macOS cmd + option + H + M global command | https://github.com/zen-browser/desktop/issues/10663 | None | None |
|
||||
| Zen freezes for ~3 seconds when downloading a file | https://github.com/zen-browser/desktop/issues/10657 | 18:33:18 | None |
|
||||
| Twitch Video Stuttering | https://github.com/zen-browser/desktop/issues/10653 | 1 day, 0:24:44 | None |
|
||||
| Recent Update Made Zen crash when using NVIDIA HW Acceleration (X11, Linux) | https://github.com/zen-browser/desktop/issues/10652 | 5 days, 18:32:13 | None |
|
||||
| Search bar does not hide and stays stuck on screen | https://github.com/zen-browser/desktop/issues/10650 | 0:10:53 | 2:43:42 |
|
||||
| browser stutter/halts/unresponsive | https://github.com/zen-browser/desktop/issues/10649 | 11:29:19 | None |
|
||||
| Issue with `1.16.2b-1` | https://github.com/zen-browser/desktop/issues/10648 | 6:46:15 | 6:46:15 |
|
||||
| Zen Sync not working | https://github.com/zen-browser/desktop/issues/10647 | 1 day, 7:52:54 | 12 days, 4:07:32 |
|
||||
| Stability issue: random crashes after v1.16.2b update | https://github.com/zen-browser/desktop/issues/10646 | 3:44:53 | 10:49:23 |
|
||||
|
||||
_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-10-01..2025-10-31`
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Performance umschalten
|
||||
zen-devtools-toggle-storage-shortcut = Speicher umschalten
|
||||
zen-devtools-toggle-dom-shortcut = DOM umschalten
|
||||
zen-devtools-toggle-accessibility-shortcut = Barrierefreiheit umschalten
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Alle nicht angehefteten Tabs schließen
|
||||
|
||||
@@ -63,8 +63,8 @@ zen-generic-next = Weiter
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Erlaubt
|
||||
zen-site-data-setting-block = Blockiert
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-protections-enabled = Aktiviert
|
||||
zen-site-data-protections-disabled = Deaktiviert
|
||||
zen-site-data-setting-cross-site = Cross-Site-Cookie
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Erweiterung
|
||||
@@ -79,13 +79,13 @@ zen-site-data-get-addons =
|
||||
zen-site-data-site-settings =
|
||||
.label = Alle Website-Einstellungen
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = Diese Seite teilen
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = Lesemodus aktivieren
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = Screenshot erstellen
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = Diese Seite als Lesezeichen hinzufügen
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = URL kopieren
|
||||
zen-site-data-setting-site-protection = Tracking-Schutz
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Arbeitsbereich löschen?
|
||||
zen-workspaces-delete-workspace-body = Sind Sie sicher, dass Sie { $name } löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs geschlossen! Nutze <span>{ $shortcut }</span> , um rückgängig zu machen.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Löschen
|
||||
.tooltiptext = Alle nicht angehefteten Tabs schließen
|
||||
|
||||
@@ -56,6 +56,9 @@ pane-settings-workspaces-title = Workspaces
|
||||
zen-tabs-unloader-enabled =
|
||||
.label = Enable Tab Unloader
|
||||
|
||||
zen-tabs-close-on-back-with-no-history =
|
||||
.label = Close tab and switch to its owner tab (or most recently used tab) when going back with no history
|
||||
|
||||
zen-look-and-feel-compact-toolbar-themed =
|
||||
.label = Use themed background for compact toolbar
|
||||
|
||||
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = 성능 탭 전환
|
||||
zen-devtools-toggle-storage-shortcut = 저장소 탭 전환
|
||||
zen-devtools-toggle-dom-shortcut = DOM 탭 전환
|
||||
zen-devtools-toggle-accessibility-shortcut = 접근성 탭 전환
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = 모든 고정되지 않은 탭 닫기
|
||||
|
||||
@@ -63,8 +63,8 @@ zen-generic-next = 다음
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = 허용됨
|
||||
zen-site-data-setting-block = 금지됨
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-protections-enabled = 활성화됨
|
||||
zen-site-data-protections-disabled = 비활성화됨
|
||||
zen-site-data-setting-cross-site = 사이트 간 공유 쿠키
|
||||
zen-site-data-security-info-extension =
|
||||
.label = 확장
|
||||
@@ -79,13 +79,13 @@ zen-site-data-get-addons =
|
||||
zen-site-data-site-settings =
|
||||
.label = 모든 사이트 설정
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = 이 페이지 공유
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = 읽기 모드 켜기
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = 화면 캡쳐
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = 이 페이지 북마크
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = URL 복사
|
||||
zen-site-data-setting-site-protection = 추적 보호
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = 워크스페이스를 삭제하시겠습
|
||||
zen-workspaces-delete-workspace-body = 정말 { $name }을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = 탭을 닫았습니다! 되돌리려면 <span>{ $shortcut }</span>을 사용하세요.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = 탭 정리
|
||||
.tooltiptext = 고정되지 않은 모든 탭을 닫습니다
|
||||
|
||||
@@ -16,12 +16,12 @@ sync-engine-workspaces =
|
||||
.label = Darbo sritys
|
||||
.tooltiptext = Sinchronizuokite savo darbo sritis tarp įrenginių
|
||||
.accesskey = W
|
||||
zen-glance-title = Greitasis pažiūrėjimas
|
||||
zen-glance-header = Bendrieji greitojo pažiūrėjimo nustatymai
|
||||
zen-glance-description = Gaukite greitą nuorodų apžvalgą neatidarydami jų naujoje kortelėje
|
||||
zen-glance-title = Spartusis pažiūrėjimas
|
||||
zen-glance-header = Bendrieji sparčiojo pažiūrėjimo nustatymai
|
||||
zen-glance-description = Gaukite sparčią savo nuorodų apžvalgą neatverdami jų naujoje kortelėje.
|
||||
zen-glance-trigger-label = Paleidimo būdas
|
||||
zen-glance-enabled =
|
||||
.label = Įjungti greitą pažiūrėjimą
|
||||
.label = Įjungti spartų pažiūrėjimą
|
||||
zen-glance-trigger-ctrl-click =
|
||||
.label = Vald + spausti
|
||||
zen-glance-trigger-alt-click =
|
||||
@@ -29,15 +29,15 @@ zen-glance-trigger-alt-click =
|
||||
zen-glance-trigger-shift-click =
|
||||
.label = Lyg2 + spausti
|
||||
zen-glance-trigger-meta-click =
|
||||
.label = Meta (Komanda) + spausti
|
||||
.label = „Meta“ (komanda) + spausti
|
||||
zen-look-and-feel-compact-view-header = Rodyti kompaktiniame rodinyje
|
||||
zen-look-and-feel-compact-view-description = Rodyti tik tas įrankių juostas, kurias naudojate!
|
||||
zen-look-and-feel-compact-view-description = Rodyti tik tas įrankių juostas, kurias naudojate.
|
||||
zen-look-and-feel-compact-view-enabled =
|
||||
.label = Įjungti „{ -brand-short-name }“ kompaktinį režimą
|
||||
zen-look-and-feel-compact-view-top-toolbar =
|
||||
.label = Slėpti viršutinę įrankių juostą ir kompaktiniu režimu
|
||||
zen-look-and-feel-compact-toolbar-flash-popup =
|
||||
.label = Trumpai padaryti, kad įrankių juosta iškyltų perjungiant arba atidarant naujas korteles kompaktiniu režimu
|
||||
.label = Trumpai padaryti, kad įrankių juosta iškiltų perjungiant arba atidarant naujas korteles kompaktiniu režimu
|
||||
pane-zen-tabs-title = Kortelių tvarkymas
|
||||
category-zen-workspaces =
|
||||
.tooltiptext = { pane-zen-tabs-title }
|
||||
@@ -50,29 +50,29 @@ zen-workspace-continue-where-left-off =
|
||||
.label = Tęskite, kur baigėte
|
||||
pane-zen-pinned-tab-manager-title = Prisegtos kortelės
|
||||
zen-pinned-tab-manager-header = Bendrieji prisegtų kortelių nustatymai
|
||||
zen-pinned-tab-manager-description = Tvarkykite papildomą prisegtų kortelių elgseną
|
||||
zen-pinned-tab-manager-description = Tvarkykite papildomą prisegtų kortelių elgseną.
|
||||
zen-pinned-tab-manager-restore-pinned-tabs-to-pinned-url =
|
||||
.label = Atkurti prisegtas korteles į jų originalų prisegtą URL paleidimo metu
|
||||
zen-pinned-tab-manager-container-specific-essentials-enabled =
|
||||
.label = Įjungti konkrečiam konteineriui būtinuosius
|
||||
zen-pinned-tab-manager-close-shortcut-behavior-label = Užverti kortelę sparčiųjų klavišų elgsena
|
||||
zen-pinned-tab-manager-close-shortcut-behavior-label = Užvėrimo kortelę sparčiųjų klavišų elgsena
|
||||
zen-pinned-tab-manager-reset-unload-switch-close-shortcut-option =
|
||||
.label = Atkurti URL, iškelti ir perjungti į kitą kortelę
|
||||
.label = Atkurti URL, iškelti ir perjungti į sekančią kortelę
|
||||
zen-pinned-tab-manager-unload-switch-close-shortcut-option =
|
||||
.label = Iškelti ir perjungti į kitą kortelę
|
||||
.label = Iškelti ir perjungti į sekančią kortelę
|
||||
zen-pinned-tab-manager-reset-switch-close-shortcut-option =
|
||||
.label = Atkurti URL ir perjungti į kitą kortelę
|
||||
.label = Atkurti URL ir perjungti į sekančią kortelę
|
||||
zen-pinned-tab-manager-switch-close-shortcut-option =
|
||||
.label = Perjungti į kitą kortelę
|
||||
.label = Perjungti į sekančią kortelę
|
||||
zen-pinned-tab-manager-reset-close-shortcut-option =
|
||||
.label = Atkurti URL
|
||||
zen-pinned-tab-manager-close-close-shortcut-option =
|
||||
.label = Užverti kortelę
|
||||
pane-zen-workspaces-header = Darbo sritys
|
||||
zen-settings-workspaces-header = Bendrieji darbo sričių nustatymai
|
||||
zen-settings-workspaces-description = Su darbo sritimis galite vienu metu atlikti kelias naršymo seansus!
|
||||
zen-settings-workspaces-description = Su darbo sritimis galite vienu metu atlikti kelias naršymo seansus.
|
||||
zen-settings-workspaces-enabled =
|
||||
.label = Įjungti darbo sritis (eksperimentinė)
|
||||
.label = Įjungti darbo sritis
|
||||
zen-settings-workspaces-hide-default-container-indicator =
|
||||
.label = Slėpti numatytojo konteinerio indikatorių kortelių juostoje
|
||||
zen-key-unsaved = Neįrašytas spartusis klavišas! Iš naujo jį įvedę, paspauskite grįžimo klavišą.
|
||||
@@ -80,18 +80,18 @@ zen-key-conflict = Konfliktuoja su „{ $group }“ -> „{ $shortcut }“
|
||||
pane-zen-theme-title = Temų nustatymai
|
||||
zen-vertical-tabs-title = Šoninė juosta ir kortelių išdėstymas
|
||||
zen-vertical-tabs-header = Vertikalios kortelės
|
||||
zen-vertical-tabs-description = Tvarkykite korteles vertikaliame išdėstyme
|
||||
zen-vertical-tabs-description = Tvarkykite korteles vertikaliame išdėstyme.
|
||||
zen-vertical-tabs-show-expand-button =
|
||||
.label = Rodyti išskleidimo mygtuką
|
||||
zen-vertical-tabs-newtab-on-tab-list =
|
||||
.label = Rodyti naujos kortelės mygtuką kortelių sąraše
|
||||
zen-vertical-tabs-newtab-top-button-up =
|
||||
.label = Perkelti naujos kortelės mygtuką į viršų
|
||||
zen-vertical-tabs-expand-tabs-by-default = Išskleisti korteles pagal numatytąją nustatymą
|
||||
zen-vertical-tabs-dont-expand-tabs-by-default = Neišskleisti kortelių pagal numatytąją nustatymą
|
||||
zen-vertical-tabs-expand-tabs-by-default = Išskleisti korteles pagal numatytąją
|
||||
zen-vertical-tabs-dont-expand-tabs-by-default = Neišskleisti kortelių pagal numatytąją
|
||||
zen-vertical-tabs-expand-tabs-on-hover = Išskleisti korteles užvedus (neveikia kompaktiniame režime)
|
||||
zen-vertical-tabs-expand-tabs-header = Kaip išskleisti korteles
|
||||
zen-vertical-tabs-expand-tabs-description = Pasirinkite, kaip išskleisti kortelės šoninėje juostoje
|
||||
zen-vertical-tabs-expand-tabs-description = Pasirinkite, kaip išskleisti kortelės šoninėje juostoje.
|
||||
zen-theme-marketplace-header = „Zen“ modifikacijos
|
||||
zen-theme-disable-all-enabled =
|
||||
.title = Išjungti visus modifikacijas
|
||||
@@ -128,10 +128,10 @@ pane-zen-marketplace-title = „Zen“ modifikacijos
|
||||
zen-themes-auto-update =
|
||||
.label = Automatiškai atnaujinti įdiegtas modifikacijas paleidimo metu
|
||||
zen-settings-workspaces-force-container-tabs-to-workspace =
|
||||
.label = Perjungti į darbo sritį, kurioje konteineris nustatytas kaip numatytasis, atidarant konteinerio korteles
|
||||
.label = Perjungti į darbo sritį, kurioje konteineris nustatytas kaip numatytasis, atveriant konteinerio korteles
|
||||
zen-theme-marketplace-link = Aplankyti parduotuvę
|
||||
zen-dark-theme-styles-header = Tamsios temos stiliai
|
||||
zen-dark-theme-styles-description = Tinkinkite tamsią temą pagal savo poreikius
|
||||
zen-dark-theme-styles-description = Tinkinkite tamsią temą pagal savo poreikius.
|
||||
zen-dark-theme-styles-amoled = Naktinė tema
|
||||
zen-dark-theme-styles-default = Numatytoji tamsi tema
|
||||
zen-dark-theme-styles-colorful = Spalvinga tamsi tema
|
||||
@@ -153,13 +153,13 @@ category-zen-CKS =
|
||||
.tooltiptext = { pane-zen-CKS-title }
|
||||
pane-settings-CKS-title = „{ -brand-short-name }“ klaviatūros spartieji klavišai
|
||||
zen-settings-CKS-header = Tinkinkite klaviatūros sparčiuosius klavišus
|
||||
zen-settings-CKS-description = Keiskite numatytąsias klaviatūros sparčiąsias klavišus pagal savo pageidavimus ir patobulinkite naršymo potyrį
|
||||
zen-settings-CKS-description = Keiskite numatytąsias klaviatūros sparčiąsias klavišus pagal savo pageidavimus ir patobulinkite naršymo patirtį.
|
||||
zen-settings-CKS-disable-firefox =
|
||||
.label = Išjungti „{ -brand-short-name }“ numatytuosius klaviatūros sparčiuosius klavišus
|
||||
zen-settings-CKS-duplicate-shortcut =
|
||||
.label = Dubliuoti spartųjį klavišą
|
||||
zen-settings-CKS-reset-shortcuts =
|
||||
.label = Atkurti į numatytuosius nustatymus
|
||||
.label = Atkurti į numatytuosius
|
||||
zenCKSOption-group-other = Kita
|
||||
zenCKSOption-group-windowAndTabManagement = Langų ir kortelių tvarkymas
|
||||
zenCKSOption-group-navigation = Naršymas
|
||||
@@ -234,7 +234,7 @@ zen-find-shortcut = Rasti puslapyje
|
||||
zen-search-find-again-shortcut = Rasti dar kartą
|
||||
zen-search-find-again-shortcut-prev = Rasti ankstesnį
|
||||
zen-search-find-again-shortcut-2 = Rasti dar kartą (Alt)
|
||||
zen-bookmark-this-page-shortcut = Pridėti šį puslapį prie adresyno
|
||||
zen-bookmark-this-page-shortcut = Įtraukti šį puslapį į adresyną
|
||||
zen-bookmark-show-library-shortcut = Rodyti adresyno biblioteką
|
||||
zen-key-stop = Stabdyti įkėlimą
|
||||
zen-full-zoom-reduce-shortcut = Sumažinti
|
||||
@@ -257,7 +257,7 @@ zen-close-tab-shortcut = Užverti kortelę
|
||||
zen-compact-mode-shortcut-show-sidebar = Perjungti slankančią šoninę juostą
|
||||
zen-compact-mode-shortcut-show-toolbar = Perjungti slankančią įrankių juostą
|
||||
zen-compact-mode-shortcut-toggle = Perjungti kompaktinį režimą
|
||||
zen-glance-expand = Išskleisti greitą pažiūrėjimą
|
||||
zen-glance-expand = Išskleisti spartų pažiūrėjimą
|
||||
zen-workspace-shortcut-switch-1 = Perjungti į 1 darbo sritį
|
||||
zen-workspace-shortcut-switch-2 = Perjungti į 2 darbo sritį
|
||||
zen-workspace-shortcut-switch-3 = Perjungti į 3 darbo sritį
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Perjungti našumą
|
||||
zen-devtools-toggle-storage-shortcut = Perjungti saugyklą
|
||||
zen-devtools-toggle-dom-shortcut = Perjungti DOM
|
||||
zen-devtools-toggle-accessibility-shortcut = Perjungti prieinamumą
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Užverti visas neprisegtas korteles
|
||||
|
||||
@@ -28,7 +28,7 @@ pictureinpicture-minimize-btn =
|
||||
.tooltip = Sumažinti
|
||||
zen-panel-ui-gradient-generator-custom-color = Pasirinktinė spalva
|
||||
zen-panel-ui-gradient-generator-saved-message = Gradientas sėkmingai įrašytas.
|
||||
zen-copy-current-url-confirmation = Copied current URL!
|
||||
zen-copy-current-url-confirmation = Nukopijuotas dabartinis URL.
|
||||
zen-general-cancel-label =
|
||||
.label = Atšaukti
|
||||
zen-general-confirm =
|
||||
@@ -59,13 +59,13 @@ urlbar-search-mode-zen_actions = Veiksmai
|
||||
zen-site-data-settings = Nustatymai
|
||||
zen-generic-manage = Tvarkyti
|
||||
zen-generic-more = Daugiau
|
||||
zen-generic-next = Next
|
||||
zen-generic-next = Sekantis
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Leidžiama
|
||||
zen-site-data-setting-block = Užblokuota
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
||||
zen-site-data-protections-enabled = Įjungta
|
||||
zen-site-data-protections-disabled = Išjungta
|
||||
zen-site-data-setting-cross-site = Tarpusavio svetainės slapukas
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Plėtinys
|
||||
zen-site-data-security-info-secure =
|
||||
@@ -79,16 +79,16 @@ zen-site-data-get-addons =
|
||||
zen-site-data-site-settings =
|
||||
.label = Visi svetainės nustatymai
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = Bendrinti šį puslapį
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = Įeiti į skaitytojo režimą
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = Daryti ekrano kopiją
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = Įtraukti šį puslapį į adresyną
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = Copy URL
|
||||
zen-site-data-setting-site-protection = Tracking Protection
|
||||
.tooltiptext = Kopijuoti URL
|
||||
zen-site-data-setting-site-protection = Stebėjimo apsauga
|
||||
|
||||
# Section: Feature callouts
|
||||
|
||||
|
||||
@@ -19,5 +19,5 @@ zen-split-view-modifier-header = Skaidymo rodinys
|
||||
zen-split-view-modifier-activate-reallocation =
|
||||
.label = Aktyvuoti perskyrimą
|
||||
zen-split-view-modifier-enabled-toast = Skaidymo rodinio pertvarkymas įjungtas.
|
||||
zen-split-view-modifier-enabled-toast-description = Nutempkite rodinį, kad jį pertvarkytumėte. Paspauskite Gr, kad išeitumėte.
|
||||
zen-split-view-modifier-enabled-toast-description = Nutempkite rodinį, kad pertvarkytumėte. Paspauskite Gr, kad išeitumėte.
|
||||
zen-split-view-modifier-disabled-toast = Skaidymo rodinio pertvarkymas išjungtas.
|
||||
|
||||
@@ -18,7 +18,7 @@ zen-welcome-workspace-colors-description = Suasmeninkite savo naršyklę, suteik
|
||||
zen-welcome-start-browsing-title =
|
||||
Viskas parengta?<br/>
|
||||
Pradėkime veikti!
|
||||
zen-welcome-start-browsing-description-1 = Viskas parengta ir gali veikti. Spustelėkite toliau esantį mygtuką, kad pradėtumėte naršyti su „{ -brand-short-name }“.
|
||||
zen-welcome-start-browsing-description-1 = Viskas parengta ir gali veikti. Spustelėkite žemiau esantį mygtuką, kad pradėtumėte naršyti su „{ -brand-short-name }“.
|
||||
zen-welcome-start-browsing = Pirmyn!
|
||||
zen-welcome-default-search-title = Jūsų numatytasis paieškos variklis
|
||||
zen-welcome-default-search-description = Pasirinkite numatytąjį paieškos variklį. Vėliau visada galite ją pakeisti!
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Ištrinti erdvę?
|
||||
zen-workspaces-delete-workspace-body = Ar tikrai norite ištrinti „{ $name }“? Šio veiksmo anuliuoti negalima.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Kortelės užvertos! Naudokite <span>{ $shortcut }</span>, kad atšauktumėte.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Valyti
|
||||
.tooltiptext = Užverti visas neprisegtas korteles
|
||||
|
||||
@@ -30,8 +30,8 @@ zen-glance-trigger-shift-click =
|
||||
.label = Shift + klik
|
||||
zen-glance-trigger-meta-click =
|
||||
.label = Windows (Command) + klik
|
||||
zen-look-and-feel-compact-view-header = Toon in compacte weergave
|
||||
zen-look-and-feel-compact-view-description = Toon alleen de werkbalken die je gebruikt!
|
||||
zen-look-and-feel-compact-view-header = Weergeven in compacte weergave
|
||||
zen-look-and-feel-compact-view-description = Alleen de werkbalken weergeven die je gebruikt!
|
||||
zen-look-and-feel-compact-view-enabled =
|
||||
.label = { -brand-short-name }'s compacte modus inschakelen
|
||||
zen-look-and-feel-compact-view-top-toolbar =
|
||||
@@ -45,7 +45,7 @@ pane-settings-workspaces-title = Werkruimtes
|
||||
zen-tabs-unloader-enabled =
|
||||
.label = Tabblad ontlader inschakelen
|
||||
zen-look-and-feel-compact-toolbar-themed =
|
||||
.label = Use themed background for compact toolbar
|
||||
.label = Gebruik thema achtergrond voor compacte werkbalk
|
||||
zen-workspace-continue-where-left-off =
|
||||
.label = Verdergaan waar je was gebleven
|
||||
pane-zen-pinned-tab-manager-title = Vastgezette tabbladen
|
||||
@@ -76,7 +76,7 @@ zen-settings-workspaces-enabled =
|
||||
zen-settings-workspaces-hide-default-container-indicator =
|
||||
.label = Verberg de standaard container indicator in de tabbladbalk
|
||||
zen-key-unsaved = Snelkoppeling is niet opgeslagen! Bewaar deze door op de "Escape" knop te drukken na het opnieuw typen.
|
||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
||||
zen-key-conflict = Conflicten met { $group } -> { $shortcut }
|
||||
pane-zen-theme-title = Thema instellingen
|
||||
zen-vertical-tabs-title = Zijbalk en tabbladen lay-out
|
||||
zen-vertical-tabs-header = Verticale tabbladen
|
||||
@@ -84,9 +84,9 @@ zen-vertical-tabs-description = Beheer je tabbladen in een verticale lay-out
|
||||
zen-vertical-tabs-show-expand-button =
|
||||
.label = Uitbreiden knop weergeven
|
||||
zen-vertical-tabs-newtab-on-tab-list =
|
||||
.label = Laat nieuwe tabblad knop zien op de tabblad lijst
|
||||
.label = Laat nieuwe tabblad knop zien op de tabbladlijst
|
||||
zen-vertical-tabs-newtab-top-button-up =
|
||||
.label = Verplaats de nieuwe tab knop naar boven
|
||||
.label = Verplaats de nieuwe tabblad knop naar boven
|
||||
zen-vertical-tabs-expand-tabs-by-default = Tabbladen standaard uitbreiden
|
||||
zen-vertical-tabs-dont-expand-tabs-by-default = Tabbladen niet standaard uitbreiden
|
||||
zen-vertical-tabs-expand-tabs-on-hover = Tabbladen uitbreiden bij hoveren (werkt niet in compacte modus)
|
||||
@@ -130,7 +130,7 @@ zen-themes-auto-update =
|
||||
zen-settings-workspaces-force-container-tabs-to-workspace =
|
||||
.label = Schakel over naar de werkruimte waar container als standaard is ingesteld bij het openen van container tabbladen
|
||||
zen-theme-marketplace-link = Winkel bezoeken
|
||||
zen-dark-theme-styles-header = Donkere thema stijlen
|
||||
zen-dark-theme-styles-header = Donker thema stijlen
|
||||
zen-dark-theme-styles-description = Pas het donker thema aan naar jouw voorkeur
|
||||
zen-dark-theme-styles-amoled = Nacht thema
|
||||
zen-dark-theme-styles-default = Standaard donker thema
|
||||
@@ -223,7 +223,7 @@ zen-key-exit-full-screen = Volledig scherm afsluiten
|
||||
zen-ai-chatbot-sidebar-shortcut = AI-chatbot zijbalk togglen
|
||||
zen-key-inspector-mac = Inspector (Mac) togglen
|
||||
zen-toggle-sidebar-shortcut = Firefox zijbalk togglen
|
||||
zen-toggle-pin-tab-shortcut = Toggle Pin Tab
|
||||
zen-toggle-pin-tab-shortcut = Tabblad vastzetten togglen
|
||||
zen-reader-mode-toggle-shortcut-other = Leesmodus togglen
|
||||
zen-picture-in-picture-toggle-shortcut = Beeld-in-beeld togglen
|
||||
zen-nav-reload-shortcut-2 = Pagina opnieuw laden
|
||||
@@ -234,7 +234,7 @@ zen-find-shortcut = Vinden op pagina
|
||||
zen-search-find-again-shortcut = Opnieuw zoeken
|
||||
zen-search-find-again-shortcut-prev = Vorige vinden
|
||||
zen-search-find-again-shortcut-2 = Opnieuw zoeken (alternatief)
|
||||
zen-bookmark-this-page-shortcut = Bladwijzer deze pagina
|
||||
zen-bookmark-this-page-shortcut = Bladwijzer toevoegen voor deze pagina
|
||||
zen-bookmark-show-library-shortcut = Bladwijzerbibliotheek weergeven
|
||||
zen-key-stop = Laden stoppen
|
||||
zen-full-zoom-reduce-shortcut = Uitzoomen
|
||||
@@ -248,8 +248,8 @@ zen-private-browsing-shortcut = Privé browsen
|
||||
zen-screenshot-shortcut = Schermafbeelding maken
|
||||
zen-key-sanitize = Browsergegevens wissen
|
||||
zen-quit-app-shortcut = Applicatie afsluiten
|
||||
zen-key-wr-capture-cmd = WR opname opdracht
|
||||
zen-key-wr-toggle-capture-sequence-cmd = WR opnamereeks togglen
|
||||
zen-key-wr-capture-cmd = WR-opname opdracht
|
||||
zen-key-wr-toggle-capture-sequence-cmd = WR-opnamereeks togglen
|
||||
zen-nav-reload-shortcut = Pagina opnieuw laden
|
||||
zen-nav-reload-shortcut-skip-cache = Pagina opnieuw laden (Cache overslaan)
|
||||
zen-close-shortcut = Venster sluiten
|
||||
@@ -257,7 +257,7 @@ zen-close-tab-shortcut = Tabblad sluiten
|
||||
zen-compact-mode-shortcut-show-sidebar = Zwevende zijbalk togglen
|
||||
zen-compact-mode-shortcut-show-toolbar = Zwevende werkbalk togglen
|
||||
zen-compact-mode-shortcut-toggle = Compacte modus togglen
|
||||
zen-glance-expand = Expand Glance
|
||||
zen-glance-expand = Snel bekijken uitbreiden
|
||||
zen-workspace-shortcut-switch-1 = Schakelen naar werkruimte 1
|
||||
zen-workspace-shortcut-switch-2 = Schakelen naar werkruimte 2
|
||||
zen-workspace-shortcut-switch-3 = Schakelen naar werkruimte 3
|
||||
@@ -276,7 +276,7 @@ zen-split-view-shortcut-grid = Gesplitste weergave raster togglen
|
||||
zen-split-view-shortcut-vertical = Gesplitste weergave verticaal togglen
|
||||
zen-split-view-shortcut-horizontal = Gesplitste weergave horizontaal togglen
|
||||
zen-split-view-shortcut-unsplit = Gesplitste weergave sluiten
|
||||
zen-new-empty-split-view-shortcut = New Empty Split View
|
||||
zen-new-empty-split-view-shortcut = Nieuwe lege gesplitste weergave
|
||||
zen-key-select-tab-1 = Selecteer tabblad #1
|
||||
zen-key-select-tab-2 = Selecteer tabblad #2
|
||||
zen-key-select-tab-3 = Selecteer tabblad #3
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Prestaties togglen
|
||||
zen-devtools-toggle-storage-shortcut = Opslag togglen
|
||||
zen-devtools-toggle-dom-shortcut = DOM togglen
|
||||
zen-devtools-toggle-accessibility-shortcut = Toegankelijkheid togglen
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Alle niet-vastgezette tabbladen sluiten
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
zen-folders-search-placeholder =
|
||||
.placeholder = Zoek { $folder-name }...
|
||||
.placeholder = { $folder-name } zoeken...
|
||||
zen-folders-panel-rename-folder =
|
||||
.label = Map hernoemen
|
||||
zen-folders-panel-unpack-folder =
|
||||
@@ -19,7 +19,7 @@ zen-folders-panel-change-folder-space =
|
||||
zen-folders-panel-change-icon-folder =
|
||||
.label = Wijzig pictogram
|
||||
zen-folders-unload-all-tooltip =
|
||||
.tooltiptext = Unload active in this folder
|
||||
.tooltiptext = Actieven ontladen in deze map
|
||||
zen-folders-unload-folder =
|
||||
.label = Unload All Tabs
|
||||
zen-folders-search-no-results = No tabs matching that search 🤔
|
||||
.label = Alle tabbladen ontladen
|
||||
zen-folders-search-no-results = Geen tabbladen die overeenkomen met die zoekopdracht 🤔
|
||||
|
||||
@@ -28,7 +28,7 @@ pictureinpicture-minimize-btn =
|
||||
.tooltip = Minimaliseren
|
||||
zen-panel-ui-gradient-generator-custom-color = Aangepaste kleur
|
||||
zen-panel-ui-gradient-generator-saved-message = Verloop is succesvol opgeslagen!
|
||||
zen-copy-current-url-confirmation = Copied current URL!
|
||||
zen-copy-current-url-confirmation = Huidige URL gekopieerd!
|
||||
zen-general-cancel-label =
|
||||
.label = Annuleren
|
||||
zen-general-confirm =
|
||||
@@ -42,8 +42,8 @@ zen-library-sidebar-workspaces =
|
||||
zen-library-sidebar-mods =
|
||||
.label = Mods
|
||||
zen-toggle-compact-mode-button =
|
||||
.label = Compact Mode
|
||||
.tooltiptext = Toggle Compact Mode
|
||||
.label = Compacte modus
|
||||
.tooltiptext = Compacte modus togglen
|
||||
|
||||
# note: Do not translate the "<br/>" tags in the following string
|
||||
|
||||
@@ -52,45 +52,45 @@ zen-close-label = Sluiten
|
||||
zen-singletoolbar-urlbar-placeholder-with-name =
|
||||
.placeholder = Zoeken…
|
||||
zen-icons-picker-emoji =
|
||||
.label = Emojis
|
||||
.label = Emoji's
|
||||
zen-icons-picker-svg =
|
||||
.label = Icons
|
||||
urlbar-search-mode-zen_actions = Actions
|
||||
zen-site-data-settings = Settings
|
||||
zen-generic-manage = Manage
|
||||
zen-generic-more = More
|
||||
zen-generic-next = Next
|
||||
.label = Iconen
|
||||
urlbar-search-mode-zen_actions = Acties
|
||||
zen-site-data-settings = Instellingen
|
||||
zen-generic-manage = Beheren
|
||||
zen-generic-more = Meer
|
||||
zen-generic-next = Volgende
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Allowed
|
||||
zen-site-data-setting-block = Blocked
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
||||
zen-site-data-setting-allow = Toegestaan
|
||||
zen-site-data-setting-block = Geblokkeerd
|
||||
zen-site-data-protections-enabled = Ingeschakeld
|
||||
zen-site-data-protections-disabled = Uitgeschakeld
|
||||
zen-site-data-setting-cross-site = Cross-site cookie
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Extension
|
||||
.label = Extensie
|
||||
zen-site-data-security-info-secure =
|
||||
.label = Secure
|
||||
.label = Beveiligd
|
||||
zen-site-data-security-info-not-secure =
|
||||
.label = Not Secure
|
||||
.label = Niet beveiligd
|
||||
zen-site-data-manage-addons =
|
||||
.label = Manage Extensions
|
||||
.label = Extensies beheren
|
||||
zen-site-data-get-addons =
|
||||
.label = Add Extensions
|
||||
.label = Extensies toevoegen
|
||||
zen-site-data-site-settings =
|
||||
.label = All Site Settings
|
||||
.label = Alle site-instellingen
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = Deze pagina delen
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = Leesmodus openen
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = Maak een schermafbeelding
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = Bladwijzer toevoegen voor deze pagina
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = Copy URL
|
||||
zen-site-data-setting-site-protection = Tracking Protection
|
||||
.tooltiptext = URL kopiëren
|
||||
zen-site-data-setting-site-protection = Tracking bescherming
|
||||
|
||||
# Section: Feature callouts
|
||||
|
||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
||||
zen-site-data-panel-feature-callout-title = Een nieuw thuis voor add-ons, machtigingen en meer
|
||||
zen-site-data-panel-feature-callout-subtitle = Klik op het icoon om de site-instellingen te beheren, beveiligingsinfo te bekijken, extensies te openen en gemeenschappelijke acties uit te voeren.
|
||||
|
||||
@@ -15,6 +15,6 @@ zen-split-link =
|
||||
zen-split-view-modifier-header = Gesplitste weergave
|
||||
zen-split-view-modifier-activate-reallocation =
|
||||
.label = Herverdeling activeren
|
||||
zen-split-view-modifier-enabled-toast = Geplitste weergave herschikken staat AAN.
|
||||
zen-split-view-modifier-enabled-toast = Gesplitste weergave herschikken staat AAN.
|
||||
zen-split-view-modifier-enabled-toast-description = Sleep de tabbladen om de weergave te herschikken. Druk op Esc om af te sluiten.
|
||||
zen-split-view-modifier-disabled-toast = Geplitste weergave herschikken staat UIT.
|
||||
|
||||
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
||||
.label = Beide verbergen
|
||||
.accesskey = U
|
||||
zen-toolbar-context-new-folder =
|
||||
.label = New Folder
|
||||
.label = Nieuwe map
|
||||
.accesskey = N
|
||||
sidebar-zen-expand =
|
||||
.label = Zijbalk uitklappen
|
||||
|
||||
@@ -6,7 +6,7 @@ zen-welcome-title-line1 = Welkom bij
|
||||
zen-welcome-title-line2 = een rustiger internet
|
||||
zen-welcome-import-title = Een frisse start, dezelfde bladwijzers
|
||||
zen-welcome-import-description-1 = Je bladwijzers, geschiedenis en wachtwoorden zijn als een spoor van broodkruimels door het internet - laat ze niet achter!
|
||||
zen-welcome-import-description-2 = Easily bring them over from another browser and pick up right where you left off..
|
||||
zen-welcome-import-description-2 = Breng ze eenvoudig over vanuit een andere browser en ga verder waar je was gebleven.
|
||||
zen-welcome-import-button = Nu importeren
|
||||
zen-welcome-set-default-browser = { -brand-short-name } instellen als standaardbrowser
|
||||
zen-welcome-dont-set-default-browser = { -brand-short-name } NIET instellen als standaardbrowser
|
||||
|
||||
@@ -6,20 +6,20 @@ zen-panel-ui-workspaces-text = Ruimtes
|
||||
zen-panel-ui-workspaces-create =
|
||||
.label = Ruimte aanmaken
|
||||
zen-panel-ui-folder-create =
|
||||
.label = Create Folder
|
||||
.label = Map aanmaken
|
||||
zen-panel-ui-new-empty-split =
|
||||
.label = New Split
|
||||
.label = Nieuwe splitsing
|
||||
zen-workspaces-panel-context-delete =
|
||||
.label = Ruimte verwijderen
|
||||
.accesskey = D
|
||||
zen-workspaces-panel-change-name =
|
||||
.label = Naam wijzigen
|
||||
zen-workspaces-panel-change-icon =
|
||||
.label = Icon wijzigen
|
||||
.label = Icoon wijzigen
|
||||
zen-workspaces-panel-context-default-profile =
|
||||
.label = Profiel instellen
|
||||
zen-workspaces-panel-unload =
|
||||
.label = Unload Space
|
||||
.label = Ruimte ontladen
|
||||
zen-workspaces-how-to-reorder-title = Hoe ruimtes te herschikken
|
||||
zen-workspaces-how-to-reorder-desc = Sleep het ruimte icoon onderaan de zijbalk om ze te herschikken
|
||||
zen-workspaces-change-theme =
|
||||
@@ -56,10 +56,10 @@ zen-workspace-creation-profile = Profiel
|
||||
zen-workspace-creation-header = Maak een ruimte
|
||||
zen-workspace-creation-label = Ruimtes worden gebruikt om je tabbladen en sessies te organiseren.
|
||||
zen-workspaces-delete-workspace-title = Ruimte verwijderen?
|
||||
zen-workspaces-delete-workspace-body = Are you sure you want to delete { $name }? This action cannot be undone.
|
||||
zen-workspaces-delete-workspace-body = Weet je zeker dat je { $name } wilt verwijderen? Deze actie kan niet ongedaan gemaakt worden.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabbladen gesloten! Gebruik <span>{ $shortcut }</span> om ongedaan te maken.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Wissen
|
||||
.tooltiptext = Alle niet-vastgezette tabbladen sluiten
|
||||
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Włącz Wydajność
|
||||
zen-devtools-toggle-storage-shortcut = Włącz Pamięć
|
||||
zen-devtools-toggle-dom-shortcut = Włącz DOM
|
||||
zen-devtools-toggle-accessibility-shortcut = Włącz Dostępność
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Zamknij wszystkie nieprzypięte karty
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Usunąć Przestrzeń roboczą?
|
||||
zen-workspaces-delete-workspace-body = Czy na pewno chcesz usunąć { $name }? Tej czynności nie można cofnąć.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Zamknięto karty! Użyj <span>{ $shortcut }</span> aby przywrócić.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Wyczyść
|
||||
.tooltiptext = Zamknij wszystkie nieprzypięte karty
|
||||
|
||||
@@ -76,7 +76,7 @@ zen-settings-workspaces-enabled =
|
||||
zen-settings-workspaces-hide-default-container-indicator =
|
||||
.label = Ocultar o indicador padrão do contêiner na barra de guias
|
||||
zen-key-unsaved = Atalho não salvo! Proteja-o clicando na tecla "Escape" após digitá-lo novamente.
|
||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
||||
zen-key-conflict = Conflitos com { $group } -> { $shortcut }
|
||||
pane-zen-theme-title = Opções de tema
|
||||
zen-vertical-tabs-title = Layout de barra lateral e abas
|
||||
zen-vertical-tabs-header = Abas verticais
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Ativar/Desativar Desempenho
|
||||
zen-devtools-toggle-storage-shortcut = Ativar/Desativar Armazenamento
|
||||
zen-devtools-toggle-dom-shortcut = Ativar/Desativar DOM
|
||||
zen-devtools-toggle-accessibility-shortcut = Ativar/Desativar Acessibilidade
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Fechar Todas as Abas Não Fixadas
|
||||
|
||||
@@ -26,7 +26,7 @@ pictureinpicture-minimize-btn =
|
||||
.tooltip = Minimizar
|
||||
zen-panel-ui-gradient-generator-custom-color = Cor Personalizada
|
||||
zen-panel-ui-gradient-generator-saved-message = O gradiente foi salvo com sucesso!
|
||||
zen-copy-current-url-confirmation = Copied current URL!
|
||||
zen-copy-current-url-confirmation = URL atual copiada!
|
||||
zen-general-cancel-label =
|
||||
.label = Cancelar
|
||||
zen-general-confirm =
|
||||
@@ -57,13 +57,13 @@ urlbar-search-mode-zen_actions = Ações
|
||||
zen-site-data-settings = Configurações
|
||||
zen-generic-manage = Gerenciar
|
||||
zen-generic-more = Mais
|
||||
zen-generic-next = Next
|
||||
zen-generic-next = Próximo
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Permitido
|
||||
zen-site-data-setting-block = Bloqueado
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
||||
zen-site-data-protections-enabled = Habilitado
|
||||
zen-site-data-protections-disabled = Desabilitado
|
||||
zen-site-data-setting-cross-site = Cookie entre Sites
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Extensão
|
||||
zen-site-data-security-info-secure =
|
||||
@@ -77,18 +77,18 @@ zen-site-data-get-addons =
|
||||
zen-site-data-site-settings =
|
||||
.label = Todas as Configurações do Site
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = Compartilhar Esta Página
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = Entrar no Modo Leitura
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = Tirar Captura de Tela
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = Marcar Esta Página
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = Copy URL
|
||||
zen-site-data-setting-site-protection = Tracking Protection
|
||||
.tooltiptext = Copiar URL
|
||||
zen-site-data-setting-site-protection = Proteção contra Rastreamento
|
||||
|
||||
# Section: Feature callouts
|
||||
|
||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
||||
zen-site-data-panel-feature-callout-title = Um novo lar para extensões, permissões e mais
|
||||
zen-site-data-panel-feature-callout-subtitle = Clique no ícone para gerenciar configurações do site, visualizar informações de segurança, acessar extensões e realizar ações comuns.
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Excluir Espaço?
|
||||
zen-workspaces-delete-workspace-body = Tem certeza que deseja excluir { $name }? Esta ação não pode ser desfeita.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Abas Fechadas! Use <span>{ $shortcut }</span> para desfazer.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Limpar
|
||||
.tooltiptext = Fechar todas as abas não fixadas
|
||||
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Alternar Desempenho
|
||||
zen-devtools-toggle-storage-shortcut = Alternar Armazenamento
|
||||
zen-devtools-toggle-dom-shortcut = Alternar DOM
|
||||
zen-devtools-toggle-accessibility-shortcut = Alternar Acessibilidade
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Fechar Todos os Separadores Não Fixados
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Eliminar Espaço de Trabalho?
|
||||
zen-workspaces-delete-workspace-body = Tem certeza que deseja eliminar { $name }? Esta ação não pode ser desfeita.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Separadores Fechados! Use <span>{ $shortcut }</span> para voltar atrás.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Limpar
|
||||
.tooltiptext = Fechar todos os separadores não fixados
|
||||
|
||||
@@ -304,4 +304,4 @@ zen-devtools-toggle-performance-shortcut = Увімк. / Вимк. продук
|
||||
zen-devtools-toggle-storage-shortcut = Увімк. / Вимк. сховище
|
||||
zen-devtools-toggle-dom-shortcut = Увімк. / Вимк. DOM
|
||||
zen-devtools-toggle-accessibility-shortcut = Увімк. / Вимк. доступ
|
||||
zen-close-all-unpinned-tabs-shortcut = Close All Unpinned Tabs
|
||||
zen-close-all-unpinned-tabs-shortcut = Закрити всі відкріплені вкладки
|
||||
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Видалити простір?
|
||||
zen-workspaces-delete-workspace-body = Упевнені, що хочете видалити { $name }? Цю дію неможливо скасувати.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Вкладки закрито! Скористайтеся <span>{ $shortcut }</span>, аби повернути їх.
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Очистити
|
||||
.tooltiptext = Закрити всі відкріплені вкладки
|
||||
|
||||
@@ -74,7 +74,7 @@ zen-settings-workspaces-description = Với các không gian làm việc, bạn
|
||||
zen-settings-workspaces-enabled =
|
||||
.label = Bật không gian làm việc
|
||||
zen-settings-workspaces-hide-default-container-indicator =
|
||||
.label = Ẩn chỉ báo vùng chứa mặc định trên thanh thẻ
|
||||
.label = Ẩn container mặc định trên thanh công cụ
|
||||
zen-key-unsaved = Lối tắt không an toàn! Xin hãy làm an toàn nó bằng cách ấn nút "Escape/Esc" sau khi nhập lại nó.
|
||||
zen-key-conflict = Conflicts with { $group } -> { $shortcut }
|
||||
pane-zen-theme-title = Cài đặt chủ đề
|
||||
@@ -145,7 +145,7 @@ zen-urlbar-behavior-label = Hành vi thanh đường dẫn
|
||||
zen-urlbar-behavior-normal =
|
||||
.label = Bình thường
|
||||
zen-urlbar-behavior-floating-on-type =
|
||||
.label = Tách ra khi nhập
|
||||
.label = Tách ra khi nhập chữ
|
||||
zen-urlbar-behavior-float =
|
||||
.label = Luôn luôn tách
|
||||
pane-zen-CKS-title = Phím tắt
|
||||
@@ -174,7 +174,7 @@ zenCKSOption-group-zen-split-view = Chế độ xem chia đôi
|
||||
zenCKSOption-group-devTools = Công cụ nhà phát triển
|
||||
zen-key-quick-restart = Khởi động lại nhanh
|
||||
zen-window-new-shortcut = Cửa sổ mới
|
||||
zen-tab-new-shortcut = Tab mới
|
||||
zen-tab-new-shortcut = Thẻ mới
|
||||
zen-key-redo = Hoàn tác
|
||||
zen-restore-last-closed-tab-shortcut = Khôi phục lại thẻ gần nhất đã đóng
|
||||
zen-location-open-shortcut = Mở đường dẫn
|
||||
|
||||
@@ -19,7 +19,7 @@ zen-folders-panel-change-folder-space =
|
||||
zen-folders-panel-change-icon-folder =
|
||||
.label = Đổi biểu tượng thư mục thẻ
|
||||
zen-folders-unload-all-tooltip =
|
||||
.tooltiptext = Unload active in this folder
|
||||
.tooltiptext = Tắt các thẻ trong thư mục
|
||||
zen-folders-unload-folder =
|
||||
.label = Tải lại tất cả các thẻ
|
||||
zen-folders-search-no-results = Không có thẻ nào trùng với tìm kiếm 🤔
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# 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 = hồ sơ hiện tại
|
||||
zen-panel-ui-current-profile-text = Hồ sơ hiện tại
|
||||
unified-extensions-description = Các tiện ích mở rộng được sử dụng để mang thêm tính năng vào { -brand-short-name }.
|
||||
tab-context-zen-reset-pinned-tab =
|
||||
.label = Đặt lại thẻ đã ghim
|
||||
@@ -14,7 +14,7 @@ tab-context-zen-remove-essential =
|
||||
.label = Loại ra khỏi thẻ thường trú
|
||||
.accesskey = R
|
||||
tab-context-zen-replace-pinned-url-with-current =
|
||||
.label = Thay thế đường dường dẫn đã gim với hiện tại
|
||||
.label = Thay thế đường dường dẫn đã ghim với hiện tại
|
||||
.accesskey = C
|
||||
zen-themes-corrupted = Thư mục chủ đề { -brand-short-name } của bạn đã bị hư, chúng đã được trả về thiết kế gốc.
|
||||
zen-shortcuts-corrupted = Tệp phím tắt { -brand-short-name } của bạn đã bị hư. Chúng đã được trẻ về phím tắt gốc.
|
||||
@@ -42,8 +42,8 @@ zen-library-sidebar-workspaces =
|
||||
zen-library-sidebar-mods =
|
||||
.label = Mods
|
||||
zen-toggle-compact-mode-button =
|
||||
.label = Compact Mode
|
||||
.tooltiptext = Toggle Compact Mode
|
||||
.label = Chế độ tối giản
|
||||
.tooltiptext = Bật chế độ tối giản
|
||||
|
||||
# note: Do not translate the "<br/>" tags in the following string
|
||||
|
||||
@@ -55,42 +55,42 @@ zen-icons-picker-emoji =
|
||||
.label = Biểu cảm
|
||||
zen-icons-picker-svg =
|
||||
.label = Biểu tượng
|
||||
urlbar-search-mode-zen_actions = Actions
|
||||
zen-site-data-settings = Settings
|
||||
zen-generic-manage = Manage
|
||||
zen-generic-more = More
|
||||
zen-generic-next = Next
|
||||
urlbar-search-mode-zen_actions = Hành động
|
||||
zen-site-data-settings = Thiết lập
|
||||
zen-generic-manage = Quản lý
|
||||
zen-generic-more = Thêm
|
||||
zen-generic-next = Tiếp
|
||||
# These labels will be used for the site data panel settings
|
||||
zen-site-data-setting-allow = Allowed
|
||||
zen-site-data-setting-block = Blocked
|
||||
zen-site-data-protections-enabled = Enabled
|
||||
zen-site-data-protections-disabled = Disabled
|
||||
zen-site-data-setting-cross-site = Cross-Site cookie
|
||||
zen-site-data-setting-allow = Đã cho phép
|
||||
zen-site-data-setting-block = Đã chặn
|
||||
zen-site-data-protections-enabled = Đã tắt
|
||||
zen-site-data-protections-disabled = Đã bật
|
||||
zen-site-data-setting-cross-site = Cookie liên trang web
|
||||
zen-site-data-security-info-extension =
|
||||
.label = Extension
|
||||
.label = Tiện ích mở rộng (Extensions)
|
||||
zen-site-data-security-info-secure =
|
||||
.label = Secure
|
||||
.label = Đã bảo mật
|
||||
zen-site-data-security-info-not-secure =
|
||||
.label = Not Secure
|
||||
.label = Chưa bảo mật
|
||||
zen-site-data-manage-addons =
|
||||
.label = Manage Extensions
|
||||
.label = Quản lý tiện ích mở rộng (Extensions)
|
||||
zen-site-data-get-addons =
|
||||
.label = Add Extensions
|
||||
.label = Thêm tiện ích mở rộng (Extensions)
|
||||
zen-site-data-site-settings =
|
||||
.label = All Site Settings
|
||||
.label = Cài đặt tổng quan của trang web
|
||||
zen-site-data-header-share =
|
||||
.tooltiptext = Share This Page
|
||||
.tooltiptext = Chia sẻ trang
|
||||
zen-site-data-header-reader-mode =
|
||||
.tooltiptext = Enter Reader Mode
|
||||
.tooltiptext = Bật chế độ đọc
|
||||
zen-site-data-header-screenshot =
|
||||
.tooltiptext = Take a Screenshot
|
||||
.tooltiptext = Chụp màn hình
|
||||
zen-site-data-header-bookmark =
|
||||
.tooltiptext = Bookmark This Page
|
||||
.tooltiptext = Lưu (bookmark) trang này
|
||||
zen-urlbar-copy-url-button =
|
||||
.tooltiptext = Copy URL
|
||||
zen-site-data-setting-site-protection = Tracking Protection
|
||||
.tooltiptext = Sao chép đường dẫn (URL)
|
||||
zen-site-data-setting-site-protection = Phòng chống theo dõi
|
||||
|
||||
# Section: Feature callouts
|
||||
|
||||
zen-site-data-panel-feature-callout-title = A new home for add-ons, permissions, and more
|
||||
zen-site-data-panel-feature-callout-subtitle = Click the icon to manage site settings, view security info, access extensions, and perform common actions.
|
||||
zen-site-data-panel-feature-callout-title = Diện mạo mới cho add-ons, quyền truy cập và nhiều hơn nữa
|
||||
zen-site-data-panel-feature-callout-subtitle = Bấm vào biểu tượng để quản lý các thiết lập của trang web, kiểm tra thông tin bảo mật, quyền truy cập của các tiện ích và thực thiện các tác vụ cơ bản.
|
||||
|
||||
@@ -18,7 +18,7 @@ zen-toolbar-context-compact-mode-hide-both =
|
||||
.label = Ẩn cả hai
|
||||
.accesskey = H
|
||||
zen-toolbar-context-new-folder =
|
||||
.label = New Folder
|
||||
.label = Thư mục mới
|
||||
.accesskey = N
|
||||
sidebar-zen-expand =
|
||||
.label = Mở rộng thanh bên
|
||||
@@ -33,7 +33,7 @@ tabbrowser-unload-tab-button =
|
||||
tabbrowser-reset-pin-button =
|
||||
.tooltiptext =
|
||||
{ $tabCount ->
|
||||
[one] Tải lại và gim thẻ
|
||||
*[other] Tải lại và gim { $tabCount } thẻ
|
||||
[one] Tải lại và ghim thẻ
|
||||
*[other] Tải lại và ghim { $tabCount } thẻ
|
||||
}
|
||||
tab-reset-pin-label = Quay trở lại đường dẫn đã ghim
|
||||
|
||||
@@ -14,13 +14,13 @@ zen-welcome-initial-essentials-title = Những thẻ quan trọng của bạn, l
|
||||
zen-welcome-initial-essentials-description-1 = Cho dù bạn có mở bao nhiêu, những thẻ quan trọng nhất của bạn luôn dễ dàng truy cập, luôn luôn trong tầm tay.
|
||||
zen-welcome-initial-essentials-description-2 = Thẻ thường trú sẽ luôn luôn ở đó, trên tất cả không gian làm việc của bạn.
|
||||
zen-welcome-workspace-colors-title = Không gian làm việc của bạn, màu sắc của bạn
|
||||
zen-welcome-workspace-colors-description = Cá nhân của trình duyệt của bạn, cho mỗi không gian làm việc một màu sắc đặc.
|
||||
zen-welcome-workspace-colors-description = Cá nhân hóa trình duyệt của bạn, cho mỗi không gian làm việc một màu sắc đặc trưng.
|
||||
zen-welcome-start-browsing-title =
|
||||
Sẵn sàng chưa?<br/>
|
||||
Bắt đầu thôi nào!
|
||||
zen-welcome-start-browsing-description-1 = Mọi thứ đã sẵn sàng. Nhấn nút bên dưới để bắt đầu lướt web với { -brand-short-name }.
|
||||
zen-welcome-start-browsing = Bắt đầu nào!
|
||||
zen-welcome-default-search-title = Your Default Search Engine
|
||||
zen-welcome-default-search-title = Công cụ tìm kiếm mặc định của bạn là?
|
||||
zen-welcome-default-search-description = Hãy chọn công cụ tìm kiếm mặc đinh. Bạn luôn có thể đổi nó sau này!
|
||||
zen-welcome-skip-button = Bỏ qua
|
||||
zen-welcome-finished = Trình duyệt của bạn đã được thiết lập thành công!
|
||||
|
||||
@@ -8,7 +8,7 @@ zen-panel-ui-workspaces-create =
|
||||
zen-panel-ui-folder-create =
|
||||
.label = Tạo thư mục thẻ
|
||||
zen-panel-ui-new-empty-split =
|
||||
.label = New Split
|
||||
.label = Chia không gian
|
||||
zen-workspaces-panel-context-delete =
|
||||
.label = Xóa không gian làm việc
|
||||
.accesskey = D
|
||||
@@ -19,7 +19,7 @@ zen-workspaces-panel-change-icon =
|
||||
zen-workspaces-panel-context-default-profile =
|
||||
.label = Cài đặt hồ sơ
|
||||
zen-workspaces-panel-unload =
|
||||
.label = Unload Space
|
||||
.label = Tắt tất cả các trang web trong không gian làm việc
|
||||
zen-workspaces-how-to-reorder-title = Cách sắp xếp thứ tự của các không gian làm việc
|
||||
zen-workspaces-how-to-reorder-desc = Kéo và thả các biểu tượng của không gian làm việc ở dưới thanh bên để sắp xếp thứ tự của chúng
|
||||
zen-workspaces-change-theme =
|
||||
@@ -59,7 +59,7 @@ zen-workspaces-delete-workspace-title = Delete Workspace?
|
||||
zen-workspaces-delete-workspace-body = Bạn có chắc là bạn muốn xóa { $name }? Thao tác này sẽ không được hoàn lại.
|
||||
# Note that the html tag MUST not be changed or removed, as it is used to better
|
||||
# display the shortcut in the toast notification.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Tabs Closed! Use <span>{ $shortcut }</span> to undo.
|
||||
zen-workspaces-close-all-unpinned-tabs-toast = Thẻ đã đóng! Bấm <span>{ $shortcut }</span> để hoàn .
|
||||
zen-workspaces-close-all-unpinned-tabs-title =
|
||||
.label = Clear
|
||||
.tooltiptext = Close all unpinned tabs
|
||||
.label = Dọn sạch
|
||||
.tooltiptext = Tắt tất cả các thẻ không ghim
|
||||
|
||||
@@ -23,7 +23,8 @@
|
||||
value: true
|
||||
|
||||
- name: media.videocontrols.picture-in-picture.urlbar-button.enabled
|
||||
value: false
|
||||
value: true
|
||||
locked: true
|
||||
|
||||
# Enable private suggestions
|
||||
- name: browser.search.suggest.enabled
|
||||
|
||||
@@ -57,3 +57,6 @@
|
||||
|
||||
- name: zen.view.shift-down-site-on-hover
|
||||
value: false
|
||||
|
||||
- name: zen.view.show-clear-tabs-button
|
||||
value: true
|
||||
|
||||
@@ -26,6 +26,12 @@
|
||||
- name: zen.urlbar.enable-overrides
|
||||
value: false
|
||||
|
||||
- name: zen.urlbar.single-toolbar-show-copy-url
|
||||
value: true
|
||||
|
||||
- name: zen.urlbar.show-pip-button
|
||||
value: false
|
||||
|
||||
# Mark: Zen suggestions controls
|
||||
|
||||
- name: zen.urlbar.suggestions.quick-actions
|
||||
|
||||
@@ -34,3 +34,6 @@
|
||||
|
||||
- name: zen.tabs.open-pinned-in-new-tab
|
||||
value: true
|
||||
|
||||
- name: zen.tabs.close-on-back-with-no-history
|
||||
value: true
|
||||
|
||||
3
src/.hgignore
Normal file
3
src/.hgignore
Normal file
@@ -0,0 +1,3 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index c079ef11880c5338c4498a0e5b3eb4cf4bfb6e02..ecd06b05381be740197c07c8cf0743dc882727f5 100644
|
||||
index 4386724a82baa72678b7228ef3af9fabc2da318e..01f7ac42ff96f8f96984537f19bde4bbc8cd8d72 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -4069,8 +4069,6 @@ dependencies = [
|
||||
@@ -4167,8 +4167,6 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mime_guess"
|
||||
version = "2.0.4"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/Cargo.toml b/Cargo.toml
|
||||
index 2331ff5733d39e26c0a16301cb83d46ca970f632..777dbd5fb8546466e4a349772ccba254c7ffd691 100644
|
||||
index 772a74e7439d87e9c5486abcf003617240190710..522b5459b30b943832369ff7a73755ad4c7d8140 100644
|
||||
--- a/Cargo.toml
|
||||
+++ b/Cargo.toml
|
||||
@@ -224,6 +224,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||
@@ -227,6 +227,8 @@ moz_asserts = { path = "mozglue/static/rust/moz_asserts" }
|
||||
# Workaround for https://github.com/rust-lang/cargo/issues/11232
|
||||
rure = { path = "third_party/rust/rure" }
|
||||
|
||||
|
||||
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
12
src/browser/actors/EncryptedMediaParent-sys-mjs.patch
Normal file
@@ -0,0 +1,12 @@
|
||||
diff --git a/browser/actors/EncryptedMediaParent.sys.mjs b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||
index 9d3d3db9761cf5b2fde1f70992e82b1733241863..3dc64dc395d5237bf2c290cb8588cf467fb8729a 100644
|
||||
--- a/browser/actors/EncryptedMediaParent.sys.mjs
|
||||
+++ b/browser/actors/EncryptedMediaParent.sys.mjs
|
||||
@@ -200,6 +200,7 @@ export class EncryptedMediaParent extends JSWindowActorParent {
|
||||
"drmContentPlaying",
|
||||
aBrowser
|
||||
)
|
||||
+ || true // zen: We have some issues with this currently, so never show it
|
||||
) {
|
||||
return;
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/actors/WebRTCParent.sys.mjs b/browser/actors/WebRTCParent.sys.mjs
|
||||
index 80fd2177c7112c958ff51bbf7a18ebea39e50fbf..24f62810901dc558e25ee874bd49736bd64fd358 100644
|
||||
index 4ff6ae4d6f272936f0aa1c80a488df16159b42f2..85e4d7bf500603fcd5724658e96c7fd0a04432d3 100644
|
||||
--- a/browser/actors/WebRTCParent.sys.mjs
|
||||
+++ b/browser/actors/WebRTCParent.sys.mjs
|
||||
@@ -152,6 +152,7 @@ export class WebRTCParent extends JSWindowActorParent {
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
diff --git a/browser/base/content/browser-addons.js b/browser/base/content/browser-addons.js
|
||||
index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..29864ab59819271b7319b273c08bdc2736d40c93 100644
|
||||
index f33a300eb0eed74e286da24919ad3e8505f632c3..9f400e887424693d0ecceb9db79fccf2bd5a757d 100644
|
||||
--- a/browser/base/content/browser-addons.js
|
||||
+++ b/browser/base/content/browser-addons.js
|
||||
@@ -1071,7 +1071,7 @@ var gXPInstallObserver = {
|
||||
@@ -1069,7 +1069,7 @@ var gXPInstallObserver = {
|
||||
persistent: true,
|
||||
hideClose: true,
|
||||
popupOptions: {
|
||||
- position: "bottomright topright",
|
||||
+ position: gZenUIManager.panelUIPosition,
|
||||
+ position: gZenUIManager.panelUIPosition(),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1280,7 +1280,7 @@ var gXPInstallObserver = {
|
||||
@@ -1279,7 +1279,7 @@ var gXPInstallObserver = {
|
||||
hideClose: true,
|
||||
timeout: Date.now() + 30000,
|
||||
popupOptions: {
|
||||
- position: "bottomright topright",
|
||||
+ position: gZenUIManager.panelUIPosition,
|
||||
+ position: gZenUIManager.panelUIPosition(),
|
||||
},
|
||||
};
|
||||
|
||||
@@ -2212,7 +2212,7 @@ var gUnifiedExtensions = {
|
||||
@@ -2211,7 +2211,7 @@ var gUnifiedExtensions = {
|
||||
// If the new ID is not added in NOTIFICATION_IDS, consider handling the case
|
||||
// in the "PopupNotificationsBeforeAnchor" handler elsewhere in this file.
|
||||
getPopupAnchorID(aBrowser, aWindow) {
|
||||
@@ -29,7 +29,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..29864ab59819271b7319b273c08bdc27
|
||||
const attr = anchorID + "popupnotificationanchor";
|
||||
|
||||
if (!aBrowser[attr]) {
|
||||
@@ -2223,7 +2223,7 @@ var gUnifiedExtensions = {
|
||||
@@ -2222,7 +2222,7 @@ var gUnifiedExtensions = {
|
||||
anchorID
|
||||
// Anchor on the toolbar icon to position the popup right below the
|
||||
// button.
|
||||
@@ -38,7 +38,7 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..29864ab59819271b7319b273c08bdc27
|
||||
}
|
||||
|
||||
return anchorID;
|
||||
@@ -2516,11 +2516,7 @@ var gUnifiedExtensions = {
|
||||
@@ -2646,11 +2646,7 @@ var gUnifiedExtensions = {
|
||||
// Lazy load the unified-extensions-panel panel the first time we need to
|
||||
// display it.
|
||||
if (!this._panel) {
|
||||
@@ -51,25 +51,24 @@ index 754ce380ed233eb8764af07af3c8dc95d3f39d5c..29864ab59819271b7319b273c08bdc27
|
||||
let customizationArea = this._panel.querySelector(
|
||||
"#unified-extensions-area"
|
||||
);
|
||||
@@ -2570,7 +2566,7 @@ var gUnifiedExtensions = {
|
||||
|
||||
// The button should directly open `about:addons` when the user does not
|
||||
// have any active extensions listed in the unified extensions panel.
|
||||
- if (!this.hasExtensionsInPanel()) {
|
||||
+ if (!this.hasExtensionsInPanel() && false) {
|
||||
let viewID;
|
||||
if (
|
||||
Services.prefs.getBoolPref("extensions.getAddons.showPane", true) &&
|
||||
@@ -2615,7 +2611,7 @@ var gUnifiedExtensions = {
|
||||
@@ -2703,6 +2699,7 @@ var gUnifiedExtensions = {
|
||||
// and no alternative content is available for display in the panel.
|
||||
const policies = this.getActivePolicies();
|
||||
if (
|
||||
+ false &&
|
||||
policies.length &&
|
||||
!this.hasExtensionsInPanel(policies) &&
|
||||
!this.isPrivateWindowMissingExtensionsWithoutPBMAccess() &&
|
||||
@@ -2743,7 +2740,7 @@ var gUnifiedExtensions = {
|
||||
this.recordButtonTelemetry(reason || "extensions_panel_showing");
|
||||
this.ensureButtonShownBeforeAttachingPanel(panel);
|
||||
PanelMultiView.openPopup(panel, this._button, {
|
||||
- position: "bottomright topright",
|
||||
+ position: gZenUIManager.panelUIPosition,
|
||||
+ position: gZenUIManager.panelUIPosition(panel, this._button),
|
||||
triggerEvent: aEvent,
|
||||
});
|
||||
}
|
||||
@@ -2802,18 +2798,20 @@ var gUnifiedExtensions = {
|
||||
@@ -2930,18 +2927,20 @@ var gUnifiedExtensions = {
|
||||
this._maybeMoveWidgetNodeBack(widgetId);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
diff --git a/browser/base/content/browser-commands.js b/browser/base/content/browser-commands.js
|
||||
index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4954b8b94 100644
|
||||
index 939ca497b882b3f4200141ba1b6764fb5c846f45..779cba5ff3df856a246321a36caa3725c054a314 100644
|
||||
--- a/browser/base/content/browser-commands.js
|
||||
+++ b/browser/base/content/browser-commands.js
|
||||
@@ -317,6 +317,10 @@ var BrowserCommands = {
|
||||
@@ -14,6 +14,10 @@ var BrowserCommands = {
|
||||
const where = BrowserUtils.whereToOpenLink(aEvent, false, true);
|
||||
|
||||
if (where == "current") {
|
||||
+ if (!gBrowser.webNavigation.canGoBack && gZenCommonActions.shouldCloseTabOnBack()) {
|
||||
+ gBrowser.removeTab(gBrowser.selectedTab);
|
||||
+ return;
|
||||
+ }
|
||||
try {
|
||||
gBrowser.goBack();
|
||||
} catch (ex) {}
|
||||
@@ -315,6 +319,10 @@ var BrowserCommands = {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +24,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
||||
// A notification intended to be useful for modular peformance tracking
|
||||
// starting as close as is reasonably possible to the time when the user
|
||||
// expressed the intent to open a new tab. Since there are a lot of
|
||||
@@ -401,6 +405,11 @@ var BrowserCommands = {
|
||||
@@ -399,6 +407,11 @@ var BrowserCommands = {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -25,7 +36,7 @@ index 74aae01ddcdc4b6460ebbe174355ca129a89010b..52dd4e6aa49929394ed6afa6b25f4ee4
|
||||
// Keyboard shortcuts that would close a tab that is pinned select the first
|
||||
// unpinned tab instead.
|
||||
if (
|
||||
@@ -408,8 +417,8 @@ var BrowserCommands = {
|
||||
@@ -406,8 +419,8 @@ var BrowserCommands = {
|
||||
(event.ctrlKey || event.metaKey || event.altKey) &&
|
||||
gBrowser.selectedTab.pinned
|
||||
) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser-fullScreenAndPointerLock.js b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
index b41449d4c4bc373a4c9cf449c0bb370bfdbc20d6..f1166929397dd39b7f44bd9cb0d62a45d67f0e1d 100644
|
||||
index bef746dc594ad974c91075cf3657c199f8f8830f..bb671341b6715c42df76f7298ba55e1fac73f33b 100644
|
||||
--- a/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
+++ b/browser/base/content/browser-fullScreenAndPointerLock.js
|
||||
@@ -427,10 +427,10 @@ var FullScreen = {
|
||||
@@ -424,10 +424,10 @@ var FullScreen = {
|
||||
gNavToolbox.classList.toggle("fullscreen-with-menubar", shiftSize > 0);
|
||||
|
||||
let transform = shiftSize > 0 ? `translateY(${shiftSize}px)` : "";
|
||||
|
||||
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
13
src/browser/base/content/browser-gestureSupport-js.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
diff --git a/browser/base/content/browser-gestureSupport.js b/browser/base/content/browser-gestureSupport.js
|
||||
index a28d54bf72c0e6495b9586f220d1859aac794936..66154668b9f85ffbaacea1e8351370659260227b 100644
|
||||
--- a/browser/base/content/browser-gestureSupport.js
|
||||
+++ b/browser/base/content/browser-gestureSupport.js
|
||||
@@ -832,7 +832,7 @@ var gHistorySwipeAnimation = {
|
||||
* @return true if there is a previous page in history, false otherwise.
|
||||
*/
|
||||
canGoBack: function HSA_canGoBack() {
|
||||
- return gBrowser.webNavigation.canGoBack;
|
||||
+ return gBrowser.webNavigation.canGoBack || gZenCommonActions.shouldCloseTabOnBack();
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
|
||||
index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64225e42b0 100644
|
||||
index b4b79e7fb3228ba91bd8afa08659be0d88883725..b4801e2a3076139622d58f81943e61cd61ee1828 100644
|
||||
--- a/browser/base/content/browser.js
|
||||
+++ b/browser/base/content/browser.js
|
||||
@@ -31,6 +31,7 @@ ChromeUtils.defineESModuleGetters(this, {
|
||||
@@ -10,7 +10,21 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
||||
DevToolsSocketStatus:
|
||||
"resource://devtools/shared/security/DevToolsSocketStatus.sys.mjs",
|
||||
DownloadUtils: "resource://gre/modules/DownloadUtils.sys.mjs",
|
||||
@@ -2293,6 +2294,8 @@ var XULBrowserWindow = {
|
||||
@@ -822,7 +823,12 @@ function UpdateBackForwardCommands(aWebNavigation) {
|
||||
|
||||
var backDisabled = backCommand.hasAttribute("disabled");
|
||||
var forwardDisabled = forwardCommand.hasAttribute("disabled");
|
||||
- if (backDisabled == aWebNavigation.canGoBack) {
|
||||
+ var canGoBack = aWebNavigation.canGoBack;
|
||||
+ if (!canGoBack) {
|
||||
+ canGoBack = gZenCommonActions.shouldCloseTabOnBack();
|
||||
+ }
|
||||
+
|
||||
+ if (backDisabled == canGoBack) {
|
||||
if (backDisabled) {
|
||||
backCommand.removeAttribute("disabled");
|
||||
} else {
|
||||
@@ -2298,6 +2304,8 @@ var XULBrowserWindow = {
|
||||
AboutReaderParent.updateReaderButton(gBrowser.selectedBrowser);
|
||||
TranslationsParent.onLocationChange(gBrowser.selectedBrowser);
|
||||
|
||||
@@ -19,7 +33,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
||||
PictureInPicture.updateUrlbarToggle(gBrowser.selectedBrowser);
|
||||
|
||||
if (!gMultiProcessBrowser) {
|
||||
@@ -3795,7 +3798,7 @@ function warnAboutClosingWindow() {
|
||||
@@ -3809,7 +3817,7 @@ function warnAboutClosingWindow() {
|
||||
|
||||
if (!isPBWindow && !toolbar.visible) {
|
||||
return gBrowser.warnAboutClosingTabs(
|
||||
@@ -28,7 +42,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
||||
gBrowser.closingTabsEnum.ALL
|
||||
);
|
||||
}
|
||||
@@ -3835,7 +3838,7 @@ function warnAboutClosingWindow() {
|
||||
@@ -3849,7 +3857,7 @@ function warnAboutClosingWindow() {
|
||||
return (
|
||||
isPBWindow ||
|
||||
gBrowser.warnAboutClosingTabs(
|
||||
@@ -37,7 +51,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
||||
gBrowser.closingTabsEnum.ALL
|
||||
)
|
||||
);
|
||||
@@ -3860,7 +3863,7 @@ function warnAboutClosingWindow() {
|
||||
@@ -3874,7 +3882,7 @@ function warnAboutClosingWindow() {
|
||||
AppConstants.platform != "macosx" ||
|
||||
isPBWindow ||
|
||||
gBrowser.warnAboutClosingTabs(
|
||||
@@ -46,7 +60,7 @@ index 32b67f846b9942ad3da4276bb8748fee915eb485..529ef8895d2ab01b4cbebd2992fd3b64
|
||||
gBrowser.closingTabsEnum.ALL
|
||||
)
|
||||
);
|
||||
@@ -4782,6 +4785,9 @@ var ConfirmationHint = {
|
||||
@@ -4796,6 +4804,9 @@ var ConfirmationHint = {
|
||||
MozXULElement.insertFTLIfNeeded("toolkit/branding/brandings.ftl");
|
||||
MozXULElement.insertFTLIfNeeded("browser/confirmationHints.ftl");
|
||||
document.l10n.setAttributes(this._message, messageId, options.l10nArgs);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser-places.js b/browser/base/content/browser-places.js
|
||||
index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..1f3f4991b3ba7c00516e9708e89e8f95db25a36a 100644
|
||||
index 3bd7b8f6025a7df4ce5cfb66916125bce9ef3991..c408ef829b7540aec72b2307e5d4bfa34109d6cd 100644
|
||||
--- a/browser/base/content/browser-places.js
|
||||
+++ b/browser/base/content/browser-places.js
|
||||
@@ -252,6 +252,8 @@ var StarUI = {
|
||||
@@ -249,6 +249,8 @@ var StarUI = {
|
||||
});
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..1f3f4991b3ba7c00516e9708e89e8f95
|
||||
let onPanelReady = fn => {
|
||||
let target = this.panel;
|
||||
if (target.parentNode) {
|
||||
@@ -303,6 +305,21 @@ var StarUI = {
|
||||
@@ -300,6 +302,21 @@ var StarUI = {
|
||||
}
|
||||
},
|
||||
|
||||
@@ -33,3 +33,11 @@ index 79b4f6f8fb2f7dd8784920038784e6bb0c967e2d..1f3f4991b3ba7c00516e9708e89e8f95
|
||||
removeBookmarkButtonCommand: function SU_removeBookmarkButtonCommand() {
|
||||
this._removeBookmarksOnPopupHidden = true;
|
||||
this.panel.hidePopup();
|
||||
@@ -1797,6 +1814,7 @@ var BookmarkingUI = {
|
||||
document.getElementById("context-bookmarkpage"),
|
||||
PanelMultiView.getViewNode(document, "panelMenuBookmarkThisPage"),
|
||||
document.getElementById("pageAction-panel-bookmark"),
|
||||
+ document.getElementById("zen-site-data-icon-button"),
|
||||
]) {
|
||||
if (!element) {
|
||||
// The page action panel element may not have been created yet.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/browser-siteIdentity.js b/browser/base/content/browser-siteIdentity.js
|
||||
index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af5fbb5fb2 100644
|
||||
index 8369e546866aa313e62f808acb8d51afa8da4f9b..7a4b20dd5922425cebfac542893a52cd68a26449 100644
|
||||
--- a/browser/base/content/browser-siteIdentity.js
|
||||
+++ b/browser/base/content/browser-siteIdentity.js
|
||||
@@ -453,11 +453,6 @@ var gIdentityHandler = {
|
||||
@@ -451,11 +451,6 @@ var gIdentityHandler = {
|
||||
// avoid a pretty ugly transition. Also hide it even
|
||||
// if the update resulted in no site data, to keep the
|
||||
// illusion that clicking the button had an effect.
|
||||
@@ -14,7 +14,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
||||
|
||||
let baseDomain = SiteDataManager.getBaseDomainFromHost(this._uri.host);
|
||||
if (SiteDataManager.promptSiteDataRemoval(window, [baseDomain])) {
|
||||
@@ -834,7 +829,7 @@ var gIdentityHandler = {
|
||||
@@ -832,7 +827,7 @@ var gIdentityHandler = {
|
||||
// This is a secure internal Firefox page.
|
||||
this._identityBox.className = "chromeUI";
|
||||
let brandBundle = document.getElementById("bundle_brand");
|
||||
@@ -23,7 +23,7 @@ index 65354e0ad3097e10de72f36e257c94472524baf7..866cf5672f30f81a1d8e061c9af0c1af
|
||||
} else if (this._pageExtensionPolicy) {
|
||||
// This is a WebExtension page.
|
||||
this._identityBox.className = "extensionPage";
|
||||
@@ -1163,6 +1158,12 @@ var gIdentityHandler = {
|
||||
@@ -1161,6 +1156,12 @@ var gIdentityHandler = {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/browser.xhtml b/browser/base/content/browser.xhtml
|
||||
index ffddea280e2edffa2531b4b129489c2be0e2c3d2..f03db9e2db0dec06f997740337f28e76a08a3bdb 100644
|
||||
index 246d23a77960d25f78b163429a3ed28c7180ccd7..1c26485d8464413689767c8a38aadbcadcecae4d 100644
|
||||
--- a/browser/base/content/browser.xhtml
|
||||
+++ b/browser/base/content/browser.xhtml
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/base/content/main-popupset.inc.xhtml b/browser/base/content/main-popupset.inc.xhtml
|
||||
index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadcb66d1e16 100644
|
||||
index 78030413c4125362e056a8ec249b597292be050b..90fc935e105d594cd4cc925c70c29b18b8dffccd 100644
|
||||
--- a/browser/base/content/main-popupset.inc.xhtml
|
||||
+++ b/browser/base/content/main-popupset.inc.xhtml
|
||||
@@ -208,6 +208,10 @@
|
||||
@@ -21,7 +21,7 @@ index 69b83857f40bab6a7298c1416989df2d929d78c1..4ac9f02eb31f58a72d4c58c239ebeadc
|
||||
</panel>
|
||||
</html:template>
|
||||
|
||||
@@ -615,6 +620,8 @@
|
||||
@@ -628,6 +633,8 @@
|
||||
|
||||
#include popup-notifications.inc.xhtml
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/navigator-toolbox.js b/browser/base/content/navigator-toolbox.js
|
||||
index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a71105167cbe75ec 100644
|
||||
index 7b776b15d52367a008ce6bf53dcfcbbe007b7453..d9a3404905b73db7c8f202ab166d5f3c625351f6 100644
|
||||
--- a/browser/base/content/navigator-toolbox.js
|
||||
+++ b/browser/base/content/navigator-toolbox.js
|
||||
@@ -8,7 +8,7 @@
|
||||
@@ -6,7 +6,7 @@
|
||||
document.addEventListener(
|
||||
"DOMContentLoaded",
|
||||
() => {
|
||||
@@ -11,25 +11,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a7110516
|
||||
const widgetOverflow = document.getElementById("widget-overflow");
|
||||
|
||||
function onPopupShowing(event) {
|
||||
@@ -110,7 +110,7 @@ document.addEventListener(
|
||||
#pageActionButton,
|
||||
#downloads-button,
|
||||
#fxa-toolbar-menu-button,
|
||||
- #unified-extensions-button,
|
||||
+ #zen-site-data-icon-button,
|
||||
#library-button
|
||||
`);
|
||||
if (!element) {
|
||||
@@ -138,7 +138,7 @@ document.addEventListener(
|
||||
gSync.toggleAccountPanel(element, event);
|
||||
break;
|
||||
|
||||
- case "unified-extensions-button":
|
||||
+ case "zen-site-data-icon-button":
|
||||
gUnifiedExtensions.togglePanel(event);
|
||||
break;
|
||||
|
||||
@@ -187,6 +187,7 @@ document.addEventListener(
|
||||
@@ -185,6 +185,7 @@ document.addEventListener(
|
||||
#reload-button ,
|
||||
#urlbar-go-button,
|
||||
#reader-mode-button,
|
||||
@@ -37,7 +19,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a7110516
|
||||
#picture-in-picture-button,
|
||||
#urlbar-zoom-button,
|
||||
#star-button-box,
|
||||
@@ -208,6 +209,7 @@ document.addEventListener(
|
||||
@@ -206,6 +207,7 @@ document.addEventListener(
|
||||
case "vertical-tabs-newtab-button":
|
||||
case "tabs-newtab-button":
|
||||
case "new-tab-button":
|
||||
@@ -45,7 +27,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a7110516
|
||||
gBrowser.handleNewTabMiddleClick(element, event);
|
||||
break;
|
||||
|
||||
@@ -317,7 +319,7 @@ document.addEventListener(
|
||||
@@ -315,7 +317,7 @@ document.addEventListener(
|
||||
#pageActionButton,
|
||||
#downloads-button,
|
||||
#fxa-toolbar-menu-button,
|
||||
@@ -54,7 +36,7 @@ index 413bad2a62058a1c434d6a44e927e44eb397289d..472eab5d3bca2bc665920707a7110516
|
||||
#library-button
|
||||
`);
|
||||
if (!element) {
|
||||
@@ -396,7 +398,7 @@ document.addEventListener(
|
||||
@@ -394,7 +396,7 @@ document.addEventListener(
|
||||
gSync.toggleAccountPanel(element, event);
|
||||
break;
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/base/content/nsContextMenu.sys.mjs b/browser/base/content/nsContextMenu.sys.mjs
|
||||
index b4fe996f9685a085c14324a35a1d51e2fed569b7..c83d5e9bf92f8f2e3d96b121ba3b758dd124393b 100644
|
||||
index 259b440375c7e84d373a134fea20cdbc1c1bae4b..a9ce22a2391b4ec0bf82ceedd35f4c9d9626bb28 100644
|
||||
--- a/browser/base/content/nsContextMenu.sys.mjs
|
||||
+++ b/browser/base/content/nsContextMenu.sys.mjs
|
||||
@@ -1105,6 +1105,8 @@ export class nsContextMenu {
|
||||
@@ -1104,6 +1104,8 @@ export class nsContextMenu {
|
||||
!this.isSecureAboutPage()
|
||||
);
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
content/browser/ZenPreloadedScripts.js (../../zen/common/ZenPreloadedScripts.js)
|
||||
content/browser/zen-sets.js (../../zen/common/zen-sets.js)
|
||||
content/browser/ZenUIManager.mjs (../../zen/common/ZenUIManager.mjs)
|
||||
content/browser/zen-components/ZenActorsManager.mjs (../../zen/common/ZenActorsManager.mjs)
|
||||
content/browser/zen-components/ZenCommonUtils.mjs (../../zen/common/ZenCommonUtils.mjs)
|
||||
content/browser/zen-components/ZenSessionStore.mjs (../../zen/common/ZenSessionStore.mjs)
|
||||
content/browser/zen-components/ZenEmojisData.min.mjs (../../zen/common/emojis/ZenEmojisData.min.mjs)
|
||||
|
||||
@@ -5,11 +5,10 @@
|
||||
<panel id="zen-unified-site-data-panel"
|
||||
role="group"
|
||||
type="arrow"
|
||||
noautofocus="true"
|
||||
position="bottomright topright">
|
||||
noautofocus="true">
|
||||
<panelmultiview mainViewId="unified-extensions-view">
|
||||
# We'll keep the view with this name/id in order to prevent
|
||||
# any sort of future issues we may have if firefox decides
|
||||
# any sort of future issues we may have if firefox decides
|
||||
# to change the functionality of this view
|
||||
<panelview id="unified-extensions-view"
|
||||
class="cui-widget-panelview"
|
||||
@@ -55,6 +54,17 @@
|
||||
<toolbarbutton id="zen-site-data-new-addon-button"
|
||||
class="subviewbutton toolbarbutton-1" />
|
||||
</vbox>
|
||||
|
||||
# We don't really use this, but again, to keep firefox happy
|
||||
# in case they decide to change something for this specific
|
||||
# empty state, we keep it on the DOM
|
||||
# https://searchfox.org/firefox-main/rev/e613f4df351a21871cfeadf7d5b4043ffad157b1/browser/components/customizableui/content/panelUI.inc.xhtml#101-106
|
||||
<vbox id="unified-extensions-empty-state" context="">
|
||||
<!-- Shown when no extensions are listed. -->
|
||||
<html:img src="chrome://browser/skin/addons/extensions-panel-empty-illustration.svg" loading="lazy" />
|
||||
<html:h2 class="subview-subheader" />
|
||||
<description />
|
||||
</vbox>
|
||||
</hbox>
|
||||
|
||||
# Keep this button on the DOM even though we hide it for ever,
|
||||
|
||||
@@ -13,5 +13,4 @@
|
||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspace.mjs"></script>
|
||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspaces.mjs"></script>
|
||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenWorkspacesSync.mjs"></script>
|
||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenActorsManager.mjs"></script>
|
||||
<script type="text/javascript" src="chrome://browser/content/zen-components/ZenSessionStore.mjs"></script>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/BrowserGlue.sys.mjs b/browser/components/BrowserGlue.sys.mjs
|
||||
index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b097351d60 100644
|
||||
index f1cabb13ca4f86a2bafc1d93b7f882218a108eb2..2389b1addf24d17bd41fca65cfeb6f944479076d 100644
|
||||
--- a/browser/components/BrowserGlue.sys.mjs
|
||||
+++ b/browser/components/BrowserGlue.sys.mjs
|
||||
@@ -8,6 +8,7 @@ import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs";
|
||||
@@ -10,7 +10,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
||||
AboutHomeStartupCache: "resource:///modules/AboutHomeStartupCache.sys.mjs",
|
||||
AWToolbarButton: "resource:///modules/aboutwelcome/AWToolbarUtils.sys.mjs",
|
||||
ASRouter: "resource:///modules/asrouter/ASRouter.sys.mjs",
|
||||
@@ -1458,7 +1459,7 @@ BrowserGlue.prototype = {
|
||||
@@ -1452,7 +1453,7 @@ BrowserGlue.prototype = {
|
||||
windowcount++;
|
||||
let tabbrowser = win.gBrowser;
|
||||
if (tabbrowser) {
|
||||
@@ -19,7 +19,7 @@ index 67b2806835baba3070f295d6b96f97077639995a..5f28e0073c893c57c1d6c37deaacf7b0
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1623,6 +1624,8 @@ BrowserGlue.prototype = {
|
||||
@@ -1617,6 +1618,8 @@ BrowserGlue.prototype = {
|
||||
} else if (profileDataVersion < APP_DATA_VERSION) {
|
||||
lazy.ProfileDataUpgrader.upgrade(profileDataVersion, APP_DATA_VERSION);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/asrouter/modules/FeatureCallout.sys.mjs b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||
index 2a2c5a6fe903694abbac0be86c7b3c8adc1d0275..5571b827198474a2635a9bd968adbc8c96dbc353 100644
|
||||
index 4ea9c9e88a1831dad7e42ebd8d0dd507102e8280..316aa626e525f05caac7f315e0ea7ae9d822b6af 100644
|
||||
--- a/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||
+++ b/browser/components/asrouter/modules/FeatureCallout.sys.mjs
|
||||
@@ -776,6 +776,7 @@ export class FeatureCallout {
|
||||
@@ -777,6 +777,7 @@ export class FeatureCallout {
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
diff --git a/browser/components/customizableui/ToolbarContextMenu.sys.mjs b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
index 852cf2eee9113753fa0797be6dec80dcb9207703..93bb093e679320033a37b2af14e8e0e3c7621f94 100644
|
||||
index 95621ae202378fb1ebceca5623a98b790b9eb5ff..fe6901f53f863bca20a514df0490499402d669ae 100644
|
||||
--- a/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
+++ b/browser/components/customizableui/ToolbarContextMenu.sys.mjs
|
||||
@@ -242,8 +242,8 @@ export var ToolbarContextMenu = {
|
||||
// Show/hide sidebar and vertical tabs menu items
|
||||
let sidebarRevampEnabled = Services.prefs.getBoolPref("sidebar.revamp");
|
||||
@@ -244,7 +244,7 @@ export var ToolbarContextMenu = {
|
||||
let showSidebarActions =
|
||||
- ["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||
- toolbarItem?.localName == "toolbarspring";
|
||||
+ (["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||
+ toolbarItem?.localName == "toolbarspring") && false;
|
||||
["tabbrowser-tabs", "sidebar-button"].includes(toolbarItem?.id) ||
|
||||
toolbarItem?.localName == "toolbarspring" ||
|
||||
- isTitlebarSpacer;
|
||||
+ isTitlebarSpacer && false;
|
||||
|
||||
let toggleVerticalTabsItem = document.getElementById(
|
||||
"toolbar-context-toggle-vertical-tabs"
|
||||
);
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/customizableui/content/panelUI.inc.xhtml b/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||
index 85acb96a3deefed708ea768b2f163e7fd6480b97..bb3aed53758da7dafcfed4492acb0cbf2b80cd2f 100644
|
||||
index 6cb22be6526b17d952a90fd414c49a31e9afde7a..84f8156e88027a79a40f14c77c83d6a2d19c8a72 100644
|
||||
--- a/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||
+++ b/browser/components/customizableui/content/panelUI.inc.xhtml
|
||||
@@ -132,7 +132,7 @@
|
||||
@@ -139,7 +139,7 @@
|
||||
<panel id="appMenu-notification-popup"
|
||||
class="popup-notification-panel panel-no-padding"
|
||||
type="arrow"
|
||||
|
||||
@@ -1,18 +1,8 @@
|
||||
diff --git a/browser/components/customizableui/content/panelUI.js b/browser/components/customizableui/content/panelUI.js
|
||||
index 7156397d597579f745ea20ae2b9327433a31c8ec..13b844a63e79e227c96faf153ee5908759306407 100644
|
||||
index d6393080aa8aff6c0f7b2043fd408b6f6249d0c4..bf37b46c4743b7619393c730720204380635666a 100644
|
||||
--- a/browser/components/customizableui/content/panelUI.js
|
||||
+++ b/browser/components/customizableui/content/panelUI.js
|
||||
@@ -518,8 +518,7 @@ const PanelUI = {
|
||||
tempPanel.setAttribute("animate", "false");
|
||||
}
|
||||
tempPanel.setAttribute("context", "");
|
||||
- document
|
||||
- .getElementById(CustomizableUI.AREA_NAVBAR)
|
||||
+ aAnchor.closest("toolbar")
|
||||
.appendChild(tempPanel);
|
||||
|
||||
let multiView = document.createXULElement("panelmultiview");
|
||||
@@ -610,10 +609,12 @@ const PanelUI = {
|
||||
@@ -608,10 +608,12 @@ const PanelUI = {
|
||||
if (hasKids && !this.navbar.hasAttribute("nonemptyoverflow")) {
|
||||
this.navbar.setAttribute("nonemptyoverflow", "true");
|
||||
this.overflowPanel.setAttribute("hasfixeditems", "true");
|
||||
@@ -25,12 +15,12 @@ index 7156397d597579f745ea20ae2b9327433a31c8ec..13b844a63e79e227c96faf153ee59087
|
||||
}
|
||||
},
|
||||
|
||||
@@ -961,7 +962,7 @@ const PanelUI = {
|
||||
@@ -959,7 +961,7 @@ const PanelUI = {
|
||||
el.removeAttribute("data-lazy-l10n-id");
|
||||
});
|
||||
|
||||
- this.notificationPanel.openPopup(anchor, "bottomright topright");
|
||||
+ this.notificationPanel.openPopup(anchor, gZenUIManager.panelUIPosition);
|
||||
+ this.notificationPanel.openPopup(anchor, gZenUIManager.panelUIPosition(this.notificationPanel, anchor));
|
||||
},
|
||||
|
||||
_clearNotificationPanel() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/extensions/parent/ext-browser.js b/browser/components/extensions/parent/ext-browser.js
|
||||
index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce3dbfa7a3 100644
|
||||
index 2488267f4be5142bcacf984635d9e9ecdb5f02e9..03127808b3cae28850cc276fac0f1acbca85d326 100644
|
||||
--- a/browser/components/extensions/parent/ext-browser.js
|
||||
+++ b/browser/components/extensions/parent/ext-browser.js
|
||||
@@ -354,6 +354,7 @@ class TabTracker extends TabTrackerBase {
|
||||
@@ -18,7 +18,7 @@ index 89b0bb3b92c15b89499ffc6cf35dcee7ebb89e48..327afaea3821cdca8d7f58bfaa65c7ce
|
||||
|
||||
this._tabs.set(nativeTab, id);
|
||||
if (nativeTab.linkedBrowser) {
|
||||
@@ -1271,6 +1273,10 @@ class TabManager extends TabManagerBase {
|
||||
@@ -1273,6 +1275,10 @@ class TabManager extends TabManagerBase {
|
||||
}
|
||||
|
||||
canAccessTab(nativeTab) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/places/content/browserPlacesViews.js b/browser/components/places/content/browserPlacesViews.js
|
||||
index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3ed3a3058e 100644
|
||||
index bbfbe9c703dff25bf939369f5b99cdaa76a5ae24..c28688d488960c1de73baf4c0e69b9f8401e4226 100644
|
||||
--- a/browser/components/places/content/browserPlacesViews.js
|
||||
+++ b/browser/components/places/content/browserPlacesViews.js
|
||||
@@ -330,12 +330,23 @@ class PlacesViewBase {
|
||||
@@ -328,12 +328,23 @@ class PlacesViewBase {
|
||||
|
||||
this._cleanPopup(aPopup);
|
||||
|
||||
@@ -29,7 +29,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
this._insertNewItemToPopup(child, fragment);
|
||||
}
|
||||
aPopup.insertBefore(fragment, aPopup._endMarker);
|
||||
@@ -393,6 +404,7 @@ class PlacesViewBase {
|
||||
@@ -391,6 +402,7 @@ class PlacesViewBase {
|
||||
"scheme",
|
||||
PlacesUIUtils.guessUrlSchemeForUI(aPlacesNode.uri)
|
||||
);
|
||||
@@ -37,7 +37,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
} else if (PlacesUtils.containerTypes.includes(type)) {
|
||||
element = document.createXULElement("menu");
|
||||
element.setAttribute("container", "true");
|
||||
@@ -980,25 +992,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1014,25 +1026,33 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
this._rootElt.firstChild.remove();
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
);
|
||||
++startIndex;
|
||||
if (elt.localName != "toolbarseparator") {
|
||||
@@ -1006,15 +1026,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1040,15 +1060,12 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
}
|
||||
}
|
||||
if (!elt) {
|
||||
@@ -101,7 +101,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1024,7 +1041,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1058,7 +1075,7 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
|
||||
let fragment = document.createDocumentFragment();
|
||||
for (let i = startIndex; i < limit; ++i) {
|
||||
@@ -110,7 +110,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
}
|
||||
await new Promise(resolve => window.requestAnimationFrame(resolve));
|
||||
if (!this._isAlive) {
|
||||
@@ -1086,6 +1103,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
@@ -1120,6 +1137,8 @@ class PlacesToolbar extends PlacesViewBase {
|
||||
"scheme",
|
||||
PlacesUIUtils.guessUrlSchemeForUI(aChild.uri)
|
||||
);
|
||||
@@ -119,7 +119,7 @@ index ee6050d411df009d8b61e49d7fdaba79f1bc5db1..0149528329dad3d48449175a35d96d3e
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2234,7 +2253,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||
@@ -2268,7 +2287,7 @@ this.PlacesPanelview = class PlacesPanelview extends PlacesViewBase {
|
||||
PlacesUIUtils.guessUrlSchemeForUI(placesNode.uri)
|
||||
);
|
||||
element.setAttribute("label", PlacesUIUtils.getBestTitle(placesNode));
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
diff --git a/browser/components/preferences/jar.mn b/browser/components/preferences/jar.mn
|
||||
index a786155d80a9f1f09d209f2da11437ee2d662739..2e422b48b452698275118d336d1b16af6a221577 100644
|
||||
index 65efb0666785cc79e58015e19ec55216bf4ec9c4..95941c52ffd4c9ee36f584413fb96d59721113db 100644
|
||||
--- a/browser/components/preferences/jar.mn
|
||||
+++ b/browser/components/preferences/jar.mn
|
||||
@@ -30,3 +30,5 @@ browser.jar:
|
||||
content/browser/preferences/widgets/setting-control.mjs (widgets/setting-control/setting-control.mjs)
|
||||
content/browser/preferences/widgets/setting-group.mjs (widgets/setting-group/setting-group.mjs)
|
||||
content/browser/preferences/widgets/setting-group.css (widgets/setting-group/setting-group.css)
|
||||
@@ -33,3 +33,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.css (widgets/security-privacy/security-privacy-card/security-privacy-card.css)
|
||||
+
|
||||
+ content/browser/preferences/zen-settings.js
|
||||
\ No newline at end of file
|
||||
|
||||
@@ -1,20 +1,8 @@
|
||||
diff --git a/browser/components/preferences/main.inc.xhtml b/browser/components/preferences/main.inc.xhtml
|
||||
index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615fad5e0760 100644
|
||||
index ff577c035ff6128f7ae948bc810082c92b3a624c..40f94fff53c63bdff28eaa68f9b0736d53c5b4f8 100644
|
||||
--- a/browser/components/preferences/main.inc.xhtml
|
||||
+++ b/browser/components/preferences/main.inc.xhtml
|
||||
@@ -29,6 +29,11 @@
|
||||
<vbox id="startupPageBox">
|
||||
<checkbox id="browserRestoreSession"
|
||||
data-l10n-id="startup-restore-windows-and-tabs"/>
|
||||
+ <vbox class="indent">
|
||||
+ <checkbox id="zenWorkspaceContinueWhereLeftOff"
|
||||
+ data-l10n-id="zen-workspace-continue-where-left-off"
|
||||
+ preference="zen.workspaces.continue-where-left-off"/>
|
||||
+ </vbox>
|
||||
#ifdef XP_WIN
|
||||
<hbox id="windowsLaunchOnLoginBox" align="center" hidden="true">
|
||||
<checkbox id="windowsLaunchOnLogin"
|
||||
@@ -189,7 +194,8 @@
|
||||
@@ -141,7 +141,8 @@
|
||||
<!-- Browser layout -->
|
||||
<groupbox data-category="paneGeneral"
|
||||
data-subcategory="layout"
|
||||
@@ -24,7 +12,7 @@ index 891cf7108cf4606c99a902afa420e744b9690b87..2bdbc1f0b6ac2c883dcbd706aed0615f
|
||||
<label><html:h2 data-l10n-id="browser-layout-header"/></label>
|
||||
<radiogroup id="browserLayoutRadioGroup" preference="sidebar.verticalTabs">
|
||||
<radio id="browserLayoutHorizontalTabs" data-l10n-id="browser-layout-horizontal-tabs" value="false"/>
|
||||
@@ -420,6 +426,7 @@
|
||||
@@ -346,6 +347,7 @@
|
||||
languages-customize-add.label,
|
||||
" />
|
||||
</hbox>
|
||||
|
||||
@@ -1,8 +1,20 @@
|
||||
diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js
|
||||
index 259bc260328af1b1f2b95866e7cf92dec341a4b0..3cebff51774b2542a8d4d888aa99dc10929c80be 100644
|
||||
index 46283d3eacfea0f419afa3bdfd2a51e411502a20..4fe229706eb0145a21042b8b3cca323682e89e76 100644
|
||||
--- a/browser/components/preferences/main.js
|
||||
+++ b/browser/components/preferences/main.js
|
||||
@@ -443,7 +443,7 @@ function getBundleForLocales(newLocales) {
|
||||
@@ -1117,6 +1117,11 @@ let SETTINGS_CONFIG = {
|
||||
id: "browserRestoreSession",
|
||||
l10nId: "startup-restore-windows-and-tabs",
|
||||
},
|
||||
+ {
|
||||
+ id: "zenWorkspaceContinueWhereLeftOff",
|
||||
+ l10nId: "zen-workspace-continue-where-left-off",
|
||||
+ control: "moz-checkbox",
|
||||
+ },
|
||||
{
|
||||
id: "windowsLaunchOnLogin",
|
||||
l10nId: "windows-launch-on-login",
|
||||
@@ -1611,7 +1616,7 @@ function getBundleForLocales(newLocales) {
|
||||
])
|
||||
);
|
||||
return new Localization(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.js b/browser/components/preferences/preferences.js
|
||||
index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778abd312dfd8 100644
|
||||
index c949c1800cb4c200c273c4019a61553b0e236994..0846ab1a348d3c5904e967aeb36eb846ba3cffa9 100644
|
||||
--- a/browser/components/preferences/preferences.js
|
||||
+++ b/browser/components/preferences/preferences.js
|
||||
@@ -117,6 +117,7 @@ ChromeUtils.defineLazyGetter(this, "gSubDialog", function () {
|
||||
@@ -10,7 +10,7 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
||||
],
|
||||
resizeCallback: async ({ title, frame }) => {
|
||||
// Search within main document and highlight matched keyword.
|
||||
@@ -196,6 +197,10 @@ function init_all() {
|
||||
@@ -224,6 +225,10 @@ function init_all() {
|
||||
register_module("paneSearch", gSearchPane);
|
||||
register_module("panePrivacy", gPrivacyPane);
|
||||
register_module("paneContainers", gContainersPane);
|
||||
@@ -19,5 +19,5 @@ index 1fb8a954f61e89736b369f5fa01bb4f89fff16ad..3030c32cb66529f14e575428654778ab
|
||||
+ register_module("paneZenCKS", gZenCKSSettings);
|
||||
+ register_module("paneZenMarketplace", gZenMarketplaceManager);
|
||||
|
||||
if (Services.prefs.getBoolPref("browser.translations.newSettingsUI.enable")) {
|
||||
register_module("paneTranslations", gTranslationsPane);
|
||||
for (let [subPane, config] of Object.entries(CONFIG_PANES)) {
|
||||
subPane = friendlyPrefCategoryNameToInternalName(subPane);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/preferences.xhtml b/browser/components/preferences/preferences.xhtml
|
||||
index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222bb88a64b 100644
|
||||
index 4500e3a3a7d54bd7647cd09ab0e11df782fb7a69..9506e860966e974b377b3e2e71c91f9d2c4a0c92 100644
|
||||
--- a/browser/components/preferences/preferences.xhtml
|
||||
+++ b/browser/components/preferences/preferences.xhtml
|
||||
@@ -45,6 +45,8 @@
|
||||
@@ -11,7 +11,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
||||
<link rel="localization" href="branding/brand.ftl"/>
|
||||
<link rel="localization" href="browser/browser.ftl"/>
|
||||
<!-- Used by fontbuilder.js -->
|
||||
@@ -106,6 +108,11 @@
|
||||
@@ -109,6 +111,11 @@
|
||||
<hbox flex="1">
|
||||
|
||||
<vbox class="navigation">
|
||||
@@ -23,7 +23,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
||||
<!-- category list -->
|
||||
<richlistbox id="categories" data-l10n-id="category-list" data-l10n-attrs="aria-label">
|
||||
<richlistitem id="category-general"
|
||||
@@ -118,6 +125,50 @@
|
||||
@@ -121,6 +128,50 @@
|
||||
<label class="category-name" flex="1" data-l10n-id="pane-general-title"></label>
|
||||
</richlistitem>
|
||||
|
||||
@@ -74,7 +74,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
||||
<richlistitem id="category-home"
|
||||
class="category"
|
||||
value="paneHome"
|
||||
@@ -229,11 +280,6 @@
|
||||
@@ -232,11 +283,6 @@
|
||||
<html:a href="about:policies" target="_blank" data-l10n-id="managed-notice"/>
|
||||
</hbox>
|
||||
</hbox>
|
||||
@@ -86,7 +86,7 @@ index 0081bb470c9b15b39441ff844680e5e91b05fb86..3e4e7c43cf0e4feffb80623491de6222
|
||||
</hbox>
|
||||
</hbox>
|
||||
<vbox id="mainPrefPane">
|
||||
@@ -247,6 +293,10 @@
|
||||
@@ -250,6 +296,10 @@
|
||||
#include sync.inc.xhtml
|
||||
#include experimental.inc.xhtml
|
||||
#include moreFromMozilla.inc.xhtml
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/preferences/sync.inc.xhtml b/browser/components/preferences/sync.inc.xhtml
|
||||
index e59c536fc2fa06b11be9378a28285ac16fd16958..cf17ee3b6347b950fcf5bf260cd0631c77ffd1d3 100644
|
||||
index 31b95644f820eda3267d3b52913ed0845abc1c80..1c8869418f7c88ed33601860dafd2c4eb0d5731f 100644
|
||||
--- a/browser/components/preferences/sync.inc.xhtml
|
||||
+++ b/browser/components/preferences/sync.inc.xhtml
|
||||
@@ -223,6 +223,10 @@
|
||||
|
||||
@@ -1136,3 +1136,8 @@ Preferences.addAll([
|
||||
default: true,
|
||||
},
|
||||
]);
|
||||
|
||||
Preferences.addSetting({
|
||||
id: 'zenWorkspaceContinueWhereLeftOff',
|
||||
pref: 'zen.workspaces.continue-where-left-off',
|
||||
});
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
<checkbox id="zenWorkspacesForceContainerTabsToWorkspace"
|
||||
data-l10n-id="zen-settings-workspaces-force-container-tabs-to-workspace"
|
||||
preference="zen.workspaces.force-container-workspace"/>
|
||||
<checkbox id="zenTabsCloseOnBackWithNoHistory"
|
||||
data-l10n-id="zen-tabs-close-on-back-with-no-history"
|
||||
preference="zen.tabs.close-on-back-with-no-history"/>
|
||||
</groupbox>
|
||||
|
||||
<hbox id="zenTabsUnloadCategory"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/search/SearchUIUtils.sys.mjs b/browser/components/search/SearchUIUtils.sys.mjs
|
||||
index 55f90f4e802480728bbd5ef962b507183e017997..2a83f861fe6edee2b127c8d7946abcdcdbf677f5 100644
|
||||
index 15fdb0cd7664c2b49977902d7f4c7a117d82cf15..6aedbc18de6604b63b2586e7d9745a4c4e7e38ae 100644
|
||||
--- a/browser/components/search/SearchUIUtils.sys.mjs
|
||||
+++ b/browser/components/search/SearchUIUtils.sys.mjs
|
||||
@@ -430,7 +430,7 @@ export var SearchUIUtils = {
|
||||
@@ -434,7 +434,7 @@ export var SearchUIUtils = {
|
||||
triggeringSearchEngine: engine.name,
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
diff --git a/browser/components/sessionstore/SessionStore.sys.mjs b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d89fb95494 100644
|
||||
index 1cdbc0f41bf5b55dfbbd850cb618c6d870f7a261..f13ed1412bb7ae6623aa2605d7691d10540eb659 100644
|
||||
--- a/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
+++ b/browser/components/sessionstore/SessionStore.sys.mjs
|
||||
@@ -126,6 +126,8 @@ const TAB_EVENTS = [
|
||||
"TabUngrouped",
|
||||
@@ -127,6 +127,8 @@ const TAB_EVENTS = [
|
||||
"TabGroupCollapse",
|
||||
"TabGroupExpand",
|
||||
"TabSplitViewActivate",
|
||||
+ "TabAddedToEssentials",
|
||||
+ "TabRemovedFromEssentials",
|
||||
];
|
||||
|
||||
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
@@ -1904,6 +1906,8 @@ var SessionStoreInternal = {
|
||||
@@ -1911,6 +1913,8 @@ var SessionStoreInternal = {
|
||||
case "TabPinned":
|
||||
case "TabUnpinned":
|
||||
case "SwapDocShells":
|
||||
@@ -20,7 +20,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
this.saveStateDelayed(win);
|
||||
break;
|
||||
case "TabGroupCreate":
|
||||
@@ -2139,7 +2143,6 @@ var SessionStoreInternal = {
|
||||
@@ -2151,7 +2155,6 @@ var SessionStoreInternal = {
|
||||
if (closedWindowState) {
|
||||
let newWindowState;
|
||||
if (
|
||||
@@ -28,7 +28,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
!lazy.SessionStartup.willRestore()
|
||||
) {
|
||||
// We want to split the window up into pinned tabs and unpinned tabs.
|
||||
@@ -2372,11 +2375,9 @@ var SessionStoreInternal = {
|
||||
@@ -2384,11 +2387,9 @@ var SessionStoreInternal = {
|
||||
tabbrowser.selectedTab.label;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
|
||||
// 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
|
||||
@@ -3361,7 +3362,7 @@ var SessionStoreInternal = {
|
||||
@@ -3373,7 +3374,7 @@ var SessionStoreInternal = {
|
||||
if (!isPrivateWindow && tabState.isPrivate) {
|
||||
return;
|
||||
}
|
||||
@@ -49,7 +49,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4073,6 +4074,11 @@ var SessionStoreInternal = {
|
||||
@@ -4089,6 +4090,11 @@ var SessionStoreInternal = {
|
||||
Math.min(tabState.index, tabState.entries.length)
|
||||
);
|
||||
tabState.pinned = false;
|
||||
@@ -61,7 +61,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
|
||||
if (inBackground === false) {
|
||||
aWindow.gBrowser.selectedTab = newTab;
|
||||
@@ -4509,6 +4515,7 @@ var SessionStoreInternal = {
|
||||
@@ -4525,6 +4531,7 @@ var SessionStoreInternal = {
|
||||
// Append the tab if we're opening into a different window,
|
||||
tabIndex: aSource == aTargetWindow ? pos : Infinity,
|
||||
pinned: state.pinned,
|
||||
@@ -69,7 +69,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
userContextId: state.userContextId,
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
@@ -5358,7 +5365,7 @@ var SessionStoreInternal = {
|
||||
@@ -5374,7 +5381,7 @@ var SessionStoreInternal = {
|
||||
|
||||
for (let i = tabbrowser.pinnedTabCount; i < tabbrowser.tabs.length; i++) {
|
||||
let tab = tabbrowser.tabs[i];
|
||||
@@ -78,7 +78,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
removableTabs.push(tab);
|
||||
}
|
||||
}
|
||||
@@ -5418,7 +5425,7 @@ var SessionStoreInternal = {
|
||||
@@ -5434,7 +5441,7 @@ var SessionStoreInternal = {
|
||||
}
|
||||
|
||||
let workspaceID = aWindow.getWorkspaceID();
|
||||
@@ -87,7 +87,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
winData.workspaceID = workspaceID;
|
||||
}
|
||||
},
|
||||
@@ -5609,11 +5616,12 @@ var SessionStoreInternal = {
|
||||
@@ -5625,11 +5632,12 @@ var SessionStoreInternal = {
|
||||
}
|
||||
|
||||
let tabbrowser = aWindow.gBrowser;
|
||||
@@ -101,7 +101,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
// update the internal state data for this window
|
||||
for (let tab of tabs) {
|
||||
if (tab == aWindow.FirefoxViewHandler.tab) {
|
||||
@@ -5624,6 +5632,7 @@ var SessionStoreInternal = {
|
||||
@@ -5640,6 +5648,7 @@ var SessionStoreInternal = {
|
||||
tabsData.push(tabData);
|
||||
}
|
||||
|
||||
@@ -109,7 +109,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
// update tab group state for this window
|
||||
winData.groups = [];
|
||||
for (let tabGroup of aWindow.gBrowser.tabGroups) {
|
||||
@@ -5636,7 +5645,7 @@ var SessionStoreInternal = {
|
||||
@@ -5652,7 +5661,7 @@ var SessionStoreInternal = {
|
||||
// a window is closed, point to the first item in the tab strip instead (it will never be the Firefox View tab,
|
||||
// since it's only inserted into the tab strip after it's selected).
|
||||
if (aWindow.FirefoxViewHandler.tab?.selected) {
|
||||
@@ -118,7 +118,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
winData.title = tabbrowser.tabs[0].label;
|
||||
}
|
||||
winData.selected = selectedIndex;
|
||||
@@ -5748,8 +5757,8 @@ var SessionStoreInternal = {
|
||||
@@ -5764,8 +5773,8 @@ var SessionStoreInternal = {
|
||||
// selectTab represents.
|
||||
let selectTab = 0;
|
||||
if (overwriteTabs) {
|
||||
@@ -129,7 +129,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
selectTab = Math.min(selectTab, winData.tabs.length);
|
||||
}
|
||||
|
||||
@@ -5792,6 +5801,8 @@ var SessionStoreInternal = {
|
||||
@@ -5808,6 +5817,8 @@ var SessionStoreInternal = {
|
||||
winData.tabs,
|
||||
winData.groups ?? []
|
||||
);
|
||||
@@ -138,7 +138,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
this._log.debug(
|
||||
`restoreWindow, createTabsForSessionRestore returned ${tabs.length} tabs`
|
||||
);
|
||||
@@ -6348,6 +6359,25 @@ var SessionStoreInternal = {
|
||||
@@ -6371,6 +6382,25 @@ var SessionStoreInternal = {
|
||||
|
||||
// Most of tabData has been restored, now continue with restoring
|
||||
// attributes that may trigger external events.
|
||||
@@ -164,7 +164,7 @@ index eb62ff3e733e43fdaa299babddea3ba0125abb06..8f20ba50b06f5b75d7de08eb4d1b27d8
|
||||
|
||||
if (tabData.pinned) {
|
||||
tabbrowser.pinTab(tab);
|
||||
@@ -7263,7 +7293,7 @@ var SessionStoreInternal = {
|
||||
@@ -7289,7 +7319,7 @@ var SessionStoreInternal = {
|
||||
|
||||
let groupsToSave = new Map();
|
||||
for (let tIndex = 0; tIndex < window.tabs.length; ) {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/sidebar/browser-sidebar.js b/browser/components/sidebar/browser-sidebar.js
|
||||
index c4edb5442e5243b7d9fe35e1774b2fc651903601..d58076fedafe07d3401ab1723eaa837fabbae09f 100644
|
||||
index 220c3c83fa09daaec433803a4655a20114a137a6..1ef8adc3ecfa61839bb993f7fc090133bffe77db 100644
|
||||
--- a/browser/components/sidebar/browser-sidebar.js
|
||||
+++ b/browser/components/sidebar/browser-sidebar.js
|
||||
@@ -779,7 +779,7 @@ var SidebarController = {
|
||||
@@ -793,7 +793,7 @@ var SidebarController = {
|
||||
setPosition() {
|
||||
// First reset all ordinals to match DOM ordering.
|
||||
let contentArea = document.getElementById("tabbrowser-tabbox");
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
diff --git a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||
index 773f595e89e268578ba153907babec95b58a155a..abe86fc3d243a85c4a8dbee854a2d0130f7270fd 100644
|
||||
index bcd7689e9d68ef8b171c327188174334c4271e21..f69180acb87644f109aa91b871e347f1b1835f53 100644
|
||||
--- a/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||
+++ b/browser/components/tabbrowser/AsyncTabSwitcher.sys.mjs
|
||||
@@ -937,6 +937,7 @@ export class AsyncTabSwitcher {
|
||||
return !(
|
||||
@@ -938,6 +938,7 @@ export class AsyncTabSwitcher {
|
||||
this.tabbrowser._printPreviewBrowsers.has(browser) ||
|
||||
this.tabbrowser.splitViewBrowsers.includes(browser) ||
|
||||
lazy.PictureInPicture.isOriginatingBrowser(browser)
|
||||
+ || browser?.hasAttribute('zen-glance-background')
|
||||
+ || browser?.parentNode?.parentNode?.parentNode?.classList?.contains("zen-glance-background")
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/TabsList.sys.mjs b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
index 20a543dede6bf4428c8af19c5d0589788ddd8eaa..27a378e70f5b280b720c95ba8dac2cc4e88985be 100644
|
||||
index b394a980869d5e5df01b6afdd81e0f41c090e6ec..236c99db0dfa5ebcba50d55c1e4eb6ab7b8110b2 100644
|
||||
--- a/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
+++ b/browser/components/tabbrowser/TabsList.sys.mjs
|
||||
@@ -87,7 +87,7 @@ class TabsListBase {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/browser-ctrlTab.js b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3e8781666 100644
|
||||
index 958728cde19dd7cc24692baa89e11fcab816ab82..32e2b6af2536133f170bd5e14c47392ded8440eb 100644
|
||||
--- a/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
+++ b/browser/components/tabbrowser/content/browser-ctrlTab.js
|
||||
@@ -252,7 +252,8 @@ var ctrlTab = {
|
||||
@@ -249,7 +249,8 @@ var ctrlTab = {
|
||||
},
|
||||
|
||||
get tabList() {
|
||||
@@ -12,7 +12,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
||||
},
|
||||
|
||||
init: function ctrlTab_init() {
|
||||
@@ -463,7 +464,7 @@ var ctrlTab = {
|
||||
@@ -460,7 +461,7 @@ var ctrlTab = {
|
||||
// If the tab is hidden, don't add it to the list unless it's selected
|
||||
// (Normally hidden tabs would be unhidden when selected, but that doesn't
|
||||
// happen for Firefox View).
|
||||
@@ -21,7 +21,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -487,7 +488,7 @@ var ctrlTab = {
|
||||
@@ -484,7 +485,7 @@ var ctrlTab = {
|
||||
},
|
||||
|
||||
open: function ctrlTab_open() {
|
||||
@@ -30,7 +30,7 @@ index 22db482e62e754135d8a6cf824914a3e3e06c45c..bdc18d575b33e788f9628b4cb648d5c3
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -765,7 +766,7 @@ var ctrlTab = {
|
||||
@@ -763,7 +764,7 @@ var ctrlTab = {
|
||||
_initRecentlyUsedTabs() {
|
||||
this._recentlyUsedTabs = Array.prototype.filter.call(
|
||||
gBrowser.tabs,
|
||||
|
||||
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
439
src/browser/components/tabbrowser/content/drag-and-drop-js.patch
Normal file
@@ -0,0 +1,439 @@
|
||||
diff --git a/browser/components/tabbrowser/content/drag-and-drop.js b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||
index c97c661656868bc7faaf7c66c9702eea056aafe1..aa9f0ed071e4898cac2b98a4d81e95df6a41b8dd 100644
|
||||
--- a/browser/components/tabbrowser/content/drag-and-drop.js
|
||||
+++ b/browser/components/tabbrowser/content/drag-and-drop.js
|
||||
@@ -32,6 +32,9 @@
|
||||
* @returns {MozTabbrowserTab|vbox}
|
||||
*/
|
||||
const elementToMove = element => {
|
||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||
+ return element.group;
|
||||
+ }
|
||||
if (isTab(element)) {
|
||||
return element;
|
||||
}
|
||||
@@ -118,6 +121,10 @@
|
||||
}
|
||||
|
||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||
+ if (draggedTab && dropEffect === "move") {
|
||||
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
||||
+ }
|
||||
if (
|
||||
(dropEffect == "move" || dropEffect == "copy") &&
|
||||
document == draggedTab.ownerDocument &&
|
||||
@@ -272,6 +279,18 @@
|
||||
|
||||
this.#tabDropIndicator.hidden = true;
|
||||
event.stopPropagation();
|
||||
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
||||
+ draggedTab.removeAttribute("zen-has-splitted");
|
||||
+ draggedTab._visuallySelected = false;
|
||||
+ }
|
||||
+ if (draggedTab && dropEffect == "move") {
|
||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||
+
|
||||
+ if (moved) {
|
||||
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
if (draggedTab && dropEffect == "copy") {
|
||||
let duplicatedDraggedTab;
|
||||
let duplicatedTabs = [];
|
||||
@@ -297,8 +316,9 @@
|
||||
let translateOffsetY = oldTranslateY % tabHeight;
|
||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||
- let isPinned = draggedTab.pinned;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||
|
||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||
// Update both translate axis for pinned vertical expanded tabs
|
||||
@@ -314,8 +334,8 @@
|
||||
}
|
||||
} else {
|
||||
let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(
|
||||
- isPinned ? 0 : numPinned,
|
||||
- isPinned ? numPinned : undefined
|
||||
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
||||
);
|
||||
let size = this.#tabbrowserTabs.verticalMode ? "height" : "width";
|
||||
let screenAxis = this.#tabbrowserTabs.verticalMode
|
||||
@@ -368,11 +388,13 @@
|
||||
this.#dragToPinPromoCard,
|
||||
];
|
||||
let shouldPin =
|
||||
+ false &&
|
||||
isTab(draggedTab) &&
|
||||
!draggedTab.pinned &&
|
||||
(overPinnedDropIndicator ||
|
||||
dragToPinTargets.some(el => el.contains(event.target)));
|
||||
let shouldUnpin =
|
||||
+ false &&
|
||||
isTab(draggedTab) &&
|
||||
draggedTab.pinned &&
|
||||
this.#tabbrowserTabs.arrowScrollbox.contains(event.target);
|
||||
@@ -390,6 +412,7 @@
|
||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||
} else if (this.#tabbrowserTabs.verticalMode) {
|
||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||
+ shouldTranslate = false;
|
||||
} else {
|
||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||
}
|
||||
@@ -446,7 +469,7 @@
|
||||
item.removeAttribute("tabdrop-samewindow");
|
||||
resolve();
|
||||
};
|
||||
- if (gReduceMotion) {
|
||||
+ if (true || gReduceMotion) {
|
||||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -586,6 +609,7 @@
|
||||
|
||||
let nextItem = this.#tabbrowserTabs.ariaFocusableItems[newIndex];
|
||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||
gBrowser.loadTabs(urls, {
|
||||
inBackground,
|
||||
replace,
|
||||
@@ -623,7 +647,16 @@
|
||||
this.#expandGroupOnDrop(draggedTab);
|
||||
}
|
||||
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||
-
|
||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||
+ if (moved) {
|
||||
+ delete draggedTab._dragData;
|
||||
+ return;
|
||||
+ }
|
||||
+ } else if (dt.mozUserCancelled) {
|
||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||
+ }
|
||||
if (
|
||||
dt.mozUserCancelled ||
|
||||
dt.dropEffect != "none" ||
|
||||
@@ -827,7 +860,10 @@
|
||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||
let { target } = event;
|
||||
while (target) {
|
||||
- if (isTab(target) || isTabGroupLabel(target)) {
|
||||
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
||||
+ if (target.classList?.contains("tab-group-label-container")) {
|
||||
+ target = target.querySelector(".tab-group-label");
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
target = target.parentNode;
|
||||
@@ -844,14 +880,17 @@
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||
+ target = target.group.labelElement;
|
||||
+ }
|
||||
return target;
|
||||
}
|
||||
|
||||
#isContainerVerticalPinnedGrid(tab) {
|
||||
return (
|
||||
this.#tabbrowserTabs.verticalMode &&
|
||||
- tab.pinned &&
|
||||
- this.#tabbrowserTabs.hasAttribute("expanded") &&
|
||||
+ (tab.hasAttribute("zen-essential")) &&
|
||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||
!this.#tabbrowserTabs.expandOnHover
|
||||
);
|
||||
}
|
||||
@@ -882,7 +921,8 @@
|
||||
isTabGroupLabel(draggedTab) &&
|
||||
draggedTab._dragData?.expandGroupOnDrop
|
||||
) {
|
||||
- draggedTab.group.collapsed = false;
|
||||
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
||||
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -947,10 +987,7 @@
|
||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||
// Set this before adjusting dragged tab's position
|
||||
- let pinnedTabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||
- 0,
|
||||
- gBrowser.pinnedTabCount
|
||||
- );
|
||||
+ let pinnedTabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||
let tabsPerRow = 0;
|
||||
let position = RTL_UI
|
||||
? window.windowUtils.getBoundsWithoutFlushing(
|
||||
@@ -1117,7 +1154,7 @@
|
||||
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||
let collapseTabGroupDuringDrag =
|
||||
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
||||
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
||||
|
||||
tab._dragData = {
|
||||
offsetX: this.#tabbrowserTabs.verticalMode
|
||||
@@ -1127,7 +1164,7 @@
|
||||
? event.screenY - window.screenY - tabOffset
|
||||
: event.screenY - window.screenY,
|
||||
scrollPos:
|
||||
- this.#tabbrowserTabs.verticalMode && tab.pinned
|
||||
+ this.#tabbrowserTabs.verticalMode && tab.pinned && false
|
||||
? this.#tabbrowserTabs.pinnedTabsContainer.scrollPosition
|
||||
: this.#tabbrowserTabs.arrowScrollbox.scrollPosition,
|
||||
screenX: event.screenX,
|
||||
@@ -1156,6 +1193,7 @@
|
||||
|
||||
if (collapseTabGroupDuringDrag) {
|
||||
tab.group.collapsed = true;
|
||||
+ gZenFolders.animateGroupMove(tab.group);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1174,6 +1212,16 @@
|
||||
when the tab is first selected to be dragged.
|
||||
*/
|
||||
#updateTabStylesOnDrag(tab) {
|
||||
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
||||
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
||||
+ if (isTabGroupLabel(tab)) {
|
||||
+ movingTab = movingTab.parentElement;
|
||||
+ }
|
||||
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
||||
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
||||
+ movingTab.setAttribute("zen-dragtarget", "");
|
||||
+ }
|
||||
+ return;
|
||||
let isPinned = tab.pinned;
|
||||
let numPinned = gBrowser.pinnedTabCount;
|
||||
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||
@@ -1624,10 +1672,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- let tabs = this.#tabbrowserTabs.visibleTabs.slice(
|
||||
- 0,
|
||||
- gBrowser.pinnedTabCount
|
||||
- );
|
||||
+ let tabs = this.#tabbrowserTabs.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||
|
||||
let directionX = screenX > dragData.animLastScreenX;
|
||||
let directionY = screenY > dragData.animLastScreenY;
|
||||
@@ -1636,6 +1681,8 @@
|
||||
|
||||
let { width: tabWidth, height: tabHeight } =
|
||||
draggedTab.getBoundingClientRect();
|
||||
+ tabWidth += 4; // Add 4px to account for the gap
|
||||
+ tabHeight += 4;
|
||||
let shiftSizeX = tabWidth * movingTabs.length;
|
||||
let shiftSizeY = tabHeight;
|
||||
dragData.tabWidth = tabWidth;
|
||||
@@ -1672,8 +1719,8 @@
|
||||
let lastBoundX =
|
||||
lastTabInRow.screenX +
|
||||
lastTabInRow.getBoundingClientRect().width -
|
||||
- (lastMovingTabScreenX + tabWidth);
|
||||
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
||||
+ (lastMovingTabScreenX + tabWidth) + 4;
|
||||
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||
|
||||
@@ -1833,13 +1880,18 @@
|
||||
this.#clearDragOverGroupingTimer();
|
||||
this.#clearPinnedDropIndicatorTimer();
|
||||
|
||||
- let isPinned = draggedTab.pinned;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
||||
let allTabs = this.#tabbrowserTabs.ariaFocusableItems;
|
||||
let tabs = allTabs.slice(
|
||||
- isPinned ? 0 : numPinned,
|
||||
- isPinned ? numPinned : undefined
|
||||
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
||||
);
|
||||
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
||||
+ draggedTab = draggedTab.group.labelElement;
|
||||
+ }
|
||||
|
||||
if (this.#rtlMode) {
|
||||
tabs.reverse();
|
||||
@@ -1854,7 +1906,7 @@
|
||||
let translateAxis = this.#tabbrowserTabs.verticalMode
|
||||
? "translateY"
|
||||
: "translateX";
|
||||
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
||||
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
||||
let tabSize = this.#tabbrowserTabs.verticalMode ? tabHeight : tabWidth;
|
||||
let translateX = event.screenX - dragData.screenX;
|
||||
let translateY = event.screenY - dragData.screenY;
|
||||
@@ -1870,6 +1922,12 @@
|
||||
);
|
||||
let lastMovingTab = movingTabs.at(-1);
|
||||
let firstMovingTab = movingTabs[0];
|
||||
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
||||
+ lastMovingTab = lastMovingTab.group;
|
||||
+ }
|
||||
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
||||
+ firstMovingTab = firstMovingTab.group;
|
||||
+ }
|
||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||
@@ -1884,6 +1942,13 @@
|
||||
let endBound = this.#rtlMode
|
||||
? endEdge(this.#tabbrowserTabs) - lastMovingTabScreen
|
||||
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
||||
+ {
|
||||
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
||||
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
||||
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
|
||||
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
|
||||
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
|
||||
+ }
|
||||
translate = Math.min(Math.max(translate, startBound), endBound);
|
||||
|
||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
||||
@@ -2075,6 +2140,8 @@
|
||||
};
|
||||
|
||||
let dropElement = getOverlappedElement();
|
||||
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
||||
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
||||
|
||||
let newDropElementIndex;
|
||||
if (dropElement) {
|
||||
@@ -2157,7 +2224,7 @@
|
||||
? Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||
) / 100
|
||||
- : 0.5;
|
||||
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||
if (logicalForward && shouldMoveOver) {
|
||||
@@ -2190,6 +2257,7 @@
|
||||
// If dragging a group over another group, don't make it look like it is
|
||||
// possible to drop the dragged group inside the other group.
|
||||
if (
|
||||
+ false &&
|
||||
isTabGroupLabel(draggedTab) &&
|
||||
dropElement?.group &&
|
||||
(!dropElement.group.collapsed ||
|
||||
@@ -2216,20 +2284,13 @@
|
||||
let isOutOfBounds = isPinned
|
||||
? dropElement.elementIndex >= numPinned
|
||||
: dropElement.elementIndex < numPinned;
|
||||
- if (isOutOfBounds) {
|
||||
- // Drop after last pinned tab
|
||||
- dropElement = this.#tabbrowserTabs.ariaFocusableItems[numPinned - 1];
|
||||
- dropBefore = false;
|
||||
- }
|
||||
}
|
||||
|
||||
- if (
|
||||
- gBrowser._tabGroupsEnabled &&
|
||||
- isTab(draggedTab) &&
|
||||
- !isPinned &&
|
||||
- (!numPinned || newDropElementIndex > numPinned)
|
||||
- ) {
|
||||
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||
+ if (draggedTab && !dropElement?.group) {
|
||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||
+ }
|
||||
let groupingDelay = Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.createGroup.delayMS"
|
||||
);
|
||||
@@ -2237,6 +2298,7 @@
|
||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||
// that dropping the tab(s) will create a new tab group.
|
||||
let shouldCreateGroupOnDrop =
|
||||
+ false &&
|
||||
!movingTabsSet.has(dropElement) &&
|
||||
isTab(dropElement) &&
|
||||
!dropElement?.group &&
|
||||
@@ -2245,6 +2307,7 @@
|
||||
// When dragging tab(s) over a collapsed tab group label, signal to the
|
||||
// user that dropping the tab(s) will add them to the group.
|
||||
let shouldDropIntoCollapsedTabGroup =
|
||||
+ false &&
|
||||
isTabGroupLabel(dropElement) &&
|
||||
dropElement.group.collapsed &&
|
||||
overlapPercent > dragOverGroupingThreshold;
|
||||
@@ -2302,6 +2365,14 @@
|
||||
dropElement = dropElementGroup.tabs[0];
|
||||
dropBefore = true;
|
||||
}
|
||||
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
||||
+ dropElement,
|
||||
+ draggedTab,
|
||||
+ overlapPercent,
|
||||
+ movingTabs,
|
||||
+ dropBefore,
|
||||
+ colorCode
|
||||
+ ));
|
||||
}
|
||||
this.#setDragOverGroupColor(colorCode);
|
||||
this.#tabbrowserTabs.toggleAttribute(
|
||||
@@ -2324,10 +2395,11 @@
|
||||
dragData.dropBefore = dropBefore;
|
||||
dragData.animDropElementIndex = newDropElementIndex;
|
||||
|
||||
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
||||
// Shift background tabs to leave a gap where the dragged tab
|
||||
// would currently be dropped.
|
||||
for (let item of tabs) {
|
||||
- if (item == draggedTab) {
|
||||
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -2417,11 +2489,13 @@
|
||||
}
|
||||
|
||||
finishAnimateTabMove() {
|
||||
+ gZenPinnedTabManager.onDragFinish();
|
||||
if (!this.#isMovingTab()) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.#setMovingTabMode(false);
|
||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||
|
||||
for (let item of this.#tabbrowserTabs.ariaFocusableItems) {
|
||||
this.#resetGroupTarget(item);
|
||||
@@ -2457,7 +2531,7 @@
|
||||
tab.style.left = "";
|
||||
tab.style.top = "";
|
||||
tab.style.maxWidth = "";
|
||||
- tab.removeAttribute("dragtarget");
|
||||
+ tab.removeAttribute("zen-dragtarget");
|
||||
}
|
||||
for (let label of draggedTabDocument.getElementsByClassName(
|
||||
"tab-group-label-container"
|
||||
@@ -2467,7 +2541,7 @@
|
||||
label.style.left = "";
|
||||
label.style.top = "";
|
||||
label.style.maxWidth = "";
|
||||
- label.removeAttribute("dragtarget");
|
||||
+ label.removeAttribute("zen-dragtarget");
|
||||
}
|
||||
let periphery = draggedTabDocument.getElementById(
|
||||
"tabbrowser-arrowscrollbox-periphery"
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tab.js b/browser/components/tabbrowser/content/tab.js
|
||||
index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362efc001afdd 100644
|
||||
index 4c1a48424316b29d27ae2bc8b64004df41c87bb6..f1ff9bf0947127a8e9115357cedac577b5fad08c 100644
|
||||
--- a/browser/components/tabbrowser/content/tab.js
|
||||
+++ b/browser/components/tabbrowser/content/tab.js
|
||||
@@ -21,6 +21,7 @@
|
||||
@@ -42,7 +42,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
".tab-label-container":
|
||||
"pinned,selected=visuallyselected,labeldirection",
|
||||
".tab-label":
|
||||
@@ -184,7 +187,7 @@
|
||||
@@ -186,7 +189,7 @@
|
||||
}
|
||||
|
||||
set _visuallySelected(val) {
|
||||
@@ -51,7 +51,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -220,11 +223,21 @@
|
||||
@@ -222,11 +225,21 @@
|
||||
}
|
||||
|
||||
get visible() {
|
||||
@@ -78,7 +78,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
}
|
||||
|
||||
get hidden() {
|
||||
@@ -295,7 +308,7 @@
|
||||
@@ -297,7 +310,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
}
|
||||
|
||||
get lastAccessed() {
|
||||
@@ -372,8 +385,11 @@
|
||||
@@ -374,8 +387,11 @@
|
||||
}
|
||||
|
||||
get group() {
|
||||
@@ -101,7 +101,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -468,6 +484,8 @@
|
||||
@@ -470,6 +486,8 @@
|
||||
this.style.MozUserFocus = "ignore";
|
||||
} else if (
|
||||
event.target.classList.contains("tab-close-button") ||
|
||||
@@ -110,7 +110,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
event.target.classList.contains("tab-icon-overlay") ||
|
||||
event.target.classList.contains("tab-audio-button")
|
||||
) {
|
||||
@@ -522,6 +540,10 @@
|
||||
@@ -524,6 +542,10 @@
|
||||
this.style.MozUserFocus = "";
|
||||
}
|
||||
|
||||
@@ -121,7 +121,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
on_click(event) {
|
||||
if (event.button != 0) {
|
||||
return;
|
||||
@@ -570,6 +592,7 @@
|
||||
@@ -572,6 +594,7 @@
|
||||
)
|
||||
);
|
||||
} else {
|
||||
@@ -129,7 +129,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
gBrowser.removeTab(this, {
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
@@ -582,6 +605,14 @@
|
||||
@@ -584,6 +607,14 @@
|
||||
// (see tabbrowser-tabs 'click' handler).
|
||||
gBrowser.tabContainer._blockDblClick = true;
|
||||
}
|
||||
@@ -144,7 +144,7 @@ index 425aaf8c8e4adf1507eb0d8ded671f8295544b04..12988986c4cf00990c1d1b2e4be362ef
|
||||
}
|
||||
|
||||
on_dblclick(event) {
|
||||
@@ -605,6 +636,8 @@
|
||||
@@ -607,6 +638,8 @@
|
||||
animate: true,
|
||||
triggeringEvent: event,
|
||||
});
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabbrowser.js b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394b7dbc6a7 100644
|
||||
index c0eafd4faf8d57b8486c5bf8917375850ec8147e..326bf96d9346aba7096d518fbf63cc349868d0d0 100644
|
||||
--- a/browser/components/tabbrowser/content/tabbrowser.js
|
||||
+++ b/browser/components/tabbrowser/content/tabbrowser.js
|
||||
@@ -432,15 +432,64 @@
|
||||
@@ -450,15 +450,64 @@
|
||||
return this.tabContainer.visibleTabs;
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
set selectedTab(val) {
|
||||
if (
|
||||
gSharedTabWarning.willShowSharedTabWarning(val) ||
|
||||
@@ -588,6 +637,7 @@
|
||||
@@ -613,6 +662,7 @@
|
||||
this.tabpanels.appendChild(panel);
|
||||
|
||||
let tab = this.tabs[0];
|
||||
@@ -77,7 +77,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
tab.linkedPanel = uniqueId;
|
||||
this._selectedTab = tab;
|
||||
this._selectedBrowser = browser;
|
||||
@@ -873,13 +923,17 @@
|
||||
@@ -898,13 +948,17 @@
|
||||
}
|
||||
|
||||
this.showTab(aTab);
|
||||
@@ -96,7 +96,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
aTab.setAttribute("pinned", "true");
|
||||
this._updateTabBarForPinnedTabs();
|
||||
@@ -892,11 +946,15 @@
|
||||
@@ -917,11 +971,15 @@
|
||||
}
|
||||
|
||||
this.#handleTabMove(aTab, () => {
|
||||
@@ -113,7 +113,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
});
|
||||
|
||||
aTab.style.marginInlineStart = "";
|
||||
@@ -1073,6 +1131,8 @@
|
||||
@@ -1098,6 +1156,8 @@
|
||||
|
||||
let LOCAL_PROTOCOLS = ["chrome:", "about:", "resource:", "data:"];
|
||||
|
||||
@@ -122,7 +122,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (
|
||||
aIconURL &&
|
||||
!LOCAL_PROTOCOLS.some(protocol => aIconURL.startsWith(protocol))
|
||||
@@ -1082,6 +1142,9 @@
|
||||
@@ -1107,6 +1167,9 @@
|
||||
);
|
||||
return;
|
||||
}
|
||||
@@ -132,7 +132,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
let browser = this.getBrowserForTab(aTab);
|
||||
browser.mIconURL = aIconURL;
|
||||
@@ -1445,6 +1508,7 @@
|
||||
@@ -1470,6 +1533,7 @@
|
||||
if (!this._previewMode) {
|
||||
newTab.recordTimeFromUnloadToReload();
|
||||
newTab.updateLastAccessed();
|
||||
@@ -140,7 +140,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
oldTab.updateLastAccessed();
|
||||
// if this is the foreground window, update the last-seen timestamps.
|
||||
if (this.ownerGlobal == BrowserWindowTracker.getTopWindow()) {
|
||||
@@ -1597,6 +1661,9 @@
|
||||
@@ -1622,6 +1686,9 @@
|
||||
}
|
||||
|
||||
let activeEl = document.activeElement;
|
||||
@@ -150,7 +150,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// If focus is on the old tab, move it to the new tab.
|
||||
if (activeEl == oldTab) {
|
||||
newTab.focus();
|
||||
@@ -1920,7 +1987,8 @@
|
||||
@@ -1945,7 +2012,8 @@
|
||||
}
|
||||
|
||||
_setTabLabel(aTab, aLabel, { beforeTabOpen, isContentTitle, isURL } = {}) {
|
||||
@@ -160,7 +160,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2028,7 +2096,7 @@
|
||||
@@ -2053,7 +2121,7 @@
|
||||
newIndex = this.selectedTab._tPos + 1;
|
||||
}
|
||||
|
||||
@@ -169,7 +169,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (this.isTabGroupLabel(targetTab)) {
|
||||
throw new Error(
|
||||
"Replacing a tab group label with a tab is not supported"
|
||||
@@ -2303,6 +2371,7 @@
|
||||
@@ -2328,6 +2396,7 @@
|
||||
uriIsAboutBlank,
|
||||
userContextId,
|
||||
skipLoad,
|
||||
@@ -177,7 +177,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} = {}) {
|
||||
let b = document.createXULElement("browser");
|
||||
// Use the JSM global to create the permanentKey, so that if the
|
||||
@@ -2376,8 +2445,7 @@
|
||||
@@ -2401,8 +2470,7 @@
|
||||
// we use a different attribute name for this?
|
||||
b.setAttribute("name", name);
|
||||
}
|
||||
@@ -187,7 +187,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
b.setAttribute("transparent", "true");
|
||||
}
|
||||
|
||||
@@ -2542,7 +2610,7 @@
|
||||
@@ -2567,7 +2635,7 @@
|
||||
|
||||
let panel = this.getPanel(browser);
|
||||
let uniqueId = this._generateUniquePanelID();
|
||||
@@ -196,7 +196,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
aTab.linkedPanel = uniqueId;
|
||||
|
||||
// Inject the <browser> into the DOM if necessary.
|
||||
@@ -2601,8 +2669,8 @@
|
||||
@@ -2626,8 +2694,8 @@
|
||||
// If we transitioned from one browser to two browsers, we need to set
|
||||
// hasSiblings=false on both the existing browser and the new browser.
|
||||
if (this.tabs.length == 2) {
|
||||
@@ -207,7 +207,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else {
|
||||
aTab.linkedBrowser.browsingContext.hasSiblings = this.tabs.length > 1;
|
||||
}
|
||||
@@ -2779,7 +2847,6 @@
|
||||
@@ -2814,7 +2882,6 @@
|
||||
this.selectedTab = this.addTrustedTab(BROWSER_NEW_TAB_URL, {
|
||||
tabIndex: tab._tPos + 1,
|
||||
userContextId: tab.userContextId,
|
||||
@@ -215,7 +215,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
focusUrlBar: true,
|
||||
});
|
||||
resolve(this.selectedBrowser);
|
||||
@@ -2859,6 +2926,8 @@
|
||||
@@ -2923,6 +2990,8 @@
|
||||
schemelessInput,
|
||||
hasValidUserGestureActivation = false,
|
||||
textDirectiveUserActivation = false,
|
||||
@@ -224,7 +224,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} = {}
|
||||
) {
|
||||
// all callers of addTab that pass a params object need to pass
|
||||
@@ -2869,6 +2938,12 @@
|
||||
@@ -2933,6 +3002,12 @@
|
||||
);
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (!UserInteraction.running("browser.tabs.opening", window)) {
|
||||
UserInteraction.start("browser.tabs.opening", "initting", window);
|
||||
}
|
||||
@@ -2932,6 +3007,19 @@
|
||||
@@ -2996,6 +3071,19 @@
|
||||
noInitialLabel,
|
||||
skipBackgroundNotify,
|
||||
});
|
||||
@@ -257,7 +257,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (insertTab) {
|
||||
// Insert the tab into the tab container in the correct position.
|
||||
this.#insertTabAtIndex(t, {
|
||||
@@ -2940,6 +3028,7 @@
|
||||
@@ -3004,6 +3092,7 @@
|
||||
ownerTab,
|
||||
openerTab,
|
||||
pinned,
|
||||
@@ -265,7 +265,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
bulkOrderedOpen,
|
||||
tabGroup: tabGroup ?? openerTab?.group,
|
||||
});
|
||||
@@ -2958,6 +3047,7 @@
|
||||
@@ -3022,6 +3111,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
@@ -273,7 +273,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}));
|
||||
|
||||
if (focusUrlBar) {
|
||||
@@ -3078,6 +3168,12 @@
|
||||
@@ -3146,6 +3236,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// Additionally send pinned tab events
|
||||
if (pinned) {
|
||||
this.#notifyPinnedStatus(t);
|
||||
@@ -3248,10 +3344,10 @@
|
||||
@@ -3330,10 +3426,10 @@
|
||||
isAdoptingGroup = false,
|
||||
isUserTriggered = false,
|
||||
telemetryUserCreateSource = "unknown",
|
||||
@@ -298,7 +298,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}
|
||||
|
||||
if (!color) {
|
||||
@@ -3272,9 +3368,14 @@
|
||||
@@ -3354,9 +3450,14 @@
|
||||
label,
|
||||
isAdoptingGroup
|
||||
);
|
||||
@@ -315,7 +315,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
);
|
||||
group.addTabs(tabs);
|
||||
|
||||
@@ -3395,7 +3496,7 @@
|
||||
@@ -3477,7 +3578,7 @@
|
||||
}
|
||||
|
||||
this.#handleTabMove(tab, () =>
|
||||
@@ -324,7 +324,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
);
|
||||
}
|
||||
|
||||
@@ -3597,6 +3698,7 @@
|
||||
@@ -3679,6 +3780,7 @@
|
||||
openWindowInfo,
|
||||
skipLoad,
|
||||
triggeringRemoteType,
|
||||
@@ -332,7 +332,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}
|
||||
) {
|
||||
// If we don't have a preferred remote type (or it is `NOT_REMOTE`), and
|
||||
@@ -3666,6 +3768,7 @@
|
||||
@@ -3748,6 +3850,7 @@
|
||||
openWindowInfo,
|
||||
name,
|
||||
skipLoad,
|
||||
@@ -340,7 +340,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3853,7 +3956,7 @@
|
||||
@@ -3935,7 +4038,7 @@
|
||||
// Add a new tab if needed.
|
||||
if (!tab) {
|
||||
let createLazyBrowser =
|
||||
@@ -349,7 +349,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
let url = "about:blank";
|
||||
if (tabData.entries?.length) {
|
||||
@@ -3890,8 +3993,10 @@
|
||||
@@ -3972,8 +4075,10 @@
|
||||
insertTab: false,
|
||||
skipLoad: true,
|
||||
preferredRemoteType,
|
||||
@@ -361,7 +361,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (select) {
|
||||
tabToSelect = tab;
|
||||
}
|
||||
@@ -3903,7 +4008,8 @@
|
||||
@@ -3985,7 +4090,8 @@
|
||||
this.pinTab(tab);
|
||||
// Then ensure all the tab open/pinning information is sent.
|
||||
this._fireTabOpen(tab, {});
|
||||
@@ -371,7 +371,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
let { groupId } = tabData;
|
||||
const tabGroup = tabGroupWorkingData.get(groupId);
|
||||
// if a tab refers to a tab group we don't know, skip any group
|
||||
@@ -3917,7 +4023,10 @@
|
||||
@@ -3999,7 +4105,10 @@
|
||||
tabGroup.stateData.id,
|
||||
tabGroup.stateData.color,
|
||||
tabGroup.stateData.collapsed,
|
||||
@@ -383,7 +383,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
);
|
||||
tabsFragment.appendChild(tabGroup.node);
|
||||
}
|
||||
@@ -3962,9 +4071,23 @@
|
||||
@@ -4044,9 +4153,23 @@
|
||||
// to remove the old selected tab.
|
||||
if (tabToSelect) {
|
||||
let leftoverTab = this.selectedTab;
|
||||
@@ -407,7 +407,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
if (tabs.length > 1 || !tabs[0].selected) {
|
||||
this._updateTabsAfterInsert();
|
||||
@@ -4155,11 +4278,14 @@
|
||||
@@ -4237,11 +4360,14 @@
|
||||
if (ownerTab) {
|
||||
tab.owner = ownerTab;
|
||||
}
|
||||
@@ -423,7 +423,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (
|
||||
!bulkOrderedOpen &&
|
||||
((openerTab &&
|
||||
@@ -4171,7 +4297,7 @@
|
||||
@@ -4253,7 +4379,7 @@
|
||||
let lastRelatedTab =
|
||||
openerTab && this._lastRelatedTabMap.get(openerTab);
|
||||
let previousTab = lastRelatedTab || openerTab || this.selectedTab;
|
||||
@@ -432,7 +432,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
tabGroup = previousTab.group;
|
||||
}
|
||||
if (
|
||||
@@ -4182,7 +4308,7 @@
|
||||
@@ -4264,7 +4390,7 @@
|
||||
) {
|
||||
elementIndex = Infinity;
|
||||
} else if (previousTab.visible) {
|
||||
@@ -441,7 +441,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else if (previousTab == FirefoxViewHandler.tab) {
|
||||
elementIndex = 0;
|
||||
}
|
||||
@@ -4210,14 +4336,14 @@
|
||||
@@ -4292,14 +4418,14 @@
|
||||
}
|
||||
// Ensure index is within bounds.
|
||||
if (tab.pinned) {
|
||||
@@ -460,7 +460,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
if (pinned && !itemAfter?.pinned) {
|
||||
itemAfter = null;
|
||||
@@ -4228,7 +4354,7 @@
|
||||
@@ -4310,7 +4436,7 @@
|
||||
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
|
||||
@@ -469,7 +469,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (this.isTab(itemAfter) && itemAfter.group == tabGroup) {
|
||||
// Place at the front of, or between tabs in, the same tab group
|
||||
this.tabContainer.insertBefore(tab, itemAfter);
|
||||
@@ -4264,6 +4390,7 @@
|
||||
@@ -4346,6 +4472,7 @@
|
||||
if (pinned) {
|
||||
this._updateTabBarForPinnedTabs();
|
||||
}
|
||||
@@ -477,7 +477,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -4553,6 +4680,9 @@
|
||||
@@ -4635,6 +4762,9 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -487,7 +487,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
this.removeTabs(selectedTabs, { isUserTriggered, telemetrySource });
|
||||
}
|
||||
|
||||
@@ -4814,6 +4944,7 @@
|
||||
@@ -4896,6 +5026,7 @@
|
||||
telemetrySource,
|
||||
} = {}
|
||||
) {
|
||||
@@ -495,7 +495,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// When 'closeWindowWithLastTab' pref is enabled, closing all tabs
|
||||
// can be considered equivalent to closing the window.
|
||||
if (
|
||||
@@ -4903,6 +5034,7 @@
|
||||
@@ -4985,6 +5116,7 @@
|
||||
if (lastToClose) {
|
||||
this.removeTab(lastToClose, aParams);
|
||||
}
|
||||
@@ -503,7 +503,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
@@ -4941,6 +5073,12 @@
|
||||
@@ -5023,6 +5155,12 @@
|
||||
aTab._closeTimeNoAnimTimerId = Glean.browserTabclose.timeNoAnim.start();
|
||||
}
|
||||
|
||||
@@ -516,7 +516,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// Handle requests for synchronously removing an already
|
||||
// asynchronously closing tab.
|
||||
if (!animate && aTab.closing) {
|
||||
@@ -4955,6 +5093,9 @@
|
||||
@@ -5037,6 +5175,9 @@
|
||||
// state).
|
||||
let tabWidth = window.windowUtils.getBoundsWithoutFlushing(aTab).width;
|
||||
let isLastTab = this.#isLastTabInWindow(aTab);
|
||||
@@ -526,7 +526,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (
|
||||
!this._beginRemoveTab(aTab, {
|
||||
closeWindowFastpath: true,
|
||||
@@ -5003,7 +5144,13 @@
|
||||
@@ -5085,7 +5226,13 @@
|
||||
// We're not animating, so we can cancel the animation stopwatch.
|
||||
Glean.browserTabclose.timeAnim.cancel(aTab._closeTimeAnimTimerId);
|
||||
aTab._closeTimeAnimTimerId = null;
|
||||
@@ -541,7 +541,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5137,7 +5284,7 @@
|
||||
@@ -5219,7 +5366,7 @@
|
||||
closeWindowWithLastTab != null
|
||||
? closeWindowWithLastTab
|
||||
: !window.toolbar.visible ||
|
||||
@@ -550,7 +550,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
if (closeWindow) {
|
||||
// We've already called beforeunload on all the relevant tabs if we get here,
|
||||
@@ -5161,6 +5308,7 @@
|
||||
@@ -5243,6 +5390,7 @@
|
||||
|
||||
newTab = true;
|
||||
}
|
||||
@@ -558,7 +558,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
aTab._endRemoveArgs = [closeWindow, newTab];
|
||||
|
||||
// swapBrowsersAndCloseOther will take care of closing the window without animation.
|
||||
@@ -5201,13 +5349,7 @@
|
||||
@@ -5283,13 +5431,7 @@
|
||||
aTab._mouseleave();
|
||||
|
||||
if (newTab) {
|
||||
@@ -573,7 +573,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else {
|
||||
TabBarVisibility.update();
|
||||
}
|
||||
@@ -5340,6 +5482,7 @@
|
||||
@@ -5422,6 +5564,7 @@
|
||||
this.tabs[i]._tPos = i;
|
||||
}
|
||||
|
||||
@@ -581,7 +581,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (!this._windowIsClosing) {
|
||||
// update tab close buttons state
|
||||
this.tabContainer._updateCloseButtons();
|
||||
@@ -5552,6 +5695,7 @@
|
||||
@@ -5643,6 +5786,7 @@
|
||||
}
|
||||
|
||||
let excludeTabs = new Set(aExcludeTabs);
|
||||
@@ -589,7 +589,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
|
||||
// If this tab has a successor, it should be selectable, since
|
||||
// hiding or closing a tab removes that tab as a successor.
|
||||
@@ -5564,13 +5708,13 @@
|
||||
@@ -5655,13 +5799,13 @@
|
||||
!excludeTabs.has(aTab.owner) &&
|
||||
Services.prefs.getBoolPref("browser.tabs.selectOwnerOnClose")
|
||||
) {
|
||||
@@ -605,7 +605,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
);
|
||||
|
||||
let tab = this.tabContainer.findNextTab(aTab, {
|
||||
@@ -5586,7 +5730,7 @@
|
||||
@@ -5677,7 +5821,7 @@
|
||||
}
|
||||
|
||||
if (tab) {
|
||||
@@ -614,7 +614,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}
|
||||
|
||||
// If no qualifying visible tab was found, see if there is a tab in
|
||||
@@ -5607,7 +5751,7 @@
|
||||
@@ -5698,7 +5842,7 @@
|
||||
});
|
||||
}
|
||||
|
||||
@@ -623,7 +623,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}
|
||||
|
||||
_blurTab(aTab) {
|
||||
@@ -6013,10 +6157,10 @@
|
||||
@@ -6104,10 +6248,10 @@
|
||||
SessionStore.deleteCustomTabValue(aTab, "hiddenBy");
|
||||
}
|
||||
|
||||
@@ -636,7 +636,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
aTab.selected ||
|
||||
aTab.closing ||
|
||||
// Tabs that are sharing the screen, microphone or camera cannot be hidden.
|
||||
@@ -6075,6 +6219,7 @@
|
||||
@@ -6166,6 +6310,7 @@
|
||||
* @param {MozTabbrowserTab|MozTabbrowserTabGroup|MozTabbrowserTabGroup.labelElement} aTab
|
||||
*/
|
||||
replaceTabWithWindow(aTab, aOptions) {
|
||||
@@ -644,7 +644,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (this.tabs.length == 1) {
|
||||
return null;
|
||||
}
|
||||
@@ -6208,7 +6353,7 @@
|
||||
@@ -6299,7 +6444,7 @@
|
||||
* `true` if element is a `<tab-group>`
|
||||
*/
|
||||
isTabGroup(element) {
|
||||
@@ -653,7 +653,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -6284,8 +6429,8 @@
|
||||
@@ -6375,8 +6520,8 @@
|
||||
}
|
||||
|
||||
// Don't allow mixing pinned and unpinned tabs.
|
||||
@@ -664,7 +664,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else {
|
||||
tabIndex = Math.max(tabIndex, this.pinnedTabCount);
|
||||
}
|
||||
@@ -6311,10 +6456,16 @@
|
||||
@@ -6402,10 +6547,16 @@
|
||||
this.#handleTabMove(
|
||||
element,
|
||||
() => {
|
||||
@@ -683,7 +683,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
if (neighbor && this.isTab(element) && tabIndex > element._tPos) {
|
||||
neighbor.after(element);
|
||||
} else {
|
||||
@@ -6372,23 +6523,28 @@
|
||||
@@ -6463,23 +6614,28 @@
|
||||
#moveTabNextTo(element, targetElement, moveBefore = false, metricsContext) {
|
||||
if (this.isTabGroupLabel(targetElement)) {
|
||||
targetElement = targetElement.group;
|
||||
@@ -718,7 +718,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else if (!element.pinned && targetElement && targetElement.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
|
||||
@@ -6401,14 +6557,34 @@
|
||||
@@ -6492,14 +6648,34 @@
|
||||
// move the tab group right before the first unpinned tab.
|
||||
// 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.
|
||||
@@ -754,7 +754,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
element.pinned
|
||||
? this.tabContainer.pinnedTabsContainer
|
||||
: this.tabContainer;
|
||||
@@ -6417,7 +6593,7 @@
|
||||
@@ -6508,7 +6684,7 @@
|
||||
element,
|
||||
() => {
|
||||
if (moveBefore) {
|
||||
@@ -763,7 +763,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
} else if (targetElement) {
|
||||
targetElement.after(element);
|
||||
} else {
|
||||
@@ -6489,10 +6665,10 @@
|
||||
@@ -6580,10 +6756,10 @@
|
||||
* @param {TabMetricsContext} [metricsContext]
|
||||
*/
|
||||
moveTabToGroup(aTab, aGroup, metricsContext) {
|
||||
@@ -776,7 +776,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
return;
|
||||
}
|
||||
if (aTab.group && aTab.group.id === aGroup.id) {
|
||||
@@ -6522,6 +6698,7 @@
|
||||
@@ -6613,6 +6789,7 @@
|
||||
|
||||
let state = {
|
||||
tabIndex: tab._tPos,
|
||||
@@ -784,7 +784,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
};
|
||||
if (tab.visible) {
|
||||
state.elementIndex = tab.elementIndex;
|
||||
@@ -6548,7 +6725,7 @@
|
||||
@@ -6639,7 +6816,7 @@
|
||||
let changedTabGroup =
|
||||
previousTabState.tabGroupId != currentTabState.tabGroupId;
|
||||
|
||||
@@ -793,7 +793,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
tab.dispatchEvent(
|
||||
new CustomEvent("TabMove", {
|
||||
bubbles: true,
|
||||
@@ -6585,6 +6762,10 @@
|
||||
@@ -6676,6 +6853,10 @@
|
||||
|
||||
moveActionCallback();
|
||||
|
||||
@@ -804,7 +804,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// Clear tabs cache after moving nodes because the order of tabs may have
|
||||
// changed.
|
||||
this.tabContainer._invalidateCachedTabs();
|
||||
@@ -7486,7 +7667,7 @@
|
||||
@@ -7576,7 +7757,7 @@
|
||||
// preventDefault(). It will still raise the window if appropriate.
|
||||
break;
|
||||
}
|
||||
@@ -813,7 +813,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
window.focus();
|
||||
aEvent.preventDefault();
|
||||
break;
|
||||
@@ -7501,7 +7682,6 @@
|
||||
@@ -7593,7 +7774,6 @@
|
||||
}
|
||||
case "TabGroupCollapse":
|
||||
aEvent.target.tabs.forEach(tab => {
|
||||
@@ -821,7 +821,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
});
|
||||
break;
|
||||
case "TabGroupCreateByUser":
|
||||
@@ -8442,6 +8622,7 @@
|
||||
@@ -8542,6 +8722,7 @@
|
||||
aWebProgress.isTopLevel
|
||||
) {
|
||||
this.mTab.setAttribute("busy", "true");
|
||||
@@ -829,7 +829,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
gBrowser._tabAttrModified(this.mTab, ["busy"]);
|
||||
this.mTab._notselectedsinceload = !this.mTab.selected;
|
||||
}
|
||||
@@ -9443,7 +9624,7 @@ var TabContextMenu = {
|
||||
@@ -9543,7 +9724,7 @@ var TabContextMenu = {
|
||||
);
|
||||
contextUnpinSelectedTabs.hidden =
|
||||
!this.contextTab.pinned || !this.multiselected;
|
||||
@@ -838,7 +838,7 @@ index c099e8646b9341a3ff55bf394037c8fc2769969b..0d524a0519bbbdf304a594d1fb56c394
|
||||
// Build Ask Chat items
|
||||
TabContextMenu.GenAI.buildTabMenu(
|
||||
document.getElementById("context_askChat"),
|
||||
@@ -9763,6 +9944,7 @@ var TabContextMenu = {
|
||||
@@ -9863,6 +10044,7 @@ var TabContextMenu = {
|
||||
)
|
||||
);
|
||||
} else {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabgroup.js b/browser/components/tabbrowser/content/tabgroup.js
|
||||
index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b424098ba3e7b 100644
|
||||
index aa8b22c558f9dbc0b0b1e63993477b9126fb6821..feb90bb75b78e2513362679a5b5da41fbf97ac20 100644
|
||||
--- a/browser/components/tabbrowser/content/tabgroup.js
|
||||
+++ b/browser/components/tabbrowser/content/tabgroup.js
|
||||
@@ -14,11 +14,11 @@
|
||||
@@ -77,8 +77,8 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
+ };
|
||||
|
||||
this.#updateLabelAriaAttributes();
|
||||
this.#updateCollapsedAriaAttributes();
|
||||
@@ -144,6 +163,8 @@
|
||||
|
||||
@@ -143,6 +162,8 @@
|
||||
// mounts after getting created by `Tabbrowser.adoptTabGroup`.
|
||||
this.#wasCreatedByAdoption = false;
|
||||
}
|
||||
@@ -87,7 +87,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
|
||||
resetDefaultGroupName = () => {
|
||||
this.#defaultGroupName = "";
|
||||
@@ -228,7 +249,10 @@
|
||||
@@ -227,7 +248,10 @@
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -99,7 +99,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
}
|
||||
|
||||
get color() {
|
||||
@@ -322,6 +346,9 @@
|
||||
@@ -321,6 +345,9 @@
|
||||
}
|
||||
|
||||
set collapsed(val) {
|
||||
@@ -109,7 +109,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
if (!!val == this.collapsed) {
|
||||
return;
|
||||
}
|
||||
@@ -399,7 +426,6 @@
|
||||
@@ -406,7 +433,6 @@
|
||||
tabGroupName,
|
||||
})
|
||||
.then(result => {
|
||||
@@ -117,7 +117,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
});
|
||||
}
|
||||
|
||||
@@ -418,7 +444,57 @@
|
||||
@@ -425,7 +451,57 @@
|
||||
* @returns {MozTabbrowserTab[]}
|
||||
*/
|
||||
get tabs() {
|
||||
@@ -176,7 +176,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -498,7 +574,6 @@
|
||||
@@ -506,7 +582,6 @@
|
||||
addTabs(tabs, metricsContext) {
|
||||
for (let tab of tabs) {
|
||||
if (tab.pinned) {
|
||||
@@ -184,7 +184,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
}
|
||||
let tabToMove =
|
||||
this.ownerGlobal === tab.ownerGlobal
|
||||
@@ -561,7 +636,7 @@
|
||||
@@ -569,7 +644,7 @@
|
||||
*/
|
||||
on_click(event) {
|
||||
let isToggleElement =
|
||||
@@ -193,7 +193,7 @@ index 1b4f6bf4ed6556492f84476d33e9103fbb1c74e9..77bd8738db6f2e65c2bfcae8347b4240
|
||||
event.target === this.#overflowCountLabel;
|
||||
if (isToggleElement && event.button === 0) {
|
||||
event.preventDefault();
|
||||
@@ -630,5 +705,6 @@
|
||||
@@ -638,5 +713,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,18 +1,8 @@
|
||||
diff --git a/browser/components/tabbrowser/content/tabs.js b/browser/components/tabbrowser/content/tabs.js
|
||||
index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78bec02d253a 100644
|
||||
index 258b9627aaa8a1d26e8aeb987a0b4c67bc1b7abc..6d334761033a0654f28fd417193d2ac2a736d9f8 100644
|
||||
--- a/browser/components/tabbrowser/content/tabs.js
|
||||
+++ b/browser/components/tabbrowser/content/tabs.js
|
||||
@@ -44,6 +44,9 @@
|
||||
* @returns {MozTabbrowserTab|vbox}
|
||||
*/
|
||||
const elementToMove = element => {
|
||||
+ if (element.group?.hasAttribute("split-view-group")) {
|
||||
+ return element.group;
|
||||
+ }
|
||||
if (isTab(element)) {
|
||||
return element;
|
||||
}
|
||||
@@ -423,7 +426,7 @@
|
||||
@@ -411,7 +411,7 @@
|
||||
// and we're not hitting the scroll buttons.
|
||||
if (
|
||||
event.button != 0 ||
|
||||
@@ -21,7 +11,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
event.composedTarget.localName == "toolbarbutton"
|
||||
) {
|
||||
return;
|
||||
@@ -504,7 +507,6 @@
|
||||
@@ -492,7 +492,6 @@
|
||||
});
|
||||
}
|
||||
} else if (isTabGroupLabel(event.target)) {
|
||||
@@ -29,7 +19,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
} else if (
|
||||
event.originalTarget.closest("scrollbox") &&
|
||||
!Services.prefs.getBoolPref(
|
||||
@@ -540,6 +542,9 @@
|
||||
@@ -528,6 +527,9 @@
|
||||
}
|
||||
|
||||
on_keydown(event) {
|
||||
@@ -39,153 +29,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
let { altKey, shiftKey } = event;
|
||||
let [accel, nonAccel] =
|
||||
AppConstants.platform == "macosx"
|
||||
@@ -777,7 +782,7 @@
|
||||
if (this.#isContainerVerticalPinnedGrid(tab)) {
|
||||
// In expanded vertical mode, the max number of pinned tabs per row is dynamic
|
||||
// Set this before adjusting dragged tab's position
|
||||
- let pinnedTabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
||||
+ let pinnedTabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||
let tabsPerRow = 0;
|
||||
let position = RTL_UI
|
||||
? window.windowUtils.getBoundsWithoutFlushing(
|
||||
@@ -942,7 +947,7 @@
|
||||
let dropEffect = this.getDropEffectForTabDrag(event);
|
||||
let isMovingInTabStrip = !fromTabList && dropEffect == "move";
|
||||
let collapseTabGroupDuringDrag =
|
||||
- isMovingInTabStrip && isTabGroupLabel(tab) && !tab.group.collapsed;
|
||||
+ isMovingInTabStrip && isTabGroupLabel(tab) && (!tab.group.collapsed || tab.group.hasAttribute("has-active"));
|
||||
|
||||
tab._dragData = {
|
||||
offsetX: this.verticalMode
|
||||
@@ -952,7 +957,7 @@
|
||||
? event.screenY - window.screenY - tabOffset
|
||||
: event.screenY - window.screenY,
|
||||
scrollPos:
|
||||
- this.verticalMode && tab.pinned
|
||||
+ this.verticalMode && tab.pinned && false
|
||||
? this.pinnedTabsContainer.scrollPosition
|
||||
: this.arrowScrollbox.scrollPosition,
|
||||
screenX: event.screenX,
|
||||
@@ -981,6 +986,7 @@
|
||||
|
||||
if (collapseTabGroupDuringDrag) {
|
||||
tab.group.collapsed = true;
|
||||
+ gZenFolders.animateGroupMove(tab.group);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1027,6 +1033,10 @@
|
||||
}
|
||||
|
||||
let draggedTab = event.dataTransfer.mozGetDataAt(TAB_DROP_TYPE, 0);
|
||||
+ if (draggedTab && dropEffect === "move") {
|
||||
+ gZenPinnedTabManager.applyDragoverClass(event, draggedTab);
|
||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event);
|
||||
+ }
|
||||
if (
|
||||
(dropEffect == "move" || dropEffect == "copy") &&
|
||||
document == draggedTab.ownerDocument &&
|
||||
@@ -1154,7 +1164,8 @@
|
||||
isTabGroupLabel(draggedTab) &&
|
||||
draggedTab._dragData?.expandGroupOnDrop
|
||||
) {
|
||||
- draggedTab.group.collapsed = false;
|
||||
+ draggedTab.group.collapsed = draggedTab.group.hasAttribute("has-active");
|
||||
+ gZenFolders.animateGroupMove(draggedTab.group, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1208,6 +1219,18 @@
|
||||
|
||||
this._tabDropIndicator.hidden = true;
|
||||
event.stopPropagation();
|
||||
+ if (draggedTab?.hasAttribute("zen-has-splitted")) {
|
||||
+ draggedTab.removeAttribute("zen-has-splitted");
|
||||
+ draggedTab._visuallySelected = false;
|
||||
+ }
|
||||
+ if (draggedTab && dropEffect == "move") {
|
||||
+ let moved = gZenPinnedTabManager.moveToAnotherTabContainerIfNecessary(event, movingTabs);
|
||||
+
|
||||
+ if (moved) {
|
||||
+ this.finishMoveTogetherSelectedTabs(draggedTab);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
if (draggedTab && dropEffect == "copy") {
|
||||
let duplicatedDraggedTab;
|
||||
let duplicatedTabs = [];
|
||||
@@ -1232,8 +1255,9 @@
|
||||
let translateOffsetY = oldTranslateY % tabHeight;
|
||||
let newTranslateX = oldTranslateX - translateOffsetX;
|
||||
let newTranslateY = oldTranslateY - translateOffsetY;
|
||||
- let isPinned = draggedTab.pinned;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||
|
||||
if (this.#isContainerVerticalPinnedGrid(draggedTab)) {
|
||||
// Update both translate axis for pinned vertical expanded tabs
|
||||
@@ -1249,8 +1273,8 @@
|
||||
}
|
||||
} else {
|
||||
let tabs = this.ariaFocusableItems.slice(
|
||||
- isPinned ? 0 : numPinned,
|
||||
- isPinned ? numPinned : undefined
|
||||
+ isPinned ? (essential ? 0 : gBrowser._numZenEssentials) : numPinned,
|
||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : numPinned) : undefined
|
||||
);
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
@@ -1299,11 +1323,13 @@
|
||||
this.dragToPinPromoCard,
|
||||
];
|
||||
let shouldPin =
|
||||
+ false &&
|
||||
isTab(draggedTab) &&
|
||||
!draggedTab.pinned &&
|
||||
(overPinnedDropIndicator ||
|
||||
dragToPinTargets.some(el => el.contains(event.target)));
|
||||
let shouldUnpin =
|
||||
+ false &&
|
||||
isTab(draggedTab) &&
|
||||
draggedTab.pinned &&
|
||||
this.arrowScrollbox.contains(event.target);
|
||||
@@ -1321,6 +1347,7 @@
|
||||
(oldTranslateY && oldTranslateY != newTranslateY);
|
||||
} else if (this.verticalMode) {
|
||||
shouldTranslate &&= oldTranslateY && oldTranslateY != newTranslateY;
|
||||
+ shouldTranslate = false;
|
||||
} else {
|
||||
shouldTranslate &&= oldTranslateX && oldTranslateX != newTranslateX;
|
||||
}
|
||||
@@ -1515,6 +1542,7 @@
|
||||
|
||||
let nextItem = this.ariaFocusableItems[newIndex];
|
||||
let tabGroup = isTab(nextItem) && nextItem.group;
|
||||
+ if (gZenViewSplitter.handleTabDrop(event, urls, replace, inBackground)) return;
|
||||
gBrowser.loadTabs(urls, {
|
||||
inBackground,
|
||||
replace,
|
||||
@@ -1553,6 +1581,17 @@
|
||||
}
|
||||
this.#resetTabsAfterDrop(draggedTab.ownerDocument);
|
||||
|
||||
+ if (!dt.mozUserCancelled && dt.dropEffect == "none" && !this._isCustomizing) {
|
||||
+ const moved = gZenViewSplitter.moveTabToSplitView(event, draggedTab);
|
||||
+ if (moved) {
|
||||
+ delete draggedTab._dragData;
|
||||
+ return;
|
||||
+ }
|
||||
+ } else if (dt.mozUserCancelled) {
|
||||
+ gZenViewSplitter.onBrowserDragEndToSplit(event, true);
|
||||
+ if (gZenViewSplitter._lastOpenedTab) gZenViewSplitter._lastOpenedTab._visuallySelected = false;
|
||||
+ }
|
||||
+
|
||||
if (
|
||||
dt.mozUserCancelled ||
|
||||
dt.dropEffect != "none" ||
|
||||
@@ -1719,7 +1758,6 @@
|
||||
@@ -720,7 +722,6 @@
|
||||
|
||||
this.toggleAttribute("overflow", true);
|
||||
this._updateCloseButtons();
|
||||
@@ -193,7 +37,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
|
||||
document
|
||||
.getElementById("tab-preview-panel")
|
||||
@@ -1777,7 +1815,7 @@
|
||||
@@ -780,7 +781,7 @@
|
||||
}
|
||||
|
||||
get newTabButton() {
|
||||
@@ -202,7 +46,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
}
|
||||
|
||||
get verticalMode() {
|
||||
@@ -1793,6 +1831,7 @@
|
||||
@@ -796,6 +797,7 @@
|
||||
}
|
||||
|
||||
get overflowing() {
|
||||
@@ -210,7 +54,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
return this.hasAttribute("overflow");
|
||||
}
|
||||
|
||||
@@ -1806,29 +1845,54 @@
|
||||
@@ -809,29 +811,54 @@
|
||||
if (pinnedChildren?.at(-1)?.id == "pinned-tabs-container-periphery") {
|
||||
pinnedChildren.pop();
|
||||
}
|
||||
@@ -275,7 +119,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1895,29 +1959,23 @@
|
||||
@@ -898,17 +925,10 @@
|
||||
|
||||
let elementIndex = 0;
|
||||
|
||||
@@ -295,26 +139,22 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
if (isTab(child) && child.visible) {
|
||||
child.elementIndex = elementIndex++;
|
||||
focusableItems.push(child);
|
||||
} else if (isTabGroup(child)) {
|
||||
@@ -916,11 +936,13 @@
|
||||
child.labelElement.elementIndex = elementIndex++;
|
||||
focusableItems.push(child.labelElement);
|
||||
-
|
||||
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||
- visibleTabsInGroup.forEach(tab => {
|
||||
- tab.elementIndex = elementIndex++;
|
||||
- });
|
||||
- focusableItems.push(...visibleTabsInGroup);
|
||||
+ if (!child.hasAttribute("split-view-group")) {
|
||||
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
||||
+ visibleTabsInGroup.forEach(tab => {
|
||||
+ tab.elementIndex = elementIndex++;
|
||||
+ });
|
||||
+ focusableItems.push(...visibleTabsInGroup);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1929,6 +1987,7 @@
|
||||
- let visibleTabsInGroup = child.tabs.filter(tab => tab.visible);
|
||||
+ if (!child.hasAttribute("split-view-group")) {
|
||||
+ let visibleTabsInGroup = child.childGroupsAndTabs.filter(tab => tab.visible);
|
||||
visibleTabsInGroup.forEach(tab => {
|
||||
tab.elementIndex = elementIndex++;
|
||||
});
|
||||
focusableItems.push(...visibleTabsInGroup);
|
||||
+ }
|
||||
} else if (child.tagName == "tab-split-view-wrapper") {
|
||||
let visibleTabsInSplitView = child.tabs.filter(tab => tab.visible);
|
||||
visibleTabsInSplitView.forEach(tab => {
|
||||
@@ -964,6 +986,7 @@
|
||||
_invalidateCachedTabs() {
|
||||
this.#allTabs = null;
|
||||
this._invalidateCachedVisibleTabs();
|
||||
@@ -322,18 +162,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
}
|
||||
|
||||
_invalidateCachedVisibleTabs() {
|
||||
@@ -1944,8 +2003,8 @@
|
||||
#isContainerVerticalPinnedGrid(tab) {
|
||||
return (
|
||||
this.verticalMode &&
|
||||
- tab.pinned &&
|
||||
- this.hasAttribute("expanded") &&
|
||||
+ (tab.hasAttribute("zen-essential")) &&
|
||||
+ (this.hasAttribute("expanded") || document.documentElement.hasAttribute("zen-sidebar-expanded")) &&
|
||||
!this.expandOnHover
|
||||
);
|
||||
}
|
||||
@@ -1961,7 +2020,7 @@
|
||||
@@ -1067,7 +1090,7 @@
|
||||
|
||||
if (node == null) {
|
||||
// We have a container for non-tab elements at the end of the scrollbox.
|
||||
@@ -342,7 +171,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
}
|
||||
|
||||
node.before(tab);
|
||||
@@ -2056,7 +2115,7 @@
|
||||
@@ -1162,7 +1185,7 @@
|
||||
// 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);
|
||||
// Attach the long click popup to all of them.
|
||||
@@ -351,7 +180,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
const newTab2 = this.newTabButton;
|
||||
const newTabVertical = document.getElementById(
|
||||
"vertical-tabs-newtab-button"
|
||||
@@ -2156,8 +2215,10 @@
|
||||
@@ -1263,8 +1286,10 @@
|
||||
*/
|
||||
_handleTabSelect(aInstant) {
|
||||
let selectedTab = this.selectedItem;
|
||||
@@ -362,7 +191,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
selectedTab._notselectedsinceload = false;
|
||||
}
|
||||
|
||||
@@ -2166,7 +2227,7 @@
|
||||
@@ -1273,7 +1298,7 @@
|
||||
* @param {boolean} [shouldScrollInstantly=false]
|
||||
*/
|
||||
#ensureTabIsVisible(tab, shouldScrollInstantly = false) {
|
||||
@@ -371,265 +200,7 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
if (arrowScrollbox?.overflowing) {
|
||||
arrowScrollbox.ensureElementIsVisible(tab, shouldScrollInstantly);
|
||||
}
|
||||
@@ -2305,6 +2366,16 @@
|
||||
when the tab is first selected to be dragged.
|
||||
*/
|
||||
#updateTabStylesOnDrag(tab) {
|
||||
+ let { movingTabs: zenMovingTabs } = tab._dragData;
|
||||
+ for (let movingTab of zenMovingTabs.slice(zenMovingTabs.findIndex(t => t._tPos == tab._tPos))) {
|
||||
+ if (isTabGroupLabel(tab)) {
|
||||
+ movingTab = movingTab.parentElement;
|
||||
+ }
|
||||
+ // "dragtarget" contains the following rules which must only be set AFTER the above
|
||||
+ // elements have been adjusted. {z-index: 3 !important, position: absolute !important}
|
||||
+ movingTab.setAttribute("zen-dragtarget", "");
|
||||
+ }
|
||||
+ return;
|
||||
let isPinned = tab.pinned;
|
||||
let numPinned = gBrowser.pinnedTabCount;
|
||||
let allTabs = this.ariaFocusableItems;
|
||||
@@ -2578,7 +2649,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
- let tabs = this.visibleTabs.slice(0, gBrowser.pinnedTabCount);
|
||||
+ let tabs = this.ariaFocusableItems.slice(0, gBrowser._numZenEssentials);
|
||||
|
||||
let directionX = screenX > dragData.animLastScreenX;
|
||||
let directionY = screenY > dragData.animLastScreenY;
|
||||
@@ -2587,6 +2658,8 @@
|
||||
|
||||
let { width: tabWidth, height: tabHeight } =
|
||||
draggedTab.getBoundingClientRect();
|
||||
+ tabWidth += 4; // Add 4px to account for the gap
|
||||
+ tabHeight += 4;
|
||||
let shiftSizeX = tabWidth * movingTabs.length;
|
||||
let shiftSizeY = tabHeight;
|
||||
dragData.tabWidth = tabWidth;
|
||||
@@ -2623,8 +2696,8 @@
|
||||
let lastBoundX =
|
||||
lastTabInRow.screenX +
|
||||
lastTabInRow.getBoundingClientRect().width -
|
||||
- (lastMovingTabScreenX + tabWidth);
|
||||
- let lastBoundY = periphery.screenY - (lastMovingTabScreenY + tabHeight);
|
||||
+ (lastMovingTabScreenX + tabWidth) + 4;
|
||||
+ let lastBoundY = lastTab.screenY - lastMovingTabScreenY;
|
||||
translateX = Math.min(Math.max(translateX, firstBoundX), lastBoundX);
|
||||
translateY = Math.min(Math.max(translateY, firstBoundY), lastBoundY);
|
||||
|
||||
@@ -2782,13 +2855,18 @@
|
||||
this.#clearDragOverGroupingTimer();
|
||||
this.#clearPinnedDropIndicatorTimer();
|
||||
|
||||
- let isPinned = draggedTab.pinned;
|
||||
- let numPinned = gBrowser.pinnedTabCount;
|
||||
+ let isPinned = draggedTab?.group ? draggedTab.group.pinned : draggedTab.pinned;
|
||||
+ let numPinned = gBrowser._numVisiblePinTabsWithoutCollapsed;
|
||||
+ let essential = draggedTab.hasAttribute("zen-essential");
|
||||
+ const isDraggingFolder = isTabGroupLabel(draggedTab) && draggedTab.group?.isZenFolder;
|
||||
let allTabs = this.ariaFocusableItems;
|
||||
let tabs = allTabs.slice(
|
||||
- isPinned ? 0 : numPinned,
|
||||
- isPinned ? numPinned : undefined
|
||||
+ (isPinned && essential) ? 0 : gBrowser._numZenEssentials,
|
||||
+ isPinned ? (essential ? gBrowser._numZenEssentials : (isDraggingFolder ? numPinned : undefined)) : undefined
|
||||
);
|
||||
+ if (draggedTab.group?.hasAttribute("split-view-group")) {
|
||||
+ draggedTab = draggedTab.group.labelElement;
|
||||
+ }
|
||||
|
||||
if (this.#rtlMode) {
|
||||
tabs.reverse();
|
||||
@@ -2799,7 +2877,7 @@
|
||||
let screenAxis = this.verticalMode ? "screenY" : "screenX";
|
||||
let size = this.verticalMode ? "height" : "width";
|
||||
let translateAxis = this.verticalMode ? "translateY" : "translateX";
|
||||
- let { width: tabWidth, height: tabHeight } = bounds(draggedTab);
|
||||
+ let { width: tabWidth, height: tabHeight } = bounds(draggedTab.group?.hasAttribute("split-view-group") ? draggedTab.group : draggedTab);
|
||||
let tabSize = this.verticalMode ? tabHeight : tabWidth;
|
||||
let translateX = event.screenX - dragData.screenX;
|
||||
let translateY = event.screenY - dragData.screenY;
|
||||
@@ -2815,6 +2893,12 @@
|
||||
);
|
||||
let lastMovingTab = movingTabs.at(-1);
|
||||
let firstMovingTab = movingTabs[0];
|
||||
+ if (lastMovingTab.group?.hasAttribute("split-view-group")) {
|
||||
+ lastMovingTab = lastMovingTab.group;
|
||||
+ }
|
||||
+ if (firstMovingTab.group?.hasAttribute("split-view-group")) {
|
||||
+ firstMovingTab = firstMovingTab.group;
|
||||
+ }
|
||||
let endEdge = ele => ele[screenAxis] + bounds(ele)[size];
|
||||
let lastMovingTabScreen = endEdge(lastMovingTab);
|
||||
let firstMovingTabScreen = firstMovingTab[screenAxis];
|
||||
@@ -2829,6 +2913,11 @@
|
||||
let endBound = this.#rtlMode
|
||||
? endEdge(this) - lastMovingTabScreen
|
||||
: periphery[screenAxis] - 1 - lastMovingTabScreen;
|
||||
+ let firstTab = tabs.at(this.#rtlMode ? -1 : 0);
|
||||
+ let lastTab = tabs.at(this.#rtlMode ? 0 : -1);
|
||||
+ startBound = firstTab[screenAxis] - firstMovingTabScreen;
|
||||
+ endBound = endEdge(lastTab) - lastMovingTabScreen;
|
||||
+ endBound = gZenPinnedTabManager.getLastTabBound(endBound, lastTab, isDraggingFolder);
|
||||
translate = Math.min(Math.max(translate, startBound), endBound);
|
||||
|
||||
// Center the tab under the cursor if the tab is not under the cursor while dragging
|
||||
@@ -3018,6 +3107,8 @@
|
||||
};
|
||||
|
||||
let dropElement = getOverlappedElement();
|
||||
+ if (dropElement?.hasAttribute("split-view-group")) dropElement = dropElement.labelElement;
|
||||
+ gZenPinnedTabManager.animateSeparatorMove(movingTabs, dropElement, isPinned, event);
|
||||
|
||||
let newDropElementIndex;
|
||||
if (dropElement) {
|
||||
@@ -3099,7 +3190,7 @@
|
||||
? Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.moveOverThresholdPercent"
|
||||
) / 100
|
||||
- : 0.5;
|
||||
+ : Services.prefs.getIntPref('zen.view.drag-and-drop.move-over-threshold') / 100;
|
||||
moveOverThreshold = Math.min(1, Math.max(0, moveOverThreshold));
|
||||
let shouldMoveOver = overlapPercent > moveOverThreshold;
|
||||
if (logicalForward && shouldMoveOver) {
|
||||
@@ -3132,6 +3223,7 @@
|
||||
// If dragging a group over another group, don't make it look like it is
|
||||
// possible to drop the dragged group inside the other group.
|
||||
if (
|
||||
+ false &&
|
||||
isTabGroupLabel(draggedTab) &&
|
||||
dropElement?.group &&
|
||||
(!dropElement.group.collapsed ||
|
||||
@@ -3158,20 +3250,13 @@
|
||||
let isOutOfBounds = isPinned
|
||||
? dropElement.elementIndex >= numPinned
|
||||
: dropElement.elementIndex < numPinned;
|
||||
- if (isOutOfBounds) {
|
||||
- // Drop after last pinned tab
|
||||
- dropElement = this.ariaFocusableItems[numPinned - 1];
|
||||
- dropBefore = false;
|
||||
- }
|
||||
}
|
||||
|
||||
- if (
|
||||
- gBrowser._tabGroupsEnabled &&
|
||||
- isTab(draggedTab) &&
|
||||
- !isPinned &&
|
||||
- (!numPinned || newDropElementIndex > numPinned)
|
||||
- ) {
|
||||
+ if (isTab(draggedTab) || isTabGroupLabel(draggedTab)) {
|
||||
let dragOverGroupingThreshold = 1 - moveOverThreshold;
|
||||
+ if (draggedTab && !dropElement?.group) {
|
||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||
+ }
|
||||
let groupingDelay = Services.prefs.getIntPref(
|
||||
"browser.tabs.dragDrop.createGroup.delayMS"
|
||||
);
|
||||
@@ -3179,6 +3264,7 @@
|
||||
// When dragging tab(s) over an ungrouped tab, signal to the user
|
||||
// that dropping the tab(s) will create a new tab group.
|
||||
let shouldCreateGroupOnDrop =
|
||||
+ false &&
|
||||
!movingTabsSet.has(dropElement) &&
|
||||
isTab(dropElement) &&
|
||||
!dropElement?.group &&
|
||||
@@ -3187,6 +3273,7 @@
|
||||
// When dragging tab(s) over a collapsed tab group label, signal to the
|
||||
// user that dropping the tab(s) will add them to the group.
|
||||
let shouldDropIntoCollapsedTabGroup =
|
||||
+ false &&
|
||||
isTabGroupLabel(dropElement) &&
|
||||
dropElement.group.collapsed &&
|
||||
overlapPercent > dragOverGroupingThreshold;
|
||||
@@ -3231,19 +3318,14 @@
|
||||
dropElement = dropElementGroup;
|
||||
colorCode = undefined;
|
||||
} else if (isTabGroupLabel(dropElement)) {
|
||||
- if (dropBefore) {
|
||||
- // Dropping right before the tab group.
|
||||
- dropElement = dropElementGroup;
|
||||
- colorCode = undefined;
|
||||
- } else if (dropElementGroup.collapsed) {
|
||||
- // Dropping right after the collapsed tab group.
|
||||
- dropElement = dropElementGroup;
|
||||
- colorCode = undefined;
|
||||
- } else {
|
||||
- // Dropping right before the first tab in the tab group.
|
||||
- dropElement = dropElementGroup.tabs[0];
|
||||
- dropBefore = true;
|
||||
- }
|
||||
+ ({ dropElement, colorCode, dropBefore } = gZenFolders.handleDragOverTabGroupLabel(
|
||||
+ dropElement,
|
||||
+ draggedTab,
|
||||
+ overlapPercent,
|
||||
+ movingTabs,
|
||||
+ dropBefore,
|
||||
+ colorCode
|
||||
+ ));
|
||||
}
|
||||
this.#setDragOverGroupColor(colorCode);
|
||||
this.toggleAttribute("movingtab-addToGroup", colorCode);
|
||||
@@ -3262,11 +3344,11 @@
|
||||
dragData.dropElement = dropElement;
|
||||
dragData.dropBefore = dropBefore;
|
||||
dragData.animDropElementIndex = newDropElementIndex;
|
||||
-
|
||||
+ gZenFolders.setFolderIndentation(movingTabs, dropElement);
|
||||
// Shift background tabs to leave a gap where the dragged tab
|
||||
// would currently be dropped.
|
||||
for (let item of tabs) {
|
||||
- if (item == draggedTab) {
|
||||
+ if (item == draggedTab || (item.group?.hasAttribute("split-view-group") && item.group == draggedTab.group)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -3388,12 +3470,14 @@
|
||||
element?.removeAttribute("dragover-groupTarget");
|
||||
}
|
||||
|
||||
- finishAnimateTabMove() {
|
||||
- if (!this.#isMovingTab()) {
|
||||
+ finishAnimateTabMove(always = false) {
|
||||
+ gZenPinnedTabManager.onDragFinish();
|
||||
+ if (!this.#isMovingTab() && !always) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.#setMovingTabMode(false);
|
||||
+ gZenFolders.highlightGroupOnDragOver(null);
|
||||
|
||||
for (let item of this.ariaFocusableItems) {
|
||||
this.#resetGroupTarget(item);
|
||||
@@ -3440,17 +3524,16 @@
|
||||
tab.style.left = "";
|
||||
tab.style.top = "";
|
||||
tab.style.maxWidth = "";
|
||||
- tab.removeAttribute("dragtarget");
|
||||
+ tab.removeAttribute("zen-dragtarget");
|
||||
}
|
||||
for (let label of draggedTabDocument.getElementsByClassName(
|
||||
"tab-group-label-container"
|
||||
)) {
|
||||
label.style.width = "";
|
||||
- label.style.height = "";
|
||||
label.style.left = "";
|
||||
label.style.top = "";
|
||||
label.style.maxWidth = "";
|
||||
- label.removeAttribute("dragtarget");
|
||||
+ label.removeAttribute("zen-dragtarget");
|
||||
}
|
||||
let periphery = draggedTabDocument.getElementById(
|
||||
"tabbrowser-arrowscrollbox-periphery"
|
||||
@@ -3522,7 +3605,7 @@
|
||||
let postTransitionCleanup = () => {
|
||||
movingTab._moveTogetherSelectedTabsData.animate = false;
|
||||
};
|
||||
- if (gReduceMotion) {
|
||||
+ if (true || gReduceMotion) {
|
||||
postTransitionCleanup();
|
||||
} else {
|
||||
let onTransitionEnd = transitionendEvent => {
|
||||
@@ -3686,7 +3769,7 @@
|
||||
@@ -1406,7 +1431,7 @@
|
||||
}
|
||||
|
||||
_notifyBackgroundTab(aTab) {
|
||||
@@ -638,25 +209,3 @@ index 1425607ef87d6c28fb676e722617edfb51ba12a1..97cdeaf7cde41f39d70bd50ac8ca78be
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -3795,7 +3878,10 @@
|
||||
#getDragTarget(event, { ignoreSides = false } = {}) {
|
||||
let { target } = event;
|
||||
while (target) {
|
||||
- if (isTab(target) || isTabGroupLabel(target)) {
|
||||
+ if (isTab(target) || isTabGroupLabel(target) || target?.classList?.contains("tab-group-label-container")) {
|
||||
+ if (target.classList?.contains("tab-group-label-container")) {
|
||||
+ target = target.querySelector(".tab-group-label");
|
||||
+ }
|
||||
break;
|
||||
}
|
||||
target = target.parentNode;
|
||||
@@ -3812,6 +3898,9 @@
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+ if (target?.group?.hasAttribute("split-view-group")) {
|
||||
+ target = target.group.labelElement;
|
||||
+ }
|
||||
return target;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarController.sys.mjs b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c6da90098 100644
|
||||
index 880f65b493ba5e9b9750e84c2ba5d08b99e3dad9..c4a495887926fc6f13312a29998d03bfe907f0e2 100644
|
||||
--- a/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarController.sys.mjs
|
||||
@@ -297,7 +297,6 @@ export class UrlbarController {
|
||||
@@ -299,7 +299,6 @@ export class UrlbarController {
|
||||
const isMac = AppConstants.platform == "macosx";
|
||||
// Handle readline/emacs-style navigation bindings on Mac.
|
||||
if (
|
||||
@@ -10,7 +10,7 @@ index a1faf7e4278c66865f267283515f22052769928d..297391205ab3cd96bed2e5a3e36a181c
|
||||
this.view.isOpen &&
|
||||
event.ctrlKey &&
|
||||
(event.key == "n" || event.key == "p")
|
||||
@@ -441,6 +440,8 @@ export class UrlbarController {
|
||||
@@ -443,6 +442,8 @@ export class UrlbarController {
|
||||
});
|
||||
}
|
||||
event.preventDefault();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d355858bcf37b 100644
|
||||
index 4b7232f3261f8589b734c2238170e6968d7ea0bf..d8c0b404724e9b0dc2b5a2d21420357586fb7f14 100644
|
||||
--- a/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarInput.sys.mjs
|
||||
@@ -76,6 +76,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||
@@ -84,6 +84,13 @@ ChromeUtils.defineLazyGetter(lazy, "logger", () =>
|
||||
lazy.UrlbarUtils.getLogger({ prefix: "Input" })
|
||||
);
|
||||
|
||||
@@ -16,7 +16,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
const DEFAULT_FORM_HISTORY_NAME = "searchbar-history";
|
||||
|
||||
const UNLIMITED_MAX_RESULTS = 99;
|
||||
@@ -437,7 +444,16 @@ export class UrlbarInput {
|
||||
@@ -454,7 +461,16 @@ export class UrlbarInput {
|
||||
// See _on_select(). HTMLInputElement.select() dispatches a "select"
|
||||
// event but does not set the primary selection.
|
||||
this._suppressPrimaryAdjustment = true;
|
||||
@@ -33,7 +33,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
this._suppressPrimaryAdjustment = false;
|
||||
}
|
||||
|
||||
@@ -513,6 +529,10 @@ export class UrlbarInput {
|
||||
@@ -530,6 +546,10 @@ export class UrlbarInput {
|
||||
hideSearchTerms = false,
|
||||
isSameDocument = false
|
||||
) {
|
||||
@@ -44,7 +44,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (!this.isAddressbar) {
|
||||
throw new Error(
|
||||
"Cannot set URI for UrlbarInput that is not an address bar"
|
||||
@@ -790,8 +810,16 @@ export class UrlbarInput {
|
||||
@@ -807,8 +827,16 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -62,7 +62,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1207,7 +1235,11 @@ export class UrlbarInput {
|
||||
@@ -1224,7 +1252,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
if (!this.#providesSearchMode(result)) {
|
||||
@@ -75,7 +75,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
}
|
||||
|
||||
if (isCanonized) {
|
||||
@@ -2298,6 +2330,32 @@ export class UrlbarInput {
|
||||
@@ -2347,6 +2379,32 @@ export class UrlbarInput {
|
||||
await this.#updateLayoutBreakoutDimensions();
|
||||
}
|
||||
|
||||
@@ -108,7 +108,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
startLayoutExtend() {
|
||||
if (!this.#allowBreakout || this.hasAttribute("breakout-extend")) {
|
||||
// Do not expand if the Urlbar does not support being expanded or it is
|
||||
@@ -2312,6 +2370,13 @@ export class UrlbarInput {
|
||||
@@ -2361,6 +2419,13 @@ export class UrlbarInput {
|
||||
|
||||
this.setAttribute("breakout-extend", "true");
|
||||
|
||||
@@ -122,7 +122,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
// Enable the animation only after the first extend call to ensure it
|
||||
// doesn't run when opening a new window.
|
||||
if (!this.hasAttribute("breakout-extend-animate")) {
|
||||
@@ -2331,6 +2396,24 @@ export class UrlbarInput {
|
||||
@@ -2380,6 +2445,24 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
this.removeAttribute("breakout-extend");
|
||||
this.#updateTextboxPosition();
|
||||
}
|
||||
@@ -2361,7 +2444,7 @@ export class UrlbarInput {
|
||||
@@ -2410,7 +2493,7 @@ export class UrlbarInput {
|
||||
forceUnifiedSearchButtonAvailable = false
|
||||
) {
|
||||
let prevState = this.getAttribute("pageproxystate");
|
||||
@@ -156,7 +156,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
this.setAttribute("pageproxystate", state);
|
||||
this._inputContainer.setAttribute("pageproxystate", state);
|
||||
this._identityBox?.setAttribute("pageproxystate", state);
|
||||
@@ -2595,10 +2678,12 @@ export class UrlbarInput {
|
||||
@@ -2646,10 +2729,12 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
this.textbox.style.top = px(
|
||||
@@ -169,7 +169,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
);
|
||||
}
|
||||
|
||||
@@ -2658,9 +2743,10 @@ export class UrlbarInput {
|
||||
@@ -2709,9 +2794,10 @@ export class UrlbarInput {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -181,7 +181,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
);
|
||||
this.textbox.style.setProperty(
|
||||
"--urlbar-height",
|
||||
@@ -3093,6 +3179,7 @@ export class UrlbarInput {
|
||||
@@ -3144,6 +3230,7 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_toggleActionOverride(event) {
|
||||
@@ -189,7 +189,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (
|
||||
event.keyCode == KeyEvent.DOM_VK_SHIFT ||
|
||||
event.keyCode == KeyEvent.DOM_VK_ALT ||
|
||||
@@ -3197,7 +3284,7 @@ export class UrlbarInput {
|
||||
@@ -3248,7 +3335,7 @@ export class UrlbarInput {
|
||||
return val;
|
||||
}
|
||||
let trimmedValue = lazy.UrlbarPrefs.get("trimURLs")
|
||||
@@ -198,7 +198,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
: val;
|
||||
// Only trim value if the directionality doesn't change to RTL and we're not
|
||||
// showing a strikeout https protocol.
|
||||
@@ -3501,6 +3588,7 @@ export class UrlbarInput {
|
||||
@@ -3552,6 +3639,7 @@ export class UrlbarInput {
|
||||
resultDetails = null,
|
||||
browser = this.window.gBrowser.selectedBrowser
|
||||
) {
|
||||
@@ -206,7 +206,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (this.isAddressbar) {
|
||||
this.#prepareAddressbarLoad(
|
||||
url,
|
||||
@@ -3608,6 +3696,10 @@ export class UrlbarInput {
|
||||
@@ -3659,6 +3747,10 @@ export class UrlbarInput {
|
||||
}
|
||||
reuseEmpty = true;
|
||||
}
|
||||
@@ -217,7 +217,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (
|
||||
where == "tab" &&
|
||||
reuseEmpty &&
|
||||
@@ -3615,6 +3707,9 @@ export class UrlbarInput {
|
||||
@@ -3666,6 +3758,9 @@ export class UrlbarInput {
|
||||
) {
|
||||
where = "current";
|
||||
}
|
||||
@@ -227,7 +227,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
return where;
|
||||
}
|
||||
|
||||
@@ -3872,6 +3967,7 @@ export class UrlbarInput {
|
||||
@@ -3923,6 +4018,7 @@ export class UrlbarInput {
|
||||
this.setResultForCurrentValue(null);
|
||||
this.handleCommand();
|
||||
this.controller.clearLastQueryContextCache();
|
||||
@@ -235,7 +235,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
|
||||
this._suppressStartQuery = false;
|
||||
});
|
||||
@@ -3879,7 +3975,6 @@ export class UrlbarInput {
|
||||
@@ -3930,7 +4026,6 @@ export class UrlbarInput {
|
||||
contextMenu.addEventListener("popupshowing", () => {
|
||||
// Close the results pane when the input field contextual menu is open,
|
||||
// because paste and go doesn't want a result selection.
|
||||
@@ -243,7 +243,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
|
||||
let controller =
|
||||
this.document.commandDispatcher.getControllerForCommand("cmd_paste");
|
||||
@@ -3991,7 +4086,11 @@ export class UrlbarInput {
|
||||
@@ -4040,7 +4135,11 @@ export class UrlbarInput {
|
||||
if (!engineName && !source && !this.hasAttribute("searchmode")) {
|
||||
return;
|
||||
}
|
||||
@@ -256,7 +256,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (this._searchModeIndicatorTitle) {
|
||||
this._searchModeIndicatorTitle.textContent = "";
|
||||
this._searchModeIndicatorTitle.removeAttribute("data-l10n-id");
|
||||
@@ -4302,6 +4401,7 @@ export class UrlbarInput {
|
||||
@@ -4351,6 +4450,7 @@ export class UrlbarInput {
|
||||
|
||||
this.document.l10n.setAttributes(
|
||||
this.inputField,
|
||||
@@ -264,7 +264,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
l10nId,
|
||||
l10nId == "urlbar-placeholder-with-name" ? { name } : undefined
|
||||
);
|
||||
@@ -4413,6 +4513,11 @@ export class UrlbarInput {
|
||||
@@ -4462,6 +4562,11 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_click(event) {
|
||||
@@ -276,7 +276,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
if (
|
||||
event.target == this.inputField ||
|
||||
event.target == this._inputContainer
|
||||
@@ -4485,7 +4590,7 @@ export class UrlbarInput {
|
||||
@@ -4534,7 +4639,7 @@ export class UrlbarInput {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,7 +285,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
this.view.autoOpen({ event });
|
||||
} else {
|
||||
if (this._untrimOnFocusAfterKeydown) {
|
||||
@@ -4525,9 +4630,16 @@ export class UrlbarInput {
|
||||
@@ -4574,9 +4679,16 @@ export class UrlbarInput {
|
||||
}
|
||||
|
||||
_on_mousedown(event) {
|
||||
@@ -303,7 +303,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
|
||||
if (
|
||||
event.target != this.inputField &&
|
||||
@@ -4538,6 +4650,10 @@ export class UrlbarInput {
|
||||
@@ -4587,6 +4699,10 @@ export class UrlbarInput {
|
||||
|
||||
this.focusedViaMousedown = !this.focused;
|
||||
this._preventClickSelectsAll = this.focused;
|
||||
@@ -314,7 +314,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
|
||||
// Keep the focus status, since the attribute may be changed
|
||||
// upon calling this.focus().
|
||||
@@ -4573,7 +4689,7 @@ export class UrlbarInput {
|
||||
@@ -4622,7 +4738,7 @@ export class UrlbarInput {
|
||||
}
|
||||
// Don't close the view when clicking on a tab; we may want to keep the
|
||||
// view open on tab switch, and the TabSelect event arrived earlier.
|
||||
@@ -323,7 +323,7 @@ index afc7a6c6ddbf4cf5a5b27c0bd60577b833c63093..f28c9a1ac086af429a93bd01be5d3558
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -4890,7 +5006,7 @@ export class UrlbarInput {
|
||||
@@ -4939,7 +5055,7 @@ export class UrlbarInput {
|
||||
// When we are in actions search mode we can show more results so
|
||||
// increase the limit.
|
||||
let maxResults =
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126c1d32b04 100644
|
||||
index c12d875172650dddfe7de623a776149517c83302..66e923ed2c84e350dd7ba7a20e362666cec8f307 100644
|
||||
--- a/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarMuxerStandard.sys.mjs
|
||||
@@ -852,6 +852,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
@@ -854,6 +854,7 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
}
|
||||
|
||||
if (result.providerName == "UrlbarProviderTabToSearch") {
|
||||
@@ -10,7 +10,7 @@ index 20be2dbbb8471aeb43a9bf77888c9858a0b61186..a9f974a78c5676d1340a3543852e4126
|
||||
// Discard the result if a tab-to-search result was added already.
|
||||
if (!state.canAddTabToSearch) {
|
||||
return false;
|
||||
@@ -1498,7 +1499,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
@@ -1500,7 +1501,9 @@ class MuxerUnifiedComplete extends UrlbarMuxer {
|
||||
usedLimits.maxResultCount++;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarPrefs.sys.mjs b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
index 46ad55519aecd6c14034a9faa91c7ad8e5c1c422..e8d9c06499a2b273483edd21faf902c936462b59 100644
|
||||
index 531cecb9da3465d392ea82248e6ebb3fe6476b47..f3cce2a66bb8465ae022df0c1b9823e7e88cba21 100644
|
||||
--- a/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarPrefs.sys.mjs
|
||||
@@ -731,6 +731,7 @@ function makeResultGroups({ showSearchSuggestionsFirst }) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e16ea53ed 100644
|
||||
index 91abb674d26dc7e2a919c94087b180a6148248fd..80551acd18228f19cb179f71adc4f58bc893ac14 100644
|
||||
--- a/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarProviderPlaces.sys.mjs
|
||||
@@ -44,11 +44,13 @@ function defaultQuery(conditions = "") {
|
||||
@@ -26,7 +26,7 @@ index b2c3bfa6fbe83fceb019196c210baaa7b4881372..02f2c8be89f163e16c5fd29f9b7e145e
|
||||
h.visit_count, h.typed,
|
||||
0, t.open_count,
|
||||
:matchBehavior, :searchBehavior, NULL)
|
||||
@@ -1120,11 +1122,13 @@ Search.prototype = {
|
||||
@@ -1126,11 +1128,13 @@ Search.prototype = {
|
||||
? lazy.PlacesUtils.toDate(lastVisitPRTime).getTime()
|
||||
: undefined;
|
||||
let tabGroup = row.getResultByName("groupId");
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
index ece407214669009e263b507b5236ab28da33efe9..8f22426295e2b001438918f44d2c22ed7a697c2f 100644
|
||||
index b864cf9a9159d1f4e162ff5e8895a2bc95dee881..b30ee47b4f6d9025648ca5d93ee79f993cb6f4c2 100644
|
||||
--- a/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarProvidersManager.sys.mjs
|
||||
@@ -845,6 +845,7 @@ export class Query {
|
||||
@@ -873,6 +873,7 @@ export class Query {
|
||||
if (
|
||||
result.heuristic &&
|
||||
this.context.searchMode &&
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarUtils.sys.mjs b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13dc8e61fbc 100644
|
||||
index 079c9f18550b54b2a1cc030174849896fd23234e..605bb3433b61443037659d126ba17b033e5a4394 100644
|
||||
--- a/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarUtils.sys.mjs
|
||||
@@ -74,6 +74,7 @@ export var UrlbarUtils = {
|
||||
@@ -77,6 +77,7 @@ export var UrlbarUtils = {
|
||||
RESTRICT_SEARCH_KEYWORD: "restrictSearchKeyword",
|
||||
SUGGESTED_INDEX: "suggestedIndex",
|
||||
TAIL_SUGGESTION: "tailSuggestion",
|
||||
@@ -10,7 +10,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
||||
}),
|
||||
|
||||
// Defines provider types.
|
||||
@@ -133,6 +134,7 @@ export var UrlbarUtils = {
|
||||
@@ -136,6 +137,7 @@ export var UrlbarUtils = {
|
||||
OTHER_NETWORK: 6,
|
||||
ADDON: 7,
|
||||
ACTIONS: 8,
|
||||
@@ -18,7 +18,7 @@ index f38e860e46fa979b3e0c66ecd3eb88a64df60fc1..d130bbc7488ff3de926823974a1df13d
|
||||
}),
|
||||
|
||||
// Per-result exposure telemetry.
|
||||
@@ -544,6 +546,8 @@ export var UrlbarUtils = {
|
||||
@@ -547,6 +549,8 @@ export var UrlbarUtils = {
|
||||
return this.RESULT_GROUP.HEURISTIC_FALLBACK;
|
||||
case "UrlbarProviderHistoryUrlHeuristic":
|
||||
return this.RESULT_GROUP.HEURISTIC_HISTORY_URL;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||
index 50961e4beb75012ef0ed6f261a95854712cc69d7..93bcfca9270ff34dbe6386789fdae6066457438d 100644
|
||||
index beff1d41e47efad09256459589176d96c69f7a8a..c850dad31454d61c4edb6e183db07b2d51fb9fc8 100644
|
||||
--- a/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarValueFormatter.sys.mjs
|
||||
@@ -585,6 +585,7 @@ export class UrlbarValueFormatter {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/components/urlbar/UrlbarView.sys.mjs b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b50b9fa2e8 100644
|
||||
index 38e4987dc906cf3c668995aab79fc15a02834677..de9d69a4faab3cfa249de41ef573ae2ef873b348 100644
|
||||
--- a/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
+++ b/browser/components/urlbar/UrlbarView.sys.mjs
|
||||
@@ -620,7 +620,7 @@ export class UrlbarView {
|
||||
@@ -11,7 +11,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
||||
// Try to reuse the cached top-sites context. If it's not cached, then
|
||||
// there will be a gap of time between when the input is focused and
|
||||
// when the view opens that can be perceived as flicker.
|
||||
@@ -2734,6 +2734,8 @@ export class UrlbarView {
|
||||
@@ -2751,6 +2751,8 @@ export class UrlbarView {
|
||||
if (row?.hasAttribute("row-selectable")) {
|
||||
row?.toggleAttribute("selected", true);
|
||||
}
|
||||
@@ -20,7 +20,7 @@ index b3c7c8a995226e2cbe852d82515f9bc7077980e7..4c8611556f7f71e5f8860787ed1db9b5
|
||||
if (element != row) {
|
||||
row?.toggleAttribute("descendant-selected", true);
|
||||
}
|
||||
@@ -3215,7 +3217,7 @@ export class UrlbarView {
|
||||
@@ -3232,7 +3234,7 @@ export class UrlbarView {
|
||||
}
|
||||
|
||||
#enableOrDisableRowWrap() {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/extensions/newtab/lib/ActivityStream.sys.mjs b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
index 6207e6c8aa1e303ec151bc1e5c51c277ef776ee6..d3783a3c459c94880be1c95dc265a7d4887f67a1 100644
|
||||
index 7e50d7f5512cb4304d6fd2ecb6952fbff0b8f98e..ba09805f07b754b4b36d5a650252d5578184d031 100644
|
||||
--- a/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
+++ b/browser/extensions/newtab/lib/ActivityStream.sys.mjs
|
||||
@@ -223,7 +223,7 @@ export const PREFS_CONFIG = new Map([
|
||||
@@ -250,7 +250,7 @@ export const PREFS_CONFIG = new Map([
|
||||
"showSponsoredTopSites",
|
||||
{
|
||||
title: "Show sponsored top sites",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
index b884f0167e5de87a45cf523436ceaceb710d35ae..eedc80278a5c93f81ce90c0d6198924549c07fc3 100644
|
||||
index bb06e9224a4e195122d8a47ccf97c3481342cf86..959862e95ec00c7dc18256bd2572c1d7285415d4 100644
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -362,17 +362,17 @@ bin/libfreebl_64int_3.so
|
||||
@@ -372,17 +372,17 @@ bin/libfreebl_64int_3.so
|
||||
; [MaintenanceService]
|
||||
;
|
||||
#ifdef MOZ_MAINTENANCE_SERVICE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
diff --git a/browser/installer/windows/nsis/defines.nsi.in b/browser/installer/windows/nsis/defines.nsi.in
|
||||
index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1135fe766 100644
|
||||
index 51743f6157d69e9303ed480254c199791f1a4db8..2e113512c2f0b094aa50a4f0499607ad9eb7eaf8 100644
|
||||
--- a/browser/installer/windows/nsis/defines.nsi.in
|
||||
+++ b/browser/installer/windows/nsis/defines.nsi.in
|
||||
@@ -90,7 +90,7 @@
|
||||
@@ -11,7 +11,7 @@ index f78af1e3634dd503089ff8bdab5adba614a87892..4a19de8e89efadf2456011e2da2907a1
|
||||
|
||||
# ARCH is used when it is necessary to differentiate the x64 registry keys from
|
||||
# the x86 registry keys (e.g. the uninstall registry key).
|
||||
@@ -154,7 +154,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
||||
@@ -153,7 +153,7 @@ VIAddVersionKey "ProductVersion" "${AppVersion}"
|
||||
!define APPROXIMATE_REQUIRED_SPACE_MB "145"
|
||||
|
||||
# Constants for parts of the telemetry submission URL
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
diff --git a/browser/installer/windows/nsis/installer.nsi b/browser/installer/windows/nsis/installer.nsi
|
||||
index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0197351d1 100755
|
||||
index 4ecf1ea7e325b23a901ec75687c6b959085c8207..28c4b462dab0c4830a4bfb4c9cdf82a8aa919456 100755
|
||||
--- a/browser/installer/windows/nsis/installer.nsi
|
||||
+++ b/browser/installer/windows/nsis/installer.nsi
|
||||
@@ -841,7 +841,7 @@ Section "-InstallEndCleanup"
|
||||
@@ -842,7 +842,7 @@ Section "-InstallEndCleanup"
|
||||
; When we're using the GUI, .onGUIEnd sends the ping, but of course that isn't
|
||||
; invoked when we're running silently.
|
||||
${If} ${Silent}
|
||||
@@ -11,7 +11,7 @@ index 92eb3f11ea8035ce72eb5b1e110c98b1ef8665d1..e6b91ecfa8f16d2b884c70468ec1d3a0
|
||||
${EndIf}
|
||||
SectionEnd
|
||||
|
||||
@@ -1969,5 +1969,5 @@ FunctionEnd
|
||||
@@ -1970,5 +1970,5 @@ FunctionEnd
|
||||
|
||||
Function .onGUIEnd
|
||||
${OnEndCommon}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user