javascript

Поддержка webextensions под Андроид, вторая серия

  • среда, 2 апреля 2025 г. в 00:00:05
https://habr.com/ru/articles/896438/
image

Очень добрый день!


Меня зовут Тимур и я программист.


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


Итак. Я более менее стабилизировал сборку, она уже гораздо реже падает (но падает, это все еще бета, умерьте аппетиты). Что изменилось с прошлого раза?


  • апнулся до хромиума 134.0.6998.53 (гуглеры там потихоньку [очень потихоньку] пилят версию расширений для desktop android и как раз накидали немного кода который мне пригодился)


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


  • вернул в сборку менеджер второго манифеста и расширения со вторым манифестом уже устанавливаются (это еще не значит что они работают, там ОЧЕНЬ много чего еще тестировать надо)


  • для сторов гугля и оперы я добавил перехват запросов и подмену useragent — это позволяет заходить на их сторы и устанавливать расширения оттуда. У гугля при этом плывет верстка но все работает, опера смотрится на мобилах прям неплохо.


  • Прошелся по api и какие-то добавил, какие-то (tabs и windows в основном) пришлось прям накидывать код поскольку под андроидом все совсем не так как на стационарах.


  • добавил инструкцию по сборке. В прошлый раз я выложил код но без инструкции, вполне возможно что те немногие кто пытался его собрать уперлись в ошибки и решили что код не рабочий. Нет, у меня все по честному, я действительно делюсь своим кодом без каких бы то ни было условий, просто не сразу выяснил что код под андроид сходу не собирается, нужно сначала собрать под стационар (это вынуждает нинзю сгенерить хедеры которые пока еще попадают в сборку под андроид но самой сборкой не генерятся) и только после этого запускать сборку под андроид. Не суть, главное что сейчас оно уже в воспроизводимом виде, любой желающий может собрать бинарники сам.



Собственно на этом все. К сожалению поддержки я особо никакой не получил, поэтому в ближайшее время буду заниматься развитием Помогатора, соответственно и правки в хромиум в первую очередь будут по добавленным мною api и снятием ограничений manifest v3 (v3+ назовем его так). Переносом остальных api из списка стандартных я буду заниматься в свободое время, по мере того как будут накапливаться результаты буду отписывать в том числе тут.


Apk можно скачать у меня в репе в релизах, инструкция по сборке там же вот в этой ветке (это новая ветка, не та что упоминалась в предыдущей статье). Сам коммит лежит тут.


А новостей на сегодня больше нет, с вами был Тимур, всем хорошего настроения!