LINUX.ORG.RU

Отпилить у firefox то, что мне не нужно - подводные камни?

 ,


0

1

Здравствуйте.

Интересует вопрос: вот, например, не нужна мне стоковая about:home со всеми своими новостями, thumbnail'ами и прочими сервисами.

И прочее, и прочее, и многое прочее мне не нужно, не только хомяк с обвеской.

Понятно, что я средствами браузера, включая about:config всё, что можно, поотключал.

А насколько трудоёмко было бы мне аж из кода это повыкидывать перед компиляцией?

Ну вот просто поискать в исходнике (или даже прямо в архиве-установщике) соответствующие папки и файлы, и выкинуть их оттуда.

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

Может быть, более подкованные в теме люди меня немножко сориентируют. Спасибо за внимание.

Апдейт: Более подкованные в теме люди меня немножко сориентировали. Librewolf.

★★★★★

Последнее исправление: piyavking (всего исправлений: 3)
Ответ на: комментарий от FishHook

Собираюсь, конечно. Творчески.

Вышла обнова, качнул-собрал, что из старого архива-инсталлятора выкидывал, то и из нового повыкидывал, переинсталлил.

Благодарю за помощь в формировании концепции!

piyavking ★★★★★
() автор топика
Ответ на: комментарий от piyavking

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

FishHook
()
Ответ на: комментарий от FishHook

понял, спасибо!

Но есть нюанс: если выкидывать действительно огромные куски, то есть шанс побалансировать.

Скажем, пришла громадная обнова для конкретного модуля, а этот модуль мне целиком нужен, как Ленину кулачество, я этот модуль вместе с его обновой и отправлю ровно так же на свалку истории...

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)
Ответ на: комментарий от piyavking

Но есть нюанс: если выкидывать действительно огромные куски, то есть шанс побалансировать.

это если предположить идеальную архитектуру приложения. Я, признаться, ни разу в жизни не глядел в исходники FF, но что-ли я других не видел. Наверняка там костылей и подпорок дофига, по-другому не бывает в большом и развивающемся проекте, хоть его пусть сам боженька прогает. Это только мои плохие предчувствия, и я с радостью возьму слова назад, если мне кто-то знающий скажет, что все там хорошо с модульностью и все компоненты хорошо декомпозированы и слабо связны, но боюсь что это не так, и выпиливание about:blank запросто может обрушить, например, историю. То есть мерджить придется прям детально. Но повторю, это сугубо мои выдумки. Пробуйте!

FishHook
()

Сначала попробуй просто компилять, устанавливать и запускать браузер «как есть» - с этом уже горя хлебнёшь.

Если сможешь, то читай билдскрипт и пробуй включать/выключать перечисленные фичи по смоему хотению и собирать результат.

Всё, что не будет покрываться конфигурацией билда (т.е. почти всё), придётся править в коде и делать патчи. Если до этого дойдёт - собирай свои патчи где-нибудь, будешь крутой.

Bfgeshka ★★★★★
()
Ответ на: комментарий от anonymous_sama

Ты молодец. Мне бы такую внутреннюю концентрацию. Действительно, от главного не должны отвлекать ни мой пост, ни комментарии к нему...

piyavking ★★★★★
() автор топика

source-based дистрибутивы типа gentoo предоставляют штатные средства по такой настройке (правда не такие гибкие, но всё же).

например: https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/firefox/firefox-115.9.1.ebuild?id=0a2aae49a360a5424cbbad9c2c672fe356bfd2ab

 * Found these USE flags for www-client/firefox-115.9.1:
 U I
 + + X                : Add support for X11
 - - clang            : Use Clang compiler instead of GCC
 + + dbus             : Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc)
 - - debug            : Enable extra debug codepaths, like asserts and extra output. If you want to get
                        meaningful backtraces see
                        https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
 - - eme-free         : Disable EME (DRM plugin) capability at build time
 - - geckodriver      : Enable WebDriver support
 - - gmp-autoupdate   : Allow Gecko Media Plugins (binary blobs) to be automatically downloaded and kept
                        up-to-date in user profiles
 - - hardened         : Activate default security enhancements for toolchain (gcc, glibc, binutils)
 - - hwaccel          : Force-enable hardware-accelerated rendering (Mozilla bug 594876)
 - - jack             : Add support for the JACK Audio Connection Kit
 - - l10n_ach         : Acoli
 - - l10n_af          : Afrikaans
