создать манифест с background.js и content.js.
Используйте
chrome.tabs.sendMessage(tabId, {}, function() { ... });
в фоновом режиме для отправки сообщений в скрипт контента, который внедряется в каждую веб-страницу, которая открывается, когда расширение установлено и включено.
В скрипте content.js используйте
chrome.runtime.onMessage.addListener(function(req, sender, callback) {
< here use condition to find out when this exetnsion's popup.html should be opened and call the callback function which was passed in the argument list intially >
callback("something");
});
Здесь функция обратного вызова определяется в background.js и передается в content.js - код для открытия нового окна расширения, такого как
var panel_props = {
type: 'panel',
'width': width,
'height': height,
'left': left,
'top': top,
url: "chrome-extension://" + <extensionid>+ "/index.html"
}
chrome.windows.create(panel_props ,function (newWindow) {
vid = newWindow.id;
});