SlideShare a Scribd company logo
Владимир Павлов

делаю kaknado.me

vladimir@kaknado.me
Пишем Google Extensions.
Начальный уровень
1
Что такое Google Extensions
https://developer.chrome.com/extensions
Google Extensions –  это мелкое ПО, которое модифицирует и
дополняет функционал браузера Chrome. Разрабатывается с
помощью web-технологий: HTML, JavaScript и CSS.
Google
 Mail
 Checker
2
Какие задачи можно решать
1. Влияние на содержимое web-страницы
«Резать» рекламу, выделять полезную информацию и т.п.
2. Уведомления
Примеры: почта, социальные сети и т.п.
3. Взаимодействие с пользователем
Примеры: Evernote, Pocket.
4. Инструменты-фишки
Скриншот страницы, линейка и т.п. для удобства.
Магазин расширений
https://chrome.google.com/webstore/category/extensions
3
Старт с Google Chrome 5
Сейчас версия 41
API определяет минимальную версию браузера.
https://developer.chrome.com/extensions/api_index
https://developer.chrome.com/extensions/whats_new
4
Какими бывают Google Extensions
Вариант №1
background
Вариант №2
page actions
Вариант №3
popup
5
Кнопка с
уведомлением
View
(Pop-up HTML)
Логика
(JS)
1
2 3
Не обязательно
Фундамент
6
Структура Google Extensions
7
manifest.json
Описывает весь проект
8
Структура Extensions
1. manifest.json
9
Структура Extensions
1. manifest.json
Название.

Описание.
Версии и т.п.
10
Структура Extensions
1. manifest.json
«Основное»
11
Структура Extensions
1. manifest.json  browser_action
Автозумирование
(BMP, GIF, ICO, JPEG, or PNG)
12
Структура Extensions
1. manifest.json  page_action
Автозумирование
(BMP, GIF, ICO, JPEG, or PNG)
13
Структура Extensions
1. manifest.json
Разрешения
14
Permissions
• host permissions
• background
• bookmarks
• clipboardRead
• clipboardWrite
• contentSettings
• contextMenus
• cookies
• debugger
• history
• idle
• management
• notifications
• pageCapture
• tabs
• topSites
• webNavigation
• webRequest
• webRequestBlocking
Доступ запрашивается
при установке.
Больше информации:
https://developer.chrome.com/extensions/permissions
15
Примеры
16
background
17
background.js – печатаем
chrome.browserAction.onClicked.addListener – срабатывает при нажатии
на иконку приложения.
Оно не сработает, если есть popup.html
chrome.tabs.update – изменяет свойство вкладки.
18
background.js – изменяем страницу
chrome.tabs.executeScript – добавление js-скрипта на страницу.
19
popup.html
Запускает скрипты при нажатии на расширение
20
popup.js
21
«С чистого листа. Шаг за шагом.»
22
Задача
Написать расширение Google Chrome,
которое показывает
сколько cookie изменяет страница.
23
Шаг №0:
Пустой проект
24
Шаг №1:
Прописываем
manifest.json
25
Задачи:
1. Отлавливать события:
– Обновление страницы.
– Переход между разными вкладками.
2. Отлавливать изменение cookie.
3. Написать сохранение данных.
4. Сделать функцию визуализации счетчика
у иконки расширения.
Шаг №2:
Отлов событий
27
Шаг №3:
Отлов cookie
28
Шаг №4:
Получение tabId
29
Шаг №5:
Сохранение.
30
Шаг №6:
При переходе.
31
Шаг №7:
Тестирование.
32
Шаг №8:
Работает!
33

More Related Content

What's hot

Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методикиДмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
Octopus Events
 
Как сделать различные ссылки в статье на блоге
Как сделать различные ссылки в статье на блогеКак сделать различные ссылки в статье на блоге
Как сделать различные ссылки в статье на блоге
MLMproekt.RU
 
Аудит Anti stress.top
Аудит Anti stress.topАудит Anti stress.top
Аудит Anti stress.top
kostetskiy
 
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
Академия интернет-маркетинга «WebPromoExperts»
 
Psi plus
Psi plusPsi plus
Psi plus
Roman Teplov
 
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
Eugene Trofimenko
 
Занятие 1 Основы PowerPoint
Занятие 1 Основы PowerPointЗанятие 1 Основы PowerPoint
Занятие 1 Основы PowerPoint
Николай Колдовский
 
Экспресс-аудит сайта Agrotechnosouz
Экспресс-аудит сайта AgrotechnosouzЭкспресс-аудит сайта Agrotechnosouz
Экспресс-аудит сайта Agrotechnosouz
Антон Гладкий
 
Gadjet bm v
Gadjet bm vGadjet bm v
Gadjet bm vRC
 
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
Тарасов Константин
 
