There are several ways to extend the functionality of the browsers. One of the most common is to add extension/add-on from a store. Probably the most popular stores are:
Chrome Web Store: Link
Edge add-ons: Link
Opera Add-ons: Link
Add-ons for Firefox: Link
Safari Extensions: Link
As currently Edge and Chrome are both based on the same Chromium browser, the extensions can be installed from both stores.
Some mobile browsers are rumored to support web extensions, but I have not used them yet.
Firefox has it’s own extensions that as far as I remember are not quite compatible with Chromium (they were, now not quite and hopefuly will be compatible again). I like Firefox, but the users that I “serve” are Edge/Chrome Windows users and I have to adjust to them (but this is another story).
Opera, Safari, etc. also have extensions, but I do not target currently such users.
So what are the Chrome and Edge web extensions? They are additional scripts that execute in dedicated context and can modify the opened pages, open new pages, create/modify/close tabs, provide communication between tabs, etc.
The most common type of extension is the popup/ad blocker extension. They can selectively hide or remove advertisements on the fly. So instead of getting a page with few sentences and multiple commercials, the user can see just what is the text on the site. Some sites do not agree on this practice as some of them rely for funding on the advertisement, but there are also sites that really have just several sentences and looots of advertisement.
So some extensions inspect the elements on the web pages and modify or remove some of them (popup blockers). The below linked extension just switches tabs, but this can be also very annoyng if someone wants to open another page before closing the predefined page. Although it might seem completely useless, I had to create it in order to temporary “patch” another extension, that I do not want to modify at the moment.
Creating simple extension is relatively easy- create manifest file (to define the permissions and file contents), create the scripts (background and/or content scripts), add icon, add settings html, uploa to the store, wait for the code to be reviewed and afterwards the extension gets published.
If the extension does not have to be published, then it can be loaded “unpacked”, but this has the disadvantage of warnings when the browsers start. The advantage is that the unpacked extensions can be easily modified and then reloaded to the browser.
As the web extensions are something useful and I have spend quite a lot of time creating them, I have created a dedicated “page” for my work with them. It is still “work in Progress”, but it easier for me to share it this way and to write the descriptions, so I don’t forget what I have made.
For example I have created a web extension that switches the tab to a tab with predefinded pattern in the address bar. So if there are multiple tabs and one tab has for example “demo” in the URL, then the extension switches automatically to this tab, but any word/pattern can be used.
And the extension source
Why packing the extensions and uploading them? Well… the unpacked extensions work well in the Edge and Chrome for the Dev and Canary editions. For the normal consumer editions there are warnings. To prevent the warnings from interupting the inexperienced users, the extensions get packed, uploaded and installed.
There is also one additional aspect of the store web extensions- they can be managed via Active Directory (mandatory and user locked for example) and for the Enterprise editions that can be managed via AD GPOs. Still have not tried it, but there are plans to use it. hopefuly they do not retire the AD completely.