A Brief History of Browser Extensibility

Consumer Web Browsers (1993–)

Mosaic for Mac

Plug-ins (1995–2015ish)

Flash Player website in March 2006 via the Internet Archive

User Style Sheets (1998–2019ish)

  • Document author: The author of the website
  • User: The user of the browser
  • User agent: The default style for the user agent (i.e., the browser)
Part of the CSS 1 test suite

Bookmarklets (1998–)

javascript:void(window.open('https://web.archive.org/web/*/'+location.href.replace(/\/$/, '')));

Browser Extensions (1999–)

addons.mozilla.org in March 2005 via the Internet Archive

Mozilla XUL (1997–2017)

Alternative Browser Distributions (2004–)

  • GNU IceWeasel/IceCat (2005–): Firefox distribution without proprietary plug-ins.
  • Flock (2005–2011): Browser with integrated social media features. Originally based on Firefox and later based on Chromium. Was purchased by Zynga, a social games company.
  • Tor Browser Bundle (2008–): Firefox distribution that makes use of the Tor network for private browsing.
  • Brave (2016–): Brendan Eich’s (of JavaScript fame) Chromium browser with content-creator revenue sharing via the Basic Attention Token cryptocurrency.
  • Microsoft Edge (2019–): Microsoft’s Chromium-based browser after their in-house browser (also called Edge) failed.
The Flock browser had social media features built in

Userscripts (2005–)

Converging on the WebExtensions API (2017–)

Manifest V3 (2021–)

  • Making network request modification declarative (speed/security)
  • Using service workers for background operations, vs. a persistent background page (reliability)
  • Banning remotely hosted JavaScript code, a common vector of security vulnerabilities (security)

The Future: No/Low-Code Browser Extension Builders (2021–)

  • Style managers (2005–): Customize style of a page.
  • Userscript managers (2005–2022?): Run custom code automatically.
  • Content/adblockers (2002–): Block network requests and elements.
  • Context menu managers (?–): Add context menu items (e.g., opening a new URL dynamically based on the selected text).
  • Web clippers (?–): clip information from a page; customize what’s clipped and where it’s sent.

Co-founder @ PixieBrix. University of Washington CompSci PhD. Formerly AI at Bridgewater Associates. Machine ✘ Business Intelligence

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Static Code Analysis for Python

Dealing with significant Postgres database bloat — what are your options?

PostgreSQL master-slave replication on Heroku with Ruby on Rails

Utilize Deal CRM Software to Improve the M&A Process

GPT-3: The First Artificial General Intelligence?

Command/query objects and beyond

Do I really need to write a specification?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Todd Schiller

Todd Schiller

Co-founder @ PixieBrix. University of Washington CompSci PhD. Formerly AI at Bridgewater Associates. Machine ✘ Business Intelligence

More from Medium

Three underused Developer Tools to understand your code

Grouping in React using React-Alignment-Guide

Tabs Region JavaScript API in Oracle APEX

Getting Started with Algolia API

Getting Started with Algolia API