草案
このページは完成していません。
この記事は Thunderbird 5 の新機能について述べています
このページは、Thunderbird 5 における開発者向けの変更点のリストです。エンドユーザ向けの変更点は、Thunderbird サポートの記事をご覧ください。
Gecko 5.0
Thunderbird 5 は、Gecko 5.0 をベースにしています。Firefox 4 および Firefox 5 のページに、Gecko に対する重要な変更の詳細があります。
Mozilla とアドオン開発者向けの変更
既存の拡張機能を Thunderbird 5 向けに更新するための役立つヒントについては、Updating extensions for Firefox 4 を参照してください。既存の拡張機能の互換性を損なういくつかの鍵となる変更点があるため、この記事を必ずお読みください。
STEEL
- Thunderbird 5 には新しいアドオンマネージャが搭載されています。その副作用として、グローバルな Application オブジェクトは、もはや拡張機能のプロパティを持ちません。詳細は、このブログ記事を参照してください。
JavaScript コードモジュール
- Services.jsm
Services.jsm
コードモジュールは、preferences サービスや window mediator、その他多くの一般的に使用されるサービスへの参照を簡単に取得できる getter を提供します。- mailServices.js
- mailServices.js コードは Services.jsm と似ていますが、メール機能固有のサービスのためのものです。
- JS-ctypes API
- JS-ctypes API は、XPCOM を使用せずに C 互換の外部ライブラリ関数を呼び出すことを可能にします。
- アドオンマネージャ
- 新しいアドオンマネージャは、インストールされたアドオンについての情報、それらを管理するためのサポート、アドオンのインストールと削除を行う機能を提供します。
- chrome: URL からのコードモジュールの読み込み
- JAR ファイル内であっても、chrome: URL を使用して JavaScript コードモジュールを読み込めるようになりました。
- DownloadLastDir.jsm
DownloadLastDir.jsm
コードモジュールは、gDownloadLastDir
グローバル変数を提供します。これは、最後にダウンロードされたファイルの保存先ディレクトリのパスを取得できる文字列を含みます。このモジュールは、プライベートブラウジングに関連する問題を扱います。
コードモジュールに対する変更
NetUtil.jsm
コードモジュールに readInputStreamToString()
メソッドが追加されました。これは、ストリームから任意のバイト数だけ文字列に読み込みます。ストリームに 0 (ゼロ) が含まれていても可能です。
MimeMessage API
Cu.import("resource:///modules/gloda/mimemsg.js");
からの MsgHdrToMimeMessage
関数が、追加のプロパティを持つ MimeMessage
を返すようになりました。これは、メッセージを簡単に解析して構造的な MIME ツリーにし、検査するための推奨された方法です。API に制限が多いと思ったら、ぜひバグ報告してお知らせください!
-
MimeMessageAttachment
インスタンスに、メッセージの添付ファイルのサイズへアクセスできるようにするsize
プロパティが追加されました。 -
MimeMessage
インスタンスに、新機能のallUserAttachments
プロパティが追加されました。これは、メッセージ画面に表示される添付ファイルの情報を提供します。このプロパティは、"添付ファイル" を扱う場合に覚えておくべきものです。allAttachments
プロパティは、添付されたメールなどの MIME パートは含みません。 -
動作を高速化するため、メッセージがリモートの IMAP サーバにだけある場合は、
MsgHdrToMimeMessage
へ渡すoptions
オブジェクトにpartsOnDemand: true
メンバを追加してください。画像ファイルなどの添付ファイルがバックエンドでダウンロードされなくなります。
Gloda API
Gloda に索引が付けられたメッセージは、attachmentInfos
と呼ばれる追加のプロパティが使用できるようになりました。これは、与えられたメッセージの添付ファイルを、MsgHdrToMimeMessage
に再び流すことなく手軽に操作できるようにします。attachmentInfos
は、オブジェクトのリストであり、各オブジェクトは url, size, contentType, name
のプロパティを持っています。バージョン 5a1 の時点では、データベーススキーマを変更する計画はありません。これは、バージョン 5 がインストールされた後に索引が付けられたメッセージだけが、このプロパティを持つことを意味します。しかしながら、Gloda の索引を再作成することで、すべてのメッセージに attachmentTypes
プロパティを持たせることができます。Cu.import("resource:///modules/gloda/index_msg.js")
の GlodaMsgIndexer
が、この操作のために必要になるでしょう。
バックエンドの変更
DisplayMessage
を通してメッセージをストリーミングする場合、&markRead=false
パラメータを URI に追加することにより、(IMAP 上の) メッセージを表示した時、バックエンドでメッセージが既読になることを防げるようになりました。- Thunderbird のタブメールが、onbeforeunload イベントハンドラを尊重するようになりました。content または chrome タブ内の何かを開発する場合に、タブが閉じられることを防げるようになります。
- chrome タブが favicon を持てるようになりました。
- content タブを開いた時、追加の onload 引数で、タブが読み込み中であることを知ることができるようになりました。
- 新しい "偽ヘッダ (fake header)" 機構が導入されました。偽ヘッダは、メッセージが送信された後に挿入され、autosync が実際のヘッダをリモート IMAP サーバから取得している間の placeholder として使用されます。これらのメッセージキーは、2**32 - 128 から 2**32 -1 の範囲内になります。偽ヘッダは、実際のヘッダの取得が完了すると破棄されます。一部のメッセージヘッダを操作するアドオンでは、不正なメッセージヘッダとして扱われる可能性があります。
XPCOM
さらに詳しい変更点は、以下のページを参照してください。もはや、どのインタフェースも凍結されない点に注意することが重要です。ドキュメントにどのように書いてあろうとも、すべてのインタフェースは凍結されなくなりました (unfrozen)。ドキュメントは随時更新されます。
- Gecko 2.0 における XPCOM の変更点
- Firefox 4 で互換性に影響を与える XPCOM の変更点の詳細。
- Components.utils.getGlobalForObject()
- この新しいメソッドは、オブジェクトが関連付けられたグローバルオブジェクトを返します。これは、破棄された
__parent__
の一般的な使用例を置き換えるものです。
その他の変更点
- Thunderbird のビルドは、静的ビルドから libxul スタイルのビルドへ変更されました。
- Thunderbird が、Firefox がサポートするものと同じ out-of-process プラグインをサポートするようになりました。
- Thunderbird 内に含まれるリソースのほとんどが、単一の JAR アーカイブファイルである
omni.jar
にまとめられました。ファイルの I/O が減ったことにより、起動時間が短縮されました。詳しくは、omni.jar についてを参照してください。 - Content タブが Firefox と同じ方法で favicon をサポートするようになりました。
- Thunderbird のリリース番号が Gecko のリリース番号と一致するようになりました。詳しい情報は、tb-planning list の議論を参照してください。
他のリソース
Thunderbird 5 のコードネームは 'Miramar' です。
- Firefox 5 for developers
- Firefox 4 for developers
- Thunderbird 3.1 for developers
- build details
- how to help with testing