Делаем Chrome extenstion

Часть 1. Пишем манифест

Манифест хранится в файле manifest.json

browser_action
Здесь нужно указать файл html с главной точкой входа

content_scripts
Здесь указываются пути до сценариев и разрешается возможность выполнения

web_accessible_resources
...

permissions
Здесь перечисляются возможности использования нашего дополнения

Часть 2. Храним состояние

chrome.storage.local
Используя API расширений можно хранить состояние в специальной памяти chrome.storage.local, API которой отличается от привычных Local/Session Storageю 

Часть 3. Проводим инъекцию в страницу

chrome.extension.getURL('page_transform.js')
Получить текст скрипта можно, предварительно получив его URL

chrome.tabs.executeScript
Для выполнения скрипта требуется явный вызов через функцию executeScript, предварительно разрешив tabs в манифесте.