この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、
断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。
Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではない ことに注意してください。
現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。
順次、修正していく予定ですのでしばらくお待ちください。
もずはっく日記(2009年12月)
2009年12月2日
って、全部Windowsの問題だな。
主にクラッシュバグはcrash reportの上位ランカーが排除されていくので、テスターが必然的に多いWindowsのバグがよく見つかっている、というだけだと思います。
クラッシュレポートには、全くコメントを添えない人が大半ですが、ダンプから単純にクラッシュを回避できる場合はその対応がとられます (たとえば単にnullチェックを追加するだけ等)。
ですが、これはクラッシュしなくなる、というだけでバグの本当の原因が排除されていないかもしれません。たとえば、nullで来るはずのないパラメータがnullだった場合、その呼び出し元に本来の原因があることになりますが、XPConnect経由で呼び出しパターンが絞り込めない場合、ダンプから判断できなくなってしまいます。
是非、日本語ででも良いので再現した状況、手順等をコメントに書いておいてください。日本語を読める開発者は幸い、増えていますので他にヒントがない場合、誰かに問い合わせが来て、対応可能だと思います。
2009年12月12日
Windowsのみ、Google Street Viewを利用した後、Google Mapの上で右クリックが使えなくなる、というバグです。他のwidgetに一度フォーカスをあわせると問題が無くなる、という条件付きです。
呼ばれた時にはrocがすでに原因を突き止めていましたが、コンテンツがDOMツリーから削除される時にwidgetのIMEの状態をきちんと変更していないのが原因でした。
3.6 b5では修正済みです。
苦しみましたが、再度修正パッチを入れました。
最終的には正攻法での修正になっています。javascriptでfocus
メソッドを呼んだりした場合に、他のdocument
や、chrome
がフォーカスを持っていた場合にフォーカスは移動しなくなりました。ただし、document.activeElement
は変更されることに注意してください。
overflow
がvisible
以外のボックス内のテキストからマウスで文字列を選択し始めたとき、そのボックスより外側に選択範囲を広げられない、というバグです。
番号からしても最初期からあったバグですが、ちょっとイラっとさせられることがあったので修正してみました。そんなにややこしいものでも無いのですが、なぜこれが放置されていたんでしょう……
2009年12月18日
Geckoが、WM_IME_REQUEST
のIMR_DOCUMENTFEED
に対応しました。
これは何かというと、WindowsのIMEがGeckoで現在編集中のテキストの段落のテキストを取得できるようになります。IMEはこれを利用して変換精度を高めることができます。
例えば、「さく」という語を変換する場合、私の辞書の学習内容だと、「作」が変換の第一候補として出てきました。
ですが、キャレットの前に「布を」とある場合、「裂く」が、
キャレットの前が「花が」だと、「咲く」が、
このように的確な候補が提案されることになります。
もちろん、GeckoがIMEに何らかの指示を出している訳ではないので、IME側の対応が必要になりますが、MS-IMEはデフォルト設定でこれに対応しています。
ATOKの場合は、「入力・変換」タブの、「変換候補」にある、「カーソル位置前後の文章を参照して変換する(B)」という設定を有効にする必要があります。
2009年12月19日
Bug-org 42676 のregressionです。
このバグでHTMLエディタのコードを見ていると、本来のHTMLの構造を意識しすぎていて、XHTMLのことをあまり考えていないので、似たようなバグが多々ありそうな感じがします。
Nokia N900のソフトウェアキーボードから文字が入力できない、というバグです。
N900のソフトウェアキーボードはWindowsのATOKの文字パレットと同じで入力時にアプリケーションからフォーカスを奪ってしまう特殊なものの様です。
すでにBug-org 519913 で作業し、原因は分かっていたのですが、Focus refactoring、もしくはその関連バグのregressionですべてのウインドウがdeactiveな時、すべてのキーイベント、IMEイベントがPressShell内で捨てられている、というのが原因でした。
Bug-org 519913ではもう一つ、より危険な修正も含んでいたので、この時期に1.9.2 branchでの修正許可を得るためにFirefox (Fennec)全体がdeactiveな場合にのみ処理を追加するようにしています。この修正で、Firefox 3.6でもATOKの文字パレットのようなフォーカスを奪うソフトウェアキーボードが全プラットフォームで再び利用可能になっています。
この時期の修正としてはかなりのものですが、修正したバグの発生状況からして、ほとんどの拡張には影響は無い、と思われます(テスト用のnsIDOMWindowUtils::SendKeyEvent()
を利用している変なものがあれば影響はゼロではありませんが)。
ちなみに、BeltznerはStuartにあきらめモードでまたか、もう疲れたよ、みたいなこと言ってましたのでFirefox 3.6のリリースには相当苦しんでるようですね。
2009年12月20日
風邪
初回投稿日時: 2009年12月20日21時31分57秒
カテゴリ: 雑談
固定リンク: id=2009122000
SNS:
(list )
完璧に風邪ひいてしまいました。
2009年12月21日
Bug-org 532422の修正 によるregressionです。なぜかtrunkでのみ発生してます。
Gmailはメールの作成フォームでiframeを利用しているのでgmailを使う人には実用に耐えないビルドになっているので注意してください。フォーカス移動によって使えるようになるケースもありますが、gamilではそれもうまくいかないようです。
2009年12月29日
修正終わっています。
原因はパッチをみて分かるとおり、ただのミスでした。
2009年12月30日
なぜかIMEまわりのコードからどんどんnsEditorまわりのセキュリティバグに召喚されるように……エディタまわりはあまり理解できないので勘弁して欲しいです。これもクラッシュしないようにしただけで、エディタ的にOKなのかどうか全く不明です。hgのログをみていても、エディタのモジュールって今誰が管理しているのか全く分からない状況ですね。
サイドバー
日記内のナビゲーション
Twitter