Apple unveiled macOS 11 Big Sur earlier this week and talked about some of the improvements for Safari. In addition to native extensions, Apple is adding support for web extensions. It’s going to make it much easier to port an existing extension from Chrome, Firefox or Edge.
The company shared more details about how it’s going to work in a WWDC session. Safari already supports extensions, but if you’re using Safari, you know that there aren’t a ton of extensions out there.
On iOS and macOS, you can install content blockers and apps that feature a share extension. Content blockers let you provide a list of content to block when you load web pages, such as trackers and ads.
Share extensions let you add features in the share menu in Safari. For instance, Pocket or Instapaper take advantage of share extensions to run JavaScript on a web page and return the result to the app.
On macOS, developers can also take advantage of app extensions. 1Password uses that to integrate its password manager with Safari.
“These are great if you’re a native app developer already familiar with Swift or Objective-C,” Safari engineer Ellie Epskamp-Hunt said.
Other browsers have taken a different approach. They leverage web technologies, such as JavaScript, HTML and CSS. That’s why Apple is adding another type of extension with Safari Web Extensions.
Like other Safari extensions, web extensions designed for Safari are packaged with native apps. It means that developers will submit extensions to the App Store. Users will download an app that comes with an extension. The app doesn’t have to do anything, it can just be a place holder.
Apple is shipping an extension converter to let you port your extension quickly. When you run it, it’ll tell you if everything is going to work as expected. You can then package it in an Xcode project, sign it and submit it to the App Store.
Some extensions require a ton of permissions. They can essentially view all web pages you visit. That’s why Apple lets you restrict extensions to some websites, or just the active tab. You can also choose to activate an extension for a day so that it doesn’t remain active forever.
The user will get a warning sign the first time an extension tries to access a site and there will be a big warning banner in Safari settings before you activate an extension that can access all your browsing data.
This change could potentially mean that there will be a lot more extensions for Safari in the future. Many Chrome users don’t want to leave Chrome because they can’t find the same extensions. If developers choose to port their extensions to Safari, Apple could convince more users to switch to Safari.