Fred Wilson’s written on whether browser plugins should modify the browser UI or the web pages being viewed, and comes down on the side of modifying the web pages – thanks to some attractive improvements in the Mahalo Follow extension, which now injects Mahalo results directly into the Google search result page. And the functionality is nice. But this goes against the implicit web-viewing paradigm we’ve all got – the browser and its interface is largely chosen and controlled by the user, while the content of the pages is largely determined by the site.
That’s not how it actually works, of course – what you end up seeing is a combination of what’s sent from the webserver, modifications to that made upstream at the ISP, and the interpretation of the whole thing by the browser. But generally, when the page breaks, people think it’s the site’s fault, not the browser’s or an extension’s. We’re just not conditioned to think of the page as cooperatively built. Any exceptions to this – AdBlock Plus, Greasemonkey scripts, page-modifying extensions like Mahalo Follow – we have to keep in our head, so when something goes wrong, we can blame the extension, not the site. And I strongly suspect the number of page-modifying extensions we can keep in our head is pretty small. I remember one tech journalist reporting on a new feature of Google’s – only to sheepishly add later that this was a Greasemonkey script he’d installed and forgotten about.
If extensions modifying the HTML of popular sites take off, they’ll inevitably start to modify the same HTML and step on each others’ toes, leading to irritating-to-track-down compatibility problems where all extensions work individually but no extensions work in combination. Popular sites will see a spike in customer support issues when they change their interfaces, due to broken extensions. Eventually you can expect to see sites taking defensive maneuvers against this sort of manipulation, invoking authorial intent or simply trying to defend revenue streams. Perhaps a legal challenge against the extension’s parent company but more likely, a technical solution – dynamically modifying the DOM periodically to bust the extensions’ regex patterns. (These technical solutions are coming anyway, if AdBlock Plus hockey-sticks.)
Perhaps these issues could be alleviated if browsers started including a clear visual indicator in the UI – an indicator that meant ‘this page is being modified by a browser extension.’ Until then, modifying the HTML of another site’s page is a bit like dating the crazy woman you met at the club five tequilas in. You know it’s not wise, but you do it anyway because initially it’s so much fun. Only later do the predictable problems arise, making you wish you hadn’t gotten involved in the first place.