Home > Latest topics

Latest topics > FUELが酷すぎる

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

FUELが酷すぎる - Apr 03, 2008

Firefox 3のFUEL、調べれば調べるほど酷さが浮き彫りになってくる。norahさんが「これはひどい」と言ってた意味を! 「心」でッ! 「理解」したッ!! いやもうほんと酷すぎます。XULとJavaScriptとXPCOMが入り乱れてる酷い現状を何とかしようとして作られたはずなのに、それで出てきた物が輪をかけて酷いなんて、悪夢だ……

正直、こんな物の使い方の解説を書くのは犯罪じゃないかって気がするよ。使い方とか誰にも知られないまま、ひっそりと廃れるかひっそりと改善されるのを待つか、どっちかにしたほうがいいって。まじで。

例えばこんな世界を想像してごらん。

var listener = new EventListener();

var reference1 = document.getElementById('item');
reference1.addEventListener('click', listener, false);

var reference2 = document.getElementById('item');
reference2.removeEventListener('click', listener, false); // ここでエラーになる。

alert(reference1 == reference2); // false

これが実際に起こるのがFUELの世界なんだぜ……

実例。
var reference1 = Application.extensions.get('myextension@mydomain');
reference1.storage.set('privateValue', 'someData');

var reference2 = Application.extensions.get('myextension@mydomain');
var val = reference2.storage.get('privateValue', 'defaultData');
alert(val); // says "defaultData"

alert(reference1 == reference2); // false
こんな感じだから、Extensionが持ってるstorageプロパティはセッションストレージとしては全く役立たずです。グローバルなApplication.storageしか使い物にならない。

誤解してた。Extensionとそのsotrageプロパティの場合は問題ないようだ。でもWindowやBrowserTabへのイベントリスナの登録はやっぱり問題あり。こういう風に「どの場合は問題なくて、どの場合は問題ありなのか」が場合によって異なるというのも非常に困る。

もちろんこの状況でも問題を回避する方法はあるけど、その方法の意味を理解するには、処理系の中で何が起こってるかが分かっている必要がある。そういうことが分からなくても気楽に書けるのがLightweightLanguageのいいところなんじゃないのかー!

なお、「回避する方法」というのは例えばこんな感じ。

function EventListener() {
  this.init = function(aTarget) {
    this.target = aTarget;
    this.target.addEventListener('click', this, false);
  };
  this.destroy = function() {
    this.target.removeEventListener('click', this, false);
    this.target = null;
  };
  this.handleEvent = function(aEvent) {
  };
}

var listener = new EventListener(item);
listener.init(document.getElementById('item'));

// 終了間際に実行
listener.destroy();
分類:Mozilla > XUL, , , , , 時刻:12:05 | Comments/Trackbacks (1) | Edit

Comments/Trackbacks

no title

根本的におかしい以前に、肌に合わなさそうで残念です。

jqueryがfirefoxに組み込まれる、みたいなのをWEB+DB PRESSのインタビューで読んで、
そーゆー層が増えていくんだ、と思っていたのですが。

XPCOMまわりが一番つらいのに。

Commented by hot_coffee at 2008/04/04 (Fri) 01:01:47

TrackBack ping me at


の末尾に2020年11月30日時点の日本の首相のファミリーネーム(ローマ字で回答)を繋げて下さい。例えば「noda」なら、「2008-04-03_fuel.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

最近のコメント

最近のつぶやき