On 11/30/2017 12:31 PM, Josh Triplett wrote:
- For the sake of avoiding ambiguity, an interpreter for file formats or network protocols that include software, such as scripts, may consider the user browsing to a site or opening a file as "user interaction" for the purposes of processing the software embedded or referenced by that site or file. However, this does not extend to automatically downloading or installing separate non-free software to interpret such sites or files, such as non-free codecs or plugins; that must still require explicit user interaction.
"separate non-free software to interpret such sites or files" is not really clear. For example, it's extremely common for web sites to link to 3rd party software that greatly extend JavaScript (thankfully, most of those are free). That'd seem to be separate software to interpret the site. Similarly, there are JavaScript frameworks to extend CSS—or allow it to be written in non-CSS and translated to CSS on the fly.
Codecs, even, can be written in JavaScript and automatically downloaded (it looks no different than any other JavaScript to the browser); JavaScript performance is somewhat of a problem for that use case, but now with WebAssembly that problem is going away. You can even compile your C/C++ codec to WebAssembly. This isn't a hypothetical — codecs written both JavaScript and WebAssembly already exist.