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

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

もずはっく日記(2008年2月)

2008年2月4日

Matzにっきの騒動を見て思うこと 初回投稿日時: 2008年02月04日07時23分02秒
最終更新日時: 2008年02月04日17時00分37秒
カテゴリ: 雑談
固定リンク: id=2008020400
SNS: (list)

言語オタクではないので内容そのものにどうこう言うつもりはないのですが、始めに書かれた文章と、その後のコメントやエントリを読んでいくと、真意を伝えることの難しさというものを感じさせられたので、そのことについて。

文章という伝達手段が元々、ニュアンス等の細かい付加情報を与えづらいという側面もある上に、blog等のWeb上の日記 — というかURIというものを採用してしまったWeb上のありとあらゆるコンテンツ — は読み手が読みたい部分だけ(もっと言うなら話題になった部分だけ)を読めてしまう便利さがある反面、書き手が真意を伝えるというのはより難しいものだと思います。書き手には脳内、もしくは自分の過去の文面に、そのコンテンツの土台、前振りとなるような内容のコンテンツがありますが、それを全て記述することはできないからです。

このような理由から、Web上で意見を書きたい場合、書き手からすれば、もの凄く端折ったものを書くことになります。そんな不便なものを、読者が理解しようとする場合、その端折った文章と、入手可能な(というか入手済みの?)範囲でのその人のプロフィールから作者の考えを推測することになります。

結果、読み手の推測と書き手の真意にずれがあると、書き手の望まない方向へ話が進むことになります。書き手は自分への批判・反論もまた、同様の推測を経てそれを理解しようとする訳で、そう考えるとWebページ上での意見交換というのは色々とアヤシげなものに思えてしまいます(実際、アヤシいものですが)。

書き手は立場を明確にしてしまうと、読み手によっては影響力、説得力が大きくなります(なってしまいます)。無論、読み手が書き手の専門分野であると考えることができる分野における内容の場合です。このような状況下では個人的な意見をそうであると(読み手全員に)伝えることはできません。

黙ってしまえば表面的には問題ないわけですが、建設的ではないですし、何よりも意見は言いたいというのが人情ってものでしょう。私も立場を明確にしちゃってますので内容によっては個人的な意見を書きにくいのですが、それでも自分の意見が書きたいときは多々あります。私の場合どうしてるかというと、推測されちゃ嫌な方向へ推測される可能性を消していく文章を書くことに努めています。うまくいってるかどうかと言うと、うまくいってない気はしますが。

近頃は『空気読め』なんていう言葉が流行ってますが、相手に意図が伝わっていないというのは自分の表現能力のマズさを反省しなければいけないポイントなのだと思います。また、少しでも相手に正確に伝えようと考えるのであれば匿名での発信というのは根本的なところで間違っていると思います。自分の考え方やその他、読み手の理解の助けとなるものを一切排除して伝えようとしている訳ですから。

2008年2月6日

Fx3 beta3 for Mac 初回投稿日時: 2008年02月06日05時18分45秒
カテゴリ: Firefox
固定リンク: id=2008020600
SNS: (list)

Linuxもだけど、Macは特にbeta3のクオリティじゃないよなぁ、と原因作ってる一人としてつぶやいておきます。特に私しかやる人の居ない、IMEまわりの修正は色々とやばいです。

その辺、担当なのに全くテストできてないので、テスタの人は報告よろしくお願いします。目立つバグだから誰か気付いて報告するだろうというのは無しの方向でひとつ。Macには明示されていないショートカットキーがあったり、Macユーザじゃない私はまず気付かないバグが多いと思われますので。

2008年2月9日

2008年2月11日

Bug-org 415595 Use nsIPrefLocalizedString for intl.accept_languages in gfxWindowsFonts.cpp 初回投稿日時: 2008年02月11日05時19分49秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008021101
SNS: (list)

新しいgfxのthebesではCJKのフォントのフォールバックの優先順位付けにaccept_language設定を利用しているのですが、その値の取得がlocalized stringとして取得しないといけないのに、単に文字列として取得していたというバグです。単純なので一瞬で修正できました。

