In September, when Google delayed its Chrome extension platform makeover, we predicted, “This may not be the last time Google revises its transition timeline.”
For several years, Google has been revising the way browser extensions work in Chrome and its open source Chromium foundation because the legacy API, known as Manifest v2 (MV2), was too easily abused and could interfere with browser performance. The ad giant claims its reworked API, known as Manifest v3 (MV3), is more secure and better performing, though it lacks support for certain capabilities used heavily by makers of advert and content blocking and privacy extensions.
Despite repeated objections raised by the Electronic Frontier Foundation, Raymond Hill, the creator of uBlock Origin, Jean-Paul Schmetz, CEO of Ghostery, and others that MV3 is harmful, Google has maintained that its browser platform changes are necessary and that it intends to support common use cases like content blocking under MV3.
But it has been difficult to assess what MV3 will actually allow because Google’s timeline had MV2 extensions going away while the MV3 spec was incomplete and not fully functional. Developers thus have been tasked with rewriting their extension code for a platform that is half-baked and bedeviled by bugs.
For example, in October, developers complained about this “show-stopper” bug in the MV3 implementation of Service Workers. In MV2, developers could use persistent background pages to process data in the background.
MV3 does away with persistent background scripts, which were deemed to be too resource intensive. In their place, Google offered Service Workers, scripts that run briefly then shut down. But presently, Service Workers in Chrome extensions sometimes shut down and cannot be revived.
A similar issue – Service Workers being forcibly shut down after five minutes – has been an open bug report since November, 2020. Developers commenting on this issue have repeatedly criticized Google for failing to make MV3 functional enough to port their extensions.
“The breakage caused by MV3 is really larger than I thought,” wrote one developer in March, 2022. “Imagine breaking TCP protocol because you want some sort of extra ‘security’ and ‘performance’ but [you] end up breaking millions [of] apps in the process. This is a clear management failure of Google’s.” And the bug report thread is full of such sentiment.
Simeon Vincent, who oversees developer relations for Chrome extensions, acknowledged developer complaints in a post to the Chromium extensions developer forum on Friday.
“As we head towards Manifest V3 migration, we are intently monitoring comments from the developer community to help inform our timelines,” said Vincent. “We’ve heard your feedback on common challenges posed by the migration, specifically the service worker’s inability to use DOM capabilities and the current hard limit on extension service worker lifetimes. We’re mitigating the former with the Offscreen Documents API (added in Chrome 109) and are actively pursuing a solution to the latter.”
Vincent said Google is “committed to providing developers solutions to migration challenges with new functionality, bug fixes, and adequate time for adoption.” And thus the company has decided to postpone its plan in January to begin disabling MV2 extensions in pre-release channels – various versions of Chrome used by developers. It is also reconsidering “all downstream milestones” too.
Vincent said to expect an update in March next year. “Our guiding principle will be to give developers sufficient time to update and test their extensions after the launch of these new capabilities before turning off Manifest V2,” he said.
More time will certainly be required, it seems. According to chrome-stats.com, only about 30,000 of about 166,000 extensions in the Chrome Web Store have been converted from MV2 to to MV3:
“As of today, only 17.84 per cent of all items in [the] Chrome Web Store have migrated to Manifest V3. If the timeline is strictly followed, the vast majority of Chrome extensions may stop working.” Most of Google’s own extensions have yet to be converted.
At some point, MV2 extensions will be disabled in Chrome. We should learn more within three months or so. ®