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

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

もずはっく日記(2010年1月)

2010年1月7日

2010年1月9日

Bug-org 537041 "ASSERTION: Wrong document somewhere" with contenteditable, stylesheet 初回投稿日時: 2010年01月09日12時42分55秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010010900
リンク元: 0件
SNS: (list)

単に、ASSERTIONの出るパターンではエラーを返すようにした、というだけの修正なのですが、bzがかなり色々と考察してくれているのが興味深いです。

先日、加藤さんが修正してくれたバグと通じるものがあります。あのバグもHTMLエディタの適当きわまりない処理が引き起こしているのかもしれません。

HTMLエディタはbodyがあることを前提に処理を行っているところが多々あるので、chrome権限があるスクリプトを実行すると簡単にクラッシュバグが見つかるっぽいです(他にもいくつか似たような問題にCcされていたり)。そんな状況なので、chrome権限が無いスクリプトでもクラッシュを引き起こせたケースが存在したのかもしれません。

2010年1月27日

Bug-org 539531 Crash when I click-and-drag on a "Gordon" flash emulation [@ nsFrameSelection::ConstrainFrameAndPointToAnchorSubtree(nsIFrame*, nsPoint&, nsIFrame**, nsPoint&) ] 初回投稿日時: 2010年01月27日10時01分59秒
最終更新日時: 2010年01月27日10時02分26秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010012700
リンク元: 0件
SNS: (list)

Bug-org 42676の修正がらみの話はこれの修正でようやく落ち着いたかも。

それにしても選択範囲の管理が割といい加減なのはどうにかならないものでしょうか。通常のDOMの操作では再現しないので、昔から居るコアの人が書いたあたりは大丈夫なのかもしれませんが、たぶん新しいコード(SVGとか?)がどうもいい加減に処理しってるっぽいですね。

Gecko:Mouse Wheel Scrolling 初回投稿日時: 2010年01月27日10時25分43秒
カテゴリ: Mozilla Core
固定リンク: id=2010012701
リンク元: 0件
SNS: (list)

色々レビュー待ちの間にマウスホイールの処理に関するドキュメントを書き上げました。あらためてまとめてみると、複雑化したもんだなぁと思います。

まあ、まだまだ問題山積ではありますが。

Bug-org 537828 crash [@ nsAString_internal::Assign(nsAString_internal const&)] 初回投稿日時: 2010年01月27日13時50分13秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010012702
リンク元: 0件
SNS: (list)

落ちる場所が毎度違うクラッシュバグに呼ばれたので、調べてみると、かなり大昔のregressionでした。

もともと、IMEのトランザクションしか作成してなかった場所なのですが、条件によっては通常のテキストのトランザクションも作成するように変更されたようです。ただ、その時にIMEのトランザクションのメソッドにアクセスする部分の条件をきちんと変更していなかったので、テキストのトランザクションに対してIMEのトランザクションのメソッドを呼び出そうとしてクラッシュする、というなんともアレな話でした。

これ、その時の修正が全く動いてなかったんではないかと思うんですが。

2010年1月28日

Bug-org 531341 Stack overflow crash related to scrolling with trackpad and plugins [@ nsWindow::HandleScrollingPlugins] [@ _SEH_prolog4 ] 初回投稿日時: 2010年01月28日21時05分57秒
最終更新日時: 2010年01月28日21時06分58秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010012800
リンク元: 0件
SNS: (list)

笑うしか無いようなバグですが、マウスホイールのメッセージがループしちゃうことによるスタックオーバーフローを修正しました。

この修正で、Bug-org 487245のregressionで、プラグインからフォールバックされたメッセージを処理していなかったバグも修正されています。これでプラグインがメッセージを消費している場合、もしくはプラグインが別プロセスのウインドウを生成している場合以外は、Bug-org 483136の症状が出なくなるかと思います。

わざわざ地雷原にするのはやめようよ…… 初回投稿日時: 2010年01月28日23時44分17秒
カテゴリ: Mozilla Core
固定リンク: id=2010012801
リンク元: 0件
SNS: (list)

本当に地雷原になりました

IMM32がインストールされている環境、つまり日本語版のWindowsではwindowlessプラグインにフォーカスがあたったら即時ハングアップするので要注意です。

2010年1月29日

Bug-org 541924 bad underline font list doesn't work 初回投稿日時: 2010年01月29日10時47分38秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010012900
リンク元: 0件
SNS: (list)

Bug 5917で実装していた下線位置補正機能が壊れているというバグでした。

Synthesizedな太字がWindowsで壊れたのと同じで、Windows版のthebesを大きく書き換えた時に壊れていたようです。Jonathan Kewが対応してくれました。

それにしてもthebesのコードはもうよく分からなくなってます。すっかり。

2010年1月31日

Bug-org 534420 mochitest-browser-chrome: intermittent failure in browser_focus_steal_from_chrome.js 初回投稿日時: 2010年01月31日23時30分37秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2010013100
リンク元: 0件
SNS: (list)

特定のテスト失敗後にだけ再現するorangeです。処理落ちしてるとfocusメソッドの呼び出し順が怪しくなってそうなのでそれを改善してみましたが、修正できた確信、確証はありません。