![](/img/trans.png)
[英]Is it possible to use Firefox Add-on SDK from a Greasemonkey script?
[英]Is it possible for Firefox Add-on installed via registry to use updateURL?
我已經使用附加SDK構建了Firefox擴展,並通過注冊表項強制安裝它。 (通過HKLM\\Software\\Mozzilla\\Firefox\\Extensions\\extensionid
)
當我轉到附加組件管理器並選擇“檢查更新”時,它不會向<updateUrl>
指定的URL發出請求。 有些請求針對https://versioncheck.addons.mozilla.org/ ...,但不針對<updateUrl>
指定的我的自定義URL。
使用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\
帶有名為jid1-W2S1bxv6O1LoAA@jetpack
的字符串值(生成的擴展ID)指向帶有解壓后的XPI的文件夾:
注冊表值名稱: jid1-W2S1bxv6O1LoAA@jetpack
值: C:\\test-extension
然后啟動Firefox,該擴展程序將安裝到Firefox中。 在附加組件管理器中,選擇檢查更新。
永遠不會訪問在C:\\test-extension\\install.rdf
指定為<updateURL>
的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>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>
進行的更新?
通過Windows注冊表進行的安裝已鎖定 ,因此附加組件不被視為可升級。 與配置文件中的加載項不同,此類位置被視為外部位置,不受應用程序控制,因此用戶極有可能無法升級加載項(只有系統管理員才能升級)。
通過系統位置的任一注冊表安裝的加載項必須提供自己的升級機制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.