Как стать автором
Обновить

Комментарии 56

То были грабли Б. Гейтса, а это, видимо, другие грабли.

Firefox теряет пользователей еще и потому, что разработчики различных web-сервисов просто игнорируют существование браузера и пишут свои сервисы исключительно для движка Chromium. Особенно это заметно по работе :(

Firefox теряет популярность потому что они сами портят свой браузер. При каждом новом обновлении он становится все более уродский. Из последнего - чего стоят стили вкладок, т.е. их полное отсутствие и разделение. Перешел на firefox не так давно, но чувствую что скоро пора назад на хром валить.

Но ведь и гугл так делает.


Но вендор-лок на хром — это действительно плохо. Многие сервисы, которые работают с видео или отображают 3D контент, не поддерживают ФФ и просто показывают плейсхолдеры. Иногда обходится изменением юзерагента для этого сайта, иногда нет. В скайпе не работают звонки, к примеру. Но Google Meet работает в ФФ хорошо при этом.

Так-то Firefox примерно после 52 ESR взял курс на хромоподобность, но зачем имитация, если есть много браузеров именно на движке хромимума и, заодно, веб-совместимость лучше.

Не отключали бы плагины, классические аддоны, давали бы возможность нормальной кастомизации — была бы своя ниша всегда. А так — разве что в pale moon за этим всем — совместимости с тем, что заточено на хром, там тоже нет, но хоть кастомизация нормальная и жрёт поменьше хромиумов.

Ну а для сайтов, требующих хром, сейчас лучшее решение — хромиум на ваш выбор…
но зачем имитация, если есть много браузеров именно на движке хромимума
Потому что:
1. вырезание шлака и поддержка своих фич в Хромиуме может быть крайне затратным действием (вспоминаем FLoC и API для блокирования рекламы);
2. переход на Rust;
3. всегда должен быть конкурентный движок, иначе монополия и застой.
4. кроме интерфейса что там ещё из «хромоподобности»?

Не отключали бы плагины
Они часто были крайне дырявыми, но в целом бы я оставил возможность использования после 100500 оповещений о небезопасности.

классические аддоны
Их отключили как раз таки для того, что бы перейти на WebExtensions API и не приходилось бы писать плагины отдельно под Firefox.

давали бы возможность нормальной кастомизации
Чего вам не хватает в кастомизации? Есть гибкие настройки и пользовательские стили.

Ну а для сайтов, требующих хром, сейчас лучшее решение — хромиум на ваш выбор…
Натыкался на неработающий сайт только тогда, когда он тем или иным способом нарушал мою приватность — отпечатки браузера, синхронная отправка аналитики перед скриптами БЛ (проблема самого сайта).

Если таки «никак» — Brave Browser.
Их отключили как раз таки для того, что бы перейти на WebExtensions API и не приходилось бы писать плагины отдельно под Firefox.

Вот как раз в этом ничего хорошего не вижу.

Во-первых, есть вещи, которые в принципе так не сделать. Например, был аддон по управлению рендерингом текста (включить-выключить-настроить ClearType по сложному правилу в зависимости от параметров шрифта). И где он теперь? Ну да, «на сегодня потребности в колбасе нет».

Во-вторых, ВСЕ остальные производители браузеров (ЕВПОЧЯ) живут с рекламослежки и прочего подобного и чем меньше их вклад в стандарт API, через который это всё отключается, тем лучше для пользователей.

Насколько мне известно (рассказывал один знакомый), на практике с вредоносами ситуация обстоит по-другому. Для входа используются другие уязвимости, потом в Хром (для ФФ даже писать ленятся) ставится «безопасное» расширение. Не наоборот.
Во-первых, есть вещи, которые в принципе так не сделать. Например, был аддон по управлению рендерингом текста (включить-выключить-настроить ClearType по сложному правилу в зависимости от параметров шрифта). И где он теперь? Ну да, «на сегодня потребности в колбасе нет».

Нет, не потребности нету, а возможности нету, потому что раньше все аддоны ломались с каждым выпуском новой версии. Потому что имели доступ к кишкам браузера. 1 кривой аддон мог полностью поломать браузер. Теперь есть стабильное апи, которое не ломается и только расширяется. И не написано с нуля, а уже может использовать огромную базу хромовских аддонов. С 57 версии еще ни один аддон не отвалился после обновы браузера. И теперь огнелисом можно пользоваться спокойно, не боясь что все отвалится после обновы.

"― Все это, конечно, так. Все это верно, да, верно, да. Бумага написана правильно, все, все хорошо. Так это с одной стороны, да? Но есть и другая сторона медали."

ФФ мне без legacy расширений не нужен. Ну вот совсем не нужен. Пока что худо-бедно сижу на palemoon, свежий хромиум на подхвате, если сайт прям дозарезу. Если palemoon перестанет работать на критичых для меня сайтах, придётся думать, куда уходить. Но уж точно не на то говно, которым стал текущий ФФ.
P.S. Судя по всему, таких как я, в былой аудитории ФФ была заметная доля.

Большинство аддонов было портировано на WebExtensions API. А фф сейчас лучший браузер из всех, как по кастомизируемости, так и по фичам. Контейнеры позволяют использовать несколько гугл аккаунтов и для остальных сайтов я полностью разлогинен. С помощью css можно настроить интерфейс как хочешь, хоть многие и жалуются на изменения в нем. Скорость работы сайтов сравнялась с хромом. Есть trydactyl для пользователей вима, теперь не только qutebrowser удобен для тех, кто не любит мышки. Я бы не назвал ФФ гамном.

Их отключили как раз таки для того, что бы перейти на WebExtensions API и не приходилось бы писать плагины отдельно под Firefox.

Насколько я знаю, всё же не из-за этого. Во-первых, подавляющее большинство классических аддонов было написано таким образом, чтобы оно работало в однопоточном Firefox. А однопоточный Firefox - это не только проблемы с безопасностью даже без аддонов, но и проблемы с производительностью (лично я перешел на Хром потому, что у Firefox тогда интерфейс начинал лагать, если один из открытых в какой-то вкладке сайтов - не обязательно активной - запускал сколько-то тяжелый яваскрипт). А во-вторых, классические аддоны просто переписывали код браузера на лету. Не было никаких выделенных API для аддонов, не было ничего, то есть любое изменение кода браузера с определенной вероятностью ломало аддоны, аддоны легко ломали друг друга, причем не всегда до степени падения, регулярно у пользователей это приводило к труднодиагностируемым утечкам памяти и тормозам. Переход на WebExtensions означал две вещи - во-первых, окончательный переход на многопоточность, во-вторых, введение того самого фиксированного API, которое не ломается кусками с выходом каждой новой версии, сам по себе WebExtensions не был самоцелью, это было решением двух описанных проблем.

Вы путаете многопоточность и многопроцессность. FF всегда был многопоточный, а эффективно тут меняется сильно повышенный жор ресурсов на невозможность крэшнуть весь браузер сразу из-за бага (крэшится только окно).
Кроме интерфейса там весь общий курс развития подобен хрому. Вырезание плагинов, ограничение аддонов, потеря обратной совместимости. А профит-то какой? Вот если бы он при этом потреблял ресурсы, как классическая опера 11 и рендерил весь современный веб, включая эксклюзивы хрома (приводили в пример скайп) — то да, понятно, зачем. А так — ни того, ни этого, одни минусы в результате «развития».
Быстро, дёшево, качественно — выбирайте любые два.
Думаю, если бы в Mozilla все ресурсы кинули на развитие браузера, а не на левые проекты и политику SJW, что-то бы и получилось. Ведь раньше получалось…

рыба гниет с головы. Управляющие каждый год повышают себе зарплаты, зато сокращают разработчиков.
Т.к. основные деньги идут от гугла, то в совпадения мне как-то слабо верится...

что-то бы и получилось
Вот именно, что «что-то». Браузер — это довольно крупный проект, и далеко не все вещи реализуются по щелчку пальцев. Да, распределяя средства иначе, они могли бы гораздо активнее развивать servo, но это не значит, что они сохранили бы совместимость со старыми дополнениями. После каждого редизайна довольно много недовольных, считающих, что лучше бы эти силы потратили на что-то другое, но проблема в том, что дизайнер не сможет писать качественный код, он не программист, можно разве что сократить дизайнеров, хотя и тут тоже появятся недовольные, так как всем не угодишь.
Ведь раньше получалось…
Получалось что? Доля фокса начала снижаться практически сразу после выхода хрома, и снижалась она непрерывно, без существенного перелома в пользу лисы. И если проблема скорости была решена, и сейчас нет такого сильного отставания как раньше, то проблема интенсивной пропаганды мало того, что никуда не делась, так ещё и усиливалась. И если до этого в основном этим занимался гугл, то сейчас к этому подключился ещё и мелкософт. И хоть никто с автоматом выбирать браузер не принуждает, то кто-то не разобрался, у кого-то ассоциации изменили, кому-то партнёрский софт поставил, а кто-то просто подсел на другой браузер, и использует его просто по привычке, так как у него там закладки, даже после импорта.
А так — ни того, ни этого, одни минусы в результате «развития».
Сравните скорость тогда и сейчас.
Вот если бы он при этом потреблял ресурсы, как классическая опера 11 и рендерил весь современный веб, включая эксклюзивы хрома (приводили в пример скайп)
Не забывайте, что потребление ресуросов зависит не только от браузера, но и от сайтов.
В любом случае, отказ от обратной совместимости только ускорил миграцию оставшихся пользователей на хром (всё равно нечего терять, а так ещё и все сайты будут нормально работать).

Снижение доли — да, началось из-за сомнительных практик Google в плане распространения браузеров.

Потребление ресурсов-то зависит от сайтов, но и от движка тоже. К сожалению, сейчас в инете всё больше гугл-технологий, с которыми для не-хромиум браузеров надо где-то писать слой совместимости, тоже лишние ресурсы…

Классические аддоны отключили вынужденно, там была куча нерешаемых проблем (включая такую мелочь, как невозможность разобраться с утечками памяти).

С плагинами весело было, да. Когда npapi отключали из-за небезопасности (npapi плагины работали в отдельном процессе) внезапно им на замену придумали js-ctypes, работающие (оркестр играет туш) прямо в процессе Firefox. Последующий переход на native messaging host, как в хроме – это был праздник.

Да может оно и не смертельно, классические аддоны... А вот придумали ли способ безопасного хранения паролей плагинами? (насколько я помню, проблема не решена ни у Хрома, ни у Файрфокса, по факту в итоге пароли хранятся на диске открытым текстом в данных плагина почти у всех плагинов, которым они по какой-то причине нужны)

Так-то Firefox примерно после 52 ESR взял курс на хромоподобность
Я в частности поэтому до сих пор сижу на ESR 52.4.0 и в целом горя не знаю, большинство сайтов отображается и работает корректно, но на некоторые, в первую очередь GitHub, приходится ходить вебкитом, т.к. в 52-й «лисице» там не работает preview и построчное комментирование коммитов, например.
Уж лучше тогда pale moon — он, хотя бы, обновляется. Правда, UI там от FF 24.

можно поставить "старую тему"

https://i.imgur.com/o3ZntRt.png

92 ФФ, пару минут гуглежа, отключение пары настроек - и вуаля

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
у вивальди либо табы сбоку, но не деревом, либо дерево вкладок, но через жопу. и полное непонимание их говорящими головами, почему оба варианта не являются заменами TST, особенно если у тебя не 4к экранище.

> При каждом новом обновлении он становится все более уродский. Из последнего - чего стоят стили вкладок, т.е. их полное отсутствие и разделение.

Это-то лечится, например, Lepton'ом (на github'е) - возвращает вид интерфейсу почти на до-протоновское состояние. Может и еще есть, просто этот проект раньше всего нашелся в своё время.

