Почему Firefox должен был убить ваше любимое расширение
Firefox 57, или Quantum, уже здесь, и это огромное улучшение. Firefox наконец-то догнал Chrome с точки зрения скорости, интерфейс стал намного чище, и есть несколько замечательных новых возможностей для загрузки. Здесь не на что жаловаться.
Просто шучу. В интернете всегда есть на что пожаловаться.
Firefox Quantum жалуется на то, что некоторые расширения больше не работают. Многочисленные громкие расширения, в том числе DownThemAll и Greasemonkey, в настоящее время не работают с Quantum. Другие, в том числе Firebug и ScrapBook, больше никогда не будут работать.
Это расстраивает, если вы пользуетесь одним из этих сервисов, и вы можете подумать, что это несколько произвольно. Это не так. Нравится вам это или нет, но Mozilla чувствовала, что у них нет выбора, кроме как отказаться от того, что он называет «устаревшими» надстройками, чтобы двигаться вперед. Вот почему.
Как работали устаревшие расширения Firefox
Традиционные расширения Firefox обычно написаны на языке пользовательского интерфейса XML (XUL). Это язык, на котором построен пользовательский интерфейс Firefox, и расширения на основе XUL могут напрямую изменять этот интерфейс. Эти дополнения также имели почти полный доступ к XPCOM, мощной объектной модели компонентов, используемой Firefox..
Если вам это не по душе, просто знайте: расширения Firefox имели более или менее полную возможность изменить ваш браузер, и они вносили эти изменения напрямую. Вот почему эти расширения были такими мощными: не было предписанного набора вещей, которые они могли бы и не могли изменить. Именно поэтому эти расширения имели тенденцию ломаться с новыми выпусками Firefox.
Расширения для Chrome или Safari не работают таким образом. Эти браузеры предлагают разработчикам расширений специальные API-интерфейсы, которые они могут использовать, а это означает, что есть набор вещей, которые расширения могут и не могут контролировать. В течение двух лет Firefox предлагал аналогичный API под названием WebExtensions, который поощрял разработчиков.
Традиционные расширения сделали улучшение Firefox трудным
Firefox Quantam - не первое обновление, нарушающее расширение: это было постоянной проблемой в течение многих лет. Поскольку расширения Firefox могли напрямую влиять на Firefox, даже незначительные изменения в самом Firefox могли полностью сломать надстройки или просто внести ошибки, снижающие производительность.
Пользователи Firefox, не зная, что расширения вызвали проблему, предположили бы, что новая версия Firefox содержит ошибки, и с их точки зрения это было. Команда Firefox приложит все усилия, чтобы убедиться, что популярные расширения работали до выпуска новой версии, но легко представить, как все это замедляет разработку.
API WebExtensions делает все это проще, определяя, что конкретно могут делать расширения и как они могут это делать. Это означает, что разработчикам нужно только убедиться, что API функционирует должным образом, и не беспокоиться о том, что подстройка производительности или изменение пользовательского интерфейса повредят определенные расширения. Результатом должно стать сокращение числа расширений в долгосрочной перспективе, но для этого Mozilla необходимо отказаться от старой экосистемы расширений..
Изменение также делает возможными некоторые из лучших функций Quantam. Например, многопроцессорность является важной составляющей ускорения Firefox Quantam. Четыре отдельных процесса обрабатывают интерфейс и вкладки Firefox, что означает, что Firefox может использовать все четыре ядра вашего процессора вместо одного. Это реальность, для которой просто не была создана традиционная экосистема расширений, и трудно представить, чтобы она работала без большого количества уровней абстракции, которые неизбежно замедляют работу. Многие грядущие изменения в Firefox были также отложены устаревшими надстройками, что означало, что экосистема должна была измениться, чтобы Firefox развивался.
Кросс-платформенная совместимость была проблемой
Когда-то надстройки давали людям вескую причину использовать Firefox вместо Chrome. В наши дни Chrome является лидером по количеству надстроек, в то время как Firefox может чувствовать себя кладбищем необслуживаемых расширений из прошлых лет.
Конечно, есть несколько расширений Firefox, которые вы не можете получить в Chrome, но Chrome на сегодняшний день обладает большей экосистемой. Новый API WebExtensions не исправит это в одночасье, но он значительно облегчает перенос расширений Chrome на Firefox, поскольку язык, используемый для написания расширений, достаточно похож, чтобы сделать перенос поверхностным. Во многих случаях требуется всего несколько настроек для запуска расширения Chrome в Firefox, а это означает, что нет никаких причин, по которым ваши любимые расширения Chrome не могут перейти в Firefox сейчас, если вы достаточно хорошо попросите разработчика. Это должно привести к потоку новых расширений в экосистеме, которые могут откровенно использовать его.
Firefox уже терял пользователей
Некоторые могут утверждать, что Firefox потеряет пользователей из-за сломанных расширений, но стоит отметить, что Firefox уже терял пользователей в Chrome с угрожающей скоростью, и это происходит уже много лет. Сравнительная скорость и отсутствие определенных надстроек не помогли на этом фронте, и Firefox Quantum стремится решить обе эти проблемы.
Есть ли шанс, что это будет иметь неприятные последствия? Конечно. Некоторые люди перепрыгивают с Chrome, а другие могут искать древние вилки, которые поддерживают старую экосистему расширения. Но это не так, как раньше. Firefox должен был развиваться, чтобы оставаться актуальным, и именно так они решили это сделать.
Разработчики успели перейти на новый API
Некоторые пользователи даже не заметят, что это переключение произошло даже потому, что расширения, с которыми они работают, уже используют API WebExtension. Другие расширения не переключены.
Это может быть связано с тем, что разработчик давно отказался от расширения или не хочет переписывать его для использования API. В некоторых случаях API не предоставляет достаточного контроля для воссоздания исходного расширения, поэтому разработчики отказываются от своих проектов. И во многих случаях преобразование просто еще не сделано.
Как бы то ни было, расширения не ломаются, потому что Mozilla внезапно что-то изменила. WebExtensions был частью Firefox в течение двух лет, и последний год для обновления расширений был объявлен год назад:
К концу 2017 года и с выпуском Firefox 57 мы перейдем исключительно к WebExtensions и перестанем загружать любые другие типы расширений на рабочий стол.
Все еще отсутствует расширение, от которого вы зависите? Этот документ Google отслеживает несколько популярных расширений и предоставляет альтернативы нескольким распространенным. Этот список также полезен.