» プラットフォーム開発

MDN が新システムに移行しました

米国時間 8/3 午前 10 時過ぎ(日本時間 4 日 午前 2 時過ぎ)に、MDN の技術ドキュメント Wiki のシステムが新システムに移行しました。

今までは、DekiWiki という Mozilla 外部のシステムを使っていましたが、新システムは Kuma と呼ばれる、Mozilla 内製のシステムになりました。

ドキュメント翻訳のための機能として大きなものは、翻訳版と英語版との紐付けがシステム側で行われるようになったことです。新しい翻訳方法については、MDN 日本語版の翻訳についてのドキュメントを参照してください。

Kuma は SUMO のシステム Kitsune を元にしているものの、まだ実装の足りない部分や解決されていない不具合があります。主なものは、Mozilla 翻訳フォーラム内の Kuma の既知の問題を参照してください。

未知の不具合に遭遇したときは、MDN サイト右上のバグ報告ボタンから、Bugzilla に報告してください。

英語での報告が難しい場合は、翻訳フォーラム、あるいは、MDC 日本語版 MLへ報告してください。Twitter ユーザであれば、MDN 日本語版リーダー宛 (@potappo)にリプライやメンションを飛ばすのでもかまいません。

MDN 日本語版も、新システムになっても引き続き、コンテンツの充実を目指していきたいと思いますので、興味のある方はぜひ翻訳にご参加ください。

Mozilla Hackathon 2012 無事終了!

7 月 28 日(土) から 1 泊 2 日の日程で行った Mozilla Hackathon 2012 が無事終了しました。

今回は、合計 31 名が参加し、翻訳や製品ローカライズの作業チーム 11 名、アドオン開発のチーム 10 名、その他のプラットフォーム開発などを行うチーム 10 名の 3 グループに分かれて作業を行いました。

Mozilla の開発や作業に参加するのは初めてという方、普段オンラインでは活動を行っているけれど、オフラインイベントは初!という方、10 年以上 Mozilla で活躍されているベテランコントリビューター、有名アドオン開発者、Mozilla Japan のエンジニアなど、さまざまなメンバーが一緒に作業を行うかたちになりましたが、オンライン上ではよく名前を見かけていていた方と実際に会って一緒に作業できたのは、大変有意義だったという声も多く聞かれました。

すでに、翻訳チームの作業の成果報告は、potappo さんがレポートを公開してくださっていますが、追ってアドオン開発、コア開発等の作業を行ったグループのレポートも報告があるかと思います。(追記: アドオン開発チームの成果報告が公開されました。コア・その他開発チームの成果報告が公開されました。 )

またこうしたオフラインのイベントが開催できればと思いますので、今回参加できなかった方もまた機会があればぜひご参加ください!

MozillaHackathon会場

会場内はこんな雰囲気

作業の様子

モバイルアドオンの開発!

フォクすけも参戦!

参加者の池田さんの誕生日のお祝いも!

成果発表後の記念写真

Mac版Firefoxで、IMEや、キーボード入力のログを取る方法

Gecko 8 (Firefox 8)以降では、Mac版のIMEやキーボードの処理がnsChildViewから切り離されました。この際に、開発者が入手できないIMEのデバッグも行えるようにログをとる機能をリリース版にも用意しています。

ログを取るには環境変数を利用しなくてはいけませんが、残念ながらGUIで手軽にこれを行う方法は分かりませんので、ここではターミナルを利用したやり方を紹介します。

(さらに…)

Linux版Firefoxでのキーボードハンドリングのログの取り方

Gecko 13 (Firefox 13)以降では、Linux版Firefoxのキーボードのハンドリング部分がnsWindowから分離されました。この際に、通常のリリースビルドでは無効化されていますが、自分でビルドする場合や、tryserverを利用する際に、--enable-loggingを指定しておくと、詳細なログを記録することができるようになりました。

(さらに…)

mozilla-centralで、DOM input イベントがIMEで入力中にも発生するようになりました

DOM の input イベントが IME の入力中にも発生するように mozilla-central に修正が入りました。問題が発見されなければ Firefox 12 に入ります。

この変更には Web アプリの開発者の方にとって、二つの意味があります。

