Google's Planned Update to Chrome Extensions API Causes Brouhaha

Google is doing some work on the API that helps manage Chrome extensions. The company first announced that changes were on the way back in October 2018. Developments over the last few weeks have shed light on what the impending changes mean for developers, and not everyone likes what they see. Ad blockers are at the heart of the issue and changes to the API will impact them in a big way. 

Manfiest V2 is the current API level for Chrome extensions. It was first published in 2012. I don't have to tell you how outdated that code is. Security is the most serious concern, as unfriendly extensions have targeted Chrome many times over the years. Thus Google began work on Manifest V3. The goal of Manifest V3 is to safeguard Chrome from bad extensions and raise the bar on performance at the same time. 

Google is working on a new API called the declarativeNetRequest API. It is expected to replace the webRequest API. 

"The basic flow is that when a network request begins, Chrome sends information about it to interested extensions, and the extensions respond with which action to take, explained Google. "This begins in the browser process, involves a process hop to the extension's renderer process, where the extension then performs arbitrary (and potentially very slow) JavaScript, and returns the result back to the browser process.  This can have a significant effect on every single network request, even those that are not modified, redirected, or blocked by the extension." In other words, it can bog down performance.

At first glance, it seems entirely reasonable that Google would favor security over performance. Others don't see it that way. Cliqz, which developed the Ghostery extension for Chrome, says things aren't on the up and up. The real targets, says Cliqz, are ad blockers. 

"[Google] pretend[s] to do this for the sake of privacy and browser performance," claimed Cliqz in a blog post. "However, in reality, users would be left with only very limited ways to prevent third parties from intercepting their surfing behavior or to get rid of unwanted content. Whether Google does this to protect their advertising business or simply to force its own rules on everyone else, it would be nothing less than another case of misuse of its market-dominating position." The company went on to threaten filing an anti-trust complaint. 

This caused some consternation on the part of developers and forced Google to backtrack a bit. 

"I’d like to reiterate that all of these changes are still in the draft and design stage, as explicitly called out in the document and the tracking bug," explained Devlin Cronin, part of Google's Chrome developer team, in a blog post. "The declarativeNetRequest API is still being expanded and is under active development, and the exact changes that will be implemented as part of Manifest V3 are not finalized. Feedback during this time is crucial, and we absolutely want to hear your comments and concerns."

More importantly, Cronin noted that the webRequest API will not be pulled out of Manifest V3. The development team is still narrowing down all the proposed changes to webRequest API and hasn't made a final list of what's in and what's out. 

Be sure to read the next Browsers article: Facebook Targets Browser Queueing Delays With New isInputPending API in Chrome 74