Home > Latest topics

Latest topics > Google ToolbarとPopup ALT Attributesのコンフリクト

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

Google ToolbarとPopup ALT Attributesのコンフリクト - Sep 25, 2005

冗談じゃないっすよ。これを以て「Piroの作る物はやっぱ穴だらけだな」とか言われるだなんて。実装見たら明らかじゃないすか。今回の問題はどー見たってGoogle Toolbarの横暴が原因ですよ。

Google Toolbarの野郎、こともあろうにイベントハンドラそのものを上書きしくさりやがってる。こちとら可能な限り元のコードに影響を与えない方法を考えてあれこれ対策してるってえのに、そんな配慮のカケラもない。そんなの知ったこっちゃないね、俺様は天下のGoogle様なんだからFirefoxのコードを引っかき回したって許されるんだぜ、そんな驕りが窺い知れるってもんですよ。

ああムカツク。

――と、よく調べずにキレてたんだけど、どうも違う原因っぽい?

――ちゃんと調べてみたら、やっぱりGoogle Toolbarが悪者だということがはっきり分かった。

元々ツールチップを表示する処理は、FillInHTMLTooltipという関数で定義されている。この処理を乗っ取るにはいくつか方法があるけれども、破るべきでない自明の原則がある。それは、「拡張機能で追加した処理が失敗したり、何もしなかったりしたときには、元のFillInHTMLTooltipの処理に必ずfallbackする」ということだ。

Popup ALT Attributesの場合、処理の流れはこんな感じになっている。

  1. Popup ALT Attributesが処理をフック
    1. 画像に代替文字列がある場合→ツールチップとして表示→処理を終了。
    2. (画像に代替文字列が無い場合)元のFillInHTMLTooltipに処理を引き渡す。
    3. 元のFillInHTMLTooltipが処理を行う。
    4. 処理を終了。

Google Toolbarの場合はこうだ。

  1. Google Toolbarが処理をフック
    1. Google Toolbar基準で「無視して良い条件」に当てはまっている場合→処理を終了。
    2. Google Toolbarの処理を行う。
    3. 別の関数に処理を引き渡す。
      1. 元のFillInHTMLTooltipに処理を引き渡す。
      2. 元のFillInHTMLTooltipが処理を行う。
    4. 処理を終了。

強調した部分がコンフリクトの原因。本来なら、ここで処理を終了せず元のFillInHTMLTooltipに処理を引き渡さなければならないところを、そのまま終了してしまっている。望ましいGoogle Toolbarの処理は、以下のようになる。

  1. Google Toolbarが処理をフック
    1. Google Toolbarの処理を行う。
    2. 処理に成功した場合→処理を終了。
    3. (処理が行われなかった場合)元のFillInHTMLTooltipに処理を引き渡す。
    4. 元のFillInHTMLTooltipが処理を行う。
    5. 処理を終了。

ええ、確かに、天下のGoogle様ですからね。いくら向こうに非があったとしても、僕にできることは、向こうに合わせてPopup ALT Attributesの仕様を変更することだけですよ。

――とキレてたんだけど、よくよく見返してみたら、自分も同じ過ちを犯していたorz

うわー恥ずかしー

――というわけで更新。悩みの種が一つ減ってスッキリした。これが今流行りのアハ体験ですね!(違)

分類:Mozilla > XUL, , , , , 時刻:14:15 | Comments/Trackbacks (0) | Edit

Comments/Trackbacks

TrackBack ping me at


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

Post a comment

writeback message: Ready to post a comment.

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

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のつぶやき