шпаргалка для начинающего блоггера
шпаргалка для начинающего блоггерашпаргалка для начинающего блоггера
шпаргалка для начинающего блоггера
Ирина Викторовна Топчий
 
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEO
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEOМихаил Шакин - Применение web 2.0 блогов в англоязычном SEO
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEO
NaZapad
 
7 простых способов увеличить трафик интернет магазина
7 простых способов увеличить трафик интернет магазина7 простых способов увеличить трафик интернет магазина
7 простых способов увеличить трафик интернет магазинаPromodo
 
Катерина Золотарева: SEO итоги 2015 / тренды 2016
Катерина Золотарева: SEO итоги 2015 / тренды 2016 Катерина Золотарева: SEO итоги 2015 / тренды 2016
Катерина Золотарева: SEO итоги 2015 / тренды 2016
Alexander Rys
 

What's hot (17)

Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методикиДмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
Дмитрий Мазурян. Конкурентный шпионаж. Нестандартные методики
 
Как сделать различные ссылки в статье на блоге
Как сделать различные ссылки в статье на блогеКак сделать различные ссылки в статье на блоге
Как сделать различные ссылки в статье на блоге
 
Аудит Anti stress.top
Аудит Anti stress.topАудит Anti stress.top
Аудит Anti stress.top
 
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
5 примеров эффективного внедрения web push уведомлений. Вебинар WebPromoExper...
 
Psi plus
Psi plusPsi plus
Psi plus
 
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
Техника и тактика работы с поисковиком и посетителем / Евгений Трофименко 14 ...
 
Занятие 1 Основы PowerPoint
Занятие 1 Основы PowerPointЗанятие 1 Основы PowerPoint
Занятие 1 Основы PowerPoint
 
Экспресс-аудит сайта Agrotechnosouz
Экспресс-аудит сайта AgrotechnosouzЭкспресс-аудит сайта Agrotechnosouz
Экспресс-аудит сайта Agrotechnosouz
 
Gadjet bm v
Gadjet bm vGadjet bm v
Gadjet bm v
 
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
РИФ 2016, Боты в помощь контент-менеджеру или как автоматизировать загрузку к...
 
шпаргалка для начинающего блоггера
шпаргалка для начинающего блоггерашпаргалка для начинающего блоггера
шпаргалка для начинающего блоггера
 
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEO
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEOМихаил Шакин - Применение web 2.0 блогов в англоязычном SEO
Михаил Шакин - Применение web 2.0 блогов в англоязычном SEO
 
Блоги. Ч.2: Blogger
Блоги. Ч.2: BloggerБлоги. Ч.2: Blogger
Блоги. Ч.2: Blogger
 
модуль 1
модуль 1модуль 1
модуль 1
 
7 простых способов увеличить трафик интернет магазина
7 простых способов увеличить трафик интернет магазина7 простых способов увеличить трафик интернет магазина
7 простых способов увеличить трафик интернет магазина
 
Катерина Золотарева: SEO итоги 2015 / тренды 2016
Катерина Золотарева: SEO итоги 2015 / тренды 2016 Катерина Золотарева: SEO итоги 2015 / тренды 2016
Катерина Золотарева: SEO итоги 2015 / тренды 2016
 
Urok 7
Urok 7Urok 7
Urok 7
 

Similar to Пишем Google Extensions. Начальный уровень

Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Fwdays
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
chaykaborya
 
Как создать сайт за 2 часа? (Wordpress)
Как создать сайт за 2 часа? (Wordpress)Как создать сайт за 2 часа? (Wordpress)
Как создать сайт за 2 часа? (Wordpress)
Oleksii Prohonnyi
 
грунский алексей. практика разработки по стандарту Wcag 2.0
грунский алексей. практика разработки по  стандарту Wcag 2.0грунский алексей. практика разработки по  стандарту Wcag 2.0
грунский алексей. практика разработки по стандарту Wcag 2.0
elenae00
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработка
Alexandr Mikhaylenko
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
GeeksLab Odessa
 
презентация сайтостроение
презентация сайтостроениепрезентация сайтостроение
презентация сайтостроение
Palados
 
Ошибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений КонцевойОшибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений Концевой
Леонид Гроховский
 
Разработка расширений Firefox
Разработка расширений FirefoxРазработка расширений Firefox
Разработка расширений FirefoxAlex Tumanoff
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
vovasik
 
Web сайт - гиперструктура данных
Web сайт - гиперструктура данныхWeb сайт - гиперструктура данных
Web сайт - гиперструктура данныхЕлена Ключева
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
GoIT
 
Социальные сервисы
Социальные сервисыСоциальные сервисы
Социальные сервисы
Ludmila Ульева
 
Глеб Белогорцев - РИФ 2010
Глеб Белогорцев - РИФ 2010Глеб Белогорцев - РИФ 2010
Глеб Белогорцев - РИФ 2010
belgleb
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкция
i20 Group
 
Как стать электронной компанией в Спб. Часть 3
Как стать электронной компанией в Спб. Часть 3Как стать электронной компанией в Спб. Часть 3
Как стать электронной компанией в Спб. Часть 3
GooVape
 
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»Клуб Интернет-Маркетологов
 
Oasisfun
OasisfunOasisfun
Oasisfun
Kapads Kapads
 

Similar to Пишем Google Extensions. Начальный уровень (20)

Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
Сергей Мелашич "Настройка SEO для одностраничных web-приложений на Angular"
 
WEB
WEBWEB
WEB
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
Как создать сайт за 2 часа? (Wordpress)
Как создать сайт за 2 часа? (Wordpress)Как создать сайт за 2 часа? (Wordpress)
Как создать сайт за 2 часа? (Wordpress)
 
грунский алексей. практика разработки по стандарту Wcag 2.0
грунский алексей. практика разработки по  стандарту Wcag 2.0грунский алексей. практика разработки по  стандарту Wcag 2.0
грунский алексей. практика разработки по стандарту Wcag 2.0
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработка
 
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
WebCamp:Front-end Developers Day. Александр Михайленко "Обзор библиотек и кан...
 
презентация сайтостроение
презентация сайтостроениепрезентация сайтостроение
презентация сайтостроение
 
Ошибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений КонцевойОшибки в разработке интернет-магазинов - Евгений Концевой
Ошибки в разработке интернет-магазинов - Евгений Концевой
 
Разработка расширений Firefox
Разработка расширений FirefoxРазработка расширений Firefox
Разработка расширений Firefox
 
Как быть с большими сайтами на Word press
Как быть с большими сайтами  на Word pressКак быть с большими сайтами  на Word press
Как быть с большими сайтами на Word press
 
Faq2 online-business-master
Faq2 online-business-masterFaq2 online-business-master
Faq2 online-business-master
 
Web сайт - гиперструктура данных
Web сайт - гиперструктура данныхWeb сайт - гиперструктура данных
Web сайт - гиперструктура данных
 
Виды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спроститьВиды QA: Всё что вы не знали и боялись спростить
Виды QA: Всё что вы не знали и боялись спростить
 
Социальные сервисы
Социальные сервисыСоциальные сервисы
Социальные сервисы
 
Глеб Белогорцев - РИФ 2010
Глеб Белогорцев - РИФ 2010Глеб Белогорцев - РИФ 2010
Глеб Белогорцев - РИФ 2010
 
Виджет amoCRM. Инструкция
Виджет amoCRM. ИнструкцияВиджет amoCRM. Инструкция
Виджет amoCRM. Инструкция
 
Как стать электронной компанией в Спб. Часть 3
Как стать электронной компанией в Спб. Часть 3Как стать электронной компанией в Спб. Часть 3
Как стать электронной компанией в Спб. Часть 3
 
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»
Анастасия Пареха «Решение маркетинговых задач посредством Wordpress»
 
Oasisfun
OasisfunOasisfun
Oasisfun
 

More from oelifantiev

Медиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTCМедиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTC
oelifantiev
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секунд
oelifantiev
 
ES6. Генераторы
ES6. ГенераторыES6. Генераторы
ES6. Генераторы
oelifantiev
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибок
oelifantiev
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...
oelifantiev
 
Yarfrontend #2. Useful services
Yarfrontend #2. Useful servicesYarfrontend #2. Useful services
Yarfrontend #2. Useful services
oelifantiev
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
oelifantiev
 
Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах. Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах.
oelifantiev
 
Основы Git
Основы GitОсновы Git
Основы Git
oelifantiev
 
Облачные технологии и виртуализация
Облачные технологии и виртуализацияОблачные технологии и виртуализация
Облачные технологии и виртуализацияoelifantiev
 

More from oelifantiev (10)

Медиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTCМедиавозможности HTML5. WebRTC
Медиавозможности HTML5. WebRTC
 
От 40 до 2 секунд
От 40 до 2 секундОт 40 до 2 секунд
От 40 до 2 секунд
 
ES6. Генераторы
ES6. ГенераторыES6. Генераторы
ES6. Генераторы
 
Нетривиальная обработка ошибок
Нетривиальная обработка ошибокНетривиальная обработка ошибок
Нетривиальная обработка ошибок
 
Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...Yarfrontend #2. Как мы делали гуя...
Yarfrontend #2. Как мы делали гуя...
 
Yarfrontend #2. Useful services
Yarfrontend #2. Useful servicesYarfrontend #2. Useful services
Yarfrontend #2. Useful services
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах. Tessel. JavaScript на реальных устройствах.
Tessel. JavaScript на реальных устройствах.
 
Основы Git
Основы GitОсновы Git
Основы Git
 
Облачные технологии и виртуализация
Облачные технологии и виртуализацияОблачные технологии и виртуализация
Облачные технологии и виртуализация
 

Пишем Google Extensions. Начальный уровень