логотип сайта MyLittleServices.ru

Кромешности

Расширения для браузеров на основе Chromium

По моему скромному мнению, все без исключения браузеры «из коробки» довольно неудобны в использовании. Типичная реакция пользователя, поставившего любой браузер «fuuuuuu; тут нифига нет нужного и есть куча ненужной фигни». Можно пойти и повеситься. Но есть и другой путь. Браузеры предоставляют возможность расширять функциональность самостоятельно. Конечно, нужно немного уметь программировать. Но потратить некоторое время на изучение JavaScript и чтение описаний различных API определенно стоит. Ни один разработчик в мире не сможет дать пользователю то, что пользователь действительно хочет. Только сам пользователь может сделать себе хорошо. Остается вопрос, какой же браузер выбрать в качестве основы. Я выбрал Vivaldi, кой сделан на Blink, как и ряд других популярных браузеров. Vivaldi и без расширений неплохо настраивается - в отличие от конкурентов. Дополнительный положительный момент: расширения формата crx универсальны, то есть будут успешно работать и в Vivaldi, и в Яндекс.Браузере, и в Opera Next, и даже (возможно) в Google Chrome. Подробное руководство по установке расширений чуть ниже.

«Комешности» - это, конечно же, моя любимая игра со словами. В данном случае речь о придуманном мною слове chromesions, составленном из слов chrome extensions. Я его «перевел» на русский и получил забавное слово «комешности». :)

Вот, содержание:

Как установить расширение?

Установить расширение просто: нужно скачать, открыть страницу расширений (таковая обычно лежит по адресу вроде chrome://extensions) и перетащить туда расширение мышью. Но, как обычно, в любой ложке меда есть бочка дегтя. Простота доступна только пользователям некоторых браузеров (того же Vivaldi, например). Иные браузеры (не будем показывать пальцем) проявляют назойливую заботу о пользователе, и не позволяют добавить расширение без дополнительных плясок с тамбурином, если это расширение не опубликовано в Chrome Web Store. Обосновывают такое неприличное поведение браузера, конечно, заботой о безопасности, но мы то знаем...

Казалось бы, что простейший выход - добавить расширение в Chrome Web Store, но не все так однозначно. Модерация там, как водится, мутная. Правила размещения не менее мутные. Однажды я попробовал было добавить расширение в Chrome Web Store, но когда с меня затребовали 5 долларов непонятно за что - я решил, что, пожалуй, не буду тратить время. Дело, конечно, не в огромной сумме, а в идиотичной ситуации: если хочешь предложить людям свои бесплатные расширения - за это удовольствие еще и заплатить требуется, иначе Google Chrome будет невозбранно компостировать пользователям мозги. Могут быть и более серьезные препятствия для публикации. Например, расширение может быть разработано для интранета какого-то секретного подразделения, и потому содержит информацию, не подлежащую разглашению.

Что же делать тем, кто не желает, чтобы Google или кто-либо еще решал за него, какие расширения использовать, а какие нет? Можно выдохнуть, выход есть! И даже не один.

  1. На странице расширений можно включить режим разработчика (как правило, есть такая галка вверху), после чего появится возможность поставить распакованное расширение. Распаковать расширение можно практически любым хорошим архиватором. Установка расширения в распакованном виде несколько сложнее, но есть и положительный момент: распакованные расширения могут более полноценно работать с локальными (сохраненными на жесткий диск) страницами. Выключать браузер, вероятно, ничего не будет, но надоедать предупреждениями при запуске продолжит. Не лучший вариант.
  2. Поставить предварительную версию браузера (бету). В бетах по каким-то причинам анальную защиту выключают (это касается не только Google Chrome, но и иных браузеров), в связи с чем можно спокойно поставить расширение и использовать его без ограничений. Наверное, любопытных пользователей и разработчиков создателям браузеров не жаль. :) Вариант весьма неплох, но в бетах больше шансов словить баг, который в финальной версии был бы ликвидирован.
  3. Снести свой браузер, и поставить вместо него Vivaldi или иной браузер, который соблюдает субординацию, и не пристает к пользователю с непрошенной защитой.

Ненавижу, когда ссылки на сайте не подчеркнуты. Аналогичное отношение у меня к ссылкам, которые не помечаются цветом после посещения. Но ненависть не заставит дизайнеров прописывать нужные стили. Данное расширение позволяет манипулировать внешним видом ссылок: сделать их подчеркнутыми, назначить свои цвета для ссылок, для посещенных ссылок, а также указать, в какой цвет будут окрашиваться ссылки при наведении на них курсора мыши. Работает почти везде. Настройки расширения позволяют выключить ненужное.

После установки расширения ссылочки будут выглядеть как-то так:

My Little Links: скриншот

Журнал версий

Версия 6.0

  • Манифест версии 3 агрессивно (вполне в духе безблагодатной мертводушной корпорации) насаждается Гуглом. Расширения, которые перестанут работать в Google Chrome - не проблема, фанаты Google Chrome должны страдать. Но не уверен, что поддержка останется в хороших альтернативных браузерах. Посему - переведено таки расширение на новую версию манифеста.
  • При смене манифеста стили в настройках побились, пришлось ощутимо их переработать. Впрочем, вышло неплохо.

Версия 5.1

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

Версия 5.0

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

Версия 4.2

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

Версия 4.1

  • Расширение научилось работать с двумя актуальными вариантами атрибута target. Раньше был лишь _blank, теперь добавился и _self.
  • Появилась возможность устанавливать прозрачность у фона под ссылкой. Как полагается, есть 10 значений от 0 до 1 (звучит немного странно, но так уж реализовано).

Версия 4.0

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

Версия 3.3

  • Добавлена новая настройка: выбор стиля подчеркивания. ИМХО, все стили, кроме солидной линии, выглядят ужасно в нынешних хромиумах (в Firefox лучше), но ради прикола - почему бы не включить порой подчеркивание волнистой линией? :)
  • Исправлено неудачное решение хранить каждую настройку в отдельном месте хранилища. Трудно сохранять и загружать. Переделал хранение всего в одном объекте. Спасение старых настроек сделано. Так как работает спасение лишь после запуска опций, при наличии старых настроек страница с настройками будет открыта единожды автоматически.
  • Структура настроек также поправлена - с прицелом на развитие расширения.
  • Пункты в попапе переделаны - теперь они такие же, как в прочих расширениях.
  • Появилась функция добавления стилей в атрибут style ссылок. Но, подумавши, я ее все же выключил - вреда от нее, похоже, больше, чем пользы.

Версия 3.2

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

Версия 3.1

  • Добавлен перезапуск основной функции расширения по команде из другого расширения. Для перезапуска нужно послать на ID расширения сообщение "my_little_links_start".

Версия 3.0

  • Система ликвидации двойного подчеркивания достаточно сильно изменена, в связи с чем счел возможным более радикально изменить версию расширения. Внедрен контроль: в настройках теперь можно включить борьбу с двойным подчеркиванием явным образом, причем пользователь также имеет возможность ввести конкретные хосты, на которых двойное подчеркивание требуется убирать. Если убирать нужно везде - поле для хостов можно оставить пустым. Примечание: имя хоста не включает протокол и слеш. То есть не нужно добавлять в настройки, например, http://schema.org/ - это не сработает. Корректное имя: schema.org. Вообще-то можно было бы проверять весь урл, но тогда появился бы дополнительный риск ложных срабатываний, так что остановился на поиске только в имени хоста.
  • Сам способ удаления двойного подчеркивания изменен; стал проще, надежнее, требует меньше ресурсов.
  • Логика отображения на примерах в настройках чуть изменена: теперь если отображение посещенных ссылок выключено, обе ссылки окрашиваются в цвет, выбранный для обычных ссылок (если, конечно, эта опция задействована). Ранее пример посещенной ссылки при выключении соответствующей опции отображался простым черным цветом.
  • Тексты в настройках я сделал чуть мельче - чтобы уместить новые элементы. Кажется, менее удобно не стало.

