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

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

もずはっく日記の検索結果

もずはっく日記からの検索結果

発見した件数: 41件 | 再検索

タイトル 最終更新日
内容(最初の段落のみ)
Bug-org 1217275 [IMM] MS-IME for Japanese on WinXP SP3 hangs up at inputting first Kana character 2015年10月31日
Windows XPのMS-IMEが、一文字目のかなを入力した時点でハングアップしたり、Firefoxがクラッシュするというバグです。Aliceさんが報告してくれた上に、regression範囲を調査してくれたところ、奇妙なことにその原因となっているのは nsIMM32Handler を mozilla::widget::IMMHandler にリネームしたバグ でした。 (続く……)
Bug-org 1213811 [TSF] Bug 1208043 can be reproduced with TavultesoftKeyman90 or TavultesoftKeyman80 2015年10月31日
Bug-org 1208043で報告されているバグ が、TavultesoftKeyman90とTavultesoftKeyman80というテキストサービスを利用した TIP でも再現するというバグです。 (続く……)
Bug-org 1208043 [TSF] MS-IME for Korean inserts composition string to the end of previous textnode when you type text at start of <p> 2015年10月31日
contenteditable で Enter キーを押した時の動作には2種類あって、 <div contenteditable>foo</div> というエディタ上では <br> 要素が挿入し、キャレットのその後ろに移動させますが、 <div contenteditable> <p> foo </p> </div> というエディタで( <p> 要素内にキャレットがある時に)は新しい <p> 要素を生成して、その内部にキャレットを移動させます。このバグは後者の場合に、 Enter キーを押した直後、つまり空の <p> 要素でハングル文字を入力しようとすると、ひとつ前の <p> 要素の最後に入力されてしまうというバグです。 (続く……)
Bug-org 1209464 Window neutering missing from MessageChannel::WaitForInterruptNotify 2015年10月31日
WindowsでFirefox 41にアップグレードしてからFlash Playerでよくハングアップするというバグです。 (続く……)
Bug-org 1199997 [TSF] Selected text isn't replaced with composition string when you use MS Pinyin, MS Wubi, MS Changjie and MS Quick on Win8.1 and Win10 2015年09月17日
TSF で、Win8.1やWin10に付属しているMS製のTIP、MS Pinyin、MS Wubi、MS Changjie、MS Quickでは、未確定文字列を入力しても、選択文字列が置換されず、選択範囲の先頭に未確定文字列が挿入されるというバグです。 (続く……)
Bug-org 1199224 [TSF] MS Korean IME doesn't replace composition string properly after ASCII character 2015年08月30日
TSF モードで、ハングルの TIP を利用している時に、半角記号の後ろでハングル文字を入力しようとすると最初のハングル文字の合成中に、最初に入力した文字が確定され、その後、二文字目以降が合成された未確定文字がその前に挿入されるというバグです。 (続く……)
Bug-org 1198594 crash in libsystem_kernel.dylib@0x16286 2015年08月30日
Mac OS X 10.10でエディタにフォーカスを合わせると高確率でクラッシュするらしいバグです。スタックが変なことになっていますが、よく見ると、 ContentCacheInParent::FlushPendingNotifications() 内で delete を行っている最中にクラッシュしているようでした。 (続く……)
Bug-org 1196124 crash in dosprintf when you enable logging nsIMM32HandlerWidgets 2015年08月26日
Windows XPでテストしている時に、環境変数で NSPR_LOG_MODULES=nsIMM32HandlerWidgets:5 が設定されたままになっていたのですが、テキストフィールドにフォーカスが当たると、即座にクラッシュしてしまっていました。調べてみると、 Bug-org 1186015の修正 時に二つの MOZ_LOG() を統合した際に、 %u を一つ追加せずに、変数を追加していたため、ひとつずつずれて、 %s に int32_t が当たってしまい、クラッシュしていました。
Bug-org 1187724 Flash hangs on BBC iPlayer after changing system volume through keyboard 2015年08月27日
イギリスからBBCのサイトにアクセスした際に見ることができるFlashの動画プレーヤー上で、キーボード上のボリュームキーからボリュームを調整しようとするとハングアップするというバグです。 (続く……)
Bug-org 1192156 IME related structs, classes and enums defined in nsIWidget.h should be separated to different header 2015年08月26日
nsIWidget.h のIME関連のメソッドで利用している様々な構造体やenumの定義や実装のコードが大量に nsIWidget クラスの定義の上にあるため、それを別のヘッダファイルに移動させようという話です。 (続く……)
Bug-org 1194055 Size of <input> elements has changed in Firefox 40 #2 2015年08月25日
Firefox 40をWindows 7やWindows Vistaで利用していると、Firefox 39までに比べて、CSSで幅指定を行っていない <input> 要素の幅が倍ぐらいになって、レイアウトが崩れてしまうという例のバグの続報 です。 (続く……)
Bug-org 1186799 composition string in contenteditable element isn't committed when you click outside of the editor 2015年08月09日
contenteditable なエディタ上に未確定文字列が存在している時に、編集不能なその外側をクリックしても未確定文字列は実際には確定されているものの、未確定文字列の見た目がそのまま残ってしまうというバグです。 (続く……)
Bug-org 1188442 Fix IMMHandler.cpp compilation on mingw. 2015年08月09日
Bug-org 1184449の修正 によるregressionです。Bug-org 1184449では、 IMMHandler が選択範囲を mSelection に可能な限りキャッシュし、負荷を減らそうとしました。しかし、実際にはキャッシュすることも出来ていなかった上にmingwでのコンパイルエラーの原因になってしまっていました。 (続く……)
Bug-org 1183873 5,000 instances of "'!mContentCache.CacheEditorRect(this, &aIMENotification)'" and associated warnings emitted from widget/PuppetWidget.cpp during linux64 debug testing 2015年08月26日
GTK版のFirefoxのみ、デバッグビルドでウインドウを移動すると警告が大量に出るため、自動テストのログが5,000の、 !mContentCache.CacheEditorRect(this, &aIMENotification) とそれに付随して出る警告で埋まっているというバグです。 (続く……)
Bug-org 1191213 nsBaseWidget::NotifyWindowMoved() shouldn't notify IME when native IME handler doesn't have focus 2015年08月09日
ウインドウが移動した場合に、候補ウインドウの位置をそれに追従させるために、 nsBaseWidget::NotifyWindowMoved() は NOTIFY_IME_OF_POSITION_CHANGE を発行していますが、 IMEContentObserver が存在していない際にも発行していたため、これを確認しようというバグです。 (続く……)
Bug-org 1187579 [e10s][TSF] Enable TSF mode in e10s mode 2015年08月09日
まだ、内部的には問題が残っているものの、日常利用のレベルでは e10s モードでも、 TSF モードが問題無く利用できるレベルになったので、デフォルトで有効にしようというバグです。 (続く……)
Bug-org 1050644 [TSF][e10s] Candidate window of TIPs don't work correctly 2015年08月09日
e10s モードで、 TSF モードを有効にしていると、様々な TIP で候補ウインドウ位置やサジェストウインドウ位置がおかしくなるというバグでしたが、これまでの修正により、確認されている問題はWindows 8以降のMicrosoft謹製の中国語(簡体字・繁体字共)のTIPで全くウインドウが表示されないというバグだけになりましたのでその修正をこのバグで行いました。 (続く……)
Bug-org 1187566 [TSF] TSFTextStore::Content should compute mMinTextModifiedOffset only with the latest composition string and original composition string 2015年08月09日
Google日本語入力の安定版では候補ウインドウ位置を決める時に ITextStoreACP::GetTextExt() が失敗すると、ウインドウの左下に表示してしまうことがあるバグがあります。 TS_E_NOLAYOUT 問題が修正されているWindows 10でも発生しますので、Google日本語入力自体のバグのようです( 開発版 では修正されているとのことですが、時間がとれなくて、まだ未確認)。 (続く……)
Bug-org 1186017 [GTK] nsGtkIMModule should be renamed to mozilla::widget::IMContextWrapper 2015年08月09日
nsGtkIMModule を mozilla::widget::IMContextWrapper にリネームしようというバグです。既に、 KeymapWrapper というクラスがキーイベントの処理を行っていますので、それに合わせた名前になっています。 (続く……)
Bug-org 1184533 [IMM] ASSERTION: offset is less than cursorPosition!: 'offset >= cursorPosition' 2015年07月26日
IMMHandler::GetCharacterRectOfSelectedTextAt() に昔からあったバグのようです。このメソッドは、選択開始位置、もしくは未確定文字列がある時はその最初の文字から aOffset 文字目の文字の矩形を取得するためのものですが、未確定文字列があり、未確定文字列内にキャレットが存在している場合の計算に失敗して、このassertionにヒットしていました。 (続く……)
Bug-org 1187351 [e10s][TSF] TSFTextStore::GetTextExt() shouldn't return TS_E_NOLAYOUT after notifying TSF of layout change 2015年07月26日
TSFTextStore は NOTIFY_IME_OF_POSITION_CHANGE を受け取った際に、 ITextStoreACPSink::OnLayoutChange() を呼び出すことがありますが、この際に、キャッシュしているコンテンツのレイアウトが不確定な最初の文字のオフセットをリセットしていませんでした。そのため、 TSF や TIP からすると、レイアウトの計算が終わったと通知が来たのに、 ITextStoreACP::GetTextExt() を呼び出してみたら、まだだって言われる、という状況に陥っていました。 (続く……)
Bug-org 1187367 [e10s][TSF] TSFTextStore shouldn't destroy native caret until notifying TSF of layout change 2015年07月26日
TSF -awareなアプリで動作しているATOKは、何故かネイティブキャレットの位置を参考にサジェストウインドウ位置を決めています。これに対応するため、 ITextStoreACP::GetTextExt() が呼び出された時に、その位置にネイティブキャレットを作成し、ドキュメントのロックが解除された時にキャレットを破棄していました。 (続く……)
Bug-org 1172239 High CPU usage when open amazon.co.jp in several tabs #2 2015年07月25日
日本ではこのバグが原因で乗り替えようかなって言ってる人を見かけるんで、誰か検証できる人居ない? とrocにもちかけて見たところ、御大自ら修正してくれました。なんでも、日本以外のamazonでも発生することはするんだとか。 (続く……)
Bug-org 1186014 [TSF] Rename nsTextStore to mozilla::widget::TSFTextStore 2015年07月25日
nsTextStore を mozilla::widget::TSFTextStore に改名し、ヘッダファイル内の名前空間の直接指定を削除してしまおうというバグです。 (続く……)
Bug-org 1186015 [IMM] nsIMM32Handler should be renamed to mozilla::widget::IMMHandler 2015年07月25日
nsIMM32Handler を mozilla::widget::IMMHandler に改名し、ヘッダファイル内の名前空間の直接記述を削除してしまおうというバグです。 (続く……)
Bug-org 1184449 [IMM] nsIMM32Handler should cache selection notified by NOTIFY_IME_OF_SELECTION_CHANGE 2015年07月25日
IMM モードをハンドリングしている、 nsIMM32Handler は必要なときに逐一、選択範囲を取得していましたが、非常に無駄な演算コストが発生しているので、 NOTIFY_IME_OF_SELCTION_CHANGE で通知される新しい選択範囲をキャッシュしておいて、これを利用するように修正しました。 (続く……)
Bug-org 1185316 [e10s][TSF][GTK?] TabChild should notify TabParent of receiving WidgetCompositionEvent or WidgetSelectionEvent after dispatching it 2015年07月26日
Bug-org 1176954の修正 では、子プロセスがイベントを受信したら、親プロセスにそれを通知することで親プロセスがIMEに各種通知を発行するタイミングを調整するようにしましたが、この状態で通知すると、それにIMEが反応してコンテンツを取得しに来た場合、一番最後に送信したイベントの結果がまだ、 TabParent 内のキャッシュに反映されていない可能性があることに気付きました。 (続く……)
Bug-org 1184986 [e10s][TSF] ContentCache shouldn't notify IME of layout change until all sending events are handled 2015年07月26日
Bug-org 1176954の修正 で、IMEへの通知を一部、子プロセスへの送信中のイベントが残っている場合には延期するようにしましたが、 NOTIFY_IME_OF_POSITION_CHANGE に関してもそれが必要というバグです。 (続く……)
Bug-org 1176959 [e10s][GTK] Kakutei-Undo of Mozc doesn't work 2015年07月19日
e10s モードでは、GTK版Mozcの確定アンドゥが機能していませんでした。 (続く……)
Bug-org 1176955 [e10s][TSF] Kakutei-Undo of Japanese IME doesn't work 2015年07月19日
e10s モードでは、 TSF モード時にATOK等の実装している確定アンドゥが動かないというバグです。 (続く……)
Bug-org 1184004 [e10s] Methods to notify IME should use IMENotification at IPC 2015年07月19日
e10s モードでは、コンテンツからIMEへの通知はIPC通信を通して行われるわけてすが、この時に、何故か IMENotification を直接送受信せず、必要な内容を個別の引数にして渡していました。このため、受信した側ではまた IMENotification を再度作らないといけないため、 IMENotification の内容が変更される度に変更のコストがけっこう大きかったわけです。 (続く……)
Bug-org 1176950 [e10s][TSF] nsTextStore shouldn't abandon locked content cache before dispatching events because they may be handled asynchronously in e10s mode 2015年07月19日
nsTextStore は、ドキュメントがロックされている間はコンテンツがJavascriptによって更新されることを防ぐため、コンテンツを予めキャッシュした上で、ドキュメントがアンロックされるまで、イベントを送信しないようにしています。 (続く……)
Bug-org 1176954 [e10s][TSF][GTK?] TabParent shouldn't notify IME until all sending events are handled 2015年07月19日
e10s モードでは、子プロセスがフォーカスを持つ場合、chromeイベントでハンドリングしたネイティブのIMEイベントが、非同期で子プロセスに処理されることになります。ここで困るのが TSF やGTKでIMEに選択範囲の変化等を通知するタイミングです。これまでは、子プロセスから通知が来た場合に即、TSFやGTKに通知を行っていましたが、子プロセスの処理が遅れている場合、TSFやGTKからするといくつか前の状態が通知されるというおかしなことになります。 (続く……)
Bug-org 1180240 ContentEventHandler::OnQuerySelectedText() should use mFirstSelectedRange if mSelection doesn't have selection range 2015年07月19日
Bug-org 1179090の修正 に対するフォーローアップです。 ContentEventHandler の初期化処理では選択範囲が存在していない場合には選択範囲が先頭に存在していると仮定するようにしましたが、 ContentEventHandler::OnQuerySelectedText() は mSelection から直接選択範囲を取得していたため、この修正結果の恩恵を受けられていませんでした。 (続く……)
Bug-org 1179122 [e10s] TextComposition should manage target in parent process even when its child process has focus 2015年07月19日
e10s モードでは、ネイティブのフォーカスは、常にchromeプロセスが持っています。つまり、IMEからのネイティブイベントをハンドリングするのはchromeプロセスになります。そして、各OS向けのwidgetが生成した WidgetCompositionEvent は、子プロセス内にフォーカスがある場合に、 EventStateManager::PreHandleEvent() で子プロセスにイベントを送信し、chromeプロセス内では何もしないという形をとっていました。つまり、 WidgetCompositionEvent の送信ターゲットを管理する TextComposition のインスタンスは子プロセスでのみ生成されていました。 (続く……)
Bug-org 1179090 ContentEventHandler should assume that the selection range is [0-0] when there is not selection range 2015年07月19日
ContentEventHandler はコンテンツの検索が行われた際には必ず選択範囲が(目には見えなくても)存在していると仮定して実装されています。例えば、フォーカスを持てない要素でもクリックした位置にキャレットがあるかのように選択範囲が存在しています。コンテンツをクリック後に Tab キーでフォーカスを移動すると、この見えない選択範囲から付近のフォーカスを持てる要素を検索しているためだったりします。 (続く……)
Bug-org 1179086 ContentEventHandler should use \n for native linebreaker rather than \r 2015年07月19日
ConentEventHandler を最初に実装したときから、OS Xでは NSTextInput プロトコル(現 NSTextInputClient プロトコル)で改行入りの文字列を返す場合に、改行文字を \r に置換していました。しかし、今日ではOS XはすっかりUNIX由来のOSらしく \n の方が一般的になっていますので、置換を行わないようにしようというバグです。 (続く……)
Bug-org 1179082 ContentEventHandler::OnQueryCaretRect() should guess caret rect when the selection is collapsed but there is no caret frame 2015年07月19日
ContentEventHandler はキャレットの矩形を取得する際に、検索されたオフセットが、現在のキャレット位置と一致している場合にはキャレットフレームのものを直接利用しようとします。そうしないと、例えば <img> が存在していると、実際のキャレット位置とオフセット位置の文字の矩形から算出したキャレットの矩形が異なることがあるからです。しかし、Mac OS Xの辞書検索サービスの NSTextInputClient プロトコルの「悪用」によりキャレットフレームが存在していないことがあり、その場合には矩形の取得に失敗していました。 (続く……)
Bug-org 1179081 ContentEventHandler should use root content's primary frame to retrieve focused widget when there is no caret 2015年07月19日
ContentEventHandler は、キャレットのフレームからフォーカスを持った要素が存在している nsIWidget を算出します。しかし、エディタ以外がフォーカスを持つ場合にはキャレットが無いことの方が多いので、デバッグビルドではよく警告を吐いていました(Macではテキスト入力以外に使うべきではないとApple自身が定義している NSTextInputClient プロトコルを当のApple自身が作った辞書での検索サービスが、コンテンツ取得にこのプロトコルを使っているため)。 (続く……)
Bug-org 1179093 ContentEventHandler::mSelection should be nsRefPtr<Selection> 2015年07月19日
現在、 nsISelection は mozilla::dom::Selection でしか実装されていません。そのため、多くの内部処理は Selection クラスを直接利用するようになっていますが、 ContentEventHandler は未だに nsCOMPtr<nsISelection> を利用していたため、コードが無用に複雑なままでした(XPCOMのメソッドで値を取得する場合、値は引数で受け取らないといけないため)。そこで、 nsRefPtr<Selection> として保存するようにし、コードをシンプルにしようというバグです。 (続く……)
Bug-org 1053053 [e10s][TSF] Typed text appears in unfocused textarea when using IME 2015年07月07日
e10s を有効にしていると、contentプロセス内のエディタにフォーカスを移し、その後、chromeプロセス内のエディタにフォーカスを移動させてもcontentプロセス内のエディタに未確定文字列が表示されるというバグです。 (続く……)

発見した件数: 41件 | 再検索