Domain substitution breaks Google WebAuthn AppID validation

Author: EhekatlCreated Aug 15, 2026Updated Aug 15, 2026

Domain substitution currently rewrites content/browser/webauth/webauth_request_security_checker_impl.cc and .h. Those files contain the upstream Chromium Google AppID compatibility check:

After substitution, an explicit appidExclude from accounts.google.com is rejected with SecurityError: This is an invalid domain. The rejection occurs before an attached chrome.webAuthenticationProxy extension receives onCreateRequest, so an authenticator extension cannot handle it.

This is observable in current ungoogled-based builds: a google.com create request with googleLegacyAppidSupport=true reaches the proxy, while the equivalent current Google Account flow with explicit appidExclude using the upstream gstatic URL fails before the proxy.

These strings do not initiate a Google service request. They are local validation constants for a compatibility rule shared by Chromium and Firefox. Excluding the security checker implementation and header from domain substitution preserves that validation without restoring background Google integration.

I have a small change ready that removes those two source files from domain_substitution.list.

Source: ungoogled-software/ungoogled-chromium