Версия 2.5

  • В выпадашку добавлена кнопка, открывающая страницу настроек.
  • Появилась проверка наличия внутри ссылки картинки для отмены подчеркивания. Если ссылка является картинкой, то подчеркивание там все равно особо не видно, а попадающиеся иногда небольшие кусочки пустоты с подчеркиванием лишь портят вид.
  • Также найдены несколько остроумных (наверное) примеров верстки (подчеркивание ссылки при помощи box-shadow, помещение внутрь ссылки нескольких элементов с подчеркиванием через border-bottom), которые проявляли себя двойным подчеркиванием ссылок. Я написал функцию, предотвращающую двойное подчеркивание. Теперь шансы нарваться на таковое уменьшены (хотя, думаю, не до нуля), но на некоторых немногочисленных сайтах ссылки могут выглядеть немного необычно - так как дизайнеры не ожидали, что часть оформления будет убрана.

Версия 2.4

  • Добавлена проверка наличия элемента head перед добавлением в него стилей. Как выяснилось, в некоторых документах он отсутствует, что вызывало ошибку в консоли (впрочем, ничего не ломавшую).
  • Чуть изменена логика добавления элемента style: собственно добавление вынесено в отдельную функцию, что позволило не только сократить код, но и не добавлять элемент style, если никаких стилей применять не нужно (ранее элемент style создавался и добавлялся в самом начале, и к нему уже лепились нужные стили).
  • Устранен бажок с отображением на примере в настройках стиля ссылки по наведению.
  • Подтверждение удаления всех настроек теперь ожидается 6 секунд, после чего отменяется, и процедуру удаления нужно начинать заново. Вряд ли кто-то, кому действительно надо удалить настройки, будет так долго думать. Вероятность же случайного удаления снижается.
  • Стили страницы с настройками улучшены.

Версия 2.3

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

Версия 2.2

  • Появилась возможность определить цвет для фона под ссылками.
  • Также теперь можно к каждой ссылке добавить богомерзкий, но все еще довольно часто используемый в сети атрибут target со значением _blank. Это заставит все ссылки открываться в новой вкладке.

Версия 2.1

  • Добавлена возможность назначить цвет для ссылок вообще (a:link), а не только для посещенных.
  • Появилась возможность определить цвет ссылок при наведении на них курсора (a:hover).

Версия 2.0

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

Версия 1.2

  • Все ссылки (a:link) по умолчанию подчеркиваются. Все посещенные (a:visited) ссылки помечаются стандартным пурпурным цветом.
  • Имеется страница настроек, которая позволяет отключить подчеркивание и/или окрашивание цветом.

My Little Clipboard

Ненавижу, когда текст копируется с форматированием. Дурацкие шрифты, отступы, цвета. Почему в браузерах нет возможности выключить это безобразие и получать просто текст без фигни - не знаю. Расширение позволяет страдающему пользователю скопировать текст без фигни. Чистит текст как при копировании при помощи контекстного меню, так и при копировании посредством клавиш Ctrl и С. В дополнение к чистке от форматирования расширение ликвидирует некоторые методы добавления к выделенному тексту мусора вроде обратной ссылки на источник.

Журнал версий

Версия 4.0

  • Расширение переведено на манифест версии 3.
  • В связи с предыдущим пунктом поправлены стили и изменена логика кода.
  • Добавлена иконка размером 16 пикселей.

Версия 3.0

  • Добавлена мощная фича: выключение всех или некоторых функций расширения на определенных сайтах. Поможет, когда расширение конфликтует со скриптами одного сайта, а полностью выключать неохота. Имена сайтов для выключения пишутся через запятую.
  • Переделано сохранение настроек - теперь все сохраняется в один объект. Старое пропадет, но там буквально пара галок, не страшно.
  • Удалено удаление форматирования костылем. Кажется, оно не нужно вовсе.
  • Добавлен стандартный попап с вызовом настроек, открытием сайта, возможностью выключить расширение.

Версия 2.5

  • Добавлен запуск сего расширения из другого расширения командой "my_little_clipboard_start".

Версия 2.4

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

Версия 2.3

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

Версия 2.2

  • Добавлена страница настроек, на которой можно выключить или включить обратно чистку буфера обмена от мусора.

Версия 2.1

  • Кажется, я нашел довольно универсальный способ вычищать мусор из буфера обмена. Не уверен, что сработает в 100% случаев, но пока проблемы не всплывали.

Версия 2.0

  • Как выяснилось, зря я использовал костыльный метод копирования без форматирования. Уже есть вполне удобный штатный способ оторвать форматирование. Его я и задействовал. Код сократился радикально. Логика использования расширения тоже поменялась: теперь нет отдельного пункта меню, расширение просто реагирует на любое копирование любым способом.
  • Некоторые сайты любят при копировании подсовывать в буфер обмена помимо выделенного текста также ссылку на себя, рассчитывая, видимо, что текст копирует слепой и умственно отсталый человек, который не идентифицирует этот мусор. Так как расширение предназначено для копирования без фигни, я решил добавить чистку копируемого от подобного мусора. Пока наткнулся на два метода замусоривания буфера обмена, их и ликвидировал. По мере обнаружения иных методов постараюсь убивать и их.

Версия 1.1

  • Копирование выделенного текста осуществляется по возможности с переносами строк. Сначала расширение пробует забрать выделенный текст из активной вкладки при помощи чистого JavaScript. Ежели это не получается, то текст для копирования берется из свойства selectionText объекта info, что входит в chrome.contextMenus API (там, увы, переносы не прописываются, но это лучше, чем ничего).
  • Копирование ссылок тоже имеется. Пока - просто для логичности и как задел на будущее, ничего отличного от стандартного копирования ссылок в этой функции нет.

My Little Right

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

Журнал версий

Версия 2.0

  • Добавлено еще одно событие для обнуления.
  • Внедрен попапчик с легким доступом к настройкам, сайту и выключению расширения.
  • Расширение переведено на манифест версии 3.
  • В связи с предыдущим пунктом пришлось произвести рефакторинг основной функции. Положительно, есть ощущение, что манифест версии 3 специально делали так, чтобы разработчики были вынуждены потратить как можно больше времени на переделку уже готового кода.

Версия 1.6

  • Небольшая коррекция чистки урлов для выключения расширения: теперь удаляются все пробелы.

Версия 1.5

  • В расширении появились настройки. Строго говоря, настройка пока одна: выключение для некоторых сайтов. В подавляющем большинстве случаев расширение ничего не ломает, но бывают полезные сайты, которые заменяют стандартное контекстное меню браузера каким-либо своим особенным. Например, почта Яндекса. Теперь домены, на которых не нужно запускаться, можно добавить в настройки через запятую. Вводить нужно без фигни вроде протокола, просто имя сайта. Кстати, по части имени расширение тоже найдет нужный сайт.

Версия 1.4.1

  • Минорное обновление: устранен баг при запуске расширения по команде из стороннего расширения.

