2013-07-15 140 views

回答

12

該擴展包含源代碼 - 你只需要解壓縮它。見Giorgio's response here

整個源代碼在每個XPI中公開可用。

你已經在硬盤上獲得了它,如果你是NoScript用戶,那麼你可以在這裏下載它。

您可以通過解壓縮XPI和JAR來檢查和/或修改它,並通過重新壓縮兩者來「建立」它。

從第一個版本開始,它一直如此。

+0

不很瞭解的.xpi。謝謝) – Suhan

17

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 
相關問題