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

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

もずはっく日記(2005年10月)

2005年10月1日

Bug 1241 javascript の document.lastModified はローカライズされて表示されるべき #2 初回投稿日時: 2005年10月01日00時28分14秒
最終更新日時: 2005年10月01日02時28分53秒
カテゴリ: Mozilla Core
固定リンク: id=2005100100
SNS: (list)

いまとなっては懐かしい、日本トップ・ウェブサイト テスト プロジェクトで発見された、IEとの非互換問題。

最終的に、document.lastModifiedは常に、MM/DD/YYYY hh:mm:ssという形式の文字列を返すように変更した。これは、HTTP経由か、ローカルファイルかも関係ないし、HTTPヘッダにlast-modifiedがあるかどうかも関係無い。常に、この形式は守られる。(ちなみに、HTTP経由で、last-modifiedが不明、もしくは不正な形式だった場合は現在時刻が返される。これは動的なページにおいては概ね正しいはずだ。)

肝心の返される内容だが、これはシステムの時刻設定に左右される。JSTのシステムの場合、GMTに九時間加算した時間が返される。つまり、日本の標準時間で返される。(今までのMozillaは常にGMTで返していた。正確にはHTTPヘッダの文字列がそのまま返されていたのだが。)

これらの仕様から、document.lastModifiedから取得した文字列をDateTimeオブジェクトに必ず変換可能であることが保証される。(日本人になじみのある形式で表示したければ、一度DateTimeオブジェクトを作成し、toLocaleStringを利用すれば、システム標準のフォーマットで表示可能である。)

参考となったMSの文書はlastModified Property (document) (Internet Explorer - DHTML)である。

また、とほほ氏のlastModifiedを綺麗に表示するには?がこの修正において大きな役割を果たしたことも記しておく。

最後に、テストケースと、そのスクリーンショット(Firefoxは修正後のもの)へのリンクを記しておく。

2005年10月2日

印刷回りのコードがボロボロ 初回投稿日時: 2005年10月02日03時23分59秒
カテゴリ: Firefox Mozilla Core Suite Thunderbird
固定リンク: id=2005100200
SNS: (list)

MozillaのコアとXPFEとtoolkit、それぞれうまくリンクできていない。IMEの修正が一段落したらこのへん、見直して行った方が良いのかもしれない。何より全体的にコードの設計が危なっかしい。ちょっと想定外のことがあるとバグを作り込んでしまう。

2005年10月3日

Bug 4620 非ASCII文字を含むファイルを開こうとするとUnknown Content Typeダイアログ(helper appダイアログ)のファイル名がエスケープされたまま表示される 初回投稿日時: 2005年10月03日05時53分32秒
カテゴリ: Mozilla Core
固定リンク: id=2005100300
SNS: (list)

パッチを一度はチェックインしたものの、MacとLinuxで起動時にクラッシュするという問題が発生した。(Linuxはコンパイラのバージョンか何かに依存するのか、私の環境ではクラッシュしなかった。Macは環境が無いので未テスト。)

現在、修正版のパッチを提出しているがMacでは未確認だし、元々前のパッチでもクラッシュしなかった私のLinux環境(VMWare + TurboLinux)ではテストを信頼して良いものかどうか分からない。(前のパッチを一部コメントアウトすると私の環境でもクラッシュはしたのだが、バグがある場合に必ずクラッシュするわけでも無いようだ。)

是非、手の空いている方はWindows、Linux、Mac、どの環境でも良いのでビルドして起動できるかどうかテストしてみて欲しい。私はこのバグが1.8Branchで修正されるべき最後の重要な国際化バグだと考えているが、今回のパッチが問題を抱えていた場合、1.8Branchでの採用はかなり難しくなるだろう。(そして間に合わなかった場合には、次のFirefox 2.0/Thunderbird 2.0まで修正は見送られる可能性がより一層高くなってしまう。)

2005年10月5日

2005年10月6日

Re: 拡張機能の厳密なバージョンチェック 初回投稿日時: 2005年10月06日00時26分19秒
カテゴリ: Mozilla Core
固定リンク: id=2005100600
SNS: (list)

当該記事の本題の方に対する批判は、私は分からないのでコメントできないですが。

あと恨みついでに言えば、リリース予定を一度として守れたことがない腐ったプロジェクト管理。その辺だよな。

まあ、外側から見れば、私は「中の人」なんで言い訳にしかならないのは分かってるんですが、実際問題、次のメジャーリリースまでこのバグを残したくない、というのが開発現場レベルではどうしてもあるもので、リリース予定の厳守よりもクオリティを優先ということでひとつ、勘弁してください。(開発現場を完全に統制しきれないのは、オープンソースの特徴だと思います。良くも悪くも。)