А вот что разработчики вообще непонятно о чём думают и к чему они дело ведут - вот это уже реально беспокоит... Трудно что-ли было предусмотреть "legacy" шкурку, например?

Да, он

Firefox теряет популярность из-за инерционности мышления людей и лютого продвижения Google своего браузера:

  • Объективно, последние годы Firefox становиться всё лучше и лучше как браузер, чисто технически: он стал реже падать, он перестал тормозить и т.д. Но всем пофиг, ибо многие годы перед этим браузер скатывался в то состояние, которое потом пришлось разгребать. Многие до сих пор относятся к нему как "тормозилле".

  • Chrome активно пиариться и распостраняется из свех щелей и это происходило годами, и дало свой эффект. От рекламы по ТВ, рекламы на главной странице Google, до поставке в комплекте со всякими инсталляторами.

Но вообще как по мне главная проблема была совершена много лет назад, когда Firefox подсел на финансирование Google и тем самым перестал быть кровно заинтересован в своих пользователях. Зачем стараться и пыхтеть над браузером, если в следующем году Google и так принесёт сотни миллионов долларов? Лучше закапывать человекогоды разработчиков во всякие шизоидные проекты вроде Firefox OS и тому подобное. Годы работы де-факто сливались в унитаз в то время как браузеру с каждым годом становилось всё хуже и хуже, прежде чем в него начали пересаживать куски из Servo.