問題の箇所は私のミスなのですが、昔からこの手のバグはいくつかあっているので、こういうややこしい(ミスしやすい)構造自体がまずいですよね。ちなみに、うちのJohnさんからの突っ込みで判明したバグです。

2008年2月13日

Bug 5097 [Cairo][GTK2] 日本語フォントがbold/italicで表示できない #2 初回投稿日時: 2008年02月13日07時31分51秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008021300
SNS: (list)

italicのバグは修正が完了しました。環境非依存で大丈夫なはずです。

font-weight: bolder;が効かない問題はある程度は解消されていますが、厳密に正しい修正を入れた訳ではないのでfontconfigの設定次第ではまだ問題があるようです

2008年2月15日

Bug 6028 Gmailのメール作成の本文入力でIMEが無効(日本語が入力できない)のままである #2 初回投稿日時: 2008年02月15日03時26分44秒
カテゴリ: Mozilla Core バグ修正 バグ原因判明
固定リンク: id=2008021500
SNS: (list)

動作に関しては修正が完了しました。まだ若干コードの品質で注文がついていますが。

問題が発生していたのはdesignModeを有効にした場合でした。このとき、通常のHTMLエディタとは違い、各ノードは編集可能にはならず、documentのみが編集可能であるというフラグを持つ、分かりにくい仕様が原因です。ちなみに、各ノードの状態を変更していないのはJavascriptから動的に設定するものなのでパフォーマンスの低下を防ぐためだそうです。

Bug 6035 GTK_IM_MODULE=uim では、Firefoxが起動できない 初回投稿日時: 2008年02月15日03時30分32秒
カテゴリ: Mozilla Core バグ報告
固定リンク: id=2008021501
SNS: (list)

uimを使っている環境ではtrunkが起動しないというバグです。全く原因の想像が付かなかったので地道にregression範囲を絞り込んでいったところ、Bug-org 417066 Enable jemalloc by default on Linuxに行き着きました。

ここに書かれている通り、--disable-jemallocでビルドしてやればuimでも起動可能です。クラッシュの原因がjemallocにあるのかuimにあるのかは不明ですので情報お持ちの方は是非コメントをつけてください。

2008年2月16日

開発環境移行 初回投稿日時: 2008年02月16日19時20分34秒
カテゴリ: 雑談
固定リンク: id=2008021604
SNS: (list)

メモリがとてつもなく安い状況が続いていたのでメモりを8Gにリプレースしました(2G * 4ですがCFD elixirのパッケージでも合計で2万円かからなかった)。もちろん32bitのWindows環境では3G強しか使えないのでWindows Vista Ultimateのx64版へアップグレード。開発環境でいくつかハマったことをメモしておきます。

cygwinのcvsがうまく機能せず

cygwinのcvsがうまく機能せず、チェックアウト中に止まるのであきらめてMSYSのcvsを使うようにしました。

VS2005でビルドできない

チェックアウトタイミングが悪かったのかもしれませんが、accessible内のビルドでエラーが出て先に進めませんでした。VS2008を使うことで解決しています。

Mozilla BuildのバッチファイルからVSが発見できない

Vista x86版にインストールしたときとはレジストリへの登録内容が違うようで、適当なエントリが見あたらなかったのでインストール先のパスをそのままバッチファイルに埋め込んで対応しました。

Mozilla BuildのMSYSの端末が無限に起動し続ける

64bitに対応したバイナリが必要なようです。詳しくはMozilla build system with Windows Vista x64を参照してください。

ビルドが終わってもマニフェストが不正でfirefox.exeが起動できない

何が原因か分かりませんがビルド時にマニフェストが変更され、もともとあった要素と同じものが追加されてしまい、それがエラーの原因となっています。browser/app/firefox.exe.manifestのms_asmv3:requestedPrivileges要素を空にしてビルドすることで対応しました。

一応開発環境以外の話もメモしておきます。

GW-DS300Nのドライバのインストールができない

