この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、
断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。
Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。
現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。
順次、修正していく予定ですのでしばらくお待ちください。
もずはっく日記の検索結果
もずはっく日記からの検索結果
発見した件数: 53件 | 再検索
タイトル |
最終更新日 |
内容(最初の段落のみ) |
Bug-org 1257761 [Linux][GTK] windowed plugins shouldn't consume reserved shortcut keys of chrome |
2016年10月16日 |
Linux版で、windowedプラグインにフォーカスがある時に、Firefoxのショートカットキーが使えないというバグです。 (続く……) |
Bug-org 1137565 Make KeymapWrapper and nsGtkIMModule use TextEventDispatcher |
2016年10月15日 |
Bug-org 1137572の修正 にあわせて、Linux、GTK版のネイティブキーイベントハンドの KeymapWrapper と、IMEイベントハンドラの IMContextWrapper から TextEventDispatcher を利用するように修正しました。 (続く……) |
Bug-org 1184890 [e10s][GTK][TSF] cannot input composing string on comment of articles on Facebook |
2015年10月31日 |
Bug-org 1189396 と同じ話の e10s モード版です。 (続く……) |
Bug-org 299603 Use IM specified style for preedit string (It is better to use PANGO_ATTR_BACKGROUND for XIMReverse) |
2015年08月26日 |
放置していたバグ修正第二弾です。LinuxのIMEは未確定文字列のスタイル情報を一般的には指定してきます(一部の変換エンジンは自分でカスタマイズもできます)。しかし、GTK版Geckoはこの指定をそのまま利用せず、そのスタイルから各文節の「意味」を推測して独自の描画を行っていました。 (続く……) |
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 1186017 [GTK] nsGtkIMModule should be renamed to mozilla::widget::IMContextWrapper |
2015年08月09日 |
nsGtkIMModule を mozilla::widget::IMContextWrapper にリネームしようというバグです。既に、 KeymapWrapper というクラスがキーイベントの処理を行っていますので、それに合わせた名前になっています。 (続く……) |
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 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 1175382 [GTK] nsGtkIMModule should use WidgetCompositionEvent::TargetClauseLength() rather than TextRangeArray::TargetClauseLength() |
2015年06月19日 |
Bug-org 1130937の修正 時のミスです。 WidgetCompositionEvent::TargetClauseLength() や、 WidgetCompositionEvent::TargetClauseOffset() を利用すべき時に、 WidgetCompositionEvent::mRanges の、 TextRangeArray::TargetClauseLength() や TextRangeArray::TargetClauseOffset() を利用していたため、 WidgetCompositionEvent 側で実装されている、選択された文節が無い場合の回避処理が行われていませんでした。 (続く……) |
Bug-org 1130937 [Gtk] Need to investigate if IMEs on Linux support vertical writing mode and how do we tells it to IME |
2015年06月19日 |
GTKというかLinuxの IME には、縦書きという概念そのものが存在していませんでした。そこで、抜本的な解決策として、 誠さんがGTK側に仕様を追加するように依頼して、既に修正されました 。 (続く……) |
Bug-org 1163304 Nighglty crashes at [@ nsEditor::EnsureComposition(mozilla::WidgetGUIEvent*) ] |
2015年06月06日 |
Linux版のFirefoxでは、 Alt キーでメニューバーを表示し、続いて、文字入力のキーを押すことで、それに対応したメニューを開くことができます。しかし、検索バー等のエディタでサジェスト用のポップアップが既に開かれている状態で、なおかつIMEがオンになっている際にこの操作を行うとクラッシュするというバグです。 (続く……) |
Bug-org 1117087 crash in nsEditor::EnsureComposition(mozilla::WidgetGUIEvent*) |
2015年06月06日 |
ATOK X3に対応した際 のregressionで、Facebookのコメント入力欄が空の場合に、IMEで未確定文字列を入力するとクラッシュするというバグです。 (続く……) |
Bug-org 1143197 Unable to enter text in <input type=password> fields when an input method is available (Linux) |
2015年03月26日 |
Linux版のATOKである、ATOK X3を利用していると、パスワードフィールドで文字が入力できないというバグです。 (続く……) |
Bug-org 1140832 Cannot undo Input Method commit by Ctrl + BackSpace |
2015年03月26日 |
Bug-org 1065835 のregressionにより、Linux上でMozcで確定後、 Ctrl + Backspace で確定アンドゥができないというバグです。 (続く……) |
Bug-org 1020139 Support new KeyboardEvent.code value for Sun keyboard |
2015年02月21日 |
KeyboardEvent.code で、Sunのキーボードにある特殊なキーもサポートしようというバグです。従来の D3E では定義しているキーが足りなかったため、これ用に定義を追加してもらうのに手間取り、約半年かかって、ようやく修正となりました。 (続く……) |
Bug-org 1031156 Map GDK_AudioForward to "MediaFastForward" |
2014年12月31日 |
最新のD3E仕様には、 MediaFastForward というキーが定義されていますが、GTKの GDK_AudioForward がこれに適切ではないか、ということで、新たにマッピングを追加しています。 |
Bug-org 1027474 Support "VideoModeNext" on GTK |
2014年12月31日 |
最新のD3E仕様で定義されたキーの中に、 VideoModeNext というキーがあります。これは、 仕様書で参照している仕様 で定義されているものですが、GTKに名前が同じ意味になるものが、存在していたので、Geckoではひとまず、マッピングを行いました。 |
Bug-org 1027007 Support multimedia keyboard's key values ("Close", "MailForward", "MailReply", "MailSend", "New", "Open", "Print", "Save" and "SpellCheck") |
2014年12月31日 |
Microsoft社が出した、マルチメディアキーボードには、メーラーを操作するキーや、新規ドキュメント作成等の編集作業に便利なキーがありますが、GTKやQtでは、これらのキーのキーコードも定義しています。そこで、これらに対応するため、最新のD3E仕様では、 Close 、 MailForward 、 MailReply 、 MailSend 、 New 、 Open 、 Print 、 Save 、 SpellCheck キーが定義されました。GeckoではGTK、Qt上ではシンプルにこれらのキーをマッピングしています。 |
Bug-org 1026939 Support new key names "LaunchFoo" for launching specific applications |
2014年12月31日 |
Linux系と、Android系のプラットフォームでは、特定のアプリを起動するキーが多数定義されています。これにあわせて、D3E最新仕様では、 Launch というプリフィックスの後ろに、アプリ名を入れることで、キー名をブラウザベンダが定義できるようにしています。今回の修正では、Webアプリにとって、さほど重要なキーではないことから、 仕様でサンプルとして定義しているキー のみを追加し、マッピングしています。 |
Bug-org 936322 Support new key names "GroupNext", "GroupPrevious", "GroupFirst" and "GroupLast" for keyboard layout switching key |
2014年12月31日 |
GTKでは、キーボードレイアウトを変更するキーのキーコードが定義されています。また、Androidでも、 KEYCODE_LANGUAGE_SWITCH というキーが定義されています。これにあわせて、最新のD3E仕様では、 GroupNext 、 GroupPrevious 、 GroupFirst 、 GroupLast キーが定義され、Geckoはこれらをマッピングしました。ちなみに、Android・Firefox OSの KEYCODE_LANGUAGE_SWITCH は、 GroupNext にマッピングしています。 |
Bug-org 900400 Define new key names, "HiraganaKatakana" and "ZenkakuHankaku" for GTK, Qt and Android |
2014年12月31日 |
Linux、Android系のプラットフォームでは、 半角/全角 キーや、 カタカナ/ひらがな キーが、同じキーコードでキーイベントを生成するため、アプリ側は、イベントからはどちらのモードへの切り替えが行われているのか判別できません。これに対応するため、最新のD3E仕様では、不明な場合に物理的なキーの判別を手軽に行えるように、 ZenkakuHankaku キーと、 HiraganaKatakana キーの二つを定義しました。Webアプリがこれらのキーを直接ハンドリングすることはほとんど無いと思いますが、これらのキーを処理する場合、Windows版Geckoでは、 Zenkaku 、 Hankaku 、 Hiragana 、 Katakana キーになっていることに注意してください。 |
Bug-org 900392 Define new key name "SingleCandidate" for GTK and Qt |
2014年12月31日 |
GTKとQtでは、 IBMのAIXの韓国語IME用 に、単一候補を変換するキーが定義されていました。これに対応するため、D3Eの最新仕様では SingleCandidate キーを定義し、Geckoは、各キーコードをこれにマッピングしています。 |
Bug-org 900384 Define new key name "Redo" for GTK |
2014年12月31日 |
D3E仕様には、 Undo キーはありましたが、 Redo キーがありませんでした。しかし、GTKでは定義されているため、新たに定義されました。このバグでは、簡単にマッピングが可能なGTKでのみ、マッピングを行っています。 |
Bug-org 900382 Define new key names, "Standby", "PowerOff", "WakeUp", "LogOff", "Suspend" and "Hibernate" for Windows, GTK and Qt |
2014年12月31日 |
最新のD3E仕様では、新たに、 Standby 、 PowerOff 、 WakeUp 、 LogOff 、 Suspend 、 Hibernate キーが定義されました。これにあわせて、GTK、Qt、Windowsでは該当するキーにマッピングしました。 |
Bug-org 900378 Define new key names, "ZoomIn" and "ZoomOut" for GTK, Qt and Android |
2014年12月31日 |
最新のD3E仕様では、新たに、 ZoomIn キー、 ZoomOut キーが定義されたので、GTK、Qt、Android、Firefox OSでは該当するキーコードをこれらにマッピングしました。 |
Bug-org 1097238 Non-ASCII input with GTK_IM_MODULE=xim broken after bug 1083067 |
2014年11月21日 |
Bug-org 1083067の修正 によるregressionです。少なくとも、iBusでデッドキーを利用しても、入力できなくなっていました。 (続く……) |
Bug-org 1083067 Make nsGtkIMModule simpler |
2014年11月21日 |
Bug-org 1077345 の修正時に nsGtkIMModule の修正が大きくなってしまうので、事前の整理を行った方がレビューがスムーズになるために行ったリファクタリングです。 (続く……) |
Bug-org 1084302 nsGtkIMModule::DeleteText() calls DispatchCompositionChangeEvent() with wrong argument |
2014年10月30日 |
GTKのIMEでは、南アジアの言語でキャレット周囲の文字を含めて、未確定文字列を生成する場合や、日本語の再変換の実装のために、キャレット前後の任意の文字を削除するシグナルが存在しています。これを処理する場合、アプリ側は未確定文字列を含まない、元の文字列でその削除される範囲を決めなくてはいけません。また、 nsEditor は、未確定文字列がある状態での、未確定文字列外の文字の編集をサポートしていません。このため、文字列を削除するシグナルを、未確定文字列が存在する際に受け取った場合、まずは、確定してから、文字を削除し、再度、未確定文字列を復元する必要があります。しかし、その実装である nsGtkIMModule::DeleteText() では、未確定文字列の文節状態を含んだまま、 NS_COMPOSITION_END を発火し、復元時には逆に、文節状態を含まないまま、 NS_COMPOSITION_CHANGE イベントを発火していました。これは、 NS_COMPOSITION_CHANGE イベントを発火するメソッドが、 bool の引数で文節情報を含めるかどうかを決めるという設計だったため、呼び出し側の DeleteText() が単純に、 true と false を指定しなくてはいけないところ、それぞれ、逆を指定してしまっていました。 (続く……) |
Bug-org 1083098 Composition string doesn't appear after forcibly commit composition by moving focus on Linux |
2014年10月30日 |
未確定文字列があるエディタ以外をクリックして、フォーカス移動により、未確定文字列を強制確定させた場合、Linux GTK版で、iBusを利用していると、次にどのエディタでもIMEの未確定文字列が入力されず、それを一度確定なりキャンセルすると、通常の状態に戻る、というバグです。 Bug-org 1065835の修正 によるregressionです。 (続く……) |
Bug-org 1083629 Composition in a designMode editor is canceled when you click the editor on Linux |
2014年10月30日 |
designMode のエディタで、未確定文字列を入力中に、 <body> 要素の外側、つまり、 <html> 要素の部分をクリックすると、GTK版でIMEがiBusの場合、未確定文字列が確定されず、キャンセルされてしまう、というバグです。 Bug-org 1065835の修正 によるregressionです。 (続く……) |
Bug-org 1065835 TextComposition should have API to commit or cancel composition and if widget doesn't perform it synchronously, it should synthesize composition end event |
2014年09月30日 |
TextComposition に、IMEの未確定文字列を強制確定、もしくは強制キャンセルさせるAPIを追加し、 TextComposition 自身が同期的にこれを実行することを保証すべき、というバグです。 (続く……) |
Bug-org 1026986 Cannot build Qt-build due to nsEmbedFunctions.cpp:796:26: error:‘InstallX11ErrorHandler’was not declared in this scope |
2014年06月24日 |
Qtビルドをテストのためにビルドしようとすると、 Bug-org 968196 のregressionでコンパイルエラーが発生するようになっていたというバグです。 (続く……) |
Bug-org 977959 Redesign native key bindings handling |
2014年03月20日 |
Mac版と、Linux (GTK)版では、OSのネイティブウイジットのショートカットキーを可能な限りエミュレートするために、エディタがキーイベントを処理しなかった場合に、 nsINativeKeyBindings のサービスを利用しています。 (続く……) |
Bug-org 749123 [GTK3] Please do not use GtkIMContextSimple for password fields. |
2014年01月30日 |
GTK2では、パスワードフィールドでは、 GtkIMContextSimple を使って、デッドキーをサポートしつつ、IMEはサポートしない、という設計でしたが、GTK3では、通常の GtkIMMulticontext を利用し、IMEの仕組みを利用したスクリーンキーボードをパスワード入力欄でも利用可能にすべきだ、というバグです。 (続く……) |
Bug-org 931378 [GTK3] Set input-purpose to GtkIMContext |
2014年01月30日 |
GTK 3.6.0以降では、 GtkIMContext に、 input-purpose というプロパティが設定されており、IMEや、スクリーンキーボードがこれを参考にして、動作を変更することができます。このバグでは、GTK3ビルドが3.6.0以降で動作している場合にのみ、このプロパティを <input> 要素の type 属性や、 ime-mode プロパティを参考に、適切と思われる値を設定しています。 (続く……) |
Bug-org 912858 Implement KeyboardEvent.key for printable keys (except dead key handling) |
2013年12月19日 |
今まで、 D3E 仕様に不明瞭なところがあったので、 KeyboardEvent.key の、プリンタブルキーの値は MozPrintableKey 値を暫定的に設定していましたが、仕様が概ね固まったので、デッドキー以外に関しては最新仕様にあわせたものに修正されました。現行仕様は以下のようになっています。 (続く……) |
Bug-org 936318 Drop key name "Spacebar", "Multiply", "Add", "Subtract", "Divide", "Separator" and "Decimal" |
2013年12月19日 |
最新の D3E 仕様の変更に伴い、 スペース キーや、テンキー上の、数字と Enter キー以外につけられていた、 KeyboardEvent.key 用の固有のキー名を削除しました。 |
Bug-org 932168 Bug 906072 completely broke IME context management when password field gets focus |
2013年11月29日 |
Bug-org 906072 で、Maemo用のコードが、 widget/gtk 配下から一掃する際に、 nsGtkIMModule.cpp 内で、誤って、 #ifndef 内が消されたり、逆に #ifdef の条件のみが消されたりすることで、GTK版では、Firefox 26以降、パスワードエディタでもIMEが使えるようになっていました。 (続く……) |
Bug-org 768287 keydown event's getModifierState() returns wrong value on GTK if the key has lockable modifier but the keyval doesn't correspond to a DOM modifier |
2013年09月30日 |
以前にも紹介しましたが、LinuxのGTK (GDK)では、キーイベントが発生した段階では、モディファイアのフラグがそのキーが押された状態を反映した値に変化していません。例えば、 Shift キーを押したイベントの、モディファイアフラグの値は、 Shift キーが押された状態にはなっていません。これは、他のプラットフォームの動作とは異なっているため、Geckoでは、キーのハードウェアキーコードから、アクティブになるフラグを 予想 して、わざわざセットする、ということをやっていました。 (続く……) |
Bug-org 909335 double pasting in HTML editor like etherpad with keyboard shortcut |
2013年08月31日 |
Bug-org 907612の修正 のregressionで、GTK版Geckoの、HTMLエディタ上でペーストや、カーソル移動をキーボードから行おうとすると、2回実行される、というバグです。 (続く……) |
Bug-org 907612 GTK widget should use nsKeyEvent::mNativeKeyEvent for loss-less handling in nsNativeKeyBindings |
2013年08月31日 |
GTK版Geckoでは、昔から、ネイティブウイジットで利用可能なショートカットキーをGecko上でも利用できるように、nsNativeKeyBindingsというクラスが、DOMキーイベントから、元のネイティブキーイベントを復元し、それを調べるということをやっていました。しかし、このネイティブキーイベントの復元が、DOMキーコードからの推測に基づくものだったので、そもそもDOMキーコードに変換されないキーでは動かないという問題を抱えていました(実際に通常のキーボードで発生する問題なのかは不明)。 (続く……) |
Bug-org 851010 Remove Google as a content handler for feeds, because Reader and iGoogle are being discontinued |
2013年07月06日 |
ちょっと古いネタですが、Google Readerのサポートが終了、ということで、Firefoxのデスクトップ版でのGoogle Readerのサポートは、現在のリリース版である、Firefox 22以降で廃止されています。 |
Bug-org 865976 Cannot build SeaMonkey on Linux since Bug 842927 (Implement DOM3 KeyboardEvent.key only for non-printable key, first) [nsGtkKeyUtils.o] Error 1 |
2013年05月31日 |
KeyboardEvent.key の実装時に、GTK用のコードで参照した、keysymの定数が、いくつか、SeaMonkeyのオフィシャルビルドのビルドマシンでコンパイル時にエラーになるということで、対策を入れました。 (続く……) |
Bug-org 842927 Implement DOM3 KeyboardEvent.key only for non-printable key, first |
2013年04月29日 |
Bug-org 834554 で、Firefox OSチームがメチャクチャなパッチを投入して、 KeyboardEvent.keyCode の値をハッキーに利用しようとしていたので、それを阻止するために、仕様がまだもめている文字入力用のキー以外のキーでのみ、 KeyboardEvent.key を先行実装することにしました。 (続く……) |
Bug-org 833719 Some function keys are not working since Firefox Version 15 |
2013年02月19日 |
Firefox 14までは、Windows/Linux/Macで、キーボードレイアウトとプラットフォームによってはほとんどのキーが keyCode 値が0になっていたり、同じキーボードレイアウトの同じキーがプラットフォーム毎に違う値を返すことがあったりするバグが長年、問題になっていたので、Firefox 15では、 Bug-org 630810 (Windows)の修正 、 Bug-org 677252 (Mac)の修正 、 Bug-org 447757 (Linux)の修正 で、ほぼ、これらの問題を一掃しましたが、その際に今まで、Windowsでは、ネイティブのvirtual keycode値でDOM keyCode 値が定義されていないものに関してはそのままの値をセットするというのを取りやめ、マッピングできないもの、つまり、一般的なWebアプリで処理されるべきではないキーに関しては、 keyCode 値が0になるようになりました。 (続く……) |
Bug-org 769159 Handle ShiftLock key on GTK |
2012年12月18日 |
フランス語キーボード等では、 Caps_Lock ではなく、 Shift_Lock が一般的だそうです。これをロックすると、アルファベットだけではなく、数字キー等でも Shift キーがロックされた状態となります。 (続く……) |
Bug-org 769548 Support ISO_Level5_Shift as AltGr too |
2012年12月18日 |
GTK3では、 ISO_Level3_Shift に加え、 ISO_Level5_Shift という、もうひとつの AltGr キーが追加定義されました。 (続く……) |
Bug-org 784246 KeymapWrapper::GuessGDKKeyval() return wrong key for NS_VK_COLON |
2012年09月07日 |
Geckoでは、DOMキーイベントがエディタに届いた時に、ネイティブのショートカットキーに一致するキーかどうか、調べるのですが、その時に、DOMキーコードから、ネイティブキーコードに変換するメソッドにミスが見つかりました。 (続く……) |
発見した件数: 53件 | 再検索