0
Files
src/content/gpu
Tom Anderson b960daf4e6 [XProto] Ensure x11::Connection is only used on a single thread
This fixes bug 1109422 which is caused by using the same
x11::Connection from both the GPU main thread and the viz compositor
thread.

Summary of changes:

* x11::Connection is now stored in TLS instead of as a singleton.  This
  does not affect the browser process, but it means the GPU process
  will now have 2 connections: 1 for the main thread and 1 for the viz
  compositor thread.  Additionally, chrome will have 3 connections
  when running in single-process-mode.

* In X11 and Ozone/X11 contexts, the viz compositor thread must be a
  UI thread now so it can dispatch X events.  This required making
  MessagePumpGlib compatible with multiple threads.

* The GPU sandbox presents a challenge: we cannot open an X11
  connection once it's up, since the socket() and connect()
  syscalls are blocked.  To workaround this, we must open the viz
  compositor X11 connection the same time we open the main thread's
  X11 connection.  For now, we stuff it in ui::X11UiThread as an
  obnoxious global variable.

XShmImagePool and X11SoftwareBitmapPresenter are simplified as they
are now only used on one thread.  Also CreateVizCompositorThread() no
longer requires a TaskRunner argument.

With this change, once we remove the rest of Xlib, we can remove any
locking when using X11.

BUG=1066670,1078392,1109422
R=nickdiego,sky,msisov,rjkroege

Change-Id: If122c071a2eef38ba0469fe592ab9cc71ccf6011
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2343314
Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: Maksim Sisov (GMT+3) <msisov@igalia.com>
Reviewed-by: Nick Yamane <nickdiego@igalia.com>
Reviewed-by: kylechar <kylechar@chromium.org>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#799697}
2020-08-19 17:26:17 +00:00
..