Зато сейчас уже на горизонте маячит большой писец: ресурсов пилить всё меньше, той аудитории нет, Google может просто перестать платить и всё накроется медным тазом. Ну и руководство там нынче типичные распильные бюрократы (и иного быть не могло, ведь нормального руководители выперли по политически причинам), которые себе зарплату повысить рады, а в плане руководства лишь дальше тянут этот титаник, изредка вылазя в непоследовательные смежные проекты вроде send.firefox.com (запустили и закрыли, ведь внезапно оказалось, что в файлообменник могут загружать проблемный контент), Mozilla VPN и т.д.

Ну и руководство там нынче типичные распильные бюрократы

Именно и зарплату могут себе каждых год повышать, а разработчиков сокращают
image

Потому что при заходе на Гугл он часто предлагает обновиться на Хром. И множество программ при установке тоже предлагают Хром.

разработчики различных web-сервисов просто игнорируют существование браузера

Зато какой смешной была шутка про то, что IE нужен лишь для скачивания других браузеров и не надо на него ориентироваться при создании проектов.

Любопытно, что популярность Firefox поддерживается гугловским Ютубом — в мобильном Хроме не видно возможности добавить адблок, а смотреть видео с постоянными чужеродными вставками напряжно, поэтому на мобилках и телеприставках Ютуб удобнее смотреть через Огнелиса, а не через нативное приложение.