Версия 1.4

  • Обнаружился сайт, который выдает при правом клике модельное окно с гениальным сообщением о том, что копировать запрещено. Выяснилось, что привязано оно к сравнительно редко используемому событию mouseup, которое теперь также обнуляется.
  • В CSS есть свойство user-select для запрещения выделения текста. Пока я его почти не вижу на сайтах, решил упредить. Теперь расширение устанавливает приоритетное значение text для данного свойства во всех элементах документа.
  • Добавлен запуск расширения по команде из другого расширения. Это может быть весьма полезно при асинхронной загрузке результатов, о которой расширение не подозревает. Теперь разработчик стороннего расширения (например, я) может дать команду перезапуститься, послав на ID этого расширения строку "my_little_right_start".

Версия 1.3

  • Поискал и, кажется, нашел самый лучший метод поделить на ноль все издевательства над стандартным поведением при использовании правой кнопки мыши. Правда, он весьма жесткий, в связи с чем вероятно исчезновение некоторой функциональности на сайтах, где правый клик как-то обрабатывается.
  • Добавлена проверка наличия элемента head перед добавлением в него скрипта.
  • Код, добавляемый в документ, теперь обернут в функцию. Появилось чуть больше контроля за запуском и выполнением.
  • Основная функция, ликвидирующая блокировки, запускается теперь дважды: сразу после построения DOM-дерева (в большинстве случаев должно хватать), и после наступления события window.onload (на всякий случай). Ранее была привязка только к window.onload, но это событие, как показывает практика, довольно ненадежное, иногда происходит с большой задержкой или не случается вовсе.

Версия 1.2

  • Изменение одно: теперь инъекция происходит в голову, а не тело. Не критично, просто код не вылезает при работе с XML, например.

Версия 1.1

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

Версия 1.0

  • Обнуляется нестандартное поведение при событиях oncontextmenu, onmousedown, onselectstart, oncopy. Чаще всего защита от копирования подразумевает блокировку вызова контекстного меню, нажатия правой кнопки мыши, выделения текста и копирования.
  • Восстановление поведения по умолчанию делается дважды: на уровне документа, и на уровне каждого из элементов документа.

My Little Href

Обычно разработчики сайтов стараются делать ссылки дружелюбными, поэтому пишут в анкоры какой-то человеческий текст, поясняющий последствия клика по ссылке. Это, конечно, правильно, но не очень удобно в том случае, если нужно посмотреть на собственно целевые адреса (href) ссылок. Данное расширение принудительно пишет в анкоры целевые URL. Такой вандализм ломает дизайн, поэтому расширение нужно держать выключенным, и включать только в случае необходимости.

Журнал версий

Версия 1.0

  • Расширение забирает содержимое атрибута href у всех элементов a, заменяет им анкор. Все.

My Little Diversion

Расширение позволяет отслеживать HTTP-коды посещаемых страниц. По кодам можно логировать и/или блокировать запросы. Может помочь, например, если нужно зайти в подозрительную сетевую клоаку, откуда могут без спросу перенаправить на какой-нибудь помоечный завирусованный рекламный сайт - в этом случае обычно достаточно включить блокировку 3xx редиректов.

Журнал версий

Версия 3.1

  • Расширение отныне информирует о режиме работы прямо в панели расширений на иконке. "Л" пишется для включенного логирования, "Б" - для блокировки. Вельми удобно, однако.
  • При формировании дат для показа лога, похоже, не учел старую программистскую наркоманию: начинать счет не с 1, а с 0, в связи с чем месяцы отображались некорректно: ровно на месяц раньше, чем должно быть. Штош, хорошо уже то, что сами даты изначально сохранялись без манипуляций - так что это лишь проблема их отображения, которую я ликвидировал.

Версия 3.0

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

Версия 2.0

  • Не заметил как стандартные модальные окна в фоновых скриптах стали запрещены. Странно. Это, конечно, сломало работу расширения - теперь у пользователя невозможно спросить, хочет ли он забанить редирект. Штош, пришлось переосмыслить суть. Я давно хотел сделать из этой поделки что-то более солидное. Вот, теперь пользователь в настройках может указать либо отдельные коды, либо диапазон кодов для отслеживания. Блокировку / логирование можно включать отдельно. Диалогов с вопросами теперь нет, правила накатываются на все запросы. Думаю, этого вполне хватит для отслеживания каких-нибудь наркоманских редиректов.
  • Результат отслеживания можно увидеть в логе. Информация представлена максимально полно, есть даже исходник со всеми деталями (под катом). Для навигации формируется динамическое меню. В самом низу есть возможность почистить лог (отслеживания длины пока нет, стоит руками чистить регулярно) и сохранить его в виде текста.

Версия 1.3

  • Изменение с одной стороны небольшое, с другой - довольно важное: мною ликвидирован глупый баг: я забыл прописать в манифесте ссылку на XML с информацией об обновлениях, из-за чего расширение не могло обновляться автоматически.

Версия 1.2

  • Настройки теперь хранятся в chrome.storage, а не в обычном локальном хранилище браузера. Кажется, что так надежней.
  • Так как удалить настройки теперь простой чисткой файлов cookie в браузере не получится, добавлена кнопка для удаления настроек.

Версия 1.1

  • Появилась страница настроек. Исключительно с одной целью: дать возможность включить автоматическое копирование заблокированной ссылки в буфер обмена. По умолчанию выключено.

Версия 1.0

  • Расширение отслеживает серверные редиректы. При обнаружении таковых запрашивает подтверждение перенаправления у пользователя.

My Little AntiHypertension

Расширение убирает наиболее раздражающую часть навязчивого сервиса Яндекса, ЖЖ, MetroLyrics, Genius. Постоянно вылезающие блоки с предложением что-либо скачать или прочесть - это сущий ужас. Также расширение может удалять со страниц изображения в формате GIF (нет ничего противнее, чем страница, забитая анимированными бегемотоподобными гифами). Если раздражают некоторые пользователи в ЖЖ - их комменты расширение поможет убрать.

Писалось под свои нужды, но, возможно, кому-то еще пригодится.

Название расширения столь гениально, что стоит отдельно пояснить. Слово «hype» в переводе с английского означает «навязчивая реклама». Конечно же, когда человеку постоянно пытаются подсунуть то, что ему не нужно, он начинает волноваться, злиться и т. д., в связи с чем повышается кровяное давление (слово «hypertension» переводится как «гипертония»). Таким образом, приставка «anti» в названии имеет двойной смысл: во-первых, расширение убирает навязчивую рекламу и прочий раздражающий контент; во-вторых, убирая ненужное, расширение способствует успокоению и снижению артериального давления.

Журнал версий

Версия 2.14

  • Обновил и частично переделал списки в дискографии на depechemode.com. Помимо охвата компактными списками всех разделов - добавил и границы с отступами для большего удобства.

Версия 2.13

  • Сделал компактные списки в дискографии на depechemode.com. Обложки - это хорошо, но охватить глазами компактный списочек в любом случае быстрее.

Версия 2.12

  • Genius добавил мусорные видосы. Расширение их теперь удаляет.

Версия 2.11

  • Википедия все больше походит на говносайт с огромными бестолковыми баннерами в шапке, которые мешают просмотру контента. Штош, сие расширение отныне пытается удалять этот отстой.

Версия 2.10

  • Расширение лишилось опции укрощения GIF. Эта плюшка переехала в отдельное расширение по имени My Little Kill.

Версия 2.9

  • Расширение научилось подчищать context.reverso.net - пока убирать рекламный блок и блюр результатов. Коль уж на самом деле дополнительные результаты есть, и доступ к ним получать легко - отчего бы нет?

