Обход "закладочных" ограничений в Chromium
Опубликовано: Бармалей · 14.02.2017 · 01:00 ••• Обновление: 11.03.2021 · 16:13 0

Обход "закладочных" ограничений в хром-браузерах версий до 38

В этой статье рассмотрены методы снятия ограничений для аддонов с функциями создания или изменения закладок при работе в версиях браузеров до 38.

В частности, проблема может проявляться при работе с этим расширением при большом числе закладок или при частом использовании аддона для переупорядочивания закладок.

Вкратце ситуация выглядит как "только что работало же – и вот с чего-то поломалось".)


Причина и суть проблемы

В версиях браузеров до 38 возможна блокировка расширений браузером при превышении лимита операций записи.

Возникшая проблема не решается ни перезапуском браузера или расширения, ни штатной переустановкой "глюкнувшего" аддона. Самое неприятное – при этом ни браузер, ни расширение не выдают никаких ошибок, но аддон тупо не работает.

Причина "нерабочести" – ID аддона заносится в "чёрный список" (в файл QuotaManager в профиле пользователя).

Блокировка не зависит от какого-либо конкретного аддона, так как определена лимитами в самом браузере.

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


Методы и способы решения проблемы

Для решения указанной проблемы в старых браузерах имеются следующие варианты:


0. Обновление версии браузера.

Это самое простое и эффективное решение – в версиях 38+ эти ограничения сняты.

Если это невозможно или нежелательно по каким-то причинам – читаем дальше.

Мы ведь не ищем лёгких путей, правда?  


1. Переустановка расширения в режиме разработчика.

Переустанавливаем расширение распакованным, если "уже было" – меняем его ID путём переименования папки.

Это самый быстрый вариант, но решает проблему лишь временно – возможна повторная блокировка

Также следует помнить, что этот метод приведёт к потере настроек расширения (если они есть).


2. Ручное редактирование профиля пользователя

Ищем в папке своего профиля файл QuotaManager и смотрим в нём вхождение ID "проблемного" аддона.

Если находим – при выгруженном браузере удаляем* все вхождения этого ID и перезапускаем браузер.

* Как вариант – в любом hex-редакторе забить нулём любой символ в ID, можно – все целиком.)

Хинт: чтобы не париться с hex-редактором – полезно иметь чистый* бэкап файла QuotaManager.

* То есть копию этого файла, сделанную ДО попадания аддона в "чёрный список".

Соответственно, при возникновении проблемы достаточно будет просто вернуть* файл из бэкапа обратно.

* …конечно же – это надо делать при выгруженном браузере, мы ведь не забыли об этом…)

Этот способ также не решает проблему в принципе, так что и в этом случае возможен "рецидив" блокировки…


3. Ручное исправление файлов браузера.

Радикальный вариант – убрать ограничения в самом браузере, пропатчив файл chrome.dll (или iron.dll).

При этом в принципе решается проблема блокировки любых аддонов для работы с закладками.

Патч можно сделать в любом hex-редакторе, удалив* ограничивающие параметры.

* Как это сделано в версиях 38+, в которых ограничивающие параметры отсутствуют "из коробки"…)

Для примера рассмотрим пошагово патч файла iron.dll для браузера SRWare Iron версии 31.
В других версиях или в других браузерах смотрим файл chrome.dll.

Во избежание проблем – не забудьте предварительно сделать резервную копию этого файла!

Итак, поехали! :)

3.1. Открываем файл iron.dll в hex-редакторе и ищем первое вхождение параметров:
MAX_WRITE_OPERATIONS_PER_HOUR и (рядом) MAX_SUSTAINED_WRITE_OPERATIONS_PER_MINUTE.

Смотрим применительно к закладкам – чуть выше должно быть "browser\extensions\api\bookmarks\bookmarks_api.cc":


[Копия скриншота]

3.2. Забиваем нулями* оба "ограничителя", должно получиться вот так (слева – исходный):

* Возможно, достаточно обнулить только 1-й байт каждого вхождения, но я "для гарантии" забил всё…))


[Копия скриншота]

3.3. Опционально можно подправить и следующие вхождения ограничителей (только для закладок!):


[Копия скриншота]

Но, ещё раз, это уже опционально и "чисто для понту"…))

3.4. На этом всё, сохраняем изменённый файл, запускаем браузер и радуемся "неограниченной свободе"…)

Следует помнить, что патч не исключает блокировку полностью, изредка интенсивно "пишущие" аддоны всё же перестают работать. Однако, после патча аддон уже не будет занесён в "чёрный список" в QuotaManager и не будет блокироваться.

Если у вас и после патча аддон вдруг перестал работать – теперь достаточно просто перезагрузить браузер.

Примечания:

а) Если dll-файл патчили ПОСЛЕ срабатывания ограничений – придётся вычистить ещё и QuotaManager (метод 2 выше).

б) Чтобы не делать а) – заранее бэкапим файл QuotaManager, лучше – сразу после создания профиля.

в) Готовый iron.dll для версии 31.0.1650.57 со всеми патчами можно взять здесь (или по прямой ссылке).


Общие принципы Бармалей
Бармалей 14.02.2017 11.03.2021 315 0.0

Поделиться

Всего комментариев: 0
close