Confusion about Safari Extension vs. Safari App Extension

I'm having trouble finding info on the reasoning, timing, and info on the transition from the old way of creating a Safari Extension to the new Safari App Extensions. I'm curious if someone could point me to an official post about this or post it here? My main questions are:


  1. Are Safari Extensions officially deprecated in favor of Safari App Extensions?
  2. If yes, how soon do existing Safari Extensions need to be transitioned to a Safari App Extension? AKA: How long until my Safari Extension breaks or is no longer supported for new users?


Some background: I'm a web developer and would like to create a new version of my Safari Extension. I see the "suggested" way of doing this is now to create a Safari App Extension in Xcode, which requires building the extension primarily in Xcode and involves learning Swift (or Objective-C). This seems like a massive hurdle compared to Chrome, Firefox, and Opera who all support the same WebExtensions API. I'm wondering if it's worth the trouble of building a completly separate app extension for Safari, or if we can continue using the Safari Extension builder?

Did you ever find an answer to this? I was just browsing the Safari App Extension documentation and noticed the same problem. I did a Google search on SFSafariTab "pinned" and it came back with exactly one result - a comment in a diff file comparing SFFoundations.h versions as it pertains to the

getContainingWindowWithCompletionHandler
method:


+/// This calls completion handler with the window containing this tab. If the tab is pinned, the window is nil.
+- (void)getContainingWindowWithCompletionHandler:(void (^)(SFSafariWindow * _Nullable window))completionHandler SF_AVAILABLE_MAC_SAFARI(12_1);


This is what caught my attention: If the tab is pinned, the window is nil

It looks like Apple added some API for Safari extensions in macOS 10.14.4 / Safari 12.1. There is now a -close method on SFSafariTab and SFSafariWindow. So there may be some progress.

Safari App Extension just useless compared to regular extensions. But moreover, there are no tutorials on how to use this. How to set up a development environment. Honestly, It's the horrible developer experience. Even on this forum, you can't get answers on simplest questions.

I completely resonate with the sentiments in this thread.

I have a safari web extension (built in the legacy approach by porting over JS code from the chrome extension) and then it prompts the user 5 different clicks to enable permission for allowing the extension to access the web pages. After that, it has a big yellow warning sign saying that the extension can read their passwords and credit card info which immediately scared off my users and they uninstalled.

And the only way to resolve this is, guess what, to build safari app extension in xcode from scratch.

The fact that this forum is quite inactive and there are just not enough support documents on how to build for Safari makes me question how much Apple wants to grow Safari usage.

Confusion about Safari Extension vs. Safari App Extension
 
 
Q