この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、
断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。
Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではない ことに注意してください。
現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。
順次、修正していく予定ですのでしばらくお待ちください。
もずはっく日記(2010年5月)
2010年5月5日
フォーカスがエディタにある状態でreadonly
属性を変更してもIMEの状態が更新されない、というバグです。自動テストを作っているときに発見したバグで、現実にこれが問題となることは無いと思いますが、このバグで実装するエディタの内部のメソッドが他のバグで使いやすいので修正しました。
エディタの内部フラグが書き換わる段階で、エディタにフォーカスがある場合、新しいIMEの状態を計算し、直接ISMに状態変更を促すようにしました。この修正により、様々なバグの洗い出しやcontenteditable
属性まわりの自動テストの拡充ができています。
2010年5月8日
editor/idl
のカオス
初回投稿日時: 2010年05月08日17時36分13秒
カテゴリ: Mozilla Core
固定リンク: id=2010050800
SNS:
(list )
editor/idl
にあるインターフェースが中々にカオスです。前からですが。
nsIEditor.idl nsEditor
にアクセスするための外部インターフェース。
nsIEditorIMESupport.idl IME関連の機能にアクセスするための外部インターフェース。nsEditor
で実装。
nsIEditorMailSupport.idl 引用して貼り付け、等のメール関連に特化した機能だけを集めた外部インターフェース。nsPlaintextEditor
で実装。
nsIHTMLEditor.idl nsHTMLEditor
にアクセスするための外部インターフェース。
nsIPlaintextEditor.idl nsPlaintextEditor
にアクセスするための外部インターフェース。
エディタの実装と、その利用に関してはこれらのインターフェースが利用されますが、まず問題の一点目は、実装をもとにインターフェースがデザインされているため、利用者からはさっぱり分からないこの分け方。また、二点目は無駄にnsIEditor
からQIが必要なため、コードが無駄に読みにくくなっていることです。
ひとまず、nsIEditorIMESupport
はnsIEditor
に統合しようと企んでいます 。
それが終われば、nsIEditorMailSupport.idl
も同様にできるかなぁとは思いますが、ユーザ次第というところでしょうか(拡張レベルでもこの辺にアクセスしてくるのは希だとは思いますので、そこまでは考えていませんが)。
これをやってしまうと、今度はnsIEditor
がふくれあがってきますが、ここには実装に必要なだけのメソッドが大量にあります。これらを別のインターフェースに移して、もうちょっとわかりやすくできないかなぁと考えてるところです。
2010年5月19日
週末までオフライン
初回投稿日時: 2010年05月19日00時56分02秒
カテゴリ: 雑談
固定リンク: id=2010051900
SNS:
(list )
私用で週末までオフラインです。
2010年5月27日
Gmailでリッチテキストエディタでメールを作成する際、最初にIMEで日本語を入力しようとすると強制的に確定されることがあるというバグです。Aliceさんが確認し、regressionの原因を探してくれたので助かりました。ありがとうございます。
デバッグビルドでスタックを見てみると、リッチテキストエディタにはいくつかJavascriptから発行できるコマンドがありますが、そのうちの何かがエディタのフラグを変更していました。フラグ変更時にはいつも、IMEの状態を更新するために強制的に確定を行っていたのがこのバグの原因でした。
今回の修正で実際にIMEの状態が変更されない場合は確定処理や状態変更処理を行わずに処理を中断する様に修正しています。
2010年5月29日
Bug-org 488420 で追加したメソッドのバグで、現実ではなんの問題も無いバグですが、別のバグ修正で問題になりそうなので先に修正しました。
サイドバー
日記内のナビゲーション
Twitter