Chrome

Google has begun testing their upcoming extension manifest V3 in the the latest Chrome Canary build, and with this initial 'alpha' release, developers can begin testing their extensions under the upcoming specification.

In a post to the Chromium Extensions Google group, Simeon Vincent, a Google Developer Advocate for Chrome Extensions, stated that as of October 31st a developer preview of the extension manifest v3 is now available in the Chrome 80 Canary build.

"Think of it as an early alpha. The "dev preview" is the first opportunity for extensions developers to start experimenting with a work-in-progress version of the MV3 platform.

We're far from finished with the implementation work on the MV3 platform, so first and foremost expect changes. 

As for what's changing, the four big-ticket items in MV3 are:

  • Host permissions changes
  • Blocking webRequest -> declarativeNetRequest
  • Background page -> service workers
  • Remotely hosted code restrictions"

The declarativeNetRequest API has already been available for experimentation in Chrome Canary and we're continuing to iterate on it's capabilities

As part of this launch, Google has created a Migrating to Manifest V3 guide that developers can use to migrate their existing extensions.

The most controversial aspect of the extension manifest v3 is the upcoming changes to the webRequest API. In v3, Google has changed the API so that extensions can only monitor browser connections, but not modify any of the content before it's displayed.

Instead Google wants developers to use the declarativeNetRequest API, which has the browser, not the extension, strip content or resources from a visited web sites.  This API, though, has a limit of 30,000 rules that can be created.

Unfortunately, this change will break popular ad blockers such as uBlock Origin, which rely on the original functionality of the webRequest API and need more rules than are available in the declarativeNetRequest API.

Testing changes in extension manifest v3

If you are using the current Chrome Canary build you can test the new changes by creating your own extension and setting its manifest version to 3.

BrowserNative.com, who first reported about the developer preview launch, shared with BleepingComputer a test extension that can be used to test the new changes.

For example, in the extension manifest.json file below, the version has been set to 3 and it's using a background.scripts call.

Background.scripts manifest
Background.scripts manifest

As background.scripts is no longer supported, trying to load the extension will generate an error, as shown below, that states you need to "use the "background.service_worker" key instead".

Error when using unsupported APIs
Error when using unsupported APIs

If you switch the extension to use a service_worker instead then the extension loads properly into Google Chrome.

Background.service_worker Manifest
Background.service_worker manifest

All extension developers should consult the migration guide to make sure their extensions will work properly with the upcoming manifest v3 changes.

While they are now in preview, Google expects the manifest v3 to go live in 2020 with the v2 end of life to be determined in the future.