まず一点目は、input イベントのハンドリングによって全ての編集タイミングを知ることができるという点です。これは IE や、 WebKit 系のブラウザでは以前からそうであったため、ブラウザ間の互換性が大きく向上したことになります。

二点目は、compositionupdate イベントのハンドラでは不可能だった最新の状態の取得が可能になるという点です。D3E の仕様書では、 compositionupdate の細かいタイミングについて述べられていません。実際の挙動を調査したところ、 Gecko と WebKit ではエディタが未確定文字列を処理する前に compositionupdate イベントが Web アプリケーション上で発生するため、イベントハンドラ内からエディタの値を参照すると、直前の編集結果の値が返されます。それに対して IE ではその compositionupdate イベントの data 属性の値が反映された、編集後の値が返されます。現在の Gecko では未確定文字列の編集中にはほとんどイベントが発生しないため、 compositionupdate イベント直後の最新の値を取得するにはタイマーを用いたハックぐらいしか手段がありませんでした。これが、 input イベントが未確定文字列の編集中には発生するようになることで、そのタイミングを適切に捕らえることが可能になります。

この修正により、 Web アプリケーションから見たブラウザ間の互換性は向上しますが、従来の Firefox 向けに何らかの特殊処理 (例えば上述のタイマーハック) を入れている場合にハンドラが二重に走って、なんらかの不具合が出る可能性もありますので、 Firefox 12 がリリースされるまでの間に多くの Web サイトでテスタによってテストされ、問題が発生したサイトへはフィードバックをできる限り行うことが必要となります。

また、最も問題が発生する懸念があるのは、こういった挙動を今まで想定していなかった、 Gecko 専用のアプリケーションです。これには、最も有名な XUL アプリである、 Firefox や、 Thunderbird の UI 、それにアドオンが考えられます。既に Nightly では、オートコンプリートと、検索バーの処理に修正が入れられました。他にもまだ問題のある UI があるかもしれません。そういった UI でのテストによるフィードバックもまた、必要です。

みなさんの積極的なテスト、フィードバックを必要としていますので、よろしくお願いします。

Nightly Mac版にリスキーな修正が入りましたのでテストにご協力をお願いします

2011/10/06夜のMac版Nightlyビルドでは、キーイベントの処理に非常にリスキーな修正が入りました。

この修正の目的は、ATOKの確定アンドゥのサポートですが、問題の修正箇所がCaminoの前身であるChimeraの頃に書かれたコードで、どのような目的をもって書かれたコードだったのか、よく分かっていません。詳細は私の日記に書いてありますので、あわせて参照してください

こちらでは、テストに関する要点だけを書いておきます。

今までのGeckoは、文字を入力するキーか、文字を入力しないキー(矢印キーや、Enterキー、Tabキー、Deleteキー等)もしくはControlキーを押している時のキーイベントで、keypressイベントの送信タイミングが違っていました。今回の修正は後者のイベント送信部分を削除し、文字を入力するキーと同じタイミングでイベントを送信するように変更しました。

この修正が意味しているのは、IMEやOSがキーイベントを処理した後にkeypressイベントが発行されるようになったということです。このため、特定のキーの処理が今まで、Webアプリケーションや、Geckoのエディタで先に処理されていたものの、NightlyではIMEかシステムが先にキーイベントを処理してしまって、今まで動いてたWebアプリケーションの機能が動かなくなった、といったことがあるかもしれません。また、動作に変化がなくても、キー入力時にビープ音が鳴るようになった、というような症状になっている可能性もあります。

キー入力を行ったときの動作に何らかの変化がある場合、細かいことでも良いので、その内容をbugzillaか、もしくはここのコメント欄にでも報告してもらえると非常に助かりますので、よろしくお願いします。

・Thunderbird3.1のアドレス帳に3個以上のアドレスを登録することはできますか

Thunderbird3.1を導入しました。アドオンを使ってGmailのコンタクトと同期を取っていますが、Gmailには1つの名前に対していくらでもメールアドレスを追加することができます。ところが、Thunderbirdのアドレス帳では2つのアドレスしか登録することができません。これを増やす方法なりアドオンはありますでしょうか?