それでもリリースされたものには、どうしてこんなバグ(特に国際化まわりのregression)が、というのもありますが、リリース予定日に予定通り出してたら、さらに非道いものになってた、という現実もあることも理解してください。

こうなる原因はやっぱり、Nightlyテスタ(ちゃんとBugzillaにフィードバックを返してくれるテスタ)の不足、そして何より、パッチを書く人の少なさです。

前者が、ベータ版が出た後の急激な忙しさを物語ってますし、パッチを書く人が少ないのは今更言うまでもないですね。

まあ、だからこそ、Bugzilla-jpで作業してくれているスタッフの方や、パッチを提供してくれている数人の日本人ハッカーの方にはいくら感謝してもしきれません。今後ともよろしくお願いします。

私もここんとこ休日ゼロでずっと突っ走ってきたので、まあ、これ以上求められてもどうしようもねーなー、というのが本音といやあ、本音ですが、だからこそ、本業が別にあって、貢献してくれている方は凄いなぁと感心してしまいます。前の会社勤めのまま、パッチ制作できる自信は無いです。正直なところ。

2005年10月9日

Bug 1363 IMEがONの時、ショートカットキーが文字入力に使うキーだと機能しなくなる(スペースキーでスクロールできない/メーラでF,N,T,B,Pが効かない) #4 初回投稿日時: 2005年10月09日05時08分09秒
カテゴリ: Mozilla Core
固定リンク: id=2005100900
SNS: (list)

FirefoxやThunderbirdで完全に動作するパッチになってからが長いなぁ。

要素単位でIMEの有効無効を切り替える、という仕様で作っているのに、フォーカスなんて知ったこっちゃねえという腐った仕様のSeamonkeyのFAYTと実に相性が悪い。(やっぱり、テキストの入力はエディタでのみ処理する方がMozillaの設計に合っている。)

入力が開始されたらIMEを有効化、タイムアウトしたら無効化でなんとか対応できると思っていたのだが、ソースコードがぐちゃぐちゃで、これらが一本化されていない上に、タイムアウトを無視する条件もあってややこしい。しかも、タイムアウトを無視する条件が甘すぎで、Bug-org 190838の修正が場当たりすぎるんではないかという臭いが。

レビューを申請するのにまだ数日かかりそう。

まじかるナースステーション乙乙!終了 初回投稿日時: 2005年10月09日05時22分57秒
最終更新日時: 2005年10月09日05時24分13秒
カテゴリ: Anime
固定リンク: id=2005100901
SNS: (list)

足かけ四年も続いた長寿インターネットラジオシリーズ、ついに終了。今でこそインターネットラジオでアニラジって多いけど、三年前に私が聞き出した時はインターネット配信ということ自体が新鮮に思えたので感慨深い。

でも、インターネットで24時間ラジオをやる、というのは後にも先にもこの番組だけになりそうだなぁ(笑)

2005年10月10日

Bug 4069 日本語の添付ファイル名が添付時に文字化けする 初回投稿日時: 2005年10月10日03時57分09秒
カテゴリ: Mozilla Core Thunderbird
固定リンク: id=2005101001
SNS: (list)

まだクリティカルな国際化問題が残っていた。

とりあえずパッチを作ってみた。これなら、mozilla/mailnews/以下での修正だけで済むので、以前のパッチのようなregressionは心配しなくても良いだろう。ただ、Win以外のOSできちんと動くかは未確認。是非、パッチをレビューしてもらっている間にテストしてみて欲しい。(特にMac)

DOS時代のファイラー“FD”作者、出射厚氏逝去の報 初回投稿日時: 2005年10月10日04時54分47秒
最終更新日時: 2005年10月10日04時55分18秒
カテゴリ: News Software
固定リンク: id=2005101002
SNS: (list)

FDにはDOS/Win3.1時代はめちゃくちゃお世話になりました。

DOSを初めてさわった当時、ファイルとディレクトリの概念がよく分からなかったんですが、FDで視覚化されたおかげで簡単に理解できました。そういう意味では、未だにPCを部屋の片隅に追いやらずにこんな仕事ができているのも出射氏のおかげかもしれません。

ご冥福をお祈りいたします。

2005年10月11日

これってスタック使わないの? 初回投稿日時: 2005年10月11日04時59分20秒
カテゴリ: 雑談
固定リンク: id=2005101100
SNS: (list)

