Skip to content

FB17302861 - Allow Safari web extension popup window to show native view with view controller #58

@lapcat

Description

@lapcat

Currently, a Safari web extension can show only HTML in the extension popup window. This is a feature request for the option to show a native view in the popup instead: NSView on Mac or UIView on iOS, along with its corresponding native view controller. This would be like other types of extensions on Mac and iOS, including Safari app extensions, which use SFSafariExtensionViewController.

Without the availability of a native view and view controller, it would not be viable to port my Safari app extension (Apple ID 6471380298 in the App Store) to a Safari web extension on the Mac.

Moreover, the availability of native API in web extension popups would be a great enhancement and advantage for the Safari extension ecosystem. Chrome and Firefox would not be able to compete in this area. Safari web extensions already have the advantage of built-in support for native messaging, as well as easy monetization of extensions in the App Store. No other browser has this. Safari has the potential to provide the best browser extension ecosystem in the world, and native views in extension popups would advance that goal. I don't think that the Safari web extension API should settle for the overly modest and unambitious goal of simply allowing carbon copies of existing Chrome and Firefox extensions.

Safari has the only open extension ecosystem on mobile. Chrome on mobile doesn't even support browser extensions at all. Thus, Apple is an a position to take the lead there, by allowing a native view in mobile Safari extension popups. It's very difficult to design a nice user interface on mobile with just HTML, especially given small screens, which is one reason why so many web services that are HTML on desktop have a native app on mobile. The same problem and the same solution applies to mobile browser extension popup windows.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions