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

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

もずはっく日記(2009年12月)

2009年12月2日

Re: 今日のFirefox - Hg 2009113022-trunk/Linux (新秀の介の日記) 初回投稿日時: 2009年12月02日13時34分35秒
カテゴリ: Mozilla Core
固定リンク: id=2009120200
リンク元: 3件
SNS: (list)

って、全部Windowsの問題だな。

主にクラッシュバグはcrash reportの上位ランカーが排除されていくので、テスターが必然的に多いWindowsのバグがよく見つかっている、というだけだと思います。

クラッシュレポートには、全くコメントを添えない人が大半ですが、ダンプから単純にクラッシュを回避できる場合はその対応がとられます (たとえば単にnullチェックを追加するだけ等)。

ですが、これはクラッシュしなくなる、というだけでバグの本当の原因が排除されていないかもしれません。たとえば、nullで来るはずのないパラメータがnullだった場合、その呼び出し元に本来の原因があることになりますが、XPConnect経由で呼び出しパターンが絞り込めない場合、ダンプから判断できなくなってしまいます。

是非、日本語ででも良いので再現した状況、手順等をコメントに書いておいてください。日本語を読める開発者は幸い、増えていますので他にヒントがない場合、誰かに問い合わせが来て、対応可能だと思います。

2009年12月12日

Bug-org 531810 Right clicking on Google Maps broken after leaving Street View (Windows only) 初回投稿日時: 2009年12月12日13時37分31秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2009121200
リンク元: 0件
SNS: (list)

Windowsのみ、Google Street Viewを利用した後、Google Mapの上で右クリックが使えなくなる、というバグです。他のwidgetに一度フォーカスをあわせると問題が無くなる、という条件付きです。

呼ばれた時にはrocがすでに原因を突き止めていましたが、コンテンツがDOMツリーから削除される時にwidgetのIMEの状態をきちんと変更していないのが原因でした。

3.6 b5では修正済みです。

Bug 6609 Webコンテンツはchromeのフォーカスを奪えるべきではない #2 初回投稿日時: 2009年12月12日17時59分14秒
カテゴリ: Javascript Mozilla Core バグ修正
固定リンク: id=2009121201
リンク元: 0件
SNS: (list)

苦しみましたが、再度修正パッチを入れました。

最終的には正攻法での修正になっています。javascriptでfocusメソッドを呼んだりした場合に、他のdocumentや、chromeがフォーカスを持っていた場合にフォーカスは移動しなくなりました。ただし、document.activeElementは変更されることに注意してください。

Bug-org 42676 Can't drag to extend selection out of blocks with overflow:hidden/auto/scroll 初回投稿日時: 2009年12月12日18時02分26秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2009121202
リンク元: 1件
SNS: (list)

overflowvisible以外のボックス内のテキストからマウスで文字列を選択し始めたとき、そのボックスより外側に選択範囲を広げられない、というバグです。

番号からしても最初期からあったバグですが、ちょっとイラっとさせられることがあったので修正してみました。そんなにややこしいものでも無いのですが、なぜこれが放置されていたんでしょう……

2009年12月14日

Bug-org 461512 nsCSSColorUtils doesn't support alpha color (border color is always solid color if the border-style is groove, ridge, inset, outset) 初回投稿日時: 2009年12月14日15時16分35秒
カテゴリ: CSS Mozilla Core
固定リンク: id=2009121401
リンク元: 0件
SNS: (list)

バグ自体はかなり前に解決していますが、自動テストが完成していませんでした。

色々試してみましたが、どうやっても色の異なるborder同士のジョイント部分のアンチエイリアシングが同じになるパターンは発見できませんでした。そのため、問題の部分に白いdiv要素を重ねてテストに失敗しないようにする、という苦肉の策をとっています。

このバグのregression防止、という点では問題無いのですが……

2009年12月16日

2009年12月18日

Bug 6603 [IMM32] IMR_DOCUMENTFEEDをサポートすべき 初回投稿日時: 2009年12月18日17時31分43秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2009121800
リンク元: 3件
SNS: (list)

Geckoが、WM_IME_REQUESTIMR_DOCUMENTFEEDに対応しました。

これは何かというと、WindowsのIMEがGeckoで現在編集中のテキストの段落のテキストを取得できるようになります。IMEはこれを利用して変換精度を高めることができます。

例えば、「さく」という語を変換する場合、私の辞書の学習内容だと、「作」が変換の第一候補として出てきました。

空のエディタで「さく」を変換した時のスクリーンショット

ですが、キャレットの前に「布を」とある場合、「裂く」が、

「布を」の後ろで「さく」を変換した時のスクリーンショット

キャレットの前が「花が」だと、「咲く」が、

「花が」の後ろで「さく」を変換した時のスクリーンショット

このように的確な候補が提案されることになります。

もちろん、GeckoがIMEに何らかの指示を出している訳ではないので、IME側の対応が必要になりますが、MS-IMEはデフォルト設定でこれに対応しています。

ATOKの場合は、「入力・変換」タブの、「変換候補」にある、「カーソル位置前後の文章を参照して変換する(B)」という設定を有効にする必要があります。

ATOKの設定ダイアログのスクリーンショット

2009年12月19日

Bug-org 532422 n900: Cannot select any characters from sym map 初回投稿日時: 2009年12月19日13時40分48秒
カテゴリ: Fennec Mozilla Core バグ修正
固定リンク: id=2009121901
リンク元: 0件
SNS: (list)

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
リンク元: 0件
SNS: (list)

完璧に風邪ひいてしまいました。

2009年12月21日

Bug 6706 子フレーム内で、未確定文字列が繰り返し確定される 初回投稿日時: 2009年12月21日02時05分38秒
カテゴリ: Mozilla Core バグ報告 バグ検証中
固定リンク: id=2009122100
リンク元: 1件
SNS: (list)

Bug-org 532422の修正によるregressionです。なぜかtrunkでのみ発生してます。

Gmailはメールの作成フォームでiframeを利用しているのでgmailを使う人には実用に耐えないビルドになっているので注意してください。フォーカス移動によって使えるようになるケースもありますが、gamilではそれもうまくいかないようです。

2009年12月29日

2009年12月30日

Bug-org 535632 Crash [@ nsEditor::GetIndexOf] 初回投稿日時: 2009年12月30日17時30分48秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2009123000
リンク元: 0件
SNS: (list)

なぜかIMEまわりのコードからどんどんnsEditorまわりのセキュリティバグに召喚されるように……エディタまわりはあまり理解できないので勘弁して欲しいです。これもクラッシュしないようにしただけで、エディタ的にOKなのかどうか全く不明です。hgのログをみていても、エディタのモジュールって今誰が管理しているのか全く分からない状況ですね。