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. Мой подход правильный?

0 ответов

Другие вопросы по тегам