SlideShare une entreprise Scribd logo
1  sur  39
CHROME
EXTENSIONS
…ФИКСИМ МИР (РАБОТУ)
ПАША КЛИМЕНКОВ
СОФТ МОГ БЫ БЫТЬ И
ПОЛУЧШЕ
ФИКСИМ МИР
ЧТО ТАКОЕ ЭКСТЕНШН
Вэб приложение, в котором есть
хотя бы:
• manifest.json
• любаяПолезность.js
MANIFEST.JSON
ПОЛЕЗНАЯ НАГРУЗКА.JS
• background page
• content script
• popup
• devtools panel
ВИД СО СТОРОНЫ
ПРИМЕР:
ПРЕПРОЦЕССИМ БАГ-РЕПОРТЫ
СТАНДАРТНЫЙ (НЕ ВЕСЬ!)
КУСОК РЕПОРТА:
Я СЛИШКОМ СТАР, ЧТОБЫ:
• Искать user agent
• Парсить json в уме
• Переводить миллисекунды в time
span
• Находить символ в ужатой строке
по номеру столбца
А ВОТ CONTENT SCRIPT
МОЖЕТ ЭТО ПОДПРАВИТЬ
manifest.json
ВООБЩЕ ВСЁ ОСТАЛЬНОЕ +
СВИСТЕЛКИ И АРОМАТИЗАТОРЫ
ГДЕ УСТАНАВЛИВАТЬ
КАК ДЕБАГИТЬ?
Просто вставить debugger;
ТА-ДАААМ!
BACKGROUND PAGE
ПОЛНЫЙ ДОСТУП К API
(ПО ПЕРМИШЕНАМ)
WebRequest
Browser, PageAction
TextToSpeech
Popups, Notifications
ContextMenus
OmniBox
System.CPU, Memory
Tabs
ПРИМЕР:
БРАУЗЕРНЫЙ РЕДИРЕКТ
ДАНО:
• Одностраничное приложение
• Базы клиентов распределены группами по
серверам
• Иногда хочется дебагить локальные сырцы
но с удаленными данными
• Серверный редирект – дорого
РЕШАЕМ ЧЕРЕЗ:
• webRequest API
• background.js
• page action
• popup window
MANIFEST.JSON
BACKGROUND:
ДОБАВИТЬ PAGE ACTION
BACKGROUND PAGE:
ПЕРЕХВАТ ЗАПРОСОВ
PAGE ACTION + POPUP:
ВКЛ/ВЫКЛ
И ВСЕ ВМЕСТЕ
КАК ДЕБАГИТЬ
BACKGROUND
КАК ДЕБАГИТЬ
POPUP
DEVTOOLS API
DEVTOOLS API МОГУТ
• общаться
• лазить в
• chrome.devtools.panels
• chrome.devtools.inspectedWindow
• chrome.devtools.network
ПРИМЕР:
DEVTOOLS NETWORK PANEL
ГЛАЗАМИ МЕНЯ
ЧТО НЕ ТАК
• Уйма запросов (RPC) к данным на
сервер
• На один XHR приходится 1..2000
RPC
• Мне интересны в первую очередь
RPC, а не XHR: параметры и
результат
ЧТО МОЖЕТ ПРЕДЛОЖИТЬ
NETWORK ПАНЕЛЬ
NETWORK ПАНЕЛЬ МЕЧТЫ
MANIFEST.JSON
ПАНЕЛЬКА
devtools.html
devtools.js
И ВОТ ЧТО ТВОРИТСЯ
НА САМОМ ДЕЛЕ
КИЛЛЕР ФИЧА – ПРЕВЬЮ
ЗАПРОСОВ И ОТВЕТОВ 
ВСЁ
Вопросы? Что-нибудь простое
/pasha.klimenkov

Contenu connexe

Tendances

PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
pgdayrussia
 
the workflow of a systems administrator
the workflow of a systems administratorthe workflow of a systems administrator
the workflow of a systems administrator
Andrew Pantyukhin
 

Tendances (20)

TextPlan.ru
TextPlan.ruTextPlan.ru
TextPlan.ru
 
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил ТюринPG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
PG Day'14 Russia, PostgreSQL в avito.ru, Михаил Тюрин
 
Эссе по теме браузеры
Эссе по теме браузерыЭссе по теме браузеры
Эссе по теме браузеры
 
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественноИлья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
Илья Аблеев – Zabbix в Badoo: реагируем быстро и качественно
 
Антон Забанных, Роман Иванов "Яндекс.Почта"
Антон Забанных, Роман Иванов "Яндекс.Почта"Антон Забанных, Роман Иванов "Яндекс.Почта"
Антон Забанных, Роман Иванов "Яндекс.Почта"
 
