Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Thunderbird 5 for developers

草案
このページは完成していません。


この記事は 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 に制限が多いと思ったら、ぜひバグ報告してお知らせください

  1. MimeMessageAttachment インスタンスに、メッセージの添付ファイルのサイズへアクセスできるようにする size プロパティが追加されました。

  2. MimeMessage インスタンスに、新機能の allUserAttachments プロパティが追加されました。これは、メッセージ画面に表示される添付ファイルの情報を提供します。このプロパティは、"添付ファイル" を扱う場合に覚えておくべきものです。allAttachments プロパティは、添付されたメールなどの MIME パートは含みません。

  3. 動作を高速化するため、メッセージがリモートの 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' です。

ドキュメントのタグと貢献者

タグ: 
 このページの貢献者: trevorh, Marsf
 最終更新者: trevorh,