我已經使用附加SDK構建了Firefox擴展,並強制它通過註冊表項進行安裝。 (通過HKLM\Software\Mozzilla\Firefox\Extensions\extensionid
)可以通過註冊表安裝Firefox插件來使用updateURL嗎?
當我轉到附加組件管理器並選擇「檢查更新」時,它不會向<updateUrl>
中指定的URL發出請求。有要求出去https://versioncheck.addons.mozilla.org/ ...但不是我在<updateUrl>
指定的自定義網址。
這是一個空的hello world擴展也可重複使用火狐瀏覽器插件SDK內置:
cfx init
cfx xpi --update-url https://fooo.com/update.rdf
然後用WinRAR的XPI解壓到C:\test-extension
和下面的註冊表項下添加一個字符串值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Mozilla\Firefox\Extensions\
與名爲[email protected]
(生成的擴展ID)的字符串值指向與解壓後的XPI的文件夾:
註冊表值名稱:[email protected]
值:C:\test-extension
然後啓動Firefox,擴展將被安裝到Firefox瀏覽器。從附加組件管理器中選擇檢查更新。
指定爲<updateURL>
in C:\test-extension\install.rdf
的URL永遠不會被訪問。
爲了完整起見,這是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>[email protected]</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>
?