Labs/F1/Modularity/WebMod HOWTO: Difference between revisions

From MozillaWiki
< Labs‎ | F1‎ | Modularity
Jump to navigation Jump to search
Line 4: Line 4:
== Architecture ==
== Architecture ==


A WebMod is a way to extend targeted browser functionality with HTML and JavaScript. WebMods have no standalone abilities to modify the user agent, they only respond to API calls from the user agent. A WebMod is made available by a provider of a certain feature, e.g. Twitter for link-sharing, as HTML and JavaScript served from the provider's domain. It is advertised by a Web-accessible manifest, and it can be "installed" into a user agent that supports this functionality.
A WebMod extends a well-targeted piece of browser functionality with HTML and JavaScript. WebMods have no standalone abilities to modify the user agent; they only respond to API calls from the user agent. A WebMod is made available by a provider, e.g. Twitter for link-sharing, as HTML and JavaScript served from the provider's domain. It is advertised by a Web-accessible manifest, and it can be "installed" into a user agent that supports this functionality.


The user agent and a WebMod communicate over postMessage(). Effectively, a WebMod is a way for a web site to expose an API over postMessage(). Some advanced WebMods may eventually have a User Interface, but for now we describe purely the case of WebMods loaded in invisible IFRAMEs that provide only an API abstraction.
The user agent and WebMods communicate over postMessage(). Effectively, a WebMod is a mechanism for a web site to expose an API to the user agent over postMessage().


[[Image:Webmod-howto.png]]
[[Image:Webmod-howto.png]]

Revision as of 17:06, 15 June 2011

This HOWTO is specifically tailored to web sites that wish to be tightly integrated with Firefox functionality in the form of a Web Module (WebMod).

Architecture

A WebMod extends a well-targeted piece of browser functionality with HTML and JavaScript. WebMods have no standalone abilities to modify the user agent; they only respond to API calls from the user agent. A WebMod is made available by a provider, e.g. Twitter for link-sharing, as HTML and JavaScript served from the provider's domain. It is advertised by a Web-accessible manifest, and it can be "installed" into a user agent that supports this functionality.

The user agent and WebMods communicate over postMessage(). Effectively, a WebMod is a mechanism for a web site to expose an API to the user agent over postMessage().

Webmod-howto.png

Advertising a WebMod

A web site can advertise to user agents that it has WebMods available to answer certain API calls using a manifest:

{
 "version": "1.0",
 "name": "MozillaBall",
 "description": "Exciting Open Web development action!",
 "icons": {
   "16": "/img/icon-16.png",
   "48": "/img/icon-48.png",
   "128": "/img/icon-128.png"
 },
 "widget": {
   "path": "/widget.html",
   "width": 100,
   "height": 200
 },
 "developer": {
   "name": "Mozilla Labs",
   "url": "http://mozillalabs.com"
 },
 "installs_allowed_from": [
   "https://appstore.mozillalabs.com"
 ],
 "locales": {
   "es": {
     "description": "¡Acción abierta emocionante del desarrollo del Web!",
     "developer": {
       "url": "http://es.mozillalabs.com/"
     }
   },
   "it": {
     "description": "Azione aperta emozionante di sviluppo di fotoricettore!",
     "developer": {
       "url": "http://it.mozillalabs.com/"
     }
   }
 },
 "default_locale": "en"
}

Implementing a WebMod