Версия 2.8

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

Версия 2.7

  • Деструктивное обновление: для восстановления дефолтных полос прокрутки создано отдельное расширение My Little Scrollbars, потому из этого сия функция удалена.

Версия 2.6

  • Улучшена чистка сайта Genius. Что-то совсем уж все загадили. Пришлось принять крутые меры.

Версия 2.5

  • Добавлена чистка сайта Genius - удаляются рекламные блоки между частями текста песни. Разрывать лирику рекламой - свинство.
  • Немного уточнено распознавание Промо в ЖЖ.

Версия 2.4

  • Добавлено удаление нового мусора из MetroLyrics.
  • Чуть изменена логика запусков и перезапусков.
  • Выпиливание GIF целиком изменено, теперь есть два варианта: вырвать GIF целиком (может сломать верстку) или вставить вместо GIF прозрачную пустышку того же размера, что и оригинальный файл; к пустышке добавляется тайтл с сообщением о выпиливании и тень (просто чтобы понимать, в каком месте ранее был GIF).

Версия 2.3

  • Добавлено скрытие комментов анонимов в ЖЖ. По желанию пользователя, конечно.
  • Переделан поиск Промо - кажется, ликвидация стала надежнее.
  • Появилось слежение за прошедшими уже обработками постов и комментов в ЖЖ - теперь один и тот же блок два раза не проверяется. Экономия ресурсов, хоть и малозаметная.
  • Расширение начало перезапускать функции чистки в ЖЖ не только в блоке комментариев (там это делалось изначально - для работы с открывающимися тредами и другими страницами комментариев), но и в ленте постов, что, видимо, поможет тем, кто любит «бесконечную» ленту без разделения на страницы. Хотя, на мой вкус это - неудобная лента, сильно нагружающая браузер лишними данными.

Версия 2.2

  • В связи с затрудненным доступом к настройкам со страницы расширений добавил попап в кнопку расширения на панели расширений. Можно открыть настройки, открыть этот сайт, выключить расширение.
  • В ЖЖ появилась возможность привязать блог к домену, так что запуск лишь в домене LiveJournal уже не вполне актуален. Написано новое определение условий для запуска, что позволяет скриптам срабатывать в нужные моменты - даже если в урле ничего на ЖЖ не намекает.
  • В ЖЖ появился новый вид чего-то вроде Промо - добавлено и его удаление тоже.
  • Чуть подправлена чистка Яндекс.Переводчика.

Версия 2.1

  • Долгожданная (о себе говорю) фича: вычищение комментариев неугодных пользователей LiveJournal. Логины или имена (не)нужных пользователей можно ввести в настройках, разделяя их запятыми. Пробелы между словами использовать можно, так что скрывать комментарии тех, кто авторизуется через сторонние сервисы, также получится. Собственно, комментарии можно было просто скрыть с информированием, либо вырезать бесследно. Я реализовал оба варианта. Выбрать способ ликвидации можно в настройках. Кажется, наиболее предпочтителен первый вариант: аккуратное скрытие с сообщением - мол, скрыт комментарий такого-то пользователя. И все же нужно иметь в виду, что самый надежный способ убрать неугодное - полное удаление. Тем более, что скрытие, похоже, вызывает ошибки системы раскрытия тредов в LiveJournal (вроде бы, это не критично, но все же). Вполне очевидно, что комменты в свернутых тредах расширение не увидит и не удалит (если надо). Так как разворачиваются треды без перезагрузки страницы, я встроил регулярный перезапуск чистилки комментов: это позволит довольно быстро чистить вновь появившиеся комменты, и, похоже, не сильно нагружает браузер. И еще небольшое уточнение по поводу того, как работает поиск имен. Я задействовал регулярные выражения - чтобы искать в любом регистре. Побочные эффекты таковы: ищется не слово целиком, а любое вхождение (не думаю, что это большая проблема), также можно вместо простых имен пользователей прописывать регулярные выражения со всеми плюшками (например, \d уберет комментарии всех пользователей с цифрами в логине). Можно было бы соорудить поиск только полных совпадений и экранировать спецсимволы регулярок, но получившаяся фича довольно прикольная, пока решил оставить так.
  • GIFы отныне вырываются путем удаления всего элемента, а не чистки пути к картинке. Кажется, так надежнее.
  • Буквально перед релизом верстка в ЖЖ сменилась, в связи с чем старая функция удаления Промо сломалась. Починил.

Версия 1.7

  • Как выяснилось, в движок хромиумов встроена возможность контролировать анимацию гифов. Сейчас там значится «Important: This API works only on Chrome OS» что не есть правда: вполне себе работает везде. Раз уж есть встроенная опция - добавил ее в расширение. Теперь обуздать гифы можно двумя способами: вырвать с корнем, либо попробовать остановить (можно выбрать в настройках). Контроль анимации, хоть и встроенный, далек от идеала: почти всегда хотя бы часть анимации успевает воспроизвестись, прежде чем браузер поймет, что в картинке есть анимация. Посему самым действенным способом избежать анимации остается полное удаление всех картинок формата GIF.

Версия 1.6

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

Версия 1.5

  • Добавлено выпиливание нескольких кошмарных рекламных баннеров в LiveJournal.
  • Порой навязчивая дистрибуция в MetroLyrics вылезает сильно позже первичного открытия сайта. Регулярные перезапуски расширения - вариант не самый практичный, посему добавлена новая функция скрытия через CSS (используется сразу несколько свойств для гарантированного результата).
  • Логика работы кнопки удаления настроек чуть изменена: теперь ожидание подтверждения длится 6 секунд, после чего кнопка возвращается в исходное состояние.
  • Небольшие правки в CSS страницы опций.

Версия 1.4

  • MetroLyrics - сайт полезный, но блоки со связанным контентом, да еще разрывающие тексты песен - это какой-то кошмар. В данной версии расширения добавлена работа с MetroLyrics, теперь сайтом можно пользоваться с меньшим раздражением.
  • Добавлены перезапуски, так как часть контента, подлежащего вырезанию, грузится чуть позже основного контента страницы. Удаление ненужного запускается теперь таким образом: сначала после построения DOM, потом еще раз через полторы секунды после первого запуска; также перезапуск случается при изменении хеша или иной части урла открытого документа.

Версия 1.3.1

  • Маленькое обновление: просто добавил еще пару классов для выпиливания дистрибуции Яндекса.

Версия 1.3

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

Версия 1.2

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

Версия 1.1

  • Промо из ленты друзей и из постов в LiveJournal теперь вырезается.
  • Также в LiveJournal ликвидируется нечто, называемое LJTimes.

Версия 1.0

  • Удаляется верхняя дистрибуционная полоса в результатах обычного поиска Яндекса.
  • Простая дистрибуция (всплывающий блок с предложением скачать браузер, ссылки в подвале) удаляется почти из всех сервисов Яндекса.
  • Промо из Яндекс.Переводчика также выпиливается; для ликвидации появляющегося пустого пространства есть костыль.
  • Дистрибуция в Яндекс.Картинках не трогается, ибо ломает подгрузку результатов.
  • За адресной строкой расширение следит, поэтому при асинхронной работе дистрибуция если и вылезет, то на секунду, не более.

My Little Title

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

Журнал версий

