This document summarizes the functional and behavioral differences introduced when Chrome is built with the BUILDFLAG(CHROME_FOR_TESTING) and BUILDFLAG(GOOGLE_CHROME_FOR_TESTING_BRANDING) build flags. The latter enables Google Chrome for Testing specific branding. This affects application icons, installation paths (e.g., for native messaging hosts and enterprise policies), and enables proprietary media codecs (e.g., H.264, AAC, MP3). Without it Chrome for Testing acts like Chromium for Testing.
Chrome for Testing can be configured by supplying a JSON configuration file using the --chrome-for-testing-config command line switch. Refer to docs/chrome_for_testing/chrome_for_testing_configuration.md for more details.
chrome_for_testing::LoadConfig().ChromeBrowserMainParts. The browser explicitly blocks and delays regular startup until all “required components” specified in the CfT config are installed or updated to the current version.kComponentUpdatesEnabledByDefault is forced to false).Chrome for Testing stores its profile and browser state in a dedicated user data directory location different from standard Chrome user data directory location. This prevents test profiles from interfering with day-to-day browser data. Details regarding exact path locations for each platform can be found in docs/user_data_dir.md.
Chrome for Testing stores enterprise policies in a location different from standard Chrome enterprise policies location. Details regarding lookup behavior and specifics are covered in docs/enterprise/policies.md.
--disable-infobars command line switch.Chrome for Testing supports an optional process-specific virtual clipboard which operates independently from the system clipboard. This isolation helps to keep test execution hermetic.
Note: Virtual clipboard needs to be explicitly enabled in the JSON configuration.
GetDefaultWebClientSetPermission() method always returns SET_DEFAULT_NOT_ALLOWED.CodeSignCloneManager functionality. This mechanism prepares seamless path migration for silent macOS updates, which is redundant and overhead for an automated testing executable.ChromeContentBrowserClient to treat the session configuration as actively managed by a DevTools client and passes &isChromeForTesting=true upstream to the inspector frontend interface.--enterprise-signin-dialog-behavior-for-testing switch. This enables testing infrastructure to auto-answer and auto-approve enterprise profile creation dialogs (e.g., "accept-new-profile", "accept-link-data", or "cancel") without requiring physical UI interaction or Selenium/CDP scripts.Pre-built Chrome for Testing binaries are available across all the supported desktop platforms and Chrome/Chromium channels. You can access them via the Chrome for Testing dashboard.