[Linux] Use D&D popup for tab drops
Categories
(Core :: Widget: Gtk, enhancement, P2)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox96 | --- | verified |
People
(Reporter: stransky, Assigned: stransky)
References
(Blocks 1 open bug, Regressed 2 open bugs)
Details
Crash Data
Attachments
(6 files, 3 obsolete files)
|
59.31 KB,
patch
|
Details | Diff | Splinter Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review | |
|
48 bytes,
text/x-phabricator-request
|
Details | Review |
Use D&D popup for tab drops.
| Assignee | ||
Comment 1•4 years ago
|
||
There's a WIP patch for it. It's more complicated that I expected but it's also shed light to GPU process on Wayland and simplifies remote rendering setup.
I will submit it as individual patches for next devel cycle (FF95).
| Assignee | ||
Comment 2•4 years ago
|
||
| Assignee | ||
Comment 3•4 years ago
|
||
When GdkWindow is unmapped (during reparent, when GtkWindow is hidden) we need to clear Window handle at GtkCompositorWidget as it's no longer valid.
A new GdkWindow/Window is created when we're mapped again.
| Assignee | ||
Comment 4•4 years ago
|
||
Make sure we don't crash when WindowSurfaceProvider does not have valid X Window handle (when we're hidden for instance).
Depends on D126890
| Assignee | ||
Comment 5•4 years ago
|
||
Depends on D126891
| Assignee | ||
Comment 6•4 years ago
|
||
Depends on D126892
| Assignee | ||
Comment 7•4 years ago
|
||
Depends on D126893
| Assignee | ||
Comment 8•4 years ago
|
||
This patch does:
- Track nsWindow real visibility by widget_map_cb / widget_unrealize_cb callbacks and set mIsMapped attribute properly.
- Clear mGdkWindow attribute when mGdkWindow is not visible and we can't paint into it.
- Implement and use ConfigureGdkWindow() to set up mGdkWindow when it's visible, start compositor, VSync.
- Implement and use ReleaseGdkWindow() to clear up mGdkWindow when it's not visible, stop compositor, Vsync.
- Make sure nsWindow works when mGdkWindow is null.
- Configure Drag popup accordingly.
Depends on D126894
| Assignee | ||
Comment 10•4 years ago
|
||
There's still one issue which needs to be addressed:
[komat@localhost bin]$ MOZ_ENABLE_WAYLAND=1 ./firefox -P
[Parent 74175, Main Thread] WARNING: dependent window created without a parent: file /raid/src/toolkit/components/startup/nsAppStartup.cpp:744
Initializing context 0x7f25203c67b0 surface (nil) on display 0x7f253d7ea000
[Parent 74175, Renderer] WARNING: robust_buffer_access_behavior marked as unsupported: file /raid/src/gfx/gl/GLContextFeatures.cpp:632
[Socket 74339, Main Thread] WARNING: 'NS_FAILED(rv)', file /raid/src/netwerk/protocol/http/nsHttpHandler.cpp:372
[Socket 74339, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, kKnownEsrVersion) failed with result 0x80004002 (NS_NOINTERFACE): file /raid/src/toolkit/components/resistfingerprinting/nsRFPService.cpp:560
[Parent 74175, Main Thread] WARNING: NS_ENSURE_TRUE(rootFrame) failed: file /raid/src/dom/base/nsGlobalWindowOuter.cpp:4240
[Parent 74175, Main Thread] WARNING: NS_ENSURE_TRUE(root) failed: file /raid/src/layout/base/nsDocumentViewer.cpp:2613
[2021-10-05T07:14:15Z WARN webrender::device::gl] Missing optimized shader source for gpu_cache_update
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: window is null (t=0.584913) [GFX1-]: window is null
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: window is null (t=0.584913) |[1][GFX1-]: Failed to create EGLSurface (t=0.584971) [GFX1-]: Failed to create EGLSurface
Crash Annotation GraphicsCriticalError: |[0][GFX1-]: window is null (t=0.584913) |[1][GFX1-]: Failed to create EGLSurface (t=0.584971) |[2][GFX1-]: Fallback WR to SW-WR (t=0.613179) [GFX1-]: Fallback WR to SW-WR
| Assignee | ||
Comment 11•4 years ago
|
||
- When GtkCompositorWidget is created, make suspended rendering state as initial one as we can't render to widget window.
Enable rendering when underlying window is visible (nsWindow::ConfigureGdkWindow) or GtkCompositorWidget is assigned (nsWindow::SetCompositorWidgetDelegate). - Use moz_container_wayland_add_initial_draw_callback() at nsWindow::ConfigureGdkWindow() to set Wayland EGL window as it was before.
- Make moz_container_wayland_add_initial_draw_callback() to run callbacks instantly when mozcontainer is already visible.
- Implement and use moz_container_wayland_clear_initial_draw_callback() to clear mozcontainer callbacks when it becomes hidden.
- Rename COMPOSITOR_PAUSED_MISSING_EGL_WINDOW to COMPOSITOR_PAUSED_MISSING_WINDOW as it's used for GLX too.
- Initially pause rendering for GLX too.
Depends on D126895
| Assignee | ||
Comment 12•4 years ago
|
||
Updated•4 years ago
|
| Assignee | ||
Updated•4 years ago
|
| Assignee | ||
Comment 13•4 years ago
|
||
Comment 14•4 years ago
|
||
Comment on attachment 9243399 [details]
Bug 1730533 [Linux] Enable/Disable rendering to GdkWindow when we're mapped/unmapped r?rmader
Revision D126895 was moved to bug 1737068. Setting attachment 9243399 [details] to obsolete.
Comment 15•4 years ago
|
||
Comment on attachment 9244344 [details]
Bug 1730533 [Linux] Postpone compositor rendering until widget window is ready, r?rmader
Revision D127542 was moved to bug 1737068. Setting attachment 9244344 [details] to obsolete.
Updated•4 years ago
|
| Assignee | ||
Comment 16•4 years ago
|
||
Comment 17•4 years ago
|
||
Comment 18•4 years ago
|
||
| bugherder | ||
Updated•4 years ago
|
| Assignee | ||
Comment 19•4 years ago
|
||
Please backout D129494 due to regressions (Bug 1738639, Bug 1738482).
Thanks.
Comment 21•4 years ago
|
||
Backed out as requested: https://hg.mozilla.org/integration/autoland/rev/ea923d92b6ad88935b76c5f314d5bb9b15d54d84
Comment 22•4 years ago
|
||
| Assignee | ||
Comment 23•4 years ago
|
||
(In reply to Atila Butkovits from comment #20)
Martin, is it ok to backout from autoland?
I don't know what it means. I just don't want to ship that in FF95.
Thanks.
Comment 24•4 years ago
|
||
Backed out from beta (version 95):
https://hg.mozilla.org/releases/mozilla-beta/rev/c1ca9614aee590e1355074f7227ef87a2785c58b
(In reply to Martin Stránský [:stransky] (ni? me) from comment #23)
(In reply to Atila Butkovits from comment #20)
Martin, is it ok to backout from autoland?
I don't know what it means. I just don't want to ship that in FF95.
This is the question if it's urgent to have such a change in mozilla-central which gets used to builds Nightlies etc. or if it can progress like normal patches which get merged 2-4x times per day to mozilla-central when they have been proven as not being affected by permanent build or test failures.
| Assignee | ||
Comment 25•4 years ago
|
||
Thanks for explanation, it's ok to merge as a normal patch.
Thanks.
Comment 26•4 years ago
|
||
Backout merged to central: https://hg.mozilla.org/mozilla-central/rev/770627d2ad07
Comment 27•4 years ago
|
||
Comment 28•4 years ago
|
||
| bugherder | ||
Updated•4 years ago
|
Comment 30•4 years ago
|
||
Hello! Are there any steps that manual QA could use in order to verify this? Thank you!
| Assignee | ||
Comment 31•4 years ago
|
||
Yes, when you re-arrange or move browser tab with mouse, you should see a picture of page screenshot (instead of an D&D icon).
Comment 32•4 years ago
|
||
(In reply to Martin Stránský [:stransky] (ni? me) from comment #31)
Yes, when you re-arrange or move browser tab with mouse, you should see a picture of page screenshot (instead of an D&D icon).
Thank you! I will mark this as qe+ then.
Comment 33•4 years ago
•
|
||
Verified fixed with Firefox 96.0b4 (20211212185725) on Ubuntu 21.1 and 20.04. The tab picture preview is successfully displayed when moving tabs.
Description
•