読者です 読者をやめる 読者になる 読者になる

SafariのSIMBLプラグインのソース

ソースが公開されているSafari向けSIMBLプラグインをズラっと羅列してみたいと思います。
全てのソースを読んだわけではないのですが、部分的にSafariGesturesを作るときに参考にしたりもしました。

SafariWheelTab

ホイールジェスチャ機能を提供するプラグインです。
SafariGesturesを作るときのベースに使わせていただきました。
コメントが充実していて素人の僕には非常にありがたかったです。
すごくシンプルなのでどうなってるのかがわかりやすいです。

ForgetMeNot

WindowとTabのUndo機能を提供するプラグインです。
posingとmethod swizzlingを使ってhackしています。
SafariGesturesのVer0.0.4以前ではSafariWebKit)のメソッドを呼ぶのに
そのメソッドをいちいちカテゴリで追加していました。
このソースを読んで、class-dumpした定義部分だけ丸ごとぶち込めばいいことを知りました。

Keywurl

アドレスバーを検索バーとして使うSIMBLプラグインです。
これはBrowserWindowControllerとNSPreferencesをポージングでhackしています。
個人的にはこのソースの設定ファイル(plist)の読み書き部分を参考にさせていただきました。

GreaseKit

FirefoxGreaseMonkeySafari版とでもいうSIMBLプラグインです。
このプラグインはSafari自体をhackする必要がないためかポージングもmethod swizzlingも使ってません。
WebKit Frameworkが使えるって幸せに思える今日この頃。
AlertとかAboutウィンドウの出し方とかを参考にさせていただきました。

YahooSearchPlugin

検索バーをデフォルトのGoogleからYahooにするSIMBLプラグインです。
method swizzlingを調べているときにたまたま発見しました。

SafariBlock

広告ブロックするSIMBLプラグインです。
method swizzlingを使っているようです。

Middle Click Close For Safari

Safariのタブをミドルクリックで閉じることができるSIMBLプラグインです。
かなりシンプルなソースです。
method swizzlingを使っているようです。
soundscape outさん経由でしりました。

SafariRefManage

Safariリファラをコントロールするための SIMBLプラグインです。
SafariWheelTabを参考にしたらしくポージングを使って実装されています。
公開されたばかりですがこれからに期待のプラグインです。
作者は
FLVからMP3を再エンコードなしに抽出するiExtractMP3
Yet another な Pragger、Yapra を作られているyuanyingさんです。

SafariTabs

タブのアンドゥ、起動時のタブの復元、新規ウィンドウのリンクをタブで開くようにするSIMBLプラグインです。
斜め読みした程度ですがソースに丁寧なコメントが書かれています。
コード量は結構多い感じですがこのコメントのお陰で理解しやすそうです。
個人的にはビルド用のシェルスクリプトなどの開発補助の部分に興味がわきました。

soundscape outさん経由でしりました。

まとめ

全体的にmethod swizzlingを使っているプラグインが多いようです。海外ではそっちが主流なのかな?
poseAsClassは今後使えなくなるようですし、method swizzlingを使う方がこれからはいいかもしれません。
他に特に日本人が作ったSafari向けSIMBLプラグインでソースが公開されているものがあったら教えて下さい。