14 ноября выходит Firefox версии 57. С виду ничего важного, однако это одна из самых важных вех в развитии браузера. В этой версии будет окончательно завершен переход с Gecko на компоненты Quantum - проекта комбинирующего проверенные временем компоненты движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust и движком Servo, благодаря чему многократно возрастёт скорость работы, догнав и перегнав конкурентов. Также в новой версии будет добавлен новый интерфейс Photon, в котором учтены ошибки прошлого интерфейса Australis. Но, к сожалению, не обошлось без жертв. В Firefox 57 будет удалена поддержка устаревших дополнений, написанных с использованием XUL / XPCOM, и будут поддерживаться только дополнения, написанные с использованием WebExtensions. Какие-то дополнения уже давно забросили авторы, какие-то не могут быть переписаны, т.к. на данный момент ещё нет подходящих API, как итог - после обновления большая часть дополнений может перестать работать (возле устаревших дополнений уже сейчас висит плашечка "LEGACY", которая как-бы предупреждает).

Рекомендую посмотреть вот эту таблицу, из неё можно узнать, какие из дополнений будут (или не будут) портированы, или подыскать им альтернативу.

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

Для тех, кому интересно, почему Mozilla пришлось отказаться от большей части дополнений Firefox, я хочу процитировать комментарий пользователя VEG с хабра:

