RSS Menu Extension For Safari



  • While we wait, you can use the RSS Button for Safari extension to discover and subscribe to RSS, Atom, and JSON feeds from within Safari to most desktop or online RSS news readers.
  • We're always listening at support@feeder.co The best RSS Feed Reader extension for Chrome, Firefox, iOS and Android. SUPPORT US BUILDING FEEDER BY GETTING FEEDER PRO: - Instantaneously see when new posts are added to one of your RSS and Atom feeds - Easily subscribe to new RSS/Atom feeds by clicking the browser icon.
  • Your customizable and curated collection of the best in trusted news plus coverage of sports, entertainment, money, weather, travel, health and lifestyle, combined with Outlook/Hotmail, Facebook.

Motivation

Safari

Browser extensions have reached a certain momentum, hence Google announced a more strict review process and to remove extensions from the store by August 27th, 2020 which don’t comply to these new rules.

In the Safari app on your Mac, choose Safari Safari Extensions, then browse the available extensions. When you find one you want, click the button that shows Get or the price, then click the button again to install or buy the extension. If Safari finds a feed, RSS appears in the address bar. If you want to be notified when new feeds arrive, go to Safari preferences (found in the Safari menu), click RSS, and select how often to check for RSS updates (every 30 minutes, every hour, every day, or never).

With an extensions based on the Mozilla WebExtension API, you can target all Chromium based browsers such as Chrome, Opera and Edge as well as FireFox. To also target Safari users, you require a dedicate implementation: a Safari App Extension. If you have not yet working in the Apple developer ecosystem, this is kind of a tough step, as there are multiple hurdles to take:

Basis science driver download for windows 10. You need

  • a Mac and XCode for development, as the App which you have to ship is compiled code, which will be distributed via the Apple App Store.
  • a Developer Certificate for signing your code (comes for 99 EUR).
  • to rewrite part of your existing extensions, if you not solely relying on content scripts.

To get some basic insights, I recommend working through these two tutorials before you start with your own Safari App Extension:

  • Apple: Add, build, and enable a Safari App Extension
  • Ulrik Lyngs: How to Build Safari App Extensions

Differences between Mozilla and Safari Architecture for Extensions

In a browser extension based on the Mozilla API there are different components, which you might need to port to Apple’s platform.

  • Content Script: The content script(s) can be used almost unchanged. Safari also support these modules. But it wouldn’t be Apple if there is no difference to the standard. So there is no chrome or browser Object, but safari, which is slightly different.
  • Background Script: The bad news is, you have to completely rewrite this functionality in Swift (or ObjC), as this functionality needs to be part of the native component. The good thing is, native code is fast, easy to test and Swift has very good support thru XCode. The background script will be replaced by the Extensions Handler.
  • Popup: Yes, you can have Popups in Safari, if the App Icon in the toolbar of the browser is pressed, but it also requires a native implementation. (with a Storyboard). The correct term in Apple’s world is popover.
  • Options Page: No, not supported. This functionality require you to implement this in a separate module as part of your native macOS application. (incl. Storyboards)

My Learnings

Common Code Base

Try to keep the codebase between Chrome and Safari as similar as possible for the content scripts. Refactor your existing content script, to have the browser specific functionality in separate classes/files. This is mainly related to the communication between the Content Script and the Extensions Handler (which is not present in Safari).

In order to figure out, whether your content script is running on safari or in a chrome environment you can use:

TypeScript Support

If you are working with TypeScript there is a type definition given for the safari Object. Unfortunately it does not contain the method signatures for safari.extension.* (but at least safari is now recognized).

Dealing with the Extension Handler

If your content script is sending a message to extension handler, the message will trigger the method messageReceived where you can process the data. For each message there will be a new instance of the extension handler, so you cannot share information between the extension handlers unless you make your variables static.

Project Targets

Extensions for safari

Rss Extension Edge

The project for a Safari App Extensions contains at least two targets:

  • The native macOS application which is the container for distribution.
  • The Safari App Extension which will integrate with the Browser.

