Дайте мне посмотреть, понимаю ли я вопрос.
Вам потребуется добавить в ваш манифест сценария контента разрешение на доступ к той странице, на которой есть iframe. После этого вы используете Сценарии содержимого и Передача сообщений для передачи данных в этот iframe.
В приведенном выше примере вам нужно внедрить скрипт содержимого, поэтому в вашем манифесте:
"content_scripts": [{
"matches": ["https://www.my.injected.url/*"],
"js": ["injected_script_that_has_the_iframe.js"],
"run_at": "document_end",
"all_frames": true
}]
Затем в этом скрипте контента вы можете сделать обычный JavaScript для установки URL:
document.getElementById("link").src= someURL;
Теперь, откуда этот URL? Это идет от вашего расширения? Если это так, используйте Message Passing, чтобы запросить это.
chrome.extension.sendRequest({method: "GetURL"}, function(response) {
document.getElementById("link").src= response.url;
});
А на вашей фоновой странице вы слушаете запросы, приходящие с вашей фоновой страницы:
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "GetURL")
sendResponse({url: "http://rim.com"});
else
sendResponse({}); // snub them.
});
Напомним, что ваш скрипт контента запрашивает ваше расширение (фоновую страницу), что такое URL, и как только он получает ответ, он обновляет iframe.