2

Add-On SDK を使用して Firefox 拡張機能を作成し、レジストリ キーを介して強制的にインストールしました。(経由HKLM\Software\Mozzilla\Firefox\Extensions\extensionid)

アドオン マネージャーに移動して [更新プログラムの確認] を選択すると、 で指定された URL に要求が発行されません<updateUrl>https://versioncheck.addons.mozilla.org/ ...に対して送信されるリクエストがありますが、 で指定されたカスタム URL に対して送信されません<updateUrl>

これは、Firefox アドオン SDK を使用して構築された空の hello world 拡張機能でも再現可能です。

cfx init
cfx xpi --update-url https://fooo.com/update.rdf

次に、WinRAR を使用して XPI を解凍しC:\test-extension、次のレジストリ キーの下に文字列値を追加します。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions\ 

(生成された拡張 ID)という名前の文字列値jid1-W2S1bxv6O1LoAA@jetpackを使用して、解凍された XPI を含むフォルダーを指します。

レジストリ値の名前: jid1-W2S1bxv6O1LoAA@jetpack 値: C:\test-extension

次に、Firefox を起動します。拡張機能が Firefox にインストールされます。アドオン マネージャーから、更新プログラムの確認を選択します。

のように指定された URL<updateURL>C:\test-extension\install.rdfはアクセスされません。

完全を期すために、これはinstall.rdfファイルです (cfx から生成された出力から直接変更されていないデフォルト)。

<?xml version="1.0" encoding="utf-8"?>
<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>jid1-W2S1bxv6O1LoAA@jetpack</em:id>
    <em:version>0.1</em:version>
    <em:type>2</em:type>
    <em:bootstrap>true</em:bootstrap>
    <em:unpack>false</em:unpack>

    <!-- Firefox -->
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
        <em:minVersion>19.0</em:minVersion>
<!-- I tried also with maxVersion 25.* -->
        <em:maxVersion>20.*</em:maxVersion>
      </Description>
    </em:targetApplication>

    <!-- Front End MetaData -->
    <em:name>TEST</em:name>
    <em:description>a basic add-on</em:description>
    <em:creator></em:creator>
    <em:updateURL>https://mydomain.com/updates.rdf</em:updateURL>
  </Description>
</RDF>

.xpi ファイルを Firefox にドラッグ アンド ドロップして手動でインストールすると、Check for Updatesアドオン マネージャーで呼び出したときに updateURL が期待どおりにチェックされます。

何か不足していますか?レジストリ経由でインストールされた拡張機能の更新は<updateURL>サポートされていますか?

4

1 に答える 1

1

Windows レジストリ経由のインストールはロックされているため、アドオンはアップグレード可能とは見なされません。このような場所は外部と見なされ、プロファイル内のアドオンとは異なり、アプリ制御ではありません。ユーザーがアドオンをアップグレードできない可能性が高くなります (システム管理者のみがアップグレードできます)。

システムの場所のいずれかのレジストリを介してインストールされたアドオンは、独自のアップグレード メカニズムを提供する必要があります。

于 2013-12-05T10:36:19.920 に答える