Yes, it is possible to interact with other add-ons, given the right circumstances.
My test case will be com.googlecode.sqlitemanager.openInOwnWindow(), which is part of the SqliteManageraddon .
( Nightly) . , com.googlecode.sqlitemanager.openInOwnWindow() .
( WebDev Chrome, , "about: newtab" ). , . , , : var bwin = Services.wm.getMostRecentWindow("navigator:browser"); bwin.com.googlecode.sqlitemanager.openInOwnWindow()
-. Scratchpad Chrome " ". com.googlecode.sqlitemanager.openInOwnWindow() Scratchpad .
, , .
.
/SDK-: XPIProvider.jsm ( ) ( bootstrap.js) XPIProvider.bootstrapScopes[addonID] ( , , SDK).
: , . , , , , , . ( ) JS- . (, AdBlock Plus require() - , SDK , )...
, .
: , , , , - mozilla
chrome js:
var myExtension = {
myListener: function(evt) {
IprPreferences.setFreshIpStatus(true);
}
}
document.addEventListener("MyExtensionEvent", function(e) { myExtension.myListener(e); }, false, true);
-:
var element = document.createElement("MyExtensionDataElement");
element.setAttribute("attribute1", "foobar");
element.setAttribute("attribute2", "hello world");
document.documentElement.appendChild(element);
var evt = document.createEvent("Events");
evt.initEvent("MyExtensionEvent", true, false);
element.dispatchEvent(evt);