Я читал в wiki, что NoScript является открытым исходным кодом http://en.wikipedia.org/wiki/NoScript, но на официальном сайте http://noscript.net/, я не могу найти никаких источников. Поэтому мой вопрос: где найти источники? Или, что-то я не понял, и исходный код недоступен?
Где найти исходный код расширения Mozilla NoScript?
Ответ 1
Расширение содержит исходный код - вам просто нужно разархивировать его. Смотрите ответ Giorgio здесь.
Весь исходный код общедоступен в каждом XPI.
У вас есть это на жестком диске прямо сейчас, если вы пользователь NoScript, иначе вы можете скачать его здесь.
Вы можете исследовать и/или изменять его, распаковывая XPI и JAR внутри, и "строя" его обратно, перетаскивая оба.
Это было так навсегда, начиная с самой первой версии.
Ответ 2
Формат 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