Spark Add-on on b2g

Bugs
Bug 1162200 - (spark-addons) [Meta] Spark Add-ons Support
Bug 923897 - Extensibility support for b2g

Reuse mozApps and manifest.webapp:

navigator.mozApps.installPackage(AddonManifestURL);
navigator.mozApps.mgmt.uninstall(DOMApplication);
// manifest.webapp example
{
  "customizations": [
    {
      /* mandatory */
      "filter": "http://youtube.com",
      "css": ["file1.css", "file2.css"],
      "scripts": ["script1.js", "script2.js"]
    }
  ], 
  "role": "addon" // "theme"
}

Only allow customizations to apply to apps with an equal or lower privilege level.

Installation

Created with Raphaël 2.1.2AppAppWebapps.jsWebapps.jsWebapps.jsmWebapps.jsmUserCustomizations.jsmUserCustomizations.jsmnavigator.mozApps.installPackage(manifestURL, ...)return DOMRequestWebapps:InstallPackageCheck ...Download ...Install ...Webapps:Install:Return:OKfire successWebapps:Install:Return:AckupdateAppHandlers(null, newManifest)register()_updateAllWindows()

Uninstall

Created with Raphaël 2.1.2AppAppWebapps.jsWebapps.jsWebapps.jsmWebapps.jsmUserCustomizations.jsmUserCustomizations.jsmnavigator.mozApps.mgmt.uninstall(DOMApplication)Webapps:UninstallCheck ...Clear ...unregister()_unloadForManifestURL()Webapps:Uninstall:Return:OK

Update

Version control?

Other

Hackerplace
https://github.com/fxos/directory
http://directory.fxosapps.org/apps.json

Add-on sdk on Firefox Desktop

TDB

Note


Chrome Extension API on Firefox Desktop

Introduce Chrome Extension API
https://docs.google.com/a/mozilla.com/presentation/d/1LscJGUTO74hP_6tEf6I6_nsAR24xSu9WhHUKk182eaE/edit?usp=sharing
Bugs
Bug 1161828 - [meta] Parity with Chrome extension API
Bug 1175770 - Experiment with new extension API
Bug 1190692 - Support Web Extensions in the add-on manager

Manifest

https://developer.chrome.com/extensions/manifest

"applications": {
  "gecko": {
    "id": "{the-addon-id}", // UUID
    "strict_min_version": "40.0.0",
    "strict_max_version": "50.*"
    "update_url": "https://foo/bar"
  }
}

Installation

Created with Raphaël 2.1.2AddonManagerAddonManagerXPIProvider.jsmXPIProvider.jsmWebExtensionBootstrap.jsWebExtensionBootstrap.jsExtension.jsmExtension.jsmExtensionManagement.jsmExtensionManagement.jsmext_*.jsext_*.jsAddonInstall.initLocalInstall()loadManifestFromWebManifest()addon.type = "webextension"startInstall() ??load bootstrap (sandbox?)install()do nothingstartup()new Extension()startupExtension()startup()emit("startup")

Load

Created with Raphaël 2.1.2Extension.jsmExtension.jsmext_backgroundPage.jsext_backgroundPage.jsext_browserAction.jsext_browserAction.jsExtensionContent.jsmExtensionContent.jsmload manifest ....emit("manifest_background", ...)GlobalManager.injectInDocShell() ??emit("manifest_browser_action", ...)CustomizableUI.createWidget()Extension:Startup (with content_scripts)

Other


New extension model in b2g

Bugs
Bug 1192026 - [meta] Add-on support for 2.5
Bug 1190995 - Support the new extension model in b2g
Bug 1191619 - Support extensions with no packaged manifest.webapp

Manifest

Load

Created with Raphaël 2.1.2Webapps.jsmWebapps.jsmUserCustomizations.jsmUserCustomizations.jsmExtension.jsmExtension.jsmregister()startup()

Other

Security