インストーラからはうまくイントールできないのですが、インストーラをとりあえず動かしてProgram Files (X86)内にPLANEX\PCI GW-DS300N\INSTALLER\WINX64が入っていれば、手動でドライバをインストールする際にここを指定してあげるとインストール可能です。ただし、Windows Updateでこのドライバを1.0.0.2にアップグレードすると無線LANが不安定になり、まともに使えませんでした。

mixi stationがインストールできない

探してみると同じ症例発見しました。コマンドプロンプトを管理者モードで起動して、C:\Windows\SysWow64\regsvr32 jscript.dllとうちこんで32bit版の jscript.dllを登録しておく必要があるようです。最初はWindows+Rから打ち込んでうまくいかずに悩みました。これだけで普段からadministrator権限使ってたのバレバレですね。そういう意味ではVistaのUAC優秀。うざいですが。

動画再生中にUACの確認ダイアログが出ると不具合が多い

アプリケーション問わず、様々な不具合があるようです。一度Aeroをオフにすることが原因と思われるので、[管理ツール]の[ローカル セキュリティ ポリシー]を起動して、[ローカル ポリシー]の[セキュリティ オプション]内の[ユーザー アカウント制御: 昇格のプロンプト時にセキュリティで保護されたデスクトップに切り替える]を無効にすることで問題なくなりました。

DVDプレーヤ

WinDVD8/9はドライブアクセス時に完全にではないですがフリーズしてしまいます。CPU使用率は0%なので何かの応答を待っているんだと思いますが、WinDVD9だと起動だけに2分もかかったりと使い物になりません。おまけに9ではSPDIFの認識が全然できませんでした。PowerDVD7は相変わらずCPU使用率が高すぎるのでながら見が多い私には使えません(単体使用なら問題無いと思います)。Nero ShowTimeはデュアルディスプレイでプライマリ以外のディスプレイから再生をスタートさせるとクラッシュしますし、セカンダリでフルスクリーンにしてもプライマリにコントロールが表示され、RocketDockの妨害をしてくれる有様。Windows Media Centerはなぜかフルスクリーンで再生中にもうひとつのディスプレイへマウスカーソルが移動できなかったり、フリーズしまくったりして問題外。WMPはそこそこ良かったのですが使いにくいので断念。今はMPCを利用しています。リジューム機能が無いのが不便ですが、私の個人的な要件をそれ以外は満たしてくれている様です。

以上、スマートじゃない解決策とってるものもありますが、気にしないでください。

VMをしょっちゅう使う関係上、Phenom9500も安くなったので導入したところ、かなり快適になりました。メモリ8Gの威力は大きく、VM2台に2Gずつメモリを割り当ててもホストには4Gも残ります。またクアッドコアだとビルド時の負荷が見事に各コアに分散されて、さほど高速化はしないものの(そもそもPhenomはトップスピードは遅い)、CPU使用率が全体で100%に到達することがなく、非常に快適に作業できます。ただ、CPU温度がAthlon X2 4800+に比べて約10度も上がっているのが少し気になります。このへんは45nm版が出るまでどうしようもないでしょうけど。

WOW64の互換性、安定性は非常に高く、32bitアプリは変なことをしていない限り、大抵、そのまま動いてしまうようです。手持ちのハードウェアのドライバの64bit版が出揃っている方なら割と簡単に移行できるのではないかという印象です。

ちなみに、モバイル用のVAIOに入っているVista Business x86版よりもなぜか安定して動いてます。ハードやドライバまわりの差なのか、x86版とx64版の違いなのかは不明ですが。むしろ5年ぐらい前にインストールしたWindows 2000からWindows XPにアップグレードしていた先代よりもクリーンインストールな分、すっきりしてて機敏に動いています。

2008年2月21日

Bug 5845 [text-decoration] 下線がスクロール時に再描画されないことがある 初回投稿日時: 2008年02月21日01時58分05秒
最終更新日時: 2008年02月21日14時23分05秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008022100
SNS: (list)

再度チェックインを行い、修正が完了しました。

