#jar #firefox-addon
#jar #firefox-аддон
Вопрос:
Я читаю учебник о расширениях Firefox, и один из важных файлов chrome.manifest
выглядит следующим образом:
content xulschoolhello jar:chrome/xulschoolhello.jar!/content/
skin xulschoolhello classic/1.0 jar:chrome/xulschoolhello.jar!/skin/unix/
skin xulschoolhello classic/1.0 jar:chrome/xulschoolhello.jar!/skin/mac/ os=Darwin
skin xulschoolhello classic/1.0 jar:chrome/xulschoolhello.jar!/skin/win/ os=WinNT
locale xulschoolhello en-US jar:chrome/xulschoolhello.jar!/locale/en-US/
Частью этого файла является a jar scheme
, который является ядром этого вопроса. Меня интересует спецификация (семантика) и роль этой схемы. В приведенном выше руководстве написано только:
It tells Firefox to look into the JAR file and read the files from the right path.
Когда я искал дополнительную информацию об этой схеме, я нашел только вещи, связанные с языком программирования Java, но не вещи, связанные с расширением Firefox.
Не могли бы вы объяснить эту схему более подробно?
(Я тоже пометил его jar
, но я переставлю его, если это что-то другое)
Спасибо
Ответ №1:
chrome.manifest
Файл сообщает Firefox, где искать файлы Chrome с расширением. Эти файлы могут быть упакованы (в JAR-файл) или распакованы (в файловой системе, а не в JAR-файле). Для распакованных расширений вам просто нужно указать путь к файлам в файловой системе. jar:
Схема заключается в том, как вы сообщаете Firefox, что ваши файлы Chrome упакованы, где находится JAR, а затем где найти файлы в JAR. Она имеет следующий формат:
jar:<path_to_JAR>!<path_to_files_in_JAR>
Чтобы привести конкретный пример, расширение Greasemonkey имеет следующую строку в своем манифесте:
content greasemonkey jar:chrome/greasemonkey.jar!/content/
Это сообщает Firefox, что у Greasemonkey есть каталог содержимого в JAR, расположенный по адресу chrome/greasemonkey.jar
(путь относительно местоположения манифеста) в каталоге верхнего уровня с именем content
.
Комментарии:
1. Спасибо. Если у вас есть ссылка, где вы нашли эту информацию, пожалуйста, добавьте ее.