Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

升级扩展支持多种Mozilla应用程序

这篇文章展示了如何将一个扩展升级使其能够用于更多的Mozilla应用程序。我们将使用本系列中早先的文章提到的股票监视扩展,将其升级使其能够用于Thunderbird和Sunbird。(原有的版本只能用于Firefox)。

如果你还没有建立扩展,或者希望回忆相关内容,可以参考本系列以前的文章:

下载例子

你可以下载这篇文章中的示例代码以便和文章对照着看,或者以之作为你自己的扩展的基础。

更新安装清单

第一步是修改扩展的install manifest指示它可以安装在Thunderbird和Sunbird上。这通过在<tt>install.rdf</tt>文件中增加新的<targetApplication>标记完成,类似这样:

    <!-- Describe the Thunderbird versions we support -->
    
    <em:targetApplication>
      <Description>
        <em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
        <em:minVersion>1.5</em:minVersion>
        <em:maxVersion>2.0.0.*</em:maxVersion>
      </Description>
    </em:targetApplication>

    <!-- Describe the Sunbird versions we support -->
    
    <em:targetApplication>
      <Description>
        <em:id>	{718e30fb-e89b-41dd-9da7-e25a45638b28}</em:id>
        <em:minVersion>0.2</em:minVersion>
        <em:maxVersion>0.4.*</em:maxVersion>
      </Description>
    </em:targetApplication>

这两段指明扩展支持Thunderbird 1.5版本到2.0.0.x版本,Sunbird0.2版本到0.4.x版本。

插入这段代码以后,你可以将这个扩展安装到Firefox,Thunderbird和Sunbird中任何一个(或全部)上,但是你在Thunderbird和Sunbird上看不到任何效果。

这是因为这两个应用程序并不知道由这个扩展提供的chrome能够做些什么。这时候就该chrome manifest登场了。

更新chrome清单

建立我们自己的chrome清单的时候,可以回忆一下本系列第一篇文章,那时我们还有什么没有接触到?现在该涉及到它了。正像你能够(或者不能)回忆起来的那样,那个文件通知应用程序,你的扩展界面需要覆盖哪些XUL代码。

对于Firefox,我们要覆盖<tt>browser.xul</tt>,它描绘了Firefox浏览器窗口。我们需要在Thunderbird和Sunbird清单中加入几行,类似这样的:

# Thunderbird
overlay chrome://messenger/content/messenger.xul chrome://stockwatcher2/content/stockwatcher2.xul

# Sunbird

overlay chrome://calendar/content/calendar.xul chrome://stockwatcher2/content/stockwatcher2.xul

这些行使得我们通过<tt>stockwatcher2.xul</tt>文件能够覆盖Thunderbird主消息窗口和Sunbird的主窗口。

通过这些简单的技巧,这个扩展将能够在所有这三个应用程序中工作,且同样能够以同样的方式运转。

文档标签和贡献者

标签: 
 此页面的贡献者: ziyunfei, Steekid
 最后编辑者: ziyunfei,