mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +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