Many X11 connections created when GPU process is enabled
Categories
(Core :: Widget: Gtk, defect, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox90 | --- | fixed |
People
(Reporter: jld, Assigned: stransky)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
With the GPU process enabled, we use CompositorWidgetParent instead of InProcessGtkCompositorWidget; the latter is passed an X11 display, but the former opens its own. Empirically, we open at least one for each window, and causing tooltips or menus to pop up can create more. I've seen as many as 7 connections per window and I don't know if there's an upper bound.
(Note that these connections are made from the GPU process, on behalf of PCompositor{Manager,Bridge,Widget} actors from the parent process; this is unrelated to X connections from content processes.)
These should be shared somehow; ideally this would reuse the GTK display, but if that doesn't work (threading issues?) they should at least share one among themselves.
I don't know if this is strictly a blocker for using the GPU process, but for users with a lot of windows it could cause problems with the 256-client limit.
| Assignee | ||
Comment 1•4 years ago
|
||
Yes, we can reuse the display connection as we enable multi-threading for X11. A simple fix which will replace XOpenDisplay() with DefaultXDisplay() may be enough, or even remove mXDisplay member and always call DefaultXDisplay() instead.
| Assignee | ||
Comment 2•4 years ago
|
||
Updated•4 years ago
|
| Assignee | ||
Comment 3•4 years ago
|
||
| Assignee | ||
Comment 4•4 years ago
|
||
Try looks good.
| Assignee | ||
Comment 5•4 years ago
|
||
Comment 7•4 years ago
|
||
| bugherder | ||
Description
•