Пиилю расширение под Хром. Расширение должно встраивать айфрейм (это не зловред, если что), который может посылать запросы на мой сервак. Если посылаю запрос из самого расширения, всё ок. Если из айфрейма, то, закономерно, иногда появляется ошибка mixed content. Как я могу "пробросить" канал между айфреймом, у которого мало полномочий и расширением, которое имеет все необходимые полномочия? Например, вызываю функцию из айфрейма, которая говорит расширению "чувак, сделай такой вот запрос", расширение делает своё грязное дело и присылает фрейму ответ сервера.
Вот временный говнокод встраивания айфрейма:
chrome.browserAction.onClicked.addListener(function(tab) {
var f = function(location) {
if(window.___searchExtensionFrame) {
if(document.body.contains(window.___searchExtensionFrame)) {
document.body.removeChild(window.___searchExtensionFrame);
} else {
document.body.appendChild(window.___searchExtensionFrame);
}
} else {
var iframe = window.___searchExtensionFrame = document.createElement('iframe');
document.body.appendChild(iframe);
iframe.src = location;
iframe.style.position= 'fixed';
iframe.style.top = 0
iframe.style.right = 0;
iframe.style.width = '400px';
iframe.style.height = '100%';
}
};
chrome.tabs.executeScript({
code: `(${f})("адрес встраиваемой страницы")`
});
});
Я могу из расширения вызвать код для айфрейма, с помощью chrome.tabs.executeScript, но как сделать наоборот?