GoogleChromeLabs / GoogleChromeLabs/chrome-for-testing
What are the differences between Chrome (retail) and Chrome for Testing?
- Dominant language
- JavaScript
- Stars
- 1.3k
- Forks
- 159
- Avg merge
- 18h 37m
- Merged PRs (30d)
- 3
Description
### Background
In this scenario, Chrome is running on Windows as a service on a Windows Server instance, orchestrated by Selenium / ChromeDriver. This is used to perform complex automation involving extensions and capture information (e.g. DOM Snapshot) via Dev Tools.
Chrome is installed using the Enterprise MSI, and updates are pinned to a specific version using Group Policy. This setup is currently stuck on Chrome v140, because upgrading beyond this loses the ability to install unpacked extensions during test runs. It is not possible to use BiDi to load extensions, because this requires using remote-debugging-pipe (checked in source), but this setup (either Selenium or ChromeDriver) only allows dev-tools use when using remote-debugging-port.
Therefore, the only feasible course of action is to switch to Chrome for Testing instead of Chrome, as this should allow unpacked extensions to be loaded - which it does.
### Issues
Chrome for Testing does not perform as expected. Specifically, WebGL tests fail because the GPU is not available. This is an issue only as running as a non logged-on service, but Chrome when installed from the enterprise MSI works just fine in this setup.
Unlike Chrome which installs itself and sets any needed permissions, Chrome for Testing requires that `setup.exe` is run with `--configure-browser-in-directory`. This adds permissions which - it looks like - enables sandboxing. This step has been completed. Also tried are options such as `--ignore-gpu-blocklist` and `--disable-features=SkiaGraphite`.
Furthermore, running tests concurrently causes numbers of failures (even though Selenium is creating a new user-data-dir for each start of the browser), in the order of 85% (basically all concurrent runs).
### Questions
What *exact* differences are there when it comes to GPU rendering between Chrome and Chrome for Testing? Are we able to supply command line options to make Chrome for Testing behave exactly like Chrome?
Contributor guide
Research direction
Start by reproducing the WebGL failures and concurrent-run failures under the Windows service setup, comparing Chrome installed by Enterprise MSI with Chrome for Testing after setup.exe --configure-browser-in-directory. Inspect the Selenium/ChromeDriver launch configuration and GPU-related behavior. Done means documenting the exact differences and whether supported options can make Chrome for Testing work equivalently.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 28/100