Моему веб-приложению нужен доступ к UDP-сокетам, которые веб-интерфейс не поддерживает, предположительно из соображений безопасности. Я решил создать расширение chrome, которое пользователи должны установить для использования моего веб-приложения, конечно, делая это на свой страх и риск.
Идея состоит в том, чтобы мое расширение открывало пользовательские API-интерфейсы сокетов UDP с помощью добавление глобальной переменной, такой как myExtension.udpSockets
, на веб-страницы. Веб-страница может проверить, что window.myExtension
существует в первую очередь (расширение установлено), прежде чем пытаться получить доступ к моему API сокета UDP.
Когда веб-страница получает доступ к моему API сокета UDP, я создам всплывающее окно, чтобы убедиться, что пользователь хотел бы предоставить этой веб-странице доступ к сокетам UDP и указать последствия для безопасности.
В настоящее время у меня есть код в скрипте содержимого, например,
function createUDPSocket() {
// use chrome API
console.log("Creating a UDP socket!");
}
Я знаю, что могу ввести JavaScript в веб-страницу, изменив DOM.
document.createElement("script");
// etc.
Но как я могу представить свой API на этой веб-странице? Они находятся в отдельных JS контекстах, так что это не сработает. Есть ли какой-то способ связи между ними?
Edt: Кажется, я ищу что-то похожее на exportFunction
в Firefox расширениях .