Thunderbird 68.0にバージョンアップすると、ほぼすべてのアドオンが無効化されてしまいます。対応版がリリースされない場合などの時に、自力でインストールできるようにする方法を紹介します。
単純な機能のアドオンなど、運がよければこれで動くようになります。たいていは、インストールができても正しく動かないことが多いと思いますが、その場合は、ソースコードを直していく必要があります。
少し難易度が高いかもしれませんが、テキストエディタと、ZIPの圧縮/解凍ツールがあればできるので、試してみてください。
また、この投稿のコメントの中で、以下のアドオンをThunderbird 68対応させています。非公式版ですが、こちらも自由にお使いください。
- Address Move Button
- Auto Address Cleaner
- Ruler Bar
- PrintingTools
- StartupMaster
- Display Mail User Agent
- 宅配便の配達状況
ダウンロードはこちらから。
https://hogi.sakura.ne.jp/hiki/?ExperimentalExtensions
では、アドオンの修正方法の説明です。
①xpiファイルをダウンロード、解凍する
まずは、アドオン(xpi)を作者のサイト等から、ダウンロードしてきます。
ダウンロードしてきたファイルの拡張子をzipに変更して、解凍します。
解凍すると、以下のようなファイル/フォルダができると思います。
chrome/
defaults/
chrome.manifest
install.rdf
この構成でない場合もあるかもしれませんが、気にしないでください。
解凍できて、chrome.manifestとinstall.rdfがでてこればOKです。
②manifest.jsonファイルを作成する
以下のコードをコピーして、chrome.manifest等と同じフォルダ階層(トップ)に、
「manifest.json」という名前で保存してください。
■manifest.json
{
"manifest_version": 2,
"name": "XXX",
"description": "XXX",
"version": "XXX",
"author": "XXX",
"homepage_url": "XXX",
"legacy": {
"type": "xul",
"options" : {
"page" : "XXX",
"open_in_tab" : XXX
}
},
"applications": {
"gecko": {
"id": "XXX",
"strict_min_version": "XXX"
}
},
"icons": {
"32": "XXX",
"24": "XXX"
}
}
次に、このmanifest.jsonの XXX の部分を、install.rdfを見ながら設定します。
install.rdfはテキストエディタで開けます。
manifest.jsonができたら、install.rdfは不要なので削除してください。
manifest.jsonとinstall.rdfの値の対応は以下になります。
対応するものがinstall.rdfにない場合は、その設定は不要です。(行ごと削除してOK)
文字列は、""で囲うのを忘れないでください。
manifest.json
|
install.rdf
|
必須
|
補足
|
name
|
em:name
|
〇
|
|
description
|
em:description
|
|
|
version
|
em:version
|
〇
|
好きなバージョンに変更してもOK。
|
author
|
em:creator
|
|
|
homepage_url
|
em:homepageURL
|
|
|
page |
em:optionsURL
|
〇
|
アドオンの設定ダイアログがある場合のみ。
|
open_in_tab
|
em:optionsType
|
〇
|
アドオンの設定ダイアログがある場合のみ。
em:optionsType が3の場合は true、 それ以外の値、または、em:optionsType がない場合は false に設定する。
この値は、""で囲まないので注意。
|
id
|
em:id
|
〇
|
em:targetApplicationの中のem:idではないので注意。
{3550f703-e582-4d05-9a08-453d09bdfdc6}は、ThunderbirdのIDなので、これではないほうのIDを指定してください。
|
strict_min_version
|
-
|
〇
|
Thunderbirdのバージョン。これ以前のバージョンにはインストールできない。今回は "68.0" に設定する。
|
icons
|
em:iconURL
|
|
アドオンのアイコンをサイズごとに指定。
install.rdfとは違い、manifest.jsonを置いたディレクトリからの相対パスで指定する。
|
以下、私のアドオン Maximize Message Paneの場合のサンプルです。
■サンプル:Maximize Message Pane の install.rdf
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>{CC1FC7EB-79F7-4A28-B12C-731304F16E53}</em:id>
<em:name>Maximize Message Pane</em:name>
<em:version>1.2.31</em:version>
<em:description>Maximize message pane by collapsing thread pane and folder pane.</em:description>
<em:creator>H.Ogi</em:creator>
<em:optionsURL>chrome://maxmsgpane/content/settings.xul</em:optionsURL>
<em:iconURL>chrome://maxmsgpane/skin/max32.png</em:iconURL>
<em:homepageURL>http://hogi.sakura.ne.jp/en/</em:homepageURL>
<em:targetApplication>
<Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
<em:minVersion>60.0</em:minVersion>
<em:maxVersion>60.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
■サンプル:作成したmanifest.json
{
"manifest_version": 2,
"name": "Maximize Message Pane",
"description": "Maximize message pane by collapsing thread pane and folder pane.",
"version": "1.3.00b3",
"author": "H.Ogi",
"homepage_url": "http://hogi.sakura.ne.jp/en/",
"legacy": {
"type": "xul",
"options" : {
"page" : "chrome://maxmsgpane/content/settings.xul",
"open_in_tab" : false
}
},
"applications": {
"gecko": {
"id": "{CC1FC7EB-79F7-4A28-B12C-731304F16E53}",
"strict_min_version": "68.0"
}
},
"icons": {
"32": "max32.png"
}
}
③chrome.manifestを修正する
次は、chrome.manifestを変更します。これも、テキストエディタで開きます。
ここでも、Maximize Message Paneを例にします。
chrome.manifestは、以下のようになっていると思います。
■サンプル:Maximize Message Paneのchrome.manifest(修正前)
content maxmsgpane jar:chrome/maxmsgpane.jar!/content/maxmsgpane/
overlay chrome://messenger/content/messenger.xul chrome://maxmsgpane/content/maxmsgpane.xul
overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://maxmsgpane/content/maxmsgpane_hdr.xul
locale maxmsgpane en-US jar:chrome/maxmsgpane.jar!/locale/en-US/maxmsgpane/
locale maxmsgpane ja-JP jar:chrome/maxmsgpane.jar!/locale/ja-JP/maxmsgpane/
skin maxmsgpane classic/1.0 jar:chrome/maxmsgpane.jar!/skin/classic/maxmsgpane/
style chrome://messenger/content/customizeToolbar.xul chrome://maxmsgpane/skin/maxmsgpane.css
style chrome://messenger/content/messenger.xul chrome://maxmsgpane/skin/maxmsgpane.css
style chrome://messenger/content/msgHdrViewOverlay.xul chrome://maxmsgpane/skin/maxmsgpane.css
これの、"overlay"、"style"の部分を修正します。
overlay XXXXX YYYYY
style XXXXX YYYYY
の形式になっていますが、このXXXXXの部分が"~Overlay.xul"になっている場合、以下を参考に置き換えます。
なっていない場合は、たぶん、そのままで大丈夫です。
上の例だと、ハイライトした部分が、修正が必要な箇所です。
~Overlay.xul
|
置き換え
|
mailWindowOverlay.xul
msgHdrViewOverlay.xul
|
messenger.xul
|
customizeToolbarOverlay.xul
|
customizeToolbar.xul
|
Maximize Message Paneでは、こんな感じ。
■サンプル:Maximize Message Paneのchrome.manifest(修正後)
content maxmsgpane jar:chrome/maxmsgpane.jar!/content/maxmsgpane/
overlay chrome://messenger/content/messenger.xul chrome://maxmsgpane/content/maxmsgpane.xul
overlay chrome://messenger/content/messenger.xul chrome://maxmsgpane/content/maxmsgpane_hdr.xul
locale maxmsgpane en-US jar:chrome/maxmsgpane.jar!/locale/en-US/maxmsgpane/
locale maxmsgpane ja-JP jar:chrome/maxmsgpane.jar!/locale/ja-JP/maxmsgpane/
skin maxmsgpane classic/1.0 jar:chrome/maxmsgpane.jar!/skin/classic/maxmsgpane/
style chrome://messenger/content/customizeToolbar.xul chrome://maxmsgpane/skin/maxmsgpane.css
style chrome://messenger/content/messenger.xul chrome://maxmsgpane/skin/maxmsgpane.css
#style chrome://messenger/content/msgHdrViewOverlay.xul chrome://maxmsgpane/skin/maxmsgpane.css
ハイライト下部分が、変更箇所です。一番最後の行は、msgHdrViewOverlay.xul -> messenger.xul に置き換えると、
一つ上の行と同じになるので、#でコメントアウトしています。
④zipで圧縮する
新しく作成したmanifest.jsonも含めて、すべてのファイル/フォルダをzipで圧縮します。このとき、もとの階層構造と同じになるように注意してください。
通常は、以下のように、トップ階層のファイルを全選択して、zipで圧縮することになると思います。
最後に、拡張子をzipからxpiに変更して終わりです。
作成したxpiファイルを、Thunderbirdのアドオンマネージャーにドラッグ&ドロップすれば、インストールができるはずです。
インストールがうまくいかないときは
「Thunderbird 68.3.1と互換性がないため、このアドオンをインストールできませんでした。」のようなメッセージがでて、インストールできない場合は、manifest.jsonに問題があることが多いです。
エラーコンソールのエラーが参考になることがあるので、確認してみてください。
エラーコンソールは、
・「Ctrl+Shift+J」を押すか、
・アプリメニュー(3本線のメニュー)から、「ツール→開発ツール→エラーコンソール」
で開けます。
「Invalid XPI: SyntaxError: JSON.parse:」のようなメッセージを探してください。
■間違った設定の例
"icons": {
"32": "icon.png",
}
■エラーメッセージの例
1577695480223 addons.xpi WARN Invalid XPI: SyntaxError: JSON.parse: expected double-quoted property name at line 23 column 5 of the JSON data(resource://gre/modules/Extension.jsm:525:26) JS Stack trace: readJSON/</<@Extension.jsm:525:26
onStopRequest@NetUtil.jsm:128:9
「"icon.png",」と、「,」で終わっているので、次のプロパティがこないといけないところ、次の行が「}」なので、エラーになってしまっています。この場合は、「,」を消せばOKです。
[2019/10/07]
Maximize Message Paneの例に合わせて、内容を一部修正しました。
間違いの多い、最後のzip圧縮のところに、イメージ画像を追加しました。
[2019/10/23]
ソースコードの修正についてもまとめました。難易度は高めと思いますが、ご参考までに。
Thunderbird 68に未対応アドオンをインストールする方法 (2)
[2019/12/30]
エラーコンソールの確認方法を追記しました。