...
 - - l10n_zh-TW       : Chinese (Taiwan)
 - - libproxy         : Enable libproxy support
 - - lto              : Enable Link-Time Optimization (LTO) to optimize the build
 + + openh264         : Use media-libs/openh264 for H264 support instead of downloading binary blob from
                        Mozilla at runtime
 - - pgo              : Add support for profile-guided optimization for faster binaries - this option will
                        double the compile time
 - - pulseaudio       : Add sound server support via media-libs/libpulse (may be PulseAudio or Pipewire, or
                        apulse if installed)
 - - screencast       : Enable support for remote desktop and screen cast using PipeWire
 - - sndio            : Enable support for the media-sound/sndio backend
 + + system-av1       : Use the system-wide media-libs/dav1d and media-libs/libaom library instead of bundled
 + + system-harfbuzz  : Use the system-wide media-libs/harfbuzz and media-gfx/graphite2 instead of bundled
 + + system-icu       : Use the system-wide dev-libs/icu instead of bundled
 + + system-jpeg      : Use the system-wide media-libs/libjpeg-turbo instead of bundled
 + + system-libevent  : Use the system-wide dev-libs/libevent instead of bundled
 + + system-libvpx    : Use the system-wide media-libs/libvpx instead of bundled
 - - system-png       : Use the system-wide media-libs/libpng instead of bundled (requires APNG patches)
 + + system-webp      : Use the system-wide media-libs/libwebp instead of bundled
 - - wayland          : Enable dev-libs/wayland backend
 - - wifi             : Enable necko-wifi for NetworkManager integration, and access point MAC address
                        scanning for better precision with opt-in geolocation services
MirandaUser2
()
Ответ на: комментарий от MirandaUser2

Gentoo

предоставляют штатные средства по такой настройке

Дащщас. Это банально флаги сборки вынесенные. Рекомендую поглядеть ебилд, всё ж на поверхности лежит.

На самом деле, добрая половина лисы написана на яваскрипте и объединяется в единое целое с помощью сборочных скриптов на node.js. И именно там и надо копать, если уж искать где бы что отпилить. Начать можно со скрытых (неотключаемых через интерфейс) аддонов от «мозиллы и партнёров»™ и содержимого всех omni.jar в поставке.

И кстати, librewolf в этом отношении весьма поверхностны — это по большей части всё тот же ванильный фокс, куда добавляется несколько аддонов и кастомный user.js. И все закладки там так и остались. Да, даже скрытые аддоны. Имхо, позорно выпускать такое, раз уж декларируется какая–то там забота о приватности пользователей.

Что, кстати, не мешает librewolf с максимальными настройками приватности позорно лажать на заглушке от QRATOR. То есть, даже в мимикрию под ванильный браузер они нешмогли.

anonymous
()

А насколько трудоёмко было бы мне аж из кода это повыкидывать перед компиляцией?

Зависит от. about:home выкинуть не сложно. А вот какие-нибудь serviceworkers или onUnload - придётся тонны сырцов перелопачивать.

Я полагаю, будет значительно проще дописать какой LadyBird или NetSurf чем выкинуть всё ненужное и вредное из FF или Chromium.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Дащщас. Это банально флаги сборки вынесенные. Рекомендую поглядеть ебилд, всё ж на поверхности лежит.

я собственно это и имел в виду, и ссылку на e-build дал. Удобный интерфейс для флагов сборки.

На самом деле, добрая половина лисы написана на яваскрипте и объединяется в единое целое с помощью сборочных скриптов на node.js.