Цитата
Расширения имеют полный доступ к внутренностям браузера. Они могут изменить всё что угодно, но при этом очень чувствительны к любым внутренним изменениям. Представьте, нет никакой инкапсуляции. Расширения имеют доступ абсолютно ко всему. В самых плохих случаях расширения могут патчить код некоторых функций UI браузера на лету. Малейшие изменения в этом ломают те или иные расширения. Причём расширения могут не просто ломаться, а продолжать работать неправильно, с утечками памяти, тормозить и т.д. Авторы расширений часто не следят пристально за своими расширениями, часто забрасывают. В итоге — при обновлениях браузера у пользователей часто случаются проблемы с расширениями, что часто проявляется в виде нестабильности или тормозов, что сильно портит репутацию браузеру. Мало кто из пользователей готов снисходительно относиться к подобным проблемам в обмен на максимальную гибкость. По этой же причине у разработчиков связаны руки. Они не могут позволить себе вносить серьёзные изменения в браузер. Исторически Firefox всегда работал в один поток. Все вкладки, код всех расширений, код главного окна — всё в один поток (и всё на JS). И просто так это не изменить — все расширения, которые хоть как-то обращались с контентом вкладок, опирались на простой синхронный способ доступа к контенту вкладки. Это нельзя просто так разнести на потоки или процессы. Соответственно: А. Оно работает медленно; Б. Оно небезопасно (вкладки выполняются в процессе с обычными правами); В. Падает вкладка — падает всё. Последние несколько лет они это меняли, ввели многопроцессность и всё такое. Но до сих пор большинство расширений не поддерживают это, до сих пор большинство расширений опирается compatibility shims, которые разработчики добавили для совместимости, но эти заглушки делают браузер даже ещё медленнее, потому что добавилось взаимодействие между процессами. Расширения должны быть переписаны, скрипты для интерфейса и контента должны быть строго разделены, и должны общаться через механизм сообщений, то есть если раньше основной скрипт прямо из интерфейса мог обратиться к документу и наделать кучу работы, то сейчас всю работу должен делать отдельный контент-скрипт, который отдаст результат основному скрипту через установленный канал. Но авторы расширений не спешат с переписыванием. Как результат — внедрение многопроцессности много лет переносилось, дорабатывалось, перерабатывалось, и внедрили это совсем недавно, с толстым слоем совместимости, который делает всё ещё хуже (в плане производительности). Mozilla уже несколько лет пишет новый движок Servo. Но пока расширения так сильно завязаны на внутренности браузера, о таких переменах в Firefox говорить не приходится. У разработчиков связаны руки. Отказом от старых расширений и переходом на WebExtensions Mozilla решает сразу несколько критичных проблем: 1. Расширения больше не будут иметь доступ к внутренностям. Это развяжет руки разработчикам и они наконец смогут вносить существенные изменения в архитектуру браузера. 2. Расширения не будут ломаться после каждого обновления. У них будет узкое специализированное API, которое будет стабильно. 3. Многопроцессность сможет работать в полную силу. Вы сами назвали браузер «тормозиллой» не просто так. У Firefox действительно такая репутация. Ну а что вы хотите, в один поток много работы быстро не сделаешь, а внедрять многопроцессность они начали недавно, и то она много у кого не работает как надо из-за расширений. 4. Соответственно это и попытка исправить репутацию браузера, который воспринимается людьми как «тормозной», «глючный», с «регулярно отваливающимися расширениями». Недостатка при этом два, существенных: 1. Отвалятся все старые расширения. 2. Многие из старых расширений будут невозможны на новом API из-за того, что стабильные API на все случаи жизни придумать невозможно (например, API для модификации существующих элементов GUI браузера), а доступа к внутренностям браузера не будет. Второй пункт они могли бы решить, предоставив полный доступ к внутренностям, но они таким образом опять свяжут себе руки и останутся с теми же проблемами, которые они пытаются решить. Я объясняю, почему разработчики Firefox решились на этот тяжёлый шаг. Но я не рад, что они идут на этот шаг. У меня Firefox увешан расширениями с ног до головы и очень тонко настроен под мои нужды, что не может предложить ни один другой браузер. И я очень привык ко всем добавленным расширениями фишкам GUI, что делали мой сёрфинг гораздо приятнее. Я сам поддерживаю несколько расширений, и 3 из 4 не смогут быть перенесены на WebExtensions. И по этой причине я принял решение оставаться на Firefox 52 ESR так долго как это будет возможно. Я сижу на Firefox с самой первой версии, а до этого был ещё и на Mozilla Suite. При этом всё это время я наблюдал полный спектр проблем с Firefox. Расширения отваливались. Иногда не целиком, иногда — частично, ломая попутно что-нибудь малосвязанное с этим. Расширения, которыми я пользовался, забрасывались авторами (и 2 из них мне пришлось самому форкнуть, доработать и поддерживать). Мои кастомные стили также иногда ломались, и их тоже приходилось иногда дописывать. Я программист, я могу себе это позволить. Я понимаю, почему оно так, принимаю это и не жалуюсь. Но что тут говорить об обычных пользователях, когда даже большинство других программистов точно так как и обычные пользователи жалуются на описанные выше проблемы? Я мог быть снисходительным к описанным проблемам из-за тех безграничных возможностей кастомизации, что даёт уже устаревшая система расширений. Но 99% других пользователей это не волнует. Они хотят просто браузер, который работает быстро, стабильно, и не требует внимания на очередную починку очередной поломки. Тех, кто готов возиться с браузером для решения проблем даже раз в полгода или в год — ничтожно мало. По сути, они это делают для всех ругающихся на Mozilla из-за проблем совместимости расширений между разными версиями Firefox. То есть если раньше перманентно ругались по чуть-чуть на пути Firefox 1.0 → Firefox 56, то после релиза Firefox 57 будет большой взрыв ругани, недели которого которого хватит на 3 года вперёд. А вот следом — проблема будет по сути решена. Нет полного доступа к внутренностям браузера → нет расширений, которые будут ломаться при изменении внутренностей → нет нытья о том, что «злая Mozilla всё опять поломала». Я ещё в 2013 году (когда Opera отказалась от Presto) писал, что нужно быть благодарным Mozilla за то, что они упорно поддерживают свой гиковский подход, хоть он и проблемный и регулярно портит им репутацию. Вот, ещё 4 года продержались. Все 4 года кто-нибудь обязательно поливал их помоями из-за поломки очередного расширения или других связанных проблем. Хорошая демонстрация того, как сложно им было решиться на такой радикальный шаг по решению обозначенной проблемы. Очень уж не хотелось потерять свои уникальные расширения. Потратили уйму времени на внедрение многопроцессности в текущую архитектуру, только-только успели внедрить это в браузер, да и то не успели полностью перейти (и многие расширения до сих пор не адаптированы), слой совместимости, который сильно тормозит браузер, если расширения опираются на этот слой, всё ещё включен. Но в итоге исправление репутации «глючного и постоянно ломающегося браузера» перевесило и оказалось более важным. Разработчики в блоге говорят что ни при каких обстоятельствах они не будут переносить момент отказа от XUL, хотя некоторые на это и надеются (и я тоже сразу надеялся, что сроки перенесут).

Общее
528
4
Аскольд (ответить)

Лол, я браузер уже сто лет не обновляю. Кстати этот сайт путём нехитрых манипуляций можно заставить работать даже в Netscape Navigator 2, только кнопка отправки комментария почему-то неактивна.
Пруф: http://i12.pixs.ru/storage/6/9/6/netscape2P_8479305_27735696.png

modos189 (ответить)

Ты что сделал с моим гениальным дизайном?)
А вообще, и в links2 тоже можно смотреть, например

Аскольд (ответить)

Упростил до уровня 1997 года. Только это не я, а браузер :-)

modos189 (ответить)

Использую дополнение Tree Style Tab для вкладок сбоку, пока что нет API для скрытия панели вкладок вверху экрана, но это можно исправить с помощью userChrome.css. Этот файл находится в папке chrome вашего профиля браузера. Необходимо добавить эти строки:

#TabsToolbar {
   visibility: collapse;
}
#sidebar-close {
   visibility: collapse;
}
#sidebar-box {
   position: relative;
}
#sidebar-header {
   position: absolute;
   bottom: 0;
   width: 100%;
}
Добавление комментария (отменить)
  • *Псевдоним:
  • *Код подтверждения:Введите код с картинки, для проверки, что вы не робот.