Today’s browsers root in an environment where there were only websites and PCs. A browser’s purpose was simply to make the bits and bytes describing pages visible to users on their screens.
However, the internet changed. Today we’re seeing the so-called Web 2.0. Browsers adjusted to new standards coming up over time and thus implemented new features. A lot of things became easier to develop thanks to modern tools like HTML5 and CSS3.
But the web changed more than that. There’s not only a website and a screen anymore.
Nowadays, in most cases, there are extensions in between this linkage manipulating what will be shown of the original code to the user. Not every user does have a whole set of extensions installed, but only a minority of users browses completely without them (e.g. ad blockers).
So how did browsers react to this new component?
In short: they didn’t :right:
There are a few limited APIs that are not available to websites, but to extensions exclusively. That’s it!
Developing my own extensions, I more than once resigned because of incompatibilities between extensions or between one extension and some specific websites.
IMHO there’s a bunch of alterations to a modern browser’s structure that would be necessary to solve those issues and this post is going to elaborate on my view of a modern extension system a bit :up: …