Воспользовался статьей https://support.mozilla.org/ru/kb/modif … autoconfig про автоконфигурацию.
Создал файл firefox.cfg:

скрытый текст

Выделить код

Код:

// Небольшой тюнинг Firefox с помощью Mozilla AutoConfig
pref("browser.startup.homepage", "yandex.ru");

Запускаю браузер первый раз. Настройки не применились.
Закрыл и открыл второй раз. Всё настроилось как надо.

Кто знает, почему с первого раза настройки не применяются?
Что можно сделать, чтобы применились?

Чтобы использовать AutoConfig, необходимо в папки Firefox расположить два файла.


Первый файл, который необходимо создать, называется autoconfig.js, и он располагается в папке defaults/pref. Он должен содержать следующие две строки:
pref("general.config.filename", "firefox.cfg");
pref("general.config.obscure_value", 0);


Второй файл, который вы должны создать, называется firefox.cfg и он располагается на верхнем уровне.
Он всегда должен начинаться со строки-комментария:
// ВАЖНО: Начните свой код со второй строки
...далее ваши настройки

Coroner пишет
dreamkz пишет

1)

pref(prefName, value) – устанавливает параметру пользовательское значение. Эта функция явно устанавливает параметр как пользовательский параметр. Это означает, что если пользователь изменил значение, оно будет сбрасываться при каждом запуске браузера.

Вот тут не понял. Например, как может пользователь менять значение параметра на false, если оно будет сбрасываться на дефолтное true при каждом запуске браузера? Или имеется в виду, что дефолтное значение true будет сбрасываться на пользовательское false  при каждом запуске браузера?

Имеется в виду лишь то, что этот параметр:
1. Пользовательский. То есть выделен жирным в about:config
2. Как его не переключай в about:config — он всё равно будет помечен жирным (так как в любом случае он пользовательский и значение установлено пользователем. То есть какого то дефолтного не имеет).
3. Сбрасываться — имеется в виду, что будут игнорироваться установки из user.js. То есть пользователь изменил настройки в user.js, но при запуске параметр сброситься в значение, установленное администратором в firefox.cfg. Про true и false ничего не сказано. Имеются в виду лишь настройки в firefox.cfg.
4. Этот параметр со значением из firefox.cfg копируется в prefs.js



dreamkz пишет

2)

defaultPref(prefName, value) – устанавливает параметру значение по умолчанию. Это то значение, которое параметр имеет, когда пользователь не устанавливает никакое значение.

С этим более менее понятно. Но для чего тогда ставить defaultPref, если пользователем вообще не будет устанавливаться никакого значения?

Пользователь не устанавливает. Но вы, как администратор, можете установить дефолтное состояние параметра в firefox.cfg
Для чего? Вам как администратору надо чтобы этот параметр имел определённое значение. А пользователь про это не знает, да ему и не надо.
Этот параметр со значением из firefox.cfg не копируется в prefs.js



dreamkz пишет

5)

getPref(prefName) – возвращает значение параметра. Если параметр не существует, выводит ошибку. Вы должны использовать эту функцию только для параметров, о которых знаете, что они существуют.

Тут непонятно, для чего возвращать значение параметру?

Для использования скриптом. Мало ли кто чего захочет в firefox.cfg реализовать. А с помощью этой функции погромист может получить значение параметра, чтобы поменять его там же, в зависимости от значения или ещё какую логику реализовать. Цитата из Модификация Firefox с помощью AutoConfig

Несмотря на то, что расширение файла AutoConfig обычно cfg, сам по себе файл AutoConfig является JavaScript-файл. Это означает, что вы можете писать на JavaScript внутри файла, чтобы применять различную логику в разных ситуациях.




dreamkz пишет

6)

clearPref(prefName) – удаляет пользовательское значение параметра, сбрасывая его в значение по умолчанию.

Для чего удалять пользовательские значения, если можно сам параметр можно заблокировать через lockPref?

Ну... Можно заблокировать, а можно удалить. Поскольку (как так же указано в той справочной статье) файлом firefox.cfg можно управлять централизованно, то можно разом удалить неиспользуемые уже параметры. Для новой версии браузера, например, или просто неактуальные. Чего им в настройках болтаться, если они уже не нужны?


Ну типа того и всё такое... ©


ссылка