23 июля 2012 в 15:20

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

После обновления на Firefox 14 (Windows) хорошее впечатление от улучшений сменилось недоумением, а затем и осознанием проблемы: файл настроек prefs.js в defaults\pref ранее работавший со всеми версиями от 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 Firefox\defaults\preferences. Любопытно, что defaults\pref в дистрибутиве по-прежнему есть, но, похоже, 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.places.importBookmarksHTML", false);
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.proxy.pipelining", 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
карма
1,0
рейтинг 0,0
Самое читаемое Разработка

Комментарии (15)

  • +8
    спасибо, держите нас в курсе.
    • +2
      Зря ёрничаете, с этим браузером постоянно что-нибудь ломается от версии к версии — и для пользователя, и для разработчика.
      • +2
        тему вы затронули полезную, но пост ваш выдержан в стиле «я и мой сраный Firefox». Написали бы подробнее что ли: зачем какая настройка нужна.
        • –2
          Назначение настроек — это другая тема, автор мог бы их и не приводить. А главное — он нашёл и рассказал, что там надо поковырять руками, чтобы заработало. Мне в этом браузере постоянно приходится тестировать и аддоны содержать для разработок, поэтому тема вызывает интерес. К тому же он обещает продолжение про настройки в комментарии ниже — хорошо, ждём.
  • +16
    А вот мой файл настроек, созданный на основе известных рекомендаций, их критики и собственных исследований.
    Для публики было бы познавательно увидеть от Вас отдельную блогозапись с краткою выжимкою этих рекомендаций, и критики, и исследований — по каждой из строчек конфигурации. А не то, быть может, не все понимают их.
    • 0
      да, продолжение следует
  • +1
    Маленький оффтопик: наблюдать, какие файлы открывает (или пытается открыть) приложение, удобно с помощью утилиты ProcessMonitor. Позволяет обойтись без хардкора с hex и Olly и сэкономить время. Там мониторится не только файловая система, но и реестр, что тоже бывает полезно.
  • +10
    Пользователи Olly настолько суровы, что пользуются ею даже тогда, когда есть доступ к сорцам.
    • 0
      Что быстрее: запустить имеющийся под рукой Olly(или подобную утилиту) или выкачать сорцы и попытаться найти в них искомое? ;)
      • +1
        Вроде бы есть у firefox(mozilla) репозиторий с поиском? Хотя могу ошибиться
  • –10
    у Chrome таких проблем нет
    • +7
      Может, их нет просто потому, что у Хрома сама возможность кастомизации (сразу для всех возможных юзерских аккаунтов в системе) — вообще напрочь отсутствует?
  • 0
    Спасибо за подробности.
    Посмотрел у себя: есть несколько юзерских аккаунтов. Есть (путь в Program files к Файрфоксу, версия 14.0.1)\defaults\pref\ с единственным файлом channel-prefs.js и строчками
    //@line 2 "e:\builds\moz2_slave\rel-m-rel-w32-bld\build\browser\app\profile\channel-prefs.js"
    pref("app.update.channel", "release");
    

    Это нормально? А prefs.js лежит в профиле, в (путь к профилю)\defaults\preferences\, со всеми настройками. Или для того, чтобы настройки действовали для всех профилей, его руками надо выложить во вручную созданный defaults\preferences\?
    А то меня несколько напрягло, что он автообновился с 13-й версии, хотя никто его не просил, и подумал, что надо сделать своё исследование по этим вопросам.
    • 0
      Да, «чтобы настройки действовали для всех профилей, его руками надо выложить во вручную созданный defaults\preferences\». Название практически любое, расширение js.
      • 0
        Спасибо за ссылку. Тогда больше понятно, почему они забыли о такой своей фиче и не подчистили — ей пользуются мало людей. Но, пишут, какие-то настоящие баги (в смысле, из штатных настроек) в 14.0.1 у части людей тоже есть, такие, что приходится откатывать до 12-й.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.