Версия 3.0

  • Добавлена возможность автоматически заменять некий текст в элементах, с которыми работает расширение. Экранирования нет, так что можно использовать регулярные выражения, однако нужна дополнительная осторожность со спецсимволами. Если при формировании регулярки случится ошибка - расширение предложит открыть настройки и исправить текст для поиска.
  • Логика хранения настроек переделана. Старые пропадут, штош поделать. Их было-то всего чуток.
  • Обе фичи (добавление и замену) отныне можно включать и выключать отдельно.
  • Добавлен попап со стандартным меню: в нем есть доступ к настройкам, возможность посетить страницу расширения, кнопка выключения.

Версия 2.0

  • Появилась возможность добавлять текст не только к элементу title, но и вообще к любому элементу на странице. Для этого нужно лишь прописать в настройках нужный селектор CSS. Селекторов можно задействовать больше одного, для этого нужно указать их через запятую - в общем, совершенно так же, как в CSS.

Версия 1.0

  • Расширение героически добавляет прикольный текст до и после элемента title.
  • Имеются настройки, где, собственно, прикольный текст и можно прописать.

My Little Memory

Кто забывает? Все забывают. Без напоминалки в современном мире, в коем нужно держать в голове тонны данных, жить невозможно. Лично для меня самая большая проблема - относительно редкие, но регулярные события (выходной в какой-либо праздничный день, чей-либо день рождения и т. п.). Реализация напоминаний через расширение в браузере может показаться странной затеей. В моем случае браузер - это, пожалуй, единственная программа, которая хотя бы раз в сутки будет запущена с вероятностью, близкой к 100%, поэтому мне кажется, что решение нормальное.

Журнал версий

Версия 4.1

  • Расширение переведено на (дурацкий) манифест версии 3.
  • В связи с предыдущим пунктом пришлось повозиться со стилями. Вроде бы даже кое-что приличное вышло.

Версия 4.0

  • Внедрена очень крутая фича: возможность установить периодические уведомления, которые будут показываться регулярно через указанные промежутки времени. Время отчего-то ожидается в минутах, это место я оставил в исходном виде - калькулятор поможет вычислить значение для суток, недели, месяца и так далее. Пока для напоминаний сих выделено 5 местечек. Конечно, дата и время старта - это дата показа первичного сообщения, от которого начнется отсчет времени для следующего показа. И, конечно, если дата и время меньше текущего - сообщение выстрелит сразу же, а не спустя указанный период.
  • В связи с внедрением периодических напоминаний - верстка настроек переделана, и еще добавлены заголовки блоков.

Версия 3.2

  • Появилась возможность перемещать события вверх и вниз. Сохранение, как обычно, только по нажатию на соответствующую кнопку.
  • Экспорт несколько переделан: теперь в имя файла добавляется временная отметка - чтобы сделать имена уникальными, и можно было без лишних манипуляций экспортировать несколько наборов событий.

Версия 3.1

  • У таблицы с событиями теперь появилась шапка.
  • В настройках появилась кнопка сброса показов определенного события.

Версия 3.0

  • Радикально изменена суть работы расширения. Среди API браузеров на Chromium есть готовые системы планирования и отображения сообщений. Я полагал, что работает оно надежней и правильнее моего велосипеда - по крайней мере, не ждет открытия документа, а выстреливает сразу же при открытии браузера, да и ресурсов ест меньше. В целом впечатления положительные, но в процессе эксплуатации я обнаружил, что не все работает идеально. Если алерт пропущен из-за того, что браузер не был запущен в нужное время - он должен срабатывать сразу же после очередного запуска браузера. Увы, по крайней мере иногда штатный алерт не выстреливает если пользователь относительно долго не запускал браузер (больше суток). Это не кажется большой проблемой, ведь пользователь все равно пропустил событие, но предупреждать о пропущенном определенно было бы хорошо. Моя попытка сделать костыль на этот случай увенчалась провалом. Именно поэтому я впервые сохранил предыдущую версию на всякий случай. Будем надеяться, что бажок когда-нибудь ликвидируют.
  • В связи с изменением работы с оповещениями нужно сохранить текущие настройки хотя бы один раз после обновления расширения - чтобы установить алерты, ибо старый метод алертов был ликвидирован полностью. Расширение показывает одно сообщение с разъяснением во время открытия любого документа после обновления расширения, потом открывает настройки и автоматически сохраняет их. Система работает, кажется, вполне годно, но вручную сохранить настройки все же стоит.
  • Добавлена возможность устанавливать время извещения с точностью до минуты.
  • Добавлена цветовая маркировка в настройки - для количества показов и дней до события.
  • В настройки добавлен блок с извещениями об успешности сохранения или удаления.
  • Настройки ожидают импорта в JSON, так что теперь при поиске файлов для загрузки расширение отображает лишь файлы с расширением json.

Версия 2.0

  • Создана система сохранения настроек в файл формата JSON. Можно сделать экспорт. Если браузер не хочет сохранять файлик автоматически - будет открыта страница с текстом, можно скопировать и сохранить руками.
  • Конечно же, сделана и возможность загрузить настройки из файла. Сохранение их происходит только после нажатия на соответствующую кнопку, так что, если настройки загрузились криво, или пользователь передумал их сохранять - можно просто ничего не делать, и тогда в памяти останутся старые настройки. При загрузке файла с настройками обнаружился микроскопический бажок: отслеживаются изменения инпута, и если один и тот же файл с настройками попробовать загрузить два раза подряд (мало ли зачем) - событие не выстрелит второй раз, ведь имя у файла то же, и изменения формально нет. Решил принудительным обнулением значения у элемента для загрузки файла.

Версия 1.4

  • Давно надо было сделать возможность устанавливать не только дату события, но и время показа сообщения. Совам вроде меня не очень логично показывать напоминание в полночь по UTC (в Москве это 3 часа ночи - но от этого не легче): формально, конечно, в полночь наступает завтра, но фактически завтра наступает лишь после засыпания и пробуждения человека. Вот, теперь пользователь может указать час показа напоминания. По умолчанию сделал 12. Учет времени потребовал переписать скрипты изрядно, зато код стал чуть логичнее.
  • Сделал в настройках генерацию элементов напоминаний скриптом. Для конечного пользователя ничего не поменялось, но зато теперь можно легко увеличить количество напоминалок, поправив лишь одну переменную.
  • На страницу настроек добавлено короткое описание работы расширения, подправлен вид других элементов.
  • В текущей версии хромиумов работа с расширениями организована неудобно, добираться до настроек стало сложно. Штош, сделал попап с вызовом настроек, туда же добавил кнопку открытия сайта и выключения расширения (ну, мало ли, вдруг понадобится).

Версия 1.3

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

Версия 1.2

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

Версия 1.1

  • Проблема фиксации показов нескольких сообщений подряд, похоже, решена. Теперь любое количество показов подряд сохраняется нормально.
  • При отображении модального окна стал также учитываться случай, когда сообщение отсутствует по каким-то причинам. Несколько странно так делать, но теоретически возможно. Отныне в том случае, если сообщение для отображения не найдено, выводится стандартное известие о каком-то неведомом важном событии.
  • Обновлена функция удаления настроек. Я сделал двойное подтверждение, ибо потерять можно целых 12 событий (максимум).
  • Улучшены стили страницы настроек.

