Bug 3976 [Find Tool Bar][FAYT] FAYTでIMEが利用できない #2
初回投稿日時: 2005年05月01日05時07分40秒
カテゴリ: Firefox
固定リンク: id=2005050100
SNS:
Tweet (list)
ドツボにはまってきている。
この日記はMozillaのプロダクトへの貢献者としての私の成果を中心に、気になったバグやWeb界隈の話題について書いていますが、 断り書きがある場合を除き、いかなる団体のオフィシャルな見解ではありません。あくまでも個人的なものです。 Mozilla Foundation、Mozilla Corporation、及び関連企業の公式情報ではないことに注意してください。
現在、XHTML 1.0 (もどき)から、HTML5なコンテンツに修正中です。古い日記は修正が完了していませんので表示が崩れます。 順次、修正していく予定ですのでしばらくお待ちください。
ドツボにはまってきている。
かなりキツイregression。 これのおかげでLXRはかなり使いづらい。
完全にドツボ。
とりあえず、動くパッチはできたが、元々のフォーカスの設定処理が(確信は無いが)間違っているっぽいのであわせて修正。10ファイルにも及ぶ大修正になってきてしまった。
テストビルドを公開しているので是非テストしてみて欲しい。
テストビルドを公開しているので、MS-IME 2003を持っている人は再変換できるか確認して欲しい。
もし、再変換できない場合は、Comment 5に従ってログファイルを添付して欲しい。
Tomoya Sakataさんの協力により、regressionがひとつ修正できた。 他にもないか、テスター募集中。
再現しない。 再現する人募集中。
table[rules="all"]
とtable[rules="none"]
の場合にborder-collapse: collapse;
となっていた問題。
-table[rules] { +table[rules]:not([rules="all"]):not([rules="none"]) { border-collapse: collapse; }
という修正内容なので、Webページの作者は注意。 もっとも、IEを基準に作っているサイトが多いので、あまり実害は無いと思うが。
修正方法は思いついたのだが、我ながら大がかりな修正方法。
-moz-auto-color-reverse
プロパティを追加するcolor: black; background-color: yellow; -moz-auto-color-reverse: auto;
とする-moz-auto-color-reverse
がauto
なら、自分を除き、祖先要素の背景色と、自身の背景色が似ていたら文字色と反転させる(アルゴリズムは選択色のものと同じ)こんな感じ。 Mozilla 1.9aになったら作業するか。
本家でEreから良い感じのパッチが出たので再開した。
Ereのパッチでは、ダウンロードさせようとしたファイルのデフォルトの拡張子が、.url、.lnk、.pifのいずれかの場合、ファイルの保存ダイアログから返ってきたパス(ショートカットファイルなら、ショートカットの参照先)の拡張子が別の物に変わっていたら、ショートカットファイルを選択した疑いがあるので、そのパスに既にファイルが存在するか検査し、もしあったら(上書き保存なら)保存を禁止するというものである。
結局、修正してみるとWin9xでATOKを使って再変換した時に、文字数によってはクラッシュしていたバグも修正されてしまった。
修正は既に完了している。
Infoaxia Web アクセシビリティ・ツールボックスがインストールされているとナビゲータ部分が使用不能になる。
bug 4421で改めて感じたが、もじら組BBSやMozillaZine-JPフォーラムにあった不具合報告のBugzilla-jpへのエスカレーションが無さすぎる。このバグも迅速にエスカレーションされていれば、4月上旬の間に修正されていた可能性が高いからだ。
Bugzilla-jpスタッフは何かと兼任していたり、もともと忙しい中を時間作って作業してくれている人ばかりなので、現状ではBBSのチェックまでは行き届いていない。
もじら組BBS等からバグ報告をBugzilla-jpに橋渡ししてくれる人、募集。
よくよく考えてみたら、背景を描画しているのはnsTextFrameじゃなく、nsInlineFrameじゃないか、ということで見直し。
背景色の描画と、テキストの描画で2回、色反転するかどうかを判定しなくてはいけなくなる。 これはパフォーマンス的に嫌な感じだ。
それに背景色の描画に割り込むとするなら、nsCSSRendering::PaintBackgroundしか無い訳だが、ここだとありとあらゆる要素の場合にインライン要素かどうかの判定を加えなくてはいけない。 やはりパフォーマンス的にヤな感じだ。
Turbolinux10の開発ワークステーションで成功したビルドは、
失敗したビルド
eDOMClassInfo_CanvasGradient_id
が未定義というエラー
cairo-gtk2の場合のコンパイルエラーは--enable-cairo
を追加することで解決。
しかし、なぜかビルドはこける。
クリーンナップ後に、--disable-shared
と--enable-static
を外してビルドしてみたところ、ビルドに成功した。
しかし、とても遅くて使い物にはならない。rocがMozillaZineで速度をぼろっかすに書いていた理由が分かった。だが、その表示結果はとても綺麗なので、Win/Linux/MacでCairoで何もかもレンダリングするようになれば面白いかもしれない。
Qtでもビルドできた。--with-qtdir=/usr/lib/qt3
を追加し忘れていたのが原因だった。
これは.mozconfigのチェック時にエラーを出すべきじゃないのかなぁ。
フォームに入力していた内容がキャッシュに残らないため、戻るや進むでフォームが空になっていた問題。 修正されている。
Bug-org 293135の修正が不完全で、フォーム周りがボロボロ。 リリースは遅れさせられるかもしれない。
Fedora Core 3でpangoを使ったビルドを作れるようになったので、現在テスト中。
しかし、pangoではletter-spacing等を使っていると、文字を選択したときに「揺れる」バグが。
コード上(nsFontMetrricsPango::DrawStringSlowly)でも明らかにやり方が間違っている。
どうも考えていた原因とは違う模様。 Fedora Core 3に最初からインストールされているFirefoxもpangoを利用しているが、問題が再現しないし、本家にもバグがあがっていないので、pangoの一部のバージョン固有の問題なのだろうか??
再現しない。それにしても最近、報告の質が落ちている。誰も報告前の注意書きを読んでいないのだろうか。BBS感覚で書き込まれるのは困るなぁ。
負け戦気分。
かなり重大なバグなので調査したものの、Mozillaのエディタのトランザクション処理が複雑すぎて理解できない。デバッグで追いかけてみると、IMETextTxnがうまくマージされていないため、本来、ひとつにまとまっているべき、複数のIMEトランザクションが分裂してしまっている上、Undo/Redoはこれらがひとつにまとまっている前提で動作しているという不一致が原因なのは分かった。しかし、そこまで。
個人的にhelpwanted。
とりあえず原因となるif文は完全に特定できた。
編集開始時点で選択範囲があれば、トランザクションのマージを許可しない、という条件文だったのだが、これが問題。「入力中」という状態の無い、通常のテキスト入力ではうまく機能していたが、ユーザにとってはひとつのトランザクションで無数のトランザクションを生み出すIMEではこれはうまく機能していなかったわけだ。
ということで、blameで、なぜそのif文が追加されたのかを確認した上で、削除したパッチを作ってみた。 現在、review申請中だ。
できあがってから検証してみたら、パッチ適用後の方が「直感的な」トランザクションが構成される。 これで良いのかもしれない。
再変換に対応。でも、基本的には細かいバグの修正版です。
FirefoxとThunderbirdのインストーラで上書きインストールした際に、前のバージョンの情報がレジストリにゴミとして残り、それがFlashのインストーラ等で拾われてしまうというバグ。
Trunkでは修正が完了した。現在、aviary branchへのチェックイン承認待ち。
ちなみに、Suiteの問題はbug 4441で対応中。
タブの不調により、タブバーを常に表示する設定にしていると、ウインドウの初期化にすら失敗する。要注意。
実装のために、仕様書を訳してみた。
This property is additive with the 'word-spacing' and 'letter-spacing' [CSS2] properties. That is, the amount of spacing contributed by the 'letter-spacing' setting (if any) is added to the spacing created by 'text-autospace'. The same applies to 'word-spacing'.
というくだりが、イマイチよく分からない。 'text-autospace'で追加した空白には'letter-spacing'と'word-spacing'の値も加算される、ということで良いのだろうか。
だとすると、WinIEの実装は、また互換性が無いことになる。 Microsoftはいつも頭痛の種を惜しみなく提供してくれる。 ちゃんとベンダプリフィックスは付けろ、と言いたい。
text-autospaceの実装は開けてはいけないパンドラの箱だったような気がしなくも無い今日この頃。 まあ、その理由は追々察してもらえるんじゃないかと思います。
昨日書いたように、Windows版InternetExplorerでは中途半端な先行実装がマナーに反して行われている訳ですが、この現状、唯一text-autospaceを取り扱えるUAでも実装されていないideograph-space値について調べてみると不思議な現象が。NOFRAME要素(NOFRAMES要素ではない)の話を思い出しましたよ。
まずはideograph-space値の解説から。原典であるCSS3 Text Moduleでは、
Extends the width of the space character while surrounded by ideographs.
この様に書かれており、また、さらに歴史的に原典となるMSの文書を調べてみると、
Extends the width of the space character when it is adjacent to ideographs.
となっています。
どちらも同じ意味で、表意文字に隣接するスペースの幅を拡張する、と書いています。
私にはこれ以外に原典となる文書が思い当たらないのですが、日本語のWebサイトでtext-autospaceを調べてみると、次のような解説が見つかります。(最初に見つかった20件から調査)
日本語・中国語・韓国語などの表意文字と、アルファベットなどの非表意文字との境い目の間隔を広めに空けます。
この解説を書いていたサイトは
日本語、中国語などの表意文字と、それ以外の文字すべてとの間に空白を追加します。
この解説を書いていたのは
他に書いてる意味が分からなかったのが、
そして、仕様書通りの解説が書いてあったのは、
わずか、この一サイトだけ。
どこかのサイトの情報を鵜呑みにして、したり顔で情報を再公開しているのが浮き彫りな感じがします。
例のMacで::-moz-selectionを無効にしたことに対する、反対意見のバグ。
私もMacだけ特別扱いするのは変だと思うので、Borisの誘いにのって修正。
今回の修正で、Macでもテキストの色を変更できるようにした(今までは、Macでは背景色しか変更できなかった)。
各所で既報の通り、アプリケーション名がMozilla Firefoxから、Deer Park Alpha 1に変更されている。これに伴い、インストーラのデフォルトのインストール先が、c:\Program Files\Mozilla Firefoxから、c:\Program Files\Deer Park Alpha 1に変更されている。
今後の面倒を考えると、新しいインストール先にインストールした人も多いのではないかと思うが、その場合、アンインストールには注意が必要。
まず、プログラムの追加と削除からDeer Park Alpha1をアンインストールすると、このフォルダに保存した情報のみがアンインストールされる。これだけでは、Mozilla Firefox時代のゴミが残ることになるので、以下のようにして再度、アンインストールしなければならない。
まず、一度アンインストールを実行したことにより、プログラムの追加と削除にはMozilla Firefoxのアンインストールが無くなっているので、C:\Program Files\Mozilla Firefox\uninstall\uninstall.exeを直接実行してMozilla Firefox時代の内容を全てアンインストールする。
この手順を踏むまでに、uninstallフォルダにあるインストールログを削除してしまうと、レジストリにゴミが残る原因になるので、くれぐれもMozilla Firefoxのフォルダを手動で削除したりしないように注意して欲しい。
FirefoxやThunderbirdのインストーラで、環境等々、様々な要因に基づいて、文字化けしたフォルダが作られたり、!uninstallというフォルダが作られていたバグ。
ようやく原因が分かった。Suiteのxpinstallから、toolkitのinstallerにソースコードを移植する際に、コピペで不要なコードまで持ってきていたのが原因。
未初期化のバッファを文字列とみなして、これと"uninstall"という文字列を連結させたフォルダを、(c:\Program Files\Mozilla Firefoxではなく)カレントフォルダに作成していたのが原因。ウインドウプロシージャから呼び出された関数がこのような処理を行っていたので、OSや環境の影響を多分に受ける形となっていた。
このフォルダは一切必要無いので、見つけたら手動で削除しておいて欲しい。 アンインストーラから、このフォルダの削除には失敗するようなので、手動で削除しておかないと、アンインストール時にこのフォルダが残ってしまう可能性が高い。
word-spacingはCSS 2.1では、
This value indicates inter-word space in addition to the default space between words. Values may be negative, but there may be implementation-specific limits.
とだけ記述されていたのだが、CSS 3のテキストモジュールの草案では、
This value indicates inter-word space in addition to the default space between words. If there are no word-separating characters, or if the word-separating character have a zero advance width (such as the zero width space U+200B) the user agent should not create an additional character advance width between words. If there are several word-separating characters (for example, multiple non collapsed white space characters), the added <length> can only be applied once. Values may be negative, but there may be implementation-specific limits.
と、変更されている。Mozilla 1.9a サイクル中に修正したい。
Bugzilla-jpはBBSではありません。 あれは開発ツールです。
問題山積。
このバグで扱っているのはこのふたつ。
Windowsの問題はA系APIにUTF-8にエンコードした文字列を渡していたのが原因。 A系APIに渡すべき文字列はネイティブコード。
二つめの問題は、印刷時に設定を全く保存していなかったのが原因。
ただし、例外があって、javascript:window.print;
の場合は、印刷直後に設定を保存している。
こちらも問題が二つ。
とりあえず、prefs.jsへの保存問題は簡単に修正できたので、現在チェックイン承認待ち。
問題はもうひとつの方。xpcomにメソッドを追加するしかないのか。
1.8b2(Deer Park Alpha1)をリリースしてもらわないと、チェックインが進まないなぁ。