Home > Latest topics

Latest topics > テキストリンクのJetpack版を作ってみた

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

テキストリンクのJetpack版を作ってみた - Nov 06, 2009

いわゆる軽量アドオンであるところのJetpackについて今度の日曜のFirefox Developers ConferenceでAza氏とトークショーじゃなかったトークセッションを行うにあたって、「全くJetpackを触らないまま行くのはさすがに失礼すぎるだろ常識的に考えて」と思ったので、テキストリンクをJetpack featureとして移植してみた

以下、詰まった点。

  • Firebug使ってないからデバッグが面倒だった。
  • クリックされた箇所のURIっぽい文字列、のRangeを取得するにあたり、nsIFind(などのXPCOMコンポーネント)の支援を受けられないので、JavaScriptとDOM Rangeだけで強引に解決するのに手間取った。
  • XPCNativeWrapper同士を==で比較すると、ラップされてるノードが同じノードでもfalseになる。===!==で比較すればちゃんと意図通りに判定される。これは盲点だった。(普通にアドオンを作る時だと==で期待通りに判定されるので)今Jetpack 0.6で試したら問題なく動いた。アルェー?
  • APIリファレンスが貧弱で、何ができるのかまるで分からない。

やっつけ移植なので、URLっぽい文字列をダブルクリックしたら新しいタブを開く、という機能しかないです。そのくせ25KBもありやがる。

スクリプトの中身はぶっちゃけ普通のテキストリンクのコードのコピペです。というか、Jetpackで動かないであろう部分を削っていって残ったのがコレなんで。最後の方にちょこっとだけ、JetpackのAPIを使ってページの読み込み完了を監視する処理が入ってて、そこが本題です。

いいな、と思った点。

  • これは有り物の移植だからあんまり参考にならないけど、ゼロからスクラッチする場合を考えると、アドオンの時に比べて事前の準備が要らないので、確かに楽ではあるだろうなあ。
  • about:jetpackからスクリプトの管理を行えるんだけど、削除・再インストール・リフレッシュ(スクリプトを配布元から再取得する)まで行える。開発中は、仮登録→テスト→編集→リフレッシュ→テスト→... というサイクルになる。
    • 一旦アンインストールした物も、about:jetpack内にリストが残る。「消したけど、やっぱり使いたい」という風な心変わりがあっても大丈夫。
  • スクリプトの登録時に、自動更新のためのチェックボックスが表示される。多分自動アップデートできるということなんだろうけど、この機能はまだ試してない。(でも電子署名とか何も無いし、第三者攻撃に対する安全はどうやって確保するんだ?)
  • Firefoxの再起動無しで入れたり外したりできるのは楽でよい。気軽に試せる。
分類:Mozilla > 拡張機能 > textlink, , , , , , , , 時刻:00:12 | Comments/Trackbacks (2) | Edit

Comments/Trackbacks

同一のノードかどうかの判断

> XPCNativeWrapper同士を==で比較すると、ラップされてるノードが同じノードでもfalseになる。

"==="のtypo? というのは置いといて、そのためのNode#isSameNodeです。私は使ったことありませんが :-P

Commented by nanto_vi at 2009/11/06 (Fri) 13:44:31

no title

> "==="のtypo?

いえ、エントリ中の表記の通りです。
……と思ったのですが、いまJetpack 0.6の環境でテストしたら==でも===でも同じ結果になりました。Jetpack 0.5のバグだったんでしょうか。

Commented by Piro at 2009/11/06 (Fri) 13:58:19

TrackBack ping me at


の末尾に2020年11月30日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2009-11-05_jetpack.trackbacknoda」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

writeback message: Ready to post a comment.

2020年11月30日時点の日本の首相のファミリーネーム(ひらがなで回答)

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき