この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。

現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。

もずはっく日記(2006年4月)

2006年4月3日

仕事再開は明日以降 初回投稿日時: 2006年04月03日00時11分45秒
カテゴリ: 雑談
固定リンク: id=2006040300
リンク元: 0件
SNS: (list)

ぐでぐでに疲れているので仕事再開は明日以降になります。すいません。

2006年4月4日

2006年4月5日

Bug 5044 Win9x/Me/NT4サポートは不要 初回投稿日時: 2006年04月05日06時55分13秒
カテゴリ: Mozilla Core
固定リンク: id=2006040501
リンク元: 4件
SNS: (list)

ついにWin9xのサポートが終了した。

えむけいさんのおかげでコードがかなりコンパクトになっている。

今夜のTrunkビルドからはWin9xでは非Cairoビルドであっても使えないので注意。

2006年4月6日

2006年4月11日

Bug 4170 [Mac] 日本語の署名ファイルをShift_JISで作成すると文字化けする / [All] 署名にUTF-8を使えるようにすべき 初回投稿日時: 2006年04月11日04時46分35秒
カテゴリ: Thunderbird
固定リンク: id=2006041101
リンク元: 0件
SNS: (list)

Macで署名ファイルを常にUTF-8で作る必要があったバグを修正した。

この修正で、どのような環境でもデフォルトの文字コードと、UTF-8の双方が署名ファイルに使えるようになった。

2006年4月12日

Bug 4986 Mozilla外にフォーカスが移る場合はIMEを強制確定させるべきではない 初回投稿日時: 2006年04月12日22時56分13秒
カテゴリ: Mozilla Core
固定リンク: id=2006041200
リンク元: 0件
SNS: (list)

IMEの強制確定処理の呼び出し位置をエディタからESMに移動するリファクタリングが完了した。Caminoではこのバグの修正により、未確定文字列がある状態のままフォーカスを移そうとするとクラッシュする模様。クラッシュに対する安全策のコードは入れているのだが、発生しているようなので何かバグ持ちなのは確かな模様。Caminoに関する問題はBug 5091で対応予定。

Bug 5059 [GTK2] IME APIの実装 #2 (ResetInputState/CancelIMECompositionの実装) 初回投稿日時: 2006年04月12日23時01分05秒
カテゴリ: Mozilla Core
固定リンク: id=2006041201
リンク元: 0件
SNS: (list)

Bug 4986の修正で共に修正された。これでLinuxのIMの制御処理は完成した。

IMのOn/Offの切り替えはできないままだが、これを実現する案は私には無い。もし、実現可能な案があれば新しいバグをたてて教えて欲しい。

2006年4月20日

Bug-org 287813 nsCaret overhaul 初回投稿日時: 2006年04月20日02時30分20秒
カテゴリ: Mozilla Core
固定リンク: id=2006042000
リンク元: 0件
SNS: (list)

キャレットまわりのリファクタリングが行われて、Cairoでのキャレットの表示も改善されている。だが、いくつかregressionがある模様。

Bug-org 261929 Consider sending urls in UTF-8 by default (images/links with non-ASCII chacters not displayed) 初回投稿日時: 2006年04月20日03時15分14秒
カテゴリ: Mozilla Core
固定リンク: id=2006042002
リンク元: 0件
SNS: (list)

えむけいさんのおかげで修正されている。

現在、デフォルト設定だとクエリ以外の部分をUTF-8で送信し、それ以外はドキュメントのエンコーディングでエスケープするようになっている。これはIE6と同じ挙動。

2006年4月28日

Bug 5087 紫光拼音输入法(Unispim IME)の中文入力モードで数字が二重に入力される 初回投稿日時: 2006年04月28日02時02分16秒
カテゴリ: Mozilla Core
固定リンク: id=2006042800
リンク元: 0件
SNS: (list)

中国語のIME、Unispimで発生していたバグ。結構鬱陶しいものなのに修正されていなかった上に本家のバグ番号もかなり新しかったので中国もFirefoxユーザ、開発者は少ないのかもしれない。

とりあえず、発生していなかったGecko1.7当時と同じ条件になるようにソースを修正したが、他の国で問題が発生しないのかが非常に気がかり。もし、キー入力にregressionを発見した場合、是非一報が欲しい。

Bug 5020 [Cairo] フォーカスのアウトラインがドットで表示される 初回投稿日時: 2006年04月28日02時07分34秒
カテゴリ: Mozilla Core
固定リンク: id=2006042801
リンク元: 0件
SNS: (list)

フォーカスのアウトラインを前景色で表示するように修正した。

David Baronからツッコミを入れられて、現在は正式にoutlineプロパティからinvert値を取り除く作業中

また、クラッシュするregressionがあるので注意。キーボードでフォーカス移動を多用する人はこのバグが修正されるまではTrunkは使用しない方が良い。

