Укрощаем 14-го «лиса» заново: правильные настройки по умолчанию

в 11:20, , рубрики: Firefox, firefox 14, правильные браузеры, метки: ,

После обновления на Firefox 14 (Windows) хорошее впечатление от улучшений сменилось недоумением, а затем и осознанием проблемы: файл настроек prefs.js в defaultspref ранее работавший со всеми версиями от 4й до 13й перестал подгружаться. Ставились самые разные опыты — и всё безуспешно: включен антифишинг, автообновление и прочие признаки дурного тона.

Делаю поиск строки «defaults» по всем файлам, находится много файлов, но первое внимание падает на xul.dll. Открываю его в Olly, ищу то же самое. И вот — я вижу любопытные детали

...
100196C2   MOV ECX,xul.10BE1CF0                      ASCII "greprefs.js"
100196D5   PUSH xul.10BE1CFC                         ASCII "defaults/pref/*.js$"
10019744   PUSH xul.10BB0D28                         ASCII "PrfDef"
10019799   PUSH xul.10BE1D10                         ASCII "defaults/preferences/*.js$"
10019849   PUSH xul.10BB0EF4                         ASCII "PrefDL"
...

и еще вот:

1073043C  MOV EDI,xul.10BE1B94                   ASCII "defaults/preferences/*.(J|j)(S|s)$"

Пробую создать директорию preferences в defaults и перенести туда мой prefs.js. Запускаю… Есть! Все настройки на месте. Итак: наш файл настроек js должен лежать в Mozilla Firefoxdefaultspreferences. Любопытно, что defaultspref в дистрибутиве по-прежнему есть, но, похоже, channel-prefs.js там не отрабатывает. Но не суть, оставил как есть. Заглянул потом в Linux — оказывается, там уже в 10-м Фоксе в defaults вложена директория preferences (не prefs)! Вот вам и ответ на вопрос, почему Mozilla ломает (уже во 2й раз) привычный, устоявшийся порядок вещей — ради единства компановки под разными платформами.

А вот мой файл настроек, созданный на основе известных рекомендаций, их критики и собственных исследований. И, да — использую плагин imglikeopera против рекламы, часть соответствующих настроек — для него.

# Mozilla User Preferences
pref("browser.shell.checkDefaultBrowser", false);
pref("app.update.enabled", false);
pref("browser.cache.memory.max_entry_size", 4096);
pref("browser.display.show_image_placeholders", false);
pref("browser.download.useDownloadDir", false);
pref("browser.feeds.showFirstRunUI", false);
pref("browser.history_expire_days.mirror", 180);
pref("browser.migration.version", 1);
pref("browser.places.importBookmarksHTML", false);
pref("browser.preferences.advanced.selectedTabIndex", 0);
pref("browser.rights.3.shown", true);
pref("browser.safebrowsing.enabled", false);
pref("browser.safebrowsing.malware.enabled", false);
pref("browser.search.update", false);
pref("browser.sessionhistory.max_total_viewers", 1);
pref("browser.startup.page", 0);
pref("browser.tabs.animate", false);
pref("config.trim_on_minimize", true);
pref("content.notify.backoffcount", 5);
pref("extensions.shownSelectionUI", true);
pref("extensions.update.enabled", false);
pref("extensions.update.notifyUser", false);
pref("extensions.pendingOperations", false);
pref("toolkit.telemetry.prompted", true);
pref("gfx.direct2d.force-enabled", true);
pref("layers.acceleration.force-enabled", true);
pref("imglikeopera.default.policy", 1);
pref("imglikeopera.experimental.options", true);
pref("imglikeopera.expiration.time", 604800);
pref("imglikeopera.flash.block", true);
pref("imglikeopera.policy.patterns", "yandex.net/ 1  yandex.st/lego/ 1  ");
pref("imglikeopera.policy.switchModes", "1,2");
pref("intl.charsetmenu.browser.cache", "windows-1251, UTF-8");
pref("network.cookie.prefsMigrated", true);
pref("network.dns.disableIPv6", true);
pref("network.http.max-persistent-connections-per-server", 8);
pref("network.http.pipelining", true);
pref("network.http.pipelining.maxrequests", 8);
pref("network.prefetch-next", true);
pref("network.http.proxy.pipelining", true);
//pref("nglayout.initialpaint.delay", 0);
pref("plugin.expose_full_path", true);
pref("privacy.sanitize.migrateFx3Prefs", true);
pref("privacy.sanitize.timeSpan", 0);
pref("security.warn_entering_weak", false);
pref("security.warn_viewing_mixed", false);
pref("ui.submenuDelay", 0);

Автор: noldo32

* - обязательные к заполнению поля