12

NoScript はオープン ソースhttp://en.wikipedia.org/wiki/NoScriptであるとウィキで読みましたが、公式サイトhttp://noscript.net/ではソースが見つかりません。私の質問は次のとおりです。ソースはどこにありますか? または、私が理解できなかったことがあり、ソースコードは利用できませんか?

4

2 に答える 2

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
于 2013-07-15T21:39:55.560 に答える