このサイトの記事更新は2019年11月に終了されました。過去記事アーカイブを公開しています。
投稿されたすべてのトピック
Firefox 9 のアドオン互換性に関わる修正のまとめ
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 9 の抄訳です]
Firefox 9 が最近 Aurora チャネルへ移行しましたので、いつも通り、アドオンの互換性に影響を与えるすべての変更点をまとめます。今回筆者 [Jorge Villalobos] が見つけたバグで厄介かと思われるものはごくわずかでしたが、言及すべき小さな変更点は多々あります。このバージョンに関する包括的な情報は、MDN の Firefox 9 for Developers を参照してください。
それではさっそく見ていきましょう。
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か、もしくはここのコメント欄にでも報告してもらえると非常に助かりますので、よろしくお願いします。
Firefox 8 の後方互換性に関わる修正
Firefox 8 は現在 11/8 の正式リリースに向けて開発が進められています。Firefox は新しいバージョンになっても可能な限り Web サイトの後方互換性が維持されるように開発されていますが、他のブラウザとの相互運用性や最新 Web 標準仕様への準拠のため、後方互換性に関わる修正も含められます。そのような修正点についてまとめましたので、Firefox 8 での動作検証をしていただくときなど、参考にしていただければ幸いです。
ここでは新機能ではなく後方互換性に影響し得る修正のみを説明します。後方互換性に関わるものに限らず、Firefox 7 の主な新機能や変更点については次のページをご覧ください:
- ユーザ向けも含めた新機能: Firefox 8 の主な新機能を紹介します
- 開発者向けの新機能や変更点: Firefox 8 for developers
Firefox 8 の主な新機能を紹介します
編集テスト用ページ
このページは編集テスト用のサンドボックスページです。編集テストにご自由にお使いください。
// lang 属性が消える件直ってるよ o(°▽°*o)(o*°▽°)o~♪ var geolocation=Components.classes["@mozilla.org/geolocation;1"] .getService(Components.interfaces.nsIDOMGeoGeolocation); geolocation.getCurrentPosition(function(position){ Application.console.log(position.coords.latitude+','+position.coords.longitude); });
var test; foo = "Syntax Highlight Test";
// indent // more indent // entity & <tag> test ; var test; foo = "WP-Syntax Test";
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>SyntaxHighlighter Demo Page - <?= htmlspecialchars($title) ?></title> </head> <body> <? /*********************************** ** Multiline block comments **********************************/ $stringWithUrl = "http://alexgorbatchev.com"; $stringWithOutUrl = 'hello world'; ob_start("parseOutputBuffer"); // Start Code Buffering session_start(); function parseOutputBuffer($buf) { global $portal_small_code, $portal_gzcompress; global $PHP_SELF, $HTTP_ACCEPT_ENCODING; // cleaning out the code. if($portal_small_code && !$portal_gzcompress) { $buf = str_replace(" ", "", $buf); $buf = str_replace("\n", "", $buf); $buf = str_replace(chr(13), "", $buf); } } ?> <!-- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. --> </body> </html>
10月1日(土) に Mozilla 勉強会@東京 6th を開催します
時間割や懇親会、Lightning Talk の募集などについて詳しくは確定し次第上記ページに掲載します。
ご参加いただける方は ATND にてご登録をお願いします。
追記: 勉強会の時間割やセッション内容などは確定しました。
Add-on SDK で始めるアドオン開発( XPCOM 編)
前回の記事:Add-on SDK で始めるアドオン開発(自作モジュール編)
XPCOM コンポーネントの利用
前回までの記事では、 Add-on SDK に備わっているライブラリを用いたアドオンの実装を行いました。
SDK のライブラリを用いた開発は、簡単な記述で拡張機能を実装できる反面、必要なモジュールが不足しているなどの理由で、実現可能な機能が限られているのが現状です。
XPCOM コンポーネントは、ファイルの入出力やレジストリ操作など、 JavaScript だけでは実現できない機能をクロスプラットフォームに提供しており、これを用いることでより高機能な拡張機能や、 SDK のモジュールなどを実装することが可能となります。
今回の記事では、 Firefox のデータベースからユーザの履歴情報を取得する機能を例として、XPCOM コンポーネントの機能を SDK で利用する方法を紹介します。
アドオンの対応バージョン自動更新と互換性チェックツール
更新: Firefox 10 でアドオンの互換性が改善され、バイナリコンポーネントを含まない拡張機能は自動的に新バージョンへ対応するようになったため、対応バージョンの自動更新は廃止されました。
4 月に投稿した「アドオンの互換性と高速リリースサイクル」以降、一連の記事で説明しているように、高速リリースサイクルが採用された Firefox/Thunderbird 5 から、AMO に登録されているアドオンは基本的に対応バージョン (互換性情報) が自動的に更新されています。これによってアドオン作者の負荷は大幅に軽減されますが、この仕組みを知らずに手作業で更新作業をしている方もまだ少なからずいるようですので、改めて説明しておきたいと思います。
Firefox 8 のアドオン互換性に関わる修正のまとめ
[これは Mozilla Add-ons Blog の記事 Add-on Compatibility for Firefox 8 の抄訳です]
この記事は本来もっと早く公開するはずでしたが、ずっと先延ばしになっていました。遅れて申し訳ありません。AMO では先週金曜日 (8 月 26 日) に Firefox 8 へ向けた互換性情報の更新を行いました。このシステムにはまだいくつか修正すべきバグがありますが、検証はほぼ成功し、約 3,000 個のアドオンが自動的に Firefox 8 対応となりました。
以下、現在 Aurora として公開されている Firefox 8 に投入された、アドオンの互換性に影響する変更点を、筆者 [Jorge Villalobos] が分かる範囲でまとめました。
Add-on SDK で始めるアドオン開発(自作モジュール編)
前回の記事:Add-on SDK で始めるアドオン開発(Context-menu 編)
今回の記事では、前回作成したコンテクストメニューの拡張機能を題材として、自作モジュールを作成する方法を紹介します。
今回の自作モジュールでは、今まで利用してきた addon-kit ライブラリだけでなく、よりプリミティブな機能を提供する api-utils ライブラリを用いた実装を行います。
また、拡張機能に表示する文字列などを各言語ごとに用意しておき、ユーザの環境に応じて拡張機能のローカライズを行う方法も紹介します。