Актуализированный репринт авторской статьи с форума Ru-Board • [веб-архив] Обход "закладочных" ограничений в хром-браузерах версий до 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. Во избежание проблем – не забудьте предварительно сделать резервную копию этого файла! Итак, поехали! :) 3.1. Открываем файл iron.dll в hex-редакторе и ищем первое вхождение параметров: Смотрим применительно к закладкам – чуть выше должно быть "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 со всеми патчами можно взять здесь (или по прямой ссылке). Если у вас есть какие-либо вопросы или дополнения по существу материала – просьба отписаться в комментариях. |
Всего комментариев: 0 |