无头 Chrome由Google 团队在Chrome 59中发布,它引入了一种在无头环境中运行Chrome 浏览器的方法。
添加了一条注释:
Headless mode has been available on Mac and Linux since Chrome 59. Windows support came in Chrome 60.
文章Getting Started with Headless Chrome
提到:
--disable-gpu \ # Temporarily needed if running on Windows.
添加了一条注释:
现在,--disable-gpu
如果您在 Windows 上运行,您还需要包含该标志。
根据讨论Headless: make --disable-gpu flag unnecessary
,很明显:
Linux或Mac OSX--disable-gpu
上不再需要该标志。一旦修复了错误,它也将在 Windows 上变得不必要。SwiftShader fails an assert on Windows in headless mode
引擎盖下发生了什么?
headless: Switch from osmesa to SwiftShader
根据Google/Chromium 团队决定将SwiftShader与Chrome一起发布的讨论,该团队考虑开始使用它在Headless Mode 下渲染GL 内容。这需要进行一些更改,如下所示:
- 在Headless 模式下跳过 GPU 数据收集,因为SwiftShader不被该代码视为软件实现,这会导致我们尝试从Window System检索信息时失败。
- 如果我们打算使用osmesa ,只在InitializeStaticEGLInternal中跳过GL 初始化。SwiftShader像其他非软件实现一样需要初始化。
- Mac OSX目前不支持SwiftShader ,因此团队决定在该平台上继续使用Headless 模式下的物理 GPU (与其他一切都是软件渲染的平台不同)。
- 因此,为了在Headless 模式下禁用WebGL支持,他们决定使用--disable-gpu和--disable-software-rasterizer
的想法Support WebGL in headless
仍在讨论中,但SwiftShader fails an assert on Windows in headless mode
错误如下:
[0117/125830.649194:ERROR:gpu_process_transport_factory.cc(1043)] Lost UI shared context.
DevTools listening on ws://127.0.0.1:37429/devtools/browser/1f0b2bf7-dfdd-44ac-9da7-f2659d352f0d
结论
此错误不会影响您@Test
,您可以暂时忽略该错误。