Версия 1.0

  • Расширение позволяет составить список из 12 событий (дата + сообщение). Безлимит тут показался излишним.
  • В настройках можно увидеть количество оставшихся до события дней.
  • При наступлении нужной даты расширение выведет модальное окно с соответствующим пользовательским сообщением внутри первой же открытой вкладки. Грубо, зато точно не пропустишь.
  • Указанная дата наступает в полночь, но по UTC, так что нужно делать поправку на местную часовую зону (в Москве сообщение выстрелит в 3 часа или позже).
  • Напоминание случается два раза: за день до события, и в день события. Если за день до события браузер не был запущен - будет одно напоминание. Если ни за день до, ни в день события браузер не был запущен, напоминания не будет вовсе. Маленький технический нюанс: фиксация показа случается только после закрытия модального окна, поэтому если открыть несколько страниц в момент, когда нужно выводить напоминание - оно будет выведено в каждой вкладке браузера.
  • Известный недостаток: дата проверяется при каждом открытии любой страницы в браузере, что не вполне практично. Возможно, в будущем мне придет в голову решение, при коем дата будет проверяться раз в сутки.
  • Известный баг: если напоминаний должно быть несколько одновременно, то фиксируется показ только первого (это связано с асинхронной сущностью хранилища данных) и, соответственно, для второго и последующих событий сообщение будет показано снова, пока не остается таки одно. Вероятно, в будущем я смогу придумать, как ликвидировать эту проблему.

My Little Getter

Захотелось как-то написать качалку. Кто ж мне запретит? Картинки, например, приходится сохранять довольно часто. Вот, качалка файлов. Можно качать картинки (содержимое атрибута src элементов img), либо приказать расширению прокачать ссылки, имеющиеся на текущей странице (содержимое атрибута href элементов a). В настройках устанавливается минимальная ширина и высота скачиваемых картинок; также можно прописать расширения файлов для скачивания по ссылкам. Возможность перед скачиванием отфильтровать ненужное - есть. По умолчанию файлы сохраняются в тот каталог, который пользователь указал для скачиваемого в настройках браузера. Я сделал возможность задать подпапку для скачиваемых файлов, но эта опция может не работать в некоторых браузерах из-за старого бага в Chromium.

Журнал версий

Версия 4.0

  • Расширение переведено на манифест версии 3.

Версия 3.6

  • Добавлена жутко полезная статистика найденного / отмеченного в таблице урлов для скачивания.
  • Ликвидирован бажок с обработкой пустой таблицы.
  • Подправлена верстка страницы скачивания.

Версия 3.5

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

Версия 3.4

  • Фильтр по расширению отныне можно применять и для скачивания картинок, и для скачивания ссылок.
  • Количество файлов, при превышении коего запрашивается подтверждение, теперь можно настраивать.
  • Собственно, запрос подтверждения отчего-то не работает больше в фоновом скрипте. Поправлено: модальное окно перенесено в контентный скрипт.
  • Баг в браузере с подпапкой устранен. Это выявило баг в расширении при работе с подпапкой. Он устранен, теперь все хорошо сохраняется в подпапочку.

Версия 3.3

  • На странице загрузки в самом низу появилась кнопка, открывающая настройки расширения. Увы, разработчики Chromium зачем-то убрали удобный доступ к настройкам расширений в жопу. C тех пор крайне желательно выдать пользователю доступ к настройкам каким-то дополнительным удобным способом. Самый удобный - попап по нажатию на кнопку расширения в панели расширений, но в данном случае это нажатие, очевидно, гораздо практичнее использовать для запуска сбора ссылок. Что ж, в любом случае теперь настройки более доступны.
  • На странице просмотра в тайтле кнопки скачивания теперь показывается информация о количестве отмеченных ссылок.
  • Положение галки «выделить все» привязалось к текущему положению галочек возле ссылок в таблице. Если все галочки установлены - галка «выделить все» также ставится. И наоборот, конечно, тоже.
  • Добавлены кнопки применения фильтров. Автоматическое применение остается, но неудобства и неоднозначности (например, при использовании галки «выделить все» без кнопки применения зафорсить установку галок по количеству или проценту было нельзя) теперь в прошлом.

Версия 3.2

  • Добавлена кнопка, отмечающая галками ссылки, найденные по тексту в блоке фильтрации. Сама функция поиска текста немного переделана.
  • Также появилась возможность поставить галки у части ссылок, и качать документы пачками - можно либо пометить простое количество, либо процент ссылок от начала списка. Округление процента - до ближайшего целого.
  • Положение галки, отмечающей галками все ссылки, теперь сохраняется. Если галка сия стоит, то при загрузке страницы со ссылками галки ставятся везде. В противном случае галки ставятся для части ссылок, в соответствии с настройками из предыдущего пункта. Тут может быть небольшое неудобство: если стоит галка, ставящая галки везде, то после пометить галками часть ссылок просто так не получится, нужно будет хоть что-то в фильтрах поменять (они применяются автоматически, но лишь при изменениях). Выйти из положения можно, навсегда сняв галку, отмечающую все ссылки, и установив выделение 100% ссылок от начала - фактически, эти опции делают одно и то же.
  • Добавлено подтверждение при скачивании слишком большого количества (более 50) и на страницу с выбором. Ранее таковое было лишь при скачивании всего подряд топорным образом.

Версия 3.1

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

Версия 3.0

  • Весьма существенное добавление получило расширение. Если ранее качалка просто скачивала все, что удовлетворяло условиям из настроек, то отныне можно сделать выбор на отдельной странице. В таблице с найденными ссылками можно обнаружить собственно ссылки, анкоры (иногда ссылки выглядят просто кошмарно, и что-либо понять можно только по анкорам), а также флажки, коими как раз скачивание и управляется. В самом низу таблицы небольшая статистика и чекбокс, которым можно быстро поставить / снять все флажки.
  • Помимо скачивания выбранного, можно также просто скопировать ссылки (все) в буфер обмена.
  • Простое топорное скачивание я оставил (можно включить в настройках) - порой на странице 1-2 файла для скачивания, и однократное нажатие на кнопку для начала скачивания значительно удобнее постоянного открытия страницы выбора.
  • В связи с добавлением выбора функция сбора ссылок переработана - теперь она собирает в массив не просто ссылки, а объект со ссылкой и анкором. Извлечение анкоров постарался сделать более-менее умным. По крайней мере, пустые анкоры и анкоры-картинки функция находит, и сохраняет соответствующую информацию (в таблице атипичные анкоры выделены желтеньким). Ежели кроме картинки в анкоре есть атрибуты alt или title - они сохраняются для отображения, ибо полезны быть могут по сравнению со скудной информацией о пустом текстовом анкоре.
  • Расширение теперь отфильтровывает ссылки на почту.

Версия 2.0

  • Добавлена возможность скачивать не только лишь все картинки, но и вообще любые файлы по ссылкам (содержимое атрибута href элементов a). Конечно же, все подряд качать обычно смысла нет, поэтому в настройках можно указать расширения файлов для скачивания через запятую (если там будет пусто - будет качаться все). При наличии большого количества файлов для скачивания (более 50) расширение спросит, действительно ли нужно все это качать. :)
  • Расширение теперь следит за именами папки для скачивания и скачиваемых файлов, ликвидируя все недопустимые в Windows символы автоматически.
  • Чтобы уместить большее количество настроек страница с таковыми переделана, элементы теперь расположены более компактно. Всплывающие подсказки добавлены.

Версия 1.0

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

My Little Outline

Специфическое расширение - из тех, которые нужно включать только в случае большой :) нужды. Добавляет границы элементам HTML при помощи свойства outline (то есть без изменения размеров). Получается некий отладчик, кой может весьма помочь при верстке страниц.

Журнал версий

Версия 2.2

  • Список элементов HTML, которые получают обводку, теперь можно посмотреть - он под кликом по типу элементов в настройках.