CairoではXOR描画ができないことによるWebページへの影響 初回投稿日時: 2006年04月28日03時08分11秒
カテゴリ: Mozilla Core
固定リンク: id=2006042802
リンク元: 1件
SNS: (list)

Gecko1.9(Firefox3に搭載予定)ではグラフィックエンジンにCairoを利用することによって、今まで修正が不可能もしくは困難だったバグを修正しようとしている(例えばページ全体のズーム機能)。

このCairoの現時点での最大の欠点がXOR描画による反転表示ができないことである。XORによる反転は、Gecko1.8まででは、キャレットとoutlineinvertに使っていたので、これらの処理の見直しが現在行われている。

現時点ではキャレットは常に前景色(テキストの色、つまりcolorプロパティ値)と同じ色で描画されるように修正されている(Bug-org 287813)。しかし、これにも問題があって、MS ゴシックの一部の漢字と相性が悪いことが分かっている(Bug 5124)。

もっとも、ここまではブラウザとしてのFirefox自体の問題でWebページのコンテンツ作者には何の非も無い話だが、次のoutlineの話はコンテンツ作者も気をつけなくてはいけない(フォーカスを示す反転した点線の矩形はoutline: 1px dotted invert;で実現されている)。

現状ではoutlineプロパティからinvert値のサポートをドロップするように話が進んでいる(Bug 5127)。invert値をサポートしない場合の規定がCSS2.1には存在していないが、CSS3では次のように規定されており、これに従う形で修正を行っている。

Conformant UAs may ignore the 'invert' value on platforms that do not support color inversion of the pixels on the screen. If the UA does not support the 'invert' value then the initial value of the 'outline-color' property is the 'currentColor' [CSS3COLOR] keyword.

currentColor値とはCSS3で定義された色で、その要素の前景色を示す。つまり、outline-colorの初期値のinvertは前景色が用いられることになり、invert値を含むスタイルシートのoutlineもしくはoutline-colorプロパティは無視されることになる。

つまり、outlineを指定していないリンクがフォーカスを受け取ると、Gecko1.9では前景色の点線で矩形が表示されるようになっている。もちろん、これはほとんどのテキストリンクでは今まで通り、無指定のままで問題は無い。(背景色と同じ前景色の隠しリンクを探しにくくなったというユーザ問題はあるが。)

問題は画像のリンクである。画像のリンクに対しても前景色をきちんと指定するのはアクセシビリティの点からは必須事項だが、実際にそこまで実践しているサイトは少ないのではないかと思う。これを徹底して、画像が表示されない時の代替テキストも、しっかりと背景色とのコントラストを確保しておかなくては、Gecko1.9上ではとても不便なサイトになってしまう。なぜなら、フォーカスがどこにあるのか分からなくなってしまうからだ。これはマウス等のポインタによるナビゲーションではあまり問題にならないかもしれないが(使っている感じでは気持ち悪いが、慣れの問題かもしれない)、キーボードでアクセスしている人にとっては致命的な問題である。

キーボードで操作する人なんて少ないだろうから、知らんという人も居るかもしれないので、書いておくが、常にマウスが使える環境とは限らないノートPCからのアクセスではキーボードナビゲーションは重要である。決して極々マイナーなユーザの話では無いことに注意して欲しい。(流行のblogのレイアウトで、本文以前に大量のリンクの上をフォーカス移動しなくてはいけないサイトが大量にあることから、この問題はおそらく真剣に考えている人が少ないかと思う。)

また、outlineを直接指定して、対応するという方法もあるが、これではアクセシビリティに問題を抱えたままである可能性があるのでお勧めできない。Webサイトを作成している人はこれを機に、是非画像を無効にした状態での表示を確認しておいて欲しい。また、単純に画像をオフにすると、背景画像も消えてしまうので、背景画像と、背景色が大きく異なっている場合(もともとこのような状況は、かなり好ましくない状況であるが)には、実際にGecko1.9でのテストが必要になるだろう。

それから、この問題自体は、Geckoのアクセシビリティに関する大問題なので、アクセシビリティの担当が別の良い方法が無いものか検討している段階でもある。最終的にどうなるかはまだ流動的であることにも注意しておいて欲しい。

Bug 5128 [GTK2][topcrash] GTK2のnsWindow.cppのIM_get_input_context()でクラッシュする 初回投稿日時: 2006年04月28日03時17分45秒
カテゴリ: Mozilla Core
固定リンク: id=2006042803
リンク元: 0件
SNS: (list)

GTK2ビルドを使っている人にお願い。

GTK2で、おそらくウインドウを閉じるときにIM_get_input_context()でクラッシュすることがあるようだ。関係者は誰も再現に成功していないが、大量のクラッシュリポートがtalkbackで送信されている。

クラッシュ自体を抑制するパッチは書いたのだが、原因が分からないので、安易にこのバグを修正することで、クラッシュせずにデータを破壊するようなことがあるとなおさら困る、ということでチェックインが保留されている。

再現方法が分かる人、原因を特定できる人は是非、情報を提供して欲しい。