это ж надо javascript изучать, как минимум :-(

MirandaUser2
()

А насколько трудоёмко было бы мне аж из кода это повыкидывать перед компиляцией?

Достаточно трубоёмко. На мой взгляд, небольшая доза дофамина, получаемая в результате этих действий, не стоит потраченного времени. Но тут могут быть разные мнения, конечно, как и в любом вопросе о том, что чего стоит.

Ну вот просто поискать в исходнике (или даже прямо в архиве-установщике) соответствующие папки и файлы, и выкинуть их оттуда.

Главное мамок соответствующих не искать :)

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

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

CrX ★★★★★
()
Ответ на: комментарий от CrX

Думаю, что время осилю - я кайфую, когда конфигуряю.

А вот делиться с остальными - то такое. Сам-то я готов, если что, отравиться своим крабсбургером, а вот людей этим кормить...

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 3)
Ответ на: комментарий от piyavking

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

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

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

Ну вот смотри - не нужны мне табы - ок, я «I Hate Tabs» из стока приаддонил и успокоился. Но осадочек собственно таб-инженерия из файрфокса никуда не делась. А я её вообще выкинуть хочу. Ну вот ты File/New Tab нажал, а тебе тишина. По-простому, без косметических швов. И это только один пункт из длинного списка.

Хомяка, аксессорей, новостей-телеметрий и прочего это всё тоже горячо касается. Этот здоровенный мёртвый горб из функционала, которым я в страшном сне пользоваться не стану, мне не нужен. Вот он некрасив, потому, что не может не ронять скорость и качество работы браузера просто в силу своего размера. А в уровень я уж втягиваюсь помаленечку, как кот в пылесос...

piyavking ★★★★★
() автор топика
Ответ на: комментарий от piyavking

Это звучит слишком нереально, только подумай, Firefox пилится 20 лет командой из сотни (если не тысячи) разработчиков, а ты тут один решаешь за несколько вечеров по паре часиков разобраться и перелопатить.

Как минимум такой проект займет месяцы в одиночку, это не считая времени сборки, я думаю просто компиляция браузера займет час-два времени.

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

masa
()
Ответ на: комментарий от masa

«Формулу любви» смотрел?

если один человек построил, другой завсегда разобрать может!

Я ж не собираюсь перелопачивать. Я собираюсь выкидывать. Если я разберусь, «как они там её крепят», дело пойдёт)

Пробовал браузер собирать. Это, конечно, ад. Да, естественно, сейчас долго курить либрвульф, без вариантов.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)
Ответ на: комментарий от piyavking

«Формулу любви» смотрел? Неа, стоит?

если один человек построил, другой завсегда разобрать может!

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

masa
()
Ответ на: комментарий от masa

Я и сам не то что слабый, у меня силы воли нет практически. Но бывает точечно, что люто на чём-то клинит, и, по-моему, это одно из)

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)
Ответ на: комментарий от piyavking

Расскажи, пожалуйста, какая в Firefox система сборки? Это GNU Autotools или что-то другое? Вот те, кто пишут, что там всё на JavaScript, может там действительно npm используется? Они правы или нет?

Shushundr ★★★★
()
Ответ на: комментарий от masa

Ты был прав. Либрвольф это то, что мне нужно. Моё сердечко растаяло, увидев в пкжбильде сразу «arch=(x86_64 aarch64)». Компилю.

Апдейт. Скомпилил. Просто засунул в него свой фурёвый профайл, и... собственно, всё, пишу уже с него. Все мои лютые извращения подхватились бесшовно, работаю.

Ещё раз спасибо за подгон, мне неловко, что сразу не прорубил фишку(

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 3)

Апдейт: Более подкованные в теме люди меня немножко сориентировали. Librewolf.

Донатов автору ты конечно не дашь, я угадал?

Любители свободы уровня лор: «зделайте как я скозал, мне неудобно»

anonymous
()
Ответ на: комментарий от rtxtxtrx

через hosts заблочь хосты и перестанешь видет

Мне мама в детстве выколола глазки,

Чтоб я в шкафу варенье не нашел.

Я не хожу в кино, я не читаю сказки,

Зато я нюхаю и слышу хорошо!

anonymous
()