API-интерфейс browser.runtime.connect не работает должным образом с Firefox для Android?
Я разрабатываю расширение для Firefox для Android, но поскольку API-интерфейсы с вкладками не поддерживаются в Firefox(Android), я использую следующий код. Он отлично работает в Firefox, но при портировании его на Firefox Android(версия 52) фоновые сообщения сценария не передаются в прослушиватель содержимого сценария.
// Код скрипта контента
var myPort = browser.runtime.connect({name:"port-from-cs"});
myPort.postMessage({greeting: "hello from content script"});
myPort.onMessage.addListener(function(m) {
console.log("In content script, received message from background script: ");
console.log(m.greeting);
});
// фоновый скрипт
var portFromCS;
function connected(p) {
portFromCS = p;
portFromCS.postMessage({greeting: "hi there content script!"});
portFromCS.onMessage.addListener(function(m) {
console.log("In background script, received message from content script")
console.log(m.greeting);
portFromCS.postMessage({greeting: "hi there content script!"});
});
}
browser.runtime.onConnect.addListener(connected);
// манифеста
{
"version": "0.1.5",
"content_scripts": [
{
"js": [
"js/myContentScript.js",
"js/lib/jquery-1.9.1.min.js"
],
"matches": [
"<all_urls>"
],
"run_at": "document_start"
}
],
"description": "xxx",
"manifest_version": 2,
"name": "xx",
"applications": {
"gecko": {
"id": "vpt@mozilla.org"
}
},
"permissions": [
"webRequest",
"notifications",
"http://*/",
"https://*/",
"storage",
"webRequestBlocking"
],
"background": {
"scripts": [
"js/background.js"
]
},
"web_accessible_resources": [
"xxx.js"
]
}
Сценарий содержимого передает сообщение в фоновый сценарий, но сообщения фонового сценария перехватываются слушателем portFromCS.onMessage. Мой подход правильный?