Версия 2.1

  • Добавлена возможность указать толщину обводки в пикселях. Саму единицу измерения (px), указывать не нужно, настройки принимают лишь число. Так как значения меньше 1 бессмысленны, они совершенно самостоятельно превращаются в 1.
  • Появилась возможность указать стиль обводки. В выпадающем меню можно выбрать все, что нынче доступно в CSS.
  • Блокирование настроек пользовательского селектора выключено: может быть удобно ввести некие значения даже если и не нужно прямо сейчас их применять.

Версия 2.0

  • Сохранение настроек переделано: теперь они сохраняются в объект. Проще работать с данными, короче код.
  • Добавлена возможность включить и выключить использование пользовательского правила. Ранее расширение использовало его всегда, если поле с селектором было заполнено. По умолчанию - выключено.
  • Добавлен стандартный попап в кнопку расширения на панели расширений. Можно открыть настройки, открыть сайт сей, выключить расширение.

Версия 1.1

  • Появилась возможность включить (вернее, выключить) добавление границ для любого типа элементов. По умолчанию включено все.
  • В настройках добавить пример пользовательского селектора в соответствующее поле теперь можно в один клик (по примеру). То же касается значения outline для пользовательского селектора.
  • Обнаружил, что незаслуженно проигнорировал табличные теги (thead, tbody, tfoot, tr, th, td). Они не очень-то похожи на блочные или строчные, поэтому добавил их в массив универсальных элементов.

Версия 1.0

  • Строчные, блочные, универсальные и псевдоэлементы получают границы разных цветов.
  • Цвета границ для разных типов элементов можно выбрать в настройках.
  • Также в настройках есть возможность указать произвольный селектор и значение свойства outline для него

My Little Up

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

Журнал версий

Версия 2.1

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

Версия 2.0

  • Схема работы с настройками переделана: все же через объект куда удобнее. Пришлось переписать большую часть расширения. В связи с этим старые настройки будут, увы, утеряны.
  • Добавлена опция, позволяющая выключить добавление кнопки на некоторых сайтах. Есть же сайты с кнопкой, там дублировать функциональность смысла нет. Протокол не нужен, ожидается лишь доменное имя (если речь про локальную страницу - можно ввести любую часть урла). По части имени также урл найдется. Регистр не имеет значения.

Версия 1.0

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

My Little XML

Расширение создано для осуществления запросов к сервису Яндекс.XML и отображения полученных результатов в человекочитаемом виде. Страница для ввода GET-запроса и вывода результатов вызывается кнопочкой на панели расширений.

Журнал версий

Версия 2.2

  • Для консистентности добавлена возможность загрузить в парсер внешний XML. Это позволит отображать в удобном виде ранее сохраненные результаты. Если в исходнике не будет найдено все, что необходимо - в таблице вместо данных появится сообщение об отсутствии корректных данных.

Версия 2.1

  • Появилась возможность сохранить исходник на локальный жесткий диск в фиде файла XML.
  • После загрузки результата пользователь автоматически перемещается к месту, где, собственно, отображение результата начинается.
  • Изменилась ссылка на документацию Яндекс.XML, освежена.

Версия 2.0

  • У расширения появилась страница настроек, где можно вписать URL для запросов и включить отображение пункта «Искать в Яндекс.XML» в контекстом меню.
  • Опция «Искать в Яндекс.XML» позволяет искать выделенное или ссылку в Яндекс.XML. При использовании данного пункта открывается страница парсера с наиболее простым вариантом запроса (фактически лишь URL для запросов и текст запроса) - но это и самый стандартный запрос с самым ожидаемым поведением, так что решение кажется хорошим. Если фиксируется попытка поискать ссылку - в запрос автоматически добавляется оператор url языка запросов Яндекса (искать ссылку без него несколько странно, но можно и ручками удалить).
  • На самом деле URL для запросов - просто базовая часть GET-запроса, в кой можно добавить любые параметры. Это означает, что помимо логина и ключа можно добавить другие опции: фильтрацию взрослого контента, группировки и сортировки, язык и много чего еще. Таким образом можно сохранить в качестве URL для запросов практически полноценный запрос, куда будет просто добавляться текст запроса.
  • Расширение сохраняет последний успешный запрос в память браузера. При открытии парсера из контекстного меню ранее сохраненный запрос будет стерт.
  • В шапке поля для ввода запроса парсера появились две псевдоссылки, которые меняют текущий GET-запрос на URL для запросов или URL для запросов с параметром query, в кой остается лишь вписать собственно текстовый запрос для поиска.
  • Добавлена кнопка копирования всех извлеченных ссылок.

Версия 1.0

  • Пользователю предлагается самостоятельно сформировать GET-запрос со всеми параметрами и ввести его в соответствующее поле на странице парсера.
  • Раздел с результатами делится на две части: общие данные и таблица со ссылками. В случае возвращения ошибки вместо общих данных будет выведено соответствующее сообщение.
  • Запрос автоматически сохраняется и загружается при следующем открытии страницы парсера.
  • Последний ответ сервера автоматически сохраняется и загружается при следующем открытии страницы парсера.
  • Над таблицей есть свернутый элемент с полным исходным кодом ответа сервера - для контроля.

My Little Elaboration

Просто надоело как-то раз чистить свежий кеш браузера не очень удобным стандартным способом. При разработке это может превратиться в мучение. Родилось расширение, которое может легко, и даже отчасти просто почистить весь кеш за последние XX часов (можно настроить). После уничтожения кеша активная вкладка может быть автоматически перезагружена, что тоже настраивается. Также есть кнопка, позволяющая решить проблему кеша радикально: открывает текущую страницу в приватном режиме.

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

Журнал версий

Версия 2.0

  • Расширение переведено на манифест версии 3.
  • Одна устаревшая функция Chromium заменена на более актуальную.
  • Изменена логика закрытия попапа: теперь он не закрывается после использования опций, ибо в этом нет большого смысла.
  • Появился отчет (на кнопках) о чистке кук и хранилища.

Версия 1.1

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

Версия 1.0

  • Расширение уничтожает кеш за последние часы. Часы - настраиваются. Отрицательные значения недопустимы, минус автоматически удаляется.
  • Автообновление активной вкладки после чистки кеша можно включить (и даже выключить).
  • Расширение может невозбранно удалить все куки источника. Запрос подтверждения есть.
  • Также инструмент сей может героически почистить полностью хранилища источника (оба вида: и локальное, и сессионное). Запрос подтверждения есть.
  • Возможность открыть активную вкладку в режиме инкогнито - присутствует.
  • Также есть стандартные опции: посещение сайта автора и выключение расширения.

My Little Wowdio

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

Вот, расширение позволяет ускорить (или замедлить - правда, такое при разработке не задумывалось) аудио или видео на сайтах. Работает с с элементами video и audio стандарта HTML5. Да, со всеми сразу на странице. Помимо установки скорости в попапе расширения также можно включить накатывание пользовательской скорости сразу же на все документы. Ежели эта галка не стоит - скорость не меняется до тех пор, пока пользователь сам не зафорсит ее изменение в активном документе через соответствующую кнопку в попапе расширения.

Журнал версий

Версия 2.1

  • Расширение переведено на манифест 3.
  • И сызнова не обошлось без плясок с бубном. Полноценную комедийную функциональность сохранить не получилось - прогрессивный (сарказм) новый манифест удивительным образом лишает разработчиков множества возможностей. Теперь режим комедии работает только из открытого попапа. При его закрытии музыка стихает. Криво, но лучше, чем ничего.

