Пристосування Firefox за допомогою AutoConfig

Файли AutoConfig можна застосовувати для встановлення та блокування параметрів, на які не поширюються політики Firefox.

Щоб застосувати AutoConfig, ви розміщуєте два файли в каталогах Firefox. У 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 і вони розміщуються на верхньому рівні.

Починати його завжди слід із коментованого рядка:

// IMPORTANT: Start your code on the 2nd line

Хоча розширення файлу AutoConfig зазвичай є cfg, сам файл AutoConfig є файлом JavaScript. Це означає, що ви можете писати JavaScript у файлі, щоб мати різну логіку в різних ситуаціях.

Такі функції доступні у файлі AutoConfig:

pref(prefName, value) – встановлює значення користувача для параметра. Ця функція явно встановлює параметр користувацьким налаштуванням. Це означає, що якщо користувач змінив значення, воно буде скинуто за кожного запуску браузера.

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

lockPref(prefName, value) – встановлює типове значення параметрів і блокує їх. Ця функція є найзнайомішою людям, коли мова йде про файли AutoConfig. Блокування параметра не дозволяє користувачеві змінювати його, і в більшості випадків вимикає користувацький інтерфейс у налаштуваннях, тому користувачеві очевидно, що налаштування вимкнено. У випадках, коли ви не бачите, що щось вимикається в налаштуваннях, є деякі параметри "disable_button", які, коли заблоковані, вимикають кнопки. Наприклад, якщо ви заблокували pref

pref.privacy.disable_button.view_passwords

він вимкне кнопку «Перегляд паролів». Інші параметри, які мають кнопки блокування:

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.

unlockPref(prefName) – розблоковує параметри. Наприклад, можуть бути випадки, коли ви заблокуєте параметри для всіх, а потім розблокуєте для певного користувача.

getPref(prefName) – отримує значення параметра. Якщо параметра не існує, з'явиться помилка. Ви повинні використовувати це лише для тих параметрів, про існування яких ви знаєте.

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

displayError(funcname, message) – показує помилку встановленого формату.

   Netscape.cfg/AutoConfig failed. Please contact your system administrator.
   Error: [funcname] failed: [message]

Це зручно для зневадження.

getenv(name) – дозволяє запитувати змінні середовища. Це може дозволити вам робити такі речі, як отримання користувацьких імен та інших системних даних.

Якщо ви хочете централізовано керувати вашим файлом AutoConfig, ви можете вказати розташування вторинного файлу AutoConfig у первинному файлі AutoConfig:

pref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

URL-адреса може бути будь-яким протоколом, що підтримується Firefox. Це включає зазначення файлу: для вказівки на файл на мережному диску. Формат віддаленого файлу autoconfig такий же, як файл autoconfig на клієнті, за винятком того, що перший рядок не ігнорується.

Якщо ви хочете, щоб у вашій конфігурації були дані про користувача, ви можете встановити інший параметр:

pref("autoadmin.append_emailaddr", true);

Це дозволить додати знак запитання (?) та адресу електронної пошти до запиту.

Можливо, вам цікаво, звідки береться ця електронна адреса. Оскільки Firefox не використовує адреси електронної пошти, вам потрібно буде встановити їх. Якщо ви цього не зробите, Firefox запитає вашу електронну адресу. Параметр називається mail.identity.useremail і є рядковим параметром. Оскільки файл autoconfig є файлом JS, ви можете вказати цей параметр перед налаштуванням autoadmin.global_config_url. Ви можете зробити щось подібне:

var user = getenv("USER"); lockPref("mail.identity.useremail", user); lockPref("autoadmin.global_config_url","http://yourdomain.com/autoconfigfile.js");

Є кілька інших параметрів, які контролюють аспекти AutoConfig. autoadmin.refresh_interval викликає оновлення AutoConfig впродовж визначених проміжків часу, зазначених у хвилинах. Існують також деякі параметри, які визначають як це обробляється в автономному режимі, включаючи including autoadmin.offline_failover та autoadmin.failover_to_cached. Ось як це влаштовано.

Щоразу, коли файл AutoConfig отримується віддалено, резервна копія цього файлу створюється в каталозі профілю користувача під назвою failover.jsc. Якщо для параметра autoadmin.failover_to_cached встановлено значення false, Firefox читає кешований файл, а потім позначає браузер автономним та блокує параметри, щоб користувач не міг під'єднатися до Інтернету. Якщо для параметра вибрано значення true, він просто використовує кешований файл, а потім продовжує. Параметр autoadmin.offline_failover визначає, чи використовувати кешований файл, коли користувач просто не в мережі. Якщо для нього встановлено значення true, використовується кешований файл.

Ця стаття допомогла?

Зачекайте...

Цю статтю допомогли написати такі чудові люди:

Illustration of hands

Станьте волонтером

Примножуйте ваші знання та діліться ними з іншими. Відповідайте на запитання та поповнюйте нашу базу знань.

Докладніше