Итак, внутри Firefox есть WebRTC, и есть удобный класс для обеспечения возможности RTC-коммуникации, называемый RTCPeerConnection, который может быть создан и использован из приложения JavaScript. Вы можете найти достойный пример этого на [1].
И вот я со своим таможенным транспортом (если вам интересно — [2]) хотел бы использовать его для связи RTC. Вкратце, мне нужно «заменить» транспортный уровень движка WebRTC моим пользовательским транспортом, в то же время предоставив пользователю такой же RTCPeerConnection-подобный интерфейс JavaScript. И желательно, это не должно выглядеть как пользовательская сборка Firefox (без патчей).
Итак, я пришел к идее расширения, которое будет написано на C ++ (поскольку оно должно быть связано с библиотекой WebRTC и моей настраиваемой транспортной библиотекой) и каким-то образом предоставит свой интерфейс Javascript. И я нашел XPCOM, который, как я думал, может дать мне это.
Поэтому я начал бороться с устаревшей и скудной информацией по этой теме, и после 3-х дней борьбы наконец-то закончил со встроенным дополнением. К сожалению, я не могу получить к нему доступ из Javascript из-за ошибки Javascript «Components.classes is undefined». И кажется, что нет никакого способа получить к нему доступ вообще. Или я в этом не прав?
Вот Javascript:
function check()
{
console.debug("checking...");
const {Cc,Ci,Cu} = require("chrome");
var rtc = Components.classes["@named-data.net/ndnrtc;1"].createInstance();
rtc = rtc.QueryInterface(Ci.ndINrtc);
console.debug("rtc: "+rtc);
}
Мой компонент видимый с XPCOM Viewer аддон и код выше я может выполнить в консоли пока пустая страница открыт в Firefox.
Учитывая все это, я хотел бы спросить экспертов Firefox о возможных подходах, которые я могу использовать, чтобы реализовать мою идею.
заранее спасибо
Наконец, я нашел одно возможное решение для этого и описать его в моем сообщение
Других решений пока нет …