From b0e8ec699351b5e0bf1564595f9064737135f53f Mon Sep 17 00:00:00 2001 From: Richard Bloor Date: Thu, 21 Mar 2019 12:22:23 +1300 Subject: [PATCH] This change is to remove the 3 embedded web extension examples. The technology to support these examples was removed from Firefox in November 2017, with the release of Firefox 57. --- .../.eslintrc.json | 8 --- embedded-webextension-bootstrapped/README.md | 14 ---- .../step0-legacy-addon/bootstrap.js | 16 ----- .../step0-legacy-addon/chrome.manifest | 1 - .../step0-legacy-addon/chrome/AddonPrefs.jsm | 41 ----------- .../step0-legacy-addon/chrome/AddonUI.jsm | 65 ------------------ .../step0-legacy-addon/chrome/icons/LICENSE | 1 - .../chrome/icons/icon-32.png | Bin 211 -> 0 bytes .../step0-legacy-addon/install.rdf | 33 --------- .../step1-hybrid-addon/bootstrap.js | 24 ------- .../step1-hybrid-addon/chrome.manifest | 1 - .../step1-hybrid-addon/chrome/AddonPrefs.jsm | 41 ----------- .../step1-hybrid-addon/install.rdf | 34 --------- .../webextension/background.js | 16 ----- .../webextension/icons/LICENSE | 1 - .../webextension/icons/icon-32.png | Bin 211 -> 0 bytes .../webextension/manifest.json | 15 ---- .../webextension/popup.html | 10 --- .../step1-hybrid-addon/webextension/popup.js | 7 -- .../step2-pure-webextension/icons/LICENSE | 1 - .../step2-pure-webextension/icons/icon-32.png | Bin 211 -> 0 bytes .../step2-pure-webextension/manifest.json | 18 ----- .../step2-pure-webextension/popup.html | 10 --- .../step2-pure-webextension/popup.js | 7 -- embedded-webextension-overlay/chrome.manifest | 2 - embedded-webextension-overlay/content/init.js | 31 --------- .../content/overlay.xul | 4 -- embedded-webextension-overlay/install.rdf | 23 ------- .../webextension/background.js | 3 - .../webextension/manifest.json | 10 --- embedded-webextension-sdk/.eslintrc.json | 8 --- embedded-webextension-sdk/README.md | 14 ---- .../step0-legacy-addon/data/content-script.js | 1 - .../step0-legacy-addon/data/icons/LICENSE | 1 - .../step0-legacy-addon/data/icons/icon-32.png | Bin 211 -> 0 bytes .../step0-legacy-addon/data/popup.html | 10 --- .../step0-legacy-addon/data/popup.js | 3 - .../step0-legacy-addon/lib/addon-ui.js | 42 ----------- .../step0-legacy-addon/lib/content-scripts.js | 18 ----- .../lib/user-data-storage.js | 3 - .../step0-legacy-addon/main.js | 3 - .../step0-legacy-addon/package.json | 20 ------ .../lib/user-data-storage.js | 25 ------- .../step1-hybrid-addon/main.js | 10 --- .../step1-hybrid-addon/package.json | 21 ------ .../webextension/background.js | 25 ------- .../webextension/content-script.js | 4 -- .../webextension/icons/LICENSE | 1 - .../webextension/icons/icon-32.png | Bin 211 -> 0 bytes .../webextension/manifest.json | 21 ------ .../webextension/popup.html | 10 --- .../step1-hybrid-addon/webextension/popup.js | 4 -- .../step2-pure-webextension/background.js | 15 ---- .../step2-pure-webextension/content-script.js | 4 -- .../step2-pure-webextension/icons/LICENSE | 1 - .../step2-pure-webextension/icons/icon-32.png | Bin 211 -> 0 bytes .../step2-pure-webextension/manifest.json | 30 -------- .../step2-pure-webextension/options.html | 13 ---- .../step2-pure-webextension/options.js | 21 ------ .../step2-pure-webextension/popup.html | 10 --- .../step2-pure-webextension/popup.js | 4 -- examples.json | 29 -------- 62 files changed, 808 deletions(-) delete mode 100644 embedded-webextension-bootstrapped/.eslintrc.json delete mode 100644 embedded-webextension-bootstrapped/README.md delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/bootstrap.js delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/chrome.manifest delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonPrefs.jsm delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonUI.jsm delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/LICENSE delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/icon-32.png delete mode 100644 embedded-webextension-bootstrapped/step0-legacy-addon/install.rdf delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/bootstrap.js delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/chrome.manifest delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/chrome/AddonPrefs.jsm delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/install.rdf delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/background.js delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/LICENSE delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/icon-32.png delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/manifest.json delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.html delete mode 100644 embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.js delete mode 100644 embedded-webextension-bootstrapped/step2-pure-webextension/icons/LICENSE delete mode 100644 embedded-webextension-bootstrapped/step2-pure-webextension/icons/icon-32.png delete mode 100644 embedded-webextension-bootstrapped/step2-pure-webextension/manifest.json delete mode 100644 embedded-webextension-bootstrapped/step2-pure-webextension/popup.html delete mode 100644 embedded-webextension-bootstrapped/step2-pure-webextension/popup.js delete mode 100644 embedded-webextension-overlay/chrome.manifest delete mode 100644 embedded-webextension-overlay/content/init.js delete mode 100644 embedded-webextension-overlay/content/overlay.xul delete mode 100644 embedded-webextension-overlay/install.rdf delete mode 100644 embedded-webextension-overlay/webextension/background.js delete mode 100644 embedded-webextension-overlay/webextension/manifest.json delete mode 100644 embedded-webextension-sdk/.eslintrc.json delete mode 100644 embedded-webextension-sdk/README.md delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/data/content-script.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/data/icons/LICENSE delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/data/icons/icon-32.png delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/data/popup.html delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/data/popup.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/lib/addon-ui.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/lib/content-scripts.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/lib/user-data-storage.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/main.js delete mode 100644 embedded-webextension-sdk/step0-legacy-addon/package.json delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/lib/user-data-storage.js delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/main.js delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/package.json delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/background.js delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/content-script.js delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/LICENSE delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/icon-32.png delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/manifest.json delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.html delete mode 100644 embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.js delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/background.js delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/content-script.js delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/icons/LICENSE delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/icons/icon-32.png delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/manifest.json delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/options.html delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/options.js delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/popup.html delete mode 100644 embedded-webextension-sdk/step2-pure-webextension/popup.js diff --git a/embedded-webextension-bootstrapped/.eslintrc.json b/embedded-webextension-bootstrapped/.eslintrc.json deleted file mode 100644 index 30e26e9..0000000 --- a/embedded-webextension-bootstrapped/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true, - "amd": true, - "webextensions": true - } -} diff --git a/embedded-webextension-bootstrapped/README.md b/embedded-webextension-bootstrapped/README.md deleted file mode 100644 index 85c5c9f..0000000 --- a/embedded-webextension-bootstrapped/README.md +++ /dev/null @@ -1,14 +0,0 @@ -This is an example of how to use [embedded WebExtensions](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Embedded_WebExtensions) to convert a legacy [Bootstrapped extension](https://developer.mozilla.org/en-US/Add-ons/Bootstrapped_extensions) to a [WebExtension](https://developer.mozilla.org/en-US/Add-ons/WebExtensions) in stages, and migrate the legacy add-on's data so it's accessible by the WebExtension. - -The legacy add-on contains: - -- some user data stored in the Firefox preferences -- a button in the toolbar - -When the button is pressed, the add-on displays a panel containing the stored data. - -This directory contains three versions of the add-on. - -- **step0-legacy-addon**: the initial add-on, written entirely using the bootstrapped extension method. -- **step1-hybrid-addon**: a hybrid consisting of a bootstrapped extension containing an embedded WebExtension. The bootstrapped extension reads the stored data and sends it to the embedded WebExtension. The embedded WebExtension stores the data using the [`storage`](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage) API, and also implements the UI. -- **step2-pure-webextension**: the final version, written entirely using the WebExtensions method. This version can be deployed after the hybrid version has migrated the stored data to the `storage` API. diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/bootstrap.js b/embedded-webextension-bootstrapped/step0-legacy-addon/bootstrap.js deleted file mode 100644 index 364394a..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/bootstrap.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -function startup(data) { - Components.utils.import("chrome://original-bootstrap-addon-id/content/AddonPrefs.jsm"); - Components.utils.import("chrome://original-bootstrap-addon-id/content/AddonUI.jsm"); - - AddonPrefs.set("super-important-user-setting", "char", "addon preference content"); - AddonUI.init(data); -} - -function shutdown(data) { - AddonUI.shutdown(data); - - Components.utils.unload("chrome://original-bootstrap-addon-id/content/AddonUI.jsm"); - Components.utils.unload("chrome://original-bootstrap-addon-id/content/AddonPrefs.jsm"); -} diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome.manifest b/embedded-webextension-bootstrapped/step0-legacy-addon/chrome.manifest deleted file mode 100644 index abbe1db..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome.manifest +++ /dev/null @@ -1 +0,0 @@ -content original-bootstrap-addon-id chrome/ \ No newline at end of file diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonPrefs.jsm b/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonPrefs.jsm deleted file mode 100644 index 2d4d3cf..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonPrefs.jsm +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -var EXPORTED_SYMBOLS = ["AddonPrefs"]; - -Components.utils.import("resource://gre/modules/Services.jsm"); - -const BASE_PREF = "extensions.original-bootstrap-addon-id."; - -function get(key, type = "char") { - key = BASE_PREF + key; - - switch(type) { - case "char": - return Services.prefs.getCharPref(key); - case "bool": - return Services.prefs.getBoolPref(key); - case "int": - return Services.prefs.getIntPref(key); - } - - throw new Error(`Unknown type: ${type}`); -} - -function set(key, type, value) { - key = BASE_PREF + key; - - switch(type) { - case "char": - return Services.prefs.setCharPref(key, value); - case "bool": - return Services.prefs.setBoolPref(key, value); - case "int": - return Services.prefs.setIntPref(key, value); - } - - throw new Error(`Unknown type: ${type}`); -} - -var AddonPrefs = { - get, set, -}; diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonUI.jsm b/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonUI.jsm deleted file mode 100644 index e014a7c..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/AddonUI.jsm +++ /dev/null @@ -1,65 +0,0 @@ -"use strict"; - -var EXPORTED_SYMBOLS = ["AddonUI"]; - -Components.utils.import("resource:///modules/CustomizableUI.jsm"); - -Components.utils.import("chrome://original-bootstrap-addon-id/content/AddonPrefs.jsm"); - -const BUTTON_ID = "original-bootstrap-addon-id--toolbar-button"; -const BUTTON_ICON_URL = "chrome://original-bootstrap-addon-id/content/icons/icon-32.png"; - -const PANEL_ID = "original-bootstrap-addon-id--popup-panel"; - -function createPanel(node) { - var doc = node.ownerDocument; - - var panel = doc.createElement("panel"); - panel.setAttribute("type", "arrow"); - panel.setAttribute("id", PANEL_ID); - panel.setAttribute("flip", "slide"); - panel.setAttribute("hidden", true); - panel.setAttribute("position", "bottomcenter topright"); - var panelContent = doc.createElement("label"); - panelContent.textContent = AddonPrefs.get("super-important-user-setting"); - panel.appendChild(panelContent); - - return panel; -} - -function defineButtonWidget() { - let buttonDef = { - id : BUTTON_ID, - type : "button", - defaultArea : CustomizableUI.AREA_NAVBAR, - label : "button label", - tooltiptext : "button tooltip", - onCreated : function (node) { - node.setAttribute('image', BUTTON_ICON_URL); - - const panel = createPanel(node); - node.appendChild(panel); - - node.addEventListener("click", () => { - panel.setAttribute("hidden", false); - panel.openPopup(node, panel.getAttribute("position"), 0, 0, false, false); - }); - } - }; - - CustomizableUI.createWidget(buttonDef); -}; - - - -function init({id}) { - defineButtonWidget(BUTTON_ID); -} - -function shutdown({id}) { - CustomizableUI.destroyWidget(BUTTON_ID); -} - -var AddonUI = { - init, shutdown, -}; diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/LICENSE b/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/LICENSE deleted file mode 100644 index e878a43..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/LICENSE +++ /dev/null @@ -1 +0,0 @@ -The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/. diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/icon-32.png b/embedded-webextension-bootstrapped/step0-legacy-addon/chrome/icons/icon-32.png deleted file mode 100644 index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q Iol`;+00+lL5C8xG diff --git a/embedded-webextension-bootstrapped/step0-legacy-addon/install.rdf b/embedded-webextension-bootstrapped/step0-legacy-addon/install.rdf deleted file mode 100644 index 71feaa4..0000000 --- a/embedded-webextension-bootstrapped/step0-legacy-addon/install.rdf +++ /dev/null @@ -1,33 +0,0 @@ - - - - original-bootstrap-addon-id@mozilla.com - 2 - true - false - 0.1.0 - Legacy Addon Name - - A simple bootstrap addon which wants to transition to a WebExtension. - - Step 0: original legacy bootstrap addon. - - Luca Greco <lgreco@mozilla.com> - - - - {ec8030f7-c20a-464f-9b0e-13a3a9e97384} - 49.0 - * - - - - - - {aa3c5121-dab2-40e2-81ca-7ea25febc110} - 49.0 - * - - - - diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/bootstrap.js b/embedded-webextension-bootstrapped/step1-hybrid-addon/bootstrap.js deleted file mode 100644 index 573ba93..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/bootstrap.js +++ /dev/null @@ -1,24 +0,0 @@ -"use strict"; - -function startup({webExtension}) { - Components.utils.import("chrome://original-bootstrap-addon-id/content/AddonPrefs.jsm"); - - // Start the embedded webextension. - webExtension.startup().then(api => { - const {browser} = api; - browser.runtime.onMessage.addListener((msg, sender, sendReply) => { - if (msg == "import-legacy-data") { - // When the embedded webextension asks for the legacy data, - // dump the data which needs to be preserved and send it back to the - // embedded extension. - sendReply({ - "super-important-user-setting": AddonPrefs.get("super-important-user-setting"), - }); - } - }); - }); -} - -function shutdown(data) { - Components.utils.unload("chrome://original-bootstrap-addon-id/content/AddonPrefs.jsm"); -} diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome.manifest b/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome.manifest deleted file mode 100644 index abbe1db..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome.manifest +++ /dev/null @@ -1 +0,0 @@ -content original-bootstrap-addon-id chrome/ \ No newline at end of file diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome/AddonPrefs.jsm b/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome/AddonPrefs.jsm deleted file mode 100644 index 2d4d3cf..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/chrome/AddonPrefs.jsm +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -var EXPORTED_SYMBOLS = ["AddonPrefs"]; - -Components.utils.import("resource://gre/modules/Services.jsm"); - -const BASE_PREF = "extensions.original-bootstrap-addon-id."; - -function get(key, type = "char") { - key = BASE_PREF + key; - - switch(type) { - case "char": - return Services.prefs.getCharPref(key); - case "bool": - return Services.prefs.getBoolPref(key); - case "int": - return Services.prefs.getIntPref(key); - } - - throw new Error(`Unknown type: ${type}`); -} - -function set(key, type, value) { - key = BASE_PREF + key; - - switch(type) { - case "char": - return Services.prefs.setCharPref(key, value); - case "bool": - return Services.prefs.setBoolPref(key, value); - case "int": - return Services.prefs.setIntPref(key, value); - } - - throw new Error(`Unknown type: ${type}`); -} - -var AddonPrefs = { - get, set, -}; diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/install.rdf b/embedded-webextension-bootstrapped/step1-hybrid-addon/install.rdf deleted file mode 100644 index c15c9b8..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/install.rdf +++ /dev/null @@ -1,34 +0,0 @@ - - - - original-bootstrap-addon-id@mozilla.com - 2 - true - true - false - 0.2.0 - Legacy Addon Name - - A simple bootstrap addon which wants to transition to a WebExtension. - - Step 1: transition hybrid addon. - - Luca Greco <lgreco@mozilla.com> - - - - {ec8030f7-c20a-464f-9b0e-13a3a9e97384} - 51.0a1 - * - - - - - - {aa3c5121-dab2-40e2-81ca-7ea25febc110} - 51.0a1 - * - - - - diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/background.js b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/background.js deleted file mode 100644 index b1ba3e9..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/background.js +++ /dev/null @@ -1,16 +0,0 @@ -"use strict"; - -browser.storage.local.get("super-important-user-setting") - .then(results => { - // If the old preferences data has not been imported yet... - if (!results["super-important-user-setting"]) { - // Ask to the legacy part to dump the needed data and send it back - // to the background page... - browser.runtime.sendMessage("import-legacy-data").then(reply => { - if (reply) { - // Where it can be saved using the WebExtensions storage API. - browser.storage.local.set(reply); - } - }); - } - }); diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/LICENSE b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/LICENSE deleted file mode 100644 index e878a43..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/LICENSE +++ /dev/null @@ -1 +0,0 @@ -The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/. diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/icon-32.png b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/icons/icon-32.png deleted file mode 100644 index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q Iol`;+00+lL5C8xG diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/manifest.json b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/manifest.json deleted file mode 100644 index 048c4ec..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/manifest.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "Legacy Addon Name", - "version": "0.2.0", - "manifest_version": 2, - "permissions": ["storage"], - "background": { - "scripts": ["background.js"] - }, - "browser_action": { - "browser_style": true, - "default_icon": "icons/icon-32.png", - "default_title": "button label", - "default_popup": "popup.html" - } -} diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.html b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.html deleted file mode 100644 index 284b7b9..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -
- - - diff --git a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.js b/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.js deleted file mode 100644 index ab5360d..0000000 --- a/embedded-webextension-bootstrapped/step1-hybrid-addon/webextension/popup.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -var gettingItem = browser.storage.local.get("super-important-user-setting"); -gettingItem.then(results => { - const panelContent = results["super-important-user-setting"] || "No settings saved."; - document.querySelector("#panel-content").textContent = panelContent; -}); diff --git a/embedded-webextension-bootstrapped/step2-pure-webextension/icons/LICENSE b/embedded-webextension-bootstrapped/step2-pure-webextension/icons/LICENSE deleted file mode 100644 index e878a43..0000000 --- a/embedded-webextension-bootstrapped/step2-pure-webextension/icons/LICENSE +++ /dev/null @@ -1 +0,0 @@ -The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/. diff --git a/embedded-webextension-bootstrapped/step2-pure-webextension/icons/icon-32.png b/embedded-webextension-bootstrapped/step2-pure-webextension/icons/icon-32.png deleted file mode 100644 index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q Iol`;+00+lL5C8xG diff --git a/embedded-webextension-bootstrapped/step2-pure-webextension/manifest.json b/embedded-webextension-bootstrapped/step2-pure-webextension/manifest.json deleted file mode 100644 index b80f579..0000000 --- a/embedded-webextension-bootstrapped/step2-pure-webextension/manifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "Legacy Addon Name", - "version": "0.3.0", - "manifest_version": 2, - "permissions": ["storage"], - "browser_action": { - "browser_style": true, - "default_icon": "icons/icon-32.png", - "default_title": "button label", - "default_popup": "popup.html" - }, - "applications": { - "gecko": { - "id": "original-bootstrap-addon-id@mozilla.com", - "strict_min_version": "51.0a1" - } - } -} diff --git a/embedded-webextension-bootstrapped/step2-pure-webextension/popup.html b/embedded-webextension-bootstrapped/step2-pure-webextension/popup.html deleted file mode 100644 index 284b7b9..0000000 --- a/embedded-webextension-bootstrapped/step2-pure-webextension/popup.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -
- - - diff --git a/embedded-webextension-bootstrapped/step2-pure-webextension/popup.js b/embedded-webextension-bootstrapped/step2-pure-webextension/popup.js deleted file mode 100644 index ab5360d..0000000 --- a/embedded-webextension-bootstrapped/step2-pure-webextension/popup.js +++ /dev/null @@ -1,7 +0,0 @@ -"use strict"; - -var gettingItem = browser.storage.local.get("super-important-user-setting"); -gettingItem.then(results => { - const panelContent = results["super-important-user-setting"] || "No settings saved."; - document.querySelector("#panel-content").textContent = panelContent; -}); diff --git a/embedded-webextension-overlay/chrome.manifest b/embedded-webextension-overlay/chrome.manifest deleted file mode 100644 index 19c011e..0000000 --- a/embedded-webextension-overlay/chrome.manifest +++ /dev/null @@ -1,2 +0,0 @@ -content my-overlay-addon content/ -overlay chrome://browser/content/browser.xul chrome://my-overlay-addon/content/overlay.xul diff --git a/embedded-webextension-overlay/content/init.js b/embedded-webextension-overlay/content/init.js deleted file mode 100644 index 6e3e62c..0000000 --- a/embedded-webextension-overlay/content/init.js +++ /dev/null @@ -1,31 +0,0 @@ -/* 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` - ); - }); - }); -} diff --git a/embedded-webextension-overlay/content/overlay.xul b/embedded-webextension-overlay/content/overlay.xul deleted file mode 100644 index debde2b..0000000 --- a/embedded-webextension-overlay/content/overlay.xul +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/embedded-webextension-overlay/install.rdf b/embedded-webextension-overlay/install.rdf deleted file mode 100644 index 679a74b..0000000 --- a/embedded-webextension-overlay/install.rdf +++ /dev/null @@ -1,23 +0,0 @@ - - - - - my-overlay-addon@me - 1.0.1 - My Legacy Overlay Addon - - 2 - true - - - - - {ec8030f7-c20a-464f-9b0e-13a3a9e97384} - 51.0 - * - - - - - \ No newline at end of file diff --git a/embedded-webextension-overlay/webextension/background.js b/embedded-webextension-overlay/webextension/background.js deleted file mode 100644 index 4e68cfc..0000000 --- a/embedded-webextension-overlay/webextension/background.js +++ /dev/null @@ -1,3 +0,0 @@ -console.log("Embedded WebExtension", window.location.href); - -browser.runtime.sendMessage("embedded_webext -> overlay addon container"); diff --git a/embedded-webextension-overlay/webextension/manifest.json b/embedded-webextension-overlay/webextension/manifest.json deleted file mode 100644 index ff4eb0f..0000000 --- a/embedded-webextension-overlay/webextension/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "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"] - } -} diff --git a/embedded-webextension-sdk/.eslintrc.json b/embedded-webextension-sdk/.eslintrc.json deleted file mode 100644 index 30e26e9..0000000 --- a/embedded-webextension-sdk/.eslintrc.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true, - "amd": true, - "webextensions": true - } -} diff --git a/embedded-webextension-sdk/README.md b/embedded-webextension-sdk/README.md deleted file mode 100644 index b72ab74..0000000 --- a/embedded-webextension-sdk/README.md +++ /dev/null @@ -1,14 +0,0 @@ -This is an example of how to use [embedded WebExtensions](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Embedded_WebExtensions) to convert a legacy [SDK add-on](https://developer.mozilla.org/en-US/Add-ons/SDK) to a [WebExtension](https://developer.mozilla.org/en-US/Add-ons/WebExtensions) in stages, and migrate the legacy add-on's data so it's accessible by the WebExtension. - -The legacy add-on contains: - -- A content script that is attached to any pages under "mozilla.org" or any of its subdomains. The content script sends a message to the main add-on, which then displays a [notification](https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/notifications). -- Some user data stored using the SDK's [`simple-prefs`](https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/simple-prefs) API. -- Some user data stored using the SDK's [`simple-storage`](https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/simple-storage) API. -- A button in the toolbar: when the button is pressed, the add-on shows a panel containing the stored data. - -This directory contains three versions of the add-on. - -- **step0-legacy-addon**: the initial add-on, written entirely using the Add-on SDK. -- **step1-hybrid-addon**: a hybrid consisting of an Add-on SDK add-on containing an embedded WebExtension. The Add-on SDK part sends the stored data to the embedded WebExtension. It also listens for any changes to the [`simple-prefs`](https://developer.mozilla.org/en-US/Add-ons/SDK/High-Level_APIs/simple-prefs) data, and updates the WebExtension whenever that data is changed (for example, if the user changes the data in the add-on's preferences UI under about:addons). The embedded WebExtension stores the data using the [`storage`](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/storage) API and implements everything else, including the button/panel and the content script. -- **step2-pure-webextension**: the final version, written entirely using the WebExtensions method. This version can be deployed after the hybrid version has migrated the stored data to the `storage` API. In this version the add-on uses an [options page](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Options_pages) to provide a UI for the preferences data. diff --git a/embedded-webextension-sdk/step0-legacy-addon/data/content-script.js b/embedded-webextension-sdk/step0-legacy-addon/data/content-script.js deleted file mode 100644 index 8506fb6..0000000 --- a/embedded-webextension-sdk/step0-legacy-addon/data/content-script.js +++ /dev/null @@ -1 +0,0 @@ -self.port.emit("notify-attached-tab", window.location.href); diff --git a/embedded-webextension-sdk/step0-legacy-addon/data/icons/LICENSE b/embedded-webextension-sdk/step0-legacy-addon/data/icons/LICENSE deleted file mode 100644 index e878a43..0000000 --- a/embedded-webextension-sdk/step0-legacy-addon/data/icons/LICENSE +++ /dev/null @@ -1 +0,0 @@ -The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/. diff --git a/embedded-webextension-sdk/step0-legacy-addon/data/icons/icon-32.png b/embedded-webextension-sdk/step0-legacy-addon/data/icons/icon-32.png deleted file mode 100644 index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75 zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q Iol`;+00+lL5C8xG diff --git a/embedded-webextension-sdk/step0-legacy-addon/data/popup.html b/embedded-webextension-sdk/step0-legacy-addon/data/popup.html deleted file mode 100644 index 9f208a9..0000000 --- a/embedded-webextension-sdk/step0-legacy-addon/data/popup.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -

-    
-  
-
diff --git a/embedded-webextension-sdk/step0-legacy-addon/data/popup.js b/embedded-webextension-sdk/step0-legacy-addon/data/popup.js
deleted file mode 100644
index fc69eec..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/data/popup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-addon.port.on("got-user-data", results => {
-  document.querySelector("#panel-content").textContent = JSON.stringify(results, null, 2);
-});
diff --git a/embedded-webextension-sdk/step0-legacy-addon/lib/addon-ui.js b/embedded-webextension-sdk/step0-legacy-addon/lib/addon-ui.js
deleted file mode 100644
index 022206e..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/lib/addon-ui.js
+++ /dev/null
@@ -1,42 +0,0 @@
-const { ToggleButton } = require('sdk/ui/button/toggle');
-const panels = require("sdk/panel");
-const self = require("sdk/self");
-const ss = require("sdk/simple-storage");
-const sp = require("sdk/simple-prefs");
-
-const button = ToggleButton({
-  id: "my-button",
-  label: "my button",
-  icon: {
-    "32": self.data.url("icons/icon-32.png"),
-  },
-  onChange: handleChange,
-});
-
-const panel = panels.Panel({
-  contentURL: self.data.url("popup.html"),
-  onHide: handleHide,
-});
-
-panel.on("show", () => {
-  panel.port.emit("got-user-data", {
-    prefs: {
-      superImportantUserPref: sp.prefs["superImportantUserPref"],
-    },
-    storage:  {
-      superImportantUserStoredData: ss.storage.superImportantUserStoredData,
-    },
-  });
-});
-
-function handleChange(state) {
-  if (state.checked) {
-    panel.show({
-      position: button,
-    });
-  }
-}
-
-function handleHide() {
-  button.state('window', {checked: false});
-}
diff --git a/embedded-webextension-sdk/step0-legacy-addon/lib/content-scripts.js b/embedded-webextension-sdk/step0-legacy-addon/lib/content-scripts.js
deleted file mode 100644
index cf4f1fa..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/lib/content-scripts.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const data = require("sdk/self").data;
-const pageMod = require("sdk/page-mod");
-const notifications = require("sdk/notifications");
-
-pageMod.PageMod({
-  include: "*.mozilla.org",
-  contentScriptFile: [
-    data.url("content-script.js"),
-  ],
-  onAttach: function(worker) {
-    worker.port.on("notify-attached-tab", (msg) => {
-      notifications.notify({
-        title: "Attached to tab",
-        text: msg
-      });
-    });
-  }
-});
diff --git a/embedded-webextension-sdk/step0-legacy-addon/lib/user-data-storage.js b/embedded-webextension-sdk/step0-legacy-addon/lib/user-data-storage.js
deleted file mode 100644
index d9abd8d..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/lib/user-data-storage.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const ss = require("sdk/simple-storage");
-
-ss.storage.superImportantUserStoredData = "This value was saved in the simple-storage";
diff --git a/embedded-webextension-sdk/step0-legacy-addon/main.js b/embedded-webextension-sdk/step0-legacy-addon/main.js
deleted file mode 100644
index ced1b02..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/main.js
+++ /dev/null
@@ -1,3 +0,0 @@
-require("./lib/addon-ui");
-require("./lib/user-data-storage");
-require("./lib/content-scripts");
diff --git a/embedded-webextension-sdk/step0-legacy-addon/package.json b/embedded-webextension-sdk/step0-legacy-addon/package.json
deleted file mode 100644
index 92d1c8d..0000000
--- a/embedded-webextension-sdk/step0-legacy-addon/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "id": "original-sdk-addon-id@mozilla.com",
-  "version": "0.1.0",
-  "main": "./main.js",
-  "name": "sdk-addon-name",
-  "fullName": "SDK Addon Name",
-  "description": "A simple SDK addon which wants to transition to a WebExtension",
-  "preferences": [
-    {
-      "name": "superImportantUserPref",
-      "title": "Super important user preference",
-      "type": "string",
-      "value": "saved superImportantUserPref value"
-    }
-  ],
-  "engines": {
-    "firefox": ">= 49",
-    "fennec": ">= 49"
-  }
-}
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/lib/user-data-storage.js b/embedded-webextension-sdk/step1-hybrid-addon/lib/user-data-storage.js
deleted file mode 100644
index ad616b3..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/lib/user-data-storage.js
+++ /dev/null
@@ -1,25 +0,0 @@
-const sp = require("sdk/simple-prefs");
-const ss = require("sdk/simple-storage");
-
-ss.storage.superImportantUserStoredData = "This value was saved in the simple-storage";
-
-exports.setSyncLegacyDataPort = function(port) {
-  // Send the initial data dump.
-  port.postMessage({
-    prefs: {
-      superImportantUserPref: sp.prefs["superImportantUserPref"],
-    },
-    storage: {
-      superImportantUserStoredData: ss.storage.superImportantUserStoredData,
-    },
-  });
-
-  // Keep the preferences in sync with the data stored in the webextension.
-  sp.on("superImportantUserPref", () => {
-    port.postMessage({
-      prefs: {
-        superImportantUserPref: sp.prefs["superImportantUserPref"],
-      }
-    });
-  });
-};
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/main.js b/embedded-webextension-sdk/step1-hybrid-addon/main.js
deleted file mode 100644
index 5c02fce..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/main.js
+++ /dev/null
@@ -1,10 +0,0 @@
-const webext = require("sdk/webextension");
-const {setSyncLegacyDataPort} = require("./lib/user-data-storage");
-
-webext.startup().then(({browser}) => {
-  browser.runtime.onConnect.addListener(port => {
-    if (port.name === "sync-legacy-addon-data") {
-      setSyncLegacyDataPort(port);
-    }
-  });
-});
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/package.json b/embedded-webextension-sdk/step1-hybrid-addon/package.json
deleted file mode 100644
index 62615b0..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/package.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "id": "original-sdk-addon-id@mozilla.com",
-  "version": "0.2.0",
-  "main": "./main.js",
-  "name": "sdk-addon-name",
-  "fullName": "SDK Addon Name",
-  "description": "A simple SDK addon which wants to transition to a WebExtension",
-  "preferences": [
-    {
-      "name": "superImportantUserPref",
-      "title": "Super important user preference",
-      "type": "string",
-      "value": "saved superImportantUserPref value"
-    }
-  ],
-  "engines": {
-    "firefox": ">= 51.0a1",
-    "fennec": ">= 51.0a1"
-  },
-  "hasEmbeddedWebExtension": true
-}
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/background.js b/embedded-webextension-sdk/step1-hybrid-addon/webextension/background.js
deleted file mode 100644
index 9f9a472..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/background.js
+++ /dev/null
@@ -1,25 +0,0 @@
-"use strict";
-
-// Ask to the legacy part to dump the needed data and send it back
-// to the background page...
-var port = browser.runtime.connect({name: "sync-legacy-addon-data"});
-port.onMessage.addListener((msg) => {
-  if (msg) {
-    // Where it can be saved using the WebExtensions storage API.
-    browser.storage.local.set(msg);
-  }
-});
-
-browser.runtime.onMessage.addListener(msg => {
-  const {type} = msg;
-
-  switch (type) {
-  case "notify-attached-tab":
-    browser.notifications.create({
-      type: "basic",
-      title: "Attached to tab",
-      message: msg.message
-    });
-    break;
-  }
-});
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/content-script.js b/embedded-webextension-sdk/step1-hybrid-addon/webextension/content-script.js
deleted file mode 100644
index 80a9dae..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/content-script.js
+++ /dev/null
@@ -1,4 +0,0 @@
-browser.runtime.sendMessage({
-  type: "notify-attached-tab",
-  message: window.location.href,
-});
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/LICENSE b/embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/LICENSE
deleted file mode 100644
index e878a43..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/.
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/icon-32.png b/embedded-webextension-sdk/step1-hybrid-addon/webextension/icons/icon-32.png
deleted file mode 100644
index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 211
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75
zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q
Iol`;+00+lL5C8xG

diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/manifest.json b/embedded-webextension-sdk/step1-hybrid-addon/webextension/manifest.json
deleted file mode 100644
index 0c4b37f..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/manifest.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "name": "SDK Transition Addon",
-  "version": "0.2.0",
-  "manifest_version": 2,
-  "permissions": ["storage", "notifications"],
-  "background": {
-    "scripts": ["background.js"]
-  },
-  "content_scripts": [
-    {
-      "matches": ["*://*.mozilla.org/*"],
-      "js": ["content-script.js"]
-    }
-  ],
-  "browser_action": {
-    "browser_style": true,
-    "default_icon": "icons/icon-32.png",
-    "default_title": "button label",
-    "default_popup": "popup.html"
-  }
-}
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.html b/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.html
deleted file mode 100644
index 9f208a9..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-  
-    
-  
-  
-    

-    
-  
-
diff --git a/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.js b/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.js
deleted file mode 100644
index a58ece8..0000000
--- a/embedded-webextension-sdk/step1-hybrid-addon/webextension/popup.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const gettingItem = browser.storage.local.get();
-gettingItem.then((results) => {
-  document.querySelector("#panel-content").textContent = JSON.stringify(results, null, 2);
-});
diff --git a/embedded-webextension-sdk/step2-pure-webextension/background.js b/embedded-webextension-sdk/step2-pure-webextension/background.js
deleted file mode 100644
index bf59a60..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/background.js
+++ /dev/null
@@ -1,15 +0,0 @@
-"use strict";
-
-browser.runtime.onMessage.addListener(msg => {
-  const {type} = msg;
-
-  switch (type) {
-  case "notify-attached-tab":
-    browser.notifications.create({
-      type: "basic",
-      title: "Attached to tab",
-      message: msg.message
-    });
-    break;
-  }
-});
diff --git a/embedded-webextension-sdk/step2-pure-webextension/content-script.js b/embedded-webextension-sdk/step2-pure-webextension/content-script.js
deleted file mode 100644
index 80a9dae..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/content-script.js
+++ /dev/null
@@ -1,4 +0,0 @@
-browser.runtime.sendMessage({
-  type: "notify-attached-tab",
-  message: window.location.href,
-});
diff --git a/embedded-webextension-sdk/step2-pure-webextension/icons/LICENSE b/embedded-webextension-sdk/step2-pure-webextension/icons/LICENSE
deleted file mode 100644
index e878a43..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/icons/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-The icon "icon-32.png" is taken from the IconBeast Lite iconset, and used under the terms of its license (http://www.iconbeast.com/faq/), with a link back to the website: http://www.iconbeast.com/free/.
diff --git a/embedded-webextension-sdk/step2-pure-webextension/icons/icon-32.png b/embedded-webextension-sdk/step2-pure-webextension/icons/icon-32.png
deleted file mode 100644
index 35c2ebaf300752d498768b60a38eeb300cc05fdd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 211
zcmeAS@N?(olHy`uVBq!ia0vp^av;pX#=yYnV?NIW$dN2@jVKAuPb(=;EJ|f?Ovz75
zRq)JBOiv9;O-!jQJeg_(R8;Ee;uunKD=A@t3#S=yb8+T!i39AnL0y==f)78&q
Iol`;+00+lL5C8xG

diff --git a/embedded-webextension-sdk/step2-pure-webextension/manifest.json b/embedded-webextension-sdk/step2-pure-webextension/manifest.json
deleted file mode 100644
index ba06037..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/manifest.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
-  "name": "SDK Addon Name",
-  "version": "0.3.0",
-  "manifest_version": 2,
-  "permissions": ["storage", "notifications"],
-  "background": {
-    "scripts": ["background.js"]
-  },
-  "content_scripts": [
-    {
-      "matches": ["*://*.mozilla.org/*"],
-      "js": ["content-script.js"]
-    }
-  ],
-  "options_ui": {
-    "page": "options.html"
-  },
-  "browser_action": {
-    "browser_style": true,
-    "default_icon": "icons/icon-32.png",
-    "default_title": "button label",
-    "default_popup": "popup.html"
-  },
-  "applications": {
-    "gecko": {
-      "id": "original-sdk-addon-id@mozilla.com",
-      "strict_min_version": "51.0a1"
-    }
-  }
-}
diff --git a/embedded-webextension-sdk/step2-pure-webextension/options.html b/embedded-webextension-sdk/step2-pure-webextension/options.html
deleted file mode 100644
index a2deba8..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/options.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-  
-  
-  
-    
- - -
- - - diff --git a/embedded-webextension-sdk/step2-pure-webextension/options.js b/embedded-webextension-sdk/step2-pure-webextension/options.js deleted file mode 100644 index 22a840e..0000000 --- a/embedded-webextension-sdk/step2-pure-webextension/options.js +++ /dev/null @@ -1,21 +0,0 @@ -const gettingItem = browser.storage.local.get("prefs"); -gettingItem.then(results => { - const {prefs} = results || { - prefs: { - superImportantUserPref: "default value" - }, - }; - - const el = document.querySelector("#superImportantUserPref"); - el.value = prefs.superImportantUserPref; - - const updatePref = () => { - browser.storage.local.set({ - prefs: { - superImportantUserPref: el.value, - }, - }); - }; - - el.addEventListener("input", updatePref); -}); diff --git a/embedded-webextension-sdk/step2-pure-webextension/popup.html b/embedded-webextension-sdk/step2-pure-webextension/popup.html deleted file mode 100644 index 9f208a9..0000000 --- a/embedded-webextension-sdk/step2-pure-webextension/popup.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - -

-    
-  
-
diff --git a/embedded-webextension-sdk/step2-pure-webextension/popup.js b/embedded-webextension-sdk/step2-pure-webextension/popup.js
deleted file mode 100644
index a58ece8..0000000
--- a/embedded-webextension-sdk/step2-pure-webextension/popup.js
+++ /dev/null
@@ -1,4 +0,0 @@
-const gettingItem = browser.storage.local.get();
-gettingItem.then((results) => {
-  document.querySelector("#panel-content").textContent = JSON.stringify(results, null, 2);
-});
diff --git a/examples.json b/examples.json
index b087c86..4850797 100644
--- a/examples.json
+++ b/examples.json
@@ -150,35 +150,6 @@
         ],
         "name": "dynamic-theme"
     },
-    {
-        "description": "Demonstrates how to use an embedded WebExtension to port from a bootstrapped extension.",
-        "javascript_apis": [
-            "runtime.onMessage",
-            "runtime.sendMessage",
-            "storage.local"
-        ],
-        "name": "embedded-webextension-bootstrapped"
-    },
-    {
-        "description": "Demonstrates how to use an embedded WebExtension to port from an overlay extension.",
-        "javascript_apis": [
-            "runtime.onMessage",
-            "runtime.sendMessage"
-        ],
-        "name": "embedded-webextension-overlay"
-    },
-    {
-        "description": "Demonstrates how to use an embedded WebExtension to port from an SDK-based add-on.",
-        "javascript_apis": [
-            "notifications.create",
-            "runtime.connect",
-            "runtime.onConnect",
-            "runtime.onMessage",
-            "runtime.sendMessage",
-            "storage.local"
-        ],
-        "name": "embedded-webextension-sdk"
-    },
     {
         "description": "Replaces words with emojis.",
         "javascript_apis": [],