5

I want to develop a Safari plugin using Xcode, and I want to access the bookmarks. What API should I use?

Since I'm asking, are there any tutorials out there for plugin development under Safari?

apaderno
  • 28,547
  • 16
  • 75
  • 90
Yury Kaspiarovich
  • 2,027
  • 2
  • 19
  • 25

4 Answers4

6

Safari plugins are well-supported, both for the Netscape-style NSAPI and the 'native' Cocoa plugins. There are dozens, if not hundreds, of official Safari plugins.

However, not everything you might want to do is possible through plugins. I'm not clear if accessing bookmarks is possible.

There are lots of other docs on Safari plugins at the Safari Dev Center and Reference Library, including WebKit Plug-In Programming Topics.

6

Safari 5 allows to create extensions in a similar way of what Google Chrome allows. See Safari Extensions Development Guide: About Safari Extensions.

On Mac OS X Lion, the WebKit plug-in API is not compatible with the new process architecture adopted in Mac OS X Lion, and it is being deprecated. Plug-in developers currently using the WebKit plug-in API are recommended to adopt the Netscape plug-in API in order to be compatible with Safari on Mac OS X v10.7.

Cœur
  • 37,241
  • 25
  • 195
  • 267
apaderno
  • 28,547
  • 16
  • 75
  • 90
2

Since you want to write a plugin for Safari, you might also be interested in reading about developing plugins for webkit.

Cœur
  • 37,241
  • 25
  • 195
  • 267
dlamblin
  • 43,965
  • 20
  • 101
  • 140
1

There is no documented or Apple-supported way to create plug-ins for Safari.

That hasn't stopped many people creating add-ons, as you can see by browsing through Pimp My Safari.

Many of the plug-ins use SIMBL to load themselves into Safari, after which you can mess around with Safari's insides to do whatever you want. See the Armchair Guide To Cocoa Reverse Engineering.

One thing is for sure—it won't be a walk in the park!

Good luck =]

apaderno
  • 28,547
  • 16
  • 75
  • 90
Nick Dowell
  • 2,030
  • 17
  • 17
  • Now I want to make a safari plugin with simbl , and I have read the Armchair Guide To Cocoa Reverse Engineering. but when implement the method - (void)load; how to use the plugin to get the safari DOM object ,just like PIC or Flash URL ? Thank you very much ! – jin Oct 23 '09 at 06:44
  • 2
    The first line of this is wrong. http://developer.apple.com/mac/library/documentation/InternetWeb/Conceptual/WebKit_PluginProgTopic/WebKitPluginTopics.html – dlamblin Nov 19 '09 at 07:57
  • It's not that simple; there are 2 distinct types of browser plug-in... 1. The kind of plug-in that can be embedded in a web page (e.g. flash) - this is, as you say, supported and documented. 2. The equivalent of firefox extensions / 3rd party toolbars for ie. This is what the original question seems to be about, since access to bookmarks was mentioned. This kind of plugin is not officially supported or documented, and requires a bit of reverse engineering. An example of this would be Inquisitor - http://www.inquisitorx.com – Nick Dowell Nov 19 '09 at 09:41