在哪里可以找到Mozilla NoScript扩展的源代码?

时间:2013-07-15 21:20:25

标签: firefox firefox-addon

我在维基读到NoScript是开源http://en.wikipedia.org/wiki/NoScript,但在官方网站http://noscript.net/上,我找不到任何来源。所以我的问题是:在哪里找到来源?或者,有什么我不明白,源代码不可用吗?

2 个答案:

答案 0 :(得分:18)

Firefox XPI格式不会阻止您简单地提取插件的内容来检查源代码。

虽然我找不到规范的公共存储库,但看起来有人系统地下载并提取了所有可用的XPI并从中创建了一个GitHub存储库。

https://github.com/avian2/noscript

如果你想自己做,XPI文件只是标准的ZIP文件,所以如果你想自己提取一个,你可以简单地指出一个提取程序。

以下是从命令行执行此操作的示例:

mkdir noscript_source
cd noscript_source
curl -LO https://addons.mozilla.org/firefox/downloads/file/219550/noscript_security_suite-2.6.6.8-fx+fn+sm.xpi
unzip noscript_security_suite-2.6.6.8-fx+fn+sm.xpi

这会产生一个如下所示的目录结构:

.
├── GPL.txt
├── META-INF
│   ├── manifest.mf
│   ├── zigbert.rsa
│   └── zigbert.sf
├── NoScript_License.txt
├── chrome
│   └── noscript.jar
├── chrome.manifest
├── components
│   └── noscriptService.js
├── defaults
│   └── preferences
│       └── noscript.js
├── install.rdf
├── mozilla.cfg
└── noscript_security_suite-2.6.6.8-fx+fn+sm.xpi

然后主代码位于chrome/noscript.jar内。你可以提取它来获得构成插件大部分的JavaScript:

cd chrome/
unzip noscript.jar

这将产生主要的源代码树:

.
├── content
│   └── noscript
│       ├── ABE.g
│       ├── ABE.js
│       ├── ABELexer.js
│       ├── ABEParser.js
│       ├── ASPIdiocy.js
│       ├── ChannelReplacement.js
│       ├── ClearClickHandler.js
│       ├── ClearClickHandlerLegacy.js
│       ├── Cookie.js
│       ├── DNS.js
│       ├── DOM.js
│       ├── ExternalFilters.js
│       ├── FlashIdiocy.js
│       ├── HTTPS.js
│       ├── Lang.js
│       ├── NoScript_License.txt
│       ├── PlacesPrefs.js
│       ├── Plugins.js
│       ├── Policy.js
│       ├── Profiler.js
│       ├── Removal.js
│       ├── RequestWatchdog.js
│       ├── STS.js
│       ├── ScriptSurrogate.js
│       ├── Strings.js
│       ├── URIValidator.js
│       ├── about.xul
│       ├── antlr.js
│       ├── clearClick.js
│       ├── clearClick.xul
│       ├── frameOptErr.xhtml
│       ├── iaUI.js
│       ├── noscript.js
│       ├── noscript.xbl
│       ├── noscriptBM.js
│       ├── noscriptBMOverlay.xul
│       ├── noscriptOptions.js
│       ├── noscriptOptions.xul
│       ├── noscriptOverlay.js
│       ├── noscriptOverlay.xul
│       ├── options-mobile.xul
│       └── overlay-mobile.xul
├── locale
└── skin

答案 1 :(得分:14)

扩展程序包含源代码 - 您只需解压缩它即可。请参阅Giorgio's response here

  

每个XPI中都公开了完整的源代码。

     

如果您是NoScript用户,那么您现在已经在硬盘上获得了它,否则您可以在此处下载。

     

您可以通过解压缩内部的XPI和JAR以及"构建"来检查和/或修改它。它通过重新拉链来恢复。

     

从第一个版本开始,它一直都是这样。