Версия 2.0

  • Появилась совершенно, невероятно гениальная фича: расширение научилось превращать любое видео в комедию. Для этого радикально увеличивается скорость, заглушается оригинальный звук, запускается Yakety Sax в режиме петли (будет играть бесконечно). Со звуком пришлось повозиться, бо включать звук на страницах без команды посетителя запрещено - пришлось использовать фоновый скрипт. Видео обрабатывается в контентном скрипте в активной вкладке.
  • Выключить комедию, конечно, тоже можно: скорость устанавливается в 1, звук плееров включается, Yakety Sax выключается.
  • Если закрыть браузер по время комедии, а затем открыть снова - расширение обычным образом не узнает, что музыка более не звучит. В качестве костыля сделана проверка наличия аудио в фоновом скрипте, и ежели нет - расширение считает, что музыка не звучит. Впрочем, если вдруг кнопка в попапе будет предлагать выключить комедию даже в тишине - это ничего не сломает, просто для включения придется жмакнуть ее два раза.

Версия 1.0

  • Расширение проходит по всем доступным в документе элементам video и audio, изменяет скорость воспроизведения на пользовательское значение. Для замедления следует использовать значения меньше 1, для ускорения - больше. Отрицательные значения не принимаются, поэтому минус автоматически отбрасывается.
  • Есть возможность автоматически накатывать изменение скорости сразу после загрузки страниц или делать это лишь по команде пользователя.

My Little Scrollbars

Выделил из расширения My Little AntiHypertension фичу, возвращающую полосам прокрутки стандартный вид. В связи с личными обстоятельствами (нужна была эта фича, и было вельми важно, чтобы ничего другое на странице не трогалось). Кажется, что это логично: My Little AntiHypertension больше про удаление ненужного контента, а тут контент скорее восстанавливается в нужном виде.

Журнал версий

Версия 2.0

  • Расширение переключено на манифест версии 3.
  • Добавлена иконка размером 16 пикселей.

Версия 1.0

  • Расширение проходится по всем фреймам, везде накатывает максимально стандартный вид полос прокрутки.

My Little Query

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

Поддерживаемые методы: GET, POST, HEAD, PUT, DELETE, PATCH. Заголовки можно отправлять любые. Тело можно отправить в исходном виде или в JSON (на самом деле отправляется все равно в виде строки, но по крайней мере будет что-то вроде валидации). Ответ также можно посмотреть в исходном виде или в JSON (отличие лишь в том, что JSON форматируется для удобного чтения).

Кой-какая обработка ошибок есть. Все параметры запроса сохраняются автоматически.

Журнал версий

Версия 1.0

  • Расширение умеет делать HTTP-запросы наиболее актуальными методами, добавлять в запрос заголовки и тело (если надо).
  • Тело и ответ можно преобразовать в объект.
  • Данные запросов сохраняются.

My Little Injector

Накатывать свои скрипты на веб-страницы нужно не только лишь всем. Но нужно бывает порой. Расширение сие позволяет добавить на страницу сценарий на языке JavaScript. Готовые решения есть, но они остановились в развитии на примитивном уровне, а в свое творение можно постепенно добавить функции для работы со всякими наркоманскими специфическими ресурсами.

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

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

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

Писать скрипты в расширении - то еще извращение, нужно юзать специальные редакторы, а в соответствующее поле лишь вставлять уже готовый скрипт.

Журнал версий

Версия 3.1

  • Добавилась кнопка клонирования скрипта.
  • В связи с предыдущим пунктом несколько изменен дизайн настроек.

Версия 3.0

  • Добавлена новая офигенная фича: ожидание появления на странице некоего элемента (по селектору CSS). Теперь можно спокойно запускать скрипты для страниц с асинхронной загрузкой данных, расширение дождется появления нужного элемента. Небольшой предохранитель встроен: если слишком много (пока 300) ежесекундных попыток найти элемент будет провалено - процесс останавливается.
  • Несколько переделан дизайн настроек, теперь места для полезных данных побольше.
  • Исправлен ряд ошибок прошлой версии.

Версия 2.0

  • Пожалуй, самая большая головная боль современности: асинхронная подгрузка нового контента. Вот, проделана работа по адаптации расширения к постоянно изменяющимся документам. Для этого внедрена возможность автоматического передобавления скрипта через указанный пользователем промежуток времени в секундах. Можно выбрать три варианта. Самый простой - полное передобавление скрипта; подойдет для безопасных скриптов, повторный запуск которых ничего не поломает. Вариант второй - передобавление при пропаже добавленного ранее скрипта; подойдет для страниц с полностью меняющимся контентом. Третий вариант - передобавление при изменении элемента на странице; подойдет для сервисов со сложной архитектурой, где контент меняется нетипичным образом, лишь в некоторых элементах или без изменений в HEAD. Третий вариант ожидает селектор CSS.

Версия 1.0

  • Скрипты можно добавлять любые. За корректность отвечает лишь их автор.
  • Набор правил для добавления добавляется в выпадушку после сохранения.
  • Можно удалить как один набор правил, так и все настройки сразу. Подтверждения есть.
  • Чтобы временно включить/выключить добавление скрипта есть галочка. По умолчанию снята на всякий случай, так что в новых скриптах ее нужно ставить явным образом.

My Little Translit

Расширение делает транслитерацию содержимого страниц. Зачем это может понадобиться - черт его знает. Но сделать несложно, так отчего бы и нет?

Журнал версий

Версия 1.1

  • Добавлена кнопочка очистки настроек; с подтверждением, конечно.

Версия 1.0

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

My Little Yandex

Яндекс - это есть круто, но кое-чего в нем лично мне не хватает. Так как кое-что можно добавить и самому при помощи расширения - вот, расширение рождено.

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

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

Журнал версий

Версия 1.3

  • Подключена работа также в поиске в домене ya.ru.
  • Внедрена опция, запрещающая автоматическое исправление запроса. Как и с иными опциям, добавляющими параметры к поисковому урлу - не стоит злоупотреблять сей возможностью чтобы не вызывать подозрение защиты от роботов. По крайней мере, стоит понаблюдать, и если капча начнет доставать - включать настройку только по мере надобности.

Версия 1.2

  • Добавлена возможность подсветить блок, в коем указывается на нулевые результаты.
  • Цвет вышеуказанной подсветки можно выбрать, умолчальный - красный (ясное дело).

Версия 1.1

  • Добавлена возможность увеличить количество документов, отдаваемых Яндексом на одной странице выдачи. Можно выбрать отображение 20, 30 или 50 документов.

Версия 1.0

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

My Little Kill

Еще одна клевая фича вышла из расширения My Little AntiHypertension - кажется, укрощение GIF достойно отдельного расширения. Вот, расширение сие позволяет полностью уничтожить, заменить на пустышку или просто остановить GIF. Впрочем, убивать можно не только мерзкие гифы.

Журнал версий

Версия 2.1

  • Добавлена возможность уничтожать нотификации (уведомления от сайтов). Прямо все и сразу. Ибо нефиг.

Версия 2.0

  • Расширение получило опцию «ничего не делать» с GIF - чтобы не выключать расширение вовсе если надо приостановить работу на время.
  • Ну и уж заодно внедрен манифест версии 3.

Версия 1.0

  • Расширение проходится по всем картинкам на странице, и если формат определяется как GIF - производит выбранное пользователем действие. По умолчанию GIFы подменяются пустышкой, которую даже можно заметить по тени.