youtube vanced постабильнее работает. new pipe часто отказывался загружать видео

Если не ставить отдельное приложение — есть Kiwi Browser, например. Можно добавлять аддоны от десктопного хрома.
Добавить адблок, адгуард и ещё около десятка блокировщиков можно в мобильных Samsung Internet и Яндекс.Браузер, которые реализуют нужные API для сторонних приложений.

Причём в Windows 11 компания Microsoft ещё больше усложняет установку сторонних приложений по умолчанию. После выбора альтернативного браузера Windows 11 предлагает передумать и оставить Edge по умолчанию

Вообще-то и Windows 10 так же делает.

Не, в Windows 11 они дальше пошли.

Например, сторонний видеоплеер, который сообщает системе, что поддерживает такие-то расширения — 40 штук. В Windows 10 можно было назначить его проигрывателем по умолчанию — это приводило к тому, что все эти 40 расширений автоматически начинали по умолчанию открываться в этом проигрывателей. В Windows 11 это выглядит вот так. То есть, нужно каждый интересующий формат руками переключить.

Сторонние браузеры этому подвержены в той же мере — браузер нужно назначить по отдельности обработчиком протоколов HTTP, HTTPS, файлов htm, html, pdf и так далее.

Mozillа же
1) избавила пользователей от этой необходимости (теперь браузер по нажатию одной кнопки сразу регистрирует себя в качестве обработчика всего, что умеет)
2) позволила это сделать прямо из интерфейса настройки браузера, без нужды вообще даже открывать настройки системы

Из плюсов Windows в этом плане могу отметить, что эта система пока позволяет устанавливать сторонние неподписанные и даже неинсталлированные приложения в качестве дефолных для определённых типов файлов. В десктопном Linux, кажется, такое возможно только для приложений из репозитория.

Windows 10 не очень дружелюбна к чужому софту, но ограничивается это на уровне вопросов.

В десктопном Linux это решается созданием .desktop-файла из полдюжины строчек.

Спасибо, буду знать!

А разве за открытие файла в приложении отвечает .desktop? Мне казалось, что это либо функционал файлового менеджера (соответственно, везде разный), либо какие-нибудь xdg-open, exo-open и прочие (опять-таки, разные в разных DE). Есть стандартный (free desktop) и кросс-дистрибутивный способ это делать?

если быть совсем точным, в desktop-файле описываются mime-типы, которые будет открывать данное ПО. и есть файл mimeapps.list, где указываются при помощи какого desktop-файла по умолчанию будет открываться конкретный mime.

и раз стандарт xdg. на это и файлменеджеры ориентируются, и xdg-open. (что конечно, совсем не исключает того, что можно там ручками насопоставлять)

грр. что стало с правкой? "и раз стандарт xdg" = "и это как раз стандарт xdg"

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