前に、char foo[] = "bar";だとスタックに配置されずに、匿名のグローバルな領域に配置されるのでスレッドセーフじゃないよ、と指摘されたんですが、そうなんですか?

2005年10月13日

今日は何も出来ず 初回投稿日時: 2005年10月13日01時37分45秒
カテゴリ: 雑談
固定リンク: id=2005101300
SNS: (list)

私用で今日は丸一日つぶれてしまった。(起きたのが朝4時半ぐらいなので、これから仕事なんてできない。) まあ、どのみち、1.8 branchのボールは全て本家側に投げ込んでいるので1.9aの作業しかできないのだが。

2005年10月15日

Bug 4620 非ASCII文字を含むファイルを開こうとするとUnknown Content Typeダイアログ(helper appダイアログ)のファイル名がエスケープされたまま表示される #3 初回投稿日時: 2005年10月15日04時17分37秒
カテゴリ: Mozilla Core
固定リンク: id=2005101500
SNS: (list)

DarinとChristian Biesingerのおかげで、ようやく修正完了。

ただし、regressionがひとつだけあって、メール作成時に非ASCII文字を含むファイル名のファイルを添付しようとすると、文字化けどころか、名前が全く表示されず、送信する時にもヘッダがおかしくなる。この問題はBug 4069に提出中のパッチで修正可能。

2005年10月17日

2005年10月20日

Bug 4665 非ASCII文字が含まれるファイルをコマンドライン経由で開けない 初回投稿日時: 2005年10月20日00時10分13秒
カテゴリ: Suite
固定リンク: id=2005102001
SNS: (list)

SeaMonkeyでは、コマンドライン(や、Explorer)から、日本語を含むパスのファイルを開けないというバグ。何によるregressionだったのか調査するのに三ヶ月分も調査する必要があったが、なんとか割り出して修正完了。

SeaMonkeyも1.8 branchからリリースされるのだろうか? もし、そうならこれをチェックインすべきだが……

2005年10月21日

Bug 4349 [Win版インストーラ] デスクトップ/スタートメニュー/クイックランチバーへFirefox項目が強制的に登録される 初回投稿日時: 2005年10月21日03時27分52秒
カテゴリ: Firefox Thunderbird
固定リンク: id=2005102100
SNS: (list)

修正された。

前にも一度、修正にトライしたことはあったのだが、ショートカット作成の判断をしているところが全く分からなかった。まさか、レジストリを経由してたとは……。でも、多分このバグは直せなかったと思う。よくBenjaminはこのバグの原因を見つけたもんだ。詳しくはパッチ参照。

開発機が滅茶苦茶不安定に 初回投稿日時: 2005年10月21日04時36分18秒
最終更新日時: 2005年10月21日05時14分22秒
カテゴリ: 雑談
固定リンク: id=2005102101
SNS: (list)

突然、ブルースクリーンや、リブートが多発するようになった。前からたまにあったことだが、ちょっとひどい。この一時間で何度落ちてるか分からない。一年後買い換え予定だったのだが、そうもいってられなくなったかなぁ。

どうにも駄目。CPU/MB/メモリ/Videoと、疑わしいコア部分はまるごと交換した方が良いだろうか。サウスが変わるとOSも入れ替えになるで数日間、開発作業は止まるかも。明日、徳島で品揃えを確認して、駄目なら大阪行くしかないなぁ。(代替にPentiumMを考えているけど、Athlonのままにする方が現実的かな。)

2005年10月22日

PC再構成 初回投稿日時: 2005年10月22日01時14分18秒
カテゴリ: 雑談
固定リンク: id=2005102200
SNS: (list)

とりあえず、CPU/メモリ/MB/グラボの四つを買い換えて組み立てた。(PentiumMは徳島では即日入手できないみたいなので、Athlonのままアップグレードすることに。デュアルコアにしようか悩んだものの、Windowsの再インストール決定になってしまうのと、価格差の問題で、シングルコアの3700+に落ち着いた。)

しかし、電源コネクタの形がまた変わってる……。明日買いに行かなくては。というわけで動くのかどうかは明日に延期。

ふと、思ったこと。 初回投稿日時: 2005年10月22日04時58分05秒
カテゴリ: Mozilla Core 雑談
固定リンク: id=2005102201
SNS: (list)

Mozilla/5.0を名乗りだしてから、かなりの時間が経過している上に、次のメジャーリリースではCairoによる先進的な表示に進化する予定だが、Mozilla/6.0はいつからなのだろうか? Cairoを利用する次から? それともGecko2.0から? はたまたもっと後?

2005年10月23日

