Милі розширення для Chrome, які не гальмують браузер
У декоративних розширень браузера є репутація, і здебільшого заслужена: важкі, балакучі, встановлені зі списком дозволів, який ніхто не читав. Шкода, бо сама категорія по-справжньому цікава, а всіх цих проблем можна уникнути.
Три речі, які варто перевірити
- Список дозволів. Chrome показує його ще до встановлення. Storage — це просто файл налаштувань. А ось tabs, cookies, history і webRequest — це саме ті дозволи, що дозволяють розширенню стежити за тим, що ви переглядаєте.
- Чи чіпає воно розмітку сторінки. Розширення, яке вставляє елементи прямо в потік документа або вимірює позицію елементів на кожній події прокрутки, може змусити плавну сторінку гальмувати, хоч би скільки насправді малювало.
- Куди воно надсилає запити. Якщо в декоративного розширення жвава вкладка мережі, значить воно тихцем виконує ще якусь роботу, про яку вам не сказали.
Чому саме розмітка боляче кусає
Читання властивості розмітки — висоти елемента, його позиції на екрані — змушує браузер спершу завершити всю відкладену роботу з розмітки, перш ніж він зможе відповісти. Зробіть це всередині обробника прокрутки — і ви попросите браузер зупинятися й вимірювати шістдесят разів на секунду просто посеред відмальовування сторінки.
Саме цей механізм стоїть за більшістю скарг штибу «через це розширення прокрутка сіпається», і він невидимий, доки хтось не профілює сторінку. Рішення прозаїчне: ніколи не читати розмітку під час прокрутки, писати лише transform і залишити рух композитору.
Як це виглядає тут
scrolldog — маленький піксельний улюбленець, що біжить уздовж краю кожної сторінки зі швидкістю вашої прокрутки. Це ще й наочний приклад розібраних вище перевірок, бо йому довелося їх пройти, щоб із ним можна було миритися:
- Лише два дозволи: storage і unlimitedStorage. Жодних tabs, cookies, history чи webRequest.
- Один дозвіл на хост — api.scroll.dog — використовується лише для перевірки ліцензії й ніколи для доступу до сторінки, яку ви відкрили.
- Улюбленець живе на фіксованій доріжці нульового розміру і завжди пише лише CSS-властивість transform, тож розмітка вашої сторінки ніколи не змінюється.
- Прокрутку слухають пасивно, і вона згортається в один запис на кадр анімації.
- Один перемикач миттєво прибирає улюбленця з усіх відкритих вкладок.
Ніщо з цього не хвастощі — це мінімум. Річ, єдина робота якої — приємно виглядати, не має жодного права щось сповільнювати.
Подивитися на собаку