Специально проверил в KDE5. Из GUI можно настроить для любого типа файла любое приложение, в том числе выбрав произвольный исполняемый файл. Нужны только права на запуск.

Собственно это и есть GUI для создания .desktop файла.

Цирк с конями, что со стороны Майкрософта, что со стороны Мозиллы.

Мозилла типа не осознаёт, что её кодом теперь воспользуются всякие малварьщики и опять каждая инсталяха будет нам ставить в систему Бла-бла-бла-браузер с кастомной рекламой и поиском?

Майкрософт типа не осознаёт, что у неё и так конкурентное преимущество с главной десктопной ОС и дефолтным браузером в ней, зачем ещё эти козни с упрощённой сменой дефолтного браузера для себя и палки в колёса остальным? Сделайте упрощённый режим для всех приложений с валидной подписью и кросс-подписью Майкрософта (как для драйверов сделали) и это хорошо отделит вирусописателей от разработчиков браузеров.

НЛО прилетело и опубликовало эту надпись здесь

Вы наверно не осознаёте, что подобные хаки доступны ВСЕМ для реализации

Не у всех есть квалификация для использования этого хака.

Но теперь, у всех есть готовое решение, которое можно тиражировать.

Мозилла типа не осознаёт, что её кодом теперь воспользуются всякие малварьщики и опять каждая инсталяха будет нам ставить в систему Бла-бла-бла-браузер с кастомной рекламой и поиском?

1) безопасность через неясность — это фу
2) что мешало малварщикам самим это отреверсить?

К сожалению, в заметке не было приведено никаких технических деталей, поэтому пришлось немного поковыряться в репозитории mozilla-central.

Код, отвечающий за установку браузера по умолчанию, находится по пути ./toolkit/mozapps/defaultagent/ в файле SetDefaultBrowser.cpp.

Комментарий в файле SetDefaultBrowser.cpp:

The hash changes at the end of each minute, so check that the hash should be the same by the time we're done writing.

Хэш изменяется в конце каждой минуты, поэтому проверяем, чтобы хэш был тем же в момент, когда мы закончим запись значения.

Функция SetDefaultBrowserUserChoice в файле SetDefaultBrowser.cpp вызывает функцию SetUserChoice, в которой и происходит вся "магия".

А за магию отвечает функция GenerateUserChoiceHash, которая, в свою очередь, реализована в файле ./browser/components/shell/WindowsUserChoice.cpp.

Ключевые функции файла WindowsUserChoice.cpp:

  • CheckBrowserUserChoiceHashes

  • CheckUserChoiceHash

  • GenerateUserChoiceHash

Константа userExperience жёстко задана (содержит текст и GUID) и является неотъемлемой частью алгоритма UserChoice в Windows:

const wchar_t* userExperience =
    L"User Choice set via Windows User Experience "
    L"{D18B6DD5-6124-4341-9318-804003BAFA0B}";

С использованием этой константы (userExperience) в функции GenerateUserChoiceHash формируется строка (FormatUserChoiceString), которая затем хэшируется. В качестве хэша используется MD5, результат дополнительно модифицируется.

UniquePtr<wchar_t[]> GenerateUserChoiceHash(const wchar_t* aExt,
        const wchar_t* aUserSid,
        const wchar_t* aProgId,
        SYSTEMTIME aTimestamp) {
    auto userChoice = FormatUserChoiceString(aExt, aUserSid, aProgId, aTimestamp);
    if (!userChoice) {
        return nullptr;
    }
    return HashString(userChoice.get());
}

Параметрами функции являются:

  • Протокол или расширения файлов:

    • https, http, .html, .htm

  • UserSID — SID (security identifier) пользователя

  • Идентификатор программы:

    • FirefoxURL — для протоколов https и http

    • FirefoxHTML — для файлов .html и .htm

  • Отметка времени (см. комментарий выше о требованиях к отметке времени)

В комментариях к коду также сказано, что алгоритм подходит не для всех версий Windows, в частности, в версиях до Windows 1703 алгоритм не включал отметку времени, но включал путь к исполняемому файлу. Алгоритм должен работать в версиях, начиная со сборки Windows 1703.

Как я понял из комментариев, функционал базируется на исследовании, которое выполнил Christoph Kolbicz, автор утилиты SetUserFTA (Set User File Type Associations). Подробнее об этом можно почитать в блоге Кристофа: SetUserFTA: UserChoice Hash defeated – Set File Type Associations per User or Group on Windows.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий