Example: embedded webextension overlay (#249)

* Simple Legacy Overlay Addon with an Embedded WebExtension.

* fix: fixed eslint errors on embedded-webextension-overlay example
This commit is contained in:
Luca Greco
2017-07-20 00:10:26 +02:00
committed by wbamberg
parent 7b6b03a72c
commit a7ec907b88
6 changed files with 73 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
content my-overlay-addon content/
overlay chrome://browser/content/browser.xul chrome://my-overlay-addon/content/overlay.xul

View File

@@ -0,0 +1,31 @@
/* globals Components, dump */
{
const addonId = "my-overlay-addon@me";
const {
AddonManager,
} = Components.utils.import("resource://gre/modules/AddonManager.jsm", {});
AddonManager.getAddonByID(addonId, addon => {
const baseURI = addon.getResourceURI("/");
const {
LegacyExtensionsUtils,
} = Components.utils.import("resource://gre/modules/LegacyExtensionsUtils.jsm");
const myOverlayEmbeddedWebExtension = LegacyExtensionsUtils.getEmbeddedExtensionFor({
id: addonId, resourceURI: baseURI,
});
myOverlayEmbeddedWebExtension.startup().then(({browser}) => {
dump(`${addonId} - embedded webext started\n`);
browser.runtime.onMessage.addListener(msg => {
dump(`${addonId} - received message from embedded webext ${msg}\n`);
});
}).catch(err => {
Components.utils.reportError(
`${addonId} - embedded webext startup failed: ${err.message} ${err.stack}\n`
);
});
});
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0"?>
<overlay id="myOverlayAddon" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://my-overlay-addon/content/init.js"></script>
</overlay>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>my-overlay-addon@me</em:id>
<em:version>1.0.1</em:version>
<em:name>My Legacy Overlay Addon</em:name>
<em:type>2</em:type>
<em:multiprocessCompatible>true</em:multiprocessCompatible>
<em:targetApplication>
<Description>
<!-- firefox -->
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>51.0</em:minVersion>
<em:maxVersion>*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>

View File

@@ -0,0 +1,3 @@
console.log("Embedded WebExtension", window.location.href);
browser.runtime.sendMessage("embedded_webext -> overlay addon container");

View File

@@ -0,0 +1,10 @@
{
"manifest_version": 2,
"name": "Overlay Addon WebExtension",
"version": "1.0.1",
"description": "test embedding a webextension in a legacy overlay addon",
"background": {
"scripts": ["background.js"]
}
}