mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-17 23:08:33 +02:00
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:
2
embedded-webextension-overlay/chrome.manifest
Normal file
2
embedded-webextension-overlay/chrome.manifest
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
content my-overlay-addon content/
|
||||||
|
overlay chrome://browser/content/browser.xul chrome://my-overlay-addon/content/overlay.xul
|
||||||
31
embedded-webextension-overlay/content/init.js
Normal file
31
embedded-webextension-overlay/content/init.js
Normal 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`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
4
embedded-webextension-overlay/content/overlay.xul
Normal file
4
embedded-webextension-overlay/content/overlay.xul
Normal 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>
|
||||||
23
embedded-webextension-overlay/install.rdf
Normal file
23
embedded-webextension-overlay/install.rdf
Normal 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>
|
||||||
3
embedded-webextension-overlay/webextension/background.js
Normal file
3
embedded-webextension-overlay/webextension/background.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
console.log("Embedded WebExtension", window.location.href);
|
||||||
|
|
||||||
|
browser.runtime.sendMessage("embedded_webext -> overlay addon container");
|
||||||
10
embedded-webextension-overlay/webextension/manifest.json
Normal file
10
embedded-webextension-overlay/webextension/manifest.json
Normal 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"]
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user