From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../ja/mozilla/thunderbird/content_tabs/index.html | 81 ++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 files/ja/mozilla/thunderbird/content_tabs/index.html (limited to 'files/ja/mozilla/thunderbird/content_tabs') diff --git a/files/ja/mozilla/thunderbird/content_tabs/index.html b/files/ja/mozilla/thunderbird/content_tabs/index.html new file mode 100644 index 0000000000..17005908dc --- /dev/null +++ b/files/ja/mozilla/thunderbird/content_tabs/index.html @@ -0,0 +1,81 @@ +--- +title: Content Tabs +slug: Mozilla/Thunderbird/Content_Tabs +translation_of: Mozilla/Thunderbird/Content_Tabs +--- +
+

この記事は Thunderbird 3 の新機能について述べています

+
+

Content Tab を使うと Thunderbird でタブの中に、ユーザがブラウザと(ほとんど)同じように閲覧可能なリモートコンテンツを表示できるようになります。例えば、Thunderbird の ヘルプ | 新着情報 メニューオプションはウェブコンテンツを表示するタブを開きます。Thunderbird チームはウェブサイトを経由してこのコンテンツをいつでも更新することができます。

+

Content Tabs はフォーム、自動補完、パスワードマネージャ、Cookie、クイック検索、その他のブラウザの機能を活用することができます。

+

Content Tab を開く

+

Content Tab は tabmail インタフェースを経由して開かれます。以下の例では、新着メッセージをタブに開くかメッセージウィンドウに開くかのユーザ設定を調べ、Thunderbird のナイトリービルドのための「新着情報」ページを(ユーザの設定に応じて、Content Tab または新規メッセージウィンドウに)表示します。

+
let url = "http://www.mozillamessaging.com/en-US/thunderbird/nightly/whatsnew/";
+let tabmail = document.getElementById("tabmail");
+if (!tabmail) {
+  // Try opening new tabs in an existing 3pane window
+  let mail3PaneWindow = Components.classes["@mozilla.org/appshell/window-mediator;1"]
+                                  .getService(Components.interfaces.nsIWindowMediator)
+                                  .getMostRecentWindow("mail:3pane");
+  if (mail3PaneWindow) {
+    tabmail = mail3PaneWindow.document.getElementById("tabmail");
+    mail3PaneWindow.focus();
+  }
+}
+
+if (tabmail)
+  tabmail.openTab("contentTab", {contentPage: url});
+else
+  window.openDialog("chrome://messenger/content/", "_blank",
+                    "chrome,dialog=no,all", null,
+                    { tabType: "contentTab",
+                      tabParams: {contentPage: url} });
+
+

Content Tab に何かを開くのをテストするには、以下の内容をエラーコンソールに入力して コードを評価 をクリックします:

+
Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getMostRecentWindow("mail:3pane").document.getElementById("tabmail").openTab("contentTab", {contentPage: "http://www.mozillamessaging.com/en-US/thunderbird/nightly/whatsnew/"});
+
+

上の例はいずれもデフォルトのクリックハンドラで Content Tab を開きます。

+

クリックのハンドリング

+

Content Tab を指定されたクリックハンドラを用いずに開くには defaultClickHandler を使用します。デフォルトのクリックハンドラはすべての about:、http:、https: リンクを外部のブラウザに送り、それ以外は network.protocol-handler.expose.* の設定に応じて内部なたは外部にロードします。

+

Contents Tab を開くときに clickHandler 引数を与えることによって明示的に defaultClickHandler を定義することができます。これは clickHandler を定義しない場合と等価であることに注意してください:

+
tabmail.openTab("contentTab", {contentPage: url,
+                               clickHandler: "specialTabs.defaultClickHandler(event);" });
+
+

clickHandlercontentTab のために生成されたブラウザ要素の onclick 属性に挿入される値です。

+

閲覧するサイトを制限する

+

Thunderbird は 正規表現 を引数に持つ siteClickHandler を提供します。これにより以下の機能が実現されます:

+ +
註: http の制限とリダイレクトの可能性により、サイトが変わったり JavaScript を使用したりすると、onclick ハンドラは contentTab がひとつのサイトにとどまることを保証することができなくなるかもしれません。この機能を使用する拡張機能はハンドラを実装するときにこのことを考慮すべきです。
+

サイト制限の良い例が Personas 拡張機能です。これはギャラリーを閲覧するための Content Tab を開きますが、ユーザがサイトの外に出ようとするとそれは外部ブラウザに飛ばされ、一般的な閲覧のためにより良いサポートを提供します。これを実現するコードは比較的単純であり、簡単に書くと以下のようになります:

+
let PersonasController = {
+  get _thunderbirdRegExp() {
+    delete this._thunderbirdRegExp;
+    return this._thunderbirdRegExp = new RegExp("^http://www.getpersonas.com/");
+  },
+
+
+  openURLInTab: function (url) {
+    ...
+    openTab("contentTab", { contentPage: url,
+                            clickHandler: "specialTabs.siteClickHandler(event, PersonaController._thunderbirdRegExp);" });
+    ...
+  }
+};
+
+

その他のクリックハンドラ

+

拡張機能は自分自身のクリックハンドラを提供できますが、それは siteClickHandler を元にすべきであり、バグを修正する更新を定期的にチェックするべきです。

+

クリックハンドラを保存する

+

Content Tabs は tabmail が提供するセッション保存コードによってフックアップされます。クリックハンドラは Content Tab の URL と一緒に保存され、アプリケーションが再起動したときに復元されます。

+

Content Tab を拡張する

+

拡張機能は Content Tab を二つの方法で拡張できます: 現在の Content Tab コードを拡張する事によって(これはすべての拡張機能に影響します)または、自信のテンプレートとサポートコードによって。

+

専用タイプを実装するには、以下を参照してください:

+ +

セキュリティ

+

拡張機能はセキュリティに注意すべきです。Thunderbird はデフォルトではブラウジングをサポートしていないので、今のところは最小限のセキュリティ UI しか提供していません。考慮すべきセキュリティ課題には以下が含まれます:

+ +

参照

+

Thunderbird の Content Tab 実装に関するバグは Bugzilla に登録してください。最初に existing known bugs をチェックしてください。あなたのバグが新しいものであれば、バグを作成するときに "Thunderbird" プロダクトと "Toolbars and Tabs" コンポーネントを指定してください。

-- cgit v1.2.3-54-g00ecf