Jar схема в расширении Firefox - PullRequest
       12

Jar схема в расширении Firefox

2 голосов
/ 26 октября 2011

Я читаю учебник о расширениях 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/

Часть этого файла - jar scheme который является ядром этого вопроса.Меня интересует спецификация (семантика) и роль этой схемы .В приведенном выше учебнике написано только:

It tells Firefox to look into the JAR file and read the files from the right path.

Когда я искал дополнительную информацию об этой схеме, я обнаружил только то, что связано с языком программирования Java, но не то, что связано с Firefox.расширение.

Не могли бы вы объяснить эту схему более подробно?

(я тоже пометил ее jar, но я сделаю метку, если это что-то другое)

спасибо

1 Ответ

2 голосов
/ 02 ноября 2011

Файл 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.

...