この修正で下線等のdecorationによる線はオーバーフローがあっても必ず再描画対象となるようになりましたので、今後、同様のバグは再発しないはずです。

ひとつだけGeckoエンジンに仕様変更があり、選択範囲を変更した直後にnsISelectionController::ScrollSelectionIntoViewで最後の引数をtrueにしているとスクロールに失敗するようになりました。拡張作者の方は要注意です。(WebページからのDOMアクセスにも何らかの影響があるかもしれませんが、私はDOM仕様には詳しくないので不明です。)

む。この仕様変更、元に戻せそうです。

Bug 5921 下線位置等はXPレベルで補正すべき 初回投稿日時: 2008年02月21日02時02分14秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008022101
SNS: (list)

おかしなmetricsを持つフォントは今まで各OSごとに値を読み替える等の処理を行っていましたが、フォントはOS非依存(厳密には違いますが)なのでXPレベルでこの修正を行い、プラットフォーム毎の差が出ないようになりました。

Bug 6024 [Cocoa] IME利用中にマウスでメニューを使うと確定してしまう 初回投稿日時: 2008年02月21日02時10分48秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008022104
SNS: (list)

MacでIMEを利用中に画面右上のIMEのメニューを利用すると未確定文字列が確定されてしまっていたバグ。二つの修正を入れることで修正できました。

一つ目はGecko自体のバグで、ウインドウ切り替え時に未確定文字を確定しないように修正しました。ただ、Geckoのウインドウ同士を切り替えた場合は内部仕様上確定しないといけないのですが、ここにもバグがあり、Macは他のプラットフォームと違い、deactivateイベントがフォーカスを失う直前ではなく、直後に発生するため、フォーカス喪失時のIMEの確定イベントをエディタに対して配信できるように修正が必要でした。

二つ目はロケーションバーや検索ボックスではフォーカス取得時に文字列を全て選択するようになっているのですが、この際に未確定文字列が確定されてしまうため、未確定文字列がある場合には選択が実行されないように修正しています。この修正のみ、全てのプラットフォームが影響を受けています。

2008年2月27日

Bug 5161 [Places] ドラッグ中にツールバーのフォルダが自動で開かない 初回投稿日時: 2008年02月27日07時26分25秒
カテゴリ: Firefox バグ修正
固定リンク: id=2008022700
SNS: (list)

ブックマークツールバーを愛用している人お待ちかねのこのバグが修正されました。

ただ、メニューが長い場合のスクロールがまだ完全に復活していませんが、この辺は修正間に合うんでしょうか。とりあえずバグを報告しないと始まりませんが。

Bug 6039 Osaka−等幅 (Osaka-mono) が使えない 初回投稿日時: 2008年02月27日07時33分38秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008022702
SNS: (list)

Johnさんの巨大パッチの都合上、一度はバグでOsaka-monoが使えなくなっていましたが、修正されました。

Osakaは同じfamilyにプロポーショナルと、等幅のフォントがセットになっているという非常にイレギュラーなフォントなのでスムーズな対応ができていませんでした。(Safariのフォント設定にOsaka-monoは出てこないはずです。)

Appleはまともな日本語の等幅フォントを用意するつもりは無いのでしょうか? 私は下線位置がおかしくなる問題でOsaka-monoに悩まされています。ヒラギノという非常に綺麗なフォントがメインで使われているだけに、その落差がMacユーザでも無いのに気になります。

Bug 5730 フォントの高さがページの高さより高い場合にページスクロールが逆転してしまう 初回投稿日時: 2008年02月27日07時39分36秒
カテゴリ: Mozilla Core バグ修正
固定リンク: id=2008022703
SNS: (list)

masaさんが修正してくれました。実に素晴らしい。そして、感謝です。

全然、bugzillaの方、追跡できてませんでしたので何のフォローもできませんでした。申し訳ありません。他の貢献者の方も含め、本家bugzilla-orgの方で、何かサポート(とか質問)が必要なことがありましたらメールで連絡ください。今、自発的にサポートにまわる余裕はありませんが、直接連絡いただければ出来る限り対応させていただきます。