Disabling webaudio breaks the Matrix Element web client
In a (not so) recent update Element started to break on browsers that dont support the webaudio API. The webapp will present a warning that the browser is not supported, and when the user decides to attempt to use the webapp anyway, it immediately shows the failure page
| Compatibility warning page | Failure page |
|---|---|
Setting dom.webaudio.enabled to true in about:config solves the issue without browser restart.
The Element team will not fix this issue. (element-hq/element-web#27864, note that the issue title is misleading, the problem was the config value, not the FF version)
However, maybe there is more we can do besides blaming Element, ~~and the broken misconfiguration page that still doesnt tell you whats the source of the perceived incompatibility~~ (turns out this was a misunderstanding, this was not intended to be done).
According to arkenfox/user.js#1194, webaudio was not a major source of fingerprinting back in 2021, and according to a later issue that referenced it, arkenfox/user.js#1701, in 2023 Firefox 118 was still working the same way, if not a little better.
I think it would be worth considering to change this tick box to default off, in the "Website Tracking" category:
I am not sure if much is to do here:
Your browser has a required feature disabled, this feature isn't optional in the web spec.
If a project insists on the "web spec" is having the latest browser with all features enabled, you'll run into problems with a lot of privacy settings. In the same issue they mention they require wasm, what also have a few security, performance and possibly privacy considerations.
I would suggest using the standalone client, enabling what they need, or creating a Firefox profile only for webapps that do not work without all features and use it only for these apps.
I am not sure with the implications of webaudio now, but I know that some tracking providers still try to use it. I am absolutely in favor of disclosing all issues (that's the purpose of having the generator instead of sharing a user.js file), but I think the text in the screenshot is quite clear about that. It may be worth considering changing the default if one is sure that most people will have the same fingerprint.