griffin-stewieの日記

2008-05-03

[][][]SafariSIMBLプラグインソース

ソースが公開されている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 な PraggerYapra を作られているyuanyingさんです。

SafariTabs

タブのアンドゥ、起動時のタブの復元、新規ウィンドウリンクをタブで開くようにするSIMBLプラグインです。

斜め読みした程度ですがソースに丁寧なコメントが書かれています。

コード量は結構多い感じですがこのコメントのお陰で理解しやすそうです。

個人的にはビルド用のシェルスクリプトなどの開発補助の部分に興味がわきました。

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


まとめ

全体的にmethod swizzlingを使っているプラグインが多いようです。海外ではそっちが主流なのかな?

poseAsClassは今後使えなくなるようですし、method swizzlingを使う方がこれからはいいかもしれません。

他に特に日本人が作ったSafari向けSIMBLプラグインソースが公開されているものがあったら教えて下さい。

hidekihideki 2008/05/03 23:15 SafariGesturesありがたく使わせていただいています。

一覧にあったForgetMeNotですが、”undo close tab”(閉じたタブを順に開き直す)という機能があるのですが、safari 3に対応していないので使えず、他のエクステンションにも無い機能で、あると便利だと思っているのですが、SafariGesturesで実装していただく事はできますでしょうか?

griffin-stewiegriffin-stewie 2008/05/03 23:50 > hidekiさん
SafariGesturesを使っていただいてありがとうございます。

”undo close tab”(閉じたタブを順に開き直す)ですが、
SafariTabs (このときのエントリで触れています http://d.hatena.ne.jp/griffin-stewie/20080324/p1)
で同等の動作が可能だと思います。
設定にコツがありまして、(日本語環境を前提にしています)
SafariTabsをインストールし、SafariTabsの設定で「Enable tab undo support」をオンにします。
そして、適当にタブを開いている状態で一つタブを閉じた直後にSafariGesturesの設定パネルを開いて
コマンドを追加して下さい。
「編集/取り消す - タブを閉じる」というコマンド名になっていればOKです。
僕の設定パネルはこんな感じです(http://f.hatena.ne.jp/griffin-stewie/20080422125700)

ただ、SafariTabsには空のタブを閉じるとUndoが効かなくなるバグがあります。
他にも個人的に不満がある部分があるので、もしかしたら同等の機能(オレオレ仕様)のプラグインを作るかもしれません。

と言うことで、とりあえずはSafariTabsを一度試してみて下さい。

hidekihideki 2008/05/05 01:28 参考情報ありがとうございます。早速SafariTabs試してみました。
確かにタブを復活させる事はできましたが、ご指摘の通り、空タブを閉じると前の物が戻せなくなってしまうようです。

やはり和製の方が細かいところまでちゃんと作っていたりで安心感もありますので、もし大変でなければSafariGesturesでタブ復帰もできれば最高です。

プロフィール

griffin-stewie

griffin-stewie

遂にプログラマの端くれに。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には一切関係ありません。