追加の状況説明、ありがとうございました。
yat81 さんが書きました:
Lightbeamを「Firefoxへ追加」からインストールした場合は有効状態になりましたが、
私が作成した拡張機能はレジストリの「HKLM\Software\Mozilla\Firefox\Extensions」に「xpiファイル」を指定する等の設定で
全ユーザに自動で拡張機能を適用するようにしておりますのでインストール方法が異なっています。
そのため、状況が少し違うかもしれません。
拡張機能が Windows レジストリに登録されているということは、その環境に Firefox をインストールした初回起動時に、自動的に拡張機能として認識されるわけですが、その段階で「検証できないため無効化されています」の警告が出ているというお話だったのですね。
「検証できないため無効化されています」が出るということは、少なくともレジストリ経由の拡張機能として認識はされていることになります。認識できた拡張機能の署名をチェックした結果、検証できないので無効化され、そのことを警告しているということになりましょうか。
で、比較のためにおこなった拡張機能(Lightbeam)の通常インストールでは、Firefox 46.0 などの古いバージョンでも「検証できないため無効化されています」の警告は出ず、ふつうに認識されたということですよね。
yat81 さんが書きました:
Firefox 47.0の頃に拡張機能を作成し、その頃は47.0で問題なく動作していました。
しかし現在ふとしたことから古いFirefoxをインストールしてみると「検証できないため無効化されています」が出るようになっていたので今回質問させていただきました。
レジストリに登録された拡張機能の本体にいっさい変更がないとして、
・その拡張機能は、以前は Firefox 47.0 で問題なく動作していた。
・現在、改めて Firefox 47.0 をインストールすると、同じ拡張機能に対し「検証できないため無効化されています」の警告が出るようになった。
―― というお話なら、ぼくには原因の見当がつきません。
yat81 さんが書きました:
異なるバージョンのFirefoxを同時にインストールはしておらず、クリーンな状態からFirefox46.0をインストールして確認しております。
46.0、47.0.2、50.0のバージョンの確認は46.0をインストールした際に無効状態だったので、
46.0→47.0.2→50.0→51.0とバージョンアップを続けたところ、51.0で初めて有効状態になったという状態です。
「クリーンな状態からFirefox46.0をインストール」ということは、その時点でまったく新規のプロファイルが初期状態で作成されているということですよね。
Firefox 46.0 をインストールした段階で、当該の拡張機能は Firefox に認識されはしたものの、署名の確認がとれずに「検証できないため無効化されています」が出たのであれば、生成されたプロファイル内にその情報が記録されているはずです
(*)。
その後、同じプロファイルを使ってバージョンアップしていくと、バージョンが新しくなるごとに拡張機能の状態が再チェックされ、51.0 では警告が出ず正常に認識されたという流れも、ちょっと不可解に感じます。46.0 で何かの不都合があって無効化された情報が、47.0 や 50.0 ではリセットされず、51.0 での再チェックで正常に戻ったのでしょうか??
(*) プロファイル内にある extensions.json ファイルに、各拡張機能の状態が記録されています。
このうち、「(署名が)検証できないため無効化されています」の拡張機能では、signedState の値が 0 になっているはずです。
その他、active 、userDisabled 、appDisabled などの値が、正常に認識された拡張機能とは異なる値になっています。
こうした項目を手動で変更することで、強制的に認識・有効化させることはできます。しかし、あくまで署名がボトルネックになっている場合の緊急回避策として、Firefox がおこなった署名チェック結果を手動で上書きして無理矢理認識させるという乱暴な方法なので、積極的にはお勧めしません。extensions.json が更新されるようなアクションがあった場合、手動で変更した内容が元に戻されることもあると思います。
加えて、そもそも拡張機能が、使用している Firefox のバージョンに対応していなければ、正常な動作は望めません。
例えば、Firefox 48.0 では、
Firefox 48.0 リリースノート さんが書きました:
Mozilla によって検証・署名されていないアドオンはロードされなくなります
という変更が入っていて、46.0 や 47.0 よりも厳しい対応になっていることがわかります。
(参考)・Firefox 48.0 リリースノート
https://www.mozilla.jp/firefox/48.0/releasenotes/「46.0→47.0.2→50.0→51.0とバージョンアップを続けた」中で、その拡張機能を正常化しようと about:config などをあれこれ変更したという経過があれば、そのあたりの設定変更と Firefox のバージョンの組み合わせに何か要因があるのかもしれませんが、それも確たることは申し上げられません。
お使いになっているのはいずれも ESR 版ではありませんから、ESR 版固有の条件はなさそうですし...。
比較用に試した Lightbeam では問題ないとすると、現状では、
(a)レジストリ経由で認識させる拡張機能であるという点
(b)「Firefoxの拡張機能を作成しており、署名も付けて」の署名の付け方
―― といったあたりに、何らかの要因があるようにも思えます。
しかし、Firefox 51.0 では問題なく認識され動作も正常という事実とはかみ合いません。
もうひとつ試すとしたら、署名がきちんと検証されている Lightbeam などの拡張機能をレジストリに登録し、レジストリ経由で Firefox に認識させてみるテストでしょうか。
レジストリ経緯であっても、そこに記されたパスにある拡張機能の本体を Firefox が読み込み、META-INF 内をチェックするわけですから、拡張機能が置かれたパス以外に違いはないように思います。ですが同時に、どういう経路で読み込んだ拡張機能かは区別されていますので、そのあたりに何らかの要因があるのかもしれません。なので、通常のインストールでは署名が正常に検証できている拡張機能をレジストリ経由で読み込ませ、各バージョンの Firefox がどのような結果を出すかを調べることで、問題点を探れるかもしれない、ということです。やるなら、バージョンごとに新しいプロファイルでテストしてみてください。
十分な助力ができず心苦しいですが、ぼくの力量ではこの程度のことしか申し上げられません。
(追記)
すでにご覧になっておられるかもしれませんが、直近に次のようなトピックが投稿されています。
(参考)・FireFox43で承認済みのAdd-onが動かなくなりました。
viewtopic.php?f=26&t=16513