I can confirm the problem: in a bionic chroot, I install chromium-browser and make sure libx11-xcb1 isn't installed (in a minimal chroot without a desktop environment it isn't), then I start chromium in headless mode and this is what I'm seeing:
$ chromium-browser --headless http://example.org
[0317/172148.363045:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
[0317/172148.365133:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
[0317/172148.516024:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 1 time(s)
[0317/172148.666694:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 2 time(s)
[0317/172148.821606:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 3 time(s)
[0317/172148.978707:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 4 time(s)
[0317/172149.134791:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 5 time(s)
[0317/172149.288921:WARNING:gpu_process_host.cc(1282)] The GPU process has crashed 6 time(s)
[0317/172149.292690:WARNING:gpu_process_host.cc(1002)] Reinitialized the GPU process after a crash. The reported initialization time was 0 ms
and the chromium process never returns.
After installing libx11-xcb1, this is what I'm seeing:
$ chromium-browser --headless http://example.org
[0317/172211.239945:WARNING:headless_content_main_delegate.cc(530)] Cannot create Pref Service with no user data dir.
[0317/172211.242524:ERROR:bus.cc(393)] Failed to connect to the bus: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
and the process exits successfully. If I add the --dump-dom parameter I can confirm that the page that was requested was correctly fetched and parsed.
Now the problem isn't that the dependency was removed, in fact chromium 88 didn't depend on libx11-xcb1 and I just confirmed in the same chroot that it worked well in headless mode without it. It's the opposite indeed: this is a new requirement, and I'm investigating to figure out why the dependency wasn't automatically added.
I can confirm the problem: in a bionic chroot, I install chromium-browser and make sure libx11-xcb1 isn't installed (in a minimal chroot without a desktop environment it isn't), then I start chromium in headless mode and this is what I'm seeing:
$ chromium-browser --headless http:// example. org 172148. 363045: WARNING: headless_ content_ main_delegate. cc(530) ] Cannot create Pref Service with no user data dir. 172148. 365133: ERROR:bus. cc(393) ] Failed to connect to the bus: Failed to connect to socket /var/run/ dbus/system_ bus_socket: No such file or directory 172148. 516024: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 1 time(s) 172148. 666694: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 2 time(s) 172148. 821606: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 3 time(s) 172148. 978707: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 4 time(s) 172149. 134791: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 5 time(s) 172149. 288921: WARNING: gpu_process_ host.cc( 1282)] The GPU process has crashed 6 time(s) 172149. 292690: WARNING: gpu_process_ host.cc( 1002)] Reinitialized the GPU process after a crash. The reported initialization time was 0 ms
[0317/
[0317/
[0317/
[0317/
[0317/
[0317/
[0317/
[0317/
[0317/
and the chromium process never returns.
After installing libx11-xcb1, this is what I'm seeing:
$ chromium-browser --headless http:// example. org 172211. 239945: WARNING: headless_ content_ main_delegate. cc(530) ] Cannot create Pref Service with no user data dir. 172211. 242524: ERROR:bus. cc(393) ] Failed to connect to the bus: Failed to connect to socket /var/run/ dbus/system_ bus_socket: No such file or directory
[0317/
[0317/
and the process exits successfully. If I add the --dump-dom parameter I can confirm that the page that was requested was correctly fetched and parsed.
Now the problem isn't that the dependency was removed, in fact chromium 88 didn't depend on libx11-xcb1 and I just confirmed in the same chroot that it worked well in headless mode without it. It's the opposite indeed: this is a new requirement, and I'm investigating to figure out why the dependency wasn't automatically added.