debugging-with-ChromeDevTools
Основы отладки простых расширений с помощью Chrome DevTools
Даже самые простые расширения могут содержать ошибки. Chrome DevTools – ваш лучший друг для поиска и исправления этих ошибок. В Модуле 5 мы подробно рассмотрим DevTools, но для начала давайте освоим базовые приемы отладки для простых расширений.
Основные инструменты DevTools для отладки:
-
Console (Консоль):
- Описание: Отображает сообщения об ошибках, предупреждения, а также вывод
console.log()
. - Использование:
- Проверка ошибок: Консоль покажет JavaScript ошибки, которые возникают в вашем расширении. Внимательно читайте сообщения об ошибках, они часто указывают на место и причину проблемы.
- Вывод отладочной информации: Используйте
console.log("Сообщение", переменная)
в вашем JavaScript коде, чтобы выводить значения переменных, проверять, выполняется ли код в нужных местах, и отслеживать ход выполнения программы.
- Описание: Отображает сообщения об ошибках, предупреждения, а также вывод
-
Sources (Источники):
- Описание: Позволяет просматривать исходный код вашего расширения (HTML, CSS, JavaScript файлы).
- Использование:
- Просмотр кода: Убедитесь, что код, который вы написали, правильно загружается и выполняется.
- Установка точек останова (breakpoints): Кликните на номер строки в JavaScript файле, чтобы установить точку останова. Когда выполнение кода дойдет до этой строки, выполнение остановится, и вы сможете пошагово изучить значения переменных и состояние программы.
- Пошаговое выполнение кода: Используйте кнопки "Step over next function call" (F10), "Step into next function call" (F11), "Step out of current function call" (Shift+F11) для пошагового выполнения кода и отслеживания его работы.
Как открыть DevTools для расширения:
-
Для всплывающего окна:
- Откройте всплывающее окно расширения, нажав на иконку в панели инструментов.
- Щелкните правой кнопкой мыши внутри всплывающего окна.
- Выберите "Просмотреть код" (Inspect).
-
Для фонового скрипта (сервис-воркера):
- Перейдите на страницу
chrome://extensions/
. - Найдите ваше расширение и нажмите "Подробнее".
- Найдите раздел "Инспектировать представления" (Inspect views) и нажмите ссылку "Сервисная страница" (Service worker page).
- Перейдите на страницу
Простой пример отладки:
Предположим, у вас есть расширение, которое должно менять цвет фона страницы, но оно не работает.
Код popup.js
(с ошибкой):
document.addEventListener('DOMContentLoaded', function() {
const changeColorBtn = document.getElementById('changeColorBtn');
changeColorBtn.addEventListener('click', function() {
chrome.scripting.executeScript({
function: changeBackgroundColor
});
});
});
function changeBackgroundColor() {
const randomColor = '#' + Math.floor(Math.random()*16777215).toString(16);
document.body.style.backgroudColor = randomColor; // Ошибка: опечатка в "backgroundColor"
}
Шаги отладки:
- Загрузите расширение в Chrome.
- Откройте DevTools для всплывающего окна.
- Нажмите на иконку расширения и кнопку "Сменить цвет фона".
- Перейдите на вкладку Console. Вы должны увидеть сообщение об ошибке, например: "Uncaught TypeError: Cannot set property 'backgroudColor' of undefined".
- Ошибка указывает на проблему в функции
changeBackgroundColor
и свойствеbackgroudColor
. - Перейдите на вкладку Sources и откройте файл
popup.js
. - Просмотрите код функции
changeBackgroundColor
. Вы заметите опечатку:document.body.style.backgroudColor
вместоdocument.body.style.backgroundColor
. - Исправьте опечатку в коде.
- Перезагрузите расширение на странице
chrome://extensions/
. - Повторите шаги 3 и 4. Ошибка должна исчезнуть, и цвет фона страницы должен меняться.
Практическое задание:
- Скопируйте код
popup.js
с ошибкой (опечаткой вbackgroundColor
) в расширение "Смена фона" из Модуля 2. - Отладьте расширение, используя Chrome DevTools и вкладку Console, чтобы найти и исправить ошибку.
- Добавьте
console.log()
в разные места кодаpopup.js
(например, в начале функцииchangeBackgroundColor
, после генерацииrandomColor
) и посмотрите, как эти сообщения отображаются в Console. - Установите точку останова на строке
document.body.style.backgroudColor = randomColor;
в Sources и пошагово выполните код, чтобы увидеть значения переменных.
5. Поиск и использование бесплатных иконок и ресурсов для расширений.
Визуальное оформление расширения играет важную роль. Качественные иконки делают расширение более привлекательным и профессиональным. К счастью, существует множество ресурсов, где можно найти бесплатные иконки и другие графические элементы для ваших расширений.
Ресурсы для поиска бесплатных иконок:
- Flaticon: Огромная база векторных иконок в различных стилях. Многие иконки доступны бесплатно (с указанием авторства).
- Iconfinder: Еще один большой ресурс с иконками. Есть как бесплатные, так и платные варианты. Фильтруйте поиск по "Free" для бесплатных иконок.
- The Noun Project: Библиотека иконок, ориентированная на символы и пиктограммы. Многие иконки бесплатны (с указанием авторства).
- Icons8: Большая коллекция иконок, иллюстраций, фотографий и музыки. Бесплатный тарифный план с ограничениями.
- Material Design Icons: Набор иконок в стиле Material Design от Google. Бесплатные и с открытым исходным кодом.
- Font Awesome: Популярный набор векторных иконок, которые можно использовать как шрифты или SVG. Бесплатная версия доступна.
Советы по выбору иконок:
- Размер и формат: Для расширений Chrome обычно используются иконки в формате PNG размерами 16x16, 32x32, 48x48, 128x128 пикселей. Убедитесь, что выбранные иконки доступны в нужных размерах или их можно легко масштабировать.
- Стиль: Выберите иконки, которые соответствуют стилю вашего расширения и общей стилистике Chrome.
- Цвет: Иконки должны быть хорошо видны на светлом и темном фоне панели инструментов Chrome. Рассмотрите использование прозрачного фона.
- Лицензия: Внимательно читайте лицензию на использование иконок. Большинство бесплатных ресурсов требуют указания авторства (упоминания автора и ресурса в описании расширения или в файле
README
).
Как использовать иконки в расширении:
- Скачайте иконки: Найдите подходящие иконки на одном из ресурсов, скачайте их в формате PNG и нужных размерах.
- Создайте папку
images
: В папке вашего расширения создайте папку с названиемimages
. - Поместите иконки в папку
images
: Скопируйте скачанные иконки в папкуimages
и переименуйте их в соответствии с размерами (например,icon16.png
,icon48.png
,icon128.png
). - Укажите пути к иконкам в
manifest.json
: В секциях"action"
(default_icon
) и"icons"
файлаmanifest.json
укажите пути к вашим иконкам относительно папкиimages
. (Примеры уже были в теме 1).
Другие бесплатные ресурсы:
- Бесплатные изображения и иллюстрации: Unsplash, Pexels, Pixabay – для фоновых изображений, иллюстраций для всплывающих окон или страниц настроек (если необходимо).
- Бесплатные шрифты: Google Fonts, Font Squirrel – для улучшения типографики в UI расширения.
- Бесплатные звуки и музыка: Freesound, Bensound – для звуковых эффектов или фоновой музыки (если применимо).
Практическое задание:
- Найдите набор бесплатных иконок для расширения "Привет, мир!" на Flaticon или Iconfinder.
- Скачайте иконки разных размеров (16x16, 48x48, 128x128) в формате PNG.
- Создайте папку
images
в папке расширения и поместите туда иконки. - Обновите
manifest.json
расширения "Привет, мир!", указав пути к новым иконкам в секциях"action"
и"icons"
. - Обновите расширение в Chrome и проверьте, что иконка расширения изменилась.