Depending on user-agent string, some web browsing fail to load due to use of UA sniffing (rather than, say, feature detection or defensive programming).
User-agent is a string of this form: Mozilla/[version] ([system and browser information]) [platform] ([platform details]) [extensions]
Options:
- Plain: Include PureBrowser in extensions
- Compatibility mode: Include Firefox and PureBrowser in extensions
- Impersonation: Include Firefox in extensions
- Subtle: Include PureBrowser in browser information, and Firefox` in extensions
Plain is the default when Firefox is built with "Brand" changed to "PureBrowser".
Compatibility mode is the style when a rebranded Firefox is runtime-configured with general.useragent.compatMode.firefox enabled.
This has been applied to PureBrowser since 52.9.0esr-1pureos2.
Impersonation is practiced e.g. by GNU IceCat fork of Firefox (see https://tracker.pureos.net/w/troubleshooting/firefox_compat_mode/).
Subtle is suggested by Mozilla as acceptable for AMO (see T595#11999).
Examples of failures include AMO (see T202) and Jitsi Meet (see T201).
Other considerations:
- An idiosyncratic UA string has privacy implications (see https://panopticlick.eff.org -- there are many other tracking signals, but any idiosyncrasy has an impact)
- This would suggest impersonation mode is preferable.
- We don't want to commit to "keep Panopticlick score as low as possible", Tor is better suited to that use case. This change should not be read as implying that.
- What are the benefits of an idiosyncratic UA? Measuring browser reach globally. Measuring browser reach on our own sites. What value does this have? Any other benefits? If there is value here, we could take the IceWeasel approach.
- Global scale trackers may count us as Firefox if we include "Firefox" in the UA string. Is this good or bad?