Do not remove one or the other. Your App Extensions will neither run nor will it pass Apple’s review process.

Clean up generate code for native macOS App

If you are focusing on the Safari App Extension, the native macOS application will have almost no functionality. Still you might want to have a look at the application, as it is in the user’s application folder and of course it is part of the review process.

  • Remove unused Menu Items (the auto generated view has a “Help” menu, without content)
  • In the macOS app is a link to open the App Extensions tab in Safari. Make sure it works. (might be broken, if you refactor your application naming).
  • Stick to the interface Guide Lines (the auto generated view does not have a title bar).

Remove headers from images, else the build breaks

You can use Vector graphics (PDF) or bitmaps (PNG) as toolbar icons. If you add images you have to remove the header for previews in Finder using xattr -cr on the command line. Else you will end up with Command CodeSign failed with a nonzero exit code.

Side note: Toolbar icons have only one color and a transparent background.

Creating a Popover

To create a popover four steps are required.

  • In Info.plist, in the subtree SFSafariToolbarItem change the “Action” from “Command” to “Popover”.
  • In the build target for the extension, in “General” select the XIB File for the Main Interface.
  • You require an according implementation of the Controller; but there is a standard implementation as part of the generated XCode Project.
  • In the Extensions Handler overwrite the popoverViewController method:

AppStore Review

RSS Menu Extension For Safari

A short view with english audio explanations will help the reviews to better understand the functionality of your extensions. You can simply upload it to AppStore Connect. Screenshots of the Extensions must be made with Safari.

Now that Safari 6 is available as part of Mountain Lion 10.8, and as a software update for Lion, I can finally explain the rumblings I made months ago about an extension facilitating feed subscription directly from Safari.

Rss Feed Extension

The motivation behind my foray into Safari extension development was my early adoption of Safari 6 during the beta phase. I noticed they had removed the long-standing, built-in “RSS” button near the URL bar. This button makes it easy to subscribe to an RSS or Atom feed for a blog, or any other site that offers such a feed. Alti-2 usb devices driver download for windows.

Bing Safari Extension

I’m disappointed by Apple’s decision to remove the button, but when life hands you lemons …

My beta-quality, more-or-less unsupported Subscribe to Feed extension adds a handy button to the toolbar that, when a page offers RSS or Atom feeds, can be clicked to easily open the feed:// link, which should automatically open your favorite news reader.

I hope this extension fills a void for those of you missing the beloved RSS button from Safari 5 and earlier.

Updates:

Rss Menu Extension For Safari Download

  • Since I posted this on Wednesday (the day Mountain Lion 10.8 was released), the response has been overwhelming. I didn’t realize there would be so much interest in restoring the functionality of the Safari RSS button.

    The interest has been so strong that more than a couple people have installed the extension apparently unaware of its purpose. The gist of the extension is to make it easy to subscribe to RSS and Atom feeds in an external application, separate from Safari. For example, it will open in NetNewsWire, Reeder or any other application on your Mac that claims to support “feed:” style URLs.

    Some folks who are just getting in to desktop RSS readers are discovering they don’t have a “default app” setting on their Mac, and Apple no longer provides a simple UI inside Safari for setting the default. The best solution I know for this issue is to download and use the venerable RCDefaultApp to set a default RSS reader for your Mac.

  • A number of users who use Google Reader through the browser would like it if there were a way for this extension to automatically subscribe in Google Reader instead of through a Mac client. I’m not sure exactly how this would work but I bet it’s possible with a preference in the extension that would offer the ability to open a Google Reader URL for subscribing. This is a little ambitious though, so if you want this feature and happen to be able to code Safari/JavaScript solutions, please send me a proof of concept for subscribing to Google Reader from JavaScript on a web page, and I’ll see if I can integrate it into the extension.
  • On August 2, 2012, I released Subscribe to Feed 1.0b4, addressing a number of issues from the initial release.