元々このバグは、windowlessモードのFlashのプラグインでドイツ語のキーボードレイアウトを使っても、一部のOEMキーでは本来の文字とは異なるものが入力される、というものでした。
Bug 6302の修正でキーボードのネイティブイベントを無加工でプラグインに伝達できるように修正してからGecko側では修正が終わっていましたが、なかなか、対応したバージョンのFlash Playerが出ませんでした。そのため、バグを閉じ忘れていた間にすぐに似たようなバグが再発し、このバグ上で対応することになりました。
新しいバグは、AltGrを使うと入力できない、というもので、また、IMEも未確定文字列が表示できなくなっていました。
原因を調べると、Bug 6302で追加したGecko内部イベントのプラグインイベントが、常にウインドウ最上位のXULのドキュメントに届いていて、コンテンツのプラグインには届いていませんでした。どうも、widget-removalによって、今までは必要のなかった、フォーカスを持つドキュメントへのリダイレクトが新たに必要になっているようです。
このため、一行のみのパッチでシンプルに修正できたので、これからFirefox 5や、Firefox 4でも修正できないか、ドライバに交渉してみる予定です。
fantasaiからの指摘で発覚したバグで、-moz-text-decoration-colorと-moz-text-decoration-styleはtext-decorationを後から指定した場合にリセットすべきだ、というものです。
CSS3では、text-decorationはロングハンドから、ショートハンドに変更され、text-decoration-lineプロパティ、text-decoration-styleプロパティ、text-decoration-colorプロパティ、それからblink値が列挙されることになります。このため、これらのサブプロパティの値は全て、text-decoration: underline;といった指定があった場合にリセットされなくてはいけません。この修正が間に合わなかったのが、Firefox 5からはバックアウトされた理由です。
このバグの修正で、-moz-text-decoration-lineを実装しました。ただし、値は、underline、overline、line-throughのみで、cancel-*は実装していません。これらの値はCSS 2.1に準拠したtext-decorationの描画を実装しなくては不可能だからです(GeckoもWebKitもCSS2準拠で、CSS2.1の描画方法にはまだ未対応)。
また、blink値をショートハンドプロパティに直接指定する、というイレギュラーな仕様はそのままではGeckoは実装できないので、既にCSS3では没になったプロパティをそのままプレフィックス付きで実装しました。-moz-text-blinkで、noneとblinkをその値にとります。
つまり、text-decorationプロパティはGeckoでは、-moz-text-decoration-line、-moz-text-decoration-style、-moz-text-decoration-color、そして-moz-text-blinkのショートハンドプロパティになりました。
ただし、いくつか、仕様に反した挙動をとることで他のブラウザとの互換性を維持しているので、安心してください。
まず、text-decorationは、-moz-text-decoration-styleと-moz-text-decoration-colorの値を指定していても無視します。というか、指定されていると不正な値と見なし、その宣言自体が無かったことになります。バグのサマリにあるように、単にこれらの値はtext-decorationプロパティの宣言があると、その時点で一旦リセットされるだけです。
次に、text-decoration: none noneや、text-decoration: underline none、text-decoration: none blink等といった、none指定時に他の値がある場合には引き続き、無効な値として扱っています。つまり、Webデザイナから見れば、text-decorationは引き続き、-moz-text-decoration-lineと、-moz-text-blinkのショートハンドプロパティには見えません。
最後に、getComputedStyle()を利用してtext-decorationの算出値を取得する場合、本来であればショートハンドプロパティは常に空の文字列を返すべきなのですが、互換性のために今までと同じように、underline、overline、line-through、blinkの組み合わせか、noneを返します。これは明確な仕様違反ですが、おそらく、仕様の方が変更になるのではないかと思います。ただし、-moz-text-decoration-styleや、-moz-text-decoration-colorを使用し、初期値とは異なる値が指定されていた場合、その作者はCSS3のtext-decorationを理解していることになりますので、この場合には算出値は仕様通り、空の文字列を返すことになります。
最後の一文は、serializeの部分の動作の仕様でした。ただ、懸念があるのでdbaronと相談してみます。