Hatena::ブログ(Diary)

Yet Another Hackadelic

2008-01-06 こちらでもあけましておめでとうございます

Sxipperが提供するOpenIDを使ったFirefox拡張はテラ便利

皆様あけましておめでとうございます。

本年もよろしくお願い致します。

さて新年初エントリはOpenIDネタから。

Sxipper*1はOpenID 2.0に対応した数少ないOP*2ですが、ここで提供しているFirefoxの拡張機能が物凄い便利です。

これはOpenIDに限った形では無いのですが、

  • プロフィールデータがローカルで暗号化されて保存されて
  • それらを任意のフォームで可能な限り入力補完してくれて
  • さらにログインフォームと思しきフォームではクリック一つでログイン出来る

といった拡張です。VeriSignもその手の拡張*3を作っていますが、余り使い勝手が良くないのに対して、Sxipperの拡張は使い勝手が良いです。

現在、シングルサインオンとセッション管理辺りに関して、工藤さんたけまるさんが非常に面白い話をしています。

RP*4からログアウトした際にOPからはログアウトされないと言う話なんですけど、この一連の流れは是非皆さんご覧あれ。

で、たけまるさんの最後の方のくだりなんですが、

それとは別に,ブラウザを拡張していく可能性を追求していかないと使え るレベルにならないかもしれません (追求されているのかもしれませんが).

たとえば,シングルログアウトのサポートはもちろん,OpenID ログイン 画面になったら半自動的にログインしたり,ログインしているユーザ名を 常に表示したりすることは役に立ちそうです.

たけまる / OpenID は「ログアウトしない」のかなぁ
に対する返信って事で。少なくともFirefoxにはそういう拡張が二つはありますよと。

参考リンク

*1スキッパーと読むそうです。via: http://twitter.com/drry/statuses/513523012

*2:OpenID Provider、前のIdPの事

*3OpenID SeatBelt

*4:Relying Party, 前のConsumerの事

2007-12-27 しゎーす

Gran Paradiso(Firefox3)とFirefox2を共存させる(OSX)

結論から言うと意外と簡単だった。

まずはProfile設定

こんな感じでProfileManagerを立ち上げます。

$ /Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager

ここで新規で新しいProfileを作ります。Firefox3用なので"firefox3"とか適当に。

新しいProfileに今までのProfileをまるっとコピー

ユーザー名zigorouならば/Users/zigorou/Library/Application Support/Firefox/ProfilesにProfileがあります。

$ cd ~/Library/Application Support/Firefox/Profiles
$ rsync -avuC xxxxxx.default xxxxxx.firefox3

ディレクトリ名は各々違うのでそこら辺は適当に。

ApplicationディレクトリのFirefox.appの名前をリネーム

$ cd /Application
$ mv Firefox.app Firefox2.app

あとはGran Paradisoをインストールする

ダウンロードはこちらからです。

2007-05-09 最近お腹痛い

MozRepl module released

先ほど反映されたようです。リリースしました。

今回は真面目にドキュメントを書いたつもりなんで、詳細はドキュメント見て頂けたらと。

podより抜粋すれば、

use strict;
use warnings;

use MozRepl;

my $repl = MozRepl->new;
$repl->setup; ### You must write it.

$repl->execute(q|window.alert("Internet Explorer:<")|);

print $repl->repl_inspect({ source => "window" });
print $repl->repl_search({ pattern => "^getElement", source => "document"});

なんて感じで使います。

pluginによる拡張が可能なのですが、pluginとは名ばかりで単純にメソッドが追加されていくだけの方式です。

もっと分かりやすく言えばCatalystのplugin形式です。

一応デフォでつけたpluginはMozReplにビルトインのメソッドで主要な物をなぞったんですけど、

今後割りと便利なプラグインでも思いついたらちょこちょこ書いて、うpろうかなと。


一応今後考えている事もあるものの、まぁそれはそのうち公開します。

2007-04-25 お腹空いて来た

MozReplのショートTIPS

ヒストリが使いたい

公式サイトにはsocatが推奨とあるけど、rlwrapのが便利。

カスタム関数を自分で定義したい

それrepl.load()で、

repl.load("file:///home/zigorou/.repl/custom.js", repl);

この場合だと多分、

with (repl) {
  // ここにロードしたスクリプトが入る
}

って感じだと思われるので、scopeに注意。

repl.home()で元のChromeWindowオブジェクトが取れるので、それを元に記述すると結構色々出来そうな予感。

repl.search()

repl.enter()でcontextを変更しないで、searchの第2引数に対象としたいオブジェクトを入れる。

repl.search(/^get/, window.top.getBrowser());

repl.enter()するとたまにおかしくなる*1ので、余り多様せずにrepl.search()はオブジェクトを指定して、

repl.look()の代わりにrepl.inspect()を直接叩く!

ってな訳で

Firebugも面白いけど、MozReplも面白いよと。さらに自分だけの拡張なんかも出来るんで、結構便利鴨。

*1:replオブジェクトが取れなくなる