плагин собираю с помощью cfx
по этому туториалу https://developer.mozilla.org/en-US/Add … stallation , https://developer.mozilla.org/en-US/Add … ng_started

как вызвать функцию в "myplugin\lib\main.js" из скриптов расположенных в "myplugin\data\" ?

В плагинах под chromium была конструкция:
В скрипте бекграудна (с доступом к фичам браузера) была функция приемник:

Выделить код

Код:

chrome.extension.onRequest.addListener(function (request, sender, callback) {
    var action = request.action;
    if (action == 'download_from_vk') {
        chrome.downloads.download({ url: request.url, saveAs: false, filename: request.name });
        returnMessage(request.message);
    }
}

Из локальных (под каждую страницу свой) скриптов обращался к функции так

Выделить код

Код:

chrome.extension.sendRequest({action: 'download_from_vk', url: url, name: name});

Нужен аналогичный код для firefox

Нашел экспорт функций из скриптов "myplugin\data\" в "myplugin\lib\main.js"

SomeScriptInFolderData.js:

Выделить код

Код:

exports.ExportFunctionName = FunctionName;

main.js:

Выделить код

Код:

SomeScriptInFolderData.ExportFunctionName();

Как провернуть то же самое в обратном направлении?

Разобрался

Для общения между скриптами, например lib\main.js и data\my-script.js
используется "port"
content-scripting-events.png
Как это работает - https://developer.mozilla.org/en-US/Add … using_port