Водкотерапевт > 25-02-2012 22:53:01 |
Эта тема — объединение информации из этой темы и вот этой статьи с поправкой на новые версии Firefox. В частности, не работают указанные ранее варианты с папками localized и nonlocalized. Предлагаю начать, и да простят меня модераторы за злоупотребление жирным шрифтом. 1. Скачайте дистрибутив и поместите в папку Repack под простым именем, например Firefox-901.exe 2. Скачайте служебные файлы 7zSD.sfx и app.tag и поместите их в папку Repack\extra 3. Пропишите 7-Zip в Path: 4. Распакуйте дистрибутив в папку build_win: 5. Добавляем расширения: 5.1. Чтобы расширения добавлялись к каждому создаваемому профилю, поместите их в папку build_win\core\distribution\extensions\ 5.2. Некоторые расширения хранят свои настройки в виде отдельных файлов в папке профиля. Создайте папку build_win\core\defaults\profile\ и положите их туда. Пример: build_win\core\defaults\profile\adblockplus\patterns.ini 6. Добавляем закладки, настройки, поисковые движки, пароли и т.д Важно понимать, что структура папки build_win\core\defaults\profile\ полностью соответствует структуре папки профиля. Соблюдайте структуру, и все будет работать. 6.1. Формат закладок зависит от настроек вашего браузера — они хранятся либо в виде HTML, либо в виде SQLITE. Таким образом, у нас два варианта: 6.1.1. build_win\core\defaults\profile\bookmarks.html 6.1.2. build_win\core\defaults\profile\places.sqlite 6.2. Пользовательские настройки хранятся в файле prefs.js: build_win\core\defaults\profile\prefs.js ВНИМАНИЕ! В файле должны храниться только созданные пользователем настройки! Всяких extensions.installCache и прочих install-event-fired быть не должно! Эти настройки будут созданы браузером автоматически! Если вы не знаете, что оставить, откройте файл настроек расширения (лежит в *.xpi\defaults\preferences\*.js) и посмотрите имена этих настроек. Значения же оставляйте те, что в вашем файле. 6.3. Поисковые движки: 6.3.1. Толерантный способ: просто кидайте их в папку build_win\core\defaults\profile\searchplugins 6.3.2. Хардкорный способ: если вы хотите, чтобы ваши движки считались стандартными, запихните их в папку build_win\core\searchplugins Так вы сможете восстанавливать их кнопкой «Восстановить набор по умолчанию». 6.4. Все остальное добавляется по тому же принципу. 7. Собираем дистрибутив! 7.1. Переходим в папку build_win: 7.2. Собираем архив: 7.3. Приклеиваем к архиву распаковщик и заголовок: 8. Кайфуем! Разумеется, без командных файлов никуда: Распаковка: Сборка: |
hydrolizer > 26-02-2012 06:22:09 |
Водкотерапевт пишетВНИМАНИЕ! В файле должны храниться только созданные пользователем настройки!
И измененные пользователем настройки. В т.ч. настройки самого браузера. Т.е. если возникнет задача не только встроить расширения в дистрибутив, но просто сделать сборку с уже заранее определенными нужным образом настройками, то что-нибудь типа keyword.URL = http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= там вполне может быть. |
hydrolizer > 26-02-2012 08:50:03 |
И еще пара нюансов: Водкотерапевт пишет5. Добавляем расширения: 5.1. Чтобы расширения добавлялись к каждому создаваемому профилю, поместите их в папку build_win\core\distribution\extensions\
При этом имя файла расширения должно быть в виде id_расширения.xpi (например, status4evar@caligonstudios.com.xpi). ID расширения можно узнать, например, из информации в about:support. Если расширение требует распаковки при установке (тэг <em:unpack>true</em:unpack> в файле install.rdf расширения), то расширение должно быть распаковано в папку build_win\core\distribution\extensions\id_расширения. Если положить просто файл, расширение распаковано не будет, даже несмотря на наличие em:unpack=true в install.rdf. Нераспаковка расширения в этом случае может привести к неработоспособности расширения - обязательная распаковка нужна при наличии в расширении некоторых типов файлов. Опять про настройки. 1. При наличии в значениях настроек юникодных символов (символов русского алфавита в т.ч.), файл настроек должен быть в кодировке UTF-8 - иначе настройки будут созданы, но без значений. 2. Значения настроек, указанных в defaults\profile\prefs.js, будут при создании профиля использоваться как дефолтные - т.е. если упомянутая в предыдущем постинге keyword.URL при установке из обычного дистрибутива имеет значение по умолчанию в виде пустой строки, то после указания в prefs.js значения http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= в новом профиле значение по умоланию будет равно этому http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=; при сбросе значения настройки она опять станет равным всё этому же URL. 3. Ну и, наконец, одна небольшая проблема: если понадобится в сборке распространять значения настроек расширений, отличные от дефолтных, то как это нормально сделать - я способа не нашел. Указание измененных значений в defaults\profile\prefs.js никакого эффекта не имеет. Есть вариант указывать эти значения в user.js - то тогда эти значения будут заново применяться при каждом старте браузера. Возможно, способ есть, надо подумать. |
Водкотерапевт > 26-02-2012 13:56:32 |
hydrolizer пишет2. Значения настроек, указанных в defaults\profile\prefs.js, будут при создании профиля использоваться как дефолтные - т.е. если упомянутая в предыдущем постинге keyword.URL при установке из обычного дистрибутива имеет значение по умолчанию в виде пустой строки, то после указания в prefs.js значения http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q= в новом профиле значение по умоланию будет равно этому http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=; при сбросе значения настройки она опять станет равным всё этому же URL.
Скверно. Это значит, что при обновлении расширения его настройки будут заменены на дефолтные, идущие в комплекте, правильно? hydrolizer пишет3. Ну и, наконец, одна небольшая проблема: если понадобится в сборке распространять значения настроек расширений, отличные от дефолтных, то как это нормально сделать - я способа не нашел. Указание измененных значений в defaults\profile\prefs.js никакого эффекта не имеет. Есть вариант указывать эти значения в user.js - то тогда эти значения будут заново применяться при каждом старте браузера. Возможно, способ есть, надо подумать.
С учетом предыдущего проблема получается таки большая. Буду экспериментировать. |