How Safari Extension Sync Works on iOS 15

With the release of iOS 15, Apple brought full Safari web extension support to iPhone and iPad, allowing users to run the same powerful browser add-ons previously reserved for macOS. This article explains the technical and operational mechanics of Safari extension synchronization across Apple devices. It covers how iCloud connects your extension states, the difference between app installation and activation sync, how data syncing works via developer APIs, and the configuration steps required to keep extensions uniform across your ecosystem.

The Role of iCloud in Extension Synchronization

Safari extension synchronization relies on your Apple ID and iCloud infrastructure. Rather than automatically downloading third-party software in the background without permission, iOS 15 synchronizes the state and preferences of your extensions across all connected devices running iOS 15, iPadOS 15, and macOS Monterey.

When an extension is enabled on an iPhone, iCloud registers this status. If the companion app for that extension is already installed on your iPad or Mac, Safari will automatically enable it on those devices to mirror your browsing environment.

Installation vs. Activation

Because Safari web extensions on Apple platforms are distributed as native app wrappers through the App Store, synchronization operates in two distinct phases:

  1. App Installation: An extension binary is not automatically installed on a secondary device unless automatic App Store downloads are enabled for your Apple ID. If an extension is not installed, Safari alerts you on the secondary device that an extension used elsewhere is available to download.
  2. State Synchronization: Once the extension's host app is installed across your devices, turning the extension on or off in Safari settings updates its operational status across all devices signed into the same iCloud account.

How Extension Data Syncs: browser.storage.sync

For an extension to maintain identical settings, blocklists, or account logins across devices, it relies on the standard WebExtensions browser.storage.sync API.

Under iOS 15, Safari maps this API directly to the user’s private iCloud key-value storage. When an extension saves user settings or data using this method, the data is encrypted and transferred via iCloud to the same extension running on other devices. This allows seamless state transitions without requiring the developer to host independent user accounts or synchronization servers.

Permissions and Security Synchronization

To maintain platform security, Safari treats website permissions differently from basic activation states:

  • Site Access: If an extension requires access to specific domains or all web pages, permissions granted on iOS 15 can sync across devices if the user enables centralized permissions.
  • Granular Prompts: Temporary permissions (such as "Allow for One Day") remain local to the specific device to prevent unintentional data exposure while switching between mobile and desktop contexts.

How to Enable Cross-Device Sync on iOS 15

To allow extension states to sync across devices, the feature must be enabled in the system settings:

  1. Open the Settings app on iOS 15.
  2. Scroll down and select Safari.
  3. Tap Extensions.
  4. Toggle on Share Across Devices.

Once this toggle is active on all your Apple devices, Safari automatically coordinates extension activation states and synced storage across your entire device ecosystem.