Allow runtime download and caching of libraries
There are some frameworks that are not suited for inclusion in LocalCDN due to their size (as will be documented in Contributing.md shortly). Examples are MathJAX and Google Fonts: which otherwise could be bundled. I propose the addition of a new 'dynamic framework' system, in which libraries that would otherwise be blocked (in strict mode) or downloaded from the internet every time (in normal mode) could instead be fetched by LocalCDN and saved in a Local Storage bucket. While an imperfect solution, this would allow significant privacy and preformance gains.
Obviously, there are other considerations (Mozilla's requirements for extensions cheif among them). This would probably require a discussion with them about what it means to execute code. Runtime modification of behavior based on large data files IS permitted: see uBlock Origin, for instance. The downloading of these larger frameworks would need to be self-auditing, and would probably best be done straight from the CDNs themselves.
Yes, this would mean some loss of privacy: however, the data gained by a remote CDN would only consist of "x IP wants x framework", given that the normal rules of version bumping would apply. Compare this to a unblocked load request, which may include referer tags (don't you love the web), an obsolete version, a specific subset of features (as opposed to the full package), and may be done repeatedly.
This would take significant coding effort, and require another set of mappings, but has the potential to significantly improve throughtput. Thoughts?
This question has been asked before (see #10).
The short version: I see this very skeptically, because
- also a lot of useless stuff is loaded and saved
- a one-time contact is necessary
- older stuff has to be deleted automatically
Of course it depends on your surfing habits, but I haven't had a website that was broken for a long time. But I also don't use services from Google, Microsoft, Twitter, Facebook, YouTube, ... 😉
Deleting a branch is permanent. It CANNOT be undone. Continue?