What's happening in Chrome Extensions?

The first three months of the year have been productive for the extensions team. We've rolled out several significant updates and new features that we're excited to share with you. But one particular Chrome Web Store addition has been hugely anticipated—a feature that will improve your publishing experience.

Chrome Web Store version rollback

Last week, the Chrome Web Store added a new feature that lets you go back to an older version of your extension more quickly. If your latest update didn't go as planned and you want to fix it fast, provide a new version number for the previous version and a reason why. We'll publish the previous version in minutes—no need to wait for your item to be reviewed. This way, your user can get a working version right away.

Modal requesting details for a version rollback.
Modal requesting details for a version rollback.

Want to know more about how version rollback works? Check out our blog post and the step-by-step guide on reverting to a previous version.

Firebase Auth SDK now supports extensions

In February, the Firebase team rolled out the first-ever Web Extensions entry point in the JS SDK v10.8.0 release. It addresses a longstanding issue that has led to some extensions being rejected from the Chrome Web Store due to using remotely hosted code for Firebase Auth.

The new Web Extensions version of the Firebase SDK bundles all required code, eliminating the need for remote hosting. This solves the policy compliance challenge that extension developers have faced. This change applies specifically to Firebase Auth, but it sets the stage for addressing other extension-specific issues.

The Firebase team has worked closely with the extension developer community to deliver this much-needed solution. They are dedicated to ongoing collaboration and welcome feedback from extension developers on ways the Firebase SDK can be further optimized for extensions. For more details, see the PSA announcement in the Extension's Google Group post.

Other API launches

  • From Chrome 124, service workers support WebGPU. This improves the implementation experience for developers interested in building AI extensions. For a quick start, check out the WebGPU extension sample.
  • In Chrome 123, alarms set using the Alarms API are no longer delayed when a device goes to sleep. When the device wakes up, the alarm will fire once, no matter how many alarms are missed.
  • If you rely on a port remaining open throughout the lifetime of a page, you may need to make changes to reconnect when a page is restored. Learn more about the changes made to the bfcache behavior in Chrome 123 in the Changes to BFCache blog post.
  • CIDR Block Filtering in Events API: In Chrome 123, developers can now use Classless Inter-Domain Routing (CIDR) blocks for more efficient event filtering. This update eliminates the need for the tedious task of creating individual filter rules for each IP address within a range. By adopting CIDR notation, you can succinctly specify a range of IP addresses, allowing for streamlined management of event triggers by IP ranges.
  • In Chrome 123 the tabs.Tab's property windowId can have a value of -1 to indicate that the tab does not belong to a browser window. This is often the case for pre-rendered tabs, which are loaded in the background to speed up browsing but are not yet visible in any window.
  • WebAuthn API: Extensions are now able to assert RP IDs for websites where they have host permissions. See the email for context.
  • All asynchronous Chrome API methods support promises for easier use unless the function signature isn't compatible with promises, like chrome.desktopCapture.chooseDesktopMedia(). Callbacks will still work for backward compatibility.

Upcoming features

Future plans include adding more features to the UserScripts API. Learn about userScripts.execute() in this WECG proposal.

Documentation updates

  • The Web Push guide describes how you can add push notifications and send messages from your server to your extension service worker using any Push provider.
  • Test service worker termination with Puppeteer: In this guide, you'll learn how to test the service worker of a Chrome extension using Puppeteer. You'll set up a test suite, write tests to validate service worker messaging, handle unexpected service worker termination, and learn best practices for building robust service worker code.
  • The Chrome Web Store Publish API documentation has been updated! This API lets you programmatically create, update, and publish extensions in the Chrome Web Store. The new documentation covers obtaining access tokens, making HTTP requests with the OAuth 2.0 Playground, and more. Check it out to streamline your Chrome Web Store publishing workflow.
  • The documentScan API reference page was recently updated to include advanced scanning use cases for ChromeOS extensions.

WECG March meet-up update

In March, the team met with representatives from Safari, Firefox, and Edge as well as a number of major extensions in the inaugural Web Extensions Community Group summit. Hosted by the Apple team in San Diego California, the WECG covered how to improve platform inconsistencies, nuanced aspects of permission systems, aiming to strike a balance between user privacy and developer needs. We couldn't be happier with how this event went, and our team is excited to reconvene this September in Anaheim, California, for TPAC 2024.

Syntax podcast

Oliver from our team recently appeared as a guest on the Syntax podcast. Tune in to hear about the changes in Manifest V3, review in the Chrome Web Store and more.

🗃️ Unpacking the Chrome Extension Review

We met with the Chrome Web Store review team in person to film a video about the intricacies of the review process. We collected all the questions and feedback you shared on this extensions forum post and used it on the day. The session will be featured on the Chrome for Developers Youtube Channel.

Thanks again for being part of the extensions community, and continue to be awesome! ❤️