複雑な Chrome 拡張機能を Firefox アドオンに変換するのに問題があります。Chrome 拡張機能では、作成者は次のようないくつかの Chrome API を使用します。
chrome.extension.sendMessage
chrome.browserAction.setIcon
webkitNotifications.createNotification
chrome.tabs.sendMessage
chrome.extension.onMessage.addListener
chrome.browserAction.onClicked.addListener
chrome.privacy.services.autofillEnabled.get
chrome.runtime.onInstalled.addListener
chrome.tabs.query
localStorage
等々。
これらのメソッドを Firefox アドオン コードに実装する方法がわかりません。これらの API の一部は、コールバック関数で呼び出すことができます。例えば:
chrome.extension.sendMessage ( {
type: "get.identitieswithurl",
originUrl: lgmIdentitySave.originUrl,
actionUrl: lgmIdentitySave.actionUrl
},
function (resultIdentities) {
if(resultIdentities != null && resultIdentities.length > 0) {
lgmIdentitiesPage = resultIdentities;
fillFormsWithCredential(resultIdentities[0]);
if(resultIdentities.length > 1 && lgmSuggestionSelectIdDismissed == false) {
showSelectIdentitySuggestionBar();
}
}
}
);
この質問から、Firefox のコードは次のように書けることがわかりました。
// main add-on script
pageMod.PageMod({
include: "*.org",
contentScriptFile: self.data.url("my-script.js"),
// Send the content script a message inside onAttach
onAttach: function (worker) {
worker.port.emit("replacePage", "Page matches ruleset");
}
});
しかし、コールバック関数を追加する方法はまだわかりません。