Первый способ, самый простой
В манифесте перечислить домены с которых можно подключаться:
"externally_connectable": {
"matches": ["https://somesites.com/*"]
}
В скриптах страницы теперь можно будет посылать сообщения этому расширению:
if(chrome && chrome.runtime && chrome.runtime.sendMessage){
var editorExtensionId = "уникальный идентификатор раширения";
chrome.runtime.sendMessage(editorExtensionId, {notification:"Some notification"});
}
Обработка сообщений в расширении:
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse) {
if (sender.url != "https://somesites.com")
return;
showNotification(request.notification);
});
Пример из официальной документации
Второй способ
Из контекста страницы можно посылать сообщения при помощи window.postMessage. Content script способен обрабатывать такие сообщения и далее передавать их в расширение.
Пример из официальной документации