Safari 10 Brings Native App Extensions
Daniel Dilger (via Dave Mark):
Like previous App Extensions, the new architecture defines a broad Extension Point for Safari that allows third party developers to add new functionality to Safari, both to read and modify web page content (such as translating text into another language) and to communicate back and forth with a native app to integrate app data into Safari or to get web data into an app.
Developers can extend the Safari user interface by adding a toolbar button to execute a command or display a popover window, add a contextual menu item, inject a style sheet that alters how web pages are presented (such as modifying fonts used or text sizes), or inject JavaScript that changes how a page behaves or enables it to communicate with the app extension.
[…]
More importantly, the new App Extensions architecture enables developers to distribute Safari Extensions as part of their app through the App Store.
Safari App Extension Programming Guide:
Safari app extensions are available in OS X 10.12 and later and in OS X 10.11.5 when Safari 10 is installed. Using a Safari app extension, you can add new functionality to Safari, read and modify web page content, and communicate with your native application to integrate its content into Safari or send web data to your app.
Safari app extensions are written using a combination of JavaScript, CSS, and native code written in Objective-C or Swift.