gtt1
gtt1gtt1
gtt1
 
Chrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработкаChrome push notifications. Анатомия и разработка
Chrome push notifications. Анатомия и разработка
 
Андрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данныхАндрей Денисов – В ожидании мониторинга баз данных
Андрей Денисов – В ожидании мониторинга баз данных
 
мой любимый браузер
мой любимый браузермой любимый браузер
мой любимый браузер
 
Топ-3 браузеров
Топ-3 браузеровТоп-3 браузеров
Топ-3 браузеров
 
Install denwer
Install denwerInstall denwer
Install denwer
 
Alexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальшеAlexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальше
 
Browsers. Description
Browsers. DescriptionBrowsers. Description
Browsers. Description
 
Браузеры
БраузерыБраузеры
Браузеры
 
Mini-essay final
Mini-essay finalMini-essay final
Mini-essay final
 
Dive into Push Notifications
Dive into Push NotificationsDive into Push Notifications
Dive into Push Notifications
 
the workflow of a systems administrator
the workflow of a systems administratorthe workflow of a systems administrator
the workflow of a systems administrator
 
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
 
Best Browser
Best BrowserBest Browser
Best Browser
 
рейтинг браузеров
рейтинг браузероврейтинг браузеров
рейтинг браузеров
 

En vedette (6)

ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map WidgetsESRI Dev Meetup: Building Distributed JavaScript Map Widgets
ESRI Dev Meetup: Building Distributed JavaScript Map Widgets
 
Think php 10, parsing with PHP
Think php 10, parsing with PHPThink php 10, parsing with PHP
Think php 10, parsing with PHP
 
Google Chrome Extensions - DevFest09
Google Chrome Extensions - DevFest09Google Chrome Extensions - DevFest09
Google Chrome Extensions - DevFest09
 
Documents in JavaScript
Documents in JavaScriptDocuments in JavaScript
Documents in JavaScript
 
Web page load speed optimization
Web page load speed optimizationWeb page load speed optimization
Web page load speed optimization
 
Apostila com atividades de Libras
Apostila com atividades de LibrasApostila com atividades de Libras
Apostila com atividades de Libras
 

Similaire à Chrome Extensions

Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Alex Demchenko
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
Lev Panov
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
it-people
 

Similaire à Chrome Extensions (11)

Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)Symfony as the platform for open source projects (sympal, apostrophe, diem)
Symfony as the platform for open source projects (sympal, apostrophe, diem)
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥Макс Волошин: Php + shell = ♥
Макс Волошин: Php + shell = ♥
 
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
 
От пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лабораторииОт пояса с инструментами к полноценной лаборатории
От пояса с инструментами к полноценной лаборатории
 
course js day 1
course js day 1course js day 1
course js day 1
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
"Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно..."Девопс - это не только для программистов. Практические примеры из жизни одно...
"Девопс - это не только для программистов. Практические примеры из жизни одно...
 
Систематизация экспрешнов в IE
Систематизация экспрешнов в IEСистематизация экспрешнов в IE
Систематизация экспрешнов в IE
 

Plus de Pavel Klimiankou

Plus de Pavel Klimiankou (10)

Troubleshooting .net core on linux
Troubleshooting .net core on linuxTroubleshooting .net core on linux
Troubleshooting .net core on linux
 
Functional programming techniques in regular JavaScript
Functional programming techniques in regular JavaScriptFunctional programming techniques in regular JavaScript
Functional programming techniques in regular JavaScript
 
Приёмы функционального программирования в обычном JavaScript
Приёмы функционального программирования в обычном JavaScriptПриёмы функционального программирования в обычном JavaScript
Приёмы функционального программирования в обычном JavaScript
 
Browser APIs for data exchange: types and application
Browser APIs for data exchange: types and applicationBrowser APIs for data exchange: types and application
Browser APIs for data exchange: types and application
 
Браузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачемБраузерные API обмена данными: какие и зачем
Браузерные API обмена данными: какие и зачем
 
Кратчайшая история JavaScript
Кратчайшая история JavaScriptКратчайшая история JavaScript
Кратчайшая история JavaScript
 
What is Docker
What is DockerWhat is Docker
What is Docker
 
Что такое Docker
Что такое DockerЧто такое Docker
Что такое Docker
 
Game physics in JavaScript
Game physics in JavaScriptGame physics in JavaScript
Game physics in JavaScript
 
Игровая физика в JavaScript
Игровая физика в JavaScriptИгровая физика в JavaScript
Игровая физика в JavaScript
 

Dernier

Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 

Dernier (9)

Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 

Chrome Extensions