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

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

もずはっく日記(2011年3月)

2011年3月1日

Bug-org 636281 crash [@ -[ChildView setMarkedText:selectedRange:]] 初回投稿日時: 2011年03月01日15時13分33秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2011030100
リンク元: 0件
SNS: (list)

再現方法がよく分からないクラッシュバグで、Trunk以外のMac版で希に発生していたようです。

CocoaのNSViewの派生クラスと、GeckoのnsIWidgetの派生クラスがそれぞれ、Objective-Cと、C++で分離している特殊事情から、前者が生存していても、後者は既に死んでいる可能性があります。このバグはスタックトレースからそういう状況であることは分かっていますが、どのようにその状況下でIMEの未確定文字列のイベントが発生したのかはきちんと検証していません。

Trunkでは安全策で入っていたコードのおかげで発生していませんでしたので、それをそのまま1.9.2 branchと1.9.1 branchにも入れました。承認が下りれば、1.9.0 branch (Camino 2.0専用)でも修正される予定です。

2011年3月24日

Bug-org 587667 IME doesn't work with Flash 10.1 on OS X on trunk (using Cocoa event model) 初回投稿日時: 2011年03月24日22時52分57秒
カテゴリ: Firefox
固定リンク: id=2011032400
リンク元: 1件
SNS: (list)

Firefox 4.0では、Flash上で日本語入力できない、という話をちょこちょこと見かけるので、ここで紹介しておきます。

情報が少なくて断言はできませんが、これはFlash Player側の問題だと思います。

64bit対応のため、WebKitと同様にpluginのイベントモデルをCarbonからCocoaに置き換えましたが、何故かFx上ではWebKitと同じようにIMEが使えません。AdobeのMichelle Sintovさんは内部の開発版では修正できていると言っていますが、まだリリースされていませんね。

ちなみに、Silverlightだと入力できるのは確認できています(相変わらずインライン入力はできないので使いにくいですが)。

2011年3月28日

Bug-org 627272 Cannot start dragging titlebar when Firefox button opens its menu 初回投稿日時: 2011年03月28日11時05分34秒
最終更新日時: 2011年03月28日21時43分23秒
カテゴリ: Firefox Mozilla Core Mozilla5 バグ修正
固定リンク: id=2011032800
リンク元: 0件
SNS: (list)

Firefoxボタンが出ている状態で、タイトルバーのドラッグを開始しようとしても、メニューが閉じられるだけでドラッグできないというバグです。個人的に、意外とイラッとさせられることの多かったバグです。

Windowsではメニューがポップアップしている状態で、メニュー以外の場所でマウスのボタンを押すと、そのイベントはメニューを閉じつつ、カーソル位置のウインドウによって本来の処理も継続するはずなのですが、XULのボタンにひも付いたメニューではそのように動作していなかったのが原因です。

このバグの修正で、Windowsではボタンにひも付いたメニューでも、閉じた後にマウスボタンのイベントを消費してしまわないように修正しています。このため、他のXULウィジットにも影響は出ていますのでご注意を。

それにしても、Windowsは、ドロップダウンリストだとマウスボタンイベントを消費するのにメニューでは消費しない、と、不思議な動作の差がありますね。

ちなみに、ブックマークツールバーのメニューは相変わらずマウスボタンイベントを消費してしまいます。おそらくtoolkitの方のどこかで、消費してしまっているのではないかと思いますが……

Firefoxボタン内のサブメニューが開いたときや、ブックマークツールバーのメニューを開いている時のバグはBug-org 645662に登録して、パッチを出しました。

2011年3月29日

Bug-org 640884 Can't delete Korean characters in any input text area 初回投稿日時: 2011年03月29日12時34分38秒
最終更新日時: 2011年03月29日12時44分57秒
カテゴリ: Mozilla Core Mozilla5 バグ修正
固定リンク: id=2011032900
リンク元: 0件
SNS: (list)

ちょっと、サマリが変なんですが、SCIMのハングル用のエンジンを使っていると、未確定文字列をBackspaceキーで全て消しても、preedit_endシグナルが発生せず、GeckoはIMEの変換が続いていると考えて、その後のBackspaceキーの入力を無視し続ける、というバグです。

Geckoでは、editor側の制限から、widget側では、未確定の状態ではキーイベントを生成しないようにしています。このため、gtk_im_context_filter_keypress()の戻り値は未確定状態では常に無視しています。

今回の修正では、この戻り値がFALSEの場合でなおかつ、キーイベントがGDK_KEY_PRESSで、なおかつ未確定文字列が空の場合、一度、エディタ上では空の文字列で強制確定するようにしてつじつまをあわせています。再び未確定文字列が来ると、自動的にcompositionstartイベントから再開されるので、Webアプリ側から見ると特に変化はありません。

重大な問題ですが、報告が遅すぎたのと、他のIM全てでなんらかの影響がある可能性があるのでFx4.0には申請しませんでしたが、今後、特に問題が報告されなければ、2.0 branchへの投入の申請をしようと考えています。

2011年3月31日

Bug-org 59109 implement CSS3 text module's text-decoration-style and text-decoration-color 初回投稿日時: 2011年03月31日23時18分08秒
最終更新日時: 2011年03月31日23時21分40秒
カテゴリ: CSS Mozilla Core Mozilla6 バグ修正
固定リンク: id=2011033100
リンク元: 0件
SNS: (list)

CSS3のtext-decoration-styleと、text-decoration-color-moz-プリフィックス付きですが実装しました。

  • 青い点線の下線
  • 緑の破線の下線
  • 赤い二重線の下線
  • オレンジの波線の下線
  • 青い点線の上線
  • 緑の破線の上線
  • 赤い二重線の上線
  • オレンジの波線の上線
  • 青い点線の取り消し線
  • 緑の破線の取り消し線
  • 赤い二重線の取り消し線
  • オレンジの波線の取り消し線

ちなみに、text-decorationは今回は修正していません。CSS3では、colorやstyleを一括指定できるshorthandプロパティになる予定ですが、-moz-プリフィックスが取り除ける程度に仕様が安定するまでは将来の仕様との互換問題が発生しないように実装する予定はありません。

Bug-org 630817 The value of native keyevent's state doesn't refer to the event 初回投稿日時: 2011年03月31日23時29分02秒
カテゴリ: Mozilla Core Mozilla5 バグ修正
固定リンク: id=2011033101
リンク元: 0件
SNS: (list)

Linux版のGeckoのみ、モディファイアキーのkeydownイベント等で、該当するプロパティがtrueにならず、keyupイベントでは逆にtrueのまま、というバグです。

GTK2のネイティブイベントは、そのキーイベントの直前のモディファイアキーの状態をアプリケーションに対して通知してくるため、この様な変なバグが発生していました。ひとまず、算出が簡単なkeydownイベントと、keypressイベントに関してはこの修正で修正されています。keyupイベントに関しては、DOM3のKeyboardEvent.repeatの実装時に共有可能なコードを書くので、その時に修正予定です。

Bug-org 645662 Should not consume mouse down event at the sub menu of splitmenu or toolbarbutton rolled up 初回投稿日時: 2011年03月31日23時32分07秒
カテゴリ: Mozilla Core Mozilla5 バグ修正
固定リンク: id=2011033102
リンク元: 0件
SNS: (list)

先日のBug-org 627272の修正の続きです。

これの修正によって、Firefoxボタン内のサブメニューや、ブックマークツールバーのフォルダを開いている状態からでも、タイトルバーのドラッグを開始したりできるようになっています。