Файлы AutoConfig можно использовать для установки и блокировки параметров, которые не покрываются групповыми политиками на Windows или policies.json для Mac и Linux. Этот метод может использоваться для автоматического изменения пользовательских настроек или для предотвращения изменения конечным пользователем определенных настроек путём их блокировки.
Оглавление
Настройка AutoConfig
Чтобы использовать автонастройку, вам необходимо создать два файла, один на верхнем уровне, а другой в подкаталоге. В Windows пути основаны на каталоге, в котором установлен Firefox. В macOS пути основаны на каталоге Contents/Resources Firefox.app.
Первый файл, который необходимо создать, называется autoconfig.js, и он должен располагаться в папке defaults/pref
. Он должен содержать следующие две строки:
pref("general.config.filename", "firefox.cfg"); pref("general.config.obscure_value", 0);
Первая строка определяет наименование AutoConfig-файла. Имя файла можно изменить, но расположения файла изменить нельзя.
Вторая строка указывает на то, что AutoConfig не должен быть скрыт. По умолчанию Firefox ожидает, что файл будет с побайтовым смещением 13 байтов для его обфускации.
Второй файл, который вы должны создать, называется 'firefox.cfg и он располагается на верхнем уровне каталога Firefox. Он всегда должен начинаться со строки-комментария, например:
// ВАЖНО: Начните свой код со второй строки
Хотя расширение файла автоконфигурации обычно .cfg
, файл автоконфигурации является файлом JavaScript. Это позволяет записывать в файл дополнительный JavaScript для добавления другой логики в различных ситуациях.
Функции AutoConfig
Следующие фукнции доступны внутри AutoConfig-файла:
pref(prefName, value) – устанавливает параметру пользовательское значение. Эта фукнция явно устанавливает параметр как пользовательский параметр. Это означает, что если пользователь изменил значение, оно будет сбрасываться при каждом запуске браузера.
defaultPref(prefName, value) – устанавливает параметру значение по умолчанию. Это то значение, которое параметр имеет, когда пользователь не устанавливает никакое значение или пользователь сбрасывает настройки. Оно может быть навсегда изменено пользователем.
lockPref(prefName, value) – устанавливает параметру значение по умолчанию и блокирует его. Это наиболее часто используемая функция. Блокировка параметра не даёт пользователи его изменять и в большинстве случаев отключает настройки в графическом интерфейсе, что даёт пользователю очевидное понимание, что параметр был отключен.
unlockPref(prefName) – разблокирует параметр. В качестве примера, это может быть использовано в случае, когда настройки должны быть заблокированы для всех пользователей, но разблокированы для определенных пользователей.
getPref(prefName) – извлекает значение параметра. Если параметр не существует, выводится сообщение об ошибке. Эту функцию следует использовать только для тех параметров, которые существуют всегда.
clearPref(prefName) – удаляет пользовательское значение параметра, возвращая его к значению по умолчанию.
displayError(funcname, message) – отображает ошибку в определенном формате, что является удобным инструментом для отладки.
Netscape.cfg/AutoConfig failed. Please contact your system administrator. Error: [funcname] failed: [message]
getenv(name) – запрашивает переменные среды. Это может обеспечить доступ к таким вещам, как имена пользователей и другая системная информация.
Отключение элементов пользовательского интерфейса
В тех случаях, когда элементы пользовательского интерфейса не отключаются автоматически в настройках, существуют некоторые параметры “disable_button”, которые при блокировке отключают кнопки. Например, если добавить
lockPref("pref.privacy.disable_button.view_passwords",true);
в вашем файле AutoConfig, то будет отключена кнопка . Другие параметры, которые включают блокировку кнопок:
- pref.general.disable_button.default_browser
- pref.browser.homepage.disable_button.current_page
- pref.browser.homepage.disable_button.bookmark_page
- pref.browser.homepage.disable_button.restore_default
- security.disable_button.openCertManager
- security.disable_button.openDeviceManager
- app.update.disable_button.showUpdateHistory
- pref.privacy.disable_button.cookie_exceptions
- pref.privacy.disable_button.view_cookies
- pref.privacy.disable_button.view_passwords
- pref.privacy.disable_button.view_passwords_exceptions
- pref.downloads.disable_button.edit_actions.
Централизованное управление
Файлом AutoConfig можно управлять централизованно. Для этого необходимо указать расположение дополнительного файла AutoConfig в основном файле AutoConfig:
pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");
URL-адресом может быть любой протокол, поддерживаемый Firefox, включая протокол file:
, указывающий на файл на сетевом диске. Формат удаленного файла AutoConfig такой же, как и у файла AutoConfig на клиенте, за исключением того, что первая строка не игнорируется.
Существуют и другие параметры, которые управляют различными аспектами AutoConfig. Параметр autoadmin.refresh_interval
позволяет обновлять AutoConfig с заданным интервалом, указанным в минутах. Существуют также настройки, связанные с управлением автономным режимом, включая autoadmin.offline_failover
и autoadmin.failover_to_cached
.
Каждый раз при получении AutoConfig-файла с удалённого ресурса в папке профиля пользователя создаётся его резервная копия с именем failover.jsc
. Если параметр autoadmin.failover_to_cached
установлен в значение false
, Firefox считывает закэшированный файл и отмечает браузер как работающий оффлайн и блокирует параметр, так что пользователь не может перейти в онлайн. Если этот параметр установлен в true
, он просто использует закэшированный файл и продолжает. Параметр autoadmin.offline_failover
контролирует, используется ли закэшированный файл, когда пользователь в оффлайне. Если он установлен в true
, используется закэшированный файл.
Параметры, относящиеся к конкретному пользователю
Если в файл AutoConfig необходимо включить информацию, относящуюся к конкретному пользователю, следует установить следующий параметр:
pref("autoadmin.append_emailaddr", true);
При этом к запросу будут добавлены вопросительный знак (?) и адрес электронной почты.
Поскольку Firefox не использует адреса электронной почты, необходимо задать параметр mail.identity.useremail
. Если он не задан, Firefox отобразит запрос на ввод адреса электронной почты. Поскольку файл автонастройки является файлом JavaScript, это предпочтение можно задать перед установкой autoadmin.global_config_url
. Например:
var user = getenv("USER"); lockPref("mail.identity.useremail", user); lockPref("autoadmin.global_config_url","https://yourdomain.com/autoconfigfile.js");