とりあえず、起動成功 初回投稿日時: 2005年10月23日00時12分07秒
カテゴリ: 雑談
固定リンク: id=2005102300
SNS: (list)

とりあえず開発機の方、起動して概ね復旧しています。高負荷時にリブートしないか若干不安がありますが多分大丈夫でしょう。とりあえず、スペックは以下みたいな感じにアップさせました。

パーツ交換前交換後
CPUAthlon XP 2800+Athlon 64 3700+
MemoryPC2700(DDR333) 512M × 2PC3200(DDR400) 1G × 2(Dual Channel)
GPUParhelia-LXGeForce 6600
電源(ピーク時)350W(470W)550W(650W)

唯一後退してしまったのが、Dual-DVIが、DVI+アナログRGBになってしまった。

メモリ容量がでかくなった上に、速度が上がってるのでビルド時間が短縮されているといいのだが。

Bug 4683 ソフトウェアアップデートの更新履歴が文字化けする 初回投稿日時: 2005年10月23日02時06分42秒
最終更新日時: 2005年10月23日02時59分21秒
カテゴリ: Mozilla Core
固定リンク: id=2005102301
SNS: (list)

FirefoxやThunderbirdにJLPを当てて更新した時に発生する国際化バグ。よくぞここまでテストしてくれた、という感じで、とても嬉しい。

報告の内容も詳細で、各種資料も要求するとすぐに用意してくれた。素晴らしい。さらにすごいのは、パッチ案まで提供してくれたことだ。本家へ即、報告と修正案の提出ができたのは、この報告者、あさんのおかげである。本当に、ありがとうございました。

Trunkでは早速修正完了。

かなり高速化 初回投稿日時: 2005年10月23日02時41分47秒
カテゴリ: 雑談
固定リンク: id=2005102302
SNS: (list)

いつも通り、一からFirefoxをビルドしてみると30分で終了した。やっぱりメモリが効いてるのかな。

2005年10月26日

Gecko1.8相当製品において修正したバグ 初回投稿日時: 2005年10月26日02時15分52秒
カテゴリ: Firefox Mozilla Core Suite Thunderbird WebStudio
固定リンク: id=2005102600
SNS: (list)

おそらく、世間から見ればMozilla Japanはローカライズだけやってんじゃないかと思われがちだと思うので、プロダクトに対するMozilla Japanの貢献もまとめておこうかと思いまして、もずはっく日記のダイジェストのような文書を作りました。

2005年10月29日

Bug 4697 [FAYT][Find in This Page][bfcache] フレームページで検索した後、ブックマークで別のページに移動して検索すると、検索が機能しない 初回投稿日時: 2005年10月29日23時44分23秒
最終更新日時: 2005年10月29日23時47分03秒
カテゴリ: Firefox
固定リンク: id=2005102900
SNS: (list)

今日の昼頃、起きてすぐに発見してしまった。まさかと思って1.5rcの候補ビルドでテストしても再現する。

regresssionの日付を調査すると、bfcacheがデフォルトでオンになった日だったので、bfcacheをオフにしてみると、見事に動作してしまう。

FirefoxのFastFind(Find in this pageやFAYTの検索エンジン部分)は、初めて検索するドキュメントかどうかを、なかなかにトリッキーな手法で判断していたため(これにより、初期化処理を明記しなくても良くなっていた)、bfcacheが実装されるまではオブジェクトの参照カウンタの妙でうまく動いていた。

しかし、bfcacheが非表示になったページのオブジェクトをつかんだままにしているようで、このせいで、ユーザが新しいページを検索しようとしているのに、FastFindは古い(メモリ内にある)前のページを検索しているというのがこのバグの正体。

とりあえず、緊急でパッチを書いて、rc1のブロッカー申請をして、driversにもメールを投げてみたが、今のところ無反応。

トリッキーなコードは見てて面白いけど、仕様変更に弱いから止めましょう。

Bug 4681 ThunderbirdのAddress bookのEdit cardダイアログでIMEの候補リストやATOKナビの位置がずれる 初回投稿日時: 2005年10月29日23時56分22秒
カテゴリ: Mozilla Core
固定リンク: id=2005102901
SNS: (list)

修正完了。

昔に、Macで同じ問題が発生していて、アドホックな対応をしていることが分かったので、それに合わせて単純に修正。

本当はもっと根本から修正したいのだが、そうするとエディタのインターフェースを書き換えて、なんやかんやとやっていると大きなパッチになるわ、全OSでテストしなくてはいけないわと、大変なことになるのでそこまでやらない。

2005年10月30日